From 42089d4996a4c5be7c7ec9503b803534171a8f78 Mon Sep 17 00:00:00 2001 From: qier222 Date: Thu, 12 May 2022 02:45:43 +0800 Subject: [PATCH] feat: monorepo --- .gitignore | 46 +- .vscode/launch.json | 39 - .vscode/task.json | 13 - README.md | 1 - auto-imports.d.ts | 34 - package.json | 126 +- .../electron/.electron-builder.config.js | 3 +- .../electron}/assets/icons/taskbar/next.png | Bin .../electron}/assets/icons/taskbar/pause.png | Bin .../electron}/assets/icons/taskbar/play.png | Bin .../assets/icons/taskbar/previous.png | Bin .../electron}/assets/icons/tray/exit.png | Bin .../electron}/assets/icons/tray/left.png | Bin .../electron}/assets/icons/tray/like.png | Bin .../electron}/assets/icons/tray/menu.png | Bin .../electron}/assets/icons/tray/menu@88.png | Bin .../electron}/assets/icons/tray/pause.png | Bin .../electron}/assets/icons/tray/play.png | Bin .../electron}/assets/icons/tray/repeat.png | Bin .../electron}/assets/icons/tray/right.png | Bin .../electron}/assets/icons/tray/unlike.png | Bin {src/main => packages/electron}/cache.ts | 0 {src/main => packages/electron}/db.ts | 2 +- {src/main => packages/electron}/index.ts | 0 {src/main => packages/electron}/ipcMain.ts | 0 {src/main => packages/electron}/log.ts | 0 .../electron}/migrations/init.sql | 0 packages/electron/package.json | 63 + {src/main => packages/electron}/preload.ts | 2 +- .../electron}/rendererPreload.ts | 0 .../electron/scripts}/build.main.mjs | 28 +- .../electron/scripts}/build.sqlite3.js | 22 +- {src/main => packages/electron}/sentry.ts | 0 {src/main => packages/electron}/server.ts | 2 +- .../tmp/userData/Electron/api_cache/db.sqlite | 0 {src/main => packages/electron}/tray.ts | 0 {src/main => packages/electron}/tsconfig.json | 0 {src/main => packages/electron}/utils.ts | 0 .../electron}/windowsTaskbar.ts | 0 {src => packages}/shared/CacheAPIs.ts | 0 {src => packages}/shared/IpcChannels.ts | 0 {src => packages}/shared/api/Album.ts | 0 {src => packages}/shared/api/Artist.ts | 0 {src => packages}/shared/api/Playlists.ts | 0 {src => packages}/shared/api/Search.ts | 0 {src => packages}/shared/api/Track.ts | 0 {src => packages}/shared/api/User.ts | 0 {src => packages}/shared/interface.d.ts | 0 {src => packages}/shared/playerDataTypes.ts | 0 {src => packages}/shared/store.ts | 0 {src => packages}/shared/tsconfig.json | 0 {src/renderer => packages/web}/App.tsx | 14 +- .../web}/IpcRendererReact.tsx | 11 +- {src/renderer => packages/web}/api/album.ts | 2 +- {src/renderer => packages/web}/api/artist.ts | 2 +- {src/renderer => packages/web}/api/auth.ts | 2 +- .../web}/api/personalFM.ts | 2 +- .../renderer => packages/web}/api/playlist.ts | 2 +- {src/renderer => packages/web}/api/search.ts | 2 +- {src/renderer => packages/web}/api/track.ts | 2 +- {src/renderer => packages/web}/api/user.ts | 2 +- .../web}/api/yesplaymusic.ts | 0 .../web}/assets/fonts/Barlow-Black.ttf | Bin .../web}/assets/fonts/Barlow-Black.woff2 | Bin .../web}/assets/fonts/Barlow-Bold.ttf | Bin .../web}/assets/fonts/Barlow-Bold.woff2 | Bin .../web}/assets/fonts/Barlow-ExtraBold.ttf | Bin .../web}/assets/fonts/Barlow-ExtraBold.woff2 | Bin .../web}/assets/fonts/Barlow-Medium.ttf | Bin .../web}/assets/fonts/Barlow-Medium.woff2 | Bin .../web}/assets/fonts/Barlow-Regular.ttf | Bin .../web}/assets/fonts/Barlow-Regular.woff2 | Bin .../web}/assets/fonts/Barlow-SemiBold.ttf | Bin .../web}/assets/fonts/Barlow-SemiBold.woff2 | Bin .../web}/assets/icons/back.svg | 0 .../web}/assets/icons/dislike.svg | 0 .../web}/assets/icons/dj.svg | 0 .../web}/assets/icons/email.svg | 0 .../web}/assets/icons/explicit.svg | 0 .../web}/assets/icons/eye-off.svg | 0 .../web}/assets/icons/eye.svg | 0 .../web}/assets/icons/fm.svg | 0 .../web}/assets/icons/forward.svg | 0 .../web}/assets/icons/heart-outline.svg | 0 .../web}/assets/icons/heart.svg | 0 .../web}/assets/icons/home.svg | 0 .../web}/assets/icons/lock.svg | 0 .../web}/assets/icons/lyrics.svg | 0 .../web}/assets/icons/more.svg | 0 .../web}/assets/icons/music-library.svg | 0 .../web}/assets/icons/music-note.svg | 0 .../web}/assets/icons/next.svg | 0 .../web}/assets/icons/pause.svg | 0 .../web}/assets/icons/phone.svg | 0 .../web}/assets/icons/play-fill.svg | 0 .../web}/assets/icons/play.svg | 0 .../web}/assets/icons/playlist.svg | 0 .../web}/assets/icons/podcast.svg | 0 .../web}/assets/icons/previous.svg | 0 .../web}/assets/icons/qrcode.svg | 0 .../web}/assets/icons/repeat-1.svg | 0 .../web}/assets/icons/repeat.svg | 0 .../web}/assets/icons/search.svg | 0 .../web}/assets/icons/settings.svg | 0 .../web}/assets/icons/shuffle.svg | 0 .../web}/assets/icons/user.svg | 0 .../web}/assets/icons/volume-half.svg | 0 .../web}/assets/icons/volume-mute.svg | 0 .../web}/assets/icons/volume.svg | 0 .../web}/assets/icons/windows-close.svg | 0 .../web}/assets/icons/windows-maximize.svg | 0 .../web}/assets/icons/windows-minimize.svg | 0 .../web}/assets/icons/windows-un-maximize.svg | 0 .../web}/assets/icons/x.svg | 0 .../web}/components/ArtistsInline.tsx | 7 +- .../web}/components/Avatar.tsx | 6 +- .../web}/components/Button.tsx | 3 +- .../web}/components/Cover.tsx | 8 +- .../web}/components/CoverRow.tsx | 19 +- .../components/DailyTracksCard.module.scss | 0 .../web}/components/DailyTracksCard.tsx | 3 +- .../web}/components/FMCard.tsx | 14 +- .../web}/components/IconButton.tsx | 3 +- .../web}/components/Lyric/Lyric.tsx | 24 +- .../web}/components/Lyric/Lyric2.tsx | 14 +- .../web}/components/Lyric/LyricPanel.tsx | 11 +- .../web}/components/Lyric/Player.tsx | 18 +- .../web}/components/Lyric/index.ts | 0 .../web}/components/Main.tsx | 3 +- .../web}/components/Player.tsx | 17 +- .../web}/components/Router.tsx | 18 +- .../web}/components/Sidebar.tsx | 21 +- .../web}/components/Skeleton.tsx | 3 +- .../web}/components/Slider.tsx | 7 +- .../web}/components/SvgIcon.tsx | 0 .../web}/components/TitleBar.tsx | 8 +- .../web}/components/Topbar.tsx | 11 +- .../web}/components/TracksAlbum.tsx | 32 +- .../web}/components/TracksGrid.tsx | 17 +- .../web}/components/TracksList.tsx | 31 +- {src/renderer => packages/web}/global.d.ts | 0 .../web}/hooks/useAlbum.ts | 5 +- .../web}/hooks/useArtist.ts | 3 +- .../web}/hooks/useArtistAlbums.ts | 3 +- .../web}/hooks/useCoverColor.ts | 1 + .../web}/hooks/useIpcRenderer.ts | 0 .../web}/hooks/useLyric.ts | 5 +- .../web}/hooks/usePersonalFM.ts | 4 +- .../web}/hooks/usePlaylist.ts | 5 +- .../web}/hooks/useScroll.ts | 1 + .../web}/hooks/useTracks.ts | 7 +- .../web}/hooks/useTracksInfinite.ts | 1 + .../web}/hooks/useUser.ts | 3 +- .../web}/hooks/useUserAlbums.ts | 4 +- .../web}/hooks/useUserArtists.ts | 3 +- .../web}/hooks/useUserLikedTracksIDs.ts | 6 +- .../web}/hooks/useUserPlaylists.ts | 6 +- {src/renderer => packages/web}/index.html | 0 {src/renderer => packages/web}/ipcRenderer.ts | 2 +- {src/renderer => packages/web}/main.tsx | 2 +- packages/web/package.json | 74 + .../renderer => packages/web}/pages/Album.tsx | 29 +- .../web}/pages/Artist.tsx | 28 +- {src/renderer => packages/web}/pages/Home.tsx | 12 +- .../web}/pages/Library.tsx | 30 +- .../renderer => packages/web}/pages/Login.tsx | 18 +- .../web}/pages/Playlist.tsx | 29 +- .../web}/pages/Podcast.tsx | 0 .../web}/pages/Search/Search.tsx | 14 +- .../web}/pages/Search/index.ts | 0 .../web}/pages/Settings/Appearance.tsx | 8 +- .../web}/pages/Settings/Settings.tsx | 11 +- .../pages/Settings/UnblockNeteaseMusic.tsx | 0 .../web}/pages/Settings/index.ts | 0 .../web/postcss.config.js | 0 .../web/scripts}/generate.accent.color.css.js | 4 +- .../web/scripts}/pickedColors.js | 0 {src/renderer => packages/web}/store.ts | 2 +- .../web}/styles/accentColor.scss | 0 .../web}/styles/global.scss | 24 +- .../web/tailwind.config.js | 5 +- .../web}/test/utils/common.test.ts | 2 +- .../web}/test/utils/cookie.test.ts | 2 +- {src/renderer => packages/web}/tsconfig.json | 0 .../renderer => packages/web}/utils/common.ts | 0 .../renderer => packages/web}/utils/cookie.ts | 0 .../web}/utils/initLog.ts | 0 {src/renderer => packages/web}/utils/lyric.ts | 0 .../renderer => packages/web}/utils/player.ts | 12 +- .../web}/utils/reactQueryClient.ts | 0 .../web}/utils/request.ts | 0 {src/renderer => packages/web}/utils/theme.ts | 0 {src/renderer => packages/web}/vite-env.d.ts | 0 vite.config.ts => packages/web/vite.config.ts | 38 +- pnpm-lock.yaml | 1860 +++++++++-------- pnpm-workspace.yaml | 2 + prettier.config.js | 2 +- src/renderer/auto-imports.d.ts | 34 - turbo.json | 23 + types.d.ts | 7 - 200 files changed, 1530 insertions(+), 1521 deletions(-) delete mode 100644 .vscode/launch.json delete mode 100644 .vscode/task.json delete mode 100644 README.md delete mode 100644 auto-imports.d.ts rename .electron-builder.config.js => packages/electron/.electron-builder.config.js (98%) rename {src/main => packages/electron}/assets/icons/taskbar/next.png (100%) rename {src/main => packages/electron}/assets/icons/taskbar/pause.png (100%) rename {src/main => packages/electron}/assets/icons/taskbar/play.png (100%) rename {src/main => packages/electron}/assets/icons/taskbar/previous.png (100%) rename {src/main => packages/electron}/assets/icons/tray/exit.png (100%) rename {src/main => packages/electron}/assets/icons/tray/left.png (100%) rename {src/main => packages/electron}/assets/icons/tray/like.png (100%) rename {src/main => packages/electron}/assets/icons/tray/menu.png (100%) rename {src/main => packages/electron}/assets/icons/tray/menu@88.png (100%) rename {src/main => packages/electron}/assets/icons/tray/pause.png (100%) rename {src/main => packages/electron}/assets/icons/tray/play.png (100%) rename {src/main => packages/electron}/assets/icons/tray/repeat.png (100%) rename {src/main => packages/electron}/assets/icons/tray/right.png (100%) rename {src/main => packages/electron}/assets/icons/tray/unlike.png (100%) rename {src/main => packages/electron}/cache.ts (100%) rename {src/main => packages/electron}/db.ts (98%) rename {src/main => packages/electron}/index.ts (100%) rename {src/main => packages/electron}/ipcMain.ts (100%) rename {src/main => packages/electron}/log.ts (100%) rename {src/main => packages/electron}/migrations/init.sql (100%) create mode 100644 packages/electron/package.json rename {src/main => packages/electron}/preload.ts (81%) rename {src/main => packages/electron}/rendererPreload.ts (100%) rename {scripts => packages/electron/scripts}/build.main.mjs (83%) rename {scripts => packages/electron/scripts}/build.sqlite3.js (84%) rename {src/main => packages/electron}/sentry.ts (100%) rename {src/main => packages/electron}/server.ts (99%) create mode 100644 packages/electron/tmp/userData/Electron/api_cache/db.sqlite rename {src/main => packages/electron}/tray.ts (100%) rename {src/main => packages/electron}/tsconfig.json (100%) rename {src/main => packages/electron}/utils.ts (100%) rename {src/main => packages/electron}/windowsTaskbar.ts (100%) rename {src => packages}/shared/CacheAPIs.ts (100%) rename {src => packages}/shared/IpcChannels.ts (100%) rename {src => packages}/shared/api/Album.ts (100%) rename {src => packages}/shared/api/Artist.ts (100%) rename {src => packages}/shared/api/Playlists.ts (100%) rename {src => packages}/shared/api/Search.ts (100%) rename {src => packages}/shared/api/Track.ts (100%) rename {src => packages}/shared/api/User.ts (100%) rename {src => packages}/shared/interface.d.ts (100%) rename {src => packages}/shared/playerDataTypes.ts (100%) rename {src => packages}/shared/store.ts (100%) rename {src => packages}/shared/tsconfig.json (100%) rename {src/renderer => packages/web}/App.tsx (70%) rename {src/renderer => packages/web}/IpcRendererReact.tsx (82%) rename {src/renderer => packages/web}/api/album.ts (93%) rename {src/renderer => packages/web}/api/artist.ts (93%) rename {src/renderer => packages/web}/api/auth.ts (98%) rename {src/renderer => packages/web}/api/personalFM.ts (97%) rename {src/renderer => packages/web}/api/playlist.ts (96%) rename {src/renderer => packages/web}/api/search.ts (92%) rename {src/renderer => packages/web}/api/track.ts (95%) rename {src/renderer => packages/web}/api/user.ts (98%) rename {src/renderer => packages/web}/api/yesplaymusic.ts (100%) rename {src/renderer => packages/web}/assets/fonts/Barlow-Black.ttf (100%) rename {src/renderer => packages/web}/assets/fonts/Barlow-Black.woff2 (100%) rename {src/renderer => packages/web}/assets/fonts/Barlow-Bold.ttf (100%) rename {src/renderer => packages/web}/assets/fonts/Barlow-Bold.woff2 (100%) rename {src/renderer => packages/web}/assets/fonts/Barlow-ExtraBold.ttf (100%) rename {src/renderer => packages/web}/assets/fonts/Barlow-ExtraBold.woff2 (100%) rename {src/renderer => packages/web}/assets/fonts/Barlow-Medium.ttf (100%) rename {src/renderer => packages/web}/assets/fonts/Barlow-Medium.woff2 (100%) rename {src/renderer => packages/web}/assets/fonts/Barlow-Regular.ttf (100%) rename {src/renderer => packages/web}/assets/fonts/Barlow-Regular.woff2 (100%) rename {src/renderer => packages/web}/assets/fonts/Barlow-SemiBold.ttf (100%) rename {src/renderer => packages/web}/assets/fonts/Barlow-SemiBold.woff2 (100%) rename {src/renderer => packages/web}/assets/icons/back.svg (100%) rename {src/renderer => packages/web}/assets/icons/dislike.svg (100%) rename {src/renderer => packages/web}/assets/icons/dj.svg (100%) rename {src/renderer => packages/web}/assets/icons/email.svg (100%) rename {src/renderer => packages/web}/assets/icons/explicit.svg (100%) rename {src/renderer => packages/web}/assets/icons/eye-off.svg (100%) rename {src/renderer => packages/web}/assets/icons/eye.svg (100%) rename {src/renderer => packages/web}/assets/icons/fm.svg (100%) rename {src/renderer => packages/web}/assets/icons/forward.svg (100%) rename {src/renderer => packages/web}/assets/icons/heart-outline.svg (100%) rename {src/renderer => packages/web}/assets/icons/heart.svg (100%) rename {src/renderer => packages/web}/assets/icons/home.svg (100%) rename {src/renderer => packages/web}/assets/icons/lock.svg (100%) rename {src/renderer => packages/web}/assets/icons/lyrics.svg (100%) rename {src/renderer => packages/web}/assets/icons/more.svg (100%) rename {src/renderer => packages/web}/assets/icons/music-library.svg (100%) rename {src/renderer => packages/web}/assets/icons/music-note.svg (100%) rename {src/renderer => packages/web}/assets/icons/next.svg (100%) rename {src/renderer => packages/web}/assets/icons/pause.svg (100%) rename {src/renderer => packages/web}/assets/icons/phone.svg (100%) rename {src/renderer => packages/web}/assets/icons/play-fill.svg (100%) rename {src/renderer => packages/web}/assets/icons/play.svg (100%) rename {src/renderer => packages/web}/assets/icons/playlist.svg (100%) rename {src/renderer => packages/web}/assets/icons/podcast.svg (100%) rename {src/renderer => packages/web}/assets/icons/previous.svg (100%) rename {src/renderer => packages/web}/assets/icons/qrcode.svg (100%) rename {src/renderer => packages/web}/assets/icons/repeat-1.svg (100%) rename {src/renderer => packages/web}/assets/icons/repeat.svg (100%) rename {src/renderer => packages/web}/assets/icons/search.svg (100%) rename {src/renderer => packages/web}/assets/icons/settings.svg (100%) rename {src/renderer => packages/web}/assets/icons/shuffle.svg (100%) rename {src/renderer => packages/web}/assets/icons/user.svg (100%) rename {src/renderer => packages/web}/assets/icons/volume-half.svg (100%) rename {src/renderer => packages/web}/assets/icons/volume-mute.svg (100%) rename {src/renderer => packages/web}/assets/icons/volume.svg (100%) rename {src/renderer => packages/web}/assets/icons/windows-close.svg (100%) rename {src/renderer => packages/web}/assets/icons/windows-maximize.svg (100%) rename {src/renderer => packages/web}/assets/icons/windows-minimize.svg (100%) rename {src/renderer => packages/web}/assets/icons/windows-un-maximize.svg (100%) rename {src/renderer => packages/web}/assets/icons/x.svg (100%) rename {src/renderer => packages/web}/components/ArtistsInline.tsx (88%) rename {src/renderer => packages/web}/components/Avatar.tsx (87%) rename {src/renderer => packages/web}/components/Button.tsx (95%) rename {src/renderer => packages/web}/components/Cover.tsx (92%) rename {src/renderer => packages/web}/components/CoverRow.tsx (92%) rename {src/renderer => packages/web}/components/DailyTracksCard.module.scss (100%) rename {src/renderer => packages/web}/components/DailyTracksCard.tsx (96%) rename {src/renderer => packages/web}/components/FMCard.tsx (92%) rename {src/renderer => packages/web}/components/IconButton.tsx (92%) rename {src/renderer => packages/web}/components/Lyric/Lyric.tsx (85%) rename {src/renderer => packages/web}/components/Lyric/Lyric2.tsx (89%) rename {src/renderer => packages/web}/components/Lyric/LyricPanel.tsx (86%) rename {src/renderer => packages/web}/components/Lyric/Player.tsx (91%) rename {src/renderer => packages/web}/components/Lyric/index.ts (100%) rename {src/renderer => packages/web}/components/Main.tsx (90%) rename {src/renderer => packages/web}/components/Player.tsx (94%) rename {src/renderer => packages/web}/components/Router.tsx (67%) rename {src/renderer => packages/web}/components/Sidebar.tsx (86%) rename {src/renderer => packages/web}/components/Skeleton.tsx (87%) rename {src/renderer => packages/web}/components/Slider.tsx (96%) rename {src/renderer => packages/web}/components/SvgIcon.tsx (100%) rename {src/renderer => packages/web}/components/TitleBar.tsx (90%) rename {src/renderer => packages/web}/components/Topbar.tsx (93%) rename {src/renderer => packages/web}/components/TracksAlbum.tsx (91%) rename {src/renderer => packages/web}/components/TracksGrid.tsx (90%) rename {src/renderer => packages/web}/components/TracksList.tsx (91%) rename {src/renderer => packages/web}/global.d.ts (100%) rename {src/renderer => packages/web}/hooks/useAlbum.ts (90%) rename {src/renderer => packages/web}/hooks/useArtist.ts (89%) rename {src/renderer => packages/web}/hooks/useArtistAlbums.ts (89%) rename {src/renderer => packages/web}/hooks/useCoverColor.ts (90%) rename {src/renderer => packages/web}/hooks/useIpcRenderer.ts (100%) rename {src/renderer => packages/web}/hooks/useLyric.ts (87%) rename {src/renderer => packages/web}/hooks/usePersonalFM.ts (69%) rename {src/renderer => packages/web}/hooks/usePlaylist.ts (89%) rename {src/renderer => packages/web}/hooks/useScroll.ts (97%) rename {src/renderer => packages/web}/hooks/useTracks.ts (87%) rename {src/renderer => packages/web}/hooks/useTracksInfinite.ts (95%) rename {src/renderer => packages/web}/hooks/useUser.ts (84%) rename {src/renderer => packages/web}/hooks/useUserAlbums.ts (95%) rename {src/renderer => packages/web}/hooks/useUserArtists.ts (84%) rename {src/renderer => packages/web}/hooks/useUserLikedTracksIDs.ts (93%) rename {src/renderer => packages/web}/hooks/useUserPlaylists.ts (94%) rename {src/renderer => packages/web}/index.html (100%) rename {src/renderer => packages/web}/ipcRenderer.ts (94%) rename {src/renderer => packages/web}/main.tsx (95%) create mode 100644 packages/web/package.json rename {src/renderer => packages/web}/pages/Album.tsx (93%) rename {src/renderer => packages/web}/pages/Artist.tsx (89%) rename {src/renderer => packages/web}/pages/Home.tsx (86%) rename {src/renderer => packages/web}/pages/Library.tsx (88%) rename {src/renderer => packages/web}/pages/Login.tsx (95%) rename {src/renderer => packages/web}/pages/Playlist.tsx (91%) rename {src/renderer => packages/web}/pages/Podcast.tsx (100%) rename {src/renderer => packages/web}/pages/Search/Search.tsx (93%) rename {src/renderer => packages/web}/pages/Search/index.ts (100%) rename {src/renderer => packages/web}/pages/Settings/Appearance.tsx (90%) rename {src/renderer => packages/web}/pages/Settings/Settings.tsx (97%) rename {src/renderer => packages/web}/pages/Settings/UnblockNeteaseMusic.tsx (100%) rename {src/renderer => packages/web}/pages/Settings/index.ts (100%) rename postcss.config.js => packages/web/postcss.config.js (100%) rename {scripts => packages/web/scripts}/generate.accent.color.css.js (85%) rename {scripts => packages/web/scripts}/pickedColors.js (100%) rename {src/renderer => packages/web}/store.ts (95%) rename {src/renderer => packages/web}/styles/accentColor.scss (100%) rename {src/renderer => packages/web}/styles/global.scss (66%) rename tailwind.config.js => packages/web/tailwind.config.js (78%) rename {src/renderer => packages/web}/test/utils/common.test.ts (99%) rename {src/renderer => packages/web}/test/utils/cookie.test.ts (99%) rename {src/renderer => packages/web}/tsconfig.json (100%) rename {src/renderer => packages/web}/utils/common.ts (100%) rename {src/renderer => packages/web}/utils/cookie.ts (100%) rename {src/renderer => packages/web}/utils/initLog.ts (100%) rename {src/renderer => packages/web}/utils/lyric.ts (100%) rename {src/renderer => packages/web}/utils/player.ts (96%) rename {src/renderer => packages/web}/utils/reactQueryClient.ts (100%) rename {src/renderer => packages/web}/utils/request.ts (100%) rename {src/renderer => packages/web}/utils/theme.ts (100%) rename {src/renderer => packages/web}/vite-env.d.ts (100%) rename vite.config.ts => packages/web/vite.config.ts (55%) create mode 100644 pnpm-workspace.yaml delete mode 100644 src/renderer/auto-imports.d.ts create mode 100644 turbo.json delete mode 100644 types.d.ts diff --git a/.gitignore b/.gitignore index 0144d0c..b0ae428 100644 --- a/.gitignore +++ b/.gitignore @@ -11,21 +11,9 @@ pids *.seed *.pid.lock -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - # Coverage directory used by tools like istanbul coverage -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - # node-waf configuration .lock-wscript @@ -36,9 +24,6 @@ build/Release node_modules/ jspm_packages/ -# TypeScript v1 declaration files -typings/ - # Optional npm cache directory .npm @@ -57,37 +42,12 @@ typings/ # dotenv environment variables file .env.test -# parcel-bundler cache (https://parceljs.org/) -.cache - -# next.js build output -.next - -# nuxt.js build output -.nuxt - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - # ---- -dist +**/dist **/.tmp /tmp release -.DS_Store -dist-ssr +**/.DS_Store *.local .vscode/settings.json -bundle-stats-main.html -bundle-stats-preload.html -bundle-stats-renderer.html -tailwind-output.css +.turbo diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 0bf498a..0000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "launch", - "name": "Main(inspector)", - "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", - "runtimeArgs": [ - "--remote-debugging-port=9222", - "${workspaceFolder}/dist/main/index.cjs", - ], - "env": { - "DEBUG": "true", - }, - "windows": { - "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd" - }, - "sourceMaps": true - }, - { - "type": "node", - "request": "launch", - "name": "Main(vite)", - "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", - "runtimeArgs": [ - "${workspaceFolder}/dist/main/index.cjs", - ], - "env": { - "VITE_DEV_SERVER_HOST": "127.0.0.1", - "VITE_DEV_SERVER_PORT": "3344", - }, - "windows": { - "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd" - }, - "sourceMaps": true - }, - ] -} \ No newline at end of file diff --git a/.vscode/task.json b/.vscode/task.json deleted file mode 100644 index 105e143..0000000 --- a/.vscode/task.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "type": "npm", - "script": "debug", - "problemMatcher": [], - "label": "npm: debug", - "detail": "cross-env-shell NODE_ENV=debug \"npm run typecheck && node scripts/build.main.mjs && vite ./src/renderer\"", - "group": "build" - } - ] -} diff --git a/README.md b/README.md deleted file mode 100644 index 758abf2..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -# YesPlayMusic 2.0 diff --git a/auto-imports.d.ts b/auto-imports.d.ts deleted file mode 100644 index 5d16fdd..0000000 --- a/auto-imports.d.ts +++ /dev/null @@ -1,34 +0,0 @@ -// Generated by 'unplugin-auto-import' -// We suggest you to commit this file into source control -declare global { - const classNames: typeof import('classnames')['default'] - const createRef: typeof import('react')['createRef'] - const forwardRef: typeof import('react')['forwardRef'] - const lazy: typeof import('react')['lazy'] - const memo: typeof import('react')['memo'] - const startTransition: typeof import('react')['startTransition'] - const toast: typeof import('react-hot-toast')['toast'] - const useCallback: typeof import('react')['useCallback'] - const useContext: typeof import('react')['useContext'] - const useDebugValue: typeof import('react')['useDebugValue'] - const useDeferredValue: typeof import('react')['useDeferredValue'] - const useEffect: typeof import('react')['useEffect'] - const useEffectOnce: typeof import('react-use')['useEffectOnce'] - const useId: typeof import('react')['useId'] - const useImperativeHandle: typeof import('react')['useImperativeHandle'] - const useInfiniteQuery: typeof import('react-query')['useInfiniteQuery'] - const useInsertionEffect: typeof import('react')['useInsertionEffect'] - const useLayoutEffect: typeof import('react')['useLayoutEffect'] - const useMemo: typeof import('react')['useMemo'] - const useMutation: typeof import('react-query')['useMutation'] - const useNavigate: typeof import('react-router-dom')['useNavigate'] - const useParams: typeof import('react-router-dom')['useParams'] - const useQuery: typeof import('react-query')['useQuery'] - const useReducer: typeof import('react')['useReducer'] - const useRef: typeof import('react')['useRef'] - const useSnapshot: typeof import('valtio')['useSnapshot'] - const useState: typeof import('react')['useState'] - const useSyncExternalStore: typeof import('react')['useSyncExternalStore'] - const useTransition: typeof import('react')['useTransition'] -} -export {} diff --git a/package.json b/package.json index a53596f..f48dd88 100644 --- a/package.json +++ b/package.json @@ -8,122 +8,22 @@ "license": "MIT", "author": "qier222 ", "repository": "github:qier222/YesPlayMusic", - "main": "dist/main/index.js", - "scripts": { - "install:sqlite3": "node scripts/build.sqlite3.js", - "dev": "concurrently -n=vite,main -c=#646cff,#74b1be \"npm run dev:renderer\" \"node scripts/build.main.mjs --watch\"", - "dev:renderer": "vite dev", - "build:main": "node scripts/build.main.mjs", - "build:renderer": "vite build", - "build": "cross-env-shell IS_ELECTRON=true npm run build:renderer && npm run build:main", - "build:app": "npm run build && electron-builder --config .electron-builder.config.js", - "build:app-dir": "npm run build && electron-builder --config .electron-builder.config.js --dir", - "build:app-win": "npm run build && electron-builder --config .electron-builder.config.js --win", - "build:app-mac": "npm run build && electron-builder --config .electron-builder.config.js --mac", - "build:app-linux": "npm run build && electron-builder --config .electron-builder.config.js --linux", - "debug": "cross-env-shell NODE_ENV=debug \"npm run typecheck && node scripts/build.mjs && vite ./src/renderer\"", - "test": "vitest", - "test:ui": "vitest --ui", - "test:coverage": "vitest run --coverage", - "test:types": "npm run test:types-renderer && npm run test:types-main && npm run test:types-shared", - "test:types-renderer": "tsc --noEmit --project src/renderer/tsconfig.json", - "test:types-main": "tsc --noEmit --project src/main/tsconfig.json", - "test:types-shared": "tsc --noEmit --project src/shared/tsconfig.json", - "netease": "npx NeteaseCloudMusicApi", - "eslint": "eslint --ext .ts,.js ./", - "prettier": "prettier --write './**/*.{ts,js,tsx,jsx}'", - "analyze:css": "npx windicss-analysis", - "analyze:js": "npm run build:renderer && open-cli bundle-stats-renderer.html" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.13.1 || >=16.0.0" }, - "dependencies": { - "@sentry/node": "^6.19.7", - "@sentry/tracing": "^6.19.7", - "@unblockneteasemusic/rust-napi": "^0.3.0-pre.1", - "NeteaseCloudMusicApi": "^4.5.12", - "better-sqlite3": "7.5.1", - "change-case": "^4.1.2", - "cookie-parser": "^1.4.6", - "electron-log": "^4.4.6", - "electron-store": "^8.0.1", - "express": "^4.18.0", - "fast-folder-size": "^1.6.1" + "packageManager": "pnpm@7.0.0", + "scripts": { + "install": "turbo run post-install --parallel --no-cache", + "build": "turbo run build", + "build:web": "turbo run build:web", + "dev": "turbo run dev --parallel", + "lint": "turbo run lint", + "format": "prettier --write \"**/*.{ts,tsx,js,jsx,md}\"" }, "devDependencies": { - "@electron/universal": "1.2.1", - "@sentry/react": "^6.19.7", - "@testing-library/react": "^13.1.1", - "@types/better-sqlite3": "^7.5.0", - "@types/cookie-parser": "^1.4.3", - "@types/express": "^4.17.13", - "@types/express-fileupload": "^1.2.2", - "@types/howler": "^2.2.7", - "@types/js-cookie": "^3.0.2", - "@types/lodash-es": "^4.17.6", - "@types/md5": "^2.3.2", - "@types/qrcode": "^1.4.2", - "@types/react": "^18.0.8", - "@types/react-dom": "^18.0.1", - "@typescript-eslint/eslint-plugin": "^5.21.0", - "@typescript-eslint/parser": "^5.21.0", - "@vitejs/plugin-react": "^1.3.1", - "@vitest/ui": "^0.10.0", - "autoprefixer": "^10.4.5", - "axios": "^0.27.2", - "c8": "^7.11.2", - "classnames": "^2.3.1", - "color.js": "^1.2.0", - "colord": "^2.9.2", - "concurrently": "^7.1.0", - "cross-env": "^7.0.3", - "dayjs": "^1.11.1", - "dotenv": "^16.0.0", - "electron": "^18.1.0", - "electron-builder": "^23.0.3", - "electron-devtools-installer": "^3.2.0", - "electron-rebuild": "^3.2.7", - "electron-releases": "^3.1004.0", - "esbuild": "^0.14.38", - "eslint": "^8.14.0", - "eslint-plugin-react": "^7.29.4", - "eslint-plugin-react-hooks": "^4.5.0", - "express-fileupload": "^1.3.1", - "framer-motion": "^6.3.2", - "howler": "^2.2.3", - "js-cookie": "^3.0.1", - "jsdom": "^19.0.0", - "lodash-es": "^4.17.21", - "md5": "^2.3.0", - "minimist": "^1.2.6", - "music-metadata": "^7.12.3", - "open-cli": "^7.0.1", - "ora": "^6.1.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.12", - "prettier": "2.6.2", - "prettier-plugin-tailwindcss": "^0.1.10", - "qrcode": "^1.5.0", - "react": "^18.1.0", - "react-dom": "^18.1.0", - "react-ga4": "^1.4.1", - "react-hot-toast": "^2.2.0", - "react-query": "^3.38.0", - "react-router-dom": "^6.3.0", - "react-use": "^17.3.2", - "rollup-plugin-visualizer": "^5.6.0", - "sass": "^1.51.0", - "tailwindcss": "^3.0.24", - "typescript": "^4.6.3", - "unplugin-auto-import": "^0.7.1", - "valtio": "^1.6.0", - "vite": "^2.9.6", - "vite-plugin-svg-icons": "^2.0.1", - "vitest": "^0.10.0", - "wait-on": "^6.0.1" - }, - "resolutions": { - "@electron/universal": "1.2.1" + "eslint": "^8.15.0", + "prettier": "^2.6.2", + "turbo": "^1.2.8", + "typescript": "^4.6.4" } } diff --git a/.electron-builder.config.js b/packages/electron/.electron-builder.config.js similarity index 98% rename from .electron-builder.config.js rename to packages/electron/.electron-builder.config.js index 099a41a..8f935e9 100644 --- a/.electron-builder.config.js +++ b/packages/electron/.electron-builder.config.js @@ -2,6 +2,7 @@ * @type {import('electron-builder').Configuration} * @see https://www.electron.build/configuration/configuration */ + module.exports = { appId: 'com.qier222.yesplaymusic', productName: 'YesPlayMusic', @@ -100,7 +101,7 @@ module.exports = { 'dist/main/**/*', 'dist/renderer/**/*', { - from: 'src/main/migrations', + from: 'packages/electron/migrations', to: 'dist/main/migrations', }, { diff --git a/src/main/assets/icons/taskbar/next.png b/packages/electron/assets/icons/taskbar/next.png similarity index 100% rename from src/main/assets/icons/taskbar/next.png rename to packages/electron/assets/icons/taskbar/next.png diff --git a/src/main/assets/icons/taskbar/pause.png b/packages/electron/assets/icons/taskbar/pause.png similarity index 100% rename from src/main/assets/icons/taskbar/pause.png rename to packages/electron/assets/icons/taskbar/pause.png diff --git a/src/main/assets/icons/taskbar/play.png b/packages/electron/assets/icons/taskbar/play.png similarity index 100% rename from src/main/assets/icons/taskbar/play.png rename to packages/electron/assets/icons/taskbar/play.png diff --git a/src/main/assets/icons/taskbar/previous.png b/packages/electron/assets/icons/taskbar/previous.png similarity index 100% rename from src/main/assets/icons/taskbar/previous.png rename to packages/electron/assets/icons/taskbar/previous.png diff --git a/src/main/assets/icons/tray/exit.png b/packages/electron/assets/icons/tray/exit.png similarity index 100% rename from src/main/assets/icons/tray/exit.png rename to packages/electron/assets/icons/tray/exit.png diff --git a/src/main/assets/icons/tray/left.png b/packages/electron/assets/icons/tray/left.png similarity index 100% rename from src/main/assets/icons/tray/left.png rename to packages/electron/assets/icons/tray/left.png diff --git a/src/main/assets/icons/tray/like.png b/packages/electron/assets/icons/tray/like.png similarity index 100% rename from src/main/assets/icons/tray/like.png rename to packages/electron/assets/icons/tray/like.png diff --git a/src/main/assets/icons/tray/menu.png b/packages/electron/assets/icons/tray/menu.png similarity index 100% rename from src/main/assets/icons/tray/menu.png rename to packages/electron/assets/icons/tray/menu.png diff --git a/src/main/assets/icons/tray/menu@88.png b/packages/electron/assets/icons/tray/menu@88.png similarity index 100% rename from src/main/assets/icons/tray/menu@88.png rename to packages/electron/assets/icons/tray/menu@88.png diff --git a/src/main/assets/icons/tray/pause.png b/packages/electron/assets/icons/tray/pause.png similarity index 100% rename from src/main/assets/icons/tray/pause.png rename to packages/electron/assets/icons/tray/pause.png diff --git a/src/main/assets/icons/tray/play.png b/packages/electron/assets/icons/tray/play.png similarity index 100% rename from src/main/assets/icons/tray/play.png rename to packages/electron/assets/icons/tray/play.png diff --git a/src/main/assets/icons/tray/repeat.png b/packages/electron/assets/icons/tray/repeat.png similarity index 100% rename from src/main/assets/icons/tray/repeat.png rename to packages/electron/assets/icons/tray/repeat.png diff --git a/src/main/assets/icons/tray/right.png b/packages/electron/assets/icons/tray/right.png similarity index 100% rename from src/main/assets/icons/tray/right.png rename to packages/electron/assets/icons/tray/right.png diff --git a/src/main/assets/icons/tray/unlike.png b/packages/electron/assets/icons/tray/unlike.png similarity index 100% rename from src/main/assets/icons/tray/unlike.png rename to packages/electron/assets/icons/tray/unlike.png diff --git a/src/main/cache.ts b/packages/electron/cache.ts similarity index 100% rename from src/main/cache.ts rename to packages/electron/cache.ts diff --git a/src/main/db.ts b/packages/electron/db.ts similarity index 98% rename from src/main/db.ts rename to packages/electron/db.ts index 84f38d9..281f506 100644 --- a/src/main/db.ts +++ b/packages/electron/db.ts @@ -86,7 +86,7 @@ class DB { initTables() { const migration = fs.readFileSync( isDev - ? path.join(process.cwd(), './src/main/migrations/init.sql') + ? path.join(process.cwd(), './migrations/init.sql') : path.join(__dirname, './migrations/init.sql'), 'utf8' ) diff --git a/src/main/index.ts b/packages/electron/index.ts similarity index 100% rename from src/main/index.ts rename to packages/electron/index.ts diff --git a/src/main/ipcMain.ts b/packages/electron/ipcMain.ts similarity index 100% rename from src/main/ipcMain.ts rename to packages/electron/ipcMain.ts diff --git a/src/main/log.ts b/packages/electron/log.ts similarity index 100% rename from src/main/log.ts rename to packages/electron/log.ts diff --git a/src/main/migrations/init.sql b/packages/electron/migrations/init.sql similarity index 100% rename from src/main/migrations/init.sql rename to packages/electron/migrations/init.sql diff --git a/packages/electron/package.json b/packages/electron/package.json new file mode 100644 index 0000000..78b7470 --- /dev/null +++ b/packages/electron/package.json @@ -0,0 +1,63 @@ +{ + "name": "electron", + "private": true, + "version": "2.0.0", + "main": "./index.js", + "scripts": { + "post-install": "node scripts/build.sqlite3.js", + "dev": "node scripts/build.main.mjs --watch", + "build": "node scripts/build.main.mjs", + "test:types": "tsc --noEmit --project src/main/tsconfig.json", + "lint": "eslint --ext .ts,.js ./", + "format": "prettier --write './**/*.{ts,js,tsx,jsx}'" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "dependencies": { + "@sentry/node": "^6.19.7", + "@sentry/tracing": "^6.19.7", + "@unblockneteasemusic/rust-napi": "^0.3.0-pre.1", + "NeteaseCloudMusicApi": "^4.5.12", + "better-sqlite3": "7.5.1", + "change-case": "^4.1.2", + "cookie-parser": "^1.4.6", + "electron-log": "^4.4.6", + "electron-store": "^8.0.1", + "express": "^4.18.1", + "fast-folder-size": "^1.6.1" + }, + "devDependencies": { + "@electron/universal": "1.2.1", + "@types/better-sqlite3": "^7.5.0", + "@types/cookie-parser": "^1.4.3", + "@types/express": "^4.17.13", + "@types/express-fileupload": "^1.2.2", + "@typescript-eslint/eslint-plugin": "^5.21.0", + "@typescript-eslint/parser": "^5.21.0", + "@vitejs/plugin-react": "^1.3.1", + "axios": "^0.27.2", + "cross-env": "^7.0.3", + "dotenv": "^16.0.0", + "electron": "^18.2.2", + "electron-builder": "^23.0.3", + "electron-devtools-installer": "^3.2.0", + "electron-rebuild": "^3.2.7", + "electron-releases": "^3.1009.0", + "esbuild": "^0.14.38", + "eslint": "*", + "express-fileupload": "^1.3.1", + "minimist": "^1.2.6", + "music-metadata": "^7.12.3", + "open-cli": "^7.0.1", + "ora": "^6.1.0", + "picocolors": "^1.0.0", + "prettier": "*", + "prettier-plugin-tailwindcss": "^0.1.10", + "typescript": "*", + "wait-on": "^6.0.1" + }, + "resolutions": { + "@electron/universal": "1.2.1" + } +} diff --git a/src/main/preload.ts b/packages/electron/preload.ts similarity index 81% rename from src/main/preload.ts rename to packages/electron/preload.ts index 20a628d..7e46490 100644 --- a/src/main/preload.ts +++ b/packages/electron/preload.ts @@ -6,7 +6,7 @@ import { createDirIfNotExist } from './utils' const isDev = process.env.NODE_ENV === 'development' if (isDev) { - const devUserDataPath = path.resolve(process.cwd(), './tmp/userData') + const devUserDataPath = path.resolve(process.cwd(), '../../tmp/userData') createDirIfNotExist(devUserDataPath) app.setPath('appData', devUserDataPath) } diff --git a/src/main/rendererPreload.ts b/packages/electron/rendererPreload.ts similarity index 100% rename from src/main/rendererPreload.ts rename to packages/electron/rendererPreload.ts diff --git a/scripts/build.main.mjs b/packages/electron/scripts/build.main.mjs similarity index 83% rename from scripts/build.main.mjs rename to packages/electron/scripts/build.main.mjs index a497776..5c6b120 100644 --- a/scripts/build.main.mjs +++ b/packages/electron/scripts/build.main.mjs @@ -10,10 +10,10 @@ import pc from 'picocolors' import minimist from 'minimist' const env = dotenv.config({ - path: path.resolve(process.cwd(), '.env'), + path: path.resolve(process.cwd(), '../../.env'), }) const envForEsbuild = {} -Object.entries(env.parsed).forEach(([key, value]) => { +Object.entries(env.parsed || {}).forEach(([key, value]) => { envForEsbuild[`process.env.${key}`] = `"${value}"` }) console.log(envForEsbuild) @@ -23,8 +23,8 @@ const TAG = '[script/build.main.ts]' const spinner = ora(`${TAG} Main Process Building...`) const options = { - entryPoints: ['./src/main/index.ts', './src/main/rendererPreload.ts'], - outdir: './dist/main/', + entryPoints: ['./index.ts', './rendererPreload.ts'], + outdir: './dist', platform: 'node', format: 'cjs', bundle: true, @@ -37,22 +37,18 @@ const options = { 'electron', 'NeteaseCloudMusicApi', 'better-sqlite3', - '@unblockneteasemusic/rust-napi' + '@unblockneteasemusic/rust-napi', ], } const runApp = () => { - return spawn( - electron, - [path.resolve(process.cwd(), './dist/main/index.js')], - { - stdio: 'inherit', - env: { - ...process.env, - NODE_ENV: 'development', - }, - } - ) + return spawn(electron, [path.resolve(process.cwd(), './dist/index.js')], { + stdio: 'inherit', + env: { + ...process.env, + NODE_ENV: 'development', + }, + }) } if (argv.watch) { diff --git a/scripts/build.sqlite3.js b/packages/electron/scripts/build.sqlite3.js similarity index 84% rename from scripts/build.sqlite3.js rename to packages/electron/scripts/build.sqlite3.js index c799ebd..bb7bcef 100644 --- a/scripts/build.sqlite3.js +++ b/packages/electron/scripts/build.sqlite3.js @@ -7,6 +7,7 @@ const releases = require('electron-releases') const pkg = require(`${process.cwd()}/package.json`) const axios = require('axios') const { execSync } = require('child_process') +const path = require('path') const electronVersion = pkg.devDependencies.electron.replaceAll('^', '') const betterSqlite3Version = pkg.dependencies['better-sqlite3'].replaceAll( @@ -21,10 +22,10 @@ const isWin = process.platform === 'win32' const isMac = process.platform === 'darwin' const isLinux = process.platform === 'linux' -const projectDir = process.cwd() +const projectDir = path.resolve(process.cwd(), '../../') -if (!fs.existsSync(`${projectDir}/dist/main`)) { - fs.mkdirSync(`${projectDir}/dist/main`, { +if (!fs.existsSync(`${projectDir}/src/main/dist`)) { + fs.mkdirSync(`${projectDir}/src/main/dist`, { recursive: true, }) } @@ -69,7 +70,7 @@ const download = async arch => { try { fs.copyFileSync( `${dir}/build/Release/better_sqlite3.node`, - `${projectDir}/dist/main/better_sqlite3_${arch}.node` + `${projectDir}/src/main/dist/better_sqlite3_${arch}.node` ) } catch (e) { console.log(pc.red('Copy failed! Skip copy.', e)) @@ -77,7 +78,7 @@ const download = async arch => { } try { - fs.rmdirSync(`${dir}/build`, { recursive: true, force: true }) + fs.rmSync(`${dir}/build`, { recursive: true, force: true }) } catch (e) { console.log(pc.red('Delete failed! Skip delete.')) return false @@ -92,15 +93,20 @@ const build = async arch => { console.log(pc.cyan(`Building for ${arch}...`)) await rebuild({ - buildPath: projectDir, + // projectRootPath: projectDir, + // buildPath: process.cwd(), + projectRootPath: projectDir, + buildPath: process.cwd(), electronVersion, - arch: arch, + arch, + onlyModules: ['better-sqlite3'], + force: true, }) .then(() => { console.info('Build succeeded') fs.copyFileSync( `${projectDir}/node_modules/better-sqlite3/build/Release/better_sqlite3.node`, - `${projectDir}/dist/main/better_sqlite3_${arch}.node` + `${projectDir}/src/main/dist/better_sqlite3_${arch}.node` ) }) .catch(e => { diff --git a/src/main/sentry.ts b/packages/electron/sentry.ts similarity index 100% rename from src/main/sentry.ts rename to packages/electron/sentry.ts diff --git a/src/main/server.ts b/packages/electron/server.ts similarity index 99% rename from src/main/server.ts rename to packages/electron/server.ts index 81f0500..a0b9e32 100644 --- a/src/main/server.ts +++ b/packages/electron/server.ts @@ -76,7 +76,7 @@ class Server { serveStaticForProd() { if (isProd) { - this.app.use('/', express.static(path.join(__dirname, '../renderer/'))) + this.app.use('/', express.static(path.join(__dirname, '../web/'))) } } diff --git a/packages/electron/tmp/userData/Electron/api_cache/db.sqlite b/packages/electron/tmp/userData/Electron/api_cache/db.sqlite new file mode 100644 index 0000000..e69de29 diff --git a/src/main/tray.ts b/packages/electron/tray.ts similarity index 100% rename from src/main/tray.ts rename to packages/electron/tray.ts diff --git a/src/main/tsconfig.json b/packages/electron/tsconfig.json similarity index 100% rename from src/main/tsconfig.json rename to packages/electron/tsconfig.json diff --git a/src/main/utils.ts b/packages/electron/utils.ts similarity index 100% rename from src/main/utils.ts rename to packages/electron/utils.ts diff --git a/src/main/windowsTaskbar.ts b/packages/electron/windowsTaskbar.ts similarity index 100% rename from src/main/windowsTaskbar.ts rename to packages/electron/windowsTaskbar.ts diff --git a/src/shared/CacheAPIs.ts b/packages/shared/CacheAPIs.ts similarity index 100% rename from src/shared/CacheAPIs.ts rename to packages/shared/CacheAPIs.ts diff --git a/src/shared/IpcChannels.ts b/packages/shared/IpcChannels.ts similarity index 100% rename from src/shared/IpcChannels.ts rename to packages/shared/IpcChannels.ts diff --git a/src/shared/api/Album.ts b/packages/shared/api/Album.ts similarity index 100% rename from src/shared/api/Album.ts rename to packages/shared/api/Album.ts diff --git a/src/shared/api/Artist.ts b/packages/shared/api/Artist.ts similarity index 100% rename from src/shared/api/Artist.ts rename to packages/shared/api/Artist.ts diff --git a/src/shared/api/Playlists.ts b/packages/shared/api/Playlists.ts similarity index 100% rename from src/shared/api/Playlists.ts rename to packages/shared/api/Playlists.ts diff --git a/src/shared/api/Search.ts b/packages/shared/api/Search.ts similarity index 100% rename from src/shared/api/Search.ts rename to packages/shared/api/Search.ts diff --git a/src/shared/api/Track.ts b/packages/shared/api/Track.ts similarity index 100% rename from src/shared/api/Track.ts rename to packages/shared/api/Track.ts diff --git a/src/shared/api/User.ts b/packages/shared/api/User.ts similarity index 100% rename from src/shared/api/User.ts rename to packages/shared/api/User.ts diff --git a/src/shared/interface.d.ts b/packages/shared/interface.d.ts similarity index 100% rename from src/shared/interface.d.ts rename to packages/shared/interface.d.ts diff --git a/src/shared/playerDataTypes.ts b/packages/shared/playerDataTypes.ts similarity index 100% rename from src/shared/playerDataTypes.ts rename to packages/shared/playerDataTypes.ts diff --git a/src/shared/store.ts b/packages/shared/store.ts similarity index 100% rename from src/shared/store.ts rename to packages/shared/store.ts diff --git a/src/shared/tsconfig.json b/packages/shared/tsconfig.json similarity index 100% rename from src/shared/tsconfig.json rename to packages/shared/tsconfig.json diff --git a/src/renderer/App.tsx b/packages/web/App.tsx similarity index 70% rename from src/renderer/App.tsx rename to packages/web/App.tsx index 5ce7a6a..8f5c6f4 100644 --- a/src/renderer/App.tsx +++ b/packages/web/App.tsx @@ -1,13 +1,13 @@ import { Toaster } from 'react-hot-toast' import { QueryClientProvider } from 'react-query' import { ReactQueryDevtools } from 'react-query/devtools' -import Player from '@/renderer/components/Player' -import Sidebar from '@/renderer/components/Sidebar' -import reactQueryClient from '@/renderer/utils/reactQueryClient' -import Main from '@/renderer/components/Main' -import TitleBar from '@/renderer/components/TitleBar' -import Lyric from '@/renderer/components/Lyric' -import IpcRendererReact from '@/renderer/IpcRendererReact' +import Player from '@/web/components/Player' +import Sidebar from '@/web/components/Sidebar' +import reactQueryClient from '@/web/utils/reactQueryClient' +import Main from '@/web/components/Main' +import TitleBar from '@/web/components/TitleBar' +import Lyric from '@/web/components/Lyric' +import IpcRendererReact from '@/web/IpcRendererReact' const App = () => { return ( diff --git a/src/renderer/IpcRendererReact.tsx b/packages/web/IpcRendererReact.tsx similarity index 82% rename from src/renderer/IpcRendererReact.tsx rename to packages/web/IpcRendererReact.tsx index 52a880c..c3d13ce 100644 --- a/src/renderer/IpcRendererReact.tsx +++ b/packages/web/IpcRendererReact.tsx @@ -1,10 +1,13 @@ import { IpcChannels } from '@/shared/IpcChannels' import useUserLikedTracksIDs, { useMutationLikeATrack, -} from '@/renderer/hooks/useUserLikedTracksIDs' -import { player } from '@/renderer/store' -import useIpcRenderer from '@/renderer/hooks/useIpcRenderer' -import { State as PlayerState } from '@/renderer/utils/player' +} from '@/web/hooks/useUserLikedTracksIDs' +import { player } from '@/web/store' +import useIpcRenderer from '@/web/hooks/useIpcRenderer' +import { State as PlayerState } from '@/web/utils/player' +import { useEffect, useMemo, useRef, useState } from 'react' +import { useEffectOnce } from 'react-use' +import { useSnapshot } from 'valtio' const IpcRendererReact = () => { const [isPlaying, setIsPlaying] = useState(false) diff --git a/src/renderer/api/album.ts b/packages/web/api/album.ts similarity index 93% rename from src/renderer/api/album.ts rename to packages/web/api/album.ts index e2ce0d4..d02e051 100644 --- a/src/renderer/api/album.ts +++ b/packages/web/api/album.ts @@ -1,4 +1,4 @@ -import request from '@/renderer/utils/request' +import request from '@/web/utils/request' import { FetchAlbumParams, FetchAlbumResponse, diff --git a/src/renderer/api/artist.ts b/packages/web/api/artist.ts similarity index 93% rename from src/renderer/api/artist.ts rename to packages/web/api/artist.ts index d6e9279..e797c94 100644 --- a/src/renderer/api/artist.ts +++ b/packages/web/api/artist.ts @@ -1,4 +1,4 @@ -import request from '@/renderer/utils/request' +import request from '@/web/utils/request' import { FetchArtistParams, FetchArtistResponse, diff --git a/src/renderer/api/auth.ts b/packages/web/api/auth.ts similarity index 98% rename from src/renderer/api/auth.ts rename to packages/web/api/auth.ts index 6cab6d4..4b3d5f5 100644 --- a/src/renderer/api/auth.ts +++ b/packages/web/api/auth.ts @@ -1,4 +1,4 @@ -import request from '@/renderer/utils/request' +import request from '@/web/utils/request' import { FetchUserAccountResponse } from '@/shared/api/User' // 手机号登录 diff --git a/src/renderer/api/personalFM.ts b/packages/web/api/personalFM.ts similarity index 97% rename from src/renderer/api/personalFM.ts rename to packages/web/api/personalFM.ts index a627db4..2babc3c 100644 --- a/src/renderer/api/personalFM.ts +++ b/packages/web/api/personalFM.ts @@ -1,4 +1,4 @@ -import request from '@/renderer/utils/request' +import request from '@/web/utils/request' export enum PersonalFMApiNames { FetchPersonalFm = 'fetchPersonalFM', diff --git a/src/renderer/api/playlist.ts b/packages/web/api/playlist.ts similarity index 96% rename from src/renderer/api/playlist.ts rename to packages/web/api/playlist.ts index c079bea..d8d2977 100644 --- a/src/renderer/api/playlist.ts +++ b/packages/web/api/playlist.ts @@ -1,4 +1,4 @@ -import request from '@/renderer/utils/request' +import request from '@/web/utils/request' import { FetchPlaylistParams, FetchPlaylistResponse, diff --git a/src/renderer/api/search.ts b/packages/web/api/search.ts similarity index 92% rename from src/renderer/api/search.ts rename to packages/web/api/search.ts index dc9cf0a..776ec0d 100644 --- a/src/renderer/api/search.ts +++ b/packages/web/api/search.ts @@ -1,4 +1,4 @@ -import request from '@/renderer/utils/request' +import request from '@/web/utils/request' import { SearchParams, SearchResponse, diff --git a/src/renderer/api/track.ts b/packages/web/api/track.ts similarity index 95% rename from src/renderer/api/track.ts rename to packages/web/api/track.ts index 1495d7a..f543a79 100644 --- a/src/renderer/api/track.ts +++ b/packages/web/api/track.ts @@ -1,4 +1,4 @@ -import request from '@/renderer/utils/request' +import request from '@/web/utils/request' import { FetchAudioSourceParams, FetchAudioSourceResponse, diff --git a/src/renderer/api/user.ts b/packages/web/api/user.ts similarity index 98% rename from src/renderer/api/user.ts rename to packages/web/api/user.ts index 54a002e..6c74658 100644 --- a/src/renderer/api/user.ts +++ b/packages/web/api/user.ts @@ -1,4 +1,4 @@ -import request from '@/renderer/utils/request' +import request from '@/web/utils/request' import { FetchUserAccountResponse, FetchUserPlaylistsParams, diff --git a/src/renderer/api/yesplaymusic.ts b/packages/web/api/yesplaymusic.ts similarity index 100% rename from src/renderer/api/yesplaymusic.ts rename to packages/web/api/yesplaymusic.ts diff --git a/src/renderer/assets/fonts/Barlow-Black.ttf b/packages/web/assets/fonts/Barlow-Black.ttf similarity index 100% rename from src/renderer/assets/fonts/Barlow-Black.ttf rename to packages/web/assets/fonts/Barlow-Black.ttf diff --git a/src/renderer/assets/fonts/Barlow-Black.woff2 b/packages/web/assets/fonts/Barlow-Black.woff2 similarity index 100% rename from src/renderer/assets/fonts/Barlow-Black.woff2 rename to packages/web/assets/fonts/Barlow-Black.woff2 diff --git a/src/renderer/assets/fonts/Barlow-Bold.ttf b/packages/web/assets/fonts/Barlow-Bold.ttf similarity index 100% rename from src/renderer/assets/fonts/Barlow-Bold.ttf rename to packages/web/assets/fonts/Barlow-Bold.ttf diff --git a/src/renderer/assets/fonts/Barlow-Bold.woff2 b/packages/web/assets/fonts/Barlow-Bold.woff2 similarity index 100% rename from src/renderer/assets/fonts/Barlow-Bold.woff2 rename to packages/web/assets/fonts/Barlow-Bold.woff2 diff --git a/src/renderer/assets/fonts/Barlow-ExtraBold.ttf b/packages/web/assets/fonts/Barlow-ExtraBold.ttf similarity index 100% rename from src/renderer/assets/fonts/Barlow-ExtraBold.ttf rename to packages/web/assets/fonts/Barlow-ExtraBold.ttf diff --git a/src/renderer/assets/fonts/Barlow-ExtraBold.woff2 b/packages/web/assets/fonts/Barlow-ExtraBold.woff2 similarity index 100% rename from src/renderer/assets/fonts/Barlow-ExtraBold.woff2 rename to packages/web/assets/fonts/Barlow-ExtraBold.woff2 diff --git a/src/renderer/assets/fonts/Barlow-Medium.ttf b/packages/web/assets/fonts/Barlow-Medium.ttf similarity index 100% rename from src/renderer/assets/fonts/Barlow-Medium.ttf rename to packages/web/assets/fonts/Barlow-Medium.ttf diff --git a/src/renderer/assets/fonts/Barlow-Medium.woff2 b/packages/web/assets/fonts/Barlow-Medium.woff2 similarity index 100% rename from src/renderer/assets/fonts/Barlow-Medium.woff2 rename to packages/web/assets/fonts/Barlow-Medium.woff2 diff --git a/src/renderer/assets/fonts/Barlow-Regular.ttf b/packages/web/assets/fonts/Barlow-Regular.ttf similarity index 100% rename from src/renderer/assets/fonts/Barlow-Regular.ttf rename to packages/web/assets/fonts/Barlow-Regular.ttf diff --git a/src/renderer/assets/fonts/Barlow-Regular.woff2 b/packages/web/assets/fonts/Barlow-Regular.woff2 similarity index 100% rename from src/renderer/assets/fonts/Barlow-Regular.woff2 rename to packages/web/assets/fonts/Barlow-Regular.woff2 diff --git a/src/renderer/assets/fonts/Barlow-SemiBold.ttf b/packages/web/assets/fonts/Barlow-SemiBold.ttf similarity index 100% rename from src/renderer/assets/fonts/Barlow-SemiBold.ttf rename to packages/web/assets/fonts/Barlow-SemiBold.ttf diff --git a/src/renderer/assets/fonts/Barlow-SemiBold.woff2 b/packages/web/assets/fonts/Barlow-SemiBold.woff2 similarity index 100% rename from src/renderer/assets/fonts/Barlow-SemiBold.woff2 rename to packages/web/assets/fonts/Barlow-SemiBold.woff2 diff --git a/src/renderer/assets/icons/back.svg b/packages/web/assets/icons/back.svg similarity index 100% rename from src/renderer/assets/icons/back.svg rename to packages/web/assets/icons/back.svg diff --git a/src/renderer/assets/icons/dislike.svg b/packages/web/assets/icons/dislike.svg similarity index 100% rename from src/renderer/assets/icons/dislike.svg rename to packages/web/assets/icons/dislike.svg diff --git a/src/renderer/assets/icons/dj.svg b/packages/web/assets/icons/dj.svg similarity index 100% rename from src/renderer/assets/icons/dj.svg rename to packages/web/assets/icons/dj.svg diff --git a/src/renderer/assets/icons/email.svg b/packages/web/assets/icons/email.svg similarity index 100% rename from src/renderer/assets/icons/email.svg rename to packages/web/assets/icons/email.svg diff --git a/src/renderer/assets/icons/explicit.svg b/packages/web/assets/icons/explicit.svg similarity index 100% rename from src/renderer/assets/icons/explicit.svg rename to packages/web/assets/icons/explicit.svg diff --git a/src/renderer/assets/icons/eye-off.svg b/packages/web/assets/icons/eye-off.svg similarity index 100% rename from src/renderer/assets/icons/eye-off.svg rename to packages/web/assets/icons/eye-off.svg diff --git a/src/renderer/assets/icons/eye.svg b/packages/web/assets/icons/eye.svg similarity index 100% rename from src/renderer/assets/icons/eye.svg rename to packages/web/assets/icons/eye.svg diff --git a/src/renderer/assets/icons/fm.svg b/packages/web/assets/icons/fm.svg similarity index 100% rename from src/renderer/assets/icons/fm.svg rename to packages/web/assets/icons/fm.svg diff --git a/src/renderer/assets/icons/forward.svg b/packages/web/assets/icons/forward.svg similarity index 100% rename from src/renderer/assets/icons/forward.svg rename to packages/web/assets/icons/forward.svg diff --git a/src/renderer/assets/icons/heart-outline.svg b/packages/web/assets/icons/heart-outline.svg similarity index 100% rename from src/renderer/assets/icons/heart-outline.svg rename to packages/web/assets/icons/heart-outline.svg diff --git a/src/renderer/assets/icons/heart.svg b/packages/web/assets/icons/heart.svg similarity index 100% rename from src/renderer/assets/icons/heart.svg rename to packages/web/assets/icons/heart.svg diff --git a/src/renderer/assets/icons/home.svg b/packages/web/assets/icons/home.svg similarity index 100% rename from src/renderer/assets/icons/home.svg rename to packages/web/assets/icons/home.svg diff --git a/src/renderer/assets/icons/lock.svg b/packages/web/assets/icons/lock.svg similarity index 100% rename from src/renderer/assets/icons/lock.svg rename to packages/web/assets/icons/lock.svg diff --git a/src/renderer/assets/icons/lyrics.svg b/packages/web/assets/icons/lyrics.svg similarity index 100% rename from src/renderer/assets/icons/lyrics.svg rename to packages/web/assets/icons/lyrics.svg diff --git a/src/renderer/assets/icons/more.svg b/packages/web/assets/icons/more.svg similarity index 100% rename from src/renderer/assets/icons/more.svg rename to packages/web/assets/icons/more.svg diff --git a/src/renderer/assets/icons/music-library.svg b/packages/web/assets/icons/music-library.svg similarity index 100% rename from src/renderer/assets/icons/music-library.svg rename to packages/web/assets/icons/music-library.svg diff --git a/src/renderer/assets/icons/music-note.svg b/packages/web/assets/icons/music-note.svg similarity index 100% rename from src/renderer/assets/icons/music-note.svg rename to packages/web/assets/icons/music-note.svg diff --git a/src/renderer/assets/icons/next.svg b/packages/web/assets/icons/next.svg similarity index 100% rename from src/renderer/assets/icons/next.svg rename to packages/web/assets/icons/next.svg diff --git a/src/renderer/assets/icons/pause.svg b/packages/web/assets/icons/pause.svg similarity index 100% rename from src/renderer/assets/icons/pause.svg rename to packages/web/assets/icons/pause.svg diff --git a/src/renderer/assets/icons/phone.svg b/packages/web/assets/icons/phone.svg similarity index 100% rename from src/renderer/assets/icons/phone.svg rename to packages/web/assets/icons/phone.svg diff --git a/src/renderer/assets/icons/play-fill.svg b/packages/web/assets/icons/play-fill.svg similarity index 100% rename from src/renderer/assets/icons/play-fill.svg rename to packages/web/assets/icons/play-fill.svg diff --git a/src/renderer/assets/icons/play.svg b/packages/web/assets/icons/play.svg similarity index 100% rename from src/renderer/assets/icons/play.svg rename to packages/web/assets/icons/play.svg diff --git a/src/renderer/assets/icons/playlist.svg b/packages/web/assets/icons/playlist.svg similarity index 100% rename from src/renderer/assets/icons/playlist.svg rename to packages/web/assets/icons/playlist.svg diff --git a/src/renderer/assets/icons/podcast.svg b/packages/web/assets/icons/podcast.svg similarity index 100% rename from src/renderer/assets/icons/podcast.svg rename to packages/web/assets/icons/podcast.svg diff --git a/src/renderer/assets/icons/previous.svg b/packages/web/assets/icons/previous.svg similarity index 100% rename from src/renderer/assets/icons/previous.svg rename to packages/web/assets/icons/previous.svg diff --git a/src/renderer/assets/icons/qrcode.svg b/packages/web/assets/icons/qrcode.svg similarity index 100% rename from src/renderer/assets/icons/qrcode.svg rename to packages/web/assets/icons/qrcode.svg diff --git a/src/renderer/assets/icons/repeat-1.svg b/packages/web/assets/icons/repeat-1.svg similarity index 100% rename from src/renderer/assets/icons/repeat-1.svg rename to packages/web/assets/icons/repeat-1.svg diff --git a/src/renderer/assets/icons/repeat.svg b/packages/web/assets/icons/repeat.svg similarity index 100% rename from src/renderer/assets/icons/repeat.svg rename to packages/web/assets/icons/repeat.svg diff --git a/src/renderer/assets/icons/search.svg b/packages/web/assets/icons/search.svg similarity index 100% rename from src/renderer/assets/icons/search.svg rename to packages/web/assets/icons/search.svg diff --git a/src/renderer/assets/icons/settings.svg b/packages/web/assets/icons/settings.svg similarity index 100% rename from src/renderer/assets/icons/settings.svg rename to packages/web/assets/icons/settings.svg diff --git a/src/renderer/assets/icons/shuffle.svg b/packages/web/assets/icons/shuffle.svg similarity index 100% rename from src/renderer/assets/icons/shuffle.svg rename to packages/web/assets/icons/shuffle.svg diff --git a/src/renderer/assets/icons/user.svg b/packages/web/assets/icons/user.svg similarity index 100% rename from src/renderer/assets/icons/user.svg rename to packages/web/assets/icons/user.svg diff --git a/src/renderer/assets/icons/volume-half.svg b/packages/web/assets/icons/volume-half.svg similarity index 100% rename from src/renderer/assets/icons/volume-half.svg rename to packages/web/assets/icons/volume-half.svg diff --git a/src/renderer/assets/icons/volume-mute.svg b/packages/web/assets/icons/volume-mute.svg similarity index 100% rename from src/renderer/assets/icons/volume-mute.svg rename to packages/web/assets/icons/volume-mute.svg diff --git a/src/renderer/assets/icons/volume.svg b/packages/web/assets/icons/volume.svg similarity index 100% rename from src/renderer/assets/icons/volume.svg rename to packages/web/assets/icons/volume.svg diff --git a/src/renderer/assets/icons/windows-close.svg b/packages/web/assets/icons/windows-close.svg similarity index 100% rename from src/renderer/assets/icons/windows-close.svg rename to packages/web/assets/icons/windows-close.svg diff --git a/src/renderer/assets/icons/windows-maximize.svg b/packages/web/assets/icons/windows-maximize.svg similarity index 100% rename from src/renderer/assets/icons/windows-maximize.svg rename to packages/web/assets/icons/windows-maximize.svg diff --git a/src/renderer/assets/icons/windows-minimize.svg b/packages/web/assets/icons/windows-minimize.svg similarity index 100% rename from src/renderer/assets/icons/windows-minimize.svg rename to packages/web/assets/icons/windows-minimize.svg diff --git a/src/renderer/assets/icons/windows-un-maximize.svg b/packages/web/assets/icons/windows-un-maximize.svg similarity index 100% rename from src/renderer/assets/icons/windows-un-maximize.svg rename to packages/web/assets/icons/windows-un-maximize.svg diff --git a/src/renderer/assets/icons/x.svg b/packages/web/assets/icons/x.svg similarity index 100% rename from src/renderer/assets/icons/x.svg rename to packages/web/assets/icons/x.svg diff --git a/src/renderer/components/ArtistsInline.tsx b/packages/web/components/ArtistsInline.tsx similarity index 88% rename from src/renderer/components/ArtistsInline.tsx rename to packages/web/components/ArtistsInline.tsx index a415e30..8100079 100644 --- a/src/renderer/components/ArtistsInline.tsx +++ b/packages/web/components/ArtistsInline.tsx @@ -1,3 +1,6 @@ +import { useNavigate } from 'react-router-dom' +import cx from 'classnames' + const ArtistInline = ({ artists, className, @@ -23,7 +26,7 @@ const ArtistInline = ({ return (
handleClick(artist.id)} - className={classNames({ + className={cx({ 'hover:underline': !!artist.id && !disableLink, })} > diff --git a/src/renderer/components/Avatar.tsx b/packages/web/components/Avatar.tsx similarity index 87% rename from src/renderer/components/Avatar.tsx rename to packages/web/components/Avatar.tsx index 24b754b..a569451 100644 --- a/src/renderer/components/Avatar.tsx +++ b/packages/web/components/Avatar.tsx @@ -1,6 +1,8 @@ import { resizeImage } from '../utils/common' import useUser from '../hooks/useUser' import SvgIcon from './SvgIcon' +import cx from 'classnames' +import { useNavigate } from 'react-router-dom' const Avatar = ({ size }: { size?: string }) => { const navigate = useNavigate() @@ -16,7 +18,7 @@ const Avatar = ({ size }: { size?: string }) => { navigate('/login')} - className={classNames( + className={cx( 'app-region-no-drag rounded-full bg-gray-100 dark:bg-gray-700', size || 'h-9 w-9' )} @@ -25,7 +27,7 @@ const Avatar = ({ size }: { size?: string }) => {
navigate('/login')}> ) : ( }
) : ( { return (
{/* Cover */} { const classes = @@ -120,7 +122,7 @@ const FMCard = () => { {/* FM logo */}
{ // const ease = [0.5, 0.2, 0.2, 0.8] @@ -80,7 +76,7 @@ const Lyric = ({ className }: { className?: string }) => { return (
{ : 'rest' } layout - className={classNames( - 'max-w-[78%] py-[calc(100vw_*_0.0111)] text-white' - )} + className={cx('max-w-[78%] py-[calc(100vw_*_0.0111)] text-white')} > {content} diff --git a/src/renderer/components/Lyric/Lyric2.tsx b/packages/web/components/Lyric/Lyric2.tsx similarity index 89% rename from src/renderer/components/Lyric/Lyric2.tsx rename to packages/web/components/Lyric/Lyric2.tsx index 0219c09..ab25b7a 100644 --- a/src/renderer/components/Lyric/Lyric2.tsx +++ b/packages/web/components/Lyric/Lyric2.tsx @@ -1,9 +1,11 @@ -import useLyric from '@/renderer/hooks/useLyric' -import { player } from '@/renderer/store' +import useLyric from '@/web/hooks/useLyric' +import { player } from '@/web/store' import { motion, useMotionValue } from 'framer-motion' -import { lyricParser } from '@/renderer/utils/lyric' +import { lyricParser } from '@/web/utils/lyric' import { useWindowSize } from 'react-use' -import { useLayoutEffect } from 'react' +import { useEffect, useLayoutEffect, useMemo, useState } from 'react' +import { useSnapshot } from 'valtio' +import cx from 'classnames' const Lyric = ({ className }: { className?: string }) => { // const ease = [0.5, 0.2, 0.2, 0.8] @@ -45,7 +47,7 @@ const Lyric = ({ className }: { className?: string }) => { return (
{ { const stateSnapshot = useSnapshot(state) @@ -37,7 +40,7 @@ const LyricPanel = () => { duration: 0.4, }, }} - className={classNames( + className={cx( 'fixed inset-0 z-40 grid grid-cols-[repeat(13,_minmax(0,_1fr))] gap-[8%] bg-gray-800' )} style={{ diff --git a/src/renderer/components/Lyric/Player.tsx b/packages/web/components/Lyric/Player.tsx similarity index 91% rename from src/renderer/components/Lyric/Player.tsx rename to packages/web/components/Lyric/Player.tsx index a2be5fe..e05ad85 100644 --- a/src/renderer/components/Lyric/Player.tsx +++ b/packages/web/components/Lyric/Player.tsx @@ -1,8 +1,8 @@ import useUserLikedTracksIDs, { useMutationLikeATrack, -} from '@/renderer/hooks/useUserLikedTracksIDs' -import { player, state } from '@/renderer/store' -import { resizeImage } from '@/renderer/utils/common' +} from '@/web/hooks/useUserLikedTracksIDs' +import { player, state } from '@/web/store' +import { resizeImage } from '@/web/utils/common' import ArtistInline from '../ArtistsInline' import Cover from '../Cover' @@ -11,7 +11,11 @@ import SvgIcon from '../SvgIcon' import { State as PlayerState, Mode as PlayerMode, -} from '@/renderer/utils/player' +} from '@/web/utils/player' +import { useMemo } from 'react' +import { useNavigate } from 'react-router-dom' +import { useSnapshot } from 'valtio' +import cx from 'classnames' const PlayingTrack = () => { const playerSnapshot = useSnapshot(player) @@ -49,7 +53,7 @@ const PlayingTrack = () => {
{ const track = useMemo(() => playerSnapshot.track, [playerSnapshot.track]) return ( -
+
{ return ( @@ -10,7 +11,7 @@ const Main = () => {
{ const navigate = useNavigate() @@ -62,7 +67,7 @@ const PlayingTrack = () => {
{ disabled={playerSnapshot.mode === PlayerMode.FM} > { return (
-
+
{primaryTabs.map(tab => ( scrollToTop()} key={tab.route} to={tab.route} className={({ isActive }) => - classNames( + cx( 'btn-hover-animation mx-3 flex cursor-default items-center rounded-lg px-3 py-2 transition-colors duration-200 after:scale-[0.97] after:bg-black/[.06] dark:after:bg-white/20', !isActive && 'text-gray-700 dark:text-white', isActive && 'text-brand-500 ' @@ -75,7 +76,7 @@ const Playlists = () => { onClick={() => scrollToTop()} to={`/playlist/${playlist.id}`} className={({ isActive }: { isActive: boolean }) => - classNames( + cx( 'btn-hover-animation line-clamp-1 my-px mx-3 flex cursor-default items-center justify-between rounded-lg px-3 py-[0.38rem] text-sm text-black opacity-70 transition-colors duration-200 after:scale-[0.97] after:bg-black/[.06] dark:text-white dark:after:bg-white/20', isActive && 'after:scale-100 after:opacity-100' ) diff --git a/src/renderer/components/Skeleton.tsx b/packages/web/components/Skeleton.tsx similarity index 87% rename from src/renderer/components/Skeleton.tsx rename to packages/web/components/Skeleton.tsx index 66fd6bb..5dbe28d 100644 --- a/src/renderer/components/Skeleton.tsx +++ b/packages/web/components/Skeleton.tsx @@ -1,4 +1,5 @@ import { ReactNode } from 'react' +import cx from 'classnames' const Skeleton = ({ children, @@ -9,7 +10,7 @@ const Skeleton = ({ }) => { return (
{ const [isMaximized, setIsMaximized] = useState(false) @@ -54,7 +56,7 @@ const Title = ({ className }: { className?: string }) => { const track = useMemo(() => playerSnapshot.track, [playerSnapshot.track]) return ( -
+
{track?.name && ( <> {track.name} diff --git a/src/renderer/components/Topbar.tsx b/packages/web/components/Topbar.tsx similarity index 93% rename from src/renderer/components/Topbar.tsx rename to packages/web/components/Topbar.tsx index fe9e023..a825e44 100644 --- a/src/renderer/components/Topbar.tsx +++ b/packages/web/components/Topbar.tsx @@ -1,6 +1,9 @@ -import SvgIcon from '@/renderer/components/SvgIcon' -import useScroll from '@/renderer/hooks/useScroll' +import SvgIcon from '@/web/components/SvgIcon' +import useScroll from '@/web/hooks/useScroll' +import { useState, useEffect } from 'react' +import { useNavigate, useParams } from 'react-router-dom' import Avatar from './Avatar' +import cx from 'classnames' const NavigationButtons = () => { const navigate = useNavigate() @@ -54,7 +57,7 @@ const SearchBox = () => { />
setKeywords('')} - className={classNames( + className={cx( 'cursor-default rounded-full p-1 text-gray-600 transition hover:bg-gray-400/20 dark:text-white/50 dark:hover:bg-white/20', !keywords && 'hidden' )} @@ -90,7 +93,7 @@ const Topbar = () => { return (
{ @@ -24,7 +26,7 @@ const PlayOrPauseButtonInTrack = memo( return (
onClick(e, track.id)} - className={classNames( + className={cx( 'group grid w-full rounded-xl after:scale-[.98] after:rounded-xl', 'grid-cols-12 py-2.5 px-4', !isSkeleton && { @@ -81,7 +83,7 @@ const Track = memo( ) : ( !isHighlight && (
) : (
track?.id && mutationLikeATrack.mutate(track.id)} - className={classNames( + className={cx( 'mr-5 cursor-default transition duration-300 hover:scale-[1.2]', isLiked ? 'text-brand-500 opacity-100' @@ -179,7 +181,7 @@ const Track = memo( 0:00 ) : (
onClick(e, track.id)} - className={classNames( + className={cx( 'group grid w-full rounded-xl after:scale-[.98] after:rounded-xl ', 'grid-cols-1 py-1.5 px-2', !isSkeleton && { @@ -47,7 +50,7 @@ const Track = ({ PLACEHOLDER12345 ) : (
onClick(e, track.id)} - className={classNames( + className={cx( 'group grid w-full rounded-xl after:scale-[.98] after:rounded-xl ', 'grid-cols-12 p-2 pr-4', !isSkeleton && @@ -62,7 +63,7 @@ const Track = memo( PLACEHOLDER12345 ) : (
track?.id && mutationLikeATrack.mutate(track.id)} - className={classNames( + className={cx( 'mr-5 cursor-default transition duration-300 hover:scale-[1.2]', !isLiked && 'text-gray-600 opacity-0 dark:text-gray-400', isLiked && 'text-brand-500 opacity-100', @@ -152,7 +153,7 @@ const Track = memo( 0:00 ) : (
{ const album = await fetchAlbum(params, !!noCache) diff --git a/src/renderer/hooks/useArtist.ts b/packages/web/hooks/useArtist.ts similarity index 89% rename from src/renderer/hooks/useArtist.ts rename to packages/web/hooks/useArtist.ts index 9e9adb5..1023447 100644 --- a/src/renderer/hooks/useArtist.ts +++ b/packages/web/hooks/useArtist.ts @@ -1,4 +1,4 @@ -import { fetchArtist } from '@/renderer/api/artist' +import { fetchArtist } from '@/web/api/artist' import { IpcChannels } from '@/shared/IpcChannels' import { APIs } from '@/shared/CacheAPIs' import { @@ -6,6 +6,7 @@ import { ArtistApiNames, FetchArtistResponse, } from '@/shared/api/Artist' +import { useQuery } from 'react-query' export default function useArtist( params: FetchArtistParams, diff --git a/src/renderer/hooks/useArtistAlbums.ts b/packages/web/hooks/useArtistAlbums.ts similarity index 89% rename from src/renderer/hooks/useArtistAlbums.ts rename to packages/web/hooks/useArtistAlbums.ts index b58e5bf..34b3a3e 100644 --- a/src/renderer/hooks/useArtistAlbums.ts +++ b/packages/web/hooks/useArtistAlbums.ts @@ -1,4 +1,4 @@ -import { fetchArtistAlbums } from '@/renderer/api/artist' +import { fetchArtistAlbums } from '@/web/api/artist' import { IpcChannels } from '@/shared/IpcChannels' import { APIs } from '@/shared/CacheAPIs' import { @@ -6,6 +6,7 @@ import { ArtistApiNames, FetchArtistAlbumsResponse, } from '@/shared/api/Artist' +import { useQuery } from 'react-query' export default function useUserAlbums(params: FetchArtistAlbumsParams) { return useQuery( diff --git a/src/renderer/hooks/useCoverColor.ts b/packages/web/hooks/useCoverColor.ts similarity index 90% rename from src/renderer/hooks/useCoverColor.ts rename to packages/web/hooks/useCoverColor.ts index 0c61132..45533dd 100644 --- a/src/renderer/hooks/useCoverColor.ts +++ b/packages/web/hooks/useCoverColor.ts @@ -1,5 +1,6 @@ import { colord } from 'colord' import { getCoverColor } from '../utils/common' +import { useState, useEffect } from 'react' export default function useCoverColor(url: string) { const [color, setColor] = useState({ from: '#fff', to: '#fff' }) diff --git a/src/renderer/hooks/useIpcRenderer.ts b/packages/web/hooks/useIpcRenderer.ts similarity index 100% rename from src/renderer/hooks/useIpcRenderer.ts rename to packages/web/hooks/useIpcRenderer.ts diff --git a/src/renderer/hooks/useLyric.ts b/packages/web/hooks/useLyric.ts similarity index 87% rename from src/renderer/hooks/useLyric.ts rename to packages/web/hooks/useLyric.ts index 9e26ae3..54c6011 100644 --- a/src/renderer/hooks/useLyric.ts +++ b/packages/web/hooks/useLyric.ts @@ -1,5 +1,5 @@ -import { fetchLyric } from '@/renderer/api/track' -import reactQueryClient from '@/renderer/utils/reactQueryClient' +import { fetchLyric } from '@/web/api/track' +import reactQueryClient from '@/web/utils/reactQueryClient' import { FetchLyricParams, FetchLyricResponse, @@ -7,6 +7,7 @@ import { } from '@/shared/api/Track' import { APIs } from '@/shared/CacheAPIs' import { IpcChannels } from '@/shared/IpcChannels' +import { useQuery } from 'react-query' export default function useLyric(params: FetchLyricParams) { return useQuery( diff --git a/src/renderer/hooks/usePersonalFM.ts b/packages/web/hooks/usePersonalFM.ts similarity index 69% rename from src/renderer/hooks/usePersonalFM.ts rename to packages/web/hooks/usePersonalFM.ts index 4042456..7423b75 100644 --- a/src/renderer/hooks/usePersonalFM.ts +++ b/packages/web/hooks/usePersonalFM.ts @@ -1,5 +1,5 @@ -import { fetchPersonalFM, PersonalFMApiNames } from '@/renderer/api/personalFM' -import reactQueryClient from '@/renderer/utils/reactQueryClient' +import { fetchPersonalFM, PersonalFMApiNames } from '@/web/api/personalFM' +import reactQueryClient from '@/web/utils/reactQueryClient' export function fetchPersonalFMWithReactQuery() { return reactQueryClient.fetchQuery( diff --git a/src/renderer/hooks/usePlaylist.ts b/packages/web/hooks/usePlaylist.ts similarity index 89% rename from src/renderer/hooks/usePlaylist.ts rename to packages/web/hooks/usePlaylist.ts index 029cf18..96ce4fa 100644 --- a/src/renderer/hooks/usePlaylist.ts +++ b/packages/web/hooks/usePlaylist.ts @@ -1,5 +1,5 @@ -import { fetchPlaylist } from '@/renderer/api/playlist' -import reactQueryClient from '@/renderer/utils/reactQueryClient' +import { fetchPlaylist } from '@/web/api/playlist' +import reactQueryClient from '@/web/utils/reactQueryClient' import { IpcChannels } from '@/shared/IpcChannels' import { APIs } from '@/shared/CacheAPIs' import { @@ -7,6 +7,7 @@ import { PlaylistApiNames, FetchPlaylistResponse, } from '@/shared/api/Playlists' +import { useQuery } from 'react-query' const fetch = (params: FetchPlaylistParams, noCache?: boolean) => { return fetchPlaylist(params, !!noCache) diff --git a/src/renderer/hooks/useScroll.ts b/packages/web/hooks/useScroll.ts similarity index 97% rename from src/renderer/hooks/useScroll.ts rename to packages/web/hooks/useScroll.ts index aa6d8eb..a9af472 100644 --- a/src/renderer/hooks/useScroll.ts +++ b/packages/web/hooks/useScroll.ts @@ -1,5 +1,6 @@ // Inspired by https://github.com/vueuse/vueuse import { throttle as lodashThrottle } from 'lodash-es' +import { useEffect, useState } from 'react' interface ArrivedState { top: boolean diff --git a/src/renderer/hooks/useTracks.ts b/packages/web/hooks/useTracks.ts similarity index 87% rename from src/renderer/hooks/useTracks.ts rename to packages/web/hooks/useTracks.ts index ee87bce..4cf9504 100644 --- a/src/renderer/hooks/useTracks.ts +++ b/packages/web/hooks/useTracks.ts @@ -1,6 +1,6 @@ -import { fetchAudioSource, fetchTracks } from '@/renderer/api/track' -import type {} from '@/renderer/api/track' -import reactQueryClient from '@/renderer/utils/reactQueryClient' +import { fetchAudioSource, fetchTracks } from '@/web/api/track' +import type {} from '@/web/api/track' +import reactQueryClient from '@/web/utils/reactQueryClient' import { IpcChannels } from '@/shared/IpcChannels' import { FetchAudioSourceParams, @@ -9,6 +9,7 @@ import { TrackApiNames, } from '@/shared/api/Track' import { APIs } from '@/shared/CacheAPIs' +import { useQuery } from 'react-query' export default function useTracks(params: FetchTracksParams) { return useQuery( diff --git a/src/renderer/hooks/useTracksInfinite.ts b/packages/web/hooks/useTracksInfinite.ts similarity index 95% rename from src/renderer/hooks/useTracksInfinite.ts rename to packages/web/hooks/useTracksInfinite.ts index e95a079..b7e1048 100644 --- a/src/renderer/hooks/useTracksInfinite.ts +++ b/packages/web/hooks/useTracksInfinite.ts @@ -1,4 +1,5 @@ import { FetchTracksParams, TrackApiNames } from '@/shared/api/Track' +import { useInfiniteQuery } from 'react-query' import { fetchTracks } from '../api/track' // 100 tracks each page diff --git a/src/renderer/hooks/useUser.ts b/packages/web/hooks/useUser.ts similarity index 84% rename from src/renderer/hooks/useUser.ts rename to packages/web/hooks/useUser.ts index 926f354..1ad88a5 100644 --- a/src/renderer/hooks/useUser.ts +++ b/packages/web/hooks/useUser.ts @@ -1,7 +1,8 @@ -import { fetchUserAccount } from '@/renderer/api/user' +import { fetchUserAccount } from '@/web/api/user' import { UserApiNames, FetchUserAccountResponse } from '@/shared/api/User' import { APIs } from '@/shared/CacheAPIs' import { IpcChannels } from '@/shared/IpcChannels' +import { useQuery } from 'react-query' export default function useUser() { return useQuery(UserApiNames.FetchUserAccount, fetchUserAccount, { diff --git a/src/renderer/hooks/useUserAlbums.ts b/packages/web/hooks/useUserAlbums.ts similarity index 95% rename from src/renderer/hooks/useUserAlbums.ts rename to packages/web/hooks/useUserAlbums.ts index 5dc6f21..1be29e3 100644 --- a/src/renderer/hooks/useUserAlbums.ts +++ b/packages/web/hooks/useUserAlbums.ts @@ -1,5 +1,5 @@ -import { likeAAlbum } from '@/renderer/api/album' -import { useQueryClient } from 'react-query' +import { likeAAlbum } from '@/web/api/album' +import { useMutation, useQuery, useQueryClient } from 'react-query' import useUser from './useUser' import { IpcChannels } from '@/shared/IpcChannels' import { APIs } from '@/shared/CacheAPIs' diff --git a/src/renderer/hooks/useUserArtists.ts b/packages/web/hooks/useUserArtists.ts similarity index 84% rename from src/renderer/hooks/useUserArtists.ts rename to packages/web/hooks/useUserArtists.ts index ac351d3..9f3670c 100644 --- a/src/renderer/hooks/useUserArtists.ts +++ b/packages/web/hooks/useUserArtists.ts @@ -1,7 +1,8 @@ -import { fetchUserArtists } from '@/renderer/api/user' +import { fetchUserArtists } from '@/web/api/user' import { UserApiNames, FetchUserArtistsResponse } from '@/shared/api/User' import { APIs } from '@/shared/CacheAPIs' import { IpcChannels } from '@/shared/IpcChannels' +import { useQuery } from 'react-query' export default function useUserArtists() { return useQuery([UserApiNames.FetchUserArtist], fetchUserArtists, { diff --git a/src/renderer/hooks/useUserLikedTracksIDs.ts b/packages/web/hooks/useUserLikedTracksIDs.ts similarity index 93% rename from src/renderer/hooks/useUserLikedTracksIDs.ts rename to packages/web/hooks/useUserLikedTracksIDs.ts index c87a6ca..18734f4 100644 --- a/src/renderer/hooks/useUserLikedTracksIDs.ts +++ b/packages/web/hooks/useUserLikedTracksIDs.ts @@ -1,6 +1,6 @@ -import { likeATrack } from '@/renderer/api/track' +import { likeATrack } from '@/web/api/track' import useUser from './useUser' -import { useQueryClient } from 'react-query' +import { useMutation, useQueryClient } from 'react-query' import { IpcChannels } from '@/shared/IpcChannels' import { APIs } from '@/shared/CacheAPIs' import { fetchUserLikedTracksIDs } from '../api/user' @@ -8,6 +8,8 @@ import { FetchUserLikedTracksIDsResponse, UserApiNames, } from '@/shared/api/User' +import { useQuery } from 'react-query' +import toast from 'react-hot-toast' export default function useUserLikedTracksIDs() { const { data: user } = useUser() diff --git a/src/renderer/hooks/useUserPlaylists.ts b/packages/web/hooks/useUserPlaylists.ts similarity index 94% rename from src/renderer/hooks/useUserPlaylists.ts rename to packages/web/hooks/useUserPlaylists.ts index 95e8f31..ffa8345 100644 --- a/src/renderer/hooks/useUserPlaylists.ts +++ b/packages/web/hooks/useUserPlaylists.ts @@ -1,9 +1,9 @@ -import { likeAPlaylist } from '@/renderer/api/playlist' -import { useQueryClient } from 'react-query' +import { likeAPlaylist } from '@/web/api/playlist' +import { useMutation, useQuery, useQueryClient } from 'react-query' import useUser from './useUser' import { IpcChannels } from '@/shared/IpcChannels' import { APIs } from '@/shared/CacheAPIs' -import { fetchUserPlaylists } from '@/renderer/api/user' +import { fetchUserPlaylists } from '@/web/api/user' import { FetchUserPlaylistsResponse, UserApiNames } from '@/shared/api/User' export default function useUserPlaylists() { diff --git a/src/renderer/index.html b/packages/web/index.html similarity index 100% rename from src/renderer/index.html rename to packages/web/index.html diff --git a/src/renderer/ipcRenderer.ts b/packages/web/ipcRenderer.ts similarity index 94% rename from src/renderer/ipcRenderer.ts rename to packages/web/ipcRenderer.ts index 1787655..67f3968 100644 --- a/src/renderer/ipcRenderer.ts +++ b/packages/web/ipcRenderer.ts @@ -1,4 +1,4 @@ -import { player } from '@/renderer/store' +import { player } from '@/web/store' import { IpcChannels, IpcChannelsReturns, diff --git a/src/renderer/main.tsx b/packages/web/main.tsx similarity index 95% rename from src/renderer/main.tsx rename to packages/web/main.tsx index c04a110..4ab9cb2 100644 --- a/src/renderer/main.tsx +++ b/packages/web/main.tsx @@ -11,7 +11,7 @@ import './styles/accentColor.scss' import App from './App' import pkg from '../../package.json' import ReactGA from 'react-ga4' -import { ipcRenderer } from '@/renderer/ipcRenderer' +import { ipcRenderer } from './ipcRenderer' ReactGA.initialize('G-KMJJCFZDKF') diff --git a/packages/web/package.json b/packages/web/package.json new file mode 100644 index 0000000..51308ac --- /dev/null +++ b/packages/web/package.json @@ -0,0 +1,74 @@ +{ + "name": "web", + "private": true, + "version": "2.0.0", + "scripts": { + "dev": "vite dev --host", + "build": "vite build", + "test": "vitest", + "test:ui": "vitest --ui", + "test:coverage": "vitest run --coverage", + "test:types": "tsc --noEmit --project src/renderer/tsconfig.json", + "lint": "eslint --ext .ts,.js,.tsx,.jsx ./", + "analyze:css": "npx windicss-analysis", + "analyze:js": "npm run build && open-cli bundle-stats-renderer.html" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "dependencies": { + "@sentry/react": "^6.19.7", + "@sentry/tracing": "^6.19.7", + "axios": "^0.27.2", + "classnames": "^2.3.1", + "color.js": "^1.2.0", + "colord": "^2.9.2", + "dayjs": "^1.11.1", + "framer-motion": "^6.3.3", + "howler": "^2.2.3", + "js-cookie": "^3.0.1", + "lodash-es": "^4.17.21", + "md5": "^2.3.0", + "qrcode": "^1.5.0", + "react": "^18.1.0", + "react-dom": "^18.1.0", + "react-ga4": "^1.4.1", + "react-hot-toast": "^2.2.0", + "react-query": "^3.38.0", + "react-router-dom": "^6.3.0", + "react-use": "^17.3.2", + "valtio": "^1.6.0" + }, + "devDependencies": { + "@testing-library/react": "^13.1.1", + "@types/howler": "^2.2.7", + "@types/js-cookie": "^3.0.2", + "@types/lodash-es": "^4.17.6", + "@types/md5": "^2.3.2", + "@types/qrcode": "^1.4.2", + "@types/react": "^18.0.8", + "@types/react-dom": "^18.0.3", + "@typescript-eslint/eslint-plugin": "^5.21.0", + "@typescript-eslint/parser": "^5.21.0", + "@vitejs/plugin-react": "^1.3.1", + "@vitest/ui": "^0.12.4", + "autoprefixer": "^10.4.5", + "c8": "^7.11.2", + "dotenv": "^16.0.0", + "eslint": "*", + "eslint-plugin-react": "^7.29.4", + "eslint-plugin-react-hooks": "^4.5.0", + "jsdom": "^19.0.0", + "open-cli": "^7.0.1", + "postcss": "^8.4.13", + "prettier": "*", + "prettier-plugin-tailwindcss": "^0.1.10", + "rollup-plugin-visualizer": "^5.6.0", + "sass": "^1.51.0", + "tailwindcss": "^3.0.24", + "typescript": "*", + "vite": "^2.9.6", + "vite-plugin-svg-icons": "^2.0.1", + "vitest": "^0.12.4" + } +} diff --git a/src/renderer/pages/Album.tsx b/packages/web/pages/Album.tsx similarity index 93% rename from src/renderer/pages/Album.tsx rename to packages/web/pages/Album.tsx index 2b70829..7009947 100644 --- a/src/renderer/pages/Album.tsx +++ b/packages/web/pages/Album.tsx @@ -1,28 +1,31 @@ import dayjs from 'dayjs' -import { NavLink } from 'react-router-dom' -import Button, { Color as ButtonColor } from '@/renderer/components/Button' -import CoverRow, { Subtitle } from '@/renderer/components/CoverRow' -import Skeleton from '@/renderer/components/Skeleton' -import SvgIcon from '@/renderer/components/SvgIcon' -import TracksAlbum from '@/renderer/components/TracksAlbum' -import useAlbum from '@/renderer/hooks/useAlbum' -import useArtistAlbums from '@/renderer/hooks/useArtistAlbums' -import { player } from '@/renderer/store' +import { NavLink, useParams } from 'react-router-dom' +import Button, { Color as ButtonColor } from '@/web/components/Button' +import CoverRow, { Subtitle } from '@/web/components/CoverRow' +import Skeleton from '@/web/components/Skeleton' +import SvgIcon from '@/web/components/SvgIcon' +import TracksAlbum from '@/web/components/TracksAlbum' +import useAlbum from '@/web/hooks/useAlbum' +import useArtistAlbums from '@/web/hooks/useArtistAlbums' +import { player } from '@/web/store' import { Mode as PlayerMode, State as PlayerState, TrackListSourceType, -} from '@/renderer/utils/player' +} from '@/web/utils/player' import { formatDate, formatDuration, resizeImage, scrollToTop, -} from '@/renderer/utils/common' -import useTracks from '@/renderer/hooks/useTracks' +} from '@/web/utils/common' +import useTracks from '@/web/hooks/useTracks' import useUserAlbums, { useMutationLikeAAlbum, -} from '@/renderer/hooks/useUserAlbums' +} from '@/web/hooks/useUserAlbums' +import { useMemo, useState } from 'react' +import toast from 'react-hot-toast' +import { useSnapshot } from 'valtio' const PlayButton = ({ album, diff --git a/src/renderer/pages/Artist.tsx b/packages/web/pages/Artist.tsx similarity index 89% rename from src/renderer/pages/Artist.tsx rename to packages/web/pages/Artist.tsx index 868a574..e146c8b 100644 --- a/src/renderer/pages/Artist.tsx +++ b/packages/web/pages/Artist.tsx @@ -1,15 +1,19 @@ -import Button, { Color as ButtonColor } from '@/renderer/components/Button' -import SvgIcon from '@/renderer/components/SvgIcon' -import Cover from '@/renderer/components/Cover' -import useArtist from '@/renderer/hooks/useArtist' -import useArtistAlbums from '@/renderer/hooks/useArtistAlbums' -import { resizeImage } from '@/renderer/utils/common' +import Button, { Color as ButtonColor } from '@/web/components/Button' +import SvgIcon from '@/web/components/SvgIcon' +import Cover from '@/web/components/Cover' +import useArtist from '@/web/hooks/useArtist' +import useArtistAlbums from '@/web/hooks/useArtistAlbums' +import { resizeImage } from '@/web/utils/common' import dayjs from 'dayjs' -import TracksGrid from '@/renderer/components/TracksGrid' -import CoverRow, { Subtitle } from '@/renderer/components/CoverRow' -import Skeleton from '@/renderer/components/Skeleton' -import useTracks from '@/renderer/hooks/useTracks' -import { player } from '@/renderer/store' +import TracksGrid from '@/web/components/TracksGrid' +import CoverRow, { Subtitle } from '@/web/components/CoverRow' +import Skeleton from '@/web/components/Skeleton' +import useTracks from '@/web/hooks/useTracks' +import { player } from '@/web/store' +import cx from 'classnames' +import { useCallback, useMemo } from 'react' +import toast from 'react-hot-toast' +import { useNavigate, useParams } from 'react-router-dom' const Header = ({ artist }: { artist: Artist | undefined }) => { const coverImage = resizeImage(artist?.img1v1Url || '', 'md') @@ -180,7 +184,7 @@ const Artist = () => {
diff --git a/src/renderer/pages/Library.tsx b/packages/web/pages/Library.tsx similarity index 88% rename from src/renderer/pages/Library.tsx rename to packages/web/pages/Library.tsx index 6633a86..e034f4a 100644 --- a/src/renderer/pages/Library.tsx +++ b/packages/web/pages/Library.tsx @@ -1,14 +1,18 @@ -import CoverRow, { Subtitle } from '@/renderer/components/CoverRow' -import SvgIcon, { SvgName } from '@/renderer/components/SvgIcon' -import useUserAlbums from '@/renderer/hooks/useUserAlbums' -import useLyric from '@/renderer/hooks/useLyric' -import usePlaylist from '@/renderer/hooks/usePlaylist' -import useUser from '@/renderer/hooks/useUser' -import useUserPlaylists from '@/renderer/hooks/useUserPlaylists' -import { player } from '@/renderer/store' -import { resizeImage } from '@/renderer/utils/common' +import CoverRow, { Subtitle } from '@/web/components/CoverRow' +import SvgIcon, { SvgName } from '@/web/components/SvgIcon' +import useUserAlbums from '@/web/hooks/useUserAlbums' +import useLyric from '@/web/hooks/useLyric' +import usePlaylist from '@/web/hooks/usePlaylist' +import useUser from '@/web/hooks/useUser' +import useUserPlaylists from '@/web/hooks/useUserPlaylists' +import { player } from '@/web/store' +import { resizeImage } from '@/web/utils/common' import { sample, chunk } from 'lodash-es' -import useUserArtists from '@/renderer/hooks/useUserArtists' +import useUserArtists from '@/web/hooks/useUserArtists' +import cx from 'classnames' +import { useState, useEffect, useMemo, useCallback } from 'react' +import toast from 'react-hot-toast' +import { useNavigate } from 'react-router-dom' const LikedTracksCard = ({ className }: { className?: string }) => { const navigate = useNavigate() @@ -72,7 +76,7 @@ const LikedTracksCard = ({ className }: { className?: string }) => { likedSongsPlaylist?.playlist.id && navigate(`/playlist/${likedSongsPlaylist.playlist.id}`) } - className={classNames( + className={cx( 'relative flex h-full w-full flex-col justify-between rounded-2xl bg-brand-50 py-5 px-6 text-brand-600 dark:bg-brand-600 dark:text-brand-50', className )} @@ -110,7 +114,7 @@ const OtherCard = ({ }) => { return (
setActiveTab(id as keyof TabsType)} - className={classNames( + className={cx( 'btn-pressed-animation mr-3 rounded-lg px-3.5 py-1.5 font-medium', activeTab === id ? 'bg-black/[.04] dark:bg-white/10' diff --git a/src/renderer/pages/Login.tsx b/packages/web/pages/Login.tsx similarity index 95% rename from src/renderer/pages/Login.tsx rename to packages/web/pages/Login.tsx index 60afb0e..d84a549 100644 --- a/src/renderer/pages/Login.tsx +++ b/packages/web/pages/Login.tsx @@ -5,11 +5,17 @@ import { fetchLoginQrCodeKey, loginWithEmail, loginWithPhone, -} from '@/renderer/api/auth' -import SvgIcon from '@/renderer/components/SvgIcon' -import { state } from '@/renderer/store' -import { setCookies } from '@/renderer/utils/cookie' +} from '@/web/api/auth' +import SvgIcon from '@/web/components/SvgIcon' +import { state } from '@/web/store' +import { setCookies } from '@/web/utils/cookie' import { useInterval } from 'react-use' +import cx from 'classnames' +import { useState, useMemo, useEffect } from 'react' +import toast from 'react-hot-toast' +import { useMutation, useQuery } from 'react-query' +import { useNavigate } from 'react-router-dom' +import { useSnapshot } from 'valtio' enum Method { QrCode = 'qrcode', @@ -60,7 +66,7 @@ const PhoneInput = ({
{ const navigate = useNavigate() diff --git a/src/renderer/pages/Search/index.ts b/packages/web/pages/Search/index.ts similarity index 100% rename from src/renderer/pages/Search/index.ts rename to packages/web/pages/Search/index.ts diff --git a/src/renderer/pages/Settings/Appearance.tsx b/packages/web/pages/Settings/Appearance.tsx similarity index 90% rename from src/renderer/pages/Settings/Appearance.tsx rename to packages/web/pages/Settings/Appearance.tsx index 5beead6..9ebe125 100644 --- a/src/renderer/pages/Settings/Appearance.tsx +++ b/packages/web/pages/Settings/Appearance.tsx @@ -1,5 +1,7 @@ -import { state } from '@/renderer/store' -import { changeAccentColor } from '@/renderer/utils/theme' +import { state } from '@/web/store' +import { changeAccentColor } from '@/web/utils/theme' +import { useSnapshot } from 'valtio' +import cx from 'classnames' const AccentColor = () => { const colors = { @@ -35,7 +37,7 @@ const AccentColor = () => { {Object.entries(colors).map(([color, bg]) => (
{ const { data: user } = useUser() @@ -64,7 +67,7 @@ const Sidebar = ({
setActiveCategory(category)} - className={classNames( + className={cx( 'btn-hover-animation my-px flex cursor-default items-center justify-between rounded-lg px-3 py-2 font-medium transition-colors duration-200 after:scale-[0.97] after:bg-black/[.06] dark:text-white dark:after:bg-white/10', activeCategory === category ? 'text-black after:scale-100 after:opacity-100' diff --git a/src/renderer/pages/Settings/UnblockNeteaseMusic.tsx b/packages/web/pages/Settings/UnblockNeteaseMusic.tsx similarity index 100% rename from src/renderer/pages/Settings/UnblockNeteaseMusic.tsx rename to packages/web/pages/Settings/UnblockNeteaseMusic.tsx diff --git a/src/renderer/pages/Settings/index.ts b/packages/web/pages/Settings/index.ts similarity index 100% rename from src/renderer/pages/Settings/index.ts rename to packages/web/pages/Settings/index.ts diff --git a/postcss.config.js b/packages/web/postcss.config.js similarity index 100% rename from postcss.config.js rename to packages/web/postcss.config.js diff --git a/scripts/generate.accent.color.css.js b/packages/web/scripts/generate.accent.color.css.js similarity index 85% rename from scripts/generate.accent.color.css.js rename to packages/web/scripts/generate.accent.color.css.js index 6ec6c17..68b1f49 100644 --- a/scripts/generate.accent.color.css.js +++ b/packages/web/scripts/generate.accent.color.css.js @@ -2,7 +2,7 @@ const { colord } = require('colord') const prettier = require('prettier') const fs = require('fs') -const prettierConfig = require('../prettier.config.js') +const prettierConfig = require('../../prettier.config.js') const pickedColors = require('./pickedColors.js') const colorsCss = {} @@ -25,4 +25,4 @@ ${name === 'blue' ? ':root' : `[data-accent-color='${name}']`} {${color} }) const formatted = prettier.format(css, { ...prettierConfig, parser: 'css' }) -fs.writeFileSync('./src/renderer/styles/accentColor.scss', formatted) +fs.writeFileSync('./styles/accentColor.scss', formatted) diff --git a/scripts/pickedColors.js b/packages/web/scripts/pickedColors.js similarity index 100% rename from scripts/pickedColors.js rename to packages/web/scripts/pickedColors.js diff --git a/src/renderer/store.ts b/packages/web/store.ts similarity index 95% rename from src/renderer/store.ts rename to packages/web/store.ts index 5d74bbe..91c50b3 100644 --- a/src/renderer/store.ts +++ b/packages/web/store.ts @@ -1,6 +1,6 @@ import { proxy, subscribe } from 'valtio' import { devtools } from 'valtio/utils' -import { Player } from '@/renderer/utils/player' +import { Player } from '@/web/utils/player' import { merge } from 'lodash-es' import { IpcChannels } from '@/shared/IpcChannels' import { Store, initialState } from '@/shared/store' diff --git a/src/renderer/styles/accentColor.scss b/packages/web/styles/accentColor.scss similarity index 100% rename from src/renderer/styles/accentColor.scss rename to packages/web/styles/accentColor.scss diff --git a/src/renderer/styles/global.scss b/packages/web/styles/global.scss similarity index 66% rename from src/renderer/styles/global.scss rename to packages/web/styles/global.scss index 20235b3..ffd4187 100644 --- a/src/renderer/styles/global.scss +++ b/packages/web/styles/global.scss @@ -54,38 +54,38 @@ @font-face { font-family: Barlow; font-weight: normal; - src: url('@/renderer/assets/fonts/Barlow-Regular.woff2') format('woff2'), - url('@/renderer/assets/fonts/Barlow-Regular.ttf') format('truetype'); + src: url('@/web/assets/fonts/Barlow-Regular.woff2') format('woff2'), + url('@/web/assets/fonts/Barlow-Regular.ttf') format('truetype'); } @font-face { font-family: Barlow; font-weight: medium; - src: url('@/renderer/assets/fonts/Barlow-Medium.woff2') format('woff2'), - url('@/renderer/assets/fonts/Barlow-Medium.ttf') format('truetype'); + src: url('@/web/assets/fonts/Barlow-Medium.woff2') format('woff2'), + url('@/web/assets/fonts/Barlow-Medium.ttf') format('truetype'); } @font-face { font-family: Barlow; font-weight: 600; - src: url('@/renderer/assets/fonts/Barlow-SemiBold.woff2') format('woff2'), - url('@/renderer/assets/fonts/Barlow-SemiBold.ttf') format('truetype'); + src: url('@/web/assets/fonts/Barlow-SemiBold.woff2') format('woff2'), + url('@/web/assets/fonts/Barlow-SemiBold.ttf') format('truetype'); } @font-face { font-family: Barlow; font-weight: bold; - src: url('@/renderer/assets/fonts/Barlow-Bold.woff2') format('woff2'), - url('@/renderer/assets/fonts/Barlow-Bold.ttf') format('truetype'); + src: url('@/web/assets/fonts/Barlow-Bold.woff2') format('woff2'), + url('@/web/assets/fonts/Barlow-Bold.ttf') format('truetype'); } @font-face { font-family: Barlow; font-weight: 800; - src: url('@/renderer/assets/fonts/Barlow-ExtraBold.woff2') format('woff2'), - url('@/renderer/assets/fonts/Barlow-ExtraBold.ttf') format('truetype'); + src: url('@/web/assets/fonts/Barlow-ExtraBold.woff2') format('woff2'), + url('@/web/assets/fonts/Barlow-ExtraBold.ttf') format('truetype'); } @font-face { font-family: Barlow; font-weight: 900; - src: url('@/renderer/assets/fonts/Barlow-Black.woff2') format('woff2'), - url('@/renderer/assets/fonts/Barlow-Black.ttf') format('truetype'); + src: url('@/web/assets/fonts/Barlow-Black.woff2') format('woff2'), + url('@/web/assets/fonts/Barlow-Black.ttf') format('truetype'); } body, diff --git a/tailwind.config.js b/packages/web/tailwind.config.js similarity index 78% rename from tailwind.config.js rename to packages/web/tailwind.config.js index 95b6f42..5684403 100644 --- a/tailwind.config.js +++ b/packages/web/tailwind.config.js @@ -3,10 +3,7 @@ const colors = require('tailwindcss/colors') const pickedColors = require('./scripts/pickedColors.js') module.exports = { - content: [ - './src/renderer/index.html', - './src/renderer/**/*.{vue,js,ts,jsx,tsx}', - ], + content: ['./index.html', './**/*.{vue,js,ts,jsx,tsx}'], darkMode: 'media', theme: { extend: { diff --git a/src/renderer/test/utils/common.test.ts b/packages/web/test/utils/common.test.ts similarity index 99% rename from src/renderer/test/utils/common.test.ts rename to packages/web/test/utils/common.test.ts index 9fec78d..1b3e2b8 100644 --- a/src/renderer/test/utils/common.test.ts +++ b/packages/web/test/utils/common.test.ts @@ -7,7 +7,7 @@ import { calcCoverColor, getCoverColor, storage, -} from '@/renderer/utils/common' +} from '@/web/utils/common' import { IpcChannels } from '@/shared/IpcChannels' import { APIs } from '@/shared/CacheAPIs' diff --git a/src/renderer/test/utils/cookie.test.ts b/packages/web/test/utils/cookie.test.ts similarity index 99% rename from src/renderer/test/utils/cookie.test.ts rename to packages/web/test/utils/cookie.test.ts index fd20716..9bc50e1 100644 --- a/src/renderer/test/utils/cookie.test.ts +++ b/packages/web/test/utils/cookie.test.ts @@ -6,7 +6,7 @@ import { removeCookie, parseCookies, removeAllCookies, -} from '@/renderer/utils/cookie' +} from '@/web/utils/cookie' import Cookies from 'js-cookie' describe('parseCookies', () => { diff --git a/src/renderer/tsconfig.json b/packages/web/tsconfig.json similarity index 100% rename from src/renderer/tsconfig.json rename to packages/web/tsconfig.json diff --git a/src/renderer/utils/common.ts b/packages/web/utils/common.ts similarity index 100% rename from src/renderer/utils/common.ts rename to packages/web/utils/common.ts diff --git a/src/renderer/utils/cookie.ts b/packages/web/utils/cookie.ts similarity index 100% rename from src/renderer/utils/cookie.ts rename to packages/web/utils/cookie.ts diff --git a/src/renderer/utils/initLog.ts b/packages/web/utils/initLog.ts similarity index 100% rename from src/renderer/utils/initLog.ts rename to packages/web/utils/initLog.ts diff --git a/src/renderer/utils/lyric.ts b/packages/web/utils/lyric.ts similarity index 100% rename from src/renderer/utils/lyric.ts rename to packages/web/utils/lyric.ts diff --git a/src/renderer/utils/player.ts b/packages/web/utils/player.ts similarity index 96% rename from src/renderer/utils/player.ts rename to packages/web/utils/player.ts index 2076f73..f0444f0 100644 --- a/src/renderer/utils/player.ts +++ b/packages/web/utils/player.ts @@ -2,15 +2,15 @@ import { Howl, Howler } from 'howler' import { fetchAudioSourceWithReactQuery, fetchTracksWithReactQuery, -} from '@/renderer/hooks/useTracks' -import { fetchPersonalFMWithReactQuery } from '@/renderer/hooks/usePersonalFM' -import { fmTrash } from '@/renderer/api/personalFM' -import { cacheAudio } from '@/renderer/api/yesplaymusic' +} from '@/web/hooks/useTracks' +import { fetchPersonalFMWithReactQuery } from '@/web/hooks/usePersonalFM' +import { fmTrash } from '@/web/api/personalFM' +import { cacheAudio } from '@/web/api/yesplaymusic' import { clamp } from 'lodash-es' import axios from 'axios' import { resizeImage } from './common' -import { fetchPlaylistWithReactQuery } from '@/renderer/hooks/usePlaylist' -import { fetchAlbumWithReactQuery } from '@/renderer/hooks/useAlbum' +import { fetchPlaylistWithReactQuery } from '@/web/hooks/usePlaylist' +import { fetchAlbumWithReactQuery } from '@/web/hooks/useAlbum' import { IpcChannels } from '@/shared/IpcChannels' import { RepeatMode } from '@/shared/playerDataTypes' diff --git a/src/renderer/utils/reactQueryClient.ts b/packages/web/utils/reactQueryClient.ts similarity index 100% rename from src/renderer/utils/reactQueryClient.ts rename to packages/web/utils/reactQueryClient.ts diff --git a/src/renderer/utils/request.ts b/packages/web/utils/request.ts similarity index 100% rename from src/renderer/utils/request.ts rename to packages/web/utils/request.ts diff --git a/src/renderer/utils/theme.ts b/packages/web/utils/theme.ts similarity index 100% rename from src/renderer/utils/theme.ts rename to packages/web/utils/theme.ts diff --git a/src/renderer/vite-env.d.ts b/packages/web/vite-env.d.ts similarity index 100% rename from src/renderer/vite-env.d.ts rename to packages/web/vite-env.d.ts diff --git a/vite.config.ts b/packages/web/vite.config.ts similarity index 55% rename from vite.config.ts rename to packages/web/vite.config.ts index 793aa94..c4a1d93 100644 --- a/vite.config.ts +++ b/packages/web/vite.config.ts @@ -2,19 +2,17 @@ import react from '@vitejs/plugin-react' import dotenv from 'dotenv' import path, { join } from 'path' -import AutoImport from 'unplugin-auto-import/vite' import { defineConfig } from 'vite' import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' import { visualizer } from 'rollup-plugin-visualizer' -dotenv.config({ path: path.resolve(process.cwd(), '.env') }) - +dotenv.config({ path: path.resolve(process.cwd(), '../../.env') }) /** * @see https://vitejs.dev/config/ */ export default defineConfig({ mode: process.env.NODE_ENV, - root: './src/renderer', + root: './', plugins: [ react(), @@ -22,31 +20,15 @@ export default defineConfig({ * @see https://github.com/vbenjs/vite-plugin-svg-icons */ createSvgIconsPlugin({ - iconDirs: [path.resolve(process.cwd(), 'src/renderer/assets/icons')], + iconDirs: [join(__dirname, './assets/icons')], symbolId: 'icon-[name]', }), - - /** - * @see https://github.com/antfu/unplugin-auto-import - */ - AutoImport({ - dts: 'auto-imports.d.ts', - imports: [ - 'react', - { classnames: [['default', 'classNames']] }, - { 'react-query': ['useQuery', 'useMutation', 'useInfiniteQuery'] }, - { 'react-router-dom': ['useNavigate', 'useParams'] }, - { 'react-hot-toast': ['toast'] }, - { 'react-use': ['useEffectOnce'] }, - { valtio: ['useSnapshot'] }, - ], - }), ], base: '/', build: { target: process.env.IS_ELECTRON ? 'esnext' : 'modules', sourcemap: process.env.NODE_ENV === 'debug', - outDir: '../../dist/renderer', + outDir: './dist', emptyOutDir: true, rollupOptions: { plugins: [ @@ -61,19 +43,23 @@ export default defineConfig({ }, resolve: { alias: { - '@': join(__dirname, './src'), + '@': join(__dirname, '../'), }, }, clearScreen: false, server: { - port: Number(process.env['ELECTRON_WEB_SERVER_PORT'] ?? 42710), + port: Number(process.env['ELECTRON_WEB_SERVER_PORT'] || 42710), proxy: { '/netease/': { - target: `http://127.0.0.1:${process.env.ELECTRON_DEV_NETEASE_API_PORT}`, + target: `http://127.0.0.1:${ + process.env.ELECTRON_DEV_NETEASE_API_PORT || 3000 + }`, changeOrigin: true, }, '/yesplaymusic/': { - target: `http://127.0.0.1:${process.env.ELECTRON_DEV_NETEASE_API_PORT}`, + target: `http://127.0.0.1:${ + process.env.ELECTRON_DEV_NETEASE_API_PORT || 3000 + }`, changeOrigin: true, }, }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 84c4611..578b16c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,175 +1,208 @@ -lockfileVersion: 5.3 +lockfileVersion: 5.4 -overrides: - '@electron/universal': 1.2.1 +importers: -specifiers: - '@electron/universal': 1.2.1 - '@sentry/node': ^6.19.7 - '@sentry/react': ^6.19.7 - '@sentry/tracing': ^6.19.7 - '@testing-library/react': ^13.1.1 - '@types/better-sqlite3': ^7.5.0 - '@types/cookie-parser': ^1.4.3 - '@types/express': ^4.17.13 - '@types/express-fileupload': ^1.2.2 - '@types/howler': ^2.2.7 - '@types/js-cookie': ^3.0.2 - '@types/lodash-es': ^4.17.6 - '@types/md5': ^2.3.2 - '@types/qrcode': ^1.4.2 - '@types/react': ^18.0.8 - '@types/react-dom': ^18.0.1 - '@typescript-eslint/eslint-plugin': ^5.21.0 - '@typescript-eslint/parser': ^5.21.0 - '@unblockneteasemusic/rust-napi': ^0.3.0-pre.1 - '@vitejs/plugin-react': ^1.3.1 - '@vitest/ui': ^0.10.0 - NeteaseCloudMusicApi: ^4.5.12 - autoprefixer: ^10.4.5 - axios: ^0.27.2 - better-sqlite3: 7.5.1 - c8: ^7.11.2 - change-case: ^4.1.2 - classnames: ^2.3.1 - color.js: ^1.2.0 - colord: ^2.9.2 - concurrently: ^7.1.0 - cookie-parser: ^1.4.6 - cross-env: ^7.0.3 - dayjs: ^1.11.1 - dotenv: ^16.0.0 - electron: ^18.1.0 - electron-builder: ^23.0.3 - electron-devtools-installer: ^3.2.0 - electron-log: ^4.4.6 - electron-rebuild: ^3.2.7 - electron-releases: ^3.1004.0 - electron-store: ^8.0.1 - esbuild: ^0.14.38 - eslint: ^8.14.0 - eslint-plugin-react: ^7.29.4 - eslint-plugin-react-hooks: ^4.5.0 - express: ^4.18.0 - express-fileupload: ^1.3.1 - fast-folder-size: ^1.6.1 - framer-motion: ^6.3.2 - howler: ^2.2.3 - js-cookie: ^3.0.1 - jsdom: ^19.0.0 - lodash-es: ^4.17.21 - md5: ^2.3.0 - minimist: ^1.2.6 - music-metadata: ^7.12.3 - open-cli: ^7.0.1 - ora: ^6.1.0 - picocolors: ^1.0.0 - postcss: ^8.4.12 - prettier: 2.6.2 - prettier-plugin-tailwindcss: ^0.1.10 - qrcode: ^1.5.0 - react: ^18.1.0 - react-dom: ^18.1.0 - react-ga4: ^1.4.1 - react-hot-toast: ^2.2.0 - react-query: ^3.38.0 - react-router-dom: ^6.3.0 - react-use: ^17.3.2 - rollup-plugin-visualizer: ^5.6.0 - sass: ^1.51.0 - tailwindcss: ^3.0.24 - typescript: ^4.6.3 - unplugin-auto-import: ^0.7.1 - valtio: ^1.6.0 - vite: ^2.9.6 - vite-plugin-svg-icons: ^2.0.1 - vitest: ^0.10.0 - wait-on: ^6.0.1 + .: + specifiers: + eslint: ^8.15.0 + prettier: ^2.6.2 + turbo: ^1.2.8 + typescript: ^4.6.4 + devDependencies: + eslint: 8.15.0 + prettier: 2.6.2 + turbo: 1.2.8 + typescript: 4.6.4 -dependencies: - '@sentry/node': 6.19.7 - '@sentry/tracing': 6.19.7 - '@unblockneteasemusic/rust-napi': 0.3.0-pre.1 - NeteaseCloudMusicApi: 4.5.12 - better-sqlite3: 7.5.1 - change-case: 4.1.2 - cookie-parser: 1.4.6 - electron-log: 4.4.6 - electron-store: 8.0.1 - express: 4.18.0 - fast-folder-size: 1.6.1 + src/main: + specifiers: + '@electron/universal': 1.2.1 + '@sentry/node': ^6.19.7 + '@sentry/tracing': ^6.19.7 + '@types/better-sqlite3': ^7.5.0 + '@types/cookie-parser': ^1.4.3 + '@types/express': ^4.17.13 + '@types/express-fileupload': ^1.2.2 + '@typescript-eslint/eslint-plugin': ^5.21.0 + '@typescript-eslint/parser': ^5.21.0 + '@unblockneteasemusic/rust-napi': ^0.3.0-pre.1 + '@vitejs/plugin-react': ^1.3.1 + axios: ^0.27.2 + better-sqlite3: 7.5.1 + change-case: ^4.1.2 + cookie-parser: ^1.4.6 + cross-env: ^7.0.3 + dotenv: ^16.0.0 + electron: ^18.2.2 + electron-builder: ^23.0.3 + electron-devtools-installer: ^3.2.0 + electron-log: ^4.4.6 + electron-rebuild: ^3.2.7 + electron-releases: ^3.1009.0 + electron-store: ^8.0.1 + esbuild: ^0.14.38 + eslint: '*' + express: ^4.18.1 + express-fileupload: ^1.3.1 + fast-folder-size: ^1.6.1 + minimist: ^1.2.6 + music-metadata: ^7.12.3 + NeteaseCloudMusicApi: ^4.5.12 + open-cli: ^7.0.1 + ora: ^6.1.0 + picocolors: ^1.0.0 + prettier: '*' + prettier-plugin-tailwindcss: ^0.1.10 + typescript: '*' + wait-on: ^6.0.1 + dependencies: + '@sentry/node': 6.19.7 + '@sentry/tracing': 6.19.7 + '@unblockneteasemusic/rust-napi': 0.3.0-pre.1 + better-sqlite3: 7.5.1 + change-case: 4.1.2 + cookie-parser: 1.4.6 + electron-log: 4.4.7 + electron-store: 8.0.1 + express: 4.18.1 + fast-folder-size: 1.6.2 + NeteaseCloudMusicApi: 4.5.14 + devDependencies: + '@electron/universal': 1.2.1 + '@types/better-sqlite3': 7.5.0 + '@types/cookie-parser': 1.4.3 + '@types/express': 4.17.13 + '@types/express-fileupload': 1.2.2 + '@typescript-eslint/eslint-plugin': 5.23.0_c63nfttrfhylg3zmgcxfslaw44 + '@typescript-eslint/parser': 5.23.0_hcfsmds2fshutdssjqluwm76uu + '@vitejs/plugin-react': 1.3.2 + axios: 0.27.2 + cross-env: 7.0.3 + dotenv: 16.0.1 + electron: 18.2.2 + electron-builder: 23.0.3 + electron-devtools-installer: 3.2.0 + electron-rebuild: 3.2.7 + electron-releases: 3.1017.0 + esbuild: 0.14.38 + eslint: 8.15.0 + express-fileupload: 1.3.1 + minimist: 1.2.6 + music-metadata: 7.12.3 + open-cli: 7.0.1 + ora: 6.1.0 + picocolors: 1.0.0 + prettier: 2.6.2 + prettier-plugin-tailwindcss: 0.1.10_prettier@2.6.2 + typescript: 4.6.4 + wait-on: 6.0.1 -devDependencies: - '@electron/universal': 1.2.1 - '@sentry/react': 6.19.7_react@18.1.0 - '@testing-library/react': 13.1.1_react-dom@18.1.0+react@18.1.0 - '@types/better-sqlite3': 7.5.0 - '@types/cookie-parser': 1.4.3 - '@types/express': 4.17.13 - '@types/express-fileupload': 1.2.2 - '@types/howler': 2.2.7 - '@types/js-cookie': 3.0.2 - '@types/lodash-es': 4.17.6 - '@types/md5': 2.3.2 - '@types/qrcode': 1.4.2 - '@types/react': 18.0.8 - '@types/react-dom': 18.0.1 - '@typescript-eslint/eslint-plugin': 5.21.0_829e74f28e9c9eb05edda582d47d45b8 - '@typescript-eslint/parser': 5.21.0_eslint@8.14.0+typescript@4.6.3 - '@vitejs/plugin-react': 1.3.1 - '@vitest/ui': 0.10.0 - autoprefixer: 10.4.5_postcss@8.4.12 - axios: 0.27.2 - c8: 7.11.2 - classnames: 2.3.1 - color.js: 1.2.0 - colord: 2.9.2 - concurrently: 7.1.0 - cross-env: 7.0.3 - dayjs: 1.11.1 - dotenv: 16.0.0 - electron: 18.1.0 - electron-builder: 23.0.3 - electron-devtools-installer: 3.2.0 - electron-rebuild: 3.2.7 - electron-releases: 3.1004.0 - esbuild: 0.14.38 - eslint: 8.14.0 - eslint-plugin-react: 7.29.4_eslint@8.14.0 - eslint-plugin-react-hooks: 4.5.0_eslint@8.14.0 - express-fileupload: 1.3.1 - framer-motion: 6.3.2_react-dom@18.1.0+react@18.1.0 - howler: 2.2.3 - js-cookie: 3.0.1 - jsdom: 19.0.0 - lodash-es: 4.17.21 - md5: 2.3.0 - minimist: 1.2.6 - music-metadata: 7.12.3 - open-cli: 7.0.1 - ora: 6.1.0 - picocolors: 1.0.0 - postcss: 8.4.12 - prettier: 2.6.2 - prettier-plugin-tailwindcss: 0.1.10_prettier@2.6.2 - qrcode: 1.5.0 - react: 18.1.0 - react-dom: 18.1.0_react@18.1.0 - react-ga4: 1.4.1 - react-hot-toast: 2.2.0_react-dom@18.1.0+react@18.1.0 - react-query: 3.38.0_react-dom@18.1.0+react@18.1.0 - react-router-dom: 6.3.0_react-dom@18.1.0+react@18.1.0 - react-use: 17.3.2_react-dom@18.1.0+react@18.1.0 - rollup-plugin-visualizer: 5.6.0 - sass: 1.51.0 - tailwindcss: 3.0.24 - typescript: 4.6.3 - unplugin-auto-import: 0.7.1_esbuild@0.14.38+vite@2.9.6 - valtio: 1.6.0_react@18.1.0+vite@2.9.6 - vite: 2.9.6_sass@1.51.0 - vite-plugin-svg-icons: 2.0.1_vite@2.9.6 - vitest: 0.10.0_4c1c8c4d8f26985bd044cf10513feef3 - wait-on: 6.0.1 + src/renderer: + specifiers: + '@sentry/react': ^6.19.7 + '@sentry/tracing': ^6.19.7 + '@testing-library/react': ^13.1.1 + '@types/howler': ^2.2.7 + '@types/js-cookie': ^3.0.2 + '@types/lodash-es': ^4.17.6 + '@types/md5': ^2.3.2 + '@types/qrcode': ^1.4.2 + '@types/react': ^18.0.8 + '@types/react-dom': ^18.0.3 + '@typescript-eslint/eslint-plugin': ^5.21.0 + '@typescript-eslint/parser': ^5.21.0 + '@vitejs/plugin-react': ^1.3.1 + '@vitest/ui': ^0.12.4 + autoprefixer: ^10.4.5 + axios: ^0.27.2 + c8: ^7.11.2 + classnames: ^2.3.1 + color.js: ^1.2.0 + colord: ^2.9.2 + dayjs: ^1.11.1 + dotenv: ^16.0.0 + eslint: '*' + eslint-plugin-react: ^7.29.4 + eslint-plugin-react-hooks: ^4.5.0 + framer-motion: ^6.3.3 + howler: ^2.2.3 + js-cookie: ^3.0.1 + jsdom: ^19.0.0 + lodash-es: ^4.17.21 + md5: ^2.3.0 + open-cli: ^7.0.1 + postcss: ^8.4.13 + prettier: '*' + prettier-plugin-tailwindcss: ^0.1.10 + qrcode: ^1.5.0 + react: ^18.1.0 + react-dom: ^18.1.0 + react-ga4: ^1.4.1 + react-hot-toast: ^2.2.0 + react-query: ^3.38.0 + react-router-dom: ^6.3.0 + react-use: ^17.3.2 + rollup-plugin-visualizer: ^5.6.0 + sass: ^1.51.0 + tailwindcss: ^3.0.24 + typescript: '*' + valtio: ^1.6.0 + vite: ^2.9.6 + vite-plugin-svg-icons: ^2.0.1 + vitest: ^0.12.4 + dependencies: + '@sentry/react': 6.19.7_react@18.1.0 + '@sentry/tracing': 6.19.7 + axios: 0.27.2 + classnames: 2.3.1 + color.js: 1.2.0 + colord: 2.9.2 + dayjs: 1.11.2 + framer-motion: 6.3.3_ef5jwxihqo6n7gxfmzogljlgcm + howler: 2.2.3 + js-cookie: 3.0.1 + lodash-es: 4.17.21 + md5: 2.3.0 + qrcode: 1.5.0 + react: 18.1.0 + react-dom: 18.1.0_react@18.1.0 + react-ga4: 1.4.1 + react-hot-toast: 2.2.0_ef5jwxihqo6n7gxfmzogljlgcm + react-query: 3.39.0_ef5jwxihqo6n7gxfmzogljlgcm + react-router-dom: 6.3.0_ef5jwxihqo6n7gxfmzogljlgcm + react-use: 17.3.2_ef5jwxihqo6n7gxfmzogljlgcm + valtio: 1.6.0_react@18.1.0+vite@2.9.9 + devDependencies: + '@testing-library/react': 13.2.0_ef5jwxihqo6n7gxfmzogljlgcm + '@types/howler': 2.2.7 + '@types/js-cookie': 3.0.2 + '@types/lodash-es': 4.17.6 + '@types/md5': 2.3.2 + '@types/qrcode': 1.4.2 + '@types/react': 18.0.9 + '@types/react-dom': 18.0.3 + '@typescript-eslint/eslint-plugin': 5.23.0_c63nfttrfhylg3zmgcxfslaw44 + '@typescript-eslint/parser': 5.23.0_hcfsmds2fshutdssjqluwm76uu + '@vitejs/plugin-react': 1.3.2 + '@vitest/ui': 0.12.4 + autoprefixer: 10.4.7_postcss@8.4.13 + c8: 7.11.2 + dotenv: 16.0.1 + eslint: 8.15.0 + eslint-plugin-react: 7.29.4_eslint@8.15.0 + eslint-plugin-react-hooks: 4.5.0_eslint@8.15.0 + jsdom: 19.0.0 + open-cli: 7.0.1 + postcss: 8.4.13 + prettier: 2.6.2 + prettier-plugin-tailwindcss: 0.1.10_prettier@2.6.2 + rollup-plugin-visualizer: 5.6.0 + sass: 1.51.0 + tailwindcss: 3.0.24 + typescript: 4.6.4 + vite: 2.9.9_sass@1.51.0 + vite-plugin-svg-icons: 2.0.1_vite@2.9.9 + vitest: 0.12.4_zxx3atyd22venkkvhz6h27sjqq packages: @@ -177,15 +210,12 @@ packages: resolution: {integrity: sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==} dev: true - /@ampproject/remapping/2.1.2: - resolution: {integrity: sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==} + /@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.4 - dev: true - - /@antfu/utils/0.5.1: - resolution: {integrity: sha512-8Afo0+xvYe1K8Wm4xHTymfTkpzy36aaqDvhXIayUwl+mecMG9Xzl3XjXa6swG6Bk8FBeQ646RyvmsYt6+2Be9g==} + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.13 dev: true /@babel/code-frame/7.16.7: @@ -195,25 +225,25 @@ packages: '@babel/highlight': 7.17.9 dev: true - /@babel/compat-data/7.17.7: - resolution: {integrity: sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==} + /@babel/compat-data/7.17.10: + resolution: {integrity: sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.17.9: - resolution: {integrity: sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==} + /@babel/core/7.17.10: + resolution: {integrity: sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.1.2 + '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.16.7 - '@babel/generator': 7.17.9 - '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.9 + '@babel/generator': 7.17.10 + '@babel/helper-compilation-targets': 7.17.10_@babel+core@7.17.10 '@babel/helper-module-transforms': 7.17.7 '@babel/helpers': 7.17.9 - '@babel/parser': 7.17.9 + '@babel/parser': 7.17.10 '@babel/template': 7.16.7 - '@babel/traverse': 7.17.9 - '@babel/types': 7.17.0 + '@babel/traverse': 7.17.10 + '@babel/types': 7.17.10 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -223,32 +253,32 @@ packages: - supports-color dev: true - /@babel/generator/7.17.9: - resolution: {integrity: sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==} + /@babel/generator/7.17.10: + resolution: {integrity: sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.17.10 + '@jridgewell/gen-mapping': 0.1.1 jsesc: 2.5.2 - source-map: 0.5.7 dev: true /@babel/helper-annotate-as-pure/7.16.7: resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.17.10 dev: true - /@babel/helper-compilation-targets/7.17.7_@babel+core@7.17.9: - resolution: {integrity: sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==} + /@babel/helper-compilation-targets/7.17.10_@babel+core@7.17.10: + resolution: {integrity: sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.17.7 - '@babel/core': 7.17.9 + '@babel/compat-data': 7.17.10 + '@babel/core': 7.17.10 '@babel/helper-validator-option': 7.16.7 - browserslist: 4.20.2 + browserslist: 4.20.3 semver: 6.3.0 dev: true @@ -256,7 +286,7 @@ packages: resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.17.10 dev: true /@babel/helper-function-name/7.17.9: @@ -264,21 +294,21 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.16.7 - '@babel/types': 7.17.0 + '@babel/types': 7.17.10 dev: true /@babel/helper-hoist-variables/7.16.7: resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.17.10 dev: true /@babel/helper-module-imports/7.16.7: resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.17.10 dev: true /@babel/helper-module-transforms/7.17.7: @@ -291,8 +321,8 @@ packages: '@babel/helper-split-export-declaration': 7.16.7 '@babel/helper-validator-identifier': 7.16.7 '@babel/template': 7.16.7 - '@babel/traverse': 7.17.9 - '@babel/types': 7.17.0 + '@babel/traverse': 7.17.10 + '@babel/types': 7.17.10 transitivePeerDependencies: - supports-color dev: true @@ -306,14 +336,14 @@ packages: resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.17.10 dev: true /@babel/helper-split-export-declaration/7.16.7: resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.17.10 dev: true /@babel/helper-validator-identifier/7.16.7: @@ -331,8 +361,8 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.16.7 - '@babel/traverse': 7.17.9 - '@babel/types': 7.17.0 + '@babel/traverse': 7.17.10 + '@babel/types': 7.17.10 transitivePeerDependencies: - supports-color dev: true @@ -346,71 +376,64 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser/7.17.9: - resolution: {integrity: sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==} + /@babel/parser/7.17.10: + resolution: {integrity: sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==} engines: {node: '>=6.0.0'} hasBin: true dev: true - /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.9: + /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.10: resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.9 + '@babel/core': 7.17.10 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-react-jsx-development/7.16.7_@babel+core@7.17.9: + /@babel/plugin-transform-react-jsx-development/7.16.7_@babel+core@7.17.10: resolution: {integrity: sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.9 - '@babel/plugin-transform-react-jsx': 7.17.3_@babel+core@7.17.9 + '@babel/core': 7.17.10 + '@babel/plugin-transform-react-jsx': 7.17.3_@babel+core@7.17.10 dev: true - /@babel/plugin-transform-react-jsx-self/7.16.7_@babel+core@7.17.9: + /@babel/plugin-transform-react-jsx-self/7.16.7_@babel+core@7.17.10: resolution: {integrity: sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.9 + '@babel/core': 7.17.10 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-react-jsx-source/7.16.7_@babel+core@7.17.9: + /@babel/plugin-transform-react-jsx-source/7.16.7_@babel+core@7.17.10: resolution: {integrity: sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.9 + '@babel/core': 7.17.10 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-react-jsx/7.17.3_@babel+core@7.17.9: + /@babel/plugin-transform-react-jsx/7.17.3_@babel+core@7.17.10: resolution: {integrity: sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.9 + '@babel/core': 7.17.10 '@babel/helper-annotate-as-pure': 7.16.7 '@babel/helper-module-imports': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.9 - '@babel/types': 7.17.0 - dev: true - - /@babel/runtime/7.17.8: - resolution: {integrity: sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.9 + '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.10 + '@babel/types': 7.17.10 dev: true /@babel/runtime/7.17.9: @@ -418,37 +441,36 @@ packages: engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.9 - dev: true /@babel/template/7.16.7: resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.16.7 - '@babel/parser': 7.17.9 - '@babel/types': 7.17.0 + '@babel/parser': 7.17.10 + '@babel/types': 7.17.10 dev: true - /@babel/traverse/7.17.9: - resolution: {integrity: sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==} + /@babel/traverse/7.17.10: + resolution: {integrity: sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.16.7 - '@babel/generator': 7.17.9 + '@babel/generator': 7.17.10 '@babel/helper-environment-visitor': 7.16.7 '@babel/helper-function-name': 7.17.9 '@babel/helper-hoist-variables': 7.16.7 '@babel/helper-split-export-declaration': 7.16.7 - '@babel/parser': 7.17.9 - '@babel/types': 7.17.0 + '@babel/parser': 7.17.10 + '@babel/types': 7.17.10 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.17.0: - resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} + /@babel/types/7.17.10: + resolution: {integrity: sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.16.7 @@ -485,6 +507,21 @@ packages: - supports-color dev: true + /@electron/universal/1.2.0: + resolution: {integrity: sha512-eu20BwNsrMPKoe2bZ3/l9c78LclDvxg3PlVXrQf3L50NaUuW5M59gbPytI+V4z7/QMrohUHetQaU0ou+p1UG9Q==} + engines: {node: '>=8.6'} + dependencies: + '@malept/cross-spawn-promise': 1.1.1 + asar: 3.1.0 + debug: 4.3.4 + dir-compare: 2.4.0 + fs-extra: 9.1.0 + minimatch: 3.1.2 + plist: 3.0.5 + transitivePeerDependencies: + - supports-color + dev: true + /@electron/universal/1.2.1: resolution: {integrity: sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==} engines: {node: '>=8.6'} @@ -505,22 +542,22 @@ packages: requiresBuild: true dependencies: '@emotion/memoize': 0.7.4 - dev: true + dev: false optional: true /@emotion/memoize/0.7.4: resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} - dev: true + dev: false optional: true - /@eslint/eslintrc/1.2.2: - resolution: {integrity: sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==} + /@eslint/eslintrc/1.2.3: + resolution: {integrity: sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.3.1 - globals: 13.13.0 + espree: 9.3.2 + globals: 13.14.0 ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -534,14 +571,14 @@ packages: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true - /@hapi/hoek/9.2.1: - resolution: {integrity: sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==} + /@hapi/hoek/9.3.0: + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} dev: true /@hapi/topo/5.1.0: resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} dependencies: - '@hapi/hoek': 9.2.1 + '@hapi/hoek': 9.3.0 dev: true /@humanwhocodes/config-array/0.9.5: @@ -564,27 +601,33 @@ packages: engines: {node: '>=8'} dev: true - /@jridgewell/resolve-uri/3.0.5: - resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==} + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.1 + '@jridgewell/sourcemap-codec': 1.4.13 + dev: true + + /@jridgewell/resolve-uri/3.0.7: + resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec/1.4.11: - resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==} + /@jridgewell/set-array/1.1.1: + resolution: {integrity: sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==} + engines: {node: '>=6.0.0'} dev: true - /@jridgewell/trace-mapping/0.3.4: - resolution: {integrity: sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==} - dependencies: - '@jridgewell/resolve-uri': 3.0.5 - '@jridgewell/sourcemap-codec': 1.4.11 + /@jridgewell/sourcemap-codec/1.4.13: + resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==} dev: true - /@jridgewell/trace-mapping/0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + /@jridgewell/trace-mapping/0.3.13: + resolution: {integrity: sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==} dependencies: - '@jridgewell/resolve-uri': 3.0.5 - '@jridgewell/sourcemap-codec': 1.4.11 + '@jridgewell/resolve-uri': 3.0.7 + '@jridgewell/sourcemap-codec': 1.4.13 dev: true /@malept/cross-spawn-promise/1.1.1: @@ -638,7 +681,7 @@ packages: resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} dependencies: '@gar/promisify': 1.1.3 - semver: 7.3.5 + semver: 7.3.7 dev: true /@npmcli/move-file/1.1.2: @@ -669,7 +712,7 @@ packages: '@sentry/types': 6.19.7 '@sentry/utils': 6.19.7 tslib: 1.14.1 - dev: true + dev: false /@sentry/core/6.19.7: resolution: {integrity: sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==} @@ -680,6 +723,7 @@ packages: '@sentry/types': 6.19.7 '@sentry/utils': 6.19.7 tslib: 1.14.1 + dev: false /@sentry/hub/6.19.7: resolution: {integrity: sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==} @@ -688,6 +732,7 @@ packages: '@sentry/types': 6.19.7 '@sentry/utils': 6.19.7 tslib: 1.14.1 + dev: false /@sentry/minimal/6.19.7: resolution: {integrity: sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==} @@ -696,6 +741,7 @@ packages: '@sentry/hub': 6.19.7 '@sentry/types': 6.19.7 tslib: 1.14.1 + dev: false /@sentry/node/6.19.7: resolution: {integrity: sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==} @@ -726,7 +772,7 @@ packages: hoist-non-react-statics: 3.3.2 react: 18.1.0 tslib: 1.14.1 - dev: true + dev: false /@sentry/tracing/6.19.7: resolution: {integrity: sha512-ol4TupNnv9Zd+bZei7B6Ygnr9N3Gp1PUrNI761QSlHtPC25xXC5ssSD3GMhBgyQrcvpuRcCFHVNNM97tN5cZiA==} @@ -742,6 +788,7 @@ packages: /@sentry/types/6.19.7: resolution: {integrity: sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==} engines: {node: '>=6'} + dev: false /@sentry/utils/6.19.7: resolution: {integrity: sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==} @@ -749,11 +796,12 @@ packages: dependencies: '@sentry/types': 6.19.7 tslib: 1.14.1 + dev: false /@sideway/address/4.1.4: resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} dependencies: - '@hapi/hoek': 9.2.1 + '@hapi/hoek': 9.3.0 dev: true /@sideway/formula/3.0.0: @@ -797,13 +845,13 @@ packages: '@types/aria-query': 4.2.2 aria-query: 5.0.0 chalk: 4.1.2 - dom-accessibility-api: 0.5.13 + dom-accessibility-api: 0.5.14 lz-string: 1.4.4 pretty-format: 27.5.1 dev: true - /@testing-library/react/13.1.1_react-dom@18.1.0+react@18.1.0: - resolution: {integrity: sha512-8mirlAa0OKaUvnqnZF6MdAh2tReYA2KtWVw1PKvaF5EcCZqgK5pl8iF+3uW90JdG5Ua2c2c2E2wtLdaug3dsVg==} + /@testing-library/react/13.2.0_ef5jwxihqo6n7gxfmzogljlgcm: + resolution: {integrity: sha512-Bprbz/SZVONCJy5f7hcihNCv313IJXdYiv0nSJklIs1SQCIHHNlnGNkosSXnGZTmesyGIcBGNppYhXcc11pb7g==} engines: {node: '>=12'} peerDependencies: react: ^18.0.0 @@ -811,7 +859,7 @@ packages: dependencies: '@babel/runtime': 7.17.9 '@testing-library/dom': 8.13.0 - '@types/react-dom': 18.0.1 + '@types/react-dom': 18.0.3 react: 18.1.0 react-dom: 18.1.0_react@18.1.0 dev: true @@ -840,20 +888,20 @@ packages: /@types/better-sqlite3/7.5.0: resolution: {integrity: sha512-G9ZbMjydW2yj1AgiPlUtdgF3a1qNpLJLudc9ynJCeJByS3XFWpmT9LT+VSHrKHFbxb31CvtYwetLTOvG9zdxdg==} dependencies: - '@types/node': 17.0.23 + '@types/node': 17.0.32 dev: true /@types/body-parser/1.19.2: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 17.0.23 + '@types/node': 17.0.32 dev: true /@types/busboy/0.3.2: resolution: {integrity: sha512-iEvdm9Z9KdSs/ozuh1Z7ZsXrOl8F4M/CLMXPZHr3QuJ4d6Bjn+HBMC5EMKpwpAo8oi8iK9GZfFoHaIMrrZgwVw==} dependencies: - '@types/node': 17.0.23 + '@types/node': 17.0.32 dev: true /@types/cacheable-request/6.0.2: @@ -861,7 +909,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.1 '@types/keyv': 3.1.4 - '@types/node': 17.0.23 + '@types/node': 17.0.32 '@types/responselike': 1.0.0 dev: true @@ -878,7 +926,7 @@ packages: /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 17.0.23 + '@types/node': 17.0.32 dev: true /@types/cookie-parser/1.4.3: @@ -903,7 +951,7 @@ packages: /@types/express-serve-static-core/4.17.28: resolution: {integrity: sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==} dependencies: - '@types/node': 17.0.23 + '@types/node': 17.0.32 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 dev: true @@ -920,7 +968,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.23 + '@types/node': 17.0.32 dev: true /@types/glob/7.2.0: @@ -928,7 +976,7 @@ packages: requiresBuild: true dependencies: '@types/minimatch': 3.0.5 - '@types/node': 17.0.25 + '@types/node': 17.0.32 dev: true optional: true @@ -946,12 +994,16 @@ packages: /@types/js-cookie/2.2.7: resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} - dev: true + dev: false /@types/js-cookie/3.0.2: resolution: {integrity: sha512-6+0ekgfusHftJNYpihfkMu8BWdeHs9EOJuGcSofErjstGPfPGEu9yTu4t460lTzzAMl2cM5zngQJqPMHbbnvYA==} dev: true + /@types/json-buffer/3.0.0: + resolution: {integrity: sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==} + dev: true + /@types/json-schema/7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true @@ -959,17 +1011,17 @@ packages: /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 17.0.23 + '@types/node': 17.0.32 dev: true /@types/lodash-es/4.17.6: resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} dependencies: - '@types/lodash': 4.14.181 + '@types/lodash': 4.14.182 dev: true - /@types/lodash/4.14.181: - resolution: {integrity: sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==} + /@types/lodash/4.14.182: + resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==} dev: true /@types/md5/2.3.2: @@ -993,19 +1045,14 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node/16.11.27: - resolution: {integrity: sha512-C1pD3kgLoZ56Uuy5lhfOxie4aZlA3UMGLX9rXteq4WitEZH6Rl80mwactt9QG0w0gLFlN/kLBTFnGXtDVWvWQw==} + /@types/node/16.11.34: + resolution: {integrity: sha512-UrWGDyLAlQ2Z8bNOGWTsqbP9ZcBeTYBVuTRNxXTztBy5KhWUFI3BaeDWoCP/CzV/EVGgO1NTYzv9ZytBI9GAEw==} dev: true - /@types/node/17.0.23: - resolution: {integrity: sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==} + /@types/node/17.0.32: + resolution: {integrity: sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==} dev: true - /@types/node/17.0.25: - resolution: {integrity: sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==} - dev: true - optional: true - /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true @@ -1013,7 +1060,7 @@ packages: /@types/plist/3.0.2: resolution: {integrity: sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==} dependencies: - '@types/node': 17.0.23 + '@types/node': 17.0.32 xmlbuilder: 15.1.1 dev: true optional: true @@ -1025,7 +1072,7 @@ packages: /@types/qrcode/1.4.2: resolution: {integrity: sha512-7uNT9L4WQTNJejHTSTdaJhfBSCN73xtXaHFyBJ8TSwiLhe4PRuTue7Iph0s2nG9R/ifUaSnGhLUOZavlBEqDWQ==} dependencies: - '@types/node': 17.0.23 + '@types/node': 17.0.32 dev: true /@types/qs/6.9.7: @@ -1036,14 +1083,14 @@ packages: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: true - /@types/react-dom/18.0.1: - resolution: {integrity: sha512-jCwTXvHtRLiyVvKm9aEdHXs8rflVOGd5Sl913JZrPshfXjn8NYsTNZOz70bCsA31IR0TOqwi3ad+X4tSCBoMTw==} + /@types/react-dom/18.0.3: + resolution: {integrity: sha512-1RRW9kst+67gveJRYPxGmVy8eVJ05O43hg77G2j5m76/RFJtMbcfAs2viQ2UNsvvDg8F7OfQZx8qQcl6ymygaQ==} dependencies: - '@types/react': 18.0.8 + '@types/react': 18.0.9 dev: true - /@types/react/18.0.8: - resolution: {integrity: sha512-+j2hk9BzCOrrOSJASi5XiOyBbERk9jG5O73Ya4M0env5Ixi6vUNli4qy994AINcEF+1IEHISYFfIT4zwr++LKw==} + /@types/react/18.0.9: + resolution: {integrity: sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 @@ -1053,7 +1100,7 @@ packages: /@types/responselike/1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 17.0.23 + '@types/node': 17.0.32 dev: true /@types/scheduler/0.16.2: @@ -1064,13 +1111,13 @@ packages: resolution: {integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==} dependencies: '@types/mime': 1.3.2 - '@types/node': 17.0.23 + '@types/node': 17.0.32 dev: true /@types/svgo/2.6.3: resolution: {integrity: sha512-5sP0Xgo0dXppY0tbYF6TevB/1+tzFLuu71XXxC/zGvQAn9PW7y+DwtDO81g0ZUPye00K6tPwtsLDOpARa0mFcA==} dependencies: - '@types/node': 17.0.23 + '@types/node': 17.0.32 dev: true /@types/verror/1.10.5: @@ -1088,8 +1135,8 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin/5.21.0_829e74f28e9c9eb05edda582d47d45b8: - resolution: {integrity: sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==} + /@typescript-eslint/eslint-plugin/5.23.0_c63nfttrfhylg3zmgcxfslaw44: + resolution: {integrity: sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -1099,24 +1146,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.21.0_eslint@8.14.0+typescript@4.6.3 - '@typescript-eslint/scope-manager': 5.21.0 - '@typescript-eslint/type-utils': 5.21.0_eslint@8.14.0+typescript@4.6.3 - '@typescript-eslint/utils': 5.21.0_eslint@8.14.0+typescript@4.6.3 + '@typescript-eslint/parser': 5.23.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/scope-manager': 5.23.0 + '@typescript-eslint/type-utils': 5.23.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/utils': 5.23.0_hcfsmds2fshutdssjqluwm76uu debug: 4.3.4 - eslint: 8.14.0 + eslint: 8.15.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.6.3 - typescript: 4.6.3 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.21.0_eslint@8.14.0+typescript@4.6.3: - resolution: {integrity: sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==} + /@typescript-eslint/parser/5.23.0_hcfsmds2fshutdssjqluwm76uu: + resolution: {integrity: sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1125,26 +1172,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.21.0 - '@typescript-eslint/types': 5.21.0 - '@typescript-eslint/typescript-estree': 5.21.0_typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.23.0 + '@typescript-eslint/types': 5.23.0 + '@typescript-eslint/typescript-estree': 5.23.0_typescript@4.6.4 debug: 4.3.4 - eslint: 8.14.0 - typescript: 4.6.3 + eslint: 8.15.0 + typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.21.0: - resolution: {integrity: sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==} + /@typescript-eslint/scope-manager/5.23.0: + resolution: {integrity: sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.21.0 - '@typescript-eslint/visitor-keys': 5.21.0 + '@typescript-eslint/types': 5.23.0 + '@typescript-eslint/visitor-keys': 5.23.0 dev: true - /@typescript-eslint/type-utils/5.21.0_eslint@8.14.0+typescript@4.6.3: - resolution: {integrity: sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==} + /@typescript-eslint/type-utils/5.23.0_hcfsmds2fshutdssjqluwm76uu: + resolution: {integrity: sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -1153,22 +1200,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.21.0_eslint@8.14.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.23.0_hcfsmds2fshutdssjqluwm76uu debug: 4.3.4 - eslint: 8.14.0 - tsutils: 3.21.0_typescript@4.6.3 - typescript: 4.6.3 + eslint: 8.15.0 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.21.0: - resolution: {integrity: sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==} + /@typescript-eslint/types/5.23.0: + resolution: {integrity: sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.21.0_typescript@4.6.3: - resolution: {integrity: sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==} + /@typescript-eslint/typescript-estree/5.23.0_typescript@4.6.4: + resolution: {integrity: sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -1176,41 +1223,41 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.21.0 - '@typescript-eslint/visitor-keys': 5.21.0 + '@typescript-eslint/types': 5.23.0 + '@typescript-eslint/visitor-keys': 5.23.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.6.3 - typescript: 4.6.3 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.21.0_eslint@8.14.0+typescript@4.6.3: - resolution: {integrity: sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==} + /@typescript-eslint/utils/5.23.0_hcfsmds2fshutdssjqluwm76uu: + resolution: {integrity: sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.21.0 - '@typescript-eslint/types': 5.21.0 - '@typescript-eslint/typescript-estree': 5.21.0_typescript@4.6.3 - eslint: 8.14.0 + '@typescript-eslint/scope-manager': 5.23.0 + '@typescript-eslint/types': 5.23.0 + '@typescript-eslint/typescript-estree': 5.23.0_typescript@4.6.4 + eslint: 8.15.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.14.0 + eslint-utils: 3.0.0_eslint@8.15.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.21.0: - resolution: {integrity: sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==} + /@typescript-eslint/visitor-keys/5.23.0: + resolution: {integrity: sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.21.0 + '@typescript-eslint/types': 5.23.0 eslint-visitor-keys: 3.3.0 dev: true @@ -1350,39 +1397,39 @@ packages: '@unblockneteasemusic/rust-napi-win32-x64-msvc': 0.3.0-pre.1 dev: false - /@vitejs/plugin-react/1.3.1: - resolution: {integrity: sha512-qQS8Y2fZCjo5YmDUplEXl3yn+aueiwxB7BaoQ4nWYJYR+Ai8NXPVLlkLobVMs5+DeyFyg9Lrz6zCzdX1opcvyw==} + /@vitejs/plugin-react/1.3.2: + resolution: {integrity: sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA==} engines: {node: '>=12.0.0'} dependencies: - '@babel/core': 7.17.9 - '@babel/plugin-transform-react-jsx': 7.17.3_@babel+core@7.17.9 - '@babel/plugin-transform-react-jsx-development': 7.16.7_@babel+core@7.17.9 - '@babel/plugin-transform-react-jsx-self': 7.16.7_@babel+core@7.17.9 - '@babel/plugin-transform-react-jsx-source': 7.16.7_@babel+core@7.17.9 + '@babel/core': 7.17.10 + '@babel/plugin-transform-react-jsx': 7.17.3_@babel+core@7.17.10 + '@babel/plugin-transform-react-jsx-development': 7.16.7_@babel+core@7.17.10 + '@babel/plugin-transform-react-jsx-self': 7.16.7_@babel+core@7.17.10 + '@babel/plugin-transform-react-jsx-source': 7.16.7_@babel+core@7.17.10 '@rollup/pluginutils': 4.2.1 - react-refresh: 0.12.0 + react-refresh: 0.13.0 resolve: 1.22.0 transitivePeerDependencies: - supports-color dev: true - /@vitest/ui/0.10.0: - resolution: {integrity: sha512-GMxAQV5b14YJg1so9rmaXRASsnCY04acNHKoNkJegHpVCxFQkMavZM14KT1qAxg2xLdFbUd903JDAncpyJDBTw==} + /@vitest/ui/0.12.4: + resolution: {integrity: sha512-ARXOOe3Mo3qhyWV7y6Nbi+jyN5Va4RtQkmoTYqxiEtG6V/3Sahg5BIK91VtmkruQuwXvCUwfDzimKkRwv7KjqQ==} dependencies: sirv: 2.0.2 dev: true /@xobotyi/scrollbar-width/1.9.5: resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} - dev: true + dev: false - /NeteaseCloudMusicApi/4.5.12: - resolution: {integrity: sha512-tlATnWTyOVH6hAxiH2f+nhgFtWulC1xMTz/7VyRjP/axcoMWff2mEa2Bw9kNl+Wb2bUrP/1oC2GXF41oyWwAJQ==} + /NeteaseCloudMusicApi/4.5.14: + resolution: {integrity: sha512-Q33rUNXJY+0MX/asHq29SIPjpnXzFD3f0pBftyHlxa7ESELNKie3IYhDY+lsM+Dg9n0MAPmwcKDXmjry0nRFTg==} engines: {node: '>=12'} hasBin: true dependencies: axios: 0.24.0 - express: 4.18.0 + express: 4.18.1 express-fileupload: 1.3.1 md5: 2.3.0 music-metadata: 7.12.3 @@ -1396,8 +1443,8 @@ packages: - supports-color dev: false - /abab/2.0.5: - resolution: {integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==} + /abab/2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: true /abbrev/1.1.1: @@ -1451,16 +1498,10 @@ packages: hasBin: true dev: true - /acorn/8.7.0: - resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} - engines: {node: '>=0.4.0'} - hasBin: true - /acorn/8.7.1: resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /agent-base/6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} @@ -1583,7 +1624,7 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@develar/schema-utils': 2.6.5 - '@electron/universal': 1.2.1 + '@electron/universal': 1.2.0 '@malept/flatpak-bundler': 0.4.0 7zip-bin: 5.1.1 async-exit-hook: 2.0.1 @@ -1592,11 +1633,11 @@ packages: builder-util-runtime: 9.0.0 chromium-pickle-js: 0.2.0 debug: 4.3.4 - ejs: 3.1.6 + ejs: 3.1.7 electron-osx-sign: 0.6.0 electron-publish: 23.0.2 form-data: 4.0.0 - fs-extra: 10.0.1 + fs-extra: 10.1.0 hosted-git-info: 4.1.0 is-ci: 3.0.1 isbinaryfile: 4.0.10 @@ -1605,7 +1646,7 @@ packages: minimatch: 3.1.2 read-config-file: 6.2.0 sanitize-filename: 1.6.3 - semver: 7.3.6 + semver: 7.3.7 temp-file: 3.4.0 transitivePeerDependencies: - supports-color @@ -1613,6 +1654,11 @@ packages: /aproba/1.2.0: resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} + dev: false + + /aproba/2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + dev: true /are-we-there-yet/1.1.7: resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} @@ -1661,13 +1707,13 @@ packages: resolution: {integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=} dev: false - /array-includes/3.1.4: - resolution: {integrity: sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==} + /array-includes/3.1.5: + resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 get-intrinsic: 1.1.1 is-string: 1.0.7 dev: true @@ -1682,13 +1728,14 @@ packages: engines: {node: '>=0.10.0'} dev: true - /array.prototype.flatmap/1.2.5: - resolution: {integrity: sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==} + /array.prototype.flatmap/1.3.0: + resolution: {integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 + es-shim-unscopables: 1.0.0 dev: true /arrify/1.0.1: @@ -1742,13 +1789,12 @@ packages: engines: {node: '>=0.12.0'} dev: true - /async/0.9.2: - resolution: {integrity: sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=} + /async/3.2.3: + resolution: {integrity: sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==} dev: true /asynckit/0.4.0: resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} - dev: true /at-least-node/1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} @@ -1766,26 +1812,26 @@ packages: engines: {node: '>=10.12.0'} dev: false - /autoprefixer/10.4.5_postcss@8.4.12: - resolution: {integrity: sha512-Fvd8yCoA7lNX/OUllvS+aS1I7WRBclGXsepbvT8ZaPgrH24rgXpZzF0/6Hh3ZEkwg+0AES/Osd196VZmYoEFtw==} + /autoprefixer/10.4.7_postcss@8.4.13: + resolution: {integrity: sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: browserslist: 4.20.3 - caniuse-lite: 1.0.30001332 + caniuse-lite: 1.0.30001339 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.12 + postcss: 8.4.13 postcss-value-parser: 4.2.0 dev: true /axios/0.24.0: resolution: {integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==} dependencies: - follow-redirects: 1.14.9 + follow-redirects: 1.15.0 transitivePeerDependencies: - debug dev: false @@ -1793,7 +1839,7 @@ packages: /axios/0.25.0: resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==} dependencies: - follow-redirects: 1.14.9 + follow-redirects: 1.15.0 transitivePeerDependencies: - debug dev: true @@ -1801,11 +1847,10 @@ packages: /axios/0.27.2: resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} dependencies: - follow-redirects: 1.14.9 + follow-redirects: 1.15.0 form-data: 4.0.0 transitivePeerDependencies: - debug - dev: true /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -1831,12 +1876,13 @@ packages: requiresBuild: true dependencies: bindings: 1.5.0 - prebuild-install: 7.0.1 + prebuild-install: 7.1.0 dev: false /big-integer/1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} engines: {node: '>=0.6'} + dev: false /big.js/5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -1936,6 +1982,12 @@ packages: balanced-match: 1.0.2 concat-map: 0.0.1 + /brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + /braces/2.3.2: resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} engines: {node: '>=0.10.0'} @@ -1970,33 +2022,21 @@ packages: oblivious-set: 1.0.0 rimraf: 3.0.2 unload: 2.2.0 - dev: true + dev: false /browser-process-hrtime/1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true - /browserslist/4.20.2: - resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001323 - electron-to-chromium: 1.4.103 - escalade: 3.1.1 - node-releases: 2.0.2 - picocolors: 1.0.0 - dev: true - /browserslist/4.20.3: resolution: {integrity: sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001332 - electron-to-chromium: 1.4.123 + caniuse-lite: 1.0.30001339 + electron-to-chromium: 1.4.137 escalade: 3.1.1 - node-releases: 2.0.3 + node-releases: 2.0.4 picocolors: 1.0.0 dev: true @@ -2073,9 +2113,9 @@ packages: chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.4 - fs-extra: 10.0.1 + fs-extra: 10.1.0 http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 is-ci: 3.0.1 js-yaml: 4.1.0 source-map-support: 0.5.21 @@ -2179,7 +2219,7 @@ packages: clone-response: 1.0.2 get-stream: 5.2.0 http-cache-semantics: 4.1.0 - keyv: 4.1.1 + keyv: 4.2.7 lowercase-keys: 2.0.0 normalize-url: 6.1.0 responselike: 2.0.0 @@ -2200,7 +2240,7 @@ packages: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 - tslib: 2.3.1 + tslib: 2.4.0 dev: false /camelcase-css/2.0.1: @@ -2221,25 +2261,22 @@ packages: /camelcase/5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} + dev: false /camelcase/6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001323: - resolution: {integrity: sha512-e4BF2RlCVELKx8+RmklSEIVub1TWrmdhvA5kEUueummz1XyySW0DVk+3x9HyhU9MuWTa2BhqLgEuEmUwASAdCA==} - dev: true - - /caniuse-lite/1.0.30001332: - resolution: {integrity: sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==} + /caniuse-lite/1.0.30001339: + resolution: {integrity: sha512-Es8PiVqCe+uXdms0Gu5xP5PF2bxLR7OBp3wUzUnuO7OHzhOfCyg3hdiGWVPVxhiuniOzng+hTc1u3fEQ0TlkSQ==} dev: true /capital-case/1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} dependencies: no-case: 3.0.4 - tslib: 2.3.1 + tslib: 2.4.0 upper-case-first: 2.0.2 dev: false @@ -2309,11 +2346,12 @@ packages: path-case: 3.0.4 sentence-case: 3.0.4 snake-case: 3.0.4 - tslib: 2.3.1 + tslib: 2.4.0 dev: false /charenc/0.0.2: resolution: {integrity: sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=} + dev: false /check-error/1.0.2: resolution: {integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=} @@ -2351,8 +2389,8 @@ packages: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} dev: true - /ci-info/3.3.0: - resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==} + /ci-info/3.3.1: + resolution: {integrity: sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==} dev: true /class-utils/0.3.6: @@ -2367,7 +2405,7 @@ packages: /classnames/2.3.1: resolution: {integrity: sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==} - dev: true + dev: false /clean-stack/2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} @@ -2413,6 +2451,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 + dev: false /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -2476,11 +2515,11 @@ packages: /color.js/1.2.0: resolution: {integrity: sha512-0ajlNgWWOR7EK9N6l2h0YKsZPzMCLQG5bheCoTGpGfhkR8tB5eQNItdua1oFHDTeq9JKgSzQJqo+Gp3V/xW+Lw==} - dev: true + dev: false /colord/2.9.2: resolution: {integrity: sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==} - dev: true + dev: false /colors/1.0.3: resolution: {integrity: sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=} @@ -2492,7 +2531,6 @@ packages: engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 - dev: true /commander/2.9.0: resolution: {integrity: sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=} @@ -2520,6 +2558,14 @@ packages: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} dev: true + /compress-brotli/1.3.8: + resolution: {integrity: sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==} + engines: {node: '>= 12'} + dependencies: + '@types/json-buffer': 3.0.0 + json-buffer: 3.0.1 + dev: true + /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} @@ -2533,21 +2579,6 @@ packages: typedarray: 0.0.6 dev: true - /concurrently/7.1.0: - resolution: {integrity: sha512-Bz0tMlYKZRUDqJlNiF/OImojMB9ruKUz6GCfmhFnSapXgPe+3xzY4byqoKG9tUZ7L2PGEUjfLPOLfIX3labnmw==} - engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} - hasBin: true - dependencies: - chalk: 4.1.2 - date-fns: 2.28.0 - lodash: 4.17.21 - rxjs: 6.6.7 - spawn-command: 0.0.2-1 - supports-color: 8.1.1 - tree-kill: 1.2.2 - yargs: 16.2.0 - dev: true - /conf/10.1.2: resolution: {integrity: sha512-o9Fv1Mv+6A0JpoayQ8JleNp3hhkbOJP/Re/Q+QqxMPHPkABVsRjQGWZn9A5GcqLiTNC6d89p2PB5ZhHVDSMwyg==} engines: {node: '>=12'} @@ -2561,7 +2592,7 @@ packages: json-schema-typed: 7.0.3 onetime: 5.1.2 pkg-up: 3.1.0 - semver: 7.3.5 + semver: 7.3.7 dev: false /config-chain/1.1.13: @@ -2591,7 +2622,7 @@ packages: resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} dependencies: no-case: 3.0.4 - tslib: 2.3.1 + tslib: 2.4.0 upper-case: 2.0.2 dev: false @@ -2648,7 +2679,7 @@ packages: resolution: {integrity: sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==} dependencies: toggle-selection: 1.0.6 - dev: true + dev: false /core-util-is/1.0.2: resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=} @@ -2692,6 +2723,7 @@ packages: /crypt/0.0.2: resolution: {integrity: sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=} + dev: false /crypto-random-string/2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} @@ -2703,7 +2735,7 @@ packages: dependencies: hyphenate-style-name: 1.0.4 isobject: 3.0.1 - dev: true + dev: false /css-select/4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} @@ -2721,7 +2753,6 @@ packages: dependencies: mdn-data: 2.0.14 source-map: 0.6.1 - dev: true /css-what/6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} @@ -2758,30 +2789,24 @@ packages: /csstype/3.0.11: resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} - dev: true /data-uri-to-buffer/3.0.1: resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} engines: {node: '>= 6'} dev: false - /data-urls/3.0.1: - resolution: {integrity: sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw==} + /data-urls/3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} dependencies: - abab: 2.0.5 + abab: 2.0.6 whatwg-mimetype: 3.0.0 - whatwg-url: 10.0.0 + whatwg-url: 11.0.0 dev: true - /date-fns/2.28.0: - resolution: {integrity: sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==} - engines: {node: '>=0.11'} - dev: true - - /dayjs/1.11.1: - resolution: {integrity: sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==} - dev: true + /dayjs/1.11.2: + resolution: {integrity: sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw==} + dev: false /debounce-fn/4.0.0: resolution: {integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==} @@ -2879,13 +2904,6 @@ packages: engines: {node: '>=8'} dev: true - /define-properties/1.1.3: - resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} - engines: {node: '>= 0.4'} - dependencies: - object-keys: 1.1.1 - dev: true - /define-properties/1.1.4: resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} engines: {node: '>= 0.4'} @@ -2893,7 +2911,6 @@ packages: has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: true - optional: true /define-property/0.2.5: resolution: {integrity: sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=} @@ -2948,7 +2965,6 @@ packages: /delayed-stream/1.0.0: resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} engines: {node: '>=0.4.0'} - dev: true /delegates/1.0.0: resolution: {integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=} @@ -2981,7 +2997,6 @@ packages: /detect-node/2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - dev: true /detective/5.2.0: resolution: {integrity: sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==} @@ -3005,6 +3020,7 @@ packages: /dijkstrajs/1.0.2: resolution: {integrity: sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==} + dev: false /dir-compare/2.4.0: resolution: {integrity: sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==} @@ -3033,7 +3049,7 @@ packages: app-builder-lib: 23.0.3 builder-util: 23.0.2 builder-util-runtime: 9.0.0 - fs-extra: 10.0.1 + fs-extra: 10.1.0 iconv-lite: 0.6.3 js-yaml: 4.1.0 optionalDependencies: @@ -3075,21 +3091,21 @@ packages: esutils: 2.0.3 dev: true - /dom-accessibility-api/0.5.13: - resolution: {integrity: sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw==} + /dom-accessibility-api/0.5.14: + resolution: {integrity: sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==} dev: true /dom-serializer/0.2.2: resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} dependencies: - domelementtype: 2.2.0 + domelementtype: 2.3.0 entities: 2.2.0 dev: true - /dom-serializer/1.3.2: - resolution: {integrity: sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==} + /dom-serializer/1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} dependencies: - domelementtype: 2.2.0 + domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 dev: true @@ -3098,8 +3114,8 @@ packages: resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} dev: true - /domelementtype/2.2.0: - resolution: {integrity: sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==} + /domelementtype/2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true /domexception/4.0.0: @@ -3119,7 +3135,7 @@ packages: resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} engines: {node: '>= 4'} dependencies: - domelementtype: 2.2.0 + domelementtype: 2.3.0 dev: true /domutils/1.7.0: @@ -3132,8 +3148,8 @@ packages: /domutils/2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} dependencies: - dom-serializer: 1.3.2 - domelementtype: 2.2.0 + dom-serializer: 1.4.1 + domelementtype: 2.3.0 domhandler: 4.3.1 dev: true @@ -3141,7 +3157,7 @@ packages: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.3.1 + tslib: 2.4.0 dev: false /dot-prop/5.3.0: @@ -3162,8 +3178,8 @@ packages: resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} dev: true - /dotenv/16.0.0: - resolution: {integrity: sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==} + /dotenv/16.0.1: + resolution: {integrity: sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==} engines: {node: '>=12'} dev: true @@ -3186,12 +3202,12 @@ packages: resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} dev: false - /ejs/3.1.6: - resolution: {integrity: sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==} + /ejs/3.1.7: + resolution: {integrity: sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==} engines: {node: '>=0.10.0'} hasBin: true dependencies: - jake: 10.8.4 + jake: 10.8.5 dev: true /electron-builder/23.0.3: @@ -3205,7 +3221,7 @@ packages: builder-util-runtime: 9.0.0 chalk: 4.1.2 dmg-builder: 23.0.3 - fs-extra: 10.0.1 + fs-extra: 10.1.0 is-ci: 3.0.1 lazy-val: 1.0.5 read-config-file: 6.2.0 @@ -3219,13 +3235,13 @@ packages: resolution: {integrity: sha512-t3UczsYugm4OAbqvdImMCImIMVdFzJAHgbwHpkl5jmfu1izVgUcP/mnrPqJIpEeCK1uZGpt+yHgWEN+9EwoYhQ==} dependencies: rimraf: 3.0.2 - semver: 7.3.5 - tslib: 2.3.1 + semver: 7.3.7 + tslib: 2.4.0 unzip-crx-3: 0.2.0 dev: true - /electron-log/4.4.6: - resolution: {integrity: sha512-nirYgRdY+F+vclr8ijdwy2vW03IzFpDHTaKNWu76dEN21Y76+smcES5knS7cgHUUB0qNLOi8vZO36taakjbSXA==} + /electron-log/4.4.7: + resolution: {integrity: sha512-uFZQdgevOp9Fn5lDOrJMU/bmmYxDLZitbIHJM7VXN+cpB59ZnPt1FQL4bOf/Dl2gaIMPYJEfXx38GvJma5iV6A==} dev: false /electron-osx-sign/0.6.0: @@ -3248,7 +3264,7 @@ packages: builder-util: 23.0.2 builder-util-runtime: 9.0.0 chalk: 4.1.2 - fs-extra: 10.0.1 + fs-extra: 10.1.0 lazy-val: 1.0.5 mime: 2.6.0 transitivePeerDependencies: @@ -3264,22 +3280,22 @@ packages: chalk: 4.1.2 debug: 4.3.4 detect-libc: 1.0.3 - fs-extra: 10.0.1 + fs-extra: 10.1.0 got: 11.8.3 lzma-native: 8.0.6 - node-abi: 3.8.0 + node-abi: 3.15.0 node-api-version: 0.1.4 node-gyp: 8.4.1 ora: 5.4.1 - semver: 7.3.5 + semver: 7.3.7 tar: 6.1.11 - yargs: 17.4.0 + yargs: 17.4.1 transitivePeerDependencies: - supports-color dev: true - /electron-releases/3.1004.0: - resolution: {integrity: sha512-Guzii6XeKFJcSTPBri9KM6WhVwltfm0aMXuBotrinrWPeDzUhCi54eGy1oXTiEXmcALd4B40/6qUFSJGvylKeg==} + /electron-releases/3.1017.0: + resolution: {integrity: sha512-+Vb0nlSiFoH43nsoL8Iz6BHQbkvb4A5yKIIPllq7PoXppw0ahKfQnlJ6hVRXd0yE/G8p1jHWq7ITx9xKb0ZZ4w==} dev: true /electron-store/8.0.1: @@ -3289,22 +3305,18 @@ packages: type-fest: 1.4.0 dev: false - /electron-to-chromium/1.4.103: - resolution: {integrity: sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==} + /electron-to-chromium/1.4.137: + resolution: {integrity: sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==} dev: true - /electron-to-chromium/1.4.123: - resolution: {integrity: sha512-0pHGE53WkYoFbsgwYcVKEpWa6jbzlvkohIEA2CUoZ9b5KC+w/zlMiQHvW/4IBcOh7YoEFqRNavgTk02TBoUTUw==} - dev: true - - /electron/18.1.0: - resolution: {integrity: sha512-P55wdHNTRMo7a/agC84ZEZDYEK/pTBcQdlp8lFbHcx3mO4Kr+Im/J5p2uQgiuXtown31HqNh2paL3V0p+E6rpQ==} + /electron/18.2.2: + resolution: {integrity: sha512-o9/9+ntxZ0RoVtllH1e9FDLiCLVg00EO8AJZoCR1cVt7l7AVpRgynZdSczaUtTb9XJpWv7U02R6hoWALl55opQ==} engines: {node: '>= 8.6'} hasBin: true requiresBuild: true dependencies: '@electron/get': 1.14.1 - '@types/node': 16.11.27 + '@types/node': 16.11.34 extract-zip: 1.7.0 transitivePeerDependencies: - supports-color @@ -3320,6 +3332,7 @@ packages: /encode-utf8/1.0.3: resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} + dev: false /encodeurl/1.0.2: resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} @@ -3364,32 +3377,41 @@ packages: resolution: {integrity: sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==} dependencies: stackframe: 1.2.1 - dev: true + dev: false - /es-abstract/1.19.2: - resolution: {integrity: sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==} + /es-abstract/1.20.0: + resolution: {integrity: sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 es-to-primitive: 1.2.1 function-bind: 1.1.1 + function.prototype.name: 1.1.5 get-intrinsic: 1.1.1 get-symbol-description: 1.0.0 has: 1.0.3 + has-property-descriptors: 1.0.0 has-symbols: 1.0.3 internal-slot: 1.0.3 is-callable: 1.2.4 is-negative-zero: 2.0.2 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.1 + is-shared-array-buffer: 1.0.2 is-string: 1.0.7 is-weakref: 1.0.2 object-inspect: 1.12.0 object-keys: 1.1.1 object.assign: 4.1.2 - string.prototype.trimend: 1.0.4 - string.prototype.trimstart: 1.0.4 - unbox-primitive: 1.0.1 + regexp.prototype.flags: 1.4.3 + string.prototype.trimend: 1.0.5 + string.prototype.trimstart: 1.0.5 + unbox-primitive: 1.0.2 + dev: true + + /es-shim-unscopables/1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 dev: true /es-to-primitive/1.2.1: @@ -3663,31 +3685,31 @@ packages: source-map: 0.6.1 dev: true - /eslint-plugin-react-hooks/4.5.0_eslint@8.14.0: + /eslint-plugin-react-hooks/4.5.0_eslint@8.15.0: resolution: {integrity: sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.14.0 + eslint: 8.15.0 dev: true - /eslint-plugin-react/7.29.4_eslint@8.14.0: + /eslint-plugin-react/7.29.4_eslint@8.15.0: resolution: {integrity: sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.4 - array.prototype.flatmap: 1.2.5 + array-includes: 3.1.5 + array.prototype.flatmap: 1.3.0 doctrine: 2.1.0 - eslint: 8.14.0 + eslint: 8.15.0 estraverse: 5.3.0 - jsx-ast-utils: 3.2.2 + jsx-ast-utils: 3.3.0 minimatch: 3.1.2 object.entries: 1.1.5 object.fromentries: 2.0.5 - object.hasown: 1.1.0 + object.hasown: 1.1.1 object.values: 1.1.5 prop-types: 15.8.1 resolve: 2.0.0-next.3 @@ -3711,13 +3733,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.14.0: + /eslint-utils/3.0.0_eslint@8.15.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.14.0 + eslint: 8.15.0 eslint-visitor-keys: 2.1.0 dev: true @@ -3731,12 +3753,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.14.0: - resolution: {integrity: sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==} + /eslint/8.15.0: + resolution: {integrity: sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.2.2 + '@eslint/eslintrc': 1.2.3 '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 @@ -3745,16 +3767,16 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.14.0 + eslint-utils: 3.0.0_eslint@8.15.0 eslint-visitor-keys: 3.3.0 - espree: 9.3.1 + espree: 9.3.2 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 - globals: 13.13.0 + globals: 13.14.0 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -3775,8 +3797,8 @@ packages: - supports-color dev: true - /espree/9.3.1: - resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==} + /espree/9.3.2: + resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.7.1 @@ -3848,8 +3870,8 @@ packages: dependencies: busboy: 0.3.1 - /express/4.18.0: - resolution: {integrity: sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg==} + /express/4.18.1: + resolution: {integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==} engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 @@ -3933,8 +3955,8 @@ packages: /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - /fast-folder-size/1.6.1: - resolution: {integrity: sha512-F3tRpfkAzb7TT2JNKaJUglyuRjRa+jelQD94s9OSqkfEeytLmupCqQiD+H2KoIXGtp4pB5m4zNmv5m2Ktcr+LA==} + /fast-folder-size/1.6.2: + resolution: {integrity: sha512-sruYdpIWmLra7avLYJSbyUJuzHOIG5IFi3x4MoP4l2TRja+jTVEvDL8Bo0k/Yu2uk63Zj20ZgBRw8cCOwMkmyA==} hasBin: true requiresBuild: true dependencies: @@ -3961,11 +3983,11 @@ packages: /fast-shallow-equal/1.0.0: resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} - dev: true + dev: false /fastest-stable-stringify/2.0.2: resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} - dev: true + dev: false /fastq/1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} @@ -4003,10 +4025,10 @@ packages: engines: {node: '>= 6'} dev: false - /filelist/1.0.2: - resolution: {integrity: sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==} + /filelist/1.0.3: + resolution: {integrity: sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==} dependencies: - minimatch: 3.1.2 + minimatch: 5.0.1 dev: true /fill-range/4.0.0: @@ -4052,6 +4074,7 @@ packages: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 + dev: false /find-up/5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} @@ -4073,8 +4096,8 @@ packages: resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} dev: true - /follow-redirects/1.14.9: - resolution: {integrity: sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==} + /follow-redirects/1.15.0: + resolution: {integrity: sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -4102,7 +4125,6 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - dev: true /forwarded/0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} @@ -4120,8 +4142,8 @@ packages: map-cache: 0.2.2 dev: true - /framer-motion/6.3.2_react-dom@18.1.0+react@18.1.0: - resolution: {integrity: sha512-z+W9LyFCrQwn8Q9vTPm9RM+jYdn2WH6NM2/h1qPtsYzDsMvT50quU8RKwG4Iq2pVeojVuY1WADCuNiIln9Y6dQ==} + /framer-motion/6.3.3_ef5jwxihqo6n7gxfmzogljlgcm: + resolution: {integrity: sha512-wo0dCnoq5vn4L8YVOPO9W54dliH78vDaX0Lj+bSPUys6Nt5QaehrS3uaYa0q5eVeikUgtTjz070UhQ94thI5Sw==} peerDependencies: react: '>=16.8 || ^17.0.0 || ^18.0.0' react-dom: '>=16.8 || ^17.0.0 || ^18.0.0' @@ -4135,13 +4157,13 @@ packages: tslib: 2.4.0 optionalDependencies: '@emotion/is-prop-valid': 0.8.8 - dev: true + dev: false /framesync/6.0.1: resolution: {integrity: sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==} dependencies: tslib: 2.4.0 - dev: true + dev: false /fresh/0.5.2: resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=} @@ -4152,11 +4174,11 @@ packages: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} dev: false - /fs-extra/10.0.1: - resolution: {integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==} + /fs-extra/10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} dependencies: - graceful-fs: 4.2.9 + graceful-fs: 4.2.10 jsonfile: 6.1.0 universalify: 2.0.0 dev: true @@ -4201,7 +4223,7 @@ packages: resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} engines: {node: '>=0.6'} dependencies: - graceful-fs: 4.2.9 + graceful-fs: 4.2.10 inherits: 2.0.4 mkdirp: 0.5.6 rimraf: 2.7.1 @@ -4218,10 +4240,24 @@ packages: /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 + functions-have-names: 1.2.3 + dev: true + /functional-red-black-tree/1.0.1: resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} dev: true + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + /gauge/2.7.4: resolution: {integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=} dependencies: @@ -4239,7 +4275,7 @@ packages: resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: - aproba: 1.2.0 + aproba: 2.0.0 color-support: 1.1.3 console-control-strings: 1.1.0 has-unicode: 2.0.1 @@ -4381,15 +4417,15 @@ packages: engines: {node: '>=4'} dev: true - /globals/13.13.0: - resolution: {integrity: sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==} + /globals/13.14.0: + resolution: {integrity: sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - /globalthis/1.0.2: - resolution: {integrity: sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==} + /globalthis/1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} dependencies: define-properties: 1.1.4 @@ -4408,11 +4444,11 @@ packages: slash: 3.0.0 dev: true - /goober/2.1.8: - resolution: {integrity: sha512-S0C85gCzcfFCMSdjD/CxyQMt1rbf2qEg6hmDzxk2FfD7+7Ogk55m8ZFUMtqNaZM4VVX/qaU9AzSORG+Gf4ZpAQ==} + /goober/2.1.9: + resolution: {integrity: sha512-PAtnJbrWtHbfpJUIveG5PJIB6Mc9Kd0gimu9wZwPyA+wQUSeOeA4x4Ug16lyaaUUKZ/G6QEH1xunKOuXP1F4Vw==} peerDependencies: csstype: ^3.0.10 - dev: true + dev: false /got/11.8.3: resolution: {integrity: sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==} @@ -4451,9 +4487,6 @@ packages: /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - /graceful-fs/4.2.9: - resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} - /graceful-readlink/1.0.1: resolution: {integrity: sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=} dev: true @@ -4470,8 +4503,8 @@ packages: ansi-regex: 2.1.1 dev: true - /has-bigints/1.0.1: - resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true /has-flag/1.0.0: @@ -4494,7 +4527,6 @@ packages: dependencies: get-intrinsic: 1.1.1 dev: true - optional: true /has-symbols/1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} @@ -4561,24 +4593,24 @@ packages: resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} dependencies: capital-case: 1.0.4 - tslib: 2.3.1 + tslib: 2.4.0 dev: false /hey-listen/1.0.8: resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} - dev: true + dev: false /history/5.3.0: resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} dependencies: - '@babel/runtime': 7.17.8 - dev: true + '@babel/runtime': 7.17.9 + dev: false /hoist-non-react-statics/3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} dependencies: react-is: 16.13.1 - dev: true + dev: false /hosted-git-info/4.1.0: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} @@ -4589,7 +4621,7 @@ packages: /howler/2.2.3: resolution: {integrity: sha512-QM0FFkw0LRX1PR8pNzJVAY25JhIWvbKMBFM4gqk+QdV+kPXOhleWGCB6AiAF/goGjIHK2e/nIElplvjQwhr0jg==} - dev: true + dev: false /html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} @@ -4657,16 +4689,6 @@ packages: resolve-alpn: 1.2.1 dev: true - /https-proxy-agent/5.0.0: - resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /https-proxy-agent/5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} @@ -4675,7 +4697,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: false /humanize-ms/1.2.1: resolution: {integrity: sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=} @@ -4685,7 +4706,7 @@ packages: /hyphenate-style-name/1.0.4: resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} - dev: true + dev: false /iconv-corefoundation/1.1.7: resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} @@ -4786,7 +4807,7 @@ packages: resolution: {integrity: sha512-AsqazZ8KcRzJ9YPN1wMH2aNM7lkWQ8tSPrW5uDk1ziYwiAPWSZnUsC7lfZq+BDqLqz0B4Pho5wscWcJzVvRzDQ==} dependencies: css-in-js-utils: 2.0.1 - dev: true + dev: false /internal-slot/1.0.3: resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} @@ -4797,8 +4818,8 @@ packages: side-channel: 1.0.4 dev: true - /ip/1.1.5: - resolution: {integrity: sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=} + /ip/1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} /ipaddr.js/1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} @@ -4826,7 +4847,7 @@ packages: /is-bigint/1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: - has-bigints: 1.0.1 + has-bigints: 1.0.2 dev: true /is-binary-path/2.1.0: @@ -4863,11 +4884,11 @@ packages: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true dependencies: - ci-info: 3.3.0 + ci-info: 3.3.1 dev: true - /is-core-module/2.8.1: - resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} + /is-core-module/2.9.0: + resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} dependencies: has: 1.0.3 dev: true @@ -4984,8 +5005,8 @@ packages: engines: {node: '>=10'} dev: true - /is-number-object/1.0.6: - resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} + /is-number-object/1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 @@ -5041,8 +5062,10 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-shared-array-buffer/1.0.1: - resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 dev: true /is-stream/2.0.1: @@ -5133,7 +5156,6 @@ packages: /isobject/3.0.1: resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=} engines: {node: '>=0.10.0'} - dev: true /istanbul-lib-coverage/3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} @@ -5157,21 +5179,21 @@ packages: istanbul-lib-report: 3.0.0 dev: true - /jake/10.8.4: - resolution: {integrity: sha512-MtWeTkl1qGsWUtbl/Jsca/8xSoK3x0UmS82sNbjqxxG/de/M/3b1DntdjHgPMC50enlTNwXOCRqPXLLt5cCfZA==} + /jake/10.8.5: + resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==} engines: {node: '>=10'} hasBin: true dependencies: - async: 0.9.2 + async: 3.2.3 chalk: 4.1.2 - filelist: 1.0.2 + filelist: 1.0.3 minimatch: 3.1.2 dev: true /joi/17.6.0: resolution: {integrity: sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==} dependencies: - '@hapi/hoek': 9.2.1 + '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 '@sideway/address': 4.1.4 '@sideway/formula': 3.0.0 @@ -5184,20 +5206,19 @@ packages: /js-cookie/2.2.1: resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} - dev: true + dev: false /js-cookie/3.0.1: resolution: {integrity: sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==} engines: {node: '>=12'} - dev: true + dev: false /js-sha3/0.8.0: resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} - dev: true + dev: false /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true /js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -5215,19 +5236,19 @@ packages: canvas: optional: true dependencies: - abab: 2.0.5 - acorn: 8.7.0 + abab: 2.0.6 + acorn: 8.7.1 acorn-globals: 6.0.0 cssom: 0.5.0 cssstyle: 2.3.0 - data-urls: 3.0.1 + data-urls: 3.0.2 decimal.js: 10.3.1 domexception: 4.0.0 escodegen: 2.0.0 form-data: 4.0.0 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.0 parse5: 6.0.1 @@ -5240,7 +5261,7 @@ packages: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 10.0.0 - ws: 8.5.0 + ws: 8.6.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -5313,16 +5334,16 @@ packages: graceful-fs: 4.2.10 dev: true - /jsx-ast-utils/3.2.2: - resolution: {integrity: sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==} + /jsx-ast-utils/3.3.0: + resolution: {integrity: sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==} engines: {node: '>=4.0'} dependencies: - array-includes: 3.1.4 + array-includes: 3.1.5 object.assign: 4.1.2 dev: true - /jszip/3.8.0: - resolution: {integrity: sha512-cnpQrXvFSLdsR9KR5/x7zdf6c3m8IhZfZzSblFEHSqBaVwD2nvJ4CuCKLyvKvwBgZm08CgfSoiTBQLm5WW9hGw==} + /jszip/3.9.1: + resolution: {integrity: sha512-H9A60xPqJ1CuC4Ka6qxzXZeU8aNmgOeP5IFqwJbQQwtu2EUYxota3LdsiZWplF7Wgd9tkAd0mdu36nceSaPuYw==} dependencies: lie: 3.3.0 pako: 1.0.11 @@ -5336,9 +5357,10 @@ packages: json-buffer: 3.0.0 dev: true - /keyv/4.1.1: - resolution: {integrity: sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==} + /keyv/4.2.7: + resolution: {integrity: sha512-HeOstD8SXvtWoQhMMBCelcUuZsiV7T7MwsADtOXT0KuwYP9nCxrSoMDeLXNDTLN3VFSuRp38JzoGbbTboq3QQw==} dependencies: + compress-brotli: 1.3.8 json-buffer: 3.0.1 dev: true @@ -5438,6 +5460,7 @@ packages: engines: {node: '>=8'} dependencies: p-locate: 4.1.0 + dev: false /locate-path/6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} @@ -5448,7 +5471,7 @@ packages: /lodash-es/4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: true + dev: false /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -5479,7 +5502,6 @@ packages: hasBin: true dependencies: js-tokens: 4.0.0 - dev: true /loupe/2.3.4: resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} @@ -5490,7 +5512,7 @@ packages: /lower-case/2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.3.1 + tslib: 2.4.0 dev: false /lowercase-keys/1.0.1: @@ -5509,11 +5531,6 @@ packages: dependencies: yallist: 4.0.0 - /lru-cache/7.8.1: - resolution: {integrity: sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg==} - engines: {node: '>=12'} - dev: true - /lru_map/0.3.3: resolution: {integrity: sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=} dev: false @@ -5534,13 +5551,6 @@ packages: readable-stream: 3.6.0 dev: true - /magic-string/0.26.1: - resolution: {integrity: sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==} - engines: {node: '>=12'} - dependencies: - sourcemap-codec: 1.4.8 - dev: true - /make-dir/3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -5556,7 +5566,7 @@ packages: cacache: 15.3.0 http-cache-semantics: 4.1.0 http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 is-lambda: 1.0.1 lru-cache: 6.0.0 minipass: 3.1.6 @@ -5566,7 +5576,7 @@ packages: minipass-pipeline: 1.2.4 negotiator: 0.6.3 promise-retry: 2.0.1 - socks-proxy-agent: 6.1.1 + socks-proxy-agent: 6.2.0 ssri: 8.0.1 transitivePeerDependencies: - supports-color @@ -5599,7 +5609,7 @@ packages: dependencies: '@babel/runtime': 7.17.9 remove-accents: 0.4.2 - dev: true + dev: false /matcher/3.0.0: resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} @@ -5615,10 +5625,10 @@ packages: charenc: 0.0.2 crypt: 0.0.2 is-buffer: 1.1.6 + dev: false /mdn-data/2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - dev: true /media-typer/0.3.0: resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} @@ -5697,7 +5707,7 @@ packages: /microseconds/0.2.0: resolution: {integrity: sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==} - dev: true + dev: false /mime-db/1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} @@ -5755,6 +5765,13 @@ packages: dependencies: brace-expansion: 1.1.11 + /minimatch/5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist-options/4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -5873,7 +5890,7 @@ packages: transitivePeerDependencies: - supports-color - /nano-css/5.3.4_react-dom@18.1.0+react@18.1.0: + /nano-css/5.3.4_ef5jwxihqo6n7gxfmzogljlgcm: resolution: {integrity: sha512-wfcviJB6NOxDIDfr7RFn/GlaN7I/Bhe4d39ZRCJ3xvZX60LVe2qZ+rDqM49nm4YT81gAjzS+ZklhKP/Gnfnubg==} peerDependencies: react: '*' @@ -5888,17 +5905,17 @@ packages: rtl-css-js: 1.15.0 sourcemap-codec: 1.4.8 stacktrace-js: 2.0.2 - stylis: 4.0.13 - dev: true + stylis: 4.1.1 + dev: false /nano-time/1.0.0: resolution: {integrity: sha1-sFVPaa2J4i0JB/ehKwmTpdlhN+8=} dependencies: big-integer: 1.6.51 - dev: true + dev: false - /nanoid/3.3.2: - resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==} + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true @@ -5941,14 +5958,14 @@ packages: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.3.1 + tslib: 2.4.0 dev: false - /node-abi/3.8.0: - resolution: {integrity: sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==} + /node-abi/3.15.0: + resolution: {integrity: sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==} engines: {node: '>=10'} dependencies: - semver: 7.3.5 + semver: 7.3.7 /node-addon-api/1.7.2: resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} @@ -5962,7 +5979,7 @@ packages: /node-api-version/0.1.4: resolution: {integrity: sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g==} dependencies: - semver: 7.3.5 + semver: 7.3.7 dev: true /node-gyp-build/4.4.0: @@ -5977,24 +5994,20 @@ packages: dependencies: env-paths: 2.2.1 glob: 7.2.0 - graceful-fs: 4.2.9 + graceful-fs: 4.2.10 make-fetch-happen: 9.1.0 nopt: 5.0.0 - npmlog: 6.0.1 + npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.3.5 + semver: 7.3.7 tar: 6.1.11 which: 2.0.2 transitivePeerDependencies: - supports-color dev: true - /node-releases/2.0.2: - resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==} - dev: true - - /node-releases/2.0.3: - resolution: {integrity: sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==} + /node-releases/2.0.4: + resolution: {integrity: sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==} dev: true /nopt/5.0.0: @@ -6010,7 +6023,7 @@ packages: engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.8.1 + is-core-module: 2.9.0 semver: 7.3.7 validate-npm-package-license: 3.0.4 dev: true @@ -6053,9 +6066,9 @@ packages: set-blocking: 2.0.0 dev: false - /npmlog/6.0.1: - resolution: {integrity: sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16} + /npmlog/6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: are-we-there-yet: 3.0.0 console-control-strings: 1.1.0 @@ -6116,7 +6129,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 has-symbols: 1.0.3 object-keys: 1.1.1 dev: true @@ -6126,8 +6139,8 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 dev: true /object.fromentries/2.0.5: @@ -6135,15 +6148,15 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 dev: true - /object.hasown/1.1.0: - resolution: {integrity: sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==} + /object.hasown/1.1.1: + resolution: {integrity: sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==} dependencies: - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 dev: true /object.pick/1.3.0: @@ -6158,13 +6171,13 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 dev: true /oblivious-set/1.0.0: resolution: {integrity: sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==} - dev: true + dev: false /on-finished/2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} @@ -6273,6 +6286,7 @@ packages: engines: {node: '>=6'} dependencies: p-try: 2.2.0 + dev: false /p-limit/3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} @@ -6293,6 +6307,7 @@ packages: engines: {node: '>=8'} dependencies: p-limit: 2.3.0 + dev: false /p-locate/5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} @@ -6311,6 +6326,7 @@ packages: /p-try/2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + dev: false /pac-proxy-agent/5.0.0: resolution: {integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==} @@ -6334,7 +6350,7 @@ packages: engines: {node: '>= 8'} dependencies: degenerator: 3.0.2 - ip: 1.1.5 + ip: 1.1.8 netmask: 2.0.2 dev: false @@ -6356,7 +6372,7 @@ packages: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 - tslib: 2.3.1 + tslib: 2.4.0 dev: false /parent-module/1.0.1: @@ -6389,7 +6405,7 @@ packages: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 - tslib: 2.3.1 + tslib: 2.4.0 dev: false /pascalcase/0.1.1: @@ -6401,7 +6417,7 @@ packages: resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} dependencies: dot-case: 3.0.4 - tslib: 2.3.1 + tslib: 2.4.0 dev: false /path-exists/3.0.0: @@ -6484,6 +6500,7 @@ packages: /pngjs/5.0.0: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} + dev: false /popmotion/11.0.3: resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==} @@ -6492,24 +6509,24 @@ packages: hey-listen: 1.0.8 style-value-types: 5.0.0 tslib: 2.4.0 - dev: true + dev: false /posix-character-classes/0.1.1: resolution: {integrity: sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=} engines: {node: '>=0.10.0'} dev: true - /postcss-js/4.0.0_postcss@8.4.12: + /postcss-js/4.0.0_postcss@8.4.13: resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.3.3 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.12 + postcss: 8.4.13 dev: true - /postcss-load-config/3.1.4_postcss@8.4.12: + /postcss-load-config/3.1.4_postcss@8.4.13: resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -6522,17 +6539,17 @@ packages: optional: true dependencies: lilconfig: 2.0.5 - postcss: 8.4.12 + postcss: 8.4.13 yaml: 1.10.2 dev: true - /postcss-nested/5.0.6_postcss@8.4.12: + /postcss-nested/5.0.6_postcss@8.4.13: resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.12 + postcss: 8.4.13 postcss-selector-parser: 6.0.10 dev: true @@ -6566,11 +6583,11 @@ packages: supports-color: 3.2.3 dev: true - /postcss/8.4.12: - resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==} + /postcss/8.4.13: + resolution: {integrity: sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.2 + nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 dev: true @@ -6610,8 +6627,8 @@ packages: posthtml-render: 1.4.0 dev: true - /prebuild-install/7.0.1: - resolution: {integrity: sha512-QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg==} + /prebuild-install/7.1.0: + resolution: {integrity: sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -6621,7 +6638,7 @@ packages: minimist: 1.2.6 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.8.0 + node-abi: 3.15.0 npmlog: 4.1.2 pump: 3.0.0 rc: 1.2.8 @@ -6711,7 +6728,7 @@ packages: /proxy-compare/2.1.0: resolution: {integrity: sha512-wapJ3h/w8fRSyPEG0y2WMV+tf9xwvj3nxM6aHVuPEOwKs/t5xLSKZb44ubNTiqq2T6lmEMHEWGMTaU2L6ddaFA==} - dev: true + dev: false /psl/1.8.0: resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} @@ -6743,6 +6760,7 @@ packages: encode-utf8: 1.0.3 pngjs: 5.0.0 yargs: 15.4.1 + dev: false /qs/6.10.3: resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} @@ -6800,36 +6818,35 @@ packages: loose-envify: 1.4.0 react: 18.1.0 scheduler: 0.22.0 - dev: true + dev: false /react-ga4/1.4.1: resolution: {integrity: sha512-ioBMEIxd4ePw4YtaloTUgqhQGqz5ebDdC4slEpLgy2sLx1LuZBC9iYCwDymTXzcntw6K1dHX183ulP32nNdG7w==} - dev: true + dev: false - /react-hot-toast/2.2.0_react-dom@18.1.0+react@18.1.0: + /react-hot-toast/2.2.0_ef5jwxihqo6n7gxfmzogljlgcm: resolution: {integrity: sha512-248rXw13uhf/6TNDVzagX+y7R8J183rp7MwUMNkcrBRyHj/jWOggfXTGlM8zAOuh701WyVW+eUaWG2LeSufX9g==} engines: {node: '>=10'} peerDependencies: react: '>=16' react-dom: '>=16' dependencies: - goober: 2.1.8 + goober: 2.1.9 react: 18.1.0 react-dom: 18.1.0_react@18.1.0 transitivePeerDependencies: - csstype - dev: true + dev: false /react-is/16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - dev: true /react-is/17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} dev: true - /react-query/3.38.0_react-dom@18.1.0+react@18.1.0: - resolution: {integrity: sha512-VRbCTRrDfC5FsB70+JfZuxFRv9SAvkZ1h36MsN8+QaDN+NWB6s1vJndqpoLQnJqN0COTG2zsInMq0KFdYze6TA==} + /react-query/3.39.0_ef5jwxihqo6n7gxfmzogljlgcm: + resolution: {integrity: sha512-Od0IkSuS79WJOhzWBx/ys0x13+7wFqgnn64vBqqAAnZ9whocVhl/y1padD5uuZ6EIkXbFbInax0qvY7zGM0thA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: '*' @@ -6845,14 +6862,14 @@ packages: match-sorter: 6.3.1 react: 18.1.0 react-dom: 18.1.0_react@18.1.0 - dev: true + dev: false - /react-refresh/0.12.0: - resolution: {integrity: sha512-suLIhrU2IHKL5JEKR/fAwJv7bbeq4kJ+pJopf77jHwuR+HmJS/HbrPIGsTBUVfw7tXPOmYv7UJ7PCaN49e8x4A==} + /react-refresh/0.13.0: + resolution: {integrity: sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==} engines: {node: '>=0.10.0'} dev: true - /react-router-dom/6.3.0_react-dom@18.1.0+react@18.1.0: + /react-router-dom/6.3.0_ef5jwxihqo6n7gxfmzogljlgcm: resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==} peerDependencies: react: '>=16.8' @@ -6862,7 +6879,7 @@ packages: react: 18.1.0 react-dom: 18.1.0_react@18.1.0 react-router: 6.3.0_react@18.1.0 - dev: true + dev: false /react-router/6.3.0_react@18.1.0: resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==} @@ -6871,19 +6888,19 @@ packages: dependencies: history: 5.3.0 react: 18.1.0 - dev: true + dev: false - /react-universal-interface/0.6.2_react@18.1.0+tslib@2.3.1: + /react-universal-interface/0.6.2_react@18.1.0+tslib@2.4.0: resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} peerDependencies: react: '*' tslib: '*' dependencies: react: 18.1.0 - tslib: 2.3.1 - dev: true + tslib: 2.4.0 + dev: false - /react-use/17.3.2_react-dom@18.1.0+react@18.1.0: + /react-use/17.3.2_ef5jwxihqo6n7gxfmzogljlgcm: resolution: {integrity: sha512-bj7OD0/1wL03KyWmzFXAFe425zziuTf7q8olwCYBfOeFHY1qfO1FAMjROQLsLZYwG4Rx63xAfb7XAbBrJsZmEw==} peerDependencies: react: ^16.8.0 || ^17.0.0 @@ -6895,24 +6912,24 @@ packages: fast-deep-equal: 3.1.3 fast-shallow-equal: 1.0.0 js-cookie: 2.2.1 - nano-css: 5.3.4_react-dom@18.1.0+react@18.1.0 + nano-css: 5.3.4_ef5jwxihqo6n7gxfmzogljlgcm react: 18.1.0 react-dom: 18.1.0_react@18.1.0 - react-universal-interface: 0.6.2_react@18.1.0+tslib@2.3.1 + react-universal-interface: 0.6.2_react@18.1.0+tslib@2.4.0 resize-observer-polyfill: 1.5.1 screenfull: 5.2.0 set-harmonic-interval: 1.0.1 throttle-debounce: 3.0.1 ts-easing: 0.2.0 - tslib: 2.3.1 - dev: true + tslib: 2.4.0 + dev: false /react/18.1.0: resolution: {integrity: sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==} engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 - dev: true + dev: false /read-config-file/6.2.0: resolution: {integrity: sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==} @@ -6995,7 +7012,6 @@ packages: /regenerator-runtime/0.13.9: resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} - dev: true /regex-not/1.0.2: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} @@ -7005,12 +7021,13 @@ packages: safe-regex: 1.1.0 dev: true - /regexp.prototype.flags/1.4.1: - resolution: {integrity: sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==} + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 + functions-have-names: 1.2.3 dev: true /regexpp/3.2.0: @@ -7034,7 +7051,7 @@ packages: /remove-accents/0.4.2: resolution: {integrity: sha1-CkPTqq4egNuRngeuJUsoXZ4ce7U=} - dev: true + dev: false /repeat-element/1.1.4: resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} @@ -7057,10 +7074,11 @@ packages: /require-main-filename/2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: false /resize-observer-polyfill/1.5.1: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - dev: true + dev: false /resolve-alpn/1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} @@ -7080,7 +7098,7 @@ packages: resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} hasBin: true dependencies: - is-core-module: 2.8.1 + is-core-module: 2.9.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -7088,7 +7106,7 @@ packages: /resolve/2.0.0-next.3: resolution: {integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==} dependencies: - is-core-module: 2.8.1 + is-core-module: 2.9.0 path-parse: 1.0.7 dev: true @@ -7147,7 +7165,6 @@ packages: hasBin: true dependencies: glob: 7.2.0 - dev: true /roarr/2.15.4: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} @@ -7155,7 +7172,7 @@ packages: dependencies: boolean: 3.2.0 detect-node: 2.1.0 - globalthis: 1.0.2 + globalthis: 1.0.3 json-stringify-safe: 5.0.1 semver-compare: 1.0.0 sprintf-js: 1.1.2 @@ -7169,14 +7186,14 @@ packages: peerDependencies: rollup: ^2.0.0 dependencies: - nanoid: 3.3.2 + nanoid: 3.3.4 open: 8.4.0 source-map: 0.7.3 - yargs: 17.4.0 + yargs: 17.4.1 dev: true - /rollup/2.70.2: - resolution: {integrity: sha512-EitogNZnfku65I1DD5Mxe8JYRUCy0hkK5X84IlDtUs+O6JRMpRciXTzyCUuX11b5L5pvjH+OmFXiQ3XjabcXgg==} + /rollup/2.72.1: + resolution: {integrity: sha512-NTc5UGy/NWFGpSqF1lFY8z9Adri6uhyMLI6LvPAXdBKoPRFhIIiBUpt+Qg2awixqO3xvzSijjhnb4+QEZwJmxA==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -7186,8 +7203,8 @@ packages: /rtl-css-js/1.15.0: resolution: {integrity: sha512-99Cu4wNNIhrI10xxUaABHsdDqzalrSRTie4GeCmbGVuehm4oj+fIy8fTzB+16pmKe8Bv9rl+hxIBez6KxExTew==} dependencies: - '@babel/runtime': 7.17.8 - dev: true + '@babel/runtime': 7.17.9 + dev: false /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -7195,13 +7212,6 @@ packages: queue-microtask: 1.2.3 dev: true - /rxjs/6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - dependencies: - tslib: 1.14.1 - dev: true - /rxjs/7.5.5: resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==} dependencies: @@ -7258,12 +7268,12 @@ packages: resolution: {integrity: sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==} dependencies: loose-envify: 1.4.0 - dev: true + dev: false /screenfull/5.2.0: resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} engines: {node: '>=0.10.0'} - dev: true + dev: false /semver-compare/1.0.0: resolution: {integrity: sha1-De4hahyUGrN+nvsXiPavxf9VN/w=} @@ -7282,28 +7292,12 @@ packages: hasBin: true dev: true - /semver/7.3.5: - resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - - /semver/7.3.6: - resolution: {integrity: sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==} - engines: {node: ^10.0.0 || ^12.0.0 || ^14.0.0 || >=16.0.0} - hasBin: true - dependencies: - lru-cache: 7.8.1 - dev: true - /semver/7.3.7: resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 - dev: true /send/0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} @@ -7328,7 +7322,7 @@ packages: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} dependencies: no-case: 3.0.4 - tslib: 2.3.1 + tslib: 2.4.0 upper-case-first: 2.0.2 dev: false @@ -7356,7 +7350,7 @@ packages: /set-harmonic-interval/1.0.1: resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} engines: {node: '>=6.9'} - dev: true + dev: false /set-immediate-shim/1.0.1: resolution: {integrity: sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=} @@ -7447,7 +7441,7 @@ packages: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 - tslib: 2.3.1 + tslib: 2.4.0 dev: false /snapdragon-node/2.1.1: @@ -7491,8 +7485,8 @@ packages: - supports-color dev: false - /socks-proxy-agent/6.1.1: - resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==} + /socks-proxy-agent/6.2.0: + resolution: {integrity: sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==} engines: {node: '>= 10'} dependencies: agent-base: 6.0.2 @@ -7506,7 +7500,7 @@ packages: resolution: {integrity: sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==} engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} dependencies: - ip: 1.1.5 + ip: 1.1.8 smart-buffer: 4.2.0 /source-map-js/1.0.2: @@ -7540,7 +7534,7 @@ packages: /source-map/0.5.6: resolution: {integrity: sha1-dc449SvwczxafwwRjYEzSiu19BI=} engines: {node: '>=0.10.0'} - dev: true + dev: false /source-map/0.5.7: resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} @@ -7558,11 +7552,7 @@ packages: /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - dev: true - - /spawn-command/0.0.2-1: - resolution: {integrity: sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=} - dev: true + dev: false /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} @@ -7613,18 +7603,18 @@ packages: resolution: {integrity: sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q==} dependencies: stackframe: 1.2.1 - dev: true + dev: false /stackframe/1.2.1: resolution: {integrity: sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==} - dev: true + dev: false /stacktrace-gps/3.0.4: resolution: {integrity: sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg==} dependencies: source-map: 0.5.6 stackframe: 1.2.1 - dev: true + dev: false /stacktrace-js/2.0.2: resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} @@ -7632,7 +7622,7 @@ packages: error-stack-parser: 2.0.7 stack-generator: 2.0.5 stacktrace-gps: 3.0.4 - dev: true + dev: false /stat-mode/1.0.0: resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} @@ -7682,27 +7672,29 @@ packages: resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 get-intrinsic: 1.1.1 has-symbols: 1.0.3 internal-slot: 1.0.3 - regexp.prototype.flags: 1.4.1 + regexp.prototype.flags: 1.4.3 side-channel: 1.0.4 dev: true - /string.prototype.trimend/1.0.4: - resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} + /string.prototype.trimend/1.0.5: + resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 + es-abstract: 1.20.0 dev: true - /string.prototype.trimstart/1.0.4: - resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} + /string.prototype.trimstart/1.0.5: + resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 + es-abstract: 1.20.0 dev: true /string_decoder/0.10.31: @@ -7766,11 +7758,11 @@ packages: dependencies: hey-listen: 1.0.8 tslib: 2.4.0 - dev: true + dev: false - /stylis/4.0.13: - resolution: {integrity: sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==} - dev: true + /stylis/4.1.1: + resolution: {integrity: sha512-lVrM/bNdhVX2OgBFNa2YJ9Lxj7kPzylieHd3TNjuGE0Re9JB7joL5VUKOVH1kdNNJTgGPpT8hmwIAPLaSyEVFQ==} + dev: false /sumchecker/3.0.1: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} @@ -7807,13 +7799,6 @@ packages: has-flag: 4.0.0 dev: true - /supports-color/8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - dev: true - /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -7873,10 +7858,10 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.12 - postcss-js: 4.0.0_postcss@8.4.12 - postcss-load-config: 3.1.4_postcss@8.4.12 - postcss-nested: 5.0.6_postcss@8.4.12 + postcss: 8.4.13 + postcss-js: 4.0.0_postcss@8.4.13 + postcss-load-config: 3.1.4_postcss@8.4.13 + postcss-nested: 5.0.6_postcss@8.4.13 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 quick-lru: 5.1.1 @@ -7926,7 +7911,7 @@ packages: resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} dependencies: async-exit-hook: 2.0.1 - fs-extra: 10.0.1 + fs-extra: 10.1.0 dev: true /tempy/1.0.1: @@ -7956,7 +7941,7 @@ packages: /throttle-debounce/3.0.1: resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} engines: {node: '>=10'} - dev: true + dev: false /tinypool/0.1.3: resolution: {integrity: sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==} @@ -8025,7 +8010,7 @@ packages: /toggle-selection/1.0.6: resolution: {integrity: sha1-bkWxJj8gF/oKzH2J14sVuL932jI=} - dev: true + dev: false /toidentifier/1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} @@ -8068,11 +8053,6 @@ packages: resolution: {integrity: sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=} dev: true - /tree-kill/1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - dev: true - /trim-newlines/4.0.2: resolution: {integrity: sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==} engines: {node: '>=12'} @@ -8086,25 +8066,22 @@ packages: /ts-easing/0.2.0: resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} - dev: true + dev: false /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib/2.3.1: - resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} - /tslib/2.4.0: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - /tsutils/3.21.0_typescript@4.6.3: + /tsutils/3.21.0_typescript@4.6.4: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.6.3 + typescript: 4.6.4 dev: true /tunnel-agent/0.6.0: @@ -8117,6 +8094,130 @@ packages: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + /turbo-darwin-64/1.2.8: + resolution: {integrity: sha512-W46D05e1EUBE5TpRYjAHZXvR01EGhY8AcZUZa1mQCLmOb/W3knS1jHDAMEfXoPuDhdlolejEcbSHFCmqFRQ6OQ==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /turbo-darwin-arm64/1.2.8: + resolution: {integrity: sha512-hDcbQzUnKDa5j+MPnt8hbhcENeGD+dxee9O8LkRUGgHFQzqME0YVZsRDwwMCnpRSmr9ZlvZYQJPRELhBdary9Q==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /turbo-freebsd-64/1.2.8: + resolution: {integrity: sha512-Bd91gNJ9QdsJOjGTpY0YYIa/BIS9BP21gKcpcjZHl4pRpPHraeT9M+RYtpv9bWH3BUWYf0HUzfagOHubrkKq+g==} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /turbo-freebsd-arm64/1.2.8: + resolution: {integrity: sha512-T+fVnbZNFfQ990F8xazsC16EkV98PkQy091NDKYqbYD6C+PtyV6VpAXX61XDzw01JVJ0GxH/8eiLNttP5lfmnA==} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-32/1.2.8: + resolution: {integrity: sha512-wdhssIJQJfYPz9x4XTWZQSRI0mbzsU0Qf3+4kM2XeGsP9k4mi+1g+4PbGutOLBzIWd9OY619dXz/ut43RWqepA==} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-64/1.2.8: + resolution: {integrity: sha512-9OZhxejgl8qQptTUdGnvNXJeFD+I6xF5jkW/tzu5sY9XcdtVvGJ5S4nXYbzG9kPgg4sC6I2gajMCb1l3f5jxSA==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-arm/1.2.8: + resolution: {integrity: sha512-RFLScvJPiuVoTDl83iCFNhXICi+F26A0dhBRaOdD9xP5CjcRTS7ITrPpfiELZ/oQzDdZpk3kD+6MxJPtWxoUkg==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-arm64/1.2.8: + resolution: {integrity: sha512-S7Xu5mhEiTOQNVSaERdCEwWn3IdY0hBIBSoU6TNPD8uIR1jw8r2oV/v/hyuNRRbUfq7as+5tmVXW+RXY/dSkEA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-mips64le/1.2.8: + resolution: {integrity: sha512-JXakBXqVhQrNwwe9t/qw1XowTxKuwv4zh3XVjIX4lKrIPjZZq4XRb3zjLRmtNK7MOV9VZ6Tg6JGc87CNYtp2eA==} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-ppc64le/1.2.8: + resolution: {integrity: sha512-GBFcyV6y+KHmBCylJmk9/b8YO7O5jknWf3Radva3YYcfihzn7gm6pCWd17ML28ZLMEvJfWEtbHrU4gDFk+k7Mw==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-32/1.2.8: + resolution: {integrity: sha512-z6FSmbPDtDxz0vDbP5Odd1wJx7aACtxQ8XvIRB5sR+dvSCW40RZZLh9LTjWb49y3l7YsnqVdjEE0/bTu56M7hQ==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-64/1.2.8: + resolution: {integrity: sha512-RiIy6ZfuEquje7k53DXNI9zR34AN5/8JJwZLnVhPzdqYdth9EXROS9pOKNNnYEvcWoG34xbgISezsxTXzcHVAA==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-arm64/1.2.8: + resolution: {integrity: sha512-usARU7a51r8bY+Z6d7bO3N+97x2C4d2PftbDQaTTBuHQCdbYoZSKhiTPTJfrij8FaxVWjtfoTBxlTCh3mzuNOQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo/1.2.8: + resolution: {integrity: sha512-Ms5ZvRlTjl3RF+ccWuGK2Gzgm4Zvr6mtaNwtBJR48u8gcDRjg1eSrpkwvCD+ENEVeQ39MxKjNS51ZYPIBnnhUw==} + hasBin: true + requiresBuild: true + optionalDependencies: + turbo-darwin-64: 1.2.8 + turbo-darwin-arm64: 1.2.8 + turbo-freebsd-64: 1.2.8 + turbo-freebsd-arm64: 1.2.8 + turbo-linux-32: 1.2.8 + turbo-linux-64: 1.2.8 + turbo-linux-arm: 1.2.8 + turbo-linux-arm64: 1.2.8 + turbo-linux-mips64le: 1.2.8 + turbo-linux-ppc64le: 1.2.8 + turbo-windows-32: 1.2.8 + turbo-windows-64: 1.2.8 + turbo-windows-arm64: 1.2.8 + dev: true + /type-check/0.3.2: resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=} engines: {node: '>= 0.8.0'} @@ -8173,17 +8274,17 @@ packages: resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=} dev: true - /typescript/4.6.3: - resolution: {integrity: sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==} + /typescript/4.6.4: + resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} engines: {node: '>=4.2.0'} hasBin: true dev: true - /unbox-primitive/1.0.1: - resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - function-bind: 1.1.1 - has-bigints: 1.0.1 + call-bind: 1.0.2 + has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 dev: true @@ -8231,59 +8332,13 @@ packages: dependencies: '@babel/runtime': 7.17.9 detect-node: 2.1.0 - dev: true + dev: false /unpipe/1.0.0: resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} engines: {node: '>= 0.8'} dev: false - /unplugin-auto-import/0.7.1_esbuild@0.14.38+vite@2.9.6: - resolution: {integrity: sha512-9865OV9eP99PNxHR2mtTDExeN01m4M9boT5U2BtIwsU1wDRsaFIYWLwcCBEjvXzXfTTC2NNMskhHGVAMfL2WgA==} - engines: {node: '>=14'} - peerDependencies: - '@vueuse/core': '*' - peerDependenciesMeta: - '@vueuse/core': - optional: true - dependencies: - '@antfu/utils': 0.5.1 - '@rollup/pluginutils': 4.2.1 - local-pkg: 0.4.1 - magic-string: 0.26.1 - resolve: 1.22.0 - unplugin: 0.6.2_esbuild@0.14.38+vite@2.9.6 - transitivePeerDependencies: - - esbuild - - rollup - - vite - - webpack - dev: true - - /unplugin/0.6.2_esbuild@0.14.38+vite@2.9.6: - resolution: {integrity: sha512-+QONc2uBFQbeo4x5mlJHjTKjR6pmuchMpGVrWhwdGFFMb4ttFZ4E9KqhOOrNcm3Q8NNyB1vJ4s5e36IZC7UWYw==} - peerDependencies: - esbuild: '>=0.13' - rollup: ^2.50.0 - vite: ^2.3.0 - webpack: 4 || 5 - peerDependenciesMeta: - esbuild: - optional: true - rollup: - optional: true - vite: - optional: true - webpack: - optional: true - dependencies: - chokidar: 3.5.3 - esbuild: 0.14.38 - vite: 2.9.6_sass@1.51.0 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.4.3 - dev: true - /unset-value/1.0.0: resolution: {integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=} engines: {node: '>=0.10.0'} @@ -8295,7 +8350,7 @@ packages: /unzip-crx-3/0.2.0: resolution: {integrity: sha512-0+JiUq/z7faJ6oifVB5nSwt589v1KCduqIJupNVDoWSXZtWDmjDGO3RAEOvwJ07w90aoXoP4enKsR7ecMrJtWQ==} dependencies: - jszip: 3.8.0 + jszip: 3.9.1 mkdirp: 0.5.6 yaku: 0.16.7 dev: true @@ -8309,7 +8364,7 @@ packages: buffer-indexof-polyfill: 1.0.2 duplexer2: 0.1.4 fstream: 1.0.12 - graceful-fs: 4.2.9 + graceful-fs: 4.2.10 listenercount: 1.0.1 readable-stream: 2.3.7 setimmediate: 1.0.5 @@ -8330,7 +8385,7 @@ packages: is-yarn-global: 0.3.0 latest-version: 5.1.0 pupa: 2.1.1 - semver: 7.3.6 + semver: 7.3.7 semver-diff: 3.1.1 xdg-basedir: 4.0.0 dev: true @@ -8338,13 +8393,13 @@ packages: /upper-case-first/2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} dependencies: - tslib: 2.3.1 + tslib: 2.4.0 dev: false /upper-case/2.0.2: resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} dependencies: - tslib: 2.3.1 + tslib: 2.4.0 dev: false /uri-js/4.4.1: @@ -8370,7 +8425,7 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0-rc dependencies: react: 18.1.0 - dev: true + dev: false /use/3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} @@ -8397,7 +8452,7 @@ packages: resolution: {integrity: sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.9 + '@jridgewell/trace-mapping': 0.3.13 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.8.0 dev: true @@ -8409,7 +8464,7 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /valtio/1.6.0_react@18.1.0+vite@2.9.6: + /valtio/1.6.0_react@18.1.0+vite@2.9.9: resolution: {integrity: sha512-I/AUMRGlGpskbTdwYbiJutMKq4AHPgV8GWMwvPPQ6jdAhlWO4gheK4bTKZ22Ff5ONXjjZE8mQ0vL5l0em4wJGg==} engines: {node: '>=12.7.0'} peerDependencies: @@ -8436,8 +8491,8 @@ packages: proxy-compare: 2.1.0 react: 18.1.0 use-sync-external-store: 1.0.0_react@18.1.0 - vite: 2.9.6_sass@1.51.0 - dev: true + vite: 2.9.9_sass@1.51.0 + dev: false /vary/1.1.2: resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=} @@ -8453,7 +8508,7 @@ packages: dev: true optional: true - /vite-plugin-svg-icons/2.0.1_vite@2.9.6: + /vite-plugin-svg-icons/2.0.1_vite@2.9.9: resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} peerDependencies: vite: '>=2.0.0' @@ -8462,17 +8517,17 @@ packages: cors: 2.8.5 debug: 4.3.4 etag: 1.8.1 - fs-extra: 10.0.1 + fs-extra: 10.1.0 pathe: 0.2.0 svg-baker: 1.7.0 svgo: 2.8.0 - vite: 2.9.6_sass@1.51.0 + vite: 2.9.9_sass@1.51.0 transitivePeerDependencies: - supports-color dev: true - /vite/2.9.6_sass@1.51.0: - resolution: {integrity: sha512-3IffdrByHW95Yjv0a13TQOQfJs7L5dVlSPuTt432XLbRMriWbThqJN2k/IS6kXn5WY4xBLhK9XoaWay1B8VzUw==} + /vite/2.9.9_sass@1.51.0: + resolution: {integrity: sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==} engines: {node: '>=12.2.0'} hasBin: true peerDependencies: @@ -8488,16 +8543,16 @@ packages: optional: true dependencies: esbuild: 0.14.38 - postcss: 8.4.12 + postcss: 8.4.13 resolve: 1.22.0 - rollup: 2.70.2 + rollup: 2.72.1 sass: 1.51.0 optionalDependencies: fsevents: 2.3.2 dev: true - /vitest/0.10.0_4c1c8c4d8f26985bd044cf10513feef3: - resolution: {integrity: sha512-8UXemUg9CA4QYppDTsDV76nH0e1p6C8lV9q+o9i0qMSK9AQ7vA2sjoxtkDP0M+pwNmc3ZGYetBXgSJx0M1D/gg==} + /vitest/0.12.4_zxx3atyd22venkkvhz6h27sjqq: + resolution: {integrity: sha512-EDxdhlAt6vcu6y4VouAI60z78iCAVFnfBL4VlSQVQnGmOk5altOtIKvp3xfZ+cfo4iVHgqq1QNyf5qOFiL4leg==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -8517,14 +8572,14 @@ packages: dependencies: '@types/chai': 4.3.1 '@types/chai-subset': 1.3.3 - '@vitest/ui': 0.10.0 + '@vitest/ui': 0.12.4 c8: 7.11.2 chai: 4.3.6 jsdom: 19.0.0 local-pkg: 0.4.1 tinypool: 0.1.3 tinyspy: 0.3.2 - vite: 2.9.6_sass@1.51.0 + vite: 2.9.9_sass@1.51.0 transitivePeerDependencies: - less - sass @@ -8536,7 +8591,7 @@ packages: engines: {node: '>=6.0'} hasBin: true dependencies: - acorn: 8.7.0 + acorn: 8.7.1 acorn-walk: 8.2.0 dev: false @@ -8578,15 +8633,6 @@ packages: engines: {node: '>=12'} dev: true - /webpack-sources/3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - dev: true - - /webpack-virtual-modules/0.4.3: - resolution: {integrity: sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==} - dev: true - /whatwg-encoding/2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} @@ -8607,18 +8653,27 @@ packages: webidl-conversions: 7.0.0 dev: true + /whatwg-url/11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true + /which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 - is-number-object: 1.0.6 + is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 dev: true /which-module/2.0.0: resolution: {integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=} + dev: false /which/2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} @@ -8651,6 +8706,7 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: false /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -8672,8 +8728,8 @@ packages: typedarray-to-buffer: 3.1.5 dev: true - /ws/8.5.0: - resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==} + /ws/8.6.0: + resolution: {integrity: sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -8721,6 +8777,7 @@ packages: /y18n/4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: false /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -8744,6 +8801,7 @@ packages: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 + dev: false /yargs-parser/20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} @@ -8769,6 +8827,7 @@ packages: which-module: 2.0.0 y18n: 4.0.3 yargs-parser: 18.1.3 + dev: false /yargs/16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} @@ -8783,19 +8842,6 @@ packages: yargs-parser: 20.2.9 dev: true - /yargs/17.4.0: - resolution: {integrity: sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==} - engines: {node: '>=12'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.0.1 - dev: true - /yargs/17.4.1: resolution: {integrity: sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==} engines: {node: '>=12'} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..18ec407 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - 'packages/*' diff --git a/prettier.config.js b/prettier.config.js index 8d662fa..db0d6e9 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -13,5 +13,5 @@ module.exports = { // Tailwind CSS plugins: [require('prettier-plugin-tailwindcss')], - tailwindConfig: './tailwind.config.js', + tailwindConfig: './packages/web/tailwind.config.js', } diff --git a/src/renderer/auto-imports.d.ts b/src/renderer/auto-imports.d.ts deleted file mode 100644 index 5d16fdd..0000000 --- a/src/renderer/auto-imports.d.ts +++ /dev/null @@ -1,34 +0,0 @@ -// Generated by 'unplugin-auto-import' -// We suggest you to commit this file into source control -declare global { - const classNames: typeof import('classnames')['default'] - const createRef: typeof import('react')['createRef'] - const forwardRef: typeof import('react')['forwardRef'] - const lazy: typeof import('react')['lazy'] - const memo: typeof import('react')['memo'] - const startTransition: typeof import('react')['startTransition'] - const toast: typeof import('react-hot-toast')['toast'] - const useCallback: typeof import('react')['useCallback'] - const useContext: typeof import('react')['useContext'] - const useDebugValue: typeof import('react')['useDebugValue'] - const useDeferredValue: typeof import('react')['useDeferredValue'] - const useEffect: typeof import('react')['useEffect'] - const useEffectOnce: typeof import('react-use')['useEffectOnce'] - const useId: typeof import('react')['useId'] - const useImperativeHandle: typeof import('react')['useImperativeHandle'] - const useInfiniteQuery: typeof import('react-query')['useInfiniteQuery'] - const useInsertionEffect: typeof import('react')['useInsertionEffect'] - const useLayoutEffect: typeof import('react')['useLayoutEffect'] - const useMemo: typeof import('react')['useMemo'] - const useMutation: typeof import('react-query')['useMutation'] - const useNavigate: typeof import('react-router-dom')['useNavigate'] - const useParams: typeof import('react-router-dom')['useParams'] - const useQuery: typeof import('react-query')['useQuery'] - const useReducer: typeof import('react')['useReducer'] - const useRef: typeof import('react')['useRef'] - const useSnapshot: typeof import('valtio')['useSnapshot'] - const useState: typeof import('react')['useState'] - const useSyncExternalStore: typeof import('react')['useSyncExternalStore'] - const useTransition: typeof import('react')['useTransition'] -} -export {} diff --git a/turbo.json b/turbo.json new file mode 100644 index 0000000..6040152 --- /dev/null +++ b/turbo.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://turborepo.org/schema.json", + "baseBranch": "origin/react", + "pipeline": { + "post-install": { + "cache": false + }, + "dev": { + "cache": false + }, + "build": { + "dependsOn": ["^build"], + "outputs": ["dist/**"] + }, + "test": { + "dependsOn": ["^build"], + "outputs": [] + }, + "lint": { + "outputs": [] + } + } +} diff --git a/types.d.ts b/types.d.ts deleted file mode 100644 index 5be797c1..0000000 --- a/types.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare namespace NodeJS { - interface ProcessEnv { - NODE_ENV: 'development' | 'production' | 'debug' - readonly VITE_DEV_SERVER_HOST: string - readonly VITE_DEV_SERVER_PORT: string - } -}