From 2b1e6fe8f53cda7230a4c2e0727caa9cf957e89b Mon Sep 17 00:00:00 2001 From: codytseng Date: Sat, 21 Dec 2024 23:20:30 +0800 Subject: [PATCH] refactor: remove electron-related code --- .editorconfig | 9 - .eslintignore | 4 - .eslintrc.cjs | 14 - .github/FUNDING.yml | 1 - .github/workflows/release.yml | 57 - .gitignore | 23 +- .prettierignore | 3 +- .vscode/extensions.json | 3 - .vscode/launch.json | 39 - .vscode/settings.json | 11 - LICENSE | 21 - README.md | 26 +- build/icon.icns | Bin 167208 -> 0 bytes build/icon.ico | Bin 13567 -> 0 bytes build/icon.png | Bin 23783 -> 0 bytes build/icon@2x.png | Bin 72289 -> 0 bytes components.json | 16 +- electron-builder.yml | 34 - electron.vite.config.ts | 21 - eslint.config.js | 30 + src/renderer/index.html => index.html | 27 +- package-lock.json | 7777 ++++------------- package.json | 118 +- postcss.config.js | 7 +- .../src/assets => public}/favicon-dark.svg | 0 .../src/assets => public}/favicon-light.svg | 0 resources/icon.png | Bin 23783 -> 0 bytes resources/icon.svg | 1 - src/{renderer/src => }/App.tsx | 6 +- src/{renderer/src => }/PageManager.tsx | 16 +- src/{renderer/src => }/assets/Logo.tsx | 0 src/common/types.ts | 59 - .../components/AboutInfoDialog/index.tsx | 13 +- .../components/AccountButton/LoginButton.tsx | 4 +- .../AccountButton/ProfileButton.tsx | 20 +- .../components/AccountButton/index.tsx | 2 +- .../src => }/components/BackButton/index.tsx | 4 +- .../src => }/components/Content/index.tsx | 4 +- .../components/Embedded/EmbeddedHashtag.tsx | 4 +- .../components/Embedded/EmbeddedMention.tsx | 0 .../components/Embedded/EmbeddedNormalUrl.tsx | 0 .../components/Embedded/EmbeddedNote.tsx | 6 +- .../Embedded/EmbeddedWebsocketUrl.tsx | 4 +- .../src => }/components/Embedded/index.tsx | 0 .../src => }/components/Embedded/types.tsx | 0 .../components/FollowButton/index.tsx | 8 +- .../components/FormattedTimestamp/index.tsx | 0 .../components/ImageGallery/index.tsx | 4 +- .../components/LoginDialog/BunkerLogin.tsx | 6 +- .../components/LoginDialog/NsecLogin.tsx | 32 +- .../src => }/components/LoginDialog/index.tsx | 9 +- .../src => }/components/Nip05/index.tsx | 2 +- .../src => }/components/Note/index.tsx | 4 +- .../components/NoteCard/RepostNoteCard.tsx | 2 +- .../components/NoteCard/ShortTextNoteCard.tsx | 10 +- .../src => }/components/NoteCard/index.tsx | 3 +- .../src => }/components/NoteList/index.tsx | 29 +- .../components/NoteStats/LikeButton.tsx | 12 +- .../NoteStats/NoteOptions/RawEventDialog.tsx | 8 +- .../NoteStats/NoteOptions/index.tsx | 4 +- .../components/NoteStats/ReplyButton.tsx | 4 +- .../components/NoteStats/RepostButton.tsx | 16 +- .../src => }/components/NoteStats/index.tsx | 2 +- .../src => }/components/NoteStats/utils.ts | 0 .../components/NotificationButton/index.tsx | 6 +- .../components/NotificationList/index.tsx | 29 +- .../src => }/components/NsfwOverlay/index.tsx | 2 +- .../components/ParentNotePreview/index.tsx | 4 +- .../src => }/components/PostButton/index.tsx | 4 +- .../components/PostDialog/Metions.tsx | 10 +- .../components/PostDialog/Preview.tsx | 2 +- .../components/PostDialog/Uploader.tsx | 10 +- .../src => }/components/PostDialog/index.tsx | 16 +- .../components/ProfileAbout/index.tsx | 0 .../components/ProfileBanner/index.tsx | 4 +- .../src => }/components/ProfileCard/index.tsx | 6 +- .../components/RefreshButton/index.tsx | 4 +- .../components/RelaySettings/RelayGroup.tsx | 8 +- .../components/RelaySettings/RelayUrl.tsx | 27 +- .../RelaySettings/TemporaryRelayGroup.tsx | 8 +- .../components/RelaySettings/index.tsx | 8 +- .../components/RelaySettings/provider.tsx | 0 .../components/RelaySettings/types.ts | 0 .../components/RelaySettingsButton/index.tsx | 14 +- .../src => }/components/ReplyNote/index.tsx | 0 .../components/ReplyNoteList/index.tsx | 20 +- .../components/ScrollToTopButton/index.tsx | 4 +- .../components/SearchButton/index.tsx | 2 +- .../components/SearchDialog/index.tsx | 30 +- .../src => }/components/Sidebar/index.tsx | 25 +- .../src => }/components/ThemeToggle/index.tsx | 4 +- src/components/Titlebar/index.tsx | 23 + .../src => }/components/UserAvatar/index.tsx | 16 +- .../src => }/components/UserItem/index.tsx | 10 +- .../src => }/components/Username/index.tsx | 12 +- .../src => }/components/VideoPlayer/index.tsx | 2 +- .../src => }/components/WebPreview/index.tsx | 4 +- .../src => }/components/ui/avatar.tsx | 15 +- .../src => }/components/ui/button.tsx | 29 +- src/{renderer/src => }/components/ui/card.tsx | 19 +- .../src => }/components/ui/command.tsx | 10 +- .../src => }/components/ui/dialog.tsx | 4 +- .../src => }/components/ui/dropdown-menu.tsx | 2 +- .../src => }/components/ui/hover-card.tsx | 2 +- src/components/ui/input.tsx | 22 + .../src => }/components/ui/popover.tsx | 6 +- .../src => }/components/ui/resizable.tsx | 13 +- .../src => }/components/ui/scroll-area.tsx | 2 +- src/components/ui/separator.tsx | 24 + src/components/ui/skeleton.tsx | 7 + src/components/ui/switch.tsx | 27 + src/components/ui/textarea.tsx | 21 + .../src => }/components/ui/toast.tsx | 37 +- .../src => }/components/ui/toaster.tsx | 4 +- src/{common => }/constants.ts | 0 src/{renderer/src => }/hooks/index.tsx | 0 src/{renderer/src => }/hooks/use-toast.ts | 73 +- .../src => }/hooks/useFetchEvent.tsx | 2 +- .../src => }/hooks/useFetchFollowings.tsx | 4 +- .../src => }/hooks/useFetchNip05.tsx | 2 +- .../src => }/hooks/useFetchProfile.tsx | 4 +- .../src => }/hooks/useFetchRelayInfos.tsx | 9 +- .../src => }/hooks/useFetchRelayList.tsx | 4 +- .../src => }/hooks/useFetchWebMetadata.tsx | 4 +- .../src => }/hooks/useSearchParams.tsx | 0 .../src => }/hooks/useSearchProfiles.tsx | 6 +- src/{renderer/src => }/i18n/en.ts | 4 - src/{renderer/src => }/i18n/index.ts | 0 src/{renderer/src => }/i18n/zh.ts | 3 - .../src/assets/main.css => index.css} | 26 +- src/index.d.ts | 16 + .../layouts/PrimaryPageLayout/index.tsx | 36 +- .../layouts/SecondaryPageLayout/index.tsx | 24 +- src/{renderer/src => }/lib/draft-event.ts | 2 +- src/{renderer/src => }/lib/event.ts | 2 +- src/{renderer/src => }/lib/link.ts | 0 src/{renderer/src => }/lib/nip05.ts | 0 src/{renderer/src => }/lib/pubkey.ts | 0 src/{renderer/src => }/lib/relay.ts | 2 +- src/{renderer/src => }/lib/tag.ts | 0 src/{renderer/src => }/lib/url.ts | 0 src/{renderer/src => }/lib/utils.ts | 0 src/main.tsx | 13 + src/main/index.ts | 110 - src/main/services/nostr.service.ts | 80 - src/main/services/storage.service.ts | 59 - src/main/services/theme.service.ts | 21 - src/main/types.ts | 1 - .../pages/primary/NoteListPage/index.tsx | 18 +- .../secondary/FollowingListPage/index.tsx | 20 +- .../pages/secondary/HomePage/index.tsx | 2 +- .../pages/secondary/LoadingPage/index.tsx | 2 +- .../pages/secondary/NotFoundPage/index.tsx | 2 +- .../pages/secondary/NoteListPage/index.tsx | 13 +- .../pages/secondary/NotePage/index.tsx | 24 +- .../secondary/NotificationListPage/index.tsx | 4 +- .../pages/secondary/ProfileListPage/index.tsx | 25 +- .../secondary/ProfilePage/PubkeyCopy.tsx | 2 +- .../secondary/ProfilePage/QrCodePopover.tsx | 2 +- .../pages/secondary/ProfilePage/index.tsx | 44 +- .../secondary/RelaySettingsPage/index.tsx | 4 +- src/polyfill.ts | 63 + src/preload/index.ts | 57 - .../src => }/providers/FollowListProvider.tsx | 6 +- .../providers/NostrProvider/bunker.signer.ts | 19 +- .../providers/NostrProvider/index.tsx | 155 +- .../providers/NostrProvider/nip-07.signer.ts | 14 +- .../NostrProvider/nsec.signer.ts} | 14 +- .../src => }/providers/NoteStatsProvider.tsx | 4 +- .../providers/RelaySettingsProvider.tsx | 12 +- .../src => }/providers/ScreenSizeProvider.tsx | 0 .../src => }/providers/ThemeProvider.tsx | 17 +- .../src/components/Titlebar/index.tsx | 41 - .../src/components/ui/alert-dialog.tsx | 139 - src/renderer/src/components/ui/input.tsx | 24 - .../src/components/ui/radio-group.tsx | 42 - src/renderer/src/components/ui/select.tsx | 158 - src/renderer/src/components/ui/separator.tsx | 29 - src/renderer/src/components/ui/skeleton.tsx | 15 - src/renderer/src/components/ui/switch.tsx | 27 - src/renderer/src/components/ui/textarea.tsx | 23 - src/renderer/src/env.d.ts | 12 - src/renderer/src/lib/env.ts | 11 - src/renderer/src/main.tsx | 12 - .../providers/NostrProvider/nsec.signer.ts | 31 - src/renderer/src/services/storage.service.ts | 105 - src/renderer/src/types.ts | 25 - src/{renderer/src => }/routes.tsx | 0 .../src => }/services/client.service.ts | 25 +- src/services/storage.service.ts | 70 + .../src => }/services/web.service.ts | 2 +- src/types.ts | 61 + src/vite-env.d.ts | 8 + tailwind.config.js | 82 +- tsconfig.app.json | 30 + tsconfig.json | 17 +- tsconfig.node.json | 32 +- tsconfig.web.json | 24 - vite.config.ts | 13 + web.vite.config.ts | 18 - 200 files changed, 2771 insertions(+), 8432 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintignore delete mode 100644 .eslintrc.cjs delete mode 100644 .github/FUNDING.yml delete mode 100644 .github/workflows/release.yml delete mode 100644 .vscode/extensions.json delete mode 100644 .vscode/launch.json delete mode 100644 .vscode/settings.json delete mode 100644 LICENSE delete mode 100644 build/icon.icns delete mode 100644 build/icon.ico delete mode 100644 build/icon.png delete mode 100644 build/icon@2x.png delete mode 100644 electron-builder.yml delete mode 100644 electron.vite.config.ts create mode 100644 eslint.config.js rename src/renderer/index.html => index.html (54%) rename {src/renderer/src/assets => public}/favicon-dark.svg (100%) rename {src/renderer/src/assets => public}/favicon-light.svg (100%) delete mode 100644 resources/icon.png delete mode 100644 resources/icon.svg rename src/{renderer/src => }/App.tsx (87%) rename src/{renderer/src => }/PageManager.tsx (95%) rename src/{renderer/src => }/assets/Logo.tsx (100%) delete mode 100644 src/common/types.ts rename src/{renderer/src => }/components/AboutInfoDialog/index.tsx (79%) rename src/{renderer/src => }/components/AccountButton/LoginButton.tsx (83%) rename src/{renderer/src => }/components/AccountButton/ProfileButton.tsx (78%) rename src/{renderer/src => }/components/AccountButton/index.tsx (86%) rename src/{renderer/src => }/components/BackButton/index.tsx (81%) rename src/{renderer/src => }/components/Content/index.tsx (97%) rename src/{renderer/src => }/components/Embedded/EmbeddedHashtag.tsx (84%) rename src/{renderer/src => }/components/Embedded/EmbeddedMention.tsx (100%) rename src/{renderer/src => }/components/Embedded/EmbeddedNormalUrl.tsx (100%) rename src/{renderer/src => }/components/Embedded/EmbeddedNote.tsx (88%) rename src/{renderer/src => }/components/Embedded/EmbeddedWebsocketUrl.tsx (86%) rename src/{renderer/src => }/components/Embedded/index.tsx (100%) rename src/{renderer/src => }/components/Embedded/types.tsx (100%) rename src/{renderer/src => }/components/FollowButton/index.tsx (89%) rename src/{renderer/src => }/components/FormattedTimestamp/index.tsx (100%) rename src/{renderer/src => }/components/ImageGallery/index.tsx (93%) rename src/{renderer/src => }/components/LoginDialog/BunkerLogin.tsx (88%) rename src/{renderer/src => }/components/LoginDialog/NsecLogin.tsx (51%) rename src/{renderer/src => }/components/LoginDialog/index.tsx (89%) rename src/{renderer/src => }/components/Nip05/index.tsx (93%) rename src/{renderer/src => }/components/Note/index.tsx (94%) rename src/{renderer/src => }/components/NoteCard/RepostNoteCard.tsx (93%) rename src/{renderer/src => }/components/NoteCard/ShortTextNoteCard.tsx (86%) rename src/{renderer/src => }/components/NoteCard/index.tsx (83%) rename src/{renderer/src => }/components/NoteList/index.tsx (88%) rename src/{renderer/src => }/components/NoteStats/LikeButton.tsx (88%) rename src/{renderer/src => }/components/NoteStats/NoteOptions/RawEventDialog.tsx (72%) rename src/{renderer/src => }/components/NoteStats/NoteOptions/index.tsx (93%) rename src/{renderer/src => }/components/NoteStats/ReplyButton.tsx (88%) rename src/{renderer/src => }/components/NoteStats/RepostButton.tsx (89%) rename src/{renderer/src => }/components/NoteStats/index.tsx (94%) rename src/{renderer/src => }/components/NoteStats/utils.ts (100%) rename src/{renderer/src => }/components/NotificationButton/index.tsx (81%) rename src/{renderer/src => }/components/NotificationList/index.tsx (90%) rename src/{renderer/src => }/components/NsfwOverlay/index.tsx (90%) rename src/{renderer/src => }/components/ParentNotePreview/index.tsx (94%) rename src/{renderer/src => }/components/PostButton/index.tsx (86%) rename src/{renderer/src => }/components/PostDialog/Metions.tsx (84%) rename src/{renderer/src => }/components/PostDialog/Preview.tsx (88%) rename src/{renderer/src => }/components/PostDialog/Uploader.tsx (86%) rename src/{renderer/src => }/components/PostDialog/index.tsx (90%) rename src/{renderer/src => }/components/ProfileAbout/index.tsx (100%) rename src/{renderer/src => }/components/ProfileBanner/index.tsx (87%) rename src/{renderer/src => }/components/ProfileCard/index.tsx (87%) rename src/{renderer/src => }/components/RefreshButton/index.tsx (80%) rename src/{renderer/src => }/components/RelaySettings/RelayGroup.tsx (96%) rename src/{renderer/src => }/components/RelaySettings/RelayUrl.tsx (85%) rename src/{renderer/src => }/components/RelaySettings/TemporaryRelayGroup.tsx (91%) rename src/{renderer/src => }/components/RelaySettings/index.tsx (91%) rename src/{renderer/src => }/components/RelaySettings/provider.tsx (100%) rename src/{renderer/src => }/components/RelaySettings/types.ts (100%) rename src/{renderer/src => }/components/RelaySettingsButton/index.tsx (72%) rename src/{renderer/src => }/components/ReplyNote/index.tsx (100%) rename src/{renderer/src => }/components/ReplyNoteList/index.tsx (93%) rename src/{renderer/src => }/components/ScrollToTopButton/index.tsx (87%) rename src/{renderer/src => }/components/SearchButton/index.tsx (92%) rename src/{renderer/src => }/components/SearchDialog/index.tsx (85%) rename src/{renderer/src => }/components/Sidebar/index.tsx (63%) rename src/{renderer/src => }/components/ThemeToggle/index.tsx (90%) create mode 100644 src/components/Titlebar/index.tsx rename src/{renderer/src => }/components/UserAvatar/index.tsx (75%) rename src/{renderer/src => }/components/UserItem/index.tsx (69%) rename src/{renderer/src => }/components/Username/index.tsx (77%) rename src/{renderer/src => }/components/VideoPlayer/index.tsx (92%) rename src/{renderer/src => }/components/WebPreview/index.tsx (92%) rename src/{renderer/src => }/components/ui/avatar.tsx (72%) rename src/{renderer/src => }/components/ui/button.tsx (54%) rename src/{renderer/src => }/components/ui/card.tsx (73%) rename src/{renderer/src => }/components/ui/command.tsx (91%) rename src/{renderer/src => }/components/ui/dialog.tsx (98%) rename src/{renderer/src => }/components/ui/dropdown-menu.tsx (99%) rename src/{renderer/src => }/components/ui/hover-card.tsx (96%) create mode 100644 src/components/ui/input.tsx rename src/{renderer/src => }/components/ui/popover.tsx (88%) rename src/{renderer/src => }/components/ui/resizable.tsx (79%) rename src/{renderer/src => }/components/ui/scroll-area.tsx (97%) create mode 100644 src/components/ui/separator.tsx create mode 100644 src/components/ui/skeleton.tsx create mode 100644 src/components/ui/switch.tsx create mode 100644 src/components/ui/textarea.tsx rename src/{renderer/src => }/components/ui/toast.tsx (66%) rename src/{renderer/src => }/components/ui/toaster.tsx (87%) rename src/{common => }/constants.ts (100%) rename src/{renderer/src => }/hooks/index.tsx (100%) rename src/{renderer/src => }/hooks/use-toast.ts (71%) rename src/{renderer/src => }/hooks/useFetchEvent.tsx (94%) rename src/{renderer/src => }/hooks/useFetchFollowings.tsx (87%) rename src/{renderer/src => }/hooks/useFetchNip05.tsx (92%) rename src/{renderer/src => }/hooks/useFetchProfile.tsx (89%) rename src/{renderer/src => }/hooks/useFetchRelayInfos.tsx (83%) rename src/{renderer/src => }/hooks/useFetchRelayList.tsx (83%) rename src/{renderer/src => }/hooks/useFetchWebMetadata.tsx (73%) rename src/{renderer/src => }/hooks/useSearchParams.tsx (100%) rename src/{renderer/src => }/hooks/useSearchProfiles.tsx (84%) rename src/{renderer/src => }/i18n/en.ts (91%) rename src/{renderer/src => }/i18n/index.ts (100%) rename src/{renderer/src => }/i18n/zh.ts (92%) rename src/{renderer/src/assets/main.css => index.css} (88%) create mode 100644 src/index.d.ts rename src/{renderer/src => }/layouts/PrimaryPageLayout/index.tsx (69%) rename src/{renderer/src => }/layouts/SecondaryPageLayout/index.tsx (75%) rename src/{renderer/src => }/lib/draft-event.ts (97%) rename src/{renderer/src => }/lib/event.ts (98%) rename src/{renderer/src => }/lib/link.ts (100%) rename src/{renderer/src => }/lib/nip05.ts (100%) rename src/{renderer/src => }/lib/pubkey.ts (100%) rename src/{renderer/src => }/lib/relay.ts (86%) rename src/{renderer/src => }/lib/tag.ts (100%) rename src/{renderer/src => }/lib/url.ts (100%) rename src/{renderer/src => }/lib/utils.ts (100%) create mode 100644 src/main.tsx delete mode 100644 src/main/index.ts delete mode 100644 src/main/services/nostr.service.ts delete mode 100644 src/main/services/storage.service.ts delete mode 100644 src/main/services/theme.service.ts delete mode 100644 src/main/types.ts rename src/{renderer/src => }/pages/primary/NoteListPage/index.tsx (67%) rename src/{renderer/src => }/pages/secondary/FollowingListPage/index.tsx (72%) rename src/{renderer/src => }/pages/secondary/HomePage/index.tsx (83%) rename src/{renderer/src => }/pages/secondary/LoadingPage/index.tsx (78%) rename src/{renderer/src => }/pages/secondary/NotFoundPage/index.tsx (84%) rename src/{renderer/src => }/pages/secondary/NoteListPage/index.tsx (79%) rename src/{renderer/src => }/pages/secondary/NotePage/index.tsx (73%) rename src/{renderer/src => }/pages/secondary/NotificationListPage/index.tsx (69%) rename src/{renderer/src => }/pages/secondary/ProfileListPage/index.tsx (78%) rename src/{renderer/src => }/pages/secondary/ProfilePage/PubkeyCopy.tsx (94%) rename src/{renderer/src => }/pages/secondary/ProfilePage/QrCodePopover.tsx (88%) rename src/{renderer/src => }/pages/secondary/ProfilePage/index.tsx (75%) rename src/{renderer/src => }/pages/secondary/RelaySettingsPage/index.tsx (70%) create mode 100644 src/polyfill.ts delete mode 100644 src/preload/index.ts rename src/{renderer/src => }/providers/FollowListProvider.tsx (94%) rename src/{renderer/src => }/providers/NostrProvider/bunker.signer.ts (65%) rename src/{renderer/src => }/providers/NostrProvider/index.tsx (57%) rename src/{renderer/src => }/providers/NostrProvider/nip-07.signer.ts (60%) rename src/{renderer/src/providers/NostrProvider/browser-nsec.signer.ts => providers/NostrProvider/nsec.signer.ts} (59%) rename src/{renderer/src => }/providers/NoteStatsProvider.tsx (98%) rename src/{renderer/src => }/providers/RelaySettingsProvider.tsx (93%) rename src/{renderer/src => }/providers/ScreenSizeProvider.tsx (100%) rename src/{renderer/src => }/providers/ThemeProvider.tsx (84%) delete mode 100644 src/renderer/src/components/Titlebar/index.tsx delete mode 100644 src/renderer/src/components/ui/alert-dialog.tsx delete mode 100644 src/renderer/src/components/ui/input.tsx delete mode 100644 src/renderer/src/components/ui/radio-group.tsx delete mode 100644 src/renderer/src/components/ui/select.tsx delete mode 100644 src/renderer/src/components/ui/separator.tsx delete mode 100644 src/renderer/src/components/ui/skeleton.tsx delete mode 100644 src/renderer/src/components/ui/switch.tsx delete mode 100644 src/renderer/src/components/ui/textarea.tsx delete mode 100644 src/renderer/src/env.d.ts delete mode 100644 src/renderer/src/lib/env.ts delete mode 100644 src/renderer/src/main.tsx delete mode 100644 src/renderer/src/providers/NostrProvider/nsec.signer.ts delete mode 100644 src/renderer/src/services/storage.service.ts delete mode 100644 src/renderer/src/types.ts rename src/{renderer/src => }/routes.tsx (100%) rename src/{renderer/src => }/services/client.service.ts (97%) create mode 100644 src/services/storage.service.ts rename src/{renderer/src => }/services/web.service.ts (96%) create mode 100644 src/types.ts create mode 100644 src/vite-env.d.ts create mode 100644 tsconfig.app.json delete mode 100644 tsconfig.web.json create mode 100644 vite.config.ts delete mode 100644 web.vite.config.ts diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index cf640d53..00000000 --- a/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true \ No newline at end of file diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index a6f34fea..00000000 --- a/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -dist -out -.gitignore diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index b1b36b2a..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - extends: [ - 'eslint:recommended', - 'plugin:react/recommended', - 'plugin:react/jsx-runtime', - '@electron-toolkit/eslint-config-ts/recommended', - '@electron-toolkit/eslint-config-prettier' - ], - rules: { - '@typescript-eslint/explicit-function-return-type': 'off', - 'react/prop-types': 'off', - '@typescript-eslint/no-explicit-any': 'off' - } -} diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index fcd7d2e7..00000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: [CodyTseng] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index e4f01663..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Build/release - -on: - push: - tags: - - v*.*.* - -permissions: - contents: write - -jobs: - release: - runs-on: ${{ matrix.os }} - - strategy: - matrix: - os: [ubuntu-latest, macos-13, windows-latest] - - steps: - - name: Check out Git repository - uses: actions/checkout@v4 - - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version: 20 - - - name: Install Dependencies - run: npm install - - - name: build-linux - if: matrix.os == 'ubuntu-latest' - run: npm run build:linux - - - name: build-mac - if: matrix.os == 'macos-13' - run: npm run build:mac - - - name: build-win - if: matrix.os == 'windows-latest' - run: npm run build:win - - - name: release - uses: softprops/action-gh-release@v2 - with: - draft: true - files: | - dist/*.exe - dist/*.zip - dist/*.dmg - dist/*.AppImage - dist/*.snap - dist/*.deb - dist/*.rpm - dist/*.tar.gz - env: - GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} diff --git a/.gitignore b/.gitignore index 42bd71b3..a547bf36 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + node_modules dist -out +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea .DS_Store -*.log* +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.prettierignore b/.prettierignore index 9c6b791d..96974efb 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,5 +2,4 @@ out dist pnpm-lock.yaml LICENSE.md -tsconfig.json -tsconfig.*.json +*.json \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 940260d8..00000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["dbaeumer.vscode-eslint"] -} diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 0b6b9a64..00000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Debug Main Process", - "type": "node", - "request": "launch", - "cwd": "${workspaceRoot}", - "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron-vite", - "windows": { - "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron-vite.cmd" - }, - "runtimeArgs": ["--sourcemap"], - "env": { - "REMOTE_DEBUGGING_PORT": "9222" - } - }, - { - "name": "Debug Renderer Process", - "port": 9222, - "request": "attach", - "type": "chrome", - "webRoot": "${workspaceFolder}/src/renderer", - "timeout": 60000, - "presentation": { - "hidden": true - } - } - ], - "compounds": [ - { - "name": "Debug All", - "configurations": ["Debug Main Process", "Debug Renderer Process"], - "presentation": { - "order": 1 - } - } - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 4c05394e..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "[typescript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[javascript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[json]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - } -} diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 23398b24..00000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Cody Tseng - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index eb8d3f4c..5841a31c 100644 --- a/README.md +++ b/README.md @@ -17,23 +17,8 @@ A beautiful nostr client focused on browsing relay feeds - **Relay-Friendly Design:** Minimized and simplified requests ensure efficient communication with relays - **Relay Groups:** Easily manage and switch between relay groups - **Clean Interface:** Enjoy a minimalist design and intuitive interactions -- **Cross-Platform:** Available on macOS, Windows, Linux, and web browsers -## Web Version - -You can use the web version of Jumble at [jumble.social](https://jumble.social). - -## Desktop Version - -You can download the desktop version from the [release page](https://github.com/CodyTseng/jumble/releases). If you want to use Apple Silicon version, you need to build it from the source code. - -Because the app is not signed, you may need to allow it to run in the system settings. - -## Build from source - -You can also build the app from the source code. - -> Note: Node.js >= 20 is required. +## Run Locally ```bash # Clone this repository @@ -45,15 +30,10 @@ cd jumble # Install dependencies npm install -# Build the app -npm run build:mac -# or npm run build:win -# or npm run build:linux -# or npm run build:web +# Run the app +npm run dev ``` -The executable file will be in the `dist` folder. - ## Donate If you like this project, you can buy me a coffee :) ⚡️ codytseng@getalby.com ⚡️ diff --git a/build/icon.icns b/build/icon.icns deleted file mode 100644 index a68cbb5b1752419f54f1542c069e8c181ec8fac9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167208 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 diff --git a/build/icon.ico b/build/icon.ico deleted file mode 100644 index 7a4a1f907fe481be0e5a48721eae8d0ccef1feb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13567 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 diff --git a/build/icon.png b/build/icon.png deleted file mode 100644 index d180f336cf8733353a17b8157bc74141202d7fd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23783 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 - + - - - + + + - + + Jumble - - Jumble -
diff --git a/package-lock.json b/package-lock.json index 389dd51b..64862ce9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,67 +7,59 @@ "": { "name": "jumble", "version": "0.1.0", - "hasInstallScript": true, "license": "MIT", "dependencies": { - "@electron-toolkit/preload": "^3.0.1", - "@electron-toolkit/utils": "^3.0.0", - "@nextui-org/image": "^2.0.32", - "@nextui-org/system": "^2.2.6", - "@nextui-org/theme": "^2.2.11", - "@radix-ui/react-alert-dialog": "^1.1.2", - "@radix-ui/react-avatar": "^1.1.1", - "@radix-ui/react-dialog": "^1.1.2", - "@radix-ui/react-dropdown-menu": "^2.1.2", - "@radix-ui/react-hover-card": "^1.1.2", - "@radix-ui/react-popover": "^1.1.2", - "@radix-ui/react-radio-group": "^1.2.1", - "@radix-ui/react-scroll-area": "^1.2.0", - "@radix-ui/react-select": "^2.1.2", - "@radix-ui/react-separator": "^1.1.0", - "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-switch": "^1.1.1", - "@radix-ui/react-toast": "^1.2.2", - "class-variance-authority": "^0.7.0", + "@nextui-org/image": "^2.2.3", + "@radix-ui/react-avatar": "^1.1.2", + "@radix-ui/react-dialog": "^1.1.4", + "@radix-ui/react-dropdown-menu": "^2.1.4", + "@radix-ui/react-hover-card": "^1.1.4", + "@radix-ui/react-popover": "^1.1.4", + "@radix-ui/react-scroll-area": "^1.2.2", + "@radix-ui/react-separator": "^1.1.1", + "@radix-ui/react-slot": "^1.1.1", + "@radix-ui/react-switch": "^1.1.2", + "@radix-ui/react-toast": "^1.2.4", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.0.0", - "dataloader": "^2.2.2", + "dataloader": "^2.2.3", "dayjs": "^1.11.13", - "framer-motion": "^11.11.17", - "i18next": "^23.16.5", - "i18next-browser-languagedetector": "^8.0.0", - "lru-cache": "^11.0.1", - "lucide-react": "^0.453.0", - "nostr-tools": "^2.9.1", + "framer-motion": "^11.15.0", + "i18next": "^24.2.0", + "i18next-browser-languagedetector": "^8.0.2", + "lru-cache": "^11.0.2", + "lucide-react": "^0.469.0", + "nostr-tools": "^2.10.4", "path-to-regexp": "^8.2.0", - "qrcode.react": "^4.1.0", - "react-i18next": "^15.1.1", - "react-resizable-panels": "^2.1.5", - "react-string-replace": "^1.1.1", - "tailwind-merge": "^2.5.4", - "tailwindcss-animate": "^1.0.7", - "yet-another-react-lightbox": "^3.21.6" - }, - "devDependencies": { - "@electron-toolkit/eslint-config-prettier": "^2.0.0", - "@electron-toolkit/eslint-config-ts": "^2.0.0", - "@electron-toolkit/tsconfig": "^1.0.1", - "@types/node": "^20.14.8", - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.3.1", - "autoprefixer": "^10.4.20", - "electron": "^31.0.2", - "electron-builder": "^24.13.3", - "electron-vite": "^2.3.0", - "eslint": "^8.57.0", - "eslint-plugin-react": "^7.34.3", - "prettier": "^3.3.2", + "qrcode.react": "^4.2.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "tailwindcss": "^3.4.14", - "typescript": "^5.5.2", - "vite": "^5.3.1" + "react-i18next": "^15.2.0", + "react-resizable-panels": "^2.1.7", + "react-string-replace": "^1.1.1", + "tailwind-merge": "^2.5.5", + "tailwindcss-animate": "^1.0.7", + "yet-another-react-lightbox": "^3.21.7", + "zod": "^3.24.1" + }, + "devDependencies": { + "@eslint/js": "^9.17.0", + "@types/node": "^22.10.2", + "@types/react": "^18.3.17", + "@types/react-dom": "^18.3.5", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "eslint": "^9.17.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.16", + "globals": "^15.13.0", + "postcss": "^8.4.49", + "prettier": "3.4.2", + "tailwindcss": "^3.4.17", + "typescript": "~5.6.2", + "typescript-eslint": "^8.18.1", + "vite": "^6.0.3" } }, "node_modules/@alloc/quick-lru": { @@ -95,9 +87,9 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.0.tgz", - "integrity": "sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", @@ -109,9 +101,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.0.tgz", - "integrity": "sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", + "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", "dev": true, "engines": { "node": ">=6.9.0" @@ -147,23 +139,14 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.0.tgz", - "integrity": "sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", "dev": true, "dependencies": { - "@babel/parser": "^7.26.0", - "@babel/types": "^7.26.0", + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -197,15 +180,6 @@ "yallist": "^3.0.2" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-module-imports": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", @@ -286,12 +260,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.0.tgz", - "integrity": "sha512-aP8x5pIw3xvYr/sXT+SEUwyhrXT8rUJRZltK/qN3Db80dcKpTett8cJxHyjk+xYSVXvNnl2SfcJVjbwxpOSscA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", "dev": true, "dependencies": { - "@babel/types": "^7.26.0" + "@babel/types": "^7.26.3" }, "bin": { "parser": "bin/babel-parser.js" @@ -300,21 +274,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-transform-react-jsx-self": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", @@ -371,16 +330,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.3", + "@babel/parser": "^7.26.3", "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", + "@babel/types": "^7.26.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -388,10 +347,19 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -401,346 +369,10 @@ "node": ">=6.9.0" } }, - "node_modules/@develar/schema-utils": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", - "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", - "dev": true, - "dependencies": { - "ajv": "^6.12.0", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/@electron-toolkit/eslint-config-prettier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@electron-toolkit/eslint-config-prettier/-/eslint-config-prettier-2.0.0.tgz", - "integrity": "sha512-L+uG1FvJcAZkPZpSi6B1pmdpyJFyOxWDTjr1Vs47vSryxv/EX1Ch6o4HVsachlDq3fMEkDgojuP2F3ZvVZMoLw==", - "dev": true, - "dependencies": { - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.0.1" - }, - "peerDependencies": { - "eslint": ">= 8.0.0", - "prettier": ">= 3.0.0" - } - }, - "node_modules/@electron-toolkit/eslint-config-ts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@electron-toolkit/eslint-config-ts/-/eslint-config-ts-2.0.0.tgz", - "integrity": "sha512-NGXadMyWH9+ZsgYe/u5E0mqK2qTDq01kKKnyo7oiq/7v/dWoMoPhqSkn69NZvt7WmnFNOm57l71fv6128mAx3Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/eslint-plugin": "^7.5.0", - "@typescript-eslint/parser": "^7.5.0" - }, - "peerDependencies": { - "eslint": ">=8.56.0", - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@electron-toolkit/preload": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@electron-toolkit/preload/-/preload-3.0.1.tgz", - "integrity": "sha512-EzoQmpK8jqqU8YnM5jRe0GJjGVJPke2KtANqz8QtN2JPT96ViOvProBdK5C6riCm0j1T8jjAGVQCZLQy9OVoIA==", - "peerDependencies": { - "electron": ">=13.0.0" - } - }, - "node_modules/@electron-toolkit/tsconfig": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@electron-toolkit/tsconfig/-/tsconfig-1.0.1.tgz", - "integrity": "sha512-M0Mol3odspvtCuheyujLNAW7bXq7KFNYVMRtpjFa4ZfES4MuklXBC7Nli/omvc+PRKlrklgAGx3l4VakjNo8jg==", - "dev": true, - "peerDependencies": { - "@types/node": "*" - } - }, - "node_modules/@electron-toolkit/utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@electron-toolkit/utils/-/utils-3.0.0.tgz", - "integrity": "sha512-GaXHDhiT7KCvMJjXdp/QqpYinq69T/Pdl49Z1XLf8mKGf63dnsODMWyrmIjEQ0z/vG7dO8qF3fvmI6Eb2lUNZA==", - "peerDependencies": { - "electron": ">=13.0.0" - } - }, - "node_modules/@electron/asar": { - "version": "3.2.14", - "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.14.tgz", - "integrity": "sha512-hc52QkesULqbxTRC1vOmSBN1YndUkieoNMfvpe988h0MEoGGqbijkOqv4/2M9PufBJxiTVoDdBmBFfXPowZDQg==", - "dev": true, - "dependencies": { - "commander": "^5.0.0", - "glob": "^7.1.6", - "minimatch": "^3.0.4" - }, - "bin": { - "asar": "bin/asar.js" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/@electron/asar/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@electron/asar/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@electron/get": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", - "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", - "dependencies": { - "debug": "^4.1.1", - "env-paths": "^2.2.0", - "fs-extra": "^8.1.0", - "got": "^11.8.5", - "progress": "^2.0.3", - "semver": "^6.2.0", - "sumchecker": "^3.0.1" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "global-agent": "^3.0.0" - } - }, - "node_modules/@electron/get/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@electron/notarize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.2.1.tgz", - "integrity": "sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^9.0.1", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@electron/notarize/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@electron/notarize/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@electron/notarize/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@electron/osx-sign": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz", - "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", - "dev": true, - "dependencies": { - "compare-version": "^0.1.2", - "debug": "^4.3.4", - "fs-extra": "^10.0.0", - "isbinaryfile": "^4.0.8", - "minimist": "^1.2.6", - "plist": "^3.0.5" - }, - "bin": { - "electron-osx-flat": "bin/electron-osx-flat.js", - "electron-osx-sign": "bin/electron-osx-sign.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@electron/osx-sign/node_modules/fs-extra": { - "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==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@electron/osx-sign/node_modules/isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/@electron/osx-sign/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@electron/osx-sign/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@electron/universal": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.5.1.tgz", - "integrity": "sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==", - "dev": true, - "dependencies": { - "@electron/asar": "^3.2.1", - "@malept/cross-spawn-promise": "^1.1.0", - "debug": "^4.3.1", - "dir-compare": "^3.0.0", - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4", - "plist": "^3.0.4" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/@electron/universal/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@electron/universal/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@electron/universal/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@electron/universal/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@electron/universal/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", "cpu": [ "ppc64" ], @@ -750,13 +382,13 @@ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", "cpu": [ "arm" ], @@ -766,13 +398,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", "cpu": [ "arm64" ], @@ -782,13 +414,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", "cpu": [ "x64" ], @@ -798,13 +430,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", "cpu": [ "arm64" ], @@ -814,13 +446,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", "cpu": [ "x64" ], @@ -830,13 +462,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", "cpu": [ "arm64" ], @@ -846,13 +478,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", "cpu": [ "x64" ], @@ -862,13 +494,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", "cpu": [ "arm" ], @@ -878,13 +510,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", "cpu": [ "arm64" ], @@ -894,13 +526,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", "cpu": [ "ia32" ], @@ -910,13 +542,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", "cpu": [ "loong64" ], @@ -926,13 +558,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", "cpu": [ "mips64el" ], @@ -942,13 +574,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", "cpu": [ "ppc64" ], @@ -958,13 +590,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", "cpu": [ "riscv64" ], @@ -974,13 +606,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", "cpu": [ "s390x" ], @@ -990,13 +622,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", "cpu": [ "x64" ], @@ -1006,13 +638,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", "cpu": [ "x64" ], @@ -1022,13 +654,29 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", "cpu": [ "x64" ], @@ -1038,13 +686,13 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", "cpu": [ "x64" ], @@ -1054,13 +702,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", "cpu": [ "arm64" ], @@ -1070,13 +718,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", "cpu": [ "ia32" ], @@ -1086,13 +734,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", "cpu": [ "x64" ], @@ -1102,49 +750,32 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", - "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -1152,62 +783,104 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "dev": true, + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@floating-ui/core": { @@ -1219,9 +892,9 @@ } }, "node_modules/@floating-ui/dom": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz", - "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==", + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", + "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", "dependencies": { "@floating-ui/core": "^1.6.0", "@floating-ui/utils": "^0.2.8" @@ -1245,85 +918,89 @@ "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" }, "node_modules/@formatjs/ecma402-abstract": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.2.3.tgz", - "integrity": "sha512-aElGmleuReGnk2wtYOzYFmNWYoiWWmf1pPPCYg0oiIQSJj0mjc4eUfzUXaSOJ4S8WzI/cLqnCTWjqz904FT2OQ==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.1.tgz", + "integrity": "sha512-Ip9uV+/MpLXWRk03U/GzeJMuPeOXpJBSB5V1tjA6kJhvqssye5J5LoYLc7Z5IAHb7nR62sRoguzrFiVCP/hnzw==", + "peer": true, "dependencies": { - "@formatjs/fast-memoize": "2.2.3", - "@formatjs/intl-localematcher": "0.5.7", + "@formatjs/fast-memoize": "2.2.5", + "@formatjs/intl-localematcher": "0.5.9", + "decimal.js": "10", "tslib": "2" } }, "node_modules/@formatjs/fast-memoize": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.3.tgz", - "integrity": "sha512-3jeJ+HyOfu8osl3GNSL4vVHUuWFXR03Iz9jjgI7RwjG6ysu/Ymdr0JRCPHfF5yGbTE6JCrd63EpvX1/WybYRbA==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.5.tgz", + "integrity": "sha512-6PoewUMrrcqxSoBXAOJDiW1m+AmkrAj0RiXnOMD59GRaswjXhm3MDhgepXPBgonc09oSirAJTsAggzAGQf6A6g==", + "peer": true, "dependencies": { "tslib": "2" } }, "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.3.tgz", - "integrity": "sha512-9L99QsH14XjOCIp4TmbT8wxuffJxGK8uLNO1zNhLtcZaVXvv626N0s4A2qgRCKG3dfYWx9psvGlFmvyVBa6u/w==", + "version": "2.9.7", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.7.tgz", + "integrity": "sha512-cuEHyRM5VqLQobANOjtjlgU7+qmk9Q3fDQuBiRRJ3+Wp3ZoZhpUPtUfuimZXsir6SaI2TaAJ+SLo9vLnV5QcbA==", + "peer": true, "dependencies": { - "@formatjs/ecma402-abstract": "2.2.3", - "@formatjs/icu-skeleton-parser": "1.8.7", + "@formatjs/ecma402-abstract": "2.3.1", + "@formatjs/icu-skeleton-parser": "1.8.11", "tslib": "2" } }, "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.7", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.7.tgz", - "integrity": "sha512-fI+6SmS2g7h3srfAKSWa5dwreU5zNEfon2uFo99OToiLF6yxGE+WikvFSbsvMAYkscucvVmTYNlWlaDPp0n5HA==", + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.11.tgz", + "integrity": "sha512-8LlHHE/yL/zVJZHAX3pbKaCjZKmBIO6aJY1mkVh4RMSEu/2WRZ4Ysvv3kKXJ9M8RJLBHdnk1/dUQFdod1Dt7Dw==", + "peer": true, "dependencies": { - "@formatjs/ecma402-abstract": "2.2.3", + "@formatjs/ecma402-abstract": "2.3.1", "tslib": "2" } }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.7.tgz", - "integrity": "sha512-GGFtfHGQVFe/niOZp24Kal5b2i36eE2bNL0xi9Sg/yd0TR8aLjcteApZdHmismP5QQax1cMnZM9yWySUUjJteA==", + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.9.tgz", + "integrity": "sha512-8zkGu/sv5euxbjfZ/xmklqLyDGQSxsLqg8XOq88JW3cmJtzhCP8EtSJXlaKZnVO4beEaoiT9wj4eIoCQ9smwxA==", + "peer": true, "dependencies": { "tslib": "2" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, "engines": { - "node": ">=10.10.0" + "node": ">=18.18.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": "*" + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { @@ -1339,42 +1016,52 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@internationalized/date": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.6.tgz", - "integrity": "sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.6.0.tgz", + "integrity": "sha512-+z6ti+CcJnRlLHok/emGEsWQhe7kfSmEW+/6qCzvKY67YPh7YOBfvc7+/+NXq+zJlbArg30tYpqLjNgcAYv2YQ==", + "peer": true, "dependencies": { "@swc/helpers": "^0.5.0" } }, "node_modules/@internationalized/message": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.5.tgz", - "integrity": "sha512-hjEpLKFlYA3m5apldLqzHqw531qqfOEq0HlTWdfyZmcloWiUbWsYXD6YTiUmQmOtarthzhdjCAwMVrB8a4E7uA==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.6.tgz", + "integrity": "sha512-JxbK3iAcTIeNr1p0WIFg/wQJjIzJt9l/2KNY/48vXV7GRGZSv3zMxJsce008fZclk2cDC8y0Ig3odceHO7EfNQ==", + "peer": true, "dependencies": { "@swc/helpers": "^0.5.0", "intl-messageformat": "^10.1.0" } }, "node_modules/@internationalized/number": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.4.tgz", - "integrity": "sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.0.tgz", + "integrity": "sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==", + "peer": true, "dependencies": { "@swc/helpers": "^0.5.0" } }, "node_modules/@internationalized/string": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.4.tgz", - "integrity": "sha512-BcyadXPn89Ae190QGZGDUZPqxLj/xsP4U1Br1oSy8yfIjmpJ8cJtGYleaodqW/EmzFjwELtwDojLkf3FhV6SjA==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.5.tgz", + "integrity": "sha512-rKs71Zvl2OKOHM+mzAFMIyqR5hI1d1O6BBkMK2/lkfg3fkmVh9Eeg0awcA8W2WqYqDOv6a86DIOlFpggwLtbuw==", + "peer": true, "dependencies": { "@swc/helpers": "^0.5.0" } @@ -1395,83 +1082,10 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1511,176 +1125,104 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@malept/cross-spawn-promise": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", - "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/malept" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" - } - ], - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@malept/flatpak-bundler": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", - "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^9.0.0", - "lodash": "^4.17.15", - "tmp-promise": "^3.0.2" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@malept/flatpak-bundler/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@malept/flatpak-bundler/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/@nextui-org/image": { - "version": "2.0.32", - "resolved": "https://registry.npmjs.org/@nextui-org/image/-/image-2.0.32.tgz", - "integrity": "sha512-JpE0O8qAeJpQA61ZnXNLH76to+dbx93PR5tTOxSvmTxtnuqVg4wl5ar/SBY3czibJPr0sj33k8Mv2EfULjoH7Q==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@nextui-org/image/-/image-2.2.3.tgz", + "integrity": "sha512-erd+c7uA4FRoOOdwS6di97VVJSBbs8mXv9cOY2kZHU830e2//TKlNaE4nC7xR9ApFEAtfXjoRzSyUCIlyXmD9Q==", "dependencies": { - "@nextui-org/react-utils": "2.0.17", - "@nextui-org/shared-utils": "2.0.8", - "@nextui-org/use-image": "2.0.6" + "@nextui-org/react-utils": "2.1.1", + "@nextui-org/shared-utils": "2.1.1", + "@nextui-org/use-image": "2.1.1" }, "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" + "@nextui-org/system": ">=2.4.0", + "@nextui-org/theme": ">=2.4.0", + "react": ">=18 || >=19.0.0-rc.0", + "react-dom": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@nextui-org/react-rsc-utils": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@nextui-org/react-rsc-utils/-/react-rsc-utils-2.0.14.tgz", - "integrity": "sha512-s0GVgDhScyx+d9FtXd8BXf049REyaPvWsO4RRr7JDHrk91NlQ11Mqxka9o+8g5NX0rphI0rbe3/b1Dz+iQRx3w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@nextui-org/react-rsc-utils/-/react-rsc-utils-2.1.1.tgz", + "integrity": "sha512-9uKH1XkeomTGaswqlGKt0V0ooUev8mPXtKJolR+6MnpvBUrkqngw1gUGF0bq/EcCCkks2+VOHXZqFT6x9hGkQQ==", "peerDependencies": { - "react": ">=18" + "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@nextui-org/react-utils": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@nextui-org/react-utils/-/react-utils-2.0.17.tgz", - "integrity": "sha512-U/b49hToVfhOM4dg4n57ZyUjLpts4JogQ139lfQBYPTb8z/ATNsJ3vLIqW5ZvDK6L0Er+JT11UVQ+03m7QMvaQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@nextui-org/react-utils/-/react-utils-2.1.1.tgz", + "integrity": "sha512-cN3Z0b2bV6Nf0CYD4imsGdXbHMQqad8KivltpBv1ItbI1/FSTAv9AHTKSzDE15hd/UwOGYt3Qm7I6tWzqov55w==", "dependencies": { - "@nextui-org/react-rsc-utils": "2.0.14", - "@nextui-org/shared-utils": "2.0.8" + "@nextui-org/react-rsc-utils": "2.1.1", + "@nextui-org/shared-utils": "2.1.1" }, "peerDependencies": { - "react": ">=18" + "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@nextui-org/shared-utils": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@nextui-org/shared-utils/-/shared-utils-2.0.8.tgz", - "integrity": "sha512-ZEtoMPXS+IjT8GvpJTS9IWDnT1JNCKV+NDqqgysAf1niJmOFLyJgl6dh/9n4ufcGf1GbSEQN+VhJasEw7ajYGQ==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@nextui-org/shared-utils/-/shared-utils-2.1.1.tgz", + "integrity": "sha512-qE8gZO63GqUX1ljOi/4PlwGzE84dhUS3zFIq+10/N6ePAaNjM4DwtL4ocucG3abCz4iRUueYKLIxTO2+eYyAfw==" }, "node_modules/@nextui-org/system": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@nextui-org/system/-/system-2.2.6.tgz", - "integrity": "sha512-tjIkOI0w32g68CGWleuSyIbEz8XBbeoNogR2lu7MWk3QovHCqgr4VVrP1cwMRYnwDPFQP3OpmH+NR9yzt+pIfg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@nextui-org/system/-/system-2.4.4.tgz", + "integrity": "sha512-ldlUYq7VprTEC2s3LaMxQh7S7Xeyy6DYoKkOML9XHJBgSgVXCMr5QyoxvIkO2XRl5nu6KWn2QA1vjtj2xiMjRw==", + "peer": true, "dependencies": { - "@internationalized/date": "^3.5.4", - "@nextui-org/react-utils": "2.0.17", - "@nextui-org/system-rsc": "2.1.6", - "@react-aria/i18n": "3.11.1", - "@react-aria/overlays": "3.22.1", - "@react-aria/utils": "3.24.1", - "@react-stately/utils": "3.10.1" + "@internationalized/date": "3.6.0", + "@nextui-org/react-utils": "2.1.1", + "@nextui-org/system-rsc": "2.3.4", + "@react-aria/i18n": "3.12.4", + "@react-aria/overlays": "3.24.0", + "@react-aria/utils": "3.26.0", + "@react-stately/utils": "3.10.5", + "@react-types/datepicker": "3.9.0" }, "peerDependencies": { - "framer-motion": ">=10.17.0", - "react": ">=18", - "react-dom": ">=18" + "framer-motion": ">=11.5.6 || >=12.0.0-alpha.1", + "react": ">=18 || >=19.0.0-rc.0", + "react-dom": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@nextui-org/system-rsc": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@nextui-org/system-rsc/-/system-rsc-2.1.6.tgz", - "integrity": "sha512-Wl2QwEFjYwuvw26R1RH3ZY81PD8YmfgtIjFvJZRP2VEIT6rPvlQ4ojgqdrkVkQZQ0L/K+5ZLbTKgLEFkj5ysdQ==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@nextui-org/system-rsc/-/system-rsc-2.3.4.tgz", + "integrity": "sha512-Y6OLFO7diYnUMe5ffDPt6sIqCaah7FOqRaJ3ZQ/We8gE8AgHnyNQxWllLtRzBqaCiIheHLo7dTMed1FFmb775A==", + "peer": true, "dependencies": { - "@react-types/shared": "3.23.1", + "@react-types/shared": "3.26.0", "clsx": "^1.2.1" }, "peerDependencies": { - "@nextui-org/theme": ">=2.1.0", - "react": ">=18" + "@nextui-org/theme": ">=2.4.0", + "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@nextui-org/system-rsc/node_modules/clsx": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "peer": true, "engines": { "node": ">=6" } }, "node_modules/@nextui-org/theme": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/@nextui-org/theme/-/theme-2.2.11.tgz", - "integrity": "sha512-bg9+KNnFxcP3w/ugivEJtvQibODbTxfl6UdVvx7TCY8Rd269U7F2+nhnw1Qd1xJT5yZQnX6m//9wOoGtJV+6Kg==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@nextui-org/theme/-/theme-2.4.3.tgz", + "integrity": "sha512-QH9ps5NpenWU966INdGbdvZOWWUEGqxrLM2vyqkSRq+A65YON4Jhg/x1xWcSX0SJECNhoNZLh5mt6jp3jH5k8Q==", + "peer": true, "dependencies": { + "@nextui-org/shared-utils": "2.1.1", "clsx": "^1.2.1", "color": "^4.2.3", "color2k": "^2.0.2", "deepmerge": "4.3.1", "flat": "^5.0.2", - "lodash.foreach": "^4.5.0", - "lodash.get": "^4.4.2", - "lodash.kebabcase": "^4.1.1", - "lodash.mapkeys": "^4.6.0", - "lodash.omit": "^4.5.0", - "tailwind-merge": "^1.14.0", + "tailwind-merge": "^2.5.2", "tailwind-variants": "^0.1.20" }, "peerDependencies": { @@ -1691,36 +1233,28 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "peer": true, "engines": { "node": ">=6" } }, - "node_modules/@nextui-org/theme/node_modules/tailwind-merge": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz", - "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, "node_modules/@nextui-org/use-image": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@nextui-org/use-image/-/use-image-2.0.6.tgz", - "integrity": "sha512-VelN9y3vzwIpPfubFMh00YRQ0f4+I5FElcAvAqoo0Kfb0K7sGrTo1lZNApHm6yBN2gJMMeccG9u7bZB+wcDGZQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@nextui-org/use-image/-/use-image-2.1.1.tgz", + "integrity": "sha512-Tsfy9pA4AQBAj7rFIEonB9L/hXGg7M5agaAZNBUVpdp47NjcEwLpcU2XncKh8AhkQku0p4JOyMC9usRGV3z06Q==", "dependencies": { - "@nextui-org/use-safe-layout-effect": "2.0.6" + "@nextui-org/use-safe-layout-effect": "2.1.1" }, "peerDependencies": { - "react": ">=18" + "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@nextui-org/use-safe-layout-effect": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@nextui-org/use-safe-layout-effect/-/use-safe-layout-effect-2.0.6.tgz", - "integrity": "sha512-xzEJXf/g9GaSqjLpQ4+Z2/pw1GPq2Fc5cWRGqEXbGauEMXuH8UboRls1BmIV1RuOpqI6FgxkEmxL1EuVIRVmvQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@nextui-org/use-safe-layout-effect/-/use-safe-layout-effect-2.1.1.tgz", + "integrity": "sha512-p0vezi2eujC3rxlMQmCLQlc8CNbp+GQgk6YcSm7Rk10isWVlUII5T1L3y+rcFYdgTPObCkCngPPciNQhD7Lf7g==", "peerDependencies": { - "react": ">=18" + "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@noble/ciphers": { @@ -1753,17 +1287,6 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@noble/hashes": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", - "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1805,61 +1328,22 @@ "node": ">=14" } }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, "node_modules/@radix-ui/number": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz", "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==" }, "node_modules/@radix-ui/primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", - "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==" - }, - "node_modules/@radix-ui/react-alert-dialog": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.2.tgz", - "integrity": "sha512-eGSlLzPhKO+TErxkiGcCZGuvbVMnLA1MTnyBksGOeGRGkxHiiJUujsjmNTdWTm4iHVSRaUao9/4Ur671auMghQ==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dialog": "1.1.2", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", + "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==" }, "node_modules/@radix-ui/react-arrow": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", - "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz", + "integrity": "sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "@radix-ui/react-primitive": "2.0.1" }, "peerDependencies": { "@types/react": "*", @@ -1877,12 +1361,12 @@ } }, "node_modules/@radix-ui/react-avatar": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.1.tgz", - "integrity": "sha512-eoOtThOmxeoizxpX6RiEsQZ2wj5r4+zoeqAwO0cBaFQGjJwIH3dIX0OCxNrCyrrdxG+vBweMETh3VziQG7c1kw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.2.tgz", + "integrity": "sha512-GaC7bXQZ5VgZvVvsJ5mu/AEbjYLnhhkoidOboC50Z6FFlLA03wG2ianUoH+zgDQ31/9gCF59bE4+2bBgTyMiig==", "dependencies": { "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0" }, @@ -1902,14 +1386,14 @@ } }, "node_modules/@radix-ui/react-collection": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", - "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.1.tgz", + "integrity": "sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0" + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -1926,24 +1410,10 @@ } } }, - "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", - "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -1969,24 +1439,24 @@ } }, "node_modules/@radix-ui/react-dialog": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz", - "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.4.tgz", + "integrity": "sha512-Ur7EV1IwQGCyaAuyDRiOLA5JIUZxELJljF+MbM/2NC0BYwfuRrbpS30BiQBJrVruscgUkieKkqXYDOoByaxIoA==", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.3", "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.1", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.6.0" + "react-remove-scroll": "^2.6.1" }, "peerDependencies": { "@types/react": "*", @@ -2018,13 +1488,13 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz", - "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.3.tgz", + "integrity": "sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-escape-keydown": "1.1.0" }, @@ -2044,16 +1514,16 @@ } }, "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.2.tgz", - "integrity": "sha512-GVZMR+eqK8/Kes0a36Qrv+i20bAPXSn8rCBTHx30w+3ECnR5o3xixAlqcVaYvLeyKUsm0aqyhWfmUcqufM8nYA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.4.tgz", + "integrity": "sha512-iXU1Ab5ecM+yEepGAWK8ZhMyKX4ubFdCNtol4sT9D0OVErG9PNElfx3TQhjw7n7BC5nFVz68/5//clWy+8TXzA==", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-menu": "2.1.2", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-menu": "2.1.4", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-controllable-state": "1.1.0" }, "peerDependencies": { @@ -2086,12 +1556,12 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", - "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz", + "integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0" }, "peerDependencies": { @@ -2110,18 +1580,18 @@ } }, "node_modules/@radix-ui/react-hover-card": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.2.tgz", - "integrity": "sha512-Y5w0qGhysvmqsIy6nQxaPa6mXNKznfoGjOfBgzOjocLxr2XlSjqBMYQQL+FfyogsMuX+m8cZyQGYhJxvxUzO4w==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.4.tgz", + "integrity": "sha512-QSUUnRA3PQ2UhvoCv3eYvMnCAgGQW+sTu86QPuNb+ZMi+ZENd6UWpiXbcWDQ4AEaKF9KKpCHBeaJz9Rw6lRlaQ==", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.1", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-dismissable-layer": "1.1.3", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-controllable-state": "1.1.0" }, "peerDependencies": { @@ -2157,28 +1627,28 @@ } }, "node_modules/@radix-ui/react-menu": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.2.tgz", - "integrity": "sha512-lZ0R4qR2Al6fZ4yCCZzu/ReTFrylHFxIqy7OezIpWF4bL0o9biKo0pFIvkaew3TyZ9Fy5gYVrR5zCGZBVbO1zg==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.4.tgz", + "integrity": "sha512-BnOgVoL6YYdHAG6DtXONaR29Eq4nvbi8rutrV/xlr3RQCMMb3yqP85Qiw/3NReozrSW+4dfLkK+rc1hb4wPU/A==", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collection": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.3", "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.1", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-roving-focus": "1.1.0", - "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", + "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-callback-ref": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.6.0" + "react-remove-scroll": "^2.6.1" }, "peerDependencies": { "@types/react": "*", @@ -2196,25 +1666,25 @@ } }, "node_modules/@radix-ui/react-popover": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.2.tgz", - "integrity": "sha512-u2HRUyWW+lOiA2g0Le0tMmT55FGOEWHwPFt1EPfbLly7uXQExFo5duNKqG2DzmFXIdqOeNd+TpE8baHWJCyP9w==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.4.tgz", + "integrity": "sha512-aUACAkXx8LaFymDma+HQVji7WhvEhpFJ7+qPz17Nf4lLZqtreGOFRiNQWQmhzp7kEWg9cOyyQJpdIMUMPc/CPw==", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.3", "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.1", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.6.0" + "react-remove-scroll": "^2.6.1" }, "peerDependencies": { "@types/react": "*", @@ -2232,15 +1702,15 @@ } }, "node_modules/@radix-ui/react-popper": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", - "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz", + "integrity": "sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==", "dependencies": { "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-arrow": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0", "@radix-ui/react-use-rect": "1.1.0", @@ -2262,26 +1732,12 @@ } } }, - "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-portal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz", - "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz", + "integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==", "dependencies": { - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { @@ -2300,11 +1756,11 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", - "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", + "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { @@ -2323,42 +1779,11 @@ } }, "node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", + "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-radio-group": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.2.1.tgz", - "integrity": "sha512-kdbv54g4vfRjja9DNWPMxKvXblzqbpEC8kspEkZ6dVP7kQksGCn+iZHkcCz2nb00+lPdRvxrqy4WrvvV1cNqrQ==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-roving-focus": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-use-size": "1.1.0" + "@radix-ui/react-slot": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -2376,17 +1801,17 @@ } }, "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", - "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.1.tgz", + "integrity": "sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collection": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0" }, @@ -2405,32 +1830,18 @@ } } }, - "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-scroll-area": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.0.tgz", - "integrity": "sha512-q2jMBdsJ9zB7QG6ngQNzNwlvxLQqONyL58QbEGwuyRZZb/ARQwk3uQVbCF7GvQVOtV6EU/pDxAw3zRzJZI3rpQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.2.tgz", + "integrity": "sha512-EFI1N/S3YxZEW/lJ/H1jY3njlvTd8tBmgKEn4GHi51+aMm94i6NmAJstsm5cu3yJwYqYc93gpCPm21FeAbFk6g==", "dependencies": { "@radix-ui/number": "1.1.0", - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0" }, @@ -2449,54 +1860,12 @@ } } }, - "node_modules/@radix-ui/react-select": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.2.tgz", - "integrity": "sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==", - "dependencies": { - "@radix-ui/number": "1.1.0", - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collection": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.1", - "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.6.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.0.tgz", - "integrity": "sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.1.tgz", + "integrity": "sha512-RRiNRSrD8iUiXriq/Y5n4/3iE8HzqgLHsusUSg5jVpU2+3tqcUFPJXHDymwEypunc2sWxDUS3UC+rkZRlHedsw==", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "@radix-ui/react-primitive": "2.0.1" }, "peerDependencies": { "@types/react": "*", @@ -2514,11 +1883,11 @@ } }, "node_modules/@radix-ui/react-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", - "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0" + "@radix-ui/react-compose-refs": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -2531,14 +1900,14 @@ } }, "node_modules/@radix-ui/react-switch": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.1.tgz", - "integrity": "sha512-diPqDDoBcZPSicYoMWdWx+bCPuTRH4QSp9J+65IvtdS0Kuzt67bI6n32vCj8q6NZmYW/ah+2orOtMwcX5eQwIg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.2.tgz", + "integrity": "sha512-zGukiWHjEdBCRyXvKR6iXAQG6qXm2esuAD6kDOi9Cn+1X6ev3ASo4+CsYaD6Fov9r/AQFekqnD/7+V0Cs6/98g==", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-controllable-state": "1.1.0", "@radix-ui/react-use-previous": "1.1.0", "@radix-ui/react-use-size": "1.1.0" @@ -2559,22 +1928,22 @@ } }, "node_modules/@radix-ui/react-toast": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.2.tgz", - "integrity": "sha512-Z6pqSzmAP/bFJoqMAston4eSNa+ud44NSZTiZUmUen+IOZ5nBY8kzuU5WDBVyFXPtcW6yUalOHsxM/BP6Sv8ww==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.4.tgz", + "integrity": "sha512-Sch9idFJHJTMH9YNpxxESqABcAFweJG4tKv+0zo0m5XBvUSL8FM5xKcJLFLXononpePs8IclyX1KieL5SDUNgA==", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collection": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.1", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-dismissable-layer": "1.1.3", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.0" + "@radix-ui/react-visually-hidden": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -2702,11 +2071,11 @@ } }, "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", - "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.1.tgz", + "integrity": "sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "@radix-ui/react-primitive": "2.0.1" }, "peerDependencies": { "@types/react": "*", @@ -2729,146 +2098,83 @@ "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==" }, "node_modules/@react-aria/focus": { - "version": "3.18.4", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.4.tgz", - "integrity": "sha512-91J35077w9UNaMK1cpMUEFRkNNz0uZjnSwiyBCFuRdaVuivO53wNC9XtWSDNDdcO5cGy87vfJRVAiyoCn/mjqA==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.19.0.tgz", + "integrity": "sha512-hPF9EXoUQeQl1Y21/rbV2H4FdUR2v+4/I0/vB+8U3bT1CJ+1AFj1hc/rqx2DqEwDlEwOHN+E4+mRahQmlybq0A==", + "peer": true, "dependencies": { - "@react-aria/interactions": "^3.22.4", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", + "@react-aria/interactions": "^3.22.5", + "@react-aria/utils": "^3.26.0", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/focus/node_modules/@react-aria/utils": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.3.tgz", - "integrity": "sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==", - "dependencies": { - "@react-aria/ssr": "^3.9.6", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/focus/node_modules/@react-stately/utils": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.4.tgz", - "integrity": "sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/focus/node_modules/@react-types/shared": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.25.0.tgz", - "integrity": "sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/i18n": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.11.1.tgz", - "integrity": "sha512-vuiBHw1kZruNMYeKkTGGnmPyMnM5T+gT8bz97H1FqIq1hQ6OPzmtBZ6W6l6OIMjeHI5oJo4utTwfZl495GALFQ==", + "version": "3.12.4", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.4.tgz", + "integrity": "sha512-j9+UL3q0Ls8MhXV9gtnKlyozq4aM95YywXqnmJtzT1rYeBx7w28hooqrWkCYLfqr4OIryv1KUnPiCSLwC2OC7w==", + "peer": true, "dependencies": { - "@internationalized/date": "^3.5.4", - "@internationalized/message": "^3.1.4", - "@internationalized/number": "^3.5.3", - "@internationalized/string": "^3.2.3", - "@react-aria/ssr": "^3.9.4", - "@react-aria/utils": "^3.24.1", - "@react-types/shared": "^3.23.1", + "@internationalized/date": "^3.6.0", + "@internationalized/message": "^3.1.6", + "@internationalized/number": "^3.6.0", + "@internationalized/string": "^3.2.5", + "@react-aria/ssr": "^3.9.7", + "@react-aria/utils": "^3.26.0", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/interactions": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.4.tgz", - "integrity": "sha512-E0vsgtpItmknq/MJELqYJwib+YN18Qag8nroqwjk1qOnBa9ROIkUhWJerLi1qs5diXq9LHKehZDXRlwPvdEFww==", + "version": "3.22.5", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.5.tgz", + "integrity": "sha512-kMwiAD9E0TQp+XNnOs13yVJghiy8ET8L0cbkeuTgNI96sOAp/63EJ1FSrDf17iD8sdjt41LafwX/dKXW9nCcLQ==", + "peer": true, "dependencies": { - "@react-aria/ssr": "^3.9.6", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", + "@react-aria/ssr": "^3.9.7", + "@react-aria/utils": "^3.26.0", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/interactions/node_modules/@react-aria/utils": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.3.tgz", - "integrity": "sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==", - "dependencies": { - "@react-aria/ssr": "^3.9.6", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/interactions/node_modules/@react-stately/utils": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.4.tgz", - "integrity": "sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/interactions/node_modules/@react-types/shared": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.25.0.tgz", - "integrity": "sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/overlays": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.22.1.tgz", - "integrity": "sha512-GHiFMWO4EQ6+j6b5QCnNoOYiyx1Gk8ZiwLzzglCI4q1NY5AG2EAmfU4Z1+Gtrf2S5Y0zHbumC7rs9GnPoGLUYg==", + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.24.0.tgz", + "integrity": "sha512-0kAXBsMNTc/a3M07tK9Cdt/ea8CxTAEJ223g8YgqImlmoBBYAL7dl5G01IOj67TM64uWPTmZrOklBchHWgEm3A==", + "peer": true, "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/i18n": "^3.11.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/ssr": "^3.9.4", - "@react-aria/utils": "^3.24.1", - "@react-aria/visually-hidden": "^3.8.12", - "@react-stately/overlays": "^3.6.7", - "@react-types/button": "^3.9.4", - "@react-types/overlays": "^3.8.7", - "@react-types/shared": "^3.23.1", + "@react-aria/focus": "^3.19.0", + "@react-aria/i18n": "^3.12.4", + "@react-aria/interactions": "^3.22.5", + "@react-aria/ssr": "^3.9.7", + "@react-aria/utils": "^3.26.0", + "@react-aria/visually-hidden": "^3.8.18", + "@react-stately/overlays": "^3.6.12", + "@react-types/button": "^3.10.1", + "@react-types/overlays": "^3.8.11", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/ssr": { - "version": "3.9.6", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.6.tgz", - "integrity": "sha512-iLo82l82ilMiVGy342SELjshuWottlb5+VefO3jOQqQRNYnJBFpUSadswDPbRimSgJUZuFwIEYs6AabkP038fA==", + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.7.tgz", + "integrity": "sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==", + "peer": true, "dependencies": { "@swc/helpers": "^0.5.0" }, @@ -2876,157 +2182,131 @@ "node": ">= 12" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/utils": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.24.1.tgz", - "integrity": "sha512-O3s9qhPMd6n42x9sKeJ3lhu5V1Tlnzhu6Yk8QOvDuXf7UGuUjXf9mzfHJt1dYzID4l9Fwm8toczBzPM9t0jc8Q==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz", + "integrity": "sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==", + "peer": true, "dependencies": { - "@react-aria/ssr": "^3.9.4", - "@react-stately/utils": "^3.10.1", - "@react-types/shared": "^3.23.1", + "@react-aria/ssr": "^3.9.7", + "@react-stately/utils": "^3.10.5", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/visually-hidden": { - "version": "3.8.17", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.17.tgz", - "integrity": "sha512-WFgny1q2CbxxU6gu46TGQXf1DjsnuSk+RBDP4M7bm1mUVZzoCp7U7AtjNmsBrWg0NejxUdgD7+7jkHHCQ91qRA==", + "version": "3.8.18", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.18.tgz", + "integrity": "sha512-l/0igp+uub/salP35SsNWq5mGmg3G5F5QMS1gDZ8p28n7CgjvzyiGhJbbca7Oxvaw1HRFzVl9ev+89I7moNnFQ==", + "peer": true, "dependencies": { - "@react-aria/interactions": "^3.22.4", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", + "@react-aria/interactions": "^3.22.5", + "@react-aria/utils": "^3.26.0", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/visually-hidden/node_modules/@react-aria/utils": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.3.tgz", - "integrity": "sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==", - "dependencies": { - "@react-aria/ssr": "^3.9.6", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/visually-hidden/node_modules/@react-stately/utils": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.4.tgz", - "integrity": "sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/visually-hidden/node_modules/@react-types/shared": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.25.0.tgz", - "integrity": "sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-stately/overlays": { - "version": "3.6.11", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.11.tgz", - "integrity": "sha512-usuxitwOx4FbmOW7Og4VM8R8ZjerbHZLLbFaxZW7pWLs7Ypway1YhJ3SWcyNTYK7NEk4o602kSoU6MSev1Vgag==", + "version": "3.6.12", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.12.tgz", + "integrity": "sha512-QinvZhwZgj8obUyPIcyURSCjTZlqZYRRCS60TF8jH8ZpT0tEAuDb3wvhhSXuYA3Xo9EHLwvLjEf3tQKKdAQArw==", + "peer": true, "dependencies": { - "@react-stately/utils": "^3.10.4", - "@react-types/overlays": "^3.8.10", + "@react-stately/utils": "^3.10.5", + "@react-types/overlays": "^3.8.11", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/overlays/node_modules/@react-stately/utils": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.4.tgz", - "integrity": "sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-stately/utils": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.1.tgz", - "integrity": "sha512-VS/EHRyicef25zDZcM/ClpzYMC5i2YGN6uegOeQawmgfGjb02yaCX0F0zR69Pod9m2Hr3wunTbtpgVXvYbZItg==", + "version": "3.10.5", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.5.tgz", + "integrity": "sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==", + "peer": true, "dependencies": { "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/button": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.10.0.tgz", - "integrity": "sha512-rAyU+N9VaHLBdZop4zasn8IDwf9I5Q1EzHUKMtzIFf5aUlMUW+K460zI/l8UESWRSWAXK9/WPSXGxfcoCEjvAA==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.10.1.tgz", + "integrity": "sha512-XTtap8o04+4QjPNAshFWOOAusUTxQlBjU2ai0BTVLShQEjHhRVDBIWsI2B2FKJ4KXT6AZ25llaxhNrreWGonmA==", + "peer": true, "dependencies": { - "@react-types/shared": "^3.25.0" + "@react-types/shared": "^3.26.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-types/button/node_modules/@react-types/shared": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.25.0.tgz", - "integrity": "sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==", + "node_modules/@react-types/calendar": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.5.0.tgz", + "integrity": "sha512-O3IRE7AGwAWYnvJIJ80cOy7WwoJ0m8GtX/qSmvXQAjC4qx00n+b5aFNBYAQtcyc3RM5QpW6obs9BfwGetFiI8w==", + "peer": true, + "dependencies": { + "@internationalized/date": "^3.6.0", + "@react-types/shared": "^3.26.0" + }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/datepicker": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.9.0.tgz", + "integrity": "sha512-dbKL5Qsm2MQwOTtVQdOcKrrphcXAqDD80WLlSQrBLg+waDuuQ7H+TrvOT0thLKloNBlFUGnZZfXGRHINpih/0g==", + "peer": true, + "dependencies": { + "@internationalized/date": "^3.6.0", + "@react-types/calendar": "^3.5.0", + "@react-types/overlays": "^3.8.11", + "@react-types/shared": "^3.26.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/overlays": { - "version": "3.8.10", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.10.tgz", - "integrity": "sha512-IcnB+VYfAJazRjWhBKZTmVMh3KTp/B1rRbcKkPx6t8djP9UQhKcohP7lAALxjJ56Jjz/GFC6rWyUcnYH0NFVRA==", + "version": "3.8.11", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.11.tgz", + "integrity": "sha512-aw7T0rwVI3EuyG5AOaEIk8j7dZJQ9m34XAztXJVZ/W2+4pDDkLDbJ/EAPnuo2xGYRGhowuNDn4tDju01eHYi+w==", + "peer": true, "dependencies": { - "@react-types/shared": "^3.25.0" + "@react-types/shared": "^3.26.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/overlays/node_modules/@react-types/shared": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.25.0.tgz", - "integrity": "sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/shared": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.23.1.tgz", - "integrity": "sha512-5d+3HbFDxGZjhbMBeFHRQhexMFt4pUce3okyRtUVKbbedQFUrtXSBg9VszgF2RTeQDKDkMCIQDtz5ccP/Lk1gw==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.26.0.tgz", + "integrity": "sha512-6FuPqvhmjjlpEDLTiYx29IJCbCNWPlsyO+ZUmCUXzhUv2ttShOXfw8CmeHWHftT/b2KweAWuzqSlfeXPR76jpw==", + "peer": true, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.0.tgz", + "integrity": "sha512-TnF0md3qWSRDlU96y9+0dd5RNrlXiQUp1K2pK1UpNmjeND+o9ts9Jxv3G6ntagkt8jVh0KAT1VYgU0nCz5gt2w==", "cpu": [ "arm" ], @@ -3037,9 +2317,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.0.tgz", + "integrity": "sha512-L/7oX07eY6ACt2NXDrku1JIPdf9VGV/DI92EjAd8FRDzMMub5hXFpT1OegBqimJh9xy9Vv+nToaVtZp4Ku9SEA==", "cpu": [ "arm64" ], @@ -3050,9 +2330,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.0.tgz", + "integrity": "sha512-I1ZucWPVS96hjAsMSJiGosHTqMulMynrmTN+Xde5OsLcU5SjE0xylBmQ/DbB2psJ+HasINrJYz8HQpojtAw2eA==", "cpu": [ "arm64" ], @@ -3063,9 +2343,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.0.tgz", + "integrity": "sha512-CTZ+lHMsTbH1q/XLKzmnJWxl2r/1xdv7cnjwbi5v+95nVA1syikxWLvqur4nDoGDHjC8oNMBGurnQptpuFJHXA==", "cpu": [ "x64" ], @@ -3075,10 +2355,36 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.0.tgz", + "integrity": "sha512-BB8+4OMzk2JiKL5+aK8A0pi9DPB5pkIBZWXr19+grdez9b0VKihvV432uSwuZLO0sI6zCyxak8NO3mZ1yjM1jA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.0.tgz", + "integrity": "sha512-Udz9Uh26uEE6phGMG2++TfpsLK/z4cYJqrIOyVhig/PMoWiZLghpjZUQvsAylsoztbpg0/QmplkDAyyVq0x6Jg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.0.tgz", + "integrity": "sha512-IPSCTzP8GRYzY+siSnggIKrckC2U+kVXoen6eSHRDgU9a4EZCHHWWOiKio1EkieOOk2j6EvZaaHfQUCmt8UJBg==", "cpu": [ "arm" ], @@ -3089,9 +2395,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.0.tgz", + "integrity": "sha512-GvHPu0UIDx+ohyS8vTYnwoSVMM5BH3NO+JwQs6GWNCuQVlC5rKxnH2WClTGu3NxiIfhKLai08IKUwn3QbzX1UQ==", "cpu": [ "arm" ], @@ -3102,9 +2408,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.0.tgz", + "integrity": "sha512-Pnnn/2CAZWcH9GQoj1nnr85Ejh7aNDe5MsEV0xhuFNUPF0SdnutJ7b2muOI5Kx12T0/i2ol5B/tlhMviZQDL3g==", "cpu": [ "arm64" ], @@ -3115,9 +2421,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.0.tgz", + "integrity": "sha512-AP+DLj4q9FT22ZL43ssA3gizEn7/MfJcZ1BOuyEPqoriuH3a8VRuDddN0MtpUwEtiZL6jc1GY5/eL99hkloQ1Q==", "cpu": [ "arm64" ], @@ -3127,10 +2433,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.0.tgz", + "integrity": "sha512-1+jPFClHmDATqbk0Cwi74KEOymVcs09Vbqe/CTKqLwCP0TeP2CACfnMnjYBs5CJgO20e/4bxFtmbR/9fKE1gug==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.0.tgz", + "integrity": "sha512-Nmt5Us5w2dL8eh7QVyAIDVVwBv4wk8ljrBQe7lWkLaOcwABDaFQ3K4sAAC6IsOdJwaXXW+d85zVaMN+Xl8Co2w==", "cpu": [ "ppc64" ], @@ -3141,9 +2460,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.0.tgz", + "integrity": "sha512-KGuQ8WGhnq09LR7eOru7P9jfBSYXTMhq6TyavWfmEo+TxvkvuRwOCee5lPIa6HYjblOuFr4GeOxSE0c8iyw2Fg==", "cpu": [ "riscv64" ], @@ -3154,9 +2473,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.0.tgz", + "integrity": "sha512-lSQtvrYIONme7a4gbf4O9d3zbZat3/5covIeoqk27ZIkTgBeL/67x+wq2bZfpLjkqQQp5SjBPQ/n0sg8iArzTg==", "cpu": [ "s390x" ], @@ -3167,9 +2486,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.0.tgz", + "integrity": "sha512-qh0ussrXBwnF4L07M9t1+jpHRhiGSae+wpNQDbmlXHXciT7pqpZ5zpk4dyGZPtDGB2l2clDiufE16BufXPGRWQ==", "cpu": [ "x64" ], @@ -3180,9 +2499,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.0.tgz", + "integrity": "sha512-YEABzSaRS7+v14yw6MVBZoMqLoUyTX1/sJoGeC0euvgMrzvw0i+jHo4keDZgYeOblfwdseVAf6ylxWSvcBAKTA==", "cpu": [ "x64" ], @@ -3193,9 +2512,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.0.tgz", + "integrity": "sha512-jA4+oxG7QTTtSQxwSHzFVwShcppHO2DpkbAM59pfD5WMG/da79yQaeBtXAfGTI+ciUx8hqK3RF3H2KWByITXtQ==", "cpu": [ "arm64" ], @@ -3206,9 +2525,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.0.tgz", + "integrity": "sha512-4TQbLoAQVu9uE+cvh47JnjRZylXVdRCoOkRSVF2Rr2T0U1YwphGRjR0sHyRPEt95y3ETT4YFTTzQPq1O4bcjmw==", "cpu": [ "ia32" ], @@ -3219,9 +2538,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.0.tgz", + "integrity": "sha512-GsFvcTZ7Yj9k94Qm0qgav7pxmQ7lQDR9NjoelRaxeV1UF6JSDfanR/2tHZ8hS7Ps4KPIVf5AElYPRPmN/Q0ZkQ==", "cpu": [ "x64" ], @@ -3266,6 +2585,28 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@scure/bip32/node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", + "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@scure/bip39": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", @@ -3278,45 +2619,26 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", "engines": { - "node": ">=10" + "node": ">= 16" }, "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "url": "https://paulmillr.com/funding/" } }, "node_modules/@swc/helpers": { "version": "0.5.15", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "peer": true, "dependencies": { "tslib": "^2.8.0" } }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -3358,89 +2680,37 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "dev": true, - "dependencies": { - "@types/ms": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/node": { - "version": "20.17.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.1.tgz", - "integrity": "sha512-j2VlPv1NnwPJbaCNv69FO/1z4lId0QmGvpT41YxitRtWlg96g/j8qcv2RKsLKe2F6OJgyXhupN1Xo17b2m139Q==", - "dependencies": { - "undici-types": "~6.19.2" - } - }, - "node_modules/@types/plist": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.5.tgz", - "integrity": "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==", + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "dev": true, - "optional": true, "dependencies": { - "@types/node": "*", - "xmlbuilder": ">=11.0.1" + "undici-types": "~6.20.0" } }, "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", "devOptional": true }, "node_modules/@types/react": { - "version": "18.3.12", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", - "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "devOptional": true, "dependencies": { "@types/prop-types": "*", @@ -3448,110 +2718,78 @@ } }, "node_modules/@types/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", "devOptional": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/verror": { - "version": "1.10.10", - "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.10.tgz", - "integrity": "sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==", - "dev": true, - "optional": true - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "optional": true, - "dependencies": { - "@types/node": "*" + "peerDependencies": { + "@types/react": "^18.0.0" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.1.tgz", + "integrity": "sha512-Ncvsq5CT3Gvh+uJG0Lwlho6suwDfUXH0HztslDf5I+F2wAFAZMRwYLEorumpKLzmO2suAXZ/td1tBg4NZIi9CQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.18.1", + "@typescript-eslint/type-utils": "8.18.1", + "@typescript-eslint/utils": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.1.tgz", + "integrity": "sha512-rBnTWHCdbYM2lh7hjyXqxk70wvon3p2FyaniZuey5TrcGBpfhVp0OxOa6gxr9Q9YhZFKyfbEnxc24ZnVbbUkCA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.18.1", + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/typescript-estree": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.1.tgz", + "integrity": "sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3559,39 +2797,35 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.1.tgz", + "integrity": "sha512-jAhTdK/Qx2NJPNOTxXpMwlOiSymtR2j283TtPqXkKBdH8OAMmhiUfP0kJjc/qSE51Xrq02Gj9NY7MwK+UxVwHQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/typescript-estree": "8.18.1", + "@typescript-eslint/utils": "8.18.1", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.1.tgz", + "integrity": "sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==", "dev": true, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3599,87 +2833,116 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.1.tgz", + "integrity": "sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.1.tgz", + "integrity": "sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.18.1", + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/typescript-estree": "8.18.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.1.tgz", + "integrity": "sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.18.1", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, "node_modules/@vitejs/plugin-react": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.3.tgz", - "integrity": "sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "dependencies": { - "@babel/core": "^7.25.2", - "@babel/plugin-transform-react-jsx-self": "^7.24.7", - "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" }, @@ -3687,28 +2950,13 @@ "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/7zip-bin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz", - "integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==", - "dev": true - }, "node_modules/acorn": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", - "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -3726,18 +2974,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -3754,21 +2990,15 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { @@ -3802,182 +3032,6 @@ "node": ">= 8" } }, - "node_modules/app-builder-bin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz", - "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", - "dev": true - }, - "node_modules/app-builder-lib": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.13.3.tgz", - "integrity": "sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==", - "dev": true, - "dependencies": { - "@develar/schema-utils": "~2.6.5", - "@electron/notarize": "2.2.1", - "@electron/osx-sign": "1.0.5", - "@electron/universal": "1.5.1", - "@malept/flatpak-bundler": "^0.4.0", - "@types/fs-extra": "9.0.13", - "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.9", - "builder-util": "24.13.1", - "builder-util-runtime": "9.2.4", - "chromium-pickle-js": "^0.2.0", - "debug": "^4.3.4", - "ejs": "^3.1.8", - "electron-publish": "24.13.1", - "form-data": "^4.0.0", - "fs-extra": "^10.1.0", - "hosted-git-info": "^4.1.0", - "is-ci": "^3.0.0", - "isbinaryfile": "^5.0.0", - "js-yaml": "^4.1.0", - "lazy-val": "^1.0.5", - "minimatch": "^5.1.1", - "read-config-file": "6.3.2", - "sanitize-filename": "^1.6.3", - "semver": "^7.3.8", - "tar": "^6.1.12", - "temp-file": "^3.4.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "dmg-builder": "24.13.3", - "electron-builder-squirrel-windows": "24.13.3" - } - }, - "node_modules/app-builder-lib/node_modules/fs-extra": { - "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==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/app-builder-lib/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/app-builder-lib/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/app-builder-lib/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "dev": true, - "peer": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "peer": true, - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver-utils/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "peer": true - }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "peer": true, - "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" - } - }, - "node_modules/archiver-utils/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "peer": true - }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", @@ -4000,195 +3054,6 @@ "node": ">=10" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true - }, - "node_modules/async-exit-hook": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", - "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/autoprefixer": { "version": "10.4.20", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", @@ -4226,46 +3091,11 @@ "postcss": "^8.1.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -4277,46 +3107,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "peer": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/bluebird-lst": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", - "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5" - } - }, - "node_modules/boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "optional": true - }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/braces": { @@ -4331,9 +3129,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", + "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", "dev": true, "funding": [ { @@ -4350,9 +3148,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { @@ -4362,181 +3160,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", - "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", - "dev": true, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/builder-util": { - "version": "24.13.1", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.13.1.tgz", - "integrity": "sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==", - "dev": true, - "dependencies": { - "@types/debug": "^4.1.6", - "7zip-bin": "~5.2.0", - "app-builder-bin": "4.0.0", - "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.2.4", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "debug": "^4.3.4", - "fs-extra": "^10.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-ci": "^3.0.0", - "js-yaml": "^4.1.0", - "source-map-support": "^0.5.19", - "stat-mode": "^1.0.0", - "temp-file": "^3.4.0" - } - }, - "node_modules/builder-util-runtime": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz", - "integrity": "sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "sax": "^1.2.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/builder-util/node_modules/fs-extra": { - "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==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/builder-util/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/builder-util/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "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" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -4555,9 +3178,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001669", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", - "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", + "version": "1.0.30001690", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", + "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", "dev": true, "funding": [ { @@ -4624,95 +3247,15 @@ "node": ">= 6" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chromium-pickle-js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", - "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", - "dev": true - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, "node_modules/class-variance-authority": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz", - "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", "dependencies": { - "clsx": "2.0.0" + "clsx": "^2.1.1" }, "funding": { - "url": "https://joebell.co.uk" - } - }, - "node_modules/class-variance-authority/node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "optional": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://polar.sh/cva" } }, "node_modules/clsx": { @@ -4841,6 +3384,41 @@ } } }, + "node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/cmdk/node_modules/@radix-ui/react-focus-guards": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", @@ -4883,6 +3461,23 @@ } } }, + "node_modules/cmdk/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/cmdk/node_modules/@radix-ui/react-id": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", @@ -4901,6 +3496,23 @@ } } }, + "node_modules/cmdk/node_modules/@radix-ui/react-id/node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/cmdk/node_modules/@radix-ui/react-portal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", @@ -4948,6 +3560,23 @@ } } }, + "node_modules/cmdk/node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/cmdk/node_modules/@radix-ui/react-primitive": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", @@ -4989,23 +3618,6 @@ } } }, - "node_modules/cmdk/node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", - "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", @@ -5024,28 +3636,10 @@ } } }, - "node_modules/cmdk/node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", - "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-use-layout-effect": { + "node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state/node_modules/@radix-ui/react-use-callback-ref": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", - "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -5087,6 +3681,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "peer": true, "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" @@ -5115,6 +3710,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "peer": true, "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -5123,152 +3719,33 @@ "node_modules/color2k": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz", - "integrity": "sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } + "integrity": "sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==", + "peer": true }, "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true, + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "engines": { "node": ">= 6" } }, - "node_modules/compare-version": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", - "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "dev": true, - "peer": true, - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/config-file-ts": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.6.tgz", - "integrity": "sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==", - "dev": true, - "dependencies": { - "glob": "^10.3.10", - "typescript": "^5.3.3" - } - }, - "node_modules/config-file-ts/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/config-file-ts/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "node_modules/crc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.1.0" - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "peer": true, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "dev": true, - "peer": true, - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/cross-spawn": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", - "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -5295,61 +3772,10 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "devOptional": true }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/dataloader": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", - "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.3.tgz", + "integrity": "sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==" }, "node_modules/dayjs": { "version": "1.11.13", @@ -5357,9 +3783,10 @@ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "dependencies": { "ms": "^2.1.3" }, @@ -5372,30 +3799,11 @@ } } }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "peer": true }, "node_modules/deep-is": { "version": "0.1.4", @@ -5407,67 +3815,11 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "peer": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "devOptional": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "devOptional": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "optional": true - }, "node_modules/detect-node-es": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", @@ -5478,621 +3830,64 @@ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, - "node_modules/dir-compare": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz", - "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", - "dev": true, - "dependencies": { - "buffer-equal": "^1.0.0", - "minimatch": "^3.0.4" - } - }, - "node_modules/dir-compare/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/dir-compare/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, - "node_modules/dmg-builder": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.13.3.tgz", - "integrity": "sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==", - "dev": true, - "dependencies": { - "app-builder-lib": "24.13.3", - "builder-util": "24.13.1", - "builder-util-runtime": "9.2.4", - "fs-extra": "^10.1.0", - "iconv-lite": "^0.6.2", - "js-yaml": "^4.1.0" - }, - "optionalDependencies": { - "dmg-license": "^1.0.11" - } - }, - "node_modules/dmg-builder/node_modules/fs-extra": { - "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==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/dmg-builder/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/dmg-builder/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/dmg-license": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", - "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "@types/plist": "^3.0.1", - "@types/verror": "^1.10.3", - "ajv": "^6.10.0", - "crc": "^3.8.0", - "iconv-corefoundation": "^1.1.7", - "plist": "^3.0.4", - "smart-buffer": "^4.0.2", - "verror": "^1.10.0" - }, - "bin": { - "dmg-license": "bin/dmg-license.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dotenv": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", - "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron": { - "version": "31.7.2", - "resolved": "https://registry.npmjs.org/electron/-/electron-31.7.2.tgz", - "integrity": "sha512-Q/v79DUJVHmRJw48CxaKFCbFCEBtIFhauvMy9NiD0iDwizKxXjIO3D9OO71z+M8Qq1y+M4DdZmk9QbTJzAlGAw==", - "hasInstallScript": true, - "dependencies": { - "@electron/get": "^2.0.0", - "@types/node": "^20.9.0", - "extract-zip": "^2.0.1" - }, - "bin": { - "electron": "cli.js" - }, - "engines": { - "node": ">= 12.20.55" - } - }, - "node_modules/electron-builder": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.13.3.tgz", - "integrity": "sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==", - "dev": true, - "dependencies": { - "app-builder-lib": "24.13.3", - "builder-util": "24.13.1", - "builder-util-runtime": "9.2.4", - "chalk": "^4.1.2", - "dmg-builder": "24.13.3", - "fs-extra": "^10.1.0", - "is-ci": "^3.0.0", - "lazy-val": "^1.0.5", - "read-config-file": "6.3.2", - "simple-update-notifier": "2.0.0", - "yargs": "^17.6.2" - }, - "bin": { - "electron-builder": "cli.js", - "install-app-deps": "install-app-deps.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/electron-builder-squirrel-windows": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-24.13.3.tgz", - "integrity": "sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==", - "dev": true, - "peer": true, - "dependencies": { - "app-builder-lib": "24.13.3", - "archiver": "^5.3.1", - "builder-util": "24.13.1", - "fs-extra": "^10.1.0" - } - }, - "node_modules/electron-builder-squirrel-windows/node_modules/fs-extra": { - "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==", - "dev": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/electron-builder-squirrel-windows/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/electron-builder-squirrel-windows/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/electron-builder/node_modules/fs-extra": { - "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==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/electron-builder/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/electron-builder/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/electron-publish": { - "version": "24.13.1", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.13.1.tgz", - "integrity": "sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==", - "dev": true, - "dependencies": { - "@types/fs-extra": "^9.0.11", - "builder-util": "24.13.1", - "builder-util-runtime": "9.2.4", - "chalk": "^4.1.2", - "fs-extra": "^10.1.0", - "lazy-val": "^1.0.5", - "mime": "^2.5.2" - } - }, - "node_modules/electron-publish/node_modules/fs-extra": { - "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==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/electron-publish/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/electron-publish/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/electron-to-chromium": { - "version": "1.5.45", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.45.tgz", - "integrity": "sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==", + "version": "1.5.75", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.75.tgz", + "integrity": "sha512-Lf3++DumRE/QmweGjU+ZcKqQ+3bKkU/qjaKYhIJKEOhgIO9Xs6IiAQFkfFoj+RhgDk4LUeNsLo6plExHqSyu6Q==", "dev": true }, - "node_modules/electron-vite": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/electron-vite/-/electron-vite-2.3.0.tgz", - "integrity": "sha512-lsN2FymgJlp4k6MrcsphGqZQ9fKRdJKasoaiwIrAewN1tapYI/KINLdfEL7n10LuF0pPSNf/IqjzZbB5VINctg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.24.7", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "cac": "^6.7.14", - "esbuild": "^0.21.5", - "magic-string": "^0.30.10", - "picocolors": "^1.0.1" - }, - "bin": { - "electron-vite": "bin/electron-vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@swc/core": "^1.0.0", - "vite": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - } - } - }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/end-of-stream": { - "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" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "devOptional": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "devOptional": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz", - "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.4", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.3", - "safe-array-concat": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "optional": true + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" } }, "node_modules/escalade": { @@ -6108,7 +3903,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=10" }, @@ -6117,267 +3912,125 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", + "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.17.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" + "url": "https://eslint.org/donate" }, "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": "*", - "prettier": ">=3.0.0" + "jiti": "*" }, "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { + "jiti": { "optional": true } } }, - "node_modules/eslint-plugin-react": { - "version": "7.37.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", - "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "node_modules/eslint-plugin-react-hooks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", + "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", "dev": true, - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.1.0", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.0", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11", - "string.prototype.repeat": "^1.0.0" - }, "engines": { - "node": ">=4" + "node": ">=10" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, - "node_modules/eslint-plugin-react/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.16.tgz", + "integrity": "sha512-slterMlxAhov/DZO8NScf6mEeMBBXodFUolijDvrtTxyezyLoTQaa73FyYus/VbTdftd8wBgBxPMRk3poleXNQ==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "peerDependencies": { + "eslint": ">=8.40" } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -6425,47 +4078,12 @@ "node": ">=0.10.0" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extsprintf": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "optional": true - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -6512,45 +4130,16 @@ "reusify": "^1.0.4" } }, - "node_modules/fd-slicer": { - "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" - } - }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -6584,39 +4173,30 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "peer": true, "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, "node_modules/foreground-child": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", @@ -6632,20 +4212,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -6660,16 +4226,18 @@ } }, "node_modules/framer-motion": { - "version": "11.11.17", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.11.17.tgz", - "integrity": "sha512-O8QzvoKiuzI5HSAHbcYuL6xU+ZLXbrH7C8Akaato4JzQbX2ULNeniqC2Vo5eiCtFktX9XsJ+7nUhxcl2E2IjpA==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.15.0.tgz", + "integrity": "sha512-MLk8IvZntxOMg7lDBLw2qgTHHv664bYoYmnFTmE0Gm/FW67aOJk0WM3ctMcG+Xhcv+vh5uyyXwxvxhSeJzSe+w==", "dependencies": { + "motion-dom": "^11.14.3", + "motion-utils": "^11.14.3", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@emotion/is-prop-valid": { @@ -6683,62 +4251,6 @@ } } }, - "node_modules/fs-constants": { - "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==", - "dev": true, - "peer": true - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fs-minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -6760,33 +4272,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -6796,34 +4281,6 @@ "node": ">=6.9.0" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "devOptional": true, - "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" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-nonce": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", @@ -6832,53 +4289,20 @@ "node": ">=6" } }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "*" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -6896,145 +4320,45 @@ } }, "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "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", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" - } - }, - "node_modules/global-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", - "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", - "optional": true, - "dependencies": { - "boolean": "^3.0.1", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" + "node": ">=16 || 14 >=14.17" }, - "engines": { - "node": ">=10.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "devOptional": true, - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "devOptional": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -7044,57 +4368,6 @@ "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "devOptional": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "devOptional": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "devOptional": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -7106,36 +4379,6 @@ "node": ">= 0.4" } }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/html-parse-stringify": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", @@ -7144,54 +4387,10 @@ "void-elements": "3.1.0" } }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "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==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/i18next": { - "version": "23.16.5", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.16.5.tgz", - "integrity": "sha512-KTlhE3EP9x6pPTAW7dy0WKIhoCpfOGhRQlO+jttQLgzVaoOjWwBWramu7Pp0i+8wDNduuzXfe3kkVbzrKyrbTA==", + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-24.2.0.tgz", + "integrity": "sha512-ArJJTS1lV6lgKH7yEf4EpgNZ7+THl7bsGxxougPYiXRTJ/Fe1j08/TBpV9QsXCIYVfdE/HWG/xLezJ5DOlfBOA==", "funding": [ { "type": "individual", @@ -7208,65 +4407,24 @@ ], "dependencies": { "@babel/runtime": "^7.23.2" + }, + "peerDependencies": { + "typescript": "^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/i18next-browser-languagedetector": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.0.0.tgz", - "integrity": "sha512-zhXdJXTTCoG39QsrOCiOabnWj2jecouOqbchu3EfhtSHxIB5Uugnm9JaizenOy39h7ne3+fLikIjeW88+rgszw==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.0.2.tgz", + "integrity": "sha512-shBvPmnIyZeD2VU5jVGIOWP7u9qNG3Lj7mpaiPFpbJ3LVfHZJvVzKR4v1Cb91wAOFpNw442N+LGPzHOHsten2g==", "dependencies": { "@babel/runtime": "^7.23.2" } }, - "node_modules/iconv-corefoundation": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", - "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "cli-truncate": "^2.1.0", - "node-addon-api": "^1.6.3" - }, - "engines": { - "node": "^8.11.2 || >=10" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -7301,103 +4459,23 @@ "node": ">=0.8.19" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/intl-messageformat": { - "version": "10.7.6", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.6.tgz", - "integrity": "sha512-IsMU/hqyy3FJwNJ0hxDfY2heJ7MteSuFvcnCebxRp67di4Fhx1gKKE+qS0bBwUF8yXkX9SsPUhLeX/B6h5SKUA==", + "version": "10.7.10", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.10.tgz", + "integrity": "sha512-hp7iejCBiJdW3zmOe18FdlJu8U/JsADSDiBPQhfdSeI8B9POtvPRvPh3nMlvhYayGMKLv6maldhR7y3Pf1vkpw==", + "peer": true, "dependencies": { - "@formatjs/ecma402-abstract": "2.2.3", - "@formatjs/fast-memoize": "2.2.3", - "@formatjs/icu-messageformat-parser": "2.9.3", + "@formatjs/ecma402-abstract": "2.3.1", + "@formatjs/fast-memoize": "2.2.5", + "@formatjs/icu-messageformat-parser": "2.9.7", "tslib": "2" } }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "peer": true }, "node_modules/is-binary-path": { "version": "2.1.0", @@ -7410,50 +4488,10 @@ "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.0.tgz", + "integrity": "sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==", "dependencies": { "hasown": "^2.0.2" }, @@ -7464,36 +4502,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "dev": true, - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -7502,18 +4510,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -7522,21 +4518,6 @@ "node": ">=8" } }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -7548,30 +4529,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -7580,197 +4537,11 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isbinaryfile": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.4.tgz", - "integrity": "sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==", - "dev": true, - "engines": { - "node": ">= 18.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "node_modules/iterator.prototype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", - "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -7785,50 +4556,10 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "dev": true, - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jake/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/jake/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "bin": { "jiti": "bin/jiti.js" } @@ -7851,9 +4582,9 @@ } }, "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -7865,7 +4596,8 @@ "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -7879,12 +4611,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "optional": true - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -7897,96 +4623,15 @@ "node": ">=6" } }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, "dependencies": { "json-buffer": "3.0.1" } }, - "node_modules/lazy-val": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", - "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", - "dev": true - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "peer": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "peer": true - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "peer": true, - "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" - } - }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "peer": true - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -8001,11 +4646,14 @@ } }, "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { @@ -8028,78 +4676,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true, - "peer": true - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true, - "peer": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true, - "peer": true - }, - "node_modules/lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true, - "peer": true - }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" - }, - "node_modules/lodash.mapkeys": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.mapkeys/-/lodash.mapkeys-4.6.0.tgz", - "integrity": "sha512-0Al+hxpYvONWtg+ZqHpa/GaVzxuN3V7Xeo2p+bY06EaK/n+Y9R7nBePPN2o1LxmL0TWQSwP8LYZ008/hc9JzhA==" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==" - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true, - "peer": true - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -8111,49 +4693,20 @@ "loose-envify": "cli.js" } }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, "node_modules/lru-cache": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.1.tgz", - "integrity": "sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "engines": { "node": "20 || >=22" } }, "node_modules/lucide-react": { - "version": "0.453.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.453.0.tgz", - "integrity": "sha512-kL+RGZCcJi9BvJtzg2kshO192Ddy9hv3ij+cPrVPWSRzgCWCVazoQJxOjAwgK53NomL07HB7GPHW120FimjNhQ==", + "version": "0.469.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.469.0.tgz", + "integrity": "sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==", "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" - } - }, - "node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "optional": true, - "dependencies": { - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=10" + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/merge2": { @@ -8176,125 +4729,41 @@ "node": ">=8.6" } }, - "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "*" } }, "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } + "node_modules/motion-dom": { + "version": "11.14.3", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.14.3.tgz", + "integrity": "sha512-lW+D2wBy5vxLJi6aCP0xyxTxlTfiu+b+zcpVbGVFUxotwThqhdpPRSmX8xztAgtZMPMeU0WGVn/k1w4I+TbPqA==" }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } + "node_modules/motion-utils": { + "version": "11.14.3", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.14.3.tgz", + "integrity": "sha512-Xg+8xnqIJTpr0L/cidfTTBFkvRw26ZtGGuIhA94J9PQ2p4mEa06Xx7QVYZH0BP+EpMSaDlu+q0I0mmvwADPsaQ==" }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true }, "node_modules/mz": { "version": "2.7.0", @@ -8307,9 +4776,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -8329,17 +4798,10 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/node-addon-api": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", - "dev": true, - "optional": true - }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true }, "node_modules/normalize-path": { @@ -8359,21 +4821,10 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/nostr-tools": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-2.9.1.tgz", - "integrity": "sha512-QYK/M2eugK82dEriVGSzZCRn6Sbb88bxICA15wr+ebEULSACysZnDhNoCxdJyqZPva5x+Ql7h4JmEfpc6Ov2fQ==", + "version": "2.10.4", + "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-2.10.4.tgz", + "integrity": "sha512-biU7sk+jxHgVASfobg2T5ttxOGGSt69wEVBC51sHHOEaKAAdzHBLV/I2l9Rf61UzClhliZwNouYhqIso4a3HYg==", "dependencies": { "@noble/ciphers": "^0.5.1", "@noble/curves": "1.2.0", @@ -8383,7 +4834,7 @@ "@scure/bip39": "1.2.1" }, "optionalDependencies": { - "nostr-wasm": "v0.1.0" + "nostr-wasm": "0.1.0" }, "peerDependencies": { "typescript": ">=5.0.0" @@ -8394,6 +4845,17 @@ } } }, + "node_modules/nostr-tools/node_modules/@noble/hashes": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", + "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/nostr-wasm": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/nostr-wasm/-/nostr-wasm-0.1.0.tgz", @@ -8416,102 +4878,6 @@ "node": ">= 6" } }, - "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "devOptional": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -8529,14 +4895,6 @@ "node": ">= 0.8.0" } }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "engines": { - "node": ">=8" - } - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -8593,15 +4951,6 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -8643,20 +4992,6 @@ "node": ">=16" } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -8689,33 +5024,10 @@ "node": ">= 6" } }, - "node_modules/plist": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", - "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", - "dev": true, - "dependencies": { - "@xmldom/xmldom": "^0.8.8", - "base64-js": "^1.5.1", - "xmlbuilder": "^15.1.1" - }, - "engines": { - "node": ">=10.4.0" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "funding": [ { "type": "opencollective", @@ -8732,7 +5044,7 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.1.0", + "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { @@ -8755,22 +5067,6 @@ "postcss": "^8.0.0" } }, - "node_modules/postcss-import/node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/postcss-js": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", @@ -8823,17 +5119,6 @@ } } }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, "node_modules/postcss-nested": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", @@ -8885,9 +5170,9 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -8899,66 +5184,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/process-nextick-args": { - "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==", - "dev": true, - "peer": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -8969,11 +5194,11 @@ } }, "node_modules/qrcode.react": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-4.1.0.tgz", - "integrity": "sha512-uqXVIIVD/IPgWLYxbOczCNAQw80XCM/LulYDADF+g2xDsPj5OoRwSWtIS4jGyp295wyjKstfG1qIv/I2/rNWpQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-4.2.0.tgz", + "integrity": "sha512-QpgqWi8rD9DsS9EP3z7BT+5lY5SFhsqGjpgW5DY/i3mK4M9DTBNz3ErMi8BWYEfI3L0d8GIbGmcdFAS1uIRGjA==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/queue-microtask": { @@ -8995,17 +5220,6 @@ } ] }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -9030,9 +5244,9 @@ } }, "node_modules/react-i18next": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.1.1.tgz", - "integrity": "sha512-R/Vg9wIli2P3FfeI8o1eNJUJue5LWpFsQePCHdQDmX0Co3zkr6kdT8gAseb/yGeWbNz1Txc4bKDQuZYsC0kQfw==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.2.0.tgz", + "integrity": "sha512-iJNc8111EaDtVTVMKigvBtPHyrJV+KblWG73cUxqp+WmJCcwkzhWNFXmkAD5pwP2Z4woeDj/oXDdbjDsb3Gutg==", "dependencies": { "@babel/runtime": "^7.25.0", "html-parse-stringify": "^3.0.1" @@ -9050,12 +5264,6 @@ } } }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -9066,22 +5274,22 @@ } }, "node_modules/react-remove-scroll": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz", - "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.2.tgz", + "integrity": "sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==", "dependencies": { - "react-remove-scroll-bar": "^2.3.6", + "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.1", "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", + "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.2" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -9090,19 +5298,19 @@ } }, "node_modules/react-remove-scroll-bar": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", - "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", "dependencies": { - "react-style-singleton": "^2.2.1", + "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -9111,9 +5319,9 @@ } }, "node_modules/react-resizable-panels": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-2.1.5.tgz", - "integrity": "sha512-JMSe18rYupmx+dzYcdfWYZ93ZdxqQmLum3xWDVSUMI0UVwl9bB9gUaFmPbxYoO4G+m5sqgdXQCYQxnOysytfnw==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-2.1.7.tgz", + "integrity": "sha512-JtT6gI+nURzhMYQYsx8DKkx6bSoOGFp7A3CwMrOb8y5jFHFyqwo9m68UhmXRw57fRVJksFn1TSlm3ywEQ9vMgA==", "peerDependencies": { "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" @@ -9128,20 +5336,19 @@ } }, "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", "dependencies": { "get-nonce": "^1.0.0", - "invariant": "^2.2.4", "tslib": "^2.0.0" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -9157,61 +5364,6 @@ "pify": "^2.3.0" } }, - "node_modules/read-config-file": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.3.2.tgz", - "integrity": "sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==", - "dev": true, - "dependencies": { - "config-file-ts": "^0.2.4", - "dotenv": "^9.0.2", - "dotenv-expand": "^5.1.0", - "js-yaml": "^4.1.0", - "json5": "^2.2.0", - "lazy-val": "^1.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "peer": true, - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "peer": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -9223,81 +5375,30 @@ "node": ">=8.10.0" } }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.1", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -9307,26 +5408,6 @@ "node": ">=4" } }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -9336,43 +5417,10 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/roarr": { - "version": "2.15.4", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", - "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "optional": true, - "dependencies": { - "boolean": "^3.0.1", - "detect-node": "^2.0.4", - "globalthis": "^1.0.1", - "json-stringify-safe": "^5.0.1", - "semver-compare": "^1.0.0", - "sprintf-js": "^1.1.2" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.29.0.tgz", + "integrity": "sha512-pdftUn12oB9Qlka+Vpyc39R28D4NsP9Sz6neepSrekofJmWzPD1sxcSO9hEOxFF8+7Kz3sHvwSkkRREI28M1/w==", "dev": true, "dependencies": { "@types/estree": "1.0.6" @@ -9385,22 +5433,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", + "@rollup/rollup-android-arm-eabi": "4.29.0", + "@rollup/rollup-android-arm64": "4.29.0", + "@rollup/rollup-darwin-arm64": "4.29.0", + "@rollup/rollup-darwin-x64": "4.29.0", + "@rollup/rollup-freebsd-arm64": "4.29.0", + "@rollup/rollup-freebsd-x64": "4.29.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.29.0", + "@rollup/rollup-linux-arm-musleabihf": "4.29.0", + "@rollup/rollup-linux-arm64-gnu": "4.29.0", + "@rollup/rollup-linux-arm64-musl": "4.29.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.29.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.29.0", + "@rollup/rollup-linux-riscv64-gnu": "4.29.0", + "@rollup/rollup-linux-s390x-gnu": "4.29.0", + "@rollup/rollup-linux-x64-gnu": "4.29.0", + "@rollup/rollup-linux-x64-musl": "4.29.0", + "@rollup/rollup-win32-arm64-msvc": "4.29.0", + "@rollup/rollup-win32-ia32-msvc": "4.29.0", + "@rollup/rollup-win32-x64-msvc": "4.29.0", "fsevents": "~2.3.2" } }, @@ -9426,83 +5477,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true - }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dev": true, - "dependencies": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true - }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -9512,68 +5486,12 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "devOptional": true, + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "optional": true - }, - "node_modules/serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "optional": true, - "dependencies": { - "type-fest": "^0.13.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "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" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" } }, "node_modules/shebang-command": { @@ -9595,24 +5513,6 @@ "node": ">=8" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -9628,66 +5528,11 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "peer": true, "dependencies": { "is-arrayish": "^0.3.1" } }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -9696,52 +5541,20 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "optional": true - }, - "node_modules/stat-mode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", - "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { @@ -9758,92 +5571,20 @@ "node": ">=8" } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", - "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" - }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { + "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", @@ -9854,6 +5595,20 @@ "node": ">=8" } }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", @@ -9866,6 +5621,14 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -9899,52 +5662,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sumchecker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", - "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dependencies": { - "debug": "^4.1.0" - }, - "engines": { - "node": ">= 8.0" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -9968,26 +5685,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/synckit": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", - "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", - "dev": true, - "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, "node_modules/tailwind-merge": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz", - "integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.5.tgz", + "integrity": "sha512-0LXunzzAZzo0tEPxV3I297ffKZPlKDrjj7NXphC8V5ak9yHC5zRmxnOe2m/Rd/7ivsOMJe3JZ2JVocoDdQTRBA==", "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" @@ -9997,6 +5698,7 @@ "version": "0.1.20", "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.1.20.tgz", "integrity": "sha512-AMh7x313t/V+eTySKB0Dal08RHY7ggYK0MSn/ad8wKWOrDUIzyiWNayRUm2PIJ4VRkvRnfNuyRuKbLV3EN+ewQ==", + "peer": true, "dependencies": { "tailwind-merge": "^1.14.0" }, @@ -10012,38 +5714,39 @@ "version": "1.14.0", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz", "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==", + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" } }, "node_modules/tailwindcss": { - "version": "3.4.14", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", - "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==", + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", - "chokidar": "^3.5.3", + "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.3.0", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", "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", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", @@ -10061,113 +5764,6 @@ "tailwindcss": ">=3.0.0 || insiders" } }, - "node_modules/tailwindcss/node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "peer": true, - "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" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/temp-file": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", - "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", - "dev": true, - "dependencies": { - "async-exit-hook": "^2.0.1", - "fs-extra": "^10.0.0" - } - }, - "node_modules/temp-file/node_modules/fs-extra": { - "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==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/temp-file/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/temp-file/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -10187,24 +5783,6 @@ "node": ">=0.8" } }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "dev": true, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/tmp-promise": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", - "dev": true, - "dependencies": { - "tmp": "^0.2.0" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -10216,19 +5794,10 @@ "node": ">=8.0" } }, - "node_modules/truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", - "dev": true, - "dependencies": { - "utf8-byte-length": "^1.0.1" - } - }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "dev": true, "engines": { "node": ">=16" @@ -10243,9 +5812,9 @@ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, "node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "node_modules/type-check": { "version": "0.4.0", @@ -10259,91 +5828,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typescript": { "version": "5.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", @@ -10357,33 +5841,33 @@ "node": ">=14.17" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "node_modules/typescript-eslint": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.18.1.tgz", + "integrity": "sha512-Mlaw6yxuaDEPQvb/2Qwu3/TfgeBHy9iTJ3mTwe7OvpPmF6KPQjVOfGyEJpPv6Ez2C34OODChhXrzYw/9phI0MQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "@typescript-eslint/eslint-plugin": "8.18.1", + "@typescript-eslint/parser": "8.18.1", + "@typescript-eslint/utils": "8.18.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true }, "node_modules/update-browserslist-db": { "version": "1.1.1", @@ -10425,9 +5909,9 @@ } }, "node_modules/use-callback-ref": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", - "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", "dependencies": { "tslib": "^2.0.0" }, @@ -10435,8 +5919,8 @@ "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -10445,9 +5929,9 @@ } }, "node_modules/use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -10456,8 +5940,8 @@ "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -10465,47 +5949,26 @@ } } }, - "node_modules/utf8-byte-length": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", - "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==", - "dev": true - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "node_modules/verror": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", - "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/vite": { - "version": "5.4.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", - "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.5.tgz", + "integrity": "sha512-akD5IAH/ID5imgue2DYhzsEwCi0/4VKY31uhMLEYJwPP4TiUp8pL5PIK+Wo7H8qT8JY9i+pVfPydcFPYD1EL7g==", "dev": true, "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "0.24.0", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -10514,19 +5977,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -10547,6 +6016,12 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, @@ -10572,85 +6047,6 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", - "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", - "dev": true, - "dependencies": { - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -10661,17 +6057,16 @@ } }, "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -10694,27 +6089,52 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", - "dev": true, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { - "node": ">=8.0" + "node": ">=8" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/yallist": { @@ -10724,9 +6144,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", - "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", "bin": { "yaml": "bin.mjs" }, @@ -10734,46 +6154,10 @@ "node": ">= 14" } }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yauzl": { - "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" - } - }, "node_modules/yet-another-react-lightbox": { - "version": "3.21.6", - "resolved": "https://registry.npmjs.org/yet-another-react-lightbox/-/yet-another-react-lightbox-3.21.6.tgz", - "integrity": "sha512-uKcRmmezsj1Fbj38B6hFOGwbAu94fPr8d5H6I0+1FmcToX56freEGXXXtdA1oRo6036ug+UgrKZzzvsw/MIM/w==", + "version": "3.21.7", + "resolved": "https://registry.npmjs.org/yet-another-react-lightbox/-/yet-another-react-lightbox-3.21.7.tgz", + "integrity": "sha512-dcdokNuCIl92f0Vl+uzeKULnQhztIGpoZFUMvtVNUPmtwsQWpqWufeieDPeg9JtFyVCcbj4vYw3V00DS0QNoWA==", "engines": { "node": ">=14" }, @@ -10794,41 +6178,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "dev": true, - "peer": true, - "dependencies": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "dev": true, - "peer": true, - "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" + "node_modules/zod": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" } } } diff --git a/package.json b/package.json index 73869609..b0ed70b6 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,8 @@ "name": "jumble", "version": "0.1.0", "description": "Yet another Nostr desktop client", - "main": "./out/main/index.js", + "private": true, + "type": "module", "author": "codytseng", "license": "MIT", "repository": { @@ -11,80 +12,63 @@ }, "homepage": "https://github.com/CodyTseng/jumble", "scripts": { + "dev": "vite --host", + "build": "tsc -b && vite build", + "lint": "eslint .", "format": "prettier --write .", - "lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix", - "typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false", - "typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false", - "typecheck": "npm run typecheck:node && npm run typecheck:web", - "start": "electron-vite preview", - "dev": "electron-vite dev", - "dev:web": "vite --config web.vite.config.ts", - "build": "npm run typecheck && electron-vite build", - "postinstall": "electron-builder install-app-deps", - "build:unpack": "npm run build && electron-builder --dir", - "build:win": "npm run build && electron-builder --win -p never", - "build:mac": "electron-vite build && electron-builder --mac -p never", - "build:linux": "electron-vite build && electron-builder --linux -p never", - "build:web": "vite build --config web.vite.config.ts" + "preview": "vite preview" }, "dependencies": { - "@electron-toolkit/preload": "^3.0.1", - "@electron-toolkit/utils": "^3.0.0", - "@nextui-org/image": "^2.0.32", - "@nextui-org/system": "^2.2.6", - "@nextui-org/theme": "^2.2.11", - "@radix-ui/react-alert-dialog": "^1.1.2", - "@radix-ui/react-avatar": "^1.1.1", - "@radix-ui/react-dialog": "^1.1.2", - "@radix-ui/react-dropdown-menu": "^2.1.2", - "@radix-ui/react-hover-card": "^1.1.2", - "@radix-ui/react-popover": "^1.1.2", - "@radix-ui/react-radio-group": "^1.2.1", - "@radix-ui/react-scroll-area": "^1.2.0", - "@radix-ui/react-select": "^2.1.2", - "@radix-ui/react-separator": "^1.1.0", - "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-switch": "^1.1.1", - "@radix-ui/react-toast": "^1.2.2", - "class-variance-authority": "^0.7.0", + "@nextui-org/image": "^2.2.3", + "@radix-ui/react-avatar": "^1.1.2", + "@radix-ui/react-dialog": "^1.1.4", + "@radix-ui/react-dropdown-menu": "^2.1.4", + "@radix-ui/react-hover-card": "^1.1.4", + "@radix-ui/react-popover": "^1.1.4", + "@radix-ui/react-scroll-area": "^1.2.2", + "@radix-ui/react-separator": "^1.1.1", + "@radix-ui/react-slot": "^1.1.1", + "@radix-ui/react-switch": "^1.1.2", + "@radix-ui/react-toast": "^1.2.4", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.0.0", - "dataloader": "^2.2.2", + "dataloader": "^2.2.3", "dayjs": "^1.11.13", - "framer-motion": "^11.11.17", - "i18next": "^23.16.5", - "i18next-browser-languagedetector": "^8.0.0", - "lru-cache": "^11.0.1", - "lucide-react": "^0.453.0", - "nostr-tools": "^2.9.1", + "framer-motion": "^11.15.0", + "i18next": "^24.2.0", + "i18next-browser-languagedetector": "^8.0.2", + "lru-cache": "^11.0.2", + "lucide-react": "^0.469.0", + "nostr-tools": "^2.10.4", "path-to-regexp": "^8.2.0", - "qrcode.react": "^4.1.0", - "react-i18next": "^15.1.1", - "react-resizable-panels": "^2.1.5", - "react-string-replace": "^1.1.1", - "tailwind-merge": "^2.5.4", - "tailwindcss-animate": "^1.0.7", - "yet-another-react-lightbox": "^3.21.6" - }, - "devDependencies": { - "@electron-toolkit/eslint-config-prettier": "^2.0.0", - "@electron-toolkit/eslint-config-ts": "^2.0.0", - "@electron-toolkit/tsconfig": "^1.0.1", - "@types/node": "^20.14.8", - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.3.1", - "autoprefixer": "^10.4.20", - "electron": "^31.0.2", - "electron-builder": "^24.13.3", - "electron-vite": "^2.3.0", - "eslint": "^8.57.0", - "eslint-plugin-react": "^7.34.3", - "prettier": "^3.3.2", + "qrcode.react": "^4.2.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "tailwindcss": "^3.4.14", - "typescript": "^5.5.2", - "vite": "^5.3.1" + "react-i18next": "^15.2.0", + "react-resizable-panels": "^2.1.7", + "react-string-replace": "^1.1.1", + "tailwind-merge": "^2.5.5", + "tailwindcss-animate": "^1.0.7", + "yet-another-react-lightbox": "^3.21.7", + "zod": "^3.24.1" + }, + "devDependencies": { + "@eslint/js": "^9.17.0", + "@types/node": "^22.10.2", + "@types/react": "^18.3.17", + "@types/react-dom": "^18.3.5", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "eslint": "^9.17.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.16", + "globals": "^15.13.0", + "postcss": "^8.4.49", + "prettier": "3.4.2", + "tailwindcss": "^3.4.17", + "typescript": "~5.6.2", + "typescript-eslint": "^8.18.1", + "vite": "^6.0.3" } } diff --git a/postcss.config.js b/postcss.config.js index fdc8a498..2b75bd8a 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,3 +1,6 @@ -module.exports = { - plugins: [require('tailwindcss'), require('autoprefixer')] +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {} + } } diff --git a/src/renderer/src/assets/favicon-dark.svg b/public/favicon-dark.svg similarity index 100% rename from src/renderer/src/assets/favicon-dark.svg rename to public/favicon-dark.svg diff --git a/src/renderer/src/assets/favicon-light.svg b/public/favicon-light.svg similarity index 100% rename from src/renderer/src/assets/favicon-light.svg rename to public/favicon-light.svg diff --git a/resources/icon.png b/resources/icon.png deleted file mode 100644 index d180f336cf8733353a17b8157bc74141202d7fd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23783 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 \ No newline at end of file diff --git a/src/renderer/src/App.tsx b/src/App.tsx similarity index 87% rename from src/renderer/src/App.tsx rename to src/App.tsx index 888e9bbd..6dc8aad3 100644 --- a/src/renderer/src/App.tsx +++ b/src/App.tsx @@ -1,8 +1,8 @@ import 'yet-another-react-lightbox/styles.css' -import './assets/main.css' +import './index.css' -import { Toaster } from '@renderer/components/ui/toaster' -import { ThemeProvider } from '@renderer/providers/ThemeProvider' +import { Toaster } from '@/components/ui/toaster' +import { ThemeProvider } from '@/providers/ThemeProvider' import { PageManager } from './PageManager' import NoteListPage from './pages/primary/NoteListPage' import { FollowListProvider } from './providers/FollowListProvider' diff --git a/src/renderer/src/PageManager.tsx b/src/PageManager.tsx similarity index 95% rename from src/renderer/src/PageManager.tsx rename to src/PageManager.tsx index 79f0addb..1ddc534b 100644 --- a/src/renderer/src/PageManager.tsx +++ b/src/PageManager.tsx @@ -1,11 +1,7 @@ -import Sidebar from '@renderer/components/Sidebar' -import { - ResizableHandle, - ResizablePanel, - ResizablePanelGroup -} from '@renderer/components/ui/resizable' -import { cn } from '@renderer/lib/utils' -import HomePage from '@renderer/pages/secondary/HomePage' +import Sidebar from '@/components/Sidebar' +import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from '@/components/ui/resizable' +import { cn } from '@/lib/utils' +import HomePage from '@/pages/secondary/HomePage' import { cloneElement, createContext, useContext, useEffect, useState } from 'react' import { useScreenSize } from './providers/ScreenSizeProvider' import { routes } from './routes' @@ -187,7 +183,9 @@ export function SecondaryPageLink({ { - onClick && onClick(e) + if (onClick) { + onClick(e) + } push(to) }} > diff --git a/src/renderer/src/assets/Logo.tsx b/src/assets/Logo.tsx similarity index 100% rename from src/renderer/src/assets/Logo.tsx rename to src/assets/Logo.tsx diff --git a/src/common/types.ts b/src/common/types.ts deleted file mode 100644 index 8075888c..00000000 --- a/src/common/types.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { ElectronAPI } from '@electron-toolkit/preload' -import { Event } from 'nostr-tools' - -export type TRelayGroup = { - groupName: string - relayUrls: string[] - isActive: boolean -} - -export type TConfig = { - relayGroups: TRelayGroup[] - theme: TThemeSetting -} - -export type TThemeSetting = 'light' | 'dark' | 'system' -export type TTheme = 'light' | 'dark' - -export type TDraftEvent = Pick - -export interface ISigner { - getPublicKey: () => Promise - signEvent: (draftEvent: TDraftEvent) => Promise -} - -export type TElectronWindow = { - electron: ElectronAPI - api: { - system: { - isEncryptionAvailable: () => Promise - getSelectedStorageBackend: () => Promise - } - theme: { - addChangeListener: (listener: (theme: TTheme) => void) => void - removeChangeListener: () => void - current: () => Promise - } - storage: { - getItem: (key: string) => Promise - setItem: (key: string, value: string) => Promise - removeItem: (key: string) => Promise - } - nostr: { - login: (nsec: string) => Promise<{ - pubkey?: string - reason?: string - }> - logout: () => Promise - } - } - nostr: ISigner -} - -export type TAccount = { - pubkey: string - signerType: 'nsec' | 'browser-nsec' | 'nip-07' | 'bunker' - nsec?: string - bunker?: string - bunkerClientSecretKey?: string -} diff --git a/src/renderer/src/components/AboutInfoDialog/index.tsx b/src/components/AboutInfoDialog/index.tsx similarity index 79% rename from src/renderer/src/components/AboutInfoDialog/index.tsx rename to src/components/AboutInfoDialog/index.tsx index 7bab7146..5890eaf4 100644 --- a/src/renderer/src/components/AboutInfoDialog/index.tsx +++ b/src/components/AboutInfoDialog/index.tsx @@ -5,7 +5,7 @@ import { DialogHeader, DialogTitle, DialogTrigger -} from '@renderer/components/ui/dialog' +} from '@/components/ui/dialog' import Username from '../Username' export default function AboutInfoDialog({ children }: { children: React.ReactNode }) { @@ -38,17 +38,6 @@ export default function AboutInfoDialog({ children }: { children: React.ReactNod GitHub -
- Desktop app:{' '} - - Download - -
If you like this project, you can buy me a coffee ☕️
⚡️ codytseng@getalby.com ⚡️
diff --git a/src/renderer/src/components/AccountButton/LoginButton.tsx b/src/components/AccountButton/LoginButton.tsx similarity index 83% rename from src/renderer/src/components/AccountButton/LoginButton.tsx rename to src/components/AccountButton/LoginButton.tsx index b319d77f..62f31913 100644 --- a/src/renderer/src/components/AccountButton/LoginButton.tsx +++ b/src/components/AccountButton/LoginButton.tsx @@ -1,5 +1,5 @@ -import { Button } from '@renderer/components/ui/button' -import { useNostr } from '@renderer/providers/NostrProvider' +import { Button } from '@/components/ui/button' +import { useNostr } from '@/providers/NostrProvider' import { LogIn } from 'lucide-react' export default function LoginButton({ diff --git a/src/renderer/src/components/AccountButton/ProfileButton.tsx b/src/components/AccountButton/ProfileButton.tsx similarity index 78% rename from src/renderer/src/components/AccountButton/ProfileButton.tsx rename to src/components/AccountButton/ProfileButton.tsx index d23b2031..2bed2dba 100644 --- a/src/renderer/src/components/AccountButton/ProfileButton.tsx +++ b/src/components/AccountButton/ProfileButton.tsx @@ -1,16 +1,16 @@ -import { Avatar, AvatarFallback, AvatarImage } from '@renderer/components/ui/avatar' -import { Button } from '@renderer/components/ui/button' +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' +import { Button } from '@/components/ui/button' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger -} from '@renderer/components/ui/dropdown-menu' -import { useFetchProfile } from '@renderer/hooks' -import { toProfile } from '@renderer/lib/link' -import { formatPubkey, generateImageByPubkey } from '@renderer/lib/pubkey' -import { useSecondaryPage } from '@renderer/PageManager' -import { useNostr } from '@renderer/providers/NostrProvider' +} from '@/components/ui/dropdown-menu' +import { useFetchProfile } from '@/hooks' +import { toProfile } from '@/lib/link' +import { formatPubkey, generateImageByPubkey } from '@/lib/pubkey' +import { useSecondaryPage } from '@/PageManager' +import { useNostr } from '@/providers/NostrProvider' import { useTranslation } from 'react-i18next' export default function ProfileButton({ @@ -69,9 +69,7 @@ export default function ProfileButton({ return ( - - {triggerComponent} - + {triggerComponent} push(toProfile(pubkey))}>{t('Profile')} diff --git a/src/renderer/src/components/AccountButton/index.tsx b/src/components/AccountButton/index.tsx similarity index 86% rename from src/renderer/src/components/AccountButton/index.tsx rename to src/components/AccountButton/index.tsx index 3e3c6e7e..531e303b 100644 --- a/src/renderer/src/components/AccountButton/index.tsx +++ b/src/components/AccountButton/index.tsx @@ -1,4 +1,4 @@ -import { useNostr } from '@renderer/providers/NostrProvider' +import { useNostr } from '@/providers/NostrProvider' import LoginButton from './LoginButton' import ProfileButton from './ProfileButton' diff --git a/src/renderer/src/components/BackButton/index.tsx b/src/components/BackButton/index.tsx similarity index 81% rename from src/renderer/src/components/BackButton/index.tsx rename to src/components/BackButton/index.tsx index cab5a74c..72833b40 100644 --- a/src/renderer/src/components/BackButton/index.tsx +++ b/src/components/BackButton/index.tsx @@ -1,5 +1,5 @@ -import { Button } from '@renderer/components/ui/button' -import { useSecondaryPage } from '@renderer/PageManager' +import { Button } from '@/components/ui/button' +import { useSecondaryPage } from '@/PageManager' import { ChevronLeft } from 'lucide-react' import { useTranslation } from 'react-i18next' diff --git a/src/renderer/src/components/Content/index.tsx b/src/components/Content/index.tsx similarity index 97% rename from src/renderer/src/components/Content/index.tsx rename to src/components/Content/index.tsx index 8e37ccf8..f3d91bf1 100644 --- a/src/renderer/src/components/Content/index.tsx +++ b/src/components/Content/index.tsx @@ -1,5 +1,5 @@ -import { isNsfwEvent } from '@renderer/lib/event' -import { cn } from '@renderer/lib/utils' +import { isNsfwEvent } from '@/lib/event' +import { cn } from '@/lib/utils' import { Event } from 'nostr-tools' import { memo } from 'react' import { diff --git a/src/renderer/src/components/Embedded/EmbeddedHashtag.tsx b/src/components/Embedded/EmbeddedHashtag.tsx similarity index 84% rename from src/renderer/src/components/Embedded/EmbeddedHashtag.tsx rename to src/components/Embedded/EmbeddedHashtag.tsx index 19faea0b..adfaa457 100644 --- a/src/renderer/src/components/Embedded/EmbeddedHashtag.tsx +++ b/src/components/Embedded/EmbeddedHashtag.tsx @@ -1,5 +1,5 @@ -import { toNoteList } from '@renderer/lib/link' -import { SecondaryPageLink } from '@renderer/PageManager' +import { toNoteList } from '@/lib/link' +import { SecondaryPageLink } from '@/PageManager' import { TEmbeddedRenderer } from './types' export function EmbeddedHashtag({ hashtag }: { hashtag: string }) { diff --git a/src/renderer/src/components/Embedded/EmbeddedMention.tsx b/src/components/Embedded/EmbeddedMention.tsx similarity index 100% rename from src/renderer/src/components/Embedded/EmbeddedMention.tsx rename to src/components/Embedded/EmbeddedMention.tsx diff --git a/src/renderer/src/components/Embedded/EmbeddedNormalUrl.tsx b/src/components/Embedded/EmbeddedNormalUrl.tsx similarity index 100% rename from src/renderer/src/components/Embedded/EmbeddedNormalUrl.tsx rename to src/components/Embedded/EmbeddedNormalUrl.tsx diff --git a/src/renderer/src/components/Embedded/EmbeddedNote.tsx b/src/components/Embedded/EmbeddedNote.tsx similarity index 88% rename from src/renderer/src/components/Embedded/EmbeddedNote.tsx rename to src/components/Embedded/EmbeddedNote.tsx index 254d58e8..f293312a 100644 --- a/src/renderer/src/components/Embedded/EmbeddedNote.tsx +++ b/src/components/Embedded/EmbeddedNote.tsx @@ -1,6 +1,6 @@ -import { useFetchEvent } from '@renderer/hooks' -import { toNoStrudelArticle, toNoStrudelNote, toNoStrudelStream } from '@renderer/lib/link' -import { cn } from '@renderer/lib/utils' +import { useFetchEvent } from '@/hooks' +import { toNoStrudelArticle, toNoStrudelNote, toNoStrudelStream } from '@/lib/link' +import { cn } from '@/lib/utils' import { kinds } from 'nostr-tools' import ShortTextNoteCard from '../NoteCard/ShortTextNoteCard' diff --git a/src/renderer/src/components/Embedded/EmbeddedWebsocketUrl.tsx b/src/components/Embedded/EmbeddedWebsocketUrl.tsx similarity index 86% rename from src/renderer/src/components/Embedded/EmbeddedWebsocketUrl.tsx rename to src/components/Embedded/EmbeddedWebsocketUrl.tsx index cc55f572..ad447eb8 100644 --- a/src/renderer/src/components/Embedded/EmbeddedWebsocketUrl.tsx +++ b/src/components/Embedded/EmbeddedWebsocketUrl.tsx @@ -1,5 +1,5 @@ -import { useSecondaryPage } from '@renderer/PageManager' -import { toNoteList } from '@renderer/lib/link' +import { useSecondaryPage } from '@/PageManager' +import { toNoteList } from '@/lib/link' import { TEmbeddedRenderer } from './types' export function EmbeddedWebsocketUrl({ url }: { url: string }) { diff --git a/src/renderer/src/components/Embedded/index.tsx b/src/components/Embedded/index.tsx similarity index 100% rename from src/renderer/src/components/Embedded/index.tsx rename to src/components/Embedded/index.tsx diff --git a/src/renderer/src/components/Embedded/types.tsx b/src/components/Embedded/types.tsx similarity index 100% rename from src/renderer/src/components/Embedded/types.tsx rename to src/components/Embedded/types.tsx diff --git a/src/renderer/src/components/FollowButton/index.tsx b/src/components/FollowButton/index.tsx similarity index 89% rename from src/renderer/src/components/FollowButton/index.tsx rename to src/components/FollowButton/index.tsx index aaaad5fe..2d1681cb 100644 --- a/src/renderer/src/components/FollowButton/index.tsx +++ b/src/components/FollowButton/index.tsx @@ -1,7 +1,7 @@ -import { Button } from '@renderer/components/ui/button' -import { useToast } from '@renderer/hooks' -import { useFollowList } from '@renderer/providers/FollowListProvider' -import { useNostr } from '@renderer/providers/NostrProvider' +import { Button } from '@/components/ui/button' +import { useToast } from '@/hooks' +import { useFollowList } from '@/providers/FollowListProvider' +import { useNostr } from '@/providers/NostrProvider' import { Loader } from 'lucide-react' import { useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' diff --git a/src/renderer/src/components/FormattedTimestamp/index.tsx b/src/components/FormattedTimestamp/index.tsx similarity index 100% rename from src/renderer/src/components/FormattedTimestamp/index.tsx rename to src/components/FormattedTimestamp/index.tsx diff --git a/src/renderer/src/components/ImageGallery/index.tsx b/src/components/ImageGallery/index.tsx similarity index 93% rename from src/renderer/src/components/ImageGallery/index.tsx rename to src/components/ImageGallery/index.tsx index 29b3bb6e..42d52930 100644 --- a/src/renderer/src/components/ImageGallery/index.tsx +++ b/src/components/ImageGallery/index.tsx @@ -1,6 +1,6 @@ import { Image } from '@nextui-org/image' -import { ScrollArea, ScrollBar } from '@renderer/components/ui/scroll-area' -import { cn } from '@renderer/lib/utils' +import { ScrollArea, ScrollBar } from '@/components/ui/scroll-area' +import { cn } from '@/lib/utils' import { useState } from 'react' import Lightbox from 'yet-another-react-lightbox' import Zoom from 'yet-another-react-lightbox/plugins/zoom' diff --git a/src/renderer/src/components/LoginDialog/BunkerLogin.tsx b/src/components/LoginDialog/BunkerLogin.tsx similarity index 88% rename from src/renderer/src/components/LoginDialog/BunkerLogin.tsx rename to src/components/LoginDialog/BunkerLogin.tsx index 63eef05e..bfd05d7e 100644 --- a/src/renderer/src/components/LoginDialog/BunkerLogin.tsx +++ b/src/components/LoginDialog/BunkerLogin.tsx @@ -1,6 +1,6 @@ -import { Button } from '@renderer/components/ui/button' -import { Input } from '@renderer/components/ui/input' -import { useNostr } from '@renderer/providers/NostrProvider' +import { Button } from '@/components/ui/button' +import { Input } from '@/components/ui/input' +import { useNostr } from '@/providers/NostrProvider' import { Loader } from 'lucide-react' import { useState } from 'react' import { useTranslation } from 'react-i18next' diff --git a/src/renderer/src/components/LoginDialog/NsecLogin.tsx b/src/components/LoginDialog/NsecLogin.tsx similarity index 51% rename from src/renderer/src/components/LoginDialog/NsecLogin.tsx rename to src/components/LoginDialog/NsecLogin.tsx index fb6782e3..f0698c8f 100644 --- a/src/renderer/src/components/LoginDialog/NsecLogin.tsx +++ b/src/components/LoginDialog/NsecLogin.tsx @@ -1,8 +1,7 @@ -import { Button } from '@renderer/components/ui/button' -import { Input } from '@renderer/components/ui/input' -import { IS_ELECTRON, isElectron } from '@renderer/lib/env' -import { useNostr } from '@renderer/providers/NostrProvider' -import { useEffect, useState } from 'react' +import { Button } from '@/components/ui/button' +import { Input } from '@/components/ui/input' +import { useNostr } from '@/providers/NostrProvider' +import { useState } from 'react' import { useTranslation } from 'react-i18next' export default function PrivateKeyLogin({ onLoginSuccess }: { onLoginSuccess: () => void }) { @@ -10,17 +9,6 @@ export default function PrivateKeyLogin({ onLoginSuccess }: { onLoginSuccess: () const { nsecLogin } = useNostr() const [nsec, setNsec] = useState('') const [errMsg, setErrMsg] = useState(null) - const [storageBackend, setStorageBackend] = useState('unknown') - - useEffect(() => { - const init = async () => { - if (!isElectron(window)) return - - const backend = await window.api.system.getSelectedStorageBackend() - setStorageBackend(backend) - } - init() - }, []) const handleInputChange = (e: React.ChangeEvent) => { setNsec(e.target.value) @@ -40,15 +28,9 @@ export default function PrivateKeyLogin({ onLoginSuccess }: { onLoginSuccess: () return ( <>
- {!IS_ELECTRON - ? t( - 'Using private key login is insecure. It is recommended to use a browser extension for login, such as alby, nostr-keyx or nos2x.' - ) - : ['unknown', 'basic_text'].includes(storageBackend) - ? t('There are no secret keys stored on this device. Your nsec will be unprotected.') - : t('Your nsec will be encrypted using the {{backend}}.', { - backend: storageBackend - })} + {t( + 'Using private key login is insecure. It is recommended to use a browser extension for login, such as alby, nostr-keyx or nos2x.' + )}
) : ( <> - {!IS_ELECTRON && !!window.nostr && ( + {!!window.nostr && ( diff --git a/src/renderer/src/components/Nip05/index.tsx b/src/components/Nip05/index.tsx similarity index 93% rename from src/renderer/src/components/Nip05/index.tsx rename to src/components/Nip05/index.tsx index 426fd06a..c2f209bb 100644 --- a/src/renderer/src/components/Nip05/index.tsx +++ b/src/components/Nip05/index.tsx @@ -1,4 +1,4 @@ -import { useFetchNip05 } from '@renderer/hooks/useFetchNip05' +import { useFetchNip05 } from '@/hooks/useFetchNip05' import { BadgeAlert, BadgeCheck } from 'lucide-react' export default function Nip05({ nip05, pubkey }: { nip05?: string; pubkey: string }) { diff --git a/src/renderer/src/components/Note/index.tsx b/src/components/Note/index.tsx similarity index 94% rename from src/renderer/src/components/Note/index.tsx rename to src/components/Note/index.tsx index eaf8de68..4b66155b 100644 --- a/src/renderer/src/components/Note/index.tsx +++ b/src/components/Note/index.tsx @@ -1,5 +1,5 @@ -import { useSecondaryPage } from '@renderer/PageManager' -import { toNote } from '@renderer/lib/link' +import { useSecondaryPage } from '@/PageManager' +import { toNote } from '@/lib/link' import { Event } from 'nostr-tools' import Content from '../Content' import { FormattedTimestamp } from '../FormattedTimestamp' diff --git a/src/renderer/src/components/NoteCard/RepostNoteCard.tsx b/src/components/NoteCard/RepostNoteCard.tsx similarity index 93% rename from src/renderer/src/components/NoteCard/RepostNoteCard.tsx rename to src/components/NoteCard/RepostNoteCard.tsx index e7b1a260..46a01aad 100644 --- a/src/renderer/src/components/NoteCard/RepostNoteCard.tsx +++ b/src/components/NoteCard/RepostNoteCard.tsx @@ -1,4 +1,4 @@ -import client from '@renderer/services/client.service' +import client from '@/services/client.service' import { Event, kinds, verifyEvent } from 'nostr-tools' import { useMemo } from 'react' import ShortTextNoteCard from './ShortTextNoteCard' diff --git a/src/renderer/src/components/NoteCard/ShortTextNoteCard.tsx b/src/components/NoteCard/ShortTextNoteCard.tsx similarity index 86% rename from src/renderer/src/components/NoteCard/ShortTextNoteCard.tsx rename to src/components/NoteCard/ShortTextNoteCard.tsx index 6e7c069d..4cd5fa00 100644 --- a/src/renderer/src/components/NoteCard/ShortTextNoteCard.tsx +++ b/src/components/NoteCard/ShortTextNoteCard.tsx @@ -1,8 +1,8 @@ -import { useFetchEvent } from '@renderer/hooks' -import { getParentEventId, getRootEventId } from '@renderer/lib/event' -import { toNote } from '@renderer/lib/link' -import { cn } from '@renderer/lib/utils' -import { useSecondaryPage } from '@renderer/PageManager' +import { useFetchEvent } from '@/hooks' +import { getParentEventId, getRootEventId } from '@/lib/event' +import { toNote } from '@/lib/link' +import { cn } from '@/lib/utils' +import { useSecondaryPage } from '@/PageManager' import { Repeat2 } from 'lucide-react' import { Event } from 'nostr-tools' import { useTranslation } from 'react-i18next' diff --git a/src/renderer/src/components/NoteCard/index.tsx b/src/components/NoteCard/index.tsx similarity index 83% rename from src/renderer/src/components/NoteCard/index.tsx rename to src/components/NoteCard/index.tsx index f456ae47..08016327 100644 --- a/src/renderer/src/components/NoteCard/index.tsx +++ b/src/components/NoteCard/index.tsx @@ -1,5 +1,4 @@ -import { Event } from 'nostr-tools' -import { kinds } from 'nostr-tools' +import { Event, kinds } from 'nostr-tools' import RepostNoteCard from './RepostNoteCard' import ShortTextNoteCard from './ShortTextNoteCard' diff --git a/src/renderer/src/components/NoteList/index.tsx b/src/components/NoteList/index.tsx similarity index 88% rename from src/renderer/src/components/NoteList/index.tsx rename to src/components/NoteList/index.tsx index 55c69483..3cbf50ac 100644 --- a/src/renderer/src/components/NoteList/index.tsx +++ b/src/components/NoteList/index.tsx @@ -1,11 +1,11 @@ -import { Button } from '@renderer/components/ui/button' -import { Switch } from '@renderer/components/ui/switch' -import { useFetchRelayInfos } from '@renderer/hooks' -import { isReplyNoteEvent } from '@renderer/lib/event' -import { cn } from '@renderer/lib/utils' -import { useNostr } from '@renderer/providers/NostrProvider' -import { useScreenSize } from '@renderer/providers/ScreenSizeProvider' -import client from '@renderer/services/client.service' +import { Button } from '@/components/ui/button' +import { Switch } from '@/components/ui/switch' +import { useFetchRelayInfos } from '@/hooks' +import { isReplyNoteEvent } from '@/lib/event' +import { cn } from '@/lib/utils' +import { useNostr } from '@/providers/NostrProvider' +import { useScreenSize } from '@/providers/ScreenSizeProvider' +import client from '@/services/client.service' import dayjs from 'dayjs' import { Event, Filter, kinds } from 'nostr-tools' import { useEffect, useMemo, useRef, useState } from 'react' @@ -34,7 +34,6 @@ export default function NoteList({ const [hasMore, setHasMore] = useState(true) const [initialized, setInitialized] = useState(false) const [displayReplies, setDisplayReplies] = useState(false) - const observer = useRef(null) const bottomRef = useRef(null) const noteFilter = useMemo(() => { return { @@ -109,19 +108,21 @@ export default function NoteList({ threshold: 1 } - observer.current = new IntersectionObserver((entries) => { + const observerInstance = new IntersectionObserver((entries) => { if (entries[0].isIntersecting && hasMore) { loadMore() } }, options) - if (bottomRef.current) { - observer.current.observe(bottomRef.current) + const currentBottomRef = bottomRef.current + + if (currentBottomRef) { + observerInstance.observe(currentBottomRef) } return () => { - if (observer.current && bottomRef.current) { - observer.current.unobserve(bottomRef.current) + if (observerInstance && currentBottomRef) { + observerInstance.unobserve(currentBottomRef) } } }, [initialized, hasMore, events, timelineKey]) diff --git a/src/renderer/src/components/NoteStats/LikeButton.tsx b/src/components/NoteStats/LikeButton.tsx similarity index 88% rename from src/renderer/src/components/NoteStats/LikeButton.tsx rename to src/components/NoteStats/LikeButton.tsx index 401b073e..8963a681 100644 --- a/src/renderer/src/components/NoteStats/LikeButton.tsx +++ b/src/components/NoteStats/LikeButton.tsx @@ -1,8 +1,8 @@ -import { createReactionDraftEvent } from '@renderer/lib/draft-event' -import { cn } from '@renderer/lib/utils' -import { useNostr } from '@renderer/providers/NostrProvider' -import { useNoteStats } from '@renderer/providers/NoteStatsProvider' -import client from '@renderer/services/client.service' +import { createReactionDraftEvent } from '@/lib/draft-event' +import { cn } from '@/lib/utils' +import { useNostr } from '@/providers/NostrProvider' +import { useNoteStats } from '@/providers/NoteStatsProvider' +import client from '@/services/client.service' import { Heart, Loader } from 'lucide-react' import { Event } from 'nostr-tools' import { useEffect, useMemo, useState } from 'react' @@ -37,7 +37,7 @@ export default function LikeButton({ if (hasLiked === undefined) { fetchNoteLikedStatus(event) } - }, []) + }, [canFetch, event]) const like = async (e: React.MouseEvent) => { e.stopPropagation() diff --git a/src/renderer/src/components/NoteStats/NoteOptions/RawEventDialog.tsx b/src/components/NoteStats/NoteOptions/RawEventDialog.tsx similarity index 72% rename from src/renderer/src/components/NoteStats/NoteOptions/RawEventDialog.tsx rename to src/components/NoteStats/NoteOptions/RawEventDialog.tsx index e8a95d22..e34bf7c8 100644 --- a/src/renderer/src/components/NoteStats/NoteOptions/RawEventDialog.tsx +++ b/src/components/NoteStats/NoteOptions/RawEventDialog.tsx @@ -4,8 +4,8 @@ import { DialogDescription, DialogHeader, DialogTitle -} from '@renderer/components/ui/dialog' -import { ScrollArea, ScrollBar } from '@renderer/components/ui/scroll-area' +} from '@/components/ui/dialog' +import { ScrollArea, ScrollBar } from '@/components/ui/scroll-area' import { Event } from 'nostr-tools' export default function RawEventDialog({ @@ -25,9 +25,7 @@ export default function RawEventDialog({ -
-            {JSON.stringify(event, null, 2)}
-          
+
{JSON.stringify(event, null, 2)}
diff --git a/src/renderer/src/components/NoteStats/NoteOptions/index.tsx b/src/components/NoteStats/NoteOptions/index.tsx similarity index 93% rename from src/renderer/src/components/NoteStats/NoteOptions/index.tsx rename to src/components/NoteStats/NoteOptions/index.tsx index 4dcb8d8e..e0734a8b 100644 --- a/src/renderer/src/components/NoteStats/NoteOptions/index.tsx +++ b/src/components/NoteStats/NoteOptions/index.tsx @@ -3,8 +3,8 @@ import { DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger -} from '@renderer/components/ui/dropdown-menu' -import { getSharableEventId } from '@renderer/lib/event' +} from '@/components/ui/dropdown-menu' +import { getSharableEventId } from '@/lib/event' import { Code, Copy, Ellipsis } from 'lucide-react' import { Event } from 'nostr-tools' import { useState } from 'react' diff --git a/src/renderer/src/components/NoteStats/ReplyButton.tsx b/src/components/NoteStats/ReplyButton.tsx similarity index 88% rename from src/renderer/src/components/NoteStats/ReplyButton.tsx rename to src/components/NoteStats/ReplyButton.tsx index 9bfb4575..2b0812d7 100644 --- a/src/renderer/src/components/NoteStats/ReplyButton.tsx +++ b/src/components/NoteStats/ReplyButton.tsx @@ -1,5 +1,5 @@ -import { useNostr } from '@renderer/providers/NostrProvider' -import { useNoteStats } from '@renderer/providers/NoteStatsProvider' +import { useNostr } from '@/providers/NostrProvider' +import { useNoteStats } from '@/providers/NoteStatsProvider' import { MessageCircle } from 'lucide-react' import { Event } from 'nostr-tools' import { useMemo, useState } from 'react' diff --git a/src/renderer/src/components/NoteStats/RepostButton.tsx b/src/components/NoteStats/RepostButton.tsx similarity index 89% rename from src/renderer/src/components/NoteStats/RepostButton.tsx rename to src/components/NoteStats/RepostButton.tsx index c81a01e9..7e79e686 100644 --- a/src/renderer/src/components/NoteStats/RepostButton.tsx +++ b/src/components/NoteStats/RepostButton.tsx @@ -3,13 +3,13 @@ import { DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger -} from '@renderer/components/ui/dropdown-menu' -import { createRepostDraftEvent } from '@renderer/lib/draft-event' -import { getSharableEventId } from '@renderer/lib/event' -import { cn } from '@renderer/lib/utils' -import { useNostr } from '@renderer/providers/NostrProvider' -import { useNoteStats } from '@renderer/providers/NoteStatsProvider' -import client from '@renderer/services/client.service' +} from '@/components/ui/dropdown-menu' +import { createRepostDraftEvent } from '@/lib/draft-event' +import { getSharableEventId } from '@/lib/event' +import { cn } from '@/lib/utils' +import { useNostr } from '@/providers/NostrProvider' +import { useNoteStats } from '@/providers/NoteStatsProvider' +import client from '@/services/client.service' import { Loader, PencilLine, Repeat } from 'lucide-react' import { Event } from 'nostr-tools' import { useEffect, useMemo, useState } from 'react' @@ -45,7 +45,7 @@ export default function RepostButton({ if (hasReposted === undefined) { fetchNoteRepostedStatus(event) } - }, []) + }, [canFetch, event]) const repost = async (e: React.MouseEvent) => { e.stopPropagation() diff --git a/src/renderer/src/components/NoteStats/index.tsx b/src/components/NoteStats/index.tsx similarity index 94% rename from src/renderer/src/components/NoteStats/index.tsx rename to src/components/NoteStats/index.tsx index 1258091a..26aac262 100644 --- a/src/renderer/src/components/NoteStats/index.tsx +++ b/src/components/NoteStats/index.tsx @@ -1,4 +1,4 @@ -import { cn } from '@renderer/lib/utils' +import { cn } from '@/lib/utils' import { Event } from 'nostr-tools' import LikeButton from './LikeButton' import NoteOptions from './NoteOptions' diff --git a/src/renderer/src/components/NoteStats/utils.ts b/src/components/NoteStats/utils.ts similarity index 100% rename from src/renderer/src/components/NoteStats/utils.ts rename to src/components/NoteStats/utils.ts diff --git a/src/renderer/src/components/NotificationButton/index.tsx b/src/components/NotificationButton/index.tsx similarity index 81% rename from src/renderer/src/components/NotificationButton/index.tsx rename to src/components/NotificationButton/index.tsx index 30d41c76..59187036 100644 --- a/src/renderer/src/components/NotificationButton/index.tsx +++ b/src/components/NotificationButton/index.tsx @@ -1,6 +1,6 @@ -import { Button } from '@renderer/components/ui/button' -import { toNotifications } from '@renderer/lib/link' -import { useSecondaryPage } from '@renderer/PageManager' +import { Button } from '@/components/ui/button' +import { toNotifications } from '@/lib/link' +import { useSecondaryPage } from '@/PageManager' import { Bell } from 'lucide-react' import { useTranslation } from 'react-i18next' diff --git a/src/renderer/src/components/NotificationList/index.tsx b/src/components/NotificationList/index.tsx similarity index 90% rename from src/renderer/src/components/NotificationList/index.tsx rename to src/components/NotificationList/index.tsx index b45d778a..55a0ee0f 100644 --- a/src/renderer/src/components/NotificationList/index.tsx +++ b/src/components/NotificationList/index.tsx @@ -1,9 +1,9 @@ -import { useFetchEvent } from '@renderer/hooks' -import { toNote } from '@renderer/lib/link' -import { tagNameEquals } from '@renderer/lib/tag' -import { useSecondaryPage } from '@renderer/PageManager' -import { useNostr } from '@renderer/providers/NostrProvider' -import client from '@renderer/services/client.service' +import { useFetchEvent } from '@/hooks' +import { toNote } from '@/lib/link' +import { tagNameEquals } from '@/lib/tag' +import { useSecondaryPage } from '@/PageManager' +import { useNostr } from '@/providers/NostrProvider' +import client from '@/services/client.service' import dayjs from 'dayjs' import { Heart, MessageCircle, Repeat } from 'lucide-react' import { Event, kinds, nip19, validateEvent } from 'nostr-tools' @@ -22,7 +22,6 @@ export default function NotificationList() { const [notifications, setNotifications] = useState([]) const [until, setUntil] = useState(dayjs().unix()) const bottomRef = useRef(null) - const observer = useRef(null) useEffect(() => { if (!pubkey) { @@ -74,19 +73,21 @@ export default function NotificationList() { threshold: 1 } - observer.current = new IntersectionObserver((entries) => { + const observerInstance = new IntersectionObserver((entries) => { if (entries[0].isIntersecting) { loadMore() } }, options) - if (bottomRef.current) { - observer.current.observe(bottomRef.current) + const currentBottomRef = bottomRef.current + + if (currentBottomRef) { + observerInstance.observe(currentBottomRef) } return () => { - if (observer.current && bottomRef.current) { - observer.current.unobserve(bottomRef.current) + if (observerInstance && currentBottomRef) { + observerInstance.unobserve(currentBottomRef) } } }, [until, initialized, timelineKey]) @@ -141,7 +142,7 @@ function ReactionNotification({ notification }: { notification: Event }) { return eventId ? nip19.neventEncode(author ? { id: eventId, author } : { id: eventId }) : undefined - }, [notification.id]) + }, [notification]) const { event } = useFetchEvent(bech32Id) if (!event || !bech32Id || event.kind !== kinds.ShortTextNote) return null @@ -191,7 +192,7 @@ function RepostNotification({ notification }: { notification: Event }) { } catch { return null } - }, []) + }, [notification.content]) if (!event) return null return ( diff --git a/src/renderer/src/components/NsfwOverlay/index.tsx b/src/components/NsfwOverlay/index.tsx similarity index 90% rename from src/renderer/src/components/NsfwOverlay/index.tsx rename to src/components/NsfwOverlay/index.tsx index ff7687af..68d13a96 100644 --- a/src/renderer/src/components/NsfwOverlay/index.tsx +++ b/src/components/NsfwOverlay/index.tsx @@ -1,4 +1,4 @@ -import { cn } from '@renderer/lib/utils' +import { cn } from '@/lib/utils' import { useState } from 'react' export default function NsfwOverlay({ className }: { className?: string }) { diff --git a/src/renderer/src/components/ParentNotePreview/index.tsx b/src/components/ParentNotePreview/index.tsx similarity index 94% rename from src/renderer/src/components/ParentNotePreview/index.tsx rename to src/components/ParentNotePreview/index.tsx index c593f229..127816ae 100644 --- a/src/renderer/src/components/ParentNotePreview/index.tsx +++ b/src/components/ParentNotePreview/index.tsx @@ -1,7 +1,7 @@ +import { cn } from '@/lib/utils' import { Event } from 'nostr-tools' -import UserAvatar from '../UserAvatar' -import { cn } from '@renderer/lib/utils' import { useTranslation } from 'react-i18next' +import UserAvatar from '../UserAvatar' export default function ParentNotePreview({ event, diff --git a/src/renderer/src/components/PostButton/index.tsx b/src/components/PostButton/index.tsx similarity index 86% rename from src/renderer/src/components/PostButton/index.tsx rename to src/components/PostButton/index.tsx index 225a2695..b872cf2a 100644 --- a/src/renderer/src/components/PostButton/index.tsx +++ b/src/components/PostButton/index.tsx @@ -1,5 +1,5 @@ -import PostDialog from '@renderer/components/PostDialog' -import { Button } from '@renderer/components/ui/button' +import PostDialog from '@/components/PostDialog' +import { Button } from '@/components/ui/button' import { PencilLine } from 'lucide-react' import { useState } from 'react' import { useTranslation } from 'react-i18next' diff --git a/src/renderer/src/components/PostDialog/Metions.tsx b/src/components/PostDialog/Metions.tsx similarity index 84% rename from src/renderer/src/components/PostDialog/Metions.tsx rename to src/components/PostDialog/Metions.tsx index 95f71966..7382d03b 100644 --- a/src/renderer/src/components/PostDialog/Metions.tsx +++ b/src/components/PostDialog/Metions.tsx @@ -1,7 +1,7 @@ -import { Button } from '@renderer/components/ui/button' -import { Popover, PopoverContent, PopoverTrigger } from '@renderer/components/ui/popover' -import { extractMentions } from '@renderer/lib/event' -import { useNostr } from '@renderer/providers/NostrProvider' +import { Button } from '@/components/ui/button' +import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' +import { extractMentions } from '@/lib/event' +import { useNostr } from '@/providers/NostrProvider' import { Event } from 'nostr-tools' import { useEffect, useState } from 'react' import UserAvatar from '../UserAvatar' @@ -23,7 +23,7 @@ export default function Mentions({ extractMentions(content, parentEvent).then(({ pubkeys }) => setPubkeys(pubkeys.filter((p) => p !== pubkey)) ) - }, [content]) + }, [content, parentEvent, pubkey]) return ( diff --git a/src/renderer/src/components/PostDialog/Preview.tsx b/src/components/PostDialog/Preview.tsx similarity index 88% rename from src/renderer/src/components/PostDialog/Preview.tsx rename to src/components/PostDialog/Preview.tsx index 12244ee8..b421ff2e 100644 --- a/src/renderer/src/components/PostDialog/Preview.tsx +++ b/src/components/PostDialog/Preview.tsx @@ -1,4 +1,4 @@ -import { Card } from '@renderer/components/ui/card' +import { Card } from '@/components/ui/card' import dayjs from 'dayjs' import Content from '../Content' diff --git a/src/renderer/src/components/PostDialog/Uploader.tsx b/src/components/PostDialog/Uploader.tsx similarity index 86% rename from src/renderer/src/components/PostDialog/Uploader.tsx rename to src/components/PostDialog/Uploader.tsx index 4ec633b6..fc140e96 100644 --- a/src/renderer/src/components/PostDialog/Uploader.tsx +++ b/src/components/PostDialog/Uploader.tsx @@ -1,8 +1,9 @@ -import { Button } from '@renderer/components/ui/button' -import { useToast } from '@renderer/hooks/use-toast' -import { useNostr } from '@renderer/providers/NostrProvider' +import { Button } from '@/components/ui/button' +import { useToast } from '@/hooks/use-toast' +import { useNostr } from '@/providers/NostrProvider' import { ImageUp, LoaderCircle } from 'lucide-react' import { useRef, useState } from 'react' +import { z } from 'zod' export default function Uploader({ setContent @@ -38,7 +39,8 @@ export default function Uploader({ } const data = await response.json() - const imageUrl = data.nip94_event?.tags.find(([tagName]) => tagName === 'url')?.[1] + const tags = z.array(z.array(z.string())).parse(data.nip94_event?.tags ?? []) + const imageUrl = tags.find(([tagName]) => tagName === 'url')?.[1] if (imageUrl) { setContent((prevContent) => `${prevContent}\n${imageUrl}`) } else { diff --git a/src/renderer/src/components/PostDialog/index.tsx b/src/components/PostDialog/index.tsx similarity index 90% rename from src/renderer/src/components/PostDialog/index.tsx rename to src/components/PostDialog/index.tsx index cd96c27b..2d7b6d9f 100644 --- a/src/renderer/src/components/PostDialog/index.tsx +++ b/src/components/PostDialog/index.tsx @@ -1,17 +1,17 @@ -import { Button } from '@renderer/components/ui/button' +import { Button } from '@/components/ui/button' import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle -} from '@renderer/components/ui/dialog' -import { ScrollArea } from '@renderer/components/ui/scroll-area' -import { Textarea } from '@renderer/components/ui/textarea' -import { useToast } from '@renderer/hooks/use-toast' -import { createShortTextNoteDraftEvent } from '@renderer/lib/draft-event' -import { useNostr } from '@renderer/providers/NostrProvider' -import client from '@renderer/services/client.service' +} from '@/components/ui/dialog' +import { ScrollArea } from '@/components/ui/scroll-area' +import { Textarea } from '@/components/ui/textarea' +import { useToast } from '@/hooks/use-toast' +import { createShortTextNoteDraftEvent } from '@/lib/draft-event' +import { useNostr } from '@/providers/NostrProvider' +import client from '@/services/client.service' import { LoaderCircle } from 'lucide-react' import { Event } from 'nostr-tools' import { Dispatch, useState } from 'react' diff --git a/src/renderer/src/components/ProfileAbout/index.tsx b/src/components/ProfileAbout/index.tsx similarity index 100% rename from src/renderer/src/components/ProfileAbout/index.tsx rename to src/components/ProfileAbout/index.tsx diff --git a/src/renderer/src/components/ProfileBanner/index.tsx b/src/components/ProfileBanner/index.tsx similarity index 87% rename from src/renderer/src/components/ProfileBanner/index.tsx rename to src/components/ProfileBanner/index.tsx index d5cca677..f2137d6d 100644 --- a/src/renderer/src/components/ProfileBanner/index.tsx +++ b/src/components/ProfileBanner/index.tsx @@ -1,6 +1,6 @@ import { Image } from '@nextui-org/image' -import { generateImageByPubkey } from '@renderer/lib/pubkey' -import { cn } from '@renderer/lib/utils' +import { generateImageByPubkey } from '@/lib/pubkey' +import { cn } from '@/lib/utils' import { useEffect, useMemo, useState } from 'react' export default function ProfileBanner({ diff --git a/src/renderer/src/components/ProfileCard/index.tsx b/src/components/ProfileCard/index.tsx similarity index 87% rename from src/renderer/src/components/ProfileCard/index.tsx rename to src/components/ProfileCard/index.tsx index f7c1f64b..01eabb5f 100644 --- a/src/renderer/src/components/ProfileCard/index.tsx +++ b/src/components/ProfileCard/index.tsx @@ -1,6 +1,6 @@ -import { Avatar, AvatarFallback, AvatarImage } from '@renderer/components/ui/avatar' -import { useFetchProfile } from '@renderer/hooks' -import { generateImageByPubkey } from '@renderer/lib/pubkey' +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' +import { useFetchProfile } from '@/hooks' +import { generateImageByPubkey } from '@/lib/pubkey' import { useMemo } from 'react' import FollowButton from '../FollowButton' import Nip05 from '../Nip05' diff --git a/src/renderer/src/components/RefreshButton/index.tsx b/src/components/RefreshButton/index.tsx similarity index 80% rename from src/renderer/src/components/RefreshButton/index.tsx rename to src/components/RefreshButton/index.tsx index 11e9928d..72e6f659 100644 --- a/src/renderer/src/components/RefreshButton/index.tsx +++ b/src/components/RefreshButton/index.tsx @@ -1,5 +1,5 @@ -import { Button } from '@renderer/components/ui/button' -import { usePrimaryPage } from '@renderer/PageManager' +import { Button } from '@/components/ui/button' +import { usePrimaryPage } from '@/PageManager' import { RefreshCcw } from 'lucide-react' import { useTranslation } from 'react-i18next' diff --git a/src/renderer/src/components/RelaySettings/RelayGroup.tsx b/src/components/RelaySettings/RelayGroup.tsx similarity index 96% rename from src/renderer/src/components/RelaySettings/RelayGroup.tsx rename to src/components/RelaySettings/RelayGroup.tsx index 6f8f7aff..9a108152 100644 --- a/src/renderer/src/components/RelaySettings/RelayGroup.tsx +++ b/src/components/RelaySettings/RelayGroup.tsx @@ -1,12 +1,12 @@ -import { Button } from '@renderer/components/ui/button' +import { Button } from '@/components/ui/button' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger -} from '@renderer/components/ui/dropdown-menu' -import { Input } from '@renderer/components/ui/input' -import { useRelaySettings } from '@renderer/providers/RelaySettingsProvider' +} from '@/components/ui/dropdown-menu' +import { Input } from '@/components/ui/input' +import { useRelaySettings } from '@/providers/RelaySettingsProvider' import { Check, ChevronDown, Circle, CircleCheck, EllipsisVertical } from 'lucide-react' import { useState } from 'react' import RelayUrls from './RelayUrl' diff --git a/src/renderer/src/components/RelaySettings/RelayUrl.tsx b/src/components/RelaySettings/RelayUrl.tsx similarity index 85% rename from src/renderer/src/components/RelaySettings/RelayUrl.tsx rename to src/components/RelaySettings/RelayUrl.tsx index 3588466d..f052a525 100644 --- a/src/renderer/src/components/RelaySettings/RelayUrl.tsx +++ b/src/components/RelaySettings/RelayUrl.tsx @@ -1,19 +1,20 @@ -import { Button } from '@renderer/components/ui/button' -import { Input } from '@renderer/components/ui/input' -import { useFetchRelayInfos } from '@renderer/hooks' -import { isWebsocketUrl, normalizeUrl } from '@renderer/lib/url' -import { useRelaySettings } from '@renderer/providers/RelaySettingsProvider' -import client from '@renderer/services/client.service' +import { Button } from '@/components/ui/button' +import { Input } from '@/components/ui/input' +import { useFetchRelayInfos } from '@/hooks' +import { isWebsocketUrl, normalizeUrl } from '@/lib/url' +import { useRelaySettings } from '@/providers/RelaySettingsProvider' +import client from '@/services/client.service' import { CircleX, SearchCheck } from 'lucide-react' -import { useEffect, useState } from 'react' +import { useEffect, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' export default function RelayUrls({ groupName }: { groupName: string }) { const { t } = useTranslation() const { relayGroups, updateRelayGroupRelayUrls } = useRelaySettings() - const rawRelayUrls = relayGroups.find((group) => group.groupName === groupName)?.relayUrls ?? [] - const isActive = relayGroups.find((group) => group.groupName === groupName)?.isActive ?? false - + const isActive = useMemo( + () => relayGroups.find((group) => group.groupName === groupName)?.isActive ?? false, + [relayGroups, groupName] + ) const [newRelayUrl, setNewRelayUrl] = useState('') const [newRelayUrlError, setNewRelayUrlError] = useState(null) const [relays, setRelays] = useState< @@ -21,7 +22,11 @@ export default function RelayUrls({ groupName }: { groupName: string }) { url: string isConnected: boolean }[] - >(rawRelayUrls.map((url) => ({ url, isConnected: false }))) + >( + relayGroups + .find((group) => group.groupName === groupName) + ?.relayUrls.map((url) => ({ url, isConnected: false })) ?? [] + ) useEffect(() => { const interval = setInterval(() => { diff --git a/src/renderer/src/components/RelaySettings/TemporaryRelayGroup.tsx b/src/components/RelaySettings/TemporaryRelayGroup.tsx similarity index 91% rename from src/renderer/src/components/RelaySettings/TemporaryRelayGroup.tsx rename to src/components/RelaySettings/TemporaryRelayGroup.tsx index 21eb7b6d..7cf81fcb 100644 --- a/src/renderer/src/components/RelaySettings/TemporaryRelayGroup.tsx +++ b/src/components/RelaySettings/TemporaryRelayGroup.tsx @@ -1,7 +1,7 @@ -import { Button } from '@renderer/components/ui/button' -import { useFetchRelayInfos } from '@renderer/hooks' -import { useRelaySettings } from '@renderer/providers/RelaySettingsProvider' -import client from '@renderer/services/client.service' +import { Button } from '@/components/ui/button' +import { useFetchRelayInfos } from '@/hooks' +import { useRelaySettings } from '@/providers/RelaySettingsProvider' +import client from '@/services/client.service' import { Save, SearchCheck } from 'lucide-react' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' diff --git a/src/renderer/src/components/RelaySettings/index.tsx b/src/components/RelaySettings/index.tsx similarity index 91% rename from src/renderer/src/components/RelaySettings/index.tsx rename to src/components/RelaySettings/index.tsx index 72973ee0..e3c7878b 100644 --- a/src/renderer/src/components/RelaySettings/index.tsx +++ b/src/components/RelaySettings/index.tsx @@ -1,7 +1,7 @@ -import { Button } from '@renderer/components/ui/button' -import { Input } from '@renderer/components/ui/input' -import { Separator } from '@renderer/components/ui/separator' -import { useRelaySettings } from '@renderer/providers/RelaySettingsProvider' +import { Button } from '@/components/ui/button' +import { Input } from '@/components/ui/input' +import { Separator } from '@/components/ui/separator' +import { useRelaySettings } from '@/providers/RelaySettingsProvider' import { useEffect, useRef, useState } from 'react' import { RelaySettingsComponentProvider } from './provider' import RelayGroup from './RelayGroup' diff --git a/src/renderer/src/components/RelaySettings/provider.tsx b/src/components/RelaySettings/provider.tsx similarity index 100% rename from src/renderer/src/components/RelaySettings/provider.tsx rename to src/components/RelaySettings/provider.tsx diff --git a/src/renderer/src/components/RelaySettings/types.ts b/src/components/RelaySettings/types.ts similarity index 100% rename from src/renderer/src/components/RelaySettings/types.ts rename to src/components/RelaySettings/types.ts diff --git a/src/renderer/src/components/RelaySettingsButton/index.tsx b/src/components/RelaySettingsButton/index.tsx similarity index 72% rename from src/renderer/src/components/RelaySettingsButton/index.tsx rename to src/components/RelaySettingsButton/index.tsx index 22b7b000..f9c3e40c 100644 --- a/src/renderer/src/components/RelaySettingsButton/index.tsx +++ b/src/components/RelaySettingsButton/index.tsx @@ -1,10 +1,10 @@ -import RelaySettings from '@renderer/components/RelaySettings' -import { Button } from '@renderer/components/ui/button' -import { Popover, PopoverContent, PopoverTrigger } from '@renderer/components/ui/popover' -import { ScrollArea } from '@renderer/components/ui/scroll-area' -import { toRelaySettings } from '@renderer/lib/link' -import { SecondaryPageLink } from '@renderer/PageManager' -import { useScreenSize } from '@renderer/providers/ScreenSizeProvider' +import RelaySettings from '@/components/RelaySettings' +import { Button } from '@/components/ui/button' +import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' +import { ScrollArea } from '@/components/ui/scroll-area' +import { toRelaySettings } from '@/lib/link' +import { SecondaryPageLink } from '@/PageManager' +import { useScreenSize } from '@/providers/ScreenSizeProvider' import { Server } from 'lucide-react' import { useTranslation } from 'react-i18next' diff --git a/src/renderer/src/components/ReplyNote/index.tsx b/src/components/ReplyNote/index.tsx similarity index 100% rename from src/renderer/src/components/ReplyNote/index.tsx rename to src/components/ReplyNote/index.tsx diff --git a/src/renderer/src/components/ReplyNoteList/index.tsx b/src/components/ReplyNoteList/index.tsx similarity index 93% rename from src/renderer/src/components/ReplyNoteList/index.tsx rename to src/components/ReplyNoteList/index.tsx index 5f25890d..617280c2 100644 --- a/src/renderer/src/components/ReplyNoteList/index.tsx +++ b/src/components/ReplyNoteList/index.tsx @@ -1,10 +1,10 @@ -import { Separator } from '@renderer/components/ui/separator' -import { isReplyNoteEvent } from '@renderer/lib/event' -import { isReplyETag, isRootETag } from '@renderer/lib/tag' -import { cn } from '@renderer/lib/utils' -import { useNostr } from '@renderer/providers/NostrProvider' -import { useNoteStats } from '@renderer/providers/NoteStatsProvider' -import client from '@renderer/services/client.service' +import { Separator } from '@/components/ui/separator' +import { isReplyNoteEvent } from '@/lib/event' +import { isReplyETag, isRootETag } from '@/lib/tag' +import { cn } from '@/lib/utils' +import { useNostr } from '@/providers/NostrProvider' +import { useNoteStats } from '@/providers/NoteStatsProvider' +import client from '@/services/client.service' import dayjs from 'dayjs' import { Event as NEvent, kinds } from 'nostr-tools' import { useEffect, useRef, useState } from 'react' @@ -43,7 +43,7 @@ export default function ReplyNoteList({ event, className }: { event: NEvent; cla return () => { client.removeEventListener('eventPublished', handleEventPublished) } - }, []) + }, [event]) useEffect(() => { if (loading) return @@ -87,7 +87,7 @@ export default function ReplyNoteList({ event, className }: { event: NEvent; cla return () => { promise.then((closer) => closer?.()) } - }, []) + }, [event]) useEffect(() => { updateNoteReplyCount(event.id, replies.length) @@ -123,7 +123,7 @@ export default function ReplyNoteList({ event, className }: { event: NEvent; cla replyMap[reply.id] = { event: reply, level: level + 1, parent } } setReplyMap(replyMap) - }, [replies]) + }, [replies, event.id, updateNoteReplyCount]) const loadMore = async () => { if (loading || !until || !timelineKey) return diff --git a/src/renderer/src/components/ScrollToTopButton/index.tsx b/src/components/ScrollToTopButton/index.tsx similarity index 87% rename from src/renderer/src/components/ScrollToTopButton/index.tsx rename to src/components/ScrollToTopButton/index.tsx index 12c45fb1..2edd567b 100644 --- a/src/renderer/src/components/ScrollToTopButton/index.tsx +++ b/src/components/ScrollToTopButton/index.tsx @@ -1,5 +1,5 @@ -import { Button } from '@renderer/components/ui/button' -import { cn } from '@renderer/lib/utils' +import { Button } from '@/components/ui/button' +import { cn } from '@/lib/utils' import { ChevronUp } from 'lucide-react' export default function ScrollToTopButton({ diff --git a/src/renderer/src/components/SearchButton/index.tsx b/src/components/SearchButton/index.tsx similarity index 92% rename from src/renderer/src/components/SearchButton/index.tsx rename to src/components/SearchButton/index.tsx index a4b1166f..4b749504 100644 --- a/src/renderer/src/components/SearchButton/index.tsx +++ b/src/components/SearchButton/index.tsx @@ -1,4 +1,4 @@ -import { Button } from '@renderer/components/ui/button' +import { Button } from '@/components/ui/button' import { Search } from 'lucide-react' import { useState } from 'react' import { useTranslation } from 'react-i18next' diff --git a/src/renderer/src/components/SearchDialog/index.tsx b/src/components/SearchDialog/index.tsx similarity index 85% rename from src/renderer/src/components/SearchDialog/index.tsx rename to src/components/SearchDialog/index.tsx index a5c79975..1d8c93cc 100644 --- a/src/renderer/src/components/SearchDialog/index.tsx +++ b/src/components/SearchDialog/index.tsx @@ -1,17 +1,11 @@ -import { SecondaryPageLink } from '@renderer/PageManager' -import { Avatar, AvatarFallback, AvatarImage } from '@renderer/components/ui/avatar' -import { - CommandDialog, - CommandInput, - CommandItem, - CommandList -} from '@renderer/components/ui/command' -import { useSearchProfiles } from '@renderer/hooks' -import { isMacOS } from '@renderer/lib/env' -import { toNote, toNoteList, toProfile, toProfileList } from '@renderer/lib/link' -import { generateImageByPubkey } from '@renderer/lib/pubkey' -import { useRelaySettings } from '@renderer/providers/RelaySettingsProvider' -import { TProfile } from '@renderer/types' +import { SecondaryPageLink } from '@/PageManager' +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' +import { CommandDialog, CommandInput, CommandItem, CommandList } from '@/components/ui/command' +import { useSearchProfiles } from '@/hooks' +import { toNote, toNoteList, toProfile, toProfileList } from '@/lib/link' +import { generateImageByPubkey } from '@/lib/pubkey' +import { useRelaySettings } from '@/providers/RelaySettingsProvider' +import { TProfile } from '@/types' import { Hash, Notebook, UserRound } from 'lucide-react' import { nip19 } from 'nostr-tools' import { Dispatch, useEffect, useMemo, useState } from 'react' @@ -68,7 +62,7 @@ export function SearchDialog({ open, setOpen }: { open: boolean; setOpen: Dispat )} ) - }, [input, profiles]) + }, [input, profiles, setOpen]) useEffect(() => { const handler = setTimeout(() => { @@ -81,11 +75,7 @@ export function SearchDialog({ open, setOpen }: { open: boolean; setOpen: Dispat }, [input]) return ( - + {list} diff --git a/src/renderer/src/components/Sidebar/index.tsx b/src/components/Sidebar/index.tsx similarity index 63% rename from src/renderer/src/components/Sidebar/index.tsx rename to src/components/Sidebar/index.tsx index 69e05597..dd8c8452 100644 --- a/src/renderer/src/components/Sidebar/index.tsx +++ b/src/components/Sidebar/index.tsx @@ -1,6 +1,5 @@ -import Logo from '@renderer/assets/Logo' -import { Button } from '@renderer/components/ui/button' -import { IS_ELECTRON } from '@renderer/lib/env' +import Logo from '@/assets/Logo' +import { Button } from '@/components/ui/button' import { Info } from 'lucide-react' import { useTranslation } from 'react-i18next' import AboutInfoDialog from '../AboutInfoDialog' @@ -15,24 +14,22 @@ export default function PrimaryPageSidebar() { const { t } = useTranslation() return (
-
+
-
+
- {IS_ELECTRON && } - {!IS_ELECTRON && ( - - - - )} + + + +
diff --git a/src/renderer/src/components/ThemeToggle/index.tsx b/src/components/ThemeToggle/index.tsx similarity index 90% rename from src/renderer/src/components/ThemeToggle/index.tsx rename to src/components/ThemeToggle/index.tsx index 8bd4fc84..626a693f 100644 --- a/src/renderer/src/components/ThemeToggle/index.tsx +++ b/src/components/ThemeToggle/index.tsx @@ -1,5 +1,5 @@ -import { Button } from '@renderer/components/ui/button' -import { useTheme } from '@renderer/providers/ThemeProvider' +import { Button } from '@/components/ui/button' +import { useTheme } from '@/providers/ThemeProvider' import { Moon, Sun, SunMoon } from 'lucide-react' import { useTranslation } from 'react-i18next' diff --git a/src/components/Titlebar/index.tsx b/src/components/Titlebar/index.tsx new file mode 100644 index 00000000..e817fa18 --- /dev/null +++ b/src/components/Titlebar/index.tsx @@ -0,0 +1,23 @@ +import { cn } from '@/lib/utils' + +export function Titlebar({ + children, + className, + visible = true +}: { + children?: React.ReactNode + className?: string + visible?: boolean +}) { + return ( +
+ {children} +
+ ) +} diff --git a/src/renderer/src/components/UserAvatar/index.tsx b/src/components/UserAvatar/index.tsx similarity index 75% rename from src/renderer/src/components/UserAvatar/index.tsx rename to src/components/UserAvatar/index.tsx index 49fdc160..afb55a1a 100644 --- a/src/renderer/src/components/UserAvatar/index.tsx +++ b/src/components/UserAvatar/index.tsx @@ -1,11 +1,11 @@ -import { Avatar, AvatarFallback, AvatarImage } from '@renderer/components/ui/avatar' -import { HoverCard, HoverCardContent, HoverCardTrigger } from '@renderer/components/ui/hover-card' -import { Skeleton } from '@renderer/components/ui/skeleton' -import { useFetchProfile } from '@renderer/hooks' -import { generateImageByPubkey } from '@renderer/lib/pubkey' -import { toProfile } from '@renderer/lib/link' -import { cn } from '@renderer/lib/utils' -import { SecondaryPageLink } from '@renderer/PageManager' +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' +import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card' +import { Skeleton } from '@/components/ui/skeleton' +import { useFetchProfile } from '@/hooks' +import { generateImageByPubkey } from '@/lib/pubkey' +import { toProfile } from '@/lib/link' +import { cn } from '@/lib/utils' +import { SecondaryPageLink } from '@/PageManager' import ProfileCard from '../ProfileCard' import { useMemo } from 'react' diff --git a/src/renderer/src/components/UserItem/index.tsx b/src/components/UserItem/index.tsx similarity index 69% rename from src/renderer/src/components/UserItem/index.tsx rename to src/components/UserItem/index.tsx index b20ee111..404c0046 100644 --- a/src/renderer/src/components/UserItem/index.tsx +++ b/src/components/UserItem/index.tsx @@ -1,8 +1,8 @@ -import FollowButton from '@renderer/components/FollowButton' -import Nip05 from '@renderer/components/Nip05' -import UserAvatar from '@renderer/components/UserAvatar' -import Username from '@renderer/components/Username' -import { useFetchProfile } from '@renderer/hooks' +import FollowButton from '@/components/FollowButton' +import Nip05 from '@/components/Nip05' +import UserAvatar from '@/components/UserAvatar' +import Username from '@/components/Username' +import { useFetchProfile } from '@/hooks' export default function UserItem({ pubkey }: { pubkey: string }) { const { profile } = useFetchProfile(pubkey) diff --git a/src/renderer/src/components/Username/index.tsx b/src/components/Username/index.tsx similarity index 77% rename from src/renderer/src/components/Username/index.tsx rename to src/components/Username/index.tsx index ea11aa10..44a99987 100644 --- a/src/renderer/src/components/Username/index.tsx +++ b/src/components/Username/index.tsx @@ -1,9 +1,9 @@ -import { HoverCard, HoverCardContent, HoverCardTrigger } from '@renderer/components/ui/hover-card' -import { Skeleton } from '@renderer/components/ui/skeleton' -import { useFetchProfile } from '@renderer/hooks' -import { toProfile } from '@renderer/lib/link' -import { cn } from '@renderer/lib/utils' -import { SecondaryPageLink } from '@renderer/PageManager' +import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card' +import { Skeleton } from '@/components/ui/skeleton' +import { useFetchProfile } from '@/hooks' +import { toProfile } from '@/lib/link' +import { cn } from '@/lib/utils' +import { SecondaryPageLink } from '@/PageManager' import ProfileCard from '../ProfileCard' export default function Username({ diff --git a/src/renderer/src/components/VideoPlayer/index.tsx b/src/components/VideoPlayer/index.tsx similarity index 92% rename from src/renderer/src/components/VideoPlayer/index.tsx rename to src/components/VideoPlayer/index.tsx index 1d656984..29c43023 100644 --- a/src/renderer/src/components/VideoPlayer/index.tsx +++ b/src/components/VideoPlayer/index.tsx @@ -1,4 +1,4 @@ -import { cn } from '@renderer/lib/utils' +import { cn } from '@/lib/utils' import NsfwOverlay from '../NsfwOverlay' export default function VideoPlayer({ diff --git a/src/renderer/src/components/WebPreview/index.tsx b/src/components/WebPreview/index.tsx similarity index 92% rename from src/renderer/src/components/WebPreview/index.tsx rename to src/components/WebPreview/index.tsx index e0e1c1b2..8e4b1e2e 100644 --- a/src/renderer/src/components/WebPreview/index.tsx +++ b/src/components/WebPreview/index.tsx @@ -1,6 +1,6 @@ import { Image } from '@nextui-org/image' -import { useFetchWebMetadata } from '@renderer/hooks/useFetchWebMetadata' -import { cn } from '@renderer/lib/utils' +import { useFetchWebMetadata } from '@/hooks/useFetchWebMetadata' +import { cn } from '@/lib/utils' import { useMemo } from 'react' export default function WebPreview({ diff --git a/src/renderer/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx similarity index 72% rename from src/renderer/src/components/ui/avatar.tsx rename to src/components/ui/avatar.tsx index b7615b68..8f63d0a4 100644 --- a/src/renderer/src/components/ui/avatar.tsx +++ b/src/components/ui/avatar.tsx @@ -1,7 +1,7 @@ -import * as React from "react" -import * as AvatarPrimitive from "@radix-ui/react-avatar" +import * as React from 'react' +import * as AvatarPrimitive from '@radix-ui/react-avatar' -import { cn } from "@renderer/lib/utils" +import { cn } from '@/lib/utils' const Avatar = React.forwardRef< React.ElementRef, @@ -9,10 +9,7 @@ const Avatar = React.forwardRef< >(({ className, ...props }, ref) => ( )) @@ -24,7 +21,7 @@ const AvatarImage = React.forwardRef< >(({ className, ...props }, ref) => ( )) @@ -37,7 +34,7 @@ const AvatarFallback = React.forwardRef< >( ({ className, ...props }, ref) => ( @@ -20,23 +20,22 @@ const CardHeader = React.forwardRef>( +const CardTitle = React.forwardRef>( ({ className, ...props }, ref) => ( -

) ) CardTitle.displayName = 'CardTitle' -const CardDescription = React.forwardRef< - HTMLParagraphElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -

-)) +const CardDescription = React.forwardRef>( + ({ className, ...props }, ref) => ( +

+ ) +) CardDescription.displayName = 'CardDescription' const CardContent = React.forwardRef>( diff --git a/src/renderer/src/components/ui/command.tsx b/src/components/ui/command.tsx similarity index 91% rename from src/renderer/src/components/ui/command.tsx rename to src/components/ui/command.tsx index 077eb7cc..747a03a6 100644 --- a/src/renderer/src/components/ui/command.tsx +++ b/src/components/ui/command.tsx @@ -9,9 +9,9 @@ import { DialogDescription, DialogHeader, DialogTitle -} from '@renderer/components/ui/dialog' -import { ScrollArea } from '@renderer/components/ui/scroll-area' -import { cn } from '@renderer/lib/utils' +} from '@/components/ui/dialog' +import { ScrollArea } from '@/components/ui/scroll-area' +import { cn } from '@/lib/utils' const Command = React.forwardRef< React.ElementRef, @@ -65,7 +65,7 @@ const CommandInput = React.forwardRef< >( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = 'Input' + +export { Input } diff --git a/src/renderer/src/components/ui/popover.tsx b/src/components/ui/popover.tsx similarity index 88% rename from src/renderer/src/components/ui/popover.tsx rename to src/components/ui/popover.tsx index 77d2c2f5..ce5bf71e 100644 --- a/src/renderer/src/components/ui/popover.tsx +++ b/src/components/ui/popover.tsx @@ -1,12 +1,14 @@ import * as React from 'react' import * as PopoverPrimitive from '@radix-ui/react-popover' -import { cn } from '@renderer/lib/utils' +import { cn } from '@/lib/utils' const Popover = PopoverPrimitive.Root const PopoverTrigger = PopoverPrimitive.Trigger +const PopoverAnchor = PopoverPrimitive.Anchor + const PopoverContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef @@ -27,4 +29,4 @@ const PopoverContent = React.forwardRef< )) PopoverContent.displayName = PopoverPrimitive.Content.displayName -export { Popover, PopoverTrigger, PopoverContent } +export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } diff --git a/src/renderer/src/components/ui/resizable.tsx b/src/components/ui/resizable.tsx similarity index 79% rename from src/renderer/src/components/ui/resizable.tsx rename to src/components/ui/resizable.tsx index 535241a0..97463fa9 100644 --- a/src/renderer/src/components/ui/resizable.tsx +++ b/src/components/ui/resizable.tsx @@ -1,17 +1,14 @@ -import { GripVertical } from "lucide-react" -import * as ResizablePrimitive from "react-resizable-panels" +import { GripVertical } from 'lucide-react' +import * as ResizablePrimitive from 'react-resizable-panels' -import { cn } from "@renderer/lib/utils" +import { cn } from '@/lib/utils' const ResizablePanelGroup = ({ className, ...props }: React.ComponentProps) => ( ) @@ -27,7 +24,7 @@ const ResizableHandle = ({ }) => ( div]:rotate-90", + 'relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90', className )} {...props} diff --git a/src/renderer/src/components/ui/scroll-area.tsx b/src/components/ui/scroll-area.tsx similarity index 97% rename from src/renderer/src/components/ui/scroll-area.tsx rename to src/components/ui/scroll-area.tsx index cbeb5661..61b2ddbc 100644 --- a/src/renderer/src/components/ui/scroll-area.tsx +++ b/src/components/ui/scroll-area.tsx @@ -1,7 +1,7 @@ import * as React from 'react' import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area' -import { cn } from '@renderer/lib/utils' +import { cn } from '@/lib/utils' const ScrollArea = React.forwardRef< React.ElementRef, diff --git a/src/components/ui/separator.tsx b/src/components/ui/separator.tsx new file mode 100644 index 00000000..e7b4d128 --- /dev/null +++ b/src/components/ui/separator.tsx @@ -0,0 +1,24 @@ +import * as React from 'react' +import * as SeparatorPrimitive from '@radix-ui/react-separator' + +import { cn } from '@/lib/utils' + +const Separator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => ( + +)) +Separator.displayName = SeparatorPrimitive.Root.displayName + +export { Separator } diff --git a/src/components/ui/skeleton.tsx b/src/components/ui/skeleton.tsx new file mode 100644 index 00000000..00ca2da6 --- /dev/null +++ b/src/components/ui/skeleton.tsx @@ -0,0 +1,7 @@ +import { cn } from '@/lib/utils' + +function Skeleton({ className, ...props }: React.HTMLAttributes) { + return
+} + +export { Skeleton } diff --git a/src/components/ui/switch.tsx b/src/components/ui/switch.tsx new file mode 100644 index 00000000..654ff1bf --- /dev/null +++ b/src/components/ui/switch.tsx @@ -0,0 +1,27 @@ +import * as React from 'react' +import * as SwitchPrimitives from '@radix-ui/react-switch' + +import { cn } from '@/lib/utils' + +const Switch = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +Switch.displayName = SwitchPrimitives.Root.displayName + +export { Switch } diff --git a/src/components/ui/textarea.tsx b/src/components/ui/textarea.tsx new file mode 100644 index 00000000..a681c174 --- /dev/null +++ b/src/components/ui/textarea.tsx @@ -0,0 +1,21 @@ +import * as React from 'react' + +import { cn } from '@/lib/utils' + +const Textarea = React.forwardRef>( + ({ className, ...props }, ref) => { + return ( +