From c6c0c84c45ce2529c91a2e075d4a159c4c82787d Mon Sep 17 00:00:00 2001 From: kyuran kim <57716832+gxxrxn@users.noreply.github.com> Date: Tue, 20 Aug 2024 16:22:36 +0900 Subject: [PATCH] revert "Release v1.0.0" (#688) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "[#634] v1 디렉토리 네이밍 수정 (#635)" This reverts commit 86c304aa0a02c747033b3ba09daff95dbeb2f63a. * Revert "[#632] 사용하지 않는 라이브러리 제거 (#633)" This reverts commit 34b4efb5af1214595a99aaaa7d2b96f4aa106b60. * Revert "[#627] 불필요한 utils, hooks, constants 정리 및 import문 통일 (#631)" This reverts commit 254f6bb89cc26c74db97524e10e81fb12362522d. * Revert "[#629] tailwind config color 정리 (#630)" This reverts commit 595f4767aec76c2010fe0980c1b27d84f31c9130. * Revert "[#622] BottomActionButton 패딩 수정 (#626)" This reverts commit 9796dab8afc25140a382e8a42cc8407992d5ecce. * Revert "[#625] Toast 컴포넌트 icon이 잘리는 문제 해결 (#628)" This reverts commit e868efc9e04301c51b7bd9ce096ae6b9c06631e1. * Revert "[#623] [도서 검색] Input 검색 아이콘 Layout Shift 해결 (#624)" This reverts commit d0392d6b91d2ce9b8e3d0ad016c9dc6f103a981d. * Revert "[#619] PWA 구현 (#621)" This reverts commit 587f990218ef5f71e321cbab8dccf2096ddc9039. * Revert "[#616] 책장 좋아요 뱃지 UI 수정 (#620)" This reverts commit 70af27a473717def1d14c51206cb8fa4c05e26c9. * Revert "[#349] 메타 데이터 추가 (#617)" This reverts commit 209ba3eabbce518825c147636c265b798d79b596. * Revert "[#556] 버튼 컴포넌트 disabled style 작성 (#615)" This reverts commit 04252236af469a6fa44d646f8b450e7452ffeba2. * Revert "[#610] 로그인 페이지 구현 (#614)" This reverts commit badcf8e11deb72fa0ab16d5bfc491d7e39db653d. * Revert "[#608] 페이지 접근 권한 부여 (#611)" This reverts commit 7f1cd2132b60995e39306b6ad52d7aa073c63629. * Revert "[#612] 북카이브 페이지에서 발생하는 무한 리랜더링 버그 수정 (#613)" This reverts commit bac4ff26106d6e916194e1ad94b314892408e260. * Revert "[#605] Google LightHouse CI 추가 (#606)" This reverts commit d6cccdbb735294628797eff8288132b652260bb6. * Revert "[#602] [모임 생성] 퍼널 progress bar, stepper 구현 (#607)" This reverts commit bcbdc67f8e0dc3035e3dfdea5b65a17bface2a9a. * Revert "[#603] [내 프로필] ErrorBoundary 제거 (#604)" This reverts commit f044cd2309919ba3e9f54948ea94d94d4b6000b7. * Revert "feat: start-ssl script 작성 (#601)" This reverts commit 8de707927ac44afc8d19e755a69404ec5cd15ebd. * Revert "[#596] accessToken이 만료된 직후 다른 페이지 접근할 때 에러 페이지를 보여주지 않고 새로고침 (#600)" This reverts commit 59407c6a05c7e0691160e76f9fcbf044f58f33e4. * Revert "[#592] [도서 검색] 검색 키워드 및 결과 유지 기능 구현 (#593)" This reverts commit af2413c5b2eb0728dd5169e8d133c81997c475b1. * Revert "[#595] Toast UI 개선 (#597)" This reverts commit 52e99927624fadad9fd93393a7f114e28a862042. * Revert "[#591] 3D 책 컴포넌트, 책장 페이지 개선 (#594)" This reverts commit 2beb0f2eed25dd7076288d75765be890e0eca2fb. * Revert "[#570] [도서 검색] 도서 검색 결과 렌더링 시 search 헤더 숨기고 input sticky 적용 (#589)" This reverts commit 0ff4ca02dc5929f2759f33fce7a2b0702d1231e4. * Revert "[#588] 폰트 디자인 시스템 적용 (#590)" This reverts commit 6a054a4903d5190abe77629b46588844b7ccb7f7. * Revert "[#557] [도서 검색] 최근 검색어 api 요청 (#587)" This reverts commit 591e9a87cf62b0f86577e2e08c8d534c0f02a411. * Revert "[#585] [프로필 페이지] '참여한 모임' 영역 사용자가 모임장인 모임에 마크 추가 (#586)" This reverts commit 3a3f26306d07b745852dcbfe72b7ed879c85d7a0. * Revert "[#575] Drawer 컴포넌트 개선 (#576)" This reverts commit cff01fd5473cb5ee71a65ea045b034d9795bfc7b. * Revert "[#581] [모임 생성] 모임 생성 퍼널 페이지 작성 (#582)" This reverts commit 55a08ee6141e9ccb4b08c4c5640172326648de58. * Revert "[#583] Switch 컴포넌트 style 수정 (#584)" This reverts commit e7798f793cc0984cf3fd93bcce48b75c5ccbaf50. * Revert "[#578] iOS 환경에서의 DatePicker UI 수정 (#579)" This reverts commit 24b42bf72842368eaa52233c4859f4ce03872a0d. * Revert "[#574] FloatingButton 버그 수정 (#577)" This reverts commit dd37ff57b8d7c7bfbcb31780ec6d1f31a96cc69f. * Revert "[#559] BookInfoCard 컴포넌트 수정 및 goToBookSelectStep 이벤트 추가 (#572)" This reverts commit f1c6a3c6a037766b49baa3901803fc2e2a97cba0. * Revert "[#571] Drawer 컴포넌트 style 개선 (#573)" This reverts commit f21ada4eb18ab0b9579b5bad89603a3963f96097. * Revert "[#561] [모임 생성] 모임 상세 퍼널 개선 (#567)" This reverts commit bbd1123c5cea009037b4f704f6e083535c8f8978. * Revert "[#552] next custom server 구동 시 hmr이 동작하지 않는 문제 해결 (#569)" This reverts commit 019abd5089682f74de4288fa71777a58d08ac086. * Revert "[#563] [모임 생성] 모임 가입문제 퍼널 (#568)" This reverts commit 4d6a14ff063c7071e300fafced856a7ebd459a8d. * Revert "[#564] BottomActionButton 컴포넌트 position 속성 수정 (#566)" This reverts commit 94365eee6b42daa9e02a8ef8f35d54d73b35fd97. * Revert "[#562] [모임 생성] 모임 이름 퍼널 (#565)" This reverts commit 0bd13492317699e200f5a7d246863721e82d4ba9. * Revert "[#543] [모임 생성] 책 선택 퍼널 (#560)" This reverts commit b2f52363e81541d13ab5f45f1a2e81c06c8675f1. * Revert "[#553] [모임 생성] 모임 상세 퍼널 (#558)" This reverts commit 31a6d8408d65123defd77dc1ee6e07efb7e72923. * Revert "[#554] 스토리북 preview decorator에서 Layout 제거 (#555)" This reverts commit 495321e5519f3200ade5e01001a39d668c9a2ed4. * Revert "[#549] 'unable to verify first certificate' 에러 해결 (#550)" This reverts commit bdfa45860d6d3a138629c9836cbc8132d8c6dfca. * Revert "fix: 모바일 환경에서의 스크롤 버그 수정 (#551)" This reverts commit 1d56794cfc4aa4e1cc45ee4ef4e3aa010ddb3bce. * Revert "[#546] [독서모임] 모임 페이지 누락된 작업 및 버그 수정 (#547)" This reverts commit 448e8b5f3c0635abef85e49ec7fe2e056ab090c0. * Revert "[#531] 로컬 서버에 https 적용 (#541)" This reverts commit f2f4a829fa7b591ae04e1723b7dd7173a4ee5e21. * Revert "[#540] [모임 생성] 모임 상세 퍼널 마크업 (#542)" This reverts commit 5d23ab36aa83449f7013aff938e50acd35b8cb26. * Revert "[#544] vscode react component snippet 작성 (#545)" This reverts commit 68dc181724c70d7dfa584de7a897316d84b5ee6f. * Revert "[#535] [독서모임] 독서모임 목록 페이지 개선 (#539)" This reverts commit 56137dfea71468ac2c91d8e90274109215c0cdf4. * Revert "[#505] [모임 상세] 모임 삭제 기능 구현 (#537)" This reverts commit efdb2c5774645724d5ba900a6f342f1321dbb62f. * Revert "[#530] FloatingButton 컴포넌트 적용 (#536)" This reverts commit 3671624c0e01e297127d7473edf672fcf308f2b2. * Revert "[#529] redirect 페이지 개선, 토큰 업데이트 로직 개선 (#532)" This reverts commit 0867ee46d5d3805b1fb8e7da7a7aa1c9d0cdee77. * Revert "[#523] [모임 상세] 모임 수정 페이지 (#527)" This reverts commit f889a790b95266aac8d809f90268d984e02caca0. * Revert "[#526] 도서 검색 페이지 개선 (#528)" This reverts commit 81b39b775727b272fc23a8c35cb858aa02e24352. * Revert "[#524] Menu 컴포넌트 개선 (#525)" This reverts commit 52687da5d2664be87500d4c385aa7ca4bc57ca97. * Revert "[#521] TextArea 컴포넌트 (#522)" This reverts commit a1673f6446b3b2ffc0d2ae5b4390380dcfa8424d. * Revert "[#518] Input 컴포넌트 style 추가 (#519)" This reverts commit 2bd859afc730077c631e3344cfb9874a4d6d34ea. * Revert "[#516] DatePicker 컴포넌트 (#520)" This reverts commit 63af14d74855ba4af5ab50547af85eef2ec6127a. * Revert "[#504] [모임 상세] 모임 게시글 작성 기능 구현 (#517)" This reverts commit e6f8d875b12c5444818f8e406e4f03c4712d3587. * Revert "[#509] [레이아웃] BottomNavigation 버그 및 UI 수정 (#510)" This reverts commit ada909ac0530b519f8787b7990481ded7df17921. * Revert "feat: 모임 게시글 수정, 삭제 기능 구현 (#513)" This reverts commit 36c1e71747e358cb7fe4c970a52a975f228c6e7d. * Revert "[#507] [프로필] 로그아웃 햄버거 구현 (#508)" This reverts commit 90c5855ae196772f30e14d9dee0023d7e1d946bb. * Revert "feat: hosts 파일을 수정할 수 있는 updateDevHost script 작성 (#511)" This reverts commit cd297e9f495c4fd1f78ee29f2f2464b910c1466c. * Revert "[#497] [책 상세] 책 상세 페이지 api 연결 (#500)" This reverts commit 7842028c77e6b1b43d7a0316f5b321ad27440839. * Revert "[#498] useFunnel 작성 (#501)" This reverts commit e6f7878b13cf15993fb5668fc7b0d71715bea86c. * Revert "[#489] [도서 검색] 도서검색 페이지 개선 작업 (#490)" This reverts commit 0043fe76f4a8a7f6c784b13fc9f27cdf842d7931. * Revert "[#491] [도서 검색] 베스트셀러 클릭 시 라우팅 경로 수정 (알라딘 -> 다독다독) (#492)" This reverts commit e68d1d3c8cc77793fd6eb5188537c6b83fdb2f63. * Revert "[#493] 에러 페이지 (#494)" This reverts commit e95c940f9b7b8f8a863a7f3df1156f842fdec892. * Revert "[#495] [책 상세] 책 상세 페이지 마크업 (#496)" This reverts commit 052e6d42e4c71a023cc97c56ee81655a4c1554d4. * Revert "[#474] 리프레시 토큰이 만료된 경우 에러 페이지로 넘어가는 이슈 수정 (#483)" This reverts commit 633da9f9b7d66099eabceacf1525e5a2850e501e. * Revert "[#486] [책 상세 / 모임 상세] 코멘트 목록 컴포넌트 (#487)" This reverts commit f452642f60c71946114c975b3667086f393cddb8. * Revert "[#443] TopNavigation 컴포넌트 스타일 fixed 적용 (#488)" This reverts commit 60d331196599598c1cb537c1dbb86bde80cf8d02. * Revert "[#468] [검색] 검색 페이지 작성 (#478)" This reverts commit 313d61ab93f68a53ff2fde9e538703db284a00a9. * Revert "[#481] [책 상세] 책 정보 컴포넌트 (#482)" This reverts commit 03fa16e7ddd7898a1486c75d177c72938a3cf832. * Revert "[#442] 스켈레톤 컴포넌트 작성 (#480)" This reverts commit 22b06a2eb44621d4ef35cd46ba4256929247b11b. * Revert "[#453] [모임] 모임 목록 페이지 개선 (#475)" This reverts commit c6b1ab18a6a6463fb2c6b64df90aedd326e686e7. * Revert "typo: 오타 수정 (#485)" This reverts commit 395e05033f684d4185eb0deb31b9c32467568fc4. * Revert "[#476] [모임 상세] 비로그인 시 모임 참여하기 버튼 비활성화 (#479)" This reverts commit a2e628dd35b903e52236ca68e212c85ed903a074. * Revert "[#472] Drawer 컴포넌트 (#477)" This reverts commit 5e54b7296325b0e434d6572163f75d29202ee3bc. * Revert "[#470] Menu 컴포넌트 (#471)" This reverts commit 0a4705d36fc3a45ea932694c3d5b2e6ce15f6610. * Revert "[#465] [모임] BookInfoCard 컴포넌트 추상화 (#466)" This reverts commit 81bc6d853ed1177db4b4d10a89bfae5d25a19f92. * Revert "[#467] 내가 가입한 모임 상세 페이지 (#469)" This reverts commit 75070ce6acca2e77c94460409170ec58507a54fb. * Revert "[#463] Loading 컴포넌트 animation 버그 해결 (#464)" This reverts commit 8219f674b401d118c18a9c9eebaafe859f7c52f9. * Revert "[#456] [프로필] 프로필 페이지 (#461)" This reverts commit 150592cd50917fa29dacc9b7682effa641b6f1cc. * Revert "[#455] [모임 상세] 모임 가입 문제 페이지 (#462)" This reverts commit 7bbdbaf4a67b359a33d725da96f3c8970fdf5892. * Revert "[#459] [유저 로그인] 로그인 BottomSheet 컴포넌트 작성 (#460)" This reverts commit da3fb33435ae21212e4c573f470f6ccc1c208856. * Revert "[#457] LikeButton 컴포넌트 (#458)" This reverts commit 9d1a5c7a8e7f0dc84acd75376f83e219dc5e535c. * Revert "베이스 컴포넌트 위치 변경 (#454)" This reverts commit fd8ad3174a3a6dd13e8cbc5ec001faf801a2b035. * Revert "[#447] [모임 상세] 모임 참여 여부, 모임장 여부에 따른 UI 구현 (#450)" This reverts commit 61ada97e426fff615a38e719e98394898df39ca9. * Revert "[#449] [책장] 책장 상세 페이지 (#451)" This reverts commit 1f389e4fcd0d263f70d5a702555f2f004f9c80a6. * Revert "[#445] Layout 컴포넌트에서 TopHeader 컴포넌트 분리 (#452)" This reverts commit 9d11c7084b7332f06e8aff8aee84dda7e185db63. * Revert "[#415] [프로필] 프로필 생성 페이지 (#427)" This reverts commit 4175612bd1dc6c6424701bb5cc45cffcfad56639. * Revert "[fix] group 페이지 타입 에러 수정 (#448)" This reverts commit 66005ea9ceb81331cd9d37073a414537a31e342d. * Revert "[#434] [모임 상세] 독서모임 상세 페이지 api 연결 (#441)" This reverts commit 617614f9caff38bd77acfee637c8c42be85c31cc. * Revert "[#439] [독서모임] 모임 목록 페이지 리팩토링 (#440)" This reverts commit f50f3930c6cfded56cb83f7921fdac6643cf8161. * Revert "[#414] [프로필] 프로필 수정 페이지 (#426)" This reverts commit 91b81710d482640937b309095f509926ff3e2194. * Revert "[#437] [독서모임] Avartar, bookGroupStatus 적용 및 typo 수정 (#438)" This reverts commit b56d3d5fab326dd0aa9fdcbc61e0d5ce7da33cea. * Revert "[#412] [북카이브] 북카이브 페이지 (회원) (#436)" This reverts commit 434dd73c3ea67b55a3600078359e29c5560638bc. * Revert "[refactor] bookcover v1 폴더로 이동 (#433)" This reverts commit 434dd8c29e81fc8571ec735660f10f9dbb2b395e. * Revert "[refactor] 폴더 및 파일 구조, 네이밍 수정 (#432)" This reverts commit 5ba2e21cdcab5493bf70e4f57b829845614ccbc2. * Revert "[fix] github 에서 대소문자 구문하지 못하는 문제 해결 (#431)" This reverts commit 549a5e9070df8aed7a8d9c3a93ab441c98019b35. * Revert "[#403] [모임 상세] 모임 정보 컴포넌트 (#423)" This reverts commit 378828c3939df96262ffacb17cd119798cbb413c. * Revert "fix: 이벤트 핸들러 명칭 변경" This reverts commit de6588ce7569b4f57011c3c727dcb3d976b1bce3. * Revert "fix: 컴포넌트명 변경" This reverts commit 03899d7c536eb2143796ada2545c4c738536e669. * Revert "fix: 스타일 관련 코드 수정 및 불필요한 요소 제거" This reverts commit 14a6b843438526bf07106e8b6bd835f3b0f1bd11. * Revert "feat: 내가 가입한 모임 simple ui 구현" This reverts commit 5dd3e60ddfcf7c32465190c280463a16df66f4e6. * Revert "[#410] [북카이브] 북카이브 페이지 (비회원) (#425)" This reverts commit 08c919d173e9997f5e5e2c94d6ea47e2798f2555. * Revert "[#411][독서 모임] Detail 독서 모임 컴포넌트 (#428)" This reverts commit cbb032ac46a33cfbc8ba6212219def47230ab0c9. * Revert "[#408] [모임 상세] 게시글 컴포넌트 (#429)" This reverts commit 2277b0d8579b4de9d18e593047e14bb651c908dd. * Revert "[#404][독서모임] 모임 검색 컴포넌트 (#419)" This reverts commit 281beee2e25dee397ce7b5f4cad1d9bb71de11d6. * Revert "[#418] Avatar 컴포넌트 (#420)" This reverts commit 51d471e5527acdb8cb50a2c253e9861e6f3f2d22. * Revert "[#406] [모임 상세] 멤버 목록 컴포넌트 (#424)" This reverts commit 199a234438ae70260b6b1e1c855f9b484d6b0d92. * Revert "[#399] Toast 컴포넌트 (#402)" This reverts commit 9333f872280118add7e325a57c635cec5148edfe. * Revert "[#405] [레이아웃] 공통 레이아웃 (#421)" This reverts commit fb8d8d69959ab4cc3e49be69969950f89ee10653. * Revert "[#398] RadioButton 컴포넌트 (#400)" This reverts commit 9c8bdc2c7cad140aab3a58b50b0644f2d80ffff8. * Revert "[#413] Issue 템플릿에 v1.0 라벨 추가 (#417)" This reverts commit facb746bad5934e013909e6ad7965d04a60b3800. * Revert "[#363] BottomActionButton 컴포넌트 (#395)" This reverts commit a653d3b3c45460e6b0974f646d9aded2b7d074cb. * Revert "[#366] BottomSheet 컴포넌트 (#394)" This reverts commit a43dea46db979664d218fe6738399d4359af6022. * Revert "[#364] Badge 컴포넌트 (#396)" This reverts commit 86edc76f11f0bd884e85786bea6158a207ba9df4. * Revert "[#362] TopNavigation 컴포넌트 리팩터링 (#393)" This reverts commit 55a6b98299ced4a96f1e83b8b19ac3ced84077b9. * Revert "[#361] BottomNavigation 컴포넌트 (#392)" This reverts commit d7d8ca62676960af3bf116227e194c3d4c1847aa. * Revert "[#388] Input, Select 컴포넌트 에러 처리 (#389)" This reverts commit f5bf5efeb50a19db7f6cbbbcb3e9d1db12ea11fd. * Revert "[#390] storybook snippet 작성 (#391)" This reverts commit 97984a79b7df135a8d8e69745dbfc7e76b36bd3a. * Revert "[#365] Modal 컴포넌트 (#387)" This reverts commit 8e931fcb8388854fb1324647e8936ac72955c04e. * Revert "[#367] Switch 컴포넌트 (#386)" This reverts commit e1b1ae9ab1078059e0a6383165f2f59a75aa9303. * Revert "[#382] Assets 정리 (#384)" This reverts commit 182def74e7347dc0b5940a964ade46c37b93a32e. * Revert "[#383] Select 컴포넌트 (#385)" This reverts commit 7c189bc81c5f6cd5e620903f3690c0520baf14d8. * Revert "[#357] TopHeader UI 컴포넌트 및 스토리북 작성 (#379)" This reverts commit 4dfbcc8350b99984f3bcf4336c78ec7cd1be89e1. * Revert "[#358] TopNavigation 컴포넌트 (#378)" This reverts commit 41f8f99f2b248265f0fa137cce7ffb9e6288cb7b. * Revert "[#360] Input 컴포넌트 작성 (#380)" This reverts commit e28792dc4482321047ab514bf3a5634883296cf7. * Revert "[#359] Button 컴포넌트 (#381)" This reverts commit 6b84755a0a581c6cda70f7baf446da54f9ee7677. * Revert "[#376] Storybook 설정 및 GlobalTheme, Font 수정 (#377)" This reverts commit 3a7a9e652e1e9c29ed04fb4044a766512aeeddfa. * Revert "[#374] Tailwind 클래스를 정렬하기 위한 Prettier 플러그인 추가 (#375)" This reverts commit e36516015a1d5076a8209dce7d1800acc005dd76. * Revert "[#372] Theme, GlobalStyle, Font 세팅 (#373)" This reverts commit 4f7df42a50c8bf423a82b8cfb56e7c74d2754e14. * Revert "[#370] Storybook & Headless UI 추가 (#371)" This reverts commit 7ad8aefd608670a7c7571aff98e81ab2188ed260. --- .eslintrc.json | 3 +- .github/ISSUE_TEMPLATE/issue-template.md | 2 +- .github/actions/get-score-comments/action.js | 101 - .github/actions/get-score-comments/action.yml | 10 - .github/workflows/chromatic.yml | 50 - .github/workflows/lighthouse.yml | 55 - .gitignore | 9 - .prettierrc.json => .prettierrc | 0 .storybook/main.ts | 39 - .storybook/preview.tsx | 116 - .vscode/react.code-snippets | 19 - .vscode/storybook.code-snippets | 24 - lighthouserc.js | 20 - next.config.js | 45 +- package.json | 56 +- patches/next+13.4.7.dev.patch | 43 - postcss.config.js | 6 - public/icons/arrow-left.svg | 3 - public/icons/arrow-right.svg | 3 - public/icons/avatar.svg | 10 - public/icons/back.svg | 3 + public/icons/book-plus.svg | 3 - public/icons/{group.svg => book.svg} | 2 +- public/icons/bookIcon.svg | 3 + public/icons/bookmark.svg | 2 +- .../icons/{bookarchive.svg => bookshelf.svg} | 0 public/icons/calendar.svg | 10 - public/icons/check-circle.svg | 9 - public/icons/check-stroke.svg | 3 - public/icons/check.svg | 3 - public/icons/close.svg | 5 +- public/icons/commentIcon.svg | 3 + public/icons/comments.svg | 3 - public/icons/delete.svg | 3 - public/icons/error-circle.svg | 10 - public/icons/error-with-exclamation.svg | 3 - public/icons/hamburger.svg | 5 - public/icons/{discover.svg => hashtag.svg} | 0 public/icons/heart.svg | 3 - public/icons/index.ts | 42 - public/icons/job-card.svg | 5 + public/icons/kakao.svg | 4 +- public/icons/like.svg | 3 + public/icons/lock.svg | 3 + public/icons/{logo.svg => logo_sm.svg} | 0 public/icons/members.svg | 3 - public/icons/more-circle.svg | 3 + public/icons/more.svg | 3 + public/icons/options.svg | 5 - public/icons/peopleIcon.svg | 3 + public/icons/plus-circle.svg | 4 + public/icons/plus.svg | 3 - public/icons/post.svg | 3 - public/icons/search.svg | 5 +- public/icons/select-icon.svg | 3 - public/icons/share.svg | 6 +- public/icons/unlock.svg | 3 + public/icons/{profile.svg => user.svg} | 0 public/icons/warning-circle.svg | 10 - public/icons/write.svg | 3 + public/images/icon-128x128.png | Bin 3968 -> 0 bytes public/images/icon-192x192.png | Bin 6499 -> 0 bytes public/images/icon-256x256.png | Bin 8182 -> 0 bytes public/images/icon-384x384.png | Bin 14766 -> 0 bytes public/images/icon-512x512.png | Bin 16206 -> 0 bytes public/images/kakao.svg | 3 + public/images/login-landing.jpg | Bin 118157 -> 0 bytes .../logo-with-text.svg => images/logo.svg} | 2 +- .../splash-screens/10.2__iPad_landscape.png | Bin 86191 -> 0 bytes .../splash-screens/10.2__iPad_portrait.png | Bin 88735 -> 0 bytes .../10.5__iPad_Air_landscape.png | Bin 90460 -> 0 bytes .../10.5__iPad_Air_portrait.png | Bin 91113 -> 0 bytes .../10.9__iPad_Air_landscape.png | Bin 95940 -> 0 bytes .../10.9__iPad_Air_portrait.png | Bin 96744 -> 0 bytes .../11__iPad_Pro_M4_landscape.png | Bin 100467 -> 0 bytes .../11__iPad_Pro_M4_portrait.png | Bin 99783 -> 0 bytes ...11__iPad_Pro__10.5__iPad_Pro_landscape.png | Bin 98976 -> 0 bytes .../11__iPad_Pro__10.5__iPad_Pro_portrait.png | Bin 98174 -> 0 bytes .../12.9__iPad_Pro_landscape.png | Bin 132698 -> 0 bytes .../12.9__iPad_Pro_portrait.png | Bin 133565 -> 0 bytes .../13__iPad_Pro_M4_landscape.png | Bin 135112 -> 0 bytes .../13__iPad_Pro_M4_portrait.png | Bin 137054 -> 0 bytes ...uch_5th_generation_and_later_landscape.png | Bin 22655 -> 0 bytes ...ouch_5th_generation_and_later_portrait.png | Bin 22743 -> 0 bytes .../8.3__iPad_Mini_landscape.png | Bin 85681 -> 0 bytes .../8.3__iPad_Mini_portrait.png | Bin 88405 -> 0 bytes ...ni__9.7__iPad_Air__9.7__iPad_landscape.png | Bin 79059 -> 0 bytes ...ini__9.7__iPad_Air__9.7__iPad_portrait.png | Bin 80068 -> 0 bytes ...ne_11_Pro_Max__iPhone_XS_Max_landscape.png | Bin 90530 -> 0 bytes ...one_11_Pro_Max__iPhone_XS_Max_portrait.png | Bin 92918 -> 0 bytes .../iPhone_11__iPhone_XR_landscape.png | Bin 44383 -> 0 bytes .../iPhone_11__iPhone_XR_portrait.png | Bin 44753 -> 0 bytes ..._11_Pro__iPhone_XS__iPhone_X_landscape.png | Bin 75745 -> 0 bytes ...e_11_Pro__iPhone_XS__iPhone_X_portrait.png | Bin 76227 -> 0 bytes ...3_Pro_Max__iPhone_12_Pro_Max_landscape.png | Bin 97050 -> 0 bytes ...13_Pro_Max__iPhone_12_Pro_Max_portrait.png | Bin 98551 -> 0 bytes ...13__iPhone_12_Pro__iPhone_12_landscape.png | Bin 81111 -> 0 bytes ..._13__iPhone_12_Pro__iPhone_12_portrait.png | Bin 83697 -> 0 bytes ...e_15_Plus__iPhone_14_Pro_Max_landscape.png | Bin 97761 -> 0 bytes ...ne_15_Plus__iPhone_14_Pro_Max_portrait.png | Bin 98127 -> 0 bytes ...ro__iPhone_15__iPhone_14_Pro_landscape.png | Bin 82224 -> 0 bytes ...Pro__iPhone_15__iPhone_14_Pro_portrait.png | Bin 85507 -> 0 bytes ...Phone_6s_Plus__iPhone_6_Plus_landscape.png | Bin 73033 -> 0 bytes ...iPhone_6s_Plus__iPhone_6_Plus_portrait.png | Bin 73727 -> 0 bytes ...6s__iPhone_6__4.7__iPhone_SE_landscape.png | Bin 29201 -> 0 bytes ..._6s__iPhone_6__4.7__iPhone_SE_portrait.png | Bin 30874 -> 0 bytes public/mockServiceWorker.js | 303 - public/pwaServiceWorker.js | 7 - scripts/init-mkcert.sh | 28 - scripts/server.js | 52 - scripts/updateDevHost.js | 86 - src/apis/{book.ts => book/index.ts} | 26 +- src/apis/{bookshelf.ts => bookshelf/index.ts} | 2 +- src/apis/core/axios.ts | 53 +- src/apis/{group.ts => group/index.ts} | 8 +- src/apis/{job.ts => job/index.ts} | 2 +- src/apis/{recommend.ts => recommend/index.ts} | 6 +- src/apis/{user.ts => user.tsx} | 6 +- src/app/[...not_found]/page.ts | 5 - src/app/book/[bookId]/page.tsx | 202 +- src/app/book/search/page.tsx | 208 +- src/app/book/sitemap.ts | 47 - src/app/bookarchive/page.tsx | 47 +- src/app/bookshelf/[bookshelfId]/page.tsx | 289 +- src/app/bookshelf/sitemap.ts | 40 - src/app/error.tsx | 45 + src/app/global-error.tsx | 38 - src/app/group/[groupId]/edit/page.tsx | 125 +- src/app/group/[groupId]/join/page.tsx | 106 - src/app/group/[groupId]/not-found.tsx | 19 - src/app/group/[groupId]/page.tsx | 63 +- src/app/group/create/page.tsx | 20 +- src/app/group/page.tsx | 213 +- src/app/group/sitemap.ts | 38 - src/app/layout.tsx | 66 +- src/app/loading.tsx | 5 - src/app/login/page.tsx | 79 +- src/app/login/redirect/page.tsx | 46 +- src/app/manifest.webmanifest | 36 - src/app/not-found.tsx | 59 +- src/app/opengraph-image.jpg | Bin 316801 -> 0 bytes src/app/profile/[userId]/page.tsx | 26 +- src/app/profile/me/add/page.tsx | 50 +- src/app/profile/me/edit/page.tsx | 46 +- src/app/profile/me/group/page.tsx | 94 - src/app/profile/me/page.tsx | 142 +- src/app/robots.ts | 12 - src/app/sitemap.ts | 25 - src/components/ChakraThemeProvider.tsx | 13 + src/components/ContextProvider.tsx | 30 + .../{common => }/ReactQueryProvider.tsx | 12 +- src/components/book/BookCover.tsx | 98 - src/components/book/detail/BookInfo.tsx | 150 - .../bookArchive/BookArchiveForAuth.tsx | 60 - .../bookArchive/BookArchiveForUnAuth.tsx | 25 - .../bookGroup/BookGroupNavigation.tsx | 284 - src/components/bookGroup/BookGroupStatus.tsx | 61 - src/components/bookGroup/BookInfoCard.tsx | 117 - .../bookGroup/DetailBookGroupCard.tsx | 150 - src/components/bookGroup/SearchGroup.tsx | 25 - .../bookGroup/SimpleBookGroupCard.tsx | 38 - .../create/CreateBookGroupFunnel.tsx | 160 - .../steps/EnterTitleStep/EnterTitleStep.tsx | 39 - .../EnterTitleStep/fields/TitleField.tsx | 47 - .../steps/EnterTitleStep/fields/index.ts | 1 - .../steps/SelectBookStep/SelectBookStep.tsx | 119 - .../SelectJoinTypeStep/SelectJoinTypeStep.tsx | 49 - .../fields/JoinPasswordFieldset.tsx | 122 - .../fields/JoinTypeFieldset.tsx | 35 - .../fields/JoinTypeRadioCard.tsx | 39 - .../steps/SelectJoinTypeStep/fields/index.ts | 2 - .../steps/SetUpDetailStep/SetUpDetailStep.tsx | 321 - .../bookGroup/create/steps/index.ts | 4 - src/components/bookGroup/create/types.ts | 40 - .../bookGroup/detail/BookGroupInfo.tsx | 105 - .../bookGroup/detail/JoinBookGroupButton.tsx | 40 - .../bookGroup/detail/MemberItem.tsx | 39 - .../bookGroup/detail/ShortMemberInfo.tsx | 59 - .../bookGroup/edit/BookGroupEditDateForm.tsx | 50 - .../edit/BookGroupEditIntroduceForm.tsx | 40 - .../bookGroup/edit/BookGroupEditTitleForm.tsx | 47 - .../edit/BookGroupEditTopNavigation.tsx | 37 - src/components/bookSearch/BestSellers.tsx | 193 - src/components/bookSearch/BookSearchList.tsx | 85 - .../bookSearch/RecentSearchList.tsx | 56 - src/components/bookShelf/BookShelf.tsx | 136 - src/components/bookShelf/BookShelfCard.tsx | 28 - src/components/bookShelf/BookShelfRow.tsx | 16 - src/components/comment/BookCommentList.tsx | 56 - .../comment/BookGroupCommentList.tsx | 65 - src/components/comment/CommentDrawer.tsx | 70 - src/components/comment/CommentList.tsx | 206 - .../common/AuthFailedErrorBoundary.tsx | 43 - src/components/common/Avatar.tsx | 76 - src/components/common/BackButton.tsx | 15 - src/components/common/Badge.tsx | 93 - src/components/common/BottomActionButton.tsx | 23 - src/components/common/BottomNavigation.tsx | 61 - src/components/common/BottomSheet.tsx | 53 - src/components/common/Button.tsx | 108 - src/components/common/ContextProvider.tsx | 20 - src/components/common/DatePicker.tsx | 86 - src/components/common/Drawer.tsx | 136 - src/components/common/ErrorMessage.tsx | 19 - src/components/common/FloatingButton.tsx | 30 - src/components/common/Funnel.tsx | 48 - src/components/common/Input.tsx | 70 - src/components/common/InputLength.tsx | 22 - src/components/common/LikeButton.tsx | 30 - src/components/common/Loading.tsx | 55 - .../common/LoginBottomActionButton.tsx | 13 - src/components/common/Menu.tsx | 99 - src/components/common/Modal.tsx | 48 - .../common/PWAServiceWorkerProvider.tsx | 31 - src/components/common/Portal.tsx | 32 - src/components/common/ProgressBar.tsx | 29 - .../common/QueryErrorBoundaryFallback.tsx | 18 - src/components/common/RadioButton.tsx | 30 - src/components/common/SSRSafeSuspense.tsx | 15 - src/components/common/Select.tsx | 53 - src/components/common/ShareButton.tsx | 28 - src/components/common/Skeleton.tsx | 104 - src/components/common/Stepper.tsx | 113 - src/components/common/Switch.tsx | 30 - src/components/common/TextArea.tsx | 104 - src/components/common/Toast/ToastItem.tsx | 26 - src/components/common/Toast/ToastProvider.tsx | 55 - src/components/common/Toast/types.ts | 11 - src/components/common/Toast/useToast.ts | 17 - src/components/common/TopHeader.tsx | 16 - src/components/common/TopNavigation.tsx | 53 - src/components/layout/Layout.tsx | 33 - src/components/profile/AddJobProfile.tsx | 198 - src/components/profile/EditProfile.tsx | 187 - src/components/profile/LoginBottomSheet.tsx | 44 - .../bookShelf/MyProfileBookshelfContainer.tsx | 11 - .../profile/bookShelf/ProfileBookShelf.tsx | 14 - .../bookShelf/ProfileBookshelfPresenter.tsx | 39 - .../UserProfileBookshelfContainer.tsx | 16 - src/components/profile/group/ProfileGroup.tsx | 44 - .../profile/group/ProfileGroupContainer.tsx | 28 - .../profile/group/ProfileGroupPresenter.tsx | 44 - src/components/profile/info/ProfileInfo.tsx | 42 - .../profile/info/ProfileInfoPresenter.tsx | 42 - src/constants/FormRule/index.ts | 120 + src/constants/groupRadioValues.ts | 50 +- src/constants/index.ts | 1 - src/constants/initialBookGroupComments.ts | 38 + src/constants/metadata/appleSplashScreens.ts | 232 - src/constants/metadata/index.ts | 1 - src/constants/url.ts | 6 - src/hocs/withAuthRequired.tsx | 36 - src/hocs/withScrollLockOnFocus.tsx | 25 - src/hooks/auth/atoms/index.ts | 22 + src/hooks/auth/index.ts | 1 + src/hooks/auth/useAuth.ts | 23 + src/hooks/group/useJoinBookGroup.ts | 56 - src/hooks/toast/atoms/index.ts | 12 + src/hooks/toast/index.ts | 1 + src/hooks/toast/useToast.ts | 29 + src/hooks/useDisclosure.ts | 17 - src/hooks/useFunnel.tsx | 93 - src/hooks/useOutsideClickRef.ts | 42 - src/hooks/useQueryParams.ts | 70 - src/hooks/useQueryWithSuspense.ts | 4 +- src/hooks/useRemoveVerticalScroll.ts | 66 - src/hooks/useScroll.ts | 21 + src/hooks/useToggle.ts | 10 + src/queries/book/key.ts | 18 - src/queries/book/useBestSellersQuery.ts | 19 - .../book/useBookCommentPatchMutation.ts | 17 + src/queries/book/useBookCommentsQuery.ts | 53 +- src/queries/book/useBookInfoQuery.ts | 40 +- src/queries/book/useBookSearchQuery.ts | 7 +- src/queries/book/useBookUserInfoQuery.ts | 19 + src/queries/book/useBookmarkUserQuery.ts | 17 - .../book/useCreateBookCommentMutation.ts | 19 - .../book/useDeleteBookCommentMutation.ts | 19 - .../book/usePatchBookCommentMutation.ts | 21 - src/queries/book/useRecentSearchesQuery.ts | 21 +- src/queries/book/useUpdateBookmarkMutation.ts | 57 - src/queries/bookshelf/key.ts | 12 - .../bookshelf/useBookShelfBookListQuery.ts | 37 - .../bookshelf/useBookShelfInfoQuery.ts | 20 - .../useBookshelfBookListQuery/index.ts | 23 + .../bookshelf/useBookshelfInfoQuery/index.ts | 14 + .../bookshelf/useBookshelfLikeMutation.ts | 87 + .../bookshelf/useMutateBookshelfLikeQuery.ts | 52 - .../bookshelf/useMySummaryBookShelfQuery.ts | 15 - .../useMySummaryBookshelfQuery/index.ts | 13 + .../index.ts} | 11 +- src/queries/group/key.ts | 13 - .../group/useBookGroupCommentsQuery.ts | 47 - src/queries/group/useBookGroupQuery.ts | 95 - .../useCreateBookGroupCommentMutation.ts | 25 - .../group/useCreateBookGroupMutation.ts | 13 - .../useDeleteBookGroupCommentMutation.ts | 25 - .../group/useDeleteBookGroupMutation.ts | 14 - .../index.tsx} | 0 .../group/useGroupCommentsQuery/index.tsx | 14 + .../index.tsx} | 0 .../index.ts} | 7 +- .../group/usePatchBookGroupCommentMutation.ts | 31 - src/queries/job/key.ts | 6 - .../index.ts} | 9 +- .../index.tsx} | 11 +- .../index.tsx} | 11 +- .../index.tsx} | 5 +- src/queries/user/key.ts | 10 - .../index.ts} | 1 - src/queries/user/useMyProfileQuery.ts | 18 +- src/queries/user/useUserProfileQuery.ts | 12 +- src/stories/book/detail/BookInfo.stories.tsx | 15 - .../bookGroup/BookGroupStatus.stories.tsx | 19 - .../bookGroup/BookInfoCard.stories.tsx | 20 - .../bookGroup/DetailBookGroupCard.stories.tsx | 34 - src/stories/bookGroup/SearchGroup.stories.tsx | 26 - .../bookGroup/SimpleBookGroupCard.stories.tsx | 30 - .../create/steps/EnterTitleStep.stories.tsx | 38 - .../create/steps/SelectBookStep.stories.tsx | 38 - .../steps/SelectJoinTypeStep.stories.tsx | 45 - .../create/steps/SetUpDetailStep.stories.tsx | 69 - .../bookGroup/detail/MemberItem.stories.tsx | 22 - .../detail/ShortMemberInfo.stories.tsx | 48 - .../bookSearch/BestSellers.stories.tsx | 14 - .../bookSearch/RecentSearch.stories.tsx | 34 - .../bookSearch/SearchResult.stories.tsx | 32 - .../bookShelf/BookShelfCard.stories.tsx | 43 - src/stories/comment/CommentList.stories.tsx | 58 - src/stories/common/Avatar.stories.tsx | 21 - src/stories/common/Badge.stories.tsx | 56 - .../common/BottomActionButton.stories.tsx | 28 - .../common/BottomNavigation.stories.tsx | 40 - src/stories/common/BottomSheet.stories.tsx | 77 - src/stories/common/Button.stories.tsx | 84 - src/stories/common/DatePicker.stories.tsx | 109 - src/stories/common/Drawer.stories.tsx | 73 - src/stories/common/FloatingButton.stories.tsx | 19 - src/stories/common/Input.stories.tsx | 148 - src/stories/common/InputLength.stories.tsx | 76 - src/stories/common/LikeButton.stories.tsx | 26 - src/stories/common/Loading.stories.tsx | 24 - src/stories/common/Menu.stories.tsx | 41 - src/stories/common/Modal.stories.tsx | 82 - src/stories/common/ProgressBar.stories.tsx | 16 - src/stories/common/RadioButton.stories.tsx | 57 - src/stories/common/Select.stories.tsx | 122 - src/stories/common/Skeleton.stories.tsx | 60 - src/stories/common/Stepper.stories.tsx | 24 - src/stories/common/Switch.stories.tsx | 57 - src/stories/common/TextArea.stories.tsx | 54 - src/stories/common/Toast.stories.tsx | 68 - src/stories/common/TopHeader.stories.tsx | 33 - src/stories/common/TopNavigation.stories.tsx | 115 - src/stories/layout/Layout.stories.tsx | 31 - src/stories/meta.tsx | 17 - src/styles/font/{index.ts => index.tsx} | 3 +- src/styles/global.css | 109 - src/styles/theme.tsx | 139 + src/types/book.ts | 73 +- src/types/bookshelf.ts | 4 +- src/types/common.ts | 8 - .../customError/AuthRefreshIgnoredError.ts | 11 - src/types/customError/index.ts | 1 - src/types/dday.ts | 1 - src/types/group.ts | 42 +- src/types/query.ts | 5 +- src/types/user.ts | 23 +- src/ui/AuthRequired/index.tsx | 23 + src/ui/BookArchive/BookArchiveForAuth.tsx | 60 + src/ui/BookArchive/BookArchiveForUnAuth.tsx | 36 + src/ui/BookArchive/index.tsx | 2 + src/ui/BookDetail/BookComment.tsx | 189 + src/ui/BookDetail/BookCommentList.tsx | 167 + src/ui/BookDetail/BookInfo.tsx | 147 + src/ui/BookDetail/CommentDrawer.tsx | 77 + src/ui/BookDetail/index.tsx | 2 + src/ui/BookSearch/RecentSearches.tsx | 49 + src/ui/BookSearch/SearchedBook.tsx | 67 + src/ui/BookSearch/index.tsx | 122 + .../BottomNavigation/NavigationItem/index.tsx | 52 + src/ui/BottomNavigation/index.tsx | 72 + src/ui/FormInput/index.tsx | 128 + src/ui/FormRadio/index.tsx | 71 + src/ui/FormSelect/index.tsx | 56 + src/ui/Group/AddGroupForm.tsx | 340 + src/ui/Group/EditGroupForm.tsx | 83 + .../Group/GroupComment/CommentDeleteModal.tsx | 108 + src/ui/Group/GroupComment/CommentInputBox.tsx | 73 + .../Group/GroupComment/CommentModifyModal.tsx | 58 + src/ui/Group/GroupComment/GuideMessage.tsx | 74 + src/ui/Group/GroupComment/index.tsx | 140 + src/ui/Group/GroupDetail/GroupInfo.tsx | 321 + src/ui/Group/GroupDetail/index.tsx | 123 + src/ui/Group/GroupHeader.tsx | 57 + src/ui/Group/GroupList/GroupListItem.tsx | 138 + src/ui/Group/GroupList/index.tsx | 18 + src/ui/Group/GroupSearch.tsx | 83 + src/ui/InteractiveBook/index.tsx | 86 + .../InitialBookShelfData.tsx | 47 + src/ui/InteractiveBookShelf/index.tsx | 80 + src/ui/LoginBottomSheet/CloseButton/index.tsx | 23 + src/ui/LoginBottomSheet/index.tsx | 53 + .../MyProfileBookshelfContainer.tsx | 14 + .../ProfileBookshelfPresenter.tsx | 45 + .../UserProfileBookshelfContainer.tsx | 19 + src/ui/Profile/ProfileBookshelf/index.tsx | 45 + src/ui/Profile/ProfileForm.tsx | 99 + .../ProfileGroup/ProfileGroupContainer.tsx | 12 + .../ProfileGroup/ProfileGroupPresenter.tsx | 28 + src/ui/Profile/ProfileGroup/index.tsx | 39 + .../ProfileInfo}/MyProfileInfoContainer.tsx | 10 +- .../ProfileInfo/ProfileInfoPresenter.tsx | 38 + .../ProfileInfo}/UserProfileInfoContainer.tsx | 5 +- src/ui/Profile/ProfileInfo/index.tsx | 56 + src/ui/Recommended/RecommendedBooks.tsx | 66 + src/ui/Recommended/RecommendedBookshelf.tsx | 41 + src/ui/Recommended/index.tsx | 2 + src/ui/UserJobInfoTag/index.tsx | 23 + src/ui/common/BookshelfLike/LikeButton.tsx | 48 + src/ui/common/BookshelfLike/LikeCount.tsx | 37 + src/ui/common/BookshelfLike/index.tsx | 2 + src/ui/common/BottomSheet.tsx | 81 + src/ui/common/Button/index.tsx | 40 + src/ui/common/IconButton/index.tsx | 58 + src/ui/common/Layout/index.tsx | 44 + src/ui/common/Logo/index.tsx | 16 + src/ui/common/Menu/Menu.tsx | 26 + src/ui/common/Menu/MenuItem.tsx | 20 + src/ui/common/Menu/index.ts | 2 + .../QueryErrorBoundaryFallback/index.tsx | 31 + src/ui/common/Toast/ToastItem.tsx | 46 + src/ui/common/Toast/index.tsx | 22 + src/ui/common/TopNavigation/index.tsx | 33 + src/utils/assert.ts | 9 - src/utils/date.ts | 31 - src/utils/eventListener.ts | 32 - src/utils/helpers/auth.ts | 4 +- src/utils/helpers/axiosHandler.ts | 32 + src/utils/helpers/index.ts | 1 + src/utils/{storage.ts => storage.tsx} | 0 tailwind.config.js | 203 - yarn.lock | 9835 ++++------------- 443 files changed, 7701 insertions(+), 20835 deletions(-) delete mode 100644 .github/actions/get-score-comments/action.js delete mode 100644 .github/actions/get-score-comments/action.yml delete mode 100644 .github/workflows/chromatic.yml delete mode 100644 .github/workflows/lighthouse.yml rename .prettierrc.json => .prettierrc (100%) delete mode 100644 .storybook/main.ts delete mode 100644 .storybook/preview.tsx delete mode 100644 .vscode/react.code-snippets delete mode 100644 .vscode/storybook.code-snippets delete mode 100644 lighthouserc.js delete mode 100644 patches/next+13.4.7.dev.patch delete mode 100644 postcss.config.js delete mode 100644 public/icons/arrow-left.svg delete mode 100644 public/icons/arrow-right.svg delete mode 100644 public/icons/avatar.svg create mode 100644 public/icons/back.svg delete mode 100644 public/icons/book-plus.svg rename public/icons/{group.svg => book.svg} (93%) create mode 100644 public/icons/bookIcon.svg rename public/icons/{bookarchive.svg => bookshelf.svg} (100%) delete mode 100644 public/icons/calendar.svg delete mode 100644 public/icons/check-circle.svg delete mode 100644 public/icons/check-stroke.svg delete mode 100644 public/icons/check.svg create mode 100644 public/icons/commentIcon.svg delete mode 100644 public/icons/comments.svg delete mode 100644 public/icons/delete.svg delete mode 100644 public/icons/error-circle.svg delete mode 100644 public/icons/error-with-exclamation.svg delete mode 100644 public/icons/hamburger.svg rename public/icons/{discover.svg => hashtag.svg} (100%) delete mode 100644 public/icons/heart.svg delete mode 100644 public/icons/index.ts create mode 100644 public/icons/job-card.svg create mode 100644 public/icons/like.svg create mode 100644 public/icons/lock.svg rename public/icons/{logo.svg => logo_sm.svg} (100%) delete mode 100644 public/icons/members.svg create mode 100644 public/icons/more-circle.svg create mode 100644 public/icons/more.svg delete mode 100644 public/icons/options.svg create mode 100644 public/icons/peopleIcon.svg create mode 100644 public/icons/plus-circle.svg delete mode 100644 public/icons/plus.svg delete mode 100644 public/icons/post.svg delete mode 100644 public/icons/select-icon.svg create mode 100644 public/icons/unlock.svg rename public/icons/{profile.svg => user.svg} (100%) delete mode 100644 public/icons/warning-circle.svg create mode 100644 public/icons/write.svg delete mode 100644 public/images/icon-128x128.png delete mode 100644 public/images/icon-192x192.png delete mode 100644 public/images/icon-256x256.png delete mode 100644 public/images/icon-384x384.png delete mode 100644 public/images/icon-512x512.png create mode 100644 public/images/kakao.svg delete mode 100644 public/images/login-landing.jpg rename public/{icons/logo-with-text.svg => images/logo.svg} (99%) delete mode 100644 public/images/splash-screens/10.2__iPad_landscape.png delete mode 100644 public/images/splash-screens/10.2__iPad_portrait.png delete mode 100644 public/images/splash-screens/10.5__iPad_Air_landscape.png delete mode 100644 public/images/splash-screens/10.5__iPad_Air_portrait.png delete mode 100644 public/images/splash-screens/10.9__iPad_Air_landscape.png delete mode 100644 public/images/splash-screens/10.9__iPad_Air_portrait.png delete mode 100644 public/images/splash-screens/11__iPad_Pro_M4_landscape.png delete mode 100644 public/images/splash-screens/11__iPad_Pro_M4_portrait.png delete mode 100644 public/images/splash-screens/11__iPad_Pro__10.5__iPad_Pro_landscape.png delete mode 100644 public/images/splash-screens/11__iPad_Pro__10.5__iPad_Pro_portrait.png delete mode 100644 public/images/splash-screens/12.9__iPad_Pro_landscape.png delete mode 100644 public/images/splash-screens/12.9__iPad_Pro_portrait.png delete mode 100644 public/images/splash-screens/13__iPad_Pro_M4_landscape.png delete mode 100644 public/images/splash-screens/13__iPad_Pro_M4_portrait.png delete mode 100644 public/images/splash-screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_landscape.png delete mode 100644 public/images/splash-screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_portrait.png delete mode 100644 public/images/splash-screens/8.3__iPad_Mini_landscape.png delete mode 100644 public/images/splash-screens/8.3__iPad_Mini_portrait.png delete mode 100644 public/images/splash-screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_landscape.png delete mode 100644 public/images/splash-screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_portrait.png delete mode 100644 public/images/splash-screens/iPhone_11_Pro_Max__iPhone_XS_Max_landscape.png delete mode 100644 public/images/splash-screens/iPhone_11_Pro_Max__iPhone_XS_Max_portrait.png delete mode 100644 public/images/splash-screens/iPhone_11__iPhone_XR_landscape.png delete mode 100644 public/images/splash-screens/iPhone_11__iPhone_XR_portrait.png delete mode 100644 public/images/splash-screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_landscape.png delete mode 100644 public/images/splash-screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_portrait.png delete mode 100644 public/images/splash-screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_landscape.png delete mode 100644 public/images/splash-screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_portrait.png delete mode 100644 public/images/splash-screens/iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_landscape.png delete mode 100644 public/images/splash-screens/iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_portrait.png delete mode 100644 public/images/splash-screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_landscape.png delete mode 100644 public/images/splash-screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_portrait.png delete mode 100644 public/images/splash-screens/iPhone_15_Pro__iPhone_15__iPhone_14_Pro_landscape.png delete mode 100644 public/images/splash-screens/iPhone_15_Pro__iPhone_15__iPhone_14_Pro_portrait.png delete mode 100644 public/images/splash-screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_landscape.png delete mode 100644 public/images/splash-screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_portrait.png delete mode 100644 public/images/splash-screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_landscape.png delete mode 100644 public/images/splash-screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_portrait.png delete mode 100644 public/mockServiceWorker.js delete mode 100644 public/pwaServiceWorker.js delete mode 100644 scripts/init-mkcert.sh delete mode 100644 scripts/server.js delete mode 100644 scripts/updateDevHost.js rename src/apis/{book.ts => book/index.ts} (76%) rename src/apis/{bookshelf.ts => bookshelf/index.ts} (96%) rename src/apis/{group.ts => group/index.ts} (94%) rename src/apis/{job.ts => job/index.ts} (78%) rename src/apis/{recommend.ts => recommend/index.ts} (87%) rename src/apis/{user.ts => user.tsx} (75%) delete mode 100644 src/app/[...not_found]/page.ts delete mode 100644 src/app/book/sitemap.ts delete mode 100644 src/app/bookshelf/sitemap.ts create mode 100644 src/app/error.tsx delete mode 100644 src/app/global-error.tsx delete mode 100644 src/app/group/[groupId]/join/page.tsx delete mode 100644 src/app/group/[groupId]/not-found.tsx delete mode 100644 src/app/group/sitemap.ts delete mode 100644 src/app/loading.tsx delete mode 100644 src/app/manifest.webmanifest delete mode 100644 src/app/opengraph-image.jpg delete mode 100644 src/app/profile/me/group/page.tsx delete mode 100644 src/app/robots.ts delete mode 100644 src/app/sitemap.ts create mode 100644 src/components/ChakraThemeProvider.tsx create mode 100644 src/components/ContextProvider.tsx rename src/components/{common => }/ReactQueryProvider.tsx (69%) delete mode 100644 src/components/book/BookCover.tsx delete mode 100644 src/components/book/detail/BookInfo.tsx delete mode 100644 src/components/bookArchive/BookArchiveForAuth.tsx delete mode 100644 src/components/bookArchive/BookArchiveForUnAuth.tsx delete mode 100644 src/components/bookGroup/BookGroupNavigation.tsx delete mode 100644 src/components/bookGroup/BookGroupStatus.tsx delete mode 100644 src/components/bookGroup/BookInfoCard.tsx delete mode 100644 src/components/bookGroup/DetailBookGroupCard.tsx delete mode 100644 src/components/bookGroup/SearchGroup.tsx delete mode 100644 src/components/bookGroup/SimpleBookGroupCard.tsx delete mode 100644 src/components/bookGroup/create/CreateBookGroupFunnel.tsx delete mode 100644 src/components/bookGroup/create/steps/EnterTitleStep/EnterTitleStep.tsx delete mode 100644 src/components/bookGroup/create/steps/EnterTitleStep/fields/TitleField.tsx delete mode 100644 src/components/bookGroup/create/steps/EnterTitleStep/fields/index.ts delete mode 100644 src/components/bookGroup/create/steps/SelectBookStep/SelectBookStep.tsx delete mode 100644 src/components/bookGroup/create/steps/SelectJoinTypeStep/SelectJoinTypeStep.tsx delete mode 100644 src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinPasswordFieldset.tsx delete mode 100644 src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinTypeFieldset.tsx delete mode 100644 src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinTypeRadioCard.tsx delete mode 100644 src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/index.ts delete mode 100644 src/components/bookGroup/create/steps/SetUpDetailStep/SetUpDetailStep.tsx delete mode 100644 src/components/bookGroup/create/steps/index.ts delete mode 100644 src/components/bookGroup/create/types.ts delete mode 100644 src/components/bookGroup/detail/BookGroupInfo.tsx delete mode 100644 src/components/bookGroup/detail/JoinBookGroupButton.tsx delete mode 100644 src/components/bookGroup/detail/MemberItem.tsx delete mode 100644 src/components/bookGroup/detail/ShortMemberInfo.tsx delete mode 100644 src/components/bookGroup/edit/BookGroupEditDateForm.tsx delete mode 100644 src/components/bookGroup/edit/BookGroupEditIntroduceForm.tsx delete mode 100644 src/components/bookGroup/edit/BookGroupEditTitleForm.tsx delete mode 100644 src/components/bookGroup/edit/BookGroupEditTopNavigation.tsx delete mode 100644 src/components/bookSearch/BestSellers.tsx delete mode 100644 src/components/bookSearch/BookSearchList.tsx delete mode 100644 src/components/bookSearch/RecentSearchList.tsx delete mode 100644 src/components/bookShelf/BookShelf.tsx delete mode 100644 src/components/bookShelf/BookShelfCard.tsx delete mode 100644 src/components/bookShelf/BookShelfRow.tsx delete mode 100644 src/components/comment/BookCommentList.tsx delete mode 100644 src/components/comment/BookGroupCommentList.tsx delete mode 100644 src/components/comment/CommentDrawer.tsx delete mode 100644 src/components/comment/CommentList.tsx delete mode 100644 src/components/common/AuthFailedErrorBoundary.tsx delete mode 100644 src/components/common/Avatar.tsx delete mode 100644 src/components/common/BackButton.tsx delete mode 100644 src/components/common/Badge.tsx delete mode 100644 src/components/common/BottomActionButton.tsx delete mode 100644 src/components/common/BottomNavigation.tsx delete mode 100644 src/components/common/BottomSheet.tsx delete mode 100644 src/components/common/Button.tsx delete mode 100644 src/components/common/ContextProvider.tsx delete mode 100644 src/components/common/DatePicker.tsx delete mode 100644 src/components/common/Drawer.tsx delete mode 100644 src/components/common/ErrorMessage.tsx delete mode 100644 src/components/common/FloatingButton.tsx delete mode 100644 src/components/common/Funnel.tsx delete mode 100644 src/components/common/Input.tsx delete mode 100644 src/components/common/InputLength.tsx delete mode 100644 src/components/common/LikeButton.tsx delete mode 100644 src/components/common/Loading.tsx delete mode 100644 src/components/common/LoginBottomActionButton.tsx delete mode 100644 src/components/common/Menu.tsx delete mode 100644 src/components/common/Modal.tsx delete mode 100644 src/components/common/PWAServiceWorkerProvider.tsx delete mode 100644 src/components/common/Portal.tsx delete mode 100644 src/components/common/ProgressBar.tsx delete mode 100644 src/components/common/QueryErrorBoundaryFallback.tsx delete mode 100644 src/components/common/RadioButton.tsx delete mode 100644 src/components/common/SSRSafeSuspense.tsx delete mode 100644 src/components/common/Select.tsx delete mode 100644 src/components/common/ShareButton.tsx delete mode 100644 src/components/common/Skeleton.tsx delete mode 100644 src/components/common/Stepper.tsx delete mode 100644 src/components/common/Switch.tsx delete mode 100644 src/components/common/TextArea.tsx delete mode 100644 src/components/common/Toast/ToastItem.tsx delete mode 100644 src/components/common/Toast/ToastProvider.tsx delete mode 100644 src/components/common/Toast/types.ts delete mode 100644 src/components/common/Toast/useToast.ts delete mode 100644 src/components/common/TopHeader.tsx delete mode 100644 src/components/common/TopNavigation.tsx delete mode 100644 src/components/layout/Layout.tsx delete mode 100644 src/components/profile/AddJobProfile.tsx delete mode 100644 src/components/profile/EditProfile.tsx delete mode 100644 src/components/profile/LoginBottomSheet.tsx delete mode 100644 src/components/profile/bookShelf/MyProfileBookshelfContainer.tsx delete mode 100644 src/components/profile/bookShelf/ProfileBookShelf.tsx delete mode 100644 src/components/profile/bookShelf/ProfileBookshelfPresenter.tsx delete mode 100644 src/components/profile/bookShelf/UserProfileBookshelfContainer.tsx delete mode 100644 src/components/profile/group/ProfileGroup.tsx delete mode 100644 src/components/profile/group/ProfileGroupContainer.tsx delete mode 100644 src/components/profile/group/ProfileGroupPresenter.tsx delete mode 100644 src/components/profile/info/ProfileInfo.tsx delete mode 100644 src/components/profile/info/ProfileInfoPresenter.tsx create mode 100644 src/constants/FormRule/index.ts create mode 100644 src/constants/initialBookGroupComments.ts delete mode 100644 src/constants/metadata/appleSplashScreens.ts delete mode 100644 src/constants/metadata/index.ts delete mode 100644 src/constants/url.ts delete mode 100644 src/hocs/withAuthRequired.tsx delete mode 100644 src/hocs/withScrollLockOnFocus.tsx create mode 100644 src/hooks/auth/atoms/index.ts create mode 100644 src/hooks/auth/index.ts create mode 100644 src/hooks/auth/useAuth.ts delete mode 100644 src/hooks/group/useJoinBookGroup.ts create mode 100644 src/hooks/toast/atoms/index.ts create mode 100644 src/hooks/toast/index.ts create mode 100644 src/hooks/toast/useToast.ts delete mode 100644 src/hooks/useDisclosure.ts delete mode 100644 src/hooks/useFunnel.tsx delete mode 100644 src/hooks/useOutsideClickRef.ts delete mode 100644 src/hooks/useQueryParams.ts delete mode 100644 src/hooks/useRemoveVerticalScroll.ts create mode 100644 src/hooks/useScroll.ts create mode 100644 src/hooks/useToggle.ts delete mode 100644 src/queries/book/key.ts delete mode 100644 src/queries/book/useBestSellersQuery.ts create mode 100644 src/queries/book/useBookCommentPatchMutation.ts create mode 100644 src/queries/book/useBookUserInfoQuery.ts delete mode 100644 src/queries/book/useBookmarkUserQuery.ts delete mode 100644 src/queries/book/useCreateBookCommentMutation.ts delete mode 100644 src/queries/book/useDeleteBookCommentMutation.ts delete mode 100644 src/queries/book/usePatchBookCommentMutation.ts delete mode 100644 src/queries/book/useUpdateBookmarkMutation.ts delete mode 100644 src/queries/bookshelf/key.ts delete mode 100644 src/queries/bookshelf/useBookShelfBookListQuery.ts delete mode 100644 src/queries/bookshelf/useBookShelfInfoQuery.ts create mode 100644 src/queries/bookshelf/useBookshelfBookListQuery/index.ts create mode 100644 src/queries/bookshelf/useBookshelfInfoQuery/index.ts create mode 100644 src/queries/bookshelf/useBookshelfLikeMutation.ts delete mode 100644 src/queries/bookshelf/useMutateBookshelfLikeQuery.ts delete mode 100644 src/queries/bookshelf/useMySummaryBookShelfQuery.ts create mode 100644 src/queries/bookshelf/useMySummaryBookshelfQuery/index.ts rename src/queries/bookshelf/{useUserSummaryBookShelfQuery.ts => useUserSummaryBookshelfQuery/index.ts} (60%) delete mode 100644 src/queries/group/key.ts delete mode 100644 src/queries/group/useBookGroupCommentsQuery.ts delete mode 100644 src/queries/group/useBookGroupQuery.ts delete mode 100644 src/queries/group/useCreateBookGroupCommentMutation.ts delete mode 100644 src/queries/group/useCreateBookGroupMutation.ts delete mode 100644 src/queries/group/useDeleteBookGroupCommentMutation.ts delete mode 100644 src/queries/group/useDeleteBookGroupMutation.ts rename src/queries/group/{useEntireGroupsQuery.ts => useEntireGroupsQuery/index.tsx} (100%) create mode 100644 src/queries/group/useGroupCommentsQuery/index.tsx rename src/queries/group/{useGroupInfoQuery.ts => useGroupInfoQuery/index.tsx} (100%) rename src/queries/group/{useMyGroupQuery.ts => useMyGroupsQuery/index.ts} (68%) delete mode 100644 src/queries/group/usePatchBookGroupCommentMutation.ts delete mode 100644 src/queries/job/key.ts rename src/queries/job/{useAllJobQuery.ts => useAllJobQuery/index.ts} (77%) rename src/queries/recommend/{useAuthRecommendedBooks.ts => useAuthRecommendedBooks/index.tsx} (64%) rename src/queries/recommend/{useAuthRecommendedBookshelf.ts => useAuthRecommendedBookshelf/index.tsx} (64%) rename src/queries/recommend/{useUnAuthRecommendedBookshelfQuery.ts => useUnAuthRecommendedBookshelfQuery/index.tsx} (66%) delete mode 100644 src/queries/user/key.ts rename src/queries/user/{useMyProfileMutation.ts => useMyProfileMutation/index.ts} (99%) delete mode 100644 src/stories/book/detail/BookInfo.stories.tsx delete mode 100644 src/stories/bookGroup/BookGroupStatus.stories.tsx delete mode 100644 src/stories/bookGroup/BookInfoCard.stories.tsx delete mode 100644 src/stories/bookGroup/DetailBookGroupCard.stories.tsx delete mode 100644 src/stories/bookGroup/SearchGroup.stories.tsx delete mode 100644 src/stories/bookGroup/SimpleBookGroupCard.stories.tsx delete mode 100644 src/stories/bookGroup/create/steps/EnterTitleStep.stories.tsx delete mode 100644 src/stories/bookGroup/create/steps/SelectBookStep.stories.tsx delete mode 100644 src/stories/bookGroup/create/steps/SelectJoinTypeStep.stories.tsx delete mode 100644 src/stories/bookGroup/create/steps/SetUpDetailStep.stories.tsx delete mode 100644 src/stories/bookGroup/detail/MemberItem.stories.tsx delete mode 100644 src/stories/bookGroup/detail/ShortMemberInfo.stories.tsx delete mode 100644 src/stories/bookSearch/BestSellers.stories.tsx delete mode 100644 src/stories/bookSearch/RecentSearch.stories.tsx delete mode 100644 src/stories/bookSearch/SearchResult.stories.tsx delete mode 100644 src/stories/bookShelf/BookShelfCard.stories.tsx delete mode 100644 src/stories/comment/CommentList.stories.tsx delete mode 100644 src/stories/common/Avatar.stories.tsx delete mode 100644 src/stories/common/Badge.stories.tsx delete mode 100644 src/stories/common/BottomActionButton.stories.tsx delete mode 100644 src/stories/common/BottomNavigation.stories.tsx delete mode 100644 src/stories/common/BottomSheet.stories.tsx delete mode 100644 src/stories/common/Button.stories.tsx delete mode 100644 src/stories/common/DatePicker.stories.tsx delete mode 100644 src/stories/common/Drawer.stories.tsx delete mode 100644 src/stories/common/FloatingButton.stories.tsx delete mode 100644 src/stories/common/Input.stories.tsx delete mode 100644 src/stories/common/InputLength.stories.tsx delete mode 100644 src/stories/common/LikeButton.stories.tsx delete mode 100644 src/stories/common/Loading.stories.tsx delete mode 100644 src/stories/common/Menu.stories.tsx delete mode 100644 src/stories/common/Modal.stories.tsx delete mode 100644 src/stories/common/ProgressBar.stories.tsx delete mode 100644 src/stories/common/RadioButton.stories.tsx delete mode 100644 src/stories/common/Select.stories.tsx delete mode 100644 src/stories/common/Skeleton.stories.tsx delete mode 100644 src/stories/common/Stepper.stories.tsx delete mode 100644 src/stories/common/Switch.stories.tsx delete mode 100644 src/stories/common/TextArea.stories.tsx delete mode 100644 src/stories/common/Toast.stories.tsx delete mode 100644 src/stories/common/TopHeader.stories.tsx delete mode 100644 src/stories/common/TopNavigation.stories.tsx delete mode 100644 src/stories/layout/Layout.stories.tsx delete mode 100644 src/stories/meta.tsx rename src/styles/font/{index.ts => index.tsx} (83%) delete mode 100644 src/styles/global.css create mode 100644 src/styles/theme.tsx delete mode 100644 src/types/customError/AuthRefreshIgnoredError.ts delete mode 100644 src/types/customError/index.ts delete mode 100644 src/types/dday.ts create mode 100644 src/ui/AuthRequired/index.tsx create mode 100644 src/ui/BookArchive/BookArchiveForAuth.tsx create mode 100644 src/ui/BookArchive/BookArchiveForUnAuth.tsx create mode 100644 src/ui/BookArchive/index.tsx create mode 100644 src/ui/BookDetail/BookComment.tsx create mode 100644 src/ui/BookDetail/BookCommentList.tsx create mode 100644 src/ui/BookDetail/BookInfo.tsx create mode 100644 src/ui/BookDetail/CommentDrawer.tsx create mode 100644 src/ui/BookDetail/index.tsx create mode 100644 src/ui/BookSearch/RecentSearches.tsx create mode 100644 src/ui/BookSearch/SearchedBook.tsx create mode 100644 src/ui/BookSearch/index.tsx create mode 100644 src/ui/BottomNavigation/NavigationItem/index.tsx create mode 100644 src/ui/BottomNavigation/index.tsx create mode 100644 src/ui/FormInput/index.tsx create mode 100644 src/ui/FormRadio/index.tsx create mode 100644 src/ui/FormSelect/index.tsx create mode 100644 src/ui/Group/AddGroupForm.tsx create mode 100644 src/ui/Group/EditGroupForm.tsx create mode 100644 src/ui/Group/GroupComment/CommentDeleteModal.tsx create mode 100644 src/ui/Group/GroupComment/CommentInputBox.tsx create mode 100644 src/ui/Group/GroupComment/CommentModifyModal.tsx create mode 100644 src/ui/Group/GroupComment/GuideMessage.tsx create mode 100644 src/ui/Group/GroupComment/index.tsx create mode 100644 src/ui/Group/GroupDetail/GroupInfo.tsx create mode 100644 src/ui/Group/GroupDetail/index.tsx create mode 100644 src/ui/Group/GroupHeader.tsx create mode 100644 src/ui/Group/GroupList/GroupListItem.tsx create mode 100644 src/ui/Group/GroupList/index.tsx create mode 100644 src/ui/Group/GroupSearch.tsx create mode 100644 src/ui/InteractiveBook/index.tsx create mode 100644 src/ui/InteractiveBookShelf/InitialBookShelfData.tsx create mode 100644 src/ui/InteractiveBookShelf/index.tsx create mode 100644 src/ui/LoginBottomSheet/CloseButton/index.tsx create mode 100644 src/ui/LoginBottomSheet/index.tsx create mode 100644 src/ui/Profile/ProfileBookshelf/MyProfileBookshelfContainer.tsx create mode 100644 src/ui/Profile/ProfileBookshelf/ProfileBookshelfPresenter.tsx create mode 100644 src/ui/Profile/ProfileBookshelf/UserProfileBookshelfContainer.tsx create mode 100644 src/ui/Profile/ProfileBookshelf/index.tsx create mode 100644 src/ui/Profile/ProfileForm.tsx create mode 100644 src/ui/Profile/ProfileGroup/ProfileGroupContainer.tsx create mode 100644 src/ui/Profile/ProfileGroup/ProfileGroupPresenter.tsx create mode 100644 src/ui/Profile/ProfileGroup/index.tsx rename src/{components/profile/info => ui/Profile/ProfileInfo}/MyProfileInfoContainer.tsx (82%) create mode 100644 src/ui/Profile/ProfileInfo/ProfileInfoPresenter.tsx rename src/{components/profile/info => ui/Profile/ProfileInfo}/UserProfileInfoContainer.tsx (69%) create mode 100644 src/ui/Profile/ProfileInfo/index.tsx create mode 100644 src/ui/Recommended/RecommendedBooks.tsx create mode 100644 src/ui/Recommended/RecommendedBookshelf.tsx create mode 100644 src/ui/Recommended/index.tsx create mode 100644 src/ui/UserJobInfoTag/index.tsx create mode 100644 src/ui/common/BookshelfLike/LikeButton.tsx create mode 100644 src/ui/common/BookshelfLike/LikeCount.tsx create mode 100644 src/ui/common/BookshelfLike/index.tsx create mode 100644 src/ui/common/BottomSheet.tsx create mode 100644 src/ui/common/Button/index.tsx create mode 100644 src/ui/common/IconButton/index.tsx create mode 100644 src/ui/common/Layout/index.tsx create mode 100644 src/ui/common/Logo/index.tsx create mode 100644 src/ui/common/Menu/Menu.tsx create mode 100644 src/ui/common/Menu/MenuItem.tsx create mode 100644 src/ui/common/Menu/index.ts create mode 100644 src/ui/common/QueryErrorBoundaryFallback/index.tsx create mode 100644 src/ui/common/Toast/ToastItem.tsx create mode 100644 src/ui/common/Toast/index.tsx create mode 100644 src/ui/common/TopNavigation/index.tsx delete mode 100644 src/utils/assert.ts delete mode 100644 src/utils/date.ts delete mode 100644 src/utils/eventListener.ts create mode 100644 src/utils/helpers/axiosHandler.ts rename src/utils/{storage.ts => storage.tsx} (100%) delete mode 100644 tailwind.config.js diff --git a/.eslintrc.json b/.eslintrc.json index ff3e56b89..38021e5df 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -12,8 +12,7 @@ "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended", - "next/core-web-vitals", - "plugin:storybook/recommended" + "next/core-web-vitals" ], "rules": { "@typescript-eslint/no-unused-vars": [ diff --git a/.github/ISSUE_TEMPLATE/issue-template.md b/.github/ISSUE_TEMPLATE/issue-template.md index c7c82b209..3235d64a6 100644 --- a/.github/ISSUE_TEMPLATE/issue-template.md +++ b/.github/ISSUE_TEMPLATE/issue-template.md @@ -2,7 +2,7 @@ name: Issue template about: 프로덕트 백로그를 등록합니다. title: '' -labels: [🐥 프론트, ✨ feature, 🔥 v.1.0] +labels: [🐥 프론트, ✨ feature] assignees: '' --- diff --git a/.github/actions/get-score-comments/action.js b/.github/actions/get-score-comments/action.js deleted file mode 100644 index 36e102038..000000000 --- a/.github/actions/get-score-comments/action.js +++ /dev/null @@ -1,101 +0,0 @@ -const core = require('@actions/core'); - -try { - // 점수 지표 파일 정보 - const fs = require('fs'); - const results = JSON.parse(fs.readFileSync('./lhci_reports/manifest.json')); - const totalReports = results.length; - - // LightHouse 점수 지표 - const averageScores = { - performance: 0, - accessibility: 0, - 'best-practices': 0, - seo: 0, - pwa: 0, - }; - const auditSummaries = { - 'first-contentful-paint': 0, - 'largest-contentful-paint': 0, - interactive: 0, - 'total-blocking-time': 0, - 'cumulative-layout-shift': 0, - }; - - // 점수 평균 - results.forEach(result => { - const { summary } = result; - - for (const key in averageScores) { - averageScores[key] += summary[key]; - } - - const details = JSON.parse(fs.readFileSync(result.jsonPath)); - [ - 'first-contentful-paint', - 'largest-contentful-paint', - 'interactive', - 'total-blocking-time', - 'cumulative-layout-shift', - ].forEach(auditName => { - if (details.audits[auditName]) { - const auditDetails = details.audits[auditName]; - auditSummaries[auditName] += parseFloat(auditDetails.displayValue) || 0; - } - }); - }); - - // 점수 색상 표시 - const formatScore = res => (res >= 90 ? '🟢' : res >= 70 ? '🟠' : '🔴'); - - // 상세 지표 점수 색상 표시 - const detailScore = (value, metric) => { - switch (metric) { - case 'first-contentful-paint': - return value <= 1.8 ? '🟢' : value <= 3 ? '🟠' : '🔴'; - case 'largest-contentful-paint': - return value <= 2.5 ? '🟢' : value <= 4 ? '🟠' : '🔴'; - case 'interactive': - return value <= 3.8 ? '🟢' : value <= 7.3 ? '🟠' : '🔴'; - case 'total-blocking-time': - return value <= 300 ? '🟢' : value <= 600 ? '🟠' : '🔴'; - case 'cumulative-layout-shift': - return value <= 0.1 ? '🟢' : value <= 0.25 ? '🟠' : '🔴'; - default: - return '🔴'; // Default to red if metric is unknown - } - }; - - // comments 파싱 - let comments = - '⚡️ Lighthouse Average Scores Across Reports:\n| Category | Score |\n| --- | --- |\n'; - Object.keys(averageScores).forEach(key => { - const avgScore = Math.round((averageScores[key] / totalReports) * 100); - comments += `| ${formatScore(avgScore)} ${key.replace( - /-/g, - ' ' - )} | ${avgScore} |\n`; - }); - - comments += - '\n⚡️ Average Details Across All Reports:\n| Category | Score |\n| --- | --- |\n'; - Object.keys(auditSummaries).forEach(auditName => { - const average = auditSummaries[auditName] / totalReports; - const formattedName = auditName.replace(/-/g, ' '); - const colorCode = detailScore(average, auditName); - const unit = - auditName === 'total-blocking-time' - ? 'ms' - : auditName === 'cumulative-layout-shift' - ? '' - : 's'; - comments += `| ${colorCode} ${formattedName} | ${average.toFixed( - 1 - )}${unit} |\n`; - }); - - // comments 내보내기 - core.setOutput('comments', comments); -} catch (error) { - console.error(error); -} diff --git a/.github/actions/get-score-comments/action.yml b/.github/actions/get-score-comments/action.yml deleted file mode 100644 index ca1bb5e77..000000000 --- a/.github/actions/get-score-comments/action.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: 'get-score-comments' -description: 'Get Score Comments' - -outputs: - comments: - description: 'Comments that Parsed Scores' - -runs: - using: 'node16' - main: 'action.js' diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml deleted file mode 100644 index ffc44a588..000000000 --- a/.github/workflows/chromatic.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: Storybook Deployment - -on: - pull_request: - branches: - - main - -jobs: - chromatic-deploy: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: 'yarn' - - - name: Install Dependency - run: yarn install --immutable - - - name: Set .env - run: echo "${{ vars.DEVELOPMENT_ENV }}" > .env.local - - - name: Publish Chromatic - id: chromatic - uses: chromaui/action@v1 - with: - projectToken: ${{ secrets.CHROMATIC_TOKEN }} - - - name: Find Comment - if: github.event_name == 'pull_request' - uses: peter-evans/find-comment@v2 - id: find_comment - with: - issue-number: ${{ github.event.pull_request.number }} - comment-author: 'github-actions[bot]' - body-includes: 🚀 Storybook - - - name: Create or update comment - if: github.event_name == 'pull_request' - uses: peter-evans/create-or-update-comment@v2 - with: - comment-id: ${{ steps.find_comment.outputs.comment-id }} - issue-number: ${{ github.event.pull_request.number }} - body: '🚀 Storybook: ${{ steps.chromatic.outputs.storybookUrl }}' - edit-mode: replace diff --git a/.github/workflows/lighthouse.yml b/.github/workflows/lighthouse.yml deleted file mode 100644 index 2bbe185aa..000000000 --- a/.github/workflows/lighthouse.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: LightHouse CI - -on: - pull_request: - branches: - - main - -jobs: - lhci: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Use Node.js 18 - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: 'yarn' - - - name: Install packages - run: yarn install && yarn global add @lhci/cli@0.13.x && yarn add @actions/core - - - name: Set .env - run: echo "${{ vars.DEVELOPMENT_ENV }}" > .env.local - - - name: Build - run: yarn build - - - name: Run Lighthouse CI - run: lhci autorun - env: - LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }} - - - name: Get Score Comments - id: get-score-comments - uses: ./.github/actions/get-score-comments - - - name: Find Comment - if: github.event_name == 'pull_request' - uses: peter-evans/find-comment@v2 - id: find_comment - with: - issue-number: ${{ github.event.pull_request.number }} - comment-author: 'github-actions[bot]' - body-includes: ⚡️ Lighthouse Average Scores Across Reports - - - name: Create or update comment - if: github.event_name == 'pull_request' - uses: peter-evans/create-or-update-comment@v2 - with: - comment-id: ${{ steps.find_comment.outputs.comment-id }} - issue-number: ${{ github.event.pull_request.number }} - body: ${{ steps.get-score-comments.outputs.comments }} - edit-mode: replace diff --git a/.gitignore b/.gitignore index 4b2671656..c87c9b392 100644 --- a/.gitignore +++ b/.gitignore @@ -34,12 +34,3 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts - -# auto generated pwa files -# Auto Generated PWA files -**/public/sw.js -**/public/workbox-*.js -**/public/worker-*.js -**/public/sw.js.map -**/public/workbox-*.js.map -**/public/worker-*.js.map diff --git a/.prettierrc.json b/.prettierrc similarity index 100% rename from .prettierrc.json rename to .prettierrc diff --git a/.storybook/main.ts b/.storybook/main.ts deleted file mode 100644 index 61fd3aa20..000000000 --- a/.storybook/main.ts +++ /dev/null @@ -1,39 +0,0 @@ -import type { StorybookConfig } from '@storybook/nextjs'; -const config: StorybookConfig = { - stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'], - staticDirs: ['../public'], - addons: [ - '@storybook/addon-links', - '@storybook/addon-essentials', - '@storybook/addon-interactions', - '@storybook/addon-styling', - ], - framework: { - name: '@storybook/nextjs', - options: {}, - }, - docs: { - autodocs: 'tag', - }, - webpackFinal: async config => { - const imageRule = config.module?.rules?.find(rule => { - const test = (rule as { test: RegExp }).test; - - if (!test) { - return false; - } - - return test.test('.svg'); - }) as { [key: string]: any }; - - imageRule.exclude = /\.svg$/; - - config.module?.rules?.push({ - test: /\.svg$/, - use: ['@svgr/webpack'], - }); - - return config; - }, -}; -export default config; diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx deleted file mode 100644 index 7da5b8625..000000000 --- a/.storybook/preview.tsx +++ /dev/null @@ -1,116 +0,0 @@ -import React from 'react'; -import { rest } from 'msw'; -import { initialize, mswLoader } from 'msw-storybook-addon'; -import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; -import type { Preview } from '@storybook/react'; - -import ToastProvider from '../src/components/common/Toast/ToastProvider'; - -import '@/styles/global.css'; - -const nextApi = (path: string) => - new URL(path, process.env.NEXT_HOST).toString(); - -const serviceApi = (path: string) => - new URL(path, process.env.NEXT_PUBLIC_API_URL).toString(); - -initialize({}, [ - rest.get(nextApi('/service-api/*'), async (req, res, ctx) => { - const { pathname, search } = req.url; - const match = /\/service-api(?.*)/g.exec(pathname); - - if (!match || !match.groups || !match.groups.path) { - return res(ctx.status(404, 'Invalid Request URL')); - } - - const { path } = match.groups; - const originResponse = await ctx.fetch(serviceApi(`/api${path}${search}`)); - const originResponseData = await originResponse.json(); - - return res(ctx.json({ ...originResponseData })); - }), - rest.post(nextApi('/service-api/*'), async (req, res, ctx) => { - const { pathname, search } = req.url; - const match = /\/service-api(?.*)/g.exec(pathname); - - if (!match || !match.groups || !match.groups.path) { - return res(ctx.status(404, 'Invalid Request URL')); - } - - const { path } = match.groups; - - const { headers, mode } = req; - const data = await req.json(); - const body = JSON.stringify(data); - const originRequest = { - method: 'POST', - body, - headers, - mode, - }; - - const originResponse = await ctx.fetch( - serviceApi(`/api${path}${search}`), - originRequest - ); - const originResponseData = await originResponse.json(); - - return res(ctx.json({ ...originResponseData })); - }), - rest.get( - nextApi('/aladin-api?QueryType=Bestseller&Cover=Big'), - async (req, res, ctx) => { - return res( - ctx.json({ - item: [ - { - isbn: '9791162242742', - title: '리팩터링', - author: '마틴 파울러', - cover: - 'https://search1.kakaocdn.net/thumb/R120x174.q85/?fname=http%3A%2F%2Ft1.daumcdn.net%2Flbook%2Fimage%2F5326912%3Ftimestamp%3D20231207165435', - bestRank: 1, - link: 'https://search.daum.net/search?w=bookpage&bookId=5326912&q=%EB%A6%AC%ED%8C%A9%ED%84%B0%EB%A7%81', - }, - ], - }) - ); - } - ), -]); - -const queryClient = new QueryClient({ - defaultOptions: { - queries: { - refetchOnWindowFocus: false, - retry: false, - }, - }, -}); - -const preview: Preview = { - parameters: { - actions: { argTypesRegex: '^on[A-Z].*' }, - controls: { - matchers: { - color: /(background|color)$/i, - date: /Date$/, - }, - }, - nextjs: { - appDirectory: true, - }, - }, - loaders: [mswLoader], - decorators: [ - Story => ( - - - - - - ), - ], -}; - -export default preview; diff --git a/.vscode/react.code-snippets b/.vscode/react.code-snippets deleted file mode 100644 index d1684713b..000000000 --- a/.vscode/react.code-snippets +++ /dev/null @@ -1,19 +0,0 @@ -{ - "create a default export react component": { - "scope": "javascriptreact,typescriptreact", - "prefix": ["!tsx", "!jsx"], - "body": [ - "type ${1:${TM_FILENAME_BASE/(.*)\\..+$/$1/}}Props = {", - " ${2:// remove this comment}", - "};", - "", - "const ${1} = (_props: ${1}Props) => {", - " ${0}", - " return ${3:<>};", - "};", - "", - "export default ${1};", - "" - ] - } -} diff --git a/.vscode/storybook.code-snippets b/.vscode/storybook.code-snippets deleted file mode 100644 index 2566f51ab..000000000 --- a/.vscode/storybook.code-snippets +++ /dev/null @@ -1,24 +0,0 @@ -{ - "create a story for react component": { - "scope": "typescript,typescriptreact", - "prefix": "!story", - "body": [ - "import { Meta, StoryObj } from '@storybook/react';", - "", - "const meta: Meta = {", - " title: 'Base/${1}',", - " component: ${1},", - " tags: ['autodocs'],", - "};", - "", - "export default meta;", - "", - "type Story = StoryObj;", - "", - "export const Default: Story = {", - " args: {$2},", - "};", - "" - ] - } -} diff --git a/lighthouserc.js b/lighthouserc.js deleted file mode 100644 index d4ff08990..000000000 --- a/lighthouserc.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - ci: { - collect: { - startServerCommand: 'yarn next start', - startServerReadyPattern: 'ready on', - url: [ - 'http://localhost:3000/bookarchive', - 'http://localhost:3000/book/search', - 'http://localhost:3000/group', - 'http://localhost:3000/profile/me', - ], - numberOfRuns: 2, - }, - upload: { - target: 'filesystem', - outputDir: './lhci_reports', - reportFilenamePattern: '%%PATHNAME%%-%%DATETIME%%-report.%%EXTENSION%%', - }, - }, -}; diff --git a/next.config.js b/next.config.js index 76f6c8899..5bbcb6c89 100644 --- a/next.config.js +++ b/next.config.js @@ -1,31 +1,11 @@ const baseURL = process.env.NEXT_PUBLIC_API_URL; -const aladinURL = process.env.ALADIN_OPEN_API_URI; -const ALADIN_API_KEY = process.env.ALADIN_OPEN_API_TTBKEY; /** @type {import('next').NextConfig} */ const nextConfig = { webpack: config => { config.module.rules.push({ test: /\.svg$/, - use: [ - { - loader: '@svgr/webpack', - options: { - svgoConfig: { - plugins: [ - { - name: 'preset-default', - params: { - overrides: { - removeViewBox: false, - }, - }, - }, - ], - }, - }, - }, - ], + use: ['@svgr/webpack'], }); return config; }, @@ -35,11 +15,6 @@ const nextConfig = { source: '/service-api/:url*', destination: `${baseURL}/api/:url*`, }, - { - source: '/aladin-api', - has: [{ type: 'query', key: 'QueryType', value: '(?.*)' }], - destination: `${aladinURL}/api/ItemList.aspx?ttbkey=${ALADIN_API_KEY}&QueryType=:QueryType&MaxResults=10&start=1&SearchTarget=Book&output=JS&Version=20131101`, - }, ]; }, async redirects() { @@ -59,24 +34,6 @@ const nextConfig = { port: '', pathname: '/**', }, - { - protocol: 'http', - hostname: '*.kakaocdn.net', - port: '', - pathname: '/**', - }, - { - protocol: 'https', - hostname: 'blog.kakaocdn.net', - port: '', - pathname: '/**', - }, - { - protocol: 'https', - hostname: 'image.aladin.co.kr', - port: '', - pathname: '/**', - }, ], }, }; diff --git a/package.json b/package.json index afe1915eb..0beb1a9ee 100644 --- a/package.json +++ b/package.json @@ -1,24 +1,19 @@ { - "name": "dadok", + "name": "team08-boilerplate", "version": "0.1.0", "private": true, "scripts": { - "dev": "next dev -H local.dev.dadok.app", + "dev": "next dev -H local.dev.dadok.site", "build": "next build", - "start": "next start -H local.dev.dadok.app", - "dev-ssl": "node scripts/server.js local.dev.dadok.app", - "start-ssl": "NODE_ENV=production node scripts/server.js local.dev.dadok.app", + "start": "next start -H local.dev.dadok.site", "lint": "next lint", - "prepare": "husky install", - "storybook": "storybook dev -p 6006", - "build-storybook": "storybook build", - "update-host": "node scripts/updateDevHost.js local.dev.dadok.app", - "init-https": "sh scripts/init-mkcert.sh local.dev.dadok.app", - "postinstall": "patch-package" + "prepare": "husky install" }, "dependencies": { - "@actions/core": "^1.10.1", - "@headlessui/react": "^1.7.15", + "@chakra-ui/icons": "^2.0.17", + "@chakra-ui/react": "^2.4.9", + "@emotion/react": "^11.10.5", + "@emotion/styled": "^11.10.5", "@tanstack/react-query": "^4.24.4", "@tanstack/react-query-devtools": "^4.24.12", "@types/node": "18.13.0", @@ -26,56 +21,29 @@ "@types/react-dom": "18.0.10", "axios": "^1.3.4", "colorthief": "^2.4.0", + "framer-motion": "^9.0.2", "next": "13.4.7", "react": "18.2.0", "react-dom": "18.2.0", "react-error-boundary": "^3.1.4", "react-hook-form": "^7.43.2", - "react-intersection-observer": "^9.4.3" + "react-intersection-observer": "^9.4.3", + "recoil": "^0.7.7" }, "devDependencies": { - "@babel/core": "^7.22.8", - "@storybook/addon-essentials": "^7.0.26", - "@storybook/addon-interactions": "^7.0.26", - "@storybook/addon-links": "^7.0.26", - "@storybook/addon-styling": "^1.3.2", - "@storybook/blocks": "^7.0.26", - "@storybook/nextjs": "^7.0.26", - "@storybook/react": "^7.0.26", - "@storybook/testing-library": "^0.0.14-next.2", "@svgr/webpack": "^6.5.1", "@typescript-eslint/eslint-plugin": "^5.52.0", - "@typescript-eslint/parser": "^5.61.0", - "autoprefixer": "^10.4.14", - "chromatic": "^6.19.9", "eslint": "^8.34.0", "eslint-config-next": "^13.1.6", - "eslint-plugin-storybook": "^0.6.12", "husky": "^8.0.3", - "less": "^4.1.3", - "less-loader": "^11.1.3", "lint-staged": "^13.1.1", - "msw": "1.3.2", - "msw-storybook-addon": "^1.10.0", - "patch-package": "^8.0.0", - "postcss": "^8.4.25", - "postinstall-postinstall": "^2.1.0", "prettier": "^2.8.4", - "prettier-plugin-tailwindcss": "^0.3.0", - "storybook": "^7.0.26", - "tailwindcss": "^3.3.2", - "typescript": "^4.9.5", - "webpack": "^5.88.1" + "typescript": "^4.9.5" }, "lint-staged": { "src/**/*.{ts,tsx}": [ "eslint --fix --max-warnings 0", "prettier --write" ] - }, - "readme": "ERROR: No README data found!", - "_id": "team08-boilerplate@0.1.0", - "msw": { - "workerDirectory": "public" } } diff --git a/patches/next+13.4.7.dev.patch b/patches/next+13.4.7.dev.patch deleted file mode 100644 index 8eb6983e8..000000000 --- a/patches/next+13.4.7.dev.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/node_modules/next/dist/server/lib/render-server-standalone.js b/node_modules/next/dist/server/lib/render-server-standalone.js -index a888ced..5be3463 100644 ---- a/node_modules/next/dist/server/lib/render-server-standalone.js -+++ b/node_modules/next/dist/server/lib/render-server-standalone.js -@@ -11,6 +11,8 @@ Object.defineProperty(exports, "createServerHandler", { - const _httpproxy = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/http-proxy")); - const _jestworker = require("next/dist/compiled/jest-worker"); - const _utils = require("../../shared/lib/utils"); -+const _log = require("../../build/output/log"); -+ - function _interop_require_default(obj) { - return obj && obj.__esModule ? obj : { - default: obj -@@ -73,8 +75,29 @@ const createServerHandler = async ({ port , hostname , dir , dev =false , minima - }); - return proxyServer; - }; -+ // Fix hot module replacement with a standalone server -+ let addedUpgradeListener = false -+ const setupWebSocketHandler = (req) => { -+ if (addedUpgradeListener) { -+ return; -+ } -+ -+ let server = req?.socket?.server; -+ -+ if (!server) { -+ _log.error(`Invalid IncomingMessage received, make sure http.createServer is being used to handle requests.`); -+ } else { -+ server.on("upgrade", async (req, socket, head) => { -+ const proxyServer = getProxyServer(req.url || '/') -+ proxyServer.ws(req, socket, head) -+ }); -+ addedUpgradeListener = true; -+ } -+ } -+ - // proxy to router worker - return async (req, res)=>{ -+ setupWebSocketHandler(req); - const urlParts = (req.url || "").split("?"); - const urlNoQuery = urlParts[0]; - // this normalizes repeated slashes in the path e.g. hello//world -> diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100644 index 33ad091d2..000000000 --- a/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/public/icons/arrow-left.svg b/public/icons/arrow-left.svg deleted file mode 100644 index b1c740c00..000000000 --- a/public/icons/arrow-left.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/arrow-right.svg b/public/icons/arrow-right.svg deleted file mode 100644 index e8dde4cf2..000000000 --- a/public/icons/arrow-right.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/avatar.svg b/public/icons/avatar.svg deleted file mode 100644 index 1c30c79ec..000000000 --- a/public/icons/avatar.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/public/icons/back.svg b/public/icons/back.svg new file mode 100644 index 000000000..eea075a2c --- /dev/null +++ b/public/icons/back.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/book-plus.svg b/public/icons/book-plus.svg deleted file mode 100644 index d41a8d642..000000000 --- a/public/icons/book-plus.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/group.svg b/public/icons/book.svg similarity index 93% rename from public/icons/group.svg rename to public/icons/book.svg index 2a4669d11..ee85332a7 100644 --- a/public/icons/group.svg +++ b/public/icons/book.svg @@ -1 +1 @@ -book-open-page-variant +book-open-page-variant \ No newline at end of file diff --git a/public/icons/bookIcon.svg b/public/icons/bookIcon.svg new file mode 100644 index 000000000..398093b95 --- /dev/null +++ b/public/icons/bookIcon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/bookmark.svg b/public/icons/bookmark.svg index 952cb910e..0b796102f 100644 --- a/public/icons/bookmark.svg +++ b/public/icons/bookmark.svg @@ -1,3 +1,3 @@ - + diff --git a/public/icons/bookarchive.svg b/public/icons/bookshelf.svg similarity index 100% rename from public/icons/bookarchive.svg rename to public/icons/bookshelf.svg diff --git a/public/icons/calendar.svg b/public/icons/calendar.svg deleted file mode 100644 index 12aeecd27..000000000 --- a/public/icons/calendar.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/public/icons/check-circle.svg b/public/icons/check-circle.svg deleted file mode 100644 index 41caf2d30..000000000 --- a/public/icons/check-circle.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/icons/check-stroke.svg b/public/icons/check-stroke.svg deleted file mode 100644 index ed04a458f..000000000 --- a/public/icons/check-stroke.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/check.svg b/public/icons/check.svg deleted file mode 100644 index b8f67399b..000000000 --- a/public/icons/check.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/close.svg b/public/icons/close.svg index a40c618dc..afa266521 100644 --- a/public/icons/close.svg +++ b/public/icons/close.svg @@ -1,4 +1,3 @@ - - - + + diff --git a/public/icons/commentIcon.svg b/public/icons/commentIcon.svg new file mode 100644 index 000000000..afee45bc9 --- /dev/null +++ b/public/icons/commentIcon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/comments.svg b/public/icons/comments.svg deleted file mode 100644 index 76f31742d..000000000 --- a/public/icons/comments.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/delete.svg b/public/icons/delete.svg deleted file mode 100644 index f57c58509..000000000 --- a/public/icons/delete.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/error-circle.svg b/public/icons/error-circle.svg deleted file mode 100644 index 01eea9242..000000000 --- a/public/icons/error-circle.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/public/icons/error-with-exclamation.svg b/public/icons/error-with-exclamation.svg deleted file mode 100644 index 2ea65a586..000000000 --- a/public/icons/error-with-exclamation.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/hamburger.svg b/public/icons/hamburger.svg deleted file mode 100644 index a780d10fb..000000000 --- a/public/icons/hamburger.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/icons/discover.svg b/public/icons/hashtag.svg similarity index 100% rename from public/icons/discover.svg rename to public/icons/hashtag.svg diff --git a/public/icons/heart.svg b/public/icons/heart.svg deleted file mode 100644 index 18dd12e79..000000000 --- a/public/icons/heart.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/index.ts b/public/icons/index.ts deleted file mode 100644 index 6c3027649..000000000 --- a/public/icons/index.ts +++ /dev/null @@ -1,42 +0,0 @@ -// 로고 -export { default as LogoWithText } from './logo-with-text.svg'; - -// 상단 Nav & Header -export { default as IconArrowLeft } from './arrow-left.svg'; -export { default as IconClose } from './close.svg'; -export { default as IconPost } from './post.svg'; -export { default as IconHamburger } from './hamburger.svg'; -export { default as IconShare } from './share.svg'; - -// 하단 Nav -export { default as IconBookarchive } from './bookarchive.svg'; -export { default as IconDiscover } from './discover.svg'; -export { default as IconGroup } from './group.svg'; -export { default as IconProfile } from './profile.svg'; - -// 책 & 책장 -export { default as IconArrowRight } from './arrow-right.svg'; -export { default as IconBookmark } from './bookmark.svg'; -export { default as IconHeart } from './heart.svg'; - -// 검색 -export { default as IconSearch } from './search.svg'; -export { default as IconWarning } from './warning-circle.svg'; -export { default as IconSuccess } from './check-circle.svg'; -export { default as IconError } from './error-circle.svg'; -export { default as IconErrorExclamation } from './error-with-exclamation.svg'; - -// 독서 모임 -export { default as IconAvatar } from './avatar.svg'; -export { default as IconCalendar } from './calendar.svg'; -export { default as IconCheck } from './check.svg'; -export { default as IconCheckStroke } from './check-stroke.svg'; -export { default as IconComments } from './comments.svg'; -export { default as IconDelete } from './delete.svg'; -export { default as IconMembers } from './members.svg'; -export { default as IconPlus } from './plus.svg'; -export { default as IconBookPlus } from './book-plus.svg'; -export { default as IconSelect } from './select-icon.svg'; - -// 카카오 -export { default as IconKakao } from './kakao.svg'; diff --git a/public/icons/job-card.svg b/public/icons/job-card.svg new file mode 100644 index 000000000..8a0815c36 --- /dev/null +++ b/public/icons/job-card.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/icons/kakao.svg b/public/icons/kakao.svg index bfb0b4e59..286ff5fd5 100644 --- a/public/icons/kakao.svg +++ b/public/icons/kakao.svg @@ -1,3 +1,3 @@ - - + + diff --git a/public/icons/like.svg b/public/icons/like.svg new file mode 100644 index 000000000..9ed3e5fa1 --- /dev/null +++ b/public/icons/like.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/lock.svg b/public/icons/lock.svg new file mode 100644 index 000000000..34c335c6d --- /dev/null +++ b/public/icons/lock.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/logo.svg b/public/icons/logo_sm.svg similarity index 100% rename from public/icons/logo.svg rename to public/icons/logo_sm.svg diff --git a/public/icons/members.svg b/public/icons/members.svg deleted file mode 100644 index f17919114..000000000 --- a/public/icons/members.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/more-circle.svg b/public/icons/more-circle.svg new file mode 100644 index 000000000..472129c57 --- /dev/null +++ b/public/icons/more-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/more.svg b/public/icons/more.svg new file mode 100644 index 000000000..216ec6c54 --- /dev/null +++ b/public/icons/more.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/options.svg b/public/icons/options.svg deleted file mode 100644 index 2e1d8c4a0..000000000 --- a/public/icons/options.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/icons/peopleIcon.svg b/public/icons/peopleIcon.svg new file mode 100644 index 000000000..c9d6c9a60 --- /dev/null +++ b/public/icons/peopleIcon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/plus-circle.svg b/public/icons/plus-circle.svg new file mode 100644 index 000000000..ba4b72e32 --- /dev/null +++ b/public/icons/plus-circle.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/icons/plus.svg b/public/icons/plus.svg deleted file mode 100644 index 1488ee8e9..000000000 --- a/public/icons/plus.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/post.svg b/public/icons/post.svg deleted file mode 100644 index dac5f2632..000000000 --- a/public/icons/post.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/search.svg b/public/icons/search.svg index 908595ce3..744bed40c 100644 --- a/public/icons/search.svg +++ b/public/icons/search.svg @@ -1,4 +1,3 @@ - - - + + diff --git a/public/icons/select-icon.svg b/public/icons/select-icon.svg deleted file mode 100644 index e65119b7e..000000000 --- a/public/icons/select-icon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/icons/share.svg b/public/icons/share.svg index d5f676a21..6730ca8c6 100644 --- a/public/icons/share.svg +++ b/public/icons/share.svg @@ -1,4 +1,4 @@ - - - + + + diff --git a/public/icons/unlock.svg b/public/icons/unlock.svg new file mode 100644 index 000000000..7869e0983 --- /dev/null +++ b/public/icons/unlock.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/profile.svg b/public/icons/user.svg similarity index 100% rename from public/icons/profile.svg rename to public/icons/user.svg diff --git a/public/icons/warning-circle.svg b/public/icons/warning-circle.svg deleted file mode 100644 index 2241fa97d..000000000 --- a/public/icons/warning-circle.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/public/icons/write.svg b/public/icons/write.svg new file mode 100644 index 000000000..708c8b07e --- /dev/null +++ b/public/icons/write.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/icon-128x128.png b/public/images/icon-128x128.png deleted file mode 100644 index 59c3c397eefab9ebadc4a1089a9a15d2845373a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3968 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 diff --git a/public/images/icon-256x256.png b/public/images/icon-256x256.png deleted file mode 100644 index 37ac64abdef2e39fc2fffaee8a9382e972378570..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8182 zcmds6^;cA1yuCxsFw{sR-CY7oNrQArBdK(!NDhs_7Z6FQQE8Cw97+(BM(I@P?ta(x z{)+d0n04o_IdjfE=iIaR{_Oo$Tk{zK{2?3w00I?d1ziAufL|d132`8zT10Dls;|pcT;DE!3J+M<0NV{xA zm%B?*JaDFX6b2uMYjG2|YQf$5W_4>}Y3t9ut@FG6Y;mCpvxSL?iPO&Oy_Pr|<_HAy zj6RIpv1>UBEmlc2x|dSKn_0&Lnfw68-NK?!U0Ac`TygMI9FGq>C@(1 zTQxdvj?@_QDYXIB?`gcIzmJCa(=BdRDLjw9u@5z`=W;`7+>z=ZgjG6j&rBIvRD7$Q zBS>>7%>86t+YXg7CEwJni%~yuO=buLrumAlilD;j;z`#bq&;#9(A*WM@Wkj_WpSO=kq$x;@8=Q?3M9;RS z)Qr`^aniADZY~ZVS)zfZ^|jaKM%8k`r)3szaYvy^0%ZnYlAmjeDQ4DaNghUE&3I&T z0pU0VgU!<`>|*BxVH7Z+7YRm z?TXgH*8Prc|NEl6U@q~4!+v`1q4j6dSMRO@gct@P&*`s^%zS59*9D&joTX$6*$tK( z*G`Uzx~+6a>UIVP;bQOrMkG%byq{0GJfro|OL+NU$C}M6QPl8UXwh7@m{;k-U2Wbi&-!}0xxY&H^2treK^Ii6 zBis}TYrEPi8?-tdU``~(-=q!Lspi^S`lJ}=c;0p5eXX6=O0>LLly?@iM-*ao`?+Z; z`1;QczTNWAFQ#6@w}*)#<%^wxJK#c!N%Nbx87U>uaEdtn)RPXmJ^gibHs@BhOHEu8 zMMQ6YAm$T_fe5SYxKed({zKlpQ#16cKY{kmNMG>8zAij)bAak^_XtxJH3c@&KJZ z=Qvr+sP*(z&)hEWSP-$tUD-B%90;pyzeSLs04ywz8#VrRJ)4q0n6|f_cc=Vf*E_XS z(ZclRWg4WAruE!_-(%0{^%I23vuDslQho=Po4+b8MAl8SMM)eFB&v_D`p!~GC7~FS zulMHLFsjZM1Jou8HEjM2rmjYVH(Kgleh_44tN<;shNZc6>i6HvcIpbqI7)8v?tshh zLFIqf^FlgIP7k||!+$}a4v?eI)(5~>vCI*+*Lfd2(-G9V-dx#s6#K%x3%m4UqvLw- z{nN8)`DFA^&7qoaF9Us*BRsSipE!0o$pqn$_DMa#5uZlXl^UL zNN%({9Ow4|90Gz7~$k&E3d9@91{OD&$rX-zN!a z#T7ajfbXj;$Z-BFD4n0o*}Rw5pZT63j^VBmzomKiyW3#(AZgJ?wu8IY(7AMei;6(8 zTDuW)TETIQi-R5_v$bIznLmpWxFmXmTc^J)`0aAv6z=!?n{D{zXf99p^zHjv7@3FM z`lw(umOqW5J=(49x{jiO+d+mU_S>ExT-JoT;VfP^F8Zr|IWn4ASwb6@-%#Zx9Nz}- zHLw5vo8@NkhN5Xh=V?rg{Moj`2?n-Vm0Vr-BZTSH%Z2M!T7rkdRfQT^1_$+)T3e}4 z?L%V9hUE=%+I9VH36#WU8{OPkvClSw&BJ-+rsyPsZ!WUETw68^+d7AQ?b)uR39{a1 z*v8iZKg*4oRl@au#|sT>v!Y$*8uZJE3@CTDtNlCg@2(va@w7S(&ln7t^$<*^2=joQ z%lE*$|MDq?Y~u&FpIw~vQCR2+`rYit)S;;p-8qjq9e-7r?N(Q|pP3Ag4EHjy54=`} zUkF{DY%;f45P_2-T-7 zdSsp$pW@H|d$OpVhND0c;AdoZG507ndPYW1`(sQebu%S`=!US)YG@cTM#UU}!Q_OG z&G9>+iWhgnBRb{DS7X5b33es_H|(-}2lPEg9zGA|B;JPoDn&O31f5I#r^&g|j8?CA z6Q4MD)R{D)8$1e}(3if=BHfYGw()dNXX_v77{*_!c^op&5iD4#_;}MRc@B%M4_uvY zKi!WO5db0k^me-XWglt$09LPbhtKv;Mcn&T?v^JEr;e?Ed-J1EG68r1mD$GO-*Ze$ zu0Ed7-P!uGLA-%iTg~q_C!)Pq?r+wmOV@Ns52%`M&*sX4mAqG$!-)(=5>-dziLjcf ziqnJ(c$ZMF7m8)p%Ha8E!KOWpx4f8*Gz^pXN#o@lwFy~q-^-(iNJdIXF=M?S{x?U4G zbM91PSeaY8piCSP@a|Z`B^qS|pT$KFykmYUt$x;_8HC!MVo0ShH%Y|fYeL78WGrcR z$(kPQto0B{*EP5;u{J3Ggrw(6&Yafevy!2Q;uk9BK9dO@MMI3@*sZ-rKH2t}oD z?~|DVvNoIfY*v$2i(wQM`KbvqRYCZvpAGE@DJPj;sIIpm{~!y@BqT1 zmrM6|>)a5|3Ug$>_$(g!!84kV-!&{9*MBiEkPK(yB}D+JP752Gf-R4ja&+rnOW9UO zIH9<*$g)ggaNttOb9R-7CoxDN;vcH-Y0{F#dHyRlYxS*1kk_=ugdl>wI-(npCMq?- zw^!Lq(M^GZpiK0f+TUC1?6e^^QH0Dp&T1^oMfSNo)ESSI8y15M>)2{8m&G`_GBs_L zmX&toiF$mBWy=gRFa;WkN>%C?JeJ8l<2_3&j1vtSS^B=90f zFe%*O#QH9yde7a}t%uQh_cwNL2ls=|C7MB+oH{@I#6e*ZSiOZA^V4$nr9*^ifQv-i z%Ln()i)}L^)B@^CbdT=lmC_hl=g6_@>(N&Gt@1V;Uv*fpb~beCe~ngJNDpDv&0<6x z{w4{Dc;i;>*&2C;@af`8Okz%`%8YVHe1)))frp-V{jquiTTZyYy?8&4u# zbrWTn=7T7QM1fb?-SNZi(X_r9s)Q{E-FRMmJ!dw9DV&a5g29!hb`}xZ55jJKxCOuW zlCXUu>@cpNVKgjB(Yu-PGT}kam^qNl=Qc%9sn0)9e1tE3e>pOB;qxM8pdDSBxFapR zs$f4RRw(hF8L}dy!q<&N&`N66+Wwdf#i28Q;q^o0k@Iv_SS4NuW<0GI94msA89-v7 zAT3W?dC0Bo9?%7yjFpbrj?1Wnf@*X7#qT(oi1|V+yO-TJuw86)^I(!YX|0VBWtGq2 zai>x;k+^(Msrza68~;L!&oSAc&-SLY!+3sa97P8M4C_OW_3w1*VP1&1vP7$L&!I9znbVc9 zh-KVJgC(AbfqtS$E1mAC|L>NN067Q?Kn@eH}Zo`TbpG6SeER0*cODes_{yfP-1!2K+5_iL0Z!zkLk?JC5k39Uv9oiU#3Z*m01VJj#mX7U!UD7XG|5)#@lDv;L^rV%0kZGd1A{O zB!v?RZj2YiML-ly!l6XI?IU6-J^KNXqQQ?d)#ce?1oE%4MQ>@?PN0*Hc*{R;x_MW6 ziJFvaO%3`W$<83fe&!*o`^aT?kM)V$$ZEwQky_a4+gGZ}^VN&B#McWr;>J~$q1(GL zO0S-``nrtKf>2bJXR1x~`1?3HuSxM=L{YB4qjNJ>$nCa;&C%~~gEJ90l+!QMByO)x zpR?9^tbSKInR@{HdpFDb1dpO(wSytt7vE?M48uJbry54c8Al)2(B6$Yo zSU;p>BPN>*H+P|flv1qGv^;=<0*dfOs$KL*d6rwpOe~&+WXAE0Z!a1SR|@?&=mx4@ zN1EvmB2MLYc|kvGzKH)i7R2v8J2Jf0)Z-?9$tGJeHi+R~=xGZZ=OHZ{`JO4{<=XS& zvY6q1p2{}tIs6;H1C#oeaNGLr_4$ayHW_xj$H>lgH9VSX64#DCJH#E|nubz0*^1F` ziWqIZG2dK!MVH4cjLm5${hvjh8kQ%sGCB1J4N;9d(VFFXagr7J50y;?^GFNK>(gQl zaReh;F>Z9tqn~!2bH@X7C3*>}gKIZIYzFRTTOc6I1K7QOSUDFK7WWdYOvP5mt6%oF z1?clvtuiT+In>2`dpY&>*s{JiHd^~3U#|d#<|HGH^7|mL1ZR#OSq|^gah~rE7k?Rn zjbNcbnYa6w?s)gblIb@xUb1o-jajlK(n=WI;`bZ;4d_HM5fyHNsp9;N6vsimeqw{=|PFUD3Rs=&uoHTqoz4i2`nuK!mkG(4S z@n{2#Wsys$OUV!w%cInncFb+IqS!MjtnK!!z`(p0UgO6PLr3<$#)K$-^JYTP>L7|i zVunqHR&{9OD8&|Ju-QiR2wU|5aa>%;-Ep3cTjXZ!0}No?h>SAA)U~;wT;ivwso#5V zR1VRX-ZHCfHLeu`>Z1Gg3GH%LBKn@&Nk@>kS=)ovS%=`^& z7X74_@G8{tkG40*lMMKce98_uZ)L6QAjubFnm~4rl@N;+WV!p9EKv=%P8SXdEhak- zAq{17aUtRW`v$Cf(!nCQ_?I>x3XixJ^La!8)rjmWZ9zP7oi|G3 zw{ZQfTv3OznGiY&_6k#AAgHfkaF4xPqrcbwQo(>h>6%F{-~;_h!b$rT25^m6J^TRI z&5tIeE#>)4?bbFXWbtVlpI+*P^5&>6aJCrW_G``}@K8~ZRunpRhNmKyp`-0+fqlnL zDWs$to`$hJMYR!0VU9SWjnO*+-J{GEWlP7Y($tjLf5w=y1K7#v#W(@&7GxDi4*7V| zepSqFnC7(I&`*eSR4P6v{9h;9jjm?D=7!pt1ROLa4;5?(Q1_PAvIWeXQYLWV>hhyR z5=q?@TjZfcypSfFdInmxix{=L!`$cs#A)B?#O7i)UF7+1adNV47{{d9fSjfG_BosD zgZdw6_ia2Rr+B`AIZ0Zw?LV17oy>wq!I!c*QB;=fNUAFq*I+3IuA#0CN3PefSczsy z0=C+79D;|x#St$-r-S?(2nDLRu@O55U+TTqHMw1#ml8#McZ`M_;F#@n_*&J>q$VM@ zbqg3xkr;xA@Hym3m^qw`jEtDV9t&>?BRO{mTQ>7rRt7>{NC*2?i7E-=EdQf zK0EUhfrg;om~tzuDs{7O@Z}uAptWjw^{Zaemj*?8V0+)55X zW9Dkr&A~uTKW%CHqo!}rm)(De`3Aha{O6d(sGDOuTLb=Q$pA3(3Mu}p5?tfs6 z?#t^na))6mWv!r*M6hnUfSr%M80R+hRE%A>8$02ciCxVZnK4)#^XZT;O-TlLWiT_( z+~6w*#-(~LenqcI>(76j(as=~(rl=^%1Tl=bhYknwc~Ze6DFU(pyYTS1gbMVF~Nr# zh^I3_=L{6eHs=~Eujpn%IXD-ptinwQ#<0Rx1Zt6;Fhc2t z4U; zbXFxQRvee!A3(1NOo1x7yhwT2*UU z)dy{0yiXQN%d$JyXh;&MDX}ZOw;v=2fysi-eMAa*{!VV-(Kp9ret#)pr=RiML9ixl z7_Pcn#5-m8;iu;>Y;u|5wH|9qQ{l^B8W(ljAJ#Gp#SEeja0$c^-F;jZAdHG!ke$-* z?9kAf0E}G+I&c|xHjNMYSPbE&{cO6D_Ck>nEBVW)w#V12>;=)Fk&I@E+%!=Id9Zjq zyVZL$dCLUaW~ht;g?d`ji3}bC1`L|^VTi9)UEFtvBk1bnop3m=blb%Q6q^BKLr7Z{ zan?NuuV_D;{nS8+he7Nl}xh38xi*9(u5;O`$JRrqQ z{Ui!wd~`uyV@LDp$qHjMO|r5@H;3e5FUg<@_+N4v1^?46)&iiUVi;01O_=?9@l7(@ zsMgX+@|>_dBnGA$sn*3=l)dUN@qJggpi8dUDB`_&6Lt)&W;!XyK>cjSF0XAO0A!M0 zy_552j(p;r0rj@vbis~C1$v#}9=azRW6b-v%C#Dplx^K{(hJ&vH43b>b=8NZu6Nqb zdv>H&W0>`!(W9@PI&tO{yf=R77_yyu2FuNaSOWs4yb+<$=*LRudmRw(Y5r8xQa9> zlCrqGJSE>@s#Kq2BzPqEX+efeF%CW@L%yUXleR)qNMb0XN;q4-m7!Oi;4_J1>(Le; zC*wB1>ZBtixCF6dw3LN`S&v;>&@2C6Qo>}R zml2vFys>AxMX16eN{URfoWJOf#A8)?C~S{VOV0z1IhAD84donZ+HD#=DH36+7}=cV z4cLIYLJU1#A4zAC?MVc+A1^PS7>)Z0aswJ_$rvu*s6`xE@+Ch45e%D8PY+gl^lQgN(HAxRoj1D4%cJr{ z`nPu~m;Vl4vOMSgNs;t7&}-%KI0Pr5M!fvA>GY>5CK>y?6IrkYn4GcVCh1Dr43cs} z`PvS;lSv=G^8>pE-iNN?TwZyt5C7NRxeTTdydD#6Z@fg_#-vE|;J|VJ9{$LEYPt$= zOEclAh>Z45qKKp}WLANoyL297-4qOtWXU=}?orT{x5G?Lfda%l*!v>%GvBwpW_x^M zC?Xkz!U&2^O(PcJyx^;nDbO)8(hen>OSGIJkI={eUvtr|_*bUb&X>3KftQ|f8`$8R zO6Ru>DFf@94!(Rau`&YfiyGgZX)Ch#igDz|B94Abrk#K35AP;$< vqL7yNDXXo_zx0<9hvol&P8>n`{T>pX$Wu#8?QR0b^ni+@rb30BW!V1!zV9CU diff --git a/public/images/icon-384x384.png b/public/images/icon-384x384.png deleted file mode 100644 index 56073404a42b353064d793cacdf523334b068264..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14766 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 Ls!XMnQPBSYr;jtl diff --git a/public/images/icon-512x512.png b/public/images/icon-512x512.png deleted file mode 100644 index 856ccc613318442cf66a8795661adf909fc759cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16206 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 R6Sx4Rte`GmDr+9}e*gr1szLw& diff --git a/public/images/kakao.svg b/public/images/kakao.svg new file mode 100644 index 000000000..bdb41bc72 --- /dev/null +++ b/public/images/kakao.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/public/images/login-landing.jpg b/public/images/login-landing.jpg deleted file mode 100644 index cdde2fb4efa0fccd6ece9656a322b18f38c5471e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118157 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

2@Y?)Ldz)DFSdfC@$R198&}6ubL>R#{BR5OS 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 c>*{mxe=?Oq_soy-01i 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 z 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 + diff --git a/public/images/splash-screens/10.2__iPad_landscape.png b/public/images/splash-screens/10.2__iPad_landscape.png deleted file mode 100644 index 19fed7266f5d26fbe6818d89ceb9b515de1e6957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86191 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 diff --git a/public/images/splash-screens/10.2__iPad_portrait.png b/public/images/splash-screens/10.2__iPad_portrait.png deleted file mode 100644 index de10ae5402877b5602b774a95a7fa6d2a5dd7d7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88735 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 Sj-A}1d9xjC(q^vw^1lES$k=26 diff --git a/public/images/splash-screens/10.5__iPad_Air_landscape.png b/public/images/splash-screens/10.5__iPad_Air_landscape.png deleted file mode 100644 index 321b97461de8362a96183213b8f7ecacbfef9855..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90460 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 diff --git a/public/images/splash-screens/10.5__iPad_Air_portrait.png b/public/images/splash-screens/10.5__iPad_Air_portrait.png deleted file mode 100644 index acaf11a8b2771ab1c3840e3cf7b9664d3033f64c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91113 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 HOG5q^SyXxW diff --git a/public/images/splash-screens/10.9__iPad_Air_landscape.png b/public/images/splash-screens/10.9__iPad_Air_landscape.png deleted file mode 100644 index d872e5c881d930e562f7a8f1bc35b3121ea418e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95940 zcmeFZbySwy7CtHn23RPe2#6wGN=SzyEueIxgn)E++0u=YiiC7`8ib&9NF&`yH{AJp z4tt#a;rX3?$Gv~tJI43N-kVK)?|Rpo@yusFbG^DNEqW4%80XNTLnp<>Zp$7zbe!|h zp(6&zj=*C8H;--huApV^y$$#>@SjU_(4pR&N&(Hk*S>*Kh2ZMd8 zb^h50pXZ$XKd$I8Y$BHd-cEAl^1_g}l_?h$nAe_I0byZ!{%%ho9(^-*YEx7dsFtq6+)`B+O-+>Mtb&(i@j=D&CLPuRBJ)!{v8ZhkR4m4mu1BQLbj0Oy7 z!0=bKhXxF2z_3pgpaBCKFrWd$e=;y=h5^km{6+Mk83r`Nupb=I3HL<`o0zb-JbZDd7!}q8a(U=3N&~?gNJ=Z4VrC0vkhpr zVV{Bg9U;-}33Ph`-JbZXTL)jD0RtK^paH{vOh5w$G+;mjhW)Mt!a)As4K%}mW*E>6 z!(Z-zZcqH1nMX4WXuyC53~0cxj}!iikZ8bw1`KGx@RvKF0RtK^?7IV$ROpF`-*x5x zQvu`;$=KO_Ex}|XwxBs)G{?K|An1|}U9zD|w!ftbbW<1!4(O5%U9#SRKun9qyAJ9cm!Dwu6`ukDt^>-Ugv=iqpfz;GBRhCn= z=d-Zh(|CGX2wjbBrdhpxuIKsSuini|KY_^?m?{o*$dv^gumqr#5UXo^D!}{yG(sP z{rMH2?6nD-3G=|MtxP zBx0caHpa$^%!ieNyEA3vhzskQ?s4761Y|nr_=aBsAT&Z>DIv zZ6EcbIpclIhvtm`O;x+28z2AX6VZ*2eawe$eC%UBG@L-giTxcw!-@SJK*Nds9YDj0 z{T)EV36$PH8cv|$#QqMT;l%z9>?cz+JF%Zk(d@*2GDWi!`^gl|PN3n$|9{|w!3RvY z&DNNqey4dKUs4{C#%MmB9+Lte5g%f9`BMW@s9BJ_sSq3I@6mov?{Jl=<6X zF3kG^v43~-{Cz5O4O@r4a}0PNC9@}ge&WK}9Q{U3Q%tJv{$Z+#eH5;`DypY6`0zojS@&X&|sk|-Ue+E(7cJ^dxxY3{;wdWmV? zn8QodQ@Gm+hik)V?1JJJZ$IKVZ%!s&H)wiWIGGUPIVTlwZIpas_JzRq13dGo-Xg0f z?B7>D54dj4{(ygUetvpJAaSQJqU8eT*lV4s)a?KYQIQPIvMV+LbTwl7Gw)uId72dT z<&)H_JUOride|Y=g*SIl4f+F(KlcPLyr9K+l${7pblmi0-SzUdvUviGM3elk1o*J` z-k7b4GJd3Xz1OLv!sQ>dw^bR&xU9a4Fe~TE@3pKKb7LNV&F5shJln%@A4SEzd zC!Cg>Mc=~#>S=Upqj<_84_UAn34$eFl+zM?d)5PA+i`Da%}Y?O!gXh8G)#-Bq&2-{ zP8BOMzsIyBJHzB-H!kn`;FE>cm|eC6sR+eMZI{jESCY(SY#pjbY26jZNd)~aYki!H zwG_kcN?MH5#fDkdCViXJ8Ct70jAE#-Pa`Z?nS{^SctCa_FE07!`i+uIZhjv2 z6X4f$UZ}EUx+oQK!{=)dwdmIBY<+Qh)qnW@zhGrN2;D>I#vD*=#Jy4$bFI%#EAFl& z4%hcct{h`n!}HRW4mBc-#B`04?k9J!`L}<47K;jheu`A}-6v~yjbe#8@FE7I71}#C z!#*6J&%ys4H_c~6e2{(P+2eW^Lg;WW!5QU`qK9tiEEW;PO9N4Ml#+P0= zaw{!NHf@O$CkVaMd180?(jLuLf1J4n4#mmy*WOMP%XfV+y_=+vqS##K zv^K70@niKczU3LB|MLz%DH&Gp((rxgs9t@V51 zvlunU3TK@*O3e~^CQj?TT1BLVuXHM5z^r^@tV%|&k?BpTL31o8c+PvbypIn6SQ~le)Uj_^41FPf6JIGd-VilhdHA$_A8{LWB?_OD4gHNF;GvjsJmUy#VYUyH!6Qg}QWUa`#j;M3DU@zozXenTf_ zAo|mvIKWzYHR7m}t-Z$l_*EINHpL zvNl0mWU|EM)ngRH_K3uiJ+C*>^vT!nD?2abak>Nl!jO zsQqe}zSr8F7=D*$^@;xSQ-jtJ`8wmgj|k{PHW99*p4BrEnd)EewQ3YDUNv!`z#iIM zo;)`hRqwksSHkSeHTJqYIJ4JAfpdLd3sCgr$VpFlk+e_qa%oA2yO01#J)cK&AY3v* z9G#Nw>_$C|vUAG02KSs7zfudoh{mT%HcX6R?@*?=(QWYl%82EsYa7I19Fv*)C0#%;Boz z$`pZI!kwgFcOXp1+RgXZNA(n13=?R&6~vylU;p`HIP>$VlwV@pJd=;g@O>qxnfY4U zU(znKoAwsI=CXRopqxpb|3lmBiocSQ(qy~iIR?~IVWWX?bR@5jKNKaEDF+DRI3OwD z`u$4x^IVp?K3TGyS2aZKwijxMI-40U(x}+}tk~O`ugaOP*xSV!cymjRcF-E)R!3p} zbKdJV8r@FwWk$kH5DKp3+QMs!Y%VQ|ICg>soca@+Z# zAL9}Wk%_W1yg{}zT_cQ#StBLvleDDY#?m;^yM%brsdeiP75ys8Fm>6V8-ZRd9w>_@ zzblF4U(9f6lmyh~<^f5PfYgD^ZF`|`sey+An_q&I_DgWOz}D_s#ihhZONkjcqjpX0 zFE8JN47c2>~}RFNXWdj()iByxPV{V_oVddFfCUVYcgU!N9z-p_<8%Cm%hK|cX71P(8A$~54goS z+f(4z5XDo2L=7xA)dEuuCCU)JzD`Z2v>!2b)c}r&`J7f$o9<0|F_+Wal9^1-KY8QF z+heEm3|kZGcBGsfz-);+%iDG1n51dt6{o~jOd-@?H*ATMO;p_624tnEo~Qp;zTE#p zG2Y$1HMwog6eV-t4>=y!Br)~FdUs=-=wm{-wTVQPS;=fZQXB~5#KkcQB$eDtqQEw5 z$+H5mn{4^0m<5T%DLF=;Wy9V>2(12*rQ>B(A6WnC8E)9c?MIM17y1O&Kb{^^s@PO$ z9{oUdM8Vbm0-2b{JABz><4Bj)E~LW9#;%d&NPlvgzfe`9h%SZt0#lDvaxqpxucc(% zJZ;T+UVC#3m)M&qhImFf1R{8f>_7=hGV%z-l3jb-D6m&LQM}yfw#(WNSoAfEo&-Q? zdfD;tw(%05PN1)oeK}G%?CS*pTfy#8 zd}F+{c#_lI;!~-~0hlU8n)VM;i^jqg_*6&dTicDkE&*ur^*DUA`qJKd&8Pf?kKxwB zT2t3T9`j8W7xao0YnuToPs>g1#gv|OZXa6u2}r8~Tv z6YsABs-PRth&l=ZA}Y2#NSd2gHSdu^6fOPi8~lfo> ze!MKJP{kVaShk<9xs76sZ~Ko!8Cb$7ckS;v#6TI7)_ZAOV6W(yQ|ZQ7M9R#t+%a9G z-kR$xsqr{Urrg0Tahx;0fwxn`P9u&S4A#b2;&RyDM$F!;8ZsvaKzC_na74U zj^qpnVks`fSjQ|W&#Qk=CMT81H3n>v_`K98pf#M*`Y5F{UNUS*wQz6UZ;u8*;LTu5 zUs5gWALpdD2n2Z@BvHj zWIu}tb=IGv$*Uq%lV6_$v{jwgsi~%3V6Y!o{tB>`$S|;tew#3g5#wW4?97_Imx;>KIEkXb(r77@8RvmBi1_u$EhRls-G^H zDO{|h|BVM%cqCNFv3qZH=>|z8s@t?H2oKgBC@Mzi09#EreDFfahcvgOCX>^7=1X%L zicc!M;L@PT2W$GG7p9@8ekruLKiDextoi20)2?@)riBtIs>pUi8LzXwzEIWfO54P0 z)?aEFsy?b}lu>5eYySD91(eZB8#8szg8*oK1h#*ku6NPvp0?i6Di%pcScDhxNB}Dw zOLN&;4M?||ZhkKsLK=$X+@T%;a8jK4VyFrz+Ot?{pim*146mvywv9J$g@m5{>Aq6< z+HdqvoRGujv^w*e$Idj4T&-ATR^9)1GsHU9c6Ts7Op`8s zBb?X4@}v^Ye69~if8ntL5{Hq1EGSq)8QT^*)Xant5^DX|PX$6q2Rt=9YXg^{)ZVa+ z*%^FtdI+i*dQ1^0$TKXz7u&yulvN#g)f||vT%>dV0{Q7v5NQug{@aOaR;9(V%aN{m04#|Yl z!r?W_xht#uri4B|IZEUa+goi~GOK7k$Ti|G6blF=kBRx2ur&8%+}G_XD9cujz%Cv~pS2t>6fMHz?-aOX*FMxUSMUOC&7!McuP%{Wi-XiruDB9sCJ|Mo zh|f|CRkD}Sglyvbc+ukBxmFng#$urmmKKF4v_C={Byc$Mp!AzyX-`&2iCvP#p^mSh zp2jbgaMN^*<8FDQksrPM4WV_8l9&rN_tDxIO7vBjPGE)Zs&^ScPHv{0 z2{%fo9kt>;m}bO*UAW40`W%X5&`XkIGs+rV(TED^5yJ??zt;6ACC#%z@&&1_axM^s z)q4C;S1ts_Y+p^d^G0@*I0?5=PKHmR)Tt|g8&|_^XJr9GJ;BWo1wPreH2i!CrT3#O z)xM-^SdlryLhACP%?y}ir0urUKIDp(=2mzaTx`& zfO#j*UjgR=f7nT__`7XiUY(3}nYrWaeRo*guOGn3n?L8ULhm|!cP1froHw>a^U6L6P+1a4C;lyE;h!UQrD^WrdP{^sU_pPM?CalgZO z6gbYsAxN+^>4f!$an~CCFAHfywEmWqdgUsTLhYe=8-|?2xEnbm3;ESXb}fZ6%2$@0 zZinG`w#|HhSz$C2_V-YZmh!c^KAt0|NR%)8=ORHA;H`4D=+yHS@R%&s%Y}hN8C6fM z*)^vOLW&hGpuqD(9>r$?x6`XkqY^E7XT^TTn7M8BTnBM+c;{5plQL9z6q~;rE{=R%Sg5%qy15nDASwAtI!!eX zp(bwtIbJ}ZDHXQccLFuWYnT=c$B2 z)kU$q_A$?D+5TzNIP>-aux9MvT-MtE{#xWt9&cFns{tW}Nxh|T$~=L4N5fCHRv$82 zV`gzNyr%+9zgl@PAGGcjhxr3U)yGIRR-(-MU$rzO>)eAtpM# zEaKXOTctqAT!#{Ah#EUdHZjKS>WgM1Q0b}QX-oV}0BUM_dVs^MpSMM3itOP5%%K^TKI0G?J%D7X1zN=w>4K&-wd0iR?Od>bEu7OofLuAqE^yC5G7IwT*B zh(p1sO=qxSS4#_lWVkq#n4vfjiOCP0O);N_Lx=WbWFPe7rRLNp;ygu;z8OAM7+ zO0$#H6;u;#dj=(t#s}3Plr_?*45nn1dxGhS{u_r-Hga5+@qluQ-*v%D>lkO+ms#<5 z2}t-$fd0p#n%tQ*Q9rVUh=FY?q_SCbKKJ*Hga_DM21G=Z+<}73u_PeKByjZGQ*5rz zUX&5o$xWG*XsO@&nUY>i*8mYER>(ig5=)wIrL7RiGNbKmq(}fPrf%K;s4H8~r}KIM z%JRwYGC>t!DX#hg=^aLdg*rn4@67bT4ArQC`x6_;*8%%yHtKSm)~<;0euqI0 zdGNbzet}K|DI7$7NmKiWV#b2r-^n_KS=H)0I}+r5`fPjB6sKPw=+4l*fJ5TKPeZNN zgBh*?20qWCE2i$cF?t=$My#{#LP|^}^wvlYA35=okWsZQ!p~`ErE?e>CtkpUFe2F% z;xOH=T2w&8!g!1u+0u9;bFtzquw)hp_hFQp8n7!B-=LC5`sCRUiwlXZT+L{VAvmuN00zANETCuZ= zaLQ7l*AmH&8$;$X)W>kQooTJCe#dFO)BfCKv$?I( z*Il>Qvpd4MsrryI2*}$In?6g18^G>!PN(J!HH%(K%Tx!j;ME|<%^4!pO^gyp1x>J^ zdHY_U2_+=mHSxIjUZe_X9l?QFGia6;b}#WN?_s9{SHn5=;k{={vnPCOl(}N_#9^*zJoyAi{B%x-y4CmB*L6h7b{|&l#Z(6JNqtOM z4!R``E=Er#R?%bKDy0L2g%25@BU1h<(e}Y_d-}IRPhLKsyTz^#N?sMs)-}k9U!Zm; zWUkn@d^S(YW^gwWNOLVMeWe>`a8au|ED1O*I=pYgs9R`=36@HqUMUe3kxV?voug)2 z6hC2|^ZiE87f3nD;X`XF0fH%tY1&ZJRrP1oG06l`%lIM$A4E90n+34Z!qmxQ-y@Xh z_8?FY>Tih$HcU88esou)0o-an)ic6=g2Nwf7b{ffY%fANE^j|XW5kn0fpa} zZ}kTbX$q8>=iD~xwY0-DY`@0K+n_G;B;uGDX5}&{am9wwd?Y}W@BzUSK^yF1>&df7 z&>*$_@vc~|ZnxJHA!y3L8?PWdS9XP+0>f+W6jGbEd)M_FBF#$qH7;^OxrnsNm4sFL z#Zl;zGwaV`Ug$7tByD?D>5g$Y7GY7`cDK1z24YhZE5{uFSPgm{tp?yO_6jQJfz6JBp^Ck&iZCZ^b#brup`X^ar=dtju=O(q zGW$Uf&Y_nSSDr;pZP^2&eGlyyVWs3MFCwCtR%pU-4tui>C8wl&0^i!cCL=F^vXV^V zW01p-L`Oh}HqbQJfhPH3Sm&ZKC~e%pv_hTphR_zC(hhf-t91xsK9R0-# z&^e^Fm?ck*vg$W@Y#YFh# zUSQoUDlv`*v!u;5xDYBxE}w|qCP(-g2`q}%R>1wfBBM@C#!zrZ4ng*O)JwHZKt zW930;9{T|Wz>bI;xLt!rm7WXYOyoibdSa>-g27PZWFlbxDjA3~o=hS}=|vCY^yQAe zWorpBp4^Lfn4HS7)>E7E4sNJ{kfLZfNy=mEt!7r1S2$#@;QI`hs2YJNNH%SbO1eQ| zLLWg9juN5`z{8UG7{=Bz5W#M=x-uYl z-{7m*&DiBFy%@D@kRIk7%Hv-v~OSa+=*}5uDrcrh-ZIcZ)=E-p5tSfL?}5;__R)8c3e&K6@dL zg(P1Dw=g3-@s+1-O*NndqQH&>OTI^21vM?v&gP02A}zs9cA6_n{GbojEJ6W4dNC)v zPCsjh^T8yqT~V0&1B5DOFEd%x^$NZ%N4fz8q;e=~vkylx5#WaaRuG+qs?CC{o;`f@ zls8C!vdEkR&el_21HYQ+NK^AB;mU5Ilq;M8VU3@hG*`TOMru1ZtuhDTk=T9&Iv@y! zx%Ag9yka$5V@NguuCijLX?Y!V#d`7gdw|8fh*T-fjP#uW=_8WwK3bCw?CH!md^TnR zR=z_266<-R)wCd?DoUQ{ z9%TE~ap^mU9%PXOq2_dLu&=;qKBqe12+bv39HaUmSbEcA zsDpvaa^xkRdGg(NkC!J~ML&K1{9TiKO18H(ur~s$;?V00^=vV39r+rh2i|&?h)AE8@XQ%cM5O);>XzAOR6_itghumo=th0M za;rX+(Z^kGV{x>Ms1Da|7g9?dBoNx>=4O>SeooFG$2z>p__~9+!&mQ#MV? z(ES={343KcEiEAt2-NL`OS7-z1l;y^?1}(K`N$X;e2`l!GwNiT>@CWP#2QL)H! zwAb#ve6*2AB&KvXqXB4bSfC(MZ#0?3J%0SS$Xn6R!q0FB&dw6Yf27-)STWwrV#}rP z((&V?g7{(+>Ze|6f3Kyr)n~r^`5U&8#Lmj9>gu`}w_REYjW6&FxE&Vb?mgL6)7Fl~ zr&s*;!wOh|s>a5~?zE8&t~9+`|I679OAp1Rq{{TlaR}&YpP#%q0^VJ}qzXywKfLH) z`~QOuEJcy4UkJtf4qhnwFN9Fy`{$NR-xFU4nLfLrs%ki1$J9VYMI@)im3o^J zyLqPiFlIYdDTb#9-=mj7u=3SB*1`AF0Fc=y&iC*WEWWrI=)BsQuAIGd4B14L{bf!* z^ozNzvbI7`q~FB2350b;(Na)+)}-8Fl>y(<1$eMH@!qf7Wp0M5jl2Wga1?~U-?FE} zH7VejB@BBDv*f0=uOGB>ayfVRa|751evnyG`RnIrJxCB;4U$KxOL9u8o_1hGUb%8b zw;__NI>cg?41|mRt~;AuPO2r}lz_fb0WC2iud#i@To7cimIUSBa%gAn69rJ3UZta> z>zUrNEFo*8IC!`nIA_eW6+OofTJ$3fBTR$?K6^4Em|m%2%E6&&2RrpRr_FT7_hX!s z?63^(`L{Qp%=xpc)7^``EnUChbYKSrE9bzSW~A$$q6Pr+`%;zS89!Ux<-k1-EnV>d z@y~gsFFVk3Ahhet(h+^bW0#K4tl2xqa>;Ew%X+d!cxY&7hQA>1+`}W`VCuS9+d$o3 zW;f~xhIkocIcVhqA;ezn93KUvOg7qn{P=Mkpp}+#7pLY-IosjM z#F$X{%ihJ8nlgzPiF69d$|X|K2i*c|h6+5!H2BUzBYcAiM+xn(2UwBt=U93o!b)Kx!{R|FC z?p1VTXboJ@P4zhFAlsr~ky^(NoJVHKAq?u0AjfY{LD!ttd{dlFg{rvo-k9*LOOa>qD zf>)Y&_DfAEOUrwR4r)pMF!LY$D<86dwy=-g0sn$4RN?tR{jy-51GbwZT=Oa{VG@e< zFxX8AaJ*76s_C>xA0|VTGy|YBGWPXTO^qm-)68|1yhkC;Ds?UE(D}d3W6;N&iyLwz zjm%*L@BQKS??U69)2oZX5^m}rIS}f|@5^9dO0Tx*G95VNYgpjid=NxLDq#a2eQ*eH zXUCvES;nYYs+>FQU*Ol)CV%0E@#}A|uYZ1sQ+7&5Dp4xpAy#lUF8S<_ETQllCXV&0 zySuxVph=eiVmqgFNP4_&iI~m6--7hg;lBen|DB#q+XPbM^%?DDQkKoM6Oa? zNVs^eLR3WLxq6B1_jT%%lr|GhH^Dim!GG~j^5}7_&h}8BBxb9XdbP)^mMBd+j8n>@ zSNCI?pZS2P9KsC6I>x!shl)NAVU*x1pEDmKX4#L?5+QVy5cfhr8dB^mqu&@E0#dm; z=$wy2Ibb>2LJ1kcbAgqS@%y^LTbiZe@o{R1V=Ua1KIgCBnghKR@BB?3P5|C&Dh*bH zl^AdkQ;Zd@j@AZzA3uJqmN9xhC-+1m|HO_!8b%_}P2G#!^Z$X|_QN|NpyGwmKP?vq zBBZJAye3By_IQUWOZP`{o_YYqmErDkAe|nKvg;23F-33uH6FXUU??hTfo9W|BZYpK zKbX9D2%Unlqrg%;=$UJQNV;9Z)yG@Dy(n2?TkPrUdxM*=i{%(+S8O%U!N3hYA8Mmu z`y&So!IBa&eCXO=$CP%gBK+)xoc6P)PsMa~RN84w-K1lrXA=y2#?V93s= zDl?TSVITl()2(FcU<%6cMJQ_OeJ*mCZbX$GmIgkd?0cukS@Z0TmkxLbA9;p+@QV`G zf$z^SA^D}G+u(OBu+@q={+&KkzmaUR`TdJ+;E)KtmKPQR96a}ip-6>b%68CrXx8{6C4BQP8h3K8K|Mn*=nO3K}LxAu4wNxSIeKiqd_oB49k z%&=yV(jq$i+p_~H<~cGM zB$c~Wlmc=G*tNj8M8KeYH#Rob`|X=kvv*eJ-@T*$Lr5G1jkdIJpq?h`ZkH+x3K4a0 zP?fmLL9X?7mxG~zQsug>d{fCvS~*%s#8)UNe57x6->YpFs;B@3ekkH25)z&UP066v z5*fd;vm45+)xZAq*)#D+kCLrHObI#NQc?wkOBoa8CS}EpR8%6+H2)FM|Jl8;4cZf=E_P+Or^+V<;+YRgh)4Lj6XBs+2>EG1cZ=>dDF;^WpXYw$vZl+5LXqQ2vT*F%x8xLq zaT;c&dU1(~7u8nArb`!z&1D5<#o{`%Cl&03J@K!9?@WZ2{32lPURgg|^G(pl`=ra{ z`+}^vKAhd?>Jm?Ik3*Z`Yd7l=!U$ff0>dIx3uhau1t3}&bILS9Wc{lBPu}Z zMIV225Kx#BDi>MCBQtS}P{XQxSy)(rxCOv=5l8Uki&W*TPlZ%>Okmz2P=|w5=4qB_ zrML!C_W*4l3i68)T25UV9lo9)KYpksq{=1w&h!?^J$~}UL{mD$ITHTLf*_hvh=;?F z+!!j0uJZK0ERc!V*R!7HUw;bY)e`r~b|XhpZOuN$8YU;~Ubd+Nv*9MJdD+Z+F+Jl2sT-BPkor~tu-efU6AWIG#fF#ZO{?dkwD&MaRG zNYBu)WBV3ov*Yyi`E%mVPeAh7q4b6nAi1Y*jhM_hA4T@DW?+?F{%4QtsrJ; zxyVRqFn)E`HMkRxl#~%z!BAkwiT4U})q?YsIwspKVLtI)FoOz94-0_$%g}$UVr&F8 zSi?l2A`rc$rcc%mnExRUbzD$~vR`06kh%q>F`)=y;bt`?il3rtUwx8m#t!hIw-CwCCk$~Nt?8*6LUTSX9@*0yA6W_)yWQ)Oa9N_EIWm6G~bmQvtwi(jQe?W z$JMZjHu0U3#G@C~Cq;IgCQ7D~qng+lYEi=%*kU9jB)G1j)E6j`!=30DFb6fqA`BAW z%!q&pdIZ{k`D&G-hlPzgQi~|xzGF8q*MTa2u}w~fYZOa5nwJ)4RLUrSSuPFzuB|p| z)T%+BW2P?oS|RLhDY3z8(Gnp;{cHL!s(mjBFaZuL9QEYZ($Yeh$OWDp1eF(o;&c@F z$UWLT#WdAymn~ab^}@`q0zsDpkznv0#0cKy`(1>npgSF((|J7;$xtxkm1tZ)(Uug1 z$K67oyU5LUw=G?R=asK-gJm*QnYGX`xeT#HRx>PnY6rx*;xPJT>8x0y!L>A1N`h#*+$PQ%HYH*YRNQ;t|87W437($a`MfihdZ7W1ehsUVem@N|Z)H|`xzSvMm&d8J|A zh~7JhkaZAtMqz@Yn(gGp8^ORONZ8xkYbK0p{NIdrz%LkJ@i08|VHt3MmJdZkf9SZMW}=w@N-63XO&k2V*tNa&v;?-zm8PV5?2u;2piJj~%&O3UP}jipOphpL_KW)xCWhAn*)6#~Z$= zRy&L(9mCHEP*B(RXA~sOI_SAyMZmSybuNv2N^xR%Z&>s^Z{NN>;=pJ`B_<;i2H^86 z3`~$iS*%i?t^4)tWP3^&d+X@t1&t-}fY=ADvsCeJ<&edjRm46EK=E>xkdO-gDr9lA z{$eKa76$QoN&yKfpoM|u&Y;je7#wGRYJ zc!NTud|cz@NESg!4wY?~M9iAOpggIAk(BJT9Lv$VY?GcF!*m&?zPY(IYo_d(3xAP6k8`D{OQz2s>3yQ_V&UnCeSC1 zy~%o#dy<-qOQlWhiBfra`JOW*MjxZz<;3UiyF0++zJkzy3kqU7m{_>c|Fyo!R}+!4 zgMfiUgw&UepP#?w?ajjoRn-f+8(&S|je|)71B>J;1eu$ecTlN&cMe?ja%UCT9tvbI zIrJvaQ5Q(4u{Wumy!%S*Bw;pl6wuw?8|f!p(ESYrBBfjBLdtm4nMT-RLv^n;B*K5B zKY5mKxk+ddti8u%fZGhX;^vb^FtcJg^W%ESk(X^UJlr60GO13KjhB!GlCk-edclBe z30_Ox2@%5&VlkcJ)_cUs+;(%3&=aUR_L}RxRcpm*F{5Tv?J13fI~P(KeUJX>y}nVv zd-3Yuq(pTQdv8G~<#Ua@WZBGv`Ou7}w@AKE;gfalSK z49W;9&a7c63KtUMe{uR!D6l}1#>T15X~__jL`1JTot$lpQ_A`dm6oim>Vf3m&MRijl)Wc1gjY@Zr!@&?cW8eGavU02ea83!OAk= z0*X2v?lGc9P}9qAHJr#?mhW`|Uzoo#26N(Tpis|aKK;7qksj3pM@+9zS zkOH5u)%eU1q)}uk40VJa^nxsht54lJfDz#K(-JD>CpmVl6s*3QC>nVRFmd8j*B z=pzWi;!#lce9yP?)4Y^`kqF6TAbqPPU0f+cGX#1Nw0GaS1ODl@ab=ZCxSYMavvpA; z@O&4p{D-?Ak8!nUXkDU14NyoG!GSzdP) z4UH0#0UE@!m=6kyi-}!R(0It00K>P7P$9g@C*4{#@UfcuEH-A|P#ZNp` z8G*sU!L!>4#DhACEAEI)jC=-Wfw!xC16vlE^j#Iz*zDg3!kD5S$iukiRE4OJ6t%!b zR;VEOL<%s-*^}Jy@$olt)y;kW(cPFb8q&{HSc@z1}L^K`h5OzgYg7P$Ub@V9>Cz=+xbxEi$^xK^QGQ{u29ReejTgVpOlz4o0e@Tymj-n@W%%=XEG07-l*#cV0AUAxPqUUr zf<&<$4{`(Zc+2jBOUN%JzTjp0+dQHh`_2y3x4{CFOAkyBMe}%HL&)ax+kgr z5J=8sN&^pIBh7p8$Zp^`Lygt~Cu}^>;ogc=mjGL{EeN(s6O;;J4p#=Ds<@oj&GUnf z962HZw{{@TFAHVK7XIL473)TjOjyqKav^;&geyRb8Apwn0zV)H>VPwj2ea;%{J z2H>n=2n3)N@HzkiHZYL}2y(V1_n_K#fGa0P(hB-nupw8c;;E|w2Y8j5+UvPH%Zm=x z4|gv^i`LtEzF%Y6kxz!WyGo+*Csh8SadB6Nm*#hzS~SzTyfib`p-16mYyIbPMg;c9 zs8@vmH6Lc+z4Y}B1=>Xth~+B2EeHsp4cCK8_iUY-Q(Yx?85S;4wgrm` z0ULeJ;Iq8^ZDUg7b(#kb;r{@rso#?NBeDm``GiKDXT%|l=z$NK76_QpuEUNXtnc|g zZwT3kK|bbPVBGg(9C*q{SSx=Z#SdXN5CMjDwo*iG6IZ5SEr%Ca3|D`JyMVI$>_Abg z3zZdulN9*p^1Gfs#iHoV1*qfz%H2^YZ|Cx{Bc@CM^&z*l1Tt&!NA!7Ql+um6vV{@O_LY}c&HyIW8*v^lBsW6UPJ@k0$R@53 z{3m|l1w`I?PJP=~s9-@7`-VyPRY)|c+mNvdr)lI8yl)E&i$glmP^I_kq4Ez5yn5szLZwMH44;AaA8UUkUs5{jVAP$u?Ra#*7AJR|bIXGJf{W@RNpIwWpg#2+C zcu`B}EP3S_Dn)|r)&tQbr6hnoDlJ&TIr#=|;Lx<4`4M0;p5FU?W;1aM5(R?vGc&Js z5(#0Wx&cJh|ElUMl>H4{#-p7Y3hTbLG|^XTI*by$0eMoNg}Q^Xttt;Aqf}sEpe{(V zs^7T6u#atcS6-`phGt)(#C2ZY-n?g-+^84@st93##HACNU392FOFzpA(+4U!50y(X;Gal-m3ReF7O|c-L9uQi#hGa%o1ea9;)Ro+&RD|Z~f}os;=+4#}Pr)&sG)1`M1?uAxMD``k%5oC*ZD6b6S}Lr_byrmA?C$;qCYhd-3Ltl;;!Eo0dHHv3{&?iJA*h@}2&;@nV?pt~QlUfV2Orvla z10lT&%q-|a>X1!SWe=KvzPLzt4FoTf0~KzXi58Pvh;{*_<{k0uKZ@<4VR`lHRWXp* zEi}LD`v9DTk6%SaMVj0a*})yXZwIewORab7Kp3o*xIa+t0yh^Cae*pP_$`Pq>XD=j zBSz$og_VJnl5sE$VOmxX?ZvME?5~1sb9w8fmsb$zJJbN^P#~H{^+NNTU`wk2UL3VO(RFZQW{el}P=w_#N;^Lx@( z{@rz*t~{eK^6N_JvG6BV@ z{%cDi49B1;777rg*ipkjcKmn%n2I>$r!x7kPWffPw@m)Xdaq`tT#*4f?*O=cCF0Q~ zVs(&XghG8>3w_X0CVt4=9`X<7eoViy>l;Xs?6)*+Up=;2nQdarhfy zl;KRny-b0SCYXBcR;IE+QtO$KVV2%Gh`omQ>#2K?t0>4YP1REjo;QdP8$&Z8Mi=xM zBGhc6K1k#RIlY0pVa=bm;4)b8g}Of|(*i;M0r$wTr`Oe)-ihSAr|CFJc^n7l*7qma zyq5>#YR-|7F~Pm9!2tM*XL7-zMxi&$K818@!Gt+WLy;k}v2SlE2Me*{*xe@ zg@EF3J}AlS5au4K&546f<;3}Gm6IBg zY(L^in{OEZAXm#b4gg|NTvF1ij!2Y8u{}vn6z*Qs$09n;#q}&o80GNK{89z?(R5li zJ`h31aRFYb!ccIyNhOqQ(uhC}Y40rI>Ix?wx0k3C|Cl@c19~P=gmta%5bBRo($Pr( znMgq`9ckWOwBvNSELKKH+A$Pt$VU7mgXe)4>__&Ur{T>3y5~NQ2WW~_e#;Guxh3C& zJ}w(DL=lV;-?_&s%qemo2)?s;ct2l%jp9W_a6Xy$pi@9nzSy3kq=$%dJ|4YP3%o5Q zkmo;*9u~Mij|}H9V}iTu0t`6l|4=Xu{MjmfzVAW=b=;=2x>q-LM(im zu!%_nvdh{_Qjl6`BHjp^F}okG;Dwi=1xi%*>E08mhZm7T5@ZY!X$(_04|v~c=rfO8 zKKk_r>baN`dBE6_hIACSUREzKR$rm`i30`4TsGxY?#;>|&z&Q-rQ5o_&)qd{NgWr>;nP75+8cq6nLjmL%6#; zA2uRfJ9>&FlT+{2SxVi#-5sPq<-}C4PIc~Au6rvC!|B2eK>%3wi6)_Oi}VIlRr4ee z)CD3mc9TMJ4wCcdX&e*y9GB0O<@^2tz5M_+au6T;8{9uE%pPvD(*>zLVGQoclOb?J zpJpz_iO*Kpyo`fwsVb}+KrdYd2Bz@^^b#t*K0SVJr0Jay(ndg3lS`4l(SlDj;6jQ3 z(9(*RJ8zJbku0GWT!5&63R=uQtY3nPwhC46LnY2)H>d8UH$kA){Sy&M+Sw$f&I@|f z)`~emsZLt>*ea0;3LB7tf11$Moh}5dg9ybTpHRW|A~|vK@m<^@tplxl1;m<2IT8mT zLRu>Z`(XY@v@;H?8`(Ul5&8~wrt^j+0BHSu8$-Jo;D*A}ZE><=D%Tf=^*|N58qtKs zYS>A6(qwcjym)!py7_)9Se&p_u2B%rsgs=0yA^{|q5wc^UBh^n^*|DRtqe!->hy~i zR4e>-+XH5NB%-)&vinqT-+l`8;g53#jnTU??$0CGnuZO94)dFI=i-$;x?X~J@ghAU zjNFEs&S0kCDzt5Fjd0-UCf)Kdg2_h<2~2JN+0elkcLvz?&5lYQRkZ9bii>nD-rahZ zUFJFspAqu;#c8M9Ck1AvO>b|q=r@q~>Ch;pN5Z{Z%F(WyhP0qvUfNBi`VkU_tSL&P+*y7k~N>cNxWhY4rtG49jJs2*EM zj|J*!UF(c2HqdC_=INb~d9IHGz)VOnRrzN?1iftBOQ3HhVXo^6h?{~bM15<4P9Fh9 z1)|#d3i_rIz#t+MU*(=_)_0cJnZ1D?!bp8sqg;L!KkD`iR$hgzxnp_e|7!2c!>L@~ zwpp>aCPh*tX(F?P%rr$eTS0ZOxi0#Wo(6$kUG9z7G>$t7KxrmcZR)aLgWK1- z;c{Vy)8!fn*{3NGIJ>S%KD}TLbfVp^0?KuD@NOgl za!_o&OJc;``bgxgD4v%e<;D=Rgz%0fE|tVkR^izjETDc6bCpjbau8yinWwkLP{$V| z;w&pFDsQtXSv+ztB5)NT8 zFk$sEr)W~ zV$!c4p{HDjq7VxAGmx2BA3A)va1wJSH9q`5o*&-A&d%C=)t$wYPgjSvJ@-B^c>b45 z)8poLp%ZEX`n(ws9hWVu{Q6W#NC*fV;}6y8-1YGdyRb*jh&uXnE@DV>?VC%^SESn+ zG zbhK@q;gm~RwGE!Q5hVl0IL<_yrNgg3{KKp5b#6M^a3ymL5mumWMd`FUFbq6QW@hG! z{!3uyN!M0;4XR)hPtPomK3mlE=)IUiQ{P=4PK`f#WDTy5%n`)s4&5YSp&i7noZsA}oA_(vSh!u>rr` zyxEaznkp92Bo0iU0c0AA2_mqKpmm;v`f){9QTei?CKw|YflTi)kTJM(9g%@R7AIzq zZj;|*!IA~74d;>!k$Xu`RBe+<=am7sJGWJY*ixd@HYB`FE@g%eRRzeym?q>ShbY3w z&p$ZjNW~lH1*UJFYkf}ab?{dmUR_<@UsZiBQ1)ZJ8oVKh9lumpYJEHH+A@F&T9Jq@ zz-EiTQRV`|4X(Jir=m`Jlm({3_cY!>nY0H%zdcAed3-P7z2{C(+&0sA!o)>~k>?O? zS54u;-15UFI_ho4cT}ByWqU)#Y&@6G%qfkk`6#eG+MiQ?Nrf6#xYFG68{tsPliIOAdLRLv zKK#&KIgn7talY@yCVEY$Qi_w^kAd>DypkT_tL|7L6F=uCQSj!$D`(ZJP6vwZBlD>tdMVck!?Yb#2otbk$v0Vo%O z)6CE_%uu*!IrT-VW!cvN%hXMZSGZl4blC@l)=*0*`HPnKApU-mcU$4kTEN-nJ3coc zsdyV-baQScWI#m51yYaU*Ce!|u|mnR%6-zQ?%X$^yTHE%rGMrqDYY;rN88x z!nB=Mo#(Nm@tfxE71;aTR_IayCVunrz`JA~<|75!+?A0A0si03iWMj@#bm}3u3_x& z&XmW^(g=jOB5{Wq5NFSnE+`gXDl~lhq)fdT7F-pXeqzXnGT_<^QqCZ<(Pqj-Gl0XGKrEHSYBAxXJ|2G2maQXaz% zGY`I==37`C^-}K8^P7Z7>RrZ^B;o1PTPIpOQrq7R5Ai!|zjiH{$r&LmguY_zZ4$Oe z59pHvCE+iBWh9F%04m*ddsCk$stWG`_+7KjGDegj55j_U0Qz}3zm(5xwtMTd*+i)) zp?9E4q;Cx$BTgE24*n?Zeb8P~DfXwn4bb44eyx9IDRKf=?b-&oUR7aK zC#_^^}Vq&7XiL)mTq7)eFT|e9b3+SPn%YugrKw~z+?Q;$pd@*?y5JFXC zJ6UK!NT#!H?IOmev0zh80vY_5k$n&i4>(c*jm<_y%P7y@eh$D?T6=;iXMw=Odk$Ks z0rcA(z_WXHzcV6w@cTtYtF~`{7vQUUZxw=5DEee*9WK-tfB&pgjd&=*Qm!H+$_#d2 zYBgef5yu(g8f@BOnAJK ztp#AiM&2z$kgIU8HyXsos8xA;?UK!nuFZ9e_wIPP_Gz46^lM8$N#4qFyNc6+DGyuV z2|bHeMCA+9ZS1dQe--waI#$v3weP4t`mU9M#ED6CnwV}CXxtgH+AoA@3m$9NTB1^f zpmQaBhL^1}w?FI);}aI(2PyeULcBCbB3`f9}Z5tJSOwOs#O>)c1h#VR{aRsD-O zd$NegJV<}zN$%?M>RUTk6yc`gxYmCLtJ7l<@6 zOpmHmS}nfo8hnY}&M&SI`9E=T)XExA%!~S#wFd7n$upLzW8>FN`WN{(3U6K z37d5|Wb&tuhh>Q)U7R*Z$PMUDg}lG@KkEmb0LJ*ffKr>qpbF*2KpeV~DmQwD8+Co1 z7#pL1c#GVo>#f`FY}d&b+V$$@Rm|I81;6>Z=xSeT833W%pQPxVQ2Lp&ts5j6ua2c) zfCuTO_b-T)`zW`j@W4Jl91CN#%sgCsam~IZ($v+DEM^Pd%JU7nC;t;6{{9rF)CHl7 z3A$#wKG6sGqy16a>-mJ_xGHFBS{O9^?aFx-jO$qifRzK;s9#Ar<_ERB1ID!Wz>PTBTX-SEjx+`aa9$5NFPk6mV0owPTA4Qf5YDyzm0h zV%?E?nOv^Jsw6P<>QvS&%5TWnEQOH(kYUNA2bb`~E3)qarY#VjzdUIHbl;9;aeHhY zhlhtdzW6(5zsf&Ik*=gzrA~^$OWeg|mRc(Z@{W7@xz3UVmC@ceV57NibDU01oeNFtl z6Nkvy8uW?fLl(L~zd)o!aMpCk>pACML(*&taZ6E$`r;XonqEOeOLlR3mjVU*5p%}l z+2!-Z&Zn}71q>oI#(d`zboNTEcPh#C_V-6XX8agXw%1P{r66inSr}tW9t6d8UqSr{ zS*7vk5BgkoFO!)M$c_4b=!zgEn~6~%ssS98q@L!z%EDrQ&xbE|N*D*1g;`GMh&3vP zwhv(t_Z&3Egz9n^2Sf1ih$sQzBkxY$lWj?P>xL{v67HHa*Q!x&S#zB|y#K1cUG@VI z&r9S7t$z=OBdY`ABuq2-z4-uqOvEGm2yMQYbs?KY+n!xIN+b?YbUaxnypKyZFJSf4 zgv_O?$}=&%r!USN=y|MMSMLZ`bA_?otXc62{RvxRz+y_{mw0_I+;S(7$>fRBKYZIm zFV^;L5f$9|CadHkXZ4Do^qjhtPV?aa3`MXBp|C_u+jzF$;V?#vL-!8%X|RNh{Kjix z=()}=YSDcgNGu_!Ur5U~E@S2wPHGGI;#+_Vg&1ttpu$d$z^>{u@xl_Bo$!3qyziT?%%Z&Z$z9`+^Vxcox(ZYN z%u_zY@rn4UlPAwYHd*_J%Wo}xA8w(7Ez5H$yFdt2paE&i?UvmC+G*+1r8_a)5u~R; zT8h`}^_Sf#E22vSm#X)9*FlkP^IaF#^#73ukF*`u!S?69jt5&oNkl*&ciL9Z>B-69 z;He+qsi9Z*^ICA7O3%=6{aIb?={I~!fqN!1m$W}}ra0ZD{F(iEBB$7JW6MVK7|m_u zQY-IRV3g)E*h=j;Iv-H4Bj!%hUx835wcexXL>xxGZ-!D3Pa$u|KvfVW6bSex;eDm+ z`e;zwoi7BCg_aB4%X=*_etal_YRImQGjt(D3*#)tSj1_ftak1=M@?qH-sqFE zrset-5y}gSQBZL#oi1kJUl3~ffj?#_|IP91K%d1FxYS3qgW@7QJIWd_y&7mn6;Lw%-rCw~ zb9eWbX%JQ-wNO}iFsh2v#z&r)J7z4){2@$v8%!pDATiBjvo~+jC)#=xsf`D;u|aLB z5F=V-Y3-7pj<-9++hoKbj(bUYd521;&-7)L3#Jf-3Ux@RiwYHdS0UN{h}ac zyBM;pNrK$|DBF$lXT@t9Fx1EsWpVS@n9Y(4taGjt9`^Hv+XZJ(<`LC#GaBT6u_eu) zQXk`1iD*+P{TPGW0`OEeWXbkB7Eo88?VJp7I#=!P{_(oQ2l{s+)VcHgH8jfvO+RYH zr%Hc-T7slyrr`>0*MzO8TN_U5e>A8!)G%~>I?e)xZ$FU^K_?4%pJQE!Sqf(Xj;Cxl zx1=Q+1~PhZB8UkZb*)qVxfDP!@F0n7@^@PCfU>+A<^@88XGJJCnH%A`4p2GDkTX#0 zrSseN6ef2@ImHQm+}WJgh|YQ#I6M=0Q0n%LucGc_0pCKh$A`!9Q1LpPkHit8+0|QP zWfge{S*6d%`peO0LP8d&6`T$V3JVIFP^nXEa}nX0ctS}obm`Kiy^zdN@(S#hA9euB zLsPiCtMQDjx4q8+MWX9dP!D9e)~FKsK*yHdz%)#LUGfVAXz(p&wAVh3ylxhy+Jiyq zE8z-{$&}d5Eoy46#O6P0A4N^4Yptbb&t5`mI9NPWuP$B(UWYIn-t8||gDmN=ZO3jU zqV6mNiE>t`PB4xNT~{A4eE39OUg(%x6g1&sbSfd4slb>qrVP7q{=$XjH;ujz3_K$3ew2Xl19W8I_@GW5Vz_ETW+!NUuYL+F+}47U zy1PC(M{yY}V#wkLI@>Ux{!UqX_Im@tnGk_!Te`#eNs}T7_TO@OE+P1ejC#1eFZEt^ zW)TBwK^XQ$6UR*BlDZhO21yPzES5Ef0s$F`hG6nK>I(6R}mz&J*`Jqi!N569~P}={|Wt9czHc_8vLZ&NE&Y$5F1Pa*CJYl*zx$R*IpwYciglRVaT&nv z7j>NbHHhhE`H3a6lvmWSh4L!zyHBy;3k0TgU2*gw`A^?fqL~#lOO96Ib~n z+hO*;Q$ay$3>SZY{~WVFspEL??4+^ecK)^O(mcwua}Q?v$YRRP`53)}FVy+1GF|NL zFADud=Il+ic>U?z-~HB)i!a4G^SCqgRR>G}P6C25jZHCX`;X8)27f+(nwwUCIVO^uB22f`8V$d3AvlMe2OUHAN8f4`uhm_L z>=dQGq4j}KFcFD>kR&WZD$Po0tvggzqY;!+9T6Tb z4Wr-hn2`3{P>oq4u`3?_=1s;kef|DD`l^}>l?VnUl88X4vt5UWwDN=mFfA?!?TyGdj#E3ot@=Y)Qm!~XRpL@d!Rgqvc z9s_1P-jyg&eKS~l+om(z7ZTrdPS|Lr=2>+amt#K6+7-VY zO_DWlvQIj;*8INUWRp@}ho$ny^Dc{+m=-rN&*z^K%Sru|o45D&H@mH0>wJf1#sB_B z&_BNHd!O&1pxt48K7msCKn$d@C+D~|!srrb*>XYRJ&rb*f$V5H!fH=U>>l83V{-If zaoC4yVq)J0==(w~*ht2-W8PiARgP;-fmXy($~(jaDFWoh1RdEU{3s=Fo$eMJ&i zgpnvZm=W~cZ{Itd@90vCZ)^OJnjRNwQ8{>~8)t=>6)g|7c>W|}H@MNp{Fb;Gm@W{b zZ0spG`uhxVAdQ%aiu;8nHo4OHhyVL>@9#n~{cEzD`vElZi<(*n+%eLATjknvG%U2h z9;&ApAHcxI6gT%*7+Vn&*Vuo8jK9>y(CS7Qs^X@#cnDCh7Bvl5^V?w|#d)=S7KCaK z;RDpcSh~f^=GuOVRiJqu!Yi%U(&C4?0V!irP{_JHEmPHEkulO3TX5UYL-YjaR|!mx zoXI;TrN-ln2*>s9CC3vDMq|QhC2>1EzL0_}*+YL6wF17_&rWSe`|L;!j5w(3QYd$G;X@);G%3%^=ZV6N31mI-Nu2hNo)eZNDG z^Q=cHL;JX~(>0%DFO`6+XVhgQ4+f%*?f=c><|7_wDEkB21EudJ%ctdShit(?0u1mD zgy?|wL8lLnp^LY`CgoA^xnk9#zLUc~Z@ivrIg!Hvcc^-LQqJlS_;GMNZuDTkvfk)R zN_8po+2ToOqJhwsQiC_$n{op)K()~h^729nI2|i*CT0ah{c)@nXE})DX@5|NANmwfiy;gK zI5#n;n@nCume}ofm<3KK**qGW2*JN>I8G-aPh6Vui}{cs$9YA(jNuckraeY)FiOO` z_9jSzZX6zD_NMhSK-k=1+kR9xL=HJvI54lSNzuG{cTfK9^t(d`@UEsb;`F@fp#j5DyL*z80b#qZ z17ak+N*C^U*UEX61TNKO$3G$Fhu-LGk{9!1ejsr73>nx?&f9FnnVer6*ZYSGy@UWh zr9bXRfU50-pyv&tV3xzhl?Nad*57uQ@6M zu5Vy+R2#hcrYYFc0BX-!@m-Lo7!6Id^g7aciSk6Q;Hz$0Wm3M1^FJiFA%ev=PO*d| z9B}_%rR3}zL=-nEP<}keLjCz={D=WdPpeWN9G8D{66j)ddMXtHIPnfo%5Vvbb@f@o z1a3D&`RW8L;qvVdxV%^D4X>H3;x2a+7WV(b?FIgKeZ)60#mIKx{6Lo;Y{Z~}f(8m2C^+$f&M4UUF!E$*prC<*28xmG!1;mBDAP1%ijkyZ?B?Wol(#k1-pJ_ZxA}8U~dq*^q@-*Ha?8V zl<3lf1`4)nj|Pg7RFwUJ&M4T3K?4O16f{tb#7)i*G*Hk$L6;sQ2{y+Ey7U-%AT&_W zKtTh=$adiPKm*0d1EGQ9e-2QX%2lbbwE!b8n9B#c144H|*enb?NYJiQcG*dr#n`kI z-%#RKon&4f9{b7f->B=aoPYgb)Hs2dW3K;iB>jW`SJ`g7}+3n;GhEs9XLj|!>A8*;GhEs9XRN~ z!QKUGC1~ diff --git a/public/images/splash-screens/10.9__iPad_Air_portrait.png b/public/images/splash-screens/10.9__iPad_Air_portrait.png deleted file mode 100644 index 52ad824f646ba6e2960dda4b70cf64f834e0f86a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96744 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 diff --git a/public/images/splash-screens/11__iPad_Pro_M4_landscape.png b/public/images/splash-screens/11__iPad_Pro_M4_landscape.png deleted file mode 100644 index bdeb6a6fa7de3d818a12898ca2533280931aff85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100467 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 F{{els2&Di3 diff --git a/public/images/splash-screens/11__iPad_Pro__10.5__iPad_Pro_portrait.png b/public/images/splash-screens/11__iPad_Pro__10.5__iPad_Pro_portrait.png deleted file mode 100644 index 5769587fe111c4d8c37d0cf2cf4208e527b49299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98174 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 z 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 AB>(^b diff --git a/public/images/splash-screens/13__iPad_Pro_M4_landscape.png b/public/images/splash-screens/13__iPad_Pro_M4_landscape.png deleted file mode 100644 index 48f5ac7745c1567869f4fff87913a8fbe9318e6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135112 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 MG&e|H;JoGk0c2pBDgXcg diff --git a/public/images/splash-screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_landscape.png b/public/images/splash-screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_landscape.png deleted file mode 100644 index 8f12e75d8b22ab0a21e9bc79ce9605ec7ad77774..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22655 zcmeHvc|4SD`#y?ng^+zImEu7}cB6Wt4K4Oz;c&@B2Rg{QmxZKKiHbG52;}=XspRah#VPUDMUx&&X+UhHx>I@lHQ;Gx<@~f zg@CULW|7EcXFp3zA2g{^eY!K=D$H*pelosvwGE&?}HcG|G5VI z1NI-rd;WECnh+fQUZqEh7ybVI18`}D-An&>2zLYWKY2;Bn<4)$$lVOt%@7E>cR}@E zm9ZO;-GKZD8g_ZeKjdzgnC&vv|AK~H>i)0F*bT^TKz4-iuHe|!=rC69(#iko8M}gG z*Vg(EL_+T2F2DX))7%Zn|GxoA(D?!R;Gm4b zrWjJj%;-AZJY@|ZYZ}qbRV?a$cf?lK=C^B<;|{x2t=Sj{%ogT1CaU^4M=T1Swz0`G>zw|4nO~q`EOTbLN`}O5V-1cf#>3S2h3b5y?nxtZLTYOOgxM+G|en*5Q|om zyZZ9ftE>dol=6b-=~v_NG5J~gLVr^1>4Ynq!JX!t@&c5}LB|~3T;-}IslT`Ckg)%+ zS6PmJKSK6N=*9ii*xDS~R!1!+j@(Ob_!57*?(<(_<;gwZe%xBo!b7ue#Nc&8xyNpddc<+n`@kc3W@>Fws6}cNL-JLf3D9+sd zlG6B#o2Eep#0G(I+C2>VTa|WSUpJ2g5K3)JmcCti?sbC~UY-smusUP+EaEA-%q2FT zJckm;(HucrW#w}qrO2CeK}bLMJEh~XEEqJ|zP!%4g4p2NadzLaDX;lY`@+GxWOnvj z`*QBd9IXp4-l}q9&nHi38=X&hD2dF8{X82 zY?B)2d4h;M77U8A!Mq4Gij)yV&ghZDXVhW9T*v!vy-{?O^2AH6SkunJY`?;j1P@M( znggHWpzC=OxwqPK&6d?$V`IK9Yi{UFjo&!wA*cf}7(QBKNyrT?-QWthcu2 z!x8!^=cey@qJ*-?OF~(AiY#5ey}4u+F64bN^r8^8o;J5J^M5B<8IjI|q?j~%AZ2r<74M%KPb^jTyws5gzrQfkm22Fg@ z)BAzpfS_^a?9bGxeYGp#Y9&ehqfnq zrsOXVR=e0U)~CD)rIS4>$0n(36%T4(&ME05rNT5T>7}bT7MdAKMNso+jq`4u9WP8K z{duvaQ;b+W*_vpy*4Y<=M6ZQ zdy&`e1Tfbg>uq_S(Te2fPVvP*Y8Kp2t)@S~lA3IuF@sArQ*#6V^~K4X4&NSq(nax4 zbew0)ncg71Y3;Mc3=zK99Z-Gm9@(ZfxK~NzgZt``kCE4=Z%0;kEu1G&phB%Z1LT1GPztzvPw?Dcm7AuSeD;H#=sL5 z>R9WuDVP*`t#j#7j{Rlk3FUJ|&aq}Q-FTaZp;_)u_t`eOq!JGI#^B>&hh)E(Zjomk zC9*AFX%EndJJ$#zGfn-*W9l$lOBs3Nv1Za7TJ`GAThrLBtQ#Jz&J$naJIBao8rO&2 ztx<9r`Qnf9y%pA{?of@uRvA!VTf&KlDfMNXrHM)wuOfF1a9}wR`-CxQlYUZp^?JE$ zw}DZi>Ye90XP9KFNY*p$c%v+9<8O(wK7>JUETY>#CrW_Dr=m^3rGf*3G4hxswnFZy zfMV{#9LdyVBSGJGY`GW77Og?HGj=NMmKeQ?GLUpO72Ffgt8w8uNy1E!czPoH{m0AW zPYm6HUKOE!kX`mK_6mPTw0$}Ktcc5sXL#a9ZmV6 zw7sz?sW-2-^8L0!_t4N;Z6PoH5&&oAs_&;q8jV_oeSd^BGc*w$&7T~SV$MkRHs#eo z`Ib8hg3n_jW5*)S>NakoO%Furb>ZeS6vZ@VJvWGr;T~C6oBZ}f7>bsqtN zMsYWr)&zrSvr_8t|5-c;dw$r-ILZqy8UC2BV`Hn{oOKBZi2vChjTNi}3+;tnoZH@- ztIH`K=EvLC>|+zIz%5UHiRbk0yBo)@c$zR(Lc%|(^Qm4R>glw;#W}}Wjp~+zy3esH zRCnjPQVJZt&w2m@knQ?cDHz~zC_>;+W8{-7yu=wDk-(+v78&GE`$Qg+rU(vN8+3*n z2MzVK-z%d_CBn{2A@fXa;_sTuoDL)}=8pT3&&mzzCpTJeRIS65bw)`S6 zD}=UtHNmu2%`Z+`Z7%m>mknpz90h*h#8HOkZuMp6y%(ref&z=UwsiR|Wld9ULP&@W zkI6PCpRK>Ng-w{ewm>SBPRvaBTBGQvd8$blTHiK`-w9(A8TQ}$+4S6OTb1Fi?1_GW zGSmDY3-&4j^qfAUmgQ%ydlY`3zYnqhI65R;Pw6)y!z{l+3qD-cc6%cz07SJ zZt2}hbSh%f(^$KMy@;2*A@!*hkXAE49myyjOW(tTzGIPALtef6wM7Cwv4pQHKd;DC z%A;n?MwnMef`TB7pYgWfIRZcH0tfq#pPiC12PwHH%;Jd}%4p=VtK~d1f?Av(^k`pp zupugB)<5BqS?2FG_t1$zZcx#NmTnoS$FB2V72r1in(nmC7sfQLNC%@K`;276wJ*yu zL2E7ZKOV4!_2t{HURrjm`$?Mq`t0!ebEso>zdBwWCQKdN#$`Ojj}Tvy7D@E!qlqe^xE#~Z zYK+iZuUKqTjcE@r-aKNUo;%A=y@4=TJ~i^2%kc6&uK`WxdSCS0*_RrD{>KNUmKND}3o08gi6?VOm;U_QRC-L1@|>EYw*l*DXuYXI0jFQOKOi9^;9T;GCPOEf zQ`Uds%@-5fWNzt_ANPCIy{&1ukbgZ6YIK`S_9-GasH04CMG%U^-f3gJwVuU9H>1ss zCO!1Qs@2N5!mTp#WuIcLjU6mG53ocVqkjp;l7qf$<8gJz6Ym|VnPUHeB2Q(+?2pOj zTORaCSNzoS>uZ|XDgiK^z*?u`Aw!+DC|F|bP52Y&nWK^NFlXwB*R-Y8wGa5=xpFL* z#B9*QDL<5x)NO=RuUH)p7!v9kpBw8`$w={c;8k=sFW(>GQZgFm`rRtr%inUNwr8IR ziXA`MY}UYSWX=(#zVf{pQT*Nd$^7s9_8#-+oYXYhfZ${KYCXIR4j^2NvU#RJEDpri z2fE?KKW7UONxXQR&a2yba<*+rK+9mw>pSj7D)caB=axC#ZBHi6y z+F?PzpMT}V0rDqa3osA4<}+A#f^c_-{EP!i(L7Zc57nq<2wgJ0lH2Vu(Bin#zM2Gc zBASFS@29XFiVDLviB7Tp>i}PlJ{3|eT7FrCc^Dlq`&0y>fs=8l=cs#E$A%abZ&=TM zMYuwVI$0A$Z{KI?H8N={3oAnyFbTdH&F+ZDJv!`sPzd=o0aV%e zoK;;|=pHt;ycVN0(}{Jk6V1r-fde1WK2ZtJsq7Y%a{hqw8~2=1cilxbzC{l(g#~mrrnx?YA$8cA=zU$LiNd0pkTv9q5uw@@+!@64N%+ z-uJ-O zp(h-Vv5HOwU$rdS6syQwib8~@2)$(-_DW9aL_$pO*Q$jWtUg^l(EBCJa{0FH1b4Bq zD7{WWAj(Fwk(&;8ktro63k(AHu9cz(h(L0Ol1>tp@Y(vZ9kSFXa0e+kzSMse%E(mB zkfQC*5xGsk>ZL%YY6NC|0IJvrFS+8o*w20_6bp&+ZpLd0{w6y##Kh^X+0M)E{W+l9_N=srrmR z`=drSCKN{_#G>9Y|9%^1nT48qH{P9`rR(5v4W(e0Q`p1&A&NAfZG;RgOgD=4_a7;0 z1kX|+7yx=)*pT-?&V*Sj27zGZlY8TiX1!%?S6CqHJXqoiP~O|`^XYaq&Z0s0mYxx$ zTRr#a_uJ7q8v%fqGP7xrZnYMwzzfd)zjP$)(65r-%WA~?EYge_7_@(JFKKJFTBJ>N zuA(>iBp`E&_Im?ZJ^32uJ?i1`7n^~H8*j9z>?q2p^^fzJ6 zz-Q~Z;VSK8i?nrHHg5+xmrbS5Pb9h+R#`6tATn5Kdz2_D60|{_Z5{+~RVU;#czw+T zbzef`(p_qv|EqA_L}CG$mJWT?M0D7S1nE5$P1sIgJp1oE=7upHIG+0HjgQ1r zc%{pKf9x1yXj-nwaHMM8DF7Ycra~{n9eRi!FD&VXjVZcay}80t3|iccIc^N&qgOgD z5aA~Q>KI^-Y^0e4&4(E%4d-ZVXCkLR{|{V1z0PCRDt|+r{lp4!3`*`d5F_1!!(+Gc z4fP**TBOVGMYns=QH4M;V5De{Q%0&@%dJF{~rVm0zp3rH+}=c=`dW}E7n+;ZpfrkBY+!=(#- zze_T7QDyJSPl;6>Dg^Sv)2HPaT4YbQ-7RY1_uc@^?0_8Y_feB}n%CMimi!cqG z2k*P>F@%Qe+Ctp;utvA8GR3PX?wQ1q4IAHIufl5;dd)eDM$qd7XMx=6Ei$_zX?B`L z$4Q1AGymwYF3R*cS^@>3(uNR%Wvky28w&NtiB@zku*TRGHKPO$3c&rJCS(inz$Kr3 zgBS`<$Qz5IkE=RA9RR+{8DdkCgBD8Y1Uf`QWAhu&7+CE6s=xEjBL}mx0#KVXNVZ-J z9}9y7BpS12zT>6A=toK$1C?tlN^FQcDPbt>bHEeKTHcgXX~qrdC0?yc+D1^ zn0(eEigLd<$6dc&5)Z{}{d5;MG};MJnpvIEprqa7HKf`vQ$~4kgqI zqs(5$rSM>y3`Ez^bIR?PUTJO|ygB%^c$QQrvciN9X#djZb3- z%f)W%bf)XD5L=9Pc1EXSA$2H4K*P;CnjYVIhPc@8)JV@`&aR8tT++yWLmsF%s^|fv z=9I_8mubD}2VyS37tGt=|!0zqTZ0t0z)Lj6j4MT42p)>bFKkwhku+ZLJli z5Y%9V4%XBGL^I)g5*+r0gTHuxJmoumyaL!~l?gb=c%EoW9w6`&TMQQ`S{*-Y$Wl5L z2w12I*;7{=$|4}wINURVqC&qPh+XS|*=aEf^yffN4Z7ose^5N2F%n6D zu2_A#PoJ}@JelNC3t35F%_E@ySq+xBRUSz7zxh*R{Wm96_rvD3r8`9-46H$a-1sfZ zJ)UJ~vfcxFw%c^0e6N^0$8d?5}p4LfN=k)`y^xD4wy_0_?i_{LUW9x2lYDh~&q0mlf#nT0{+tOa(ingS_(tw>MYo z-d#^i&=S?S?g^45^on%poAwE=>K8j;zn6RtkSU&K0+mdeh&mfr01vD<8_>EGM#ytR z81=jyXjFI41^!^Oc(s6Xtc7=N&^2#2$K&PbEOnptAgOy8Zp+F^ebET+e$5rVg*+S`1~xZ93zh zD@onnAQ49!5nFB?`Iu8y=fcEKg z;ew~Y@Kn8;r1T-8Z@V#QLwo#+K_owDo^HHycPK}hq-oGui4i()AMO4|l%#H&Y&|?YLWQpcGmr^` zn+mFwHSLgK$9#{#>M*(T=buQ|!wC17d$bB$s4>_Po8IxB>Q>p2+TH$Ti&TPl6|k;& z`OEPzYzfn~{E>h4FWR<9#bMq9%0Hj^vwQnRg8Y5Iz@?)g#-PZ9M7b#~ciqfZt{AwT z3uvY*X*Ap?AZZWvawt&AYb(0r@Z}momJ2^O2&@H!;UG|sRnF1TjZjCo0(dhdY&J{l zrk4bmn}X+Wm%>R^xCO9ZL;}5rj@G|O(F)VYJBUH^NT5FR2xT)pv*b+6Uq;nr10@hp ze$(MRtGZg?KXi?&LyFTC43)x+EdAaRyjX?RN)9pt@88|4x`>4mVp=+Th^72`AOU9$ zh7kx>^irBgs0bK01iH^{RWx1TvEb4L!-%lBJfOA1!LXuwD9{aJ|3nL(jq28>9CI3UB^bT6EFyiLLd~a1rN?$n~`Y5Jw~dz1%NufIBrV zj##@C@#<@VeJA;6N*d@XgDsN!fwi;8;g})8f^60j(&3|^y`YZ(G3q_jT1~2#2?LiZ z3wk_NSKfeismHo1%s_K0iNqsRDxkRt;6I_b*hY&IyIA&;wTZ;Kv-^a)$cu$NrjixQ zJ!U#Gg?%=OpBtp>5N=Q=Rv_f%qi;6@@m+# z?*J=Qf@C8Xttdf02uxojM+wMB15^9tq|FWZ?3!%=yYCq&`FQP_CabLV%dg%zaaT~- zttyA4Ou6t?^29kC0chR>Oy7M88o`c5Rq<>v3SH0)zWF4<0}f{c9Te67`Rf-;0G8&OlTn@*w82 zJs+{N6IfcgroRBkWCn`)4tNwE)4KR5TAgm58P{8=gg3JoW3v{FuU$(}BfA6O=1h=y z=Y>3Bk5+}c`O!MbZ6R&ecfgr0od>)|<4clqevkX#>N5T^fQUEsWSpYD{1$iwa$?yL zN-!^)ilUv#azpf)q?{%R1aedSguP!Z2GVXNH!NGAUF{s&TnMcS6Rw7R|e|9Tg9V4NKhS3{^OvT z@aC|<4y`ABZpA|LDInK8S@caVh&mHCrn9kOXCE+dP+b{jaCxpOnyVD%+ssXB^Qq$8 zT1IXcN(5g|(=u53{0M6}1oFioc`UV`9^d=c`tzac)PFkZYmhA}R4j!C#*#sJ+ln!s z1<zRS~c_xZBWkknYKqEPR z2T3j9vB&5b9ION_0PgZR@*I@a?eL)^8i=G#(t$ye`?%u`$QAq!yo&RKGY!-?VAKah zI8&=hmYR{OAppjeuExu~y%WqC zM4tr%MHX`WLWg9_xzZkK3^#at$TnA ze3)uPNA!9PI&ZE~@4Jbg?TGCP_wT@$6N=Ix|8mgHT$d%DOf6a;?Am0Ih8qmfE+Eji zA5j&Z0#gO>kgULDFLP?pLGLj}5|H3Y$?!&_cld^yO`=3Mr=HsA&5`ait!~r@I1d7} z-^%Mc9H21GG=w-B%mu&Pii{_|}1@zP?oD3o`+F0Nfsm1PhI(}Mly!w)$57^j_2i&Ci93mE}RzCS+g3ALf^%>siseaUep z7y)iEg@C7%H3!p{{eShjw@B3igCieT$foiu)fM2k&_QD49^Pd#mdp&5Y=m`(EfYJ~L zK+!@~Fz)~%JyijQCtawmZ@T8Dt{=M%&AiB-x|J+_0FCQzN2?powUog-7=Wz=vjk;0 zXV~pHe4#A}rj9uVKF?UBOGJ}^UuR*t3g$hmz+mwhnj0YAhp4*1y}Yw^b7KtfBG7~o zz$y$et*OJA*zp!3w6%aqPfKtqoc zz&RXk_R#taR8DT-NGZCN5(o8i6;dgP#N&E`=DY%rQgAC ze@DU?S&^5f43I96i?R)1&0v|>Eo`@lcX%sE{XN>H7@%LVZ-&At z*OPx$12BXq1?miUXUTL0(DaY5MG}STw zV4)3aA#2{Dbb>92RObpdll0P~0X1MM9`ZJ`$Q?hjlWhJhU|W~ev_IuIwTa#my*8fL zbUd-kDHcdy7ErS}Q~t=cW}{lrV@*0sh4je4zMgRx;-NM!MtMlYF&gy3jZfzf3MxZZ zt@LSVw!*KgzTB07S){5}rwTfSBK`S_M zpBcE9KMx*vm4D(2l6>Q(y#0;VUOtcr5dw$V_~qYCI4V(nQPB<_unJYzyxAyW?6^Y* z?J9z((s`-%hTlN)R5Dxi-$(%vY6ZxF!qfpixueh!%j#{6Vb&B%oT?%Bl5cEk{$W!pYfnFpyBSn{^qA} z4$aqeof&#;5Wx9@TrGcpN@MgOVmT0OQ&PNhh?s3mjCl{Hj9}La@JN-fCaWkwsgX5C z-M7Zbe(@~m@8@{B;4Uo3^HSNv=B1jSJ7sE;r0fBKN^NdAfxicUl!jmPu`1?5z^i@A zU%74g_dI0cJU6)hPfPv@)Nxa$nFBTAu@dan7Zu#_I9JG?hBzp+n-6T;ISk?LXkOg` z&Ou`YwXYO`*xobCaHXa!6)`kZxxlKQOg{6+NKFq74ew#-{{_(d*LOtCz;}vrZo<{E z!w-Ph0JiyMywFXg?g)Ti5%hp(IRJ(RdQK+o+=QB9Cm=?CIiqz)bnl$-zZ__%i2#G- z2rx+Ac22;vw*P#72ei4SA}?mD^8M!rmw^O+@y&jbO8@@({3B>VF z!Af7AD)8HBe>*4i0sipODY+JAom7Ybzw&wmRQX%aezkvpeh&aoUy<(UKNqHk{3HnZ z4Hc)9e}De}Sc={7?}i^#;BNL)>Sh;wU?Q~(K9p{9A`$?3xZchUKp5 ouxmQ}mutIgI#5lAn(aLoUX`Zwd}?T<0e>!C(ET&_+^zfn2W^1OB>(^b diff --git a/public/images/splash-screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_portrait.png b/public/images/splash-screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_portrait.png deleted file mode 100644 index 1e5b8d371d6d57c398be773636abe1522f018267..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22743 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 diff --git a/public/images/splash-screens/8.3__iPad_Mini_landscape.png b/public/images/splash-screens/8.3__iPad_Mini_landscape.png deleted file mode 100644 index 7132a4ff5658c2193cb0397ce8de00a97607dfef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85681 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 K{c8)>9r_m+`emp9 diff --git a/public/images/splash-screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_landscape.png b/public/images/splash-screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_landscape.png deleted file mode 100644 index fce5cde48d3f00d2414d8b2c6ea6c2691d4bab4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79059 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 auQn#MO*`vXf;n%C#R1Fwi(X#)mwy4PPW<)& diff --git a/public/images/splash-screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_portrait.png b/public/images/splash-screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_portrait.png deleted file mode 100644 index e5db44cb1249a61fe0c567476457be2e03dfe35c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80068 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

U!mrSC2S_hiwEC>#?!eajkxR>0xc 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 diff --git a/public/images/splash-screens/iPhone_11_Pro_Max__iPhone_XS_Max_landscape.png b/public/images/splash-screens/iPhone_11_Pro_Max__iPhone_XS_Max_landscape.png deleted file mode 100644 index 7b47265f160e16dd6f45302a6bea9d1d602e09b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90530 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 VaEavv{6@}V-K7hX=B?WEe*jRQzG?sf diff --git a/public/images/splash-screens/iPhone_11_Pro_Max__iPhone_XS_Max_portrait.png b/public/images/splash-screens/iPhone_11_Pro_Max__iPhone_XS_Max_portrait.png deleted file mode 100644 index 455afb284c512e662199eb0999a6f744b8ba5774..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92918 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�<-+h9_;M@0J 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 A761SM diff --git a/public/images/splash-screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_landscape.png b/public/images/splash-screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_landscape.png deleted file mode 100644 index 8c0f64501c6aa0deb0d63b2ae405a707f7918f90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75745 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 w>}+IbBRd7i*vL*z5Uxs9i?4=}2S;sQA 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 diff --git a/public/images/splash-screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_landscape.png b/public/images/splash-screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_landscape.png deleted file mode 100644 index 7fb9978e1c7ecbab5d0f964921f2381251a145ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97050 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

5Y#4qGjeVxW#K` zQo5}*RF|f}hd#n%8(u{E#><4?_;-n@qG#r#NOJe?{TmZ9#SFXrS|Cljqi}dNjVagGM~j-Mu2_eBW(`l3xh4!*D?aK10>Js7 z{=P1JePP7R`H-Bl;3=+0JqxDT8WKMWD*eRoN%58UN|RZwh-2Yi4)&dVW%!oal-nv zG)`)Na3*FH1r;-G|DxRXKsr97G|x9|h_~+Zy`p|Une<{e)U6V>UEoXz zfXp*^BMh31P#@|ul4xZhMOfC%_}o^)=Ug3 z4jcRqUjR?u9~Q1?BEw94;GM3=(CSI@TgAr{hgxy*C0}+axk0;hGjvCs(v~2`J_{0j ze9_SIw=R2Iz&=$(=o4zYyHv#5=;t>?VB)if!5Hy)^6tk2QoOZ7PDLva$Z;xB{$26* z1!SQVBt-)v#P$9s{POODS36T-7fT@;1hTnhKfQ`Be#rF+!6a#8gmVIoXOYXRmA7Uu zZ2h4;)kBp^^WI5NE0JSmq`=j^_e4Ymrw79IlP$I1`_H zvt=eNfG6swaTAc9@V*c z6MEs@Cb5jTjSXjZ9?y$6IbaoYrVJI4o&FAEUj+nm$SelS);+YeH!cg-{AF7EpewoA zVA%#5<-U0;8O9BJ$28dWjhk{!LcA$l3ji1}JmRm8a+*i?x64ANYhFDyQy5 zN>7Wvb%y^IJoLs^rE|+8J7>2Ze=S@KqT*+0jQR9R#?8 z)koA2ZNs^Rt~uZR;1_(C3406&m)yUXnvUmV7?!c|yC2ZR=kTS`|Nf5yf8d_Rg{B+Z zCV%&X;pnx0yktI5`k7D3fSGTJ`N8kS`~YZD`3F;FW@UWygDYelH7KtfUVDdsKj;M*T=4A97`zi~f%^7N;ACP8)W65U5H5R8d_6kZ zv>8Z%{1@Uca^qY!C7Ez#S^WwsK#$3ERqj zbDFTN+}CZwwr^k0RhD1+S}@r5?VExD&nMfyvF#hnwhpr4>~3Ip1G^j8-M}hwv<6tB z`zwRTBBgJIU6$x(iEh>&Ft`TT-7t73aA^F$F8f4l9iB1h1)%cJvaMgq6P9iLhCE@} zR+epL-F$;hBz+rXtJv<(W0#xh%y+mYe6RerK{=Dj{xQ zTIcn>?NeObU}))guFrSV6sBqIdzSc>e-a)$?1vvJ!rplWjsm-E*bR%~z*ZXtwp4@PLH}EIeQc zVU|5$;Q?8BSoYw5h6fJ3gl$8HC=4-Jxoqt>$}i&zV-Y61gjj@$JHR4L7GW}4Evrwl z1Qf~lEW%_FCW|nclE@NJEIgo+$P!Q-mVjajD3*X49F$<$1C~8t*#nk6Ae_v?1FDKF zd%&^>EPF7ZGO+M~g$FD=VBrA^4+ic43lCWK;QuarF!F5H*&#!IR3$F}JMhR(YqB0= p>_^r_^go-3SmV(D=d=Vt%_ diff --git a/public/images/splash-screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_landscape.png b/public/images/splash-screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_landscape.png deleted file mode 100644 index c8630bd452777eb35606a2a4212710ef67ac2a8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97761 zcmeFZXH=AF)-|jMD$pu6NkI^^WKqc=h%KT>5RjY%0RaICMHH~GQGz7N8Ob@vDv~Io zARwuTMHI<7N_@}lGc#-6q2^iL?^@ql-;esywt`Z3IANc?_qjafW$zrJV4&EyZ{Lx- zQhzAy+eb0IZyy=O;e+s%Lu$3D@W1`m3U?&-WjCFg*td^m-`ziMD%opK_v9VfcjdPa zxvRSgT5)1e^pAcPw{OQ6j~u3A5r467KMCny`;8Q7wl2TrO3+{b7x3e&>8Yj}NdEF? zAQyy|7tduJc9i)Wm&PJ4o@;vGFW$#LZdzjhdvlK|-oJHe``>3D`FjuTFc~TKOm^qr zyEIZP-`{yLEaEIQRMW3YwWJ%-q0h&_hbWB!_(o#^~0I{*J# zr2M0%5K$R%SBAJN^B+^k|0+BXGlrNk#EcB<}wc_y36pGyIK`L)2!7+6+;fA!;*3ZHB1L{I$06ubE~r&u-v> z^24#+7dnn}x0R@9ry~r#lb^Jo(0IeZ`&Ly?rTuc(mAKS67F;Y@ZP=6ct^@IxLv)X= z_S4GKJP;yzY2#uVyHacL>{Xd!)0Jx?PFdL5uYJz_1#8x;D>;7LfAM{=_$R!mHuo*P z_csqp>Ovj-U-{8J599k~mfXm5*{y%|y8ee+BDIbF8w?AQg@P1^r+;{4T>pFj46SAK zH&PgGPTZG-1S>eq_BW5@((OFC=gIu9)sy&okU${59%A+Y9Yo9?VsSf6MMdmA#NGqP zs1cz75xEhe!C@k>MwB8VG$29)A~Yb5rN5?lA~Yb9Iz-lhln4!enMnRJG|)Aq)c>a! z;Gb+Dk$)rdZ?KC;1lj*T0NJU$BqMcxe!Uh|qA`w>Y2&R)(#zv5=Ujd^=tveAHkvdt zoBc`HUS<*lqjIB@q4NEI=JmfhSF7zvE4LOKPKY|%tUB&)uZ?(fS9&-s{kZ+|;E{N< z-r~G&!^qlqubCM(rwil?O*?&={)@JdYPBDYXS-x~>))0)|0R;JvE@D+stLRDNaD>2 zp0lrxoo1%KB>PnYGcnf?%Do%A$XXidhH>2*IX%*)@8>g%$KKiASYgMIcK#P(2JJ>h zYD<}XHGse!qbFJBaT*r27eY0EmlNBz`5GZN*i%LPtNtcCM`hXo} zoaLvJMt{upSLn|ab#hH5{pb`&cWOIvnqwxC?Z=|+@|zl_a;jXSoMy}NS|k~7Q&=(* z`00nKQrX~%roXj4P3YR{&-;^vq`jP_-INySo@#^)cKi z=47<6UAEN8PGxKKL|aN7v(xl(i}D4@#Dc=bF56zSk+QKE?^j0{m4C|8acPE;y}IMa z%p?=Z=OY^}bUTvIEZ(3Y zEV&xIO|udN0$zMS$?e;>)h^-T9o(RtPCkll2;pQOtglIqvT40*iBmJGb)3pl=^``i zkV4Ze_S+3O>-Uvf)@E0k<1qnEH4jy^XeY+f8T9LXeZ09amyu*tEw{JC4Xt5w^0P;< z(aDNk{O-1Q-kdnz7|G9V%DO~OK;-(YCa%kGq&rIJd#Xj^6imr+vu$!>Odnny@#fM0 z^q2|7ek~QNNA~)(i~aIUFF#+uy}n-(9p(KP5kcE-gV6Q)567hY3?|Jtzuh`k+ax@v zdExgoMstd(qfA2ALkpt$0&40m#Xh&vbeu@aNOF1>ERG@H`{>XNZ1Ci6osKdfka($_ zB!L%Y>M`#sw^w`B{CWK1W+^g092Mr+Sed$%tD$jJj(k(<%)B&L+4)z$o%|h&5}Reo z%2cPHC-tRILQ|Q6*v|)!iTFoX*fcGjVlCVp4b_pX^JQ8p_vs-N|3MER?%wDo6Sxu< zc}sMXbm*r;r=RPajs&`5RLb{v2l6L$$9b1rIsSo&Q!$|+1WL#0|fGbl!BV7 zi}ULj4np5!yU9X^8gSj+E?vQCjBHHh_(2VQDA7?PJzdazgGaae#d?dMi_-dSL!2tw za^zDj`VjNF+1ig`zSdI95sp84;dV6FenP_D+1=SbS1~3S!EX_RI%3{iY!*}UAd*m> zy9%U7$nmc>gs!KaEBEo2x2mPj9xYF_UCORl?a8N4O=P#lqdHGqe>OQc66WsA;?OP^nEEdKY_K|WWNvY^fqlir_%!l9 zO|#1``rg~oHB4<-=ysVI`PgxM%T>)}s~7GJfgFWyg`XP&}kF-{ac z?arTm7?L;QEBq-bRGVP}uUbLEnj4|b`b0hE!8ppBj?+uuPn2&KDu!yV?#;ZC9(upViRoIOgGU&G7)rH{uWJqE&SIt{p(GdNnnOl4 z6mkU;O1#fHkd&_ab_7)F+)w0*EHhujul=f61x-TiH+I%XC>RrU^&rsoJ{;kHBg2os zJ{7hx?9Cl=qK0GkRa(I;ggA56dM!6wIWt-PC4Y%N>#-)EoXQP0CyVyfmXaJAB~J6i zr68g9WYe}MJ%z@F#%&iPt{W@J5Avf5x4+1_{C?VH{ZU@D85T7~H}c7cec)BSWrxS{ zbNSho78NVXc`C6k8xwhBF;0eDwLXt|Ec(kia$_o~vouP4IZOJkGVq&g`gW8O0tV=G z(2}w!4AuzU?5o3x`yM@b@Zim9u^YYu!yfjVGbP?fq(a=!k)agpzO~=Hj=DF~mLg~C zKq0LC>^&LJ^YwYRhNQT;4iz1ys-2Y_%F0h4>#3#i<~q(R9i`vjO6z_996-y~S7I?B zFp(G-4{1i`ZmUR-Pl0qM_OKEC+$ir+uh~~)Mgfyae!kXq(@cD`? ze&z^!N+6(Ewon~6=mFmZm$ZXqA z%AoP>qMZaDws@TF;ltB7-?1n31j?Xtq&S7RY{Yd|N$4k`+K$HeqlJoU9({FOnY_KZ zI-~!Z$@a6G_vS3tB5xB5b-AE=HdC#DqQ`Zz)d_;~C@;8@c(odmJUNig%$nG>` zx%nu~Ru!9uMFk4S;}B_9%vxkV`O#^}onG?6gO;@)$^KKd^g2-}Q(2?D#DE*7-{Ri0 zjRj%+J?sIA#slID5SpRm2c+nSB%xk{51$u}o{mFeocYGlDwqOZu#&ZBHjmk|xW=GT(ZA z)MsaVQ>8~n@fja#T68M2K(As2$6jPkVG;`fOsy0(8X%De0Mzvq)DATk{^&2ml2GXj z3L=EW=^Z7#GXk4TDW(xLm!WA#5tg!&DWV|m0yDwDrW1gWkydGLpO?pO2p|N34NFbnoinieyJ6arWg6V_SXsh_{-mQn!O?I~(Y_c8o!YwPx44^X@+Fxg zL$6Q!0v-_VcNmLysSy0aR-xQg2*ndAS5jKmloQ#J6v@w~ z;n7EhsVLMA1PMU4KNUt0m2abi;uBg_^h??>mF zq|KpPf0g)($DkUTz5*ORHIo9SfLZCS!9!x7%O~5@6az*x zLrmLlDDrnJ$_gfZ++3UNU_W?_`IPa1!yBU*hl?(2*n!&=$5bAl--Wuzic~jTSy-%N^LwD&@GC}h4;n8SCRz5Y3g2uH1f^w% z=RNq_2`V2({%ol-iyUVFd-<|S#y;-8$h7z9lh-SE6;u_?Q&}zR6xnD7#pL^*2qA*h zPtnN5H#B`Rc#pMiquBAjGHdg9xW&vYf74cnt?-9BaCwj=KBowwtX$pPFHUNWrM8%w6;;*$}PHO}1S z^AcNQV!K~34e+6nYAX22>lmAf-=V#0;3lkrm1;IHMxuXtZa_@Zk6G*4Hc~`og=Y%K zA>`k82Ju-!73f~FU&GstK;83!NKfv=+o+&&Xy{~y#uVj5d5e3^u?*BbGH2S`AC*EC z7@+je>9TOV`0~)PCNsI3xD#l}`qr*?xIHf>}!RL3RU zeZJ0zQAO|4AWggMqdvpN2m@uLR|_eptij(CJ}R~~-v!(Os*_V{;5>nz`0x^>4hlE> z2Z6_=K&r6TN8@t;-FtHCi%Rzz>p9-K<+8SiVf^9Fu5}LTI*?$~u(JrGGL==L?Oq%$ zk(yRu>6j#2#VVkwq@?sN!d<(3z-7}Q+FdaPFNB(;aqKpU4wdKtgsA#8j3=QBl{og6 z1k36XQ783&^?OK7N39Qyi&^X`e3y4 ze9B{;)-utBkJS3mh+EPhW@zG82VWjDL=Vx}1Nn6%pxHHnDb5CgKl@ndAT$ zIlK=)-lnZf&zm#fx7fjl=JJhUk8{H?xL;nSV|@}+(>#GSBsh^+BNIteLB0Zk7~nB( zO&rH#?fRVNDmrA(q0UuoOlJJb@Aj-hHc5EPt{ZK!`A5?tpXT2U4-FF<_XXNc8(5oC z0Qm*;#uW3}zIpK5I(K^Q6HxrNCrh2f=Y9_C?(i$n<6(YD=rTPfG#)oymN@&>fmCk} zJ69>NF`iJsRm|>ZW81bi2~dY~sgiBe4JZnO_ruUys=8X!4lKZ%A2}qpe$!w;U6jC; zlUmVGbu}JWF(&Z6U{-&j(#pkpcFXGhhdzG)63AX)lhh%!^z~Z7EQa-dm{9N!(R%7G zJVK^bzu0d;A#!n(=DN(9^t)C-x0%JjB())+aPa-hk+rH_=l-w33S!;SFxxHwe?q5W zfpiDFZ7=7PO>d?1=98}6N9`FZ+zMfQs8X3`-G$-W?jlb0LJwr-MMBb9`}2D5z)py} zl_HDnXuxb>4JOTcWs(_4gnEq9vC}uoKPHv04}0g$6!(T?yhH&YbW(bl>Vk5@h!H5} zlV>4uwPOB65qRB~Z|mYR)hvNnxed&Xes{h>M=Lu@68@|;((Jlpy# z=v?{IaKIgA*7X}m+t#%Dav`sguQ$k1hJru&+48k!5o!eYia?7}8?;8DI<{xs6jM>3 z{m)o_54aP8@teFd6m8e<>9W0nz-pDUD4J@SvCF8pGVkV=@1gNDSG9l|F^p~MfV2oB z(+IqE<{X(7(jKI=-l{OO<~lWtu04LV-XW@RMG%FSonoDc5(OS352hi6a+lVcYyowxuXCIs&Tqu*y*B$619Q&v;^WV6nQR>hCh0$-5F#wFMX#F5{MDdarrr#*Cs1W zYg5?-LohPOpCwa;XRyA3r~`(PX39fFN!4Z)?J9{MmZ51dl?=Ez(J645BND}GpLO#b z>I;z9=83wyK+EXW2eB@|F!yP?yP!Zts0z_yAe#9p-{oLuF_tytm;RXa(h4Y2K5>6< z0PQC+^>|S|%di+{wijT>8B!ul8-m2v8!cQE6ZjU}Vt20l!bHA4bj(#%{!VYc`7FFo zj~mV#e@qr?jCWZzaE|nt<}|v+T<~f4T!xwNO?xnJMJP=a$8wBAqcoGg;$S{tM+ba- z>tu5E__uer3SOWLeD)tW_&D0Ox5!k*6#L?v(T{7UnRy=tGGewY`ttpz)V6 zGH6Y_8z6y&l=@6kG*J|<_zan)2HKn^&qwW4T7~w}tTG8a)5Up~mKG(~#)9Cn5E#34 zzV{ABWn=D^W0G~G1cvpLsCi%MFJ9W_u9kNvz=YC;PmBe+6*u>`iWlOQ0H%I!q|5I8 zUYr7HtC(?Y%`4U|^)^W$3xAOwLbJ))#fXk_9X>^&*b)NFXsEVbu<%<;h0|Ioz$|^x zMc7y0wtra%nCuPhpY!7VFn_YM8B+o<0w-7uR3dZuB<7<zk;`SQSmn+s}bJPz$H|Y6f+H zjzo4$)ZM17ne|kZOO8rTf5{MjuAe`;L`BD$_u9Q7{IDdjHU*}E6K^j_=j&QH2Crl$ zSI;8@O2Qq#CY(N@{u5hdc#HKOJkTF%`!`E}U-+2w6*_%T!5D;qRXLmXQu`;fe zv=X}IdV|i+@9@(tk~%cC+<_-&26j?sI=_J{uitU1_G0AIwX z{37JR1&k5sfR)>#C@C51AB~Z}z;hxO*5KsC4r^|t&`$O^TSQG+v&hnYq%f=5wb=|r zTqy=jRXQH;t=Fk#mqp&th+Bv0tq$Qh?SXg6Z~7c~NzS+ZCMHwA*Q~^+fxAj%sz+1G zt}Cm!hmCTSuCr(rkgbDzO)=}ZbJwHS4^yQr)Yf!PF14+h4>+&+K=ELo1RQ*!G&vYqbY;p=<$0l_TskpF7B{O+uZ z;{0T`iXPX zg4#^PRgB$SjQg8o0)sCi^1pKgZ37Qw^d65u!W%GeNTHW$B4ncz+l(g4lE-pwCR(5B zOo&GNfFN`yLpe*YfwSZdGD`r#mhuFcjWj2@l@dtAFrc{ev;r0Fv1cExBLl|Ha*9|j zRM~r4(x~unFxz%Peb$4vw@?tfor&RS5F#*uwW~wVQQv%G_GS-h5ywaVhLN9Z>b!a& z3A&@Z3dn*5q^KfO#WlmP9td(&OX(cO5{2RdA8~`7VsnU@N}~1?)+=9H;AGd*Myn)vHP>xb=d#b(JwJ8_2?U z>9y@2l^tpODF{t<1mF&*olkn{l^I^LQAN998XO+R10+M!yfmipOOyc@)>OiHPU)1JvA96(QTZ?s;L1Au~bz`tm5U8M;~6bKp=5MMQVez-z+qq ztZVL=1^QPD1o+d~#t2^T5Kaxlr6UATENMDC{*uW?JONvQcsQv-H8=+`H} zqOF#|JfvJ7Lvw}z!iuwkfrGv70WE=hDkG<%rLBdz>QqXU)jjhy`O+U0zn!?k0z^zO zN}gAl(;tI(0RdGlw3kZ@^BDhx;Db4=hwt%zjescOACuB zkV)NfZI+2sqc}55qmY}xm60B9w}%8~*gb5vH`L;aDW8Ky14(}ln8=iROH5oxsm6Ot zETRBxw7|o#(wzC7;7_GWrGOusE^m8`z_&+f!r(1Lx$gW#QbINV@m;};(o8$5&4n zjvmiJC)-}-HR~x16SOv5#p^(TA%L;fl{$o52a#+1pqbSHpr(RR&*>?kp6Yc z)YwraQV&;2ZUg^R05x-^Nl!O|lFp;=#`3v zdWpG~F)!`ezgd+=>7>vVh_H*${|JlQZrsTtpIQw-JrZRA(vz#^_=OIaegGs0HNF6f z6#@^=l09JLH$R0;`tT1!jJLh%xqW{wjn#oWApvIMJP<(ZKXV3ZQ=dzrD5YkB<4?Xt2iG64<%EQyjeez^`9@u^o+TW#^6zblb z3?!pILSjJM1tjc9yf>E@lU-k4W~g%SPu6mmj)y9>z=7xw)ws9B-F(UMB7&sE;7B|; zdJxcGk!;!vQULHjcAA#8v}zR{ysc~7FmL)G2Dku;+FBnd&IWiZ(ELNPut3r*fEhYRRb74dEn5|HvlFCruLao zUG}S1)-a>J_3AfI(bcX5kx&(^DYN7FyG;Fga9l;8Y8&+vsit9~_~igh%r4B(Pn7Ke zs^XysFU1|mgzRRcP~M{BaWCsN z;(Ihh-KL-cTO#hJJV2V7ohX>dKLS!y`Qcj;T$TzQ)=3+v5xOoJbYJ_5T`l`|rPZAw z@S}0~itVhg1Hs^}buadY^ROEw7d*bNhmztg}qPqaM0~RAa*=|seABl zf8SNx%x}MD*GMN7tpeP6J;%pzw-{ar#ErPIHWxc{X)b`I34z*lZ?oW4f?S zmY2&zvn}T3%3cIZbvXktj#}+kLO#c%Xj%Yfk{pQz<`kOASBBsU7=b18L+oYyR$Az_y)URuL}UxHn&$Ks72t04q*RkMaDT z0<4NBF*q`nyuxRSWu88(RQx9{x3yRi@bIi+2<42u!W}(32N{O09@_-LaSGXupbv0Y*#~d=N-JQch-K^)^}W zcY&i7A$$?X2jx^URl?1$ee>cEI*$ra^B(Gy~VO(O{KNJawn2kydOg%*vVD3(me1H=f&1gWaUV ze8z$638-}*VCMV?ZJ^RF5}qE=j*T@t2lrN*{UjaI@M;}Jk7evd{HeD|5HP>B6ubMT z%z6wLuho6e>~|n}DTg7#Gm4qioB(>WDrvR?zj|o6q-xvD%<+8E>?q8to&o3X7y=!| zJW&9mZ<@O8eJ+$fAxbxO6ktQq*8X1RJy%yfc^pB}TazkPUPuL7;i%Rkr(t;p?9Zo( zlvrk@`|8?u$en~D^xMg+i66fKK{LRNI9jd)>Yk)8iI@$;P{ca?2w(VeDfT0D?<%d^ zS4)A6*8>{Q4}5!>$sJ{!dp;PN-353pLWKO%R#fZb34Zxau@iU}c`dSZCtW+h)0V(l z)j?-?!0`yg)?oxp!I<+0Bv=){5!iYc`km$sa#$6UKSCJ-)}+`2sh-GuF}b0tT$T+r z=XOtLUL7-Iv)Jx)1a?Qd0ufXTj%j+BqtgR6^PdpPOT;r>EcR&g+}^z8B>5#}f_MLu z-{~s#*|}s=isR!Q87hh2%)#+Y5w1OI4eXL@Edb|Xuq<(`_5&0DGqx(_oB8B*ESN*2 z-s9$cY4K0mc!8jlO_VJHO2sTwGohYet%)&t`}stlRZX*s;$ghzwdEc?|Lo-6 zr-^1jk}-ifw03VbY^OmZ$a`w*C%jQy&;^Y#hRe@@Yp)}t*Q5f*FDnFl`kLW=y34ZB zkJ+7mi5w|0j%<@~AKghEdv6o$Yiap+5Emw51;H#b?9EvC z%4ZGmc3M1I*=u6KNujHDx93`NbgHIfGr7$YbqzPhrh#XUB;x?-Bf_0ig_KK$^on#w zLGtrTD}U6ebLiUALoF3ef4=Rk#203FmsB!&onwTsd=~v8AkkADVdQ%Qo$C&8%9Yz1 z6hVlV@028OEOc&S%tpph?wnT1@Y3=oY!B%D_!_=2nUV8pyd^LMSpp>mMJ7YrPAu%-J0%XKlyoJzpDBuuy+b z&Z=3So|oRNvh(!zd{JrjwB1;8tm5ZItgG}*9F4sekMf^7Rhygju{qvo4ythZCQOq(8@)SRhuh~*kc^j za`zwgP*G@#@|ARpY)@&jQM0NOPJ29Zc)l z%;XgwGW*j`(|PMtI=d0>cHWF>AD%VGh!*%ZAtDw=AVt^I?1b@dTJJoRwciowrktf- z`y?gwoVsv7|SbS7EGBT%zEz>;+V@xSVY#*knUc{3CES6(yI49z)YlL#uU@A5!c zGsu;_Wr#kE>%an>lE4;CdiMUd=Mu!tAeyr{hm_De1M5>$H=5-3F+t{g?asQnrMC{RPo~|px|fh>*m~heK--c*w)ao zh3W&x{+N8F)>8_@u)Q|W zyt)pdQPOq63`~s+z`NAJl&q6|fm;i69Sr5aLw9EDTyfB9FEDE62!aUho5RP05QUU^ z#DGxzY(2jm*5ci&qjH)5J%#l)PFvb$KH zh(U^l3874$f)grS4w~9McEt;^u(Z_@fU%;dr46>PTK>8J&?ze5{c_&&mJwLu*-w%L z{6&cQV*_mFb2M-C(^Dxr3g)4TP|5nS4?SQ3%w4YUn)8iNxI+1Dxi%Z%WSoP<<6nLYPIn4 z*JA0FW^vN>s3aRN!vL`S0p-+(_=s$BQrP};x>Aes(`6s$12#*5k zj__!zCXMxB{*}iNQ=SM|V-_IsBw@QE0d~3qaG+CpXL_4$Xh8SQ@AP7^pjgU2H5iS| zMTpM5wbUG1S_rJ4Kt}8=HvXkK#YS@O6ztaJuL0IF7{b4mRR6%&`;;0{C_xcRx_W|5 zNgvw$ua!eE^wBQ;Xk^dBA)^8`;S9PnBNS#`wFK&)i6_jXoDTlQdwaTk1(I2vOR8&c7*7KC}$#5gf$%E5&cPOT1!5BF8 zHgXL?h{JECxjc~xbWVd-Nep%1#$;;3Fc=-U7F;Qwz)J!tgAvim-Ao7#{Qrw?pZkj9 z*MtDX6(1}Ks;5^&-_wKq;6lZalTy%LmeySZTFDDMJBvUIP99>T1tf8(AXl&XCv?ukgc+i6E4UW&ItJYH?_OUgr?s!>@78i zGmRlmOnazHboM|`G~4lCTZpj3$vUo0f+gb#S2~E!C$$AjI3wt}TC?w(z_$L0w^NfE zNHdNPvgvj0Fdbh)9FbL}55=(`R}Qnh z*hli8zmO*EL*sSJQ6`f6_LEYH|KGpNW5n;0V4=LU`tbLUuUyN!Ie$3leC{Uf@1%ji z;pO2m&-M*Ia(Uwg11aA>&jpyuF@-fAZG2sz_iJ}|Rvw-QGd)FZP(o7H*Vpwzxi4Rq zS67cvP*8~Stu{OIL0os zvDJ_EwcZzS*($v#8I-gf}#)<6_uHoc>dDzlnE$l;;@Gm(%RPM z9VKK?PlE@BEIVXq?7!TV0o;}LK|=>ZcQr@@ceMtN@D8N4M#(G9(4wJ2Jpl0~0HuQB zy|F%c04#83UcSDzyhTc4%?%B0^}*~bK+`<|rdgK0XYmy7=jxklP0xhJm9sU~9%d+` zB=R4oD_K@nf{`maH+#FgL*V&(E>QSGHbYvK&&x6B&?cUfBczBrD5Khz%@f$&FAk!YjGba5ZM!dEHA{LQBZXqX>wW%P6rsm zxH2~|K>iuS0F~Cd=3QQ1UUstM_c2Dkr~dALmOSl_|N8a5fsqkAJA1>=9-+COhRV>$ z$c(M6=cC`hf3B&lJwiF4en(?U%2dnb+}X2Hc2nl2Hy=+iKeeW)vJmt3^XmkJm5R7b zAPy9vvdT47H*Lb!g9dD}TM11$>a}O8DZE%&VjM> zoA6xuh^IbmgA;szK@w1qS?BF(_U02rr6M_!K)`3Df`X)bc8~}Cmelr+4?_~5SmFJ+ zdF|*H|x7IDk45IC3oaly&zGag+a29Ix^ z8o?Q8bvS?=LuvYXM+x6eR5H|uwm(OB2)i|+g+I&SUhF9~^c|K%E9 zA=e;2a-85bXd+Kk7>25p53C3F%l&%3ur6Z^H7H#v?QKf&u?SS=fq9?+P*AHK3JtN| z(1Hb{trOzoy|kRbXl2ro9=tk>*Z7Y3S>)!bb}QSQyM%tD=dJnh;bE3K@55}(?(n+* zsEz;pV>2aH*Gf4n`&k0Tl_d^dZdTxrbABRj3?$6R!|JR_raKDMS9;y*u@Lvn53_&? zYyd$!CO)QYP=8VkMzYDyoLJxo2Cs@^oz~1jSk?p##k%+#?p-HI1s|JIs{HpT50AsV z#;t$A@fKL>jz@CoqMa!NM*A4X} zoLbscm+!vDgXSs;xwulps(MwG>>gMnWMy%nQz%t9qGCtyLGpmzIT_r2Lht&(btQCD zh4M#_lZi>X?*Ij&H^djlRXWpj@QSlH)l|Jn%j!R(9QbbxZ z(8F-j2A7&Ruc#=V9HXw<+3!86tzrMk-=FGXrs@MQ8NCCBG8sD76l14~hgMmQO&*=C+WBcFp?HMOTQ_=Bj|A`TP z{oTuX;*dv0ps6XoTHh(v1&M4KM($wyW6a`%O2}Q{GF0TiBbQ}@%bW;|+XclV3i&6! z($1BDQKo?64&H8}?O0f~;R_RUtpwq2+GdB-qz{HUM{v;DG{HV?(;`=Fp7{qHZD-Bb zq?4q!(g}411WRx!9ZT+1kH<-Z-waZXJCDYLBMJdZ7y4fwq7n#3V2-D!=LXpQ+q1QV zYd?Nmr!ld$Ee19$4vIw?t&82*{N1~EW$z5ZG$Ms_E-BQ9xn;7yVw3eiLI2Td^^!-F z)2)w63i-b*5&Tqp72w_MoYj~JgguKC62?Wj10V;#RPxHNICBLkLSz#`y~rfEVe~^y zO?&)pO4M}M1K2eP%xp7x@+7rktX@w7qIzR>CIgm1>}{|^A6~;Q=S_-Z$GBH8>?+yq zKnrKW8t=Q$MX;u02=Q|d8FyE-Z*%&;eH#yknIN`YMkb~#kpCt@s#1hOz1&Kc?)Lu; z0{%x~^R>QZGA?i5wcJ{}(5V6AJ$X2J}Q zDU$2Ms>G=h?!s0OAR0~d)vJWw6`ED|T^({5M150}t(q=)eU<_6mPOT(lJ?QAgHJOJ z_6^m+VqmitFfhjZv`ZcyTq}V8bDK|J{rP8*{Smnvx_D!d|Ibk-JDQw7fBp&V4Cg~z zhSk{)^6y|@z~1IU0slS)wGheWd)S8o&8J1|`jZh)UI8<8Wb2f(ykZnn~;!zztM@*?eE_o&vX~0d^Vb9?#xshS#`Ys2cdA> zw}0+1^j%-}3_^XEv}DRfqs08om~S07Nv*rZYa$!U_QUUY92tI~6{#@N^x#(=lT z2Kw2xyaEJ4gP37QQfsR{Wo!CgPuNsjJEqOEw|~Y6$&x}}q5E{r>Uc8`(RC7EYnndVLyQx$Q1;WNlijc!%qV%6oAdF%3-Qn!&~i?#_axn>e= z3%;dH@CI*^ErIC#4rGSQ*RBzWG)Q7ga!U^QQp6Uy_$EQ4Ce{J3I(`u9fnkLHJFp#@J+6)1nA z(E^q=NiWEj^9u^Jnkb9OaXjr3&7eOAvOP>s1apF*)}2Q02jwqP4q%Hl9zRZmhL!@w zI0H7&Zn%;Gv-}Nk+8k-6Hv@D$MHoCp6%a4d3LL8P8MErB2Xd!87+QT{Rvob_gM&Zn zCuW_1=sG)wIK1**#j6Q5WEdtEX`zf&?o9gK~s6>Ma%AJ zFek3o&WP43AU}3Y<@HgfWvEi)uqC#lmYtc&aY?Bh#^SThPhw*Mda-eFHJ#&CE$zFJ zqyOm*GEJv-mV@#fRVAig{B*)93+9{p9dvaX#-=$+P?1U4)~4(zH9=@0UX3LowXK+H zm?ZQLZ?au^+I0ot6@?s^Q#DBFm@}cuXjseHy>+KB`Wp5Q*_)Of8-Qjv4n+Jjw@{pD z2fd`ZdA4$ncGjgBdkF-T0Jd`xQ&v?CgB_r!DH^G$Yd*fdtM2DEzn?6Jl+tSy6%r2*EjZc=1{#z$ zvSgYu!Ep7l2ORXlo0OD9E7(~xhcgQ!RHL7*T`1}QLV(<@^2-9v-c zyr=Lk-PvUv!dzrhBS&AQi#n}-cFRLx`dE~8)NB;2CarpY%Z_d&@c_GpXB*ji^Es&1 zz}^<=o1*n4TS)qUo9^+&8J9qTzQNdouXM)3IY8=WFqBELY=*mcik?(zhCYZ{?U`Ey zBBAKnkVKYRfg}`Bu9muGnCNU=4rSiT6~r>EVub-XtEmjde}eNrlybC1|DOo~RXaQk zl(J9>Y$yjo!L`POIO?m8$xv1!d)fIcBe8YRZxf)!q=KugzpH?DsogN(1CPT(k7oCCmbTEr;Q(Ffwi3$|ZA^`Gdfk#=W zi_XmxMt8lPwZPjdDkv0M4BTK6vXO$arReC0QBYJwEq=c{_OMH^$8Cx3e#vYL^hqTc zB%C-GsYk3#HI}^Cv%f(Jlk0Bj{PD4_4y)UDdkR8*1+7PxnJ@#=jUAwYI!;!~^?o=u%e;|u zA`x~2y9B*aTOu8o=eV$RdYbujhjrHrIzSi+}f~ro%Lsu0S@V=+6ME`9aqX+Ili<=9Ti6oDW0>Q8=XM z3%R1YU9+MOq_p6YdFjxrw;XeMWdMue$cYf}r}CBH3UfzcS11#zS1GSp*TrB1-Oi_+ zr+Q#SsQ?TtwAN?c5G{P}+%4Q~JD@v+K(L)-GMmwbgPm}oM*|IcB&8s$>ey7=COAip zVPcV`*I|Tn6O`eQt7zX2w0uIEY=`L4u8^nv#Sr9`RMk{?zH%b!b4~ zFi>er>vxNRphH&UPCuW&nP&0zQS2kqzztC1tUmVw~yh@OzmwFk?t5S$l@ zk2w7_upZiaC6KKc*be43?-PhE4GjvSf%EsEhZ;lIl;y`G+{}T4zxk83!#qSXtpBJ= z824opj0l$ffp6co$K5;-4V-(r{5uKpcB$h8-wCN35J}>tw@nD$*1RAZ4h~EOyaXpc zz1A>-on*SOm1Wf`mkKyJA{+G9%&w%Y-f`F_%x;PncG@^>o@Io0h2vGSVSvI!S=^K^ za0Uw#?eXJ7RxVd$!7`gI2ze>^ZVI+#+b-3_!`t^`7*KQ zFljCcA3u5WpflcE!~* z%So_j&YVftEX$v*+I2xDM}Mg_GD67;U%MO(PgY@J;R?a4zfGB`QPMPV9b?cySK0*T9ASO0KGn>UelTtv|s!OL!avZyR`~?3|o4L8dy^ zjl2xPwwa(aj<;;f6@^9D3SF>(CJ1@~4jCR`mq%Dj!|$|M_Md-}g7sZ+4u<-C^IEzW z#j@Gp7PS^?R8CW}KaPf> zB%xvJx2FX8GpK3n5kP9|V2?KuDsWU(BsjHBiPEaAMQ@E2SRPY{bG3XltfjBAiizn! zexQMQyG%J3W3mi_1iY<86KF&5PHuF%^q}^JNlFj*2>EU|=9Px0k7Fr@Lr4QIMovY*$CiWIHRUK z9}Q_yj`uVOHLJhqL=*tbd<=L55x|3B4z&uSD9cyF!^4{9(Gd}oQJu5vaQ;CDoC_5k z89B8mXd#>XE#Ey54&HnR+2Ux;jw7UeAqC>OHc&RrI>!$Ynn368pkWE)Gv+d_fGAyLJELB*nx=&*p!1c9-KYoXt zMM71^J6d{3o;J8=6> zYPZH_8P*)=tey3Ir~FWN&&Ds>IGN7gAw9e1%{m8L*{N60A^%N*s%v7pN~rk3*U-8& zaN%!CWE%-yIDPK?V~Bmo`61=?HcT?Ju{~fVpca&J@0CzAj z8ba5#4GU2nNz(M8*5QL{`=?$!NA{2r9dhl_t2NSe<*anjy-Z<+7g)=+e#y)?gt6k` z^)RTlr?FJN1Z%AT2^6%RC z#A>iEWJ57RqVVt;0LwV#75$O zD;6)1eEHTXZAmD^M>)Siv^GWwwq-SC(RJZrXhiyQf89~cHo(~gL^c4dWsbUaREUL} z_Boi@O@MRHA2heOFAcSQq(&eu5Xcm_1)N^UF4Hp-0)GL$kFIogXOkBu)o2liR)b)= zuA=HEz%d}9G)4yJQN$tKJ`7|rI#IN8th!pMh+>Q!>V1L0k3&9>MHiv#r#lo*5D2yx z+=rKEdQ}h+CMYE2$D%+$K)?q0;^0k9|0)aq!NC_ORhz?jK9uEvl-z7l zy66-b!vfuLgtZkY5G;tA|4}39BB3jbJ&qjyaNY3h38Wl}1d`dpNiAt`_;hJh1L@r1 zQ!r_R>AnpPnXnoDNG^fxf3)NG@Ro#x4XjO=03(Jdwcr(L&{Zk^Z&kQn8LDu%V*w+9 z8yEK{2V>b?(7uDnZfb#Ca9AcrL=CucOWxpErw6)lG6rDFFgQyxdwJQ0d-h|iI|-mJ z44AZ-;E2481B9v%Qawnc0RFzfDo{v3ANbF}o4 zSJu#|&l5|_mCt!E1c$R0*jTV{<><>z?D4IdTcW=`77KJ;xDP38d7R;V(4h{>mxzjr zM#HI@FS_3sN$&9d0(hZc$S;_^ZxK!ghlI5J+TQE3>9Y{tXr>iDQ7c4RPmP@@SYHQ62sDw(> zTjaBMT-po(y=aMM-$lLK1tr+qz<1LoKKd>pP2{V{HiDX<1_%1ew>|E>E^2yZv_j za*sX-3pA|S=Exl#&FfeSqddF9RFoRfGRK(AQrH zY<lWW!i--JN$Vk%03%NcnzhnV?XW>esmDs)(tGM zbZ=$uiqS$}POqtWrEbNi{WM4DVc7sEtr9H-1WNy$0GvXnrQ%o8Z)Pbh8%9>t4kuY> zGY~TQb56)`RBtqc5xa2CoWf=guglwALrG)ua=^og<#ezKMxLJcHD=Vel=Ow<4{8!@ zfvB&0_rL5@Q=#S?*xqDZ^>5SV1Zd%}}sa6?W$e`T_LFv^*b}bj?hsB?bGQd7eBRK+Yu}6hdS*$+# za6?@Bdj1j$Ujh~r*w?}L#xX-i>w-dhQ@x)b&r3pf~{zE-#^N$a@LQ{gIVd8MPS^4eELN^94KNZJM87Bv?Hf zUhH6ya$Prd+_t;Xi~_r~tnACg-Gi=gpIw-rvE$KL0H(U6jCVh?>-pishlflJa;~AU z+g*XuN;&$uoz%yLQg;geB5E?~Hq+IwQ7i2Q6F55-)TG&N{8)Fdrn$4H$AN{!oD>~j z1>MeftsvO*pKf*BN+TUHbZmsBkU?Cu(rKu^SpisfL(CuTj5h9M}WAB~b zX#flv=>{ox8hUO@DQH$r_R}eo2$Rdp42>BRe9I8b4L(8Z8;;^b&$8)y*n0p_$Ubt=m!M zJc5Q(m#?k*AuC`6*5tW$UvjOnb~f3ItDXVl2kPsyX7hR6 zml#{OULpWC2!NJ|1WTa~9NweQpwLb2HGQrr+YdZ&7g5k3hH@K zkxB+a`70zb0F5t#M1=t6dVBv=9^T9UzNLkP_&VF&Ac<}Y+AZLzLs#Q@Dr`_Ih_i$m zH}R`XqiN;z;Do`zg`Lpa5v4?194n!eh`-RCDl1?ks%ULv^9|I`b`*9#MKw8JauS5m z1<%EaD-Q^db6ujDGis zEa9R$8{0WO=$C7QXo?ZmG*uO`XgiK_C5k+)5~l0inhw?=5N^d9lRyVSMKn1UD5<0Tqeu~nk286`R>l_UM<5{d=Ygn;iT9TawN zVAL(vq=t8b+elpAu`+Hf5=N2`~5LVNP#qnShA?*}g%mj}>&hqZI z@5&o>b$=1H0ZyrkyQin8j}dA^C9)hM4upE?op3IaehQ@=a1zEATNv=T@+xv1sSFhei(|RkYD)N&|bDV66c$7}ama$wh3wuyV z-vdjGLPT$y{9mOdnp#>f_I2XiA`04R+oYLInvW$N&+p(M08 zYr}+LS>OAljdmdiH#J0u+P?+b92XWAX03ZIC@2E1D;_m=&#g0`e4ER}-P_mG@Zbkv zIFGh%66zcG?@vJQh4cU`Eii99?Goc>1%wy%qcPEe1}!kXr$F~Bxz2Oo0OB@LGaFz2 zDPc)Bh}Kwvsov#Yo`j8GNO=qSth-mbQ|%6DMI7n->y%N(zH%ou9y8kd5mOd}4}B3s zOENi_OGQ9VR9p_mZd6Rn)Vz4t2^oi>kR$V`G}S1A4|F>%)GK-W3c6rM;y@#91HWA0 z&O(=VWyi)7hq~($apxASSYectlY`(Sh-X0VmU)!+6w+>T7%#bEe~HF% zQqDxdLGE3ERFM3r-pFfQhwBZ%MIt~_qwe6orilCVQ?@_gB3i!Wo_C8EAD{0B1CLs9 z*^M>hG}o;=;?SIC_55KDJS2=k=vTmuc8C~N+pE z9b6SF(vd%rR_;`-jN$4bkPONI5FNWWr?}-27jWh`KvbrSFj)|s>5v@mJ5_31VRh2A zG(+zj!io&1X6*y@_bpHdapcO4694YD9>Iv~v$-LyP-}dL68!LbUtM-6`-*$r5a38 zFteLY2T#!H0`qPnSed&gcRHxlB*Fo`tYhB-4Xudv%-v;n-6+?fnbUvF$Gq=2?@e}dLa(X;+k_)N& zzUn)1ga$S^IB4ybWDw;?ZVqaV!GH0+TM$H+$*%Vhq(M5G&S_L22Wv5`ybR(rTGEuo zUBMO7LQJEptgPJZ^f)_P35Mi3pQ05S@SB~+Do|59sc8h2ZAvs;M)6LJ9DXvMak_@* zT@VfZ)ldCY{9bV;9VvYC5le+$E9Q2A&UI_oD$VRg3TXP>_3$Ktc1+J$Pio2NoV<-$ znM(P+qP2@kz$9oJe8dFn-~xu0SaKhw88>cHv5&~L_oKaO56>^xfP~wC1T9a_pm7QT zc_O5t`yQq$AD86kHrrmA^mKI>uH8k~Kjo5lu+oh|Fh!`k0qK$+i0Nr*Y0o>9G`s9> zu;5V)@EzacoE@i8jXReS+*m}NtSc?1=u0TT@hb;+hp^|4KCY_TrvCNy8lBd2%z`#v zj3Uy-aj!(WtJC6`@9_cpT5k|1xL~|y@QZ#$00@xmHX|JqD2{r_#|~(T2&||_iyUcO z7ZDe?khk3LM=3sdGg3e?o^UBNT8H+|*C#)H^~&|(34l3r-#3Xy&mL* zJ}qLBt|#%UiuLwqA&l8!umy3;!C;DiS;f+btg2ro zS`n`799@}MMU4fR+ety?WtQ$o+C6NZ7lcMg(uGj9-3m1lWPdji;D*#FzpKjU@mZ2$ zr}!Nt(l#{68>6st?+~+Ml^cxV5iq$3#zDBZ$(Z_jf>fMK|F|rlXE~6aLZ_L`N_laL z{)$e5MCv;{$jZ}mNX9Ko=LSispo?iaasJL13_;$Cf-W=}--gKiX5iId`&O80u|U>0 zBE4Y3PU>J=5?gp**F=8LgAdTKU?7vaJ8Rag=T3ItsllMs9ukMXGBT8=+;s0nd@dao zn<3R_lDaA%1iEnSRW(==i^Rjz`_3~`#vTG<9*_9{HrT}y_Yxr^ueyp1k?TN*h-Zy{ zZ;3RVSDM$_9t6d422t7)D{SZudV+mcaAY1rR7W8_j;Qw-U@q&Q31+(;n-bEC-;x4j zj#IOf(p$4gp1V(hxnWITBP zX4mzO@n8p|+D2g!n2P9aj#Xxddp!}ioCx56H^*l0r zGcEAOcy4VXOd+BUT&p_Q)oz32w}F09Kgq@03-+F3AvCdF#VYcjYKK`S1c?7x_kIh{ z3Bdo*x&A>~H;BZ^_KsVNX;+&2xgpHZ;r4Vz%1bd`^UGS~Zb9;3xNFz0)Un{$l3Ec) z)uu*dMD~Hh^}~HJA0=?( zU>X3dk((kpiDs>(9FA~-4O<3tk$Cp(S?j6D=GA*^Z^FiZ`Kr(u7a>Y!1}}Gdzy4!w z&N6B7gf-uw737M}3-o?jif;P(B}FG!^lgTHC8@=%zK>3MH=o=jmF?sB_u*C|8I4AH zVH-O5CkCg*Qo~)&>jc;_tbDM8c9?uNL?A&_0s5ah7hT_N&{;2q3UW+PP|)_q8(Syw z5`_Sr?XD=dNNjth5kk78L250>lmTEWx`5R4-QK99rvY*oH!dzTZYQ!G;6QC`{_x?) z?i*1`t_WqTvkoQ$ij74XFlyTwEo$UO`pw|?_tX8p4j1Bva;(}-A0HoUT|Ees5=6e@ zKnRnuf!oskFCH>!r5b3@1_^85vHKgB$$Px*mz{ z@x;))Fve*0?SI>Y>21d4HBeLk6%mg#NznSybod5c9MP#}eoMvK-cWNNddG4@bXQ&Tw_fCBzlHdYOfBvbOrldUv<0(AQI$jQ8XeEOh~ zFW>QyJL5o&f;)eV0o@wnDA_ANNSC8NvaPL6TU(n{L;Qt= zS~TnnfywjrWDi%RPoRFiCLg4d^^xsd=jZ45<00L0!YO$WW@4@_h++VS>q2+lF?4QMwI1Z=YBvZCdv5zhJvaO^rn+ zj#dhPqtpKWhJ;4sIoKyv8R_B14W|1oLLeVGI1DLttH456kOC3RKF_M6U@EZSeUOwo z5(gTV(-vTrv;!K5_W;!>+G@{QoSZ*&1gMxCudj5@94^v`S{@&=a;VSdUFCT0S+i%8 zp!gp6x4EDObFLaKq(lvGV(b1h6szZ5Ajt!$FvFw&v$g)ihY!OFSj6SvNODY8iYh=J z@|E;upp#pAW&6jCxV|c}TawPY8Xw@L7ku=OZEm zhrX)0_Vcx%@bJVtca}pOqZRg3C&qZd5*4p6_fYI_ZfOC`u8TZ4KffmD<530v{B9jN z08c-@yjWcd73hkFxQ893Qs&O`@(pf<+AO%A(xTy(blR) zda%0AUu@ToziJVO$t1m`3=E^M6;0NSs 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�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 E*K-J8Fb~#s;o3bz0FakONGRM@CdNTL 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 diff --git a/public/images/splash-screens/iPhone_15_Pro__iPhone_15__iPhone_14_Pro_landscape.png b/public/images/splash-screens/iPhone_15_Pro__iPhone_15__iPhone_14_Pro_landscape.png deleted file mode 100644 index 2fcbe2b656d309152192633c88eca55b0c366598..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82224 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 diff --git a/public/images/splash-screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_portrait.png b/public/images/splash-screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_portrait.png deleted file mode 100644 index a657b63490e2e13dc21d84f629829056eb713739..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30874 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 diff --git a/public/mockServiceWorker.js b/public/mockServiceWorker.js deleted file mode 100644 index 51d85eeeb..000000000 --- a/public/mockServiceWorker.js +++ /dev/null @@ -1,303 +0,0 @@ -/* eslint-disable */ -/* tslint:disable */ - -/** - * Mock Service Worker (1.3.2). - * @see https://github.com/mswjs/msw - * - Please do NOT modify this file. - * - Please do NOT serve this file on production. - */ - -const INTEGRITY_CHECKSUM = '3d6b9f06410d179a7f7404d4bf4c3c70' -const activeClientIds = new Set() - -self.addEventListener('install', function () { - self.skipWaiting() -}) - -self.addEventListener('activate', function (event) { - event.waitUntil(self.clients.claim()) -}) - -self.addEventListener('message', async function (event) { - const clientId = event.source.id - - if (!clientId || !self.clients) { - return - } - - const client = await self.clients.get(clientId) - - if (!client) { - return - } - - const allClients = await self.clients.matchAll({ - type: 'window', - }) - - switch (event.data) { - case 'KEEPALIVE_REQUEST': { - sendToClient(client, { - type: 'KEEPALIVE_RESPONSE', - }) - break - } - - case 'INTEGRITY_CHECK_REQUEST': { - sendToClient(client, { - type: 'INTEGRITY_CHECK_RESPONSE', - payload: INTEGRITY_CHECKSUM, - }) - break - } - - case 'MOCK_ACTIVATE': { - activeClientIds.add(clientId) - - sendToClient(client, { - type: 'MOCKING_ENABLED', - payload: true, - }) - break - } - - case 'MOCK_DEACTIVATE': { - activeClientIds.delete(clientId) - break - } - - case 'CLIENT_CLOSED': { - activeClientIds.delete(clientId) - - const remainingClients = allClients.filter((client) => { - return client.id !== clientId - }) - - // Unregister itself when there are no more clients - if (remainingClients.length === 0) { - self.registration.unregister() - } - - break - } - } -}) - -self.addEventListener('fetch', function (event) { - const { request } = event - const accept = request.headers.get('accept') || '' - - // Bypass server-sent events. - if (accept.includes('text/event-stream')) { - return - } - - // Bypass navigation requests. - if (request.mode === 'navigate') { - return - } - - // Opening the DevTools triggers the "only-if-cached" request - // that cannot be handled by the worker. Bypass such requests. - if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { - return - } - - // Bypass all requests when there are no active clients. - // Prevents the self-unregistered worked from handling requests - // after it's been deleted (still remains active until the next reload). - if (activeClientIds.size === 0) { - return - } - - // Generate unique request ID. - const requestId = Math.random().toString(16).slice(2) - - event.respondWith( - handleRequest(event, requestId).catch((error) => { - if (error.name === 'NetworkError') { - console.warn( - '[MSW] Successfully emulated a network error for the "%s %s" request.', - request.method, - request.url, - ) - return - } - - // At this point, any exception indicates an issue with the original request/response. - console.error( - `\ -[MSW] Caught an exception from the "%s %s" request (%s). This is probably not a problem with Mock Service Worker. There is likely an additional logging output above.`, - request.method, - request.url, - `${error.name}: ${error.message}`, - ) - }), - ) -}) - -async function handleRequest(event, requestId) { - const client = await resolveMainClient(event) - const response = await getResponse(event, client, requestId) - - // Send back the response clone for the "response:*" life-cycle events. - // Ensure MSW is active and ready to handle the message, otherwise - // this message will pend indefinitely. - if (client && activeClientIds.has(client.id)) { - ;(async function () { - const clonedResponse = response.clone() - sendToClient(client, { - type: 'RESPONSE', - payload: { - requestId, - type: clonedResponse.type, - ok: clonedResponse.ok, - status: clonedResponse.status, - statusText: clonedResponse.statusText, - body: - clonedResponse.body === null ? null : await clonedResponse.text(), - headers: Object.fromEntries(clonedResponse.headers.entries()), - redirected: clonedResponse.redirected, - }, - }) - })() - } - - return response -} - -// Resolve the main client for the given event. -// Client that issues a request doesn't necessarily equal the client -// that registered the worker. It's with the latter the worker should -// communicate with during the response resolving phase. -async function resolveMainClient(event) { - const client = await self.clients.get(event.clientId) - - if (client?.frameType === 'top-level') { - return client - } - - const allClients = await self.clients.matchAll({ - type: 'window', - }) - - return allClients - .filter((client) => { - // Get only those clients that are currently visible. - return client.visibilityState === 'visible' - }) - .find((client) => { - // Find the client ID that's recorded in the - // set of clients that have registered the worker. - return activeClientIds.has(client.id) - }) -} - -async function getResponse(event, client, requestId) { - const { request } = event - const clonedRequest = request.clone() - - function passthrough() { - // Clone the request because it might've been already used - // (i.e. its body has been read and sent to the client). - const headers = Object.fromEntries(clonedRequest.headers.entries()) - - // Remove MSW-specific request headers so the bypassed requests - // comply with the server's CORS preflight check. - // Operate with the headers as an object because request "Headers" - // are immutable. - delete headers['x-msw-bypass'] - - return fetch(clonedRequest, { headers }) - } - - // Bypass mocking when the client is not active. - if (!client) { - return passthrough() - } - - // Bypass initial page load requests (i.e. static assets). - // The absence of the immediate/parent client in the map of the active clients - // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet - // and is not ready to handle requests. - if (!activeClientIds.has(client.id)) { - return passthrough() - } - - // Bypass requests with the explicit bypass header. - // Such requests can be issued by "ctx.fetch()". - if (request.headers.get('x-msw-bypass') === 'true') { - return passthrough() - } - - // Notify the client that a request has been intercepted. - const clientMessage = await sendToClient(client, { - type: 'REQUEST', - payload: { - id: requestId, - url: request.url, - method: request.method, - headers: Object.fromEntries(request.headers.entries()), - cache: request.cache, - mode: request.mode, - credentials: request.credentials, - destination: request.destination, - integrity: request.integrity, - redirect: request.redirect, - referrer: request.referrer, - referrerPolicy: request.referrerPolicy, - body: await request.text(), - bodyUsed: request.bodyUsed, - keepalive: request.keepalive, - }, - }) - - switch (clientMessage.type) { - case 'MOCK_RESPONSE': { - return respondWithMock(clientMessage.data) - } - - case 'MOCK_NOT_FOUND': { - return passthrough() - } - - case 'NETWORK_ERROR': { - const { name, message } = clientMessage.data - const networkError = new Error(message) - networkError.name = name - - // Rejecting a "respondWith" promise emulates a network error. - throw networkError - } - } - - return passthrough() -} - -function sendToClient(client, message) { - return new Promise((resolve, reject) => { - const channel = new MessageChannel() - - channel.port1.onmessage = (event) => { - if (event.data && event.data.error) { - return reject(event.data.error) - } - - resolve(event.data) - } - - client.postMessage(message, [channel.port2]) - }) -} - -function sleep(timeMs) { - return new Promise((resolve) => { - setTimeout(resolve, timeMs) - }) -} - -async function respondWithMock(response) { - await sleep(response.delay) - return new Response(response.body, response) -} diff --git a/public/pwaServiceWorker.js b/public/pwaServiceWorker.js deleted file mode 100644 index 323bb2055..000000000 --- a/public/pwaServiceWorker.js +++ /dev/null @@ -1,7 +0,0 @@ -self.addEventListener('install', () => { - console.log('Service worker installed'); -}); - -self.addEventListener('activate', () => { - console.log('Service worker activated'); -}); diff --git a/scripts/init-mkcert.sh b/scripts/init-mkcert.sh deleted file mode 100644 index 2e725bcae..000000000 --- a/scripts/init-mkcert.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -readonly DEFAULT_HOSTS="localhost 127.0.0.1 ::1" -readonly hostname=$1 - -readonly mkcert_intalled=$(which mkcert) - -readonly cert_dir="$PWD/.certificates" -readonly key_path="$cert_dir/localhost-key.pem" -readonly cert_path="$cert_dir/localhost.pem" - -if [ -z $mkcert_intalled ];then - echo "💬 Downloading mkcert package...\n" - brew install mkcert -fi - -mkdir $cert_dir - -echo "💬 Attempting to generate self-signed certificate...\n" - -if [ "$hostname" != "" ];then - mkcert -install -key-file $key_path -cert-file $cert_path $DEFAULT_HOSTS $hostname -else - mkcert -install -key-file $key_path -cert-file $cert_path $DEFAULT_HOSTS -fi - -echo "🚀 CA Root certificate created!" -echo "🚀 Certificates created in ${cert_dir}" diff --git a/scripts/server.js b/scripts/server.js deleted file mode 100644 index 7ea4a6710..000000000 --- a/scripts/server.js +++ /dev/null @@ -1,52 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ -const fs = require('fs'); -const https = require('https'); -const path = require('path'); -const { parse } = require('url'); -const { execSync } = require('child_process'); -const next = require('next'); - -const dev = process.env.NODE_ENV !== 'production'; -const hostname = process.argv[2]; -const port = 3000; - -// when using middleware `hostname` and `port` must be provided below -const app = next({ dev, hostname, port }); -const handle = app.getRequestHandler(); - -const SELF_CERTIFICATES_PATH = { - ca: path.resolve( - execSync('mkcert -CAROOT').toString().replace(/\s$/, ''), - './rootCA.pem' - ), - key: './.certificates/localhost-key.pem', - cert: './.certificates/localhost.pem', -}; - -const option = { - key: fs.readFileSync(SELF_CERTIFICATES_PATH.key), - cert: fs.readFileSync(SELF_CERTIFICATES_PATH.cert), -}; - -// To resolve the 'unable to verify first certificate' error -process.env.NODE_EXTRA_CA_CERTS = SELF_CERTIFICATES_PATH.ca; - -app.prepare().then(() => { - https - .createServer(option, async (req, res) => { - try { - // Be sure to pass `true` as the second argument to `url.parse`. - // This tells it to parse the query portion of the URL. - const parsedUrl = parse(req.url, true); - handle(req, res, parsedUrl); - } catch (err) { - console.error('Error occurred handling', req.url, err); - res.statusCode = 500; - res.end('internal server error'); - } - }) - .listen(port, error => { - if (error) throw error; - console.log('\x1b[32m%s', `> ready on https://${hostname}:${port}\n`); - }); -}); diff --git a/scripts/updateDevHost.js b/scripts/updateDevHost.js deleted file mode 100644 index 9428540ca..000000000 --- a/scripts/updateDevHost.js +++ /dev/null @@ -1,86 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ -const fs = require('fs'); -const { EOL } = require('os'); - -const LOCALHOST = '127.0.0.1'; -const IS_WINDOWS = process.platform === 'win32'; -const HOSTS_PATH = IS_WINDOWS - ? 'C:/Windows/System32/drivers/etc/hosts' - : '/etc/hosts'; - -/** - * @param {typeof HOSTS_PATH} filePath - hosts 파일의 path - * @param {string} host - 사용할 dev server host - * */ -const updateHostFile = (filePath, host) => { - /** @type {{origin: string, paresed: [ip: string, hostname: string]}[]} */ - const lines = []; - - fs.readFileSync(filePath, { encoding: 'utf8' }) - .split(/\r?\n/) - .forEach(line => { - const comments = line.replace(/#.*/, ''); - const matches = /^\s*?(.+?)\s+(.+?)\s*$/.exec(comments); - - if (matches && matches.length === 3) { - /** line을 읽으면서 { parsed: [ip, hostname] } 추가 */ - const [_, ip, hostname] = matches; - lines.push({ parsed: [ip, hostname], origin: line }); - } else { - /** 주석인 경우, { origin } 에만 추가 */ - lines.push({ origin: line }); - } - }); - - /** 일치하는 hostname이 있으면 종료 */ - for (let idx = 0; idx < lines.length; idx += 1) { - const { parsed } = lines[idx]; - - if (parsed) { - const [ip, hostname] = parsed; - if (hostname === host) { - console.log( - `🚀 entry [ ${ip} ${host} ] already exists in ${filePath}!` - ); - return true; - } - } - } - - const length = lines.length; - for (let idx = length - 1; idx >= 0; idx -= 1) { - const { parsed } = lines[idx]; - - if (!parsed) continue; - - /** 마지막 entry 아래에 host 추가 */ - const sliced = lines.slice(0, idx + 1); - - sliced.push({ origin: '# Added by Dadok' }); - sliced.push({ parsed: ['127.0.0.1', host], origin: `127.0.0.1 ${host}` }); - sliced.push(...lines.slice(idx + 1)); - - const state = fs.statSync(filePath); - fs.writeFileSync(filePath, sliced.map(({ origin }) => origin).join(EOL), { - mode: state.mode, - }); - - console.log(`🚀 entry [ ${LOCALHOST} ${host} ] added in ${filePath}!`); - return true; - } - - return false; -}; - -/** node command를 통해 updateHostFile 함수 실행 */ -try { - const host = process.argv[2]; - - if (!host) { - throw Error('Expected 1 argument.'); - } - - updateHostFile(HOSTS_PATH, host); -} catch (err) { - console.error(err); -} diff --git a/src/apis/book.ts b/src/apis/book/index.ts similarity index 76% rename from src/apis/book.ts rename to src/apis/book/index.ts index 423878ed3..16681199c 100644 --- a/src/apis/book.ts +++ b/src/apis/book/index.ts @@ -4,15 +4,13 @@ import type { APIBookCommentPagination, APIBookDetail, APIBookmarkedUserList, - APICreateBookCommentRequest, APIPatchBookCommentRequest, APISearchedBook, APISearchedBookPagination, APIRecentSearches, - APIBestSellerRes, } from '@/types/book'; -import bookshelfAPI from './bookshelf'; -import { publicApi } from './core/axios'; +import bookshelfAPI from '../bookshelf'; +import { publicApi } from '../core/axios'; const bookAPI = { searchBooks: ({ @@ -38,7 +36,7 @@ const bookAPI = { getBookInfo: (bookId: APIBook['bookId']) => publicApi.get(`/service-api/books/${bookId}`), - getBookmarkUserInfo: (bookId: APIBook['bookId']) => + getBookUserInfo: (bookId: APIBook['bookId']) => publicApi.get(`/service-api/books/${bookId}/users`), createBook: ({ book }: { book: APISearchedBook }) => @@ -46,9 +44,9 @@ const bookAPI = { creaetComment: ( bookId: APIBook['bookId'], - comment: APICreateBookCommentRequest['comment'] + { comment }: { comment: APIPatchBookCommentRequest['comment'] } ) => - publicApi.post( + publicApi.post( `/service-api/books/${bookId}/comments`, { comment } ), @@ -81,14 +79,14 @@ const bookAPI = { commentId: APIBookComment['commentId'] ) => publicApi.delete(`/service-api/books/${bookId}/comments/${commentId}`), - addBookmark: (bookId: APIBook['bookId']) => + setBookMarked: (bookId: APIBook['bookId']) => bookshelfAPI.getMySummaryBookshelf().then(({ data: { bookshelfId } }) => publicApi.post(`/service-api/bookshelves/${bookshelfId}/books`, { bookId, }) ), - removeBookmark: (bookId: APIBook['bookId']) => + unsetBookMarked: (bookId: APIBook['bookId']) => bookshelfAPI .getMySummaryBookshelf() .then(({ data: { bookshelfId } }) => @@ -96,16 +94,6 @@ const bookAPI = { `/service-api/bookshelves/${bookshelfId}/books/${bookId}` ) ), - - getBestSellers: () => - publicApi.get( - `/aladin-api?QueryType=Bestseller&Cover=Big` - ), - - storeRecentSearch: (queryKeyword: string) => - publicApi.get( - `/service-api/books?page=1&pageSize=1&query=${queryKeyword}&isStoreRecent=true` - ), }; export default bookAPI; diff --git a/src/apis/bookshelf.ts b/src/apis/bookshelf/index.ts similarity index 96% rename from src/apis/bookshelf.ts rename to src/apis/bookshelf/index.ts index 93dc151fd..e326b7b40 100644 --- a/src/apis/bookshelf.ts +++ b/src/apis/bookshelf/index.ts @@ -4,7 +4,7 @@ import { APIBookshelfPagination, } from '@/types/bookshelf'; import { APIUser } from '@/types/user'; -import { publicApi } from './core/axios'; +import { publicApi } from '../core/axios'; const bookshelfAPI = { getUserSummaryBookshelf: ({ userId }: { userId: APIUser['userId'] }) => diff --git a/src/apis/core/axios.ts b/src/apis/core/axios.ts index 5f5a8b4a5..298fc3640 100644 --- a/src/apis/core/axios.ts +++ b/src/apis/core/axios.ts @@ -1,17 +1,19 @@ import axios, { CreateAxiosDefaults, InternalAxiosRequestConfig } from 'axios'; -import { AuthRefreshIgnoredError } from '@/types/customError'; import { ACCESS_TOKEN_STORAGE_KEY, SERVICE_ERROR_MESSAGE } from '@/constants'; import { isAuthFailedError, isAuthRefreshError, isAxiosErrorWithCustomCode, + setAxiosAuthHeader, + updateToken, } from '@/utils/helpers'; +import isClient from '@/utils/isClient'; import webStorage from '@/utils/storage'; const storage = webStorage(ACCESS_TOKEN_STORAGE_KEY); + const options: CreateAxiosDefaults = { - baseURL: process.env.NEXT_HOST, headers: { Accept: '*/*', 'Content-Type': 'application/json', @@ -51,7 +53,10 @@ const responseHandler = async (error: unknown) => { } if (isAuthFailedError(code)) { - removeToken(); + storage.remove(); + if (isClient()) { + history.pushState('', '', '/'); + } } } else { console.error('예상하지 못한 오류가 발생했어요.\n', error); @@ -60,48 +65,12 @@ const responseHandler = async (error: unknown) => { return Promise.reject(error); }; -const silentRefresh = async (originRequest: InternalAxiosRequestConfig) => { - try { - const newToken = await updateToken(); +const silentRefresh = (originRequest: InternalAxiosRequestConfig) => { + return updateToken().then(newToken => { storage.set(newToken); setAxiosAuthHeader(originRequest, newToken); - - return await publicApi(originRequest); - } catch (error) { - removeToken(); - return Promise.reject(error); - } -}; - -/** api 요청이 병렬적으로 이뤄질 때, - * 토큰 업데이트는 한번만 요청하기 위해 사용되는 flag 변수 */ -let isTokenRefreshing = false; - -const updateToken = () => - new Promise((resolve, reject) => { - if (isTokenRefreshing) { - reject(new AuthRefreshIgnoredError('Already trying to refresh token')); - return; - } - - isTokenRefreshing = true; - - axios - .post<{ accessToken: string }>('/service-api/auth/token') - .then(({ data }) => resolve(data.accessToken)) - .catch(reason => reject(reason)) - .finally(() => (isTokenRefreshing = false)); + return publicApi(originRequest); }); - -const removeToken = () => { - storage.remove(); -}; - -const setAxiosAuthHeader = ( - config: InternalAxiosRequestConfig, - token: string -) => { - config.headers['Authorization'] = `Bearers ${token}`; }; publicApi.interceptors.request.use(requestHandler); diff --git a/src/apis/group.ts b/src/apis/group/index.ts similarity index 94% rename from src/apis/group.ts rename to src/apis/group/index.ts index f122f405e..73849e926 100644 --- a/src/apis/group.ts +++ b/src/apis/group/index.ts @@ -6,15 +6,15 @@ import { APIGroupComment, APIGroupCommentPagination, } from '@/types/group'; -import { publicApi } from './core/axios'; +import { publicApi } from '../core/axios'; -const groupAPI = { +const GroupAPI = { getEntireGroups: (pageParam: string) => publicApi.get( `/service-api/book-groups?pageSize=10&groupCursorId=` + pageParam ), - createGroup: (group: APICreateGroup) => + createGroup: ({ group }: { group: APICreateGroup }) => publicApi.post('/service-api/book-groups', group), getGroupDetailInfo: ({ @@ -109,4 +109,4 @@ const groupAPI = { ), }; -export default groupAPI; +export default GroupAPI; diff --git a/src/apis/job.ts b/src/apis/job/index.ts similarity index 78% rename from src/apis/job.ts rename to src/apis/job/index.ts index 7a61e4fad..f48d25c27 100644 --- a/src/apis/job.ts +++ b/src/apis/job/index.ts @@ -1,5 +1,5 @@ import { APIAllJob } from '@/types/job'; -import { publicApi } from './core/axios'; +import { publicApi } from '../core/axios'; const jobAPI = { getAllJobs: () => publicApi.get(`/service-api/jobs`), diff --git a/src/apis/recommend.ts b/src/apis/recommend/index.ts similarity index 87% rename from src/apis/recommend.ts rename to src/apis/recommend/index.ts index 16133d2b2..e863575fe 100644 --- a/src/apis/recommend.ts +++ b/src/apis/recommend/index.ts @@ -4,9 +4,9 @@ import { APIRecommendedBooksPagination, } from '@/types/bookshelf'; import { APIJobGroup } from '@/types/job'; -import { publicApi } from '@/apis/core/axios'; +import { publicApi } from '../core/axios'; -const recommendAPI = { +const RecommendAPI = { getUnAuthRecommendedBookshelf: () => publicApi.get( `/service-api/suggestions/bookshelves/default` @@ -23,4 +23,4 @@ const recommendAPI = { ), }; -export default recommendAPI; +export default RecommendAPI; diff --git a/src/apis/user.ts b/src/apis/user.tsx similarity index 75% rename from src/apis/user.ts rename to src/apis/user.tsx index bc9e03e1f..b1f1b3b34 100644 --- a/src/apis/user.ts +++ b/src/apis/user.tsx @@ -1,10 +1,10 @@ import { APIJob, APIJobGroup } from '@/types/job'; -import { APIUser, APIUserProfile } from '@/types/user'; -import { publicApi } from '@/apis/core/axios'; +import { APIUser } from '@/types/user'; +import { publicApi } from './core/axios'; const userAPI = { getUserProfile: ({ userId }: { userId: APIUser['userId'] }) => - publicApi.get(`/service-api/users/${userId}/profile`), + publicApi.get(`/service-api/users/${userId}/profile`), getMyProfile: () => publicApi.get('/service-api/users/me'), diff --git a/src/app/[...not_found]/page.ts b/src/app/[...not_found]/page.ts deleted file mode 100644 index 023fbbd61..000000000 --- a/src/app/[...not_found]/page.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { notFound } from 'next/navigation'; - -const NotFoundCatchAll = () => notFound(); - -export default NotFoundCatchAll; diff --git a/src/app/book/[bookId]/page.tsx b/src/app/book/[bookId]/page.tsx index 57f4d2edb..70bd5c5e7 100644 --- a/src/app/book/[bookId]/page.tsx +++ b/src/app/book/[bookId]/page.tsx @@ -1,147 +1,99 @@ 'use client'; -import { useRef } from 'react'; -import { APIBook } from '@/types/book'; -import { useBookTitle } from '@/queries/book/useBookInfoQuery'; -import { useHasBookComment } from '@/queries/book/useBookCommentsQuery'; -import useCreateBookCommentMutation from '@/queries/book/useCreateBookCommentMutation'; -import useToast from '@/components/common/Toast/useToast'; -import useDisclosure from '@/hooks/useDisclosure'; -import { - checkAuthentication, - isAxiosErrorWithCustomCode, -} from '@/utils/helpers'; -import { SERVICE_ERROR_MESSAGE } from '@/constants'; +import { Box, Skeleton, SkeletonText, Text, VStack } from '@chakra-ui/react'; +import { useRouter } from 'next/navigation'; -import Skeleton from '@/components/common/Skeleton'; -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; -import TopNavigation from '@/components/common/TopNavigation'; -import BottomActionButton from '@/components/common/BottomActionButton'; -import LoginBottomActionButton from '@/components/common/LoginBottomActionButton'; -import CommentDrawer from '@/components/comment/CommentDrawer'; -import BackButton from '@/components/common/BackButton'; -import BookInfo, { BookInfoSkeleton } from '@/components/book/detail/BookInfo'; -import BookCommentList from '@/components/comment/BookCommentList'; +import bookAPI from '@/apis/book'; +import useBookInfoQuery from '@/queries/book/useBookInfoQuery'; +import useBookUserInfoQuery from '@/queries/book/useBookUserInfoQuery'; +import { APIBook } from '@/types/book'; +import { BookCommentList, BookInfo } from '@/ui/BookDetail'; +import TopNavigation from '@/ui/common/TopNavigation'; +import debounce from '@/utils/debounce'; const BookDetailPage = ({ params: { bookId }, }: { params: { bookId: APIBook['bookId'] }; }) => { - const isAuthenticated = checkAuthentication(); - - return ( - <> - - }> -
- -
- - -
-
- {isAuthenticated ? ( - - ) : ( - - )} -
- - ); -}; - -export default BookDetailPage; - -const BookPageSkeleton = () => ( -
- -
-); - -const BookTopNavigation = ({ bookId }: { bookId: APIBook['bookId'] }) => ( - - - - - - }> - - - - -); + const router = useRouter(); -const BookTitle = ({ bookId }: { bookId: APIBook['bookId'] }) => { - const { data: title } = useBookTitle(bookId); - return

{title}

; -}; - -const Heading = ({ text }: { text: string }) => ( -

{text}

-); - -const AddBookCommentButton = ({ bookId }: { bookId: APIBook['bookId'] }) => { - const { - isOpen: isDrawerOpen, - onOpen: onDrawerOpen, - onClose: onDrawerClose, - } = useDisclosure(); - const { show: showToast } = useToast(); + const bookQueryInfo = useBookInfoQuery(bookId, { + onError: () => { + /** @todo /404 페이지로 교체 */ + router.replace('/'); + }, + }); - const commentRef = useRef(null); - const createComment = useCreateBookCommentMutation(bookId); + const bookUserQueryInfo = useBookUserInfoQuery(bookId); - const { data: hasBookComment } = useHasBookComment(bookId); - - const handleCommentCreate = () => { - const comment = commentRef.current?.value; - - if (!comment) { + const updateBookmark = (isBookMarked: boolean) => { + if (!bookUserQueryInfo.isSuccess) { return; } - createComment.mutate(comment, { - onSuccess: () => { - onDrawerClose(); - showToast({ type: 'success', message: '코멘트를 등록했어요 🎉' }); - }, - onError: error => { - if (isAxiosErrorWithCustomCode(error)) { - const { code } = error.response.data; - const message = SERVICE_ERROR_MESSAGE[code]; - showToast({ type: 'error', message }); - return; - } + const { isInMyBookshelf } = bookUserQueryInfo.data; - showToast({ type: 'error', message: '코멘트를 등록하지 못했어요 🥲' }); - }, - }); + if (!isInMyBookshelf && isBookMarked) { + bookAPI.setBookMarked(bookId).then(() => { + bookUserQueryInfo.refetch(); + }); + } else if (isInMyBookshelf && !isBookMarked) { + bookAPI.unsetBookMarked(bookId).then(() => { + bookUserQueryInfo.refetch(); + }); + } }; - if (hasBookComment) { - return null; - } - return ( - <> - - 코멘트 작성하기 - - - + + + + {bookQueryInfo.isSuccess && bookUserQueryInfo.isSuccess && ( + + )} + {bookQueryInfo.isLoading && ( + + + + + )} + + + + + 책 코멘트 + + {bookUserQueryInfo.isSuccess && ( + + )} + + ); }; -const BookTitleSkeleton = () => ( - - - -); +export default BookDetailPage; diff --git a/src/app/book/search/page.tsx b/src/app/book/search/page.tsx index e5983ec76..927117ea6 100644 --- a/src/app/book/search/page.tsx +++ b/src/app/book/search/page.tsx @@ -1,203 +1,23 @@ 'use client'; -import { useRouter } from 'next/navigation'; -import { Suspense, useEffect } from 'react'; -import { useForm } from 'react-hook-form'; -import { useInView } from 'react-intersection-observer'; +import { VStack, Text } from '@chakra-ui/react'; -import { APIBook } from '@/types/book'; - -import useBookSearchQuery from '@/queries/book/useBookSearchQuery'; -import { useRecentSearchListQuery } from '@/queries/book/useRecentSearchesQuery'; -import bookAPI from '@/apis/book'; - -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; -import useDebounceValue from '@/hooks/useDebounce'; -import useQueryParams from '@/hooks/useQueryParams'; -import { checkAuthentication } from '@/utils/helpers'; - -import Loading from '@/components/common/Loading'; -import Input from '@/components/common/Input'; -import TopHeader from '@/components/common/TopHeader'; -import BestSellers, { - BestSellersSkeleton, -} from '@/components/bookSearch/BestSellers'; -import RecentSearchList, { - RecentSearchListSkeleton, -} from '@/components/bookSearch/RecentSearchList'; -import BookSearchList from '@/components/bookSearch/BookSearchList'; - -type FormValues = { - searchValue: string; -}; - -const KEYWORD = 'keyword'; - -const BookSearchPage = () => { - const { getQueryParam, setQueryParams, removeQueryParam } = useQueryParams(); - - const { register, watch, setValue } = useForm({ - mode: 'all', - defaultValues: { - searchValue: getQueryParam(KEYWORD) ?? '', - }, - }); - - const watchedKeyword = watch('searchValue'); - const debouncedKeyword = useDebounceValue(watchedKeyword, 1000); - - /* debounce된 keyword값에 따라 queryParameter를 수정하는 useEffect */ - useEffect(() => { - const queryValue = getQueryParam(KEYWORD); - - if (debouncedKeyword) { - setQueryParams({ [KEYWORD]: debouncedKeyword }); - } else if (!debouncedKeyword && queryValue) { - removeQueryParam(KEYWORD, 'replace'); - } - }, [debouncedKeyword, getQueryParam, setQueryParams, removeQueryParam]); - - /* TopHeader가 사라졌을 때 input의 위치 top: 5.8rem */ - const inputPositionClasses = watchedKeyword && 'sticky top-[5.8rem]'; +import BookSearch from '@/ui/BookSearch'; +const BookPage = () => { return ( - <> -
+ - -
-
- - - {/** 최근 검색어 + 베스트 셀러 */} -
- }> - setValue('searchValue', keyword)} - /> - - -
- - {/** 도서 검색 결과 */} - {watchedKeyword && ( -
- }> - {watchedKeyword === debouncedKeyword ? ( - - ) : ( - /* 타이핑 중 debounce가 적용되어 keyword가 업데이트 되지 않는 경우에 Loading 컴포넌트로 대체 */ - - )} - -
- )} -
- - ); -}; - -const BookSearchResult = ({ queryKeyword }: { queryKeyword: string }) => { - const router = useRouter(); - const { ref: inViewRef, inView } = useInView(); - - const bookSearchInfo = useBookSearchQuery({ - query: queryKeyword, - page: 1, - pageSize: 12, - }); - - const searchedBooks = bookSearchInfo.isSuccess - ? bookSearchInfo.data.pages.flatMap(page => page.searchBookResponseList) - : []; - const totalResultCount = bookSearchInfo.isSuccess - ? bookSearchInfo.data.pages[0].totalCount - : 0; - - const handleBookClick = async ({ bookId }: { bookId: APIBook['bookId'] }) => { - try { - await bookAPI.storeRecentSearch(queryKeyword); - router.push(`/book/${bookId}`); - } catch (error) { - console.error(error); - } - }; - - useEffect(() => { - if (inView && bookSearchInfo.hasNextPage) { - bookSearchInfo.fetchNextPage(); - } - }, [ - bookSearchInfo.fetchNextPage, - inView, - bookSearchInfo.hasNextPage, - queryKeyword, - bookSearchInfo, - ]); - - return ( - <> - -
- - ); -}; - -const RecentSearchResult = ({ - onItemClick, -}: { - onItemClick?: (item: string) => void; -}) => { - const isAuthenticated = checkAuthentication(); - - const { data: keywords } = useRecentSearchListQuery({ - enabled: isAuthenticated, - }); - - return ; -}; - -const BookSearchLoading = () => { - return ( - /** - * Loading 컴포넌트가 화면 중앙에 올바르게 표시되도록 height가 존재하는 relative div 요소 추가 - * 화면이 스크롤 되지 않는 크기: 100dvh - 23.3rem - */ -
- -
- ); -}; - -const ContentsSkelton = () => { - return ( - <> - - - + Discover + + + ); }; -export default BookSearchPage; +export default BookPage; diff --git a/src/app/book/sitemap.ts b/src/app/book/sitemap.ts deleted file mode 100644 index 04c60d8eb..000000000 --- a/src/app/book/sitemap.ts +++ /dev/null @@ -1,47 +0,0 @@ -import type { MetadataRoute } from 'next'; -import type { APIRecommendedBookshelf } from '@/types/bookshelf'; -import type { APIBook } from '@/types/book'; - -const options = { - headers: { - 'Content-Type': 'application/json', - }, - next: { revalidate: 60 * 60 * 24 }, -}; - -export async function booksSitemap() { - try { - const res = await fetch( - `${process.env.NEXT_PUBLIC_API_URL}/api/suggestions/bookshelves/default`, - options - ); - - if (!res.ok) { - return Promise.reject(); - } - - const data: APIRecommendedBookshelf = await res.json(); - - const books = new Set(); - - data.bookshelfResponses.forEach(bookshelf => - bookshelf.books.forEach(book => books.add(book.bookId)) - ); - - const filteredBooks = Array.from(books); - - return filteredBooks; - } catch { - return []; - } -} - -export default async function sitemap(): Promise { - const booksId = await booksSitemap(); - const sitemap = ['search', ...booksId]; - - return sitemap.map(value => ({ - url: `${process.env.NEXT_PUBLIC_HOST}/book/${value}`, - lastModified: new Date(), - })); -} diff --git a/src/app/bookarchive/page.tsx b/src/app/bookarchive/page.tsx index 302ef0e90..02346130e 100644 --- a/src/app/bookarchive/page.tsx +++ b/src/app/bookarchive/page.tsx @@ -1,33 +1,48 @@ 'use client'; import useMyProfileQuery from '@/queries/user/useMyProfileQuery'; - -import { checkAuthentication } from '@/utils/helpers'; - -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; -import BookArchiveForAuth from '@/components/bookArchive/BookArchiveForAuth'; -import BookArchiveForUnAuth from '@/components/bookArchive/BookArchiveForUnAuth'; -import TopHeader from '@/components/common/TopHeader'; +import { isAuthed } from '@/utils/helpers'; +import { Skeleton, Text, VStack } from '@chakra-ui/react'; +import { Suspense } from 'react'; +import useMounted from '@/hooks/useMounted'; +import { BookArchiveForAuth, BookArchiveForUnAuth } from '@/ui/BookArchive'; export default function BookArchivePage() { return ( -
- - {/* TODO: 스켈레톤 컴포넌트로 교체 */} - + + + + BookArchive + + + + + + + + } + > - -
+ + ); } const Contents = () => { - const isAuthenticated = checkAuthentication(); const { data: userData } = useMyProfileQuery({ - enabled: isAuthenticated, + enabled: isAuthed(), }); + const mounted = useMounted(); + if (!mounted) return null; - return isAuthenticated ? ( + return isAuthed() ? ( ) : ( diff --git a/src/app/bookshelf/[bookshelfId]/page.tsx b/src/app/bookshelf/[bookshelfId]/page.tsx index 78fbbf8c8..263882573 100644 --- a/src/app/bookshelf/[bookshelfId]/page.tsx +++ b/src/app/bookshelf/[bookshelfId]/page.tsx @@ -1,26 +1,37 @@ 'use client'; +import { useToast } from '@/hooks/toast'; +import useBookshelfBooksQuery from '@/queries/bookshelf/useBookshelfBookListQuery'; +import useBookshelfInfoQuery from '@/queries/bookshelf/useBookshelfInfoQuery'; +import { + useBookshelfLike, + useBookshelfUnlike, +} from '@/queries/bookshelf/useBookshelfLikeMutation'; +import { APIBookshelf } from '@/types/bookshelf'; +import Button from '@/ui/common/Button'; +import IconButton from '@/ui/common/IconButton'; +import { LikeButton } from '@/ui/common/BookshelfLike/'; +import TopNavigation from '@/ui/common/TopNavigation'; +import InteractiveBookShelf from '@/ui/InteractiveBookShelf'; +import InitialBookShelfData from '@/ui/InteractiveBookShelf/InitialBookShelfData'; +import UserJobInfoTag from '@/ui/UserJobInfoTag'; +import { isAuthed } from '@/utils/helpers'; +import { + Box, + Flex, + Highlight, + HStack, + Image, + Link, + Skeleton, + Text, + VStack, +} from '@chakra-ui/react'; +import { usePathname } from 'next/navigation'; import { useEffect } from 'react'; -import Link from 'next/link'; import { useInView } from 'react-intersection-observer'; -import type { APIBookshelf } from '@/types/bookshelf'; - -import useBookShelfBooksQuery from '@/queries/bookshelf/useBookShelfBookListQuery'; -import useBookShelfInfoQuery from '@/queries/bookshelf/useBookShelfInfoQuery'; -import useMutateBookshelfLikeQuery from '@/queries/bookshelf/useMutateBookshelfLikeQuery'; -import { useMyProfileId } from '@/queries/user/useMyProfileQuery'; -import { checkAuthentication } from '@/utils/helpers'; -import { IconKakao } from '@public/icons'; -import { KAKAO_LOGIN_URL } from '@/constants'; - -import useToast from '@/components/common/Toast/useToast'; -import TopNavigation from '@/components/common/TopNavigation'; -import BookShelfRow from '@/components/bookShelf/BookShelfRow'; -import Button from '@/components/common/Button'; -import LikeButton from '@/components/common/LikeButton'; -import BackButton from '@/components/common/BackButton'; -import ShareButton from '@/components/common/ShareButton'; +const kakaoUrl = `${process.env.NEXT_PUBLIC_API_URL}/oauth2/authorize/kakao?redirect_uri=${process.env.NEXT_PUBLIC_CLIENT_REDIRECT_URI}`; export default function UserBookShelfPage({ params: { bookshelfId }, @@ -29,86 +40,23 @@ export default function UserBookShelfPage({ bookshelfId: APIBookshelf['bookshelfId']; }; }) { - return ( -
- - - - - - - - - - - -
- ); -} - -const BookShelfInfo = ({ bookshelfId }: { bookshelfId: number }) => { - const isAuthenticated = checkAuthentication(); - const { show: showToast } = useToast(); - - const { data } = useBookShelfInfoQuery(bookshelfId); - const { isLiked, likeCount, userId, userNickname, job } = data; - - const { mutate: mutateBookshelfLike } = - useMutateBookshelfLikeQuery(bookshelfId); - - const { data: myId } = useMyProfileId({ enabled: isAuthenticated }); - - const handleClickLikeButton = () => { - if (!isAuthenticated) { - showToast({ message: '로그인 후 이용해주세요' }); - return; - } - - if (userId === myId) { - showToast({ - message: '내 책장에는 좋아요를 누를 수 없어요', - }); - return; - } - - mutateBookshelfLike(isLiked); - }; - - return ( -
-

- {userNickname} - 님의 책장 -

-
- - {`${job.jobGroupKoreanName} • ${job.jobNameKoreanName}`} - - -
-
- ); -}; - -const BookShelfContent = ({ - bookshelfId, -}: { - bookshelfId: APIBookshelf['bookshelfId']; -}) => { - const isAuthenticated = checkAuthentication(); const { ref, inView } = useInView(); - + const { data: infoData, isSuccess: infoIsSuccess } = useBookshelfInfoQuery({ + bookshelfId, + }); + const { mutate: likeBookshelf } = useBookshelfLike(bookshelfId); + const { mutate: unlikeBookshelf } = useBookshelfUnlike(bookshelfId); + const pathname = usePathname(); + const { showToast } = useToast(); const { data: booksData, fetchNextPage, hasNextPage, - isSuccess, + isSuccess: booksIsSuccess, + isLoading, + isFetching, isFetchingNextPage, - } = useBookShelfBooksQuery({ bookshelfId }); + } = useBookshelfBooksQuery({ bookshelfId }); useEffect(() => { if (inView && hasNextPage) { @@ -116,68 +64,105 @@ const BookShelfContent = ({ } }, [fetchNextPage, inView, hasNextPage]); - // TODO: Suspense 적용 - if (!isSuccess) return null; + if (isLoading) { + return ( + + + + + + + ); + } - return isAuthenticated ? ( - <> - {booksData.pages.map(page => - page.books.map((rowBooks, idx) => ( - - )) - )} - {!isFetchingNextPage &&
} - - ) : ( - <> - - - - - ); -}; -const DummyBookShelfRow = () => ( -
- -
-); + if (!(infoIsSuccess && booksIsSuccess)) return null; -const BookShelfLoginBox = ({ - bookshelfId, -}: { - bookshelfId: APIBookshelf['bookshelfId']; -}) => { - const { data } = useBookShelfInfoQuery(bookshelfId); - const { userNickname } = data; + const filtered = () => { + const data = booksData.pages[0].books; + + if (isAuthed()) return data; + + return data.slice(0, 4); + }; + + const filteredData = filtered(); + + const handleClickShareButton = () => { + const url = 'https://dev.dadok.site' + pathname; + + navigator.clipboard + .writeText(url) + .then(() => { + showToast({ message: '복사 성공!' }); + }) + .catch(() => { + showToast({ message: '잠시 후 다시 시도해주세요' }); + }); + }; + + const handleBookshelfLikeButton = () => { + !infoData.isLiked ? likeBookshelf() : unlikeBookshelf(); + }; return ( -
-

- 지금 로그인하면 -
- 책장에 담긴 모든 책을 볼 수 있어요! -

-

- {userNickname}님의 책장에서 - 다양한 -
- 인사이트를 얻을 수 있어요. -

- - - -
+ + + + + + + + + {infoData.job.jobNameKoreanName && ( + + )} + + + + + {isAuthed() ? ( + booksData.pages.map((page, idx) => ( + + )) + ) : ( + <> + + + + 로그인 후에 +
+ + {`${infoData.bookshelfName}을 확인해 주세요!`} + +
+ + + + + )} + {isFetching && !isFetchingNextPage ? null : } +
+
); -}; - -const initialBookImageUrl = [ - { bookId: 1, title: 'book1', imageUrl: '/images/book-cover/book1.jpeg' }, - { bookId: 2, title: 'book2', imageUrl: '/images/book-cover/book2.jpeg' }, - { bookId: 3, title: 'book3', imageUrl: '/images/book-cover/book3.jpeg' }, - { bookId: 4, title: 'book4', imageUrl: '/images/book-cover/book4.jpeg' }, -]; +} diff --git a/src/app/bookshelf/sitemap.ts b/src/app/bookshelf/sitemap.ts deleted file mode 100644 index 35d7daf7b..000000000 --- a/src/app/bookshelf/sitemap.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { MetadataRoute } from 'next'; -import type { APIRecommendedBookshelf } from '@/types/bookshelf'; - -const options = { - headers: { - 'Content-Type': 'application/json', - }, - next: { revalidate: 60 * 60 * 24 }, -}; - -export async function bookshelvesSitemap() { - try { - const res = await fetch( - `${process.env.NEXT_PUBLIC_API_URL}/api/suggestions/bookshelves/default`, - options - ); - - if (!res.ok) { - return Promise.reject(); - } - - const data: APIRecommendedBookshelf = await res.json(); - const bookshelves = data.bookshelfResponses.map(({ bookshelfId }) => ({ - bookshelfId, - })); - - return bookshelves; - } catch { - return []; - } -} - -export default async function sitemap(): Promise { - const bookshelves = await bookshelvesSitemap(); - - return bookshelves.map(({ bookshelfId }) => ({ - url: `${process.env.NEXT_PUBLIC_HOST}/bookshelf/${bookshelfId}`, - lastModified: new Date(), - })); -} diff --git a/src/app/error.tsx b/src/app/error.tsx new file mode 100644 index 000000000..20abfc98a --- /dev/null +++ b/src/app/error.tsx @@ -0,0 +1,45 @@ +'use client'; + +import Button from '@/ui/common/Button'; +import { Text, Highlight, Image, VStack } from '@chakra-ui/react'; + +export const ErrorPage = () => { + return ( + + loading + + + + 다독이도 몰라요~ 왜 이래요~ + + + + + + ); +}; + +export default ErrorPage; diff --git a/src/app/global-error.tsx b/src/app/global-error.tsx deleted file mode 100644 index c6d9ab5d7..000000000 --- a/src/app/global-error.tsx +++ /dev/null @@ -1,38 +0,0 @@ -'use client'; - -import Button from '@/components/common/Button'; -import Image from 'next/image'; -import { useRouter } from 'next/navigation'; - -export const ErrorPage = () => { - const router = useRouter(); - - return ( - - -
- loading -
- 다독이도 몰라요~ 왜 - 이래요~ -
- -
- - - ); -}; - -export default ErrorPage; diff --git a/src/app/group/[groupId]/edit/page.tsx b/src/app/group/[groupId]/edit/page.tsx index b857e56b5..35d8efc56 100644 --- a/src/app/group/[groupId]/edit/page.tsx +++ b/src/app/group/[groupId]/edit/page.tsx @@ -1,102 +1,43 @@ 'use client'; -import { notFound, useRouter } from 'next/navigation'; -import { FormProvider, SubmitHandler, useForm } from 'react-hook-form'; - -import { - useBookGroupEditCurrentInfo, - useBookGroupInfoMutation, -} from '@/queries/group/useBookGroupQuery'; -import type { APIGroupDetail, APIEditBookGroup } from '@/types/group'; - -import { SERVICE_ERROR_MESSAGE } from '@/constants'; -import { isAxiosErrorWithCustomCode } from '@/utils/helpers'; -import useToast from '@/components/common/Toast/useToast'; - -import withAuthRequired from '@/hocs/withAuthRequired'; -import BookGroupEditDateForm from '@/components/bookGroup/edit/BookGroupEditDateForm'; -import BookGroupEditIntroduceForm from '@/components/bookGroup/edit/BookGroupEditIntroduceForm'; -import BookGroupEditTitleForm from '@/components/bookGroup/edit/BookGroupEditTitleForm'; -import BookGroupEditTopNavigation from '@/components/bookGroup/edit/BookGroupEditTopNavigation'; - -const BookGroupEditPage = ({ +import GroupAPI from '@/apis/group'; +import { APIGroupDetail } from '@/types/group'; +import AuthRequired from '@/ui/AuthRequired'; +import TopNavigation from '@/ui/common/TopNavigation'; +import EditGroupForm from '@/ui/Group/EditGroupForm'; +import { VStack } from '@chakra-ui/react'; +import { useCallback, useEffect, useState } from 'react'; + +const GroupEditPage = ({ params: { groupId }, }: { - params: { groupId: APIGroupDetail['bookGroupId'] }; + params: { groupId: number }; }) => { - const router = useRouter(); - - const { data: bookGroupData } = useBookGroupEditCurrentInfo(groupId); - const { isOwner, title, description, maxMemberCount, startDate, endDate } = - bookGroupData; - - /** - * @todo - * 401 페이지 만들기 (접근 권한이 없어요) - */ - if (!isOwner) { - notFound(); - } - - const bookGroupEdit = useBookGroupInfoMutation(groupId); - - const { show: showToast } = useToast(); - - const methods = useForm>({ - mode: 'all', - defaultValues: { - title: title, - introduce: description, - maxMemberCount: maxMemberCount ? maxMemberCount : 9999, - startDate: startDate, - endDate: endDate, - }, - }); - - const handleFormSubmit: SubmitHandler< - Omit - > = async ({ title, introduce, maxMemberCount, endDate }) => { - bookGroupEdit.mutate( - { title, introduce, maxMemberCount, endDate }, - { - onSuccess: () => { - router.push(`/group/${groupId}`); - - showToast({ type: 'success', message: '모임 정보를 수정했어요! 🎉' }); - return; - }, - onError: error => { - if (isAxiosErrorWithCustomCode(error)) { - const { code } = error.response.data; - const message = SERVICE_ERROR_MESSAGE[code]; - - showToast({ type: 'error', message }); - return; - } - - showToast({ - type: 'error', - message: '모임 정보 수정을 실패했어요 🥲', - }); - }, - } - ); - }; + const [group, setGroup] = useState(); + + const getGroup = useCallback(async () => { + try { + const { data } = await GroupAPI.getGroupDetailInfo({ + bookGroupId: groupId, + }); + setGroup(data); + } catch (error) { + console.error(error); + } + }, [groupId]); + + useEffect(() => { + getGroup(); + }, [getGroup]); return ( - - - -
- - - - -
+ + + + {group && } + + ); }; -export default withAuthRequired(BookGroupEditPage); +export default GroupEditPage; diff --git a/src/app/group/[groupId]/join/page.tsx b/src/app/group/[groupId]/join/page.tsx deleted file mode 100644 index 38a1a27ed..000000000 --- a/src/app/group/[groupId]/join/page.tsx +++ /dev/null @@ -1,106 +0,0 @@ -'use client'; - -import { notFound, useRouter } from 'next/navigation'; -import { SubmitHandler, useForm } from 'react-hook-form'; - -import useJoinBookGroup from '@/hooks/group/useJoinBookGroup'; - -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; -import withAuthRequired from '@/hocs/withAuthRequired'; - -import Loading from '@/components/common/Loading'; -import Input from '@/components/common/Input'; -import InputLength from '@/components/common/InputLength'; -import ErrorMessage from '@/components/common/ErrorMessage'; -import BottomActionButton from '@/components/common/BottomActionButton'; -import BookGroupNavigation from '@/components/bookGroup/BookGroupNavigation'; - -type JoinFormValues = { - answer: string; -}; - -const JoinBookGroupPage = ({ - params: { groupId }, -}: { - params: { groupId: number }; -}) => { - return ( - }> - - - - - - - ); -}; - -export default withAuthRequired(JoinBookGroupPage); - -const BookGroupJoinForm = ({ groupId }: { groupId: number }) => { - const router = useRouter(); - const { isMember, hasPassword, question, joinBookGroup } = - useJoinBookGroup(groupId); - - if (isMember || !hasPassword) { - notFound(); - } - - const { - register, - watch, - handleSubmit, - formState: { errors }, - } = useForm({ mode: 'all' }); - - const submitJoinForm: SubmitHandler = ({ answer }) => { - joinBookGroup({ - answer, - onSuccess: () => router.replace(`/group/${groupId}`), - }); - }; - - return ( -
-

- {`문제를 맞추면 - 모임에 가입할 수 있어요`} -

-
-

{question}

-
- -
- - {errors.answer && ( - {errors.answer.message} - )} -
-
-
- 제출하기 -
- ); -}; diff --git a/src/app/group/[groupId]/not-found.tsx b/src/app/group/[groupId]/not-found.tsx deleted file mode 100644 index a5f205770..000000000 --- a/src/app/group/[groupId]/not-found.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import Button from '@/components/common/Button'; -import Image from 'next/image'; -import Link from 'next/link'; - -export default function NotFound() { - return ( -
- loading -

- 다독이가 길을 잃었어요. -

- - - -
- ); -} diff --git a/src/app/group/[groupId]/page.tsx b/src/app/group/[groupId]/page.tsx index 0e2d434d2..bf01dac1d 100644 --- a/src/app/group/[groupId]/page.tsx +++ b/src/app/group/[groupId]/page.tsx @@ -1,68 +1,19 @@ 'use client'; -import { notFound } from 'next/navigation'; -import { ErrorBoundary } from 'react-error-boundary'; +import { Flex } from '@chakra-ui/react'; -import { checkAuthentication } from '@/utils/helpers'; +import GroupDetail from '@/ui/Group/GroupDetail'; -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; -import LoginBottomActionButton from '@/components/common/LoginBottomActionButton'; -import BookGroupNavigation from '@/components/bookGroup/BookGroupNavigation'; -import BookGroupInfo from '@/components/bookGroup/detail/BookGroupInfo'; -import JoinBookGroupButton from '@/components/bookGroup/detail/JoinBookGroupButton'; -import BookGroupCommentList from '@/components/comment/BookGroupCommentList'; - -const DetailBookGroupPage = ({ +const GroupDetailPage = ({ params: { groupId }, }: { params: { groupId: number }; }) => { - const isAuthenticated = checkAuthentication(); - return ( - - - - - - - - - }> -
- - -
- - -
-
- {isAuthenticated ? ( - - ) : ( - - )} -
-
+ + + ); }; -export default DetailBookGroupPage; - -const Heading = ({ text }: { text: string }) => ( -

{text}

-); - -const PageSkeleton = () => ( -
-
-
-
-
-
-
-
-
-); - -const Divider = () =>

; +export default GroupDetailPage; diff --git a/src/app/group/create/page.tsx b/src/app/group/create/page.tsx index 124bbfde1..1fd6d532d 100644 --- a/src/app/group/create/page.tsx +++ b/src/app/group/create/page.tsx @@ -1,11 +1,19 @@ 'use client'; -import withAuthRequired from '@/hocs/withAuthRequired'; +import AddGroupForm from '@/ui/Group/AddGroupForm'; +import { VStack } from '@chakra-ui/react'; +import TopNavigation from '@/ui/common/TopNavigation'; +import AuthRequired from '@/ui/AuthRequired'; -import CreateBookGroupFunnel from '@/components/bookGroup/create/CreateBookGroupFunnel'; - -const GroupCreateFunnelPage = () => { - return ; +const GroupCreatePage = () => { + return ( + + + + + + + ); }; -export default withAuthRequired(GroupCreateFunnelPage); +export default GroupCreatePage; diff --git a/src/app/group/page.tsx b/src/app/group/page.tsx index 24b67dcb5..200fc3bfc 100644 --- a/src/app/group/page.tsx +++ b/src/app/group/page.tsx @@ -1,124 +1,24 @@ 'use client'; -import { useRouter } from 'next/navigation'; -import { useEffect } from 'react'; -import { useInView } from 'react-intersection-observer'; - -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; import useEntireGroupsQuery from '@/queries/group/useEntireGroupsQuery'; -import useMyGroupsQuery from '@/queries/group/useMyGroupQuery'; -import { useMyProfileId } from '@/queries/user/useMyProfileQuery'; - -import useMounted from '@/hooks/useMounted'; -import { checkAuthentication } from '@/utils/helpers'; -import useToast from '@/components/common/Toast/useToast'; +import GroupHeader from '@/ui/Group/GroupHeader'; +import GroupList from '@/ui/Group/GroupList'; +import GroupSearch from '@/ui/Group/GroupSearch'; +import { Box, Skeleton, VStack } from '@chakra-ui/react'; +import { useState, useEffect } from 'react'; +import { useInView } from 'react-intersection-observer'; -import FloatingButton from '@/components/common/FloatingButton'; -import Loading from '@/components/common/Loading'; -import TopHeader from '@/components/common/TopHeader'; -import DetailBookGroupCard, { - DetailBookGroupCardSkeleton, -} from '@/components/bookGroup/DetailBookGroupCard'; -import SearchGroupInput from '@/components/bookGroup/SearchGroup'; -import SimpleBookGroupCard, { - SimpleBookGroupCardSkeleton, -} from '@/components/bookGroup/SimpleBookGroupCard'; +interface SearchValue { + [key: string]: string; + input: string; + select: string; +} const GroupPage = () => { - const router = useRouter(); - const { show: showToast } = useToast(); - - const isAuthenticated = checkAuthentication(); - - const handleSearchInputClick = () => { - showToast({ message: '아직 준비 중인 기능이에요 🥹' }); - }; - - const handleCreateGroupClick = () => { - if (isAuthenticated) { - router.push('/group/create'); - } else { - showToast({ message: '로그인 후 이용해주세요' }); - } - - return; - }; - - const FLOATING_BUTTON_POSITION = - 'bottom-[calc(env(safe-area-inset-bottom)+8.3rem)] right-[1.7rem] desktop:right-1/2 desktop:translate-x-[19.8rem]'; - - return ( - <> - -
- - }> - {isAuthenticated && } - - -
- - - ); -}; - -export default GroupPage; - -const MyBookGroupList = () => { - const isAuthenticated = checkAuthentication(); - const { - data: { bookGroups }, - } = useMyGroupsQuery({ enabled: isAuthenticated }); - const { data: myId } = useMyProfileId({ enabled: isAuthenticated }); - - return ( -
- {bookGroups.map(({ title, book, bookGroupId, owner }) => ( - - ))} -
- ); -}; - -const PageSkeleton = () => { - const isMounted = useMounted(); - - if (!isMounted) { - return ; - } - - return ( - <> - -
- - - - -
- - ); -}; - -const MyBookGroupListSkeleton = () => ( -
- - - - -
-); - -const EntireBookGroupList = () => { + const [searchValue, setSearchValue] = useState({ + input: '', + select: '모임', + }); const { ref, inView } = useInView(); const { @@ -136,55 +36,50 @@ const EntireBookGroupList = () => { } }, [fetchNextPage, inView, hasNextPage]); + const handleSumbit = () => { + const { input } = searchValue; + if (input.trim().length === 0) { + /*공백만 입력한 경우 전체 데이터 렌더링 */ + } else { + /*검색 API호출 및 setMeetingListData 업데이트 */ + } + }; + + const handleChange = (name: string, value: string) => { + if (!(name in searchValue)) return; + const tempSearchValue = { ...searchValue }; + tempSearchValue[name] = value; + setSearchValue(tempSearchValue); + }; + if (isLoading) return ( -
- - - - -
+ + + + + + ); return ( - <> -
+ + + + {isSuccess && - data.pages.map(({ bookGroups }) => - bookGroups.map( - ({ - bookGroupId, - title, - introduce, - book, - startDate, - endDate, - owner, - memberCount, - commentCount, - isPublic, - }) => ( - - ) - ) - )} -
- {isFetchingNextPage && } -
- + data.pages.map((groups, idx) => { + return ; + })} + + + {isFetchingNextPage && } + ); }; + +export default GroupPage; diff --git a/src/app/group/sitemap.ts b/src/app/group/sitemap.ts deleted file mode 100644 index e963145bb..000000000 --- a/src/app/group/sitemap.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { MetadataRoute } from 'next'; -import type { APIGroupPagination } from '@/types/group'; - -const options = { - headers: { - 'Content-Type': 'application/json', - }, - next: { revalidate: 60 * 60 * 24 }, -}; - -export const bookGroupSitemap = async () => { - try { - const res = await fetch( - `${process.env.NEXT_PUBLIC_API_URL}/api/book-groups?pageSize=100`, - options - ); - - if (!res.ok) { - return Promise.reject(); - } - - const data: APIGroupPagination = await res.json(); - const bookGroups = data.bookGroups.map(group => group.bookGroupId); - - return bookGroups; - } catch { - return []; - } -}; - -export default async function sitemap(): Promise { - const bookGroups = await bookGroupSitemap(); - - return bookGroups.map(bookGroupId => ({ - url: `${process.env.NEXT_HOST}/group/${bookGroupId}`, - lastModified: new Date(), - })); -} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 460cd202f..73bb26c24 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,60 +1,16 @@ -import type { Metadata } from 'next'; +import ContextProvider from '@/components/ContextProvider'; +import { ReactNode } from 'react'; -import { appleSplashScreens } from '@/constants/metadata'; - -import ContextProvider from '@/components/common/ContextProvider'; -import AuthFailedErrorBoundary from '@/components/common/AuthFailedErrorBoundary'; -import Layout from '@/components/layout/Layout'; - -import { LineSeedKR } from '@/styles/font'; -import '@/styles/global.css'; - -export const metadata: Metadata = { - metadataBase: new URL(`${process.env.NEXT_HOST}`), - title: { - template: '%s | 다독다독', - default: '다독다독', - }, - description: '책에 대한 인사이트를 공유하고 소통하는 독서 소셜 플랫폼', - themeColor: '#FFFFFF', - keywords: [ - '다독다독', - 'dadok', - 'dadokdadok', - '책장', - '책추천', - '도서검색', - '독서모임', - '책', - '독서', - ], - viewport: - 'minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no, viewport-fit=cover', - verification: { - google: '72kN3MWyQHuvSb8V67dVkfPUPMrw102Tm6BsvTvfKmg', - other: { - 'naver-site-verification': '9046af5eda448309a92e2e923a45cb874df986a0', - }, - }, - icons: [ - { rel: 'apple-touch-icon', url: '/images/icon-192x192.png' }, - { rel: 'icon', url: '/favicon.ico' }, - ], - appleWebApp: { - title: '다독다독', - startupImage: appleSplashScreens, - }, -}; - -const RootLayout = ({ children }: { children: React.ReactNode }) => { +const RootLayout = ({ children }: { children: ReactNode }) => { return ( - - - - - {children} - - + + + 다독다독 + + + + + {children} ); diff --git a/src/app/loading.tsx b/src/app/loading.tsx deleted file mode 100644 index 71586d44c..000000000 --- a/src/app/loading.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import Loading from '@/components/common/Loading'; - -export default function RootLoading() { - return ; -} diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx index 8c02ff3da..bddebf3bb 100644 --- a/src/app/login/page.tsx +++ b/src/app/login/page.tsx @@ -1,54 +1,51 @@ 'use client'; +import { Highlight, Text, VStack } from '@chakra-ui/react'; import Image from 'next/image'; import Link from 'next/link'; -import { IconKakao } from '@public/icons'; -import { KAKAO_LOGIN_URL } from '@/constants'; - -import Button from '@/components/common/Button'; +import Button from '@/ui/common/Button'; +import Logo from '@/ui/common/Logo'; const LoginPage = () => { + const kakaoUrl = `${process.env.NEXT_PUBLIC_API_URL}/oauth2/authorize/kakao?redirect_uri=${process.env.NEXT_PUBLIC_CLIENT_REDIRECT_URI}`; + return ( - <> -
- 로그인랜딩이미지 -

- - 책에 대한 모든 이야기, - + + + + + 책에 대한 모든 이야기
- 다독다독에서 - 함께해요! -

-
- -
- - - - - - -
- + 다독다독에서 함께 해요 + + + + + + + ); }; diff --git a/src/app/login/redirect/page.tsx b/src/app/login/redirect/page.tsx index 3432803d5..bedf47e2a 100644 --- a/src/app/login/redirect/page.tsx +++ b/src/app/login/redirect/page.tsx @@ -1,42 +1,32 @@ 'use client'; -import { notFound, useRouter, useSearchParams } from 'next/navigation'; +import { Flex, Spinner } from '@chakra-ui/react'; +import { useRouter, useSearchParams } from 'next/navigation'; import { useCallback, useEffect } from 'react'; - import { setAuth } from '@/utils/helpers'; import userAPI from '@/apis/user'; -import Loading from '@/components/common/Loading'; - const RedirectPage = () => { const router = useRouter(); const searchParams = useSearchParams(); const accessToken = searchParams.get('access_token'); - if (!accessToken) { - notFound(); - } - const checkSavedAdditionalInfo = useCallback(async () => { - try { - const isSavedAdditionalInfo = await userAPI.getMyProfile().then( - ({ - data: { - job: { jobName, jobGroupName }, - nickname, - }, - }) => !!(nickname && jobGroupName && jobName) - ); - - if (!isSavedAdditionalInfo) { - router.replace('/profile/me/add'); - } - - router.replace('/bookarchive'); - } catch { - router.replace('/not-found'); + const isSavedAdditionalInfo = await userAPI.getMyProfile().then( + ({ + data: { + job: { jobName, jobGroupName }, + nickname, + }, + }) => !!(nickname && jobGroupName && jobName) + ); + + if (!isSavedAdditionalInfo) { + router.replace('/profile/me/add'); } + + router.replace('/bookarchive'); }, [router]); useEffect(() => { @@ -48,7 +38,11 @@ const RedirectPage = () => { } }, [accessToken, checkSavedAdditionalInfo]); - return ; + return ( + + + + ); }; export default RedirectPage; diff --git a/src/app/manifest.webmanifest b/src/app/manifest.webmanifest deleted file mode 100644 index 178fedd1c..000000000 --- a/src/app/manifest.webmanifest +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "다독다독", - "short_name": "다독다독", - "description": "책에 대한 인사이트를 공유하고 소통하는 독서 소셜 플랫폼", - "theme_color": "#FFA436", - "background_color": "#FFFFFF", - "display": "standalone", - "scope": "./", - "start_url": "./", - "icons": [ - { - "src": "images/icon-192x192.png", - "sizes": "192x192", - "type": "image/png", - "purpose": "maskable any" - }, - { - "src": "images/icon-256x256.png", - "sizes": "256x256", - "type": "image/png", - "purpose": "maskable any" - }, - { - "src": "images/icon-384x384.png", - "sizes": "384x384", - "type": "image/png", - "purpose": "maskable any" - }, - { - "src": "images/icon-512x512.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "maskable any" - } - ] -} diff --git a/src/app/not-found.tsx b/src/app/not-found.tsx index c7581591a..c52fc2f29 100644 --- a/src/app/not-found.tsx +++ b/src/app/not-found.tsx @@ -1,28 +1,45 @@ 'use client'; -import Button from '@/components/common/Button'; -import Image from 'next/image'; -import { useRouter } from 'next/navigation'; - -const NotFound = () => { - const router = useRouter(); +import Button from '@/ui/common/Button'; +import { Highlight, Image, Text, VStack } from '@chakra-ui/react'; +export const NotFoundPage = () => { return ( -
- loading -
- 다독이가 길을 잃었어요. -
- -
+ + loading + + + + 다독이가 길을 잃었어요. + + + + + ); }; -export default NotFound; +export default NotFoundPage; diff --git a/src/app/opengraph-image.jpg b/src/app/opengraph-image.jpg deleted file mode 100644 index 60da537d0d115aab285bb51c530698e4f5f1143e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316801 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 ^ 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 NTa@ma6L_!rM{R_t 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


GsN{gsj! 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 { return ( - <> - - - - - - - - -
+ + + -
- + + ); }; diff --git a/src/app/profile/me/add/page.tsx b/src/app/profile/me/add/page.tsx index 8d6b0e4f5..15a4455b3 100644 --- a/src/app/profile/me/add/page.tsx +++ b/src/app/profile/me/add/page.tsx @@ -1,29 +1,41 @@ 'use client'; import useAllJobQuery from '@/queries/job/useAllJobQuery'; +import useMyProfileQuery from '@/queries/user/useMyProfileQuery'; +import AuthRequired from '@/ui/AuthRequired'; +import ProfileForm from '@/ui/Profile/ProfileForm'; +import { isAuthed } from '@/utils/helpers'; +import { Text, VStack } from '@chakra-ui/react'; -import { checkAuthentication } from '@/utils/helpers'; +const AdditionalProfile = () => { + const allJobQuery = useAllJobQuery({ enabled: isAuthed() }); + const userProfileQuery = useMyProfileQuery({ enabled: isAuthed() }); -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; -import withAuthRequired from '@/hocs/withAuthRequired'; + const isSuccess = allJobQuery.isSuccess && userProfileQuery.isSuccess; -import AddJobProfile from '@/components/profile/AddJobProfile'; - -const AddJobProfilePage = () => { return ( - - - + + + + 추가 정보를 입력해 주세요! + + + 추가 정보를 입력하면 +
+ + 다독다독 + + 이 추천하는 책장을 볼 수 있어요! +
+ {isSuccess && ( + + )} +
+
); }; -export default withAuthRequired(AddJobProfilePage); - -const Contents = () => { - const isAuthenticated = checkAuthentication(); - const allJobQuery = useAllJobQuery({ enabled: isAuthenticated }); - - return allJobQuery.isSuccess ? ( - - ) : null; -}; +export default AdditionalProfile; diff --git a/src/app/profile/me/edit/page.tsx b/src/app/profile/me/edit/page.tsx index eb416b593..537bc5506 100644 --- a/src/app/profile/me/edit/page.tsx +++ b/src/app/profile/me/edit/page.tsx @@ -2,31 +2,41 @@ import useAllJobQuery from '@/queries/job/useAllJobQuery'; import useMyProfileQuery from '@/queries/user/useMyProfileQuery'; - -import { checkAuthentication } from '@/utils/helpers'; - -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; -import withAuthRequired from '@/hocs/withAuthRequired'; - -import EditProfile from '@/components/profile/EditProfile'; -import Loading from '@/components/common/Loading'; - -const EditProfilePage = () => { +import AuthRequired from '@/ui/AuthRequired'; +import TopNavigation from '@/ui/common/TopNavigation'; +import ProfileForm from '@/ui/Profile/ProfileForm'; +import { isAuthed } from '@/utils/helpers'; +import { Skeleton, VStack } from '@chakra-ui/react'; +import { Suspense } from 'react'; + +const EditMyPage = () => { return ( - }> - - + + + + + + + + + } + > + + + + ); }; -export default withAuthRequired(EditProfilePage); - const Contents = () => { - const isAuthenticated = checkAuthentication(); - const allJobQuery = useAllJobQuery({ enabled: isAuthenticated }); + const allJobQuery = useAllJobQuery({ enabled: isAuthed() }); const { data: profileData } = useMyProfileQuery(); return allJobQuery.isSuccess ? ( - + ) : null; }; + +export default EditMyPage; diff --git a/src/app/profile/me/group/page.tsx b/src/app/profile/me/group/page.tsx deleted file mode 100644 index 667ef5464..000000000 --- a/src/app/profile/me/group/page.tsx +++ /dev/null @@ -1,94 +0,0 @@ -'use client'; - -import useMyGroupsQuery from '@/queries/group/useMyGroupQuery'; -import { checkAuthentication } from '@/utils/helpers'; - -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; -import withAuthRequired from '@/hocs/withAuthRequired'; - -import BackButton from '@/components/common/BackButton'; -import TopNavigation from '@/components/common/TopNavigation'; -import DetailBookGroupCard from '@/components/bookGroup/DetailBookGroupCard'; - -const UserGroupPage = () => { - return ( - <> - - - - - 내가 참여한 모임 - - }> - - - - ); -}; - -export default withAuthRequired(UserGroupPage); - -const UserGroupContent = () => { - const isAuthenticated = checkAuthentication(); - const { data } = useMyGroupsQuery({ enabled: isAuthenticated }); - - return ( -
    - {data.bookGroups.map( - ({ - title, - introduce, - book, - startDate, - endDate, - owner, - memberCount, - commentCount, - isPublic, - bookGroupId, - }) => ( -
  • - -
  • - ) - )} -
- ); -}; - -const PageSkeleton = () => ( -
    - {Array.from({ length: 4 }).map((_, index) => ( -
  • -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
  • - ))} -
-); diff --git a/src/app/profile/me/page.tsx b/src/app/profile/me/page.tsx index 879cd3809..775cb20b9 100644 --- a/src/app/profile/me/page.tsx +++ b/src/app/profile/me/page.tsx @@ -1,122 +1,54 @@ 'use client'; +import { Box, VStack } from '@chakra-ui/react'; import Link from 'next/link'; -import { useRouter } from 'next/navigation'; -import { useQueryClient } from '@tanstack/react-query'; - +import { usePathname, useRouter } from 'next/navigation'; + +import AuthRequired from '@/ui/AuthRequired'; +import ProfileInfo from '@/ui/Profile/ProfileInfo'; +import ProfileBookShelf from '@/ui/Profile/ProfileBookshelf'; +import ProfileGroup from '@/ui/Profile/ProfileGroup'; +import Button from '@/ui/common/Button'; +import { Menu, MenuItem } from '@/ui/common/Menu'; +import { removeAuth } from '@/utils/helpers'; import userAPI from '@/apis/user'; -import userKeys from '@/queries/user/key'; - -import { checkAuthentication, removeAuth } from '@/utils/helpers'; -import { KAKAO_LOGIN_URL } from '@/constants'; -import { IconArrowRight } from '@public/icons'; - -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; - -import Avatar from '@/components/common/Avatar'; -import Button from '@/components/common/Button'; -import Loading from '@/components/common/Loading'; -import Menu from '@/components/common/Menu'; -import TopHeader from '@/components/common/TopHeader'; -import BookShelf from '@/components/bookShelf/BookShelf'; -import ProfileBookShelf from '@/components/profile/bookShelf/ProfileBookShelf'; -import ProfileGroup from '@/components/profile/group/ProfileGroup'; -import ProfileInfo from '@/components/profile/info/ProfileInfo'; - -const USER_ID = 'me'; const MyProfilePage = () => { - const isAuthenticated = checkAuthentication(); - return ( - }> - {isAuthenticated ? : } - - ); -}; - -const MyProfileForUnAuth = () => { - return ( - <> - -
-
- -
-

- 로그인 / 회원가입 -

-

- 카카오로 3초만에 가입할 수 있어요. -

-
- - - -
-
-
-

책장

-
- -
- -
-

- 책장이 비었어요. -

-
-
-
-
-
-

참여한 모임

-
-

- 참여 중인 모임이 없어요. -

-
-
-
- - ); -}; - -const MyProfileForAuth = () => { - const queryClient = useQueryClient(); - const router = useRouter(); + const { push } = useRouter(); + const pathname = usePathname(); const handleLogoutButtonClick = async () => { await userAPI.logout(); removeAuth(); - queryClient.removeQueries({ queryKey: userKeys.me(), exact: true }); - router.refresh(); + push('/'); }; return ( - <> - - - - - 로그아웃 - - - -
- - - - -
- - -
-
- + + + + + + + ); }; diff --git a/src/app/robots.ts b/src/app/robots.ts deleted file mode 100644 index 90f25b69b..000000000 --- a/src/app/robots.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { MetadataRoute } from 'next'; - -export default function robots(): MetadataRoute.Robots { - return { - rules: { - userAgent: '*', - allow: '/', - }, - sitemap: `${process.env.NEXT_HOST}/sitemap.xml`, - host: `${process.env.NEXT_HOST}`, - }; -} diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts deleted file mode 100644 index 3c01196ef..000000000 --- a/src/app/sitemap.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { MetadataRoute } from 'next'; - -import { default as bookSitemap } from './book/sitemap'; -import { default as bookshelfSitemap } from './bookshelf/sitemap'; -import { default as bookGroupSitemap } from './group/sitemap'; - -export default async function sitemap(): Promise { - return [ - { - url: `${process.env.NEXT_HOST}/bookarchive`, - lastModified: new Date(), - }, - { - url: `${process.env.NEXT_HOST}/group`, - lastModified: new Date(), - }, - { - url: `${process.env.NEXT_HOST}/profile/me`, - lastModified: new Date(), - }, - ...(await bookSitemap()), - ...(await bookshelfSitemap()), - ...(await bookGroupSitemap()), - ]; -} diff --git a/src/components/ChakraThemeProvider.tsx b/src/components/ChakraThemeProvider.tsx new file mode 100644 index 000000000..f6455931b --- /dev/null +++ b/src/components/ChakraThemeProvider.tsx @@ -0,0 +1,13 @@ +import theme from '@/styles/theme'; +import { ChakraProvider } from '@chakra-ui/react'; +import { NextPage } from 'next/types'; + +interface PropTypes { + children: React.ReactNode; +} + +const ChakraThemeProvider: NextPage = ({ children }) => { + return {children}; +}; + +export default ChakraThemeProvider; diff --git a/src/components/ContextProvider.tsx b/src/components/ContextProvider.tsx new file mode 100644 index 000000000..3086f9ba1 --- /dev/null +++ b/src/components/ContextProvider.tsx @@ -0,0 +1,30 @@ +'use client'; + +import { RecoilRoot } from 'recoil'; +import { LineSeed } from '@/styles/font'; +import Layout from '@/ui/common/Layout'; +import { Global } from '@emotion/react'; +import { ErrorBoundary } from 'react-error-boundary'; +import ChakraThemeProvider from '@/components/ChakraThemeProvider'; +import ReactQueryProvider from '@/components/ReactQueryProvider'; +import { ReactNode } from 'react'; +import ErrorPage from '@/app/error'; + +const ContextProvider = ({ children }: { children: ReactNode }) => { + return ( + <> + + + + + + {children} + + + + + + ); +}; + +export default ContextProvider; diff --git a/src/components/common/ReactQueryProvider.tsx b/src/components/ReactQueryProvider.tsx similarity index 69% rename from src/components/common/ReactQueryProvider.tsx rename to src/components/ReactQueryProvider.tsx index 1871e4227..d5b8db5df 100644 --- a/src/components/common/ReactQueryProvider.tsx +++ b/src/components/ReactQueryProvider.tsx @@ -1,4 +1,3 @@ -import AuthRefreshIgnoredError from '@/types/customError/AuthRefreshIgnoredError'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; import { NextPage } from 'next/types'; @@ -14,19 +13,12 @@ const ReactQueryProvider: NextPage = ({ children }) => { new QueryClient({ defaultOptions: { queries: { - refetchOnWindowFocus: false, - retry: (_count, error) => { - if (error instanceof AuthRefreshIgnoredError) { - return true; - } - - return false; - }, + refetchOnWindowFocus: true, + retry: 0, }, }, }) ); - return ( diff --git a/src/components/book/BookCover.tsx b/src/components/book/BookCover.tsx deleted file mode 100644 index e19004b25..000000000 --- a/src/components/book/BookCover.tsx +++ /dev/null @@ -1,98 +0,0 @@ -'use client'; - -import { ComponentPropsWithoutRef, useState } from 'react'; -import Image from 'next/image'; -import { DATA_URL } from '@/constants'; - -type BookCoverSize = - | 'xsmall' - | 'small' - | 'medium' - | 'large' - | 'xlarge' - | '2xlarge' - | 'fill'; - -type BookCoverProps = Partial< - Pick, 'src'> -> & { - title?: string; - size?: BookCoverSize; -}; - -const getCoverSize = (size: BookCoverSize) => { - switch (size) { - case 'xsmall': { - return { - sizeClasses: 'w-[6.5rem] h-[9.1rem]', - sizeProps: { width: 65, height: 91 }, - } as const; - } - case 'small': { - return { - sizeClasses: 'w-[7.0rem] h-[9.8rem]', - sizeProps: { width: 70, height: 98 }, - } as const; - } - case 'medium': { - return { - sizeClasses: 'w-[7.5rem] h-[10.5rem]', - sizeProps: { width: 75, height: 105 }, - } as const; - } - case 'large': { - return { - sizeClasses: 'w-[9.0rem] h-[12.6rem]', - sizeProps: { width: 90, height: 126 }, - } as const; - } - case 'xlarge': { - return { - sizeClasses: 'w-[11.0rem] h-[15.4rem]', - sizeProps: { width: 110, height: 154 }, - } as const; - } - case '2xlarge': { - return { - sizeClasses: 'w-[14.0rem] h-[19.6rem]', - sizeProps: { width: 140, height: 196 }, - } as const; - } - case 'fill': - return { - sizeClasses: 'w-full aspect-[5/7]', - sizeProps: { fill: true, sizes: '100%' }, - }; - } -}; - -const BookCover = ({ src, title, size = 'medium' }: BookCoverProps) => { - const [isError, setIsError] = useState(false); - - const { sizeClasses, sizeProps } = getCoverSize(size); - const defaultCoverClass = src ? '' : 'shadow-bookcover'; - - return ( -
- {src && !isError ? ( - {title setIsError(true)} - {...sizeProps} - /> - ) : ( - /** default cover line */ -
- )} -
- ); -}; - -export default BookCover; diff --git a/src/components/book/detail/BookInfo.tsx b/src/components/book/detail/BookInfo.tsx deleted file mode 100644 index d106f0a50..000000000 --- a/src/components/book/detail/BookInfo.tsx +++ /dev/null @@ -1,150 +0,0 @@ -import { APIBook } from '@/types/book'; -import { IconBookmark } from '@public/icons'; -import { useBookInfo } from '@/queries/book/useBookInfoQuery'; -import useBookmarkUserQuery from '@/queries/book/useBookmarkUserQuery'; -import useUpdateBookmarkMutation from '@/queries/book/useUpdateBookmarkMutation'; -import useToast from '@/components/common/Toast/useToast'; -import { checkAuthentication } from '@/utils/helpers'; - -import Avatar, { AvatarGroup } from '@/components/common/Avatar'; -import Skeleton from '@/components/common/Skeleton'; -import BookCover from '@/components/book/BookCover'; - -const BookInfo = ({ bookId }: { bookId: APIBook['bookId'] }) => { - const { data } = useBookInfo(bookId); - const { title, author, imageUrl, summary, bookUrl } = data; - - return ( -
-
- - -
- - - -
-
- - - -
- ); -}; - -export default BookInfo; - -const BookTitle = ({ title }: { title: string }) => ( -

{title}

-); - -const BookAuthor = ({ author }: { author: string }) => ( -

{author}

-); - -const BookmarkButton = ({ bookId }: { bookId: APIBook['bookId'] }) => { - const isAuthenticated = checkAuthentication(); - const { show: showToast } = useToast(); - - const { data } = useBookmarkUserQuery(bookId); - const { isInMyBookshelf } = data; - - const { mutate } = useUpdateBookmarkMutation(bookId); - - const handleButtonClick = () => { - if (!isAuthenticated) { - // TODO: 로그인 유도 모달로 변경 - showToast({ message: '로그인 후에 책을 꽂을 수 있어요' }); - return; - } - - mutate(!isInMyBookshelf); - }; - - return ( - - ); -}; - -const BookSummary = ({ - summary, - bookUrl, -}: { - summary: string; - bookUrl: string; -}) => ( -
-); - -const BookmarkUserInfo = ({ bookId }: { bookId: APIBook['bookId'] }) => { - const { data } = useBookmarkUserQuery(bookId); - const { totalCount, users } = data; - const avatarCount = users.length; - - return ( -
- {avatarCount !== 0 && ( - - {users.map(({ userId, profileImage }) => ( - - - - ))} - - )} -

- {getBookmarkedUserCountText(totalCount, avatarCount)} -

-
- ); -}; - -const getBookmarkedUserCountText = ( - totalCount: number, - avatarCount: number -) => { - const otherCount = totalCount - avatarCount; - - if (otherCount === 0 && totalCount === 0) { - return '아직 이 책을 책장에 꽂은 사람이 없어요.'; - } else if (otherCount === 0) { - return '님이 이 책을 책장에 꽂았어요.'; - } - - return `외 ${otherCount}명이 이 책을 책장에 꽂았어요.`; -}; - -export const BookInfoSkeleton = () => ( - -
-
-
- -
-
- - -
-
-
- - - - -
- -
-
-); diff --git a/src/components/bookArchive/BookArchiveForAuth.tsx b/src/components/bookArchive/BookArchiveForAuth.tsx deleted file mode 100644 index 433624438..000000000 --- a/src/components/bookArchive/BookArchiveForAuth.tsx +++ /dev/null @@ -1,60 +0,0 @@ -'use client'; - -import useAuthRecommendedBooks from '@/queries/recommend/useAuthRecommendedBooks'; -import useAuthRecommendedBookshelf from '@/queries/recommend/useAuthRecommendedBookshelf'; -import { APIJobGroup } from '@/types/job'; -import BookCover from '@/components/book/BookCover'; -import Link from 'next/link'; -import BookShelfCard from '../bookShelf/BookShelfCard'; - -const BookArchiveForAuth = ({ - userJobGroup, -}: { - userJobGroup: APIJobGroup['name']; -}) => { - const { - data: bookshelfData, - isSuccess: bookshelfIsSuccess, - isLoading: bookshelfIsLoading, - } = useAuthRecommendedBookshelf(userJobGroup); - const { - data: booksData, - isSuccess: booksIsSuccess, - isLoading: booksIsLoading, - } = useAuthRecommendedBooks(userJobGroup); - - const isSuccess = bookshelfIsSuccess && booksIsSuccess; - const isLoading = bookshelfIsLoading && booksIsLoading; - - if (isLoading) { - // TODO: 스켈레톤 컴포넌트로 교체 - return null; - } - - if (!isSuccess) return null; - if (!bookshelfData || !booksData) return null; - - return ( -
-

👀 이런 책들이 많이 꽂혔어요

-
    - {booksData.books.map(({ bookId, imageUrl, title }) => ( -
  • - - - - {title} - - -
  • - ))} -
-

🔥 인기 책장

- {...bookshelfData.bookshelfResponses.map(bookShelf => ( - - ))} -
- ); -}; - -export default BookArchiveForAuth; diff --git a/src/components/bookArchive/BookArchiveForUnAuth.tsx b/src/components/bookArchive/BookArchiveForUnAuth.tsx deleted file mode 100644 index 0550cba8c..000000000 --- a/src/components/bookArchive/BookArchiveForUnAuth.tsx +++ /dev/null @@ -1,25 +0,0 @@ -'use client'; - -import useUnAuthRecommendedBookshelfQuery from '@/queries/recommend/useUnAuthRecommendedBookshelfQuery'; -import BookShelfCard from '../bookShelf/BookShelfCard'; - -const BookArchiveForUnAuth = () => { - const { data, isSuccess, isLoading } = useUnAuthRecommendedBookshelfQuery(); - - if (isLoading) { - // TODO: 스켈레톤 컴포넌트로 교체 - return null; - } - if (!isSuccess) return null; - - return ( -
-

🔥 인기 책장

- {...data.bookshelfResponses.map(bookShelf => ( - - ))} -
- ); -}; - -export default BookArchiveForUnAuth; diff --git a/src/components/bookGroup/BookGroupNavigation.tsx b/src/components/bookGroup/BookGroupNavigation.tsx deleted file mode 100644 index ff8ebd2bd..000000000 --- a/src/components/bookGroup/BookGroupNavigation.tsx +++ /dev/null @@ -1,284 +0,0 @@ -import { useRouter } from 'next/navigation'; -import { - Children, - createContext, - isValidElement, - ReactNode, - useContext, - useRef, -} from 'react'; - -import { SERVICE_ERROR_MESSAGE } from '@/constants'; -import { IconArrowLeft, IconPost } from '@public/icons'; -import { isAxiosErrorWithCustomCode } from '@/utils/helpers'; - -import useDisclosure from '@/hooks/useDisclosure'; -import { - useBookGroupJoinInfo, - useBookGroupOwner, - useBookGroupTitle, -} from '@/queries/group/useBookGroupQuery'; -import useCreateBookGroupCommentMutation from '@/queries/group/useCreateBookGroupCommentMutation'; -import useDeleteBookGroupMutation from '@/queries/group/useDeleteBookGroupMutation'; - -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; -import Button from '@/components/common/Button'; -import Menu from '@/components/common/Menu'; -import Modal from '@/components/common/Modal'; -import useToast from '@/components/common/Toast/useToast'; -import TopNavigation from '@/components/common/TopNavigation'; -import CommentDrawer from '@/components/comment/CommentDrawer'; - -const NavigationContext = createContext({} as { groupId: number }); - -const BookGroupNavigation = ({ - groupId, - children, -}: { - groupId: number; - children: ReactNode; -}) => { - return ( - - - - {getTargetChildren(children, BackButton)} - - - }> - {getTargetChildren(children, Title)} - - - - - {getTargetChildren(children, WriteButton)} - {getTargetChildren(children, MenuButton)} - - - - - ); -}; - -type BackButtonProps = - | { - routeOption: 'push'; - href: string; - } - | { - routeOption: 'replace'; - href: string; - } - | { - routeOption?: 'back'; - }; - -const BackButton = (props: BackButtonProps) => { - const { routeOption } = props; - const router = useRouter(); - - const handleClick = () => { - switch (routeOption) { - case 'push': - return router.push(props.href); - case 'replace': - return router.replace(props.href); - case 'back': - return router.back(); - default: - return router.back(); - } - }; - - return ( - - - - ); -}; - -const Title = () => { - const { groupId } = useContext(NavigationContext); - const { data: title } = useBookGroupTitle(groupId); - - return

{title}

; -}; - -const MenuButton = () => { - const { groupId } = useContext(NavigationContext); - const { data: owner } = useBookGroupOwner(groupId); - - const router = useRouter(); - - const deleteBookGroup = useDeleteBookGroupMutation(); - - const { show: showToast } = useToast(); - const { isOpen, onClose, onOpen } = useDisclosure(); - - const handleEditClick = () => { - router.push(`/group/${groupId}/edit`); - return; - }; - - const handleModalConfirm = async () => { - await deleteBookGroup.mutateAsync(groupId, { - onSuccess: () => { - showToast({ type: 'success', message: '모임을 삭제했어요' }); - router.replace('/group'); - }, - onError: error => { - if (isAxiosErrorWithCustomCode(error)) { - const { code } = error.response.data; - const message = SERVICE_ERROR_MESSAGE[code]; - showToast({ type: 'error', message }); - return; - } - - showToast({ type: 'error', message: '잠시 후 다시 시도해주세요' }); - }, - }); - }; - - return ( - <> - {owner.isMe && ( - <> - - - - 수정하기 - 삭제하기 - - - - - )} - - ); -}; - -const WriteButton = () => { - const { groupId } = useContext(NavigationContext); - const { data: joinInfo } = useBookGroupJoinInfo(groupId); - const { isMember } = joinInfo; - - const { show: showToast } = useToast(); - const { isOpen, onOpen, onClose } = useDisclosure(); - - const commentRef = useRef(null); - const createComment = useCreateBookGroupCommentMutation(groupId); - - const handleCommentCreate = () => { - const comment = commentRef.current?.value; - - if (!comment) { - return; - } - - createComment.mutate(comment, { - onSuccess: () => { - onClose(); - showToast({ type: 'success', message: '게시글을 등록했어요 🎉' }); - }, - onError: error => { - if (isAxiosErrorWithCustomCode(error)) { - const { code } = error.response.data; - const message = SERVICE_ERROR_MESSAGE[code]; - showToast({ type: 'error', message }); - return; - } - - showToast({ type: 'error', message: '게시글을 등록하지 못했어요 🥲' }); - }, - }); - }; - - return ( - <> - {isMember && ( - <> - - - - )} - - ); -}; - -BookGroupNavigation.BackButton = BackButton; -BookGroupNavigation.Title = Title; -BookGroupNavigation.MenuButton = MenuButton; -BookGroupNavigation.WriteButton = WriteButton; - -export default BookGroupNavigation; - -const TitleSkeleton = () => ( -
-); - -const DeleteBookGroupModal = ({ - isOpen, - onClose, - onConfirm, -}: { - isOpen: boolean; - onClose: () => void; - onConfirm?: () => void; -}) => { - const handleConfirm = () => { - onConfirm && onConfirm(); - onClose(); - }; - - return ( - -
-

모임을 정말 삭제할까요?

-

- 참여 중인 모임원이 있는 경우, 모임을 삭제할 수 없어요. -

-
-
- - -
-
- ); -}; - -const BackButtonType = ().type; -const TitleType = ().type; -const MenuButtonType = (<MenuButton />).type; -const WriteButtonType = (<WriteButton />).type; - -const getTargetChildren = ( - children: ReactNode, - targetType: - | typeof BackButtonType - | typeof TitleType - | typeof MenuButtonType - | typeof WriteButtonType -) => { - const childrenArray = Children.toArray(children); - - return childrenArray.find( - child => isValidElement(child) && child.type === targetType - ); -}; diff --git a/src/components/bookGroup/BookGroupStatus.tsx b/src/components/bookGroup/BookGroupStatus.tsx deleted file mode 100644 index b181d714c..000000000 --- a/src/components/bookGroup/BookGroupStatus.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import { DdayStatus } from '@/types/dday'; - -import Badge from '@/components/common/Badge'; -import { getDdayCount } from '@/utils/date'; - -const getDdayStatus = (ddayByStart: number, ddayByEnd: number) => { - if (ddayByStart > 0) { - return 'before' as const; - } else if (ddayByStart === 0 && ddayByEnd > 0) { - return 'dday' as const; - } else if (ddayByStart < 0 && ddayByEnd >= 0) { - return 'ongoing' as const; - } else { - return 'end' as const; - } -}; - -const getBadgeProps = (status: DdayStatus, ddayCount: number) => { - switch (status) { - case 'before': - return { - colorScheme: 'main' as const, - isFilled: true, - text: `D-${ddayCount}`, - }; - case 'dday': - return { - colorScheme: 'main' as const, - isFilled: false, - text: 'D-day', - }; - case 'ongoing': - return { - colorScheme: 'main' as const, - isFilled: true, - text: '진행중', - }; - case 'end': - return { - colorScheme: 'grey' as const, - isFilled: true, - text: '모임종료', - }; - } -}; - -const BookGroupStatus = ({ start, end }: { start: string; end: string }) => { - const ddayByStart = getDdayCount(new Date(start)); - const ddayByEnd = getDdayCount(new Date(end)); - const ddayStatus = getDdayStatus(ddayByStart, ddayByEnd); - - const { text, ...badgeProps } = getBadgeProps(ddayStatus, ddayByStart); - - return ( - <Badge fontWeight="bold" {...badgeProps}> - {text} - </Badge> - ); -}; - -export default BookGroupStatus; diff --git a/src/components/bookGroup/BookInfoCard.tsx b/src/components/bookGroup/BookInfoCard.tsx deleted file mode 100644 index 826b184e7..000000000 --- a/src/components/bookGroup/BookInfoCard.tsx +++ /dev/null @@ -1,117 +0,0 @@ -'use client'; - -import { Suspense, useEffect, useState } from 'react'; -import Link from 'next/link'; - -import type { APIBook } from '@/types/book'; -import useBookInfoQuery from '@/queries/book/useBookInfoQuery'; - -import { IconArrowLeft, IconDelete } from '@public/icons'; -import BookCover from '@/components/book/BookCover'; - -const BookInfoCard = ({ - bookId, - removable = false, - onBookIdChange: _onBookIdChange, - onBookRemove, -}: { - bookId?: number; - removable?: boolean; - onBookIdChange?: (id: APIBook['bookId']) => void; - onBookRemove?: () => void; -}) => { - const [id, setId] = useState<typeof bookId | null>(bookId); - - useEffect(() => { - setId(bookId); - }, [bookId]); - - // TODO: 추후 EmptyBookInfoCard 컴포넌트를 쓰게되면 활용 - // const handleBookSelect = () => { - // TODO: 도서 선택 UI 제공 후 선택된 도서로 id 변경 - // setId(23); - // onBookIdChange?.(23); - // }; - - const handleBookInfoRemove = () => { - onBookRemove?.(); - setId(null); - }; - - if (!id) { - return <BookInfoCardSkeleton />; - } - - return ( - <Suspense fallback={<BookInfoCardSkeleton />}> - <BookInfoContent - bookId={id} - removable={removable} - onBookInfoRemove={handleBookInfoRemove} - /> - </Suspense> - ); -}; - -export default BookInfoCard; - -const BookInfoContent = ({ - bookId, - removable = false, - onBookInfoRemove, -}: { - bookId: number; - removable?: boolean; - onBookInfoRemove?: () => void; -}) => { - const { data: bookInfo } = useBookInfoQuery(bookId); - - return ( - <div className="flex min-h-[12.8rem] w-full gap-[2.4rem] rounded-[0.5rem] border-[0.05rem] border-shadow px-[2.2rem] py-[1.8rem]"> - <BookCover size="xsmall" src={bookInfo.imageUrl} title={bookInfo.title} /> - <div className="flex min-w-0 flex-grow flex-col"> - <span className="truncate font-body2-bold">{bookInfo.title}</span> - <span className="text-placeholder font-caption1-regular"> - {bookInfo.author} - </span> - </div> - {removable ? ( - <IconDelete - className="h-[2rem] w-[2rem] flex-shrink-0 cursor-pointer" - onClick={onBookInfoRemove} - /> - ) : ( - <Link href={`/book/${bookId}`} className="cursor-pointer"> - <IconArrowLeft className="h-[1.5rem] w-[1.5rem] flex-shrink-0 rotate-180" /> - </Link> - )} - </div> - ); -}; - -// TODO: 이후 퍼널 Step의 이동 로직이 변경되면 활용될 컴포넌트 -// const EmptyBookInfoCard = ({ onBookSelect }: { onBookSelect?: () => void }) => { -// return ( -// <div -// className="flex min-h-[12.8rem] w-full cursor-pointer flex-col items-center justify-center gap-[1rem] rounded-[0.5rem] border-[0.05rem] border-shadow shadow-bookcard" -// onClick={onBookSelect} -// > -// <IconBookPlus className="h-[2rem] w-[2rem] fill-placeholder" /> -// <p className="font-caption2-regular text-placeholder"> -// 독서모임에 사용할 책을 선택해주세요 -// </p> -// </div> -// ); -// }; - -const BookInfoCardSkeleton = () => { - return ( - <div className="flex min-h-[12.8rem] w-full animate-pulse cursor-pointer items-center gap-[2.4rem] rounded-[0.5rem] border-[0.05rem] border-shadow px-[2.2rem] py-[1.8rem]"> - <div className="h-[9.1rem] w-[6.5rem] rounded-[0.5rem] bg-placeholder"></div> - <div className="mt-[0.3rem] flex flex-col gap-[0.5rem] self-start"> - <div className="h-[1.4rem] w-[10rem] bg-placeholder"></div> - <div className="h-[1.2rem] w-[3rem] bg-placeholder"></div> - </div> - </div> - ); -}; diff --git a/src/components/bookGroup/DetailBookGroupCard.tsx b/src/components/bookGroup/DetailBookGroupCard.tsx deleted file mode 100644 index 4c11a9738..000000000 --- a/src/components/bookGroup/DetailBookGroupCard.tsx +++ /dev/null @@ -1,150 +0,0 @@ -import Link from 'next/link'; - -import { IconCalendar, IconMembers, IconComments } from '@public/icons'; -import BookGroupStatus from '@/components/bookGroup/BookGroupStatus'; -import Badge from '@/components/common/Badge'; -import Avatar from '@/components/common/Avatar'; -import BookCover from '@/components/book/BookCover'; - -interface DetailBookGroupCardProps { - title: string; - description: string; - bookImageSrc: string; - date: { start: string; end: string }; - owner: { name: string; profileImageSrc: string }; - memberCount: number; - commentCount: number; - isPublic: boolean; - bookGroupId: number; -} - -const DetailBookGroupCard = ({ - title, - description, - bookImageSrc, - date, - owner, - memberCount, - commentCount, - isPublic, - bookGroupId, -}: DetailBookGroupCardProps) => { - return ( - <Link href={`/group/${bookGroupId}`}> - <article className="w-full rounded-[0.4rem] p-[1.5rem] shadow-bookgroup-card"> - <div className="flex gap-[0.5rem]"> - <BookGroupStatus start={date.start} end={date.end} /> - <Public isPublic={isPublic} /> - </div> - <div className="flex justify-between gap-[1.5rem] pt-[1rem]"> - <div className="flex min-w-0 flex-grow flex-col justify-between "> - <Title title={title} /> - <Description description={description} /> - <Duration start={date.start} end={date.end} /> - <div className="flex justify-between"> - <Owner - name={owner.name} - profileImageSrc={owner.profileImageSrc} - /> - <div className="flex gap-[0.5rem]"> - <MemberCount memberCount={memberCount} /> - <CommentCount commentCount={commentCount} /> - </div> - </div> - </div> - <BookCover src={bookImageSrc} size="medium" /> - </div> - </article> - </Link> - ); -}; - -export default DetailBookGroupCard; - -const Public = ({ isPublic }: { isPublic: boolean }) => ( - <Badge colorScheme="grey">{isPublic ? '공개' : '비공개'}</Badge> -); - -const Title = ({ title }: { title: string }) => { - return <p className="min-w-0 truncate font-body1-bold">{title}</p>; -}; - -const Description = ({ description }: { description: string }) => { - return <p className="min-w-0 truncate font-body2-regular">{description}</p>; -}; - -const Duration = ({ start, end }: { start: string; end: string }) => { - const formatDateTime = (dateString: string) => - new Intl.DateTimeFormat('ko-KR', { - year: 'numeric', - month: '2-digit', - day: '2-digit', - }).format(new Date(dateString)); - - return ( - <div className="flex items-center gap-[0.5rem]"> - <IconCalendar className="w-[1.2rem] fill-placeholder" /> - <p className="text-placeholder font-caption1-regular"> - {formatDateTime(start)} - {formatDateTime(end)} - </p> - </div> - ); -}; - -const Owner = ({ - name, - profileImageSrc, -}: { - name: string; - profileImageSrc: string; -}) => { - return ( - <div className="flex h-[2rem] gap-[0.5rem]"> - <Avatar name={name} src={profileImageSrc} size="small" /> - <div className="flex items-center font-caption1-regular"> - <p>{name}</p> - </div> - </div> - ); -}; - -const MemberCount = ({ memberCount }: { memberCount: number }) => { - return ( - <div className="flex items-center gap-[0.3rem]"> - <IconMembers className="h-[0.9rem] w-[1.3rem] fill-placeholder" /> - <p className="text-placeholder font-caption1-regular">{memberCount}</p> - </div> - ); -}; - -const CommentCount = ({ commentCount }: { commentCount: number }) => { - return ( - <div className="flex items-center gap-[0.3rem]"> - <IconComments className="h-[1.2rem] w-[1.2rem] fill-placeholder" /> - <p className="text-placeholder font-caption1-regular">{commentCount}</p> - </div> - ); -}; - -export const DetailBookGroupCardSkeleton = () => ( - <div className="w-full animate-pulse rounded-[0.5rem] p-[1.5rem] shadow-bookgroup-card"> - <div className="flex gap-[0.5rem]"> - <div className="h-[1.9rem] w-[4.8rem] rounded-[0.5rem] bg-black-400" /> - <div className="h-[2rem] w-[3.8rem] rounded-[0.5rem] bg-black-400" /> - </div> - <div className="flex justify-between gap-[1.5rem] pt-[1rem]"> - <div className="flex flex-grow flex-col justify-between "> - <div className="h-[2.2rem] w-[65%] bg-black-400" /> - <div className="h-[1.3rem] w-[75%] bg-black-400" /> - <div className="h-[1.3rem] w-[60%] bg-black-400" /> - <div className="flex w-full items-center gap-[0.5rem]"> - <div className="h-[2rem] w-[2rem] rounded-full bg-black-400" /> - <div className="h-[1.3rem] w-[4rem] bg-black-400" /> - <div className="flex-grow" /> - <div className="h-[1.3rem] w-[5rem] bg-black-400" /> - </div> - </div> - <div className="h-[10.5rem] w-[7.5rem] rounded-[0.5rem] bg-black-400"></div> - </div> - </div> -); diff --git a/src/components/bookGroup/SearchGroup.tsx b/src/components/bookGroup/SearchGroup.tsx deleted file mode 100644 index be056cf09..000000000 --- a/src/components/bookGroup/SearchGroup.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { IconSearch } from '@public/icons'; - -interface SearchGroupInputProps { - onClick?: () => void; -} - -const SearchGroupInput = ({ onClick }: SearchGroupInputProps) => { - return ( - <section className="flex"> - <div className="rounded-bl-[0.4rem] rounded-tl-[0.4rem] border-[0.1rem] border-r-[0rem] border-solid border-black-100 bg-white pl-[1rem] pt-[0.8rem]"> - <IconSearch className="fill-placeholder" /> - </div> - <input - id="groupSearching" - className="h-[3.7rem] w-full rounded-br-[0.4rem] rounded-tr-[0.4rem] border-[0.1rem] border-l-[0rem] border-black-100 pl-[2rem] text-[1.4rem] leading-[1.6rem] placeholder:text-placeholder focus:outline-0 disabled:cursor-not-allowed disabled:bg-white" - placeholder="모임을 검색해보세요" - type="text" - onClick={onClick} - readOnly - /> - </section> - ); -}; - -export default SearchGroupInput; diff --git a/src/components/bookGroup/SimpleBookGroupCard.tsx b/src/components/bookGroup/SimpleBookGroupCard.tsx deleted file mode 100644 index 5f2f1e7f4..000000000 --- a/src/components/bookGroup/SimpleBookGroupCard.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import Link from 'next/link'; -import BookCover from '../book/BookCover'; - -interface SimpleBookGroupCardProps { - title: string; - isOwner: boolean; - imageSource: string; - bookGroupId: number; -} - -const SimpleBookGroupCard = ({ - title, - isOwner, - imageSource, - bookGroupId, -}: SimpleBookGroupCardProps) => { - return ( - <Link href={`/group/${bookGroupId}`}> - <article className="flex w-[10rem] flex-col gap-[1rem]"> - <div className="bg-main-300 px-[1.8rem] py-[1.6rem]"> - <BookCover size="xsmall" src={imageSource} /> - </div> - <p className="break-keep text-center !leading-tight font-caption1-regular"> - {isOwner ? `👑 ${title}` : title} - </p> - </article> - </Link> - ); -}; - -export default SimpleBookGroupCard; - -export const SimpleBookGroupCardSkeleton = () => ( - <div className="flex animate-pulse flex-col gap-[1rem]"> - <div className="h-[12.3rem] w-[10rem] rounded-[0.5rem] bg-black-400" /> - <div className="h-[1.3rem] w-[5rem] self-center bg-black-400" /> - </div> -); diff --git a/src/components/bookGroup/create/CreateBookGroupFunnel.tsx b/src/components/bookGroup/create/CreateBookGroupFunnel.tsx deleted file mode 100644 index fa14f2e5a..000000000 --- a/src/components/bookGroup/create/CreateBookGroupFunnel.tsx +++ /dev/null @@ -1,160 +0,0 @@ -'use client'; - -import { useRouter } from 'next/navigation'; -import { FormProvider, SubmitHandler, useForm } from 'react-hook-form'; - -import type { CreateBookGroupFormValues } from '@/components/bookGroup/create/types'; -import useCreateBookGroupMutation from '@/queries/group/useCreateBookGroupMutation'; - -import { useFunnel } from '@/hooks/useFunnel'; -import useToast from '@/components/common/Toast/useToast'; -import { getTodayDate } from '@/utils/date'; -import { isAxiosErrorWithCustomCode } from '@/utils/helpers'; -import { SERVICE_ERROR_MESSAGE } from '@/constants'; - -import { IconArrowLeft } from '@public/icons'; -import TopNavigation from '@/components/common/TopNavigation'; -import Stepper from '@/components/common/Stepper'; -import { - EnterTitleStep, - SelectBookStep, - SelectJoinTypeStep, - SetUpDetailStep, -} from '@/components/bookGroup/create/steps'; - -const FUNNEL_STEPS = [ - 'SelectBook', - 'EnterTitle', - 'SetUpDetail', - 'SelectJoinType', -] as const; - -const steps = [ - { label: '도서선택' }, - { label: '모임이름' }, - { label: '모임정보' }, - { label: '가입유형' }, -]; - -const CreateBookGroupFunnel = () => { - const router = useRouter(); - const [Funnel, setStep, currentStep] = useFunnel(FUNNEL_STEPS, { - initialStep: 'SelectBook', - }); - const stepIndex = FUNNEL_STEPS.indexOf(currentStep); - const activeStep = stepIndex !== -1 ? stepIndex : 0; - - const { show: showToast } = useToast(); - const { mutate } = useCreateBookGroupMutation(); - - const methods = useForm<CreateBookGroupFormValues>({ - mode: 'all', - defaultValues: { - title: '', - maxMemberCount: 9999, - startDate: getTodayDate(), - isPublic: false, - hasJoinPassword: 'false', - }, - }); - - const handleBackButtonClick = () => { - const currentStepIndex = FUNNEL_STEPS.indexOf(currentStep); - - if (currentStepIndex === 0 || currentStepIndex === -1) { - router.back(); - } else { - setStep(FUNNEL_STEPS[currentStepIndex - 1]); - } - - return; - }; - - const handleCreateGroupSubmit: SubmitHandler< - CreateBookGroupFormValues - > = formValues => { - const requestBody = { - bookId: formValues.book.bookId, - title: formValues.title, - introduce: formValues.introduce, - maxMemberCount: - formValues.maxMemberCount !== 'custom' - ? formValues.maxMemberCount - : formValues.customMemberCount, - startDate: formValues.startDate, - endDate: formValues.endDate, - isPublic: formValues.isPublic, - hasJoinPasswd: formValues.hasJoinPassword === 'true' ? true : false, - joinQuestion: formValues.joinQuestion, - joinPasswd: formValues.joinPassword, - }; - - mutate(requestBody, { - onSuccess: data => { - router.replace(`/group/${data.bookGroupId}`); - showToast({ type: 'success', message: '독서모임을 생성했어요! 🎉' }); - - return; - }, - onError: error => { - if (isAxiosErrorWithCustomCode(error)) { - const { code } = error.response.data; - const message = SERVICE_ERROR_MESSAGE[code]; - - showToast({ type: 'error', message }); - - return; - } - - showToast({ - type: 'error', - message: '독서 모임을 생성하지 못했어요 🥲', - }); - }, - }); - }; - - return ( - <FormProvider {...methods}> - <TopNavigation> - <TopNavigation.LeftItem> - <IconArrowLeft onClick={handleBackButtonClick} /> - </TopNavigation.LeftItem> - </TopNavigation> - - <div className="sticky top-[5.4rem] z-10 -ml-[2rem] w-[calc(100%+4rem)] bg-white px-[2rem] pb-[3rem] pt-[1rem]"> - <div className="relative left-1/2 w-[98%] -translate-x-1/2 "> - <Stepper activeIndex={activeStep}> - {steps.map(({ label }, idx) => { - return <Stepper.Step key={idx} label={label} />; - })} - </Stepper> - </div> - </div> - - <form> - <Funnel> - <Funnel.Step name="SelectBook"> - <SelectBookStep onNextStep={() => setStep('EnterTitle')} /> - </Funnel.Step> - <Funnel.Step name="EnterTitle"> - <EnterTitleStep onNextStep={() => setStep('SetUpDetail')} /> - </Funnel.Step> - <Funnel.Step name="SetUpDetail"> - <SetUpDetailStep - goToSelectBookStep={() => setStep('SelectBook')} - onNextStep={() => setStep('SelectJoinType')} - /> - </Funnel.Step> - <Funnel.Step name="SelectJoinType"> - <SelectJoinTypeStep - onSubmit={methods.handleSubmit(handleCreateGroupSubmit)} - /> - </Funnel.Step> - </Funnel> - </form> - </FormProvider> - ); -}; - -export default CreateBookGroupFunnel; diff --git a/src/components/bookGroup/create/steps/EnterTitleStep/EnterTitleStep.tsx b/src/components/bookGroup/create/steps/EnterTitleStep/EnterTitleStep.tsx deleted file mode 100644 index 532808b5b..000000000 --- a/src/components/bookGroup/create/steps/EnterTitleStep/EnterTitleStep.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { useFormContext } from 'react-hook-form'; - -import type { MoveFunnelStepProps } from '@/components/common/Funnel'; -import type { EnterTitleStepFormValues } from '@/components/bookGroup/create/types'; - -import useRemoveVerticalScroll from '@/hooks/useRemoveVerticalScroll'; - -import { TitleField } from '@/components/bookGroup/create/steps/EnterTitleStep/fields'; -import BottomActionButton from '@/components/common/BottomActionButton'; - -const EnterTitleStep = ({ onNextStep }: MoveFunnelStepProps) => { - const { - handleSubmit, - formState: { isValid }, - } = useFormContext<EnterTitleStepFormValues>(); - - useRemoveVerticalScroll(); - - return ( - <article> - <section className="flex flex-col gap-[1.5rem]"> - <h2 className="text-black-700 font-subheading-bold"> - 독서모임 이름을 적어주세요 - </h2> - <TitleField name="title" /> - </section> - - <BottomActionButton - type="submit" - disabled={!isValid} - onClick={handleSubmit(() => onNextStep?.())} - > - 다음 - </BottomActionButton> - </article> - ); -}; - -export default EnterTitleStep; diff --git a/src/components/bookGroup/create/steps/EnterTitleStep/fields/TitleField.tsx b/src/components/bookGroup/create/steps/EnterTitleStep/fields/TitleField.tsx deleted file mode 100644 index 1aa594f70..000000000 --- a/src/components/bookGroup/create/steps/EnterTitleStep/fields/TitleField.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { useFormContext, useWatch } from 'react-hook-form'; - -import type { EnterTitleStepFormValues } from '../../../types'; - -import ErrorMessage from '@/components/common/ErrorMessage'; -import Input from '@/components/common/Input'; -import InputLength from '@/components/common/InputLength'; - -type DefaultFieldNameProps = { - name: keyof EnterTitleStepFormValues; -}; - -const TitleField = ({ name }: DefaultFieldNameProps) => { - const { - register, - control, - formState: { errors }, - } = useFormContext<EnterTitleStepFormValues>(); - - const titleValue = useWatch({ control, name: name }); - const titleErrors = errors[name]; - - return ( - <label htmlFor={name} className="flex flex-col gap-[0.5rem]"> - <Input - id={name} - placeholder="독서모임을 잘 표현할 수 있는 이름이면 좋아요." - error={!!titleErrors} - {...register(name, { - required: '독서모임 이름을 작성해 주세요', - minLength: { value: 2, message: '2글자 이상 입력해주세요' }, - maxLength: { value: 20, message: '20글자 이하로 입력해주세요' }, - })} - /> - <div className="flex flex-row-reverse justify-between"> - <InputLength - currentLength={titleValue.length} - isError={!!titleErrors} - maxLength={20} - /> - <ErrorMessage>{titleErrors?.message}</ErrorMessage> - </div> - </label> - ); -}; - -export default TitleField; diff --git a/src/components/bookGroup/create/steps/EnterTitleStep/fields/index.ts b/src/components/bookGroup/create/steps/EnterTitleStep/fields/index.ts deleted file mode 100644 index e25dc05fd..000000000 --- a/src/components/bookGroup/create/steps/EnterTitleStep/fields/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TitleField } from './TitleField'; diff --git a/src/components/bookGroup/create/steps/SelectBookStep/SelectBookStep.tsx b/src/components/bookGroup/create/steps/SelectBookStep/SelectBookStep.tsx deleted file mode 100644 index 1181e5161..000000000 --- a/src/components/bookGroup/create/steps/SelectBookStep/SelectBookStep.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import { ComponentPropsWithoutRef, Suspense, useEffect, useState } from 'react'; -import { Controller, useFormContext } from 'react-hook-form'; -import { useInView } from 'react-intersection-observer'; - -import type { MoveFunnelStepProps } from '@/components/common/Funnel'; -import type { SelectBookStepFormValues } from '../../types'; - -import useBookSearchQuery from '@/queries/book/useBookSearchQuery'; -import debounce from '@/utils/debounce'; - -import Input from '@/components/common/Input'; -import Loading from '@/components/common/Loading'; -import BookSearchList from '@/components/bookSearch/BookSearchList'; - -const SelectBookStep = ({ onNextStep }: MoveFunnelStepProps) => { - const { control, getValues, setValue } = - useFormContext<SelectBookStepFormValues>(); - - const keywordValue = getValues('queryKeyword'); - const [keyword, setKeyword] = useState(keywordValue || ''); - const debouncedSetKeyword = debounce(setKeyword, 500); - - const handleEnterKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => { - if (e.code === 'Enter') e.preventDefault(); - - return; - }; - - return ( - <article className="relative flex w-full flex-col gap-[1rem]"> - <h2 className="font-subheading-bold"> - 어떤 책으로 독서모임을 시작할까요? - </h2> - - <Input - placeholder="책 제목, 작가를 검색해보세요" - inputStyle="line" - leftIconType="search" - className="mb-[1rem]" - defaultValue={keyword} - onChange={event => debouncedSetKeyword(event.target.value)} - onKeyDown={handleEnterKeyDown} - /> - - <Suspense fallback={<Loading fullpage />}> - <Controller - name="book" - control={control} - render={({ field: { onChange } }) => ( - <BookSearchResult - queryKeyword={keyword} - onBookClick={book => { - // update 'book' value in hook form - onChange(book); - // update 'queryKeyword' value in hook form - setValue('queryKeyword', keyword); - onNextStep && onNextStep(); - }} - /> - )} - /> - </Suspense> - </article> - ); -}; - -export default SelectBookStep; - -// TODO: 도서 검색 페이지 컴포넌트와 공유할 수 있도록 분리 -const BookSearchResult = ({ - queryKeyword, - onBookClick, -}: { - queryKeyword: string; - onBookClick?: ComponentPropsWithoutRef<typeof BookSearchList>['onBookClick']; -}) => { - const { ref: inViewRef, inView } = useInView(); - - const bookSearchInfo = useBookSearchQuery({ - query: queryKeyword, - page: 1, - pageSize: 12, - }); - - const searchedBooks = bookSearchInfo.isSuccess - ? bookSearchInfo.data.pages.flatMap(page => page.searchBookResponseList) - : []; - const totalResultCount = bookSearchInfo.isSuccess - ? bookSearchInfo.data.pages[0].totalCount - : 0; - - useEffect(() => { - if (inView && bookSearchInfo.hasNextPage) { - bookSearchInfo.fetchNextPage(); - } - }, [ - bookSearchInfo.fetchNextPage, - inView, - bookSearchInfo.hasNextPage, - queryKeyword, - bookSearchInfo, - ]); - - // queryKeyword가 빈 값인 경우 검색되지 않으므로 null 반환 - if (!queryKeyword) { - return null; - } - - return ( - <section> - <BookSearchList - books={searchedBooks} - totalCount={totalResultCount} - onBookClick={onBookClick} - /> - <div ref={inViewRef} /> - </section> - ); -}; diff --git a/src/components/bookGroup/create/steps/SelectJoinTypeStep/SelectJoinTypeStep.tsx b/src/components/bookGroup/create/steps/SelectJoinTypeStep/SelectJoinTypeStep.tsx deleted file mode 100644 index 4ef50567d..000000000 --- a/src/components/bookGroup/create/steps/SelectJoinTypeStep/SelectJoinTypeStep.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { useFormContext } from 'react-hook-form'; - -import type { MoveFunnelStepProps } from '@/components/common/Funnel'; -import type { SelectJoinTypeStepFormValues } from '@/components/bookGroup/create/types'; - -import { - JoinPasswordFieldset, - JoinTypeFieldset, -} from '@/components/bookGroup/create/steps/SelectJoinTypeStep/fields'; -import BottomActionButton from '@/components/common/BottomActionButton'; - -export type JoinTypeStepFieldName = keyof SelectJoinTypeStepFormValues; -export type JoinTypeStepFieldProp = { name: JoinTypeStepFieldName }; - -const SelectJoinTypeStep = ({ onSubmit }: MoveFunnelStepProps) => { - const { - handleSubmit, - formState: { isValid }, - } = useFormContext<SelectJoinTypeStepFormValues>(); - - return ( - <article className="pb-action-button"> - <h2 className="mb-[3rem] font-subheading-bold"> - 가입은 어떻게 받을까요? - </h2> - - <section className="flex flex-col gap-[2rem]"> - <JoinTypeFieldset> - <JoinTypeFieldset.RadioCardField name="hasJoinPassword" /> - </JoinTypeFieldset> - - <JoinPasswordFieldset joinTypeFieldName="hasJoinPassword"> - <JoinPasswordFieldset.QuestionField name="joinQuestion" /> - <JoinPasswordFieldset.AnswerField name="joinPassword" /> - </JoinPasswordFieldset> - </section> - - <BottomActionButton - type="submit" - disabled={!isValid} - onClick={onSubmit && handleSubmit(onSubmit)} - > - 독서모임 만들기 - </BottomActionButton> - </article> - ); -}; - -export default SelectJoinTypeStep; diff --git a/src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinPasswordFieldset.tsx b/src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinPasswordFieldset.tsx deleted file mode 100644 index 224965cda..000000000 --- a/src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinPasswordFieldset.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import { PropsWithChildren } from 'react'; -import { useFormContext, useWatch } from 'react-hook-form'; - -import type { SelectJoinTypeStepFormValues } from '../../../types'; -import type { - JoinTypeStepFieldName, - JoinTypeStepFieldProp, -} from '../SelectJoinTypeStep'; - -import ErrorMessage from '@/components/common/ErrorMessage'; -import Input from '@/components/common/Input'; -import InputLength from '@/components/common/InputLength'; -import withScrollLockOnFocus from '@/hocs/withScrollLockOnFocus'; - -type JoinPasswordFieldsetProps = { - joinTypeFieldName: JoinTypeStepFieldName; -}; - -const JoinPasswordFieldset = ({ - joinTypeFieldName, - children, -}: PropsWithChildren<JoinPasswordFieldsetProps>) => { - const { control } = useFormContext<SelectJoinTypeStepFormValues>(); - const hasJoinPassword = useWatch({ control, name: joinTypeFieldName }); - - const shouldRender = hasJoinPassword === 'true'; - - return ( - <> - {shouldRender && ( - <fieldset className="flex flex-col gap-[1.5rem]">{children}</fieldset> - )} - </> - ); -}; - -const ScrollLockInput = withScrollLockOnFocus(Input); - -const JoinQuestionField = ({ name }: JoinTypeStepFieldProp) => { - const { - register, - control, - formState: { errors }, - } = useFormContext<SelectJoinTypeStepFormValues>(); - - const joinQuestion = useWatch({ control, name }); - - const questionLength = joinQuestion?.length; - const error = errors[name]; - - return ( - <label className="flex flex-col gap-[0.5rem]"> - <p>가입 문제</p> - <ScrollLockInput - placeholder="모임에 가입하기 위한 적절한 문제를 작성해주세요" - {...register(name, { - required: '1 ~ 30글자의 가입 문제가 필요해요', - maxLength: { - value: 30, - message: '1 ~ 30글자의 가입 문제를 작성해주세요', - }, - })} - error={!!error} - /> - <div className="flex flex-row-reverse justify-between"> - <InputLength - currentLength={questionLength} - isError={!!error} - maxLength={30} - /> - <ErrorMessage>{error?.message}</ErrorMessage> - </div> - </label> - ); -}; - -const JoinAnswerField = ({ name }: JoinTypeStepFieldProp) => { - const { - register, - control, - formState: { errors }, - } = useFormContext<SelectJoinTypeStepFormValues>(); - - const joinPasswd = useWatch({ control, name }); - - const passwordLength = joinPasswd?.length; - const error = errors[name]; - - return ( - <label className="flex flex-col gap-[0.5rem]"> - <p>정답</p> - <ScrollLockInput - placeholder="띄어쓰기 없이 정답을 작성해주세요" - {...register(name, { - required: '띄어쓰기 없이 10글자 이하의 정답이 필요해요', - maxLength: { - value: 10, - message: '띄어쓰기 없이 10글자 이하의 정답을 작성해주세요,', - }, - pattern: { - value: /^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]+$/, - message: '띄어쓰기 없이 한글, 영어, 숫자만 입력할 수 있어요', - }, - })} - error={!!error} - /> - <div className="flex flex-row-reverse justify-between"> - <InputLength - currentLength={passwordLength} - isError={!!error} - maxLength={10} - /> - <ErrorMessage>{error?.message}</ErrorMessage> - </div> - </label> - ); -}; - -JoinPasswordFieldset.QuestionField = JoinQuestionField; -JoinPasswordFieldset.AnswerField = JoinAnswerField; - -export default JoinPasswordFieldset; diff --git a/src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinTypeFieldset.tsx b/src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinTypeFieldset.tsx deleted file mode 100644 index 10f189500..000000000 --- a/src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinTypeFieldset.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { useFormContext } from 'react-hook-form'; - -import type { SelectJoinTypeStepFormValues } from '@/components/bookGroup/create/types'; -import type { JoinTypeStepFieldProp } from '@/components/bookGroup/create/steps/SelectJoinTypeStep/SelectJoinTypeStep'; - -import JoinTypeRadioCard from '@/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinTypeRadioCard'; - -const JoinTypeFieldset = ({ children }: { children?: React.ReactNode }) => { - return <fieldset className="flex flex-col gap-[1rem]">{children}</fieldset>; -}; - -const RadioCardField = ({ name }: JoinTypeStepFieldProp) => { - const { register } = useFormContext<SelectJoinTypeStepFormValues>(); - - return ( - <> - <JoinTypeRadioCard - {...register(name)} - id="no-password" - value="false" - label="문제 없이 가입할 수 있어요" - /> - <JoinTypeRadioCard - {...register(name)} - id="has-password" - value="true" - label="문제를 맞춰야 모임에 가입할 수 있어요" - /> - </> - ); -}; - -JoinTypeFieldset.RadioCardField = RadioCardField; - -export default JoinTypeFieldset; diff --git a/src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinTypeRadioCard.tsx b/src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinTypeRadioCard.tsx deleted file mode 100644 index ac4534c4a..000000000 --- a/src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/JoinTypeRadioCard.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { forwardRef, InputHTMLAttributes, Ref } from 'react'; - -const BASE_CLASSES = - 'flex h-[8rem] w-full cursor-pointer items-center justify-between rounded-[0.5rem] border-[0.1rem] bg-white px-[2.5rem] text-black-600 font-body1-regular'; - -const JoinTypeRadioCard = ( - { - id, - value, - label, - ...props - }: Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'type'> & { - label?: string; - }, - ref: Ref<HTMLInputElement> -) => { - const inputId = id || 'radio-card'; - - return ( - <div> - <input - type="radio" - id={inputId} - value={value} - className="peer hidden" - ref={ref} - {...props} - /> - <label - className={`${BASE_CLASSES} after:h-[2.4rem] peer-checked:border-main-900 peer-checked:bg-main-900/[0.05] peer-checked:text-main-brighter peer-checked:after:content-check`} - htmlFor={inputId} - > - <p>{label}</p> - </label> - </div> - ); -}; - -export default forwardRef(JoinTypeRadioCard); diff --git a/src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/index.ts b/src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/index.ts deleted file mode 100644 index 339224b1a..000000000 --- a/src/components/bookGroup/create/steps/SelectJoinTypeStep/fields/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as JoinTypeFieldset } from './JoinTypeFieldset'; -export { default as JoinPasswordFieldset } from './JoinPasswordFieldset'; diff --git a/src/components/bookGroup/create/steps/SetUpDetailStep/SetUpDetailStep.tsx b/src/components/bookGroup/create/steps/SetUpDetailStep/SetUpDetailStep.tsx deleted file mode 100644 index d0f08a6ed..000000000 --- a/src/components/bookGroup/create/steps/SetUpDetailStep/SetUpDetailStep.tsx +++ /dev/null @@ -1,321 +0,0 @@ -import { useFormContext, useWatch } from 'react-hook-form'; - -import type { MoveFunnelStepProps } from '@/components/common/Funnel'; -import type { SetUpDetailStepFormValues } from '../../types'; - -import { MAX_MEMBER_COUNT_OPTIONS } from '@/constants'; -import { getTodayDate } from '@/utils/date'; - -import withScrollLockOnFocus from '@/hocs/withScrollLockOnFocus'; -import BottomActionButton from '@/components/common/BottomActionButton'; -import DatePicker from '@/components/common/DatePicker'; -import ErrorMessage from '@/components/common/ErrorMessage'; -import Input from '@/components/common/Input'; -import InputLength from '@/components/common/InputLength'; -import RadioButton from '@/components/common/RadioButton'; -import Switch from '@/components/common/Switch'; -import TextArea from '@/components/common/TextArea'; -import BookInfoCard from '@/components/bookGroup/BookInfoCard'; - -interface SetUpDetailStepProps extends MoveFunnelStepProps { - goToSelectBookStep?: () => void; -} - -/** - * @todo - * Field 컴포넌트 분리 - */ - -const SetUpDetailStep = ({ - goToSelectBookStep, - onNextStep, -}: SetUpDetailStepProps) => { - const { - handleSubmit, - getValues, - formState: { isValid }, - } = useFormContext<SetUpDetailStepFormValues>(); - - return ( - <article className="pb-action-button flex flex-col gap-[2.5rem] overflow-y-scroll"> - <h2 className="font-subheading-bold">모임 정보를 설정해주세요</h2> - <TitleField name={'title'} /> - <SelectedBookInfoField - bookId={getValues('book.bookId')} - onRemoveButtonClick={goToSelectBookStep} - /> - <IntroduceField name={'introduce'} /> - - <section className="flex flex-col gap-[1.5rem] pb-[1rem]"> - <MaxMemberCountField name={'maxMemberCount'} /> - <CustomMemberCountField name={'customMemberCount'} /> - </section> - - <PickStartDateField name={'startDate'} /> - <PickEndDateField name={'endDate'} /> - - <SwitchIsPublicField name={'isPublic'} /> - - <BottomActionButton - type="submit" - disabled={!isValid} - onClick={handleSubmit(() => onNextStep?.())} - > - 다음 - </BottomActionButton> - </article> - ); -}; - -export default SetUpDetailStep; - -type SetUpDetailFieldProps = { - name: keyof SetUpDetailStepFormValues; -}; - -const ScrollLockInput = withScrollLockOnFocus(Input); - -const TitleField = ({ name }: SetUpDetailFieldProps) => { - const { - register, - control, - formState: { errors }, - } = useFormContext<SetUpDetailStepFormValues>(); - - const titleValue = useWatch({ control, name: name }); - const titleValueLength = - typeof titleValue === 'string' ? titleValue.length : 0; - const titleErrors = errors[name]; - - return ( - <section className="flex flex-col gap-[0.5rem]"> - <ScrollLockInput - fontSize="large" - inputStyle="line" - error={!!titleErrors} - {...register(name, { - required: '독서모임 이름을 적어주세요', - minLength: { value: 2, message: '2글자 이상 입력해주세요' }, - maxLength: { value: 20, message: '20글자 이하로 입력해주세요' }, - })} - /> - <div className="flex flex-row-reverse justify-between gap-[0.4rem]"> - <InputLength - currentLength={titleValueLength} - maxLength={20} - isError={!!titleErrors} - /> - <ErrorMessage>{titleErrors?.message}</ErrorMessage> - </div> - </section> - ); -}; - -const SelectedBookInfoField = ({ - bookId, - onRemoveButtonClick, -}: { - bookId?: number; - onRemoveButtonClick?: () => void; -}) => { - const { reset } = useFormContext<SetUpDetailStepFormValues>(); - - const handleBookRemove = () => { - onRemoveButtonClick?.(); - reset({ book: undefined }); - - return; - }; - - return ( - <section> - <BookInfoCard - bookId={bookId} - onBookRemove={handleBookRemove} - removable={true} - /> - </section> - ); -}; - -const ScrollLockTextArea = withScrollLockOnFocus(TextArea); - -const IntroduceField = ({ name }: SetUpDetailFieldProps) => { - const { - register, - formState: { errors }, - } = useFormContext<SetUpDetailStepFormValues>(); - - const introduceErrors = errors[name]; - - return ( - <section className="flex flex-col gap-[1.2rem]"> - <h2>활동 내용</h2> - <ScrollLockTextArea - count={true} - error={!!introduceErrors} - placeholder="독서모임에서 어떤 활동을 할 계획인지 자세히 설명해주세요" - {...register(name, { - required: '독서모임에 대한 설명을 적어주세요', - minLength: { value: 10, message: '10글자 이상 입력해주세요' }, - maxLength: { value: 500, message: '500자 이하로 입력해주세요' }, - })} - > - <ErrorMessage>{introduceErrors?.message}</ErrorMessage> - </ScrollLockTextArea> - </section> - ); -}; - -const MaxMemberCountField = ({ name }: SetUpDetailFieldProps) => { - const { - register, - formState: { errors }, - } = useFormContext<SetUpDetailStepFormValues>(); - - const maxMemberCountErrors = errors[name]; - - return ( - <> - <h2>최대 인원</h2> - <fieldset className="inline-flex w-[80%] flex-wrap gap-[1.2rem]"> - {MAX_MEMBER_COUNT_OPTIONS.map(option => ( - <RadioButton - key={option.value} - value={option.value} - label={option.label} - {...register(name, { - required: '모임 최대 인원을 선택해 주세요', - })} - /> - ))} - </fieldset> - <ErrorMessage>{maxMemberCountErrors?.message}</ErrorMessage> - </> - ); -}; - -const CustomMemberCountField = ({ name }: SetUpDetailFieldProps) => { - const { - register, - control, - formState: { errors }, - } = useFormContext<SetUpDetailStepFormValues>(); - - const maxMemberCount = useWatch({ control, name: 'maxMemberCount' }); - const isCustomInputCount = maxMemberCount === 'custom'; - const customMemberCountErrors = errors[name]; - - return ( - <> - {isCustomInputCount && ( - <div className="flex flex-col gap-[0.5rem]"> - <Input - type="number" - min={0} - placeholder="최대인원을 입력해주세요" - className="after:content-['명']" - error={!!customMemberCountErrors} - {...register(name, { - required: { - value: isCustomInputCount, - message: '모임 최대 인원을 입력해주세요', - }, - min: { value: 2, message: '모임 인원은 최소 2명부터 가능해요' }, - max: { - value: 1000, - message: '1000명 이상의 인원은 제한 없음을 선택해주세요', - }, - })} - /> - <ErrorMessage>{customMemberCountErrors?.message}</ErrorMessage> - </div> - )} - </> - ); -}; - -const PickStartDateField = ({ name }: SetUpDetailFieldProps) => { - const { - register, - control, - formState: { errors }, - } = useFormContext<SetUpDetailStepFormValues>(); - - const startDateErrors = errors[name]; - const endDate = useWatch({ control, name: 'endDate' }); - const todayDate = getTodayDate(); - - return ( - <section className="flex flex-col gap-[0.5rem]"> - <div className="flex items-center justify-between"> - <h2>모임 시작일</h2> - <DatePicker - {...register(name, { - required: '모임 시작일을 선택해주세요', - min: { - value: todayDate, - message: '모임 시작일은 오늘 혹은 그 이후로 선택해주세요', - }, - max: { - value: endDate, - message: '모임 시작일은 종료일 보다 빨라야해요', - }, - })} - /> - </div> - <ErrorMessage>{startDateErrors?.message}</ErrorMessage> - </section> - ); -}; - -const PickEndDateField = ({ name }: SetUpDetailFieldProps) => { - const { - register, - control, - formState: { errors }, - } = useFormContext<SetUpDetailStepFormValues>(); - - const startDate = useWatch({ control, name: 'startDate' }); - const todayDate = getTodayDate(); - - const endDateErrors = errors[name]; - - return ( - <section className="flex flex-col gap-[0.5rem]"> - <div className="flex items-center justify-between"> - <h2>모임 종료일</h2> - <DatePicker - {...register(name, { - required: '모임 종료일을 선택해주세요', - min: { - value: startDate || todayDate, - message: '모임 종료일은 시작일과 오늘 이후여야 해요', - }, - })} - /> - </div> - <ErrorMessage>{endDateErrors?.message}</ErrorMessage> - </section> - ); -}; - -const SwitchIsPublicField = ({ name }: SetUpDetailFieldProps) => { - const { register, control } = useFormContext<SetUpDetailStepFormValues>(); - - const isCommentPublic = useWatch({ control, name }); - - return ( - <section className="flex items-center justify-between"> - <div className="flex min-w-0 flex-col gap-[0.3rem]"> - <h2>댓글 공개 여부</h2> - <p className="text-placeholder font-caption1-regular"> - {isCommentPublic - ? '모임에 가입하지 않아도 댓글을 볼 수 있어요' - : '모임에 가입해야 댓글을 볼 수 있어요'} - </p> - </div> - <Switch {...register(name)} /> - </section> - ); -}; diff --git a/src/components/bookGroup/create/steps/index.ts b/src/components/bookGroup/create/steps/index.ts deleted file mode 100644 index 2b06facc9..000000000 --- a/src/components/bookGroup/create/steps/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { default as EnterTitleStep } from './EnterTitleStep/EnterTitleStep'; -export { default as SelectBookStep } from './SelectBookStep/SelectBookStep'; -export { default as SelectJoinTypeStep } from './SelectJoinTypeStep/SelectJoinTypeStep'; -export { default as SetUpDetailStep } from './SetUpDetailStep/SetUpDetailStep'; diff --git a/src/components/bookGroup/create/types.ts b/src/components/bookGroup/create/types.ts deleted file mode 100644 index a42f16fd8..000000000 --- a/src/components/bookGroup/create/types.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { SearchedBookWithId } from '@/types/book'; - -export type CreateBookGroupFormValues = { - book: SearchedBookWithId; - queryKeyword: string; - title: string; - introduce: string; - maxMemberCount: 9999 | 50 | 100 | 200 | 500 | 'custom'; - customMemberCount: number; - startDate: string; - endDate: string; - isPublic: boolean; - hasJoinPassword: 'true' | 'false'; - joinQuestion: string; - joinPassword: string; -}; - -export type SelectBookStepFormValues = Pick< - CreateBookGroupFormValues, - 'book' | 'queryKeyword' ->; - -export type EnterTitleStepFormValues = Pick<CreateBookGroupFormValues, 'title'>; - -export type SetUpDetailStepFormValues = Pick< - CreateBookGroupFormValues, - | 'book' - | 'title' - | 'introduce' - | 'maxMemberCount' - | 'customMemberCount' - | 'startDate' - | 'endDate' - | 'isPublic' ->; - -export type SelectJoinTypeStepFormValues = Pick< - CreateBookGroupFormValues, - 'hasJoinPassword' | 'joinQuestion' | 'joinPassword' ->; diff --git a/src/components/bookGroup/detail/BookGroupInfo.tsx b/src/components/bookGroup/detail/BookGroupInfo.tsx deleted file mode 100644 index 30ffe46c5..000000000 --- a/src/components/bookGroup/detail/BookGroupInfo.tsx +++ /dev/null @@ -1,105 +0,0 @@ -import { IconCalendar, IconMembers } from '@public/icons'; -import Badge from '@/components/common/Badge'; -import Avatar from '@/components/common/Avatar'; -import BookGroupStatus from '@/components/bookGroup/BookGroupStatus'; -import BookInfoCard from '@/components/bookGroup/BookInfoCard'; - -import { useBookGroup } from '@/queries/group/useBookGroupQuery'; -import useUserProfileQuery from '@/queries/user/useUserProfileQuery'; - -const BookGroupInfo = ({ groupId }: { groupId: number }) => { - const { data: bookGroupInfo } = useBookGroup(groupId); - - return ( - <div className="flex flex-col gap-[1rem] pt-[2rem]"> - <div className="flex gap-[0.5rem]"> - <BookGroupStatus - start={bookGroupInfo.date.start} - end={bookGroupInfo.date.end} - /> - <Public isPublic={bookGroupInfo.isPublic} /> - </div> - <Owner userId={bookGroupInfo.owner.id} isMe={bookGroupInfo.owner.isMe} /> - <Title title={bookGroupInfo.title} /> - <BookInfoCard bookId={bookGroupInfo.bookId} /> - <div className="flex flex-col gap-[0.3rem]"> - <Duration - start={bookGroupInfo.date.start} - end={bookGroupInfo.date.end} - /> - <MemberCapacity - current={bookGroupInfo.memberCount.current} - max={bookGroupInfo.memberCount.max} - /> - </div> - <Description content={bookGroupInfo.description} /> - </div> - ); -}; - -export default BookGroupInfo; - -const Public = ({ isPublic }: { isPublic: boolean }) => ( - <Badge colorScheme="grey">{isPublic ? '공개' : '비공개'}</Badge> -); - -const Owner = ({ - userId, - isMe = false, -}: { - userId: number; - isMe?: boolean; -}) => { - const { data: userInfo } = useUserProfileQuery(userId); - - return ( - <div className="flex items-center gap-[1rem]"> - <Avatar - name={userInfo.nickname} - size="medium" - src={userInfo.profileImage} - /> - <span className="text-center font-body2-bold"> - <span>{userInfo.nickname}</span> - <span>{isMe && ' 👑'}</span> - </span> - </div> - ); -}; - -const Title = ({ title }: { title: string }) => { - return <p className="font-subheading-bold">{title}</p>; -}; - -const Duration = ({ start, end }: { start: string; end: string }) => { - return ( - <div className="flex items-center gap-[1rem]"> - <IconCalendar className="h-auto w-[1.6rem] fill-placeholder" /> - <span className="text-placeholder font-body2-regular"> - {start} ~ {end} - </span> - </div> - ); -}; - -const MemberCapacity = ({ - current, - max, -}: { - current: number; - max: number | null; -}) => { - return ( - <div className="flex items-center gap-[1rem]"> - <IconMembers className="h-auto w-[1.6rem] fill-placeholder" /> - <p className="text-placeholder font-body2-regular"> - <span className="text-main-900">{current}</span> - {`${max ? ` / ${max}` : ''}명`} - </p> - </div> - ); -}; - -const Description = ({ content }: { content: string }) => { - return <p className="leading-snug font-body1-regular">{content}</p>; -}; diff --git a/src/components/bookGroup/detail/JoinBookGroupButton.tsx b/src/components/bookGroup/detail/JoinBookGroupButton.tsx deleted file mode 100644 index 95457fe69..000000000 --- a/src/components/bookGroup/detail/JoinBookGroupButton.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { usePathname, useRouter } from 'next/navigation'; - -import useJoinBookGroup from '@/hooks/group/useJoinBookGroup'; -import BottomActionButton from '@/components/common/BottomActionButton'; - -const JoinBookGroupButton = ({ groupId }: { groupId: number }) => { - const router = useRouter(); - const pathname = usePathname(); - const { isExpired, isMember, hasPassword, joinBookGroup, refetch } = - useJoinBookGroup(groupId); - - const handleButtonClick = async () => { - if (hasPassword) { - router.replace(`${pathname}/join`); - return; - } - - joinBookGroup({ onSuccess: refetch }); - }; - - if (isMember) { - return null; - } - - if (isExpired) { - return ( - <BottomActionButton colorScheme="grey" disabled> - 모임이 종료되었어요. - </BottomActionButton> - ); - } - - return ( - <BottomActionButton onClick={handleButtonClick}> - 참여하기 - </BottomActionButton> - ); -}; - -export default JoinBookGroupButton; diff --git a/src/components/bookGroup/detail/MemberItem.tsx b/src/components/bookGroup/detail/MemberItem.tsx deleted file mode 100644 index fb809bb57..000000000 --- a/src/components/bookGroup/detail/MemberItem.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import Avatar from '@/components/common/Avatar'; - -interface MemberItemProps { - profileImageSrc: string; - name: string; - job: { group: string; name: string }; - isOwner: boolean; -} - -const MemberItem = ({ - profileImageSrc, - name, - job, - isOwner, -}: MemberItemProps) => { - return ( - <div className="flex gap-[0.8rem]"> - <Avatar src={profileImageSrc} name={name} /> - <div className="flex flex-col"> - <Name text={name} isMarked={isOwner} /> - <Job group={job.group} name={job.name} /> - </div> - </div> - ); -}; - -export default MemberItem; - -const Name = ({ text, isMarked }: { text: string; isMarked: boolean }) => ( - <p className="font-body2-bold"> - {text} {isMarked && ' 👑'} - </p> -); - -const Job = ({ group, name }: { group: string; name: string }) => ( - <p className="text-placeholder font-caption1-regular"> - {group} • {name} - </p> -); diff --git a/src/components/bookGroup/detail/ShortMemberInfo.tsx b/src/components/bookGroup/detail/ShortMemberInfo.tsx deleted file mode 100644 index 82f53afcc..000000000 --- a/src/components/bookGroup/detail/ShortMemberInfo.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import Link from 'next/link'; -import { usePathname } from 'next/navigation'; - -import { IconArrowLeft } from '@public/icons'; -import MemberItem from '@/components/bookGroup/detail/MemberItem'; -import Button from '@/components/common/Button'; - -type Member = { - id: number; - profileImageSrc: string; - name: string; - job: { group: string; name: string }; - isOwner: boolean; -}; - -interface ShortMemberInfoProps { - members: Member[]; -} - -const MEMBER_SHOW_LIMIT = 3; - -const ShortMemberInfo = ({ members }: ShortMemberInfoProps) => { - return ( - <div className="flex flex-col gap-[2rem]"> - <Heading text="멤버" /> - <MemberList members={members.slice(0, MEMBER_SHOW_LIMIT)} /> - <ViewAllButton /> - </div> - ); -}; - -export default ShortMemberInfo; - -const Heading = ({ text }: { text: string }) => ( - <p className="font-subheading-bold">{text}</p> -); - -const MemberList = ({ members }: { members: Member[] }) => ( - <div className="flex flex-col gap-[1rem]"> - {members.map(({ id, ...memberItemProps }) => ( - <MemberItem key={id} {...memberItemProps} /> - ))} - </div> -); - -const ViewAllButton = () => { - const pathname = usePathname(); - - return ( - <Link href={`${pathname}/members`}> - <Button size="full" colorScheme="main-light"> - <span className="mr-[0.5rem] text-black-700 font-body2-bold"> - 전체보기 - </span> - <IconArrowLeft className="inline-block h-[1rem] w-[1rem] rotate-180" /> - </Button> - </Link> - ); -}; diff --git a/src/components/bookGroup/edit/BookGroupEditDateForm.tsx b/src/components/bookGroup/edit/BookGroupEditDateForm.tsx deleted file mode 100644 index b707a058b..000000000 --- a/src/components/bookGroup/edit/BookGroupEditDateForm.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { useFormContext } from 'react-hook-form'; - -import type { APIEditBookGroup } from '@/types/group'; - -import DatePicker from '@/components/common/DatePicker'; -import ErrorMessage from '@/components/common/ErrorMessage'; - -type EditDateFormTypes = Pick<APIEditBookGroup, 'startDate' | 'endDate'>; - -const BookGroupEditDateForm = () => { - const { - register, - formState: { errors, defaultValues }, - } = useFormContext<EditDateFormTypes>(); - - return ( - <> - <section className="flex justify-between"> - <div> - <h2 className="text-black-500">모임 시작일</h2> - <p className="pt-[0.3rem] text-placeholder font-caption1-regular"> - 모임 시작일은 수정할 수 없어요 - </p> - </div> - <DatePicker disabled={true} {...register('startDate')} /> - </section> - <section className="flex flex-col gap-[0.5rem]"> - <div className="flex justify-between"> - <h2 className="text-black-700">모임 종료일</h2> - <DatePicker - {...register('endDate', { - required: { value: true, message: '종료일을 입력해주세요' }, - min: { - value: defaultValues?.startDate as string, - message: '종료일은 시작일보다 늦어야 해요', - }, - })} - /> - </div> - <div> - {errors.endDate && ( - <ErrorMessage>{errors.endDate.message}</ErrorMessage> - )} - </div> - </section> - </> - ); -}; - -export default BookGroupEditDateForm; diff --git a/src/components/bookGroup/edit/BookGroupEditIntroduceForm.tsx b/src/components/bookGroup/edit/BookGroupEditIntroduceForm.tsx deleted file mode 100644 index fa0f76516..000000000 --- a/src/components/bookGroup/edit/BookGroupEditIntroduceForm.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { useFormContext } from 'react-hook-form'; - -import ErrorMessage from '@/components/common/ErrorMessage'; -import TextArea from '@/components/common/TextArea'; -import { APIEditBookGroup } from '@/types/group'; - -type EditIntroduceFormTypes = Pick<APIEditBookGroup, 'introduce'>; - -const BookGroupEditIntroduceForm = () => { - const { - register, - formState: { errors, defaultValues }, - } = useFormContext<EditIntroduceFormTypes>(); - - return ( - <section className="flex flex-col gap-[0.6rem]"> - <h2 className="text-black-700 font-body1-regular">활동 내용</h2> - <TextArea - count={true} - maxLength={500} - defaultValue={defaultValues?.introduce} - {...register('introduce', { - required: '모임 설명을 입력해주세요', - minLength: { - value: 10, - message: '모임 설명을 10자 이상 입력해주세요', - }, - maxLength: { - value: 500, - message: '모임 설명은 500자를 넘을 수 없어요', - }, - })} - > - <ErrorMessage>{errors.introduce?.message}</ErrorMessage> - </TextArea> - </section> - ); -}; - -export default BookGroupEditIntroduceForm; diff --git a/src/components/bookGroup/edit/BookGroupEditTitleForm.tsx b/src/components/bookGroup/edit/BookGroupEditTitleForm.tsx deleted file mode 100644 index 71a2b92f2..000000000 --- a/src/components/bookGroup/edit/BookGroupEditTitleForm.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { useFormContext } from 'react-hook-form'; - -import type { APIEditBookGroup } from '@/types/group'; - -import Input from '@/components/common/Input'; -import InputLength from '@/components/common/InputLength'; -import ErrorMessage from '@/components/common/ErrorMessage'; - -type EditTitleFormTypes = Pick<APIEditBookGroup, 'title'>; - -const BookGroupEditTitleForm = () => { - const { - register, - watch, - formState: { errors }, - } = useFormContext<EditTitleFormTypes>(); - - return ( - <section className="flex flex-col gap-[0.5rem]"> - <Input - inputStyle="line" - fontSize="large" - {...register('title', { - required: '모임 제목을 입력해주세요', - minLength: { - value: 2, - message: '모임 제목을 2자 이상 입력해 주세요', - }, - maxLength: { - value: 30, - message: '모임 제목을 30자 이하 입력해 주세요', - }, - })} - /> - <div className="flex flex-row-reverse items-center justify-between"> - <InputLength - currentLength={watch('title')?.length} - isError={!!errors.title} - maxLength={30} - /> - {errors.title && <ErrorMessage>{errors.title.message}</ErrorMessage>} - </div> - </section> - ); -}; - -export default BookGroupEditTitleForm; diff --git a/src/components/bookGroup/edit/BookGroupEditTopNavigation.tsx b/src/components/bookGroup/edit/BookGroupEditTopNavigation.tsx deleted file mode 100644 index 01a94fa37..000000000 --- a/src/components/bookGroup/edit/BookGroupEditTopNavigation.tsx +++ /dev/null @@ -1,37 +0,0 @@ -'use client'; - -import { SubmitHandler, useFormContext } from 'react-hook-form'; - -import type { APIEditBookGroup } from '@/types/group'; - -import TopNavigation from '@/components/common/TopNavigation'; -import BackButton from '@/components/common/BackButton'; - -const BookGroupEditTopNavigation = ({ - onSubmit, -}: { - onSubmit: SubmitHandler<APIEditBookGroup>; -}) => { - const { handleSubmit } = useFormContext<APIEditBookGroup>(); - - return ( - <TopNavigation> - <TopNavigation.LeftItem> - <BackButton /> - </TopNavigation.LeftItem> - <TopNavigation.CenterItem> - <h1 className="text-black-900 font-body1-regular">모임 수정하기</h1> - </TopNavigation.CenterItem> - <TopNavigation.RightItem> - <button - onClick={handleSubmit(onSubmit)} - className="cursor-pointer text-main-900 font-body1-bold" - > - 완료 - </button> - </TopNavigation.RightItem> - </TopNavigation> - ); -}; - -export default BookGroupEditTopNavigation; diff --git a/src/components/bookSearch/BestSellers.tsx b/src/components/bookSearch/BestSellers.tsx deleted file mode 100644 index 1e7f4f9b4..000000000 --- a/src/components/bookSearch/BestSellers.tsx +++ /dev/null @@ -1,193 +0,0 @@ -import { useState } from 'react'; -import { useRouter } from 'next/navigation'; - -import type { APIBestSellerSearchRange, APISearchedBook } from '@/types/book'; -import useBestSellersQuery from '@/queries/book/useBestSellersQuery'; -import bookAPI from '@/apis/book'; - -import useToast from '@/components/common/Toast/useToast'; - -import BookCover from '@/components/book/BookCover'; -import Skeleton from '@/components/common/Skeleton'; - -const SEARCH_RANGES = { - 주간: 'WEEKLY', - 월간: 'MONTHLY', - 연간: 'YEARLY', -} as const; - -type SearchRangeTypes = keyof typeof SEARCH_RANGES; - -const BestSellers = () => { - const [bestSellerSearchRange, setBestSellerSearchRange] = - useState<APIBestSellerSearchRange>('WEEKLY'); - const searchRanges = Object.keys(SEARCH_RANGES) as SearchRangeTypes[]; - - const bestSellersInfo = useBestSellersQuery(); - const bestSellers = bestSellersInfo.isSuccess - ? bestSellersInfo.data.item - : []; - - const router = useRouter(); - const toast = useToast(); - - const handleClickBook = async (book: APISearchedBook) => { - try { - const { - data: { bookId }, - } = await bookAPI.createBook({ book }); - - router.push(`/book/${bookId}`); - } catch (error) { - toast.show({ - type: 'error', - message: '잠시 후 다시 시도해주세요', - }); - console.error(error); - } - }; - - return ( - <section className="flex flex-col gap-[1.5rem]"> - <h2 className="font-body1-regular">인기 도서</h2> - <ul className="flex w-[calc(100%+2rem)] gap-[0.8rem] overflow-x-scroll whitespace-nowrap"> - <li className="rounded-[1.5rem] bg-black-600 px-[1.5rem] py-[0.3rem]"> - <p className="font-normal text-white font-body2-regular">종합</p> - </li> - </ul> - - <ul className="flex w-full flex-row items-center divide-x divide-black-600 font-body2-regular"> - {searchRanges.map(keys => ( - <li - className={`flex h-[1.1rem] cursor-pointer items-center px-[0.9rem] ${ - SEARCH_RANGES[keys] === bestSellerSearchRange - ? 'text-black-800' - : 'text-black-500' - }`} - key={keys} - onClick={() => setBestSellerSearchRange(SEARCH_RANGES[keys])} - > - {keys} - </li> - ))} - </ul> - - {bestSellerSearchRange === 'WEEKLY' ? ( - <ul className="flex w-[calc(100%+2rem)] overflow-x-scroll pb-[1rem]"> - {bestSellers.map(book => ( - <BestSeller - key={book.isbn} - title={book.title} - author={book.author} - isbn={book.isbn} - contents={book.description} - url={book.link} - imageUrl={book.cover} - publisher={book.publisher} - bestRank={book.bestRank} - onClick={handleClickBook} - /> - ))} - </ul> - ) : ( - <p className="mb-[2.4rem] text-center text-placeholder font-body2-regular"> - 아직 준비중인 기능이에요 🔨 - </p> - )} - </section> - ); -}; - -export default BestSellers; - -type BestSellerProps = { - title: string; - author: string; - isbn: string; - contents: string; - url: string; - imageUrl: string; - publisher: string; - bestRank: number; - onClick: (book: APISearchedBook) => Promise<void>; -}; - -const BestSeller = ({ - title, - author, - isbn, - contents, - url, - imageUrl, - publisher, - bestRank, - onClick, -}: BestSellerProps) => { - const bookReqBody = { - title, - author, - isbn, - contents, - url, - imageUrl, - publisher, - apiProvider: 'ALADIN', - }; - - return ( - <div - className="flex w-[12.7rem] cursor-pointer flex-col gap-[1.3rem] px-[0.7rem]" - onClick={() => onClick(bookReqBody)} - > - <BookCover src={imageUrl} title={title} size={'xlarge'} /> - <div className="flex flex-row gap-[1rem]"> - <p className="text-black-900 font-heading-bold">{bestRank}</p> - <div className="flex min-w-0 flex-col gap-[0.3rem] font-body2-regular"> - <p className="line-clamp-2 !leading-tight text-black-800">{title}</p> - <p className="line-clamp-1 text-black-600 ">{author}</p> - </div> - </div> - </div> - ); -}; - -const BestSellerSkeleton = () => { - return ( - <div className="flex w-[12.7rem] flex-col gap-[1.3rem] px-[0.7rem]"> - <Skeleton.Rect width="11rem" height="15.4rem" rounded="medium" /> - <div className="flex flex-row gap-[1rem]"> - <Skeleton.Text width="1.25rem" fontSize="2xlarge" /> - <div className="flex min-w-0 flex-col gap-[0.3rem]"> - <Skeleton.Text width="8.75rem" fontSize="2xlarge" /> - <Skeleton.Text width="7.25rem" fontSize="xlarge" /> - </div> - </div> - </div> - ); -}; - -export const BestSellersSkeleton = () => { - return ( - <Skeleton> - <section className="flex flex-col gap-[1.5rem]"> - <Skeleton.Text width="7rem" fontSize="2xlarge" /> - <ul className="flex w-full gap-[1rem]"> - <Skeleton.Rect width="5.5rem" height="2.5rem" rounded="large" /> - </ul> - <ul className="flex w-[12.8rem] flex-row justify-around"> - <Skeleton.Text width="2.5rem" fontSize="xsmall" /> - <Skeleton.Text width="2.5rem" fontSize="xsmall" /> - <Skeleton.Text width="2.5rem" fontSize="xsmall" /> - </ul> - <ul className="flex w-[calc(100%+2rem)] overflow-x-scroll"> - <BestSellerSkeleton /> - <BestSellerSkeleton /> - <BestSellerSkeleton /> - <BestSellerSkeleton /> - </ul> - </section> - </Skeleton> - ); -}; - -// 'w-[11.0rem] h-[15.4rem]' diff --git a/src/components/bookSearch/BookSearchList.tsx b/src/components/bookSearch/BookSearchList.tsx deleted file mode 100644 index 5744ee9e9..000000000 --- a/src/components/bookSearch/BookSearchList.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import type { APISearchedBook, SearchedBookWithId } from '@/types/book'; - -import bookAPI from '@/apis/book'; -import useToast from '@/components/common/Toast/useToast'; - -import BookCover from '@/components/book/BookCover'; - -type BookSearchListProps = { - books: APISearchedBook[]; - totalCount?: number; - onBookClick?: (book: SearchedBookWithId) => void; -}; - -const BookSearchList = ({ - books, - totalCount, - onBookClick, -}: BookSearchListProps) => { - const { show: showToast } = useToast(); - - const handleBookClick = async (book: APISearchedBook) => { - try { - const { data } = await bookAPI.createBook({ book }); - const { bookId } = data; - - onBookClick && onBookClick({ ...book, bookId }); - } catch (error) { - showToast({ type: 'error', message: '잠시 후 다시 시도해주세요' }); - console.error(error); - } - }; - - if (!books.length) { - return ( - <p className="mb-[2.4rem] text-center text-placeholder font-body2-regular"> - 검색된 도서가 없어요 🥲 - </p> - ); - } - - return ( - <> - <h3 className="mb-[1rem] "> - <span className="text-black-600 font-body1-bold">검색 결과 </span> - <span className="pl-[0.2rem] text-black-500 font-body1-regular"> - {totalCount} - </span> - </h3> - <ul className="grid w-full grid-cols-3 gap-[1.6rem]"> - {books.map((book, idx) => ( - <BookSearchItem - key={`${book.isbn}-${idx}`} - imageUrl={book.imageUrl} - title={book.title} - onClick={() => handleBookClick(book)} - /> - ))} - </ul> - </> - ); -}; - -export default BookSearchList; - -const BookSearchItem = ({ - imageUrl, - title, - onClick, -}: { - imageUrl: string; - title: string; - onClick: () => void; -}) => { - return ( - <li - onClick={onClick} - className="flex min-h-0 w-full cursor-pointer flex-col gap-[0.8rem] bg-white p-[0.2rem]" - > - <BookCover size="fill" src={imageUrl} title={title} /> - <p className="line-clamp-2 !leading-tight text-black-900 font-body2-regular"> - {title} - </p> - </li> - ); -}; diff --git a/src/components/bookSearch/RecentSearchList.tsx b/src/components/bookSearch/RecentSearchList.tsx deleted file mode 100644 index 1e9a20ed5..000000000 --- a/src/components/bookSearch/RecentSearchList.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import type { APIBookRecentSearchResponse } from '@/types/book'; - -import Button from '@/components/common/Button'; -import Skeleton from '@/components/common/Skeleton'; - -type RecentSearchListProps = { - keywords?: APIBookRecentSearchResponse[]; - onClick?: (keyword: string) => void; -}; - -const RecentSearchList = ({ keywords, onClick }: RecentSearchListProps) => { - return ( - <section className="flex flex-col gap-[1.5rem]"> - <h2 className="font-body1-regular">최근 검색어</h2> - {keywords ? ( - <ul className="relative flex w-[calc(100%+2rem)] gap-[1rem] overflow-x-scroll whitespace-nowrap pb-[1rem]"> - {keywords.map(item => ( - <li key={`${item.keyword}-${item.modifiedAt}`}> - <Button - size="small" - fill={true} - fullRadius={true} - colorScheme="main-light" - onClick={() => onClick && onClick(item.keyword)} - > - {item.keyword} - </Button> - </li> - ))} - </ul> - ) : ( - <p className="mb-[2.4rem] text-center text-placeholder font-body2-regular"> - 검색 기록이 없어요! - </p> - )} - </section> - ); -}; - -export default RecentSearchList; - -export const RecentSearchListSkeleton = () => { - return ( - <Skeleton> - <section className="flex animate-pulse flex-col gap-[1.5rem] rounded-[0.5rem]"> - <Skeleton.Text width="8rem" fontSize="2xlarge" /> - <ul className="flex w-full gap-[1rem] pb-[1rem]"> - <Skeleton.Rect width="7.55rem" height="3.3rem" rounded="full" /> - <Skeleton.Rect width="7.55rem" height="3.3rem" rounded="full" /> - <Skeleton.Rect width="7.55rem" height="3.3rem" rounded="full" /> - <Skeleton.Rect width="7.55rem" height="3.3rem" rounded="full" /> - </ul> - </section> - </Skeleton> - ); -}; diff --git a/src/components/bookShelf/BookShelf.tsx b/src/components/bookShelf/BookShelf.tsx deleted file mode 100644 index 77cc45aed..000000000 --- a/src/components/bookShelf/BookShelf.tsx +++ /dev/null @@ -1,136 +0,0 @@ -'use client'; - -import { ReactNode, useState } from 'react'; -import Link from 'next/link'; -import Image from 'next/image'; - -import ColorThief from 'colorthief'; - -import { APIBook } from '@/types/book'; -import { APIBookshelf } from '@/types/bookshelf'; -import { IconArrowRight, IconHeart } from '@public/icons'; - -const BookShelf = ({ children }: { children: ReactNode }) => { - return <>{children}</>; -}; - -const Background = () => { - return ( - <div className="absolute bottom-0 w-full rounded-b-[inherit]"> - <div className="h-[3rem] bg-bookshelf-dark shadow-[0px_-3px_8px_0px_#F1F1F1_inset]" /> - <div className="h-[1rem] rounded-b-[inherit] bg-bookshelf-light shadow-[0px_-1px_8px_-4.5px_#494949]" /> - </div> - ); -}; - -type InfoProps = Omit<APIBookshelf, 'books'>; - -const Info = ({ bookshelfName, bookshelfId, likeCount }: InfoProps) => { - return ( - <div className="flex flex-col gap-[1rem] px-[2rem]"> - <div className="flex items-center justify-between"> - <Link - href={`/bookshelf/${bookshelfId}`} - className="flex select-none items-center gap-[0.5rem]" - > - <div className="font-body2-bold">{bookshelfName}</div> - <IconArrowRight width="1.2rem" height="1.2rem" /> - </Link> - <div className="flex items-center gap-[0.3rem] px-[0.6rem] py-[0.2rem]"> - <IconHeart className=" fill-warning-800 stroke-warning-800" /> - <p className=" text-black-600 font-caption2-bold">{likeCount}</p> - </div> - </div> - </div> - ); -}; - -type BooksProps = Pick<APIBookshelf, 'books'>; - -const Books = ({ books }: BooksProps) => { - return ( - <ul className="grid grid-cols-4 px-[1.5rem]"> - {books.map(book => ( - <li key={book.bookId} className="flex justify-center"> - <Book {...book} /> - </li> - ))} - </ul> - ); -}; - -const Book = ({ - imageUrl, - bookId, - title, -}: Pick<APIBook, 'bookId' | 'title' | 'imageUrl'>) => { - const [bookSpineColor, setBookSpineColor] = useState<string>(); - const placeholderClassName = bookSpineColor ? '' : 'bg-blur'; - - const handleOnLoadImage = (image: HTMLImageElement) => { - const colorThief = new ColorThief(); - const colorHex = colorThief - .getPalette(image, 2)[0] - .map(x => x.toString(16).padStart(2, '0')) - .join(''); - setBookSpineColor(`#${colorHex}`); - }; - - return ( - <Link - href={`/book/${bookId}`} - className="relative flex" - style={{ - transformStyle: 'preserve-3d', - transform: 'perspective(140px)', - }} - > - {/** 책 옆면 (책등) */} - <div - className={`h-full w-[1.5rem] ${placeholderClassName}`} - style={{ - backgroundColor: bookSpineColor, - transform: 'rotateY(320deg) translateX(1rem) translateZ(0.4rem)', - }} - > - {/** 옆면과 표지 사이 여백을 메꾸기 위해 추가 */} - <div - className={`absolute -right-[0.5px] h-full w-[2px] ${placeholderClassName}`} - style={{ backgroundColor: bookSpineColor }} - /> - </div> - - {/** 책 하단 그림자 */} - <div - className="absolute bottom-0 h-2 w-[calc(100%-1.5rem)] shadow-[1px_4px_10px_4px_#b1b1b1]" - style={{ - transform: 'rotateY(20deg) translateX(1.25rem) translateZ(-0.5rem)', - }} - /> - - {/** 책 표지 */} - <div - className="bg-blur relative h-[9.1rem] w-[6.5rem] rounded-[2px] after:absolute after:inset-0 after:border-[1px] after:border-black-900/[.06]" - style={{ - transform: 'rotateY(22deg) translateZ(0.3rem)', - }} - > - <Image - src={imageUrl} - alt={title} - onLoadingComplete={handleOnLoadImage} - className=" rounded-[1px] object-cover" - sizes="9.1rem" - fill - style={{ visibility: bookSpineColor ? 'visible' : 'hidden' }} - /> - </div> - </Link> - ); -}; - -BookShelf.Background = Background; -BookShelf.Info = Info; -BookShelf.Books = Books; - -export default BookShelf; diff --git a/src/components/bookShelf/BookShelfCard.tsx b/src/components/bookShelf/BookShelfCard.tsx deleted file mode 100644 index 28ab7d10d..000000000 --- a/src/components/bookShelf/BookShelfCard.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import type { APIBookshelf } from '@/types/bookshelf'; - -import BookShelf from '@/components/bookShelf/BookShelf'; - -const BookShelfCard = ({ - bookshelfName, - bookshelfId, - likeCount, - books, -}: APIBookshelf) => { - return ( - <BookShelf> - <div className="relative rounded-[2rem] pb-[2.5rem] pt-[2rem] shadow-[0px_0px_10px_0px_#D1D1D1]"> - <BookShelf.Background /> - <div className="flex flex-col gap-[2.6rem] bg-white"> - <BookShelf.Info - bookshelfName={bookshelfName} - bookshelfId={bookshelfId} - likeCount={likeCount} - /> - <BookShelf.Books books={books} /> - </div> - </div> - </BookShelf> - ); -}; - -export default BookShelfCard; diff --git a/src/components/bookShelf/BookShelfRow.tsx b/src/components/bookShelf/BookShelfRow.tsx deleted file mode 100644 index cb35cf14d..000000000 --- a/src/components/bookShelf/BookShelfRow.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import type { APIBookshelf } from '@/types/bookshelf'; - -import BookShelf from '@/components/bookShelf/BookShelf'; - -const BookShelfRow = ({ books }: Pick<APIBookshelf, 'books'>) => { - return ( - <BookShelf> - <div className="relative left-[-2rem] w-[calc(100%+4rem)] pb-[2.5rem] pt-[2rem] shadow-[0px_28px_20px_-16px_#D1D1D1]"> - <BookShelf.Background /> - <BookShelf.Books books={books} /> - </div> - </BookShelf> - ); -}; - -export default BookShelfRow; diff --git a/src/components/comment/BookCommentList.tsx b/src/components/comment/BookCommentList.tsx deleted file mode 100644 index 7c1eae37c..000000000 --- a/src/components/comment/BookCommentList.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import type { APIBookComment } from '@/types/book'; -import { useMyProfileId } from '@/queries/user/useMyProfileQuery'; -import { useBookComments } from '@/queries/book/useBookCommentsQuery'; -import usePatchBookCommentMutation from '@/queries/book/usePatchBookCommentMutation'; -import useDeleteBookCommentMutation from '@/queries/book/useDeleteBookCommentMutation'; - -import useToast from '@/components/common/Toast/useToast'; -import { checkAuthentication } from '@/utils/helpers'; - -import CommentList from '@/components/comment/CommentList'; - -const BookCommentList = ({ bookId }: { bookId: number }) => { - const isAuthenticated = checkAuthentication(); - - const { show: showToast } = useToast(); - - const { data: comments } = useBookComments(bookId); - const { data: myId } = useMyProfileId({ enabled: isAuthenticated }); - - const editComment = usePatchBookCommentMutation(bookId); - const deleteComment = useDeleteBookCommentMutation(bookId); - - const handleBookCommentEdit = ( - commentId: APIBookComment['commentId'], - comment: string - ) => { - editComment.mutate( - { commentId, comment }, - { - onSuccess: () => - showToast({ type: 'success', message: '코멘트를 수정했어요' }), - } - ); - }; - - const handleBookCommentDelete = (commentId: APIBookComment['commentId']) => { - deleteComment.mutate(commentId, { - onSuccess: () => - showToast({ type: 'success', message: '코멘트를 삭제했어요' }), - }); - }; - - return ( - <CommentList - name={'코멘트'} - comments={comments} - isEditableComment={({ writer }) => writer.id === myId} - emptyText={`아직 코멘트가 없어요. - 가장 먼저 코멘트를 남겨보세요!`} - onEditConfirm={handleBookCommentEdit} - onDeleteConfirm={handleBookCommentDelete} - /> - ); -}; - -export default BookCommentList; diff --git a/src/components/comment/BookGroupCommentList.tsx b/src/components/comment/BookGroupCommentList.tsx deleted file mode 100644 index 71b605419..000000000 --- a/src/components/comment/BookGroupCommentList.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import { APIGroupComment } from '@/types/group'; -import { useBookGroupComments } from '@/queries/group/useBookGroupCommentsQuery'; -import { useMyProfileId } from '@/queries/user/useMyProfileQuery'; -import { useBookGroup } from '@/queries/group/useBookGroupQuery'; -import usePatchBookGroupCommentMutation from '@/queries/group/usePatchBookGroupCommentMutation'; -import useDeleteBookGroupCommentMutation from '@/queries/group/useDeleteBookGroupCommentMutation'; - -import useToast from '@/components/common/Toast/useToast'; -import { checkAuthentication } from '@/utils/helpers'; - -import CommentList from '@/components/comment/CommentList'; - -const BookGroupCommentList = ({ groupId }: { groupId: number }) => { - const isAuthenticated = checkAuthentication(); - - const { show: showToast } = useToast(); - - const { data: bookGroupInfo } = useBookGroup(groupId); - const { data: comments } = useBookGroupComments(groupId); - const { data: myId } = useMyProfileId({ enabled: isAuthenticated }); - - const editComment = usePatchBookGroupCommentMutation(groupId); - const deleteComment = useDeleteBookGroupCommentMutation(groupId); - - const { isPublic, isMember } = bookGroupInfo; - const isHidden = !isPublic && !isMember; - - const handleBookGroupCommentEdit = ( - commentId: APIGroupComment['commentId'], - comment: string - ) => { - editComment.mutate( - { commentId, comment }, - { - onSuccess: () => - showToast({ type: 'success', message: '코멘트를 수정했어요' }), - } - ); - }; - - const handleBookGroupCommentDelete = ( - commentId: APIGroupComment['commentId'] - ) => { - deleteComment.mutate(commentId, { - onSuccess: () => - showToast({ type: 'success', message: '코멘트를 삭제했어요' }), - }); - }; - - return ( - <CommentList - name={'게시글'} - comments={comments} - isEditableComment={({ writer }) => writer.id === myId} - isHidden={isHidden} - hiddenText={`멤버만 볼 수 있어요 🥲`} - emptyText={`아직 게시글이 없어요. - 가장 먼저 게시글을 남겨보세요!`} - onEditConfirm={handleBookGroupCommentEdit} - onDeleteConfirm={handleBookGroupCommentDelete} - /> - ); -}; - -export default BookGroupCommentList; diff --git a/src/components/comment/CommentDrawer.tsx b/src/components/comment/CommentDrawer.tsx deleted file mode 100644 index b0f46435d..000000000 --- a/src/components/comment/CommentDrawer.tsx +++ /dev/null @@ -1,70 +0,0 @@ -'use client'; - -import { forwardRef, useEffect } from 'react'; - -import Button from '@/components/common/Button'; -import Drawer from '@/components/common/Drawer'; - -interface CommentDrawerProps { - isOpen: boolean; - onClose: () => void; - onConfirm?: () => void; - title?: string; - defaultComment?: string; - placeholder?: string; -} - -const CommentDrawer = forwardRef<HTMLTextAreaElement, CommentDrawerProps>( - ({ isOpen, onClose, onConfirm, title, defaultComment, placeholder }, ref) => { - const handleConfirm = () => { - onConfirm && onConfirm(); - onClose(); - }; - - useEffect(() => { - if (!isOpen) return; - - // Drawer가 열릴 때 textarea의 끝에 focus - setTimeout(() => { - const textarea = document.querySelector('textarea'); - - if (textarea) { - textarea.focus(); - textarea.select(); - window.getSelection()?.collapseToEnd(); - } - }, 100); - }, [isOpen]); - - return ( - <Drawer isOpen={isOpen} onClose={onClose}> - <Drawer.Header> - <Drawer.CloseButton position="top-left" /> - <Drawer.Title text={title} /> - <Button - colorScheme="main" - fill={false} - size="medium" - className="flex-shrink-0 border-none !p-0 disabled:cursor-default disabled:text-placeholder" - onClick={handleConfirm} - > - 완료 - </Button> - </Drawer.Header> - <Drawer.Content> - <textarea - className="w-full resize-none border-none font-body1-regular focus:outline-none" - rows={15} - defaultValue={defaultComment} - placeholder={placeholder} - ref={ref} - /> - </Drawer.Content> - </Drawer> - ); - } -); - -CommentDrawer.displayName = 'CommentDrawer'; - -export default CommentDrawer; diff --git a/src/components/comment/CommentList.tsx b/src/components/comment/CommentList.tsx deleted file mode 100644 index 2fb4327ea..000000000 --- a/src/components/comment/CommentList.tsx +++ /dev/null @@ -1,206 +0,0 @@ -import { useMemo, useRef } from 'react'; - -import type { Writer } from '@/types/user'; - -import useDisclosure from '@/hooks/useDisclosure'; - -import EditCommentDrawer from '@/components/comment/CommentDrawer'; -import Avatar from '@/components/common/Avatar'; -import Menu from '@/components/common/Menu'; -import Button from '@/components/common/Button'; -import Modal from '@/components/common/Modal'; - -type Comment = { - id: number; - writer: Writer; - createdAt: string; - content: string; -}; - -interface CommentListProps { - comments: Comment[]; - name?: string; - isHidden?: boolean; - hiddenText?: string; - emptyText?: string; - isEditableComment?: (comment: Comment) => boolean; - onEditConfirm?: (commentId: Comment['id'], comment: string) => void; - onDeleteConfirm?: (commentId: Comment['id']) => void; -} - -const CommentList = ({ - name = '코멘트', - comments, - isHidden, - hiddenText, - emptyText, - isEditableComment, - onEditConfirm, - onDeleteConfirm, -}: CommentListProps) => { - const titleOnCommentEdit = useMemo( - () => [name, '수정하기'].join(' '), - [name] - ); - - if (isHidden) { - return ( - <p className="py-[2rem] text-center font-body2-regular">{hiddenText}</p> - ); - } - - if (comments.length === 0) { - return ( - <p className="self-center whitespace-pre-line py-[2rem] text-center font-body2-regular"> - {emptyText} - </p> - ); - } - - return ( - <ul className="flex flex-col gap-[1rem]"> - {comments.map(comment => { - const { id, writer, createdAt, content } = comment; - return ( - <li className="flex flex-col gap-[1rem] py-[1rem]" key={id}> - <div className="flex gap-[1rem]"> - <Avatar - src={writer.profileImageSrc} - name={writer.name} - size="medium" - /> - <div className="flex flex-grow flex-col"> - <Name name={writer.name} /> - <Date date={createdAt} /> - </div> - {isEditableComment && isEditableComment(comment) && ( - <CommentActionMenu - comment={comment} - titleOnCommentEdit={titleOnCommentEdit} - onEditConfirm={onEditConfirm} - onDeleteConfirm={onDeleteConfirm} - /> - )} - </div> - <CommentContent content={content} /> - </li> - ); - })} - </ul> - ); -}; - -export default CommentList; - -const Name = ({ name }: { name: string }) => ( - <p className="font-body2-bold">{name}</p> -); - -const Date = ({ date }: { date: string }) => ( - <p className="text-placeholder font-caption1-regular">{date}</p> -); - -const CommentContent = ({ content }: { content: string }) => ( - <p className="text-justify font-body1-regular">{content}</p> -); - -const CommentActionMenu = ({ - comment, - titleOnCommentEdit, - onEditConfirm, - onDeleteConfirm, -}: { - comment: Comment; - titleOnCommentEdit?: string; - onEditConfirm?: (commentId: Comment['id'], newComment: string) => void; - onDeleteConfirm?: (commentId: Comment['id']) => void; -}) => { - const { id: commentId, content } = comment; - const commentRef = useRef<HTMLTextAreaElement>(null); - - const { - isOpen: isDrawerOpen, - onOpen: onDrawerOpen, - onClose: onDrawerClose, - } = useDisclosure(); - - const { - isOpen: isModalOpen, - onOpen: onModalOpen, - onClose: onModalClose, - } = useDisclosure(); - - const handleEditConfirm = () => { - const comment = commentRef.current?.value; - - if (!comment) { - return; - } - - onEditConfirm && onEditConfirm(commentId, comment); - }; - - const handleDeleteConfirm = () => { - onDeleteConfirm && onDeleteConfirm(commentId); - }; - - return ( - <> - <Menu> - <Menu.Toggle /> - <Menu.DropdownList> - <Menu.Item onSelect={onDrawerOpen}>수정하기</Menu.Item> - <Menu.Item onSelect={onModalOpen}>삭제하기</Menu.Item> - </Menu.DropdownList> - </Menu> - <EditCommentDrawer - isOpen={isDrawerOpen} - onClose={onDrawerClose} - onConfirm={handleEditConfirm} - title={titleOnCommentEdit} - defaultComment={content} - placeholder={'더 멋진 코멘트를 작성해주세요!'} - ref={commentRef} - /> - <DeleteCommentModal - isOpen={isModalOpen} - onClose={onModalClose} - onConfirm={handleDeleteConfirm} - /> - </> - ); -}; - -const DeleteCommentModal = ({ - isOpen, - onClose, - onConfirm, -}: { - isOpen: boolean; - onClose: () => void; - onConfirm?: () => void; -}) => { - const handleConfirm = () => { - onConfirm && onConfirm(); - onClose(); - }; - - return ( - <Modal isOpen={isOpen} onClose={onClose}> - <div className="flex flex-col gap-[0.5rem] leading-loose font-subheading-bold"> - <p>정말 삭제할까요?</p> - <p className="text-black-500 font-body2-regular"> - 한번 삭제하면 되돌릴 수 없어요. - </p> - </div> - <div className="flex justify-end gap-[1rem]"> - <Button onClick={onClose} fill={false} colorScheme="grey" size="small"> - 취소 - </Button> - <Button onClick={handleConfirm} size="small"> - 확인 - </Button> - </div> - </Modal> - ); -}; diff --git a/src/components/common/AuthFailedErrorBoundary.tsx b/src/components/common/AuthFailedErrorBoundary.tsx deleted file mode 100644 index efd5ce15f..000000000 --- a/src/components/common/AuthFailedErrorBoundary.tsx +++ /dev/null @@ -1,43 +0,0 @@ -'use client'; - -import { useEffect } from 'react'; -import { QueryErrorResetBoundary } from '@tanstack/react-query'; -import { ErrorBoundary, FallbackProps } from 'react-error-boundary'; - -import useToast from '@/components/common/Toast/useToast'; -import { isAuthFailedError, isAxiosErrorWithCustomCode } from '@/utils/helpers'; -import Loading from '@/components/common/Loading'; - -const AuthFailedErrorBoundary = ({ - children, -}: { - children?: React.ReactNode; -}) => { - return ( - <QueryErrorResetBoundary> - {({ reset }) => ( - <ErrorBoundary onReset={reset} FallbackComponent={AuthFailedFallback}> - {children} - </ErrorBoundary> - )} - </QueryErrorResetBoundary> - ); -}; - -export default AuthFailedErrorBoundary; - -const AuthFailedFallback = ({ error, resetErrorBoundary }: FallbackProps) => { - const { show: showToast } = useToast(); - - useEffect(() => { - if ( - isAxiosErrorWithCustomCode(error) && - isAuthFailedError(error.response.data.code) - ) { - showToast({ message: '다시 로그인 해주세요' }); - resetErrorBoundary(); - } - }, [error, resetErrorBoundary, showToast]); - - return <Loading fullpage />; -}; diff --git a/src/components/common/Avatar.tsx b/src/components/common/Avatar.tsx deleted file mode 100644 index 04d3d2056..000000000 --- a/src/components/common/Avatar.tsx +++ /dev/null @@ -1,76 +0,0 @@ -'use client'; - -import { Children, ReactNode, useState } from 'react'; -import Image from 'next/image'; - -type AvatarSize = 'small' | 'medium' | 'large'; -interface AvatarProps { - name?: string; - src?: string; - size?: AvatarSize; - border?: boolean; -} - -const FALLBACK_IMAGE_SRC = '/icons/avatar.svg'; - -const getAvatarSize = (size: AvatarSize) => { - switch (size) { - case 'small': { - return { - sizeClasses: 'w-[2rem] h-[2rem]', - sizeProps: { width: 20, height: 20 }, - } as const; - } - case 'medium': { - return { - sizeClasses: 'w-[3.2rem] h-[3.2rem]', - sizeProps: { width: 32, height: 32 }, - } as const; - } - case 'large': { - return { - sizeClasses: 'w-[7rem] h-[7rem]', - sizeProps: { width: 70, height: 70 }, - } as const; - } - } -}; - -const Avatar = ({ name, src, size = 'medium', border }: AvatarProps) => { - const [image, setImage] = useState(src ?? FALLBACK_IMAGE_SRC); - - const { sizeClasses, sizeProps } = getAvatarSize(size); - const borderClass = border ? 'border-[0.15rem]' : 'border-none'; - - const setFallbackImage = () => setImage(FALLBACK_IMAGE_SRC); - - return ( - <span - className={`relative inline-block rounded-full border-white bg-white ${sizeClasses} ${borderClass}`} - > - <Image - alt={name || 'avatar'} - src={image} - className={`h-full w-full rounded-full object-cover`} - {...sizeProps} - onError={setFallbackImage} - /> - </span> - ); -}; - -export default Avatar; - -const AvatarGroup = ({ children }: { children?: ReactNode }) => { - return ( - <div className="mr-[0.75rem] flex flex-row-reverse items-center justify-end"> - {Children.toArray(children).map((avatar, idx) => ( - <span key={idx} className={`-me-[0.75rem] leading-none`}> - {avatar} - </span> - ))} - </div> - ); -}; - -export { AvatarGroup }; diff --git a/src/components/common/BackButton.tsx b/src/components/common/BackButton.tsx deleted file mode 100644 index d7215430c..000000000 --- a/src/components/common/BackButton.tsx +++ /dev/null @@ -1,15 +0,0 @@ -'use client'; - -import { IconArrowLeft } from '@public/icons'; -import { useRouter } from 'next/navigation'; - -const BackButton = () => { - const router = useRouter(); - return ( - <button onClick={() => router.back()}> - <IconArrowLeft /> - </button> - ); -}; - -export default BackButton; diff --git a/src/components/common/Badge.tsx b/src/components/common/Badge.tsx deleted file mode 100644 index 0076bbd56..000000000 --- a/src/components/common/Badge.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import { PropsWithChildren, useMemo } from 'react'; - -type Size = 'small' | 'medium' | 'large'; -type ColorScheme = 'main' | 'main-light' | 'grey' | 'red'; -type FontWeight = 'thin' | 'normal' | 'bold'; - -type BadgeProps = PropsWithChildren<{ - size?: Size; - colorScheme?: ColorScheme; - fontWeight?: FontWeight; - isFilled?: boolean; -}>; - -const getSizeClasses = (size: Size) => { - switch (size) { - case 'small': { - return 'h-[1.8rem] text-2xs'; - } - case 'medium': { - return 'h-[1.9rem] text-xs'; - } - case 'large': { - return 'h-[2.1rem] text-xs'; - } - } -}; - -const getSchemeClasses = (colorScheme: ColorScheme, isFilled: boolean) => { - switch (colorScheme) { - case 'main': { - return isFilled - ? 'border-main-900 bg-main-900 text-white' - : 'border-main-900 text-main-900'; - } - case 'main-light': { - return isFilled - ? 'border-main-600 bg-main-600 text-white' - : 'border-main-600 text-main-600'; - } - case 'grey': { - return isFilled - ? 'border-black-100 bg-black-100 text-black-500' - : 'border-black-500 text-black-500'; - } - case 'red': { - return isFilled - ? 'border-warning-800 bg-warning-800 text-white' - : 'border-warning-800 text-warning-800'; - } - } -}; - -const getFontWeightClasses = (fontWeight: FontWeight) => { - switch (fontWeight) { - case 'thin': { - return 'font-thin'; - } - case 'normal': { - return 'font-normal'; - } - case 'bold': { - return 'font-bold'; - } - } -}; - -const Badge = ({ - size = 'medium', - colorScheme = 'main', - fontWeight = 'normal', - isFilled = true, - children, - ...props -}: BadgeProps) => { - const computedClasses = useMemo(() => { - const sizeClass = getSizeClasses(size); - const schemeClass = getSchemeClasses(colorScheme, isFilled); - const fontWeightClass = getFontWeightClasses(fontWeight); - - return [sizeClass, schemeClass, fontWeightClass].join(' '); - }, [size, colorScheme, isFilled, fontWeight]); - - return ( - <div - className={`m-0 flex w-fit items-center justify-center gap-[0.4rem] rounded-[0.5rem] border-[0.1rem] px-[0.6rem] py-[0.25rem] ${computedClasses}`} - {...props} - > - {children} - </div> - ); -}; - -export default Badge; diff --git a/src/components/common/BottomActionButton.tsx b/src/components/common/BottomActionButton.tsx deleted file mode 100644 index 1e5b3e5e2..000000000 --- a/src/components/common/BottomActionButton.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { ComponentPropsWithoutRef } from 'react'; - -import Button from '@/components/common/Button'; - -type BottomActionButtonProps = Omit< - ComponentPropsWithoutRef<typeof Button>, - 'className' ->; - -const BottomActionButton = ({ - children, - ...props -}: BottomActionButtonProps) => { - return ( - <footer className="fixed bottom-0 left-0 right-0 z-10 mx-auto w-full max-w-[43rem] bg-white px-[2.0rem] pb-[calc(env(safe-area-inset-bottom)+1.5rem)] pt-[1.5rem]"> - <Button size="full" {...props}> - {children} - </Button> - </footer> - ); -}; - -export default BottomActionButton; diff --git a/src/components/common/BottomNavigation.tsx b/src/components/common/BottomNavigation.tsx deleted file mode 100644 index f2470192b..000000000 --- a/src/components/common/BottomNavigation.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import Link from 'next/link'; - -import { - IconBookarchive, - IconDiscover, - IconGroup, - IconProfile, -} from '@public/icons'; - -type BottomNavigationProps = { - pathname?: string; -}; - -const icons = [ - { - icon: <IconBookarchive />, - label: '북카이브', - href: '/bookarchive', - }, - { - icon: <IconDiscover />, - label: '도서 검색', - href: '/book/search', - }, - { - icon: <IconGroup />, - label: '독서 모임', - href: '/group', - }, - { - icon: <IconProfile />, - label: '내 프로필', - href: '/profile/me', - }, -] as const; - -const iconColor = { - active: 'fill-main-900 text-main-900', - inactive: 'fill-black-900 text-black-900', -} as const; - -const BottomNavigation = ({ pathname }: BottomNavigationProps) => { - return ( - <nav className="fixed bottom-0 left-[50%] flex w-full max-w-[43rem] -translate-x-1/2 justify-between rounded-t-[2rem] border-t-[0.05rem] border-black-200 bg-white px-[3.2rem] pb-[calc(env(safe-area-inset-bottom)+1.4rem)] pt-[1.4rem] shadow-bottom-navigation"> - {icons.map(({ icon, label, href }) => ( - <Link key={label} type="button" href={href}> - <button - className={`flex h-[4.4rem] min-w-[4.503rem] flex-col items-center justify-center ${ - href === pathname ? iconColor.active : iconColor.inactive - }`} - > - <div className="h-[2.6rem] w-[2.6rem]">{icon}</div> - <p className="font-caption1-bold">{label}</p> - </button> - </Link> - ))} - </nav> - ); -}; - -export default BottomNavigation; diff --git a/src/components/common/BottomSheet.tsx b/src/components/common/BottomSheet.tsx deleted file mode 100644 index 8b8310989..000000000 --- a/src/components/common/BottomSheet.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { Dialog, Transition } from '@headlessui/react'; -import { Fragment, PropsWithChildren } from 'react'; - -interface BottomSheetProps { - isShow?: boolean; - onClose: () => void; -} - -const BottomSheet = ({ - isShow = false, - onClose, - children, -}: PropsWithChildren<BottomSheetProps>) => { - return ( - <Transition.Root show={isShow} as={Fragment}> - <Dialog as="div" className="relative z-10" onClose={onClose}> - <Transition.Child - as={Fragment} - enter="ease-in-out duration-300" - enterFrom="opacity-0" - enterTo="opacity-100" - leave="ease-in-out duration-300" - leaveFrom="opacity-100" - leaveTo="opacity-0" - > - <div className="fixed inset-0 bg-overlay/60 transition-opacity" /> - </Transition.Child> - - <div className="fixed inset-0 overflow-hidden"> - <div className="absolute inset-0 overflow-hidden"> - <div className="pointer-events-none fixed bottom-0 left-1/2 flex max-w-full -translate-x-1/2"> - <Transition.Child - as={Fragment} - enter="transform transition ease-in-out duration-300" - enterFrom="translate-y-full" - enterTo="translate-y-0" - leave="transform transition ease-in-out duration-300" - leaveFrom="translate-y-0" - leaveTo="translate-y-full" - > - <Dialog.Panel className="pointer-events-auto relative max-h-[100dvh] w-[43rem] rounded-t-[1.5rem] bg-white px-[1rem] py-[1.5rem]"> - {children} - </Dialog.Panel> - </Transition.Child> - </div> - </div> - </div> - </Dialog> - </Transition.Root> - ); -}; - -export default BottomSheet; diff --git a/src/components/common/Button.tsx b/src/components/common/Button.tsx deleted file mode 100644 index 5daa304af..000000000 --- a/src/components/common/Button.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import type { ComponentPropsWithoutRef, PropsWithChildren } from 'react'; -import { useMemo } from 'react'; - -type Size = 'small' | 'medium' | 'large' | 'full'; -type ColorScheme = 'main' | 'main-light' | 'warning' | 'grey' | 'kakao'; - -type ButtonProps = PropsWithChildren<{ - size?: Size; - colorScheme?: ColorScheme; - fill?: boolean; - fullRadius?: boolean; -}> & - ComponentPropsWithoutRef<'button'>; - -const getSizeClasses = (size: Size) => { - switch (size) { - case 'small': { - return 'font-body2-bold px-[1.2rem] py-[0.6rem]'; - } - case 'medium': { - return 'font-body1-bold px-[1.6rem] py-[0.8rem]'; - } - case 'large': { - return 'font-body1-bold px-[2.4rem] py-[1rem]'; - } - case 'full': { - return 'font-body1-bold px-[2.4rem] py-[1rem] w-full'; - } - default: { - // medium - return 'font-body1-bold px-[1.6rem] py-[0.8rem]'; - } - } -}; - -const getSchemeClasses = ( - theme: ColorScheme, - isFill: boolean, - disabled?: boolean -) => { - if (disabled) { - return ( - 'cursor-default ' + - (isFill - ? 'border-transparent bg-black-900/[0.12] text-black-900/[0.26]' - : 'border-black-900/[0.12] bg-white text-black-900/[0.26]') - ); - } - - switch (theme) { - case 'main': { - return isFill - ? 'border-main-900 bg-main-900 text-white' - : 'border-main-900 text-main-900'; - } - case 'main-light': { - return 'border-transparent bg-main-600/[.18] text-main-900 !font-normal'; - } - case 'warning': { - return isFill - ? 'border-warning-800 bg-warning-800 text-white ' - : 'border-warning-800 text-warning-800'; - } - case 'grey': { - return isFill - ? 'border-black-400 bg-black-400 text-black-500 ' - : 'border-black-400 text-black-500'; - } - case 'kakao': { - return 'border-kakao bg-kakao text-kakao-dark'; - } - } -}; - -const BASE_BUTTON_CLASSES = - 'cursor-pointer border-[0.1rem] leading-none inline-block focus:outline-none focus:ring-1'; - -const Button = ({ - size = 'medium', - colorScheme = 'main', - fill = true, - fullRadius = false, - className, - disabled, - children, - ...props -}: ButtonProps) => { - const computedClasses = useMemo(() => { - const sizeClass = getSizeClasses(size); - const schemeClass = getSchemeClasses(colorScheme, fill, disabled); - const roundedClass = fullRadius ? 'rounded-full' : 'rounded-[5px]'; - - return [sizeClass, schemeClass, roundedClass].join(' '); - }, [size, colorScheme, fill, fullRadius, disabled]); - - return ( - <button - type="button" - className={`${BASE_BUTTON_CLASSES} ${computedClasses} ${className}`} - disabled={disabled} - {...props} - > - {children} - </button> - ); -}; - -export default Button; diff --git a/src/components/common/ContextProvider.tsx b/src/components/common/ContextProvider.tsx deleted file mode 100644 index f9dce64ee..000000000 --- a/src/components/common/ContextProvider.tsx +++ /dev/null @@ -1,20 +0,0 @@ -'use client'; - -import { ReactNode } from 'react'; - -import PWAServiceWorkerProvider from '@/components/common/PWAServiceWorkerProvider'; -import ReactQueryProvider from '@/components/common/ReactQueryProvider'; - -import ToastProvider from '@/components/common/Toast/ToastProvider'; - -const ContextProvider = ({ children }: { children: ReactNode }) => { - return ( - <PWAServiceWorkerProvider> - <ReactQueryProvider> - <ToastProvider>{children}</ToastProvider> - </ReactQueryProvider> - </PWAServiceWorkerProvider> - ); -}; - -export default ContextProvider; diff --git a/src/components/common/DatePicker.tsx b/src/components/common/DatePicker.tsx deleted file mode 100644 index 9f6c40742..000000000 --- a/src/components/common/DatePicker.tsx +++ /dev/null @@ -1,86 +0,0 @@ -'use client'; - -import { - ChangeEventHandler, - forwardRef, - InputHTMLAttributes, - Ref, - useEffect, - useState, -} from 'react'; - -import { formatDateInputValue } from '@/utils/date'; - -import { IconSelect } from '@public/icons'; - -interface DatePickerProps - extends Omit< - InputHTMLAttributes<HTMLInputElement>, - 'value' | 'id' | 'className' - > { - defaultValue?: string; -} - -const DatePicker = ( - { - name, - onChange, - disabled = false, - defaultValue = '', - ...props - }: DatePickerProps, - ref: Ref<HTMLInputElement> -) => { - const [currentDate, setCurrentDate] = useState(defaultValue); - - const disabledClasses = disabled - ? 'text-black-500 cursor-not-allowed [&_svg]:fill-black-500' - : 'text-black-900 cursor-pointer [&_svg]:fill-black-900'; - - const handleInputChange: ChangeEventHandler<HTMLInputElement> = event => { - setCurrentDate(event.target.value); - onChange && onChange(event); - }; - - useEffect(() => { - if (defaultValue) return; - - const $date = document.querySelector(`input#${name}`) as HTMLInputElement; - - if (!$date) return; - setCurrentDate($date.value); - }, [defaultValue, name]); - - return ( - <label - className={`relative flex h-[3rem] max-w-[16rem] items-center justify-between gap-[0.5rem] bg-transparent ${disabledClasses}`} - htmlFor={name} - > - <div className="flex h-full min-w-0 flex-grow items-center"> - <input - id={name} - name={name} - ref={ref} - type="date" - className="h-full w-0" - disabled={disabled} - defaultValue={currentDate} - onChange={handleInputChange} - {...props} - /> - <p - className={`truncate font-body1-regular ${ - currentDate ? 'text-black-700' : 'text-placeholder' - }`} - > - {currentDate - ? formatDateInputValue(currentDate) - : '날짜를 선택해주세요'} - </p> - </div> - <IconSelect className={`h-[1.2rem] w-[1.2rem] flex-shrink-0`} /> - </label> - ); -}; - -export default forwardRef(DatePicker); diff --git a/src/components/common/Drawer.tsx b/src/components/common/Drawer.tsx deleted file mode 100644 index 6e1b34704..000000000 --- a/src/components/common/Drawer.tsx +++ /dev/null @@ -1,136 +0,0 @@ -import { - createContext, - Fragment, - PropsWithChildren, - ReactNode, - useContext, -} from 'react'; -import { Dialog, Transition } from '@headlessui/react'; - -import useRemoveVerticalScroll from '@/hooks/useRemoveVerticalScroll'; - -import { IconClose } from '@public/icons'; -import Button from '@/components/common/Button'; - -interface DrawerProps { - isOpen: boolean; - onClose: () => void; -} - -type DrawerContextValue = DrawerProps; - -const DrawerContext = createContext({} as DrawerContextValue); -const useDrawerContext = () => useContext(DrawerContext); - -const Drawer = ({ - isOpen, - onClose, - children, -}: PropsWithChildren<DrawerProps>) => { - useRemoveVerticalScroll({ enabled: isOpen }); - - return ( - <DrawerContext.Provider value={{ isOpen, onClose }}> - <Transition.Root show={isOpen} as={Fragment}> - <Dialog className="relative z-10" onClose={onClose}> - {/** overlay */} - <Transition.Child - as={Fragment} - enter="ease-in-out duration-500" - enterFrom="opacity-0" - enterTo="opacity-100" - leave="ease-in-out duration-500" - leaveFrom="opacity-100" - leaveTo="opacity-0" - > - <div className=" fixed inset-0 bg-black-900/50 transition-opacity" /> - </Transition.Child> - - <div className="fixed inset-0 overflow-hidden"> - <div className="absolute inset-0 overflow-hidden"> - <div - className={`pointer-events-none fixed inset-y-0 right-0 flex w-full max-w-full justify-center`} - > - <Transition.Child - as={Fragment} - enter="transform transition ease-in-out duration-500 sm:duration-600" - enterFrom="translate-x-full opacity-0" - enterTo="translate-x-0 opacity-1" - leave="transform transition ease-in-out duration-500 sm:duration-600" - leaveFrom="translate-x-0 opacity-1" - leaveTo="translate-x-full opacity-0" - > - <Dialog.Panel className="pointer-events-auto relative w-screen max-w-[43rem]"> - <div - className={`flex h-full flex-col overflow-y-scroll bg-white pt-6 shadow-xl`} - > - {children} - </div> - </Dialog.Panel> - </Transition.Child> - </div> - </div> - </div> - </Dialog> - </Transition.Root> - </DrawerContext.Provider> - ); -}; - -const DrawerHeader = ({ children }: { children?: ReactNode }) => { - return ( - <div className="flex items-center justify-between px-6 py-[0.5rem] sm:px-8"> - {children} - </div> - ); -}; - -const DrawerContent = ({ children }: { children?: ReactNode }) => { - return ( - <div className="w-full px-6 pt-6 font-body1-regular sm:px-8"> - {children} - </div> - ); -}; - -const Title = ({ text }: { text?: string }) => { - return ( - <h1 className="flex-grow truncate pl-[2.5rem] text-center font-body1-regular"> - {text} - </h1> - ); -}; - -type Position = 'top-left' | 'top-right'; - -const getPositionClasses = (postion: Position) => { - switch (postion) { - case 'top-right': - return 'top-[2.4rem] right-[1.8rem]'; - case 'top-left': - default: - return 'top-[2.4rem] left-[1.8rem]'; - } -}; - -const CloseButton = ({ position = 'top-left' }: { position?: Position }) => { - const { onClose } = useDrawerContext(); - const positionClasses = getPositionClasses(position); - - return ( - <Button - onClick={onClose} - fill={false} - className={`absolute border-none !p-0 ${positionClasses}`} - > - <IconClose className={`h-[2rem] w-[2rem] fill-black-900 `} /> - </Button> - ); -}; - -Drawer.Header = DrawerHeader; -Drawer.Content = DrawerContent; -Drawer.Title = Title; -Drawer.CloseButton = CloseButton; - -export default Drawer; diff --git a/src/components/common/ErrorMessage.tsx b/src/components/common/ErrorMessage.tsx deleted file mode 100644 index 124c2a1c9..000000000 --- a/src/components/common/ErrorMessage.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { ReactNode } from 'react'; -import { IconErrorExclamation } from '@public/icons'; - -const ErrorMessage = ({ children }: { children?: ReactNode }) => { - return ( - <> - {children && ( - <div className="flex items-center gap-[0.4rem] text-warning-800 font-caption1-regular"> - <div className="h-[1.2rem] w-[1.2rem]"> - <IconErrorExclamation /> - </div> - {children} - </div> - )} - </> - ); -}; - -export default ErrorMessage; diff --git a/src/components/common/FloatingButton.tsx b/src/components/common/FloatingButton.tsx deleted file mode 100644 index 2b63ef77e..000000000 --- a/src/components/common/FloatingButton.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { ComponentPropsWithoutRef } from 'react'; - -import { IconPlus } from '@public/icons'; - -import Portal from '@/components/common/Portal'; - -interface FloatingButtonProps extends ComponentPropsWithoutRef<'button'> { - position?: string; - onClick?: () => void; -} - -const FloatingButton = ({ - position, - onClick, - ...props -}: FloatingButtonProps) => { - return ( - <Portal id="floating-button-root"> - <button - className={`fixed ${position} flex h-[5.1rem] w-[5.1rem] items-center justify-center rounded-full bg-main-900 shadow-floating-button`} - onClick={onClick} - {...props} - > - <IconPlus className="fill-white" /> - </button> - </Portal> - ); -}; - -export default FloatingButton; diff --git a/src/components/common/Funnel.tsx b/src/components/common/Funnel.tsx deleted file mode 100644 index 10173bf39..000000000 --- a/src/components/common/Funnel.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { Children, ReactElement, ReactNode, isValidElement } from 'react'; - -import type { NonEmptyArray } from '@/hooks/useFunnel'; - -import { assert } from '@/utils/assert'; - -export interface MoveFunnelStepProps { - onPrevStep?: () => void; - onNextStep?: () => void; - onSubmit?: () => void; -} - -export interface FunnelProps<Steps extends NonEmptyArray<string>> { - steps: Steps; - step: Steps[number]; - children: - | Array<ReactElement<StepProps<Steps>>> - | ReactElement<StepProps<Steps>>; -} - -export const Funnel = <Steps extends NonEmptyArray<string>>({ - steps, - step, - children, -}: FunnelProps<Steps>) => { - const validChildren = Children.toArray(children) - .filter(isValidElement) - .filter(i => - steps.includes((i.props as Partial<StepProps<Steps>>).name ?? '') - ) as Array<ReactElement<StepProps<Steps>>>; - - const targetStep = validChildren.find(child => child.props.name === step); - - assert(targetStep != null, `${step} 스텝 컴포넌트를 찾지 못했습니다.`); - - return <>{targetStep}</>; -}; - -export interface StepProps<Steps extends NonEmptyArray<string>> { - name: Steps[number]; - children: ReactNode; -} - -export const Step = <T extends NonEmptyArray<string>>({ - children, -}: StepProps<T>) => { - return <>{children}</>; -}; diff --git a/src/components/common/Input.tsx b/src/components/common/Input.tsx deleted file mode 100644 index 8e1c97f61..000000000 --- a/src/components/common/Input.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { ComponentPropsWithoutRef, forwardRef, Ref } from 'react'; - -type InputStyle = 'default' | 'line'; -type FontSize = 'small' | 'large'; -type LeftIconType = 'search'; - -interface InputProps extends ComponentPropsWithoutRef<'input'> { - inputStyle?: InputStyle; - leftIconType?: LeftIconType; - fontSize?: FontSize; - error?: boolean; - showSearchIcon?: boolean; -} - -const FONT_SIZE_CLASSES = { - small: 'font-body1-regular after:font-body1-regular', - large: 'font-subheading-bold after:font-subheading-bold', -}; - -const getInputStyleClasses = (inputStyle: InputStyle) => { - switch (inputStyle) { - case 'line': - return 'border-b-[0.1rem] border-black-400'; - case 'default': - default: - return 'rounded-[0.5rem] border-[0.05rem] px-[1rem]'; - } -}; - -const getLeftIconClass = (iconType?: LeftIconType) => { - switch (iconType) { - case 'search': - return 'pr-[1rem] before:h-[2.2rem] before:min-w-[2rem] before:relative before:top-[0.2rem] before:mx-[1rem] before:content-search'; - default: - return ''; - } -}; - -const Input = ( - { - inputStyle = 'default', - fontSize = 'small', - error = false, - leftIconType, - className = '', - ...props - }: InputProps, - ref: Ref<HTMLInputElement> -) => { - const inputStyleClass = getInputStyleClasses(inputStyle); - const leftIconClass = getLeftIconClass(leftIconType); - const fontSizeClass = FONT_SIZE_CLASSES[fontSize]; - const borderColorClass = error - ? 'border-warning-800 focus-within:border-warning-800' - : 'border-black-400 focus-within:border-main-900'; - - return ( - <div - className={`flex w-full items-center bg-transparent ${inputStyleClass} ${borderColorClass} ${fontSizeClass} ${leftIconClass} ${className}`} - > - <input - className={`h-[4.4rem] w-full bg-transparent outline-none autofill:shadow-[inset_0_0_0px_1000px_rgb(255,255,255)] ${fontSizeClass}`} - {...props} - ref={ref} - /> - </div> - ); -}; - -export default forwardRef(Input); diff --git a/src/components/common/InputLength.tsx b/src/components/common/InputLength.tsx deleted file mode 100644 index 212585dfd..000000000 --- a/src/components/common/InputLength.tsx +++ /dev/null @@ -1,22 +0,0 @@ -type InputLengthProps = { - currentLength?: number; - isError?: boolean; - maxLength?: number; -}; - -const InputLength = ({ - currentLength, - isError = false, - maxLength, -}: InputLengthProps) => { - const textColor = isError ? 'text-warning-800 ' : 'text-main-900'; - - return ( - <p className="font-caption1-regular"> - <span className={textColor}>{currentLength ? currentLength : 0}</span>/ - {maxLength} - </p> - ); -}; - -export default InputLength; diff --git a/src/components/common/LikeButton.tsx b/src/components/common/LikeButton.tsx deleted file mode 100644 index 9b091d8ab..000000000 --- a/src/components/common/LikeButton.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { APIBookshelfInfo } from '@/types/bookshelf'; -import { IconHeart } from '@public/icons'; - -type LikeButtonProps = { - isLiked: APIBookshelfInfo['isLiked']; - likeCount: APIBookshelfInfo['likeCount']; - onClick?: () => void; -}; - -const LikeButton = ({ isLiked, likeCount, onClick }: LikeButtonProps) => { - const BG_COLOR_CLASS = isLiked ? 'bg-warning-800' : 'bg-white'; - const ICON_COLOR_CLASS = isLiked ? 'stroke-white' : 'stroke-warning-800'; - const TEXT_COLOR_CLASS = isLiked ? 'text-white' : 'text-warning-800'; - - return ( - <button - onClick={onClick} - className={`${BG_COLOR_CLASS} flex h-[2.4rem] items-center gap-[0.4rem] rounded-full border-[0.1rem] border-warning-800 bg-warning-800`} - > - <IconHeart className={`${ICON_COLOR_CLASS} ml-[1rem]`} /> - <p - className={`${TEXT_COLOR_CLASS} mr-[1.1rem] min-w-[1.2rem] text-end font-caption1-bold`} - > - {likeCount} - </p> - </button> - ); -}; - -export default LikeButton; diff --git a/src/components/common/Loading.tsx b/src/components/common/Loading.tsx deleted file mode 100644 index b114c8ed1..000000000 --- a/src/components/common/Loading.tsx +++ /dev/null @@ -1,55 +0,0 @@ -const schemes = { - main: 'bg-main-900', - grey: 'bg-black-400', -} as const; - -type DotScheme = keyof typeof schemes; -interface LoadingProps { - color?: DotScheme; - fullpage?: boolean; -} - -const Loading = ({ color = 'main', fullpage = false }: LoadingProps) => { - if (fullpage) { - return ( - <div className="fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"> - <LoadingDots color={color} /> - </div> - ); - } - - return <LoadingDots color={color} />; -}; - -export default Loading; - -const LoadingDots = ({ color }: { color: DotScheme }) => ( - <div className="flex gap-[1rem]"> - <LoadingDot color={color} animationStep={1} /> - <LoadingDot color={color} animationStep={2} /> - <LoadingDot color={color} animationStep={3} /> - </div> -); - -type AnimationStep = 1 | 2 | 3; -type LoadingAnimations = { - [key in AnimationStep]: string; -}; - -const animations: LoadingAnimations = { - 1: 'animate-dot-flash', - 2: 'animate-dot-flash-delay-0.5', - 3: 'animate-dot-flash-delay-1', -}; - -const LoadingDot = ({ - color, - animationStep = 1, -}: { - color: DotScheme; - animationStep?: AnimationStep; -}) => ( - <span - className={`h-[1rem] w-[1rem] rounded-full ${schemes[color]} ${animations[animationStep]} translate-y-[5px] opacity-20`} - ></span> -); diff --git a/src/components/common/LoginBottomActionButton.tsx b/src/components/common/LoginBottomActionButton.tsx deleted file mode 100644 index 991e11018..000000000 --- a/src/components/common/LoginBottomActionButton.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import Link from 'next/link'; - -import { KAKAO_LOGIN_URL } from '@/constants'; - -import BottomActionButton from '@/components/common/BottomActionButton'; - -const LoginBottomActionButton = () => ( - <Link href={KAKAO_LOGIN_URL}> - <BottomActionButton>로그인 및 회원가입</BottomActionButton> - </Link> -); - -export default LoginBottomActionButton; diff --git a/src/components/common/Menu.tsx b/src/components/common/Menu.tsx deleted file mode 100644 index 92c029d64..000000000 --- a/src/components/common/Menu.tsx +++ /dev/null @@ -1,99 +0,0 @@ -'use client'; - -import { - PropsWithChildren, - createContext, - useCallback, - useContext, - useMemo, - useState, -} from 'react'; - -import { IconHamburger } from '@public/icons'; -import useOutsideClickRef from '@/hooks/useOutsideClickRef'; - -import BottomSheet from '@/components/common/BottomSheet'; - -type MenuContextValue = { - isOpen: boolean; - toggle: () => void; -}; - -const MenuContext = createContext({} as MenuContextValue); - -const Menu = ({ children }: { children?: React.ReactNode }) => { - const [isOpen, setOpen] = useState(false); - const toggle = useCallback(() => setOpen(prev => !prev), []); - const value = useMemo(() => ({ isOpen, toggle }), [isOpen, toggle]); - - const ref = useOutsideClickRef<HTMLDivElement>(() => setOpen(false)); - - return ( - <div className="relative" ref={ref}> - <MenuContext.Provider value={value}>{children}</MenuContext.Provider> - </div> - ); -}; - -const Toggle = () => { - const { toggle } = useContext(MenuContext); - - return ( - <div - className="flex h-[2.3rem] w-[2.3rem] cursor-pointer items-center justify-center" - onClick={toggle} - > - <IconHamburger className="h-[2rem] w-[2rem] hover:fill-black-500" /> - </div> - ); -}; - -const BottomSheetList = ({ children }: { children?: React.ReactNode }) => { - const { isOpen, toggle } = useContext(MenuContext); - return ( - <BottomSheet isShow={isOpen} onClose={toggle}> - {children} - </BottomSheet> - ); -}; - -const DropdownList = ({ children }: { children?: React.ReactNode }) => { - const { isOpen } = useContext(MenuContext); - return ( - <> - {isOpen && ( - <ul className="absolute right-0 top-[3rem] z-50 min-w-[10rem] rounded-[0.5rem] bg-white py-[0.5rem] shadow-[0_0_15px_rgba(0,0,0,0.05),0_1px_2px_rgba(0,0,0,0.1)]"> - {children} - </ul> - )} - </> - ); -}; - -const Item = ({ - onSelect, - children, -}: PropsWithChildren<{ onSelect?: () => void }>) => { - const { toggle } = useContext(MenuContext); - - const handleItemClick = () => { - toggle(); - onSelect && onSelect(); - }; - - return ( - <li - className="block cursor-pointer list-none truncate whitespace-nowrap rounded-[0.5rem] px-[1rem] py-[0.7rem] font-body2-regular hover:bg-black-100" - onClick={handleItemClick} - > - {children} - </li> - ); -}; - -Menu.Toggle = Toggle; -Menu.BottomSheetList = BottomSheetList; -Menu.DropdownList = DropdownList; -Menu.Item = Item; - -export default Menu; diff --git a/src/components/common/Modal.tsx b/src/components/common/Modal.tsx deleted file mode 100644 index a7a0834b4..000000000 --- a/src/components/common/Modal.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { Dialog, Transition } from '@headlessui/react'; -import { Fragment, ReactNode } from 'react'; - -interface ModalProps { - isOpen: boolean; - onClose: () => void; - children?: ReactNode; -} - -const Modal = ({ isOpen, onClose, children }: ModalProps) => { - return ( - <Transition appear show={isOpen} as={Fragment}> - <Dialog as="div" className="relative z-10" onClose={onClose}> - <Transition.Child - as={Fragment} - enter="ease-out duration-300" - enterFrom="opacity-0" - enterTo="opacity-100" - leave="ease-in duration-200" - leaveFrom="opacity-100" - leaveTo="opacity-0" - > - <div className="fixed inset-0 bg-overlay bg-opacity-60" /> - </Transition.Child> - - <div className="fixed inset-0 overflow-y-auto"> - <div className="flex min-h-full items-center justify-center"> - <Transition.Child - as={Fragment} - enter="ease-out duration-300" - enterFrom="opacity-0 scale-95" - enterTo="opacity-100 scale-100" - leave="ease-in duration-200" - leaveFrom="opacity-100 scale-100" - leaveTo="opacity-0 scale-95" - > - <Dialog.Panel className="flex w-[31.3rem] transform flex-col gap-[2.5rem] overflow-hidden rounded-[0.4rem] bg-white px-[2.5rem] py-[2rem] transition-all"> - {children} - </Dialog.Panel> - </Transition.Child> - </div> - </div> - </Dialog> - </Transition> - ); -}; - -export default Modal; diff --git a/src/components/common/PWAServiceWorkerProvider.tsx b/src/components/common/PWAServiceWorkerProvider.tsx deleted file mode 100644 index c46713b5e..000000000 --- a/src/components/common/PWAServiceWorkerProvider.tsx +++ /dev/null @@ -1,31 +0,0 @@ -'use client'; - -import { useEffect } from 'react'; - -const PWAServiceWorkerProvider = ({ - children, -}: { - children: React.ReactNode; -}) => { - useEffect(() => { - if ('serviceWorker' in navigator) { - const registerWorker = async () => { - const registration = await navigator.serviceWorker.register( - '/pwaServiceWorker.js' - ); - registration.waiting?.postMessage('SKIP_WAITING'); - }; - - try { - registerWorker(); - console.log('register success!'); - } catch (error) { - console.error('register failed: ', error); - } - } - }, []); - - return <>{children}</>; -}; - -export default PWAServiceWorkerProvider; diff --git a/src/components/common/Portal.tsx b/src/components/common/Portal.tsx deleted file mode 100644 index 58a9255e9..000000000 --- a/src/components/common/Portal.tsx +++ /dev/null @@ -1,32 +0,0 @@ -'use client'; - -import { PropsWithChildren, useEffect, useState } from 'react'; -import { createPortal } from 'react-dom'; - -type PortalProps = { - id: string; -}; - -const Portal = ({ id, children }: PropsWithChildren<PortalProps>) => { - const [element, setElement] = useState<HTMLElement | null>(null); - - useEffect(() => { - let rootElement = document.getElementById(id); - - if (!rootElement) { - rootElement = document.createElement('div'); - rootElement.setAttribute('id', id); - document.body.appendChild(rootElement); - } - - setElement(rootElement); - }, [id]); - - if (!element) { - return null; - } - - return createPortal(children, element); -}; - -export default Portal; diff --git a/src/components/common/ProgressBar.tsx b/src/components/common/ProgressBar.tsx deleted file mode 100644 index 1c0bc23a2..000000000 --- a/src/components/common/ProgressBar.tsx +++ /dev/null @@ -1,29 +0,0 @@ -/** - * @param value percentage - */ -const ProgressBar = ({ - value, - className, -}: { - value: number; - className?: string; -}) => { - return ( - <div - className={ - 'absolute inset-x-0 h-[0.2rem] w-full overflow-hidden ' + className - } - > - <div className="absolute h-full w-full bg-main-500" /> - <div - className="absolute h-full w-full bg-main-900" - style={{ - transform: `translateX(-${100 - value}%)`, - transition: 'transform 0.4s ease-in-out', - }} - /> - </div> - ); -}; - -export default ProgressBar; diff --git a/src/components/common/QueryErrorBoundaryFallback.tsx b/src/components/common/QueryErrorBoundaryFallback.tsx deleted file mode 100644 index 5146aecec..000000000 --- a/src/components/common/QueryErrorBoundaryFallback.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import Button from '@/components/common/Button'; - -const QueryErrorBoundaryFallback = ({ - resetErrorBoundary, -}: { - resetErrorBoundary: (...args: unknown[]) => void; -}) => { - return ( - <div className="flex h-full w-full flex-col items-center justify-center gap-[1rem] rounded-lg py-[2rem]"> - <p className="font-body1-bold">데이터를 불러오는 중 문제가 발생했어요.</p> - <Button size="small" onClick={resetErrorBoundary}> - 다시 불러오기 - </Button> - </div> - ); -}; - -export default QueryErrorBoundaryFallback; diff --git a/src/components/common/RadioButton.tsx b/src/components/common/RadioButton.tsx deleted file mode 100644 index 3372c616a..000000000 --- a/src/components/common/RadioButton.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { ComponentPropsWithoutRef, forwardRef, Ref } from 'react'; - -type RadioButtonProps = { - label?: string; -} & Omit<ComponentPropsWithoutRef<'input'>, 'id' | 'type' | 'className'>; - -const BASE_RADIO_BUTTON_CLASSES = - 'px-[1.4rem] py-[0.6rem] bg-main-600/[0.18] text-main-900 font-body2-regular rounded-[2rem] cursor-pointer peer-checked:bg-main-900 peer-checked:text-white'; - -const RadioButton = ( - { name, value, label, ...props }: RadioButtonProps, - ref: Ref<HTMLInputElement> -) => { - return ( - <label htmlFor={`id-${value}`}> - <input - id={`id-${value}`} - name={name} - className="peer hidden" - type="radio" - value={value} - ref={ref} - {...props} - /> - <p className={BASE_RADIO_BUTTON_CLASSES}>{label ?? value}</p> - </label> - ); -}; - -export default forwardRef(RadioButton); diff --git a/src/components/common/SSRSafeSuspense.tsx b/src/components/common/SSRSafeSuspense.tsx deleted file mode 100644 index 11dae7a7b..000000000 --- a/src/components/common/SSRSafeSuspense.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { ComponentPropsWithoutRef, Suspense } from 'react'; - -import useMounted from '@/hooks/useMounted'; - -const SSRSafeSuspense = (props: ComponentPropsWithoutRef<typeof Suspense>) => { - const isMounted = useMounted(); - - if (isMounted) { - return <Suspense {...props} />; - } - - return <>{props.fallback}</>; -}; - -export default SSRSafeSuspense; diff --git a/src/components/common/Select.tsx b/src/components/common/Select.tsx deleted file mode 100644 index da626aad8..000000000 --- a/src/components/common/Select.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { ComponentPropsWithoutRef, forwardRef, Ref } from 'react'; - -interface SelectProps - extends Omit< - ComponentPropsWithoutRef<'select'>, - 'className' | 'defaultValue' | 'required' - > { - error?: boolean; -} - -const _Select = ( - { error, children, placeholder, ...props }: SelectProps, - ref: Ref<HTMLSelectElement> -) => { - const borderColor = error - ? 'border-warning-800' - : 'border-black-400 focus:border-main-900'; - - return ( - <div className="font-body2-regular"> - <select - ref={ref} - defaultValue="" - required - className={`rounded-[0.5rem] border-[0.05rem] px-[1.0rem] py-[1.1rem] outline-none ${borderColor} w-full cursor-pointer appearance-none bg-[url('/icons/select-icon.svg')] bg-[length:1.5rem_1.5rem] bg-[calc(100%-1rem)_center] bg-no-repeat invalid:text-placeholder`} - {...props} - > - {placeholder && ( - <option value="" disabled> - {placeholder} - </option> - )} - {children} - </select> - </div> - ); -}; - -const Option = ({ - value, - children, - ...props -}: ComponentPropsWithoutRef<'option'>) => { - return ( - <option value={value} {...props}> - {children} - </option> - ); -}; - -const Select = Object.assign(forwardRef(_Select), { Option }); - -export default Select; diff --git a/src/components/common/ShareButton.tsx b/src/components/common/ShareButton.tsx deleted file mode 100644 index 8b6c057c6..000000000 --- a/src/components/common/ShareButton.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import useToast from '@/components/common/Toast/useToast'; - -import { IconShare } from '@public/icons'; - -const ShareButton = () => { - const { show: showToast } = useToast(); - - const handleClickShareButton = () => { - const url = window.location.href; - - navigator.clipboard - .writeText(url) - .then(() => { - showToast({ message: '링크를 복사했어요', type: 'success' }); - }) - .catch(() => { - showToast({ message: '잠시 후 다시 시도해주세요', type: 'error' }); - }); - }; - - return ( - <button onClick={handleClickShareButton}> - <IconShare /> - </button> - ); -}; - -export default ShareButton; diff --git a/src/components/common/Skeleton.tsx b/src/components/common/Skeleton.tsx deleted file mode 100644 index ffb4c24ee..000000000 --- a/src/components/common/Skeleton.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import { ReactNode } from 'react'; - -const Skeleton = ({ children }: { children?: ReactNode }) => { - return <div className="animate-pulse">{children}</div>; -}; - -type Size = 'small' | 'medium' | 'large'; -type XSize = 'xsmall' | 'xlarge'; -type XXSize = '2xsmall' | '2xlarge'; -type FullSize = 'full'; - -/** Circle Skeleton */ -type CircleSize = Size; - -const getCircleSize = (size: CircleSize) => { - switch (size) { - case 'large': - return 'w-[7rem] h-[7rem]'; - case 'medium': - return 'w-[3.2rem] h-[3.2rem]'; - case 'small': - default: - return 'w-[2rem] h-[2rem]'; - } -}; - -const Circle = ({ size = 'small' }: { size?: CircleSize }) => { - const sizeClasses = getCircleSize(size); - return <div className={`rounded-full bg-black-400 ${sizeClasses}`} />; -}; - -/** Text Skeleton */ -type FontSize = Size | XSize | XXSize; - -const getTextHeight = (size?: FontSize) => { - switch (size) { - case '2xsmall': - return 'h-[1rem]'; - case 'xsmall': - return 'h-[1.2rem]'; - case 'small': - return 'h-[1.4rem]'; - case 'medium': - return 'h-[1.6rem]'; - case 'large': - return 'h-[1.8rem]'; - case 'xlarge': - return 'h-[2rem]'; - case '2xlarge': - return 'h-[2.2rem]'; - default: - return 'h-[1.2rem]'; // small - } -}; - -const Text = ({ - width, - fontSize = 'small', -}: { - width?: string; - fontSize?: FontSize; -}) => { - const heightClasses = getTextHeight(fontSize); - return <div className={`bg-black-400 ${heightClasses}`} style={{ width }} />; -}; - -/** Rectangle Skelton */ -type RoundedSize = Size | FullSize; - -const getRoundedSize = (size?: RoundedSize) => { - switch (size) { - case 'small': - return 'rounded-[0.2rem]'; - case 'medium': - return 'rounded-[0.5rem]'; - case 'large': - return 'rounded-[2rem]'; - case 'full': - return 'rounded-full'; - default: - return 'rounded-none'; - } -}; - -const Rect = ({ - width, - height, - rounded, -}: { - width?: string; - height?: string; - rounded?: RoundedSize; -}) => { - const roundedClass = getRoundedSize(rounded); - return ( - <div className={`bg-black-400 ${roundedClass}`} style={{ width, height }} /> - ); -}; - -Skeleton.Circle = Circle; -Skeleton.Text = Text; -Skeleton.Rect = Rect; - -export default Skeleton; diff --git a/src/components/common/Stepper.tsx b/src/components/common/Stepper.tsx deleted file mode 100644 index 4ee73d842..000000000 --- a/src/components/common/Stepper.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import { - Children, - createContext, - PropsWithChildren, - ReactNode, - useContext, -} from 'react'; - -import { IconCheckStroke } from '@public/icons'; -import ProgressBar from '@/components/common/ProgressBar'; - -type StepStatus = 'complete' | 'incomplete' | 'active'; - -type StepContextValues = { - index: number; - status: StepStatus; - count: number; -}; - -const StepperContext = createContext<StepContextValues>( - {} as StepContextValues -); - -const Stepper = ({ - activeIndex, - children, -}: PropsWithChildren<{ activeIndex: number }>) => { - const stepElements = Children.toArray(children); - const stepCount = stepElements.length; - - const progressPercent = - activeIndex === 0 ? 0 : Math.ceil((activeIndex / (stepCount - 1)) * 100); - - const getStepStatus = (step: number): StepStatus => { - if (step < activeIndex) return 'complete'; - if (step > activeIndex) return 'incomplete'; - return 'active'; - }; - - return ( - <div className="relative z-[1] flex w-full items-center justify-between"> - <ProgressBar value={progressPercent} className="-z-[1]" /> - {stepElements.map((child, index) => ( - <StepperContext.Provider - key={index} - value={{ index, status: getStepStatus(index), count: stepCount }} - > - {child} - </StepperContext.Provider> - ))} - </div> - ); -}; - -const getStepClasses = (status: StepStatus, label?: string) => { - switch (status) { - case 'complete': - return 'bg-main-900'; - // TODO: label text width 계산 로직 추가 - case 'active': - return `bg-main-900 ${label ? 'w-[7.4rem]' : ''}`; - case 'incomplete': - default: - return 'bg-main-500'; - } -}; - -const Step = ({ - label, - children, -}: { - label?: string; - children?: ReactNode; -}) => { - const { status, index } = useContext(StepperContext); - - const statusClasses = getStepClasses(status, label); - const labelPositionClass = label - ? 'self-baseline px-[1.2rem]' - : 'self-center'; - - // 첫번째 스텝이 아니고, 라벨 text가 있는 경우만 opacity transition 적용 - const activeAnimationClasses = - index !== 0 && label ? 'opacity-0 animate-stepper-transition' : 'opacity-1'; - - const stepNumberToRender = index + 1; - const labelToRender = label ? label : stepNumberToRender; - - return ( - <div - className={`relative flex h-[3rem] w-[3rem] shrink-0 flex-col items-center justify-center rounded-full duration-500 ${statusClasses} overflow-hidden`} - > - {status === 'complete' ? ( - <IconCheckStroke className="h-auto w-[1rem]" /> - ) : status === 'active' ? ( - <p - className={`relative whitespace-nowrap text-white font-body2-bold ${activeAnimationClasses} ${labelPositionClass}`} - > - {labelToRender} - </p> - ) : ( - <p className="relative text-white font-body2-bold"> - {stepNumberToRender} - </p> - )} - {children} - </div> - ); -}; - -Stepper.Step = Step; - -export default Stepper; diff --git a/src/components/common/Switch.tsx b/src/components/common/Switch.tsx deleted file mode 100644 index 55b018204..000000000 --- a/src/components/common/Switch.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { ComponentPropsWithoutRef, forwardRef, Ref } from 'react'; - -const Switch = ( - { - name, - ...props - }: Omit<ComponentPropsWithoutRef<'input'>, 'id' | 'type' | 'className'>, - ref: Ref<HTMLInputElement> -) => { - return ( - <label - className="relative inline-flex h-[2.8rem] w-[4.9rem] cursor-pointer items-center" - htmlFor={name} - > - <input - id={name} - name={name} - className="peer hidden" - type="checkbox" - ref={ref} - {...props} - /> - <div className="absolute bottom-0 left-0 right-0 top-0 rounded-full bg-shadow peer-checked:bg-main-900" /> - <span className="absolute left-0 h-[2.4rem] w-[2.4rem] translate-x-[0.2rem] transform rounded-full bg-white transition peer-checked:translate-x-[2.3rem]" /> - <span className="sr-only">{`Enable ${name}`}</span> - </label> - ); -}; - -export default forwardRef(Switch); diff --git a/src/components/common/TextArea.tsx b/src/components/common/TextArea.tsx deleted file mode 100644 index 35fc9bb1f..000000000 --- a/src/components/common/TextArea.tsx +++ /dev/null @@ -1,104 +0,0 @@ -'use client'; - -import { - ChangeEventHandler, - ForwardedRef, - PropsWithChildren, - TextareaHTMLAttributes, - forwardRef, - useState, - ReactNode, - isValidElement, - Children, -} from 'react'; - -import ErrorMessage from '@/components/common/ErrorMessage'; -import InputLength from '@/components/common/InputLength'; - -interface BaseTextAreaProps - extends TextareaHTMLAttributes<HTMLTextAreaElement> { - error?: boolean; - defaultValue?: string; -} -interface TextAreaProps extends BaseTextAreaProps { - count?: boolean; -} - -const _TextArea = ( - { - maxLength = 500, - defaultValue, - count = false, - error = false, - onChange, - children, - ...props - }: PropsWithChildren<TextAreaProps>, - ref: ForwardedRef<HTMLTextAreaElement> -) => { - const [value, setValue] = useState(defaultValue || ''); - - const handleChange: ChangeEventHandler<HTMLTextAreaElement> = e => { - setValue(e.target.value); - onChange && onChange(e); - }; - - return ( - <div> - <BaseTextArea - onChange={handleChange} - maxLength={maxLength} - error={error} - ref={ref} - {...props} - /> - <div className="flex justify-between gap-[0.4rem]"> - {/** 에러 메세지 */} - <div>{getErrorChildren(children)}</div> - {/** 글자수 카운트 */} - {count && ( - <InputLength - currentLength={value.length} - isError={error} - maxLength={maxLength} - /> - )} - </div> - </div> - ); -}; - -const TextArea = Object.assign(forwardRef(_TextArea), { - Error: ErrorMessage, -}); - -const ErrorMessageType = (<ErrorMessage />).type; - -const getErrorChildren = (children: ReactNode) => { - const childrenArray = Children.toArray(children); - - return childrenArray.find( - child => isValidElement(child) && child.type === ErrorMessageType - ); -}; - -export default TextArea; - -const BaseTextArea = forwardRef<HTMLTextAreaElement, BaseTextAreaProps>( - ({ placeholder, error, ...props }, ref) => { - const borderColor = error - ? 'border-warning-800 focus:border-warning-800' - : 'border-black-400 focus:border-main-900'; - - return ( - <textarea - className={`min-h-[8rem] w-full resize-none rounded-[0.5rem] border-[0.05rem] p-[1rem] outline-none font-body1-regular placeholder:text-placeholder ${borderColor}`} - placeholder={placeholder || '내용을 입력해주세요'} - ref={ref} - {...props} - /> - ); - } -); - -BaseTextArea.displayName = 'BaseTextArea'; diff --git a/src/components/common/Toast/ToastItem.tsx b/src/components/common/Toast/ToastItem.tsx deleted file mode 100644 index 0a26d0786..000000000 --- a/src/components/common/Toast/ToastItem.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import type { ToastOption } from '@/components/common/Toast/types'; - -import { IconSuccess, IconWarning, IconError } from '@public/icons'; - -const ICONS = { - success: <IconSuccess />, - error: <IconError />, - warning: <IconWarning />, -} as const; - -const ToastItem = ({ type = 'warning', message }: ToastOption) => { - const icon = ICONS[type]; - - return ( - <div - className={`flex min-h-[5.3rem] w-full min-w-fit flex-row items-center gap-[1rem] rounded-full bg-black-500/[.98] px-[2rem] shadow-bookcover`} - > - {icon} - <p className={`!leading-tight tracking-wide text-white font-body2-bold`}> - {message} - </p> - </div> - ); -}; - -export default ToastItem; diff --git a/src/components/common/Toast/ToastProvider.tsx b/src/components/common/Toast/ToastProvider.tsx deleted file mode 100644 index ba6205efc..000000000 --- a/src/components/common/Toast/ToastProvider.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { createContext, ReactNode, useMemo, useState } from 'react'; - -import type { - ToastController, - ToastOption, -} from '@/components/common/Toast/types'; - -import ToastItem from '@/components/common/Toast/ToastItem'; -import Portal from '@/components/common/Portal'; - -export const ToastContext = createContext({} as ToastController); - -type SlideAnimation = 'slide-in' | 'slide-out' | 'slide-init'; - -const animations = { - 'slide-in': 'animate-slide-in', - 'slide-out': 'animate-slide-out', - 'slide-init': 'animate-slide-init', -} as const; - -const ToastProvider = ({ children }: { children?: ReactNode }) => { - const [toast, setToast] = useState<ToastOption | null>(null); - const [animation, setAnimation] = useState<SlideAnimation>('slide-init'); - - const controller = useMemo<ToastController>( - () => ({ - show: ({ type, message, duration = 2000 }) => { - setToast({ type, message, duration }); - - setAnimation('slide-init'); - setAnimation('slide-in'); - - setTimeout(() => { - setAnimation('slide-out'); - }, duration); - }, - }), - [] - ); - - return ( - <ToastContext.Provider value={controller}> - {children} - <Portal id="toast"> - <div - className={`fixed bottom-[calc(env(safe-area-inset-bottom)+1.5rem)] w-full max-w-[43rem] translate-y-[300%] ${animations[animation]} z-20 m-auto px-[1.5rem]`} - > - {toast && <ToastItem type={toast.type} message={toast.message} />} - </div> - </Portal> - </ToastContext.Provider> - ); -}; - -export default ToastProvider; diff --git a/src/components/common/Toast/types.ts b/src/components/common/Toast/types.ts deleted file mode 100644 index b867e684c..000000000 --- a/src/components/common/Toast/types.ts +++ /dev/null @@ -1,11 +0,0 @@ -export type ToastType = 'warning' | 'success' | 'error'; - -export type ToastOption = { - type?: ToastType; - message: string; - duration?: number; -}; - -export type ToastController = { - show: (option: ToastOption) => void; -}; diff --git a/src/components/common/Toast/useToast.ts b/src/components/common/Toast/useToast.ts deleted file mode 100644 index ee2a900bb..000000000 --- a/src/components/common/Toast/useToast.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { useContext } from 'react'; - -import type { ToastOption } from '@/components/common/Toast/types'; - -import { ToastContext } from '@/components/common/Toast/ToastProvider'; - -const useToast = () => { - const toastController = useContext(ToastContext); - - return { - show: (option: ToastOption) => { - toastController.show(option); - }, - }; -}; - -export default useToast; diff --git a/src/components/common/TopHeader.tsx b/src/components/common/TopHeader.tsx deleted file mode 100644 index 7c2fc553e..000000000 --- a/src/components/common/TopHeader.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { PropsWithChildren } from 'react'; - -type TopHeaderProps = PropsWithChildren<{ - text: string; -}>; - -const TopHeader = ({ text, children }: TopHeaderProps) => { - return ( - <header className="flex w-full items-center justify-between pb-[2rem]"> - <h1 className="text-main-900 font-heading-bold">{text}</h1> - {children} - </header> - ); -}; - -export default TopHeader; diff --git a/src/components/common/TopNavigation.tsx b/src/components/common/TopNavigation.tsx deleted file mode 100644 index d5fc3cd78..000000000 --- a/src/components/common/TopNavigation.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { PropsWithChildren, ReactNode } from 'react'; - -interface TopNavigationProps { - children?: ReactNode; -} - -type ItemProps = TopNavigationProps; - -const TopNavigation = ({ children }: TopNavigationProps) => { - return ( - <div className="fixed left-0 right-0 top-0 z-50 mx-auto flex h-[2.4rem] w-full max-w-[43rem] items-center justify-center bg-white px-[4rem] py-[2.7rem] font-body1-regular"> - {children} - </div> - ); -}; - -const LeftItem = ({ children }: ItemProps) => { - return ( - <div className="absolute left-[0rem] flex pl-[2rem] [&_svg]:h-[2rem] [&_svg]:w-[2rem] [&_svg]:cursor-pointer"> - {children} - </div> - ); -}; - -type CenterItemProps = PropsWithChildren<{ textAlign?: 'left' | 'center' }>; - -const textAligns = { - left: 'text-left', - center: 'text-center', -} as const; - -const CenterItem = ({ children, textAlign = 'center' }: CenterItemProps) => { - const alignClassName = textAligns[textAlign]; - return ( - <div className={`w-full px-[1.5rem] ${alignClassName}`}>{children}</div> - ); -}; - -const RightItem = ({ children }: ItemProps) => { - return ( - <div className="absolute right-[0rem] flex gap-[1rem] pr-[2rem] [&_svg]:h-[2rem] [&_svg]:w-[2rem] [&_svg]:cursor-pointer"> - {children} - </div> - ); -}; - -TopNavigation.LeftItem = LeftItem; - -TopNavigation.CenterItem = CenterItem; - -TopNavigation.RightItem = RightItem; - -export default TopNavigation; diff --git a/src/components/layout/Layout.tsx b/src/components/layout/Layout.tsx deleted file mode 100644 index fc279e3bc..000000000 --- a/src/components/layout/Layout.tsx +++ /dev/null @@ -1,33 +0,0 @@ -'use client'; - -import { usePathname } from 'next/navigation'; - -import BottomNavigation from '@/components/common/BottomNavigation'; - -type LayoutProps = { - children?: React.ReactNode; -}; - -const rootPaths = ['/bookarchive', '/book/search', '/group', '/profile/me']; - -const Layout = ({ children }: LayoutProps) => { - const pathname = usePathname(); - const isRootPath = pathname && rootPaths.includes(pathname); - - const dynamicClass = isRootPath - ? 'pb-[calc(env(safe-area-inset-bottom)+7rem)] pt-[2rem]' - : 'pb-[calc(env(safe-area-inset-bottom)+2rem)] pt-[5.4rem]'; - - return ( - <> - <main - className={`h-auto min-h-[100dvh] w-full max-w-[43rem] animate-page-transition px-[2rem] ${dynamicClass}`} - > - {children} - </main> - {isRootPath && <BottomNavigation pathname={pathname} />} - </> - ); -}; - -export default Layout; diff --git a/src/components/profile/AddJobProfile.tsx b/src/components/profile/AddJobProfile.tsx deleted file mode 100644 index cae37eb3d..000000000 --- a/src/components/profile/AddJobProfile.tsx +++ /dev/null @@ -1,198 +0,0 @@ -'use client'; - -import { useRouter } from 'next/navigation'; -import { SubmitHandler, useForm } from 'react-hook-form'; - -import type { APIJobGroup } from '@/types/job'; - -import { isAxiosError } from 'axios'; -import useMyProfileMutation from '@/queries/user/useMyProfileMutation'; - -import TopNavigation from '@/components/common/TopNavigation'; -import Input from '@/components/common/Input'; -import InputLength from '@/components/common/InputLength'; -import Select from '@/components/common/Select'; -import ErrorMessage from '@/components/common/ErrorMessage'; -import useToast from '@/components/common/Toast/useToast'; - -type AddJobProfileProps = { - jobCategories: APIJobGroup[]; -}; - -type FormValues = { - nickname: string; - jobGroup: string; - job: string; -}; - -const AddJobProfile = ({ jobCategories }: AddJobProfileProps) => { - const { - register, - watch, - handleSubmit, - formState: { errors }, - } = useForm<FormValues>({ - mode: 'all', - defaultValues: { - nickname: '', - jobGroup: '', - job: '', - }, - }); - - const router = useRouter(); - const myProfileMutation = useMyProfileMutation(); - const toast = useToast(); - - const showToastEditSuccess = () => - toast.show({ - type: 'success', - message: '프로필을 등록했어요!', - duration: 3000, - }); - - /** - * @todo - * showToastEditFailed() - * 범용적으로 에러 핸들링 할 수 있도록 수정 - */ - - const showToastEditFailed = () => - toast.show({ - type: 'error', - message: '잠시 후 다시 시도해 주세요', - duration: 3000, - }); - - const handleSubmitForm: SubmitHandler<FormValues> = ({ - nickname, - jobGroup, - job, - }) => { - myProfileMutation.mutateAsync( - { - nickname, - job: { jobGroup: jobGroup, jobName: job }, - }, - { - onSuccess: () => { - router.replace('/bookarchive'); - showToastEditSuccess(); - }, - onError: error => { - if (isAxiosError(error) && error.response) { - console.error(error.response.data); - showToastEditFailed(); - } - }, - } - ); - }; - - return ( - <> - <TopNavigation> - <TopNavigation.CenterItem textAlign="center"> - <p className="text-black-900 font-body1-regular">프로필 등록</p> - </TopNavigation.CenterItem> - <TopNavigation.RightItem> - <button - onClick={handleSubmit(handleSubmitForm)} - className="text-main-900 font-body1-bold" - > - 완료 - </button> - </TopNavigation.RightItem> - </TopNavigation> - - <div className="mt-[3.8rem] flex w-full flex-col gap-[3.3rem]"> - <div className="flex flex-col gap-[1rem]"> - <span className="text-black-700 font-subheading-bold"> - 프로필을 등록해주세요! - </span> - <div className="text-placeholder font-body2-regular"> - <p>프로필을 등록하면</p> - <p> - <span className="text-main-900">다독다독</span>이 추천하는 책장을 - 볼 수 있어요. - </p> - </div> - </div> - - <form - onSubmit={handleSubmit(handleSubmitForm)} - className="flex w-full flex-col gap-[3.2rem]" - > - <div className="flex flex-col gap-[1rem]"> - <p className="text-black-700">닉네임</p> - <div className="flex flex-col gap-[0.5rem]"> - <Input - placeholder="닉네임을 입력해주세요." - {...register('nickname', { - required: '닉네임을 입력해주세요.', - minLength: { value: 2, message: '2자 이상 입력해 주세요.' }, - maxLength: { value: 10, message: '10자 이하 입력해 주세요.' }, - })} - error={!!errors.nickname} - /> - <div className="flex h-[1.4rem] flex-row-reverse justify-between"> - <InputLength - currentLength={watch('nickname')?.length} - isError={!!errors.nickname} - maxLength={10} - /> - {errors.nickname && ( - <ErrorMessage>{errors.nickname.message}</ErrorMessage> - )} - </div> - </div> - </div> - - <div className="flex flex-col gap-[1rem]"> - <p className="text-black-700">직업/직군</p> - - <div className="flex flex-col gap-[0.5rem]"> - <Select - placeholder="직군을 선택해주세요." - {...register('jobGroup', { - required: '직군을 선택해주세요.', - })} - error={!!errors.jobGroup} - > - {jobCategories.map(({ name, koreanName }) => ( - <Select.Option key={name} value={name}> - {koreanName} - </Select.Option> - ))} - </Select> - {errors.jobGroup && ( - <ErrorMessage>{errors.jobGroup.message}</ErrorMessage> - )} - </div> - - <div className="flex flex-col gap-[0.5rem]"> - <Select - placeholder="직업을 선택해주세요." - {...register('job', { - required: '직업을 선택해주세요.', - })} - error={!!errors.job} - > - {jobCategories - .find(({ name }) => name === watch('jobGroup')) - ?.jobs.map(({ name, koreanName }) => ( - <Select.Option key={name} value={name}> - {koreanName} - </Select.Option> - ))} - </Select> - {errors.job && <ErrorMessage>{errors.job.message}</ErrorMessage>} - </div> - </div> - </form> - </div> - </> - ); -}; - -export default AddJobProfile; diff --git a/src/components/profile/EditProfile.tsx b/src/components/profile/EditProfile.tsx deleted file mode 100644 index 91bf593d7..000000000 --- a/src/components/profile/EditProfile.tsx +++ /dev/null @@ -1,187 +0,0 @@ -'use client'; - -import Link from 'next/link'; -import { useRouter } from 'next/navigation'; -import { SubmitHandler, useForm } from 'react-hook-form'; - -import type { APIJobGroup } from '@/types/job'; -import type { APIUser } from '@/types/user'; - -import { isAxiosError } from 'axios'; -import useMyProfileMutation from '@/queries/user/useMyProfileMutation'; - -import { IconClose } from '@public/icons'; - -import TopNavigation from '@/components/common/TopNavigation'; -import Input from '@/components/common/Input'; -import InputLength from '@/components/common/InputLength'; -import Select from '@/components/common/Select'; -import ErrorMessage from '@/components/common/ErrorMessage'; -import useToast from '@/components/common/Toast/useToast'; - -type UserProfileProps = { - profile: Pick<APIUser, 'nickname' | 'job'>; - jobGroups: APIJobGroup[]; -}; - -type FormValues = { - nickname: string; - jobGroup: string; - job: string; -}; - -const EditProfile = ({ profile, jobGroups }: UserProfileProps) => { - const { - register, - watch, - handleSubmit, - formState: { errors }, - } = useForm<FormValues>({ - mode: 'all', - defaultValues: { - nickname: profile.nickname || '', - jobGroup: profile.job.jobGroupName || '', - job: profile.job.jobName || '', - }, - }); - - const router = useRouter(); - const myProfileMutation = useMyProfileMutation(); - const toast = useToast(); - - const showToastEditSuccess = () => - toast.show({ - type: 'success', - message: '프로필을 수정했어요', - duration: 3000, - }); - - const showToastEditFailed = () => - toast.show({ - type: 'error', - message: '잠시 후 다시 시도해주세요', - duration: 3000, - }); - - const handleSubmitForm: SubmitHandler<FormValues> = ({ - nickname, - jobGroup, - job, - }) => { - myProfileMutation.mutateAsync( - { - nickname, - job: { jobGroup, jobName: job }, - }, - { - onSuccess: () => { - router.replace('/profile/me'); - showToastEditSuccess(); - }, - onError: error => { - if (isAxiosError(error) && error.response) { - console.error(error.response.data); - showToastEditFailed(); - } - }, - } - ); - }; - - return ( - <> - <TopNavigation> - <TopNavigation.LeftItem> - <Link href="/profile/me" className="h-[2rem] w-[2rem] cursor-pointer"> - <IconClose className="fill-black-900" /> - </Link> - </TopNavigation.LeftItem> - <TopNavigation.CenterItem textAlign="center"> - <p className="text-black-900">프로필 수정</p> - </TopNavigation.CenterItem> - <TopNavigation.RightItem> - <button - onClick={handleSubmit(handleSubmitForm)} - className="text-main-900 font-body1-bold" - > - 완료 - </button> - </TopNavigation.RightItem> - </TopNavigation> - - <form - onSubmit={handleSubmit(handleSubmitForm)} - className="mt-[3.8rem] flex w-full flex-col gap-[3.2rem]" - > - <div className="flex flex-col gap-[1rem]"> - <p className=" text-black-700">닉네임</p> - <div className="flex flex-col gap-[0.5rem]"> - <Input - placeholder="닉네임을 입력해주세요." - {...register('nickname', { - required: '닉네임을 입력해주세요.', - minLength: { value: 2, message: '2자 이상 입력해 주세요.' }, - maxLength: { value: 10, message: '10자 이하 입력해 주세요.' }, - })} - error={!!errors.nickname} - /> - <div className="flex h-[1.4rem] flex-row-reverse justify-between"> - <InputLength - currentLength={watch('nickname')?.length} - isError={!!errors.nickname} - maxLength={10} - /> - {errors.nickname && ( - <ErrorMessage>{errors.nickname.message}</ErrorMessage> - )} - </div> - </div> - </div> - - <div className="flex flex-col gap-[1rem]"> - <p className="text-black-700">직업/직군</p> - - <div className="flex flex-col gap-[0.5rem]"> - <Select - placeholder="직군을 선택해주세요." - {...register('jobGroup', { - required: '직군을 선택해주세요.', - })} - error={!!errors.jobGroup} - > - {jobGroups.map(({ name, koreanName }) => ( - <Select.Option key={name} value={name}> - {koreanName} - </Select.Option> - ))} - </Select> - {errors.jobGroup && ( - <ErrorMessage>{errors.jobGroup.message}</ErrorMessage> - )} - </div> - - <div className="flex flex-col gap-[0.5rem]"> - <Select - placeholder="직업을 선택해주세요." - {...register('job', { - required: '직업을 선택해주세요.', - })} - error={!!errors.job} - > - {jobGroups - .find(({ name }) => name === watch('jobGroup')) - ?.jobs.map(({ name, koreanName }) => ( - <Select.Option key={name} value={name}> - {koreanName} - </Select.Option> - ))} - </Select> - {errors.job && <ErrorMessage>{errors.job.message}</ErrorMessage>} - </div> - </div> - </form> - </> - ); -}; - -export default EditProfile; diff --git a/src/components/profile/LoginBottomSheet.tsx b/src/components/profile/LoginBottomSheet.tsx deleted file mode 100644 index 93a324da1..000000000 --- a/src/components/profile/LoginBottomSheet.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { IconClose, IconKakao, LogoWithText } from '@public/icons'; - -import Button from '@/components/common/Button'; -import BottomSheet from '@/components/common/BottomSheet'; - -type LoginBottomSheetProps = { - isOpen: boolean; - onClose: () => void; -}; - -const LoginBottomSheet = ({ isOpen, onClose }: LoginBottomSheetProps) => { - const handleClickKakaoLogin = () => { - return (location.href = `${process.env.NEXT_PUBLIC_API_URL}/oauth2/authorize/kakao?redirect_uri=${process.env.NEXT_PUBLIC_CLIENT_REDIRECT_URI}`); - }; - - return ( - <BottomSheet isShow={isOpen} onClose={onClose}> - <IconClose - className="absolute right-0 top-0 mr-[2rem] mt-[2rem] h-[2rem] w-[2rem] cursor-pointer fill-black-900" - onClick={onClose} - /> - <div className="m-auto flex w-full max-w-[38rem] flex-col items-center gap-[2.5rem] px-[2rem] pt-[5rem]"> - <LogoWithText className="h-auto w-[6rem]" /> - <p className="text-black-700 font-subheading-bold"> - 로그인이 필요한 서비스에요! - </p> - <p className="whitespace-pre-line text-center text-placeholder font-body2-regular"> - 간편하게 카카오로 로그인을 하고, - <br /> - <span className="text-main-900">다독다독</span>의 다양한 기능을 - 이용해보세요. - </p> - <Button onClick={handleClickKakaoLogin} colorScheme="kakao" size="full"> - <div className="flex w-full items-center justify-center gap-[1rem]"> - <IconKakao className="h-auto w-[1.6rem]" /> - <p>카카오 로그인</p> - </div> - </Button> - </div> - </BottomSheet> - ); -}; - -export default LoginBottomSheet; diff --git a/src/components/profile/bookShelf/MyProfileBookshelfContainer.tsx b/src/components/profile/bookShelf/MyProfileBookshelfContainer.tsx deleted file mode 100644 index 763c99e71..000000000 --- a/src/components/profile/bookShelf/MyProfileBookshelfContainer.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import useMySummaryBookshelfQuery from '@/queries/bookshelf/useMySummaryBookShelfQuery'; - -import ProfileBookshelfPresenter from '@/components/profile/bookShelf/ProfileBookshelfPresenter'; - -const MyProfileBookshelfContainer = () => { - const { data } = useMySummaryBookshelfQuery(); - - return <ProfileBookshelfPresenter {...data} />; -}; - -export default MyProfileBookshelfContainer; diff --git a/src/components/profile/bookShelf/ProfileBookShelf.tsx b/src/components/profile/bookShelf/ProfileBookShelf.tsx deleted file mode 100644 index 8005fc5cf..000000000 --- a/src/components/profile/bookShelf/ProfileBookShelf.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import type { APIUser } from '@/types/user'; - -import MyProfileBookshelfContainer from '@/components/profile/bookShelf/MyProfileBookshelfContainer'; -import UserProfileBookshelfContainer from '@/components/profile/bookShelf/UserProfileBookshelfContainer'; - -const ProfileBookShelf = ({ userId }: { userId: 'me' | APIUser['userId'] }) => { - return userId === 'me' ? ( - <MyProfileBookshelfContainer /> - ) : ( - <UserProfileBookshelfContainer userId={userId} /> - ); -}; - -export default ProfileBookShelf; diff --git a/src/components/profile/bookShelf/ProfileBookshelfPresenter.tsx b/src/components/profile/bookShelf/ProfileBookshelfPresenter.tsx deleted file mode 100644 index 0bccbbb86..000000000 --- a/src/components/profile/bookShelf/ProfileBookshelfPresenter.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { APIBookshelf } from '@/types/bookshelf'; - -import BookShelf from '@/components/bookShelf/BookShelf'; - -import { IconArrowRight, IconHeart } from '@public/icons'; -import Link from 'next/link'; - -const ProfileBookshelfPresenter = ({ - bookshelfId, - books, - likeCount, -}: APIBookshelf) => { - return ( - <div className="flex flex-col gap-[1rem]"> - <div className="flex items-center justify-between"> - <Link - href={`/bookshelf/${bookshelfId}`} - className="flex items-center gap-[0.5rem]" - > - <h3 className="font-body1-bold">책장</h3> - <IconArrowRight height="1.3rem" width="1.3rem" /> - </Link> - <div className="flex items-center gap-[0.3rem] px-[0.6rem] py-[0.2rem]"> - <IconHeart className=" fill-warning-800 stroke-warning-800" /> - <p className=" text-black-600 font-caption2-bold">{likeCount}</p> - </div> - </div> - - <BookShelf> - <div className="w-app pb-[2.5rem] pt-[2rem] shadow-[0px_20px_20px_-16px_#D1D1D1]"> - <BookShelf.Background /> - <BookShelf.Books books={books} /> - </div> - </BookShelf> - </div> - ); -}; - -export default ProfileBookshelfPresenter; diff --git a/src/components/profile/bookShelf/UserProfileBookshelfContainer.tsx b/src/components/profile/bookShelf/UserProfileBookshelfContainer.tsx deleted file mode 100644 index 3269dba7b..000000000 --- a/src/components/profile/bookShelf/UserProfileBookshelfContainer.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import useUserSummaryBookshelfQuery from '@/queries/bookshelf/useUserSummaryBookShelfQuery'; -import type { APIUser } from '@/types/user'; - -import ProfileBookshelfPresenter from '@/components/profile/bookShelf/ProfileBookshelfPresenter'; - -const UserProfileBookshelfContainer = ({ - userId, -}: { - userId: APIUser['userId']; -}) => { - const { data } = useUserSummaryBookshelfQuery(userId); - - return <ProfileBookshelfPresenter {...data} />; -}; - -export default UserProfileBookshelfContainer; diff --git a/src/components/profile/group/ProfileGroup.tsx b/src/components/profile/group/ProfileGroup.tsx deleted file mode 100644 index d729b5337..000000000 --- a/src/components/profile/group/ProfileGroup.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; - -import { APIUser } from '@/types/user'; - -import ProfileGroupContainer from '@/components/profile/group/ProfileGroupContainer'; -import Skeleton from '@/components/common/Skeleton'; - -const ProfileGroup = ({ userId }: { userId: 'me' | APIUser['userId'] }) => { - return ( - <SSRSafeSuspense fallback={<ProfileGroupSkeleton />}> - <ProfileGroupContainer userId={userId} /> - </SSRSafeSuspense> - ); -}; - -export default ProfileGroup; - -const ProfileGroupSkeleton = () => { - return ( - <Skeleton> - <div className="flex flex-col gap-[1.5rem]"> - <Skeleton.Text fontSize="2xlarge" width="6rem" /> - <div className="flex gap-[1rem] overflow-scroll"> - <div className="flex flex-col gap-[1rem]"> - <Skeleton.Rect rounded="small" width="10rem" height="12.3rem" /> - <Skeleton.Text fontSize="small" width="10rem" /> - </div> - <div className="flex flex-col gap-[1rem]"> - <Skeleton.Rect rounded="small" width="10rem" height="12.3rem" /> - <Skeleton.Text fontSize="small" width="10rem" /> - </div> - <div className="flex flex-col gap-[1rem]"> - <Skeleton.Rect rounded="small" width="10rem" height="12.3rem" /> - <Skeleton.Text fontSize="small" width="10rem" /> - </div> - <div className="flex flex-col gap-[1rem]"> - <Skeleton.Rect rounded="small" width="10rem" height="12.3rem" /> - <Skeleton.Text fontSize="small" width="10rem" /> - </div> - </div> - </div> - </Skeleton> - ); -}; diff --git a/src/components/profile/group/ProfileGroupContainer.tsx b/src/components/profile/group/ProfileGroupContainer.tsx deleted file mode 100644 index edf0270e5..000000000 --- a/src/components/profile/group/ProfileGroupContainer.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import useMyGroupsQuery from '@/queries/group/useMyGroupQuery'; -import useMyProfileQuery from '@/queries/user/useMyProfileQuery'; -import type { APIUser } from '@/types/user'; - -import { checkAuthentication } from '@/utils/helpers'; - -import ProfileGroupPresenter from '@/components/profile/group/ProfileGroupPresenter'; - -const ProfileGroupContainer = ({ - userId, -}: { - userId: 'me' | APIUser['userId']; -}) => { - const isAuthenticated = checkAuthentication(); - - const { data } = useMyGroupsQuery({ enabled: isAuthenticated }); - const { - data: { userId: myId }, - } = useMyProfileQuery({ enabled: userId === 'me' }); - - const isMeOwner = (ownerId: number) => ownerId === myId; - - return ( - <ProfileGroupPresenter userId={userId} isGroupOwner={isMeOwner} {...data} /> - ); -}; - -export default ProfileGroupContainer; diff --git a/src/components/profile/group/ProfileGroupPresenter.tsx b/src/components/profile/group/ProfileGroupPresenter.tsx deleted file mode 100644 index 9f99d8645..000000000 --- a/src/components/profile/group/ProfileGroupPresenter.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { APIGroup } from '@/types/group'; -import { APIUser } from '@/types/user'; -import SimpleBookGroupCard from '@/components/bookGroup/SimpleBookGroupCard'; -import { IconArrowRight } from '@public/icons'; -import Link from 'next/link'; - -interface ProfileGroupPresenterProps { - userId: 'me' | APIUser['userId']; - bookGroups: APIGroup[]; - isGroupOwner?: (ownerId: number) => boolean; -} - -const ProfileGroupPresenter = ({ - userId, - bookGroups, - isGroupOwner, -}: ProfileGroupPresenterProps) => { - return ( - <div className="mt-[0.5rem] flex flex-col gap-[1.5rem]"> - <Link - href={`/profile/${userId}/group`} - className="flex w-fit items-center gap-[0.5rem]" - > - <h3 className="font-body1-bold">참여한 모임</h3> - <IconArrowRight height="1.3rem" width="1.3rem" /> - </Link> - - <ul className="relative left-0 flex w-[calc(100%+2rem)] gap-[1rem] overflow-y-hidden overflow-x-scroll pb-[1.5rem] pr-[2rem]"> - {bookGroups.map(({ bookGroupId, title, owner, book: { imageUrl } }) => ( - <li key={bookGroupId}> - <SimpleBookGroupCard - title={title} - imageSource={imageUrl} - isOwner={!!isGroupOwner && isGroupOwner(owner.id)} - bookGroupId={bookGroupId} - /> - </li> - ))} - </ul> - </div> - ); -}; - -export default ProfileGroupPresenter; diff --git a/src/components/profile/info/ProfileInfo.tsx b/src/components/profile/info/ProfileInfo.tsx deleted file mode 100644 index ad52ea252..000000000 --- a/src/components/profile/info/ProfileInfo.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import type { APIUser } from '@/types/user'; - -import SSRSafeSuspense from '@/components/common/SSRSafeSuspense'; - -import MyProfileContainer from '@/components/profile/info/MyProfileInfoContainer'; -import UserProfileInfoContainer from '@/components/profile/info/UserProfileInfoContainer'; -import Skeleton from '@/components/common/Skeleton'; - -type ProfileInfoProps = { - userId: 'me' | APIUser['userId']; -}; - -const ProfileInfo = ({ userId }: ProfileInfoProps) => { - return ( - <SSRSafeSuspense fallback={<ProfileInfoSkeleton />}> - {userId === 'me' ? ( - <MyProfileContainer /> - ) : ( - <UserProfileInfoContainer userId={userId} /> - )} - </SSRSafeSuspense> - ); -}; - -export default ProfileInfo; - -const ProfileInfoSkeleton = () => { - return ( - <Skeleton> - <div className="mb-[2rem] flex flex-col gap-[2rem]"> - <div className="flex gap-[0.8rem]"> - <Skeleton.Rect width="3.8rem" height="2.1rem" /> - <Skeleton.Rect width="10.4rem" height="2.1rem" /> - </div> - <div className="flex items-center gap-[1rem]"> - <Skeleton.Circle size="large" /> - <Skeleton.Text fontSize="2xlarge" width="18rem" /> - </div> - </div> - </Skeleton> - ); -}; diff --git a/src/components/profile/info/ProfileInfoPresenter.tsx b/src/components/profile/info/ProfileInfoPresenter.tsx deleted file mode 100644 index d2d3df0dd..000000000 --- a/src/components/profile/info/ProfileInfoPresenter.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import type { APIUser } from '@/types/user'; -import Avatar from '@/components/common/Avatar'; -import Badge from '@/components/common/Badge'; - -type ProfileInfoProps = Pick<APIUser, 'nickname' | 'profileImage' | 'job'>; - -const ProfileInfoPresenter = ({ - nickname, - profileImage, - job: { jobGroupKoreanName, jobNameKoreanName }, -}: ProfileInfoProps) => { - return ( - <div className="mb-[2rem] flex flex-col gap-[2rem]"> - <div className="flex gap-[0.8rem]"> - <Badge - colorScheme="main" - isFilled={false} - size="large" - fontWeight="bold" - > - {jobGroupKoreanName} - </Badge> - <Badge - colorScheme="main" - isFilled={false} - size="large" - fontWeight="bold" - > - {jobNameKoreanName} - </Badge> - </div> - <div className="flex items-center gap-[1rem]"> - <Avatar src={profileImage} size="large" /> - <h2 className="font-subheading-regular"> - <b>{nickname}</b>님의 공간 - </h2> - </div> - </div> - ); -}; - -export default ProfileInfoPresenter; diff --git a/src/constants/FormRule/index.ts b/src/constants/FormRule/index.ts new file mode 100644 index 000000000..9b8a3b818 --- /dev/null +++ b/src/constants/FormRule/index.ts @@ -0,0 +1,120 @@ +import type { RegisterOptions } from 'react-hook-form'; + +const FORM_RULES: { + [index: string]: RegisterOptions; +} = { + nickname: { + required: '닉네임을 입력해주세요.', + minLength: { + value: 2, + message: '닉네임을 2자 이상 입력해주세요.', + }, + maxLength: { + value: 10, + message: '닉네임을 10자 이하로 입력해주세요.', + }, + pattern: { + value: /^[가-힣0-9a-zA-Z]{2,10}$/, + message: '한글, 영문, 숫자만 입력 가능해요.', + }, + }, + email: { + required: '이메일을 입력해주세요', + pattern: { + value: + /([\w-.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/, + message: '이메일 형식을 다시 확인해주세요.', + }, + }, + jobGroup: { + required: '직군을 선택해주세요.', + }, + job: { + required: '직업을 선택해주세요.', + }, + title: { + required: '모임 제목을 입력해 주세요.', + minLength: { + value: 2, + message: '모임 제목을 2자 이상 입력해 주세요.', + }, + maxLength: { + value: 30, + message: '모임 제목을 30자 이하로 입력해 주세요.', + }, + }, + introduce: { + required: '모임 설명을 입력해 주세요.', + minLength: { + value: 10, + message: '모임 설명을 10자 이상 입력해 주세요.', + }, + maxLength: { + value: 150, + message: '모임 설명을 150자 이하로 입력해 주세요.', + }, + }, + maxMemberCount: { + required: '모임 인원을 입력해 주세요.', + min: { + value: 1, + message: '모임 인원을 1명 이상 입력해 주세요.', + }, + max: { + value: 500, + message: '인원이 너무 많습니다.', + }, + pattern: { + value: /^[0-9]+$/, + message: '숫자를 입력해 주세요.', + }, + }, + startDate: { + required: '모임 시작일을 선택해 주세요.', + validate: value => + new Date(value).setHours(0, 0, 0, 0) >= new Date().setHours(0, 0, 0, 0) || + '시작일은 오늘부터 가능해요.', + }, + endDate: { + required: '모임 종료일을 선택해 주세요.', + validate: { + possible: (_, { startDate, endDate }) => + new Date(startDate) <= new Date(endDate) || + '종료일은 시작일보다 늦어야 해요.', + }, + }, + bookId: { + required: true, + validate: { + positive: value => Number(value) > 0, + }, + }, + joinQuestion: { + required: '문제 설명을 입력해 주세요.', + minLength: { + value: 5, + message: '문제 설명을 5자 이상 입력해 주세요.', + }, + maxLength: { + value: 30, + message: '문제 설명을 30자 이하로 입력해 주세요.', + }, + }, + joinPasswd: { + required: '정답을 입력해 주세요.', + minLength: { + value: 1, + message: '정답을 1자 이상 입력해 주세요.', + }, + maxLength: { + value: 30, + message: '정답을 10자 이하로 입력해 주세요.', + }, + pattern: { + value: /^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]{1,10}$/, + message: '띄어쓰기 없이 정답을 입력해 주세요.', + }, + }, +} as const; + +export default FORM_RULES; diff --git a/src/constants/groupRadioValues.ts b/src/constants/groupRadioValues.ts index 6851c1b04..b49e44caa 100644 --- a/src/constants/groupRadioValues.ts +++ b/src/constants/groupRadioValues.ts @@ -1,8 +1,42 @@ -export const MAX_MEMBER_COUNT_OPTIONS = [ - { label: '제한없음', value: 9999 }, - { label: '50명', value: 50 }, - { label: '100명', value: 100 }, - { label: '200명', value: 200 }, - { label: '500명', value: 500 }, - { label: '직접 입력', value: 'custom' }, -] as const; +export const MAX_MEMBER_COUNT_VALUE = [ + { + value: 'null', + text: '제한없음', + }, + { + value: '500', + text: '500명', + }, + { + value: '200', + text: '200명', + }, + { + value: '100', + text: '100명', + }, + { + value: '50', + text: '50명', + }, + { + value: '직접입력', + text: '직접입력', + }, +]; + +export const MAX_MEMBER_DEFAULT_VALUE = 'null'; + +export const IS_PUBLICK_VALUE = [ + { value: 'true', text: '공개' }, + { value: 'false', text: '비공개' }, +]; + +export const IS_PUBLICK_DEFAULT_VALUE = 'true'; + +export const HAS_JOIN_PASSWORD_VALUE = [ + { value: 'true', text: '필요' }, + { value: 'false', text: '불필요' }, +]; + +export const HAS_JOIN_PASSWORD_DEFAULT_VALUE = 'false'; diff --git a/src/constants/index.ts b/src/constants/index.ts index c8d049316..a42b42ad7 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -1,4 +1,3 @@ export * from './storage'; export * from './error'; export * from './groupRadioValues'; -export * from './url'; diff --git a/src/constants/initialBookGroupComments.ts b/src/constants/initialBookGroupComments.ts new file mode 100644 index 000000000..7a7ad88ff --- /dev/null +++ b/src/constants/initialBookGroupComments.ts @@ -0,0 +1,38 @@ +export const initialBookGroupComments = [ + { + userId: 1, + commentId: 11414, + contents: + '다독 서비스 개발자 백민종님은 누구보다 열정적이고 훌륭한 개발자입니다. 리더십이 뛰어납니다. 그리고 내기를 좋아합니다. 도박을 좋아하는 것은 아니고 콜라, 커피내기를 주로 합니다. 승률은 낮습니다.', + userProfileImage: '', + nickname: '고양시MZ', + writtenByCurrentUser: false, + }, + { + userId: 2, + commentId: 53452, + contents: + '다독 서비스 개발자 우대현님은 착하고 성실하고 성숙하고 센스있고 어른스럽습니다. 죄송합니다. 제가 이 부분을 만들었기 때문에 제가 상상하는 미래의 제 모습을 적어 보았습니다.', + userProfileImage: '', + nickname: 'OLDBOY', + writtenByCurrentUser: false, + }, + { + userId: 3, + commentId: 36363, + contents: + '다독 서비스 개발자 김규란님은 근면성실은 아니지만 정말 열심히 공부하고 개발하는 개발자 입니다. 운동신경이 뛰어납니다. 저희 팀 내에서 운동 관련 승률이 가장 높습니다. 이기고 싶다면 규란님과 팀을 해야 합니다.', + userProfileImage: '', + nickname: 'fired계란', + writtenByCurrentUser: false, + }, + { + userId: 4, + commentId: 67951, + contents: + '다독 서비스 개발자 김재현님은 의외성 No.1 입니다. 맡은 일을 뚝딱뚝딱 잘해내 팀원들을 놀라게 하는것이 특기입니다. 또한 프로젝트 기간 동안 데브코스 강의장과 가장 가까이 지내면서 여유를 부리다 늦게와 구론산을 많이 샀습니다.(늦게 오는것은 아니고 항상 1-3분 정도? ㅎ)', + userProfileImage: '', + nickname: 'OneMetro', + writtenByCurrentUser: false, + }, +]; diff --git a/src/constants/metadata/appleSplashScreens.ts b/src/constants/metadata/appleSplashScreens.ts deleted file mode 100644 index a6063ec48..000000000 --- a/src/constants/metadata/appleSplashScreens.ts +++ /dev/null @@ -1,232 +0,0 @@ -const appleSplashScreens = [ - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', - url: '/images/splash-screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', - url: '/images/splash-screens/iPhone_15_Pro__iPhone_15__iPhone_14_Pro_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', - url: '/images/splash-screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', - url: '/images/splash-screens/iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', - url: '/images/splash-screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', - url: '/images/splash-screens/iPhone_11_Pro_Max__iPhone_XS_Max_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', - url: '/images/splash-screens/iPhone_11__iPhone_XR_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', - url: '/images/splash-screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', - url: '/images/splash-screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', - url: '/images/splash-screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 1032px) and (device-height: 1376px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', - url: '/images/splash-screens/13__iPad_Pro_M4_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', - url: '/images/splash-screens/12.9__iPad_Pro_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 834px) and (device-height: 1210px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', - url: '/images/splash-screens/11__iPad_Pro_M4_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', - url: '/images/splash-screens/11__iPad_Pro__10.5__iPad_Pro_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', - url: '/images/splash-screens/10.9__iPad_Air_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', - url: '/images/splash-screens/10.5__iPad_Air_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', - url: '/images/splash-screens/10.2__iPad_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', - url: '/images/splash-screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', - url: '/images/splash-screens/8.3__iPad_Mini_landscape.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', - url: '/images/splash-screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', - url: '/images/splash-screens/iPhone_15_Pro__iPhone_15__iPhone_14_Pro_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', - url: '/images/splash-screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', - url: '/images/splash-screens/iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', - url: '/images/splash-screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', - url: '/images/splash-screens/iPhone_11_Pro_Max__iPhone_XS_Max_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', - url: '/images/splash-screens/iPhone_11__iPhone_XR_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', - url: '/images/splash-screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', - url: '/images/splash-screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', - url: '/images/splash-screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 1032px) and (device-height: 1376px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', - url: '/images/splash-screens/13__iPad_Pro_M4_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', - url: '/images/splash-screens/12.9__iPad_Pro_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 834px) and (device-height: 1210px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', - url: '/images/splash-screens/11__iPad_Pro_M4_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', - url: '/images/splash-screens/11__iPad_Pro__10.5__iPad_Pro_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', - url: '/images/splash-screens/10.9__iPad_Air_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', - url: '/images/splash-screens/10.5__iPad_Air_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', - url: '/images/splash-screens/10.2__iPad_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', - url: '/images/splash-screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_portrait.png', - }, - { - rel: 'apple-touch-startup-image', - media: - 'screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', - url: '/images/splash-screens/8.3__iPad_Mini_portrait.png', - }, -]; - -export default appleSplashScreens; diff --git a/src/constants/metadata/index.ts b/src/constants/metadata/index.ts deleted file mode 100644 index 6066e9b53..000000000 --- a/src/constants/metadata/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as appleSplashScreens } from './appleSplashScreens'; diff --git a/src/constants/url.ts b/src/constants/url.ts deleted file mode 100644 index 78b83ec13..000000000 --- a/src/constants/url.ts +++ /dev/null @@ -1,6 +0,0 @@ -export const DATA_URL = { - placeholder: - 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAA1JREFUGFdjWL9+/X8ABysDDapsaG4AAAAASUVORK5CYII=', // data url for placeholder color (#AFAFAF) -}; - -export const KAKAO_LOGIN_URL = `${process.env.NEXT_PUBLIC_API_URL}/oauth2/authorize/kakao?redirect_uri=${process.env.NEXT_PUBLIC_CLIENT_REDIRECT_URI}`; diff --git a/src/hocs/withAuthRequired.tsx b/src/hocs/withAuthRequired.tsx deleted file mode 100644 index db655b3ae..000000000 --- a/src/hocs/withAuthRequired.tsx +++ /dev/null @@ -1,36 +0,0 @@ -'use client'; - -import { useRouter } from 'next/navigation'; -import { useEffect, useState } from 'react'; - -import { checkAuthentication } from '@/utils/helpers'; - -const withAuthRequired = <P extends object>( - WrappedComponent: React.ComponentType<P> -) => { - const Component = (props: P) => { - const router = useRouter(); - - const [isAuthenticated, setIsAuthenticated] = useState(false); - - useEffect(() => { - const hasAccessToken = checkAuthentication(); - - if (!hasAccessToken) { - router.push('/login'); - } else { - setIsAuthenticated(hasAccessToken); - } - }, [router]); - - if (!isAuthenticated) { - return null; - } else { - return <WrappedComponent {...props} />; - } - }; - - return Component; -}; - -export default withAuthRequired; diff --git a/src/hocs/withScrollLockOnFocus.tsx b/src/hocs/withScrollLockOnFocus.tsx deleted file mode 100644 index 034462b75..000000000 --- a/src/hocs/withScrollLockOnFocus.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef, Ref, useState } from 'react'; - -import useRemoveVerticalScroll from '@/hooks/useRemoveVerticalScroll'; - -const withScrollLockOnFocus = <P extends object>( - WrappedComponent: React.ComponentType<P> -) => { - const Component = (props: P, ref: Ref<HTMLElement>) => { - const [focus, setFocus] = useState(false); - useRemoveVerticalScroll({ enabled: focus }); - - return ( - <WrappedComponent - {...props} - onFocus={() => setFocus(true)} - onBlur={() => setFocus(false)} - ref={ref} - /> - ); - }; - - return forwardRef(Component); -}; - -export default withScrollLockOnFocus; diff --git a/src/hooks/auth/atoms/index.ts b/src/hooks/auth/atoms/index.ts new file mode 100644 index 000000000..db67d71fd --- /dev/null +++ b/src/hooks/auth/atoms/index.ts @@ -0,0 +1,22 @@ +import { atom, useRecoilState, useResetRecoilState } from 'recoil'; + +import { ACCESS_TOKEN_STORAGE_KEY } from '@/constants/index'; +import webStorage from '@/utils/storage'; + +const accessTokenAtom = atom<string | null>({ + key: 'accessToken', + default: null, + effects: [ + ({ setSelf }) => { + const storage = webStorage(ACCESS_TOKEN_STORAGE_KEY); + const storedToken = storage.get(); + + storedToken && setSelf(storedToken); + }, + ], +}); + +const useAccessToken = () => useRecoilState(accessTokenAtom); +const useResetAccessToken = () => useResetRecoilState(accessTokenAtom); + +export { useAccessToken, useResetAccessToken }; diff --git a/src/hooks/auth/index.ts b/src/hooks/auth/index.ts new file mode 100644 index 000000000..7fa087d9f --- /dev/null +++ b/src/hooks/auth/index.ts @@ -0,0 +1 @@ +export { default as useAuth } from './useAuth'; diff --git a/src/hooks/auth/useAuth.ts b/src/hooks/auth/useAuth.ts new file mode 100644 index 000000000..6a7783a3b --- /dev/null +++ b/src/hooks/auth/useAuth.ts @@ -0,0 +1,23 @@ +import { ACCESS_TOKEN_STORAGE_KEY } from '@/constants/index'; +import webStorage from '@/utils/storage'; + +const useAuth = () => { + const storage = webStorage(ACCESS_TOKEN_STORAGE_KEY); + const accessToken = storage.get(); + + const setAuth = (newToken: string) => { + storage.set(newToken); + }; + + const removeAuth = () => { + storage.remove(); + }; + + return { + isAuthed: !!accessToken, + setAuth, + removeAuth, + }; +}; + +export default useAuth; diff --git a/src/hooks/group/useJoinBookGroup.ts b/src/hooks/group/useJoinBookGroup.ts deleted file mode 100644 index 1894392ad..000000000 --- a/src/hooks/group/useJoinBookGroup.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { isAxiosErrorWithCustomCode } from '@/utils/helpers'; -import { SERVICE_ERROR_MESSAGE } from '@/constants'; -import groupAPI from '@/apis/group'; -import useToast from '@/components/common/Toast/useToast'; -import { useBookGroupJoinInfo } from '@/queries/group/useBookGroupQuery'; - -const useJoinBookGroup = (groupId: number) => { - const { data: bookGroupJoinData, refetch } = useBookGroupJoinInfo(groupId); - const { isExpired, isMember, hasPassword, question } = bookGroupJoinData; - - const toast = useToast(); - - const joinBookGroup = async ({ - answer, - onSuccess, - }: { - answer?: string; - onSuccess?: () => void; - }) => { - try { - await groupAPI.joinGroup({ bookGroupId: groupId, password: answer }); - toast.show({ message: '🎉 모임에 가입되었어요! 🎉', type: 'success' }); - onSuccess && onSuccess(); - } catch (error) { - if (!isAxiosErrorWithCustomCode(error)) { - toast.show({ message: '잠시 후 다시 시도해주세요', type: 'error' }); - return; - } - - const { code } = error.response.data; - const message = SERVICE_ERROR_MESSAGE[code]; - const isWrongAnswerErrorCode = code === 'BG3'; - - if (isWrongAnswerErrorCode) { - toast.show({ - message: '정답이 아니에요. 다시 시도해주세요!', - type: 'error', - }); - return; - } - - toast.show({ message, type: 'error' }); - } - }; - - return { - isExpired, - isMember, - hasPassword, - question, - refetch, - joinBookGroup, - }; -}; - -export default useJoinBookGroup; diff --git a/src/hooks/toast/atoms/index.ts b/src/hooks/toast/atoms/index.ts new file mode 100644 index 000000000..6d5cb7af7 --- /dev/null +++ b/src/hooks/toast/atoms/index.ts @@ -0,0 +1,12 @@ +import { atom } from 'recoil'; + +export interface ToastAtom { + id: number; + message: string; + duration?: number; +} + +export const toastsAtom = atom<ToastAtom[]>({ + key: 'toasts', + default: [], +}); diff --git a/src/hooks/toast/index.ts b/src/hooks/toast/index.ts new file mode 100644 index 000000000..1077520cf --- /dev/null +++ b/src/hooks/toast/index.ts @@ -0,0 +1 @@ +export { default as useToast } from './useToast'; diff --git a/src/hooks/toast/useToast.ts b/src/hooks/toast/useToast.ts new file mode 100644 index 000000000..1d6759cc1 --- /dev/null +++ b/src/hooks/toast/useToast.ts @@ -0,0 +1,29 @@ +import { useCallback } from 'react'; +import { useSetRecoilState } from 'recoil'; +import { ToastAtom, toastsAtom } from './atoms'; + +const useToast = () => { + const setToasts = useSetRecoilState(toastsAtom); + + const hideToast = useCallback( + (toastId: ToastAtom['id']) => { + setToasts(currentToasts => + currentToasts.filter(toast => toast.id !== toastId) + ); + }, + [setToasts] + ); + + const showToast = useCallback( + ({ message, duration = 2000 }: Pick<ToastAtom, 'message' | 'duration'>) => { + const id = new Date().getTime(); + setToasts(currentToasts => [...currentToasts, { message, duration, id }]); + setTimeout(() => hideToast(id), 500 + duration); + }, + [hideToast, setToasts] + ); + + return { showToast }; +}; + +export default useToast; diff --git a/src/hooks/useDisclosure.ts b/src/hooks/useDisclosure.ts deleted file mode 100644 index 8310847a7..000000000 --- a/src/hooks/useDisclosure.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { useState } from 'react'; - -const useDisclosure = () => { - const [isOpen, setIsOpen] = useState<boolean>(false); - - const onOpen = () => { - setIsOpen(true); - }; - - const onClose = () => { - setIsOpen(false); - }; - - return { isOpen, onOpen, onClose }; -}; - -export default useDisclosure; diff --git a/src/hooks/useFunnel.tsx b/src/hooks/useFunnel.tsx deleted file mode 100644 index 3241a6532..000000000 --- a/src/hooks/useFunnel.tsx +++ /dev/null @@ -1,93 +0,0 @@ -'use client'; - -import { useEffect, useMemo, useRef } from 'react'; -import { usePathname, useRouter, useSearchParams } from 'next/navigation'; - -import { assert } from '@/utils/assert'; - -import type { FunnelProps, StepProps } from '@/components/common/Funnel'; -import { Funnel, Step } from '@/components/common/Funnel'; - -export type NonEmptyArray<T> = readonly [T, ...T[]]; - -type RouteFunnelProps<Steps extends NonEmptyArray<string>> = Omit< - FunnelProps<Steps>, - 'steps' | 'step' ->; - -type FunnelComponent<Steps extends NonEmptyArray<string>> = (( - props: RouteFunnelProps<Steps> -) => JSX.Element) & { - Step: (props: StepProps<Steps>) => JSX.Element; -}; - -const DEFAULT_STEP_QUERY_KEY = 'funnel-step'; - -/** - * 사용자에게 초기 step을 강제하고 싶을 땐 - * option의 initialStep을 작성해 주세요. - */ -export const useFunnel = <Steps extends NonEmptyArray<string>>( - steps: Steps, - options?: { - stepQueryKey?: string; - initialStep?: Steps[number]; - onStepChange?: (name: Steps[number]) => void; - } -): readonly [ - FunnelComponent<Steps>, - (step: Steps[number]) => void, - Steps[number] -] => { - const router = useRouter(); - const searchParams = useSearchParams(); - const pathname = usePathname(); - - const hasRunOnce = useRef(false); - - const step = searchParams.get('funnel-step') as string; - const stepQueryKey = options?.stepQueryKey ?? DEFAULT_STEP_QUERY_KEY; - - useEffect(() => { - if (options?.initialStep && !hasRunOnce.current) { - hasRunOnce.current = true; - router.replace(pathname); - } - }, [options?.initialStep, router, pathname]); - - assert(steps.length > 0, 'steps가 비어있습니다.'); - - const FunnelComponent = useMemo( - () => - Object.assign( - function RouteFunnel(props: RouteFunnelProps<Steps>) { - const currentStep = step ?? options?.initialStep; - - assert( - currentStep != null, - `표시할 스텝을 ${stepQueryKey} 쿼리 파라미터에 지정해주세요. 쿼리 파라미터가 없을 때 초기 스텝을 렌더하려면 useFunnel의 두 번째 파라미터 options에 initialStep을 지정해주세요.` - ); - - return <Funnel<Steps> steps={steps} step={currentStep} {...props} />; - }, - { - Step, - } - ), - // eslint-disable-next-line react-hooks/exhaustive-deps - [step] - ); - - const setStep = (step: Steps[number]) => { - const params = new URLSearchParams(searchParams.toString()); - params.set('funnel-step', `${step}`); - - return router.replace(`?${params.toString()}`, { shallow: true }); - }; - - return [FunnelComponent, setStep, step] as unknown as readonly [ - FunnelComponent<Steps>, - (step: Steps[number]) => Promise<void>, - Steps[number] - ]; -}; diff --git a/src/hooks/useOutsideClickRef.ts b/src/hooks/useOutsideClickRef.ts deleted file mode 100644 index 62b0721a3..000000000 --- a/src/hooks/useOutsideClickRef.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { RefObject, useEffect, useRef } from 'react'; - -const useOutsideClickRef = <T extends HTMLElement = HTMLElement>( - handler: () => void -) => { - const ref = useRef<T>(null); - - useEffect(() => { - const onClick = (event: MouseEvent) => { - if (ref && isValidEvent(event, ref)) { - handler(); - } - }; - - const doc = getOwnerDocument(ref.current); - - doc.addEventListener('click', onClick); - - return () => { - doc.removeEventListener('click', onClick); - }; - }, [handler]); - - return ref; -}; - -const isValidEvent = (event: Event, ref: RefObject<HTMLElement>) => { - const target = event.target as HTMLElement; - - if (target) { - const doc = getOwnerDocument(target); - if (!doc.contains(target)) return false; - } - - return !ref.current?.contains(target); -}; - -const getOwnerDocument = (node?: Element | null): Document => { - return node?.ownerDocument ?? document; -}; - -export default useOutsideClickRef; diff --git a/src/hooks/useQueryParams.ts b/src/hooks/useQueryParams.ts deleted file mode 100644 index eed7e94b2..000000000 --- a/src/hooks/useQueryParams.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { useRouter, useSearchParams } from 'next/navigation'; -import { useCallback } from 'react'; - -type RouteOptions = 'push' | 'replace'; - -type QueryParams = { [key: string]: string }; - -const useQueryParams = () => { - const router = useRouter(); - const searchParams = useSearchParams(); - - const queryParams = searchParams.toString(); - - const getQueryParam = useCallback( - (queryKey: string) => { - const queryParam = searchParams.get(queryKey); - - return queryParam; - }, - [searchParams] - ); - - const setQueryParams = useCallback( - (queryParams: QueryParams, option?: RouteOptions) => { - const prevParams = new URLSearchParams(searchParams.toString()); - - for (const queryKey in queryParams) { - prevParams.set(queryKey, queryParams[queryKey]); - } - - const newQueryParams = prevParams.toString(); - - switch (option) { - case 'replace': - router.replace(`?${newQueryParams}`, { shallow: true }); - return; - case 'push': - default: - router.push(`?${newQueryParams}`, { shallow: true }); - return; - } - }, - [router, searchParams] - ); - - const removeQueryParam = useCallback( - (queryKey: string, option?: RouteOptions) => { - const prevParams = new URLSearchParams(searchParams.toString()); - if (!prevParams.has(queryKey)) return; - prevParams.delete(queryKey); - - const newQueryParams = prevParams.toString(); - - switch (option) { - case 'replace': - router.replace(`?${newQueryParams}`, { shallow: true }); - return; - case 'push': - default: - router.push(`?${newQueryParams}`, { shallow: true }); - return; - } - }, - [router, searchParams] - ); - - return { queryParams, getQueryParam, setQueryParams, removeQueryParam }; -}; - -export default useQueryParams; diff --git a/src/hooks/useQueryWithSuspense.ts b/src/hooks/useQueryWithSuspense.ts index 835f2b1a1..349be76b8 100644 --- a/src/hooks/useQueryWithSuspense.ts +++ b/src/hooks/useQueryWithSuspense.ts @@ -7,7 +7,7 @@ import { UseQueryResult, } from '@tanstack/react-query'; -export type UseQueryOptionWithoutSuspense< +export type useQueryOptionWithOutSuspense< TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, @@ -22,7 +22,7 @@ const useQueryWithSuspense = < >( queryKey: TQueryKey, queryFunction?: QueryFunction<TQueryFnData, TQueryKey>, - queryOptions?: UseQueryOptionWithoutSuspense< + queryOptions?: useQueryOptionWithOutSuspense< TQueryFnData, TError, TData, diff --git a/src/hooks/useRemoveVerticalScroll.ts b/src/hooks/useRemoveVerticalScroll.ts deleted file mode 100644 index 293b5bbb3..000000000 --- a/src/hooks/useRemoveVerticalScroll.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { useCallback, useEffect, useRef } from 'react'; -import { nonPassive } from '@/utils/eventListener'; - -type Options = { - enabled: boolean; -}; - -const getTouchXY = (event: TouchEvent | WheelEvent) => - 'changedTouches' in event - ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] - : [0, 0]; - -const useRemoveVerticalScroll = (options?: Options) => { - const enabled = options ? options.enabled : true; - - const touchStartRef = useRef([0, 0]); - - const scrollTouchStart = useCallback((event: TouchEvent) => { - touchStartRef.current = getTouchXY(event); - }, []); - - const shouldLock = useCallback((event: TouchEvent | WheelEvent) => { - if (!event.target) return; - - const node = event.target as HTMLElement; - const { clientHeight, scrollHeight, scrollTop } = node; - - const touch = getTouchXY(event); - const touchStart = touchStartRef.current; - const deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1]; - - const isDeltaYPositive = deltaY > 0; // scroll down - - const isScrollToTopEnd = !isDeltaYPositive && scrollTop === 0; - const isScrollToBottomEnd = - isDeltaYPositive && scrollTop + clientHeight === scrollHeight; - - if ( - node.tagName !== 'TEXTAREA' || - isScrollToTopEnd || - isScrollToBottomEnd - ) { - if (event.cancelable) { - event.preventDefault(); - } - } - }, []); - - useEffect(() => { - if (!enabled) { - return; - } - - document.addEventListener('wheel', shouldLock, nonPassive); - document.addEventListener('touchmove', shouldLock, nonPassive); - document.addEventListener('touchstart', scrollTouchStart, nonPassive); - - return () => { - document.removeEventListener('wheel', shouldLock, nonPassive); - document.removeEventListener('touchmove', shouldLock, nonPassive); - document.removeEventListener('touchstart', scrollTouchStart, nonPassive); - }; - }, [enabled, shouldLock, scrollTouchStart]); -}; - -export default useRemoveVerticalScroll; diff --git a/src/hooks/useScroll.ts b/src/hooks/useScroll.ts new file mode 100644 index 000000000..a2aefbb73 --- /dev/null +++ b/src/hooks/useScroll.ts @@ -0,0 +1,21 @@ +import debounce from '@/utils/debounce'; +import { useState, useEffect } from 'react'; + +export function useScroll() { + const [scroll, setScroll] = useState<number>(0); + + const listener = () => { + setScroll(window.pageYOffset); + }; + + const delay = 60; + + useEffect(() => { + window.addEventListener('scroll', debounce(listener, delay)); + return () => window.removeEventListener('scroll', listener); + }); + + return { + scroll, + }; +} diff --git a/src/hooks/useToggle.ts b/src/hooks/useToggle.ts new file mode 100644 index 000000000..a51f7d437 --- /dev/null +++ b/src/hooks/useToggle.ts @@ -0,0 +1,10 @@ +import { useState } from 'react'; + +const useToggle = () => { + const [value, setValue] = useState<boolean>(false); + const toggle = () => setValue(value => !value); + + return { value, toggle, setValue }; +}; + +export default useToggle; diff --git a/src/queries/book/key.ts b/src/queries/book/key.ts deleted file mode 100644 index 02b990f83..000000000 --- a/src/queries/book/key.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { APIBook } from '@/types/book'; - -const bookKeys = { - all: ['book'] as const, - details: () => [...bookKeys.all, 'detail'] as const, - detail: (bookId: APIBook['bookId']) => - [...bookKeys.details(), bookId] as const, - bookmark: (bookId: APIBook['bookId']) => - [...bookKeys.detail(bookId), 'bookmark'] as const, - comments: (bookId: APIBook['bookId']) => - [...bookKeys.detail(bookId), 'comments'] as const, - bookSearch: (query: string) => - [...bookKeys.all, 'bookSearch', query] as const, - recentSearch: () => [...bookKeys.all, 'recentSearch'] as const, - bestSeller: () => [...bookKeys.all, 'bestSeller'] as const, -}; - -export default bookKeys; diff --git a/src/queries/book/useBestSellersQuery.ts b/src/queries/book/useBestSellersQuery.ts deleted file mode 100644 index c66e56c25..000000000 --- a/src/queries/book/useBestSellersQuery.ts +++ /dev/null @@ -1,19 +0,0 @@ -import useQueryWithSuspense, { - type UseQueryOptionWithoutSuspense, -} from '@/hooks/useQueryWithSuspense'; - -import bookAPI from '@/apis/book'; -import type { APIBestSellerRes } from '@/types/book'; - -import bookKeys from './key'; - -const useBestSellersQuery = <TData = APIBestSellerRes>( - options?: UseQueryOptionWithoutSuspense<APIBestSellerRes, unknown, TData> -) => - useQueryWithSuspense( - bookKeys.bestSeller(), - () => bookAPI.getBestSellers().then(({ data }) => data), - options - ); - -export default useBestSellersQuery; diff --git a/src/queries/book/useBookCommentPatchMutation.ts b/src/queries/book/useBookCommentPatchMutation.ts new file mode 100644 index 000000000..69178a3bd --- /dev/null +++ b/src/queries/book/useBookCommentPatchMutation.ts @@ -0,0 +1,17 @@ +import bookAPI from '@/apis/book'; + +import { useMutation, useQueryClient } from '@tanstack/react-query'; + +const useBookCommentPatchMutation = () => { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: (data: Parameters<typeof bookAPI.patchComment>[0]) => + bookAPI.patchComment(data).then(({ data }) => data), + onSettled: (_data, _err, { bookId }) => { + queryClient.invalidateQueries(['bookComments', bookId]); + }, + }); +}; + +export default useBookCommentPatchMutation; diff --git a/src/queries/book/useBookCommentsQuery.ts b/src/queries/book/useBookCommentsQuery.ts index 0f641e0ae..82738f809 100644 --- a/src/queries/book/useBookCommentsQuery.ts +++ b/src/queries/book/useBookCommentsQuery.ts @@ -1,56 +1,19 @@ -import { UseQueryOptions } from '@tanstack/react-query'; +import { UseQueryOptions, useQuery } from '@tanstack/react-query'; -import type { - APIBook, - APIBookCommentPagination, - BookComment, -} from '@/types/book'; import bookAPI from '@/apis/book'; -import useQueryWithSuspense from '@/hooks/useQueryWithSuspense'; -import bookKeys from './key'; +import type { APIBook } from '@/types/book'; -const useBookCommentsQuery = <TData = APIBookCommentPagination>( +const useBookCommentsQuery = ( bookId: APIBook['bookId'], - options?: UseQueryOptions< - Awaited<ReturnType<typeof bookAPI.getComments>>['data'], - unknown, - TData + options?: Pick< + UseQueryOptions<Awaited<ReturnType<typeof bookAPI.getComments>>['data']>, + 'onSuccess' | 'onError' > ) => - useQueryWithSuspense( - bookKeys.comments(bookId), + useQuery( + ['bookComments', bookId], () => bookAPI.getComments(bookId).then(({ data }) => data), options ); export default useBookCommentsQuery; - -const transformBookCommentsData = ({ - bookComments, -}: APIBookCommentPagination) => { - return bookComments.map( - ({ contents, createdAt, commentId, userId, userProfileImage, nickname }) => - ({ - id: commentId, - writer: { - id: userId, - profileImageSrc: userProfileImage, - name: nickname, - }, - createdAt, - content: contents, - } as BookComment) - ); -}; - -export const useBookComments = (bookId: APIBook['bookId']) => - useBookCommentsQuery(bookId, { - select: transformBookCommentsData, - }); - -export const useHasBookComment = (bookId: APIBook['bookId']) => - useBookCommentsQuery(bookId, { - select: ({ bookComments }) => - bookComments.filter(comment => comment.writtenByCurrentUser === true) - .length, - }); diff --git a/src/queries/book/useBookInfoQuery.ts b/src/queries/book/useBookInfoQuery.ts index 0475d90de..234b0ee80 100644 --- a/src/queries/book/useBookInfoQuery.ts +++ b/src/queries/book/useBookInfoQuery.ts @@ -1,41 +1,19 @@ -import { UseQueryOptions } from '@tanstack/react-query'; - -import type { APIBook, APIBookDetail, BookDetail } from '@/types/book'; +import { UseQueryOptions, useQuery } from '@tanstack/react-query'; import bookAPI from '@/apis/book'; -import useQueryWithSuspense from '@/hooks/useQueryWithSuspense'; -import bookKeys from './key'; +import type { APIBook } from '@/types/book'; -const useBookInfoQuery = <TData = APIBookDetail>( +const useBookInfoQuery = ( bookId: APIBook['bookId'], - options?: UseQueryOptions<APIBookDetail, unknown, TData> + options?: Pick< + UseQueryOptions<Awaited<ReturnType<typeof bookAPI.getBookInfo>>['data']>, + 'onSuccess' | 'onError' + > ) => - useQueryWithSuspense( - bookKeys.detail(bookId), + useQuery( + ['bookInfo', bookId], () => bookAPI.getBookInfo(bookId).then(({ data }) => data), options ); export default useBookInfoQuery; - -const transformBookData = (data: APIBookDetail) => - ({ - bookId: data.bookId, - title: data.title, - author: data.author, - isbn: data.isbn, - summary: data.contents, - bookUrl: data.url, - imageUrl: data.imageUrl.replace('R120x174.q85', 'R300x0.q100'), - publisher: data.publisher, - } as BookDetail); - -export const useBookInfo = (bookId: APIBook['bookId']) => - useBookInfoQuery(bookId, { - select: transformBookData, - }); - -export const useBookTitle = (bookId: APIBook['bookId']) => - useBookInfoQuery(bookId, { - select: data => data.title, - }); diff --git a/src/queries/book/useBookSearchQuery.ts b/src/queries/book/useBookSearchQuery.ts index ee67008e1..6ef217995 100644 --- a/src/queries/book/useBookSearchQuery.ts +++ b/src/queries/book/useBookSearchQuery.ts @@ -1,7 +1,5 @@ -import { useInfiniteQuery } from '@tanstack/react-query'; - import bookAPI from '@/apis/book'; -import bookKeys from './key'; +import { useInfiniteQuery } from '@tanstack/react-query'; const useBookSearchQuery = ({ query, @@ -13,7 +11,7 @@ const useBookSearchQuery = ({ pageSize: number; }) => useInfiniteQuery( - bookKeys.bookSearch(query), + ['booksearch', query], ({ pageParam = page }) => bookAPI .searchBooks({ query, page: pageParam, pageSize }) @@ -24,7 +22,6 @@ const useBookSearchQuery = ({ }, staleTime: 3000, enabled: !!query, - suspense: true, } ); diff --git a/src/queries/book/useBookUserInfoQuery.ts b/src/queries/book/useBookUserInfoQuery.ts new file mode 100644 index 000000000..54fbfccfb --- /dev/null +++ b/src/queries/book/useBookUserInfoQuery.ts @@ -0,0 +1,19 @@ +import { useQuery, UseQueryOptions } from '@tanstack/react-query'; +import bookAPI from '@/apis/book'; + +const useBookUserInfoQuery = ( + bookId: number, + options?: Pick< + UseQueryOptions< + Awaited<ReturnType<typeof bookAPI.getBookUserInfo>>['data'] + >, + 'enabled' + > +) => + useQuery( + ['bookUserInfo', bookId], + () => bookAPI.getBookUserInfo(bookId).then(({ data }) => data), + options + ); + +export default useBookUserInfoQuery; diff --git a/src/queries/book/useBookmarkUserQuery.ts b/src/queries/book/useBookmarkUserQuery.ts deleted file mode 100644 index bdc5ee9b2..000000000 --- a/src/queries/book/useBookmarkUserQuery.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { UseQueryOptions } from '@tanstack/react-query'; -import { APIBookmarkedUserList } from '@/types/book'; -import bookAPI from '@/apis/book'; -import useQueryWithSuspense from '@/hooks/useQueryWithSuspense'; -import bookKeys from './key'; - -const useBookmarkUserQuery = <TData = APIBookmarkedUserList>( - bookId: number, - options?: UseQueryOptions<APIBookmarkedUserList, unknown, TData> -) => - useQueryWithSuspense( - bookKeys.bookmark(bookId), - () => bookAPI.getBookmarkUserInfo(bookId).then(({ data }) => data), - options - ); - -export default useBookmarkUserQuery; diff --git a/src/queries/book/useCreateBookCommentMutation.ts b/src/queries/book/useCreateBookCommentMutation.ts deleted file mode 100644 index 6581b4b9b..000000000 --- a/src/queries/book/useCreateBookCommentMutation.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { useMutation, useQueryClient } from '@tanstack/react-query'; - -import { APIBook } from '@/types/book'; -import bookAPI from '@/apis/book'; -import bookKeys from './key'; - -const useCreateBookCommentMutation = (bookId: APIBook['bookId']) => { - const queryClient = useQueryClient(); - - return useMutation({ - mutationFn: (newComment: string) => - bookAPI.creaetComment(bookId, newComment).then(({ data }) => data), - onSuccess: () => { - queryClient.invalidateQueries({ queryKey: bookKeys.comments(bookId) }); - }, - }); -}; - -export default useCreateBookCommentMutation; diff --git a/src/queries/book/useDeleteBookCommentMutation.ts b/src/queries/book/useDeleteBookCommentMutation.ts deleted file mode 100644 index ac91ecd31..000000000 --- a/src/queries/book/useDeleteBookCommentMutation.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { useMutation, useQueryClient } from '@tanstack/react-query'; - -import { APIBook, APIBookComment } from '@/types/book'; -import bookAPI from '@/apis/book'; -import bookKeys from './key'; - -const useDeleteBookCommentMutation = (bookId: APIBook['bookId']) => { - const queryClient = useQueryClient(); - - return useMutation({ - mutationFn: (commentId: APIBookComment['commentId']) => - bookAPI.deletComment(bookId, commentId).then(({ data }) => data), - onSuccess: () => { - queryClient.invalidateQueries({ queryKey: bookKeys.comments(bookId) }); - }, - }); -}; - -export default useDeleteBookCommentMutation; diff --git a/src/queries/book/usePatchBookCommentMutation.ts b/src/queries/book/usePatchBookCommentMutation.ts deleted file mode 100644 index 2694b3a4b..000000000 --- a/src/queries/book/usePatchBookCommentMutation.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { useMutation, useQueryClient } from '@tanstack/react-query'; - -import { APIBook, APIBookComment } from '@/types/book'; -import bookAPI from '@/apis/book'; -import bookKeys from './key'; - -const usePatchBookCommentMutation = (bookId: APIBook['bookId']) => { - const queryClient = useQueryClient(); - - return useMutation({ - mutationFn: (data: { - commentId: APIBookComment['commentId']; - comment: string; - }) => bookAPI.patchComment({ bookId, data }).then(({ data }) => data), - onSettled: () => { - queryClient.invalidateQueries({ queryKey: bookKeys.comments(bookId) }); - }, - }); -}; - -export default usePatchBookCommentMutation; diff --git a/src/queries/book/useRecentSearchesQuery.ts b/src/queries/book/useRecentSearchesQuery.ts index c97f9f978..518e3fc15 100644 --- a/src/queries/book/useRecentSearchesQuery.ts +++ b/src/queries/book/useRecentSearchesQuery.ts @@ -1,25 +1,14 @@ -import useQueryWithSuspense, { - type UseQueryOptionWithoutSuspense, -} from '@/hooks/useQueryWithSuspense'; +import { useQuery } from '@tanstack/react-query'; import bookAPI from '@/apis/book'; import type { APIRecentSearches } from '@/types/book'; +import type { QueryOptions } from '@/types/query'; -import bookKeys from './key'; - -const useRecentSearchesQuery = <TData = APIRecentSearches>( - options?: UseQueryOptionWithoutSuspense<APIRecentSearches, unknown, TData> -) => - useQueryWithSuspense( - bookKeys.recentSearch(), +const useRecentSearchesQuery = (options?: QueryOptions<APIRecentSearches>) => + useQuery( + ['recentSearches'], () => bookAPI.getRecentSearches().then(({ data }) => data), options ); export default useRecentSearchesQuery; - -export const useRecentSearchListQuery = ({ enabled }: { enabled: boolean }) => - useRecentSearchesQuery({ - select: ({ bookRecentSearchResponses }) => bookRecentSearchResponses, - enabled, - }); diff --git a/src/queries/book/useUpdateBookmarkMutation.ts b/src/queries/book/useUpdateBookmarkMutation.ts deleted file mode 100644 index 02ff938c7..000000000 --- a/src/queries/book/useUpdateBookmarkMutation.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { useMutation, useQueryClient } from '@tanstack/react-query'; - -import type { APIBook, APIBookmarkedUserList } from '@/types/book'; -import bookAPI from '@/apis/book'; -import bookKeys from './key'; - -const updateBookmark = ({ - bookId, - newValue, -}: { - bookId: APIBook['bookId']; - newValue: boolean; -}) => { - return newValue - ? bookAPI.addBookmark(bookId).then(({ data }) => data) - : bookAPI.removeBookmark(bookId).then(({ data }) => data); -}; - -const useUpdateBookmarkMutation = (bookId: APIBook['bookId']) => { - const queryClient = useQueryClient(); - const bookmarkQueryKey = bookKeys.bookmark(bookId); - - return useMutation({ - mutationFn: (newValue: boolean) => updateBookmark({ bookId, newValue }), - onMutate: async newValue => { - await queryClient.cancelQueries({ queryKey: bookmarkQueryKey }); - - const previousData = - queryClient.getQueryData<APIBookmarkedUserList>(bookmarkQueryKey); - - if (previousData) { - // 낙관적 업데이트 - queryClient.setQueryData<APIBookmarkedUserList>(bookmarkQueryKey, { - ...previousData, - isInMyBookshelf: newValue, - }); - } - - return { previousData }; - }, - onError: (_err, _variables, context) => { - if (!context || !context.previousData) { - return; - } - - queryClient.setQueryData<APIBookmarkedUserList>( - bookmarkQueryKey, - context.previousData - ); - }, - onSettled: () => { - queryClient.invalidateQueries({ queryKey: bookmarkQueryKey }); - }, - }); -}; - -export default useUpdateBookmarkMutation; diff --git a/src/queries/bookshelf/key.ts b/src/queries/bookshelf/key.ts deleted file mode 100644 index 3264767b1..000000000 --- a/src/queries/bookshelf/key.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { APIBookshelf } from '@/types/bookshelf'; - -const bookShelfKeys = { - all: ['bookShelf'] as const, - info: (bookshelfId: APIBookshelf['bookshelfId']) => - [...bookShelfKeys.all, bookshelfId] as const, - books: (bookshelfId: APIBookshelf['bookshelfId']) => - [...bookShelfKeys.all, bookshelfId, 'books'] as const, - summary: (userId: string) => [...bookShelfKeys.all, 'summary', userId], -}; - -export default bookShelfKeys; diff --git a/src/queries/bookshelf/useBookShelfBookListQuery.ts b/src/queries/bookshelf/useBookShelfBookListQuery.ts deleted file mode 100644 index 427bc7a45..000000000 --- a/src/queries/bookshelf/useBookShelfBookListQuery.ts +++ /dev/null @@ -1,37 +0,0 @@ -import bookshelfAPI from '@/apis/bookshelf'; -import { APIBookshelf } from '@/types/bookshelf'; -import { useInfiniteQuery } from '@tanstack/react-query'; -import bookShelfKeys from './key'; - -const useBookShelfBooksQuery = ({ - bookshelfId, -}: { - bookshelfId: APIBookshelf['bookshelfId']; -}) => - useInfiniteQuery({ - queryKey: bookShelfKeys.books(bookshelfId), - queryFn: ({ pageParam = '' }) => - bookshelfAPI - .getBookshelfBooks(bookshelfId, pageParam) - .then(response => response.data), - getNextPageParam: lastPage => - !lastPage.isLast ? lastPage.books[15].bookshelfItemId : undefined, - staleTime: 3000, - - select: data => { - const pages = data.pages.map(({ books, ...page }) => { - const newBooks = []; - for (let i = 0; i < books.length; i += 4) { - newBooks.push(books.slice(i, i + 4)); - } - return { ...page, books: newBooks }; - }); - - return { - pages, - pageParams: [...data.pageParams], - }; - }, - }); - -export default useBookShelfBooksQuery; diff --git a/src/queries/bookshelf/useBookShelfInfoQuery.ts b/src/queries/bookshelf/useBookShelfInfoQuery.ts deleted file mode 100644 index c6230a80d..000000000 --- a/src/queries/bookshelf/useBookShelfInfoQuery.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { UseQueryOptions } from '@tanstack/react-query'; -import { APIBookshelfInfo } from '@/types/bookshelf'; -import useQueryWithSuspense from '@/hooks/useQueryWithSuspense'; -import bookshelfAPI from '@/apis/bookshelf'; -import bookShelfKeys from './key'; - -const useBookShelfInfoQuery = <TData = APIBookshelfInfo>( - bookshelfId: APIBookshelfInfo['bookshelfId'], - options?: UseQueryOptions<APIBookshelfInfo, unknown, TData> -) => - useQueryWithSuspense( - bookShelfKeys.info(bookshelfId), - () => - bookshelfAPI - .getBookshelfInfo(bookshelfId) - .then(response => response.data), - options - ); - -export default useBookShelfInfoQuery; diff --git a/src/queries/bookshelf/useBookshelfBookListQuery/index.ts b/src/queries/bookshelf/useBookshelfBookListQuery/index.ts new file mode 100644 index 000000000..69175a720 --- /dev/null +++ b/src/queries/bookshelf/useBookshelfBookListQuery/index.ts @@ -0,0 +1,23 @@ +import bookshelfAPI from '@/apis/bookshelf'; +import { APIBookshelf } from '@/types/bookshelf'; +import { useInfiniteQuery } from '@tanstack/react-query'; + +const useBookshelfBooksQuery = ({ + bookshelfId, +}: { + bookshelfId: APIBookshelf['bookshelfId']; +}) => + useInfiniteQuery( + ['bookshelfBooks'], + ({ pageParam = '' }) => + bookshelfAPI + .getBookshelfBooks(bookshelfId, pageParam) + .then(response => response.data), + { + getNextPageParam: lastPage => + !lastPage.isLast ? lastPage.books[15].bookshelfItemId : undefined, + staleTime: 3000, + } + ); + +export default useBookshelfBooksQuery; diff --git a/src/queries/bookshelf/useBookshelfInfoQuery/index.ts b/src/queries/bookshelf/useBookshelfInfoQuery/index.ts new file mode 100644 index 000000000..d986a867d --- /dev/null +++ b/src/queries/bookshelf/useBookshelfInfoQuery/index.ts @@ -0,0 +1,14 @@ +import bookshelfAPI from '@/apis/bookshelf'; +import { APIBookshelfInfo } from '@/types/bookshelf'; +import { useQuery } from '@tanstack/react-query'; + +const useBookshelfInfoQuery = ({ + bookshelfId, +}: { + bookshelfId: APIBookshelfInfo['bookshelfId']; +}) => + useQuery(['bookshelfInfo', bookshelfId], () => + bookshelfAPI.getBookshelfInfo(bookshelfId).then(response => response.data) + ); + +export default useBookshelfInfoQuery; diff --git a/src/queries/bookshelf/useBookshelfLikeMutation.ts b/src/queries/bookshelf/useBookshelfLikeMutation.ts new file mode 100644 index 000000000..03124e5ca --- /dev/null +++ b/src/queries/bookshelf/useBookshelfLikeMutation.ts @@ -0,0 +1,87 @@ +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import type { APIBookshelfInfo } from '@/types/bookshelf'; +import bookshelfAPI from '@/apis/bookshelf'; + +export const useBookshelfLike = ( + bookshelfId: APIBookshelfInfo['bookshelfId'] +) => { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: async () => bookshelfAPI.likeBookshelf(bookshelfId), + onMutate: async () => { + await queryClient.cancelQueries(['bookshelfInfo', bookshelfId]); + + const oldData = queryClient.getQueryData<APIBookshelfInfo>([ + 'bookshelfInfo', + bookshelfId, + ]); + + if (oldData) { + const newData: APIBookshelfInfo = { + ...oldData, + isLiked: !oldData.isLiked, + likeCount: oldData.likeCount + 1, + }; + + queryClient.setQueryData<APIBookshelfInfo>( + ['bookshelfInfo', bookshelfId], + newData + ); + } + + return { oldData }; + }, + onError: (_error, _value, context) => { + queryClient.setQueryData( + ['bookshelfInfo', bookshelfId], + context?.oldData + ); + }, + onSettled: () => { + queryClient.invalidateQueries(['bookshelfInfo', bookshelfId]); + }, + }); +}; + +export const useBookshelfUnlike = ( + bookshelfId: APIBookshelfInfo['bookshelfId'] +) => { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: async () => bookshelfAPI.unlikeBookshelf(bookshelfId), + onMutate: async () => { + await queryClient.cancelQueries(['bookshelfInfo', bookshelfId]); + + const oldData = queryClient.getQueryData<APIBookshelfInfo>([ + 'bookshelfInfo', + bookshelfId, + ]); + + if (oldData) { + const newData: APIBookshelfInfo = { + ...oldData, + isLiked: !oldData.isLiked, + likeCount: oldData.likeCount - 1, + }; + + queryClient.setQueryData<APIBookshelfInfo>( + ['bookshelfInfo', bookshelfId], + newData + ); + } + + return { oldData }; + }, + onError: (_error, _value, context) => { + queryClient.setQueryData( + ['bookshelfInfo', bookshelfId], + context?.oldData + ); + }, + onSettled: () => { + queryClient.invalidateQueries(['bookshelfInfo', bookshelfId]); + }, + }); +}; diff --git a/src/queries/bookshelf/useMutateBookshelfLikeQuery.ts b/src/queries/bookshelf/useMutateBookshelfLikeQuery.ts deleted file mode 100644 index 97c797485..000000000 --- a/src/queries/bookshelf/useMutateBookshelfLikeQuery.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { useMutation, useQueryClient } from '@tanstack/react-query'; -import type { APIBookshelfInfo } from '@/types/bookshelf'; -import bookshelfAPI from '@/apis/bookshelf'; -import bookShelfKeys from './key'; - -const useMutateBookshelfLikeQuery = ( - bookshelfId: APIBookshelfInfo['bookshelfId'] -) => { - const queryClient = useQueryClient(); - - return useMutation({ - mutationFn: async (isLiked: APIBookshelfInfo['isLiked']) => - !isLiked - ? bookshelfAPI.likeBookshelf(bookshelfId) - : bookshelfAPI.unlikeBookshelf(bookshelfId), - onMutate: async () => { - await queryClient.cancelQueries(bookShelfKeys.info(bookshelfId)); - - const prevData = queryClient.getQueryData<APIBookshelfInfo>( - bookShelfKeys.info(bookshelfId) - ); - - if (prevData) { - const newData: APIBookshelfInfo = { - ...prevData, - isLiked: !prevData.isLiked, - likeCount: prevData.isLiked - ? prevData.likeCount - 1 - : prevData.likeCount + 1, - }; - - queryClient.setQueryData<APIBookshelfInfo>( - bookShelfKeys.info(bookshelfId), - newData - ); - } - - return { prevData }; - }, - onError: (_error, _value, context) => { - queryClient.setQueryData( - bookShelfKeys.info(bookshelfId), - context?.prevData - ); - }, - onSettled: () => { - queryClient.invalidateQueries(bookShelfKeys.info(bookshelfId)); - }, - }); -}; - -export default useMutateBookshelfLikeQuery; diff --git a/src/queries/bookshelf/useMySummaryBookShelfQuery.ts b/src/queries/bookshelf/useMySummaryBookShelfQuery.ts deleted file mode 100644 index 4d7c00bcb..000000000 --- a/src/queries/bookshelf/useMySummaryBookShelfQuery.ts +++ /dev/null @@ -1,15 +0,0 @@ -import bookshelfAPI from '@/apis/bookshelf'; -import type { APIBookshelf } from '@/types/bookshelf'; -import type { QueryOptions } from '@/types/query'; - -import useQueryWithSuspense from '@/hooks/useQueryWithSuspense'; -import bookShelfKeys from './key'; - -const useMySummaryBookshelfQuery = (options?: QueryOptions<APIBookshelf>) => - useQueryWithSuspense( - bookShelfKeys.summary('me'), - () => bookshelfAPI.getMySummaryBookshelf().then(({ data }) => data), - options - ); - -export default useMySummaryBookshelfQuery; diff --git a/src/queries/bookshelf/useMySummaryBookshelfQuery/index.ts b/src/queries/bookshelf/useMySummaryBookshelfQuery/index.ts new file mode 100644 index 000000000..a359cd562 --- /dev/null +++ b/src/queries/bookshelf/useMySummaryBookshelfQuery/index.ts @@ -0,0 +1,13 @@ +import bookshelfAPI from '@/apis/bookshelf'; +import { useQuery } from '@tanstack/react-query'; +import type { QueryOptions } from '@/types/query'; +import type { APIBookshelf } from '@/types/bookshelf'; + +const useMySummaryBookshlefQuery = (options?: QueryOptions<APIBookshelf>) => + useQuery( + ['summaryBookshlef', 'me'], + () => bookshelfAPI.getMySummaryBookshelf().then(({ data }) => data), + options + ); + +export default useMySummaryBookshlefQuery; diff --git a/src/queries/bookshelf/useUserSummaryBookShelfQuery.ts b/src/queries/bookshelf/useUserSummaryBookshelfQuery/index.ts similarity index 60% rename from src/queries/bookshelf/useUserSummaryBookShelfQuery.ts rename to src/queries/bookshelf/useUserSummaryBookshelfQuery/index.ts index 891976497..33f3da4de 100644 --- a/src/queries/bookshelf/useUserSummaryBookShelfQuery.ts +++ b/src/queries/bookshelf/useUserSummaryBookshelfQuery/index.ts @@ -1,19 +1,18 @@ import bookshelfAPI from '@/apis/bookshelf'; +import { useQuery } from '@tanstack/react-query'; import type { QueryOptions } from '@/types/query'; import type { APIUser } from '@/types/user'; import type { APIBookshelf } from '@/types/bookshelf'; -import bookShelfKeys from './key'; -import useQueryWithSuspense from '@/hooks/useQueryWithSuspense'; -const useUserSummaryBookshelfQuery = ( +const useUserSummaryBookshlefQuery = ( userId: APIUser['userId'], options?: QueryOptions<APIBookshelf> ) => - useQueryWithSuspense( - bookShelfKeys.summary(String(userId)), + useQuery( + ['summaryBookshlef', String(userId)], () => bookshelfAPI.getUserSummaryBookshelf({ userId }).then(({ data }) => data), options ); -export default useUserSummaryBookshelfQuery; +export default useUserSummaryBookshlefQuery; diff --git a/src/queries/group/key.ts b/src/queries/group/key.ts deleted file mode 100644 index f3e4171b9..000000000 --- a/src/queries/group/key.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { APIGroupDetail } from '@/types/group'; - -const bookGroupKeys = { - all: ['bookGroup'] as const, - details: () => [...bookGroupKeys.all, 'detail'] as const, - detail: (id: APIGroupDetail['bookGroupId']) => - [...bookGroupKeys.details(), id] as const, - comments: (id: APIGroupDetail['bookGroupId']) => - [...bookGroupKeys.details(), id, 'comments'] as const, - me: () => [...bookGroupKeys.all, 'me'], -}; - -export default bookGroupKeys; diff --git a/src/queries/group/useBookGroupCommentsQuery.ts b/src/queries/group/useBookGroupCommentsQuery.ts deleted file mode 100644 index 17578d036..000000000 --- a/src/queries/group/useBookGroupCommentsQuery.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { - APIGroupCommentPagination, - APIGroupDetail, - BookGroupComment, -} from '@/types/group'; - -import GroupAPI from '@/apis/group'; -import bookGroupKeys from './key'; -import useQueryWithSuspense, { - UseQueryOptionWithoutSuspense, -} from '@/hooks/useQueryWithSuspense'; - -const transformComments = ({ bookGroupComments }: APIGroupCommentPagination) => - bookGroupComments.map<BookGroupComment>(comment => ({ - id: comment.commentId, - writer: { - id: comment.userId, - profileImageSrc: comment.userProfileImage, - name: comment.nickname, - }, - createdAt: comment.createdAt, - content: comment.contents, - })); - -const useBookGroupCommentsQuery = <TData = APIGroupCommentPagination>( - groupId: APIGroupDetail['bookGroupId'], - options?: UseQueryOptionWithoutSuspense< - APIGroupCommentPagination, - unknown, - TData - > -) => - useQueryWithSuspense( - bookGroupKeys.comments(groupId), - () => - GroupAPI.getGroupComments({ bookGroupId: groupId }).then( - ({ data }) => data - ), - options - ); - -export default useBookGroupCommentsQuery; - -export const useBookGroupComments = (groupId: APIGroupDetail['bookGroupId']) => - useBookGroupCommentsQuery(groupId, { - select: transformComments, - }); diff --git a/src/queries/group/useBookGroupQuery.ts b/src/queries/group/useBookGroupQuery.ts deleted file mode 100644 index cacf376bb..000000000 --- a/src/queries/group/useBookGroupQuery.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { - useMutation, - useQueryClient, - UseQueryOptions, -} from '@tanstack/react-query'; - -import type { - APIGroupDetail, - BookGroupDetail, - APIEditBookGroup, -} from '@/types/group'; -import useQueryWithSuspense from '@/hooks/useQueryWithSuspense'; -import groupAPI from '@/apis/group'; -import { isExpired } from '@/utils/date'; - -import bookGroupKeys from './key'; - -const transformBookGroupDetail = (data: APIGroupDetail) => - ({ - title: data.title, - description: data.introduce, - bookId: data.book.id, - owner: { isMe: data.isOwner, id: data.owner.id }, - date: { start: data.startDate, end: data.endDate }, - memberCount: { current: data.currentMemberCount, max: data.maxMemberCount }, - isPublic: data.isPublic, - isMember: data.isGroupMember, - } as BookGroupDetail); - -export const useBookGroupQuery = <TData = APIGroupDetail>( - groupId: APIGroupDetail['bookGroupId'], - options?: UseQueryOptions<APIGroupDetail, unknown, TData> -) => - useQueryWithSuspense( - bookGroupKeys.detail(groupId), - () => - groupAPI - .getGroupDetailInfo({ bookGroupId: groupId }) - .then(({ data }) => data), - options - ); - -export default useBookGroupQuery; - -export const useBookGroup = (groupId: APIGroupDetail['bookGroupId']) => - useBookGroupQuery(groupId, { - select: transformBookGroupDetail, - }); - -export const useBookGroupTitle = (groupId: APIGroupDetail['bookGroupId']) => - useBookGroupQuery(groupId, { select: data => data.title }); - -export const useBookGroupOwner = (groupId: APIGroupDetail['bookGroupId']) => - useBookGroupQuery(groupId, { - select: data => ({ isMe: data.isOwner, id: data.owner.id }), - }); - -export const useBookGroupJoinInfo = (groupId: APIGroupDetail['bookGroupId']) => - useBookGroupQuery(groupId, { - select: data => ({ - isExpired: isExpired(data.endDate), - isMember: data.isGroupMember, - hasPassword: data.hasJoinPasswd, - question: data.joinQuestion, - }), - }); - -export const useBookGroupEditCurrentInfo = ( - groupId: APIGroupDetail['bookGroupId'] -) => - useBookGroupQuery(groupId, { - select: data => ({ - isOwner: data.isOwner, - title: data.title, - description: data.introduce, - maxMemberCount: data.maxMemberCount, - startDate: data.startDate, - endDate: data.endDate, - }), - }); - -export const useBookGroupInfoMutation = ( - bookGroupId: APIGroupDetail['bookGroupId'] -) => { - const queryClient = useQueryClient(); - - return useMutation({ - mutationFn: (group: Omit<APIEditBookGroup, 'isOwner' | 'startDate'>) => - groupAPI.updateGroupInfo({ bookGroupId, group }).then(({ data }) => data), - onSuccess: () => - queryClient.invalidateQueries({ - queryKey: bookGroupKeys.detail(bookGroupId), - }), - }); -}; diff --git a/src/queries/group/useCreateBookGroupCommentMutation.ts b/src/queries/group/useCreateBookGroupCommentMutation.ts deleted file mode 100644 index d50e6ffa3..000000000 --- a/src/queries/group/useCreateBookGroupCommentMutation.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { useMutation, useQueryClient } from '@tanstack/react-query'; - -import { APIGroup } from '@/types/group'; -import groupAPI from '@/apis/group'; -import bookGroupKeys from './key'; - -const useCreateBookGroupCommentMutation = ( - bookGroupId: APIGroup['bookGroupId'] -) => { - const queryClient = useQueryClient(); - - return useMutation({ - mutationFn: (comment: string) => - groupAPI - .createGroupComment({ bookGroupId, comment }) - .then(({ data }) => data), - onSuccess: () => { - queryClient.invalidateQueries({ - queryKey: bookGroupKeys.comments(bookGroupId), - }); - }, - }); -}; - -export default useCreateBookGroupCommentMutation; diff --git a/src/queries/group/useCreateBookGroupMutation.ts b/src/queries/group/useCreateBookGroupMutation.ts deleted file mode 100644 index 041841d99..000000000 --- a/src/queries/group/useCreateBookGroupMutation.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { useMutation } from '@tanstack/react-query'; - -import type { APICreateGroup } from '@/types/group'; -import groupAPI from '@/apis/group'; - -const useCreateBookGroupMutation = () => { - return useMutation({ - mutationFn: (formData: APICreateGroup) => - groupAPI.createGroup(formData).then(({ data }) => data), - }); -}; - -export default useCreateBookGroupMutation; diff --git a/src/queries/group/useDeleteBookGroupCommentMutation.ts b/src/queries/group/useDeleteBookGroupCommentMutation.ts deleted file mode 100644 index 64d32617a..000000000 --- a/src/queries/group/useDeleteBookGroupCommentMutation.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { useMutation, useQueryClient } from '@tanstack/react-query'; - -import { APIGroup, APIGroupComment } from '@/types/group'; -import groupAPI from '@/apis/group'; -import bookGroupKeys from './key'; - -const useDeleteBookGroupCommentMutation = ( - bookGroupId: APIGroup['bookGroupId'] -) => { - const queryClient = useQueryClient(); - - return useMutation({ - mutationFn: (commentId: APIGroupComment['commentId']) => - groupAPI - .deleteGroupComment({ bookGroupId, commentId }) - .then(({ data }) => data), - onSuccess: () => { - queryClient.invalidateQueries({ - queryKey: bookGroupKeys.comments(bookGroupId), - }); - }, - }); -}; - -export default useDeleteBookGroupCommentMutation; diff --git a/src/queries/group/useDeleteBookGroupMutation.ts b/src/queries/group/useDeleteBookGroupMutation.ts deleted file mode 100644 index 0f748ed25..000000000 --- a/src/queries/group/useDeleteBookGroupMutation.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { useMutation } from '@tanstack/react-query'; - -import type { APIGroup } from '@/types/group'; - -import groupAPI from '@/apis/group'; - -const useDeleteBookGroupMutation = () => { - return useMutation({ - mutationFn: (bookGroupId: APIGroup['bookGroupId']) => - groupAPI.deleteGroup({ bookGroupId }).then(({ data }) => data), - }); -}; - -export default useDeleteBookGroupMutation; diff --git a/src/queries/group/useEntireGroupsQuery.ts b/src/queries/group/useEntireGroupsQuery/index.tsx similarity index 100% rename from src/queries/group/useEntireGroupsQuery.ts rename to src/queries/group/useEntireGroupsQuery/index.tsx diff --git a/src/queries/group/useGroupCommentsQuery/index.tsx b/src/queries/group/useGroupCommentsQuery/index.tsx new file mode 100644 index 000000000..7cc0c1adc --- /dev/null +++ b/src/queries/group/useGroupCommentsQuery/index.tsx @@ -0,0 +1,14 @@ +import GroupAPI from '@/apis/group'; +import { APIGroupDetail } from '@/types/group'; +import { useQuery } from '@tanstack/react-query'; + +const useGroupCommentsQuery = ({ + bookGroupId, +}: { + bookGroupId: APIGroupDetail['bookGroupId']; +}) => + useQuery(['group', bookGroupId, 'comments'], () => + GroupAPI.getGroupComments({ bookGroupId }).then(({ data }) => data) + ); + +export default useGroupCommentsQuery; diff --git a/src/queries/group/useGroupInfoQuery.ts b/src/queries/group/useGroupInfoQuery/index.tsx similarity index 100% rename from src/queries/group/useGroupInfoQuery.ts rename to src/queries/group/useGroupInfoQuery/index.tsx diff --git a/src/queries/group/useMyGroupQuery.ts b/src/queries/group/useMyGroupsQuery/index.ts similarity index 68% rename from src/queries/group/useMyGroupQuery.ts rename to src/queries/group/useMyGroupsQuery/index.ts index 9c11ef519..0359c6916 100644 --- a/src/queries/group/useMyGroupQuery.ts +++ b/src/queries/group/useMyGroupsQuery/index.ts @@ -1,12 +1,11 @@ import GroupAPI from '@/apis/group'; -import useQueryWithSuspense from '@/hooks/useQueryWithSuspense'; +import { useQuery } from '@tanstack/react-query'; import type { QueryOptions } from '@/types/query'; import type { APIGroupPagination } from '@/types/group'; -import bookGroupKeys from './key'; const useMyGroupsQuery = (options?: QueryOptions<APIGroupPagination>) => - useQueryWithSuspense( - bookGroupKeys.me(), + useQuery( + ['groups', 'me'], () => GroupAPI.getMyGroups().then(({ data }) => data), options ); diff --git a/src/queries/group/usePatchBookGroupCommentMutation.ts b/src/queries/group/usePatchBookGroupCommentMutation.ts deleted file mode 100644 index 54bf225be..000000000 --- a/src/queries/group/usePatchBookGroupCommentMutation.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { useMutation, useQueryClient } from '@tanstack/react-query'; - -import { APIGroup, APIGroupComment } from '@/types/group'; -import groupAPI from '@/apis/group'; -import bookGroupKeys from './key'; - -const usePatchBookGroupCommentMutation = ( - bookGroupId: APIGroup['bookGroupId'] -) => { - const queryClient = useQueryClient(); - - return useMutation({ - mutationFn: ({ - commentId, - comment, - }: { - commentId: APIGroupComment['commentId']; - comment: string; - }) => - groupAPI - .updateGroupComment({ bookGroupId, commentId, comment }) - .then(({ data }) => data), - onSettled: () => { - queryClient.invalidateQueries({ - queryKey: bookGroupKeys.comments(bookGroupId), - }); - }, - }); -}; - -export default usePatchBookGroupCommentMutation; diff --git a/src/queries/job/key.ts b/src/queries/job/key.ts deleted file mode 100644 index ee7526382..000000000 --- a/src/queries/job/key.ts +++ /dev/null @@ -1,6 +0,0 @@ -const jobKeys = { - all: ['job'] as const, - category: () => [...jobKeys.all, 'category'] as const, -}; - -export default jobKeys; diff --git a/src/queries/job/useAllJobQuery.ts b/src/queries/job/useAllJobQuery/index.ts similarity index 77% rename from src/queries/job/useAllJobQuery.ts rename to src/queries/job/useAllJobQuery/index.ts index 8a88bbb33..b8e6efd4f 100644 --- a/src/queries/job/useAllJobQuery.ts +++ b/src/queries/job/useAllJobQuery/index.ts @@ -1,8 +1,5 @@ -import { useQuery, UseQueryOptions } from '@tanstack/react-query'; - import jobAPI from '@/apis/job'; - -import jobKeys from '@/queries/job/key'; +import { useQuery, UseQueryOptions } from '@tanstack/react-query'; type Options = Pick< UseQueryOptions<Awaited<ReturnType<typeof jobAPI.getAllJobs>>['data']>, @@ -11,9 +8,9 @@ type Options = Pick< const useAllJobQuery = (options?: Options) => useQuery( - jobKeys.category(), + ['allJob'], () => jobAPI.getAllJobs().then(response => response.data), - { ...options, staleTime: Infinity } + options ); export default useAllJobQuery; diff --git a/src/queries/recommend/useAuthRecommendedBooks.ts b/src/queries/recommend/useAuthRecommendedBooks/index.tsx similarity index 64% rename from src/queries/recommend/useAuthRecommendedBooks.ts rename to src/queries/recommend/useAuthRecommendedBooks/index.tsx index d793ac896..dbe6a10c4 100644 --- a/src/queries/recommend/useAuthRecommendedBooks.ts +++ b/src/queries/recommend/useAuthRecommendedBooks/index.tsx @@ -1,13 +1,12 @@ -import { useQuery } from '@tanstack/react-query'; - +import RecommendAPI from '@/apis/recommend'; import { APIJobGroup } from '@/types/job'; -import recommendAPI from '@/apis/recommend'; +import { useQuery } from '@tanstack/react-query'; const useAuthRecommendedBooks = (jobGroup: APIJobGroup['name']) => useQuery(['authRecommendedBooks', jobGroup], () => - recommendAPI - .getAuthRecommendedBooks(jobGroup) - .then(response => response.data) + RecommendAPI.getAuthRecommendedBooks(jobGroup).then( + response => response.data + ) ); export default useAuthRecommendedBooks; diff --git a/src/queries/recommend/useAuthRecommendedBookshelf.ts b/src/queries/recommend/useAuthRecommendedBookshelf/index.tsx similarity index 64% rename from src/queries/recommend/useAuthRecommendedBookshelf.ts rename to src/queries/recommend/useAuthRecommendedBookshelf/index.tsx index 656f10f7c..007ab485d 100644 --- a/src/queries/recommend/useAuthRecommendedBookshelf.ts +++ b/src/queries/recommend/useAuthRecommendedBookshelf/index.tsx @@ -1,13 +1,12 @@ -import { useQuery } from '@tanstack/react-query'; - +import RecommendAPI from '@/apis/recommend'; import { APIJobGroup } from '@/types/job'; -import recommendAPI from '@/apis/recommend'; +import { useQuery } from '@tanstack/react-query'; const useAuthRecommendedBookshelf = (jobGroup: APIJobGroup['name']) => useQuery(['authRecommendedBookshelf', jobGroup], () => - recommendAPI - .getAuthRecommendedBookshelf(jobGroup) - .then(response => response.data) + RecommendAPI.getAuthRecommendedBookshelf(jobGroup).then( + response => response.data + ) ); export default useAuthRecommendedBookshelf; diff --git a/src/queries/recommend/useUnAuthRecommendedBookshelfQuery.ts b/src/queries/recommend/useUnAuthRecommendedBookshelfQuery/index.tsx similarity index 66% rename from src/queries/recommend/useUnAuthRecommendedBookshelfQuery.ts rename to src/queries/recommend/useUnAuthRecommendedBookshelfQuery/index.tsx index a7b369fad..490518530 100644 --- a/src/queries/recommend/useUnAuthRecommendedBookshelfQuery.ts +++ b/src/queries/recommend/useUnAuthRecommendedBookshelfQuery/index.tsx @@ -1,10 +1,9 @@ +import RecommendAPI from '@/apis/recommend'; import { useQuery } from '@tanstack/react-query'; -import recommendAPI from '@/apis/recommend'; - const useUnAuthRecommendedBookshelfQuery = () => useQuery(['unAuthRecommendedBookshelf'], () => - recommendAPI.getUnAuthRecommendedBookshelf().then(response => response.data) + RecommendAPI.getUnAuthRecommendedBookshelf().then(response => response.data) ); export default useUnAuthRecommendedBookshelfQuery; diff --git a/src/queries/user/key.ts b/src/queries/user/key.ts deleted file mode 100644 index b5434f72b..000000000 --- a/src/queries/user/key.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { APIUser } from '@/types/user'; - -const userKeys = { - all: ['user'] as const, - details: () => [...userKeys.all, 'detail'] as const, - detail: (id: APIUser['userId']) => [...userKeys.details(), id] as const, - me: () => [...userKeys.details(), 'me'] as const, -}; - -export default userKeys; diff --git a/src/queries/user/useMyProfileMutation.ts b/src/queries/user/useMyProfileMutation/index.ts similarity index 99% rename from src/queries/user/useMyProfileMutation.ts rename to src/queries/user/useMyProfileMutation/index.ts index eb43eb33e..00c4ce00a 100644 --- a/src/queries/user/useMyProfileMutation.ts +++ b/src/queries/user/useMyProfileMutation/index.ts @@ -1,5 +1,4 @@ import { useMutation } from '@tanstack/react-query'; - import userAPI from '@/apis/user'; import { APIUser } from '@/types/user'; import { APIJob, APIJobGroup } from '@/types/job'; diff --git a/src/queries/user/useMyProfileQuery.ts b/src/queries/user/useMyProfileQuery.ts index b1cb9662a..f9356487c 100644 --- a/src/queries/user/useMyProfileQuery.ts +++ b/src/queries/user/useMyProfileQuery.ts @@ -1,24 +1,14 @@ import userAPI from '@/apis/user'; import type { APIUser } from '@/types/user'; import useQueryWithSuspense, { - UseQueryOptionWithoutSuspense, + useQueryOptionWithOutSuspense, } from '@/hooks/useQueryWithSuspense'; -import userKeys from './key'; -const useMyProfileQuery = <TData = APIUser>( - options?: UseQueryOptionWithoutSuspense<APIUser, unknown, TData> -) => +const useMyProfileQuery = (options?: useQueryOptionWithOutSuspense<APIUser>) => useQueryWithSuspense( - userKeys.me(), + ['user', 'me'], () => userAPI.getMyProfile().then(({ data }) => data), - { ...options, staleTime: Infinity } + options ); export default useMyProfileQuery; - -export const useMyProfileId = ( - options?: Omit< - UseQueryOptionWithoutSuspense<APIUser, unknown, unknown>, - 'select' - > -) => useMyProfileQuery({ ...options, select: data => data.userId }); diff --git a/src/queries/user/useUserProfileQuery.ts b/src/queries/user/useUserProfileQuery.ts index ac2c183d1..f064c2943 100644 --- a/src/queries/user/useUserProfileQuery.ts +++ b/src/queries/user/useUserProfileQuery.ts @@ -1,17 +1,15 @@ -import type { APIUser, APIUserProfile } from '@/types/user'; +import userAPI from '@/apis/user'; import useQueryWithSuspense, { - UseQueryOptionWithoutSuspense, + useQueryOptionWithOutSuspense, } from '@/hooks/useQueryWithSuspense'; - -import userAPI from '@/apis/user'; -import userKeys from './key'; +import type { APIUser } from '@/types/user'; const useUserProfileQuery = ( userId: APIUser['userId'], - options?: UseQueryOptionWithoutSuspense<APIUserProfile> + options?: useQueryOptionWithOutSuspense<APIUser> ) => useQueryWithSuspense( - userKeys.detail(userId), + ['user', String(userId)], () => userAPI.getUserProfile({ userId }).then(({ data }) => data), options ); diff --git a/src/stories/book/detail/BookInfo.stories.tsx b/src/stories/book/detail/BookInfo.stories.tsx deleted file mode 100644 index c2afb6029..000000000 --- a/src/stories/book/detail/BookInfo.stories.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import BookInfo from '@/components/book/detail/BookInfo'; - -const meta: Meta<typeof BookInfo> = { - title: 'book/detail/BookInfo', - component: BookInfo, -}; - -export default meta; - -type Story = StoryObj<typeof BookInfo>; - -export const Default: Story = { - args: { bookId: 22 }, -}; diff --git a/src/stories/bookGroup/BookGroupStatus.stories.tsx b/src/stories/bookGroup/BookGroupStatus.stories.tsx deleted file mode 100644 index 018edc589..000000000 --- a/src/stories/bookGroup/BookGroupStatus.stories.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import BookGroupStatus from '@/components/bookGroup/BookGroupStatus'; -import { Meta, StoryObj } from '@storybook/react'; - -const meta: Meta<typeof BookGroupStatus> = { - title: 'bookgroup/BookGroupStatus', - component: BookGroupStatus, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof BookGroupStatus>; - -export const Default: Story = { - args: { - start: '2023-12-31', - end: '2024-01-08', - }, -}; diff --git a/src/stories/bookGroup/BookInfoCard.stories.tsx b/src/stories/bookGroup/BookInfoCard.stories.tsx deleted file mode 100644 index a8bb41be5..000000000 --- a/src/stories/bookGroup/BookInfoCard.stories.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import BookInfoCard from '@/components/bookGroup/BookInfoCard'; - -const meta: Meta<typeof BookInfoCard> = { - title: 'bookGroup/BookInfoCard', - component: BookInfoCard, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof BookInfoCard>; - -export const Default: Story = { - args: { bookId: 23 }, -}; - -export const Removable: Story = { - args: { bookId: 23, removable: true }, -}; diff --git a/src/stories/bookGroup/DetailBookGroupCard.stories.tsx b/src/stories/bookGroup/DetailBookGroupCard.stories.tsx deleted file mode 100644 index 26db5221f..000000000 --- a/src/stories/bookGroup/DetailBookGroupCard.stories.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import DetailBookGroupCard from '@/components/bookGroup/DetailBookGroupCard'; - -const meta: Meta<typeof DetailBookGroupCard> = { - title: 'bookgroup/DetailBookGroupCard', - component: DetailBookGroupCard, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof DetailBookGroupCard>; - -export const Default: Story = { - args: { - title: '프롱이 리팩터링 스터디', - description: - '제1차 프롱이 기수연합 독서 스터디 입니다. 마틴 파울러의 저서 ‘리팩터링 2판’과 함께 진행합니다.', - bookImageSrc: 'https://image.yes24.com/goods/89649360/XL', - date: { - start: '2023-10-31', - end: '2023-11-27', - }, - memberCount: 3, - owner: { - name: '소피아', - profileImageSrc: '', - }, - isPublic: false, - commentCount: 12, - bookGroupId: 1, - }, -}; diff --git a/src/stories/bookGroup/SearchGroup.stories.tsx b/src/stories/bookGroup/SearchGroup.stories.tsx deleted file mode 100644 index 6adf06b18..000000000 --- a/src/stories/bookGroup/SearchGroup.stories.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import SearchGroup from '@/components/bookGroup/SearchGroup'; - -const meta: Meta<typeof SearchGroup> = { - title: 'Common/SearchGroup', - component: SearchGroup, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof SearchGroup>; - -const handleClick = () => { - document.getElementById('groupSearching')?.blur(); - alert( - ` - 죄송합니다. - 검색 기능은 현재 준비중에 있습니다. 👀 - ` - ); -}; - -export const Default: Story = { - render: () => <SearchGroup onClick={handleClick} />, -}; diff --git a/src/stories/bookGroup/SimpleBookGroupCard.stories.tsx b/src/stories/bookGroup/SimpleBookGroupCard.stories.tsx deleted file mode 100644 index d3c9a3e43..000000000 --- a/src/stories/bookGroup/SimpleBookGroupCard.stories.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import SimpleBookGroupCard from '@/components/bookGroup/SimpleBookGroupCard'; - -const meta: Meta<typeof SimpleBookGroupCard> = { - title: 'BookGroup/SimpleBookGroupCard', - component: SimpleBookGroupCard, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof SimpleBookGroupCard>; - -export const Default: Story = { - args: { - title: '데일카네기 인간관계론', - imageSource: 'https://image.yes24.com/goods/79297023/XL', - isOwner: false, - bookGroupId: 1, - }, -}; - -export const OwnerCase: Story = { - args: { - title: '데일카네기 인간관계론', - imageSource: 'https://image.yes24.com/goods/79297023/XL', - isOwner: true, - bookGroupId: 1, - }, -}; diff --git a/src/stories/bookGroup/create/steps/EnterTitleStep.stories.tsx b/src/stories/bookGroup/create/steps/EnterTitleStep.stories.tsx deleted file mode 100644 index ee74133c8..000000000 --- a/src/stories/bookGroup/create/steps/EnterTitleStep.stories.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import { FormProvider, useForm } from 'react-hook-form'; - -import type { EnterTitleStepFormValues } from '@/components/bookGroup/create/types'; - -import { appLayoutMeta } from '@/stories/meta'; -import { EnterTitleStep } from '@/components/bookGroup/create/steps'; - -const meta: Meta<typeof EnterTitleStep> = { - title: 'bookGroup/create/steps/EnterTitleStep', - component: EnterTitleStep, - ...appLayoutMeta, -}; - -export default meta; - -type Story = StoryObj<typeof EnterTitleStep>; - -const EnterTitleForm = () => { - const methods = useForm<EnterTitleStepFormValues>({ - mode: 'all', - defaultValues: { - title: '', - }, - }); - - return ( - <FormProvider {...methods}> - <form> - <EnterTitleStep /> - </form> - </FormProvider> - ); -}; - -export const Default: Story = { - render: () => <EnterTitleForm />, -}; diff --git a/src/stories/bookGroup/create/steps/SelectBookStep.stories.tsx b/src/stories/bookGroup/create/steps/SelectBookStep.stories.tsx deleted file mode 100644 index 851dbe5e9..000000000 --- a/src/stories/bookGroup/create/steps/SelectBookStep.stories.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import { FormProvider, useForm } from 'react-hook-form'; - -import type { SelectBookStepFormValues } from '@/components/bookGroup/create/types'; - -import { appLayoutMeta } from '@/stories/meta'; -import { SelectBookStep } from '@/components/bookGroup/create/steps'; - -const meta: Meta<typeof SelectBookStep> = { - title: 'bookGroup/create/steps/SelectBookStep', - component: SelectBookStep, - ...appLayoutMeta, -}; - -export default meta; - -type Story = StoryObj<typeof SelectBookStep>; - -const RenderSelectBookStep = () => { - const methods = useForm<SelectBookStepFormValues>(); - - const goNextStep = () => { - const book = methods.getValues('book'); - alert([`title: ${book.title}`, `id: ${book.bookId}`].join('\n')); - }; - - return ( - <FormProvider {...methods}> - <form> - <SelectBookStep onNextStep={goNextStep} /> - </form> - </FormProvider> - ); -}; - -export const Default: Story = { - render: RenderSelectBookStep, -}; diff --git a/src/stories/bookGroup/create/steps/SelectJoinTypeStep.stories.tsx b/src/stories/bookGroup/create/steps/SelectJoinTypeStep.stories.tsx deleted file mode 100644 index bb0bb8c86..000000000 --- a/src/stories/bookGroup/create/steps/SelectJoinTypeStep.stories.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import { FormProvider, useForm } from 'react-hook-form'; - -import type { SelectJoinTypeStepFormValues } from '@/components/bookGroup/create/types'; - -import { appLayoutMeta } from '@/stories/meta'; -import { SelectJoinTypeStep } from '@/components/bookGroup/create/steps'; - -const meta: Meta<typeof SelectJoinTypeStep> = { - title: 'bookGroup/create/steps/SelectJoinTypeStep', - component: SelectJoinTypeStep, - ...appLayoutMeta, -}; - -export default meta; - -type Story = StoryObj<typeof SelectJoinTypeStep>; - -const RenderSelectJoinTypeStep = () => { - const methods = useForm<SelectJoinTypeStepFormValues>({ - defaultValues: { - hasJoinPassword: 'false', - }, - mode: 'all', - }); - - const onSubmit = () => { - const { hasJoinPassword, joinPassword, joinQuestion } = methods.getValues(); - alert( - `가입 문제 유무: ${hasJoinPassword}\n가입 문제: ${joinQuestion}\n정답: ${joinPassword}` - ); - }; - - return ( - <FormProvider {...methods}> - <form> - <SelectJoinTypeStep onSubmit={onSubmit} /> - </form> - </FormProvider> - ); -}; - -export const Default: Story = { - render: () => <RenderSelectJoinTypeStep />, -}; diff --git a/src/stories/bookGroup/create/steps/SetUpDetailStep.stories.tsx b/src/stories/bookGroup/create/steps/SetUpDetailStep.stories.tsx deleted file mode 100644 index d350b4d7d..000000000 --- a/src/stories/bookGroup/create/steps/SetUpDetailStep.stories.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import { FormProvider, useForm } from 'react-hook-form'; - -import type { SetUpDetailStepFormValues } from '@/components/bookGroup/create/types'; - -import { getTodayDate } from '@/utils/date'; - -import { appLayoutMeta } from '@/stories/meta'; -import { SetUpDetailStep } from '@/components/bookGroup/create/steps'; - -const meta: Meta<typeof SetUpDetailStep> = { - title: 'bookGroup/create/steps/SetUpDetailStep', - component: SetUpDetailStep, - ...appLayoutMeta, -}; - -export default meta; - -type Story = StoryObj<typeof SetUpDetailStep>; - -const SetUpDetailForm = () => { - const methods = useForm<SetUpDetailStepFormValues>({ - mode: 'all', - defaultValues: { - title: '', - book: { - bookId: 23, - }, - startDate: getTodayDate(), - }, - }); - - const onNextStep = () => { - const { - book, - title, - introduce, - maxMemberCount, - customMemberCount, - startDate, - endDate, - isPublic, - } = methods.getValues(); - alert(` - bookId: ${book.bookId}, - title: ${title}, - introduce: ${introduce}, - maxMemberCount: ${maxMemberCount}, - customMemberCount: ${customMemberCount}, - startDate: ${startDate}, - endDate: ${endDate}, - isPublic: ${isPublic}`); - }; - - return ( - <FormProvider {...methods}> - <form> - <SetUpDetailStep - goToSelectBookStep={() => alert('goToSelectBookStep')} - onNextStep={onNextStep} - /> - </form> - </FormProvider> - ); -}; - -export const Default: Story = { - render: () => <SetUpDetailForm />, -}; diff --git a/src/stories/bookGroup/detail/MemberItem.stories.tsx b/src/stories/bookGroup/detail/MemberItem.stories.tsx deleted file mode 100644 index 73075cd59..000000000 --- a/src/stories/bookGroup/detail/MemberItem.stories.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import MemberItem from '@/components/bookGroup/detail/MemberItem'; - -const meta: Meta<typeof MemberItem> = { - title: 'bookgroup/detail/MemberItem', - component: MemberItem, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof MemberItem>; - -export const Default: Story = { - args: { - profileImageSrc: 'https://bit.ly/dan-abramov', - name: '댄', - job: { group: '개발', name: '프론트엔드 개발자' }, - isOwner: true, - }, -}; diff --git a/src/stories/bookGroup/detail/ShortMemberInfo.stories.tsx b/src/stories/bookGroup/detail/ShortMemberInfo.stories.tsx deleted file mode 100644 index c15bccecf..000000000 --- a/src/stories/bookGroup/detail/ShortMemberInfo.stories.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import ShortMemberInfo from '@/components/bookGroup/detail/ShortMemberInfo'; - -const meta: Meta<typeof ShortMemberInfo> = { - title: 'bookgroup/detail/ShortMemberInfo', - component: ShortMemberInfo, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof ShortMemberInfo>; - -export const Default: Story = { - args: { - members: [ - { - id: 1, - profileImageSrc: 'https://bit.ly/dan-abramov', - name: '댄', - job: { group: '개발', name: '프론트엔드 개발자' }, - isOwner: true, - }, - { - id: 2, - profileImageSrc: 'https://bit.ly/kent-c-dodds', - name: '콜라', - job: { group: '개발', name: '백엔드 개발자' }, - isOwner: false, - }, - { - id: 3, - profileImageSrc: 'https://bit.ly/code-beast', - name: 'Code Beast', - job: { group: '디자인', name: 'UI/UX 디자이너' }, - isOwner: false, - }, - { - id: 4, - profileImageSrc: 'https://bit.ly/ryan-florence', - name: 'Ryan', - job: { group: '개발', name: '유니티 개발자' }, - isOwner: false, - }, - ], - }, -}; diff --git a/src/stories/bookSearch/BestSellers.stories.tsx b/src/stories/bookSearch/BestSellers.stories.tsx deleted file mode 100644 index 109345683..000000000 --- a/src/stories/bookSearch/BestSellers.stories.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import BestSellers from '@/components/bookSearch/BestSellers'; - -const meta: Meta<typeof BestSellers> = { - title: 'bookSearch/BestSellers', - component: BestSellers, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof BestSellers>; - -export const Default: Story = {}; diff --git a/src/stories/bookSearch/RecentSearch.stories.tsx b/src/stories/bookSearch/RecentSearch.stories.tsx deleted file mode 100644 index fb5c860d9..000000000 --- a/src/stories/bookSearch/RecentSearch.stories.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import RecentSearch from '@/components/bookSearch/RecentSearchList'; - -const meta: Meta<typeof RecentSearch> = { - title: 'bookSearch/RecentSearch', - component: RecentSearch, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof RecentSearch>; - -export const Default: Story = { - args: { - keywords: undefined, - onClick: () => alert('선택한 검색어 검색!'), - }, -}; - -export const RecentSearches: Story = { - args: { - keywords: [ - { keyword: '21', modifiedAt: 'now' }, - { keyword: 'I Love It', modifiedAt: 'now' }, - { keyword: 'D (Half Moon)', modifiedAt: 'now' }, - { keyword: 'What 2 Do', modifiedAt: 'now' }, - { keyword: 'Bonnie & Clyde', modifiedAt: 'now' }, - { keyword: '풀어', modifiedAt: 'now' }, - { keyword: '어때', modifiedAt: 'now' }, - ], - onClick: () => alert('선택한 검색어 검색!'), - }, -}; diff --git a/src/stories/bookSearch/SearchResult.stories.tsx b/src/stories/bookSearch/SearchResult.stories.tsx deleted file mode 100644 index 4fa738576..000000000 --- a/src/stories/bookSearch/SearchResult.stories.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import type { APISearchedBook } from '@/types/book'; -import BookSearchList from '@/components/bookSearch/BookSearchList'; - -const meta: Meta<typeof BookSearchList> = { - title: 'bookSearch/BookSearchList', - component: BookSearchList, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof BookSearchList>; - -const SEARCHED_BOOK: APISearchedBook = { - title: '리팩터링', - author: '마틴 파울러', - isbn: '9791162242742', - contents: - '지난 20년간 전 세계 프로그래머에게 리팩터링의 교본이었던 이 책의 1판은, 기존 코드의 디자인을 개선하고 소프트웨어 유지 관리 능력을 향상시켰으며 기존 코드를 이해하기 쉽게 만드는 데 도움을 주었습니다. 간절히 기다려온 이번 개정판에는 프로그래밍 환경의 중요한 변화가 대거 반영되었습니다. 새로운 리팩터링 카탈로그를 자바스크립트 코드로 제시합니다. 리팩터링 원칙부터 클래스 없이 리팩터링하는 방법과 데이터 조직화, 조건부 로직 간소화 방법을 다룹니다. 또한', - url: 'https://search.daum.net/search?w=bookpage&bookId=5326912&q=%EB%A6%AC%ED%8C%A9%ED%84%B0%EB%A7%81', - imageUrl: - 'https://search1.kakaocdn.net/thumb/R120x174.q85/?fname=http%3A%2F%2Ft1.daumcdn.net%2Flbook%2Fimage%2F5326912%3Ftimestamp%3D20231207165435', - publisher: '한빛미디어', - apiProvider: 'KAKAO', -}; - -export const Default: Story = { - args: { - books: [SEARCHED_BOOK, SEARCHED_BOOK, SEARCHED_BOOK, SEARCHED_BOOK], - }, -}; diff --git a/src/stories/bookShelf/BookShelfCard.stories.tsx b/src/stories/bookShelf/BookShelfCard.stories.tsx deleted file mode 100644 index 8c3efe076..000000000 --- a/src/stories/bookShelf/BookShelfCard.stories.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import BookShelfCard from '@/components/bookShelf/BookShelfCard'; -import { Meta, StoryObj } from '@storybook/react'; - -const meta: Meta<typeof BookShelfCard> = { - title: 'bookShelf/BookShelf', - component: BookShelfCard, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof BookShelfCard>; - -// TODO: 스토리북에서 이미지를 불러올 때 발생하는 CORS 이슈 해결 -export const Default: Story = { - args: { - bookshelfId: 9, - bookshelfName: '백민종님의 책장', - books: [ - { - bookId: 3, - title: '리액트를 다루는 기술', - imageUrl: '/images/book-cover/book1.jpeg', - }, - { - bookId: 11, - title: '모던 자바스크립트 Deep Dive', - imageUrl: '/images/book-cover/book2.jpeg', - }, - { - bookId: 22, - title: '이펙티브 타입스크립트', - imageUrl: '/images/book-cover/book3.jpeg', - }, - { - bookId: 23, - title: '리팩터링 2판', - imageUrl: '/images/book-cover/book4.jpeg', - }, - ], - likeCount: 3, - }, -}; diff --git a/src/stories/comment/CommentList.stories.tsx b/src/stories/comment/CommentList.stories.tsx deleted file mode 100644 index d1930e63a..000000000 --- a/src/stories/comment/CommentList.stories.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import CommentList from '@/components/comment/CommentList'; - -const meta: Meta<typeof CommentList> = { - title: 'comment/CommentList', - component: CommentList, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof CommentList>; - -const comments = [ - { - id: 1, - writer: { - id: 2, - profileImageSrc: 'https://bit.ly/kent-c-dodds', - name: 'Kent C. Dodds', - }, - createdAt: '2023.02.05', - content: '추천해요!', - }, - { - id: 2, - writer: { - id: 3, - profileImageSrc: 'https://i.pravatar.cc/300', - name: '김계란', - }, - createdAt: '2023.02.07', - content: '읽고 또 읽어도 새로워요. 🫠', - }, -]; - -export const Default: Story = { - args: { - comments, - isEditableComment: ({ writer }) => writer.id === 3, - }, -}; - -export const Hidden: Story = { - args: { - comments, - isHidden: true, - hiddenText: '멤버만 볼 수 있어요 🥲', - }, -}; - -export const Empty: Story = { - args: { - comments: [], - emptyText: `아직 코멘트가 없어요. - 첫 코멘트의 주인공이 되어보세요!`, - }, -}; diff --git a/src/stories/common/Avatar.stories.tsx b/src/stories/common/Avatar.stories.tsx deleted file mode 100644 index eea91e563..000000000 --- a/src/stories/common/Avatar.stories.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import Avatar from '@/components/common/Avatar'; - -const meta: Meta<typeof Avatar> = { - title: 'Common/Avatar', - component: Avatar, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof Avatar>; - -export const Default: Story = { - args: {}, -}; - -export const WithSrc: Story = { - args: { src: '/icons/logo.svg', name: 'dadok', size: 'large' }, -}; diff --git a/src/stories/common/Badge.stories.tsx b/src/stories/common/Badge.stories.tsx deleted file mode 100644 index de90e2e4c..000000000 --- a/src/stories/common/Badge.stories.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import Badge from '@/components/common/Badge'; -import { IconHeart } from '@public/icons'; -import { Meta, StoryObj } from '@storybook/react'; - -const meta: Meta<typeof Badge> = { - title: 'Common/Badge', - component: Badge, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof Badge>; - -export const Default: Story = { - args: { - size: 'small', - colorScheme: 'main-light', - fontWeight: 'bold', - }, - render: args => <Badge {...args}>프론트엔드 개발자</Badge>, -}; - -export const BookshelfLike: Story = { - args: { - size: 'small', - colorScheme: 'red', - fontWeight: 'bold', - }, - render: args => ( - <Badge {...args}> - <div className="h-[1.3rem] w-[1.3rem] fill-white"> - <IconHeart /> - </div> - 99 - </Badge> - ), -}; - -export const GroupProgress: Story = { - args: { - size: 'large', - colorScheme: 'main', - fontWeight: 'bold', - }, - render: args => <Badge {...args}>진행중</Badge>, -}; - -export const GroupDisclosure: Story = { - args: { - size: 'medium', - colorScheme: 'grey', - fontWeight: 'normal', - }, - render: args => <Badge {...args}>공개</Badge>, -}; diff --git a/src/stories/common/BottomActionButton.stories.tsx b/src/stories/common/BottomActionButton.stories.tsx deleted file mode 100644 index cee9d753f..000000000 --- a/src/stories/common/BottomActionButton.stories.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import BottomActionButton from '@/components/common/BottomActionButton'; -import { Meta, StoryObj } from '@storybook/react'; - -const meta: Meta<typeof BottomActionButton> = { - title: 'Common/BottomActionButton', - component: BottomActionButton, - tags: ['autodocs'], - parameters: { - docs: { - story: { - inline: false, - }, - }, - }, -}; - -export default meta; - -type Story = StoryObj<typeof BottomActionButton>; - -export const Default: Story = { - args: {}, - render: () => ( - <BottomActionButton onClick={() => alert('click!')}> - 다음 - </BottomActionButton> - ), -}; diff --git a/src/stories/common/BottomNavigation.stories.tsx b/src/stories/common/BottomNavigation.stories.tsx deleted file mode 100644 index 7bf66300d..000000000 --- a/src/stories/common/BottomNavigation.stories.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import BottomNavigation from '@/components/common/BottomNavigation'; - -const meta: Meta<typeof BottomNavigation> = { - title: 'Common/BottomNavigation', - component: BottomNavigation, - tags: ['autodocs'], - parameters: { - docs: { - story: { - inline: false, - }, - }, - }, -}; - -export default meta; - -type Story = StoryObj<typeof BottomNavigation>; - -export const Default: Story = { - args: { pathname: '/bookarchive' }, - render: args => <BottomNavigation {...args} />, -}; - -export const Search: Story = { - args: { pathname: '/book/search' }, - render: args => <BottomNavigation {...args} />, -}; - -export const Group: Story = { - args: { pathname: '/group' }, - render: args => <BottomNavigation {...args} />, -}; - -export const Profile: Story = { - args: { pathname: '/profile/me' }, - render: args => <BottomNavigation {...args} />, -}; diff --git a/src/stories/common/BottomSheet.stories.tsx b/src/stories/common/BottomSheet.stories.tsx deleted file mode 100644 index 80fe1cdfa..000000000 --- a/src/stories/common/BottomSheet.stories.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import { IconClose, IconKakao, LogoWithText } from '@public/icons'; -import Button from '@/components/common/Button'; -import BottomSheet from '@/components/common/BottomSheet'; -import useDisclosure from '@/hooks/useDisclosure'; - -const meta: Meta<typeof BottomSheet> = { - title: 'Common/BottomSheet', - component: BottomSheet, - tags: ['autodocs'], -}; - -const DefaultBottomSheet = () => { - const { isOpen, onOpen, onClose } = useDisclosure(); - - return ( - <> - <Button onClick={onOpen}>기본 바텀시트 열기</Button> - <BottomSheet isShow={isOpen} onClose={onClose}> - <p className="text-center text-lg">바텀시트 예시</p> - </BottomSheet> - </> - ); -}; - -const LoginBottomSheet = () => { - const { isOpen, onOpen, onClose } = useDisclosure(); - - return ( - <> - <Button onClick={onOpen}>로그인 바텀시트 열기</Button> - <BottomSheet isShow={isOpen} onClose={onClose}> - <div - className="absolute right-0 top-0 mr-[2rem] mt-[2rem] h-[2rem] w-[2rem] cursor-pointer" - onClick={onClose} - > - <IconClose /> - </div> - <div className="m-auto flex w-full max-w-[38rem] flex-col items-center gap-[2.5rem] px-[2rem] pt-[5rem]"> - <div className="h-auto w-[6rem]"> - <LogoWithText /> - </div> - <p className="text-lg font-bold text-black-700"> - 로그인이 필요한 서비스에요! - </p> - <p className="text-center text-sm font-normal text-placeholder"> - 간편하게 카카오로 로그인을 하고, - <br /> - <span className="text-main-900">다독다독</span>의 다양한 기능을 - 이용해보세요. - </p> - <Button colorScheme="kakao" size="full"> - <div className="flex w-full items-center justify-center gap-[0.7rem]"> - <div className="h-auto w-[1.6rem]"> - <IconKakao /> - </div> - <span className="text-md font-normal">카카오 로그인</span> - </div> - </Button> - </div> - </BottomSheet> - </> - ); -}; - -export default meta; - -type Story = StoryObj<typeof BottomSheet>; - -export const Default: Story = { - render: DefaultBottomSheet, -}; - -export const Login: Story = { - render: LoginBottomSheet, -}; diff --git a/src/stories/common/Button.stories.tsx b/src/stories/common/Button.stories.tsx deleted file mode 100644 index 355f5b650..000000000 --- a/src/stories/common/Button.stories.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import Button from '@/components/common/Button'; - -const meta: Meta<typeof Button> = { - title: 'Common/Button', - component: Button, - tags: ['autodocs'], - argTypes: { - colorScheme: { control: 'select' }, - }, - args: { - size: 'medium', - fill: true, - fullRadius: false, - }, -}; - -export default meta; - -type Story = StoryObj<typeof Button>; - -export const Default: Story = { - render: args => <Button {...args}>버튼</Button>, -}; - -export const Main: Story = { - args: { - colorScheme: 'main', - }, - render: args => <Button {...args}>버튼</Button>, -}; - -export const MainLight: Story = { - args: { - colorScheme: 'main-light', - }, - render: args => <Button {...args}>버튼</Button>, -}; - -export const Warning: Story = { - args: { - colorScheme: 'warning', - }, - render: args => <Button {...args}>버튼</Button>, -}; - -export const Grey: Story = { - args: { - colorScheme: 'grey', - }, - render: args => <Button {...args}>버튼</Button>, -}; - -export const Kakao: Story = { - args: { - colorScheme: 'kakao', - }, - render: args => <Button {...args}>버튼</Button>, -}; - -export const Disabled: Story = { - args: { - disabled: true, - }, - render: args => ( - <div className="flex gap-[0.5rem]"> - <Button {...args} fill={true}> - 버튼 - </Button> - <Button {...args} fill={false}> - 버튼 - </Button> - </div> - ), -}; - -export const RecentSearch: Story = { - args: { - ...MainLight.args, - fullRadius: true, - }, - render: args => <Button {...args}>최근 검색어</Button>, -}; diff --git a/src/stories/common/DatePicker.stories.tsx b/src/stories/common/DatePicker.stories.tsx deleted file mode 100644 index 2d2968e2a..000000000 --- a/src/stories/common/DatePicker.stories.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import { getTodayDate } from '@/utils/date'; -import Button from '@/components/common/Button'; -import DatePicker from '@/components/common/DatePicker'; -import ErrorMessage from '@/components/common/ErrorMessage'; -import { Meta, StoryObj } from '@storybook/react'; -import { SubmitHandler, useForm } from 'react-hook-form'; - -const meta: Meta<typeof DatePicker> = { - title: 'Common/DatePicker', - component: DatePicker, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof DatePicker>; - -export const Default: Story = { - args: { - defaultValue: '2023-06-16', - }, - render: args => <DatePicker {...args} />, -}; - -export const Disabled: Story = { - args: { - disabled: true, - defaultValue: '2023-06-16', - }, - render: args => <DatePicker {...args} />, -}; - -export const UseWithForm: Story = { - render: () => <DatePickerWithForm />, -}; - -type DefaultValues = { - startDate: string; - endDate: string; - hello: number; - hi: string; -}; - -const DatePickerWithForm = () => { - const { - register, - handleSubmit, - formState: { errors }, - } = useForm<DefaultValues>({ - mode: 'all', - defaultValues: { - startDate: getTodayDate(), - endDate: '2030-12-25', - }, - }); - - const handleSubmitForm: SubmitHandler<DefaultValues> = ({ - startDate, - endDate, - }) => { - alert(`startDate: ${startDate} endDate: ${endDate}`); - }; - - return ( - <form - onSubmit={handleSubmit(handleSubmitForm)} - className="flex flex-col gap-[3.2rem]" - > - <div className="flex flex-col gap-[0.5rem]"> - <DatePicker - disabled={true} - min={getTodayDate()} - {...register('startDate', { - required: { value: true, message: '종료일을 입력해주세요' }, - min: { - value: getTodayDate(), - message: '종료일은 시작일보다 늦어야 해요', - }, - })} - /> - {errors.startDate && ( - <ErrorMessage>{errors.startDate.message}</ErrorMessage> - )} - </div> - <div className="flex flex-col gap-[0.5rem]"> - <DatePicker - min={getTodayDate()} - {...register('endDate', { - required: { value: true, message: '종료일을 입력해주세요.' }, - min: { - value: getTodayDate(), - message: '종료일은 시작일보다 늦어야 해요.', - }, - })} - /> - {errors.endDate && ( - <ErrorMessage>{errors.endDate.message}</ErrorMessage> - )} - </div> - <Button - size="full" - type="submit" - onClick={handleSubmit(handleSubmitForm)} - > - Submit - </Button> - </form> - ); -}; diff --git a/src/stories/common/Drawer.stories.tsx b/src/stories/common/Drawer.stories.tsx deleted file mode 100644 index fdc41fa54..000000000 --- a/src/stories/common/Drawer.stories.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import useDisclosure from '@/hooks/useDisclosure'; - -import Button from '@/components/common/Button'; -import Drawer from '@/components/common/Drawer'; - -const meta: Meta<typeof Drawer> = { - title: 'Common/Drawer', - component: Drawer, -}; - -export default meta; - -type Story = StoryObj<typeof Drawer>; - -const BaseDrawer = () => { - const { isOpen, onOpen, onClose } = useDisclosure(); - - return ( - <> - <Button onClick={onOpen}>Drawer 열기</Button> - <Drawer isOpen={isOpen} onClose={onClose}> - <Drawer.Header> - <Drawer.CloseButton position="top-right" /> - <Drawer.Title text="Drawer Header" /> - </Drawer.Header> - <Drawer.Content> - <p>Drawer Content</p> - </Drawer.Content> - </Drawer> - </> - ); -}; - -const AddCommentDrawer = () => { - const { isOpen, onOpen, onClose } = useDisclosure(); - - return ( - <> - <Button onClick={onOpen}>모임 글 작성하기</Button> - <Drawer isOpen={isOpen} onClose={onClose}> - <Drawer.Header> - <Drawer.CloseButton position="top-left" /> - <Drawer.Title text="모임 게시글 작성하기" /> - <Button - colorScheme="main" - fill={false} - size="medium" - className="flex-shrink-0 border-none !p-0" - onClick={onClose} - > - 완료 - </Button> - </Drawer.Header> - <Drawer.Content> - <textarea - className="h-[60vh] w-full resize-none border-none text-md focus:outline-none" - placeholder="책에 대한 여러분의 자유로운 생각을 들려주세요" - /> - </Drawer.Content> - </Drawer> - </> - ); -}; - -export const Default: Story = { - render: BaseDrawer, -}; - -export const AddComment: Story = { - render: AddCommentDrawer, -}; diff --git a/src/stories/common/FloatingButton.stories.tsx b/src/stories/common/FloatingButton.stories.tsx deleted file mode 100644 index c0445d6ae..000000000 --- a/src/stories/common/FloatingButton.stories.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import FloatingButton from '@/components/common/FloatingButton'; - -const meta: Meta<typeof FloatingButton> = { - title: 'Common/FloatingButton', - component: FloatingButton, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof FloatingButton>; - -export const Default: Story = { - args: { - position: 'bottom-right', - }, - render: args => <FloatingButton {...args} />, -}; diff --git a/src/stories/common/Input.stories.tsx b/src/stories/common/Input.stories.tsx deleted file mode 100644 index aa65a19c5..000000000 --- a/src/stories/common/Input.stories.tsx +++ /dev/null @@ -1,148 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import Input from '@/components/common/Input'; -import Button from '@/components/common/Button'; -import { Control, SubmitHandler, useForm, useWatch } from 'react-hook-form'; -import ErrorMessage from '@/components/common/ErrorMessage'; - -const meta: Meta<typeof Input> = { - title: 'Common/Input', - component: Input, - args: { - fontSize: 'small', - }, - argTypes: { - fontSize: { control: 'select', options: ['small', 'large'] }, - }, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof Input>; - -type DefaultValues = { - name: string; - age: number; -}; - -const InputWithUseForm = () => { - const { - register, - handleSubmit, - control, - formState: { errors }, - } = useForm<DefaultValues>({ - mode: 'all', - }); - - const handleSubmitForm: SubmitHandler<DefaultValues> = ({ name, age }) => { - alert(`name: ${name}, age: ${age}`); - }; - - return ( - <form - onSubmit={handleSubmit(handleSubmitForm)} - className="flex w-[43rem] flex-col gap-[1.6rem]" - > - <div className="flex flex-col gap-[0.5rem]"> - <Input - placeholder="이름을 입력해주세요." - {...register('name', { - required: '필수 항목입니다.', - minLength: { value: 2, message: '2자 이상 입력해 주세요.' }, - maxLength: { value: 10, message: '10자 이하 입력해 주세요.' }, - })} - error={!!errors.name} - /> - <div className="flex flex-row-reverse justify-between gap-[0.4rem]"> - <Length control={control} minLength={2} maxLength={10} /> - {errors.name && <ErrorMessage>{errors.name.message}</ErrorMessage>} - </div> - </div> - <div className="flex flex-col gap-[0.5rem]"> - <Input - placeholder="나이를 입력해 주세요." - {...register('age', { - pattern: { value: /^[0-9]+$/, message: '숫자만 입력 가능해요' }, - min: { value: 0, message: '0살부터 입력 가능해요.' }, - })} - error={!!errors.age} - /> - {errors.age && <ErrorMessage>{errors.age.message}</ErrorMessage>} - </div> - <Button - size="large" - type="submit" - onClick={handleSubmit(handleSubmitForm)} - > - Submit - </Button> - </form> - ); -}; - -const Length = ({ - control, - minLength, - maxLength, -}: { - control: Control<DefaultValues>; - minLength: number; - maxLength: number; -}) => { - const nickname = useWatch({ - control, - name: 'name', - }); - - const currentLength = nickname ? nickname.length : 0; - const isError = minLength > currentLength || currentLength > maxLength; - const textColor = isError ? 'text-warning-800 ' : 'text-main-900'; - - return ( - <div> - <span className={textColor}>{currentLength}</span>/{maxLength} - </div> - ); -}; - -export const Default: Story = { - args: { - placeholder: '입력해 주세요.', - }, -}; - -export const Line: Story = { - args: { - fontSize: 'large', - error: false, - }, - render: args => ( - <Input - inputStyle="line" - defaultValue="프롱이 리팩터링 스터디" - placeholder="제목을 작성해주세요" - {...args} - /> - ), -}; - -export const Invalid: Story = { - args: { - placeholder: '입력해 주세요.', - error: true, - }, - argTypes: { - inputStyle: { control: 'select', options: ['default', 'line'] }, - }, - render: args => ( - <div className="flex flex-col gap-[0.5rem]"> - <Input {...args} /> - <ErrorMessage>양식을 확인해주세요.</ErrorMessage> - </div> - ), -}; - -export const WithUseForm: Story = { - render: () => <InputWithUseForm />, -}; diff --git a/src/stories/common/InputLength.stories.tsx b/src/stories/common/InputLength.stories.tsx deleted file mode 100644 index 9e087c863..000000000 --- a/src/stories/common/InputLength.stories.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import { SubmitHandler, useForm } from 'react-hook-form'; - -import Button from '@/components/common/Button'; -import Input from '@/components/common/Input'; -import InputLength from '@/components/common/InputLength'; -import ErrorMessage from '@/components/common/ErrorMessage'; - -const meta: Meta<typeof InputLength> = { - title: 'Common/InputLength', - component: InputLength, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof InputLength>; - -type DefaultValues = { - password: string; -}; - -const InputLengthUseWithForm = () => { - const { - register, - watch, - handleSubmit, - formState: { errors }, - } = useForm<DefaultValues>({ - mode: 'all', - }); - - const handleSubmitForm: SubmitHandler<DefaultValues> = ({ password }) => { - alert(`password: ${password}`); - }; - - return ( - <form - onSubmit={handleSubmit(handleSubmitForm)} - className="flex w-full flex-col gap-[1.6rem]" - > - <div className="flex flex-col gap-[0.5rem]"> - <Input - placeholder="비밀번호를 입력해주세요." - {...register('password', { - required: '필수 항목입니다.', - minLength: { value: 2, message: '2자 이상 입력해 주세요.' }, - maxLength: { value: 10, message: '10자 이하 입력해 주세요.' }, - })} - error={!!errors.password} - /> - <div className="flex flex-row-reverse justify-between gap-[0.4rem]"> - <InputLength - currentLength={watch('password')?.length} - isError={!!errors.password} - maxLength={10} - /> - {errors.password && ( - <ErrorMessage>{errors.password.message}</ErrorMessage> - )} - </div> - </div> - <Button - size="large" - type="submit" - onClick={handleSubmit(handleSubmitForm)} - > - Submit - </Button> - </form> - ); -}; - -export const Default: Story = { - render: () => <InputLengthUseWithForm />, -}; diff --git a/src/stories/common/LikeButton.stories.tsx b/src/stories/common/LikeButton.stories.tsx deleted file mode 100644 index ca0d384b1..000000000 --- a/src/stories/common/LikeButton.stories.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import LikeButton from '@/components/common/LikeButton'; -import { Meta, StoryObj } from '@storybook/react'; - -const meta: Meta<typeof LikeButton> = { - title: 'Common/LikeButton', - component: LikeButton, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof LikeButton>; - -export const Default: Story = { - args: { - isLiked: false, - likeCount: 10, - }, -}; - -export const IsLiked: Story = { - args: { - isLiked: true, - likeCount: 999, - }, -}; diff --git a/src/stories/common/Loading.stories.tsx b/src/stories/common/Loading.stories.tsx deleted file mode 100644 index 7fac5a2da..000000000 --- a/src/stories/common/Loading.stories.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import Loading from '@/components/common/Loading'; - -const meta: Meta<typeof Loading> = { - title: 'Common/Loading', - component: Loading, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof Loading>; - -export const Default: Story = { - args: {}, -}; - -export const Main: Story = { - args: { color: 'main' }, -}; - -export const Grey: Story = { - args: { color: 'grey' }, -}; diff --git a/src/stories/common/Menu.stories.tsx b/src/stories/common/Menu.stories.tsx deleted file mode 100644 index c5103256c..000000000 --- a/src/stories/common/Menu.stories.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import Menu from '@/components/common/Menu'; - -const meta: Meta<typeof Menu> = { - title: 'Common/Menu', - component: Menu, -}; - -export default meta; - -type Story = StoryObj<typeof Menu>; - -export const Dropdown: Story = { - render: () => { - return ( - <div className="flex justify-end"> - <Menu> - <Menu.Toggle /> - <Menu.DropdownList> - <Menu.Item>수정하기</Menu.Item> - <Menu.Item>삭제하기</Menu.Item> - </Menu.DropdownList> - </Menu> - </div> - ); - }, -}; - -export const Bottomsheet: Story = { - render: () => { - return ( - <Menu> - <Menu.Toggle /> - <Menu.BottomSheetList> - <Menu.Item>수정하기</Menu.Item> - <Menu.Item>삭제하기</Menu.Item> - </Menu.BottomSheetList> - </Menu> - ); - }, -}; diff --git a/src/stories/common/Modal.stories.tsx b/src/stories/common/Modal.stories.tsx deleted file mode 100644 index b5fe7c0ca..000000000 --- a/src/stories/common/Modal.stories.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import Modal from '@/components/common/Modal'; -import useDisclosure from '@/hooks/useDisclosure'; -import Button from '@/components/common/Button'; -import { Fragment } from 'react'; - -const meta: Meta<typeof Modal> = { - title: 'Common/Modal', - component: Modal, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof Modal>; - -const BaseModal = () => { - const { isOpen, onOpen, onClose } = useDisclosure(); - - return ( - <> - <Button - onClick={() => { - onOpen(); - }} - > - Open Modal - </Button> - <Modal isOpen={isOpen} onClose={onClose}></Modal> - </> - ); -}; - -const DeleteModal = () => { - const { isOpen, onOpen, onClose } = useDisclosure(); - - const handleClick = () => { - alert('삭제되었습니다.'); - onClose(); - }; - - return ( - <> - <Button - onClick={() => { - onOpen(); - }} - > - Open Modal - </Button> - <Modal isOpen={isOpen} onClose={onClose}> - <div className="text-lg font-bold"> - 정말 삭제할까요? - <p className="text-xs font-normal text-black-500"> - 한번 삭제하면 되돌릴 수 없어요. - </p> - </div> - <div className="flex justify-end gap-[1rem]"> - <Button - onClick={onClose} - fill={false} - colorScheme="grey" - size="small" - > - 취소 - </Button> - <Button onClick={handleClick} size="small"> - 확인 - </Button> - </div> - </Modal> - </> - ); -}; - -export const Default: Story = { - render: () => <BaseModal />, -}; - -export const Delete: Story = { - render: () => <DeleteModal />, -}; diff --git a/src/stories/common/ProgressBar.stories.tsx b/src/stories/common/ProgressBar.stories.tsx deleted file mode 100644 index b68599692..000000000 --- a/src/stories/common/ProgressBar.stories.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import ProgressBar from '@/components/common/ProgressBar'; - -const meta: Meta<typeof ProgressBar> = { - title: 'Common/ProgressBar', - component: ProgressBar, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof ProgressBar>; - -export const Default: Story = { - args: { value: 30 }, -}; diff --git a/src/stories/common/RadioButton.stories.tsx b/src/stories/common/RadioButton.stories.tsx deleted file mode 100644 index 3636fce9e..000000000 --- a/src/stories/common/RadioButton.stories.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import { SubmitHandler, useForm } from 'react-hook-form'; - -import RadioButton from '@/components/common/RadioButton'; -import Button from '@/components/common/Button'; - -const meta: Meta<typeof RadioButton> = { - title: 'Common/RadioButton', - component: RadioButton, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof RadioButton>; - -type FormValues = { - radio: string; -}; - -const RadioButtonWithUseForm = () => { - const { register, handleSubmit, watch } = useForm<FormValues>({ - mode: 'all', - defaultValues: { radio: '라디오 A' }, - }); - - const handleSubmitForm: SubmitHandler<FormValues> = ({ radio }) => { - alert(`Submit as: ${radio}`); - }; - - return ( - <> - <form - onSubmit={handleSubmit(handleSubmitForm)} - className="flex w-[43rem] flex-col gap-[1.6rem]" - > - <div className="flex justify-between"> - <RadioButton {...register('radio')} value="라디오 A" /> - <RadioButton {...register('radio')} value="라디오 B" /> - <RadioButton {...register('radio')} value="라디오 C" /> - </div> - <Button size="large" type="submit"> - Submit - </Button> - </form> - <pre>{JSON.stringify(watch(), null, 2)}</pre> - </> - ); -}; - -export const Default: Story = { - render: args => <RadioButton {...args} value="라디오 버튼" />, -}; - -export const RadioButtonForm: Story = { - render: RadioButtonWithUseForm, -}; diff --git a/src/stories/common/Select.stories.tsx b/src/stories/common/Select.stories.tsx deleted file mode 100644 index 76b48a167..000000000 --- a/src/stories/common/Select.stories.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import Select from '@/components/common/Select'; -import { SubmitHandler, useForm } from 'react-hook-form'; -import Button from '@/components/common/Button'; -import ErrorMessage from '@/components/common/ErrorMessage'; - -const meta: Meta<typeof Select> = { - title: 'Common/Select', - component: Select, - tags: ['autodocs'], -}; - -const numbers = [1, 2, 3] as const; - -export default meta; - -type DefaultValues = { - requiredNumber: number; - number: number; -}; - -const SelectWithUseForm = () => { - const { - register, - handleSubmit, - formState: { errors }, - } = useForm<DefaultValues>({ - mode: 'all', - }); - - const handleSubmitForm: SubmitHandler<DefaultValues> = ({ - requiredNumber, - number, - }) => { - alert(`requiredNumber: ${requiredNumber}, number: ${number}`); - }; - - return ( - <form - onSubmit={handleSubmit(handleSubmitForm)} - className="flex w-[43rem] flex-col gap-[1.6rem]" - > - <div className="flex flex-col gap-[0.5rem]"> - <Select - placeholder="숫자를 선택해주세요. (필수)" - {...register('requiredNumber', { - required: '필수 항목입니다.', - })} - error={!!errors.requiredNumber} - > - {numbers.map(number => ( - <Select.Option key={number} value={number}> - {number} - </Select.Option> - ))} - </Select> - {errors.requiredNumber && ( - <ErrorMessage>{errors.requiredNumber.message}</ErrorMessage> - )} - </div> - <div className="flex flex-col gap-[0.5rem]"> - <Select - placeholder="숫자를 선택해주세요." - {...register('number')} - error={!!errors.number} - > - {numbers.map(number => ( - <Select.Option key={number} value={number}> - {number} - </Select.Option> - ))} - </Select> - {errors.number && <ErrorMessage>{errors.number.message}</ErrorMessage>} - </div> - <Button - size="large" - type="submit" - onClick={handleSubmit(handleSubmitForm)} - > - Submit - </Button> - </form> - ); -}; - -type Story = StoryObj<typeof Select>; - -export const Default: Story = { - args: { - placeholder: '선택해 주세요.', - }, - render: args => ( - <Select {...args}> - {numbers.map(number => ( - <Select.Option key={number} value={number}> - {number} - </Select.Option> - ))} - </Select> - ), -}; - -export const Invalid: Story = { - args: { - placeholder: '입력해 주세요.', - error: true, - }, - render: args => ( - <div className="flex flex-col gap-[0.5rem]"> - <Select {...args} /> - <ErrorMessage>양식을 확인해주세요.</ErrorMessage> - </div> - ), -}; - -export const WithUseForm: Story = { - render: () => ( - <div className="min-h-[20rem]"> - <SelectWithUseForm /> - </div> - ), -}; diff --git a/src/stories/common/Skeleton.stories.tsx b/src/stories/common/Skeleton.stories.tsx deleted file mode 100644 index 423a5cc98..000000000 --- a/src/stories/common/Skeleton.stories.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import Skeleton from '@/components/common/Skeleton'; - -const meta: Meta<typeof Skeleton> = { - title: 'Common/Skeleton', - component: Skeleton, -}; - -export default meta; - -type CircleStory = StoryObj<typeof Skeleton.Circle>; -type TextStory = StoryObj<typeof Skeleton.Text>; -type RectStory = StoryObj<typeof Skeleton.Rect>; - -const basicSizes = ['small', 'medium', 'large']; - -export const Circle: CircleStory = { - args: { size: 'small' }, - argTypes: { - size: { - options: [...basicSizes], - control: { type: 'radio' }, - }, - }, - render: args => ( - <Skeleton> - <Skeleton.Circle {...args} /> - </Skeleton> - ), -}; - -export const Text: TextStory = { - args: { fontSize: 'small', width: '50%' }, - argTypes: { - fontSize: { - options: ['2xsmall', 'xsmall', ...basicSizes, 'xlarge', '2xlarge'], - control: { type: 'radio' }, - }, - }, - render: args => ( - <Skeleton> - <Skeleton.Text {...args} /> - </Skeleton> - ), -}; - -export const Rectangle: RectStory = { - args: { width: '10rem', height: '12.3rem' }, - argTypes: { - rounded: { - options: [...basicSizes, 'full'], - control: { type: 'radio' }, - }, - }, - render: args => ( - <Skeleton> - <Skeleton.Rect {...args} /> - </Skeleton> - ), -}; diff --git a/src/stories/common/Stepper.stories.tsx b/src/stories/common/Stepper.stories.tsx deleted file mode 100644 index 800e5e92f..000000000 --- a/src/stories/common/Stepper.stories.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import Stepper from '@/components/common/Stepper'; - -const meta: Meta<typeof Stepper> = { - title: 'Common/Stepper', - component: Stepper, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof Stepper>; - -export const Default: Story = { - args: { activeIndex: 0 }, - - render: args => ( - <Stepper {...args}> - <Stepper.Step /> - <Stepper.Step /> - <Stepper.Step /> - </Stepper> - ), -}; diff --git a/src/stories/common/Switch.stories.tsx b/src/stories/common/Switch.stories.tsx deleted file mode 100644 index 28ed0f753..000000000 --- a/src/stories/common/Switch.stories.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import { SubmitHandler, useForm } from 'react-hook-form'; - -import Switch from '@/components/common/Switch'; -import Button from '@/components/common/Button'; - -const meta: Meta<typeof Switch> = { - title: 'Common/Switch', - component: Switch, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof Switch>; - -type FormValues = { - comment: boolean; -}; - -const SwitchWithUseForm = () => { - const { register, handleSubmit } = useForm<FormValues>({ - mode: 'all', - defaultValues: { comment: true }, - }); - - const handleSubmitForm: SubmitHandler<FormValues> = ({ comment }) => { - alert(`comment: ${comment ? 'public' : 'private'}`); - }; - - return ( - <form - onSubmit={handleSubmit(handleSubmitForm)} - className="flex w-[43rem] flex-col gap-[1.6rem]" - > - <div className="flex justify-between"> - <span className="text-md">댓글 공개</span> - <Switch {...register('comment')} /> - </div> - <Button - size="large" - type="submit" - onClick={handleSubmit(handleSubmitForm)} - > - Submit - </Button> - </form> - ); -}; - -export const Default: Story = { - args: { name: 'switch' }, -}; - -export const WithForm: Story = { - render: SwitchWithUseForm, -}; diff --git a/src/stories/common/TextArea.stories.tsx b/src/stories/common/TextArea.stories.tsx deleted file mode 100644 index c43e5eae7..000000000 --- a/src/stories/common/TextArea.stories.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import { SubmitHandler, useForm } from 'react-hook-form'; -import TextArea from '@/components/common/TextArea'; -import Button from '@/components/common/Button'; - -const meta: Meta<typeof TextArea> = { - title: 'Common/TextArea', - component: TextArea, -}; - -export default meta; - -type Story = StoryObj<typeof TextArea>; - -export const Default: Story = { - args: { placeholder: '어떤 이야기를 모임에서 나누면 좋을까요?' }, -}; - -type FormValue = { - content: string; -}; - -const TextAreaWithForm = () => { - const { - register, - handleSubmit, - formState: { errors }, - } = useForm<FormValue>({ mode: 'all' }); - - const handleTextAreaSubmit: SubmitHandler<FormValue> = value => { - alert(value.content); - }; - - return ( - <form onSubmit={handleSubmit(handleTextAreaSubmit)}> - <TextArea - {...register('content', { - maxLength: { value: 3, message: '최대 3자' }, - })} - count={true} - error={!!errors.content} - > - <TextArea.Error>{errors.content?.message}</TextArea.Error> - </TextArea> - <Button type="submit" size="full"> - submit - </Button> - </form> - ); -}; - -export const UseWithForm: Story = { - render: () => <TextAreaWithForm />, -}; diff --git a/src/stories/common/Toast.stories.tsx b/src/stories/common/Toast.stories.tsx deleted file mode 100644 index bf0863dea..000000000 --- a/src/stories/common/Toast.stories.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import Button from '@/components/common/Button'; -import useToast from '@/components/common/Toast/useToast'; -import ToastItem from '@/components/common/Toast/ToastItem'; - -const meta: Meta<typeof ToastItem> = { - title: 'Common/Toast', - component: ToastItem, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof ToastItem>; - -const WarningToast = () => { - const toast = useToast(); - const handleButtonClick = () => - toast.show({ - type: 'warning', - message: '5초 동안 보여지는 토스트 메세지에요.', - duration: 5000, - }); - - return <Button onClick={handleButtonClick}>토스트 띄우기</Button>; -}; - -const SuccessToast = () => { - const toast = useToast(); - const handleButtonClick = () => - toast.show({ type: 'success', message: '링크가 복사되었어요' }); - - return <Button onClick={handleButtonClick}>링크 복사하기</Button>; -}; - -const ErrorToast = () => { - const toast = useToast(); - const handleButtonClick = () => - toast.show({ type: 'error', message: '잠시 후 다시 시도해주세요' }); - - return <Button onClick={handleButtonClick}>재시도</Button>; -}; - -export const Default: Story = { - args: { - message: '토스트 예시', - }, - render: args => ( - <div className="flex flex-col gap-[1rem]"> - <ToastItem type="warning" {...args} /> - <ToastItem type="error" {...args} /> - <ToastItem type="success" {...args} /> - </div> - ), -}; - -export const Normal: Story = { - render: WarningToast, -}; - -export const Success: Story = { - render: SuccessToast, -}; - -export const Error: Story = { - render: ErrorToast, -}; diff --git a/src/stories/common/TopHeader.stories.tsx b/src/stories/common/TopHeader.stories.tsx deleted file mode 100644 index fdc2d0f37..000000000 --- a/src/stories/common/TopHeader.stories.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import { IconHamburger } from '@public/icons'; -import TopHeader from '@/components/common/TopHeader'; - -const meta: Meta<typeof TopHeader> = { - title: 'Common/TopHeader', - component: TopHeader, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof TopHeader>; - -export const Default: Story = { - args: { text: 'BookArchive' }, - render: args => <TopHeader {...args} />, -}; - -export const WithMenu: Story = { - args: { text: 'Profile' }, - render: args => ( - <TopHeader {...args}> - <button - onClick={() => { - alert('HAMBURGUR MENU!🍔'); - }} - > - <IconHamburger width={20} height={20} alt="햄버거메뉴" /> - </button> - </TopHeader> - ), -}; diff --git a/src/stories/common/TopNavigation.stories.tsx b/src/stories/common/TopNavigation.stories.tsx deleted file mode 100644 index c15d3bcb1..000000000 --- a/src/stories/common/TopNavigation.stories.tsx +++ /dev/null @@ -1,115 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import TopNavigation from '@/components/common/TopNavigation'; -import { - IconPost, - IconShare, - IconArrowLeft, - IconHamburger, - IconClose, -} from '@public/icons'; - -const meta: Meta<typeof TopNavigation> = { - title: 'Common/TopNavigation', - component: TopNavigation, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof TopNavigation>; - -export const Default: Story = { - render: () => ( - <TopNavigation> - <TopNavigation.LeftItem> - <IconArrowLeft /> - </TopNavigation.LeftItem> - <TopNavigation.CenterItem> - Refactoring 2nd(리팩터링 2판) - </TopNavigation.CenterItem> - <TopNavigation.RightItem> - <IconShare /> - </TopNavigation.RightItem> - </TopNavigation> - ), -}; - -export const OnlySide: Story = { - render: () => ( - <TopNavigation> - <TopNavigation.LeftItem> - <IconArrowLeft /> - </TopNavigation.LeftItem> - <TopNavigation.RightItem> - <IconShare /> - </TopNavigation.RightItem> - </TopNavigation> - ), -}; - -export const OnlyCenter: Story = { - render: () => ( - <TopNavigation> - <TopNavigation.CenterItem textAlign="left"> - Refactoring 2nd(리팩터링 2판) - </TopNavigation.CenterItem> - </TopNavigation> - ), -}; - -export const CenterWithLeft: Story = { - render: () => ( - <TopNavigation> - <TopNavigation.LeftItem> - <IconArrowLeft /> - </TopNavigation.LeftItem> - <TopNavigation.CenterItem textAlign="left"> - Refactoring 2nd(리팩터링 2판) - </TopNavigation.CenterItem> - </TopNavigation> - ), -}; - -export const CenterWithRight: Story = { - render: () => ( - <TopNavigation> - <TopNavigation.CenterItem> - Refactoring 2nd(리팩터링 2판) - </TopNavigation.CenterItem> - <TopNavigation.RightItem> - <IconShare /> - </TopNavigation.RightItem> - </TopNavigation> - ), -}; - -export const TextLeft: Story = { - render: () => ( - <TopNavigation> - <TopNavigation.LeftItem> - <IconArrowLeft /> - </TopNavigation.LeftItem> - <TopNavigation.CenterItem textAlign="left"> - 프롱이 리팩터링 스터디 - </TopNavigation.CenterItem> - <TopNavigation.RightItem> - <IconPost /> - <IconHamburger /> - </TopNavigation.RightItem> - </TopNavigation> - ), -}; - -export const PostWrite: Story = { - render: () => ( - <TopNavigation> - <TopNavigation.LeftItem> - <IconClose /> - </TopNavigation.LeftItem> - <TopNavigation.CenterItem>글 작성하기</TopNavigation.CenterItem> - <TopNavigation.RightItem> - <button className="font-bold text-main-900">완료</button> - </TopNavigation.RightItem> - </TopNavigation> - ), -}; diff --git a/src/stories/layout/Layout.stories.tsx b/src/stories/layout/Layout.stories.tsx deleted file mode 100644 index fc320c938..000000000 --- a/src/stories/layout/Layout.stories.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import Layout from '@/components/layout/Layout'; -import { Meta, StoryObj } from '@storybook/react'; - -const meta: Meta<typeof Layout> = { - title: 'layout/Layout', - component: Layout, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj<typeof Layout>; - -export const Default: Story = { - parameters: { - nextjs: { - navigation: { - pathname: '/bookarchive', - }, - }, - }, - render: () => { - return <Layout>{'hello'}</Layout>; - }, -}; - -export const NotOnRootPath: Story = { - render: () => { - return <Layout>{'hello'}</Layout>; - }, -}; diff --git a/src/stories/meta.tsx b/src/stories/meta.tsx deleted file mode 100644 index 462fb9d37..000000000 --- a/src/stories/meta.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { Meta } from '@storybook/react'; -import Layout from '@/components/layout/Layout'; - -export const appLayoutMeta: Meta = { - parameters: { - layout: 'fullscreen', - }, - decorators: [ - Story => ( - <div className="m-auto max-w-[43rem] bg-white"> - <Layout> - <Story /> - </Layout> - </div> - ), - ], -}; diff --git a/src/styles/font/index.ts b/src/styles/font/index.tsx similarity index 83% rename from src/styles/font/index.ts rename to src/styles/font/index.tsx index c3995d8bd..8b42af9c3 100644 --- a/src/styles/font/index.ts +++ b/src/styles/font/index.tsx @@ -1,6 +1,6 @@ import localFont from 'next/font/local'; -export const LineSeedKR = localFont({ +export const LineSeed = localFont({ src: [ { path: './LINESeedKR-Th.woff2', @@ -18,5 +18,4 @@ export const LineSeedKR = localFont({ style: 'normal', }, ], - variable: '--font-lineseed', }); diff --git a/src/styles/global.css b/src/styles/global.css deleted file mode 100644 index 6b1607b4a..000000000 --- a/src/styles/global.css +++ /dev/null @@ -1,109 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@font-face { - font-family: 'LineSeedKR'; - font-weight: 100; - src: url('font/LINESeedKR-Th.woff2') format('woff2'); -} -@font-face { - font-family: 'LineSeedKR'; - font-weight: 400; - src: url('font/LINESeedKR-Rg.woff2') format('woff2'); -} -@font-face { - font-family: 'LineSeedKR'; - font-weight: 700; - src: url('font/LINESeedKR-Bd.woff2') format('woff2'); -} -@layer base { - html { - @apply w-full bg-background font-[LineSeedKR] text-[62.5%] text-black-700; - -webkit-tap-highlight-color: #ffffff50; - - /** from charka */ - -webkit-text-size-adjust: 100%; - font-family: system-ui, sans-serif; - -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; - -moz-osx-font-smoothing: grayscale; - touch-action: manipulation; - } - - body { - font-size: 1.6rem; - } - - .app-layout { - max-width: 43rem; - margin: 0 auto; - @apply bg-white; - } - - .sticky { - /* -webkit-sticky: Safari 브라우저 호환 */ - position: -webkit-sticky; - position: sticky; - } - - /* DatePicker Calendar 스타일링 */ - input[type='date']::-webkit-calendar-picker-indicator { - background-image: none; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - margin: 0; - padding: 0; - cursor: pointer; - } - - input::-webkit-date-and-time-value { - display: none; - } - - input[type='date'] { - appearance: none; - -webkit-appearance: none; - } - - /* Input type=number 버튼 제거 */ - /* Chrome, Safari, Edge, Opera */ - input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; - } - /* FireFox */ - input[type='number'] { - appearance: none; - -moz-appearance: textfield; - } - - input[type='search']::-webkit-search-cancel-button { - -webkit-appearance: none; - appearance: none; - width: 2.1rem; - height: 2.1rem; - cursor: pointer; - background-image: url('/icons/close.svg'); - background-position: center; - background-repeat: no-repeat; - } -} - -@layer utilities { - .w-app { - @apply relative -left-[2rem] w-[calc(100%+4rem)]; - } - - .bg-blur { - box-shadow: inset 0 0 3rem #dddddd; - @apply bg-placeholder; - } - - .pb-action-button { - @apply pb-[6.3rem]; - } -} diff --git a/src/styles/theme.tsx b/src/styles/theme.tsx new file mode 100644 index 000000000..43851ea60 --- /dev/null +++ b/src/styles/theme.tsx @@ -0,0 +1,139 @@ +import { + ChakraStyledOptions, + extendTheme, + ThemeOverride, +} from '@chakra-ui/react'; + +const fontSizes = { + xs: '1.2rem', + sm: '1.4rem', + md: '1.6rem', + lg: '1.8rem', + xl: '2rem', + '2xl': '2.2rem', +} as const; + +const buttonSizes = { + md: { + padding: '1.3rem 1rem', + height: '3.5rem', + }, + lg: { + padding: '2.5rem 1.8rem', + height: '4.5rem', + }, +} as const; + +const colors = { + main: '#F6AD55', // Main Theme + red: { + 800: '#F56565', // button (NoticeTheme) + 900: '#FF0000', // validation (NoticeTheme) + }, + yellow: { + 200: '#FFD4802E', + 900: '#FFA436', + }, + black: { + 400: '#C1C0C0', // subHeader (Slider) + 500: '#AFAFAF', // placeHolder (BookSearch) + 600: '#ACACAC', // placeHolder (MeetingEdit) + 700: '#727272', // subHeader (MeetingDetail) + 800: '#3D3D3D', // meetingPeriod (MeetingDetail) + 900: '#000000', // black + }, + white: { + 400: '#CFCFCF', // placeHolder (MyPage) + 500: '#D9D9D9', // addBook (MeetingCreate) + 600: '#E3E3E3', // bookBorder (Bookaive) + 700: '#E2E8F0', // inputBorder (Common) + 800: '#FAFAFA', // backGround + 900: '#FFFFFF', // white + }, + kakao: { + brown: '#191600', + yellow: '#fee102', + }, +} as const; + +interface SchemeTypings { + component: 'button'; + colorScheme: 'orange' | 'kakao' | 'orange-fill' | 'grey' | 'grey-fill'; + cssProps: ChakraStyledOptions; +} + +const scheme: Record< + SchemeTypings['component'], + Record<SchemeTypings['colorScheme'], Partial<SchemeTypings['cssProps']>> +> = { + button: { + orange: { + color: colors.main, + border: `${colors.main} 0.1rem solid`, + }, + 'orange-fill': { + color: colors.white[900], + backgroundColor: colors.main, + _hover: { + opacity: 0.8, + }, + }, + grey: { + color: colors.black[900], + border: `${colors.white[400]} 0.1rem solid`, + backgroundColor: colors.white[900], + _hover: { + color: colors.black['800'], + backgroundColor: colors.white[400], + }, + }, + 'grey-fill': { + color: colors.black[600], + backgroundColor: colors.white[400], + }, + kakao: { + color: colors.kakao.brown, + backgroundColor: colors.kakao.yellow, + }, + }, +}; + +const shadows = { + default: '0px 0px 7px -5px #000000', // BoxShadow (MeetingList Box) +}; + +const theme: ThemeOverride = extendTheme({ + fontSizes, + buttonSizes, + colors, + scheme, + styles: { + global: { + 'html, body': { + fontSize: '62.5%', + bg: 'white.800', + maxWidth: '43rem', + margin: '0 auto', + }, + 'input[type="date"]': { + position: 'relative', + }, + 'input[type="date"]::-webkit-inner-spin-button, input[type="date"]::-webkit-calendar-picker-indicator': + { + position: 'absolute', + left: 0, + top: 0, + width: '100%', + height: '100%', + background: 'transparent', + color: 'transparent', + cursor: 'pointer', + }, + }, + }, + shadows, +}); + +export default theme; + +export type ChakraTheme = typeof theme; diff --git a/src/types/book.ts b/src/types/book.ts index a63236bb0..2179783c2 100644 --- a/src/types/book.ts +++ b/src/types/book.ts @@ -1,6 +1,6 @@ -import { BookSearchPagination, Pagination } from './common'; +import { Pagination } from './common'; import { APIJobGroup } from './job'; -import { APIUser, Writer } from './user'; +import { APIUser } from './user'; export interface APIBook { bookId: number; @@ -13,13 +13,15 @@ export interface APIBook { publisher: string; } -export interface APISearchedBook extends Omit<APIBook, 'bookId'> { +export interface APISearchedBook + extends Pick< + APIBook, + 'title' | 'author' | 'isbn' | 'contents' | 'url' | 'imageUrl' | 'publisher' + > { apiProvider: string; } -export type SearchedBookWithId = APISearchedBook & Pick<APIBook, 'bookId'>; - -export interface APIBookRecentSearchResponse { +export interface APISearchedWordInfo { keyword: string; modifiedAt: string; } @@ -27,11 +29,16 @@ export interface APIBookRecentSearchResponse { export interface APIRecentSearches { count: number; isEmpty: boolean; - bookRecentSearchResponses: APIBookRecentSearchResponse[]; + bookRecentSearchResponses: APISearchedWordInfo[]; } -export interface APISearchedBookPagination extends BookSearchPagination { +export interface APISearchedBookPagination { searchBookResponseList: APISearchedBook[]; + requestedPageNumber: number; + requestedPageSize: number; + isLast: boolean; + pageableCount: number; + totalCount: number; } export interface APIBookDetail extends APIBook { @@ -39,17 +46,6 @@ export interface APIBookDetail extends APIBook { imageKey: string; } -export interface BookDetail { - bookId: APIBookDetail['bookId']; - title: APIBookDetail['title']; - author: APIBookDetail['author']; - isbn: APIBookDetail['isbn']; - summary: APIBookDetail['contents']; - bookUrl: APIBookDetail['url']; - imageUrl: APIBookDetail['imageUrl']; - publisher: APIBookDetail['publisher']; -} - export interface APIBookmarkedUserList { bookId: APIBook['bookId']; totalCount: number; @@ -75,11 +71,6 @@ export interface APIBookComment { writtenByCurrentUser: boolean; } -export interface APICreateBookCommentRequest - extends Pick<APIBookComment, 'commentId'> { - comment: string; -} - export interface APIPatchBookCommentRequest extends Pick<APIBookComment, 'commentId'> { comment: string; @@ -88,37 +79,3 @@ export interface APIPatchBookCommentRequest export interface APIBookCommentPagination extends Pagination { bookComments: APIBookComment[]; } - -export type BookComment = { - id: APIBook['bookId']; - writer: Writer; - createdAt: APIBookComment['createdAt']; - content: APIBookComment['contents']; -}; -export interface APIBestSeller { - title: string; - author: string; - isbn: string; - description: string; - link: string; - cover: string; - publisher: string; - bestRank: number; -} - -export interface APIBestSellerRes { - item: APIBestSeller[]; - itemsPerPage: number; - link: string; - logo: string; - pubDate: string; - query: string; - searchCategoryId: number; - searchCategoryName: string; - startIndex: number; - title: string; - totalResults: number; - version: string; -} - -export type APIBestSellerSearchRange = 'WEEKLY' | 'MONTHLY' | 'YEARLY'; diff --git a/src/types/bookshelf.ts b/src/types/bookshelf.ts index 82884f4d6..7be80ef0e 100644 --- a/src/types/bookshelf.ts +++ b/src/types/bookshelf.ts @@ -26,12 +26,10 @@ export type APIBookshelf = { export interface APIBookshelfInfo extends Pick<APIBookshelf, 'bookshelfId' | 'bookshelfName' | 'likeCount'>, - Pick<APIUser, 'userId' | 'name'> { + Pick<APIUser, 'userId' | 'name' | 'nickname' | 'profileImage'> { isLiked: boolean; isPublic: boolean; job: APIProfileJob; - userNickname: string; - userProfileImage: string; } export interface APIBookshelfPagination extends Pagination { diff --git a/src/types/common.ts b/src/types/common.ts index 57ebb2d6b..09e540e5c 100644 --- a/src/types/common.ts +++ b/src/types/common.ts @@ -5,11 +5,3 @@ export interface Pagination { count: number; isEmpty: boolean; } - -export interface BookSearchPagination { - requestedPageNumber: number; - requestedPageSize: number; - isLast: boolean; - pageableCount: number; - totalCount: number; -} diff --git a/src/types/customError/AuthRefreshIgnoredError.ts b/src/types/customError/AuthRefreshIgnoredError.ts deleted file mode 100644 index b85f0478b..000000000 --- a/src/types/customError/AuthRefreshIgnoredError.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * accessToken을 갱신하는 요청이 진행 중인 경우, 갱신 요청은 무시되고 해당 에러가 발생합니다. - */ -class AuthRefreshIgnoredError extends Error { - constructor(message: string) { - super(message); - this.name = this.constructor.name; - } -} - -export default AuthRefreshIgnoredError; diff --git a/src/types/customError/index.ts b/src/types/customError/index.ts deleted file mode 100644 index 176fe8d48..000000000 --- a/src/types/customError/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as AuthRefreshIgnoredError } from './AuthRefreshIgnoredError'; diff --git a/src/types/dday.ts b/src/types/dday.ts deleted file mode 100644 index d7ba22ce3..000000000 --- a/src/types/dday.ts +++ /dev/null @@ -1 +0,0 @@ -export type DdayStatus = 'before' | 'dday' | 'ongoing' | 'end'; diff --git a/src/types/group.ts b/src/types/group.ts index 289b95c76..4aed93969 100644 --- a/src/types/group.ts +++ b/src/types/group.ts @@ -1,12 +1,11 @@ import { APIBook } from './book'; -import { APIUser, Writer } from './user'; +import { APIUser } from './user'; import { Pagination } from './common'; type APIGroupOwner = { id: APIUser['userId']; profileUrl: APIUser['profileImage']; - // FIXME nickname: APIUser['nickname'] nullable 하지 않게 수정 후 다시 반영 - nickname: string; + nickname: APIUser['nickname']; }; type APIGroupBook = { @@ -24,7 +23,7 @@ export interface APIGroup { hasJoinPasswd: boolean; isPublic: boolean; bookGroupId: number; - currentMemberCount: number; + memberCount: number; commentCount: number; book: APIGroupBook; owner: APIGroupOwner; @@ -38,7 +37,7 @@ export interface APIGroupDetail extends APIGroup { } export interface APIGroupPagination extends Pagination { - bookGroups: (APIGroup & { memberCount: number })[]; + bookGroups: APIGroup[]; } export interface APICreateGroup @@ -66,41 +65,10 @@ export interface APIGroupComment { userProfileImage: APIUser['profileImage']; createdAt: string; modifiedAt: string; - nickname: string; + nickname: APIUser['nickname']; writtenByCurrentUser: boolean; } export interface APIGroupCommentPagination extends Pagination { - bookGroup: { isPublic: APIGroup['isPublic'] }; bookGroupComments: APIGroupComment[]; } - -export type BookGroupDetail = { - title: APIGroupDetail['title']; - description: APIGroupDetail['introduce']; - bookId: APIBook['bookId']; - owner: { isMe: boolean; id: APIUser['userId'] }; - date: { start: APIGroupDetail['startDate']; end: APIGroupDetail['endDate'] }; - memberCount: { - current: APIGroupDetail['currentMemberCount']; - max: APIGroupDetail['maxMemberCount']; - }; - isPublic: APIGroupDetail['isPublic']; - isMember: APIGroupDetail['isGroupMember']; -}; - -export type BookGroupComment = { - id: APIGroup['bookGroupId']; - writer: Writer; - createdAt: APIGroupComment['createdAt']; - content: APIGroupComment['contents']; -}; - -export type APIEditBookGroup = { - isOwner: APIGroupDetail['isOwner']; - title: APIGroupDetail['title']; - introduce: APIGroupDetail['introduce']; - maxMemberCount: APIGroupDetail['maxMemberCount']; - startDate: APIGroupDetail['startDate']; - endDate: APIGroupDetail['endDate']; -}; diff --git a/src/types/query.ts b/src/types/query.ts index d37e02188..75ca7662b 100644 --- a/src/types/query.ts +++ b/src/types/query.ts @@ -1,6 +1,3 @@ import { UseQueryOptions } from '@tanstack/react-query'; -export type QueryOptions< - TQueryFnData, - TQueryData = TQueryFnData -> = UseQueryOptions<Awaited<TQueryFnData>, unknown, TQueryData, string[]>; +export type QueryOptions<T> = UseQueryOptions<Awaited<T>, unknown, T, string[]>; diff --git a/src/types/user.ts b/src/types/user.ts index 8420e8980..1bbdf8845 100644 --- a/src/types/user.ts +++ b/src/types/user.ts @@ -1,26 +1,13 @@ import { APIProfileJob } from './job'; -export interface APIUserProfile { +export interface APIUser { userId: number; - nickname: string; - profileImage: string; - gender: string | null; - job: APIProfileJob; -} - -export interface APIMyProfile extends Omit<APIUserProfile, 'nickname'> { name: string | null; nickname: string | null; oauthNickname: string; email: string | null; - gender: string; - authProvider: string; + profileImage: string; + gender: true; + authProvider: true; + job: APIProfileJob; } - -export type APIUser = APIUserProfile & { name: string | null }; - -export type Writer = { - id: APIUser['userId']; - profileImageSrc: APIUser['profileImage']; - name: APIUser['nickname']; -}; diff --git a/src/ui/AuthRequired/index.tsx b/src/ui/AuthRequired/index.tsx new file mode 100644 index 000000000..a58f4877b --- /dev/null +++ b/src/ui/AuthRequired/index.tsx @@ -0,0 +1,23 @@ +import { ReactNode, useEffect, useState } from 'react'; + +import { useAuth } from '@/hooks/auth'; +import { useRouter } from 'next/navigation'; + +const AuthRequired = ({ children }: { children: ReactNode }) => { + const router = useRouter(); + const [mounted, setMounted] = useState(false); + const { isAuthed } = useAuth(); + + useEffect(() => { + if (!isAuthed) { + router.push('/'); + } + setMounted(true); + }, [isAuthed, router]); + + if (!isAuthed) return null; + + return <>{mounted && children}</>; +}; + +export default AuthRequired; diff --git a/src/ui/BookArchive/BookArchiveForAuth.tsx b/src/ui/BookArchive/BookArchiveForAuth.tsx new file mode 100644 index 000000000..3556ffbaf --- /dev/null +++ b/src/ui/BookArchive/BookArchiveForAuth.tsx @@ -0,0 +1,60 @@ +import useAuthRecommendedBooks from '@/queries/recommend/useAuthRecommendedBooks'; +import useAuthRecommendedBookshelf from '@/queries/recommend/useAuthRecommendedBookshelf'; +import { APIJobGroup } from '@/types/job'; +import { RecommendedBooks, RecommendedBookshelf } from '@/ui/Recommended'; +import { Flex, Skeleton, VStack } from '@chakra-ui/react'; + +const BookArchiveForAuth = ({ + userJobGroup, +}: { + userJobGroup: APIJobGroup['name']; +}) => { + const { + data: bookshelfData, + isSuccess: bookshelfIsSuccess, + isLoading: bookshelfIsLoading, + } = useAuthRecommendedBookshelf(userJobGroup); + const { + data: booksData, + isSuccess: booksIsSuccess, + isLoading: booksIsLoading, + } = useAuthRecommendedBooks(userJobGroup); + + const isSuccess = bookshelfIsSuccess && booksIsSuccess; + const isLoading = bookshelfIsLoading && booksIsLoading; + + if (isLoading) { + return ( + <VStack gap="3rem"> + <Skeleton width="39rem" height="19.6rem" /> + <Skeleton width="39rem" height="19.6rem" /> + <Skeleton width="39rem" height="19.6rem" /> + </VStack> + ); + } + + if (!isSuccess) return null; + if (!bookshelfData || !booksData) return null; + + return ( + <Flex direction="column" width="100%" gap="3rem"> + <RecommendedBooks + jobGroup={booksData.jobGroupKoreanName} + books={booksData.books} + /> + {bookshelfData.bookshelfResponses.map( + ({ bookshelfId, bookshelfName, books, likeCount }) => ( + <RecommendedBookshelf + key={bookshelfId} + bookshelfId={bookshelfId} + bookshelfName={bookshelfName} + books={books} + likeCount={likeCount} + /> + ) + )} + </Flex> + ); +}; + +export default BookArchiveForAuth; diff --git a/src/ui/BookArchive/BookArchiveForUnAuth.tsx b/src/ui/BookArchive/BookArchiveForUnAuth.tsx new file mode 100644 index 000000000..1ee0eab5e --- /dev/null +++ b/src/ui/BookArchive/BookArchiveForUnAuth.tsx @@ -0,0 +1,36 @@ +import useUnAuthRecommendedBookshelfQuery from '@/queries/recommend/useUnAuthRecommendedBookshelfQuery'; +import { Flex, Skeleton, VStack } from '@chakra-ui/react'; +import { RecommendedBookshelf } from '../Recommended'; + +const BookArchiveForUnAuth = () => { + const { data, isSuccess, isLoading } = useUnAuthRecommendedBookshelfQuery(); + + if (isLoading) { + return ( + <VStack gap="3rem"> + <Skeleton width="39rem" height="19.6rem" /> + <Skeleton width="39rem" height="19.6rem" /> + <Skeleton width="39rem" height="19.6rem" /> + </VStack> + ); + } + if (!isSuccess) return null; + + return ( + <Flex direction="column" width="100%" gap="3rem"> + {data.bookshelfResponses.map( + ({ bookshelfId, bookshelfName, books, likeCount }) => ( + <RecommendedBookshelf + key={bookshelfId} + bookshelfId={bookshelfId} + bookshelfName={bookshelfName} + books={books} + likeCount={likeCount} + /> + ) + )} + </Flex> + ); +}; + +export default BookArchiveForUnAuth; diff --git a/src/ui/BookArchive/index.tsx b/src/ui/BookArchive/index.tsx new file mode 100644 index 000000000..3c983211b --- /dev/null +++ b/src/ui/BookArchive/index.tsx @@ -0,0 +1,2 @@ +export { default as BookArchiveForAuth } from './BookArchiveForAuth'; +export { default as BookArchiveForUnAuth } from './BookArchiveForUnAuth'; diff --git a/src/ui/BookDetail/BookComment.tsx b/src/ui/BookDetail/BookComment.tsx new file mode 100644 index 000000000..476da6469 --- /dev/null +++ b/src/ui/BookDetail/BookComment.tsx @@ -0,0 +1,189 @@ +import { + AlertDialog, + AlertDialogBody, + AlertDialogContent, + AlertDialogFooter, + AlertDialogOverlay, + Avatar, + Button, + Flex, + Text, + useDisclosure, + useTheme, + VStack, +} from '@chakra-ui/react'; +import { CSSProperties, MutableRefObject, useRef } from 'react'; +import Link from 'next/link'; + +import { useToast } from '@/hooks/toast'; +import type { APIBookComment } from '@/types/book'; +import { Menu, MenuItem } from '@/ui/common/Menu'; + +import CommentDrawer from './CommentDrawer'; + +interface Props + extends Pick< + APIBookComment, + | 'commentId' + | 'userId' + | 'nickname' + | 'userProfileImage' + | 'createdAt' + | 'contents' + > { + style?: CSSProperties; + editable?: boolean; + onEdit?: (commentId: number, comment: string) => void; + onDelete?: (commentId: number) => void; +} + +const BookComment = ({ + commentId, + userId, + nickname, + userProfileImage, + createdAt, + contents, + editable = false, + onEdit, + onDelete, + style, +}: Props) => { + const { + isOpen: isDeleteModalOpen, + onClose: onDeleteModalClose, + onOpen: onDeleteModalOpen, + } = useDisclosure(); + const { + isOpen: isEditDrawerOpen, + onClose: onEditDrawerClose, + onOpen: onEditDrawerOpen, + } = useDisclosure(); + const { showToast } = useToast(); + + const cancelRef = useRef(null); + const textareaRef = useRef<HTMLTextAreaElement>(null); + + const handleCommentEdit = () => { + const comment = textareaRef.current?.value; + + if (!comment) { + showToast({ message: '코멘트를 입력해주세요!' }); + return; + } + + onEdit && onEdit(commentId, comment); + onEditDrawerClose(); + }; + + const handleCommentDelete = () => { + onDelete && onDelete(commentId); + onDeleteModalClose(); + }; + + return ( + <VStack + width="100%" + align="flex-start" + backgroundColor="white.900" + borderRadius="1rem" + p="2rem" + style={style} + > + <Flex gap="1rem" align="center" width="100%"> + <Avatar as={Link} href={`/profile/${userId}`} src={userProfileImage} /> + <VStack flexGrow="1" align="flex-start"> + <Text fontSize="sm" fontWeight="bold"> + {nickname} + </Text> + <Text fontSize="xs" style={{ margin: 0 }} color="black.500"> + {createdAt} + </Text> + </VStack> + {editable && ( + <Menu> + <MenuItem text="수정" onClick={onEditDrawerOpen}> + <CommentDrawer + title="책 코멘트 수정하기" + placeholder="더 멋진 코멘트를 작성해주세요!" + defaultComment={contents} + isOpen={isEditDrawerOpen} + onClose={onEditDrawerClose} + onComplete={handleCommentEdit} + textareaRef={textareaRef} + /> + </MenuItem> + <MenuItem text="삭제" color="red.300" onClick={onDeleteModalOpen}> + <DeleteComfirmDialog + cancelRef={cancelRef} + isOpen={isDeleteModalOpen} + onClose={onDeleteModalClose} + onDelete={handleCommentDelete} + /> + </MenuItem> + </Menu> + )} + </Flex> + <Text + fontSize="md" + py="0.5rem" + textOverflow="ellipsis" + wordBreak="break-all" + > + {contents} + </Text> + </VStack> + ); +}; + +const DeleteComfirmDialog = ({ + cancelRef, + isOpen, + onClose, + onDelete, +}: { + isOpen: boolean; + onClose: () => void; + onDelete: () => void; + cancelRef: MutableRefObject<null>; +}) => { + const theme = useTheme(); + + return ( + <AlertDialog + leastDestructiveRef={cancelRef} + isOpen={isOpen} + onClose={onClose} + > + <AlertDialogOverlay> + <AlertDialogContent alignSelf="center" p="1.5rem"> + <AlertDialogBody fontSize="md" py="1.5rem"> + 코멘트를 정말 삭제할까요? + </AlertDialogBody> + <AlertDialogFooter as={Flex} justify="center" gap="1rem"> + <Button + ref={cancelRef} + onClick={onClose} + flexGrow="1" + {...theme.buttonSizes['md']} + {...theme.scheme.button['grey']} + > + 취소 + </Button> + <Button + ref={cancelRef} + onClick={onDelete} + flexGrow="1" + {...theme.buttonSizes['md']} + {...theme.scheme.button['orange-fill']} + > + 삭제 + </Button> + </AlertDialogFooter> + </AlertDialogContent> + </AlertDialogOverlay> + </AlertDialog> + ); +}; + +export default BookComment; diff --git a/src/ui/BookDetail/BookCommentList.tsx b/src/ui/BookDetail/BookCommentList.tsx new file mode 100644 index 000000000..1417a077f --- /dev/null +++ b/src/ui/BookDetail/BookCommentList.tsx @@ -0,0 +1,167 @@ +'use clinet'; + +import { useDisclosure, VStack } from '@chakra-ui/react'; +import { useMemo, useRef } from 'react'; + +import bookAPI from '@/apis/book'; +import useBookCommentsQuery from '@/queries/book/useBookCommentsQuery'; +import Button from '@/ui/common/Button'; +import BookComment from './BookComment'; +import CommentDrawer from './CommentDrawer'; + +import type { APIBookComment, APIBookmarkedUserList } from '@/types/book'; + +import { SERVICE_ERROR_MESSAGE } from '@/constants'; +import { useToast } from '@/hooks/toast'; +import LoginBottomSheet from '@/ui/LoginBottomSheet'; +import { isAuthed, isAxiosErrorWithCustomCode } from '@/utils/helpers'; + +interface Props { + bookId: number; + isInMyBookshelf: APIBookmarkedUserList['isInMyBookshelf']; +} + +type CommentType = 'me' | 'user'; +type CommentRecordType = Record<CommentType, APIBookComment[]>; + +const BookCommentList = ({ bookId, isInMyBookshelf }: Props) => { + const { showToast } = useToast(); + const commentTextAreaRef = useRef<HTMLTextAreaElement>(null); + const bookCommentsQueryInfo = useBookCommentsQuery(bookId); + + const { + isOpen: isCreateDrawerOpen, + onOpen: onCreateDrawerOpen, + onClose: onCreateDrawerClose, + } = useDisclosure(); + const { + isOpen: isLoginBottomSheetOpen, + onOpen: onLoginBottomSheetOpen, + onClose: onLoginBottomSheetsClose, + } = useDisclosure(); + + const comments = useMemo<CommentRecordType>(() => { + const defaultComments = { me: [], user: [] }; + + if (!bookCommentsQueryInfo.isSuccess) { + return defaultComments; + } + + return bookCommentsQueryInfo.data.bookComments + .filter(comment => comment.bookId == bookId) + .reduce<CommentRecordType>( + (acc, comment) => ({ + ...acc, + [comment.writtenByCurrentUser ? 'me' : 'user']: [ + ...acc[comment.writtenByCurrentUser ? 'me' : 'user'], + comment, + ], + }), + defaultComments + ); + }, [bookCommentsQueryInfo, bookId]); + + const handleCommentError = (error: unknown) => { + if (!isAxiosErrorWithCustomCode(error)) { + return; + } + + const { code } = error.response.data; + const message = SERVICE_ERROR_MESSAGE[code]; + + if (code === 'BC1' || code === 'BC2') { + showToast({ message, duration: 3000 }); + } + }; + + const handleCommentCreate = () => { + const comment = commentTextAreaRef.current?.value; + + if (!comment) { + showToast({ message: '코멘트를 입력해주세요!' }); + return; + } + + bookAPI + .creaetComment(bookId, { comment }) + .then(() => bookCommentsQueryInfo.refetch()) + .catch(handleCommentError) + .finally(onCreateDrawerClose); + }; + + const handleCommentEdit = (commentId: number, comment: string) => { + bookAPI + .patchComment({ bookId, data: { commentId, comment } }) + .then(() => bookCommentsQueryInfo.refetch()) + .catch(handleCommentError); + }; + + const handleCommentDelete = (commentId: number) => { + bookAPI + .deletComment(bookId, commentId) + .then(() => bookCommentsQueryInfo.refetch()) + .catch(handleCommentError); + }; + + const handleCreateCommentDrawerOpen = () => { + if (!isAuthed()) { + onLoginBottomSheetOpen(); + return; + } + + if (!isInMyBookshelf) { + showToast({ + message: '책장에 책을 꽂은 후에 코멘트를 남길 수 있어요.', + duration: 3000, + }); + return; + } + + onCreateDrawerOpen(); + }; + + return ( + <VStack align="stretch" spacing="2rem" width="100%" pt="1rem"> + {!isAuthed() && ( + <LoginBottomSheet + isOpen={isLoginBottomSheetOpen} + onClose={onLoginBottomSheetsClose} + /> + )} + {!bookCommentsQueryInfo.isLoading && !comments.me.length && ( + <> + <Button + onClick={handleCreateCommentDrawerOpen} + scheme="orange-fill" + fullWidth + > + 코멘트 남기기 + </Button> + <CommentDrawer + title="책 코멘트 남기기" + placeholder="작성해주신 코멘트가 다른 사람들에게 많은 도움이 될 거예요!" + isOpen={isCreateDrawerOpen} + onClose={onCreateDrawerClose} + onComplete={handleCommentCreate} + textareaRef={commentTextAreaRef} + /> + </> + )} + {comments.me.map(comment => ( + <BookComment + key={comment.commentId} + {...comment} + editable + onEdit={handleCommentEdit} + onDelete={handleCommentDelete} + style={{ border: '1px solid #ffe6c6' }} + /> + ))} + {comments.user.map(comment => ( + <BookComment key={comment.commentId} {...comment} /> + ))} + </VStack> + ); +}; + +export default BookCommentList; diff --git a/src/ui/BookDetail/BookInfo.tsx b/src/ui/BookDetail/BookInfo.tsx new file mode 100644 index 000000000..3aaa10c12 --- /dev/null +++ b/src/ui/BookDetail/BookInfo.tsx @@ -0,0 +1,147 @@ +import { + Avatar, + AvatarGroup, + Box, + Flex, + Text, + useDisclosure, + useTheme, + VStack, +} from '@chakra-ui/react'; +import Image from 'next/image'; + +import IconButton from '@/ui/common/IconButton'; + +import type { APIBookDetail, APIBookmarkedUserList } from '@/types/book'; +import Link from 'next/link'; + +import { isAuthed } from '@/utils/helpers'; +import { useState } from 'react'; +import LoginBottomSheet from '../LoginBottomSheet'; + +type Props = Pick< + APIBookDetail, + 'title' | 'author' | 'contents' | 'imageUrl' | 'url' +> & + Omit<APIBookmarkedUserList, 'bookId'> & { + onBookmarkClick: (isBookMarked: boolean) => void; + }; + +const BookInfo = ({ + title, + author, + contents, + imageUrl, + url: contentsUrl, + onBookmarkClick, + ...bookmarkInfo +}: Props) => { + const theme = useTheme(); + const [bookmark, setBookmark] = useState(bookmarkInfo.isInMyBookshelf); + + const { + isOpen: isLoginBottomSheetOpen, + onOpen: onLoginBottomSheetOpen, + onClose: onLoginBottomSheetsClose, + } = useDisclosure(); + + const handleBookmarkClick = () => { + if (!isAuthed()) { + onLoginBottomSheetOpen(); + return; + } + + setBookmark(prev => { + const next = !prev; + onBookmarkClick(next); + return next; + }); + }; + + return ( + <> + <Flex gap="2rem" align="flex-end"> + <Box + shadow="lg" + position="relative" + width="18rem" + height="24rem" + flexShrink={0} + > + <Image + src={imageUrl.replace('R120x174.q85', 'R300x0.q100')} + alt="book" + fill + sizes="300px" + /> + </Box> + <VStack align="flex-start"> + <IconButton + name="bookmark" + color={theme.colors.main} + strokeWidth="0.15rem" + onClick={handleBookmarkClick} + fill={bookmark} + mb="0.5rem" + ml="-0.1rem" + /> + <Text fontSize="lg" fontWeight="bold"> + {title} + </Text> + <Text fontSize="sm">{author}</Text> + </VStack> + </Flex> + <Text fontSize="md"> + {contents} ...  + {contentsUrl && ( + <Text + as={Link} + href={contentsUrl} + color="main" + target="_blank" + rel="noopener noreferrer" + > + 더보기 + </Text> + )} + </Text> + + {!isAuthed() && ( + <LoginBottomSheet + isOpen={isLoginBottomSheetOpen} + onClose={onLoginBottomSheetsClose} + /> + )} + + <Flex align="center" minH="2rem"> + <AvatarGroup> + {bookmarkInfo.users.map(({ userId, profileImage }) => ( + <Avatar + as={Link} + href={`/profile/${userId}`} + key={userId} + src={profileImage} + /> + ))} + </AvatarGroup> + <Text fontSize="sm" pl="0.8rem"> + {getUserInfoText(bookmarkInfo.totalCount, bookmarkInfo.users.length)} + </Text> + </Flex> + </> + ); +}; + +const getUserInfoText = (totalCount: number, avatarCount: number) => { + const otherCount = totalCount - avatarCount; + + if (otherCount === 0 && totalCount === 0) { + return '아직 이 책을 책장에 꽂은 사람이 없어요.'; + } else if (otherCount === 0) { + return '님이 이 책을 책장에 꽂았어요.'; + } + + return `외 ${otherCount}명이 이 책을 책장에 꽂았어요.`; +}; + +export default BookInfo; diff --git a/src/ui/BookDetail/CommentDrawer.tsx b/src/ui/BookDetail/CommentDrawer.tsx new file mode 100644 index 000000000..db2c4cc18 --- /dev/null +++ b/src/ui/BookDetail/CommentDrawer.tsx @@ -0,0 +1,77 @@ +import { RefObject } from 'react'; +import { Drawer, DrawerContent, Flex, Text, Textarea } from '@chakra-ui/react'; + +import IconButton from '@/ui/common/IconButton'; + +interface Props { + title?: string; + placeholder?: string; + defaultComment?: string; + isOpen: boolean; + onClose: () => void; + onComplete: () => void; + textareaRef?: RefObject<HTMLTextAreaElement>; +} + +const CommentDrawer = ({ + title, + placeholder, + defaultComment, + isOpen, + onClose, + onComplete, + textareaRef, +}: Props) => { + // TODO : ref로 textarea 포커싱 + return ( + <Drawer isOpen={isOpen} onClose={onClose} placement="right" isFullHeight> + {isOpen && ( + <DrawerContent + bgColor="white" + p="2rem" + margin="0 auto" + style={{ + position: 'relative', + maxWidth: '43rem', + }} + > + <Flex align="center" justify="space-between"> + <IconButton + name="close" + size="2rem" + onClick={onClose} + alignSelf="flex-start" + /> + <Text fontSize="md" fontWeight="bold"> + {title} + </Text> + <Text + as="button" + fontSize="md" + fontWeight="bold" + color="main" + alignSelf="flex-end" + onClick={onComplete} + > + 완료 + </Text> + </Flex> + <Textarea + h="60vh" + border="none" + focusBorderColor="white.900" + resize="none" + px="0" + py="4rem" + ref={textareaRef} + placeholder={placeholder} + defaultValue={defaultComment} + spellCheck={false} + /> + </DrawerContent> + )} + </Drawer> + ); +}; + +export default CommentDrawer; diff --git a/src/ui/BookDetail/index.tsx b/src/ui/BookDetail/index.tsx new file mode 100644 index 000000000..9ed5ae067 --- /dev/null +++ b/src/ui/BookDetail/index.tsx @@ -0,0 +1,2 @@ +export { default as BookInfo } from './BookInfo'; +export { default as BookCommentList } from './BookCommentList'; diff --git a/src/ui/BookSearch/RecentSearches.tsx b/src/ui/BookSearch/RecentSearches.tsx new file mode 100644 index 000000000..fb01fe891 --- /dev/null +++ b/src/ui/BookSearch/RecentSearches.tsx @@ -0,0 +1,49 @@ +import { Flex, Text, VStack } from '@chakra-ui/react'; + +interface searchedWordsProps { + keyword: string; + modifiedAt: string; +} +interface RecentSearchesProps { + searchedWords?: searchedWordsProps[]; + setKeyword: (searchedWord: string) => void; +} + +const RecentSearches = ({ searchedWords, setKeyword }: RecentSearchesProps) => { + return ( + <VStack width="100%" alignItems="stretch"> + <Text fontSize="lg" color="black" my="1rem"> + 최근 검색어 + </Text> + {searchedWords ? ( + <Flex width="100%" gap="1rem" overflowX="scroll" pb="2rem"> + {searchedWords.map(({ keyword, modifiedAt }) => { + return ( + <Text + key={modifiedAt} + whiteSpace="nowrap" + fontSize="sm" + color="yellow.900" + p="0.8rem 1.6rem 0.6rem" + borderRadius="2.8rem" + bgColor="yellow.200" + onClick={() => { + setKeyword(keyword); + }} + cursor="pointer" + > + {keyword} + </Text> + ); + })} + </Flex> + ) : ( + <Text mb="1.5rem" fontSize="sm" color="black.700" alignSelf="center"> + 검색 기록이 없어요. + </Text> + )} + </VStack> + ); +}; + +export default RecentSearches; diff --git a/src/ui/BookSearch/SearchedBook.tsx b/src/ui/BookSearch/SearchedBook.tsx new file mode 100644 index 000000000..7622c79fa --- /dev/null +++ b/src/ui/BookSearch/SearchedBook.tsx @@ -0,0 +1,67 @@ +import bookAPI from '@/apis/book'; +import { APISearchedBook, APIBook } from '@/types/book'; +import { Center, Image, Text, VStack } from '@chakra-ui/react'; + +import LogoSmallIcon from '@public/icons/logo_sm.svg'; +import { useRouter } from 'next/navigation'; + +const SearchedBook = ({ + book, + onBookClick, +}: { + book: APISearchedBook; + onBookClick?: (book: APIBook) => void; +}) => { + const router = useRouter(); + + const handleClickBook = async (book: APISearchedBook) => { + try { + const { + data: { bookId }, + } = await bookAPI.createBook({ book }); + if (onBookClick) { + onBookClick({ ...book, bookId }); + } else { + router.push(`/book/${bookId}`); + } + } catch (error) { + console.error(error); + } + }; + + return ( + <VStack + key={book.isbn} + w="100%" + minH="18rem" + justify="center" + fontSize="sm" + bgColor="white" + p="1rem" + borderRadius={10} + boxShadow="lg" + cursor="pointer" + onClick={() => handleClickBook(book)} + > + {book.imageUrl ? ( + <Image src={book.imageUrl} alt="book-cover" /> + ) : ( + <Center bgColor="white" w="100%"> + <LogoSmallIcon /> + </Center> + )} + <Text + w="100%" + overflow="hidden" + whiteSpace="nowrap" + textOverflow="ellipsis" + textAlign="center" + fontSize="sm" + > + {book.title} + </Text> + </VStack> + ); +}; + +export default SearchedBook; diff --git a/src/ui/BookSearch/index.tsx b/src/ui/BookSearch/index.tsx new file mode 100644 index 000000000..0db7c94d0 --- /dev/null +++ b/src/ui/BookSearch/index.tsx @@ -0,0 +1,122 @@ +import { + Box, + Flex, + Input, + InputGroup, + InputLeftElement, + SimpleGrid, + Skeleton, + VStack, +} from '@chakra-ui/react'; +import { useEffect, useState } from 'react'; +import { useInView } from 'react-intersection-observer'; + +import type { APIBook } from '@/types/book'; +import useBookSearchQuery from '@/queries/book/useBookSearchQuery'; +import useRecentSearchesQuery from '@/queries/book/useRecentSearchesQuery'; +import useDebounceValue from '@/hooks/useDebounce'; +import SearchedBook from './SearchedBook'; +import RecentSearches from './RecentSearches'; +import SearchIcon from '@public/icons/search.svg'; +import { isAuthed } from '@/utils/helpers'; + +interface BookSearchProps { + onBookClick?: (bookId: APIBook) => void; +} + +const BookSearch = ({ onBookClick }: BookSearchProps) => { + const [inputValue, setInputValue] = useState(''); + const queryKeyword = useDebounceValue(inputValue, 1000); + + const { ref, inView } = useInView(); + + const bookSearchInfo = useBookSearchQuery({ + query: queryKeyword, + page: 1, + pageSize: 12, + }); + + const recentSearchesInfo = useRecentSearchesQuery({ enabled: isAuthed() }); + + const searchedBooks = bookSearchInfo.isSuccess + ? bookSearchInfo.data.pages.flatMap(page => page.searchBookResponseList) + : []; + + const recentSearches = recentSearchesInfo.isSuccess + ? recentSearchesInfo.data.bookRecentSearchResponses + : undefined; + + const onInputChange = (event: React.ChangeEvent<HTMLInputElement>) => { + if (!event.target) return; + const input = event.target.value; + setInputValue(input.trim()); + }; + + useEffect(() => { + if (inView && bookSearchInfo.hasNextPage) { + bookSearchInfo.fetchNextPage(); + } + isAuthed() && recentSearchesInfo.refetch(); + }, [ + bookSearchInfo.fetchNextPage, + inView, + bookSearchInfo.hasNextPage, + queryKeyword, + bookSearchInfo, + recentSearchesInfo, + ]); + + return ( + <VStack w="100%" gap="2rem"> + <InputGroup> + <InputLeftElement top="0.8rem"> + <Box w="1.8rem" h="1.8rem"> + <SearchIcon /> + </Box> + </InputLeftElement> + <Input + variant="flushed" + borderColor="black.500" + focusBorderColor="main" + fontSize="lg" + p="2rem 4rem" + value={inputValue} + onChange={onInputChange} + placeholder="책 제목, 작가를 검색해보세요" + _placeholder={{ color: 'black.500' }} + /> + </InputGroup> + + {!inputValue && ( + <RecentSearches + searchedWords={recentSearches} + setKeyword={setInputValue} + /> + )} + + {inputValue && ( + <SimpleGrid columns={3} gap="1rem"> + {searchedBooks.map((book, index) => ( + <SearchedBook + key={`${book.isbn}-${index}`} // API 데이터에 겹치는 isbn이 존재하여 임시 생성한 키 + book={book} + onBookClick={onBookClick} + /> + ))} + </SimpleGrid> + )} + + {inputValue && bookSearchInfo.isFetching && ( + <Flex gap="1rem" w="100%"> + <Skeleton w="100%" h="18rem" borderRadius={10} /> + <Skeleton w="100%" h="18rem" borderRadius={10} /> + <Skeleton w="100%" h="18rem" borderRadius={10} /> + </Flex> + )} + + <Box ref={ref} /> + </VStack> + ); +}; + +export default BookSearch; diff --git a/src/ui/BottomNavigation/NavigationItem/index.tsx b/src/ui/BottomNavigation/NavigationItem/index.tsx new file mode 100644 index 000000000..655c00226 --- /dev/null +++ b/src/ui/BottomNavigation/NavigationItem/index.tsx @@ -0,0 +1,52 @@ +import { Box, Flex, Text, useTheme } from '@chakra-ui/react'; +import dynamic from 'next/dynamic'; +import Link from 'next/link'; +import { MouseEvent, SVGProps, useMemo } from 'react'; + +interface NavigationItemPorps { + iconName: string; + label: string; + href: string; + isActive: boolean; + onClick?: (event: MouseEvent<HTMLAnchorElement>) => void; +} + +const NavigationItem = ({ + iconName, + label, + href, + isActive, + onClick, +}: NavigationItemPorps) => { + const theme = useTheme(); + const color = isActive ? theme.colors.main : theme.colors.black['900']; + + const Icon = useMemo( + () => + dynamic<SVGProps<SVGSVGElement>>( + () => import(`@/../public/icons/${iconName}.svg`) + ), + [iconName] + ); + + return ( + <Link onClick={onClick} href={href}> + <Flex + direction="column" + justify="center" + align="center" + gap="0.2rem" + cursor="pointer" + > + <Box w="2.6rem" h="2.6rem" position="relative"> + <Icon width="100%" height="100%" strokeWidth={0} fill={color} /> + </Box> + <Text fontSize="xs" fontWeight="bold" color={color}> + {label} + </Text> + </Flex> + </Link> + ); +}; + +export default NavigationItem; diff --git a/src/ui/BottomNavigation/index.tsx b/src/ui/BottomNavigation/index.tsx new file mode 100644 index 000000000..bcb7c08d1 --- /dev/null +++ b/src/ui/BottomNavigation/index.tsx @@ -0,0 +1,72 @@ +import { isAuthed } from '@/utils/helpers'; +import { Flex, useDisclosure } from '@chakra-ui/react'; +import { usePathname } from 'next/navigation'; +import { MouseEvent } from 'react'; +import LoginBottomSheet from '../LoginBottomSheet'; +import NavigationItem from './NavigationItem'; + +const BottomNavigation = () => { + const { isOpen, onOpen, onClose } = useDisclosure(); + + const pathname = usePathname(); + + const navigationItems = [ + { + iconName: 'bookshelf', + label: '북카이브', + href: '/bookarchive', + }, + { + iconName: 'book', + label: '도서 검색', + href: '/book/search', + }, + { + iconName: 'hashtag', + label: '독서 모임', + href: '/group', + }, + { + iconName: 'user', + label: '내 프로필', + href: '/profile/me', + onClick: (event: MouseEvent<HTMLAnchorElement>) => { + if (isAuthed()) return; + onOpen(); + event.preventDefault(); + }, + }, + ]; + + return ( + <> + <Flex + justify="space-between" + bg="white.900" + px="3.2rem" + py="1.4rem" + pos="fixed" + bottom={0} + w="100%" + maxW="43rem" + borderTopRadius={20} + boxShadow="rgba(0, 0, 0, 0.05) 0px 0px 10px 1px" + maxH="7rem" + > + {navigationItems.map(({ iconName, label, href, onClick }) => ( + <NavigationItem + key={href} + iconName={iconName} + label={label} + href={href} + isActive={pathname.indexOf(href) === 0} + onClick={onClick} + /> + ))} + </Flex> + <LoginBottomSheet isOpen={isOpen} onClose={onClose} /> + </> + ); +}; + +export default BottomNavigation; diff --git a/src/ui/FormInput/index.tsx b/src/ui/FormInput/index.tsx new file mode 100644 index 000000000..b1057f71a --- /dev/null +++ b/src/ui/FormInput/index.tsx @@ -0,0 +1,128 @@ +import FORM_RULES from '@/constants/FormRule'; +import { + FormControl, + FormErrorMessage, + FormLabel, + Input, + InputGroup, + InputRightElement, + Text, + useTheme, +} from '@chakra-ui/react'; +import CloseIcon from '@public/icons/close.svg'; +import { useEffect, useState } from 'react'; +import { useFormContext } from 'react-hook-form'; +import type { MouseEvent, TouchEvent } from 'react'; + +interface FormInputProps + extends Partial<Pick<HTMLInputElement, 'type' | 'disabled'>> { + label: string; + name: string; +} + +const FormInput = ({ + label, + name, + disabled = false, + type = 'text', +}: FormInputProps) => { + const theme = useTheme(); + const { colors } = theme; + + const { + register, + unregister, + setValue, + trigger, + getValues, + formState: { errors }, + } = useFormContext(); + + const error = errors[name]; + + const rules = FORM_RULES[name]; + + const onClearButtonClick = async ( + event: MouseEvent | TouchEvent<HTMLElement> + ) => { + setValue(name, ''); + await trigger(name); + event.preventDefault(); + }; + + const [isFocus, setIsFocus] = useState(false); + + const onInputFocus = () => { + setIsFocus(true); + }; + + const onInputBlur = () => { + setIsFocus(false); + }; + + useEffect(() => { + return () => { + unregister(name); + }; + }, [unregister, name, disabled]); + + return ( + <FormControl + isInvalid={!!error} + onFocus={onInputFocus} + onBlur={onInputBlur} + > + <FormLabel> + {label} + {!!rules.required && ( + <Text as="span" color="red"> + * + </Text> + )} + </FormLabel> + <InputGroup> + {disabled ? ( + <Input + focusBorderColor={colors.main} + py="2rem" + type={type} + bgColor="white" + disabled + {...register(name)} + /> + ) : ( + <Input + focusBorderColor={colors.main} + py="2rem" + type={type} + bgColor="white" + {...register(name, rules)} + /> + )} + + {isFocus && getValues(name).length && ( + <InputRightElement h="100%"> + <button + type="button" + onMouseDown={onClearButtonClick} + onTouchEnd={onClearButtonClick} + tabIndex={-1} + > + <CloseIcon + fill={colors.black['800']} + width="16" + height="16" + viewBox="0,0,24,24" + /> + </button> + </InputRightElement> + )} + </InputGroup> + {error?.message && ( + <FormErrorMessage>{String(error.message)}</FormErrorMessage> + )} + </FormControl> + ); +}; + +export default FormInput; diff --git a/src/ui/FormRadio/index.tsx b/src/ui/FormRadio/index.tsx new file mode 100644 index 000000000..1dc0af300 --- /dev/null +++ b/src/ui/FormRadio/index.tsx @@ -0,0 +1,71 @@ +import { + FormControl, + FormLabel, + RadioGroup, + Radio, + Stack, + Flex, +} from '@chakra-ui/react'; +import { useFormContext } from 'react-hook-form'; + +interface radioValues { + value: string; + text: string; +} + +interface FormRadioProps { + label: string; + name: string; + radioValues: radioValues[]; + value?: string; + onChange?: (value: string) => void; +} + +const FormRadio = ({ + label, + name, + radioValues, + value, + onChange, +}: FormRadioProps) => { + const { register } = useFormContext(); + + return ( + <FormControl> + <FormLabel>{label}</FormLabel> + <RadioGroup value={value} onChange={onChange}> + <Stack + width="100%" + direction="column" + spacing="1rem" + border="0.1rem solid" + borderColor="white.700" + borderRadius="0.4rem" + bgColor="white.900" + p="1rem 2rem" + > + <Flex flexWrap="wrap" justify="space-around"> + {radioValues.map(radioValue => { + const { value, text } = radioValue; + return ( + <Radio + key={value} + value={value} + colorScheme="orange" + flex="0 1 auto" + w="9rem" + {...register(name)} + > + {' '} + {text} + </Radio> + ); + })} + </Flex> + </Stack> + </RadioGroup> + </FormControl> + ); +}; + +export default FormRadio; diff --git a/src/ui/FormSelect/index.tsx b/src/ui/FormSelect/index.tsx new file mode 100644 index 000000000..f2b234425 --- /dev/null +++ b/src/ui/FormSelect/index.tsx @@ -0,0 +1,56 @@ +import FORM_RULES from '@/constants/FormRule'; +import { + FormControl, + FormErrorMessage, + FormLabel, + Select, + Text, + useTheme, +} from '@chakra-ui/react'; +import type { ReactNode } from 'react'; +import { useFormContext } from 'react-hook-form'; + +interface FormSelectProps { + label: string; + name: string; + children: ReactNode; +} + +const FormSelect = ({ label, name, children }: FormSelectProps) => { + const theme = useTheme(); + const { + register, + formState: { errors }, + } = useFormContext(); + + const error = errors[name]; + const rules = FORM_RULES[name]; + + return ( + <FormControl isInvalid={!!error}> + <FormLabel> + {label} + {!!rules.required && ( + <Text as="span" color="red"> + * + </Text> + )} + </FormLabel> + <Select + focusBorderColor={theme.colors.main} + placeholder={`${label}을 선택해주세요.`} + size="md" + h="4.2rem" + bgColor="white" + {...register(name, rules)} + > + {children} + </Select> + {error?.message && ( + <FormErrorMessage>{String(error.message)}</FormErrorMessage> + )} + </FormControl> + ); +}; + +export default FormSelect; diff --git a/src/ui/Group/AddGroupForm.tsx b/src/ui/Group/AddGroupForm.tsx new file mode 100644 index 000000000..909b52c9c --- /dev/null +++ b/src/ui/Group/AddGroupForm.tsx @@ -0,0 +1,340 @@ +import { + Box, + Center, + Flex, + Image, + useDisclosure, + useTheme, + VStack, + Input, + Text, + InputGroup, +} from '@chakra-ui/react'; +import { FormProvider, useForm } from 'react-hook-form'; +import FormInput from '@/ui/FormInput'; +import FormRadio from '@/ui/FormRadio'; +import BottomSheet from '@/ui/common/BottomSheet'; +import BookSearch from '@/ui/BookSearch'; +import { useEffect, useState } from 'react'; +import { APIBook } from '@/types/book'; +import GroupAPI from '@/apis/group'; +import { useRouter } from 'next/navigation'; +import { APICreateGroup } from '@/types/group'; +import { + MAX_MEMBER_COUNT_VALUE, + IS_PUBLICK_VALUE, + HAS_JOIN_PASSWORD_VALUE, +} from '../../constants/groupRadioValues'; +import Button from '@/ui/common/Button'; + +interface FormValues + extends Omit< + APICreateGroup, + 'maxMemberCount' | 'hasJoinPasswd' | 'isPublic' + > { + maxMemberCount: number | string | null; + hasJoinPasswd: 'true' | 'false' | boolean; + isPublic: 'true' | 'false' | boolean; +} + +const AddGroupForm = () => { + const router = useRouter(); + const [memberCountInput, setMemberCountInput] = useState(''); + const memberCountInputAsNumber = Number(memberCountInput); + + const [selectedBook, setSeletedBook] = useState<APIBook>(); + const { + isOpen: isBookSearchOpen, + onClose: onBookSearchClose, + onOpen: onBookSearchOpen, + } = useDisclosure(); + const { + isOpen: isMaxMemberSetOpen, + onClose: onMaxMemberSetClose, + onOpen: onMaxMemberSetOpen, + } = useDisclosure(); + + const date = new Date(); + const today = Date.now(); + const startDate = new Date(today - date.getTimezoneOffset() * 60000) + .toISOString() + .split('T')[0]; + + const methods = useForm<FormValues>({ + mode: 'all', + defaultValues: { + bookId: 0, + title: '', + introduce: '', + maxMemberCount: 'null', + startDate, + endDate: '', + hasJoinPasswd: 'false', + joinQuestion: '', + joinPasswd: '', + isPublic: 'true', + }, + }); + + const { isValid } = methods.formState; + const { maxMemberCount, hasJoinPasswd, isPublic } = methods.watch(); + + useEffect(() => { + if (hasJoinPasswd === 'false') { + methods.setValue('joinPasswd', ''); + methods.setValue('joinQuestion', ''); + methods.clearErrors('joinPasswd'); + methods.clearErrors('joinQuestion'); + } + if (maxMemberCount === '직접입력') { + setMemberCountInput(''); + onMaxMemberSetOpen(); + } + }, [methods, hasJoinPasswd, maxMemberCount, onMaxMemberSetOpen]); + + const onSubmit = async (group: FormValues) => { + let maxMemberCount = group.maxMemberCount; + + if (maxMemberCount === 'null') maxMemberCount = null; + else if (maxMemberCount === '직접입력') + maxMemberCount = memberCountInputAsNumber; + else maxMemberCount = Number(maxMemberCount); + + const request = { + ...group, + maxMemberCount, + isPublic: group.isPublic === 'true' ? true : false, + hasJoinPasswd: group.hasJoinPasswd === 'true' ? true : false, + }; + + try { + await GroupAPI.createGroup({ group: request }); + router.replace('/group'); + } catch (error) { + console.error(error); + } + }; + + const onMaxMemberInputComplete = () => { + const { isValid } = validateMaxMemberCount(memberCountInputAsNumber); + if (isValid) { + onMaxMemberSetClose(); + } + }; + + const validateMaxMemberCount = (value: number) => { + if (value > 1000) + return { isValid: false, message: '1000명 이하의 인원을 입력해 주세요' }; + + if (value < 1) + return { isValid: false, message: '1명 이상의 인원을 입력해 주세요' }; + + return { isValid: true, message: null }; + }; + + const getMaxMemberCountViewer = () => { + if (maxMemberCount === 'null') { + return '제한없음'; + } + + if (maxMemberCount === '직접입력') { + const { isValid } = validateMaxMemberCount(memberCountInputAsNumber); + return isValid ? `${memberCountInput}명` : ''; + } + + return `${maxMemberCount}명`; + }; + + const validationMessage = memberCountInput + ? validateMaxMemberCount(memberCountInputAsNumber).message + : ''; + + return ( + <> + <FormProvider {...methods}> + <Box as="form" w="100%" onSubmit={methods.handleSubmit(onSubmit)}> + <BookSelectBox + selectedBook={selectedBook} + onClick={onBookSearchOpen} + isShowError={!!methods.getFieldState('bookId').error} + /> + <Flex direction="column" gap="2rem" align="center"> + <Box display="none"> + <FormInput label="" name="bookId" /> + </Box> + <FormInput label="제목" name="title" /> + <FormInput label="설명" name="introduce" /> + <FormRadio + label={`참여 인원 : ${getMaxMemberCountViewer()}`} + name="maxMemberCount" + radioValues={MAX_MEMBER_COUNT_VALUE} + value={`${maxMemberCount}`} + /> + <FormRadio + label="댓글 공개 여부" + name="isPublic" + radioValues={IS_PUBLICK_VALUE} + value={`${isPublic}`} + /> + <FormRadio + label="모임 가입 문제" + name="hasJoinPasswd" + radioValues={HAS_JOIN_PASSWORD_VALUE} + value={`${hasJoinPasswd}`} + /> + <FormInput + label="문제" + name="joinQuestion" + disabled={ + methods.watch('hasJoinPasswd') === 'true' ? false : true + } + /> + <FormInput + label="정답" + name="joinPasswd" + disabled={ + methods.watch('hasJoinPasswd') === 'true' ? false : true + } + /> + <FormInput label="시작일" name="startDate" type="date" /> + <FormInput label="종료일" name="endDate" type="date" /> + </Flex> + <Button + type="submit" + scheme={isValid ? 'orange-fill' : 'grey-fill'} + my="4rem" + fullWidth + > + 모임 생성하기 + </Button> + </Box> + </FormProvider> + <BookSearchBottomSheet + isOpen={isBookSearchOpen} + onClose={onBookSearchClose} + onBookClick={book => { + setSeletedBook(book); + methods.setValue('bookId', book.bookId); + onBookSearchClose(); + }} + /> + <MaxMemberCountBottomSheet + isOpen={isMaxMemberSetOpen} + onClose={onMaxMemberSetClose} + onCancel={() => { + methods.setValue('maxMemberCount', 'null'); + }} + onComplete={onMaxMemberInputComplete} + inputValue={memberCountInput} + onInputChange={e => setMemberCountInput(e.target.value)} + validationMessage={validationMessage} + /> + </> + ); +}; + +const BookSelectBox = ({ + selectedBook, + onClick, + isShowError, +}: { + selectedBook?: APIBook; + isShowError?: boolean; + onClick: () => void; +}) => { + const theme = useTheme(); + return ( + <Box + onClick={onClick} + fontSize="md" + maxH="18rem" + w="fit-content" + mx="auto" + border={isShowError ? `2px solid ${theme.colors.red['500']}` : 'none'} + > + {selectedBook && selectedBook.imageUrl ? ( + <Image src={selectedBook.imageUrl} alt="book-cover" /> + ) : ( + <Center + borderRadius={10} + bgColor="white" + w="12rem" + h="17.4rem" + textAlign="center" + > + 책을 + <br /> + 선택해주세요. + </Center> + )} + </Box> + ); +}; + +const BookSearchBottomSheet = ({ + isOpen, + onClose, + onBookClick, +}: { + isOpen: boolean; + onClose: () => void; + onBookClick: (book: APIBook) => void; +}) => { + return ( + <BottomSheet isOpen={isOpen} onClose={onClose}> + <VStack px="2rem" py="2rem" h="95vh" gap="1rem" overflow="scroll"> + <BookSearch onBookClick={onBookClick} /> + </VStack> + </BottomSheet> + ); +}; + +const MaxMemberCountBottomSheet = ({ + inputValue, + onInputChange, + isOpen, + onClose, + onCancel, + onComplete, + validationMessage, +}: { + inputValue: string; + onInputChange: React.ChangeEventHandler<HTMLInputElement>; + isOpen: boolean; + onClose: () => void; + onCancel: () => void; + onComplete: () => void; + validationMessage: string | null; +}) => { + return ( + <BottomSheet isOpen={isOpen} onClose={onClose} onCancel={onCancel}> + <VStack px="2rem" py="2rem" h="50vh" gap="1rem" overflow="scroll"> + <Text + fontSize="lg" + alignSelf="flex-end" + bgColor="white.900" + cursor="pointer" + onClick={onComplete} + > + 확인 + </Text> + <Text fontSize="lg">참여 인원</Text> + <InputGroup> + <Input + h="4rem" + value={inputValue} + focusBorderColor="main" + type="number" + placeholder="모임 인원을 입력해주세요" + onChange={onInputChange} + /> + </InputGroup> + <Text fontSize="sm" color="red.900"> + {validationMessage} + </Text> + </VStack> + </BottomSheet> + ); +}; + +export default AddGroupForm; diff --git a/src/ui/Group/EditGroupForm.tsx b/src/ui/Group/EditGroupForm.tsx new file mode 100644 index 000000000..1c272e134 --- /dev/null +++ b/src/ui/Group/EditGroupForm.tsx @@ -0,0 +1,83 @@ +import { Box, Flex, Image, useTheme } from '@chakra-ui/react'; +import { FormProvider, useForm } from 'react-hook-form'; + +import FormInput from '@/ui/FormInput'; +import { APIGroupDetail } from '@/types/group'; +import GroupAPI from '@/apis/group'; +import { useRouter } from 'next/navigation'; + +interface EditGroupFormProps { + group: APIGroupDetail; +} + +const EditGroupForm = ({ group }: EditGroupFormProps) => { + const theme = useTheme(); + const router = useRouter(); + const methods = useForm({ + mode: 'all', + defaultValues: { + title: group.title, + introduce: group.introduce, + startDate: group.startDate, + maxMemberCount: group.maxMemberCount, + endDate: group.endDate, + }, + }); + + const onSubmit: Parameters<typeof methods.handleSubmit>[0] = async ({ + title, + introduce, + maxMemberCount, + endDate, + }) => { + try { + await GroupAPI.updateGroupInfo({ + bookGroupId: group.bookGroupId, + group: { title, introduce, endDate, maxMemberCount }, + }); + + router.push(`/group/${group.bookGroupId}`); + } catch (error) { + console.error(error); + } + }; + + return ( + <> + <FormProvider {...methods}> + <Box as="form" w="100%" onSubmit={methods.handleSubmit(onSubmit)}> + <Box fontSize="md" maxH="18rem" w="fit-content" mx="auto"> + <Image src={group.book.imageUrl} alt="book-cover" /> + </Box> + <Flex direction="column" gap="2rem" align="center"> + <FormInput label="제목" name="title" /> + <FormInput label="설명" name="introduce" /> + <FormInput label="시작일" name="startDate" type="date" disabled /> + <FormInput label="종료일" name="endDate" type="date" /> + </Flex> + <Box + as="button" + w="100%" + mt="4rem" + px="2rem" + py="1rem" + disabled={methods.formState.isSubmitting} + color={theme.colors.main} + border="1px solid" + borderRadius="5rem" + fontSize="md" + fontWeight="bold" + _disabled={{ + color: `${theme.colors.black['500']}`, + border: '1px solid', + }} + > + 모임 수정하기 + </Box> + </Box> + </FormProvider> + </> + ); +}; + +export default EditGroupForm; diff --git a/src/ui/Group/GroupComment/CommentDeleteModal.tsx b/src/ui/Group/GroupComment/CommentDeleteModal.tsx new file mode 100644 index 000000000..3ddd76c24 --- /dev/null +++ b/src/ui/Group/GroupComment/CommentDeleteModal.tsx @@ -0,0 +1,108 @@ +import { + Box, + Flex, + Button, + AlertDialog, + AlertDialogBody, + AlertDialogFooter, + AlertDialogContent, + AlertDialogOverlay, + useDisclosure, +} from '@chakra-ui/react'; + +import { useTheme } from '@chakra-ui/react'; +import { MutableRefObject, useRef } from 'react'; + +interface CommentDeleteModalProps { + commentId: number; + handleDeleteCommentBtnClick: (commentId: number) => void; +} + +const CommentDeleteModal = ({ + commentId, + handleDeleteCommentBtnClick, +}: CommentDeleteModalProps) => { + const { + isOpen: isDeleteModalOpen, + onClose: onDeleteModalClose, + onOpen: onDeleteModalOpen, + } = useDisclosure(); + + const cancelRef = useRef(null); + + const onDeleteCommentClick = () => { + handleDeleteCommentBtnClick(commentId); + onDeleteModalClose(); + }; + + return ( + <> + <Box + onClick={onDeleteModalOpen} + width="100%" + fontSize="md" + color="red.300" + > + 삭제 + </Box> + <DeleteComfirmDialog + cancelRef={cancelRef} + isOpen={isDeleteModalOpen} + onClose={onDeleteModalClose} + onDelete={onDeleteCommentClick} + /> + </> + ); +}; + +export default CommentDeleteModal; + +const DeleteComfirmDialog = ({ + cancelRef, + isOpen, + onClose, + onDelete, +}: { + isOpen: boolean; + onClose: () => void; + onDelete: () => void; + cancelRef: MutableRefObject<null>; +}) => { + const theme = useTheme(); + + return ( + <AlertDialog + leastDestructiveRef={cancelRef} + isOpen={isOpen} + onClose={onClose} + > + <AlertDialogOverlay> + <AlertDialogContent alignSelf="center" p="1.5rem"> + <AlertDialogBody fontSize="md" py="1.5rem"> + 댓글을 정말 삭제할까요? + </AlertDialogBody> + <AlertDialogFooter as={Flex} justify="center" gap="1rem"> + <Button + ref={cancelRef} + onClick={onClose} + flexGrow="1" + {...theme.buttonSizes['md']} + {...theme.scheme.button['grey']} + > + 취소 + </Button> + <Button + ref={cancelRef} + onClick={onDelete} + flexGrow="1" + {...theme.buttonSizes['md']} + {...theme.scheme.button['orange-fill']} + > + 삭제 + </Button> + </AlertDialogFooter> + </AlertDialogContent> + </AlertDialogOverlay> + </AlertDialog> + ); +}; diff --git a/src/ui/Group/GroupComment/CommentInputBox.tsx b/src/ui/Group/GroupComment/CommentInputBox.tsx new file mode 100644 index 000000000..720c7d06d --- /dev/null +++ b/src/ui/Group/GroupComment/CommentInputBox.tsx @@ -0,0 +1,73 @@ +import { Box, Flex } from '@chakra-ui/react'; +import { useRef } from 'react'; +import CommentDrawer from '@/ui/BookDetail/CommentDrawer'; +import { useDisclosure } from '@chakra-ui/react'; +interface CommentInputBoxProps { + isPartInUser: boolean; + handleCreateCommentBtnClick: (comment: string) => void; + userNickname?: string | null; + userAvatar?: string; +} + +const CommentInputBox = ({ + isPartInUser, + handleCreateCommentBtnClick, +}: CommentInputBoxProps) => { + const { + isOpen: isCommentDrawer, + onOpen: onCommentDrawerOpen, + onClose: onCommentDrawerClose, + } = useDisclosure(); + const commentTextAreaRef = useRef<HTMLTextAreaElement>(null); + + const onCompleteClick = () => { + const comment = commentTextAreaRef.current?.value; + if (comment) { + handleCreateCommentBtnClick(comment); + } + onCommentDrawerClose(); + }; + + return ( + <Box mt="1.5rem" h="100%"> + <Box fontSize="lg" fontWeight={700} mb="1rem"> + 댓글 작성 + </Box> + <Box p="1rem" bgColor="white" borderRadius="1rem" boxShadow="default"> + <Box m="1rem 0"> + <Flex + pl="1rem" + align="center" + w="100%" + h="4rem" + fontSize="md" + color="black.600" + border="solid 1px" + borderColor={!isPartInUser ? 'white.900' : 'main'} + backgroundColor={!isPartInUser ? 'white.700' : 'white.900'} + borderRadius="1rem" + onClick={() => { + if (isPartInUser) { + onCommentDrawerOpen(); + } + }} + > + {isPartInUser + ? '댓글을 입력해 주세요' + : '모임에 참여해야 글을 작성할 수 있습니다'} + </Flex> + </Box> + </Box> + <CommentDrawer + title="글 작성하기" + placeholder="여러분의 자유로운 이야기를 들려주세요" + isOpen={isCommentDrawer} + onClose={onCommentDrawerClose} + textareaRef={commentTextAreaRef} + onComplete={onCompleteClick} + /> + </Box> + ); +}; + +export default CommentInputBox; diff --git a/src/ui/Group/GroupComment/CommentModifyModal.tsx b/src/ui/Group/GroupComment/CommentModifyModal.tsx new file mode 100644 index 000000000..4507d5240 --- /dev/null +++ b/src/ui/Group/GroupComment/CommentModifyModal.tsx @@ -0,0 +1,58 @@ +import { useRef } from 'react'; +import { useDisclosure, Box } from '@chakra-ui/react'; + +import CommentDrawer from '@/ui/BookDetail/CommentDrawer'; + +interface CommentModifyModalProps { + commentId: number; + comment: string; + handleModifyCommentBtnClick: ( + modifiedComment: string, + commentId: number + ) => void; +} + +const CommentModifyModal = ({ + commentId, + comment, + handleModifyCommentBtnClick, +}: CommentModifyModalProps) => { + const commentTextAreaRef = useRef<HTMLTextAreaElement>(null); + const { + onOpen: onModifyModalOpen, + onClose: onModifyModalClose, + isOpen: isModifyModalOpen, + } = useDisclosure(); + + const onCompleteClick = () => { + const comment = commentTextAreaRef.current?.value; + if (comment) { + handleModifyCommentBtnClick(comment, commentId); + } + onModifyModalClose(); + }; + + return ( + <Box> + <Box + onClick={onModifyModalOpen} + w="10rem" + fontSize="md" + color="black.800" + > + 수정 + </Box> + <CommentDrawer + title="글 수정하기" + placeholder="글을 입력해 주세요!" + isOpen={isModifyModalOpen} + onClose={onModifyModalClose} + defaultComment={comment} + textareaRef={commentTextAreaRef} + onComplete={onCompleteClick} + /> + </Box> + ); +}; + +export default CommentModifyModal; diff --git a/src/ui/Group/GroupComment/GuideMessage.tsx b/src/ui/Group/GroupComment/GuideMessage.tsx new file mode 100644 index 000000000..791141599 --- /dev/null +++ b/src/ui/Group/GroupComment/GuideMessage.tsx @@ -0,0 +1,74 @@ +import { VStack, Text, Highlight, Link, Image, Box } from '@chakra-ui/react'; + +import Button from '@/ui/common/Button'; + +interface GuideMessageProps { + isAuthed: boolean; + isPublic: boolean; + isGroupMember: boolean; +} + +const GuideMessage = ({ + isAuthed, + isPublic, + isGroupMember, +}: GuideMessageProps) => { + const kakaoUrl = `${process.env.NEXT_PUBLIC_API_URL}/oauth2/authorize/kakao?redirect_uri=${process.env.NEXT_PUBLIC_CLIENT_REDIRECT_URI}`; + + return ( + <Box> + <Box> + {!isAuthed && !isPublic ? ( + <VStack h="20rem" direction="column" gap="1rem"> + <Text + w="100%" + textAlign="center" + mt="4rem" + fontSize="lg" + color="black.700" + > + <Highlight query="로그인" styles={{ color: 'main' }}> + 로그인 후 이용해 주세요 + </Highlight> + </Text> + <Link href={kakaoUrl} style={{ width: '100%' }}> + <Button scheme="kakao" fullWidth> + <Image + src="/images/kakao.svg" + alt="카카오 로고" + width={21} + height={19} + /> + 카카오 로그인 + </Button> + </Link> + </VStack> + ) : ( + '' + )} + </Box> + <Box> + {isAuthed && !isPublic && !isGroupMember ? ( + <Text + h="10rem" + w="100%" + textAlign="center" + mt="4rem" + fontSize="lg" + color="black.700" + > + <Highlight query="모임에 참여한 사람" styles={{ color: 'main' }}> + 이 모임은 모임에 참여한 사람만 + </Highlight> + <br /> + 글을 볼 수 있어요 + </Text> + ) : ( + '' + )} + </Box> + </Box> + ); +}; + +export default GuideMessage; diff --git a/src/ui/Group/GroupComment/index.tsx b/src/ui/Group/GroupComment/index.tsx new file mode 100644 index 000000000..3c5bff37e --- /dev/null +++ b/src/ui/Group/GroupComment/index.tsx @@ -0,0 +1,140 @@ +import { Avatar, Box, Flex, Highlight, Text } from '@chakra-ui/react'; +import Link from 'next/link'; + +import { initialBookGroupComments } from '@/constants/initialBookGroupComments'; +import { APIGroupComment } from '@/types/group'; +import { isAuthed } from '@/utils/helpers'; +import CommentDeleteModal from './CommentDeleteModal'; +import CommentModifyModal from './CommentModifyModal'; +import GuideMessage from './GuideMessage'; +import { Menu, MenuItem } from '@/ui/common/Menu'; + +interface commentsListProps { + isGroupMember: boolean; + isPublic: boolean; + isEmpty: boolean; + commentsListData: APIGroupComment[]; + handleDeleteCommentBtnClick: (commentId: number) => void; + handleModifyCommentBtnClick: ( + modifiedComment: string, + commentId: number + ) => void; +} + +const CommentsList = ({ + isGroupMember, + isPublic, + isEmpty, + commentsListData, + handleDeleteCommentBtnClick, + handleModifyCommentBtnClick, +}: commentsListProps) => { + const getFilteredComments = () => { + const commentsLength = commentsListData.length; + + if (!isAuthed() && !isPublic && commentsLength < 5) { + return initialBookGroupComments.slice(0, commentsLength); + } else if (!isAuthed() && !isPublic) { + return initialBookGroupComments; + } + + if (isAuthed() && !isPublic && !isGroupMember && commentsLength < 5) { + return initialBookGroupComments.slice(0, commentsLength); + } else if (isAuthed() && !isPublic && !isGroupMember) { + return initialBookGroupComments; + } + return commentsListData; + }; + + const filteredComments = getFilteredComments(); + + return isEmpty ? ( + <Text w="100%" textAlign="center" mt="4rem" fontSize="lg" color="black.700"> + <Highlight query="주인공" styles={{ color: 'main' }}> + 첫 번째 글 작성의 주인공이 되어주세요. + </Highlight> + </Text> + ) : ( + <Box mt="1.5rem"> + <Box fontSize="lg" fontWeight={700}> + 댓글 + </Box> + <Box> + {filteredComments && + filteredComments.map( + ({ + commentId, + userId, + contents, + userProfileImage, + nickname, + writtenByCurrentUser, + }) => { + return ( + <Box + filter="auto" + blur={ + (!isAuthed() && !isPublic) || + (isAuthed() && !isPublic && !isGroupMember) + ? '3px' + : 'undefined' + } + key={commentId} + mt="1rem" + p="1rem" + bgColor="white" + borderRadius="1.5rem" + boxShadow="default" + > + <Flex mb="0.5rem" justify="space-between"> + <Flex as={Link} href={`/profile/${userId}`}> + <Avatar src={userProfileImage} loading="lazy" /> + <Flex + align="center" + fontSize="sm" + ml="1rem" + fontWeight={500} + > + {nickname} + </Flex> + </Flex> + {writtenByCurrentUser && ( + <Menu> + <MenuItem> + <CommentModifyModal + commentId={commentId} + comment={contents} + handleModifyCommentBtnClick={ + handleModifyCommentBtnClick + } + /> + </MenuItem> + <MenuItem color="red.300"> + <CommentDeleteModal + commentId={commentId} + handleDeleteCommentBtnClick={ + handleDeleteCommentBtnClick + } + /> + </MenuItem> + </Menu> + )} + </Flex> + <Box lineHeight="2.2rem" fontSize="md"> + {contents} + </Box> + </Box> + ); + } + )} + </Box> + <GuideMessage + isAuthed={isAuthed()} + isPublic={isPublic} + isGroupMember={isGroupMember} + /> + </Box> + ); +}; + +export default CommentsList; diff --git a/src/ui/Group/GroupDetail/GroupInfo.tsx b/src/ui/Group/GroupDetail/GroupInfo.tsx new file mode 100644 index 000000000..c70811a48 --- /dev/null +++ b/src/ui/Group/GroupDetail/GroupInfo.tsx @@ -0,0 +1,321 @@ +import { + AlertDialog, + AlertDialogBody, + AlertDialogContent, + AlertDialogFooter, + AlertDialogOverlay, + Box, + Button, + Flex, + Image, + Input, + Text, + useDisclosure, + useTheme, +} from '@chakra-ui/react'; +import { MutableRefObject, useRef, useState } from 'react'; +import Link from 'next/link'; + +import { APIGroupDetail } from '@/types/group'; +import BottomSheet from '@/ui/common/BottomSheet'; + +import { useToast } from '@/hooks/toast'; +import TopNavigation from '@/ui/common/TopNavigation'; +import { Menu, MenuItem } from '@/ui/common/Menu'; +import LoginBottomSheet from '@/ui/LoginBottomSheet'; +import { isAuthed } from '@/utils/helpers'; + +interface GroupInfoProps { + groupInfoData: APIGroupDetail; + handleParticipateBtnClick: ( + password?: string, + onSuccess?: () => void, + onFailed?: () => void + ) => void; + handleDeleteGroupBtnClick: () => void; +} + +const GroupInfo = ({ + groupInfoData, + handleParticipateBtnClick, + handleDeleteGroupBtnClick, +}: GroupInfoProps) => { + const [password, setPassword] = useState(''); + const cancelRef = useRef(null); + const { + isOpen: isLoginModalOpen, + onOpen: onLoginModalOpen, + onClose: onLoginModalClose, + } = useDisclosure(); + const { + isOpen: isPasswordModalOpen, + onOpen: onPasswordModalOpen, + onClose: onPasswordModalClose, + } = useDisclosure(); + const { + isOpen: isDeleteModalOpen, + onClose: onDeleteModalClose, + onOpen: onDeleteModalOpen, + } = useDisclosure(); + + const { showToast } = useToast(); + + const { + bookGroupId, + title, + introduce, + startDate, + endDate, + hasJoinPasswd, + joinQuestion, + isPublic: _isPublic, + maxMemberCount: _maxMemberCount, + currentMemberCount, + commentCount, + owner: _owner, + book, + isOwner, + isGroupMember, + } = groupInfoData; + + const message = hasJoinPasswd ? '가입 비밀번호 입력 필요' : '바로 참여 가능'; + + const onDeleteGroupClick = () => { + if (currentMemberCount > 1) { + showToast({ + message: '혼자가 아니면 다른 모임원들이 있어 모임 삭제가 불가능해요!', + }); + onDeleteModalClose(); + return; + } + handleDeleteGroupBtnClick(); + onDeleteModalClose(); + }; + + const onChangePassword = (event: React.ChangeEvent<HTMLInputElement>) => { + setPassword(event.target.value); + }; + + const onPartInButtonClick = () => { + if (!isAuthed()) { + onLoginModalOpen(); + return; + } + hasJoinPasswd ? onPasswordModalOpen() : handleParticipateBtnClick(); + }; + + return ( + <> + <Flex align="center"> + <TopNavigation pageTitle="모임 상세 페이지" /> + {isOwner && ( + <Menu> + <MenuItem + text="수정" + as={Link} + href={`/group/${bookGroupId}/edit`} + /> + <MenuItem text="삭제" color="red.300" onClick={onDeleteModalOpen}> + <DeleteComfirmDialog + cancelRef={cancelRef} + isOpen={isDeleteModalOpen} + onClose={onDeleteModalClose} + onDelete={onDeleteGroupClick} + /> + </MenuItem> + </Menu> + )} + </Flex> + + <Flex direction="column" align="center"> + <Text fontSize="xl" fontWeight={700}> + {title} + </Text> + <Text fontSize="md" m="1rem 0"> + {introduce} + </Text> + </Flex> + <Flex mt="1.5rem" justify="space-between" h="14rem"> + <Box w="68%" bgColor="white" borderRadius="1rem" boxShadow="default"> + <Flex p="1rem" h="100%" direction="column" justify="space-between"> + <Box h="60%"> + <Box fontSize="1.2rem"> + {startDate} ~ {endDate} + </Box> + <Flex h="70%"> + <Text + fontSize="md" + overflow="hidden" + textOverflow="ellipsis" + whiteSpace="nowrap" + fontWeight={600} + > + {book.title} + </Text> + </Flex> + </Box> + <Box> + <Box fontSize="1.2rem" fontWeight={500} color="red.800"> + {isGroupMember ? '' : message} + </Box> + <Flex> + <Flex align="center" w="4rem"> + <Box> + <Image src="/icons/peopleIcon.svg" alt="peopleIcon" /> + </Box> + <Box fontSize="1rem" w="3rem" ml="0.5rem"> + {currentMemberCount} + </Box> + </Flex> + <Flex align="center" w="4rem" ml="0.5rem"> + <Box> + <Image src="/icons/commentIcon.svg" alt="commentIcon" /> + </Box> + <Text fontSize="1rem" w="3rem" ml="0.5rem"> + {commentCount} + </Text> + </Flex> + </Flex> + </Box> + </Flex> + </Box> + <Flex w="30%" justify="center" align="center"> + <Link href={`/book/${book.id}`}> + <Image + src={book.imageUrl} + alt="bookCover" + w="10rem" + objectFit="cover" + borderRadius="1rem" + boxShadow="default" + /> + </Link> + </Flex> + </Flex> + <Box mt="1.5rem"> + {!isOwner && ( + <> + <Button + w="100%" + h="4.5rem" + fontSize="md" + fontWeight="600" + borderRadius="1.2rem" + color="white.900" + border="0.1rem solid" + backgroundColor="main" + onClick={onPartInButtonClick} + isDisabled={isGroupMember} + _disabled={{ + border: 'none', + color: 'main', + background: 'white', + pointerEvents: 'none', + }} + > + {isGroupMember ? '참여 중' : '모임 참여하기'} + </Button> + <BottomSheet + isOpen={isPasswordModalOpen} + onClose={onPasswordModalClose} + > + <Flex p="3rem" h="90vh" gap="3rem" direction="column"> + <Button + alignSelf="flex-end" + bgColor="white.900" + onClick={() => { + handleParticipateBtnClick(password, () => { + onPasswordModalClose(); + setPassword(''); + }); + }} + > + 확인 + </Button> + <Flex direction="column" gap="1rem"> + <Text fontSize="xl" color="main"> + 질문 + </Text> + <Text fontSize="lg" fontWeight={700}> + {joinQuestion} + </Text> + </Flex> + <Flex direction="column" gap="1rem"> + <Text fontSize="xl" color="main"> + 정답 + </Text> + <Input + focusBorderColor="main" + value={password} + h="4rem" + placeholder="- 띄어쓰기 없이 정답을 입력해 주세요." + onChange={onChangePassword} + /> + </Flex> + </Flex> + <DeleteComfirmDialog + cancelRef={cancelRef} + isOpen={isDeleteModalOpen} + onClose={onDeleteModalClose} + onDelete={onDeleteGroupClick} + /> + </BottomSheet> + </> + )} + </Box> + <LoginBottomSheet isOpen={isLoginModalOpen} onClose={onLoginModalClose} /> + </> + ); +}; + +export default GroupInfo; + +const DeleteComfirmDialog = ({ + cancelRef, + isOpen, + onClose, + onDelete, +}: { + isOpen: boolean; + onClose: () => void; + onDelete: () => void; + cancelRef: MutableRefObject<null>; +}) => { + const theme = useTheme(); + + return ( + <AlertDialog + leastDestructiveRef={cancelRef} + isOpen={isOpen} + onClose={onClose} + > + <AlertDialogOverlay> + <AlertDialogContent alignSelf="center" p="1.5rem"> + <AlertDialogBody fontSize="md" py="1.5rem"> + 모임을 정말 삭제할까요? + </AlertDialogBody> + <AlertDialogFooter as={Flex} justify="center" gap="1rem"> + <Button + ref={cancelRef} + onClick={onClose} + flexGrow="1" + {...theme.buttonSizes['md']} + {...theme.scheme.button['grey']} + > + 취소 + </Button> + <Button + ref={cancelRef} + onClick={onDelete} + flexGrow="1" + {...theme.buttonSizes['md']} + {...theme.scheme.button['orange-fill']} + > + 삭제 + </Button> + </AlertDialogFooter> + </AlertDialogContent> + </AlertDialogOverlay> + </AlertDialog> + ); +}; diff --git a/src/ui/Group/GroupDetail/index.tsx b/src/ui/Group/GroupDetail/index.tsx new file mode 100644 index 000000000..7a609b116 --- /dev/null +++ b/src/ui/Group/GroupDetail/index.tsx @@ -0,0 +1,123 @@ +import { Flex, VStack, Skeleton } from '@chakra-ui/react'; +import { useRouter } from 'next/navigation'; + +import GroupInfo from '@/ui/Group/GroupDetail/GroupInfo'; +import CommentInputBox from '../GroupComment/CommentInputBox'; +import CommentsList from '../GroupComment'; +import useGroupInfoQuery from '@/queries/group/useGroupInfoQuery'; +import useGroupCommentsQuery from '@/queries/group/useGroupCommentsQuery'; +import GroupAPI from '@/apis/group'; +import { useToast } from '@/hooks/toast'; + +interface GroupDetailProps { + bookGroupId: number; +} + +const GroupDetail = ({ bookGroupId }: GroupDetailProps) => { + const groupInfoQuery = useGroupInfoQuery({ bookGroupId }); + const groupCommentsQuery = useGroupCommentsQuery({ bookGroupId }); + const { showToast } = useToast(); + const router = useRouter(); + + if (groupInfoQuery.isLoading || groupCommentsQuery.isLoading) + return ( + <VStack gap="2rem" align="stretch" w="100%" mt="2rem"> + <Skeleton height="3rem" /> + <Skeleton height="10rem" /> + <Skeleton height="18rem" /> + <Skeleton height="35rem" /> + </VStack> + ); + + const isSuccess = groupInfoQuery.isSuccess && groupCommentsQuery.isSuccess; + if (!isSuccess) return null; + + const handleParticipateBtnClick = async ( + password?: string, + onSuccess?: () => void + ) => { + try { + await GroupAPI.joinGroup({ bookGroupId, password }); + onSuccess && onSuccess(); + showToast({ message: '모임에 가입되었어요' }); + } catch (error) { + error && + showToast({ message: '정답이 아니에요 다시 한 번 도전해 주세요' }); + } + groupInfoQuery.refetch(); + }; + + const handleCreateCommentBtnClick = async (comment: string) => { + if (comment.trim() === '') return; + try { + await GroupAPI.createGroupComment({ bookGroupId, comment }); + } catch (error) { + console.error(error); + } + groupInfoQuery.refetch(); + groupCommentsQuery.refetch(); + }; + + const handleModifyCommentBtnClick = async ( + modifiedComment: string, + commentId: number + ) => { + try { + await GroupAPI.updateGroupComment({ + bookGroupId, + commentId, + comment: modifiedComment, + }); + } catch (error) { + console.error(error); + } + groupCommentsQuery.refetch(); + }; + + const handleDeleteCommentBtnClick = async (commentId: number) => { + try { + await GroupAPI.deleteGroupComment({ bookGroupId, commentId }); + } catch (error) { + console.error(error); + } + groupInfoQuery.refetch(); + groupCommentsQuery.refetch(); + }; + + const handleDeleteGroupBtnClick = async () => { + try { + await GroupAPI.deleteGroup({ bookGroupId }); + } catch (error) { + console.error(error); + } + + router.push('/group'); + }; + + const { isGroupMember, isPublic } = groupInfoQuery.data; + const { bookGroupComments, isEmpty } = groupCommentsQuery.data; + + return ( + <Flex direction="column" justify="center"> + <GroupInfo + groupInfoData={groupInfoQuery.data} + handleParticipateBtnClick={handleParticipateBtnClick} + handleDeleteGroupBtnClick={handleDeleteGroupBtnClick} + /> + <CommentInputBox + isPartInUser={isGroupMember} + handleCreateCommentBtnClick={handleCreateCommentBtnClick} + /> + <CommentsList + isGroupMember={isGroupMember} + isPublic={isPublic} + isEmpty={isEmpty} + commentsListData={bookGroupComments} + handleDeleteCommentBtnClick={handleDeleteCommentBtnClick} + handleModifyCommentBtnClick={handleModifyCommentBtnClick} + /> + </Flex> + ); +}; + +export default GroupDetail; diff --git a/src/ui/Group/GroupHeader.tsx b/src/ui/Group/GroupHeader.tsx new file mode 100644 index 000000000..0ea005c0e --- /dev/null +++ b/src/ui/Group/GroupHeader.tsx @@ -0,0 +1,57 @@ +import LoginBottomSheet from '@/ui/LoginBottomSheet'; +import { Box, Button, Flex, Text, useDisclosure } from '@chakra-ui/react'; +import Link from 'next/link'; + +import { isAuthed } from '@/utils/helpers'; +import { MouseEvent } from 'react'; + +const GroupHeader = () => { + const { isOpen, onOpen, onClose } = useDisclosure(); + + const onClick = (event: MouseEvent<HTMLAnchorElement>) => { + if (isAuthed()) return; + onOpen(); + event.preventDefault(); + }; + + return ( + <Box width="100%"> + <Flex mb="2rem" justify="space-between"> + <Text + alignSelf="flex-start" + fontSize="2rem" + fontWeight="800" + color="main" + > + Group + </Text> + <Flex align="center"> + <Link href="/group/create" onClick={onClick}> + <Button + fontSize="sm" + borderRadius="0.6rem" + color="white.900" + backgroundColor="main" + border="0.1rem solid" + p="1.4rem 1.5rem" + display="flex" + > + <Text + alignSelf="center" + fontSize="2rem" + fontWeight="medium" + mr="0.4rem" + > + + + </Text> + 모임 + </Button> + </Link> + </Flex> + </Flex> + <LoginBottomSheet isOpen={isOpen} onClose={onClose} /> + </Box> + ); +}; + +export default GroupHeader; diff --git a/src/ui/Group/GroupList/GroupListItem.tsx b/src/ui/Group/GroupList/GroupListItem.tsx new file mode 100644 index 000000000..5c929d8f3 --- /dev/null +++ b/src/ui/Group/GroupList/GroupListItem.tsx @@ -0,0 +1,138 @@ +import { APIGroup } from '@/types/group'; +import { Avatar, Box, Flex, Image, Text } from '@chakra-ui/react'; +import Link from 'next/link'; + +const GroupListItem = ({ + bookGroupId, + title, + isPublic, + introduce, + hasJoinPasswd: _hasJoinPasswd, + startDate, + endDate, + maxMemberCount, + owner, + memberCount, + commentCount, + book, +}: APIGroup) => { + return ( + <Box cursor="pointer" position="relative"> + <Box + as={Link} + position="absolute" + width="full" + height="full" + href={`/group/${bookGroupId}`} + /> + <Flex + m="0.8rem 0" + w="100%" + h="30rem" + direction="column" + justify="space-between" + backgroundColor="white" + borderRadius="1rem" + py="1rem" + px="1.5rem" + _hover={{ bgColor: 'white.800' }} + boxShadow="default" + > + <Flex justify="space-between"> + <Text fontSize="xs" mb="1rem" color="black.600"> + {startDate} ~ {endDate} + </Text> + <Box> + {!isPublic ? ( + <Image src="/icons/lock.svg" alt="잠김" w="1.7rem" /> + ) : ( + <Image src="/icons/unlock.svg" alt="풀림" w="1.7rem" /> + )} + </Box> + </Flex> + <Flex + justify="center" + align="center" + w="100%" + h="2rem" + fontSize="xl" + fontWeight={600} + overflow="hidden" + textOverflow="ellipsis" + whiteSpace="nowrap" + _hover={{ textDecor: 'underLine' }} + > + {title} + </Flex> + <Flex h="80%" w="100%"> + <Flex direction="column" w="70%"> + <Text + h="62%" + w="100%" + mt="1rem" + fontSize="md" + lineHeight="1.7" + overflow="hidden" + _hover={{ textDecor: 'underLine' }} + color="black.900" + > + {introduce} + </Text> + <Box w="100%"> + <Flex direction="column" mt="2rem"> + <Flex w="100%"> + <Flex align="center"> + <Avatar + as={Link} + href={`/profile/${owner.id}`} + src={owner.profileUrl} + loading="lazy" + /> + </Flex> + <Box> + <Flex w="100%" ml="1rem" align="center" fontSize="sm"> + {owner.nickname} + </Flex> + <Flex ml="1rem" w="100%"> + <Flex w="8rem" align="center"> + <Box> + <Image src="/icons/peopleIcon.svg" alt="peopleIcon" /> + </Box> + <Box w="6rem" ml="0.5rem" fontSize="1.2rem"> + {memberCount} + {maxMemberCount ? ` / ${maxMemberCount}` : ''} + </Box> + </Flex> + <Flex w="10rem" align="center" ml="0.5rem"> + <Box> + <Image src="/icons/commentIcon.svg" alt="bookCover" /> + </Box> + <Box w="10rem" ml="0.5rem" fontSize="1.2rem"> + {commentCount} + </Box> + </Flex> + </Flex> + </Box> + </Flex> + </Flex> + </Box> + </Flex> + <Flex w="30%" justify="center" align="start" pl="1rem" pt="1.5rem"> + <Link href={`/book/${book.id}`}> + <Image + src={book.imageUrl} + alt="bookCover" + w="10rem" + objectFit="cover" + boxShadow="default" + borderRadius="0.5rem" + /> + </Link> + </Flex> + </Flex> + </Flex> + </Box> + ); +}; + +export default GroupListItem; diff --git a/src/ui/Group/GroupList/index.tsx b/src/ui/Group/GroupList/index.tsx new file mode 100644 index 000000000..b66b5a17e --- /dev/null +++ b/src/ui/Group/GroupList/index.tsx @@ -0,0 +1,18 @@ +import { Box, List } from '@chakra-ui/react'; + +import { APIGroup } from '@/types/group'; +import GroupListItem from './GroupListItem'; + +const GroupList = ({ bookGroups }: { bookGroups: APIGroup[] }) => { + return ( + <List> + <Box> + {bookGroups.map(bookGroup => ( + <GroupListItem key={bookGroup.bookGroupId} {...bookGroup} /> + ))} + </Box> + </List> + ); +}; + +export default GroupList; diff --git a/src/ui/Group/GroupSearch.tsx b/src/ui/Group/GroupSearch.tsx new file mode 100644 index 000000000..628693d46 --- /dev/null +++ b/src/ui/Group/GroupSearch.tsx @@ -0,0 +1,83 @@ +import { SearchIcon } from '@chakra-ui/icons'; +import { + Input, + Select, + Flex, + InputRightElement, + IconButton, + InputGroup, +} from '@chakra-ui/react'; + +interface SearchValue { + input: string; + select: string; +} +interface GroupSearchProps { + searchValue: SearchValue; + handleChange: (name: string, value: string) => void; + handleSumbit: () => void; +} + +const GroupSearch = ({ + searchValue, + handleChange, + handleSumbit, +}: GroupSearchProps) => { + const { input, select } = searchValue; + + const handleSubmit = (event: React.FormEvent<HTMLDivElement>) => { + event && event.preventDefault(); + handleSumbit(); + }; + + return ( + <Flex + as="form" + m="1rem 0" + w="100%" + onSubmit={handleSubmit} + borderRadius="1rem" + boxShadow="default" + > + <Select + w="14rem" + h="3.5rem" + borderRightRadius="none" + borderLeftRadius="1rem" + borderRight="none" + variant="filled" + onChange={event => handleChange('select', event.target.value)} + value={select} + > + <option value="모임">모임</option> + <option value="책 제목">책 제목</option> + </Select> + <InputGroup> + <Input + borderRightRadius="1rem" + borderLeftRadius="none" + h="3.5rem" + background="white" + border="none" + placeholder="검색어를 입력해 주세요." + onChange={event => handleChange('input', event.target.value)} + value={input} + /> + <InputRightElement> + <IconButton + m="1rem 0.6rem 0 0" + bgColor="white" + borderRightRadius="1rem" + h="3.5rem" + aria-label="Search database" + icon={<SearchIcon />} + type="submit" + size="lg" + /> + </InputRightElement> + </InputGroup> + </Flex> + ); +}; + +export default GroupSearch; diff --git a/src/ui/InteractiveBook/index.tsx b/src/ui/InteractiveBook/index.tsx new file mode 100644 index 000000000..ad4585aac --- /dev/null +++ b/src/ui/InteractiveBook/index.tsx @@ -0,0 +1,86 @@ +import { APIBook } from '@/types/book'; +import { Box, Flex } from '@chakra-ui/react'; +import Image from 'next/image'; +import { useRouter } from 'next/navigation'; +import ColorThief from 'colorthief'; + +import { useState } from 'react'; + +interface InteractiveBookProps { + imageUrl: APIBook['imageUrl']; + bookId: APIBook['bookId'] | null; +} + +const InteractiveBook = ({ imageUrl, bookId }: InteractiveBookProps) => { + const router = useRouter(); + const [bookSpineColor, setBookSpineColor] = useState<string>(); + + const handleOnLoadImage = (image: HTMLImageElement) => { + const colorThief = new ColorThief(); + const colorHex = + '#' + + colorThief + .getPalette(image, 2)[0] + .map(x => { + const hex = x.toString(16); + return hex.length === 1 ? '0' + hex : hex; + }) + .join(''); + setBookSpineColor(colorHex); + }; + + const handleClickBook = () => { + if (!bookId) return; + router.push(`/book/${bookId}`); + }; + + return ( + <Flex + style={{ perspective: '200px' }} + justify="center" + flexGrow={1} + filter={bookId ? 'none' : 'auto'} + blur={bookId ? 'none' : '0.2rem'} + cursor={bookId ? 'pointer' : 'auto'} + > + <Box + w="8.5rem" + h="11rem" + transform="rotateY(30deg) translateX(1rem)" + boxSizing="border-box" + style={{ + perspectiveOrigin: 'center center', + transformStyle: 'preserve-3d', + }} + position="relative" + visibility={!bookSpineColor ? 'hidden' : 'visible'} + onClick={handleClickBook} + > + <Box + w="100%" + h="1rem" + pos="absolute" + bottom={0} + transform={`translateZ(-3rem)`} + boxShadow="1px -4px 20px 3px" + /> + <Image + src={imageUrl} + alt="book cover" + onLoadingComplete={handleOnLoadImage} + fill + sizes="256px" + quality={100} + /> + <Box + w="3rem" + h="100%" + bgColor={bookSpineColor} + transform="rotateY(-90deg) translateX(-1.49rem) translateZ(1.5rem)" + /> + </Box> + </Flex> + ); +}; + +export default InteractiveBook; diff --git a/src/ui/InteractiveBookShelf/InitialBookShelfData.tsx b/src/ui/InteractiveBookShelf/InitialBookShelfData.tsx new file mode 100644 index 000000000..43b8452ce --- /dev/null +++ b/src/ui/InteractiveBookShelf/InitialBookShelfData.tsx @@ -0,0 +1,47 @@ +import { Box, Flex, SimpleGrid } from '@chakra-ui/react'; +import InteractiveBook from '../InteractiveBook'; + +const initialBookImageUrl = [ + '/images/book-cover/book1.jpeg', + '/images/book-cover/book2.jpeg', + '/images/book-cover/book3.jpeg', + '/images/book-cover/book4.jpeg', +] as const; + +const InitialBookShelfData = () => { + return ( + <Flex + w="100%" + direction="column" + position="relative" + height="15.2rem" + justify="flex-end" + gap="2rem" + > + <Box + position="absolute" + width="100%" + bottom="0" + bgColor="white.500" + height="4rem" + borderBottomRadius={10} + /> + <SimpleGrid + columns={4} + width="100%" + height="15.2rem" + shadow="md" + alignItems="center" + borderRadius={10} + boxShadow="inset 0px 0px 20px 2px #9595956e" + px="1rem" + > + {initialBookImageUrl.map((imageUrl, idx) => ( + <InteractiveBook key={idx} bookId={null} imageUrl={imageUrl} /> + ))} + </SimpleGrid> + </Flex> + ); +}; + +export default InitialBookShelfData; diff --git a/src/ui/InteractiveBookShelf/index.tsx b/src/ui/InteractiveBookShelf/index.tsx new file mode 100644 index 000000000..c01b00ae3 --- /dev/null +++ b/src/ui/InteractiveBookShelf/index.tsx @@ -0,0 +1,80 @@ +import { APIBook } from '@/types/book'; +import InteractiveBook from '@/ui//InteractiveBook'; +import { isAuthed } from '@/utils/helpers'; +import { Box, Flex, SimpleGrid } from '@chakra-ui/react'; +import { useCallback, useEffect, useState } from 'react'; + +const BOOKSHELF_BOOK_LIMIT = 4; + +const InteractiveBookShelf = ({ + books, +}: { + books: Pick<APIBook, 'bookId' | 'title' | 'imageUrl'>[]; +}) => { + const [slicedBooks, setSlicedBooks] = useState< + Pick<APIBook, 'bookId' | 'title' | 'imageUrl'>[][] + >([[]]); + + const sliceBooks = useCallback(() => { + const response = []; + + for (let i = 0; i < books.length; i += BOOKSHELF_BOOK_LIMIT) { + response.push(books.slice(i, i + BOOKSHELF_BOOK_LIMIT)); + } + + return response; + }, [books]); + + useEffect(() => { + setSlicedBooks(sliceBooks()); + }, [sliceBooks]); + + return ( + <> + {slicedBooks.map((books, idx) => ( + <Flex + filter="auto" + blur={!isAuthed() && idx === 1 ? '0.3rem' : ''} + key={idx} + w="100%" + direction="column" + position="relative" + height="15.2rem" + justify="flex-end" + gap="2rem" + > + <Box + position="absolute" + width="100%" + bottom="0" + bgColor="white.500" + height="4rem" + borderBottomRadius={10} + /> + <SimpleGrid + columns={4} + key={idx} + width="100%" + height="15.2rem" + shadow="md" + alignItems="center" + borderRadius={10} + boxShadow="inset 0px 0px 20px 2px #9595956e" + px="1rem" + overflow="hidden" + > + {books.map(({ bookId, imageUrl }, index) => ( + <InteractiveBook + key={`${bookId}-${index}`} // API 문제로 중복되는 책이 존재함. 임시 방편용 + bookId={bookId} + imageUrl={imageUrl} + /> + ))} + </SimpleGrid> + </Flex> + ))} + </> + ); +}; + +export default InteractiveBookShelf; diff --git a/src/ui/LoginBottomSheet/CloseButton/index.tsx b/src/ui/LoginBottomSheet/CloseButton/index.tsx new file mode 100644 index 000000000..80ccd00dc --- /dev/null +++ b/src/ui/LoginBottomSheet/CloseButton/index.tsx @@ -0,0 +1,23 @@ +import Image from 'next/image'; +import { Box } from '@chakra-ui/react'; +import { ComponentPropsWithoutRef } from 'react'; + +interface Props extends ComponentPropsWithoutRef<typeof Box> { + onCancel?: () => void; +} + +const CloseButton = ({ width = 24, onCancel, ...props }: Props) => { + const height = width; + return ( + <Box as="button" onClick={onCancel} {...props}> + <Image + src="/icons/close.svg" + alt="취소하기 버튼" + width={width} + height={height} + /> + </Box> + ); +}; + +export default CloseButton; diff --git a/src/ui/LoginBottomSheet/index.tsx b/src/ui/LoginBottomSheet/index.tsx new file mode 100644 index 000000000..08f71ae7d --- /dev/null +++ b/src/ui/LoginBottomSheet/index.tsx @@ -0,0 +1,53 @@ +import Image from 'next/image'; +import { Flex, Text, Highlight } from '@chakra-ui/react'; + +import BottomSheet from '@/ui/common/BottomSheet'; +import Button from '@/ui/common/Button'; +import Logo from '@/ui/common/Logo'; +import Link from 'next/link'; + +interface Props { + isOpen: boolean; + onClose: () => void; +} + +const LoginBottomSheet = ({ isOpen, onClose }: Props) => { + const kakaoUrl = `${process.env.NEXT_PUBLIC_API_URL}/oauth2/authorize/kakao?redirect_uri=${process.env.NEXT_PUBLIC_CLIENT_REDIRECT_URI}`; + + return ( + <BottomSheet isOpen={isOpen} onClose={onClose}> + <Flex direction="column" align="center" gap="3rem" p="3rem 3rem 4rem"> + <Logo /> + <Text fontSize="lg" fontWeight="bold"> + 로그인이 필요한 서비스예요! + </Text> + <Text + color="black.500" + fontSize="sm" + fontWeight="medium" + textAlign="center" + > + 3초만에 카카오로 로그인을 하고, + <br /> + <Highlight query="다독다독" styles={{ color: 'main' }}> + 다독다독의 다양한 서비스를 이용해보세요! + </Highlight> + </Text> + <Link href={kakaoUrl} style={{ width: '100%' }}> + <Button scheme="kakao" fullWidth> + <Image + src="/images/kakao.svg" + alt="카카오 로고" + width={21} + height={19} + priority + /> + 카카오 로그인 + </Button> + </Link> + </Flex> + </BottomSheet> + ); +}; + +export default LoginBottomSheet; diff --git a/src/ui/Profile/ProfileBookshelf/MyProfileBookshelfContainer.tsx b/src/ui/Profile/ProfileBookshelf/MyProfileBookshelfContainer.tsx new file mode 100644 index 000000000..5a0a9ab79 --- /dev/null +++ b/src/ui/Profile/ProfileBookshelf/MyProfileBookshelfContainer.tsx @@ -0,0 +1,14 @@ +import ProfileBookshelfPresenter from './ProfileBookshelfPresenter'; +import useMySummaryBookshlefQuery from '@/queries/bookshelf/useMySummaryBookshelfQuery'; + +const MyProfileBookshelfContainer = () => { + const { isSuccess, data } = useMySummaryBookshlefQuery({ + suspense: true, + }); + + if (!isSuccess) return null; + + return <ProfileBookshelfPresenter {...data}></ProfileBookshelfPresenter>; +}; + +export default MyProfileBookshelfContainer; diff --git a/src/ui/Profile/ProfileBookshelf/ProfileBookshelfPresenter.tsx b/src/ui/Profile/ProfileBookshelf/ProfileBookshelfPresenter.tsx new file mode 100644 index 000000000..1e08d26f4 --- /dev/null +++ b/src/ui/Profile/ProfileBookshelf/ProfileBookshelfPresenter.tsx @@ -0,0 +1,45 @@ +import { APIBookshelf } from '@/types/bookshelf'; +import { LikeCount } from '@/ui/common/BookshelfLike/'; +import { Flex, Text, VStack } from '@chakra-ui/react'; +import Link from 'next/link'; +import IconButton from '../../common/IconButton'; +import InteractiveBookShelf from '../../InteractiveBookShelf'; + +const ProfileBookshelfPresenter = ({ + bookshelfId, + bookshelfName, + books, + likeCount, +}: APIBookshelf) => { + return ( + <VStack align="flex-start" gap="1rem" w="100%"> + <Flex align="center" w="100%" justify="space-between"> + <Text + as={Link} + href={`/bookshelf/${bookshelfId}`} + fontSize="md" + fontWeight="bold" + > + {`${bookshelfName}`} + </Text> + <Flex h="2.4rem" align="center"> + <LikeCount likeCount={likeCount} /> + <IconButton + as={Link} + href={`/bookshelf/${bookshelfId}`} + name="more-circle" + size="1.6rem" + fill + /> + </Flex> + </Flex> + {books.length === 0 ? ( + <Text fontSize="md">책장이 비어있습니다.</Text> + ) : ( + <InteractiveBookShelf books={books} /> + )} + </VStack> + ); +}; + +export default ProfileBookshelfPresenter; diff --git a/src/ui/Profile/ProfileBookshelf/UserProfileBookshelfContainer.tsx b/src/ui/Profile/ProfileBookshelf/UserProfileBookshelfContainer.tsx new file mode 100644 index 000000000..61484091e --- /dev/null +++ b/src/ui/Profile/ProfileBookshelf/UserProfileBookshelfContainer.tsx @@ -0,0 +1,19 @@ +import ProfileBookshelfPresenter from './ProfileBookshelfPresenter'; +import useUserSummaryBookshlefQuery from '@/queries/bookshelf/useUserSummaryBookshelfQuery'; +import type { APIUser } from '@/types/user'; + +const UserProfileBookshelfContainer = ({ + userId, +}: { + userId: APIUser['userId']; +}) => { + const { isSuccess, data } = useUserSummaryBookshlefQuery(userId, { + suspense: true, + }); + + if (!isSuccess) return null; + + return <ProfileBookshelfPresenter {...data}></ProfileBookshelfPresenter>; +}; + +export default UserProfileBookshelfContainer; diff --git a/src/ui/Profile/ProfileBookshelf/index.tsx b/src/ui/Profile/ProfileBookshelf/index.tsx new file mode 100644 index 000000000..1aedcccb5 --- /dev/null +++ b/src/ui/Profile/ProfileBookshelf/index.tsx @@ -0,0 +1,45 @@ +import QueryErrorBounaryFallback from '@/ui/common/QueryErrorBoundaryFallback'; +import { Skeleton } from '@chakra-ui/react'; +import { QueryErrorResetBoundary } from '@tanstack/react-query'; +import { Suspense } from 'react'; +import { ErrorBoundary } from 'react-error-boundary'; +import type { APIUser } from '@/types/user'; +import MyProfileBookshelfContainer from './MyProfileBookshelfContainer'; +import UserProfileBookshelfContainer from './UserProfileBookshelfContainer'; +import useMounted from '@/hooks/useMounted'; + +const ProfileBookShelf = ({ userId }: { userId: 'me' | APIUser['userId'] }) => { + const mounted = useMounted(); + + if (!mounted) return null; + + return ( + <QueryErrorResetBoundary> + {({ reset }) => ( + <ErrorBoundary + onReset={reset} + fallbackRender={({ resetErrorBoundary }) => ( + <QueryErrorBounaryFallback + minH="18rem" + resetErrorBoundary={resetErrorBoundary} + /> + )} + > + <Suspense fallback={<ProfileBookShelfSkelenton />}> + {userId === 'me' ? ( + <MyProfileBookshelfContainer /> + ) : ( + <UserProfileBookshelfContainer userId={userId} /> + )} + </Suspense> + </ErrorBoundary> + )} + </QueryErrorResetBoundary> + ); +}; + +export default ProfileBookShelf; + +const ProfileBookShelfSkelenton = () => { + return <Skeleton w="100%" height="18rem" />; +}; diff --git a/src/ui/Profile/ProfileForm.tsx b/src/ui/Profile/ProfileForm.tsx new file mode 100644 index 000000000..0e27a7661 --- /dev/null +++ b/src/ui/Profile/ProfileForm.tsx @@ -0,0 +1,99 @@ +import { useToast } from '@/hooks/toast'; +import useMyProfileMutation from '@/queries/user/useMyProfileMutation'; +import { APIJobGroup } from '@/types/job'; +import { APIUser } from '@/types/user'; +import { Box, useTheme, VStack } from '@chakra-ui/react'; +import { isAxiosError } from 'axios'; +import { useRouter } from 'next/navigation'; +import { FormProvider, useForm } from 'react-hook-form'; +import FormInput from '../FormInput'; +import FormSelect from '../FormSelect'; + +interface ProfileFormProps { + profile: Pick<APIUser, 'nickname' | 'job'>; + jobGroups: APIJobGroup[]; +} + +const ProfileForm = ({ jobGroups, profile }: ProfileFormProps) => { + const theme = useTheme(); + const myProfileMutation = useMyProfileMutation(); + const router = useRouter(); + + const { showToast } = useToast(); + + const onSubmit: Parameters<typeof methods.handleSubmit>[0] = ({ + nickname, + jobGroup, + job, + }) => { + myProfileMutation.mutateAsync( + { nickname, job: { jobGroup, jobName: job } }, + { + onSuccess: () => { + router.replace('/profile/me'); + }, + onError: error => { + if (isAxiosError(error) && error.response) { + const { message } = error.response.data; + message && showToast({ message }); + } + }, + } + ); + }; + + const methods = useForm({ + mode: 'all', + defaultValues: { + nickname: profile.nickname || '', + jobGroup: profile.job.jobGroupName || '', + job: profile.job.jobName || '', + }, + }); + + return ( + <FormProvider {...methods}> + <Box as="form" w="100%" onSubmit={methods.handleSubmit(onSubmit)}> + <VStack gap="1rem"> + <FormInput label="닉네임" name="nickname" /> + <FormSelect label="직군" name="jobGroup"> + {jobGroups.map(({ name, koreanName }) => ( + <option key={name} value={name}> + {koreanName} + </option> + ))} + </FormSelect> + <FormSelect label="직업" name="job"> + {jobGroups + .find(({ name }) => name === methods.watch('jobGroup')) + ?.jobs.map(({ name, koreanName }) => ( + <option key={name} value={name}> + {koreanName} + </option> + ))} + </FormSelect> + </VStack> + <Box + as="button" + w="100%" + mt="2rem" + px="2rem" + py="1rem" + disabled={methods.formState.isSubmitting} + color={theme.colors.main} + border="1px solid" + borderRadius="5rem" + fontSize="md" + _disabled={{ + color: `${theme.colors.black['500']}`, + border: '1px solid', + }} + > + 저장 + </Box> + </Box> + </FormProvider> + ); +}; + +export default ProfileForm; diff --git a/src/ui/Profile/ProfileGroup/ProfileGroupContainer.tsx b/src/ui/Profile/ProfileGroup/ProfileGroupContainer.tsx new file mode 100644 index 000000000..02843d305 --- /dev/null +++ b/src/ui/Profile/ProfileGroup/ProfileGroupContainer.tsx @@ -0,0 +1,12 @@ +import useMyGroupsQuery from '@/queries/group/useMyGroupsQuery'; +import ProfileGroupPresenter from './ProfileGroupPresenter'; + +const ProfileGroupContainer = () => { + const { isSuccess, data } = useMyGroupsQuery({ suspense: true }); + + if (!isSuccess) return null; + + return <ProfileGroupPresenter {...data} />; +}; + +export default ProfileGroupContainer; diff --git a/src/ui/Profile/ProfileGroup/ProfileGroupPresenter.tsx b/src/ui/Profile/ProfileGroup/ProfileGroupPresenter.tsx new file mode 100644 index 000000000..e83d85e8a --- /dev/null +++ b/src/ui/Profile/ProfileGroup/ProfileGroupPresenter.tsx @@ -0,0 +1,28 @@ +import { APIGroup } from '@/types/group'; +import { Box, Flex, Text, VStack } from '@chakra-ui/react'; +import GroupListItem from '../../Group/GroupList/GroupListItem'; + +interface ProfileGroupPresenterProps { + bookGroups: APIGroup[]; +} + +const ProfileGroupPresenter = ({ bookGroups }: ProfileGroupPresenterProps) => { + return ( + <VStack w="100%"> + <Text alignSelf="flex-start" fontSize="md" fontWeight="bold"> + 내가 참여한 모임 + </Text> + <Box w="100%" overflow="auto"> + <Flex> + {bookGroups.map(group => ( + <Box key={group.bookGroupId} w="95%" flex="1 0 auto" px="0.3rem"> + <GroupListItem {...group} /> + </Box> + ))} + </Flex> + </Box> + </VStack> + ); +}; + +export default ProfileGroupPresenter; diff --git a/src/ui/Profile/ProfileGroup/index.tsx b/src/ui/Profile/ProfileGroup/index.tsx new file mode 100644 index 000000000..f61964884 --- /dev/null +++ b/src/ui/Profile/ProfileGroup/index.tsx @@ -0,0 +1,39 @@ +import useMounted from '@/hooks/useMounted'; +import QueryErrorBounaryFallback from '@/ui/common/QueryErrorBoundaryFallback'; +import { Skeleton } from '@chakra-ui/react'; +import { QueryErrorResetBoundary } from '@tanstack/react-query'; +import { Suspense } from 'react'; +import { ErrorBoundary } from 'react-error-boundary'; +import ProfileGroupContainer from './ProfileGroupContainer'; + +const ProfileGroup = () => { + const mounted = useMounted(); + + if (!mounted) return null; + + return ( + <QueryErrorResetBoundary> + {({ reset }) => ( + <ErrorBoundary + onReset={reset} + fallbackRender={({ resetErrorBoundary }) => ( + <QueryErrorBounaryFallback + minH="34.5rem" + resetErrorBoundary={resetErrorBoundary} + /> + )} + > + <Suspense fallback={<ProfileBookShelfSkelenton />}> + <ProfileGroupContainer /> + </Suspense> + </ErrorBoundary> + )} + </QueryErrorResetBoundary> + ); +}; + +export default ProfileGroup; + +const ProfileBookShelfSkelenton = () => { + return <Skeleton w="100%" height="34.5rem" />; +}; diff --git a/src/components/profile/info/MyProfileInfoContainer.tsx b/src/ui/Profile/ProfileInfo/MyProfileInfoContainer.tsx similarity index 82% rename from src/components/profile/info/MyProfileInfoContainer.tsx rename to src/ui/Profile/ProfileInfo/MyProfileInfoContainer.tsx index fe32ae121..cfef3cdf5 100644 --- a/src/components/profile/info/MyProfileInfoContainer.tsx +++ b/src/ui/Profile/ProfileInfo/MyProfileInfoContainer.tsx @@ -1,9 +1,7 @@ -import { useEffect } from 'react'; -import { usePathname, useRouter } from 'next/navigation'; - import useMyProfileQuery from '@/queries/user/useMyProfileQuery'; - -import ProfileInfoPresenter from '@/components/profile/info/ProfileInfoPresenter'; +import { usePathname, useRouter } from 'next/navigation'; +import { useEffect } from 'react'; +import ProfileInfoPresenter from './ProfileInfoPresenter'; const MyProfileContainer = () => { const { data } = useMyProfileQuery(); @@ -19,7 +17,7 @@ const MyProfileContainer = () => { if (!isSavedAdditionalInfo) replace(`${pathname}/add`); }, [data, pathname, replace]); - return <ProfileInfoPresenter {...data} />; + return <ProfileInfoPresenter {...data}></ProfileInfoPresenter>; }; export default MyProfileContainer; diff --git a/src/ui/Profile/ProfileInfo/ProfileInfoPresenter.tsx b/src/ui/Profile/ProfileInfo/ProfileInfoPresenter.tsx new file mode 100644 index 000000000..6eca059ae --- /dev/null +++ b/src/ui/Profile/ProfileInfo/ProfileInfoPresenter.tsx @@ -0,0 +1,38 @@ +import { Avatar, Flex, HStack, Text, VStack } from '@chakra-ui/react'; +import type { APIUser } from '@/types/user'; +import IconButton from '../../common/IconButton'; + +type ProfileInfoProps = Pick< + APIUser, + 'nickname' | 'oauthNickname' | 'profileImage' | 'email' | 'job' +>; + +const ProfileInfoPresenter = ({ + nickname, + oauthNickname, + profileImage, + email, + job: { jobGroupKoreanName, jobNameKoreanName }, +}: ProfileInfoProps) => { + return ( + <VStack align="flex-start" gap="1rem" w="100%"> + <Flex width="100%" gap="1.5rem"> + <Avatar src={profileImage} w="8rem" h="8rem" /> + <Flex direction="column" justify="center"> + <Text fontSize="xl">{nickname || oauthNickname}</Text> + <Text fontSize="sm">{email}</Text> + </Flex> + </Flex> + <HStack> + <IconButton name="job-card" strokeWidth="0.01px" fill /> + <Text fontSize="md" fontWeight="bold"> + {jobGroupKoreanName && jobNameKoreanName + ? `${jobGroupKoreanName} / ${jobNameKoreanName}` + : '직업이 등록되지 않았습니다.'} + </Text> + </HStack> + </VStack> + ); +}; + +export default ProfileInfoPresenter; diff --git a/src/components/profile/info/UserProfileInfoContainer.tsx b/src/ui/Profile/ProfileInfo/UserProfileInfoContainer.tsx similarity index 69% rename from src/components/profile/info/UserProfileInfoContainer.tsx rename to src/ui/Profile/ProfileInfo/UserProfileInfoContainer.tsx index 79d990089..c92e31310 100644 --- a/src/components/profile/info/UserProfileInfoContainer.tsx +++ b/src/ui/Profile/ProfileInfo/UserProfileInfoContainer.tsx @@ -1,8 +1,7 @@ import useUserProfileQuery from '@/queries/user/useUserProfileQuery'; +import ProfileInfoPresenter from './ProfileInfoPresenter'; import type { APIUser } from '@/types/user'; -import ProfileInfoPresenter from '@/components/profile/info/ProfileInfoPresenter'; - const UserProfileInfoContainer = ({ userId, }: { @@ -10,7 +9,7 @@ const UserProfileInfoContainer = ({ }) => { const { data } = useUserProfileQuery(userId); - return <ProfileInfoPresenter {...data} />; + return <ProfileInfoPresenter {...data}></ProfileInfoPresenter>; }; export default UserProfileInfoContainer; diff --git a/src/ui/Profile/ProfileInfo/index.tsx b/src/ui/Profile/ProfileInfo/index.tsx new file mode 100644 index 000000000..294ca7439 --- /dev/null +++ b/src/ui/Profile/ProfileInfo/index.tsx @@ -0,0 +1,56 @@ +import { ReactNode, Suspense } from 'react'; +import MyProfileContainer from './MyProfileInfoContainer'; +import UserProfileInfoContainer from './UserProfileInfoContainer'; +import { Skeleton, SkeletonCircle, VStack } from '@chakra-ui/react'; +import { QueryErrorResetBoundary } from '@tanstack/react-query'; +import { ErrorBoundary } from 'react-error-boundary'; +import type { APIUser } from '@/types/user'; +import QueryErrorBounaryFallback from '@/ui/common/QueryErrorBoundaryFallback'; +import useMounted from '@/hooks/useMounted'; + +type ProfileInfoProps = { + children?: ReactNode; + userId: 'me' | APIUser['userId']; +}; + +const ProfileInfo = ({ userId, children }: ProfileInfoProps) => { + const mounted = useMounted(); + + if (!mounted) return null; + + return ( + <QueryErrorResetBoundary> + {({ reset }) => ( + <ErrorBoundary + onReset={reset} + fallbackRender={({ resetErrorBoundary }) => ( + <QueryErrorBounaryFallback + minH="12rem" + resetErrorBoundary={resetErrorBoundary} + /> + )} + > + <Suspense fallback={<ProfileInfoSkelenton />}> + {userId === 'me' ? ( + <MyProfileContainer /> + ) : ( + <UserProfileInfoContainer userId={userId} /> + )} + {children && children} + </Suspense> + </ErrorBoundary> + )} + </QueryErrorResetBoundary> + ); +}; + +export default ProfileInfo; + +const ProfileInfoSkelenton = () => { + return ( + <VStack gap="1rem" align="stretch" w="100%"> + <SkeletonCircle size="8rem" /> + <Skeleton w="80%" height="3rem" /> + </VStack> + ); +}; diff --git a/src/ui/Recommended/RecommendedBooks.tsx b/src/ui/Recommended/RecommendedBooks.tsx new file mode 100644 index 000000000..085121215 --- /dev/null +++ b/src/ui/Recommended/RecommendedBooks.tsx @@ -0,0 +1,66 @@ +import { APIBook } from '@/types/book'; +import { APIJobGroup } from '@/types/job'; +import { Flex, Highlight, HStack, Image, Text, VStack } from '@chakra-ui/react'; +import Link from 'next/link'; + +interface RecommendedBooksTypes { + jobGroup: APIJobGroup['koreanName']; + books: APIBook[]; +} + +const RecommendedBooks = ({ jobGroup, books }: RecommendedBooksTypes) => { + return ( + <Flex + width="100%" + direction="column" + gap="1.5rem" + padding="2rem 0" + justify="flex-start" + > + <Text fontWeight="bold" fontSize="md"> + <Highlight + query={jobGroup} + styles={{ + px: '1rem', + py: '0.2rem', + color: 'main', + borderRadius: '3rem', + border: '1px', + borderColor: 'main', + fontSize: 'sm', + verticalAlign: 'text-bottom', + marginRight: '0.2rem', + }} + > + {`${jobGroup} 직군에서 많이 꽂은 책들이에요`} + </Highlight> + </Text> + <HStack width="100%" align="stretch" gap="1rem" overflowX="scroll"> + {books.map(({ bookId, imageUrl, title }) => ( + <VStack key={bookId} as={Link} href={`/book/${bookId}`}> + <Image + src={imageUrl} + alt="bookImage" + width="12rem" + height="15.3rem" + borderRadius="1rem" + /> + <Text + fontSize="sm" + width="12rem" + overflow="hidden" + textOverflow="ellipsis" + noOfLines={2} + lineHeight="1.8rem" + color="black.800" + > + {title} + </Text> + </VStack> + ))} + </HStack> + </Flex> + ); +}; + +export default RecommendedBooks; diff --git a/src/ui/Recommended/RecommendedBookshelf.tsx b/src/ui/Recommended/RecommendedBookshelf.tsx new file mode 100644 index 000000000..f3c86613c --- /dev/null +++ b/src/ui/Recommended/RecommendedBookshelf.tsx @@ -0,0 +1,41 @@ +import { APIBookshelf } from '@/types/bookshelf'; +import IconButton from '@/ui/common/IconButton'; +import { LikeCount } from '@/ui/common/BookshelfLike/'; +import InteractiveBookShelf from '@/ui/InteractiveBookShelf'; +import { Flex, Text, VStack } from '@chakra-ui/react'; +import Link from 'next/link'; + +const RecommendedBookshelf = ({ + bookshelfId, + bookshelfName, + books, + likeCount, +}: APIBookshelf) => { + return ( + <VStack align="flex-start" spacing="2rem"> + <Flex align="center" w="100%" justify="space-between"> + <Text + as={Link} + href={`/bookshelf/${bookshelfId}`} + fontSize="md" + fontWeight="bold" + > + {`${bookshelfName}`} + </Text> + <Flex h="2.4rem" gap="1.6rem" align="center"> + <LikeCount likeCount={likeCount} /> + <IconButton + as={Link} + href={`/bookshelf/${bookshelfId}`} + name="more-circle" + size="1.6rem" + fill + /> + </Flex> + </Flex> + <InteractiveBookShelf books={books} /> + </VStack> + ); +}; + +export default RecommendedBookshelf; diff --git a/src/ui/Recommended/index.tsx b/src/ui/Recommended/index.tsx new file mode 100644 index 000000000..7380a7757 --- /dev/null +++ b/src/ui/Recommended/index.tsx @@ -0,0 +1,2 @@ +export { default as RecommendedBooks } from './RecommendedBooks'; +export { default as RecommendedBookshelf } from './RecommendedBookshelf'; diff --git a/src/ui/UserJobInfoTag/index.tsx b/src/ui/UserJobInfoTag/index.tsx new file mode 100644 index 000000000..ecb04dc94 --- /dev/null +++ b/src/ui/UserJobInfoTag/index.tsx @@ -0,0 +1,23 @@ +import { Flex } from '@chakra-ui/react'; + +type UserTagType = { + tag: string; +}; + +const UserJobInfoTag = ({ tag }: UserTagType) => { + return ( + <Flex + align="center" + h="2.4rem" + padding="0.6rem 1.2rem" + color="main" + fontSize="sm" + border="solid 0.1rem" + borderRadius="1.6rem" + > + {tag} + </Flex> + ); +}; + +export default UserJobInfoTag; diff --git a/src/ui/common/BookshelfLike/LikeButton.tsx b/src/ui/common/BookshelfLike/LikeButton.tsx new file mode 100644 index 000000000..a3d3cde1d --- /dev/null +++ b/src/ui/common/BookshelfLike/LikeButton.tsx @@ -0,0 +1,48 @@ +import { APIBookshelfInfo } from '@/types/bookshelf'; +import IconButton from '@/ui/common/IconButton'; +import { Button, Flex, Text, useTheme } from '@chakra-ui/react'; + +type LikeButtonTypes = { + handleBookshelfLikeButton: () => void; + isLiked: APIBookshelfInfo['isLiked']; + likeCount: APIBookshelfInfo['likeCount']; +}; + +const LikeButton = ({ + handleBookshelfLikeButton, + isLiked, + likeCount, +}: LikeButtonTypes) => { + const theme = useTheme(); + + return ( + <Button + onClick={handleBookshelfLikeButton} + p="0.6rem 0.8rem" + w="5.4rem" + h="2.4rem" + fontSize="xs" + color={isLiked ? theme.colors.white['800'] : theme.colors.red['800']} + bg={isLiked ? theme.colors.red['800'] : theme.colors.white['800']} + border="solid 0.1rem" + borderColor={theme.colors.red['800']} + borderRadius="1.6rem" + > + <Flex w="100%" h="100%" gap="0.2rem" justify="flex-start" align="center"> + <IconButton + as="div" + name="like" + size="1.3rem" + strokeWidth={'0.05rem'} + color={isLiked ? theme.colors.white['800'] : theme.colors.red['800']} + fill={true} + /> + <Text w="2rem" fontWeight="900"> + {likeCount ? likeCount : 0} + </Text> + </Flex> + </Button> + ); +}; + +export default LikeButton; diff --git a/src/ui/common/BookshelfLike/LikeCount.tsx b/src/ui/common/BookshelfLike/LikeCount.tsx new file mode 100644 index 000000000..8b3cdc939 --- /dev/null +++ b/src/ui/common/BookshelfLike/LikeCount.tsx @@ -0,0 +1,37 @@ +import { APIBookshelfInfo } from '@/types/bookshelf'; +import { Flex, Text, useTheme } from '@chakra-ui/react'; +import IconButton from '@/ui/common/IconButton'; + +type LikeCountType = { + likeCount: APIBookshelfInfo['likeCount']; +}; + +const LikeCount = ({ likeCount }: LikeCountType) => { + const theme = useTheme(); + + return ( + <Flex + w="4.2rem" + h="2.4rem" + p="0.2rem 0" + gap="0.2rem" + justify="flex-start" + align="center" + color={theme.colors.red['800']} + > + <IconButton + as="div" + name="like" + size="1.6rem" + strokeWidth={'0.05rem'} + color={theme.colors.red['800']} + fill + /> + <Text fontSize="sm" fontWeight="900"> + {likeCount ? likeCount : 0} + </Text> + </Flex> + ); +}; + +export default LikeCount; diff --git a/src/ui/common/BookshelfLike/index.tsx b/src/ui/common/BookshelfLike/index.tsx new file mode 100644 index 000000000..3e45870c0 --- /dev/null +++ b/src/ui/common/BookshelfLike/index.tsx @@ -0,0 +1,2 @@ +export { default as LikeButton } from './LikeButton'; +export { default as LikeCount } from './LikeCount'; diff --git a/src/ui/common/BottomSheet.tsx b/src/ui/common/BottomSheet.tsx new file mode 100644 index 000000000..9b163fffa --- /dev/null +++ b/src/ui/common/BottomSheet.tsx @@ -0,0 +1,81 @@ +import { Box, Center, Flex } from '@chakra-ui/react'; +import { AnimatePresence, motion } from 'framer-motion'; +import { useEffect } from 'react'; +import IconButton from '@/ui/common/IconButton'; +import type { PropsWithChildren } from 'react'; + +interface DrawerProps { + isOpen: boolean; + onClose: () => void; + onCancel?: () => void; +} + +const Drawer = ({ + isOpen, + onClose, + onCancel, + children, +}: PropsWithChildren<DrawerProps>) => { + const handleClickOverlay = () => { + onCancel && onCancel(); + onClose(); + }; + + useEffect(() => { + document.body.style.overflow = isOpen ? 'hidden' : 'overlay'; + }, [isOpen]); + + return ( + <AnimatePresence> + {isOpen && ( + <Center + position="fixed" + top="0" + left="0" + w="100vw" + height="100dvh" + alignItems="end" + zIndex={10} + > + <Box + as={motion.div} + onClick={handleClickOverlay} + position="absolute" + backgroundColor="black" + width="100%" + height="100%" + initial={{ opacity: 0 }} + animate={{ opacity: 0.5, transition: { duration: 0.2 } }} + exit={{ opacity: 0, transition: { duration: 0.2 } }} + /> + <Flex + as={motion.div} + direction="column" + w="43rem" + p="1rem" + borderTopRadius="xl" + backgroundColor="white" + initial={{ y: '100%', opacity: 1 }} + animate={{ + y: 0, + opacity: 1, + transition: { duration: 0.3, bounce: 0 }, + }} + exit={{ y: '100%', opacity: 0, transition: { duration: 0.2 } }} + > + <IconButton + name="close" + size="2.5rem" + onClick={handleClickOverlay} + alignSelf="end" + m="1rem" + /> + {children} + </Flex> + </Center> + )} + </AnimatePresence> + ); +}; + +export default Drawer; diff --git a/src/ui/common/Button/index.tsx b/src/ui/common/Button/index.tsx new file mode 100644 index 000000000..6f3dcb25e --- /dev/null +++ b/src/ui/common/Button/index.tsx @@ -0,0 +1,40 @@ +import { PropsWithChildren, ComponentProps } from 'react'; +import { useTheme, Flex } from '@chakra-ui/react'; + +import type { ChakraTheme } from '@/styles/theme'; + +type Props = ComponentProps<typeof Flex> & { + size?: keyof ChakraTheme['buttonSizes']; + scheme?: keyof ChakraTheme['scheme']['button']; + fullWidth?: boolean; +}; + +const Button = ({ + size = 'lg', + scheme = 'orange', + fullWidth = false, + children, + ...props +}: PropsWithChildren<Props>) => { + const theme = useTheme(); + + return ( + <Flex + as="button" + justify="center" + align="center" + gap="1rem" + width={fullWidth ? '100%' : 'fit-content'} + fontSize={size} + fontWeight="bold" + borderRadius="1.2rem" + {...theme.buttonSizes[size]} + {...theme.scheme.button[scheme]} + {...props} + > + {children} + </Flex> + ); +}; + +export default Button; diff --git a/src/ui/common/IconButton/index.tsx b/src/ui/common/IconButton/index.tsx new file mode 100644 index 000000000..e82800692 --- /dev/null +++ b/src/ui/common/IconButton/index.tsx @@ -0,0 +1,58 @@ +import dynamic from 'next/dynamic'; +import { ComponentPropsWithoutRef, SVGProps } from 'react'; +import { Center } from '@chakra-ui/react'; + +interface Props extends ComponentPropsWithoutRef<typeof Center> { + name: IconNameType; + size?: number | string; + strokeWidth?: string; + color?: string /** hex */; + fill?: boolean; +} + +const IconButton = ({ + name, + size = '2.4rem', + strokeWidth = '0', + color = '#000', + fill = false, + ...props +}: Props) => { + const Icon = dynamic<SVGProps<SVGSVGElement>>( + () => import(`@/../public/icons/${name}.svg`) + ); + + return ( + <Center + as="button" + width={size} + height={size} + background="transparent" + _hover={{ bg: 'transparent' }} + {...props} + > + <Icon + width="100%" + height="100%" + stroke={color} + strokeWidth={strokeWidth} + fill={fill ? color : 'transparent'} + /> + </Center> + ); +}; + +type IconNameType = + | 'close' + | 'back' + | 'book' + | 'search' + | 'bookmark' + | 'more' + | 'more-circle' + | 'job-card' + | 'plus-circle' + | 'share' + | 'like'; + +export default IconButton; diff --git a/src/ui/common/Layout/index.tsx b/src/ui/common/Layout/index.tsx new file mode 100644 index 000000000..87dc3bb55 --- /dev/null +++ b/src/ui/common/Layout/index.tsx @@ -0,0 +1,44 @@ +import { Box } from '@chakra-ui/react'; +import { motion } from 'framer-motion'; +import { usePathname } from 'next/navigation'; +import { ReactNode } from 'react'; + +import BottomNavigation from '@/ui/BottomNavigation'; +import Toast from '../Toast'; + +const paths = ['/bookarchive', '/book/search', '/group', '/profile/me']; + +const Layout = ({ children }: { children: ReactNode }) => { + const pathname = usePathname(); + const isShowNavigation = pathname && paths.includes(pathname); + + return ( + <Box h={isShowNavigation ? '100%' : '100dvh'}> + <Box + as={motion.div} + key={pathname} + px="2rem" + pt="2rem" + pb={isShowNavigation ? '9rem' : '2rem'} + h="100%" + overflow="auto" + initial="initial" + animate="animate" + variants={{ + initial: { + opacity: 0, + }, + animate: { + opacity: 1, + }, + }} + > + {children} + </Box> + {isShowNavigation && <BottomNavigation />} + <Toast /> + </Box> + ); +}; + +export default Layout; diff --git a/src/ui/common/Logo/index.tsx b/src/ui/common/Logo/index.tsx new file mode 100644 index 000000000..bb5ec5542 --- /dev/null +++ b/src/ui/common/Logo/index.tsx @@ -0,0 +1,16 @@ +import Image from 'next/image'; + +const Logo = ({ width = 61 }: { width?: number }) => { + const height = width * (60 / 61); + return ( + <Image + src="/images/logo.svg" + alt="다독다독 로고" + width={width} + height={height} + priority + /> + ); +}; + +export default Logo; diff --git a/src/ui/common/Menu/Menu.tsx b/src/ui/common/Menu/Menu.tsx new file mode 100644 index 000000000..120b533c9 --- /dev/null +++ b/src/ui/common/Menu/Menu.tsx @@ -0,0 +1,26 @@ +import { + Menu as ChakraMenu, + MenuButton, + MenuList, + IconButton, +} from '@chakra-ui/react'; +import { ReactNode } from 'react'; + +import MoreIcon from '@public/icons/more.svg'; + +const Menu = ({ children }: { children: ReactNode }) => { + return ( + <ChakraMenu> + <MenuButton + as={IconButton} + aria-label="Options" + icon={<MoreIcon />} + background="inherit" + border="none" + /> + <MenuList fontSize="md">{children}</MenuList> + </ChakraMenu> + ); +}; + +export default Menu; diff --git a/src/ui/common/Menu/MenuItem.tsx b/src/ui/common/Menu/MenuItem.tsx new file mode 100644 index 000000000..79161ddbc --- /dev/null +++ b/src/ui/common/Menu/MenuItem.tsx @@ -0,0 +1,20 @@ +import { + forwardRef, + MenuItem as ChakraMenuItem, + MenuItemProps, +} from '@chakra-ui/react'; +import { ReactNode } from 'react'; + +const MenuItem = forwardRef< + MenuItemProps & { text?: string; children?: ReactNode }, + 'button' +>(({ text, children, ...props }, ref) => { + return ( + <ChakraMenuItem ref={ref} {...props}> + {text} + {children} + </ChakraMenuItem> + ); +}); + +export default MenuItem; diff --git a/src/ui/common/Menu/index.ts b/src/ui/common/Menu/index.ts new file mode 100644 index 000000000..0c15fc3e1 --- /dev/null +++ b/src/ui/common/Menu/index.ts @@ -0,0 +1,2 @@ +export { default as Menu } from './Menu'; +export { default as MenuItem } from './MenuItem'; diff --git a/src/ui/common/QueryErrorBoundaryFallback/index.tsx b/src/ui/common/QueryErrorBoundaryFallback/index.tsx new file mode 100644 index 000000000..407ef7716 --- /dev/null +++ b/src/ui/common/QueryErrorBoundaryFallback/index.tsx @@ -0,0 +1,31 @@ +import { Text, VStack } from '@chakra-ui/react'; +import Button from '../Button'; +import type { BorderProps, LayoutProps } from '@chakra-ui/react'; + +const QueryErrorBounaryFallback = ({ + resetErrorBoundary, + minH, + border = '1px solid #dddddd', +}: { + resetErrorBoundary: (...args: unknown[]) => void; + minH?: LayoutProps['minH']; + border?: BorderProps['border']; +}) => { + return ( + <VStack + w="100%" + h="100%" + justify="center" + minH={minH} + border={border} + borderRadius="2xl" + > + <Text fontSize="md">데이터를 불러오는 중 문제가 발생했어요!</Text> + <Button size="md" onClick={() => resetErrorBoundary()}> + 다시 불러오기 + </Button> + </VStack> + ); +}; + +export default QueryErrorBounaryFallback; diff --git a/src/ui/common/Toast/ToastItem.tsx b/src/ui/common/Toast/ToastItem.tsx new file mode 100644 index 000000000..3ae621890 --- /dev/null +++ b/src/ui/common/Toast/ToastItem.tsx @@ -0,0 +1,46 @@ +import { ToastAtom } from '@/hooks/toast/atoms'; +import { Box } from '@chakra-ui/react'; +import { PropsWithChildren, useEffect, useState } from 'react'; + +const ToastItem = ({ + duration, + children, +}: PropsWithChildren<Pick<ToastAtom, 'duration'>>) => { + const [visible, setVisible] = useState(false); + + useEffect(() => { + setTimeout(() => { + setVisible(true); + }, 100); + + const handleSetTimeout = setTimeout(() => { + setVisible(false); + clearTimeout(handleSetTimeout); + }, duration); + }, [duration]); + + return ( + <Box + position="absolute" + maxW="43rem" + px="2rem" + opacity={visible ? '0.95' : '0'} + transition="all 0.5s ease-in-out" + > + <Box + color="white" + borderRadius={15} + textAlign="center" + bg="main" + fontSize="md" + fontWeight="bold" + py="2rem" + px="2rem" + > + {children} + </Box> + </Box> + ); +}; + +export default ToastItem; diff --git a/src/ui/common/Toast/index.tsx b/src/ui/common/Toast/index.tsx new file mode 100644 index 000000000..990d2c60e --- /dev/null +++ b/src/ui/common/Toast/index.tsx @@ -0,0 +1,22 @@ +import { toastsAtom } from '@/hooks/toast/atoms'; +import { Box, Center } from '@chakra-ui/react'; +import { useRecoilValue } from 'recoil'; +import ToastItem from './ToastItem'; + +const Toast = () => { + const toasts = useRecoilValue(toastsAtom); + + return ( + <Box position="fixed" width="100%" bottom="15rem" left={0} zIndex={10000}> + <Center> + {toasts.map(({ id, duration, message }) => ( + <ToastItem key={id} duration={duration}> + {message} + </ToastItem> + ))} + </Center> + </Box> + ); +}; + +export default Toast; diff --git a/src/ui/common/TopNavigation/index.tsx b/src/ui/common/TopNavigation/index.tsx new file mode 100644 index 000000000..203287a50 --- /dev/null +++ b/src/ui/common/TopNavigation/index.tsx @@ -0,0 +1,33 @@ +import { Box, Flex, Text } from '@chakra-ui/react'; +import { useRouter } from 'next/navigation'; +import IconButton from '../IconButton'; + +type PageTitleType = { + pageTitle: string; +}; + +const TopNavigation = ({ pageTitle }: PageTitleType) => { + const router = useRouter(); + + return ( + <Flex + width="100%" + alignItems="center" + justifyContent="space-between" + mb="1rem" + > + <IconButton + name="back" + size="2rem" + onClick={() => router.back()} + cursor="pointer" + /> + <Text fontSize="lg" fontWeight="700"> + {pageTitle} + </Text> + <Box w="2rem"></Box> + </Flex> + ); +}; + +export default TopNavigation; diff --git a/src/utils/assert.ts b/src/utils/assert.ts deleted file mode 100644 index bb312438f..000000000 --- a/src/utils/assert.ts +++ /dev/null @@ -1,9 +0,0 @@ -export const assert = (condition: unknown, error: Error | string) => { - if (!condition) { - if (typeof error === 'string') { - throw new Error(error); - } else { - throw error; - } - } -}; diff --git a/src/utils/date.ts b/src/utils/date.ts deleted file mode 100644 index b4b5ca486..000000000 --- a/src/utils/date.ts +++ /dev/null @@ -1,31 +0,0 @@ -export const toDayFromMillseconds = (value: number) => - Math.ceil(value / (1000 * 60 * 60 * 24)); - -export const getDdayCount = (target: Date) => - toDayFromMillseconds(target.getTime() - new Date().getTime()); - -export const isExpired = (end: string) => { - return getDdayCount(new Date(end)) < 0; -}; - -export const formatDateInputValue = (target: string) => { - const date = new Date(target); - - const year = date.getFullYear(); - const month = ('0' + (date.getMonth() + 1)).slice(-2); - const day = ('0' + date.getDate()).slice(-2); - - const daysOfWeek = ['일', '월', '화', '수', '목', '금', '토']; - const dayOfWeek = daysOfWeek[date.getDay()]; - - const formattedDate = `${year}.${month}.${day} (${dayOfWeek})`; - - return formattedDate; -}; - -export const getTodayDate = () => { - const offset = new Date().getTimezoneOffset() * 60000; - const todayDate = new Date(Date.now() - offset); - - return todayDate.toISOString().slice(0, 10); -}; diff --git a/src/utils/eventListener.ts b/src/utils/eventListener.ts deleted file mode 100644 index 18731f98e..000000000 --- a/src/utils/eventListener.ts +++ /dev/null @@ -1,32 +0,0 @@ -/** - * 참고 - * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#safely_detecting_option_support - * */ - -type FixedEventListenerOptions = - | (AddEventListenerOptions & EventListenerOptions) - | boolean; - -let passiveSupported = false; - -const emptyListener = () => void {}; - -try { - const options: FixedEventListenerOptions = { - get passive() { - // This function will be called when the browser - // attempts to access the passive property. - passiveSupported = true; - return false; - }, - }; - - window.addEventListener('test', emptyListener, options); - window.removeEventListener('test', emptyListener, options); -} catch { - passiveSupported = false; -} - -export const nonPassive: FixedEventListenerOptions = passiveSupported - ? { passive: false } - : false; diff --git a/src/utils/helpers/auth.ts b/src/utils/helpers/auth.ts index 0c7bc2df3..394f4e59f 100644 --- a/src/utils/helpers/auth.ts +++ b/src/utils/helpers/auth.ts @@ -3,7 +3,7 @@ import webStorage from '@/utils/storage'; const storage = webStorage(ACCESS_TOKEN_STORAGE_KEY); -const checkAuthentication = () => { +const isAuthed = () => { const accessToken = storage.get(); return !!accessToken; }; @@ -16,4 +16,4 @@ const removeAuth = () => { storage.remove(); }; -export { checkAuthentication, setAuth, removeAuth }; +export { isAuthed, setAuth, removeAuth }; diff --git a/src/utils/helpers/axiosHandler.ts b/src/utils/helpers/axiosHandler.ts new file mode 100644 index 000000000..d3e0c185f --- /dev/null +++ b/src/utils/helpers/axiosHandler.ts @@ -0,0 +1,32 @@ +import axios, { InternalAxiosRequestConfig } from 'axios'; + +import { ACCESS_TOKEN_STORAGE_KEY } from '@/constants'; +import webStorage from '@/utils/storage'; + +const updateToken = async () => { + const storage = webStorage(ACCESS_TOKEN_STORAGE_KEY); + + try { + const { + data: { accessToken }, + } = await axios.post<{ accessToken: string }>('/service-api/auth/token'); + + if (!accessToken) { + throw new Error('새로운 accessToken을 받아오지 못했어요.'); + } + + return accessToken; + } catch (error) { + storage.remove(); + return Promise.reject(error); + } +}; + +const setAxiosAuthHeader = ( + config: InternalAxiosRequestConfig, + token: string +) => { + config.headers['Authorization'] = `Bearers ${token}`; +}; + +export { updateToken, setAxiosAuthHeader }; diff --git a/src/utils/helpers/index.ts b/src/utils/helpers/index.ts index 8b7943420..915b8adea 100644 --- a/src/utils/helpers/index.ts +++ b/src/utils/helpers/index.ts @@ -1,2 +1,3 @@ export * from './auth'; +export * from './axiosHandler'; export * from './error'; diff --git a/src/utils/storage.ts b/src/utils/storage.tsx similarity index 100% rename from src/utils/storage.ts rename to src/utils/storage.tsx diff --git a/tailwind.config.js b/tailwind.config.js deleted file mode 100644 index 47c993563..000000000 --- a/tailwind.config.js +++ /dev/null @@ -1,203 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - content: [ - './src/pages/**/*.{ts,tsx}', - './src/components/**/*.{ts,tsx}', - './src/ui/**/*.{ts,tsx}', - './src/app/**/*.{ts,tsx}', - './src/stories/**/*.{ts,tsx}', - './src/v1/**/*.{ts,tsx}', - './.storybook/**/*.{ts,tsx}', - './src/v1/**/*.{ts,tsx}', - ], - theme: { - extend: { - screens: { - desktop: '430px', - }, - fontSize: { - '2xs': '1.0rem', - xs: '1.2rem', - sm: '1.4rem', - md: '1.6rem', - lg: '1.8rem', - xl: '2.0rem', - '2xl': '2.2rem', - }, - fontWeight: { - thin: 100, - normal: 400, - bold: 700, - }, - colors: { - main: { - 300: '#F5F4EE', - 400: '#FAF0DD', - 500: '#FFDEB6', - 600: '#FFD480', // use with opacity 18% - 700: '#FFC073', - 800: '#F6AD55', - 900: '#FFA436', - brighter: '#FF8B00', - }, - success: { - 500: '#F2FDF5', - 800: '#8FDEA3', - 900: '#70B681', - }, - warning: { - 500: '#FCF2F2', - 600: '#FFA0A0', - 700: '#FF8282', - 800: '#F56565', - 900: '#FF0000', - }, - kakao: { - DEFAULT: '#FEE102', - dark: '#191600', - }, - black: { - 100: '#F4F4F4', - 200: '#E9E9E9', - 300: '#ECECEC', - 400: '#D9D9D9', - 500: '#8D8D8D', - 600: '#4A4A4A', - 700: '#2D2D2D', // MainText Color - 800: '#191600', - 900: '#000000', - DEFAULT: '#000000', - }, - white: '#FFFFFF', - background: '#FCFCFC', - shadow: '#CFCFCF', - placeholder: '#AFAFAF', // ( = description) - overlay: '#494949', // use with opacity 60% - bookshelf: { - light: '#F6F3EC', - dark: '#F2ECDF', - }, - }, - fontFamily: { - lineseed: ['var(--font-lineseed)'], - }, - boxShadow: { - bookcover: - '0px 0px 2px rgba(0, 0, 0, 0.2), 2px 2px 6px rgba(0, 0, 0, 0.1)', - bookcard: '0px 0px 7px 0px rgba(207, 207, 207, 0.5)', - 'bottom-navigation': 'rgba(0, 0, 0, 0.05) 0px 0px 10px 1px', - 'floating-button': - '0px 0px 2px rgba(0, 0, 0, 0.2), 2px 2px 6px rgba(0, 0, 0, 0.1)', - 'bookgroup-card': '0 0 6px rgba(180,180,180,0.25)', - }, - keyframes: { - 'opacity-show': { - from: { opacity: 0 }, - to: { opacity: 1 }, - }, - 'slide-in': { - from: { transform: 'translateY(300%)' }, - to: { transform: 'translateY(0%)' }, - }, - 'slide-out': { - from: { transform: 'translateY(0%)' }, - to: { transform: 'translateY(300%)' }, - }, - 'slide-init': { - from: { transform: 'translateY(300%)' }, - to: { transform: 'translateY(300%)' }, - }, - 'dot-flash': { - '0%,33%,100%': { - opacity: 0.2, - transform: 'translateY(5px)', - }, - '16%': { - opacity: 1, - transform: 'translateY(0px)', - }, - }, - }, - animation: { - 'page-transition': 'opacity-show 0.2s forwards ease-in-out', - 'slide-in': '0.3s forwards slide-in ease-in-out', - 'slide-out': '0.3s forwards slide-out ease-in-out', - 'slide-init': '0.3s forwards slide-init ease-in-out', - 'dot-flash': '2s infinite dot-flash linear', - 'dot-flash-delay-0.5': '2s 0.5s infinite dot-flash linear', - 'dot-flash-delay-1': '2s 1s infinite dot-flash linear', - 'stepper-transition': 'opacity-show 0.2s 0.1s forwards', - }, - content: { - search: 'url("/icons/search.svg")', - check: 'url("/icons/check.svg")', - }, - }, - }, - plugins: [ - ({ addUtilities }) => { - addUtilities({ - '.font-heading-bold': { - fontSize: '2.1rem', - lineHeight: '1.5', - fontWeight: 700, - }, - '.font-heading-regular': { - fontSize: '2.1rem', - lineHeight: '1.5', - fontWeight: 400, - }, - '.font-subheading-bold': { - fontSize: '1.8rem', - lineHeight: '1.5', - fontWeight: 700, - }, - '.font-subheading-regular': { - fontSize: '1.8rem', - lineHeight: '1.5', - fontWeight: 400, - }, - '.font-body1-bold': { - fontSize: '1.6rem', - lineHeight: '2.1rem', - fontWeight: 700, - }, - '.font-body1-regular': { - fontSize: '1.6rem', - lineHeight: '2.1rem', - fontWeight: 400, - }, - '.font-body2-bold': { - fontSize: '1.4rem', - lineHeight: '1.9rem', - fontWeight: 700, - }, - '.font-body2-regular': { - fontSize: '1.4rem', - lineHeight: '1.9rem', - fontWeight: 400, - }, - '.font-caption1-bold': { - fontSize: '1.2rem', - lineHeight: '1.6rem', - fontWeight: 700, - }, - '.font-caption1-regular': { - fontSize: '1.2rem', - lineHeight: '1.6rem', - fontWeight: 400, - }, - '.font-caption2-bold': { - fontSize: '1.1rem', - lineHeight: '1.3rem', - fontWeight: 700, - }, - '.font-caption2-regular': { - fontSize: '1.1rem', - lineHeight: '1.3rem', - fontWeight: 400, - }, - }); - }, - ], -}; diff --git a/yarn.lock b/yarn.lock index a13d17bd3..18ee64ac5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,160 +2,86 @@ # yarn lockfile v1 -"@actions/core@^1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.1.tgz#61108e7ac40acae95ee36da074fa5850ca4ced8a" - integrity sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g== - dependencies: - "@actions/http-client" "^2.0.1" - uuid "^8.3.2" - -"@actions/http-client@^2.0.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.2.1.tgz#ed3fe7a5a6d317ac1d39886b0bb999ded229bb38" - integrity sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw== - dependencies: - tunnel "^0.0.6" - undici "^5.25.4" - -"@alloc/quick-lru@^5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" - integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== - "@ampproject/remapping@^2.2.0": version "2.2.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== dependencies: "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@aw-web-design/x-default-browser@1.4.88": - version "1.4.88" - resolved "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.88.tgz" - integrity sha512-AkEmF0wcwYC2QkhK703Y83fxWARttIWXDmQN8+cof8FmFZ5BRhnNXGymeb1S73bOCLfWjYELxtujL56idCN/XA== - dependencies: - default-browser-id "3.0.0" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" + "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5", "@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": - version "7.23.2" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz" - integrity sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ== - -"@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.19.6", "@babel/core@^7.20.2", "@babel/core@^7.22.8", "@babel/core@^7.7.5": - version "7.23.2" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz" - integrity sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helpers" "^7.23.2" - "@babel/parser" "^7.23.0" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298" + integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== -"@babel/core@~7.21.0": - version "7.21.8" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz" - integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== +"@babel/core@^7.19.6": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13" + integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" - "@babel/helper-compilation-targets" "^7.21.5" - "@babel/helper-module-transforms" "^7.21.5" - "@babel/helpers" "^7.21.5" - "@babel/parser" "^7.21.8" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.21.0" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.21.0" + "@babel/helpers" "^7.21.0" + "@babel/parser" "^7.21.0" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.2" semver "^6.3.0" -"@babel/generator@^7.12.11", "@babel/generator@^7.21.5", "@babel/generator@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== - dependencies: - "@babel/types" "^7.23.0" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@~7.21.1": - version "7.21.9" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz" - integrity sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg== +"@babel/generator@^7.21.0", "@babel/generator@^7.21.1": + version "7.21.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd" + integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA== dependencies: - "@babel/types" "^7.21.5" + "@babel/types" "^7.21.0" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== dependencies: "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.9" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz" - integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz" - integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" + "@babel/compat-data" "^7.20.5" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" lru-cache "^5.1.1" - semver "^6.3.1" + semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9" integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -167,41 +93,17 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-class-features-plugin@^7.22.5": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.6.tgz" - integrity sha512-iwdzgtSiBxF6ni6mzVnZCF3xt5qE6cEA0J7nFt8QOAWZ0zjCFceEgpn3vtb2V7WFR6QzP2jmIFOHMTRo7eNJjQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@nicolo-ribaudo/semver-v6" "^6.3.3" - "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz#53ff78472e5ce10a52664272a239787107603ebb" integrity sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.3.1" -"@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.6.tgz" - integrity sha512-nBookhLKxAWo/TUCmhnaEJyLz2dekjQvv5SRpE9epWQBcpedWLKt8aZdsuT9XV5ovzR3fENLjRXVT0GsSlGGhA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@nicolo-ribaudo/semver-v6" "^6.3.3" - regexpu-core "^5.3.1" - "@babel/helper-define-polyfill-provider@^0.3.3": version "0.3.3" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== dependencies: "@babel/helper-compilation-targets" "^7.17.7" @@ -211,110 +113,76 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-define-polyfill-provider@^0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz" - integrity sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A== - dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - -"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5", "@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== "@babel/helper-explode-assignable-expression@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0", "@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== dependencies: "@babel/types" "^7.21.0" -"@babel/helper-member-expression-to-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== +"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== dependencies: - "@babel/types" "^7.22.15" + "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2", "@babel/helper-module-transforms@^7.21.5", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz" - integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.0", "@babel/helper-module-transforms@^7.21.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" + integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.2" + "@babel/types" "^7.21.2" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.20.2" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== -"@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -322,19 +190,9 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-remap-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz" - integrity sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-wrap-function" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": version "7.20.7" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== dependencies: "@babel/helper-environment-visitor" "^7.18.9" @@ -344,78 +202,45 @@ "@babel/traverse" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/helper-replace-supers@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz" - integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-simple-access@^7.20.2": version "7.20.2" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== dependencies: "@babel/types" "^7.20.2" -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers@^7.20.0": version "7.20.0" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== dependencies: "@babel/types" "^7.20.0" -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.21.5", "@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@babel/helper-validator-identifier@^7.19.1", "@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.22.5": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== -"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0", "@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.22.5": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz" - integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== +"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" + integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== "@babel/helper-wrap-function@^7.18.9": version "7.20.5" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== dependencies: "@babel/helper-function-name" "^7.19.0" @@ -423,84 +248,48 @@ "@babel/traverse" "^7.20.5" "@babel/types" "^7.20.5" -"@babel/helper-wrap-function@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz" - integrity sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw== - dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/helpers@^7.21.5", "@babel/helpers@^7.23.2": - version "7.23.2" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz" - integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== +"@babel/helpers@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" + integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.8", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz" - integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== - -"@babel/parser@^7.21.5": - version "7.22.7" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== - -"@babel/parser@~7.21.2": - version "7.21.9" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz" - integrity sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g== +"@babel/parser@^7.20.7", "@babel/parser@^7.21.0", "@babel/parser@^7.21.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3" + integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz" - integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": version "7.20.7" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-proposal-optional-chaining" "^7.20.7" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz" - integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.5" - -"@babel/plugin-proposal-async-generator-functions@^7.20.1", "@babel/plugin-proposal-async-generator-functions@^7.20.7": +"@babel/plugin-proposal-async-generator-functions@^7.20.1": version "7.20.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== dependencies: "@babel/helper-environment-visitor" "^7.18.9" @@ -508,17 +297,17 @@ "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.18.6": +"@babel/plugin-proposal-class-properties@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.18.6", "@babel/plugin-proposal-class-static-block@^7.21.0": +"@babel/plugin-proposal-class-static-block@^7.18.6": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== dependencies: "@babel/helper-create-class-features-plugin" "^7.21.0" @@ -527,7 +316,7 @@ "@babel/plugin-proposal-dynamic-import@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -535,7 +324,7 @@ "@babel/plugin-proposal-export-namespace-from@^7.18.9": version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -543,23 +332,23 @@ "@babel/plugin-proposal-json-strings@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.18.9", "@babel/plugin-proposal-logical-assignment-operators@^7.20.7": +"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": version "7.20.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== dependencies: "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -567,15 +356,15 @@ "@babel/plugin-proposal-numeric-separator@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.20.2", "@babel/plugin-proposal-object-rest-spread@^7.20.7": +"@babel/plugin-proposal-object-rest-spread@^7.20.2": version "7.20.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== dependencies: "@babel/compat-data" "^7.20.5" @@ -586,15 +375,15 @@ "@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": +"@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== dependencies: "@babel/helper-plugin-utils" "^7.20.2" @@ -603,20 +392,15 @@ "@babel/plugin-proposal-private-methods@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== - "@babel/plugin-proposal-private-property-in-object@^7.18.6": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -624,19 +408,9 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-private-property-in-object@^7.21.0": - version "7.21.11" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz" - integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -644,270 +418,156 @@ "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - "@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz" - integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-import-assertions@^7.20.0": version "7.20.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-syntax-import-assertions@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz" - integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-attributes@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz" - integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-syntax-jsx@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.20.0": version "7.20.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-syntax-typescript@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz" - integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-arrow-functions@^7.18.6": version "7.20.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-arrow-functions@^7.21.5", "@babel/plugin-transform-arrow-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz" - integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-async-generator-functions@^7.22.7": - version "7.22.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz" - integrity sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-transform-async-to-generator@^7.18.6": version "7.20.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== dependencies: "@babel/helper-module-imports" "^7.18.6" "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-remap-async-to-generator" "^7.18.9" -"@babel/plugin-transform-async-to-generator@^7.20.7", "@babel/plugin-transform-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz" - integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== - dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" - "@babel/plugin-transform-block-scoped-functions@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoped-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz" - integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-block-scoping@^7.20.2": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-block-scoping@^7.21.0", "@babel/plugin-transform-block-scoping@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz" - integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz" - integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-static-block@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz" - integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-transform-classes@^7.20.2": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -920,225 +580,85 @@ "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.21.0", "@babel/plugin-transform-classes@^7.22.6": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz" - integrity sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - globals "^11.1.0" - "@babel/plugin-transform-computed-properties@^7.18.9": version "7.20.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" "@babel/template" "^7.20.7" -"@babel/plugin-transform-computed-properties@^7.21.5", "@babel/plugin-transform-computed-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz" - integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/plugin-transform-destructuring@^7.20.2": version "7.20.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454" integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA== dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-destructuring@^7.21.3", "@babel/plugin-transform-destructuring@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz" - integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-dotall-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz" - integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-duplicate-keys@^7.18.9": version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-duplicate-keys@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz" - integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-dynamic-import@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz" - integrity sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-exponentiation-operator@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-exponentiation-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz" - integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-export-namespace-from@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz" - integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-transform-flow-strip-types@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz" - integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-flow" "^7.22.5" - "@babel/plugin-transform-for-of@^7.18.8": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-for-of@^7.21.5", "@babel/plugin-transform-for-of@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz" - integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-function-name@^7.18.9": version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== dependencies: "@babel/helper-compilation-targets" "^7.18.9" "@babel/helper-function-name" "^7.18.9" "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz" - integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== - dependencies: - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-json-strings@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz" - integrity sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-transform-literals@^7.18.9": version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz" - integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-logical-assignment-operators@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz" - integrity sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-transform-member-expression-literals@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-member-expression-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz" - integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-modules-amd@^7.19.6": version "7.20.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== dependencies: "@babel/helper-module-transforms" "^7.20.11" "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-modules-amd@^7.20.11", "@babel/plugin-transform-modules-amd@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz" - integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.21.5", "@babel/plugin-transform-modules-commonjs@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz" - integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/plugin-transform-modules-commonjs@^7.19.6": version "7.21.2" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA== dependencies: "@babel/helper-module-transforms" "^7.21.2" @@ -1147,7 +667,7 @@ "@babel/plugin-transform-modules-systemjs@^7.19.6": version "7.20.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== dependencies: "@babel/helper-hoist-variables" "^7.18.6" @@ -1155,192 +675,75 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-validator-identifier" "^7.19.1" -"@babel/plugin-transform-modules-systemjs@^7.20.11", "@babel/plugin-transform-modules-systemjs@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz" - integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ== - dependencies: - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - "@babel/plugin-transform-modules-umd@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== dependencies: "@babel/helper-module-transforms" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-modules-umd@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz" - integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": version "7.20.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.20.5" "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-named-capturing-groups-regex@^7.20.5", "@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz" - integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-new-target@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-new-target@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz" - integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz" - integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-transform-numeric-separator@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz" - integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-transform-object-rest-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz" - integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ== - dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.5" - "@babel/plugin-transform-object-super@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-object-super@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz" - integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - -"@babel/plugin-transform-optional-catch-binding@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz" - integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-transform-optional-chaining@^7.22.5", "@babel/plugin-transform-optional-chaining@^7.22.6": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz" - integrity sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": version "7.20.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f" integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA== dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-parameters@^7.21.3", "@babel/plugin-transform-parameters@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz" - integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-methods@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz" - integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-property-in-object@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz" - integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-property-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz" - integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-react-constant-elements@^7.18.12": version "7.20.2" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz#3f02c784e0b711970d7d8ccc96c4359d64e27ac7" integrity sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g== dependencies: "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-react-display-name@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-react-jsx-development@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== dependencies: "@babel/plugin-transform-react-jsx" "^7.18.6" "@babel/plugin-transform-react-jsx@^7.18.6": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz#656b42c2fdea0a6d8762075d58ef9d4e3c4ab8a2" integrity sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -1349,20 +752,9 @@ "@babel/plugin-syntax-jsx" "^7.18.6" "@babel/types" "^7.21.0" -"@babel/plugin-transform-react-jsx@^7.19.0": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz" - integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/plugin-transform-react-pure-annotations@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -1370,186 +762,82 @@ "@babel/plugin-transform-regenerator@^7.18.6": version "7.20.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" regenerator-transform "^0.15.1" -"@babel/plugin-transform-regenerator@^7.21.5", "@babel/plugin-transform-regenerator@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz" - integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.1" - "@babel/plugin-transform-reserved-words@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-reserved-words@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz" - integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-runtime@^7.21.0": - version "7.22.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.7.tgz" - integrity sha512-o02xM7iY7mSPI+TvaYDH0aYl+lg3+KT7qrD705JlsB/GrZSNaYO/4i+aDFKPiJ7ubq3hgv8NNLCdyB5MFxT8mg== - dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@nicolo-ribaudo/semver-v6" "^6.3.3" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" - "@babel/plugin-transform-shorthand-properties@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-shorthand-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz" - integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-spread@^7.19.0": version "7.20.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== dependencies: "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" -"@babel/plugin-transform-spread@^7.20.7", "@babel/plugin-transform-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz" - integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-sticky-regex@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-sticky-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz" - integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-template-literals@^7.18.9": version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-template-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz" - integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-typeof-symbol@^7.18.9": version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-typeof-symbol@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz" - integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-typescript@^7.21.0": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.0.tgz#f0956a153679e3b377ae5b7f0143427151e4c848" integrity sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg== dependencies: "@babel/helper-create-class-features-plugin" "^7.21.0" "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-typescript" "^7.20.0" -"@babel/plugin-transform-typescript@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz" - integrity sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript" "^7.22.5" - "@babel/plugin-transform-unicode-escapes@^7.18.10": version "7.18.10" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-unicode-escapes@^7.21.5", "@babel/plugin-transform-unicode-escapes@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz" - integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-property-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz" - integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-unicode-regex@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-unicode-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz" - integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-sets-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz" - integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/preset-env@^7.19.4": version "7.20.2" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== dependencies: "@babel/compat-data" "^7.20.1" @@ -1628,186 +916,9 @@ core-js-compat "^3.25.1" semver "^6.3.0" -"@babel/preset-env@^7.20.2": - version "7.22.7" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.7.tgz" - integrity sha512-1whfDtW+CzhETuzYXfcgZAh8/GFMeEbz0V5dVgya8YeJyCU6Y/P2Gnx4Qb3MylK68Zu9UiwUvbPMPTpFAOJ+sQ== - dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.22.5" - "@babel/plugin-syntax-import-attributes" "^7.22.5" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.7" - "@babel/plugin-transform-async-to-generator" "^7.22.5" - "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.5" - "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.5" - "@babel/plugin-transform-classes" "^7.22.6" - "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.5" - "@babel/plugin-transform-dotall-regex" "^7.22.5" - "@babel/plugin-transform-duplicate-keys" "^7.22.5" - "@babel/plugin-transform-dynamic-import" "^7.22.5" - "@babel/plugin-transform-exponentiation-operator" "^7.22.5" - "@babel/plugin-transform-export-namespace-from" "^7.22.5" - "@babel/plugin-transform-for-of" "^7.22.5" - "@babel/plugin-transform-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.5" - "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" - "@babel/plugin-transform-member-expression-literals" "^7.22.5" - "@babel/plugin-transform-modules-amd" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-modules-systemjs" "^7.22.5" - "@babel/plugin-transform-modules-umd" "^7.22.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" - "@babel/plugin-transform-numeric-separator" "^7.22.5" - "@babel/plugin-transform-object-rest-spread" "^7.22.5" - "@babel/plugin-transform-object-super" "^7.22.5" - "@babel/plugin-transform-optional-catch-binding" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.6" - "@babel/plugin-transform-parameters" "^7.22.5" - "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.5" - "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.5" - "@babel/plugin-transform-reserved-words" "^7.22.5" - "@babel/plugin-transform-shorthand-properties" "^7.22.5" - "@babel/plugin-transform-spread" "^7.22.5" - "@babel/plugin-transform-sticky-regex" "^7.22.5" - "@babel/plugin-transform-template-literals" "^7.22.5" - "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.5" - "@babel/plugin-transform-unicode-property-regex" "^7.22.5" - "@babel/plugin-transform-unicode-regex" "^7.22.5" - "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.22.5" - "@nicolo-ribaudo/semver-v6" "^6.3.3" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" - core-js-compat "^3.31.0" - -"@babel/preset-env@~7.21.0": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz" - integrity sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg== - dependencies: - "@babel/compat-data" "^7.21.5" - "@babel/helper-compilation-targets" "^7.21.5" - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" - "@babel/plugin-proposal-async-generator-functions" "^7.20.7" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.21.0" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.21.0" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.21.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.20.0" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.21.5" - "@babel/plugin-transform-async-to-generator" "^7.20.7" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.21.0" - "@babel/plugin-transform-classes" "^7.21.0" - "@babel/plugin-transform-computed-properties" "^7.21.5" - "@babel/plugin-transform-destructuring" "^7.21.3" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.21.5" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.20.11" - "@babel/plugin-transform-modules-commonjs" "^7.21.5" - "@babel/plugin-transform-modules-systemjs" "^7.20.11" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.21.3" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.21.5" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.20.7" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.21.5" - "@babel/plugin-transform-unicode-regex" "^7.18.6" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.21.5" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" - -"@babel/preset-flow@^7.13.13", "@babel/preset-flow@^7.18.6": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.22.5.tgz" - integrity sha512-ta2qZ+LSiGCrP5pgcGt8xMnnkXQrq8Sa4Ulhy06BOlF5QbLw9q5hIx7bn5MrsvyTGAfh6kTOo07Q+Pfld/8Y5Q== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-transform-flow-strip-types" "^7.22.5" - "@babel/preset-modules@^0.1.5": version "0.1.5" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -1818,7 +929,7 @@ "@babel/preset-react@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -1828,260 +939,979 @@ "@babel/plugin-transform-react-jsx-development" "^7.18.6" "@babel/plugin-transform-react-pure-annotations" "^7.18.6" -"@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.21.0": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz" - integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-typescript" "^7.22.5" - "@babel/preset-typescript@^7.18.6": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz#bcbbca513e8213691fe5d4b23d9251e01f00ebff" integrity sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg== dependencies: "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-validator-option" "^7.21.0" "@babel/plugin-transform-typescript" "^7.21.0" -"@babel/register@^7.13.16": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/register/-/register-7.22.5.tgz" - integrity sha512-vV6pm/4CijSQ8Y47RH5SopXzursN35RQINfGJkmOlcpAtGuf94miFvIPhCKGQN7WGIcsgG1BHEX2KVdTYwTwUQ== - dependencies: - clone-deep "^4.0.1" - find-cache-dir "^2.0.0" - make-dir "^2.1.0" - pirates "^4.0.5" - source-map-support "^0.5.16" - "@babel/regjsgen@^0.8.0": version "0.8.0" - resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.12.5", "@babel/runtime@^7.20.7", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.8.4": version "7.21.0" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== dependencies: regenerator-runtime "^0.13.11" -"@babel/runtime@^7.17.8", "@babel/runtime@^7.21.0", "@babel/runtime@^7.7.6": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz" - integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== +"@babel/template@^7.18.10", "@babel/template@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== dependencies: - regenerator-runtime "^0.13.11" - -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.22.15", "@babel/template@^7.22.5": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.1.6", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.5", "@babel/traverse@^7.22.5", "@babel/traverse@^7.23.2": - version "7.23.2" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz" - integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.0" - "@babel/types" "^7.23.0" - debug "^4.1.0" - globals "^11.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" -"@babel/traverse@~7.21.2": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz" - integrity sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw== +"@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.2.tgz#ac7e1f27658750892e815e60ae90f382a46d8e75" + integrity sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw== dependencies: - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" - "@babel/helper-environment-visitor" "^7.21.5" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.21.1" + "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.21.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.5" - "@babel/types" "^7.21.5" + "@babel/parser" "^7.21.2" + "@babel/types" "^7.21.2" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.2.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.5", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.4.4": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== +"@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.4.4": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.2.tgz#92246f6e00f91755893c2876ad653db70c8310d1" + integrity sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw== dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" -"@babel/types@~7.21.2": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz" - integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== +"@chakra-ui/accordion@2.1.9": + version "2.1.9" + resolved "https://registry.yarnpkg.com/@chakra-ui/accordion/-/accordion-2.1.9.tgz#20fa86d94dc034251df2f7c8595ae4dd541a29d9" + integrity sha512-a9CKIAUHezc0f5FR/SQ4GVxnWuIb2HbDTxTEKTp58w/J9pecIbJaNrJ5TUZ0MVbDU9jkgO9RsZ29jkja8PomAw== dependencies: - "@babel/helper-string-parser" "^7.21.5" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" + "@chakra-ui/descendant" "3.0.13" + "@chakra-ui/icon" "3.0.16" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-use-controllable-state" "2.0.8" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + "@chakra-ui/transition" "2.0.15" -"@base2/pretty-print-object@1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz" - integrity sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA== +"@chakra-ui/alert@2.0.17": + version "2.0.17" + resolved "https://registry.yarnpkg.com/@chakra-ui/alert/-/alert-2.0.17.tgz#b129732ec308db6a6a1afa7c06a6595ad853c967" + integrity sha512-0Y5vw+HkeXpwbL1roVpSSNM6luMRmUbwduUSHEA4OnX1ismvsDb1ZBfpi4Vxp6w8euJ2Uj6df3krbd5tbCP6tg== + dependencies: + "@chakra-ui/icon" "3.0.16" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + "@chakra-ui/spinner" "2.0.13" -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@chakra-ui/anatomy@2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@chakra-ui/anatomy/-/anatomy-2.1.2.tgz#ea66b1841e7195da08ddc862daaa3f3e56e565f5" + integrity sha512-pKfOS/mztc4sUXHNc8ypJ1gPWSolWT770jrgVRfolVbYlki8y5Y+As996zMF6k5lewTu6j9DQequ7Cc9a69IVQ== -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== +"@chakra-ui/avatar@2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/avatar/-/avatar-2.2.5.tgz#50eb7cc5a172d394b301fa0abd5f607b7f5d3563" + integrity sha512-TEHXuGE79+fEn61qJ7J/A0Ec+WjyNwobrDTATcLg9Zx2/WEMmZNfrWIAlI5ANQAwVbdSWeGVbyoLAK5mbcrE0A== + dependencies: + "@chakra-ui/image" "2.0.15" + "@chakra-ui/react-children-utils" "2.0.6" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" -"@discoveryjs/json-ext@^0.5.3": - version "0.5.7" - resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== +"@chakra-ui/breadcrumb@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/breadcrumb/-/breadcrumb-2.1.4.tgz#0d249dc2a92639bd2bf46d097dd5445112bd2367" + integrity sha512-vyBx5TAxPnHhb0b8nyRGfqyjleD//9mySFhk96c9GL+T6YDO4swHw5y/kvDv3Ngc/iRwJ9hdI49PZKwPxLqsEg== + dependencies: + "@chakra-ui/react-children-utils" "2.0.6" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/breakpoint-utils@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@chakra-ui/breakpoint-utils/-/breakpoint-utils-2.0.8.tgz#750d3712668b69f6e8917b45915cee0e08688eed" + integrity sha512-Pq32MlEX9fwb5j5xx8s18zJMARNHlQZH2VH1RZgfgRDpp7DcEgtRW5AInfN5CfqdHLO1dGxA7I3MqEuL5JnIsA== + dependencies: + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/button@2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@chakra-ui/button/-/button-2.0.16.tgz#ff315b57ee47c3511a6507fcfb6f00bb93e2ac7d" + integrity sha512-NjuTKa7gNhnGSUutKuTc8HoAOe9WWIigpciBG7yj3ok67kg8bXtSzPyQFZlgTY6XGdAckWTT+Do4tvhwa5LA+g== + dependencies: + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + "@chakra-ui/spinner" "2.0.13" + +"@chakra-ui/card@2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@chakra-ui/card/-/card-2.1.6.tgz#27176bdee363ecab7d563c4997c4b2fe9e835ecc" + integrity sha512-fFd/WAdRNVY/WOSQv4skpy0WeVhhI0f7dTY1Sm0jVl0KLmuP/GnpsWtKtqWjNcV00K963EXDyhlk6+9oxbP4gw== + dependencies: + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/checkbox@2.2.10": + version "2.2.10" + resolved "https://registry.yarnpkg.com/@chakra-ui/checkbox/-/checkbox-2.2.10.tgz#e4f773e7d2464f1d6e9d18dd88b679290cb33171" + integrity sha512-vzxEjw99qj7loxAdP1WuHNt4EAvj/t6cc8oxyOB2mEvkAzhxI34rLR+3zWDuHWsmhyUO+XEDh4FiWdR+DK5Siw== + dependencies: + "@chakra-ui/form-control" "2.0.17" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-types" "2.0.7" + "@chakra-ui/react-use-callback-ref" "2.0.7" + "@chakra-ui/react-use-controllable-state" "2.0.8" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/react-use-safe-layout-effect" "2.0.5" + "@chakra-ui/react-use-update-effect" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + "@chakra-ui/visually-hidden" "2.0.15" + "@zag-js/focus-visible" "0.2.1" + +"@chakra-ui/clickable@2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@chakra-ui/clickable/-/clickable-2.0.14.tgz#88093008672a2a30bdd2a30ff815dcc2c88c01a5" + integrity sha512-jfsM1qaD74ZykLHmvmsKRhDyokLUxEfL8Il1VoZMNX5RBI0xW/56vKpLTFF/v/+vLPLS+Te2cZdD4+2O+G6ulA== + dependencies: + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/close-button@2.0.17": + version "2.0.17" + resolved "https://registry.yarnpkg.com/@chakra-ui/close-button/-/close-button-2.0.17.tgz#d43d3a2ea1f08250f8d0da7704baf0e1fbd91b4b" + integrity sha512-05YPXk456t1Xa3KpqTrvm+7smx+95dmaPiwjiBN3p7LHUQVHJd8ZXSDB0V+WKi419k3cVQeJUdU/azDO2f40sw== + dependencies: + "@chakra-ui/icon" "3.0.16" + +"@chakra-ui/color-mode@2.1.12": + version "2.1.12" + resolved "https://registry.yarnpkg.com/@chakra-ui/color-mode/-/color-mode-2.1.12.tgz#c0caeadd5f87fadbeefc6826beabac6c4a88d8f5" + integrity sha512-sYyfJGDoJSLYO+V2hxV9r033qhte5Nw/wAn5yRGGZnEEN1dKPEdWQ3XZvglWSDTNd0w9zkoH2w6vP4FBBYb/iw== + dependencies: + "@chakra-ui/react-use-safe-layout-effect" "2.0.5" + +"@chakra-ui/control-box@2.0.13": + version "2.0.13" + resolved "https://registry.yarnpkg.com/@chakra-ui/control-box/-/control-box-2.0.13.tgz#ffe9634d0c3aecb8e1eb7da19e64fb3d2b181d03" + integrity sha512-FEyrU4crxati80KUF/+1Z1CU3eZK6Sa0Yv7Z/ydtz9/tvGblXW9NFanoomXAOvcIFLbaLQPPATm9Gmpr7VG05A== + +"@chakra-ui/counter@2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@chakra-ui/counter/-/counter-2.0.14.tgz#6e37a863afd2e87d7c94208245e81777640e76e2" + integrity sha512-KxcSRfUbb94dP77xTip2myoE7P2HQQN4V5fRJmNAGbzcyLciJ+aDylUU/UxgNcEjawUp6Q242NbWb1TSbKoqog== + dependencies: + "@chakra-ui/number-utils" "2.0.7" + "@chakra-ui/react-use-callback-ref" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/css-reset@2.0.12": + version "2.0.12" + resolved "https://registry.yarnpkg.com/@chakra-ui/css-reset/-/css-reset-2.0.12.tgz#6eebcbe9e971facd215e174e063ace29f647a045" + integrity sha512-Q5OYIMvqTl2vZ947kIYxcS5DhQXeStB84BzzBd6C10wOx1gFUu9pL+jLpOnHR3hhpWRMdX5o7eT+gMJWIYUZ0Q== + +"@chakra-ui/descendant@3.0.13": + version "3.0.13" + resolved "https://registry.yarnpkg.com/@chakra-ui/descendant/-/descendant-3.0.13.tgz#e883a2233ee07fe1ae6c014567824c0f79df11cf" + integrity sha512-9nzxZVxUSMc4xPL5fSaRkEOQjDQWUGjGvrZI7VzWk9eq63cojOtIxtWMSW383G9148PzWJjJYt30Eud5tdZzlg== + dependencies: + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-use-merge-refs" "2.0.7" + +"@chakra-ui/dom-utils@2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@chakra-ui/dom-utils/-/dom-utils-2.0.6.tgz#68f49f3b4a0bdebd5e416d6fd2c012c9ad64b76a" + integrity sha512-PVtDkPrDD5b8aoL6Atg7SLjkwhWb7BwMcLOF1L449L3nZN+DAO3nyAh6iUhZVJyunELj9d0r65CDlnMREyJZmA== + +"@chakra-ui/editable@2.0.19": + version "2.0.19" + resolved "https://registry.yarnpkg.com/@chakra-ui/editable/-/editable-2.0.19.tgz#1af2fe3c215111f61f7872fb5f599f4d8da24e7d" + integrity sha512-YxRJsJ2JQd42zfPBgTKzIhg1HugT+gfQz1ZosmUN+IZT9YZXL2yodHTUz6Lee04Vc/CdEqgBFLuREXEUNBfGtA== + dependencies: + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-types" "2.0.7" + "@chakra-ui/react-use-callback-ref" "2.0.7" + "@chakra-ui/react-use-controllable-state" "2.0.8" + "@chakra-ui/react-use-focus-on-pointer-down" "2.0.6" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/react-use-safe-layout-effect" "2.0.5" + "@chakra-ui/react-use-update-effect" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/event-utils@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@chakra-ui/event-utils/-/event-utils-2.0.8.tgz#e6439ba200825a2f15d8f1973d267d1c00a6d1b4" + integrity sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw== + +"@chakra-ui/focus-lock@2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@chakra-ui/focus-lock/-/focus-lock-2.0.16.tgz#bfb705b565d70b2f908d7c7a27f40426ac48dff8" + integrity sha512-UuAdGCPVrCa1lecoAvpOQD7JFT7a9RdmhKWhFt5ioIcekSLJcerdLHuuL3w0qz//8kd1/SOt7oP0aJqdAJQrCw== + dependencies: + "@chakra-ui/dom-utils" "2.0.6" + react-focus-lock "^2.9.2" + +"@chakra-ui/form-control@2.0.17": + version "2.0.17" + resolved "https://registry.yarnpkg.com/@chakra-ui/form-control/-/form-control-2.0.17.tgz#2f710325e77ce35067337616d440f903b137bdd5" + integrity sha512-34ptCaJ2LNvQNOlB6MAKsmH1AkT1xo7E+3Vw10Urr81yTOjDTM/iU6vG3JKPfRDMyXeowPjXmutlnuk72SSjRg== + dependencies: + "@chakra-ui/icon" "3.0.16" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-types" "2.0.7" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/hooks@2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@chakra-ui/hooks/-/hooks-2.1.6.tgz#4d829535868148912ef7a4ff274e03b8d1cf7c72" + integrity sha512-oMSOeoOF6/UpwTVlDFHSROAA4hPY8WgJ0erdHs1ZkuwAwHv7UzjDkvrb6xYzAAH9qHoFzc5RIBm6jVoh3LCc+Q== + dependencies: + "@chakra-ui/react-utils" "2.0.12" + "@chakra-ui/utils" "2.0.15" + compute-scroll-into-view "1.0.20" + copy-to-clipboard "3.3.3" + +"@chakra-ui/icon@3.0.16": + version "3.0.16" + resolved "https://registry.yarnpkg.com/@chakra-ui/icon/-/icon-3.0.16.tgz#6413ec637c0c3acc204301485f05451b5bcd6ba4" + integrity sha512-RpA1X5Ptz8Mt39HSyEIW1wxAz2AXyf9H0JJ5HVx/dBdMZaGMDJ0HyyPBVci0m4RCoJuyG1HHG/DXJaVfUTVAeg== + dependencies: + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/icons@^2.0.17": + version "2.0.17" + resolved "https://registry.yarnpkg.com/@chakra-ui/icons/-/icons-2.0.17.tgz#625a46d169707aad36d65c04a4626a422f92e5ae" + integrity sha512-HMJP0WrJgAmFR9+Xh/CBH0nVnGMsJ4ZC8MK6tMgxPKd9/muvn0I4hsicHqdPlLpmB0TlxlhkBAKaVMtOdz6F0w== + dependencies: + "@chakra-ui/icon" "3.0.16" + +"@chakra-ui/image@2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@chakra-ui/image/-/image-2.0.15.tgz#7f275f8f3edbb420e0613afd5023ad9cf442d09d" + integrity sha512-w2rElXtI3FHXuGpMCsSklus+pO1Pl2LWDwsCGdpBQUvGFbnHfl7MftQgTlaGHeD5OS95Pxva39hKrA2VklKHiQ== + dependencies: + "@chakra-ui/react-use-safe-layout-effect" "2.0.5" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/input@2.0.20": + version "2.0.20" + resolved "https://registry.yarnpkg.com/@chakra-ui/input/-/input-2.0.20.tgz#8db3ec46b52be901c94599b3659a9003bdb2dd07" + integrity sha512-ypmsy4n4uNBVgn6Gd24Zrpi+qRf/T9WEzWkysuYC9Qfxo+i7yuf3snp7XmBy8KSGVSiXE11eO8ZN5oCg6Xg0jg== + dependencies: + "@chakra-ui/form-control" "2.0.17" + "@chakra-ui/object-utils" "2.0.8" + "@chakra-ui/react-children-utils" "2.0.6" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/layout@2.1.16": + version "2.1.16" + resolved "https://registry.yarnpkg.com/@chakra-ui/layout/-/layout-2.1.16.tgz#9d90f25cf9f0537d19cd36a417f7ddc1461e8591" + integrity sha512-QFS3feozIGsvB0H74lUocev55aRF26eNrdmhfJifwikZAiq+zzZAMdBdNU9UJhHClnMOU8/iGZ0MF7ti4zQS1A== + dependencies: + "@chakra-ui/breakpoint-utils" "2.0.8" + "@chakra-ui/icon" "3.0.16" + "@chakra-ui/object-utils" "2.0.8" + "@chakra-ui/react-children-utils" "2.0.6" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/lazy-utils@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/lazy-utils/-/lazy-utils-2.0.5.tgz#363c3fa1d421362790b416ffa595acb835e1ae5b" + integrity sha512-UULqw7FBvcckQk2n3iPO56TMJvDsNv0FKZI6PlUNJVaGsPbsYxK/8IQ60vZgaTVPtVcjY6BE+y6zg8u9HOqpyg== + +"@chakra-ui/live-region@2.0.13": + version "2.0.13" + resolved "https://registry.yarnpkg.com/@chakra-ui/live-region/-/live-region-2.0.13.tgz#1d00a637b74372d1ee0b215c649ebd4a33893e58" + integrity sha512-Ja+Slk6ZkxSA5oJzU2VuGU7TpZpbMb/4P4OUhIf2D30ctmIeXkxTWw1Bs1nGJAVtAPcGS5sKA+zb89i8g+0cTQ== + +"@chakra-ui/media-query@3.2.12": + version "3.2.12" + resolved "https://registry.yarnpkg.com/@chakra-ui/media-query/-/media-query-3.2.12.tgz#75e31f3c88818e687a4d90a2993286c2c3ca2453" + integrity sha512-8pSLDf3oxxhFrhd40rs7vSeIBfvOmIKHA7DJlGUC/y+9irD24ZwgmCtFnn+y3gI47hTJsopbSX+wb8nr7XPswA== + dependencies: + "@chakra-ui/breakpoint-utils" "2.0.8" + "@chakra-ui/react-env" "3.0.0" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/menu@2.1.9": + version "2.1.9" + resolved "https://registry.yarnpkg.com/@chakra-ui/menu/-/menu-2.1.9.tgz#2f3239a9b2855fd77fc317d9e6b904c1ad50d7c6" + integrity sha512-ue5nD4QJcl3H3UwN0zZNJmH89XUebnvEdW6THAUL41hDjJ0J/Fjpg9Sgzwug2aBbBXBNbVMsUuhcCj6x91d+IQ== + dependencies: + "@chakra-ui/clickable" "2.0.14" + "@chakra-ui/descendant" "3.0.13" + "@chakra-ui/lazy-utils" "2.0.5" + "@chakra-ui/popper" "3.0.13" + "@chakra-ui/react-children-utils" "2.0.6" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-use-animation-state" "2.0.8" + "@chakra-ui/react-use-controllable-state" "2.0.8" + "@chakra-ui/react-use-disclosure" "2.0.8" + "@chakra-ui/react-use-focus-effect" "2.0.9" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/react-use-outside-click" "2.0.7" + "@chakra-ui/react-use-update-effect" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + "@chakra-ui/transition" "2.0.15" + +"@chakra-ui/modal@2.2.9": + version "2.2.9" + resolved "https://registry.yarnpkg.com/@chakra-ui/modal/-/modal-2.2.9.tgz#aad65a2c60aa974e023f8b3facc0e79eb742e006" + integrity sha512-nTfNp7XsVwn5+xJOtstoFA8j0kq/9sJj7KesyYzjEDaMKvCZvIOntRYowoydho43jb4+YC7ebKhp0KOIINS0gg== + dependencies: + "@chakra-ui/close-button" "2.0.17" + "@chakra-ui/focus-lock" "2.0.16" + "@chakra-ui/portal" "2.0.15" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-types" "2.0.7" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + "@chakra-ui/transition" "2.0.15" + aria-hidden "^1.2.2" + react-remove-scroll "^2.5.5" + +"@chakra-ui/number-input@2.0.18": + version "2.0.18" + resolved "https://registry.yarnpkg.com/@chakra-ui/number-input/-/number-input-2.0.18.tgz#072a00ef869ebafa4960cfdee8caae8208864289" + integrity sha512-cPkyAFFHHzeFBselrT1BtjlzMkJ6TKrTDUnHFlzqXy6aqeXuhrjFhMfXucjedSpOqedsP9ZbKFTdIAhu9DdL/A== + dependencies: + "@chakra-ui/counter" "2.0.14" + "@chakra-ui/form-control" "2.0.17" + "@chakra-ui/icon" "3.0.16" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-types" "2.0.7" + "@chakra-ui/react-use-callback-ref" "2.0.7" + "@chakra-ui/react-use-event-listener" "2.0.7" + "@chakra-ui/react-use-interval" "2.0.5" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/react-use-safe-layout-effect" "2.0.5" + "@chakra-ui/react-use-update-effect" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/number-utils@2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@chakra-ui/number-utils/-/number-utils-2.0.7.tgz#aaee979ca2fb1923a0373a91619473811315db11" + integrity sha512-yOGxBjXNvLTBvQyhMDqGU0Oj26s91mbAlqKHiuw737AXHt0aPllOthVUqQMeaYLwLCjGMg0jtI7JReRzyi94Dg== + +"@chakra-ui/object-utils@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@chakra-ui/object-utils/-/object-utils-2.0.8.tgz#307f927f6434f99feb32ba92bdf451a6b59a6199" + integrity sha512-2upjT2JgRuiupdrtBWklKBS6tqeGMA77Nh6Q0JaoQuH/8yq+15CGckqn3IUWkWoGI0Fg3bK9LDlbbD+9DLw95Q== + +"@chakra-ui/pin-input@2.0.19": + version "2.0.19" + resolved "https://registry.yarnpkg.com/@chakra-ui/pin-input/-/pin-input-2.0.19.tgz#f9b196174f0518feec5c1ee3fcaf2134c301148a" + integrity sha512-6O7s4vWz4cqQ6zvMov9sYj6ZqWAsTxR/MNGe3DNgu1zWQg8veNCYtj1rNGhNS3eZNUMAa8uM2dXIphGTP53Xow== + dependencies: + "@chakra-ui/descendant" "3.0.13" + "@chakra-ui/react-children-utils" "2.0.6" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-use-controllable-state" "2.0.8" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/popover@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@chakra-ui/popover/-/popover-2.1.8.tgz#e906ce0533693d735b6e13a3a6ffe16d8e0a9ab4" + integrity sha512-ob7fAz+WWmXIq7iGHVB3wDKzZTj+T+noYBT/U1Q+jIf+jMr2WOpJLTfb0HTZcfhvn4EBFlfBg7Wk5qbXNaOn7g== + dependencies: + "@chakra-ui/close-button" "2.0.17" + "@chakra-ui/lazy-utils" "2.0.5" + "@chakra-ui/popper" "3.0.13" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-types" "2.0.7" + "@chakra-ui/react-use-animation-state" "2.0.8" + "@chakra-ui/react-use-disclosure" "2.0.8" + "@chakra-ui/react-use-focus-effect" "2.0.9" + "@chakra-ui/react-use-focus-on-pointer-down" "2.0.6" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/popper@3.0.13": + version "3.0.13" + resolved "https://registry.yarnpkg.com/@chakra-ui/popper/-/popper-3.0.13.tgz#914a90e9ae2b83d39a0f40a5454267f1266a2cb6" + integrity sha512-FwtmYz80Ju8oK3Z1HQfisUE7JIMmDsCQsRBu6XuJ3TFQnBHit73yjZmxKjuRJ4JgyT4WBnZoTF3ATbRKSagBeg== + dependencies: + "@chakra-ui/react-types" "2.0.7" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@popperjs/core" "^2.9.3" + +"@chakra-ui/portal@2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@chakra-ui/portal/-/portal-2.0.15.tgz#21e1f97c4407fc15df8c365cb5cf799dac73ce41" + integrity sha512-z8v7K3j1/nMuBzp2+wRIIw7s/eipVtnXLdjK5yqbMxMRa44E8Mu5VNJLz3aQFLHXEUST+ifqrjImQeli9do6LQ== + dependencies: + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-use-safe-layout-effect" "2.0.5" + +"@chakra-ui/progress@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/progress/-/progress-2.1.5.tgz#eb6a47adf2bff93971262d163461d390782a04ff" + integrity sha512-jj5Vp4lxUchuwp4RPCepM0yAyKi344bgsOd3Apd+ldxclDcewPc82fbwDu7g/Xv27LqJkT+7E/SlQy04wGrk0g== + dependencies: + "@chakra-ui/react-context" "2.0.7" + +"@chakra-ui/provider@2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@chakra-ui/provider/-/provider-2.1.2.tgz#b025cb718826b003b3c9535b6961e8f3be70ebd5" + integrity sha512-4lLlz8QuJv00BhfyKzWpzfoti9MDOdJ/MqXixJV/EZ02RMBOdE9qy9bSz/WckPC2MVhtRUuwMkxH+0QY21PXuw== + dependencies: + "@chakra-ui/css-reset" "2.0.12" + "@chakra-ui/portal" "2.0.15" + "@chakra-ui/react-env" "3.0.0" + "@chakra-ui/system" "2.5.1" + "@chakra-ui/utils" "2.0.15" + +"@chakra-ui/radio@2.0.19": + version "2.0.19" + resolved "https://registry.yarnpkg.com/@chakra-ui/radio/-/radio-2.0.19.tgz#8d5c02eae8eddbced4476b1b50921ade62f0a744" + integrity sha512-PlJiV59eGSmeKP4v/4+ccQUWGRd0cjPKkj/p3L+UbOf8pl9dWm8y9kIeL5TYbghQSDv0nzkrH4+yMnnDTZjdMQ== + dependencies: + "@chakra-ui/form-control" "2.0.17" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-types" "2.0.7" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + "@zag-js/focus-visible" "0.2.1" + +"@chakra-ui/react-children-utils@2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-children-utils/-/react-children-utils-2.0.6.tgz#6c480c6a60678fcb75cb7d57107c7a79e5179b92" + integrity sha512-QVR2RC7QsOsbWwEnq9YduhpqSFnZGvjjGREV8ygKi8ADhXh93C8azLECCUVgRJF2Wc+So1fgxmjLcbZfY2VmBA== + +"@chakra-ui/react-context@2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-context/-/react-context-2.0.7.tgz#f79a2b072d04d4280ec8799dc03a8a1af521ca2e" + integrity sha512-i7EGmSU+h2GB30cwrKB4t1R5BMHyGoJM5L2Zz7b+ZUX4aAqyPcfe97wPiQB6Rgr1ImGXrUeov4CDVrRZ2FPgLQ== + +"@chakra-ui/react-env@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-env/-/react-env-3.0.0.tgz#2c3c9dc0e529b9b474a386a2b24988317b2a0811" + integrity sha512-tfMRO2v508HQWAqSADFrwZgR9oU10qC97oV6zGbjHh9ALP0/IcFR+Bi71KRTveDTm85fMeAzZYGj57P3Dsipkw== + dependencies: + "@chakra-ui/react-use-safe-layout-effect" "2.0.5" + +"@chakra-ui/react-types@2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-types/-/react-types-2.0.7.tgz#799c166a44882b23059c8f510eac9bd5d0869ac4" + integrity sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ== + +"@chakra-ui/react-use-animation-state@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-animation-state/-/react-use-animation-state-2.0.8.tgz#544ef3007498d4a0629b9d1916056ddaf59aa286" + integrity sha512-xv9zSF2Rd1mHWQ+m5DLBWeh4atF8qrNvsOs3MNrvxKYBS3f79N3pqcQGrWAEvirXWXfiCeje2VAkEggqFRIo+Q== + dependencies: + "@chakra-ui/dom-utils" "2.0.6" + "@chakra-ui/react-use-event-listener" "2.0.7" + +"@chakra-ui/react-use-callback-ref@2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-callback-ref/-/react-use-callback-ref-2.0.7.tgz#9b844a81037d0ecaaa8031979fa050165635e211" + integrity sha512-YjT76nTpfHAK5NxplAlZsQwNju5KmQExnqsWNPFeOR6vvbC34+iPSTr+r91i1Hdy7gBSbevsOsd5Wm6RN3GuMw== + +"@chakra-ui/react-use-controllable-state@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-controllable-state/-/react-use-controllable-state-2.0.8.tgz#6b71187e03be632c244dde9f16ed685428087ec9" + integrity sha512-F7rdCbLEmRjwwODqWZ3y+mKgSSHPcLQxeUygwk1BkZPXbKkJJKymOIjIynil2cbH7ku3hcSIWRvuhpCcfQWJ7Q== + dependencies: + "@chakra-ui/react-use-callback-ref" "2.0.7" + +"@chakra-ui/react-use-disclosure@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-disclosure/-/react-use-disclosure-2.0.8.tgz#e0e0445afc6d6d96bb262b99751e675034c31497" + integrity sha512-2ir/mHe1YND40e+FyLHnDsnDsBQPwzKDLzfe9GZri7y31oU83JSbHdlAXAhp3bpjohslwavtRCp+S/zRxfO9aQ== + dependencies: + "@chakra-ui/react-use-callback-ref" "2.0.7" + +"@chakra-ui/react-use-event-listener@2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-event-listener/-/react-use-event-listener-2.0.7.tgz#ed08164164e79183d876eeb71e12c6bfaca3ad17" + integrity sha512-4wvpx4yudIO3B31pOrXuTHDErawmwiXnvAN7gLEOVREi16+YGNcFnRJ5X5nRrmB7j2MDUtsEDpRBFfw5Z9xQ5g== + dependencies: + "@chakra-ui/react-use-callback-ref" "2.0.7" + +"@chakra-ui/react-use-focus-effect@2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-focus-effect/-/react-use-focus-effect-2.0.9.tgz#9f94c0cb54e6e14ac9f048ca4d32a1fdcea067c1" + integrity sha512-20nfNkpbVwyb41q9wxp8c4jmVp6TUGAPE3uFTDpiGcIOyPW5aecQtPmTXPMJH+2aa8Nu1wyoT1btxO+UYiQM3g== + dependencies: + "@chakra-ui/dom-utils" "2.0.6" + "@chakra-ui/react-use-event-listener" "2.0.7" + "@chakra-ui/react-use-safe-layout-effect" "2.0.5" + "@chakra-ui/react-use-update-effect" "2.0.7" + +"@chakra-ui/react-use-focus-on-pointer-down@2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-focus-on-pointer-down/-/react-use-focus-on-pointer-down-2.0.6.tgz#13330eb518c17e591c908cb8f4a30d43a978e3f2" + integrity sha512-OigXiLRVySn3tyVqJ/rn57WGuukW8TQe8fJYiLwXbcNyAMuYYounvRxvCy2b53sQ7QIZamza0N0jhirbH5FNoQ== + dependencies: + "@chakra-ui/react-use-event-listener" "2.0.7" + +"@chakra-ui/react-use-interval@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-interval/-/react-use-interval-2.0.5.tgz#c1a0043bf188b19b790a27668f4e860391335a60" + integrity sha512-1nbdwMi2K87V6p5f5AseOKif2CkldLaJlq1TOqaPRwb7v3aU9rltBtYdf+fIyuHSToNJUV6wd9budCFdLCl3Fg== + dependencies: + "@chakra-ui/react-use-callback-ref" "2.0.7" + +"@chakra-ui/react-use-latest-ref@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-latest-ref/-/react-use-latest-ref-2.0.5.tgz#b61dc4dadda340f7b14df0ec1d50ab2e507b3b3e" + integrity sha512-3mIuFzMyIo3Ok/D8uhV9voVg7KkrYVO/pwVvNPJOHsDQqCA6DpYE4WDsrIx+fVcwad3Ta7SupexR5PoI+kq6QQ== + +"@chakra-ui/react-use-merge-refs@2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-merge-refs/-/react-use-merge-refs-2.0.7.tgz#1a1fe800fb5501ec3da4088fbac78c03bbad13a7" + integrity sha512-zds4Uhsc+AMzdH8JDDkLVet9baUBgtOjPbhC5r3A0ZXjZvGhCztFAVE3aExYiVoMPoHLKbLcqvCWE6ioFKz1lw== + +"@chakra-ui/react-use-outside-click@2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-outside-click/-/react-use-outside-click-2.0.7.tgz#56c668f020fbc6331db4c3b61c8b845a68c4a134" + integrity sha512-MsAuGLkwYNxNJ5rb8lYNvXApXxYMnJ3MzqBpQj1kh5qP/+JSla9XMjE/P94ub4fSEttmNSqs43SmPPrmPuihsQ== + dependencies: + "@chakra-ui/react-use-callback-ref" "2.0.7" + +"@chakra-ui/react-use-pan-event@2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-pan-event/-/react-use-pan-event-2.0.9.tgz#0ff33a285e75a692d1ed52dbb9f3046a593b8004" + integrity sha512-xu35QXkiyrgsHUOnctl+SwNcwf9Rl62uYE5y8soKOZdBm8E+FvZIt2hxUzK1EoekbJCMzEZ0Yv1ZQCssVkSLaQ== + dependencies: + "@chakra-ui/event-utils" "2.0.8" + "@chakra-ui/react-use-latest-ref" "2.0.5" + framesync "6.1.2" + +"@chakra-ui/react-use-previous@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-previous/-/react-use-previous-2.0.5.tgz#65836cc81e3a1bf4252cd08a71094f1be827b56c" + integrity sha512-BIZgjycPE4Xr+MkhKe0h67uHXzQQkBX/u5rYPd65iMGdX1bCkbE0oorZNfOHLKdTmnEb4oVsNvfN6Rfr+Mnbxw== + +"@chakra-ui/react-use-safe-layout-effect@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-safe-layout-effect/-/react-use-safe-layout-effect-2.0.5.tgz#6cf388c37fd2a42b5295a292e149b32f860a00a7" + integrity sha512-MwAQBz3VxoeFLaesaSEN87reVNVbjcQBDex2WGexAg6hUB6n4gc1OWYH/iXp4tzp4kuggBNhEHkk9BMYXWfhJQ== + +"@chakra-ui/react-use-size@2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-size/-/react-use-size-2.0.9.tgz#00717867b98a24c3bdcfaa0c3e70732404193486" + integrity sha512-Jce7QmO1jlQZq+Y77VKckWzroRnajChzUQ8xhLQZO6VbYvrpg3cu+X2QCz3G+MZzB+1/hnvvAqmZ+uJLd8rEJg== + dependencies: + "@zag-js/element-size" "0.3.1" + +"@chakra-ui/react-use-timeout@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-timeout/-/react-use-timeout-2.0.5.tgz#13c4e48e48d4b84ce1e062f0f1c9ec401ece78c9" + integrity sha512-QqmB+jVphh3h/CS60PieorpY7UqSPkrQCB7f7F+i9vwwIjtP8fxVHMmkb64K7VlzQiMPzv12nlID5dqkzlv0mw== + dependencies: + "@chakra-ui/react-use-callback-ref" "2.0.7" + +"@chakra-ui/react-use-update-effect@2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-use-update-effect/-/react-use-update-effect-2.0.7.tgz#f94b7975ebb150c03d410e754b54f0e9dd263134" + integrity sha512-vBM2bmmM83ZdDtasWv3PXPznpTUd+FvqBC8J8rxoRmvdMEfrxTiQRBJhiGHLpS9BPLLPQlosN6KdFU97csB6zg== + +"@chakra-ui/react-utils@2.0.12": + version "2.0.12" + resolved "https://registry.yarnpkg.com/@chakra-ui/react-utils/-/react-utils-2.0.12.tgz#d6b773b9a5b2e51dce61f51ac8a0e9a0f534f479" + integrity sha512-GbSfVb283+YA3kA8w8xWmzbjNWk14uhNpntnipHCftBibl0lxtQ9YqMFQLwuFOO0U2gYVocszqqDWX+XNKq9hw== + dependencies: + "@chakra-ui/utils" "2.0.15" + +"@chakra-ui/react@^2.4.9": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@chakra-ui/react/-/react-2.5.1.tgz#05414db2b512bd4402e42eecc6b915d85102c576" + integrity sha512-ugkaqfcNMb9L4TkalWiF3rnqfr0TlUUD46JZaDIZiORVisaSwXTZTQrVfG40VghhaJT28rnC5WtiE8kd567ZBQ== + dependencies: + "@chakra-ui/accordion" "2.1.9" + "@chakra-ui/alert" "2.0.17" + "@chakra-ui/avatar" "2.2.5" + "@chakra-ui/breadcrumb" "2.1.4" + "@chakra-ui/button" "2.0.16" + "@chakra-ui/card" "2.1.6" + "@chakra-ui/checkbox" "2.2.10" + "@chakra-ui/close-button" "2.0.17" + "@chakra-ui/control-box" "2.0.13" + "@chakra-ui/counter" "2.0.14" + "@chakra-ui/css-reset" "2.0.12" + "@chakra-ui/editable" "2.0.19" + "@chakra-ui/focus-lock" "2.0.16" + "@chakra-ui/form-control" "2.0.17" + "@chakra-ui/hooks" "2.1.6" + "@chakra-ui/icon" "3.0.16" + "@chakra-ui/image" "2.0.15" + "@chakra-ui/input" "2.0.20" + "@chakra-ui/layout" "2.1.16" + "@chakra-ui/live-region" "2.0.13" + "@chakra-ui/media-query" "3.2.12" + "@chakra-ui/menu" "2.1.9" + "@chakra-ui/modal" "2.2.9" + "@chakra-ui/number-input" "2.0.18" + "@chakra-ui/pin-input" "2.0.19" + "@chakra-ui/popover" "2.1.8" + "@chakra-ui/popper" "3.0.13" + "@chakra-ui/portal" "2.0.15" + "@chakra-ui/progress" "2.1.5" + "@chakra-ui/provider" "2.1.2" + "@chakra-ui/radio" "2.0.19" + "@chakra-ui/react-env" "3.0.0" + "@chakra-ui/select" "2.0.18" + "@chakra-ui/skeleton" "2.0.24" + "@chakra-ui/slider" "2.0.21" + "@chakra-ui/spinner" "2.0.13" + "@chakra-ui/stat" "2.0.17" + "@chakra-ui/styled-system" "2.6.1" + "@chakra-ui/switch" "2.0.22" + "@chakra-ui/system" "2.5.1" + "@chakra-ui/table" "2.0.16" + "@chakra-ui/tabs" "2.1.8" + "@chakra-ui/tag" "2.0.17" + "@chakra-ui/textarea" "2.0.18" + "@chakra-ui/theme" "2.2.5" + "@chakra-ui/theme-utils" "2.0.11" + "@chakra-ui/toast" "6.0.1" + "@chakra-ui/tooltip" "2.2.6" + "@chakra-ui/transition" "2.0.15" + "@chakra-ui/utils" "2.0.15" + "@chakra-ui/visually-hidden" "2.0.15" + +"@chakra-ui/select@2.0.18": + version "2.0.18" + resolved "https://registry.yarnpkg.com/@chakra-ui/select/-/select-2.0.18.tgz#4eb6092610067c1b4131353fe39b4466e251395b" + integrity sha512-1d2lUT5LM6oOs5x4lzBh4GFDuXX62+lr+sgV7099g951/5UNbb0CS2hSZHsO7yZThLNbr7QTWZvAOAayVcGzdw== + dependencies: + "@chakra-ui/form-control" "2.0.17" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/shared-utils@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/shared-utils/-/shared-utils-2.0.5.tgz#cb2b49705e113853647f1822142619570feba081" + integrity sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q== + +"@chakra-ui/skeleton@2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@chakra-ui/skeleton/-/skeleton-2.0.24.tgz#dc9dcca6fc43005544fabfd38a444943b0a29cad" + integrity sha512-1jXtVKcl/jpbrJlc/TyMsFyI651GTXY5ma30kWyTXoby2E+cxbV6OR8GB/NMZdGxbQBax8/VdtYVjI0n+OBqWA== + dependencies: + "@chakra-ui/media-query" "3.2.12" + "@chakra-ui/react-use-previous" "2.0.5" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/slider@2.0.21": + version "2.0.21" + resolved "https://registry.yarnpkg.com/@chakra-ui/slider/-/slider-2.0.21.tgz#f65b15bf0d5f827699ff9a2d6faee35006e2bfce" + integrity sha512-Mm76yJxEqJl21+3waEcKg3tM8Y4elJ7mcViN6Brj35PTfzUJfSJxeBGo1nLPJ+X5jLj7o/L4kfBmUk3lY4QYEQ== + dependencies: + "@chakra-ui/number-utils" "2.0.7" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-types" "2.0.7" + "@chakra-ui/react-use-callback-ref" "2.0.7" + "@chakra-ui/react-use-controllable-state" "2.0.8" + "@chakra-ui/react-use-latest-ref" "2.0.5" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/react-use-pan-event" "2.0.9" + "@chakra-ui/react-use-size" "2.0.9" + "@chakra-ui/react-use-update-effect" "2.0.7" + +"@chakra-ui/spinner@2.0.13": + version "2.0.13" + resolved "https://registry.yarnpkg.com/@chakra-ui/spinner/-/spinner-2.0.13.tgz#64fe919c18305c653ced046e25d5883ee4c1e7d7" + integrity sha512-T1/aSkVpUIuiYyrjfn1+LsQEG7Onbi1UE9ccS/evgf61Dzy4GgTXQUnDuWFSgpV58owqirqOu6jn/9eCwDlzlg== + dependencies: + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/stat@2.0.17": + version "2.0.17" + resolved "https://registry.yarnpkg.com/@chakra-ui/stat/-/stat-2.0.17.tgz#2cd712cc7e0d58d9cbd542deea911f1b0925074f" + integrity sha512-PhD+5oVLWjQmGLfeZSmexp3AtLcaggWBwoMZ4z8QMZIQzf/fJJWMk0bMqxlpTv8ORDkfY/4ImuFB/RJHvcqlcA== + dependencies: + "@chakra-ui/icon" "3.0.16" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/styled-system@2.6.1": + version "2.6.1" + resolved "https://registry.yarnpkg.com/@chakra-ui/styled-system/-/styled-system-2.6.1.tgz#302d496d34c0b7b30c646a7e3c9b113a2f4588da" + integrity sha512-jy/1dVi1LxjoRCm+Eo5mqBgvPy5SCWMlIcz6GbIZBDpkGeKZwtqrZLjekxxLBCy8ORY+kJlUB0FT6AzVR/1tjw== + dependencies: + "@chakra-ui/shared-utils" "2.0.5" + csstype "^3.0.11" + lodash.mergewith "4.6.2" + +"@chakra-ui/switch@2.0.22": + version "2.0.22" + resolved "https://registry.yarnpkg.com/@chakra-ui/switch/-/switch-2.0.22.tgz#7b35e2b10ea4cf91fb49f5175b4335c61dcd25b3" + integrity sha512-+/Yy6y7VFD91uSPruF8ZvePi3tl5D8UNVATtWEQ+QBI92DLSM+PtgJ2F0Y9GMZ9NzMxpZ80DqwY7/kqcPCfLvw== + dependencies: + "@chakra-ui/checkbox" "2.2.10" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/system@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@chakra-ui/system/-/system-2.5.1.tgz#bc03a11ae31e795966c7618280548d5cd866f47e" + integrity sha512-4+86OrcSoq7lGkm5fh+sJ3IWXSTzjz+HOllRbCW2Rtnmcg7ritiXVNV2VygEg2DrCcx5+tNqRHDM764zW+AEug== + dependencies: + "@chakra-ui/color-mode" "2.1.12" + "@chakra-ui/object-utils" "2.0.8" + "@chakra-ui/react-utils" "2.0.12" + "@chakra-ui/styled-system" "2.6.1" + "@chakra-ui/theme-utils" "2.0.11" + "@chakra-ui/utils" "2.0.15" + react-fast-compare "3.2.0" + +"@chakra-ui/table@2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@chakra-ui/table/-/table-2.0.16.tgz#e69736cba5cfb218c5e40592ad9280c6e32f6fe7" + integrity sha512-vWDXZ6Ad3Aj66curp1tZBHvCfQHX2FJ4ijLiqGgQszWFIchfhJ5vMgEBJaFMZ+BN1draAjuRTZqaQefOApzvRg== + dependencies: + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/tabs@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@chakra-ui/tabs/-/tabs-2.1.8.tgz#e83071380f9a3633810308d45de51be7a74f5eb9" + integrity sha512-B7LeFN04Ny2jsSy5TFOQxnbZ6ITxGxLxsB2PE0vvQjMSblBrUryOxdjw80HZhfiw6od0ikK9CeKQOIt9QCguSw== + dependencies: + "@chakra-ui/clickable" "2.0.14" + "@chakra-ui/descendant" "3.0.13" + "@chakra-ui/lazy-utils" "2.0.5" + "@chakra-ui/react-children-utils" "2.0.6" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-use-controllable-state" "2.0.8" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/react-use-safe-layout-effect" "2.0.5" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/tag@2.0.17": + version "2.0.17" + resolved "https://registry.yarnpkg.com/@chakra-ui/tag/-/tag-2.0.17.tgz#97adb86db190ddb3526060b78c590392e0ac8b4c" + integrity sha512-A47zE9Ft9qxOJ+5r1cUseKRCoEdqCRzFm0pOtZgRcckqavglk75Xjgz8HbBpUO2zqqd49MlqdOwR8o87fXS1vg== + dependencies: + "@chakra-ui/icon" "3.0.16" + "@chakra-ui/react-context" "2.0.7" + +"@chakra-ui/textarea@2.0.18": + version "2.0.18" + resolved "https://registry.yarnpkg.com/@chakra-ui/textarea/-/textarea-2.0.18.tgz#da6d629b465f65bbc7b48039c2e48a4ae1d853b4" + integrity sha512-aGHHb29vVifO0OtcK/k8cMykzjOKo/coDTU0NJqz7OOLAWIMNV2eGenvmO1n9tTZbmbqHiX+Sa1nPRX+pd14lg== + dependencies: + "@chakra-ui/form-control" "2.0.17" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/theme-tools@2.0.17": + version "2.0.17" + resolved "https://registry.yarnpkg.com/@chakra-ui/theme-tools/-/theme-tools-2.0.17.tgz#9496094336c9480f950c8d7ab6e05f1c19caa955" + integrity sha512-Auu38hnihlJZQcPok6itRDBbwof3TpXGYtDPnOvrq4Xp7jnab36HLt7KEXSDPXbtOk3ZqU99pvI1en5LbDrdjg== + dependencies: + "@chakra-ui/anatomy" "2.1.2" + "@chakra-ui/shared-utils" "2.0.5" + color2k "^2.0.0" + +"@chakra-ui/theme-utils@2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@chakra-ui/theme-utils/-/theme-utils-2.0.11.tgz#c01b1d14fdd63326d1ad11fd8f0872921ea43872" + integrity sha512-lBAay6Sq3/fl7exd3mFxWAbzgdQowytor0fnlHrpNStn1HgFjXukwsf6356XQOie2Vd8qaMM7qZtMh4AiC0dcg== + dependencies: + "@chakra-ui/shared-utils" "2.0.5" + "@chakra-ui/styled-system" "2.6.1" + "@chakra-ui/theme" "2.2.5" + lodash.mergewith "4.6.2" + +"@chakra-ui/theme@2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/theme/-/theme-2.2.5.tgz#18ed1755ff27c1ff1f1a77083ffc546c361c926e" + integrity sha512-hYASZMwu0NqEv6PPydu+F3I+kMNd44yR4TwjR/lXBz/LEh64L6UPY6kQjebCfgdVtsGdl3HKg+eLlfa7SvfRgw== + dependencies: + "@chakra-ui/anatomy" "2.1.2" + "@chakra-ui/shared-utils" "2.0.5" + "@chakra-ui/theme-tools" "2.0.17" + +"@chakra-ui/toast@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@chakra-ui/toast/-/toast-6.0.1.tgz#726b67a57cdd592320bb3f450c66d007a2a1d902" + integrity sha512-ej2kJXvu/d2h6qnXU5D8XTyw0qpsfmbiU7hUffo/sPxkz89AUOQ08RUuUmB1ssW/FZcQvNMJ5WgzCTKHGBxtxw== + dependencies: + "@chakra-ui/alert" "2.0.17" + "@chakra-ui/close-button" "2.0.17" + "@chakra-ui/portal" "2.0.15" + "@chakra-ui/react-context" "2.0.7" + "@chakra-ui/react-use-timeout" "2.0.5" + "@chakra-ui/react-use-update-effect" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + "@chakra-ui/styled-system" "2.6.1" + "@chakra-ui/theme" "2.2.5" + +"@chakra-ui/tooltip@2.2.6": + version "2.2.6" + resolved "https://registry.yarnpkg.com/@chakra-ui/tooltip/-/tooltip-2.2.6.tgz#a38f9ff2dd8a574c8cf49526c3846533455f8ddd" + integrity sha512-4cbneidZ5+HCWge3OZzewRQieIvhDjSsl+scrl4Scx7E0z3OmqlTIESU5nGIZDBLYqKn/UirEZhqaQ33FOS2fw== + dependencies: + "@chakra-ui/popper" "3.0.13" + "@chakra-ui/portal" "2.0.15" + "@chakra-ui/react-types" "2.0.7" + "@chakra-ui/react-use-disclosure" "2.0.8" + "@chakra-ui/react-use-event-listener" "2.0.7" + "@chakra-ui/react-use-merge-refs" "2.0.7" + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/transition@2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@chakra-ui/transition/-/transition-2.0.15.tgz#c640df2ea82f5ad58c55a6e1a7c338f377cb96d8" + integrity sha512-o9LBK/llQfUDHF/Ty3cQ6nShpekKTqHUoJlUOzNKhoTsNpoRerr9v0jwojrX1YI02KtVjfhFU6PiqXlDfREoNw== + dependencies: + "@chakra-ui/shared-utils" "2.0.5" + +"@chakra-ui/utils@2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@chakra-ui/utils/-/utils-2.0.15.tgz#bd800b1cff30eb5a5e8c36fa039f49984b4c5e4a" + integrity sha512-El4+jL0WSaYYs+rJbuYFDbjmfCcfGDmRY95GO4xwzit6YAPZBLcR65rOEwLps+XWluZTy1xdMrusg/hW0c1aAA== + dependencies: + "@types/lodash.mergewith" "4.6.7" + css-box-model "1.2.1" + framesync "6.1.2" + lodash.mergewith "4.6.2" + +"@chakra-ui/visually-hidden@2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@chakra-ui/visually-hidden/-/visually-hidden-2.0.15.tgz#60df64e0ab97d95fee4e6c61ccabd15fd5ace398" + integrity sha512-WWULIiucYRBIewHKFA7BssQ2ABLHLVd9lrUo3N3SZgR0u4ZRDDVEUNOy+r+9ruDze8+36dGbN9wsN1IdELtdOw== + +"@emotion/babel-plugin@^11.10.6": + version "11.10.6" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.10.6.tgz#a68ee4b019d661d6f37dec4b8903255766925ead" + integrity sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.0" + "@emotion/memoize" "^0.8.0" + "@emotion/serialize" "^1.1.1" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.1.3" + +"@emotion/cache@^11.10.5": + version "11.10.5" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.10.5.tgz#c142da9351f94e47527ed458f7bbbbe40bb13c12" + integrity sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA== + dependencies: + "@emotion/memoize" "^0.8.0" + "@emotion/sheet" "^1.2.1" + "@emotion/utils" "^1.2.0" + "@emotion/weak-memoize" "^0.3.0" + stylis "4.1.3" + +"@emotion/hash@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.0.tgz#c5153d50401ee3c027a57a177bc269b16d889cb7" + integrity sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ== + +"@emotion/is-prop-valid@^0.8.2": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" + integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + dependencies: + "@emotion/memoize" "0.7.4" + +"@emotion/is-prop-valid@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz#7f2d35c97891669f7e276eb71c83376a5dc44c83" + integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg== + dependencies: + "@emotion/memoize" "^0.8.0" + +"@emotion/memoize@0.7.4": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" + integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== + +"@emotion/memoize@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" + integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== + +"@emotion/react@^11.10.5": + version "11.10.6" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.10.6.tgz#dbe5e650ab0f3b1d2e592e6ab1e006e75fd9ac11" + integrity sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.10.6" + "@emotion/cache" "^11.10.5" + "@emotion/serialize" "^1.1.1" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" + "@emotion/utils" "^1.2.0" + "@emotion/weak-memoize" "^0.3.0" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.1.tgz#0595701b1902feded8a96d293b26be3f5c1a5cf0" + integrity sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA== + dependencies: + "@emotion/hash" "^0.9.0" + "@emotion/memoize" "^0.8.0" + "@emotion/unitless" "^0.8.0" + "@emotion/utils" "^1.2.0" + csstype "^3.0.2" + +"@emotion/sheet@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.1.tgz#0767e0305230e894897cadb6c8df2c51e61a6c2c" + integrity sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA== + +"@emotion/styled@^11.10.5": + version "11.10.6" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.10.6.tgz#d886afdc51ef4d66c787ebde848f3cc8b117ebba" + integrity sha512-OXtBzOmDSJo5Q0AFemHCfl+bUueT8BIcPSxu0EGTpGk6DmI5dnhSzQANm1e1ze0YZL7TDyAyy6s/b/zmGOS3Og== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.10.6" + "@emotion/is-prop-valid" "^1.2.0" + "@emotion/serialize" "^1.1.1" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" + "@emotion/utils" "^1.2.0" + +"@emotion/unitless@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.0.tgz#a4a36e9cbdc6903737cd20d38033241e1b8833db" + integrity sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw== "@emotion/use-insertion-effect-with-fallbacks@^1.0.0": version "1.0.0" - resolved "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz#ffadaec35dbb7885bd54de3fa267ab2f860294df" integrity sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A== -"@esbuild/android-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" - integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== - -"@esbuild/android-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" - integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== - -"@esbuild/android-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" - integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== - -"@esbuild/darwin-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz" - integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== - -"@esbuild/darwin-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" - integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== - -"@esbuild/freebsd-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" - integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== - -"@esbuild/freebsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" - integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== - -"@esbuild/linux-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" - integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== - -"@esbuild/linux-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" - integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== - -"@esbuild/linux-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" - integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== - -"@esbuild/linux-loong64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" - integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== - -"@esbuild/linux-mips64el@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" - integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== - -"@esbuild/linux-ppc64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" - integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== - -"@esbuild/linux-riscv64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" - integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== - -"@esbuild/linux-s390x@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" - integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== - -"@esbuild/linux-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" - integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== - -"@esbuild/netbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" - integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== - -"@esbuild/openbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" - integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== - -"@esbuild/sunos-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" - integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== - -"@esbuild/win32-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" - integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== - -"@esbuild/win32-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" - integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== - -"@esbuild/win32-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" - integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" +"@emotion/utils@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.0.tgz#9716eaccbc6b5ded2ea5a90d65562609aab0f561" + integrity sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw== + +"@emotion/weak-memoize@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb" + integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== "@eslint/eslintrc@^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff" integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A== dependencies: ajv "^6.12.4" @@ -2096,29 +1926,12 @@ "@eslint/js@8.35.0": version "8.35.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7" integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw== -"@fal-works/esbuild-plugin-global-externals@^2.1.2": - version "2.1.2" - resolved "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz" - integrity sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ== - -"@fastify/busboy@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" - integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== - -"@headlessui/react@^1.7.15": - version "1.7.15" - resolved "https://registry.npmjs.org/@headlessui/react/-/react-1.7.15.tgz" - integrity sha512-OTO0XtoRQ6JPB1cKNFYBZv2Q0JMqMGNhYP1CjPvcJvjz8YGokz8oAj89HIYZGN0gZzn/4kk9iUpmMF4Q21Gsqw== - dependencies: - client-only "^0.0.1" - "@humanwhocodes/config-array@^0.11.8": version "0.11.8" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== dependencies: "@humanwhocodes/object-schema" "^1.2.1" @@ -2127,101 +1940,25 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/schemas@^29.6.0": - version "29.6.0" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz" - integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/transform@^29.3.1": - version "29.6.1" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.6.1.tgz" - integrity sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.1" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.6.1" - jest-regex-util "^29.4.3" - jest-util "^29.6.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@jest/types@^29.6.1": - version "29.6.1" - resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz" - integrity sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw== - dependencies: - "@jest/schemas" "^29.6.0" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== dependencies: "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.3" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: "@jridgewell/set-array" "^1.0.1" @@ -2230,107 +1967,47 @@ "@jridgewell/resolve-uri@3.1.0": version "3.1.0" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/source-map@^0.3.3": - version "0.3.5" - resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz" - integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - "@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18": - version "0.3.18" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.17" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== dependencies: "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@juggle/resize-observer@^3.3.1": - version "3.4.0" - resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" - integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== - "@lokesh.dhakar/quantize@^1.3.0": version "1.3.0" - resolved "https://registry.npmjs.org/@lokesh.dhakar/quantize/-/quantize-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/@lokesh.dhakar/quantize/-/quantize-1.3.0.tgz#04476889953aca94614fbc79e9a43adc7979179a" integrity sha512-4KBSyaMj65d8A+2vnzLxtHFu4OmBU4IKO0yLxZ171Itdf9jGV4w+WbG7VsKts2jUdRkFSzsZqpZOz6hTB3qGAw== -"@mdx-js/react@^2.1.5": - version "2.3.0" - resolved "https://registry.npmjs.org/@mdx-js/react/-/react-2.3.0.tgz" - integrity sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g== - dependencies: - "@types/mdx" "^2.0.0" - "@types/react" ">=16" - -"@mswjs/cookies@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@mswjs/cookies/-/cookies-0.2.2.tgz#b4e207bf6989e5d5427539c2443380a33ebb922b" - integrity sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g== - dependencies: - "@types/set-cookie-parser" "^2.4.0" - set-cookie-parser "^2.4.6" - -"@mswjs/interceptors@^0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@mswjs/interceptors/-/interceptors-0.17.10.tgz#857b41f30e2b92345ed9a4e2b1d0a08b8b6fcad4" - integrity sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw== - dependencies: - "@open-draft/until" "^1.0.3" - "@types/debug" "^4.1.7" - "@xmldom/xmldom" "^0.8.3" - debug "^4.3.3" - headers-polyfill "3.2.5" - outvariant "^1.2.1" - strict-event-emitter "^0.2.4" - web-encoding "^1.1.5" - -"@ndelangen/get-tarball@^3.0.7": - version "3.0.9" - resolved "https://registry.npmjs.org/@ndelangen/get-tarball/-/get-tarball-3.0.9.tgz" - integrity sha512-9JKTEik4vq+yGosHYhZ1tiH/3WpUS0Nh0kej4Agndhox8pAdWhEx5knFVRcb/ya9knCRCs1rPxNrSXTDdfVqpA== - dependencies: - gunzip-maybe "^1.4.2" - pump "^3.0.0" - tar-fs "^2.1.1" - "@next/env@13.4.7": version "13.4.7" - resolved "https://registry.npmjs.org/@next/env/-/env-13.4.7.tgz" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.7.tgz#ca12d341edb128ca70384635bd2794125ffb1c01" integrity sha512-ZlbiFulnwiFsW9UV1ku1OvX/oyIPLtMk9p/nnvDSwI0s7vSoZdRtxXNsaO+ZXrLv/pMbXVGq4lL8TbY9iuGmVw== "@next/eslint-plugin-next@13.2.1": version "13.2.1" - resolved "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.2.1.tgz" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.2.1.tgz#58dea4d53c0adfc59c10195f51eb8d3575fce414" integrity sha512-r0i5rcO6SMAZtqiGarUVMr3k256X0R0j6pEkKg4PxqUW+hG0qgMxRVAJsuoRG5OBFkCOlSfWZJ0mP9fQdCcyNg== dependencies: glob "7.1.7" "@next/swc-darwin-arm64@13.4.7": version "13.4.7" - resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.7.tgz" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.7.tgz#5e36c26dda5b0bc0ea15d8555d0abd71a1ef4b5d" integrity sha512-VZTxPv1b59KGiv/pZHTO5Gbsdeoxcj2rU2cqJu03btMhHpn3vwzEK0gUSVC/XW96aeGO67X+cMahhwHzef24/w== "@next/swc-darwin-x64@13.4.7": @@ -2373,14 +2050,9 @@ resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.7.tgz#5137780f58d7f0230adc293a0429821bfa7d8c21" integrity sha512-sW9Yt36Db1nXJL+mTr2Wo0y+VkPWeYhygvcHj1FF0srVtV+VoDjxleKtny21QHaG05zdeZnw2fCtf2+dEqgwqA== -"@nicolo-ribaudo/semver-v6@^6.3.3": - version "6.3.3" - resolved "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz" - integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -2388,25 +2060,20 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@open-draft/until@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@open-draft/until/-/until-1.0.3.tgz#db9cc719191a62e7d9200f6e7bab21c5b848adca" - integrity sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q== - "@pkgr/utils@^2.3.1": version "2.3.1" - resolved "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.3.1.tgz#0a9b06ffddee364d6642b3cd562ca76f55b34a03" integrity sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw== dependencies: cross-spawn "^7.0.3" @@ -2416,945 +2083,59 @@ tiny-glob "^0.2.9" tslib "^2.4.0" -"@pmmmwh/react-refresh-webpack-plugin@^0.5.5": - version "0.5.10" - resolved "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz" - integrity sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA== - dependencies: - ansi-html-community "^0.0.8" - common-path-prefix "^3.0.0" - core-js-pure "^3.23.3" - error-stack-parser "^2.0.6" - find-up "^5.0.0" - html-entities "^2.1.0" - loader-utils "^2.0.4" - schema-utils "^3.0.0" - source-map "^0.7.3" +"@popperjs/core@^2.9.3": + version "2.11.6" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" + integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== "@rushstack/eslint-patch@^1.1.3": version "1.2.0" - resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@storybook/addon-actions@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.0.26.tgz" - integrity sha512-vVoqE0Zw0g1PPnGfho8vRwjpXhQCpRNBQ/2U83/CSodHWL/MBYENG0XMby90TC72M26gNmEh0dn1YCUXvLdiew== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/components" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/theming" "7.0.26" - "@storybook/types" "7.0.26" - dequal "^2.0.2" - lodash "^4.17.21" - polished "^4.2.2" - prop-types "^15.7.2" - react-inspector "^6.0.0" - telejson "^7.0.3" - ts-dedent "^2.0.0" - uuid "^9.0.0" - -"@storybook/addon-backgrounds@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.0.26.tgz" - integrity sha512-sjTkOnSsVBBl1GruVVsNKWEuLCbKjkNun1mzIklfYAiHz9hTZIhe9MA2SGZoDozMUDIXQqSoMDEc3rnDtfqsnQ== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/components" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/theming" "7.0.26" - "@storybook/types" "7.0.26" - memoizerific "^1.11.3" - ts-dedent "^2.0.0" - -"@storybook/addon-controls@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.0.26.tgz" - integrity sha512-mp1WuOYCPvR33orHn0XPABY5roF9Le8HnZwTpvfkrRMeMqLnYLnkCTZqY3JN/IOVlyQuYdqodP5CPDHNDLmvVg== - dependencies: - "@storybook/blocks" "7.0.26" - "@storybook/client-logger" "7.0.26" - "@storybook/components" "7.0.26" - "@storybook/core-common" "7.0.26" - "@storybook/manager-api" "7.0.26" - "@storybook/node-logger" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/theming" "7.0.26" - "@storybook/types" "7.0.26" - lodash "^4.17.21" - ts-dedent "^2.0.0" - -"@storybook/addon-docs@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.0.26.tgz" - integrity sha512-C8DOwfmPBWDUS1IJbyJxykgVVHVzSSL+JFh3FwtF0hsqwjlNW4OvGDFbz0oAxyxs4V46xVcvh4E95e3GkW36BQ== - dependencies: - "@babel/core" "^7.20.2" - "@babel/plugin-transform-react-jsx" "^7.19.0" - "@jest/transform" "^29.3.1" - "@mdx-js/react" "^2.1.5" - "@storybook/blocks" "7.0.26" - "@storybook/client-logger" "7.0.26" - "@storybook/components" "7.0.26" - "@storybook/csf-plugin" "7.0.26" - "@storybook/csf-tools" "7.0.26" - "@storybook/global" "^5.0.0" - "@storybook/mdx2-csf" "^1.0.0" - "@storybook/node-logger" "7.0.26" - "@storybook/postinstall" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/react-dom-shim" "7.0.26" - "@storybook/theming" "7.0.26" - "@storybook/types" "7.0.26" - fs-extra "^11.1.0" - remark-external-links "^8.0.0" - remark-slug "^6.0.0" - ts-dedent "^2.0.0" - -"@storybook/addon-essentials@^7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.0.26.tgz" - integrity sha512-r+IOtxbIqlCKO8fDgLppubYm+GEW3ZDxjPwXMQdDGem9ENpz0QLKb49r89+UYqnnaYjuYKjDNUOqy0gX2HfUXQ== - dependencies: - "@storybook/addon-actions" "7.0.26" - "@storybook/addon-backgrounds" "7.0.26" - "@storybook/addon-controls" "7.0.26" - "@storybook/addon-docs" "7.0.26" - "@storybook/addon-highlight" "7.0.26" - "@storybook/addon-measure" "7.0.26" - "@storybook/addon-outline" "7.0.26" - "@storybook/addon-toolbars" "7.0.26" - "@storybook/addon-viewport" "7.0.26" - "@storybook/core-common" "7.0.26" - "@storybook/manager-api" "7.0.26" - "@storybook/node-logger" "7.0.26" - "@storybook/preview-api" "7.0.26" - ts-dedent "^2.0.0" - -"@storybook/addon-highlight@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.0.26.tgz" - integrity sha512-+I+MoM7yXCA3YR2FwTSxSs6/IBpcc3Ey88WboGthR23ERmsgZOtum1S7KZ6cffNCOq4U0LzPkjKX2bICytFrIQ== - dependencies: - "@storybook/core-events" "7.0.26" - "@storybook/global" "^5.0.0" - "@storybook/preview-api" "7.0.26" - -"@storybook/addon-interactions@^7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-7.0.26.tgz" - integrity sha512-trIbPFLdxF6XgGORhx8eSGmGZ/4/AekJyFluf2lgutGi4TPL5Xzrx3o1kTFPVdLAPplBuDIlVI4HSGHHH2zeTw== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/components" "7.0.26" - "@storybook/core-common" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/global" "^5.0.0" - "@storybook/instrumenter" "7.0.26" - "@storybook/manager-api" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/theming" "7.0.26" - "@storybook/types" "7.0.26" - jest-mock "^27.0.6" - polished "^4.2.2" - ts-dedent "^2.2.0" - -"@storybook/addon-links@^7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.0.26.tgz" - integrity sha512-og+8AUAUpHsT+MVjhdQmRNJw9RUkHn5FFoou003b9V4UlPPNDYTo/tNEqOhUXn2l/ESAROJlR/q/8Qjdes24pA== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/csf" "^0.1.0" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/router" "7.0.26" - "@storybook/types" "7.0.26" - prop-types "^15.7.2" - ts-dedent "^2.0.0" - -"@storybook/addon-measure@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.0.26.tgz" - integrity sha512-iAnI6q3GB8uSydK+S4m4ANpy0GpMpHhmU0oBtu6OmyyzHUH1RJ7/fGfBnzx6YT+rIOlqSFocxYGn74ylsp33Wg== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/components" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/types" "7.0.26" - -"@storybook/addon-outline@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.0.26.tgz" - integrity sha512-oL7D0IWO0M6hMw5cWEC6JdKXlGadlVIdhIrVN+0gdFxuxCHTGpebQ02DCvyfls29UssEOxPaO1XMdu9tDlctbg== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/components" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/types" "7.0.26" - ts-dedent "^2.0.0" - -"@storybook/addon-styling@^1.3.2": - version "1.3.2" - resolved "https://registry.npmjs.org/@storybook/addon-styling/-/addon-styling-1.3.2.tgz" - integrity sha512-pxc2ncCH3jlOjsJFOmUECxIFvC4jmUxd0noeEC4shGfKvGhsssHpxcVtA36+s3JhDdx+Yhrk/0KeYoMe+35/qg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.5" - "@storybook/api" "^7.0.12" - "@storybook/components" "^7.0.12" - "@storybook/core-common" "^7.0.12" - "@storybook/core-events" "^7.0.12" - "@storybook/manager-api" "^7.0.12" - "@storybook/node-logger" "^7.0.12" - "@storybook/preview-api" "^7.0.12" - "@storybook/theming" "^7.0.12" - "@storybook/types" "^7.0.12" - css-loader "^6.7.3" - less-loader "^11.1.0" - postcss-loader "^7.2.4" - resolve-url-loader "^5.0.0" - sass-loader "^13.2.2" - style-loader "^3.3.2" - -"@storybook/addon-toolbars@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.0.26.tgz" - integrity sha512-DrwqcWuCLjaTNFtAYUxO2VaLrr2ibhB3ZQwW7J6a4YFCJaV49wempGPq3BzTWvrPUtMxGp7J3ZusdH9jBgCzjA== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/components" "7.0.26" - "@storybook/manager-api" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/theming" "7.0.26" - -"@storybook/addon-viewport@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.0.26.tgz" - integrity sha512-veAYxnR11sojXC7tlnBZ/USiafhWCsZNvjxmywl/XCh3MeDGFFDb2NN1s/7irAYXfNMOhgPGZED19BN9cQ8QRQ== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/components" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/theming" "7.0.26" - memoizerific "^1.11.3" - prop-types "^15.7.2" - -"@storybook/addons@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/addons/-/addons-7.0.26.tgz" - integrity sha512-zn7vdgXkQ4DpCJaawJsNPnh0NzXVXd2qfVtzYWWKT4eyj43VXxoVX2Z4woAD8h6G57JJg67+7hChRebUmd284A== - dependencies: - "@storybook/manager-api" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/types" "7.0.26" - -"@storybook/api@7.0.26", "@storybook/api@^7.0.12": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/api/-/api-7.0.26.tgz" - integrity sha512-czS5iWE3Px3e0sXjgt1T+LDiT6Tl4gXYPmHIaWpKGDCh4W2zrGolOvB0WqDt3IKhDGnXxaJF5jn705OGBQOptw== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/manager-api" "7.0.26" - -"@storybook/blocks@7.0.26", "@storybook/blocks@^7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.0.26.tgz" - integrity sha512-VNYB6Y1Ocja8HVg4Bm1w7LvqRSEc9aLVD8BnI8BInHvekvxhaxTkfpA18qds7d8+RmerrJqAUhGx0jkIB/cvwA== - dependencies: - "@storybook/channels" "7.0.26" - "@storybook/client-logger" "7.0.26" - "@storybook/components" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/csf" "^0.1.0" - "@storybook/docs-tools" "7.0.26" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/theming" "7.0.26" - "@storybook/types" "7.0.26" - "@types/lodash" "^4.14.167" - color-convert "^2.0.1" - dequal "^2.0.2" - lodash "^4.17.21" - markdown-to-jsx "^7.1.8" - memoizerific "^1.11.3" - polished "^4.2.2" - react-colorful "^5.1.2" - telejson "^7.0.3" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/builder-manager@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.0.26.tgz" - integrity sha512-1Uk3dL3Yu5AuimfHAghBHs11wf7B+a+277astqLx7HSeh3L49zcDZS4NhGHKmtQjsEorbvmtty3s16q2k+fM8A== - dependencies: - "@fal-works/esbuild-plugin-global-externals" "^2.1.2" - "@storybook/core-common" "7.0.26" - "@storybook/manager" "7.0.26" - "@storybook/node-logger" "7.0.26" - "@types/ejs" "^3.1.1" - "@types/find-cache-dir" "^3.2.1" - "@yarnpkg/esbuild-plugin-pnp" "^3.0.0-rc.10" - browser-assert "^1.2.1" - ejs "^3.1.8" - esbuild "^0.17.0" - esbuild-plugin-alias "^0.2.1" - express "^4.17.3" - find-cache-dir "^3.0.0" - fs-extra "^11.1.0" - process "^0.11.10" - util "^0.12.4" - -"@storybook/builder-webpack5@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-7.0.26.tgz" - integrity sha512-LfntlZKm0PB6hrgXd7IlzjuCLzjQezYHt3GQfZRxzu7MAu/bgu7xtr7lMaIJOQd2ckpvEN7xhJ89t2mvdk5y0A== - dependencies: - "@babel/core" "^7.12.10" - "@storybook/addons" "7.0.26" - "@storybook/api" "7.0.26" - "@storybook/channel-postmessage" "7.0.26" - "@storybook/channel-websocket" "7.0.26" - "@storybook/channels" "7.0.26" - "@storybook/client-api" "7.0.26" - "@storybook/client-logger" "7.0.26" - "@storybook/components" "7.0.26" - "@storybook/core-common" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/core-webpack" "7.0.26" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.26" - "@storybook/node-logger" "7.0.26" - "@storybook/preview" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/router" "7.0.26" - "@storybook/store" "7.0.26" - "@storybook/theming" "7.0.26" - "@types/node" "^16.0.0" - "@types/semver" "^7.3.4" - babel-loader "^9.0.0" - babel-plugin-named-exports-order "^0.0.2" - browser-assert "^1.2.1" - case-sensitive-paths-webpack-plugin "^2.4.0" - css-loader "^6.7.1" - express "^4.17.3" - fork-ts-checker-webpack-plugin "^7.2.8" - fs-extra "^11.1.0" - html-webpack-plugin "^5.5.0" - path-browserify "^1.0.1" - process "^0.11.10" - semver "^7.3.7" - style-loader "^3.3.1" - terser-webpack-plugin "^5.3.1" - ts-dedent "^2.0.0" - util "^0.12.4" - util-deprecate "^1.0.2" - webpack "5" - webpack-dev-middleware "^5.3.1" - webpack-hot-middleware "^2.25.1" - webpack-virtual-modules "^0.4.3" - -"@storybook/channel-postmessage@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.26.tgz" - integrity sha512-ZvFLr/tUD9dWIjQtIn1JXHjqrbOP/uEEOqzwpKSVj0Cl4Vgc12s8hecbzBufkOF7fwLsFvfieSi7ENOmjoncdQ== - dependencies: - "@storybook/channels" "7.0.26" - "@storybook/client-logger" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/global" "^5.0.0" - qs "^6.10.0" - telejson "^7.0.3" - -"@storybook/channel-websocket@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-7.0.26.tgz" - integrity sha512-c+0VcZf78RGnT/pWrH85yydt0azRKAHZF3SHWKM4+W8qOFr0Mk0+jqhPh1uoUoPDpBZDTKS/nzXY8cwUVwF/eA== - dependencies: - "@storybook/channels" "7.0.26" - "@storybook/client-logger" "7.0.26" - "@storybook/global" "^5.0.0" - telejson "^7.0.3" - -"@storybook/channels@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.26.tgz" - integrity sha512-Br3XILhrtuL5Sdp91I04kKjJzSqU/N8gGL6B6nIfnuaHUvGMDuMCHAB+g7aoiyH5dnpDZ6yBVGNwtYAyJA+0Og== - -"@storybook/cli@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/cli/-/cli-7.0.26.tgz" - integrity sha512-sZ136wRUYTdhhm/thegFoI47wOzl2X+K9eaiTTp0ARwnIUhXAPDQ0MKOD36hKbCX5T/pBE7r++7WoEReIbUDqQ== - dependencies: - "@babel/core" "^7.20.2" - "@babel/preset-env" "^7.20.2" - "@ndelangen/get-tarball" "^3.0.7" - "@storybook/codemod" "7.0.26" - "@storybook/core-common" "7.0.26" - "@storybook/core-server" "7.0.26" - "@storybook/csf-tools" "7.0.26" - "@storybook/node-logger" "7.0.26" - "@storybook/telemetry" "7.0.26" - "@storybook/types" "7.0.26" - "@types/semver" "^7.3.4" - chalk "^4.1.0" - commander "^6.2.1" - cross-spawn "^7.0.3" - detect-indent "^6.1.0" - envinfo "^7.7.3" - execa "^5.0.0" - express "^4.17.3" - find-up "^5.0.0" - fs-extra "^11.1.0" - get-npm-tarball-url "^2.0.3" - get-port "^5.1.1" - giget "^1.0.0" - globby "^11.0.2" - jscodeshift "^0.14.0" - leven "^3.1.0" - ora "^5.4.1" - prettier "^2.8.0" - prompts "^2.4.0" - puppeteer-core "^2.1.1" - read-pkg-up "^7.0.1" - semver "^7.3.7" - shelljs "^0.8.5" - simple-update-notifier "^1.0.0" - strip-json-comments "^3.0.1" - tempy "^1.0.1" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/client-api@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-7.0.26.tgz" - integrity sha512-55Oy5Es8ACABWT01iddUJHt8oT4VnuCvec/FUC4iN7ITiOGjk7YzZB3NftmD6C5+pVQC99buspuwg7IFxmj+Aw== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/preview-api" "7.0.26" - -"@storybook/client-logger@7.0.26", "@storybook/client-logger@^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.26.tgz" - integrity sha512-OMVLbgceoeuM8sWOfTX/9a4zCrH78G32hg7x8yXLZnRJ9OLaHJHzUM0Onc4MLudqVUdaKH0c8ejpBXUyIr1rJQ== - dependencies: - "@storybook/global" "^5.0.0" - -"@storybook/codemod@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.0.26.tgz" - integrity sha512-H9sV59FfGrGzGM+UZQclNglnc4cOkQvvF3EOWlR3BfDhx+STSB9VbCR308ygjUYw2TXZ2s5seCvHtVvA2yhILA== - dependencies: - "@babel/core" "~7.21.0" - "@babel/preset-env" "~7.21.0" - "@babel/types" "~7.21.2" - "@storybook/csf" "^0.1.0" - "@storybook/csf-tools" "7.0.26" - "@storybook/node-logger" "7.0.26" - "@storybook/types" "7.0.26" - cross-spawn "^7.0.3" - globby "^11.0.2" - jscodeshift "^0.14.0" - lodash "^4.17.21" - prettier "^2.8.0" - recast "^0.23.1" - -"@storybook/components@7.0.26", "@storybook/components@^7.0.12": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/components/-/components-7.0.26.tgz" - integrity sha512-n0TVWEF4Bc9JAyEIaN0PqwglbaYYRcPVG7ka+5wgGmBiuDlWI1SXd4EXxv2u0mVibHvtkHvOn6/GaZ1vG45p6g== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/csf" "^0.1.0" - "@storybook/global" "^5.0.0" - "@storybook/theming" "7.0.26" - "@storybook/types" "7.0.26" - memoizerific "^1.11.3" - use-resize-observer "^9.1.0" - util-deprecate "^1.0.2" - -"@storybook/core-client@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.0.26.tgz" - integrity sha512-1DA8mLnr0f6EuL74859IDK99a7CGNgMIN0/cAVNgYxq0WA4j+9ajsJ+/RIAgnS2NLVLR9kbezUtBEx4/H88IRA== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/preview-api" "7.0.26" - -"@storybook/core-common@7.0.26", "@storybook/core-common@^7.0.12": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.26.tgz" - integrity sha512-rojZblzB0egNXX0bZ7R3TuPDiBSIhxpZCrorrDMHOZ8F+zuBxyTiZ0yMxEDn7i46T2n1vX+hUHhwZVxZrLn/ZQ== - dependencies: - "@storybook/node-logger" "7.0.26" - "@storybook/types" "7.0.26" - "@types/node" "^16.0.0" - "@types/node-fetch" "^2.6.4" - "@types/pretty-hrtime" "^1.0.0" - chalk "^4.1.0" - esbuild "^0.17.0" - esbuild-register "^3.4.0" - file-system-cache "2.3.0" - find-up "^5.0.0" - fs-extra "^11.1.0" - glob "^8.1.0" - glob-promise "^6.0.2" - handlebars "^4.7.7" - lazy-universal-dotenv "^4.0.0" - node-fetch "^2.0.0" - picomatch "^2.3.0" - pkg-dir "^5.0.0" - pretty-hrtime "^1.0.3" - resolve-from "^5.0.0" - ts-dedent "^2.0.0" - -"@storybook/core-events@7.0.26", "@storybook/core-events@^7.0.12": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.26.tgz" - integrity sha512-ckZszphEAYs9wp8tPVhayEMzk8JxCiQfzbq0S45sbdqdTrl40PmsOjv5iPNaUYElI/Stfz+v4gDCEUfOsxyC+w== - -"@storybook/core-server@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.0.26.tgz" - integrity sha512-QieqH19jBPZafxJVmCVK6GTYkRN/CJ8RQUvyRH2KNhqXP0tHYfL51FlU70ldo/vHX6Ax4Cje5hx/Nln9+DOMNg== - dependencies: - "@aw-web-design/x-default-browser" "1.4.88" - "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-manager" "7.0.26" - "@storybook/core-common" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/csf" "^0.1.0" - "@storybook/csf-tools" "7.0.26" - "@storybook/docs-mdx" "^0.1.0" - "@storybook/global" "^5.0.0" - "@storybook/manager" "7.0.26" - "@storybook/node-logger" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/telemetry" "7.0.26" - "@storybook/types" "7.0.26" - "@types/detect-port" "^1.3.0" - "@types/node" "^16.0.0" - "@types/node-fetch" "^2.5.7" - "@types/pretty-hrtime" "^1.0.0" - "@types/semver" "^7.3.4" - better-opn "^2.1.1" - chalk "^4.1.0" - cli-table3 "^0.6.1" - compression "^1.7.4" - detect-port "^1.3.0" - express "^4.17.3" - fs-extra "^11.1.0" - globby "^11.0.2" - ip "^2.0.0" - lodash "^4.17.21" - node-fetch "^2.6.7" - open "^8.4.0" - pretty-hrtime "^1.0.3" - prompts "^2.4.0" - read-pkg-up "^7.0.1" - semver "^7.3.7" - serve-favicon "^2.5.0" - telejson "^7.0.3" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - watchpack "^2.2.0" - ws "^8.2.3" - -"@storybook/core-webpack@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-7.0.26.tgz" - integrity sha512-mIi+D+15sGRh8CWE7mMgvxX8KRfrACcR+AuEDi9rfQBB2PX0Okkrh6GAxPWjjeFFG7DF4RXdkusgC8/seYCTXg== - dependencies: - "@storybook/core-common" "7.0.26" - "@storybook/node-logger" "7.0.26" - "@storybook/types" "7.0.26" - "@types/node" "^16.0.0" - ts-dedent "^2.0.0" - -"@storybook/csf-plugin@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.0.26.tgz" - integrity sha512-D+wZvKlFxI/Vur8SRvkwKujOdV8ZL6xKiCX/07nFJXhhZoaeM+E78xPCL613Hj15GloujMkAnv7CT2rCiFJYow== - dependencies: - "@storybook/csf-tools" "7.0.26" - unplugin "^0.10.2" - -"@storybook/csf-tools@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.26.tgz" - integrity sha512-O8WJNOkvgrGV6gS/5ERkgqiXOxoXMuHtzdJpIM9DHPhzkSxB1Inl3WrX/dRRDNtmiHf87hBUuzhgo7YR7z4tuQ== - dependencies: - "@babel/generator" "~7.21.1" - "@babel/parser" "~7.21.2" - "@babel/traverse" "~7.21.2" - "@babel/types" "~7.21.2" - "@storybook/csf" "^0.1.0" - "@storybook/types" "7.0.26" - fs-extra "^11.1.0" - recast "^0.23.1" - ts-dedent "^2.0.0" - -"@storybook/csf@^0.0.1": - version "0.0.1" - resolved "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz" - integrity sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw== - dependencies: - lodash "^4.17.15" - -"@storybook/csf@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.1.tgz" - integrity sha512-4hE3AlNVxR60Wc5KSC68ASYzUobjPqtSKyhV6G+ge0FIXU55N5nTY7dXGRZHQGDBPq+XqchMkIdlkHPRs8nTHg== - dependencies: - type-fest "^2.19.0" - -"@storybook/docs-mdx@^0.1.0": - version "0.1.0" - resolved "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz" - integrity sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg== - -"@storybook/docs-tools@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.0.26.tgz" - integrity sha512-Ibpm/OTR2XmJgix5w+wMYbDwN0zp5e/pcqSHy36OvkBOG588IKSSzYdBjGdTLPHWBoehp2Kyndw/5dL/09ftXA== - dependencies: - "@babel/core" "^7.12.10" - "@storybook/core-common" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/types" "7.0.26" - "@types/doctrine" "^0.0.3" - doctrine "^3.0.0" - lodash "^4.17.21" - -"@storybook/global@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz" - integrity sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ== - -"@storybook/instrumenter@7.0.26", "@storybook/instrumenter@^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-7.0.26.tgz" - integrity sha512-7Ty0LTslgkm5RyH6CqTAKhWz/cF6wq/sNdMYKwvVZHWNZ2LKMtXD0RWM2caCPruAGOQ9+52H+3s4TZGKaPSSWQ== - dependencies: - "@storybook/channels" "7.0.26" - "@storybook/client-logger" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/global" "^5.0.0" - "@storybook/preview-api" "7.0.26" - -"@storybook/manager-api@7.0.26", "@storybook/manager-api@^7.0.12": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.26.tgz" - integrity sha512-/2p6lU7r30qMXob/UnzRL9yq7XjoE+YQXv1KhrcePfMBARbelYw9RYhYT/AkXGtb9/Fa95uG3lNvoDLC1IQfMQ== - dependencies: - "@storybook/channels" "7.0.26" - "@storybook/client-logger" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/csf" "^0.1.0" - "@storybook/global" "^5.0.0" - "@storybook/router" "7.0.26" - "@storybook/theming" "7.0.26" - "@storybook/types" "7.0.26" - dequal "^2.0.2" - lodash "^4.17.21" - memoizerific "^1.11.3" - semver "^7.3.7" - store2 "^2.14.2" - telejson "^7.0.3" - ts-dedent "^2.0.0" - -"@storybook/manager@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/manager/-/manager-7.0.26.tgz" - integrity sha512-mxjU/pmHr8xL96HCipqazvZWQkxBPCbpZ2+YsJuJoLFN4m7RoOK21VK0euBW24NlSg7Vp57XGQcrJCv6xUTKMg== - -"@storybook/mdx2-csf@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@storybook/mdx2-csf/-/mdx2-csf-1.1.0.tgz" - integrity sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw== - -"@storybook/nextjs@^7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/nextjs/-/nextjs-7.0.26.tgz" - integrity sha512-G7A0WGvh4DnESM1S+UIFbi7HgxrOwq2UhdBo8Cd0VyM6qwHomagGPCq3MNHHlmXLiObBezxEqBrbAm2l8klBTQ== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.7" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.20.0" - "@babel/plugin-transform-runtime" "^7.21.0" - "@babel/preset-env" "^7.20.2" - "@babel/preset-react" "^7.18.6" - "@babel/preset-typescript" "^7.21.0" - "@babel/runtime" "^7.21.0" - "@storybook/addon-actions" "7.0.26" - "@storybook/builder-webpack5" "7.0.26" - "@storybook/core-common" "7.0.26" - "@storybook/node-logger" "7.0.26" - "@storybook/preset-react-webpack" "7.0.26" - "@storybook/preview-api" "7.0.26" - "@storybook/react" "7.0.26" - "@types/node" "^16.0.0" - css-loader "^6.7.3" - find-up "^5.0.0" - fs-extra "^11.1.0" - image-size "^1.0.0" - loader-utils "^3.2.0" - node-polyfill-webpack-plugin "^2.0.1" - pnp-webpack-plugin "^1.7.0" - postcss "^8.4.21" - postcss-loader "^7.0.2" - resolve-url-loader "^5.0.0" - sass-loader "^12.4.0" - semver "^7.3.5" - style-loader "^3.3.1" - styled-jsx "5.1.1" - ts-dedent "^2.0.0" - tsconfig-paths "^4.0.0" - tsconfig-paths-webpack-plugin "^3.5.2" - -"@storybook/node-logger@7.0.26", "@storybook/node-logger@^7.0.12": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.26.tgz" - integrity sha512-3Jqv3fRb8+Mn/aNl4IztgUAS/pvouVzpfHDc8+6KYAoFMeDXwHVlfF/+gRCpd/fbYaTHGrycIs5G48bC190Dgg== - dependencies: - "@types/npmlog" "^4.1.2" - chalk "^4.1.0" - npmlog "^5.0.1" - pretty-hrtime "^1.0.3" - -"@storybook/postinstall@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.0.26.tgz" - integrity sha512-NhJBpQ+49RWF63UkdwrEwBLJBjAZeTlruPWfXGUb343iaGNNTsD3jajbToFHncibewH83yk6MeGfiyUva60oJw== - -"@storybook/preset-react-webpack@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/preset-react-webpack/-/preset-react-webpack-7.0.26.tgz" - integrity sha512-uJTW7of4eF8upoP2W0N5FVi1DG2f6CXkkI5qX4WmYFAmCtShor75EZTcv50QF4GOKJs9NlHDgC2+i6gT24u1rg== - dependencies: - "@babel/preset-flow" "^7.18.6" - "@babel/preset-react" "^7.18.6" - "@pmmmwh/react-refresh-webpack-plugin" "^0.5.5" - "@storybook/core-webpack" "7.0.26" - "@storybook/docs-tools" "7.0.26" - "@storybook/node-logger" "7.0.26" - "@storybook/react" "7.0.26" - "@storybook/react-docgen-typescript-plugin" "1.0.6--canary.9.0c3f3b7.0" - "@types/node" "^16.0.0" - "@types/semver" "^7.3.4" - babel-plugin-add-react-displayname "^0.0.5" - babel-plugin-react-docgen "^4.2.1" - fs-extra "^11.1.0" - react-refresh "^0.11.0" - semver "^7.3.7" - webpack "5" - -"@storybook/preview-api@7.0.26", "@storybook/preview-api@^7.0.12": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.26.tgz" - integrity sha512-uJwA4errBOZOoDF2T7Z2oLqjAYvvjMr31sTsOoT0niJtWr29RQp8yS6VoSrsuh+y3FAVqBEl5pS+DX3IGLjvxw== - dependencies: - "@storybook/channel-postmessage" "7.0.26" - "@storybook/channels" "7.0.26" - "@storybook/client-logger" "7.0.26" - "@storybook/core-events" "7.0.26" - "@storybook/csf" "^0.1.0" - "@storybook/global" "^5.0.0" - "@storybook/types" "7.0.26" - "@types/qs" "^6.9.5" - dequal "^2.0.2" - lodash "^4.17.21" - memoizerific "^1.11.3" - qs "^6.10.0" - synchronous-promise "^2.0.15" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/preview@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/preview/-/preview-7.0.26.tgz" - integrity sha512-9Uaxl/MEMYqjLlKAeAF2ATuaM0yQagXUfu2bEOpuor2ys9XoisDkvB7jfsCVqMZHeQ+mCdYyBICHhgqzxcO2Zg== - -"@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0": - version "1.0.6--canary.9.0c3f3b7.0" - resolved "https://registry.npmjs.org/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.6--canary.9.0c3f3b7.0.tgz" - integrity sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q== - dependencies: - debug "^4.1.1" - endent "^2.0.1" - find-cache-dir "^3.3.1" - flat-cache "^3.0.4" - micromatch "^4.0.2" - react-docgen-typescript "^2.2.2" - tslib "^2.0.0" - -"@storybook/react-dom-shim@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.0.26.tgz" - integrity sha512-heobG4IovYAD9fo7qmUHylCSQjDd1eXDCOaTiy+XVKobHAJgkz1gKqbaFSP6KLkPE4cKyScku2K9mY0tcKIhMw== - -"@storybook/react@7.0.26", "@storybook/react@^7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/react/-/react-7.0.26.tgz" - integrity sha512-+YK/1vF2Pd/PX7Ss5yPCIh9hee7iMVbu86gdjV9n9r6G244jQ7HLtdA01JKfq92/UgoysSWUjUECrxrUvcsh5w== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/core-client" "7.0.26" - "@storybook/docs-tools" "7.0.26" - "@storybook/global" "^5.0.0" - "@storybook/preview-api" "7.0.26" - "@storybook/react-dom-shim" "7.0.26" - "@storybook/types" "7.0.26" - "@types/escodegen" "^0.0.6" - "@types/estree" "^0.0.51" - "@types/node" "^16.0.0" - acorn "^7.4.1" - acorn-jsx "^5.3.1" - acorn-walk "^7.2.0" - escodegen "^2.0.0" - html-tags "^3.1.0" - lodash "^4.17.21" - prop-types "^15.7.2" - react-element-to-jsx-string "^15.0.0" - ts-dedent "^2.0.0" - type-fest "^2.19.0" - util-deprecate "^1.0.2" - -"@storybook/router@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/router/-/router-7.0.26.tgz" - integrity sha512-OfLittKxdahsgKsmQFoBX9q5tN/aqKMhhc/WbW88UPAQCUcEuazB0CwM+LI9YXY+n5L+vpLI4lGlgaqvPy4hHw== - dependencies: - "@storybook/client-logger" "7.0.26" - memoizerific "^1.11.3" - qs "^6.10.0" - -"@storybook/store@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/store/-/store-7.0.26.tgz" - integrity sha512-gJ9LDv8Mos8kPHj7SDEpBxQVL756j+15XUqBeBjgK+/TihnzIFeeX9QaTLo+As8bhgF/P2MVR+v0Qv9Zlm9MgQ== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/preview-api" "7.0.26" - -"@storybook/telemetry@7.0.26": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.0.26.tgz" - integrity sha512-TgvtARAiD+SNyWJJfQdPiWW5JQkbX1UdHKEqEhoJXsGDkEi2Zpb+1tdeP1qZ3Gfbd1K0/LDpXGcqLv6/deSEdg== - dependencies: - "@storybook/client-logger" "7.0.26" - "@storybook/core-common" "7.0.26" - chalk "^4.1.0" - detect-package-manager "^2.0.1" - fetch-retry "^5.0.2" - fs-extra "^11.1.0" - isomorphic-unfetch "^3.1.0" - nanoid "^3.3.1" - read-pkg-up "^7.0.1" - -"@storybook/testing-library@^0.0.14-next.2": - version "0.0.14-next.2" - resolved "https://registry.npmjs.org/@storybook/testing-library/-/testing-library-0.0.14-next.2.tgz" - integrity sha512-i/SLSGm0o978ELok/SB4Qg1sZ3zr+KuuCkzyFqcCD0r/yf+bG35aQGkFqqxfSAdDxuQom0NO02FE+qys5Eapdg== - dependencies: - "@storybook/client-logger" "^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0" - "@storybook/instrumenter" "^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0" - "@testing-library/dom" "^8.3.0" - "@testing-library/user-event" "^13.2.1" - ts-dedent "^2.2.0" - -"@storybook/theming@7.0.26", "@storybook/theming@^7.0.12": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.26.tgz" - integrity sha512-7hxpT2yq+xZonSsEZHOF+HDHx6GE0qlys3EQ63K9XCJ8VeBnq9M5zHvMK9iXl90093ufxpvWsfDWgtja2zvmTw== - dependencies: - "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" - "@storybook/client-logger" "7.0.26" - "@storybook/global" "^5.0.0" - memoizerific "^1.11.3" - -"@storybook/types@7.0.26", "@storybook/types@^7.0.12": - version "7.0.26" - resolved "https://registry.npmjs.org/@storybook/types/-/types-7.0.26.tgz" - integrity sha512-5RBi6agtDglNXdffmw4+Fyv2dUdlIdeOdUj0O5+JRYajTxfHdurZd9r/42z4OstN+ORDkLA/svt8Q9JyRpIb6Q== - dependencies: - "@storybook/channels" "7.0.26" - "@types/babel__core" "^7.0.0" - "@types/express" "^4.7.0" - file-system-cache "2.3.0" - "@svgr/babel-plugin-add-jsx-attribute@^6.5.1": version "6.5.1" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz#74a5d648bd0347bda99d82409d87b8ca80b9a1ba" integrity sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ== "@svgr/babel-plugin-remove-jsx-attribute@*": version "6.5.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz#652bfd4ed0a0699843585cda96faeb09d6e1306e" integrity sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA== "@svgr/babel-plugin-remove-jsx-empty-expression@*": version "6.5.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz#4b78994ab7d39032c729903fc2dd5c0fa4565cb8" integrity sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw== "@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.1": version "6.5.1" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz#fb9d22ea26d2bc5e0a44b763d4c46d5d3f596c60" integrity sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg== "@svgr/babel-plugin-svg-dynamic-title@^6.5.1": version "6.5.1" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz#01b2024a2b53ffaa5efceaa0bf3e1d5a4c520ce4" integrity sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw== "@svgr/babel-plugin-svg-em-dimensions@^6.5.1": version "6.5.1" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz#dd3fa9f5b24eb4f93bcf121c3d40ff5facecb217" integrity sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA== "@svgr/babel-plugin-transform-react-native-svg@^6.5.1": version "6.5.1" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz#1d8e945a03df65b601551097d8f5e34351d3d305" integrity sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg== "@svgr/babel-plugin-transform-svg-component@^6.5.1": version "6.5.1" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz#48620b9e590e25ff95a80f811544218d27f8a250" integrity sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ== "@svgr/babel-preset@^6.5.1": version "6.5.1" - resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz#b90de7979c8843c5c580c7e2ec71f024b49eb828" integrity sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw== dependencies: "@svgr/babel-plugin-add-jsx-attribute" "^6.5.1" @@ -3368,7 +2149,7 @@ "@svgr/core@^6.5.1": version "6.5.1" - resolved "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.5.1.tgz#d3e8aa9dbe3fbd747f9ee4282c1c77a27410488a" integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw== dependencies: "@babel/core" "^7.19.6" @@ -3379,7 +2160,7 @@ "@svgr/hast-util-to-babel-ast@^6.5.1": version "6.5.1" - resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz#81800bd09b5bcdb968bf6ee7c863d2288fdb80d2" integrity sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw== dependencies: "@babel/types" "^7.20.0" @@ -3387,7 +2168,7 @@ "@svgr/plugin-jsx@^6.5.1": version "6.5.1" - resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz#0e30d1878e771ca753c94e69581c7971542a7072" integrity sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw== dependencies: "@babel/core" "^7.19.6" @@ -3397,7 +2178,7 @@ "@svgr/plugin-svgo@^6.5.1": version "6.5.1" - resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz#0f91910e988fc0b842f88e0960c2862e022abe84" integrity sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ== dependencies: cosmiconfig "^7.0.1" @@ -3406,7 +2187,7 @@ "@svgr/webpack@^6.5.1": version "6.5.1" - resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.5.1.tgz#ecf027814fc1cb2decc29dc92f39c3cf691e40e8" integrity sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA== dependencies: "@babel/core" "^7.19.6" @@ -3420,26 +2201,26 @@ "@swc/helpers@0.5.1": version "0.5.1" - resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== dependencies: tslib "^2.4.0" "@tanstack/match-sorter-utils@^8.7.0": version "8.7.6" - resolved "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.7.6.tgz" + resolved "https://registry.yarnpkg.com/@tanstack/match-sorter-utils/-/match-sorter-utils-8.7.6.tgz#ccf54a37447770e0cf0fe49a579c595fd2655b16" integrity sha512-2AMpRiA6QivHOUiBpQAVxjiHAA68Ei23ZUMNaRJrN6omWiSFLoYrxGcT6BXtuzp0Jw4h6HZCmGGIM/gbwebO2A== dependencies: remove-accents "0.4.2" "@tanstack/query-core@4.24.10": version "4.24.10" - resolved "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.24.10.tgz" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.24.10.tgz#758e1f5b2d7faf7316d299facd272a9f64c26299" integrity sha512-2QywqXEAGBIUoTdgn1lAB4/C8QEqwXHj2jrCLeYTk2xVGtLiPEUD8jcMoeB2noclbiW2mMt4+Fq7fZStuz3wAQ== "@tanstack/react-query-devtools@^4.24.12": version "4.24.12" - resolved "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-4.24.12.tgz" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-4.24.12.tgz#0157a732c82171c814d2df447640558f2431b811" integrity sha512-FxSIQk84vn5SpK6xQ2AxL63eis/qQ5foJ1LEjTzaU7cMcfvN4vNZ3mtUCeW/txI8aBpZ5gbVmGLEAtoi8ub4kQ== dependencies: "@tanstack/match-sorter-utils" "^8.7.0" @@ -3448,422 +2229,83 @@ "@tanstack/react-query@^4.24.4": version "4.24.10" - resolved "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.24.10.tgz" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.24.10.tgz#2e1004bb1d1f55198961a21e875e2c65ec865130" integrity sha512-FY1DixytOcNNCydPQXLxuKEV7VSST32CAuJ55BjhDNqASnMLZn+6c30yQBMrODjmWMNwzfjMZnq0Vw7C62Fwow== dependencies: "@tanstack/query-core" "4.24.10" use-sync-external-store "^1.2.0" -"@testing-library/dom@^8.3.0": - version "8.20.1" - resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz" - integrity sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^5.0.1" - aria-query "5.1.3" - chalk "^4.1.0" - dom-accessibility-api "^0.5.9" - lz-string "^1.5.0" - pretty-format "^27.0.2" - -"@testing-library/user-event@^13.2.1": - version "13.5.0" - resolved "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz" - integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg== - dependencies: - "@babel/runtime" "^7.12.5" - "@trysound/sax@0.2.0": version "0.2.0" - resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== -"@types/aria-query@^5.0.1": - version "5.0.1" - resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz" - integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== - -"@types/babel__core@^7.0.0": - version "7.20.1" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz" - integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*": - version "7.20.1" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz" - integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== - dependencies: - "@babel/types" "^7.20.7" - -"@types/body-parser@*": - version "1.19.2" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.35" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - -"@types/cookie@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" - integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== - -"@types/debug@^4.1.7": - version "4.1.12" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" - integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== - dependencies: - "@types/ms" "*" - -"@types/detect-port@^1.3.0": - version "1.3.3" - resolved "https://registry.npmjs.org/@types/detect-port/-/detect-port-1.3.3.tgz" - integrity sha512-bV/jQlAJ/nPY3XqSatkGpu+nGzou+uSwrH1cROhn+jBFg47yaNH+blW4C7p9KhopC7QxCv/6M86s37k8dMk0Yg== - -"@types/doctrine@^0.0.3": - version "0.0.3" - resolved "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz" - integrity sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA== - -"@types/ejs@^3.1.1": - version "3.1.2" - resolved "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.2.tgz" - integrity sha512-ZmiaE3wglXVWBM9fyVC17aGPkLo/UgaOjEiI2FXQfyczrCefORPxIe+2dVmnmk3zkVIbizjrlQzmPGhSYGXG5g== - -"@types/escodegen@^0.0.6": - version "0.0.6" - resolved "https://registry.npmjs.org/@types/escodegen/-/escodegen-0.0.6.tgz" - integrity sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig== - -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "8.44.0" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.0.tgz" - integrity sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== - -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - -"@types/express-serve-static-core@^4.17.33": - version "4.17.35" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz" - integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@^4.7.0": - version "4.17.17" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz" - integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/find-cache-dir@^3.2.1": - version "3.2.1" - resolved "https://registry.npmjs.org/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz" - integrity sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw== - -"@types/glob@^8.0.0": - version "8.1.0" - resolved "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz" - integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== - dependencies: - "@types/minimatch" "^5.1.2" - "@types/node" "*" - -"@types/graceful-fs@^4.1.3": - version "4.1.6" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== - dependencies: - "@types/node" "*" - -"@types/html-minifier-terser@^6.0.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" - integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== - -"@types/http-errors@*": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz" - integrity sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/js-levenshtein@^1.1.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@types/js-levenshtein/-/js-levenshtein-1.1.3.tgz#a6fd0bdc8255b274e5438e0bfb25f154492d1106" - integrity sha512-jd+Q+sD20Qfu9e2aEXogiO3vpOC1PYJOUdyN9gvs4Qrvkg4wF43L5OhqrPeokdv8TL0/mXoYfpkcoGZMNN2pkQ== - -"@types/json-schema@*", "@types/json-schema@^7.0.8": - version "7.0.12" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== - "@types/json-schema@^7.0.9": version "7.0.11" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/lodash@^4.14.167": - version "4.14.195" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.195.tgz" - integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== - -"@types/mdx@^2.0.0": - version "2.0.5" - resolved "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.5.tgz" - integrity sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg== - -"@types/mime-types@^2.1.0": - version "2.1.1" - resolved "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.1.tgz" - integrity sha512-vXOTGVSLR2jMw440moWTC7H19iUyLtP3Z1YTj7cSsubOICinjMxFeb/V57v9QdyyPGbbWolUFSSmSiRSn94tFw== - -"@types/mime@*": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== - -"@types/minimatch@^5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - -"@types/ms@*": - version "0.7.34" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" - integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== - -"@types/node-fetch@^2.5.7", "@types/node-fetch@^2.6.4": - version "2.6.4" - resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz" - integrity sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg== +"@types/lodash.mergewith@4.6.7": + version "4.6.7" + resolved "https://registry.yarnpkg.com/@types/lodash.mergewith/-/lodash.mergewith-4.6.7.tgz#eaa65aa5872abdd282f271eae447b115b2757212" + integrity sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A== dependencies: - "@types/node" "*" - form-data "^3.0.0" + "@types/lodash" "*" -"@types/node@*": - version "20.4.1" - resolved "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz" - integrity sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg== +"@types/lodash@*": + version "4.14.191" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" + integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== "@types/node@18.13.0": version "18.13.0" - resolved "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.13.0.tgz#0400d1e6ce87e9d3032c19eb6c58205b0d3f7850" integrity sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg== -"@types/node@^16.0.0": - version "16.18.38" - resolved "https://registry.npmjs.org/@types/node/-/node-16.18.38.tgz" - integrity sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -"@types/npmlog@^4.1.2": - version "4.1.4" - resolved "https://registry.npmjs.org/@types/npmlog/-/npmlog-4.1.4.tgz" - integrity sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ== - "@types/parse-json@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/pretty-hrtime@^1.0.0": - version "1.0.1" - resolved "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz" - integrity sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ== - "@types/prop-types@*": version "15.7.5" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== -"@types/qs@*", "@types/qs@^6.9.5": - version "6.9.7" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - "@types/react-dom@18.0.10": version "18.0.10" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.10.tgz#3b66dec56aa0f16a6cc26da9e9ca96c35c0b4352" integrity sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg== dependencies: "@types/react" "*" "@types/react@*", "@types/react@18.0.28": version "18.0.28" - resolved "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.28.tgz#accaeb8b86f4908057ad629a26635fe641480065" integrity sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@>=16": - version "18.2.14" - resolved "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz" - integrity sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - "@types/scheduler@*": version "0.16.2" - resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== "@types/semver@^7.3.12": version "7.3.13" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== -"@types/semver@^7.3.4": - version "7.5.0" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== - -"@types/send@*": - version "0.17.1" - resolved "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz" - integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-static@*": - version "1.15.2" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz" - integrity sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw== - dependencies: - "@types/http-errors" "*" - "@types/mime" "*" - "@types/node" "*" - -"@types/set-cookie-parser@^2.4.0": - version "2.4.7" - resolved "https://registry.yarnpkg.com/@types/set-cookie-parser/-/set-cookie-parser-2.4.7.tgz#4a341ed1d3a922573ee54db70b6f0a6d818290e7" - integrity sha512-+ge/loa0oTozxip6zmhRIk8Z/boU51wl9Q6QdLZcokIGMzY5lFXYy/x7Htj2HTC6/KZP1hUbZ1ekx8DYXICvWg== - dependencies: - "@types/node" "*" - -"@types/unist@^2.0.0": - version "2.0.6" - resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^16.0.0": - version "16.0.5" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz" - integrity sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^17.0.8": - version "17.0.24" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz" - integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== - dependencies: - "@types/yargs-parser" "*" - "@typescript-eslint/eslint-plugin@^5.52.0": version "5.53.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.53.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.53.0.tgz#24b8b4a952f3c615fe070e3c461dd852b5056734" integrity sha512-alFpFWNucPLdUOySmXCJpzr6HKC3bu7XooShWM+3w/EL6J2HIoB2PFxpLnq4JauWVk6DiVeNKzQlFEaE+X9sGw== dependencies: "@typescript-eslint/scope-manager" "5.53.0" @@ -3879,7 +2321,7 @@ "@typescript-eslint/parser@^5.42.0": version "5.53.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.53.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.53.0.tgz#a1f2b9ae73b83181098747e96683f1b249ecab52" integrity sha512-MKBw9i0DLYlmdOb3Oq/526+al20AJZpANdT6Ct9ffxcV8nKCHz63t/S0IhlTFNsBIHJv+GY5SFJ0XfqVeydQrQ== dependencies: "@typescript-eslint/scope-manager" "5.53.0" @@ -3887,35 +2329,17 @@ "@typescript-eslint/typescript-estree" "5.53.0" debug "^4.3.4" -"@typescript-eslint/parser@^5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.61.0.tgz" - integrity sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg== - dependencies: - "@typescript-eslint/scope-manager" "5.61.0" - "@typescript-eslint/types" "5.61.0" - "@typescript-eslint/typescript-estree" "5.61.0" - debug "^4.3.4" - "@typescript-eslint/scope-manager@5.53.0": version "5.53.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz#42b54f280e33c82939275a42649701024f3fafef" integrity sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w== dependencies: "@typescript-eslint/types" "5.53.0" "@typescript-eslint/visitor-keys" "5.53.0" -"@typescript-eslint/scope-manager@5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz" - integrity sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw== - dependencies: - "@typescript-eslint/types" "5.61.0" - "@typescript-eslint/visitor-keys" "5.61.0" - "@typescript-eslint/type-utils@5.53.0": version "5.53.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.53.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.53.0.tgz#41665449935ba9b4e6a1ba6e2a3f4b2c31d6cf97" integrity sha512-HO2hh0fmtqNLzTAme/KnND5uFNwbsdYhCZghK2SoxGp3Ifn2emv+hi0PBUjzzSh0dstUIFqOj3bp0AwQlK4OWw== dependencies: "@typescript-eslint/typescript-estree" "5.53.0" @@ -3925,17 +2349,12 @@ "@typescript-eslint/types@5.53.0": version "5.53.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.53.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.53.0.tgz#f79eca62b97e518ee124086a21a24f3be267026f" integrity sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A== -"@typescript-eslint/types@5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.61.0.tgz" - integrity sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ== - "@typescript-eslint/typescript-estree@5.53.0": version "5.53.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz#bc651dc28cf18ab248ecd18a4c886c744aebd690" integrity sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w== dependencies: "@typescript-eslint/types" "5.53.0" @@ -3946,22 +2365,9 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.61.0.tgz" - integrity sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw== - dependencies: - "@typescript-eslint/types" "5.61.0" - "@typescript-eslint/visitor-keys" "5.61.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - "@typescript-eslint/utils@5.53.0": version "5.53.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.53.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.53.0.tgz#e55eaad9d6fffa120575ffaa530c7e802f13bce8" integrity sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g== dependencies: "@types/json-schema" "^7.0.9" @@ -3973,284 +2379,45 @@ eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/utils@^5.45.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.61.0.tgz" - integrity sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.61.0" - "@typescript-eslint/types" "5.61.0" - "@typescript-eslint/typescript-estree" "5.61.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - "@typescript-eslint/visitor-keys@5.53.0": version "5.53.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz#8a5126623937cdd909c30d8fa72f79fa56cc1a9f" integrity sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w== dependencies: "@typescript-eslint/types" "5.53.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.61.0.tgz" - integrity sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg== - dependencies: - "@typescript-eslint/types" "5.61.0" - eslint-visitor-keys "^3.3.0" - -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz" - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - -"@webassemblyjs/floating-point-hex-parser@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz" - integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== - -"@webassemblyjs/helper-api-error@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz" - integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== - -"@webassemblyjs/helper-buffer@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz" - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== - -"@webassemblyjs/helper-numbers@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz" - integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz" - integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== - -"@webassemblyjs/helper-wasm-section@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz" - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - -"@webassemblyjs/ieee754@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz" - integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz" - integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz" - integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== - -"@webassemblyjs/wasm-edit@^1.11.5": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz" - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-opt" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - "@webassemblyjs/wast-printer" "1.11.6" - -"@webassemblyjs/wasm-gen@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz" - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wasm-opt@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz" - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz" - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wast-printer@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz" - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@xtuc/long" "4.2.2" - -"@xmldom/xmldom@^0.8.3": - version "0.8.10" - resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" - integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -"@yarnpkg/esbuild-plugin-pnp@^3.0.0-rc.10": - version "3.0.0-rc.15" - resolved "https://registry.npmjs.org/@yarnpkg/esbuild-plugin-pnp/-/esbuild-plugin-pnp-3.0.0-rc.15.tgz" - integrity sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA== - dependencies: - tslib "^2.4.0" - -"@yarnpkg/lockfile@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== - -"@zxing/text-encoding@0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" - integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== - -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -accepts@~1.3.5, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" +"@zag-js/element-size@0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@zag-js/element-size/-/element-size-0.3.1.tgz#f9f6ae98355e2250d18d0f6e2f1134a0ae4c6a2f" + integrity sha512-jR5j4G//bRzcxwAACWi9EfITnwjNmn10LxF4NmALrdZU7/PNWP3uUCdhCxd/0SCyeiJXUl0yvD57rWAbKPs1nw== -acorn-import-assertions@^1.9.0: - version "1.9.0" - resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz" - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== +"@zag-js/focus-visible@0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@zag-js/focus-visible/-/focus-visible-0.2.1.tgz#bf4f1009f4fd35a9728dfaa9214d8cb318fe8b1e" + integrity sha512-19uTjoZGP4/Ax7kSNhhay9JA83BirKzpqLkeEAilrpdI1hE5xuq6q+tzJOsrMOOqJrm7LkmZp5lbsTQzvK2pYg== -acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: +acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.4.1: - version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: - version "8.11.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== - -address@^1.0.1: - version "1.2.2" - resolved "https://registry.npmjs.org/address/-/address-1.2.2.tgz" - integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== - -adjust-sourcemap-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz" - integrity sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A== - dependencies: - loader-utils "^2.0.0" - regex-parser "^2.2.11" - -agent-base@5: - version "5.1.1" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz" - integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== - -agent-base@6: - version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" +acorn@^8.8.0: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv-keywords@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -4258,125 +2425,64 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.9.0: - version "8.12.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: +ansi-escapes@^4.3.0: version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" -ansi-html-community@0.0.8, ansi-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - ansi-styles@^6.0.0: version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" - integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== - -anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -app-root-dir@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz" - integrity sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g== - -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -arg@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" - integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-query@5.1.3, aria-query@^5.1.3: +aria-hidden@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.2.tgz#8c4f7cc88d73ca42114106fdf6f47e68d31475b8" + integrity sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA== + dependencies: + tslib "^2.0.0" + +aria-query@^5.1.3: version "5.1.3" - resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== dependencies: deep-equal "^2.0.5" -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - array-includes@^3.1.5, array-includes@^3.1.6: version "3.1.6" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== dependencies: call-bind "^1.0.2" @@ -4387,12 +2493,12 @@ array-includes@^3.1.5, array-includes@^3.1.6: array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array.prototype.flat@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== dependencies: call-bind "^1.0.2" @@ -4402,7 +2508,7 @@ array.prototype.flat@^1.3.1: array.prototype.flatmap@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== dependencies: call-bind "^1.0.2" @@ -4412,7 +2518,7 @@ array.prototype.flatmap@^1.3.1: array.prototype.tosorted@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== dependencies: call-bind "^1.0.2" @@ -4421,124 +2527,56 @@ array.prototype.tosorted@^1.1.1: es-shim-unscopables "^1.0.0" get-intrinsic "^1.1.3" -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - asn1@~0.2.3: version "0.2.6" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== -assert@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz" - integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== - dependencies: - es6-object-assign "^1.1.0" - is-nan "^1.2.1" - object-is "^1.0.1" - util "^0.12.0" - ast-types-flow@^0.0.7: version "0.0.7" - resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== -ast-types@0.15.2: - version "0.15.2" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz" - integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== - dependencies: - tslib "^2.0.1" - -ast-types@^0.14.2: - version "0.14.2" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz" - integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== - dependencies: - tslib "^2.0.1" - -ast-types@^0.16.1: - version "0.16.1" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz" - integrity sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg== - dependencies: - tslib "^2.0.1" - astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^3.2.3: - version "3.2.4" - resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== - asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -autoprefixer@^10.4.14: - version "10.4.14" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz" - integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== - dependencies: - browserslist "^4.21.5" - caniuse-lite "^1.0.30001464" - fraction.js "^4.2.0" - normalize-range "^0.1.2" - picocolors "^1.0.0" - postcss-value-parser "^4.2.0" - available-typed-arrays@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: version "1.12.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== axe-core@^4.6.2: version "4.6.3" - resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== axios@^1.3.4: version "1.3.4" - resolved "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024" integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ== dependencies: follow-redirects "^1.15.0" @@ -4547,303 +2585,79 @@ axios@^1.3.4: axobject-query@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== dependencies: deep-equal "^2.0.5" -babel-core@^7.0.0-bridge.0: - version "7.0.0-bridge.0" - resolved "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz" - integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== - -babel-loader@^9.0.0: - version "9.1.3" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz" - integrity sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw== - dependencies: - find-cache-dir "^4.0.0" - schema-utils "^4.0.0" - -babel-plugin-add-react-displayname@^0.0.5: - version "0.0.5" - resolved "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz" - integrity sha512-LY3+Y0XVDYcShHHorshrDbt4KFWL4bSeniCtl4SYZbask+Syngk1uMPCeN9+nSiZo6zX5s0RTq/J9Pnaaf/KHw== - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-named-exports-order@^0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/babel-plugin-named-exports-order/-/babel-plugin-named-exports-order-0.0.2.tgz" - integrity sha512-OgOYHOLoRK+/mvXU9imKHlG6GkPLYrUCvFXG/CM93R/aNNO8pOOF4aS+S8CCHMDQoNSeiOYEZb/G6RwL95Jktw== + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" babel-plugin-polyfill-corejs2@^0.3.3: version "0.3.3" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== dependencies: "@babel/compat-data" "^7.17.7" "@babel/helper-define-polyfill-provider" "^0.3.3" semver "^6.1.1" -babel-plugin-polyfill-corejs2@^0.4.4: - version "0.4.4" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz" - integrity sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA== - dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.1" - "@nicolo-ribaudo/semver-v6" "^6.3.3" - babel-plugin-polyfill-corejs3@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.3" core-js-compat "^3.25.1" -babel-plugin-polyfill-corejs3@^0.8.2: - version "0.8.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz" - integrity sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.1" - core-js-compat "^3.31.0" - babel-plugin-polyfill-regenerator@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.3" -babel-plugin-polyfill-regenerator@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz" - integrity sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.1" - -babel-plugin-react-docgen@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.2.1.tgz" - integrity sha512-UQ0NmGHj/HAqi5Bew8WvNfCk8wSsmdgNd8ZdMjBCICtyCJCq9LiqgqvjCYe570/Wg7AQArSq1VQ60Dd/CHN7mQ== - dependencies: - ast-types "^0.14.2" - lodash "^4.17.15" - react-docgen "^5.0.0" - balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" -better-opn@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/better-opn/-/better-opn-2.1.1.tgz" - integrity sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA== - dependencies: - open "^7.0.3" - -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bl@^4.0.3, bl@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: +braces@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-assert@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz" - integrity sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz" - integrity sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ== - dependencies: - pako "~0.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.14.5, browserslist@^4.21.9: - version "4.21.9" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== - dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" - update-browserslist-db "^1.0.11" - -browserslist@^4.21.5: +browserslist@^4.21.3, browserslist@^4.21.5: version "4.21.5" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== dependencies: caniuse-lite "^1.0.30001449" @@ -4851,262 +2665,73 @@ browserslist@^4.21.5: node-releases "^2.0.8" update-browserslist-db "^1.0.10" -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== - busboy@1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== dependencies: streamsearch "^1.1.0" -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -c8@^7.6.0: - version "7.14.0" - resolved "https://registry.npmjs.org/c8/-/c8-7.14.0.tgz" - integrity sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@istanbuljs/schema" "^0.1.3" - find-up "^5.0.0" - foreground-child "^2.0.0" - istanbul-lib-coverage "^3.2.0" - istanbul-lib-report "^3.0.0" - istanbul-reports "^3.1.4" - rimraf "^3.0.2" - test-exclude "^6.0.0" - v8-to-istanbul "^9.0.0" - yargs "^16.2.0" - yargs-parser "^20.2.9" - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" get-intrinsic "^1.0.2" -call-bind@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - set-function-length "^1.2.1" - callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camel-case@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase-css@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - camelcase@^6.2.0: version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001449: version "1.0.30001458" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz#871e35866b4654a7d25eccca86864f411825540c" integrity sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w== -caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: - version "1.0.30001514" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001514.tgz" - integrity sha512-ENcIpYBmwAAOm/V2cXgM7rZUrKKaqisZl4ZAI520FIkqGXUxJjmaIssbRW5HVVR5tyV6ygTLIm15aU8LUmQSaQ== - -case-sensitive-paths-webpack-plugin@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz" - integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== - caseless@~0.12.0: version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chalk@^2.4.2: +chalk@^2.0.0: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -chokidar@^3.4.2, chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chromatic@^6.19.9: - version "6.19.9" - resolved "https://registry.npmjs.org/chromatic/-/chromatic-6.19.9.tgz" - integrity sha512-UHrPbPoLnJwd063cRSO0U865VhcATykpMiHsAnNFz5EFRsBvM9wefqyS2Z6W8Ti9J7Fjrf4MV4PA+Q5k2lhFfQ== - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^3.2.0: - version "3.8.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== - -ci-info@^3.7.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" -clean-css@^5.2.2: - version "5.3.2" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz" - integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: - source-map "~0.6.0" + ansi-styles "^4.1.0" + supports-color "^7.1.0" clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" -cli-spinners@^2.5.0: - version "2.9.0" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz" - integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== - -cli-table3@^0.6.1: - version "0.6.3" - resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz" - integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== - dependencies: - string-width "^4.2.0" - optionalDependencies: - "@colors/colors" "1.5.0" - cli-truncate@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== dependencies: slice-ansi "^3.0.0" @@ -5114,96 +2739,54 @@ cli-truncate@^2.1.0: cli-truncate@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== dependencies: slice-ansi "^5.0.0" string-width "^5.0.0" -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -client-only@0.0.1, client-only@^0.0.1: +client-only@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-support@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -colorette@^2.0.10: - version "2.0.20" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== +color2k@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/color2k/-/color2k-2.0.2.tgz#ac2b4aea11c822a6bcb70c768b5a289f4fffcebb" + integrity sha512-kJhwH5nAwb34tmyuqq/lgjEKzlFXn1U99NlnB6Ws4qVaERcRUYeYP1cBw6BJ4vxaWStAUEef4WMr7WjOCnBt8w== colorette@^2.0.19: version "2.0.19" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== colorthief@^2.4.0: version "2.4.0" - resolved "https://registry.npmjs.org/colorthief/-/colorthief-2.4.0.tgz" + resolved "https://registry.yarnpkg.com/colorthief/-/colorthief-2.4.0.tgz#74e6edd142695655bd5f52c7f8116b125ea2b2bd" integrity sha512-0U48RGNRo5fVO+yusBwgp+d3augWSorXabnqXUu9SabEhCpCgZJEUjUTTI41OOBBYuMMxawa3177POT6qLfLeQ== dependencies: "@lokesh.dhakar/quantize" "^1.3.0" @@ -5211,184 +2794,65 @@ colorthief@^2.4.0: combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" -commander@^2.19.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commander@^6.2.1: - version "6.2.1" - resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - commander@^7.2.0: version "7.2.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^8.3.0: - version "8.3.0" - resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - commander@^9.4.1: version "9.5.0" - resolved "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== -common-path-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz" - integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" +compute-scroll-into-view@1.0.20: + version "1.0.20" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" + integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.6.2: - version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -console-browserify@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -console-control-strings@^1.0.0, console-control-strings@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" - integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.5.0, convert-source-map@^1.7.0: version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -cookie@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - -copy-anything@^2.0.1: - version "2.0.6" - resolved "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz" - integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== - dependencies: - is-what "^3.14.1" - copy-anything@^3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-3.0.3.tgz#206767156f08da0e02efd392f71abcdf79643559" integrity sha512-fpW2W/BqEzqPp29QS+MwwfisHCQZtiduTe/m8idFo0xbti9fIZ2WVhAsCv4ggFVH3AgCkVdpoOCtQC6gBrdhjw== dependencies: is-what "^4.1.8" +copy-to-clipboard@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" + integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== + dependencies: + toggle-selection "^1.0.6" + core-js-compat@^3.25.1: version "3.28.0" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.28.0.tgz" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.28.0.tgz#c08456d854608a7264530a2afa281fadf20ecee6" integrity sha512-myzPgE7QodMg4nnd3K1TDoES/nADRStM8Gpz0D6nhkwbmwEnE0ZGJgoWsvQ722FR8D7xS0n0LV556RcEicjTyg== dependencies: browserslist "^4.21.5" -core-js-compat@^3.31.0: - version "3.31.1" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz" - integrity sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA== - dependencies: - browserslist "^4.21.9" - -core-js-pure@^3.23.3: - version "3.31.1" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.31.1.tgz" - integrity sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw== - core-util-is@1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@^7.0.1: +cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: version "7.1.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" @@ -5397,95 +2861,25 @@ cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz" - integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== - dependencies: - import-fresh "^3.2.1" - js-yaml "^4.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" which "^2.0.1" -crypto-browserify@^3.12.0: - version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -css-loader@^6.7.1, css-loader@^6.7.3: - version "6.8.1" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz" - integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== - dependencies: - icss-utils "^5.1.0" - postcss "^8.4.21" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.3" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.2.0" - semver "^7.3.8" +css-box-model@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/css-box-model/-/css-box-model-1.2.1.tgz#59951d3b81fd6b2074a62d49444415b0d2b4d7c1" + integrity sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw== + dependencies: + tiny-invariant "^1.0.6" css-select@^4.1.3: version "4.3.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: boolbase "^1.0.0" @@ -5496,7 +2890,7 @@ css-select@^4.1.3: css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== dependencies: mdn-data "2.0.14" @@ -5504,79 +2898,62 @@ css-tree@^1.1.2, css-tree@^1.1.3: css-what@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - csso@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== dependencies: css-tree "^1.1.2" -csstype@^3.0.2: +csstype@^3.0.11, csstype@^3.0.2: version "3.1.1" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== cwise-compiler@^1.1.2: version "1.1.3" - resolved "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/cwise-compiler/-/cwise-compiler-1.1.3.tgz#f4d667410e850d3a313a7d2db7b1e505bb034cc5" integrity sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ== dependencies: uniq "^1.0.0" damerau-levenshtein@^1.0.8: version "1.0.8" - resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" data-uri-to-buffer@0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz#18ae979a6a0ca994b0625853916d2662bbae0b1a" integrity sha512-Cp+jOa8QJef5nXS5hU7M1DWzXPEIoVR3kbV0dQuVGwROZg8bGf1DcCnkmajBTnvghTtSNMUdRrPjgaT6ZQucbw== -debug@2.6.9, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: - ms "2.0.0" + ms "^2.1.1" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@^3.2.6, debug@^3.2.7: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - deep-equal@^2.0.5: version "2.2.0" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== dependencies: call-bind "^1.0.2" @@ -5599,377 +2976,144 @@ deep-equal@^2.0.5: deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: version "4.3.0" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== -default-browser-id@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - -define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - define-lazy-prop@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== define-properties@^1.1.3, define-properties@^1.1.4: version "1.2.0" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== dependencies: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -defu@^6.1.2: - version "6.1.2" - resolved "https://registry.npmjs.org/defu/-/defu-6.1.2.tgz" - integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ== - -del@^6.0.0: - version "6.1.1" - resolved "https://registry.npmjs.org/del/-/del-6.1.1.tgz" - integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== - dependencies: - globby "^11.0.1" - graceful-fs "^4.2.4" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.2" - p-map "^4.0.0" - rimraf "^3.0.2" - slash "^3.0.0" - delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -dequal@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== - -des.js@^1.0.0: +detect-node-es@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz" - integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-indent@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - -detect-package-manager@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz" - integrity sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A== - dependencies: - execa "^5.1.1" - -detect-port@^1.3.0: - version "1.5.1" - resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz" - integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== - dependencies: - address "^1.0.1" - debug "4" - -didyoumean@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" - integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" + resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" + integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" -dlv@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.5.9: - version "0.5.16" - resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz" - integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== - -dom-converter@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - dom-serializer@^1.0.1: version "1.4.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" domhandler "^4.2.0" entities "^2.0.0" -domain-browser@^4.22.0: - version "4.22.0" - resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-4.22.0.tgz" - integrity sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw== - domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: +domhandler@^4.2.0, domhandler@^4.3.1: version "4.3.1" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: domelementtype "^2.2.0" -domutils@^2.5.2, domutils@^2.8.0: +domutils@^2.8.0: version "2.8.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" domelementtype "^2.2.0" domhandler "^4.2.0" -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dotenv-expand@^10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz" - integrity sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A== - -dotenv@^16.0.0: - version "16.3.1" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz" - integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== - -duplexify@^3.5.0, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -ejs@^3.1.8: - version "3.1.9" - resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz" - integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== - dependencies: - jake "^10.8.5" - electron-to-chromium@^1.4.284: version "1.4.311" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.311.tgz" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.311.tgz#953bc9a4767f5ce8ec125f9a1ad8e00e8f67e479" integrity sha512-RoDlZufvrtr2Nx3Yx5MB8jX3aHIxm8nRWPJm3yVvyHmyKaRvn90RjzB6hNnt0AkhS3IInJdyRfQb4mWhPvUjVw== -electron-to-chromium@^1.4.431: - version "1.4.454" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.454.tgz" - integrity sha512-pmf1rbAStw8UEQ0sr2cdJtWl48ZMuPD9Sto8HVQOq9vx9j2WgDEN6lYoaqFvqEHYOmGA9oRGn7LqWI9ta0YugQ== - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -endent@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz" - integrity sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w== - dependencies: - dedent "^0.7.0" - fast-json-parse "^1.0.3" - objectorarray "^1.0.5" - enhanced-resolve@^5.10.0: version "5.12.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" -enhanced-resolve@^5.15.0, enhanced-resolve@^5.7.0: - version "5.15.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz" - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - entities@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== entities@^4.4.0: version "4.4.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== -envinfo@^7.7.3: - version "7.10.0" - resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz" - integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== - -errno@^0.1.1: - version "0.1.8" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -error-stack-parser@^2.0.6: - version "2.1.4" - resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz" - integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== - dependencies: - stackframe "^1.3.4" - es-abstract@^1.19.0, es-abstract@^1.20.4: version "1.21.1" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6" integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== dependencies: available-typed-arrays "^1.0.5" @@ -6006,21 +3150,9 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: unbox-primitive "^1.0.2" which-typed-array "^1.1.9" -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - es-get-iterator@^1.1.2: version "1.1.3" - resolved "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== dependencies: call-bind "^1.0.2" @@ -6033,14 +3165,9 @@ es-get-iterator@^1.1.2: isarray "^2.0.5" stop-iteration-iterator "^1.0.0" -es-module-lexer@^1.2.1: - version "1.3.0" - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz" - integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== - es-set-tostringtag@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== dependencies: get-intrinsic "^1.1.3" @@ -6049,99 +3176,38 @@ es-set-tostringtag@^2.0.1: es-shim-unscopables@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== dependencies: has "^1.0.3" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" is-symbol "^1.0.2" -es6-object-assign@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz" - integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== - -esbuild-plugin-alias@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz" - integrity sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ== - -esbuild-register@^3.4.0: - version "3.4.2" - resolved "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.4.2.tgz" - integrity sha512-kG/XyTDyz6+YDuyfB9ZoSIOOmgyFCH+xPRtsCa8W85HLRV5Csp+o3jWVbOSHgSLfyLc5DmP+KFDNwty4mEjC+Q== - dependencies: - debug "^4.3.4" - -esbuild@^0.17.0: - version "0.17.19" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz" - integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== - optionalDependencies: - "@esbuild/android-arm" "0.17.19" - "@esbuild/android-arm64" "0.17.19" - "@esbuild/android-x64" "0.17.19" - "@esbuild/darwin-arm64" "0.17.19" - "@esbuild/darwin-x64" "0.17.19" - "@esbuild/freebsd-arm64" "0.17.19" - "@esbuild/freebsd-x64" "0.17.19" - "@esbuild/linux-arm" "0.17.19" - "@esbuild/linux-arm64" "0.17.19" - "@esbuild/linux-ia32" "0.17.19" - "@esbuild/linux-loong64" "0.17.19" - "@esbuild/linux-mips64el" "0.17.19" - "@esbuild/linux-ppc64" "0.17.19" - "@esbuild/linux-riscv64" "0.17.19" - "@esbuild/linux-s390x" "0.17.19" - "@esbuild/linux-x64" "0.17.19" - "@esbuild/netbsd-x64" "0.17.19" - "@esbuild/openbsd-x64" "0.17.19" - "@esbuild/sunos-x64" "0.17.19" - "@esbuild/win32-arm64" "0.17.19" - "@esbuild/win32-ia32" "0.17.19" - "@esbuild/win32-x64" "0.17.19" - escalade@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionalDependencies: - source-map "~0.6.1" - eslint-config-next@^13.1.6: version "13.2.1" - resolved "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.2.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.2.1.tgz#644fb3496b832bc1e32f2c57cce1ec3eeb7bb7a1" integrity sha512-2GAx7EjSiCzJN6H2L/v1kbYrNiwQxzkyjy6eWSjuhAKt+P6d3nVNHGy9mON8ZcYd72w/M8kyMjm4UB9cvijgrw== dependencies: "@next/eslint-plugin-next" "13.2.1" @@ -6156,7 +3222,7 @@ eslint-config-next@^13.1.6: eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: version "0.3.7" - resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== dependencies: debug "^3.2.7" @@ -6165,7 +3231,7 @@ eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: eslint-import-resolver-typescript@^3.5.2: version "3.5.3" - resolved "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.3.tgz" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.3.tgz#db5ed9e906651b7a59dd84870aaef0e78c663a05" integrity sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ== dependencies: debug "^4.3.4" @@ -6178,14 +3244,14 @@ eslint-import-resolver-typescript@^3.5.2: eslint-module-utils@^2.7.4: version "2.7.4" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== dependencies: debug "^3.2.7" eslint-plugin-import@^2.26.0: version "2.27.5" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== dependencies: array-includes "^3.1.6" @@ -6206,7 +3272,7 @@ eslint-plugin-import@^2.26.0: eslint-plugin-jsx-a11y@^6.5.1: version "6.7.1" - resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== dependencies: "@babel/runtime" "^7.20.7" @@ -6228,12 +3294,12 @@ eslint-plugin-jsx-a11y@^6.5.1: eslint-plugin-react-hooks@^4.5.0: version "4.6.0" - resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== eslint-plugin-react@^7.31.7: version "7.32.2" - resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== dependencies: array-includes "^3.1.6" @@ -6252,19 +3318,9 @@ eslint-plugin-react@^7.31.7: semver "^6.3.0" string.prototype.matchall "^4.0.8" -eslint-plugin-storybook@^0.6.12: - version "0.6.12" - resolved "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.12.tgz" - integrity sha512-XbIvrq6hNVG6rpdBr+eBw63QhOMLpZneQVSooEDow8aQCWGCk/5vqtap1yxpVydNfSxi3S/3mBBRLQqKUqQRww== - dependencies: - "@storybook/csf" "^0.0.1" - "@typescript-eslint/utils" "^5.45.0" - requireindex "^1.1.0" - ts-dedent "^2.2.0" - -eslint-scope@5.1.1, eslint-scope@^5.1.1: +eslint-scope@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" @@ -6272,7 +3328,7 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: eslint-scope@^7.1.1: version "7.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== dependencies: esrecurse "^4.3.0" @@ -6280,24 +3336,24 @@ eslint-scope@^7.1.1: eslint-utils@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== dependencies: eslint-visitor-keys "^2.0.0" eslint-visitor-keys@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint-visitor-keys@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.34.0: version "8.35.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323" integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw== dependencies: "@eslint/eslintrc" "^2.0.0" @@ -6343,97 +3399,45 @@ eslint@^8.34.0: espree@^9.4.0: version "9.4.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" -esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - esquery@^1.4.2: version "1.4.2" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.2.tgz" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.2.tgz#c6d3fee05dd665808e2ad870631f221f5617b1d1" integrity sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estree-to-babel@^3.1.0: - version "3.2.1" - resolved "https://registry.npmjs.org/estree-to-babel/-/estree-to-babel-3.2.1.tgz" - integrity sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg== - dependencies: - "@babel/traverse" "^7.1.6" - "@babel/types" "^7.2.0" - c8 "^7.6.0" - esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -events@^3.2.0, events@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^5.0.0, execa@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - execa@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== dependencies: cross-spawn "^7.0.3" @@ -6446,85 +3450,29 @@ execa@^6.1.0: signal-exit "^3.0.7" strip-final-newline "^3.0.0" -express@^4.17.3: - version "4.18.2" - resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend@^3.0.0, extend@~3.0.2: +extend@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extract-zip@^1.6.6: - version "1.7.0" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0: version "1.4.1" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.2.11, fast-glob@^3.2.9: version "3.2.12" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -6533,179 +3481,53 @@ fast-glob@^3.2.11, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.12: - version "3.3.0" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz" - integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== - 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.4" - -fast-json-parse@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz" - integrity sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw== - -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: version "1.15.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" - integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== - dependencies: - pend "~1.2.0" - -fetch-retry@^5.0.2: - version "5.0.6" - resolved "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz" - integrity sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ== - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" -file-system-cache@2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/file-system-cache/-/file-system-cache-2.3.0.tgz" - integrity sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ== - dependencies: - fs-extra "11.1.1" - ramda "0.29.0" - -filelist@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== - dependencies: - minimatch "^5.0.1" - fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" -filter-obj@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/filter-obj/-/filter-obj-2.0.2.tgz" - integrity sha512-lO3ttPjHZRfjMcxWKb1j1eDhTFsu4meeR3lnMcnBFhk6RuLhvEiuALu2TlfL310ph4lCYYwgF/ElIjdP739tdg== - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-cache-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-cache-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz" - integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== - dependencies: - common-path-prefix "^3.0.0" - pkg-dir "^7.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== find-up@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" path-exists "^4.0.0" -find-up@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz" - integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== - dependencies: - locate-path "^7.1.0" - path-exists "^5.0.0" - -find-yarn-workspace-root@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" - integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== - dependencies: - micromatch "^4.0.2" - flat-cache@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: flatted "^3.1.0" @@ -6713,69 +3535,36 @@ flat-cache@^3.0.4: flatted@^3.1.0: version "3.2.7" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -flow-parser@0.*: - version "0.211.1" - resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.211.1.tgz" - integrity sha512-TjUjPTe22yM1DYKDqsmnUblJ0Vs5WJWP3FeaXU8L1gGKGrAQBdxRvs0CRj6NXYF8gugej4JyRWGBbaiVunC9uw== +focus-lock@^0.11.6: + version "0.11.6" + resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.11.6.tgz#e8821e21d218f03e100f7dc27b733f9c4f61e683" + integrity sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg== + dependencies: + tslib "^2.0.3" follow-redirects@^1.15.0: version "1.15.2" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== for-each@^0.3.3: version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" - forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== -fork-ts-checker-webpack-plugin@^7.2.8: - version "7.3.0" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.3.0.tgz" - integrity sha512-IN+XTzusCjR5VgntYFgxbxVx3WraPRnKehBFrf00cMSrtUuW9MsG9dhL6MWpY6MkjC3wVwoujfCDgZZCQwbswA== - dependencies: - "@babel/code-frame" "^7.16.7" - chalk "^4.1.2" - chokidar "^3.5.3" - cosmiconfig "^7.0.1" - deepmerge "^4.2.2" - fs-extra "^10.0.0" - memfs "^3.4.1" - minimatch "^3.0.4" - node-abort-controller "^3.0.1" - schema-utils "^3.1.1" - semver "^7.3.5" - tapable "^2.2.1" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - form-data@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" @@ -6784,96 +3573,42 @@ form-data@^4.0.0: form-data@~2.3.2: version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@11.1.1, fs-extra@^11.1.0: - version "11.1.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^10.0.0: - version "10.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== +framer-motion@^9.0.2: + version "9.1.7" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-9.1.7.tgz#1dc7dbd5bca086c90d09847c3fcaec3ecb7906af" + integrity sha512-nKxBkIO4IPkMEqcBbbATxsVjwPYShKl051yhBv9628iAH6JLeHD0siBHxkL62oQzMC1+GNX73XtPjgP753ufuw== dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" + tslib "^2.4.0" + optionalDependencies: + "@emotion/is-prop-valid" "^0.8.2" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== +framesync@6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/framesync/-/framesync-6.1.2.tgz#755eff2fb5b8f3b4d2b266dd18121b300aefea27" + integrity sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g== dependencies: - minipass "^3.0.0" - -fs-monkey@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz" - integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== + tslib "2.4.0" fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - function.prototype.name@^1.1.5: version "1.1.5" - resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== dependencies: call-bind "^1.0.2" @@ -6883,67 +3618,31 @@ function.prototype.name@^1.1.5: functions-have-names@^1.2.2: version "1.2.3" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== dependencies: function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.3" -get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-npm-tarball-url@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.0.3.tgz" - integrity sha512-R/PW6RqyaBQNWYaSyfrh54/qtcnOp22FHCCiRhSSZj0FP3KQWCsxxt0DzIdVTbwTqe9CtQfvl/FPD4UIPt4pqw== - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-nonce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" + integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== get-pixels@^3.3.2: version "3.3.3" - resolved "https://registry.npmjs.org/get-pixels/-/get-pixels-3.3.3.tgz" + resolved "https://registry.yarnpkg.com/get-pixels/-/get-pixels-3.3.3.tgz#71e2dfd4befb810b5478a61c6354800976ce01c7" integrity sha512-5kyGBn90i9tSMUVHTqkgCHsoWoR+/lGbl4yC83Gefyr0HLIhgSWEx/2F/3YgsZ7UpYNuM6pDhDK7zebrUJ5nXg== dependencies: data-uri-to-buffer "0.0.3" @@ -6958,19 +3657,14 @@ get-pixels@^3.3.2: request "^2.44.0" through "^2.3.4" -get-port@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - -get-stream@^6.0.0, get-stream@^6.0.1: +get-stream@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" @@ -6978,75 +3672,38 @@ get-symbol-description@^1.0.0: get-tsconfig@^4.2.0: version "4.4.0" - resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.4.0.tgz#64eee64596668a81b8fce18403f94f245ee0d4e5" integrity sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ== getpass@^0.1.1: version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" -giget@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/giget/-/giget-1.1.2.tgz" - integrity sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A== - dependencies: - colorette "^2.0.19" - defu "^6.1.2" - https-proxy-agent "^5.0.1" - mri "^1.2.0" - node-fetch-native "^1.0.2" - pathe "^1.1.0" - tar "^6.1.13" - -github-slugger@^1.0.0: - version "1.5.0" - resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz" - integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== - -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" -glob-promise@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.3.tgz" - integrity sha512-m+kxywR5j/2Z2V9zvHKfwwL5Gp7gIFEBX+deTB9w2lJB+wSuw9kcS43VfvTAMk8TXL5JCl/cCjsR+tgNVspGyA== - dependencies: - "@types/glob" "^8.0.0" - glob-to-regexp@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.1.6: - version "7.1.6" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@7.1.7: version "7.1.7" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" @@ -7056,9 +3713,9 @@ glob@7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.1.3, glob@^7.1.4: +glob@^7.1.3: version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -7068,44 +3725,33 @@ glob@^7.0.0, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - globals@^11.1.0: version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: version "13.20.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: type-fest "^0.20.2" globalthis@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: define-properties "^1.1.3" globalyzer@0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465" integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q== -globby@^11.0.1, globby@^11.0.2, globby@^11.1.0: +globby@^11.1.0: version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -7117,7 +3763,7 @@ globby@^11.0.1, globby@^11.0.2, globby@^11.1.0: globby@^13.1.2: version "13.1.3" - resolved "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.3.tgz#f62baf5720bcb2c1330c8d4ef222ee12318563ff" integrity sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw== dependencies: dir-glob "^3.0.1" @@ -7128,68 +3774,44 @@ globby@^13.1.2: globrex@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== gopd@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: +graceful-fs@^4.1.2: version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graceful-fs@^4.2.4: version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== grapheme-splitter@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== -graphql@^16.8.1: - version "16.8.1" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" - integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== - -gunzip-maybe@^1.4.2: - version "1.4.2" - resolved "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz" - integrity sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw== - dependencies: - browserify-zlib "^0.1.4" - is-deflate "^1.0.0" - is-gzip "^1.0.0" - peek-stream "^1.1.0" - pumpify "^1.3.3" - through2 "^2.0.3" - -handlebars@^4.7.7: - version "4.7.7" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" +hamt_plus@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hamt_plus/-/hamt_plus-1.0.2.tgz#e21c252968c7e33b20f6a1b094cd85787a265601" + integrity sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA== har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== har-validator@~5.1.3: version "5.1.5" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: ajv "^6.12.3" @@ -7197,259 +3819,84 @@ har-validator@~5.1.3: has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== dependencies: get-intrinsic "^1.1.1" -has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - has-proto@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - has@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasown@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -headers-polyfill@3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/headers-polyfill/-/headers-polyfill-3.2.5.tgz#6e67d392c9d113d37448fe45014e0afdd168faed" - integrity sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -html-entities@^2.1.0: - version "2.4.0" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz" - integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -html-minifier-terser@^6.0.2: - version "6.1.0" - resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" - integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== - dependencies: - camel-case "^4.1.2" - clean-css "^5.2.2" - commander "^8.3.0" - he "^1.2.0" - param-case "^3.0.4" - relateurl "^0.2.7" - terser "^5.10.0" - -html-tags@^3.1.0: - version "3.3.1" - resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz" - integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== - -html-webpack-plugin@^5.5.0: - version "5.5.3" - resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz" - integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== - dependencies: - "@types/html-minifier-terser" "^6.0.0" - html-minifier-terser "^6.0.2" - lodash "^4.17.21" - pretty-error "^4.0.0" - tapable "^2.0.0" - -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== +hoist-non-react-statics@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" + react-is "^16.7.0" http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" - integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== - -https-proxy-agent@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz" - integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== - dependencies: - agent-base "5" - debug "4" - -https-proxy-agent@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - human-signals@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== husky@^8.0.3: version "8.0.3" - resolved "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.6.3: - version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -ieee754@^1.1.13, ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - ignore@^5.2.0: version "5.2.4" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== -image-size@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz" - integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg== - dependencies: - queue "6.0.2" - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz" - integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== - import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -7457,85 +3904,51 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: +inherits@2: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inquirer@^8.2.0: - version "8.2.6" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" - integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" - ora "^5.4.1" - run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - wrap-ansi "^6.0.1" - internal-slot@^1.0.3, internal-slot@^1.0.4: version "1.0.5" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: get-intrinsic "^1.2.0" has "^1.0.3" side-channel "^1.0.4" -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" iota-array@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/iota-array/-/iota-array-1.0.0.tgz#81ef57fe5d05814cd58c2483632a99c30a0e8087" integrity sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA== -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-arguments@^1.0.4, is-arguments@^1.1.1: +is-arguments@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: call-bind "^1.0.2" @@ -7543,7 +3956,7 @@ is-arguments@^1.0.4, is-arguments@^1.1.1: is-array-buffer@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== dependencies: call-bind "^1.0.2" @@ -7552,26 +3965,19 @@ is-array-buffer@^3.0.1: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -7579,137 +3985,85 @@ is-boolean-object@^1.1.0: is-buffer@^1.0.2: version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.10.0, is-core-module@^2.11.0, is-core-module@^2.9.0: version "2.11.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" -is-deflate@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz" - integrity sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ== - is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-fullwidth-code-point@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-gzip@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz" - integrity sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ== - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - is-map@^2.0.1, is-map@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== -is-nan@^1.2.1: - version "1.3.2" - resolved "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz" - integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - is-negative-zero@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== -is-node-process@^1.0.1, is-node-process@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-node-process/-/is-node-process-1.2.0.tgz#ea02a1b90ddb3934a19aea414e88edef7e11d134" - integrity sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw== - is-number-object@^1.0.4: version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-inside@^3.0.2, is-path-inside@^3.0.3: +is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-object@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -7717,43 +4071,38 @@ is-regex@^1.1.4: is-set@^2.0.1, is-set@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== is-shared-array-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== dependencies: call-bind "^1.0.2" -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - is-stream@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: +is-typed-array@^1.1.10, is-typed-array@^1.1.9: version "1.1.10" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== dependencies: available-typed-arrays "^1.0.5" @@ -7764,339 +4113,133 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - is-weakmap@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" is-weakset@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== dependencies: call-bind "^1.0.2" get-intrinsic "^1.1.1" -is-what@^3.14.1: - version "3.14.1" - resolved "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz" - integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== - is-what@^4.1.8: - version "4.1.8" - resolved "https://registry.npmjs.org/is-what/-/is-what-4.1.8.tgz" - integrity sha512-yq8gMao5upkPoGEU9LsB2P+K3Kt8Q3fQFCGyNCWOAnJAMzEXVV9drYb0TXr42TTliLLhKIBvulgAXgtLLnwzGA== - -is-wsl@^2.1.1, is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -isomorphic-unfetch@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz" - integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== - dependencies: - node-fetch "^2.6.1" - unfetch "^4.2.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-reports@^3.1.4: - version "3.1.5" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jake@^10.8.5: - version "10.8.7" - resolved "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz" - integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.4" - minimatch "^3.1.2" - -jest-haste-map@^29.6.1: - version "29.6.1" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.1.tgz" - integrity sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig== - dependencies: - "@jest/types" "^29.6.1" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.4.3" - jest-util "^29.6.1" - jest-worker "^29.6.1" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-mock@^27.0.6: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - -jest-regex-util@^29.4.3: - version "29.4.3" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz" - integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== + version "4.1.8" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.8.tgz#0e2a8807fda30980ddb2571c79db3d209b14cbe4" + integrity sha512-yq8gMao5upkPoGEU9LsB2P+K3Kt8Q3fQFCGyNCWOAnJAMzEXVV9drYb0TXr42TTliLLhKIBvulgAXgtLLnwzGA== -jest-util@^29.6.1: - version "29.6.1" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.6.1.tgz" - integrity sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg== +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: - "@jest/types" "^29.6.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" + is-docker "^2.0.0" -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== -jest-worker@^29.6.1: - version "29.6.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.1.tgz" - integrity sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA== - dependencies: - "@types/node" "*" - jest-util "^29.6.1" - merge-stream "^2.0.0" - supports-color "^8.0.0" +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -jiti@^1.18.2: - version "1.19.1" - resolved "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz" - integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg== +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== jpeg-js@^0.4.1: version "0.4.4" - resolved "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.4.tgz#a9f1c6f1f9f0fa80cdb3484ed9635054d28936aa" integrity sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg== -js-levenshtein@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - js-sdsl@^4.1.4: version "4.3.0" - resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== -jscodeshift@^0.14.0: - version "0.14.0" - resolved "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz" - integrity sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA== - dependencies: - "@babel/core" "^7.13.16" - "@babel/parser" "^7.13.16" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" - "@babel/preset-flow" "^7.13.13" - "@babel/preset-typescript" "^7.13.0" - "@babel/register" "^7.13.16" - babel-core "^7.0.0-bridge.0" - chalk "^4.1.2" - flow-parser "0.*" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - neo-async "^2.5.0" - node-dir "^0.1.17" - recast "^0.21.0" - temp "^0.8.4" - write-file-atomic "^2.3.0" - jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: +json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - json-schema@0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json-stable-stringify@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz#52d4361b47d49168bcc4e564189a42e5a7439454" - integrity sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg== - dependencies: - call-bind "^1.0.5" - isarray "^2.0.5" - jsonify "^0.0.1" - object-keys "^1.1.1" - json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: +json5@^2.2.2: version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" - integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== - jsprim@^1.2.2: version "1.4.2" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" @@ -8106,85 +4249,27 @@ jsprim@^1.2.2: "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: version "3.3.3" - resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== dependencies: array-includes "^3.1.5" object.assign "^4.1.3" -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klaw-sync@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" - integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== - dependencies: - graceful-fs "^4.1.11" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -klona@^2.0.4: - version "2.0.6" - resolved "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz" - integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== - language-subtag-registry@~0.3.2: version "0.3.22" - resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== language-tags@=1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== dependencies: language-subtag-registry "~0.3.2" -lazy-universal-dotenv@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-4.0.0.tgz" - integrity sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg== - dependencies: - app-root-dir "^1.0.2" - dotenv "^16.0.0" - dotenv-expand "^10.0.0" - -less-loader@^11.1.0, less-loader@^11.1.3: - version "11.1.3" - resolved "https://registry.npmjs.org/less-loader/-/less-loader-11.1.3.tgz" - integrity sha512-A5b7O8dH9xpxvkosNrP0dFp2i/dISOJa9WwGF3WJflfqIERE2ybxh1BFDj5CovC2+jCE4M354mk90hN6ziXlVw== - -less@^4.1.3: - version "4.1.3" - resolved "https://registry.npmjs.org/less/-/less-4.1.3.tgz" - integrity sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA== - dependencies: - copy-anything "^2.0.1" - parse-node-version "^1.0.1" - tslib "^2.3.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - needle "^3.1.0" - source-map "~0.6.0" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - levn@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -8192,22 +4277,17 @@ levn@^0.4.1: lilconfig@2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== -lilconfig@^2.0.5, lilconfig@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== lint-staged@^13.1.1: version "13.1.2" - resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-13.1.2.tgz" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.2.tgz#443636a0cfd834d5518d57d228130dc04c83d6fb" integrity sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w== dependencies: cli-truncate "^3.1.0" @@ -8226,7 +4306,7 @@ lint-staged@^13.1.1: listr2@^5.0.5: version "5.0.7" - resolved "https://registry.npmjs.org/listr2/-/listr2-5.0.7.tgz" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.7.tgz#de69ccc4caf6bea7da03c74f7a2ffecf3904bd53" integrity sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw== dependencies: cli-truncate "^2.1.0" @@ -8238,80 +4318,31 @@ listr2@^5.0.5: through "^2.3.8" wrap-ansi "^7.0.0" -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== - -loader-utils@^2.0.0, loader-utils@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz" - integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -loader-utils@^3.2.0: - version "3.2.1" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz" - integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" -locate-path@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz" - integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== - dependencies: - p-locate "^6.0.0" - lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" +lodash.mergewith@4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== log-update@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== dependencies: ansi-escapes "^4.3.0" @@ -8319,349 +4350,112 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" -lz-string@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz" - integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -map-or-similar@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz" - integrity sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg== - -markdown-to-jsx@^7.1.8: - version "7.2.1" - resolved "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.2.1.tgz" - integrity sha512-9HrdzBAo0+sFz9ZYAGT5fB8ilzTW+q6lPocRxrIesMO+aB40V9MgFfbfMXxlGjf22OpRy+IXlvVaQenicdpgbg== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdast-util-definitions@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz" - integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== - dependencies: - unist-util-visit "^2.0.0" - -mdast-util-to-string@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz" - integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== - mdn-data@2.0.14: version "2.0.14" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -memfs@^3.4.1, memfs@^3.4.3: - version "3.6.0" - resolved "https://registry.npmjs.org/memfs/-/memfs-3.6.0.tgz" - integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== - dependencies: - fs-monkey "^1.0.4" - -memoizerific@^1.11.3: - version "1.11.3" - resolved "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz" - integrity sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog== - dependencies: - map-or-similar "^1.5.0" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: +micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" picomatch "^2.3.1" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": +mime-db@1.52.0: version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.0.1, mime-types@^2.1.12, mime-types@^2.1.25, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.0.1, mime-types@^2.1.12, mime-types@~2.1.19: version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -mime@1.6.0, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.0.3: - version "2.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-fn@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: - version "5.1.6" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass@^3.0.0: - version "3.3.6" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mkdirp-classic@^0.5.2: - version "0.5.3" - resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - -mkdirp@^0.5.4: - version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mri@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.1.1: +ms@^2.1.1: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -msw-storybook-addon@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/msw-storybook-addon/-/msw-storybook-addon-1.10.0.tgz#8855cb0171ed2ac0649b1ce386e0e0d67420cfd4" - integrity sha512-soCTMTf7DnLeaMnFHPrtVgbyeFTJALVvnDHpzzXpJad+HOzJgQdwU4EAzVfDs1q+X5cVEgxOdAhSMC7ljvnSXg== - dependencies: - is-node-process "^1.0.1" - -msw@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/msw/-/msw-1.3.2.tgz#35e0271293e893fc3c55116e90aad5d955c66899" - integrity sha512-wKLhFPR+NitYTkQl5047pia0reNGgf0P6a1eTnA5aNlripmiz0sabMvvHcicE8kQ3/gZcI0YiPFWmYfowfm3lA== - dependencies: - "@mswjs/cookies" "^0.2.2" - "@mswjs/interceptors" "^0.17.10" - "@open-draft/until" "^1.0.3" - "@types/cookie" "^0.4.1" - "@types/js-levenshtein" "^1.1.1" - chalk "^4.1.1" - chokidar "^3.4.2" - cookie "^0.4.2" - graphql "^16.8.1" - headers-polyfill "3.2.5" - inquirer "^8.2.0" - is-node-process "^1.2.0" - js-levenshtein "^1.1.6" - node-fetch "^2.6.7" - outvariant "^1.4.0" - path-to-regexp "^6.2.0" - strict-event-emitter "^0.4.3" - type-fest "^2.19.0" - yargs "^17.3.1" - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -mz@^2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nanoid@^3.3.1, nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - nanoid@^3.3.4: version "3.3.4" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== natural-compare-lite@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== ndarray-pack@^1.1.1: version "1.2.1" - resolved "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ndarray-pack/-/ndarray-pack-1.2.1.tgz#8caebeaaa24d5ecf70ff86020637977da8ee585a" integrity sha512-51cECUJMT0rUZNQa09EoKsnFeDL4x2dHRT0VR5U2H5ZgEcm95ZDWcMA5JShroXjHOejmAD/fg8+H+OvUnVXz2g== dependencies: cwise-compiler "^1.1.2" @@ -8669,34 +4463,15 @@ ndarray-pack@^1.1.1: ndarray@^1.0.13: version "1.0.19" - resolved "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz" + resolved "https://registry.yarnpkg.com/ndarray/-/ndarray-1.0.19.tgz#6785b5f5dfa58b83e31ae5b2a058cfd1ab3f694e" integrity sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ== dependencies: iota-array "^1.0.0" is-buffer "^1.0.2" -needle@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz" - integrity sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ== - dependencies: - debug "^3.2.6" - iconv-lite "^0.6.3" - sax "^1.2.4" - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - next@13.4.7: version "13.4.7" - resolved "https://registry.npmjs.org/next/-/next-13.4.7.tgz" + resolved "https://registry.yarnpkg.com/next/-/next-13.4.7.tgz#2ab20e6fada2e25cb81bd17f68956705ffd9824e" integrity sha512-M8z3k9VmG51SRT6v5uDKdJXcAqLzP3C+vaKfLIAM0Mhx1um1G7MDnO63+m52qPdZfrTFzMZNzfsgvm3ghuVHIQ== dependencies: "@next/env" "13.4.7" @@ -8718,163 +4493,53 @@ next@13.4.7: "@next/swc-win32-ia32-msvc" "13.4.7" "@next/swc-win32-x64-msvc" "13.4.7" -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-abort-controller@^3.0.1: - version "3.1.1" - resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz" - integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== - node-bitmap@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/node-bitmap/-/node-bitmap-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/node-bitmap/-/node-bitmap-0.0.1.tgz#180eac7003e0c707618ef31368f62f84b2a69091" integrity sha512-Jx5lPaaLdIaOsj2mVLWMWulXF6GQVdyLvNSxmiYCvZ8Ma2hfKX0POoR2kgKOqz+oFsRreq0yYZjQ2wjE9VNzCA== -node-dir@^0.1.10, node-dir@^0.1.17: - version "0.1.17" - resolved "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz" - integrity sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg== - dependencies: - minimatch "^3.0.2" - -node-fetch-native@^1.0.2: - version "1.2.0" - resolved "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.2.0.tgz" - integrity sha512-5IAMBTl9p6PaAjYCnMv5FmqIF6GcZnawAVnzaCG0rX2aYZJ4CxEkZNtVPuTRug7fL7wyM5BQYTlAzcyMPi6oTQ== - -node-fetch@^2.0.0, node-fetch@^2.6.1, node-fetch@^2.6.7: - version "2.6.12" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz" - integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== - dependencies: - whatwg-url "^5.0.0" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-polyfill-webpack-plugin@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-2.0.1.tgz" - integrity sha512-ZUMiCnZkP1LF0Th2caY6J/eKKoA0TefpoVa68m/LQU1I/mE8rGt4fNYGgNuCcK+aG8P8P43nbeJ2RqJMOL/Y1A== - dependencies: - assert "^2.0.0" - browserify-zlib "^0.2.0" - buffer "^6.0.3" - console-browserify "^1.2.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.12.0" - domain-browser "^4.22.0" - events "^3.3.0" - filter-obj "^2.0.2" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "^1.0.1" - process "^0.11.10" - punycode "^2.1.1" - querystring-es3 "^0.2.1" - readable-stream "^4.0.0" - stream-browserify "^3.0.0" - stream-http "^3.2.0" - string_decoder "^1.3.0" - timers-browserify "^2.0.12" - tty-browserify "^0.0.1" - type-fest "^2.14.0" - url "^0.11.0" - util "^0.12.4" - vm-browserify "^1.1.2" - -node-releases@^2.0.12: - version "2.0.13" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== - node-releases@^2.0.8: version "2.0.10" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: +normalize-path@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - npm-run-path@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== dependencies: path-key "^4.0.0" -npmlog@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - nth-check@^2.0.1: version "2.1.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.0.1, object-assign@^4.1.1: +object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.3" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-is@^1.0.1, object-is@^1.1.5: +object-is@^1.1.5: version "1.1.5" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== dependencies: call-bind "^1.0.2" @@ -8882,12 +4547,12 @@ object-is@^1.0.1, object-is@^1.1.5: object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.3, object.assign@^4.1.4: version "4.1.4" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: call-bind "^1.0.2" @@ -8897,7 +4562,7 @@ object.assign@^4.1.3, object.assign@^4.1.4: object.entries@^1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== dependencies: call-bind "^1.0.2" @@ -8906,7 +4571,7 @@ object.entries@^1.1.6: object.fromentries@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== dependencies: call-bind "^1.0.2" @@ -8915,7 +4580,7 @@ object.fromentries@^2.0.6: object.hasown@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== dependencies: define-properties "^1.1.4" @@ -8923,67 +4588,42 @@ object.hasown@^1.1.2: object.values@^1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" es-abstract "^1.20.4" -objectorarray@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz" - integrity sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg== - omggif@^1.0.5: version "1.0.10" - resolved "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" onetime@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== dependencies: mimic-fn "^4.0.0" -open@^7.0.3, open@^7.4.2: - version "7.4.2" - resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - open@^8.4.0: version "8.4.2" - resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: define-lazy-prop "^2.0.0" @@ -8992,7 +4632,7 @@ open@^8.4.0: optionator@^0.9.1: version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: deep-is "^0.1.3" @@ -9002,143 +4642,44 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ora@^5.4.1: - version "5.4.1" - resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" - integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -outvariant@^1.2.1, outvariant@^1.4.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/outvariant/-/outvariant-1.4.2.tgz#f54f19240eeb7f15b28263d5147405752d8e2066" - integrity sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ== - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" -p-locate@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz" - integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - dependencies: - p-limit "^4.0.0" - p-map@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@~0.2.0: - version "0.2.9" - resolved "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz" - integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -param-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - parse-data-uri@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/parse-data-uri/-/parse-data-uri-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/parse-data-uri/-/parse-data-uri-0.2.0.tgz#bf04d851dd5c87b0ab238e5d01ace494b604b4c9" integrity sha512-uOtts8NqDcaCt1rIsO3VFDRsAfgE4c6osG4d9z3l4dCBlxYFzni6Di/oNU270SDrjkfZuUvLZx1rxMyqh46Y9w== dependencies: data-uri-to-buffer "0.0.3" parse-json@^5.0.0: version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -9146,765 +4687,237 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-node-version@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz" - integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -patch-package@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.0.tgz#d191e2f1b6e06a4624a0116bcb88edd6714ede61" - integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA== - dependencies: - "@yarnpkg/lockfile" "^1.1.0" - chalk "^4.1.2" - ci-info "^3.7.0" - cross-spawn "^7.0.3" - find-yarn-workspace-root "^2.0.0" - fs-extra "^9.0.0" - json-stable-stringify "^1.0.2" - klaw-sync "^6.0.0" - minimist "^1.2.6" - open "^7.4.2" - rimraf "^2.6.3" - semver "^7.5.3" - slash "^2.0.0" - tmp "^0.0.33" - yaml "^2.2.2" - -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-exists@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz" - integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-key@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -path-to-regexp@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" - integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz" - integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== - -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -peek-stream@^1.1.0: - version "1.1.3" - resolved "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz" - integrity sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA== - dependencies: - buffer-from "^1.0.0" - duplexify "^3.5.0" - through2 "^2.0.3" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" - integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== - performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.0, picomatch@^2.3.1: +picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pidtree@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pirates@^4.0.1, pirates@^4.0.4, pirates@^4.0.5: - version "4.0.6" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== - dependencies: - find-up "^5.0.0" - -pkg-dir@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz" - integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== - dependencies: - find-up "^6.3.0" - pngjs@^3.3.3: version "3.4.0" - resolved "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== -pnp-webpack-plugin@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz" - integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== - dependencies: - ts-pnp "^1.1.6" - -polished@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz" - integrity sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ== - dependencies: - "@babel/runtime" "^7.17.8" - -postcss-import@^15.1.0: - version "15.1.0" - resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" - integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-js@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz" - integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== - dependencies: - camelcase-css "^2.0.1" - -postcss-load-config@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz" - integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== - dependencies: - lilconfig "^2.0.5" - yaml "^2.1.1" - -postcss-loader@^7.0.2, postcss-loader@^7.2.4: - version "7.3.3" - resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz" - integrity sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA== - dependencies: - cosmiconfig "^8.2.0" - jiti "^1.18.2" - semver "^7.3.8" - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz" - integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-nested@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz" - integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== - dependencies: - postcss-selector-parser "^6.0.11" - -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.13" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - postcss@8.4.14: version "8.4.14" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.25: - version "8.4.25" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz" - integrity sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postinstall-postinstall@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3" - integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ== - prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier-plugin-tailwindcss@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.3.0.tgz" - integrity sha512-009/Xqdy7UmkcTBpwlq7jsViDqXAYSOMLDrHAdTMlVZOrKfM2o9Ci7EMWTMZ7SkKBFTG04UM9F9iM2+4i6boDA== - -prettier@^2.8.0: - version "2.8.8" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - prettier@^2.8.4: version "2.8.4" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== -pretty-error@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz" - integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== - dependencies: - lodash "^4.17.20" - renderkid "^3.0.0" - -pretty-format@^27.0.2: - version "27.5.1" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-hrtime@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz" - integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -progress@^2.0.1: - version "2.0.3" - resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -prompts@^2.4.0: - version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.6.2, prop-types@^15.8.1: version "15.8.1" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" object-assign "^4.1.1" react-is "^16.13.1" -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -proxy-from-env@^1.0.0, proxy-from-env@^1.1.0: +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" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== - psl@^1.1.28: version "1.9.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== - punycode@^2.1.0, punycode@^2.1.1: version "2.3.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -puppeteer-core@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-2.1.1.tgz" - integrity sha512-n13AWriBMPYxnpbb6bnaY5YoY6rGj8vPLrz6CZF3o0qJNEwlcfJVxBzYZ0NJsQ21UbdJoijPCDrM++SUVEz7+w== - dependencies: - "@types/mime-types" "^2.1.0" - debug "^4.1.0" - extract-zip "^1.6.6" - https-proxy-agent "^4.0.0" - mime "^2.0.3" - mime-types "^2.1.25" - progress "^2.0.1" - proxy-from-env "^1.0.0" - rimraf "^2.6.1" - ws "^6.1.0" - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@^6.10.0, qs@^6.11.0: - version "6.11.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz" - integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== - dependencies: - side-channel "^1.0.4" - qs@~6.5.2: version "6.5.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -querystring-es3@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" - integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== - queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -queue@6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz" - integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== - dependencies: - inherits "~2.0.3" - -ramda@0.29.0: - version "0.29.0" - resolved "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz" - integrity sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== +react-clientside-effect@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz#29f9b14e944a376b03fb650eed2a754dd128ea3a" + integrity sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg== dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -react-colorful@^5.1.2: - version "5.6.1" - resolved "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz" - integrity sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw== - -react-docgen-typescript@^2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz" - integrity sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg== - -react-docgen@^5.0.0: - version "5.4.3" - resolved "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.3.tgz" - integrity sha512-xlLJyOlnfr8lLEEeaDZ+X2J/KJoe6Nr9AzxnkdQWush5hz2ZSu66w6iLMOScMmxoSHWpWMn+k3v5ZiyCfcWsOA== - dependencies: - "@babel/core" "^7.7.5" - "@babel/generator" "^7.12.11" - "@babel/runtime" "^7.7.6" - ast-types "^0.14.2" - commander "^2.19.0" - doctrine "^3.0.0" - estree-to-babel "^3.1.0" - neo-async "^2.6.1" - node-dir "^0.1.10" - strip-indent "^3.0.0" + "@babel/runtime" "^7.12.13" react-dom@18.2.0: version "18.2.0" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== dependencies: loose-envify "^1.1.0" scheduler "^0.23.0" -react-element-to-jsx-string@^15.0.0: - version "15.0.0" - resolved "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-15.0.0.tgz" - integrity sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ== - dependencies: - "@base2/pretty-print-object" "1.0.1" - is-plain-object "5.0.0" - react-is "18.1.0" - react-error-boundary@^3.1.4: version "3.1.4" - resolved "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz" + resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-3.1.4.tgz#255db92b23197108757a888b01e5b729919abde0" integrity sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA== dependencies: "@babel/runtime" "^7.12.5" +react-fast-compare@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" + integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== + +react-focus-lock@^2.9.2: + version "2.9.4" + resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-2.9.4.tgz#4753f6dcd167c39050c9d84f9c63c71b3ff8462e" + integrity sha512-7pEdXyMseqm3kVjhdVH18sovparAzLg5h6WvIx7/Ck3ekjhrrDMEegHSa3swwC8wgfdd7DIdUVRGeiHT9/7Sgg== + dependencies: + "@babel/runtime" "^7.0.0" + focus-lock "^0.11.6" + prop-types "^15.6.2" + react-clientside-effect "^1.2.6" + use-callback-ref "^1.3.0" + use-sidecar "^1.1.2" + react-hook-form@^7.43.2: version "7.43.2" - resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.43.2.tgz" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.43.2.tgz#d8ff71956dc3de258dce19d4b1c7e1c6a0188e67" integrity sha512-NvD3Oe2Y9hhqo2R4I4iJigDzSLpdMnzUpNMxlnzTbdiT7NT3BW0GxWCzEtwPudZMUPbZhNcSy1EcGAygyhDORg== -react-inspector@^6.0.0: - version "6.0.2" - resolved "https://registry.npmjs.org/react-inspector/-/react-inspector-6.0.2.tgz" - integrity sha512-x+b7LxhmHXjHoU/VrFAzw5iutsILRoYyDq97EDYdFpPLcvqtEzk4ZSZSQjnFPbr5T57tLXnHcqFYoN1pI6u8uQ== - react-intersection-observer@^9.4.3: version "9.4.3" - resolved "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.4.3.tgz" + resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.4.3.tgz#ec84ce0c25cad548075130ea045ac5c7adf908f3" integrity sha512-WNRqMQvKpupr6MzecAQI0Pj0+JQong307knLP4g/nBex7kYfIaZsPpXaIhKHR+oV8z+goUbH9e10j6lGRnTzlQ== -react-is@18.1.0: - version "18.1.0" - resolved "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz" - integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== - -react-is@^16.13.1: +react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +react-remove-scroll-bar@^2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz#53e272d7a5cb8242990c7f144c44d8bd8ab5afd9" + integrity sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A== + dependencies: + react-style-singleton "^2.2.1" + tslib "^2.0.0" + +react-remove-scroll@^2.5.5: + version "2.5.5" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz#1e31a1260df08887a8a0e46d09271b52b3a37e77" + integrity sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw== + dependencies: + react-remove-scroll-bar "^2.3.3" + react-style-singleton "^2.2.1" + tslib "^2.1.0" + use-callback-ref "^1.3.0" + use-sidecar "^1.1.2" -react-refresh@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz" - integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== +react-style-singleton@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4" + integrity sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g== + dependencies: + get-nonce "^1.0.0" + invariant "^2.2.4" + tslib "^2.0.0" react@18.2.0: version "18.2.0" - resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== dependencies: loose-envify "^1.1.0" -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" - integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== - dependencies: - pify "^2.3.0" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== +recoil@^0.7.7: + version "0.7.7" + resolved "https://registry.yarnpkg.com/recoil/-/recoil-0.7.7.tgz#c5f2c843224384c9c09e4a62c060fb4c1454dc8e" + integrity sha512-8Og5KPQW9LwC577Vc7Ug2P0vQshkv1y3zG3tSSkWMqkWSwHmE+by06L8JtnGocjW6gcCvfwB3YtrJG6/tWivNQ== dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@^2.0.0, readable-stream@^2.2.2, readable-stream@~2.3.6: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^4.0.0: - version "4.4.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz" - integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== - dependencies: - abort-controller "^3.0.0" - buffer "^6.0.3" - events "^3.3.0" - process "^0.11.10" - string_decoder "^1.3.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -recast@^0.21.0: - version "0.21.5" - resolved "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz" - integrity sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg== - dependencies: - ast-types "0.15.2" - esprima "~4.0.0" - source-map "~0.6.1" - tslib "^2.0.1" - -recast@^0.23.1: - version "0.23.2" - resolved "https://registry.npmjs.org/recast/-/recast-0.23.2.tgz" - integrity sha512-Qv6cPfVZyMOtPszK6PgW70pUgm7gPlFitAPf0Q69rlOA0zLw2XdDcNmPbVGYicFGT9O8I7TZ/0ryJD+6COvIPw== - dependencies: - assert "^2.0.0" - ast-types "^0.16.1" - esprima "~4.0.0" - source-map "~0.6.1" - tslib "^2.0.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" + hamt_plus "1.0.2" regenerate-unicode-properties@^10.1.0: version "10.1.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== dependencies: regenerate "^1.4.2" regenerate@^1.4.2: version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.13.11: version "0.13.11" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== regenerator-transform@^0.15.1: version "0.15.1" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== dependencies: "@babel/runtime" "^7.8.4" -regex-parser@^2.2.11: - version "2.2.11" - resolved "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz" - integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== - regexp.prototype.flags@^1.4.3: version "1.4.3" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== dependencies: call-bind "^1.0.2" @@ -9913,12 +4926,12 @@ regexp.prototype.flags@^1.4.3: regexpp@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== regexpu-core@^5.3.1: version "5.3.1" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.1.tgz" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.1.tgz#66900860f88def39a5cb79ebd9490e84f17bcdfb" integrity sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ== dependencies: "@babel/regjsgen" "^0.8.0" @@ -9930,55 +4943,19 @@ regexpu-core@^5.3.1: regjsparser@^0.9.1: version "0.9.1" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - -remark-external-links@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/remark-external-links/-/remark-external-links-8.0.0.tgz" - integrity sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA== - dependencies: - extend "^3.0.0" - is-absolute-url "^3.0.0" - mdast-util-definitions "^4.0.0" - space-separated-tokens "^1.0.0" - unist-util-visit "^2.0.0" - -remark-slug@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/remark-slug/-/remark-slug-6.1.0.tgz" - integrity sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ== - dependencies: - github-slugger "^1.0.0" - mdast-util-to-string "^1.0.0" - unist-util-visit "^2.0.0" - remove-accents@0.4.2: version "0.4.2" - resolved "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz" + resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" integrity sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA== -renderkid@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz" - integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^6.0.1" - request@^2.44.0: version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" @@ -10002,54 +4979,14 @@ request@^2.44.0: tunnel-agent "^0.6.0" uuid "^3.3.2" -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -requireindex@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz" - integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== - resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-url-loader@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz" - integrity sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg== - dependencies: - adjust-sourcemap-loader "^4.0.0" - convert-source-map "^1.7.0" - loader-utils "^2.0.0" - postcss "^8.2.14" - source-map "0.6.1" - -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.22.2: - version "1.22.2" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== - dependencies: - is-core-module "^2.11.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.14.2, resolve@^1.22.1: +resolve@^1.14.2, resolve@^1.19.0, resolve@^1.22.1: version "1.22.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: is-core-module "^2.9.0" @@ -10058,7 +4995,7 @@ resolve@^1.14.2, resolve@^1.22.1: resolve@^2.0.0-next.4: version "2.0.0-next.4" - resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== dependencies: is-core-module "^2.9.0" @@ -10067,7 +5004,7 @@ resolve@^2.0.0-next.4: restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" @@ -10075,339 +5012,112 @@ restore-cursor@^3.1.0: reusify@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfdc@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@^2.6.1, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" -rxjs@^7.5.5: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - rxjs@^7.8.0: version "7.8.0" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== dependencies: tslib "^2.1.0" -safe-buffer@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" - integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.2: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== dependencies: call-bind "^1.0.2" get-intrinsic "^1.1.3" is-regex "^1.1.4" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-loader@^12.4.0: - version "12.6.0" - resolved "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz" - integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== - dependencies: - klona "^2.0.4" - neo-async "^2.6.2" - -sass-loader@^13.2.2: - version "13.3.2" - resolved "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz" - integrity sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg== - dependencies: - neo-async "^2.6.2" - -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -scheduler@^0.23.0: - version "0.23.0" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz" - integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== - dependencies: - loose-envify "^1.1.0" - -schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz" - integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - -"semver@2 || 3 || 4 || 5", semver@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.3.5, semver@^7.3.8: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.7: - version "7.3.8" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -semver@^7.5.3: - version "7.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" - -semver@~7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -send@0.18.0: - version "0.18.0" - resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== - dependencies: - randombytes "^2.1.0" - -serve-favicon@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz" - integrity sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA== - dependencies: - etag "~1.8.1" - fresh "0.5.2" - ms "2.1.1" - parseurl "~1.3.2" - safe-buffer "5.1.1" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-cookie-parser@^2.4.6: - version "2.6.0" - resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51" - integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ== - -set-function-length@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + loose-envify "^1.1.0" -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== +semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.7: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: - kind-of "^6.0.2" + lru-cache "^6.0.0" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shelljs@^0.8.5: - version "0.8.5" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2, signal-exit@^3.0.7: version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -simple-update-notifier@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz" - integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== - dependencies: - semver "~7.0.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - slash@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slash@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== slice-ansi@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== dependencies: ansi-styles "^4.0.0" @@ -10416,7 +5126,7 @@ slice-ansi@^3.0.0: slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" @@ -10425,7 +5135,7 @@ slice-ansi@^4.0.0: slice-ansi@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== dependencies: ansi-styles "^6.0.0" @@ -10433,66 +5143,22 @@ slice-ansi@^5.0.0: source-map-js@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-support@^0.5.16, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz" - integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.13" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz" - integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - sshpk@^1.7.0: version "1.17.0" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" @@ -10507,86 +5173,29 @@ sshpk@^1.7.0: stable@^0.1.8: version "0.1.8" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -stackframe@^1.3.4: - version "1.3.4" - resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" - integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - stop-iteration-iterator@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== dependencies: internal-slot "^1.0.4" -store2@^2.14.2: - version "2.14.2" - resolved "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz" - integrity sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w== - -storybook@^7.0.26: - version "7.0.26" - resolved "https://registry.npmjs.org/storybook/-/storybook-7.0.26.tgz" - integrity sha512-N6+/QBIahTnOJ3mQFNh+PIimjw+yUUoBlnMq8kE1Rg6QFi8ErEK8xte6uppiTh+7ShpqeLhp9ipuDV6DwJ9Aqg== - dependencies: - "@storybook/cli" "7.0.26" - -stream-browserify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz" - integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== - dependencies: - inherits "~2.0.4" - readable-stream "^3.5.0" - -stream-http@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz" - integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.4" - readable-stream "^3.6.0" - xtend "^4.0.2" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - streamsearch@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== -strict-event-emitter@^0.2.4: - version "0.2.8" - resolved "https://registry.yarnpkg.com/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz#b4e768927c67273c14c13d20e19d5e6c934b47ca" - integrity sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A== - dependencies: - events "^3.3.0" - -strict-event-emitter@^0.4.3: - version "0.4.6" - resolved "https://registry.yarnpkg.com/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz#ff347c8162b3e931e3ff5f02cfce6772c3b07eb3" - integrity sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg== - string-argv@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -10595,7 +5204,7 @@ string-argv@^0.3.1: string-width@^5.0.0: version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" @@ -10604,7 +5213,7 @@ string-width@^5.0.0: string.prototype.matchall@^4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== dependencies: call-bind "^1.0.2" @@ -10618,7 +5227,7 @@ string.prototype.matchall@^4.0.8: string.prototype.trimend@^1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== dependencies: call-bind "^1.0.2" @@ -10627,134 +5236,88 @@ string.prototype.trimend@^1.0.6: string.prototype.trimstart@^1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" es-abstract "^1.20.4" -string_decoder@^1.1.1, string_decoder@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== dependencies: ansi-regex "^6.0.1" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - strip-final-newline@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -style-loader@^3.3.1, style-loader@^3.3.2: - version "3.3.3" - resolved "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz" - integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== - styled-jsx@5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== dependencies: client-only "0.0.1" -sucrase@^3.32.0: - version "3.32.0" - resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz" - integrity sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.2" - commander "^4.0.0" - glob "7.1.6" - lines-and-columns "^1.1.6" - mz "^2.7.0" - pirates "^4.0.1" - ts-interface-checker "^0.1.9" +stylis@4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.3.tgz#fd2fbe79f5fed17c55269e16ed8da14c84d069f7" + integrity sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA== superjson@^1.10.0: version "1.12.2" - resolved "https://registry.npmjs.org/superjson/-/superjson-1.12.2.tgz" + resolved "https://registry.yarnpkg.com/superjson/-/superjson-1.12.2.tgz#072471f1e6add2d95a38b77fef8c7a199d82103a" integrity sha512-ugvUo9/WmvWOjstornQhsN/sR9mnGtWGYeTxFuqLb4AiT4QdUavjGFRALCPKWWnAiUJ4HTpytj5e0t5HoMRkXg== dependencies: copy-anything "^3.0.2" supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== svg-parser@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== svgo@^2.8.0: version "2.8.0" - resolved "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== dependencies: "@trysound/sax" "0.2.0" @@ -10765,262 +5328,70 @@ svgo@^2.8.0: picocolors "^1.0.0" stable "^0.1.8" -synchronous-promise@^2.0.15: - version "2.0.17" - resolved "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.17.tgz" - integrity sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g== - synckit@^0.8.4: version "0.8.5" - resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== dependencies: "@pkgr/utils" "^2.3.1" tslib "^2.5.0" -tailwindcss@^3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz" - integrity sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w== - dependencies: - "@alloc/quick-lru" "^5.2.0" - arg "^5.0.2" - chokidar "^3.5.3" - didyoumean "^1.2.2" - dlv "^1.1.3" - fast-glob "^3.2.12" - glob-parent "^6.0.2" - is-glob "^4.0.3" - jiti "^1.18.2" - lilconfig "^2.1.0" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-hash "^3.0.0" - picocolors "^1.0.0" - postcss "^8.4.23" - postcss-import "^15.1.0" - postcss-js "^4.0.1" - postcss-load-config "^4.0.1" - postcss-nested "^6.0.1" - postcss-selector-parser "^6.0.11" - postcss-value-parser "^4.2.0" - resolve "^1.22.2" - sucrase "^3.32.0" - -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: +tapable@^2.2.0: version "2.2.1" - resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-fs@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -tar@^6.1.13: - version "6.1.15" - resolved "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz" - integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -telejson@^7.0.3: - version "7.1.0" - resolved "https://registry.npmjs.org/telejson/-/telejson-7.1.0.tgz" - integrity sha512-jFJO4P5gPebZAERPkJsqMAQ0IMA1Hi0AoSfxpnUaV6j6R2SZqlpkbS20U6dEUtA3RUYt2Ak/mTlkQzHH9Rv/hA== - dependencies: - memoizerific "^1.11.3" - -temp-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz" - integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== - -temp@^0.8.4: - version "0.8.4" - resolved "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz" - integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg== - dependencies: - rimraf "~2.6.2" - -tempy@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz" - integrity sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w== - dependencies: - del "^6.0.0" - is-stream "^2.0.0" - temp-dir "^2.0.0" - type-fest "^0.16.0" - unique-string "^2.0.0" - -terser-webpack-plugin@^5.3.1, terser-webpack-plugin@^5.3.7: - version "5.3.9" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.17" - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.16.8" - -terser@^5.10.0, terser@^5.16.8: - version "5.18.2" - resolved "https://registry.npmjs.org/terser/-/terser-5.18.2.tgz" - integrity sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - text-table@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" - integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - -through2@^2.0.3: - version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@^2.3.4, through@^2.3.6, through@^2.3.8: +through@^2.3.4, through@^2.3.8: version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -timers-browserify@^2.0.12: - version "2.0.12" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - tiny-glob@^0.2.9: version "0.2.9" - resolved "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz" + resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.9.tgz#2212d441ac17928033b110f8b3640683129d31e2" integrity sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg== dependencies: globalyzer "0.1.0" globrex "^0.1.2" -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== +tiny-invariant@^1.0.6: + version "1.3.1" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" + integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 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" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== tough-cookie@~2.5.0: version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" punycode "^2.1.1" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-dedent@^2.0.0, ts-dedent@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz" - integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== - -ts-interface-checker@^0.1.9: - version "0.1.13" - resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" - integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== - -ts-pnp@^1.1.6: - version "1.2.0" - resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz" - integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== - -tsconfig-paths-webpack-plugin@^3.5.2: - version "3.5.2" - resolved "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.5.2.tgz" - integrity sha512-EhnfjHbzm5IYI9YPNVIxx1moxMI4bpHD2e0zTXeDNQcwjjRaGepP7IhTHJkyDBG0CAOoxRfe7jCG630Ou+C6Pw== - dependencies: - chalk "^4.1.0" - enhanced-resolve "^5.7.0" - tsconfig-paths "^3.9.0" - -tsconfig-paths@^3.14.1, tsconfig-paths@^3.9.0: +tsconfig-paths@^3.14.1: version "3.14.2" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== dependencies: "@types/json5" "^0.0.29" @@ -11028,131 +5399,74 @@ tsconfig-paths@^3.14.1, tsconfig-paths@^3.9.0: minimist "^1.2.6" strip-bom "^3.0.0" -tsconfig-paths@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz" - integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg== - dependencies: - json5 "^2.2.2" - minimist "^1.2.6" - strip-bom "^3.0.0" +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== tslib@^1.8.1: version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0: version "2.5.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== -tslib@^2.0.1, tslib@^2.3.0: - version "2.6.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz" - integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== - tsutils@^3.21.0: version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" -tty-browserify@^0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz" - integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== - tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" -type-fest@^0.16.0: - version "0.16.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz" - integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== - type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-fest@^2.14.0, type-fest@^2.19.0: - version "2.19.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - typed-array-length@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== dependencies: call-bind "^1.0.2" for-each "^0.3.3" is-typed-array "^1.1.9" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - typescript@^4.9.5: version "4.9.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -uglify-js@^3.1.4: - version "3.17.4" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" - integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== - unbox-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: call-bind "^1.0.2" @@ -11160,26 +5474,14 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -undici@^5.25.4: - version "5.28.4" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068" - integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g== - dependencies: - "@fastify/busboy" "^2.0.0" - -unfetch@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz" - integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: unicode-canonical-property-names-ecmascript "^2.0.0" @@ -11187,300 +5489,79 @@ unicode-match-property-ecmascript@^2.0.0: unicode-match-property-value-ecmascript@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== unicode-property-aliases-ecmascript@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== uniq@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -unist-util-is@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz" - integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== - -unist-util-visit-parents@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz" - integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - -unist-util-visit@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz" - integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -unplugin@^0.10.2: - version "0.10.2" - resolved "https://registry.npmjs.org/unplugin/-/unplugin-0.10.2.tgz" - integrity sha512-6rk7GUa4ICYjae5PrAllvcDeuT8pA9+j5J5EkxbMFaV+SalHhxZ7X2dohMzu6C3XzsMT+6jwR/+pwPNR3uK9MA== - dependencies: - acorn "^8.8.0" - chokidar "^3.5.3" - webpack-sources "^3.2.3" - webpack-virtual-modules "^0.4.5" - -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - update-browserslist-db@^1.0.10: version "1.0.10" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== dependencies: escalade "^3.1.1" picocolors "^1.0.0" -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" -url@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/url/-/url-0.11.1.tgz" - integrity sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA== +use-callback-ref@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz#772199899b9c9a50526fedc4993fc7fa1f7e32d5" + integrity sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w== dependencies: - punycode "^1.4.1" - qs "^6.11.0" + tslib "^2.0.0" -use-resize-observer@^9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz" - integrity sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow== +use-sidecar@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" + integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw== dependencies: - "@juggle/resize-observer" "^3.3.1" + detect-node-es "^1.1.0" + tslib "^2.0.0" use-sync-external-store@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util@^0.12.0, util@^0.12.3, util@^0.12.4: - version "0.12.5" - resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" - integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - uuid@^3.3.2: version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -v8-to-istanbul@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz" - integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - verror@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" -vm-browserify@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -watchpack@2.4.0, watchpack@^2.2.0, watchpack@^2.4.0: +watchpack@2.4.0: version "2.4.0" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -web-encoding@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/web-encoding/-/web-encoding-1.1.5.tgz#fc810cf7667364a6335c939913f5051d3e0c4864" - integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA== - dependencies: - util "^0.12.3" - optionalDependencies: - "@zxing/text-encoding" "0.9.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -webpack-dev-middleware@^5.3.1: - version "5.3.3" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz" - integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== - dependencies: - colorette "^2.0.10" - memfs "^3.4.3" - mime-types "^2.1.31" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-hot-middleware@^2.25.1: - version "2.25.4" - resolved "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz" - integrity sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w== - dependencies: - ansi-html-community "0.0.8" - html-entities "^2.1.0" - strip-ansi "^6.0.0" - -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack-virtual-modules@^0.4.3, webpack-virtual-modules@^0.4.5: - version "0.4.6" - resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz" - integrity sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA== - -webpack@5, webpack@^5.88.1: - version "5.88.1" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.88.1.tgz" - integrity sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.0" - "@webassemblyjs/ast" "^1.11.5" - "@webassemblyjs/wasm-edit" "^1.11.5" - "@webassemblyjs/wasm-parser" "^1.11.5" - acorn "^8.7.1" - acorn-import-assertions "^1.9.0" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.15.0" - es-module-lexer "^1.2.1" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.2.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.7" - watchpack "^2.4.0" - webpack-sources "^3.2.3" - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -11491,7 +5572,7 @@ which-boxed-primitive@^1.0.2: which-collection@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== dependencies: is-map "^2.0.1" @@ -11499,9 +5580,9 @@ which-collection@^1.0.1: is-weakmap "^2.0.1" is-weakset "^2.0.1" -which-typed-array@^1.1.2, which-typed-array@^1.1.9: +which-typed-array@^1.1.9: version "1.1.9" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== dependencies: available-typed-arrays "^1.0.5" @@ -11513,31 +5594,19 @@ which-typed-array@^1.1.2, which-typed-array@^1.1.9: which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wide-align@^1.1.2: - version "1.1.5" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - word-wrap@^1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== - -wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: +wrap-ansi@^6.2.0: version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -11546,7 +5615,7 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -11555,133 +5624,35 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^2.3.0: - version "2.4.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -ws@^6.1.0: - version "6.2.2" - resolved "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== - dependencies: - async-limiter "~1.0.0" - -ws@^8.2.3: - version "8.13.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - -xtend@^4.0.2, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^1.10.0: version "1.10.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.1.1: - version "2.3.1" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz" - integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== - yaml@^2.1.3: version "2.2.1" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4" integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw== -yaml@^2.2.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.2.tgz#7a2b30f2243a5fc299e1f14ca58d475ed4bc5362" - integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== - -yargs-parser@^20.2.2, yargs-parser@^20.2.9: - version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^17.3.1: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" - integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -yocto-queue@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz" - integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== - zod@3.21.4: version "3.21.4" - resolved "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==

- {summary} ...  - {bookUrl && ( - - 더보기 - - )} -