From 91530c33ec26ec91608cb711caaf690cb792ede3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Lebiedzi=C5=84ski?= <121642236+lvkaszus@users.noreply.github.com> Date: Mon, 2 Sep 2024 20:32:04 +0200 Subject: [PATCH] Ask @lvkaszus! - v3.0 --- .gitignore | 324 +- Documentation/After installation steps.md | 297 - .../Common problems after installation.md | 22 - .../Features inside this application!.md | 51 - Documentation/Installation.md | 542 -- LICENSE | 0 README.md | 129 +- asklvkaszus-admin/Dockerfile | 15 - asklvkaszus-admin/index.html | 19 - asklvkaszus-admin/package-lock.json | 7593 ----------------- asklvkaszus-admin/package.json | 44 - asklvkaszus-admin/postcss.config.js | 6 - .../public/android-chrome-192x192.png | Bin 35200 -> 0 bytes .../public/android-chrome-512x512.png | Bin 135352 -> 0 bytes asklvkaszus-admin/public/apple-touch-icon.png | Bin 31709 -> 0 bytes asklvkaszus-admin/public/favicon-16x16.png | Bin 627 -> 0 bytes asklvkaszus-admin/public/favicon-32x32.png | Bin 1873 -> 0 bytes asklvkaszus-admin/public/favicon.ico | Bin 15406 -> 0 bytes asklvkaszus-admin/public/main_icon.png | Bin 31709 -> 0 bytes asklvkaszus-admin/public/manifest.json | 28 - asklvkaszus-admin/public/robots.txt | 2 - asklvkaszus-admin/server.cjs | 16 - .../src/Components/AnswerQuestion.jsx | 209 - asklvkaszus-admin/src/Components/Footer.jsx | 37 - .../src/Components/LoadingScreen.jsx | 29 - asklvkaszus-admin/src/Components/Login.jsx | 125 - asklvkaszus-admin/src/Components/Navbar.jsx | 20 - asklvkaszus-admin/src/Components/NotFound.jsx | 31 - .../src/Components/PurgeQuestion.jsx | 93 - .../src/Components/PurgeQuestionsButton.jsx | 91 - .../src/Components/QuestionsList.jsx | 138 - .../src/Components/VersionCheck.jsx | 27 - asklvkaszus-admin/src/Components/i18n.jsx | 35 - asklvkaszus-admin/src/Home.jsx | 80 - asklvkaszus-admin/src/Info.jsx | 42 - asklvkaszus-admin/src/Locales/en.json | 104 - asklvkaszus-admin/src/Locales/pl.json | 105 - asklvkaszus-admin/src/Main.css | 62 - asklvkaszus-admin/src/main.jsx | 48 - asklvkaszus-admin/start.sh | 16 - asklvkaszus-admin/tailwind.config.js | 42 - asklvkaszus-admin/vite.config.js | 16 - asklvkaszus-admin_panel.png | Bin 216678 -> 0 bytes asklvkaszus-backend/Dockerfile | 19 + .../asklvkaszus-backend.service | 13 + asklvkaszus-backend/asklvkaszus/__init__.py | 82 + .../actions/admin/answer_question.py | 32 + .../asklvkaszus/actions/admin/app_settings.py | 82 + .../asklvkaszus/actions/admin/block_sender.py | 39 + .../actions/admin/configure_notifications.py | 51 + .../actions/admin/fetch_all_questions.py | 34 + .../actions/admin/fetch_blocked_senders.py | 32 + .../actions/admin/fetch_updates.py | 23 + .../actions/admin/purge_all_questions.py | 20 + .../actions/admin/purge_question.py | 28 + .../actions/admin/refresh_api_token.py | 19 + .../actions/admin/toggle_admin_api.py | 19 + .../admin/toggle_all_questions_visibility.py | 35 + .../admin/toggle_question_visibility.py | 35 + .../actions/admin/toggle_user_api.py | 19 + .../actions/admin/unblock_all_senders.py | 20 + .../actions/admin/unblock_sender.py | 32 + .../asklvkaszus/actions/admin/user_info.py | 31 + .../actions/auth/change_password.py | 63 + .../actions/auth/fetch_csrf_token.py | 6 + .../asklvkaszus/actions/auth/login.py | 41 + .../asklvkaszus/actions/auth/logout.py | 27 + .../asklvkaszus/actions/auth/register.py | 66 + .../asklvkaszus/actions/auth/session_guard.py | 13 + .../actions/fetch_backend_version.py | 11 + .../actions/rest/admin/answer_question.py | 30 + .../actions/rest/admin/app_settings.py | 73 + .../actions/rest/admin/block_sender.py | 35 + .../rest/admin/configure_notifications.py | 53 + .../actions/rest/admin/fetch_all_questions.py | 32 + .../rest/admin/fetch_blocked_senders.py | 29 + .../actions/rest/admin/fetch_updates.py | 20 + .../actions/rest/admin/purge_all_questions.py | 19 + .../actions/rest/admin/purge_question.py | 26 + .../admin/toggle_all_questions_visibility.py | 29 + .../rest/admin/toggle_question_visibility.py | 30 + .../actions/rest/admin/unblock_all_senders.py | 18 + .../actions/rest/admin/unblock_sender.py | 30 + .../actions/rest/admin/user_info.py | 39 + .../actions/rest/user/app_settings.py | 27 + .../actions/rest/user/fetch_all_questions.py | 33 + .../actions/rest/user/submit_question.py | 64 + .../asklvkaszus/actions/user/app_settings.py | 26 + .../actions/user/fetch_all_questions.py | 31 + .../actions/user/submit_question.py | 67 + asklvkaszus-backend/asklvkaszus/config.py | 66 + asklvkaszus-backend/asklvkaszus/errors.py | 19 + asklvkaszus-backend/asklvkaszus/extensions.py | 17 + .../asklvkaszus/models/app_settings.py | 10 + .../asklvkaszus/models/blocked_senders.py | 7 + .../asklvkaszus/models/questions.py | 9 + .../asklvkaszus/models/registered_users.py | 15 + .../asklvkaszus/modules/check_for_updates.py | 31 + .../asklvkaszus/modules/check_sender_block.py | 13 + .../asklvkaszus/modules/get_remote_address.py | 6 + .../asklvkaszus/modules/jwt_core.py | 94 + .../asklvkaszus/modules/rest_core.py | 173 + .../asklvkaszus/modules/telegram_notify.py | 79 + .../asklvkaszus/routes/admin_routes.py | 145 + .../asklvkaszus/routes/auth_routes.py | 39 + .../asklvkaszus/routes/rest_routes.py | 137 + .../asklvkaszus/routes/root_routes.py | 20 + .../asklvkaszus/routes/user_routes.py | 38 + .../tools/change_admin_password.py | 131 + .../asklvkaszus/tools/delete_admin_account.py | 91 + .../tools/restore_factory_defaults.py | 110 + asklvkaszus-backend/asklvkaszus/version.py | 1 + asklvkaszus-backend/config/config.example.yml | 34 + asklvkaszus-backend/config/redis.conf | 16 + asklvkaszus-backend/docker/Dockerfile | 31 - .../docker/asklvkaszus-backend.py | 323 - asklvkaszus-backend/docker/gunicorn_config.py | 19 - asklvkaszus-backend/docker/requirements.txt | 33 - .../nondocker/asklvkaszus-backend.py | 311 - .../nondocker/gunicorn_config.py | 21 - .../nondocker/requirements.txt | 33 - asklvkaszus-backend/requirements.txt | 40 + asklvkaszus-backend/start.sh | 7 + asklvkaszus-backend/wsgi.py | 6 + asklvkaszus-frontend.png | Bin 167405 -> 0 bytes asklvkaszus-frontend/.gitignore | 24 + asklvkaszus-frontend/Dockerfile | 8 +- .../asklvkaszus-frontend.service | 12 + asklvkaszus-frontend/eslint.config.js | 38 + asklvkaszus-frontend/index.html | 43 +- asklvkaszus-frontend/package-lock.json | 5094 +++++++---- asklvkaszus-frontend/package.json | 55 +- asklvkaszus-frontend/postcss.config.js | 6 - .../public/android-chrome-192x192.png | Bin 30263 -> 2542 bytes .../public/android-chrome-512x512.png | Bin 119615 -> 6783 bytes .../public/apple-touch-icon.png | Bin 27253 -> 2399 bytes .../public/backgrounds/Background Sources.txt | 8 + .../public/backgrounds/dark.jpg | Bin 0 -> 579849 bytes .../public/backgrounds/light.jpg | Bin 0 -> 115816 bytes asklvkaszus-frontend/public/browserconfig.xml | 9 + asklvkaszus-frontend/public/css/loader.css | 140 + asklvkaszus-frontend/public/favicon-16x16.png | Bin 570 -> 454 bytes asklvkaszus-frontend/public/favicon-32x32.png | Bin 1645 -> 616 bytes asklvkaszus-frontend/public/favicon.ico | Bin 15406 -> 7406 bytes asklvkaszus-frontend/public/js/loader.js | 13 + asklvkaszus-frontend/public/manifest.json | 39 +- .../public/mstile-150x150.png | Bin 0 -> 2571 bytes asklvkaszus-frontend/public/robots.txt | 4 +- .../public/safari-pinned-tab.svg | 47 + asklvkaszus-frontend/server.cjs | 11 +- .../src/Components/Footer.jsx | 37 - .../src/Components/LoadingScreen.jsx | 29 - .../src/Components/Navbar.jsx | 20 - .../src/Components/NotFound.jsx | 31 - .../src/Components/QuestionForm.jsx | 163 - .../src/Components/QuestionsList.jsx | 120 - .../src/Components/VersionCheck.jsx | 27 - asklvkaszus-frontend/src/Components/i18n.jsx | 35 - asklvkaszus-frontend/src/Core.jsx | 200 + asklvkaszus-frontend/src/Home.jsx | 56 +- asklvkaszus-frontend/src/Info.jsx | 85 +- asklvkaszus-frontend/src/Locales/en.json | 76 - asklvkaszus-frontend/src/Locales/pl.json | 76 - asklvkaszus-frontend/src/Main.css | 62 - .../src/admin/AdminGlobalSettings.jsx | 75 + asklvkaszus-frontend/src/admin/AdminHome.jsx | 210 + asklvkaszus-frontend/src/admin/AdminLogin.jsx | 168 + .../src/admin/AdminManagement.jsx | 128 + .../src/admin/AdminRegister.jsx | 283 + .../src/admin/AdminUserSettings.jsx | 107 + .../GlobalSettingsControls.jsx | 172 + .../admin/components/home/AnswerQuestion.jsx | 169 + .../admin/components/home/ControlButtons.jsx | 106 + .../components/home/ManageQuestionMenu.jsx | 144 + .../admin/components/home/QuestionsList.jsx | 147 + .../login/RecoverPasswordDescription.jsx | 49 + .../components/management/ManagementTable.jsx | 116 + .../management/UnblockAllSendersButton.jsx | 79 + .../management/UnblockSenderButton.jsx | 79 + .../admin/components/navbar/AdminNavbar.jsx | 140 + .../admin/components/navbar/PreAuthNavbar.jsx | 20 + .../requests/SendAnswerQuestionRequest.jsx | 72 + .../requests/SendBlockSenderRequest.jsx | 71 + .../requests/SendChangePasswordRequest.jsx | 76 + .../requests/SendCheckSessionRequest.jsx | 47 + .../requests/SendCheckUpdatesRequest.jsx | 71 + .../SendConfigureNotificationsRequest.jsx | 77 + .../SendFetchAdminAppSettingsRequest.jsx | 50 + .../requests/SendFetchAllQuestionsRequest.jsx | 76 + .../SendFetchBlockedSendersRequest.jsx | 78 + .../requests/SendFetchCsrfTokenRequest.jsx | 19 + .../requests/SendFetchUserDataRequest.jsx | 72 + .../components/requests/SendLoginRequest.jsx | 66 + .../components/requests/SendLogoutRequest.jsx | 76 + .../requests/SendPurgeAllQuestionsRequest.jsx | 70 + .../requests/SendPurgeQuestionRequest.jsx | 76 + .../SendRefreshAdminApiKeyRequest.jsx | 64 + .../requests/SendRegisterRequest.jsx | 66 + .../SendRegistrationEnabledRequest.jsx | 39 + .../requests/SendSetSessionRequest.jsx | 55 + .../requests/SendToggleAdminApiRequest.jsx | 72 + ...endToggleAllQuestionsVisibilityRequest.jsx | 72 + .../SendToggleQuestionVisibilityRequest.jsx | 73 + .../requests/SendToggleUserApiRequest.jsx | 71 + .../requests/SendUnblockAllSendersRequest.jsx | 71 + .../requests/SendUnblockSenderRequest.jsx | 74 + .../requests/SendUpdateAppSettingsRequest.jsx | 77 + .../results/CheckAdminApiKeyCopyResult.jsx | 39 + .../results/CheckAnswerQuestionResult.jsx | 70 + .../results/CheckBlockSenderResult.jsx | 70 + .../results/CheckChangePasswordResult.jsx | 100 + .../CheckConfigureNotificationsResult.jsx | 70 + .../CheckFetchAdminAppSettingsResult.jsx | 48 + .../results/CheckFetchUserDataResult.jsx | 48 + .../components/results/CheckLoginResult.jsx | 58 + .../components/results/CheckLogoutResult.jsx | 59 + .../results/CheckPurgeAllQuestionsResult.jsx | 59 + .../results/CheckPurgeQuestionResult.jsx | 65 + .../results/CheckRefreshAdminApiKeyResult.jsx | 67 + .../results/CheckRegisterResult.jsx | 98 + .../results/CheckToggleAdminApiResult.jsx | 68 + ...heckToggleAllQuestionsVisibilityResult.jsx | 68 + .../CheckToggleQuestionVisibilityResult.jsx | 68 + .../results/CheckToggleUserApiResult.jsx | 68 + .../results/CheckUnblockAllSendersResult.jsx | 56 + .../results/CheckUnblockSenderResult.jsx | 68 + .../results/CheckUpdateAppSettingsResult.jsx | 80 + .../components/results/CheckUpdatesResult.jsx | 65 + .../user_settings/ChangePassword.jsx | 295 + .../user_settings/ConfigureNotifications.jsx | 195 + .../user_settings/RefreshAdminApiKey.jsx | 149 + .../user_settings/ShowAdminApiKey.jsx | 131 + .../user_settings/ToggleAdminApi.jsx | 97 + .../user_settings/ToggleUserApi.jsx | 96 + .../user_settings/UserSettingsList.jsx | 224 + .../src/components/Navbar.jsx | 26 + .../src/components/NotFoundError.jsx | 32 + .../src/components/SuspenseFallback.jsx | 28 + .../src/components/home/QuestionsList.jsx | 97 + .../components/home/SubmitQuestionForm.jsx | 102 + asklvkaszus-frontend/src/components/i18n.jsx | 42 + .../markdown/MarkdownDescription.jsx | 67 + .../components/markdown/MarkdownRenderer.jsx | 86 + .../requests/SendFetchAllQuestionsRequest.jsx | 53 + .../requests/SendFetchCsrfTokenRequest.jsx | 19 + .../SendFetchUserAppSettingsRequest.jsx | 48 + .../requests/SendSubmitQuestionRequest.jsx | 59 + .../requests/SendVersionCheckRequest.jsx | 51 + .../CheckFetchUserAppSettingsResult.jsx | 40 + .../results/CheckSubmitQuestionResult.jsx | 63 + asklvkaszus-frontend/src/currentVersion.jsx | 7 + asklvkaszus-frontend/src/locales/en-US.json | 354 + asklvkaszus-frontend/src/locales/pl-PL.json | 357 + asklvkaszus-frontend/src/main.css | 90 + asklvkaszus-frontend/src/main.jsx | 49 +- asklvkaszus-frontend/start.sh | 42 +- asklvkaszus-frontend/tailwind.config.js | 40 - asklvkaszus-frontend/vite.config.js | 10 +- docker-compose.yml | 66 + documentation/Installation.md | 690 ++ documentation/Main.md | 16 + documentation/Reverse_Proxy_Setup.md | 132 + package-lock.json | 6 - screenshots/admin-dark.png | Bin 0 -> 939350 bytes screenshots/admin-light.png | Bin 0 -> 374634 bytes screenshots/home-dark.png | Bin 0 -> 962327 bytes screenshots/home-light.png | Bin 0 -> 378884 bytes 267 files changed, 16298 insertions(+), 13610 deletions(-) mode change 100644 => 100755 .gitignore delete mode 100644 Documentation/After installation steps.md delete mode 100644 Documentation/Common problems after installation.md delete mode 100644 Documentation/Features inside this application!.md delete mode 100644 Documentation/Installation.md mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.md delete mode 100644 asklvkaszus-admin/Dockerfile delete mode 100644 asklvkaszus-admin/index.html delete mode 100644 asklvkaszus-admin/package-lock.json delete mode 100644 asklvkaszus-admin/package.json delete mode 100644 asklvkaszus-admin/postcss.config.js delete mode 100644 asklvkaszus-admin/public/android-chrome-192x192.png delete mode 100644 asklvkaszus-admin/public/android-chrome-512x512.png delete mode 100644 asklvkaszus-admin/public/apple-touch-icon.png delete mode 100644 asklvkaszus-admin/public/favicon-16x16.png delete mode 100644 asklvkaszus-admin/public/favicon-32x32.png delete mode 100644 asklvkaszus-admin/public/favicon.ico delete mode 100644 asklvkaszus-admin/public/main_icon.png delete mode 100755 asklvkaszus-admin/public/manifest.json delete mode 100755 asklvkaszus-admin/public/robots.txt delete mode 100644 asklvkaszus-admin/server.cjs delete mode 100644 asklvkaszus-admin/src/Components/AnswerQuestion.jsx delete mode 100644 asklvkaszus-admin/src/Components/Footer.jsx delete mode 100644 asklvkaszus-admin/src/Components/LoadingScreen.jsx delete mode 100644 asklvkaszus-admin/src/Components/Login.jsx delete mode 100644 asklvkaszus-admin/src/Components/Navbar.jsx delete mode 100644 asklvkaszus-admin/src/Components/NotFound.jsx delete mode 100644 asklvkaszus-admin/src/Components/PurgeQuestion.jsx delete mode 100644 asklvkaszus-admin/src/Components/PurgeQuestionsButton.jsx delete mode 100644 asklvkaszus-admin/src/Components/QuestionsList.jsx delete mode 100644 asklvkaszus-admin/src/Components/VersionCheck.jsx delete mode 100644 asklvkaszus-admin/src/Components/i18n.jsx delete mode 100644 asklvkaszus-admin/src/Home.jsx delete mode 100644 asklvkaszus-admin/src/Info.jsx delete mode 100644 asklvkaszus-admin/src/Locales/en.json delete mode 100644 asklvkaszus-admin/src/Locales/pl.json delete mode 100644 asklvkaszus-admin/src/Main.css delete mode 100644 asklvkaszus-admin/src/main.jsx delete mode 100644 asklvkaszus-admin/start.sh delete mode 100644 asklvkaszus-admin/tailwind.config.js delete mode 100644 asklvkaszus-admin/vite.config.js delete mode 100644 asklvkaszus-admin_panel.png create mode 100755 asklvkaszus-backend/Dockerfile create mode 100644 asklvkaszus-backend/asklvkaszus-backend.service create mode 100755 asklvkaszus-backend/asklvkaszus/__init__.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/answer_question.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/app_settings.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/block_sender.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/configure_notifications.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/fetch_all_questions.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/fetch_blocked_senders.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/fetch_updates.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/purge_all_questions.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/purge_question.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/refresh_api_token.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/toggle_admin_api.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/toggle_all_questions_visibility.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/toggle_question_visibility.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/toggle_user_api.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/unblock_all_senders.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/unblock_sender.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/admin/user_info.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/auth/change_password.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/auth/fetch_csrf_token.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/auth/login.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/auth/logout.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/auth/register.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/auth/session_guard.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/fetch_backend_version.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/answer_question.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/app_settings.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/block_sender.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/configure_notifications.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/fetch_all_questions.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/fetch_blocked_senders.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/fetch_updates.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/purge_all_questions.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/purge_question.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/toggle_all_questions_visibility.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/toggle_question_visibility.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/unblock_all_senders.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/unblock_sender.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/admin/user_info.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/user/app_settings.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/user/fetch_all_questions.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/rest/user/submit_question.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/user/app_settings.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/user/fetch_all_questions.py create mode 100755 asklvkaszus-backend/asklvkaszus/actions/user/submit_question.py create mode 100755 asklvkaszus-backend/asklvkaszus/config.py create mode 100755 asklvkaszus-backend/asklvkaszus/errors.py create mode 100755 asklvkaszus-backend/asklvkaszus/extensions.py create mode 100755 asklvkaszus-backend/asklvkaszus/models/app_settings.py create mode 100755 asklvkaszus-backend/asklvkaszus/models/blocked_senders.py create mode 100755 asklvkaszus-backend/asklvkaszus/models/questions.py create mode 100755 asklvkaszus-backend/asklvkaszus/models/registered_users.py create mode 100755 asklvkaszus-backend/asklvkaszus/modules/check_for_updates.py create mode 100755 asklvkaszus-backend/asklvkaszus/modules/check_sender_block.py create mode 100755 asklvkaszus-backend/asklvkaszus/modules/get_remote_address.py create mode 100755 asklvkaszus-backend/asklvkaszus/modules/jwt_core.py create mode 100755 asklvkaszus-backend/asklvkaszus/modules/rest_core.py create mode 100755 asklvkaszus-backend/asklvkaszus/modules/telegram_notify.py create mode 100755 asklvkaszus-backend/asklvkaszus/routes/admin_routes.py create mode 100755 asklvkaszus-backend/asklvkaszus/routes/auth_routes.py create mode 100755 asklvkaszus-backend/asklvkaszus/routes/rest_routes.py create mode 100755 asklvkaszus-backend/asklvkaszus/routes/root_routes.py create mode 100755 asklvkaszus-backend/asklvkaszus/routes/user_routes.py create mode 100755 asklvkaszus-backend/asklvkaszus/tools/change_admin_password.py create mode 100755 asklvkaszus-backend/asklvkaszus/tools/delete_admin_account.py create mode 100755 asklvkaszus-backend/asklvkaszus/tools/restore_factory_defaults.py create mode 100755 asklvkaszus-backend/asklvkaszus/version.py create mode 100755 asklvkaszus-backend/config/config.example.yml create mode 100755 asklvkaszus-backend/config/redis.conf delete mode 100755 asklvkaszus-backend/docker/Dockerfile delete mode 100755 asklvkaszus-backend/docker/asklvkaszus-backend.py delete mode 100755 asklvkaszus-backend/docker/gunicorn_config.py delete mode 100755 asklvkaszus-backend/docker/requirements.txt delete mode 100755 asklvkaszus-backend/nondocker/asklvkaszus-backend.py delete mode 100755 asklvkaszus-backend/nondocker/gunicorn_config.py delete mode 100755 asklvkaszus-backend/nondocker/requirements.txt create mode 100755 asklvkaszus-backend/requirements.txt create mode 100755 asklvkaszus-backend/start.sh create mode 100755 asklvkaszus-backend/wsgi.py delete mode 100644 asklvkaszus-frontend.png create mode 100755 asklvkaszus-frontend/.gitignore mode change 100644 => 100755 asklvkaszus-frontend/Dockerfile create mode 100644 asklvkaszus-frontend/asklvkaszus-frontend.service create mode 100755 asklvkaszus-frontend/eslint.config.js mode change 100644 => 100755 asklvkaszus-frontend/index.html mode change 100644 => 100755 asklvkaszus-frontend/package-lock.json mode change 100644 => 100755 asklvkaszus-frontend/package.json delete mode 100644 asklvkaszus-frontend/postcss.config.js create mode 100755 asklvkaszus-frontend/public/backgrounds/Background Sources.txt create mode 100755 asklvkaszus-frontend/public/backgrounds/dark.jpg create mode 100755 asklvkaszus-frontend/public/backgrounds/light.jpg create mode 100644 asklvkaszus-frontend/public/browserconfig.xml create mode 100755 asklvkaszus-frontend/public/css/loader.css create mode 100755 asklvkaszus-frontend/public/js/loader.js mode change 100755 => 100644 asklvkaszus-frontend/public/manifest.json create mode 100644 asklvkaszus-frontend/public/mstile-150x150.png mode change 100755 => 100644 asklvkaszus-frontend/public/robots.txt create mode 100644 asklvkaszus-frontend/public/safari-pinned-tab.svg mode change 100644 => 100755 asklvkaszus-frontend/server.cjs delete mode 100644 asklvkaszus-frontend/src/Components/Footer.jsx delete mode 100644 asklvkaszus-frontend/src/Components/LoadingScreen.jsx delete mode 100644 asklvkaszus-frontend/src/Components/Navbar.jsx delete mode 100644 asklvkaszus-frontend/src/Components/NotFound.jsx delete mode 100644 asklvkaszus-frontend/src/Components/QuestionForm.jsx delete mode 100644 asklvkaszus-frontend/src/Components/QuestionsList.jsx delete mode 100644 asklvkaszus-frontend/src/Components/VersionCheck.jsx delete mode 100644 asklvkaszus-frontend/src/Components/i18n.jsx create mode 100755 asklvkaszus-frontend/src/Core.jsx mode change 100644 => 100755 asklvkaszus-frontend/src/Home.jsx mode change 100644 => 100755 asklvkaszus-frontend/src/Info.jsx delete mode 100644 asklvkaszus-frontend/src/Locales/en.json delete mode 100644 asklvkaszus-frontend/src/Locales/pl.json delete mode 100644 asklvkaszus-frontend/src/Main.css create mode 100755 asklvkaszus-frontend/src/admin/AdminGlobalSettings.jsx create mode 100755 asklvkaszus-frontend/src/admin/AdminHome.jsx create mode 100755 asklvkaszus-frontend/src/admin/AdminLogin.jsx create mode 100755 asklvkaszus-frontend/src/admin/AdminManagement.jsx create mode 100755 asklvkaszus-frontend/src/admin/AdminRegister.jsx create mode 100755 asklvkaszus-frontend/src/admin/AdminUserSettings.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/global_settings/GlobalSettingsControls.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/home/AnswerQuestion.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/home/ControlButtons.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/home/ManageQuestionMenu.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/home/QuestionsList.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/login/RecoverPasswordDescription.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/management/ManagementTable.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/management/UnblockAllSendersButton.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/management/UnblockSenderButton.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/navbar/AdminNavbar.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/navbar/PreAuthNavbar.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendAnswerQuestionRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendBlockSenderRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendChangePasswordRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendCheckSessionRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendCheckUpdatesRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendConfigureNotificationsRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendFetchAdminAppSettingsRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendFetchAllQuestionsRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendFetchBlockedSendersRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendFetchCsrfTokenRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendFetchUserDataRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendLoginRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendLogoutRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendPurgeAllQuestionsRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendPurgeQuestionRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendRefreshAdminApiKeyRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendRegisterRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendRegistrationEnabledRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendSetSessionRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendToggleAdminApiRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendToggleAllQuestionsVisibilityRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendToggleQuestionVisibilityRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendToggleUserApiRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendUnblockAllSendersRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendUnblockSenderRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/requests/SendUpdateAppSettingsRequest.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckAdminApiKeyCopyResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckAnswerQuestionResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckBlockSenderResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckChangePasswordResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckConfigureNotificationsResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckFetchAdminAppSettingsResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckFetchUserDataResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckLoginResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckLogoutResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckPurgeAllQuestionsResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckPurgeQuestionResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckRefreshAdminApiKeyResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckRegisterResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckToggleAdminApiResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckToggleAllQuestionsVisibilityResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckToggleQuestionVisibilityResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckToggleUserApiResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckUnblockAllSendersResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckUnblockSenderResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckUpdateAppSettingsResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/results/CheckUpdatesResult.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/user_settings/ChangePassword.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/user_settings/ConfigureNotifications.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/user_settings/RefreshAdminApiKey.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/user_settings/ShowAdminApiKey.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/user_settings/ToggleAdminApi.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/user_settings/ToggleUserApi.jsx create mode 100755 asklvkaszus-frontend/src/admin/components/user_settings/UserSettingsList.jsx create mode 100755 asklvkaszus-frontend/src/components/Navbar.jsx create mode 100755 asklvkaszus-frontend/src/components/NotFoundError.jsx create mode 100755 asklvkaszus-frontend/src/components/SuspenseFallback.jsx create mode 100755 asklvkaszus-frontend/src/components/home/QuestionsList.jsx create mode 100755 asklvkaszus-frontend/src/components/home/SubmitQuestionForm.jsx create mode 100755 asklvkaszus-frontend/src/components/i18n.jsx create mode 100755 asklvkaszus-frontend/src/components/markdown/MarkdownDescription.jsx create mode 100755 asklvkaszus-frontend/src/components/markdown/MarkdownRenderer.jsx create mode 100755 asklvkaszus-frontend/src/components/requests/SendFetchAllQuestionsRequest.jsx create mode 100755 asklvkaszus-frontend/src/components/requests/SendFetchCsrfTokenRequest.jsx create mode 100755 asklvkaszus-frontend/src/components/requests/SendFetchUserAppSettingsRequest.jsx create mode 100755 asklvkaszus-frontend/src/components/requests/SendSubmitQuestionRequest.jsx create mode 100755 asklvkaszus-frontend/src/components/requests/SendVersionCheckRequest.jsx create mode 100755 asklvkaszus-frontend/src/components/results/CheckFetchUserAppSettingsResult.jsx create mode 100755 asklvkaszus-frontend/src/components/results/CheckSubmitQuestionResult.jsx create mode 100755 asklvkaszus-frontend/src/currentVersion.jsx create mode 100755 asklvkaszus-frontend/src/locales/en-US.json create mode 100755 asklvkaszus-frontend/src/locales/pl-PL.json create mode 100755 asklvkaszus-frontend/src/main.css mode change 100644 => 100755 asklvkaszus-frontend/src/main.jsx mode change 100644 => 100755 asklvkaszus-frontend/start.sh delete mode 100644 asklvkaszus-frontend/tailwind.config.js mode change 100644 => 100755 asklvkaszus-frontend/vite.config.js create mode 100755 docker-compose.yml create mode 100755 documentation/Installation.md create mode 100755 documentation/Main.md create mode 100644 documentation/Reverse_Proxy_Setup.md delete mode 100644 package-lock.json create mode 100755 screenshots/admin-dark.png create mode 100755 screenshots/admin-light.png create mode 100755 screenshots/home-dark.png create mode 100755 screenshots/home-light.png diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index 0e7be17..0e22f0e --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ -# Environment variables file -.env +##################### +# Node .gitignore # +##################### + # Logs logs @@ -7,21 +9,309 @@ logs npm-debug.log* yarn-debug.log* yarn-error.log* -pnpm-debug.log* lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# 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 + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + + + +##################### +# Python .gitignore # +##################### + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +bin/ +include/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +include/ +lib/ +lib64 +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +pyvenv.cfg +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ -node_modules +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + + + +########################## +# Application .gitignore # +########################## + + +# Application configuration +config.yml diff --git a/Documentation/After installation steps.md b/Documentation/After installation steps.md deleted file mode 100644 index 0ad1b33..0000000 --- a/Documentation/After installation steps.md +++ /dev/null @@ -1,297 +0,0 @@ -# After installation steps - -When you are done installing Ask @lvkaszus! Project, please follow those steps accordingly to expose this application to world-wide web! - -⚠️ WARNING! You will need a domain name and a valid SSL/TLS certificate for it! ⚠️ - -⚠️ Otherwise, your Anonymous Q&A application will mostly not work because connections to the API Endpoints are with `https://` prefix in application source code and also the Cookies created on Admin Panel page that are stored inside client's browser are with `Secure=True` argument that works only with HTTPS websites! - - -## Prerequisites - -You must have installed all the components from Main installation guide available in `Installation.md` file. If you didn't install anything from there, those instructions will be non-sense to you and your server. - - -If you didn't opened HTTP and HTTPS ports for incoming traffic to your application server, DO THIS NOW! - If you won't do this, you will have problems with accessing your Anonymous Q&A App instance. - - -- Open ports `80` and `443` to enable HTTP and HTTPS on your server. For example if you are using FirewallD as your firewall, just use those commands on your server: - -``` -sudo firewall-cmd --zone=public --permanent --add-port=80/tcp -sudo firewall-cmd --zone=public --permanent --add-port=443/tcp -sudo firewall-cmd --reload -``` - - -# Expose your instance to world-wide web! - -Exposing your instance is mandatory step to allow receiving anonymous questions from people or your friends, and also to manage your installed instance! Scroll down to see how to configure NGINX as a Reverse Proxy for Docker or Non-Docker Instance. - -## Install and configure NGINX as a Reverse Proxy - -### NGINX - for Docker Instance - -- If you not installed NGINX binary on your server yet, install it by using this command (I am using Ubuntu and APT Package Manager, edit this command to match your Linux distribution Package Manager): - -⚠️ WARNING! You can also use NGINX in Docker if you want and use it that way. My personal choice is NGINX Non-Docker + Apps in Docker. ⚠️ - -`sudo apt install nginx` - -- Enable NGINX if it isn't running: - -`sudo systemctl enable --now nginx` - -- Import your SSL/TLS Certificate files to directory that you would like to use by using SFTP connection or by pasting `.pem` and `.key` file contents to your favourite text editor and save those as `.pem` and `.key` files to use them inside NGINX Configuration files. - -- Configure NGINX to serve your Backend API Endpoints and also your Main Frontend and Admin Panel by using your preferred text editor: - -`sudo nano /etc/nginx/sites-available/asklvkaszus-stack` - -- Paste this NGINX Example Configuration file contents below to your new `asklvkaszus-stack` configuration file and change some entries to match your needs: - -``` -# Ask @lvkaszus! - Docker NGINX Configuration Stack: - -server { - listen 80; - listen [::]:80; - listen 443 ssl http2; - listen [::]:443 ssl http2; - - server_name YOUR_MAIN_FRONTEND_DOMAIN_NAME; # Must be same that is set in Backend because of CORS! - - ssl_certificate YOUR_CERTIFICATE_FILE_PATH; # Example: /etc/ssl/my_domain_tls_cert.pem - ssl_certificate_key YOUR_CERTIFICATE_KEY_FILE_PATH; # Example: /etc/ssl/my_domain_tls_cert_key.key - - ssl_protocols TLSv1.2 TLSv1.3; - ssl_prefer_server_ciphers on; - ssl_ciphers "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305"; - ssl_ecdh_curve secp384r1; - ssl_session_timeout 10m; - ssl_session_cache shared:SSL:10m; - ssl_session_tickets off; - ssl_stapling on; - ssl_stapling_verify on; - - add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; - add_header X-Frame-Options "SAMEORIGIN"; - add_header X-Content-Type-Options nosniff; - add_header X-XSS-Protection "1; mode=block"; - - server_tokens off; - - location /api/ { - proxy_pass http://127.0.0.1:3030; # If you changed Backend port during container configuration, please update it! - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header Host $host; - proxy_http_version 1.1; - proxy_set_header Connection ""; - - # Needed headers to make Q&A working - proxy_set_header Question $http_question; - proxy_set_header Authorization $http_authorization; - proxy_set_header Answer $http_answer; - } - - location / { - proxy_pass http://127.0.0.1:3031; # If you changed Frontend port during container configuration, please update it! - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header Host $host; - proxy_http_version 1.1; - proxy_set_header Connection ""; - } - - if ($https = '') { return 301 https://$host$request_uri; } -} - -server { - listen 80; - listen [::]:80; - listen 443 ssl http2; - listen [::]:443 ssl http2; - - server_name YOUR_ADMIN_FRONTEND_DOMAIN_NAME; # Must be same that is set in Backend because of CORS! - - ssl_certificate YOUR_CERTIFICATE_FILE_PATH; # Example: /etc/ssl/my_domain_tls_cert.pem - ssl_certificate_key YOUR_CERTIFICATE_KEY_FILE_PATH; # Example: /etc/ssl/my_domain_tls_cert_key.key - - ssl_protocols TLSv1.2 TLSv1.3; - ssl_prefer_server_ciphers on; - ssl_ciphers "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305"; - ssl_ecdh_curve secp384r1; - ssl_session_timeout 10m; - ssl_session_cache shared:SSL:10m; - ssl_session_tickets off; - ssl_stapling on; - ssl_stapling_verify on; - - add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; - add_header X-Frame-Options "SAMEORIGIN"; - add_header X-Content-Type-Options nosniff; - add_header X-XSS-Protection "1; mode=block"; - - server_tokens off; - - location / { - proxy_pass http://127.0.0.1:3032; # If you changed Admin Panel port during container configuration, please update it! - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header Host $host; - proxy_http_version 1.1; - proxy_set_header Connection ""; - } - - if ($https = '') { return 301 https://$host$request_uri; } -} -``` - -- Save the file and exit your text editor. Create symlink from `sites-available` to `sites-enabled` folder to make this configuration file enabled inside NGINX: - -`sudo ln -sf /etc/nginx/sites-available/asklvkaszus-stack /etc/nginx/sites-enabled/asklvkaszus-stack` - -- Check your configuration file for errors: - -`sudo nginx -t` - -- If you see `nginx: the configuration file [...] syntax is ok` message on your screen, you can restart your NGINX server by running this command: - -`sudo service nginx restart` - -- Your App should be now available when you visit your domain name where you wanted to install this project! If everything works correctly, then congratulations - You Made It! - - -#### You experienced problems after installation process? - -If you experienced any problems after the installation, open and read `Common problems after installation.md` file for further help! - -### NGINX - for Non-Docker Instance - -- If you not installed NGINX binary on your server yet, install it by using this command (I am using Ubuntu and APT Package Manager, edit this command to match your Linux distribution Package Manager): - -`sudo apt install nginx` - -- Enable NGINX if it isn't running: - -`sudo systemctl enable --now nginx` - -- Import your SSL/TLS Certificate files to directory that you would like to use by using SFTP connection or by pasting `.pem` and `.key` file contents to your favourite text editor and save those as `.pem` and `.key` files to use them inside NGINX Configuration files. - -- Configure NGINX to serve your Backend API Endpoints and also your Main Frontend and Admin Panel by using your preferred text editor: - -`sudo nano /etc/nginx/sites-available/asklvkaszus-stack` - -- Paste this NGINX Example Configuration file contents below to your new `asklvkaszus-stack` configuration file and change some entries to match your needs: - -``` -# Ask @lvkaszus! - Non-Docker NGINX Configuration Stack: - -server { - listen 80; - listen [::]:80; - listen 443 ssl http2; - listen [::]:443 ssl http2; - - server_name YOUR_MAIN_FRONTEND_DOMAIN_NAME; # Must be same that is inside asklvkaszus-backend.py file because of CORS! - - ssl_certificate YOUR_CERTIFICATE_FILE_PATH; # Example: /etc/ssl/my_domain_tls_cert.pem - ssl_certificate_key YOUR_CERTIFICATE_KEY_FILE_PATH; # Example: /etc/ssl/my_domain_tls_cert_key.key - - ssl_protocols TLSv1.2 TLSv1.3; - ssl_prefer_server_ciphers on; - ssl_ciphers "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305"; - ssl_ecdh_curve secp384r1; - ssl_session_timeout 10m; - ssl_session_cache shared:SSL:10m; - ssl_session_tickets off; - ssl_stapling on; - ssl_stapling_verify on; - - add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; - add_header X-Frame-Options "SAMEORIGIN"; - add_header X-Content-Type-Options nosniff; - add_header X-XSS-Protection "1; mode=block"; - - server_tokens off; - - location /api/ { - proxy_pass http://127.0.0.1:3030; # If you changed Backend port in gunicorn_config.py file, please update it! - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header Host $host; - proxy_http_version 1.1; - proxy_set_header Connection ""; - - # Needed headers to make Q&A working - proxy_set_header Question $http_question; - proxy_set_header Authorization $http_authorization; - proxy_set_header Answer $http_answer; - } - - location / { - root /var/www/asklvkaszus-frontend; # If you specified other directory than this while installing Frontend, please update it! - index index.html - } - - if ($https = '') { return 301 https://$host$request_uri; } -} - -server { - listen 80; - listen [::]:80; - listen 443 ssl http2; - listen [::]:443 ssl http2; - - server_name YOUR_ADMIN_FRONTEND_DOMAIN_NAME; # Must be same that is inside asklvkaszus-backend.py file because of CORS! - - ssl_certificate YOUR_CERTIFICATE_FILE_PATH; # Example: /etc/ssl/my_domain_tls_cert.pem - ssl_certificate_key YOUR_CERTIFICATE_KEY_FILE_PATH; # Example: /etc/ssl/my_domain_tls_cert_key.key - - ssl_protocols TLSv1.2 TLSv1.3; - ssl_prefer_server_ciphers on; - ssl_ciphers "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305"; - ssl_ecdh_curve secp384r1; - ssl_session_timeout 10m; - ssl_session_cache shared:SSL:10m; - ssl_session_tickets off; - ssl_stapling on; - ssl_stapling_verify on; - - add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; - add_header X-Frame-Options "SAMEORIGIN"; - add_header X-Content-Type-Options nosniff; - add_header X-XSS-Protection "1; mode=block"; - - server_tokens off; - - location / { - root /var/www/asklvkaszus-admin; # If you specified other directory than this while installing Admin Panel, please update it! - index index.html; - } - - if ($https = '') { return 301 https://$host$request_uri; } -} -``` - -- Save the file and exit your text editor. Create symlink from `sites-available` to `sites-enabled` folder to make this configuration file enabled inside NGINX: - -`sudo ln -sf /etc/nginx/sites-available/asklvkaszus-stack /etc/nginx/sites-enabled/asklvkaszus-stack` - -- Check your configuration file for errors: - -`sudo nginx -t` - -- If you see `nginx: the configuration file [...] syntax is ok` message on your screen, you must fix permissions for your Frontend and Admin Panel static files: - -``` -sudo chown -R www-data:www-data /var/www/asklvkaszus-frontend # If you specified other directory than this while installing Frontend, please update it! -sudo chown -R www-data:www-data /var/www/asklvkaszus-admin # If you specified other directory than this while installing Admin Panel, please update it! -``` -- Finally, restart your NGINX server by running this command: - -`sudo service nginx restart` - -- Your App should be now available when you visit your domain name where you wanted to install this project! If everything works correctly, then congratulations - You Made It! - - -#### You experienced problems after installation process? - -If you experienced any problems after the installation, open and read `Common problems after installation.md` file for further help! \ No newline at end of file diff --git a/Documentation/Common problems after installation.md b/Documentation/Common problems after installation.md deleted file mode 100644 index d5067b9..0000000 --- a/Documentation/Common problems after installation.md +++ /dev/null @@ -1,22 +0,0 @@ -# Common problems after installation - -If you experienced any problems after installation and configuration of my project. Check out those possible fixes for you below before opening a new issue on GitHub! - -This list will be updated regularly when I will get a new issue about this app, and it will be easy to fix. - -### Can't connect to MySQL server on 'xxx:3306' - -This error will be displayed inside logs of GUnicorn server or in the output of the terminal itself, and it is coming from Ask @lvkaszus! Backend side - where questions and answers are handled on the application server. - -Example of this error will look like this: -- `mysql.connector.errors.DatabaseError: 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (61)` - - -That means that Backend side written in Python can't connect to your questions and answers database, where it will put all of your Q&A data. - -How can I fix this? - -You can fix this, by double-checking the database hostname or IP address that you provided when installing this application. Check if it is correct and not have maybe typo somewhere. If you are used Non-Docker installation method, try replacing your current MySQL Host inside Backend source code file and inside `# BEGIN CONFIGURATION` and `# END CONFIGURATION` there will be a `host='',` line. Try entering there `localhost` or when localhost is not working, try your local IP like `192.168.1.50`. - -But if you was using Docker installation method to install this application, you not missed anything and fixes that I provided above are not working, check if all of the containers are on the same network or create new Docker network and deploy all of the needed containers again but with newly created network attached to all of them. If this doesn't work, you can try typing inside `MYSQL_HOST` environment variable in `asklvkaszus-backend` container a correct name of the MariaDB (or other database server) container like `asklvkaszusdatabase`. - diff --git a/Documentation/Features inside this application!.md b/Documentation/Features inside this application!.md deleted file mode 100644 index 654ce96..0000000 --- a/Documentation/Features inside this application!.md +++ /dev/null @@ -1,51 +0,0 @@ -# BBCode Integration - -"Ask @lvkaszus!" Project has built-in BBCode support that can format text inside questions and answers. This is done temporarily (for now) by using regular expressions and placing HTML Code inside elements using `dangerouslySetInnerHTML` in React and sanitizing input in Python backend. All done by myself - I was trying to find a suitable library for this, but `react-bbcode` or other libraries like this we're not working in my project 😢 - -This is not a good idea for long-term usage, but in the next release - I will replace this with `BBob` React library thanks to my friend from school named @Bazyli12 for providing me a nice template for using this library inside React projects! ❤️ - -## What is BBCode? - -BBCode is an easy way to format text such as underlining, bolding or italicizing and allows in this project to insert YouTube videos and map locations in the form of geographic coordinates. Also there is automatic URL detection system in questions sent by people using your application based on this project! - -For example: -- Paste any URL to question form or reply form and when the question or answer has been sent, it automatically transforms this URL it into clickable link in user interface. - -## What BBCodes are supported? - -There are several BBCodes supported in this app: - -- `[b]Bold Text[/b]` - Makes the text in the question that is in the [b] and [/b] tags bold like this: Bold text! - -- `[u]Underlined Text[/u]` - Makes the text in the question that is in the [u] and [/u] tags underlined like this: Underlined Text! - -- `[i]Italicized text[/i]` - Makes the text in the question that is in the [u] and [/u] tags italicized like this: Italicized Text! - -Special BBCodes: - -- `[yt]Link to YouTube video[/yt]` - Inserts a YouTube video in the question that is in the [yt] and [/yt] tags. You can check it yourself by self-hosting this project on your own and having fun with it! - -- `[location:Latitude,Longtitude]` - Inserts a location on map by specifying latitude and longtitude in the [location] tag. You can also check it by yourself when self-hosting this project on your own and having fun with it! - -## How to use them inside questions and answers? - -It's pretty easy to use them inside your questions and/or answers! Just type your question or answer like you would do it normally, but type additional things in question/reply form like this: - -- `This is a question with [b]bold text inside![/b]` - - It will look like this after submitting: This is a question with bold text inside! - -## And how to use Special BBCodes like YouTube video embed or map location? - -You also write your question or answer like you would normally do, but with `[yt]Link to YouTube Video[/yt]` tags inside! - -- `Check out this new video! [yt]https://youtube.com/watch?v=ABCD1234[/yt]` - - This will send your question or answer like a normal message but with YouTube Player that plays your video under submitted question/answer! - - -Using Map Location is also straight-forward! Just get your selected location latitude and longtitude numbers from the Internet and write your question/answer just like this: - -- `Check out this place! [location:52.237049,21.017532]` - - This will send your question or answer like a normal message but with location on OpenStreetMaps that shows city of Warsaw in Poland! \ No newline at end of file diff --git a/Documentation/Installation.md b/Documentation/Installation.md deleted file mode 100644 index b8da652..0000000 --- a/Documentation/Installation.md +++ /dev/null @@ -1,542 +0,0 @@ -# Installation Guides - -If you want to install this project on your own server as Docker Containers, scroll down to Docker section below! -
-But if you don't want to use Docker for this project, there is also a Manual Installation section below! - -### Prerequisites - -- Get a domain name and a server with Linux installed on it. For free, you can get a server using Oracle Cloud and get up to 4 cores and 24GB of RAM to use on ARM64 architecture (overkill for this project, but if you want to deploy some other applications than that, it can be useful!) - -- Point your domain name to your server by editing DNS records in your domain registrar. You can use Cloudflare DNS for this. If you want to use Cloudflare, you must change the NS records in your domain registrar pointing to Cloudflare (NS1: xxxxx.ns.cloudflare.com NS2: xxxxx.ns.cloudflare.com) and then change the main DNS records (A, CNAME etc.) in Cloudflare Dashboard to point to your server. You also will get free SSL/TLS certificate for your domain. - -- Open ports `80` and `443` to enable HTTP and HTTPS on your server. For example if you are using FirewallD as your firewall, just use those commands on your server: - -``` -sudo firewall-cmd --zone=public --permanent --add-port=80/tcp -sudo firewall-cmd --zone=public --permanent --add-port=443/tcp -sudo firewall-cmd --reload -``` - -## Docker - -You have two ways to deploy this project on your own server. You can use Docker Compose, or deployment by Docker CLI - choose way that you like. - -### Docker Compose - -- Install Docker Compose if you didn't did this previously: - -`sudo apt install docker-compose` - -- Create new Docker Compose file, using this command: - -`nano docker-compose.yml` - -- Paste this to your new Docker Compose file: - -⚠️ WARNING! Modify Environment Variables, Credentials and Domain Names/URLs accordingly! ⚠️ - -``` -version: '3.8' - -services: - asklvkaszusdatabase: - image: mariadb:latest - container_name: asklvkaszusdatabase - networks: - - asklvkaszus-network - environment: - MYSQL_USER: asklvkaszus - MYSQL_PASSWORD: changemeplease - MYSQL_ROOT_PASSWORD: changemeplease - MYSQL_DATABASE: asklvkaszus - restart: unless-stopped - ports: - - "3306:3306" - - asklvkaszusredis: - image: redis:latest - container_name: asklvkaszusredis - networks: - - asklvkaszus-network - restart: unless-stopped - ports: - - "6379:6379" - - asklvkaszusbackend: - image: lvkaszus/asklvkaszus-backend:latest - container_name: asklvkaszusbackend - networks: - - asklvkaszus-network - environment: - MAIN_ACCESS_URL: "ask.example.com" - ADMIN_ACCESS_URL: "admin-ask.example.com" - SENDMSG_LIMIT: "10 per hour" - ADMIN_LIMIT: "50 per hour" - AUTH_KEY: "changeme" - MYSQL_HOST: "asklvkaszusdatabase" - MYSQL_PORT: "3306" - MYSQL_USER: "asklvkaszus" - MYSQL_PASSWORD: "admin" - MYSQL_DATABASE: "asklvkaszus" - REDIS_HOST: "asklvkaszusredis" - REDIS_PORT: "6379" - REDIS_DBS_0: "0" - REDIS_DBS_1: "1" - restart: unless-stopped - ports: - - "3030:3030" - - asklvkaszusfrontend: - image: lvkaszus/asklvkaszus-frontend:latest - container_name: asklvkaszusfrontend - networks: - - asklvkaszus-network - environment: - YOUR_NICKNAME: "@YourNickname" - API_DOMAIN_NAME: "ask.example.com" - restart: unless-stopped - ports: - - "3031:3031" - - asklvkaszusadmin: - image: lvkaszus/asklvkaszus-admin:latest - container_name: asklvkaszusadmin - networks: - - asklvkaszus-network - environment: - YOUR_NICKNAME: "@YourNickname" - restart: unless-stopped - ports: - - "3032:3032" - -networks: - asklvkaszus-network: - driver: bridge -``` - -- If you are done editing your Docker Compose file, just save it and deploy this application by using this command: - -`docker-compose up -d` - -- You are pretty much done! Check if application is running correctly by visiting Main Domain of your application and also Administrator Panel using second Domain Name you just configured! - -### Docker CLI - -- Let's start by downloading and installing Docker Engine on your own server. You can do this by following those simple steps: Just enter this commands below to your server when you are connected to it via SSH. - -(Source: Docker Engine Installation Guide) -``` -sudo apt-get update && sudo apt-get install ca-certificates curl gnupg -sudo install -m 0755 -d /etc/apt/keyrings -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg -sudo chmod a+r /etc/apt/keyrings/docker.gpg - -echo \ - "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ - "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ - sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - -sudo apt-get update - -sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -``` - -- When you are done installing Docker Engine, enable and start Docker Engine (in case it it not enabled yet): - -`sudo systemctl enable --now docker` - -- Add your user to `docker` group to execute commands as non-root user: - -`sudo usermod -aG docker YOUR_USERNAME` - -- Log out and log in back into the server to apply group permissions changes. - -- You are ready to deploy "Ask @lvkaszus!" project onto your server! Let's start with something simple. - -- Not required but recommended: Create separate Docker Network for this project: - -`docker network create asklvkaszus-network` - You can customize network name to fit your needs. - -⚠️ WARNING! Remember your Docker Network name because you will need it to deploy needed containers inside this network with `--network YOUR_NETWORK_NAME` parameter when deploying every single container! ⚠️ -

-### Backend in Docker - -⚠️ WARNING! Pay attention to the commands from now to not make any mistake while deployment process! ⚠️ -

-- We are ready to deploy fresh MariaDB database image from Docker Hub registry using: - -`docker run -d --name asklvkaszusdatabase --network asklvkaszus-network -e MYSQL_USER=asklvkaszus -e MYSQL_PASSWORD=changemeplease -e MYSQL_ROOT_PASSWORD=changemeplease -e MYSQL_DATABASE=asklvkaszus --restart unless-stopped -p 3306:3306 mariadb:latest` - -Short explanation: -
-`MYSQL_USER=asklvkaszus` - Please enter there your main database user that your backend will use. -
-`MYSQL_PASSWORD=changemeplease` - Please change this default password and replace it by strong password that backend will use to access application database. -
-`MYSQL_ROOT_PASSWORD=changemeplease` - Please change this default password and replace it by strong password that is for administrative purposes. -
-`MYSQL_DATABASE=asklvkaszus` - You can modify database name used by this project, but you can also leave it default name. -

-`-p 3306:3306` - Specify the port that MariaDB should be accessible from. Do not change the numbers after the `:`! -

-- Docker Engine should start pulling images from Docker Hub repository, just please wait a while and it will be done and running! - -- When MariaDB image and container is running, you can now install Redis on your server: - -`docker run -d --name asklvkaszusredis --network asklvkaszus-network --restart unless-stopped -p 6379:6379 redis:latest` - -Short explanation: -
-`-p 6379:6379` - Please enter there your Redis port number that your backend will use. Do not change the numbers after the `:`! -

-- After you installed MariaDB Database and Redis Server successfully, you can now finally deploy backend container. - -`docker run -d --name asklvkaszusbackend --network asklvkaszus-network -e MAIN_ACCESS_URL="ask.example.com" -e ADMIN_ACCESS_URL="admin-ask.example.com" -e SENDMSG_LIMIT="10 per hour" -e ADMIN_LIMIT="50 per hour" -e AUTH_KEY="changeme" -e MYSQL_HOST=asklvkaszusdatabase -e MYSQL_PORT="3306" -e MYSQL_USER="asklvkaszus" -e MYSQL_PASSWORD="sameasindatabasecontainer" -e MYSQL_DATABASE="asklvkaszus" -e REDIS_HOST="asklvkaszusredis" -e REDIS_PORT="6379" -e REDIS_DBS_0="0" -e REDIS_DBS_1="1" --restart unless-stopped -p 3030:3030 lvkaszus/asklvkaszus-backend:latest` - -Short explanation: -
-`MAIN_ACCESS_URL="ask.example.com"` - Please enter there your main application URL where users will ask you questions. -
-`ADMIN_ACCESS_URL="admin-ask.example.com"` - Please enter there your application URL where you will be logging in for replying or deleting your questions. -

-`SENDMSG_LIMIT="10 per hour"` - How many requests are allowed in what period of time for sending questions? - '10 per hour' is default. -
-`ADMIN_LIMIT="50 per hour"` - How many requests are allowed in what period of time for an administrator? - '50 per hour' is default. -

-`AUTH_KEY="changeme"` - Generate random password with good length (32 characters recommended), this will be used to authenticate you to the API that Admin Page uses. - -
- -`MYSQL_HOST=asklvkaszusdatabase` - Enter your MariaDB Database Server hostname. You can type your database container name if you want. -
-`MYSQL_PORT="3306"` - Enter your MariaDB Database Server port. If you didn't change MariaDB port, you can leave defaults there. -
-`MYSQL_USER="asklvkaszus"` - Enter your MariaDB User for Backend access. If you didn't change username, you can leave defaults there. -
-`MYSQL_PASSWORD="sameasindatabasecontainer"` - Please change this default password to password that you provided to Backend user when configuring MariaDB Server. -
-`MYSQL_DATABASE="asklvkaszus"` - Enter your Database Name from MariaDB that Backend will use to store your questions and answers. If you didn't change Database Name, you can leave defaults there. - -
- -`REDIS_HOST="asklvkaszusredis"` - Hostname or IP Address to your Redis Server where rate-limiting and temporary data will be stored. 'asklvkaszusredis' will mostly work. -
-`REDIS_PORT="6379"` - Port number of your Redis Server - 6379 is default. -
-`REDIS_DBS_0="0"` - Database numbers in your Redis Server. Number '0' is for rate-limiting data. -
-`REDIS_DBS_1="1"` - Database numbers in your Redis Server. Number '1' is for temporary data (only for storing generated ID's temporarily for now) - -- And that's should be it for Backend installation and configuration! - -

- -### Frontend - -- Frontend and also the Admin Panel are pretty easy to setup with Docker. Just pull the image and deploy with one short command: - -`docker run -d --name asklvkaszusfrontend --network asklvkaszus-network -p 3031:3031 -e YOUR_NICKNAME="@YourNickname" -e API_DOMAIN_NAME="ask.example.com" --restart unless-stopped lvkaszus/asklvkaszus-frontend:latest` - -Short explanation: -
-`-p 3031:3031` - Please enter there your port number that your Frontend will use. Do not change the numbers after the `:`! -

-`YOUR_NICKNAME="@YourNickname"` - Please enter your Nickname that you want to be displayed on your questions page! -
-`API_DOMAIN_NAME="ask.example.com"` - Enter there a valid domain name where your Frontend and Application API will be (ask.example.com/api/v1/fetch_all_questions - for example) - currently must be the same! - -

- -### Admin Panel - -- Last step of this mess! Just pull the image and deploy with one short command: - -`docker run -d --name asklvkaszusadmin --network asklvkaszus-network -p 3032:3032 -e YOUR_NICKNAME="@YourNickname" --restart unless-stopped lvkaszus/asklvkaszus-admin:latest` - -Short explanation: -
-`-p 3032:3032` - Please enter there your port number that your Admin Panel will use. Do not change the numbers after the `:`! -

-`YOUR_NICKNAME="@YourNickname"` - Please enter your Nickname that you want to be displayed on your questions page! - -
- -#### After installation Steps - -When you are done installing everything above for this project, head out to the `After installation steps.md` file to expose your freshly installed Anonymous Q&A application like this one to your domain name and world-wide web! - - -#### You experienced problems after installation process? - -If you experienced any problems after the installation, open and read `Common problems after Installation.md` file for further help! - - -## Manual Installation - -Follow these steps, when you want to install this application with Frontend and Admin Panel: - -- Install required packages by using this command if you are using APT Package Manager and Ubuntu: - -`sudo apt install -y build-essential libssl-dev libffi-dev python3-dev python3-pip python3-venv mariadb-server redis git` - -- Install Node Version Manager by using this command: - -`curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash` - -- Also, execute commands that are displayed after installation of NVM: - -``` -export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm -[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion -``` - -- Install NPM package using: - -`nvm install node` - -- Run MySQL Secure Installation binary provided by MariaDB Package and configure it to your needs by following the instructions displayed on your screen: - -`sudo mysql_secure_installation` - -There are my settings if you don't know what select here: - -``` -Enter current password for root (enter for none): --- - -Switch to unix_socket authentication [Y/n] N --- - -Change the root password? [Y/n] N --- - -Remove anonymous users? [Y/n] Y - -Disallow root login remotely? [Y/n] Y - -Remove test database and access to it? [Y/n] Y - -Reload privilege tables now? [Y/n] Y -``` - -- Create database and `asklvkaszus` user for backend to database communication: - -``` -sudo mysql -u root - - -CREATE DATABASE asklvkaszus; - -CREATE USER 'asklvkaszus'@'localhost' IDENTIFIED BY 'enter_asklvkaszus_user_password_there'; - -GRANT ALL PRIVILEGES ON asklvkaszus.* TO 'asklvkaszus'@'localhost'; - -FLUSH PRIVILEGES; - -EXIT; -``` - -- Clone project repository and enter it's directory by typing this command: - -`git clone https://github.com/lvkaszus/asklvkaszus-react` - -- And from now, you are ready to install core components of this project like Backend, then Frontend and lastly the Admin Panel! - -

- -- Create Python Virtual Environment for Ask @lvkaszus! Backend and enable it: - -`python3 -m venv asklvkaszus-backend && cd asklvkaszus-backend && source bin/activate` - -- Copy all contents of Non-Docker Backend directory to your created Python Virtual Environment folder: - -`cp asklvkaszus-react/asklvkaszus-backend/nondocker/*.* ` - -- Open `asklvkaszus-backend.py` file with your favourite text editor for example with `nano`: - -`nano asklvkaszus-backend.py` - -- Search for `# ----- BEGINNING OF CONFIGURATION -----` line and modify some things below it: - -
- -`FRONTEND_HOST = "your-frontend.host"` and `ADMIN_HOST = "your-backend.host"` - Please enter there your Main Frontend URL and Admin Panel URL WITHOUT HTTPS at the beginning. - -
- -`SENDMSG_LIMIT = "10 per hour"` and `ADMIN_LIMIT = "50 per hour"` - Please set your rate-limiting rules to fit your needs. If you want, you can leave defaults there. - -
- -`API_KEY = "changeme"` - Your secret API Authentication Key for Authorization by using API or Admin Panel (replying to questions, deleting them etc.) Please change it from 'changeme' and set it to something that has ideally +24 characters. - -
- -`SQL_HOST = 'localhost'` - Enter your MariaDB Database Server hostname. If you are installing it on the same host, you can leave defaults there. -
-`SQL_PORT = 3306` - Enter your MariaDB Database Server port. If you didn't change MariaDB port, you can leave defaults there. -
-`SQL_USER = 'asklvkaszus'` - Enter your MariaDB User for Backend access. If you didn't change username, you can leave defaults there. -
-`SQL_PASSWORD = 'admin'` - Password of your MySQL/MariaDB User that you provided above. Please change it from 'admin' and set it to something that has ideally +16 characters. -
-`SQL_DATABASE = 'asklvkaszus'` - Enter your Database Name from MariaDB that Backend will use to store your questions and answers. If you didn't change Database Name, you can leave defaults there. - -
- -`REDIS_HOST = 'localhost'` - Hostname or IP Address to your Redis Server where rate-limiting and temporary data will be stored. 'localhost' is default. -
-`REDIS_PORT = 6379` - Port number of your Redis Server - 6379 is default. -
-`REDIS_DBS = [0, 1]` - Database numbers in your Redis Server. Number '0' is for rate-limiting data, and '1' is for temporary data (only for storing generated ID's temporarily for now) - - -- And that's should be it for configuring Backend. Save the file by pressing `Ctrl+S` and exit the editor by pressing `Ctrl+X`. - -- Install all required dependencies by executing this command inside your created PyEnv for Backend: - -`pip install -r requirements.txt` - -- After done installing dependencies, check if you can run Python Backend without any problems. If you see this, you are good to go! - -``` -python3 asklvkaszus-backend.py - - * Serving Flask app 'asklvkaszus-backend' - * Debug mode: off -WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. - * Running on http://127.0.0.1:5000 -Press CTRL+C to quit -``` - -- Also check if you can run GUnicorn HTTP Server for Backend. You should see something like this: - -``` -gunicorn -c gunicorn_config.py asklvkaszus-backend:app - -[2023-07-30 20:39:19 +0000] [26394] [INFO] Starting gunicorn 21.2.0 -[2023-07-30 20:39:19 +0000] [26394] [INFO] Listening at: http://0.0.0.0:3030 (26394) -[2023-07-30 20:39:19 +0000] [26394] [INFO] Using worker: gthread -[2023-07-30 20:39:19 +0000] [26395] [INFO] Booting worker with pid: 26395 -``` - -- If both of these things are working correcly, then you can create systemd service unit by entering this command: - -`sudo nano /etc/systemd/system/asklvkaszus-backend.service` - -- Paste this contents into this new file: - -``` -[Unit] -Description=Ask @lvkaszus! - Python Flask Backend Service -After=network.target - -[Service] -User=ubuntu -WorkingDirectory=/home//asklvkaszus-backend -Environment="PATH=/home//asklvkaszus-backend/bin" -ExecStart=/home//asklvkaszus-backend/bin/gunicorn -c /home//asklvkaszus-backend/gunicorn_config.py asklvkaszus-backend:app -Restart=always - -[Install] -WantedBy=multi-user.target -``` - -- Refresh systemd services, enable and also start Backend service: - -``` -sudo systemctl daemon-reload -sudo systemctl enable --now asklvkaszus-backend -``` - -- Deactivate Python Virtual Environment: - -`deactivate` - -- And that's should be it for Backend installation and configuration! - -

- -### Frontend - -- Go to your cloned repository folder and then to Frontend folder, for example: - -`cd ~/asklvkaszus-react/asklvkaszus-frontend` - -- Install required NPM dependencies: - -`npm install` - -- Create new Environment Variable File by using: - -`nano .env` - -- And pasting this to .env file, modify those accordingly: - -``` -VITE_API_DOMAIN_NAME="YourBackendDomainNameWithoutHttpsAtTheBeginning" -VITE_YOUR_NICKNAME="YourNickname" -``` - -- When you are done modifying those variables, save and exit your file editor. - -- Build source files: - -`npm run build` - -- Check if `dist` folder exists by entering `ls` command. If yes, move it to `/var/www/` folder or other that matches your case: - -``` -sudo mkdir /var/www # This is needed if you don't installed Apache2 or NGINX yet or if it does not exists! -sudo mv dist/ /var/www/asklvkaszus-frontend -sudo chown -R www-data:www-data /var/www/asklvkaszus-frontend # You must install Apache2 or NGINX, without it this command may not work! -``` - -- And that's should be it for Frontend installation and configuration! - -

- -### Admin Panel - -- Go to your cloned repository folder and then to Admin Panel folder, for example: - -`cd ~/asklvkaszus-react/asklvkaszus-admin` - -- Install required NPM dependencies: - -`npm install` - -- Create new Environment Variable File by using: - -`nano .env` - -- And pasting this to .env file, modify those accordingly: - -``` -VITE_YOUR_NICKNAME="YourNickname" -``` - -- When you are done modifying those variables, save and exit your file editor. - -- Build source files: - -`npm run build` - -- Check if `dist` folder exists by entering `ls` command. If yes, move it to `/var/www/` folder or other that matches your case: - -``` -sudo mkdir /var/www # This is needed if you don't installed Apache2 or NGINX yet or if it does not exists! -sudo mv dist/ /var/www/asklvkaszus-admin -sudo chown -R www-data:www-data /var/www/asklvkaszus-admin # You must install Apache2 or NGINX, without it this command may not work! -``` - -- And that's should be it for Admin Panel installation and configuration! - - -#### After installation Steps - -When you are done installing everything above for this project, head out to the `After installation steps.md` file to expose your freshly installed Anonymous Q&A application like this one to your domain name and world-wide web! - - -#### You experienced problems after installation process? - -If you experienced any problems after the installation, open and read `Common problems after installation.md` file for further help! \ No newline at end of file diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 9d770e0..5594f71 --- a/README.md +++ b/README.md @@ -1,71 +1,80 @@ -# **Hello! Project is not dead! 😄️ In the upcoming 3.0 version, much things will change. Some useful features will be added and update will be available in several days!** -

-About Upcoming v3.0: -- Completely re-written and re-designed Backend -- `.env` Environment Variable File with generator written in bash for Backend Settings -- Using JSON Body to send and receive data (instead of HTTP Headers) to fix other problems with encoding/decoding when sending messages/displaying current messages -- Sender Blocking based on sender's IP address blacklisting in one of the database tables (IP Addresses of Users around the internet are public after all, so sender's anonymity/privacy has not been lost!) -- Authorization System that consists of Register + Login + Change Password + Logout features working with JSON Web Tokens (JWT) that are stored in cookies with `HttpOnly=True`, `Secure=True` and `SameSite=Strict` parameters for enhanced protection against XSS and other attacks -- Cross-Site Request Forgery (CSRF) Protection by Flask-WTF -- Separate Rate-limiting for Authorization System, User Frontend Endpoints, Admin Frontend Enpoints, User RESTful API Endpoints and Admin RESTful API Endpoints to enhance rate-limiting options customization -- SQLAlchemy instead of pure SQL Queries -- User/Admin Frontend API -- RESTful User/Admin API with option to restrict CORS Access-Control-Allow-Origin header in .env file -- Feature to completely disable/enable turning on application RESTful User/Admin API by changing Global API setting in application global settings -- User Frontend and Admin Frontend are in one package now (because of CSRF Protection issues when User Frontend was on second domain and when Admin Frontend was on some other domain) -- Update Checker -- 'Approve Questions First' Mode -- Added feature to hide/show all questions or hide/show single question -- Telegram Notifications -- Integrated Backend Tools for recovering/changing administrator password, deleting administrator account or restoring factory default settings -- Re-designed User Interface with Material UI library -
-and many more... - -## Ask @lvkaszus! - Python + React - -- Anonymous questions and answers pretty much like NGL App or Tellonym, with Backend written in Python, very simple user interface, support for i18n and also BBCode! - -
- Ask @lvkaszus! - Frontend - Ask @lvkaszus! - Admin Panel +
+

Ask @lvkaszus!

+

Anonymous questions and answers application, pretty much like Ngl or Tellonym, but better!

-⚠️ WARNING! - You must have domain name and SSL/TLS certificate to use this application without any modifications to the source code! This is needed for your security. ⚠️ +| ![Alt Text](screenshots/home-dark.png) | ![Alt Text](screenshots/admin-dark.png) | +|-----------------------------------------|------------------------------------------| +| ![Alt Text](screenshots/home-light.png) | ![Alt Text](screenshots/admin-light.png) | -## Why this was created? +
+

Why this was created?

+

I pretty much like the conception of NGL App or Tellonym, but I didn't like overall application operation. So, I created my own alternative to them with some added features and no analytics inside source code.

+
+ +

Features

+ +- Receiving anonymous questions from people that have sent a message on main page with notifications (by using Telegram Bot API Integration) +- Replying to anonymous questions with use of Markdown formatting system that not only can **format** ~~text~~ but also embed an YouTube video or OpenStreetMap geolocation +- Show/Hide all questions with a single click +- Manually show/hide single question +- Multiple Sender Blocking based on sender's IP address blacklisting in one of the database tables (IP Addresses of Users around the internet are public after all, so sender's anonymity/privacy has not been lost!) +- Protected Administrator REST API +- Public User REST API +- Secure authorization/authentication system +- SQL Injection / XSS / CSRF Protection +- Completely refreshed User Interface +- Integrated Backend Tools for recovering/changing administrator password, deleting administrator account or for restoring factory default application settings +- Rate-limiting to prevent abusive actions +- Application update alerts + +

Comparison

+ +| | Ask @lvkaszus! | Tellonym | Ngl App | +|---------------------------------------|----------------------|------------------------|---------------------| +| **Open Source?** | ✅ Open Source | ❌ Open Source | ❌ Open Source | +| **Data Tracking?** | ✅ No data tracking | ❌ No data tracking | ❌ No data tracking | +| **Ads?** | ✅ Ad-free | ❌ Ad-free | ❌ Ad-free | +| **Automatic Questions?** | ✅ Does not send annoying automatic questions | ❌ Does not send annoying automatic questions | ❌ Does not send annoying automatic questions | +| **Text Formatting?** | ✅ Offers text formatting (as well as placing videos or location inside questions/answers!) | ⚠️ Only offers placing photos | ⚠️ Only offers placing photos in the background | +| **Notifications?** | ✅ Notifications (by Telegram) | ✅ Notifications | ✅ Notifications | +| **Available On?** | ✅ Desktop and Mobile (PWA) | ✅ Desktop and Mobile | ⚠️ Only on Mobile | + +
+

Installation

-I pretty much like the conception of NGL App or Tellonym, but I didn't like overall application operation. So, I created my own alternative to them with some added features and no analytics inside source code. +If you want to give this project a try and install it on your server, then please visit +[Full installation guide available here](documentation/Installation.md)! -### Features -- You can change nickname viewed on Frontend and Backend from "@lvkaszus" to for example "@MyNickname" - -- Separated Backend, Frontend and Admin Panel - -- i18n support for internationalization - -- BBCode support for bold, italic and underlined text but also with YouTube video embed support and Map Location embed by OpenStreetMap (currently by `dangerouslySetInnerHTML` and sanitization in backend, but this will change in next release) - -- Rate-limiting by Flask-Limiter and Redis - -- Database powered by MariaDB - -- Admin Panel with options like deleting all questions, replying to questions and also deleting single questions - -- Very basic authentication system by using API Auth Key specified by you during installation of Backend of this App and Cookies with expiration time of 30 minutes by default +Application is available to install in Docker image or if you don't want to install it with using Docker, you can also install it manually step-by-step as described in the guide linked above. +
+ +
+

Documentation

+ +Entire documentation for this project is inside the `documentation` directory in the root path of this project repository. +[Full documentation available here](documentation/Main.md)! +
+ +
+

Contributions

-### Do you want to contribute? +

Project is fully open for contributions! 😁️

-If you want to add new feature to this project or improve something, you can contribute without any problems! +

Several steps you MUST do when want to contribute:

+
+- Fork this repository: https://github.com/lvkaszus/asklvkaszus/fork +- Clone your forked repository: `git clone https://github.com//` +- Make your desired changes to the code. +- Create new branch with your new feature that you want to apply: `git checkout -b ` +- Apply your changes: `git add .` +- Commit your changes: `git commit -m ""` +- Push your changes to your forked repository: `git push origin ` +- Create a new pull request with it's changes description. -### Credits -- This project uses Python libraries like Flask, Flask-Limiter, Flask-CORS, mysql-connector-python, bleach and others. -- This project uses React library. (https://github.com/facebook/react) -- This project uses Vite library. (https://github.com/vitejs/vite) -- This project uses Axios library. (https://github.com/axios/axios) -- This project uses i18n for React library. (https://github.com/i18next/react-i18next) -- This project uses Font Awesome for React library. (https://github.com/FortAwesome/react-fontawesome) -- This project uses Fira Code font. (https://github.com/tonsky/FiraCode) +

+And next, i will check and test your pull request. If eveything will be good, i will merge it. When there be any problems, i will notify you about them. +

diff --git a/asklvkaszus-admin/Dockerfile b/asklvkaszus-admin/Dockerfile deleted file mode 100644 index ec007c3..0000000 --- a/asklvkaszus-admin/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM node:current-alpine3.18 - -WORKDIR /asklvkaszus/admin - -ENV YOUR_NICKNAME="me" - -COPY package*.json ./ - -RUN npm install - -COPY . . - -EXPOSE 3032 - -CMD ["sh", "start.sh"] \ No newline at end of file diff --git a/asklvkaszus-admin/index.html b/asklvkaszus-admin/index.html deleted file mode 100644 index f3727c9..0000000 --- a/asklvkaszus-admin/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - -
- - - \ No newline at end of file diff --git a/asklvkaszus-admin/package-lock.json b/asklvkaszus-admin/package-lock.json deleted file mode 100644 index d906302..0000000 --- a/asklvkaszus-admin/package-lock.json +++ /dev/null @@ -1,7593 +0,0 @@ -{ - "name": "asklvkaszus-admin", - "version": "2.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "asklvkaszus-admin", - "version": "2.1", - "dependencies": { - "@fontsource/fira-code": "^5.0.4", - "@fortawesome/fontawesome-svg-core": "^6.4.0", - "@fortawesome/free-brands-svg-icons": "^6.4.0", - "@fortawesome/free-regular-svg-icons": "^6.4.0", - "@fortawesome/free-solid-svg-icons": "^6.4.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "axios": "^1.4.0", - "compression": "^1.7.4", - "express": "^4.18.2", - "js-cookie": "^3.0.5", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-helmet": "^6.1.0", - "react-i18next": "^13.0.2", - "react-router-dom": "^6.14.2", - "typeface-roboto": "^1.1.13", - "vite-plugin-pwa": "^0.16.4" - }, - "devDependencies": { - "@types/react": "^18.0.37", - "@types/react-dom": "^18.0.11", - "@vitejs/plugin-react": "^4.0.0", - "autoprefixer": "^10.4.14", - "eslint": "^8.38.0", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.3", - "postcss": "^8.4.24", - "tailwindcss": "^3.3.2", - "vite": "^4.3.9" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", - "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", - "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", - "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", - "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", - "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", - "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", - "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz", - "integrity": "sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz", - "integrity": "sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", - "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", - "dependencies": { - "@babel/compat-data": "^7.23.2", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.23.2", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.23.0", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.23.0", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.23.0", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-modules-systemjs": "^7.23.0", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.23.0", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.23.0", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" - }, - "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", - "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@fontsource/fira-code": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/@fontsource/fira-code/-/fira-code-5.0.14.tgz", - "integrity": "sha512-XAATSwSME0Lx4Pxk67QJhMiX6tpJxf9oc73s+EoXSqW8Qiko8gy+3enfDdVPnducwIv8+CGduQmhYkqs03q8xA==" - }, - "node_modules/@fortawesome/fontawesome-common-types": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.2.tgz", - "integrity": "sha512-1DgP7f+XQIJbLFCTX1V2QnxVmpLdKdzzo2k8EmvDOePfchaIGQ9eCHj2up3/jNEbZuBqel5OxiaOJf37TWauRA==", - "hasInstallScript": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.2.tgz", - "integrity": "sha512-gjYDSKv3TrM2sLTOKBc5rH9ckje8Wrwgx1CxAPbN5N3Fm4prfi7NsJVWd1jklp7i5uSCVwhZS5qlhMXqLrpAIg==", - "hasInstallScript": true, - "dependencies": { - "@fortawesome/fontawesome-common-types": "6.4.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-brands-svg-icons": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.2.tgz", - "integrity": "sha512-LKOwJX0I7+mR/cvvf6qIiqcERbdnY+24zgpUSouySml+5w8B4BJOx8EhDR/FTKAu06W12fmUIcv6lzPSwYKGGg==", - "hasInstallScript": true, - "dependencies": { - "@fortawesome/fontawesome-common-types": "6.4.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-regular-svg-icons": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.2.tgz", - "integrity": "sha512-0+sIUWnkgTVVXVAPQmW4vxb9ZTHv0WstOa3rBx9iPxrrrDH6bNLsDYuwXF9b6fGm+iR7DKQvQshUH/FJm3ed9Q==", - "hasInstallScript": true, - "dependencies": { - "@fortawesome/fontawesome-common-types": "6.4.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-solid-svg-icons": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.2.tgz", - "integrity": "sha512-sYwXurXUEQS32fZz9hVCUUv/xu49PEJEyUOsA51l6PU/qVgfbTb2glsTEaJngVVT8VqBATRIdh7XVgV1JF1LkA==", - "hasInstallScript": true, - "dependencies": { - "@fortawesome/fontawesome-common-types": "6.4.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/react-fontawesome": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", - "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", - "dependencies": { - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "~1 || ~6", - "react": ">=16.3" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@remix-run/router": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.10.0.tgz", - "integrity": "sha512-Lm+fYpMfZoEucJ7cMxgt4dYt8jLfbpwRCzAjm9UgSLOkmlqo9gupxt6YX3DY0Fk155NT9l17d/ydi+964uS9Lw==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "dependencies": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.3.tgz", - "integrity": "sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==", - "devOptional": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.6", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.6.tgz", - "integrity": "sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==", - "devOptional": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.3.tgz", - "integrity": "sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==", - "devOptional": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.3.tgz", - "integrity": "sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==", - "devOptional": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - }, - "node_modules/@types/node": { - "version": "20.8.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz", - "integrity": "sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==", - "dependencies": { - "undici-types": "~5.25.1" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.9", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz", - "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==", - "dev": true - }, - "node_modules/@types/react": { - "version": "18.2.31", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.31.tgz", - "integrity": "sha512-c2UnPv548q+5DFh03y8lEDeMfDwBn9G3dRwfkrxQMo/dOtRHUUO57k6pHvBIfH/VF4Nh+98mZ5aaSe+2echD5g==", - "dev": true, - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.2.14", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.14.tgz", - "integrity": "sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.5", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz", - "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==", - "dev": true - }, - "node_modules/@types/trusted-types": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.5.tgz", - "integrity": "sha512-I3pkr8j/6tmQtKV/ZzHtuaqYSQvyjGRKH4go60Rr0IDLlFxuRT5V32uvB1mecM5G1EVAUyF/4r4QZ1GHgz+mxA==" - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.1.0.tgz", - "integrity": "sha512-rM0SqazU9iqPUraQ2JlIvReeaxOoRj6n+PzB1C0cBzIbd8qP336nC39/R9yPi3wVcah7E7j/kdU1uCUqMEU4OQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.22.20", - "@babel/plugin-transform-react-jsx-self": "^7.22.5", - "@babel/plugin-transform-react-jsx-source": "^7.22.5", - "@types/babel__core": "^7.20.2", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "node_modules/asynciterator.prototype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axios": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", - "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz", - "integrity": "sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.32.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001551", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001551.tgz", - "integrity": "sha512-vtBAez47BoGMMzlbYhfXrMV1kvRF2WP/lqiMuDu1Sb4EE4LKEgjopFDSRtZfdVnslNRpOqV/woE+Xgrwj6VQlg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/core-js-compat": { - "version": "3.33.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.1.tgz", - "integrity": "sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ==", - "dependencies": { - "browserslist": "^4.22.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.561", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.561.tgz", - "integrity": "sha512-eS5t4ulWOBfVHdq9SW2dxEaFarj1lPjvJ8PaYMOjY0DecBaj/t4ARziL2IPpDr4atyWwjLFGQ2vo/VCgQFezVQ==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", - "dev": true, - "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", - "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.51.0", - "@humanwhocodes/config-array": "^0.11.11", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.3.tgz", - "integrity": "sha512-Hh0wv8bUNY877+sI0BlCUlsS0TYYQqvzEwJsJJPM2WF4RnTStSnSR3zdJYa2nPOJgg3UghXi54lVyMSmpCalzA==", - "dev": true, - "peerDependencies": { - "eslint": ">=7" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/html-parse-stringify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", - "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", - "dependencies": { - "void-elements": "3.1.0" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/i18next": { - "version": "23.6.0", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.6.0.tgz", - "integrity": "sha512-z0Cxr0MGkt+kli306WS4nNNM++9cgt2b2VCMprY92j+AIab/oclgPxdwtTZVLP1zn5t5uo8M6uLsZmYrcjr3HA==", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], - "peer": true, - "dependencies": { - "@babel/runtime": "^7.22.5" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idb": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" - } - }, - "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jake/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jiti": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz", - "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", - "engines": { - "node": ">=14" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-import/node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-bytes": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", - "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" - }, - "node_modules/react-helmet": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", - "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", - "dependencies": { - "object-assign": "^4.1.1", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.1.1", - "react-side-effect": "^2.1.0" - }, - "peerDependencies": { - "react": ">=16.3.0" - } - }, - "node_modules/react-i18next": { - "version": "13.3.1", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.3.1.tgz", - "integrity": "sha512-JAtYREK879JXaN9GdzfBI4yJeo/XyLeXWUsRABvYXiFUakhZJ40l+kaTo+i+A/3cKIED41kS/HAbZ5BzFtq/Og==", - "dependencies": { - "@babel/runtime": "^7.22.5", - "html-parse-stringify": "^3.0.1" - }, - "peerDependencies": { - "i18next": ">= 23.2.3", - "react": ">= 16.8.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/react-refresh": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", - "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.17.0.tgz", - "integrity": "sha512-YJR3OTJzi3zhqeJYADHANCGPUu9J+6fT5GLv82UWRGSxu6oJYCKVmxUcaBQuGm9udpWmPsvpme/CdHumqgsoaA==", - "dependencies": { - "@remix-run/router": "1.10.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.17.0.tgz", - "integrity": "sha512-qWHkkbXQX+6li0COUUPKAUkxjNNqPJuiBd27dVwQGDNsuFBdMbrS6UZ0CLYc4CsbdLYTckn4oB4tGDuPZpPhaQ==", - "dependencies": { - "@remix-run/router": "1.10.0", - "react-router": "6.17.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-side-effect": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz", - "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==", - "peerDependencies": { - "react": "^16.3.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", - "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", - "dev": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.12", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.18.2", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "dependencies": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.22.0.tgz", - "integrity": "sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typeface-roboto": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/typeface-roboto/-/typeface-roboto-1.1.13.tgz", - "integrity": "sha512-YXvbd3a1QTREoD+FJoEkl0VQNJoEjewR2H11IjVv4bp6ahuIcw0yyw/3udC4vJkHw3T3cUh85FTg8eWef3pSaw==" - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", - "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-plugin-pwa": { - "version": "0.16.5", - "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.16.5.tgz", - "integrity": "sha512-Ahol4dwhMP2UHPQXkllSlXbihOaDFnvBIDPmAxoSZ1EObBUJGP4CMRyCyAVkIHjd6/H+//vH0DM2ON+XxHr81g==", - "dependencies": { - "debug": "^4.3.4", - "fast-glob": "^3.3.1", - "pretty-bytes": "^6.1.1", - "workbox-build": "^7.0.0", - "workbox-window": "^7.0.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "vite": "^3.1.0 || ^4.0.0", - "workbox-build": "^7.0.0", - "workbox-window": "^7.0.0" - } - }, - "node_modules/void-elements": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", - "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", - "dev": true, - "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/workbox-background-sync": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.0.0.tgz", - "integrity": "sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "7.0.0" - } - }, - "node_modules/workbox-broadcast-update": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.0.0.tgz", - "integrity": "sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==", - "dependencies": { - "workbox-core": "7.0.0" - } - }, - "node_modules/workbox-build": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.0.0.tgz", - "integrity": "sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==", - "dependencies": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "7.0.0", - "workbox-broadcast-update": "7.0.0", - "workbox-cacheable-response": "7.0.0", - "workbox-core": "7.0.0", - "workbox-expiration": "7.0.0", - "workbox-google-analytics": "7.0.0", - "workbox-navigation-preload": "7.0.0", - "workbox-precaching": "7.0.0", - "workbox-range-requests": "7.0.0", - "workbox-recipes": "7.0.0", - "workbox-routing": "7.0.0", - "workbox-strategies": "7.0.0", - "workbox-streams": "7.0.0", - "workbox-sw": "7.0.0", - "workbox-window": "7.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", - "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/workbox-build/node_modules/@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - } - } - }, - "node_modules/workbox-build/node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, - "node_modules/workbox-build/node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/workbox-build/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/workbox-build/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/workbox-build/node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/workbox-build/node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/workbox-build/node_modules/rollup": { - "version": "2.79.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/workbox-build/node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/workbox-cacheable-response": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.0.0.tgz", - "integrity": "sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==", - "dependencies": { - "workbox-core": "7.0.0" - } - }, - "node_modules/workbox-core": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.0.0.tgz", - "integrity": "sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==" - }, - "node_modules/workbox-expiration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.0.0.tgz", - "integrity": "sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "7.0.0" - } - }, - "node_modules/workbox-google-analytics": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.0.0.tgz", - "integrity": "sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==", - "dependencies": { - "workbox-background-sync": "7.0.0", - "workbox-core": "7.0.0", - "workbox-routing": "7.0.0", - "workbox-strategies": "7.0.0" - } - }, - "node_modules/workbox-navigation-preload": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.0.0.tgz", - "integrity": "sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==", - "dependencies": { - "workbox-core": "7.0.0" - } - }, - "node_modules/workbox-precaching": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.0.0.tgz", - "integrity": "sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==", - "dependencies": { - "workbox-core": "7.0.0", - "workbox-routing": "7.0.0", - "workbox-strategies": "7.0.0" - } - }, - "node_modules/workbox-range-requests": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.0.0.tgz", - "integrity": "sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==", - "dependencies": { - "workbox-core": "7.0.0" - } - }, - "node_modules/workbox-recipes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.0.0.tgz", - "integrity": "sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==", - "dependencies": { - "workbox-cacheable-response": "7.0.0", - "workbox-core": "7.0.0", - "workbox-expiration": "7.0.0", - "workbox-precaching": "7.0.0", - "workbox-routing": "7.0.0", - "workbox-strategies": "7.0.0" - } - }, - "node_modules/workbox-routing": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.0.0.tgz", - "integrity": "sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==", - "dependencies": { - "workbox-core": "7.0.0" - } - }, - "node_modules/workbox-strategies": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.0.0.tgz", - "integrity": "sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==", - "dependencies": { - "workbox-core": "7.0.0" - } - }, - "node_modules/workbox-streams": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.0.0.tgz", - "integrity": "sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==", - "dependencies": { - "workbox-core": "7.0.0", - "workbox-routing": "7.0.0" - } - }, - "node_modules/workbox-sw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.0.0.tgz", - "integrity": "sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==" - }, - "node_modules/workbox-window": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.0.0.tgz", - "integrity": "sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==", - "dependencies": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "7.0.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yaml": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz", - "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/asklvkaszus-admin/package.json b/asklvkaszus-admin/package.json deleted file mode 100644 index ab1a002..0000000 --- a/asklvkaszus-admin/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "asklvkaszus-admin", - "private": false, - "version": "2.1", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "lint": "eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview" - }, - "dependencies": { - "@fontsource/fira-code": "^5.0.4", - "@fortawesome/fontawesome-svg-core": "^6.4.0", - "@fortawesome/free-brands-svg-icons": "^6.4.0", - "@fortawesome/free-regular-svg-icons": "^6.4.0", - "@fortawesome/free-solid-svg-icons": "^6.4.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "axios": "^1.4.0", - "compression": "^1.7.4", - "express": "^4.18.2", - "js-cookie": "^3.0.5", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-helmet": "^6.1.0", - "react-i18next": "^13.0.2", - "react-router-dom": "^6.14.2", - "typeface-roboto": "^1.1.13", - "vite-plugin-pwa": "^0.16.4" - }, - "devDependencies": { - "@types/react": "^18.0.37", - "@types/react-dom": "^18.0.11", - "@vitejs/plugin-react": "^4.0.0", - "autoprefixer": "^10.4.14", - "eslint": "^8.38.0", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.3", - "postcss": "^8.4.24", - "tailwindcss": "^3.3.2", - "vite": "^4.3.9" - } -} diff --git a/asklvkaszus-admin/postcss.config.js b/asklvkaszus-admin/postcss.config.js deleted file mode 100644 index 70d778e..0000000 --- a/asklvkaszus-admin/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, - } \ No newline at end of file diff --git a/asklvkaszus-admin/public/android-chrome-192x192.png b/asklvkaszus-admin/public/android-chrome-192x192.png deleted file mode 100644 index 708d2d12fd8282d12a0dfe782be61f1789dbc55d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35200 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 diff --git a/asklvkaszus-admin/public/apple-touch-icon.png b/asklvkaszus-admin/public/apple-touch-icon.png deleted file mode 100644 index de9797dda0bfd5615f6a7b5c161406c21b5cf346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31709 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 Ef)jpH2><{9 diff --git a/asklvkaszus-admin/public/favicon-16x16.png b/asklvkaszus-admin/public/favicon-16x16.png deleted file mode 100644 index bc0fc56ff16bf6d3a6c85d34a5e498bbffaf989c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmV-(0*w8MP) zOKTKC5XXN#JMD#tSNY^E~3FWcy=>6PM@s`mBW;?9U5!N$>16LF2l={5StJ;K45xC_!YaaWMj_5c4M3BXn|2HB42Z% z7BYNirFx0$JW(M5wX-?us|##?XkgYS^jZVlqK#iH^JC*D6{kw=beYDdHtlAY-20_0 z!A+j31l>9nQdurC>A}vo9+qQamo#oiFp2{5r97$+aZ56m0p-obtc5!~*VmX$--Jka zmYbQk*}>Ug@6U|Z=pHXLf!dq0OtM72Ovq$!YD=yfizoA#LNe)F`0YAkomZ)dkr8SobUn>uB-MpTDH4aF zBwnoNLPti%Amy`Tk0KSs174>Z%=UHE{_pp(_kJGn_CE>!@r-wc{{!x2ueK^W1HmL#MSNPs~h25MBsVyPXawbK!hp|xUb>40cj8%wL!YIU4G zXzA0zTEIGK)#<>X1v@R2(1L`dVrh&?v~Cl_Ga-TOW*_(7?YZ}6_wJJ2rLFhO&fa^@ zchC8M-}nC>SGtppF$wLG^kLp<_r_edd1K9#Gv%kwrIlU9rW63Ckg;tlh-5$?;?QKk ztGQnQh#!>w&{X@xEt3g|C5>IuSZfWNbpXlQUJm1O6aOzJm$0ODQ3Cc|JeUN)-1@^D zIu&55HB#2s(vkp>&F9(3mCho`jxpBLyF^;Y*J8z==joon{uR`U{JDNhgbk(+$H|I&!i#TdqA=oZ(~xHo3C5x1%~ zXFQpT=?Z?H)`SZ*&1c_Lfz>B-@$WK&e>q3v#yLoeh4$Yaqw!M<2%ZV^&VE1cu>wjz zHjTnMH%^-iY%v1fTfr~evd0)&-Gb7|~zA*^^ zB7|A>;&NVl;dO3X`w4#g$gAAidILva?_i+wG_AWfvF}$0cz64Gv6Y(zEj|wHKFrGd zZ{fKI+gS7DN*op!z5ncG-qN`o-`0oxmV?N`Vbr1!E5E#g-+!^4f)TF?;2yS^9H@%W zbYDG(+d5c&PcsMGju29UG~d32w>x^NYN+I@85R6t!*N`SoB1u3{B>s+H@95J-qvg3SKV-wyqsAiDQ zA)XC+tB{H%-m!_52qFDhbCV{o2szEYHtb?J#82C6a(s!$CIMv6SgE0vE%Y+Pdjh_h z6ZAdr@UM21Gqm25;saQ}#;E;7P+{_Tv!N$y`zSZV;BbqW&J<>InCd86$u?%cVY_H})eu9xJWEoOq>|+GRehITEKkMkuW-#_#u2U@yk*wo&NI6P&n2 zG@vkgG=jIOfS#lM)ZSc)(pIEr#6%Qq=6fmSI7Cp;g52i$c_QEK` z6jP?h?v?6$YEN{921F0Xr08m4>;Dmkm&LMa(6n_wbH5;fe3c(h0bpvBrIX3jU|gBGOa~AX6mfYch=_s_v&t0Zi35WQVI{&DWr$g>s~HUY z1~Tz1NHOBt8Pk^8(tjS{0eY~fiQ zfM%MoMTD6YMzuy!Vk$P(Nlg69QWRG#7ugcVZm}aP3O1VvPT7fSi=e8a8j5*ERw+?t z5VcH@qvjJ7+6HZ-!bieNV%SAK2}NamN}X_}+i<}**`DA)Y9WgI&Ftn zx7m@_0;W6u%Wph`Qd34|5R-QJ4!d*!*}ra5n~QAbp30-_AHM$qdCyS6lxvse00000 LNkvXXu0mjf(aW6* diff --git a/asklvkaszus-admin/public/favicon.ico b/asklvkaszus-admin/public/favicon.ico deleted file mode 100644 index 5b330f3ffb5cd2525683e98931a804f9e6e492fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15406 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 diff --git a/asklvkaszus-admin/public/main_icon.png b/asklvkaszus-admin/public/main_icon.png deleted file mode 100644 index de9797dda0bfd5615f6a7b5c161406c21b5cf346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31709 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 Ef)jpH2><{9 diff --git a/asklvkaszus-admin/public/manifest.json b/asklvkaszus-admin/public/manifest.json deleted file mode 100755 index 18914c4..0000000 --- a/asklvkaszus-admin/public/manifest.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "Ask @lvkaszus! - Administrator Panel", - "short_name":"Ask @lvkaszus!", - - "description": "Anonymous question app just like ngl.link!", - - - "icons": [ - { - "src": "/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - - { - "src": "/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - - "theme_color": "#520066", - "background_color":"#000000", - - "display":"standalone", - - "start_url": "/" -} \ No newline at end of file diff --git a/asklvkaszus-admin/public/robots.txt b/asklvkaszus-admin/public/robots.txt deleted file mode 100755 index 4e0bfc5..0000000 --- a/asklvkaszus-admin/public/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-Agent: * -Disallow: / \ No newline at end of file diff --git a/asklvkaszus-admin/server.cjs b/asklvkaszus-admin/server.cjs deleted file mode 100644 index 02c57da..0000000 --- a/asklvkaszus-admin/server.cjs +++ /dev/null @@ -1,16 +0,0 @@ -const express = require('express'); -const compression = require('compression'); -const path = require('path'); - -const app = express(); -const port = '3032'; - -const distPath = path.join(__dirname, 'dist'); - -app.use(compression()); - -app.use(express.static(distPath)); - -app.listen(port, () => { - console.log(`[Ask @lvkaszus! Admin] Express Server is running on port ${port}!`); -}); \ No newline at end of file diff --git a/asklvkaszus-admin/src/Components/AnswerQuestion.jsx b/asklvkaszus-admin/src/Components/AnswerQuestion.jsx deleted file mode 100644 index 0ec1f93..0000000 --- a/asklvkaszus-admin/src/Components/AnswerQuestion.jsx +++ /dev/null @@ -1,209 +0,0 @@ -import { useState } from 'react'; -import Axios from 'axios'; -import Cookies from 'js-cookie'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { useNavigate } from 'react-router-dom'; -import { faReply } from '@fortawesome/free-solid-svg-icons/faReply'; -import { faCircleInfo } from '@fortawesome/free-solid-svg-icons/faCircleInfo'; -import { faCheckCircle } from '@fortawesome/free-solid-svg-icons/faCheckCircle'; -import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons/faExclamationCircle'; - -import { useTranslation } from 'react-i18next'; - -const decodeQuestion = (question) => decodeURIComponent(question); -const encodeQuestion = (question) => encodeURIComponent(question); - -const renderBBCode = (text) => { - let result = text; - - result = result.replace(/\[b\](.*?)\[\/b\]/g, '$1'); - result = result.replace(/\[i\](.*?)\[\/i\]/g, '$1'); - result = result.replace(/\[u\](.*?)\[\/u\]/g, '$1'); - - result = result.replace( - /(^|\s)((https?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?)/g, - '$1$2' - ); - - return result; - }; - - const decodeAndFormatText = (text) => { - let formattedText = decodeQuestion(text); - formattedText = renderBBCode(formattedText); - return ; - }; - -const AnswerQuestion = ({ questionId, questionText }) => { - const [reply, setReply] = useState(''); - const [error, setError] = useState(''); - const [showReplyBox, setShowReplyBox] = useState(false); - const [hideReplyBox, setHideReplyBox] = useState(false); - const [showBBCodeHelp, setShowBBCodeHelp] = useState(false); - const [hideBBCodeHelp, setHideBBCodeHelp] = useState(false); - - const navigate = useNavigate(); - const { t } = useTranslation(); - - const handleReply = async (e) => { - e.preventDefault(); - - const apiKeyFromCookie = Cookies.get('apiKey'); - const apiUrl = Cookies.get('url'); - - if (!apiUrl || !apiKeyFromCookie) { - navigate('/login'); - return; - } - - const expirationDate = new Date(Date.now() + 30 * 60 * 1000); - Cookies.set('apiKey', Cookies.get('apiKey'), { expires: expirationDate, sameSite: 'Strict', secure: true }); - Cookies.set('url', Cookies.get('url'), { expires: expirationDate, sameSite: 'Strict', secure: true }); - Cookies.set('apiKey_expiration', expirationDate.toISOString(), { expires: expirationDate, sameSite: 'Strict', secure: true }); - - try { - const response = await Axios.post(`https://${apiUrl}/api/v1/secure/reply_to_question/${questionId}`, null, { - headers: { - 'Authorization': `Ask-lvkaszus-Auth-Key: ${apiKeyFromCookie}`, - 'Answer': `${encodeQuestion(reply)}`, - }, - } - ); - - if (response.status === 200) { - setError(t('msg-replysent')); - - setHideReplyBox(true); - setTimeout(() => { - setShowReplyBox(false); - setHideReplyBox(false); - }, 500); - - setTimeout(() => { - setError(''); - }, 3000); - } - } catch (error) { - if (error.response) { - const { status, data } = error.response; - if (status === 403 && data.message === 'Unauthorized') { - setError(t('msg-checkapikey')); - } else if (status === 403 && data.message === 'Incorrect API Key') { - setError(t('msg-invapikey')); - } else if (status === 404 && data.message === 'Question with selected ID does not exist') { - setError(t('msg-questionnf')); - } else if (status === 400 && data.message === 'No answer to selected question') { - setError(t('msg-empty')); - } - } else { - setError(t('msg-queryerr')); - } - - setHideReplyBox(true); - setTimeout(() => { - setShowReplyBox(false); - setHideReplyBox(false); - }, 500); - - setTimeout(() => { - setError(''); - }, 3000); - } - }; - - const handleReplyShow = (e) => { - e.preventDefault(); - setShowReplyBox(true); - }; - - const handleReplyShowClose = () => { - setHideReplyBox(true); - setTimeout(() => { - setShowReplyBox(false); - setHideReplyBox(false); - }, 500); - } - - const handleBBCodeHelp = (e) => { - e.preventDefault(); - setShowBBCodeHelp(true); - }; - - const handleBBCodeHelpClose = () => { - setHideBBCodeHelp(true); - setTimeout(() => { - setShowBBCodeHelp(false); - setHideBBCodeHelp(false); - }, 500); - }; - - return ( -
- - - {showReplyBox && ( -
-
-

- - {t('home-aq-replyto')} "{decodeAndFormatText(questionText)}" -

- -
-
- - setReply(e.target.value)} /> -
- - -
-

{t('home-aq-bbcodeinfo')}{' '}({t('home-aq-whatisbbcode')})

- - -
-
- )} - - {showBBCodeHelp && ( -
-
-

{t('home-bbc-howtobbcode')}

- -

{t('home-bbc-whatisbbcode')}

-

{t('home-bbc-bbcodeoverview')}

- -

{t('home-bbc-bbcodeexamples')}

-

- [b]{t('home-bbc-boldtext')}[/b] = {t('home-bbc-boldtextoverview')}

-

- [u]{t('home-bbc-underlinetext')}[/u] = {t('home-bbc-underlinetextoverview')}

-

- [i]{t('home-bbc-italictext')}[/i] = {t('home-bbc-italictextoverview')}

- -

- [yt]{t('home-bbc-yttext')}[/yt] = {t('home-bbc-yttextoverview')}

-

- [location:{t('home-bbc-locationtext')}] = {t('home-bbc-locationtextoverview')}

- - -
-
- )} - - {error && ( -
-
- {error.includes(t('msg-replysent')) ? ( -
- -

{error}

-
- ) : ( -
- -

{error}

-
- )} -
-
- )} -
- ); -} - -export default AnswerQuestion; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Components/Footer.jsx b/asklvkaszus-admin/src/Components/Footer.jsx deleted file mode 100644 index adb0878..0000000 --- a/asklvkaszus-admin/src/Components/Footer.jsx +++ /dev/null @@ -1,37 +0,0 @@ -import { NavLink } from 'react-router-dom'; - -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faPython, faReact } from '@fortawesome/free-brands-svg-icons'; -import { faHeart } from '@fortawesome/free-solid-svg-icons'; - -import { VersionCheck } from './VersionCheck.jsx'; - -const Footer = () => { - const { currentVersion, latestVersion, isLatestVersion } = VersionCheck(); - - return ( -
- -

- lvkaszus™ // @lvkaszus 2022-2023 -

- -

- - Python + - - - React + Vite = -

- - {isLatestVersion ? ( -

Administrator Panel - Ask @lvkaszus! - version: {currentVersion} - 20.10.2023 : latest

- ) : ( -

Administrator Panel - Ask @lvkaszus! - version: {currentVersion} - 20.10.2023 : please upgrade to {latestVersion}!

- )} -
-
- ); -}; - -export default Footer; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Components/LoadingScreen.jsx b/asklvkaszus-admin/src/Components/LoadingScreen.jsx deleted file mode 100644 index fe637c0..0000000 --- a/asklvkaszus-admin/src/Components/LoadingScreen.jsx +++ /dev/null @@ -1,29 +0,0 @@ -import { Helmet } from 'react-helmet'; - -import Navbar from './Navbar.jsx'; - -import '../Main.css'; - -import { useTranslation } from 'react-i18next'; - -const LoadingScreen = () =>{ - const { t } = useTranslation(); - - return ( -
- - {t('loadingscreen')} - - - - - - -
-

{t('loadingscreen')} 😸

-
-
- ) -} - -export default LoadingScreen; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Components/Login.jsx b/asklvkaszus-admin/src/Components/Login.jsx deleted file mode 100644 index f156f6a..0000000 --- a/asklvkaszus-admin/src/Components/Login.jsx +++ /dev/null @@ -1,125 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import { Helmet } from 'react-helmet'; -import Cookies from 'js-cookie'; -import { useNavigate } from 'react-router-dom'; - -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; - -import { faGlobe } from '@fortawesome/free-solid-svg-icons/faGlobe'; -import { faKey } from '@fortawesome/free-solid-svg-icons/faKey'; -import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons/faExclamationCircle'; - -import { useTranslation } from 'react-i18next'; - -const yourNickname = import.meta.env.VITE_YOUR_NICKNAME || 'me'; - -const Login = () => { - const navigate = useNavigate() - - const [url, setUrl] = useState(''); - const [apiKey, setApiKey] = useState(''); - const [error, setError] = useState(''); - - const { t } = useTranslation(); - - const urlPattern = /^(https?:\/\/)?([a-zA-Z0-9.-]+)\.([a-zA-Z]{2,})(\/.*)?$/; - //const urlPattern = ""; - - const handleLogin = (e) => { - e.preventDefault(); - - if (!url.trim() || !apiKey.trim()) { - setError(t('msg-nourlorapi')); - - setTimeout(() => { - setError(''); - }, 3000); - return; - } - - if (!url.match(urlPattern) || url.includes('/') || url.includes('\\')) { - setError(t('msg-invalidurl')); - - setTimeout(() => { - setError(''); - }, 3000); - return; - } - - const expirationDate = new Date(Date.now() + 30 * 60 * 1000); - Cookies.set('apiKey', apiKey, { expires: expirationDate, sameSite: 'Strict', secure: true }); - Cookies.set('url', url, { expires: expirationDate, sameSite: 'Strict', secure: true }); - Cookies.set('apiKey_expiration', expirationDate.toISOString(), { expires: expirationDate, sameSite: 'Strict', secure: true }); - - setError(''); - setUrl(''); - setApiKey(''); - - navigate('/'); - }; - - useEffect(() => { - const apiKey = Cookies.get('apiKey'); - const url = Cookies.get('url'); - if (apiKey && url) { - navigate('/'); - } - }, [navigate]); - - return ( -
- - {t('login-title') + ' ' + yourNickname + '!'} - - -
-

Ask {yourNickname}!

-

{t('login-description')}

- -
-
- - setUrl(e.target.value)} - /> -
-
- - setApiKey(e.target.value)} - /> -
- - -
- - {error && ( -
-
-
- -

{error}

-
-
-
- )} -
-
- ); -}; - -export default Login; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Components/Navbar.jsx b/asklvkaszus-admin/src/Components/Navbar.jsx deleted file mode 100644 index 7409e74..0000000 --- a/asklvkaszus-admin/src/Components/Navbar.jsx +++ /dev/null @@ -1,20 +0,0 @@ -import { NavLink } from 'react-router-dom'; - -import { useTranslation } from 'react-i18next'; - -const Navbar = () => { - const { t } = useTranslation(); - - return ( - - ); -}; - -export default Navbar; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Components/NotFound.jsx b/asklvkaszus-admin/src/Components/NotFound.jsx deleted file mode 100644 index 4e5e4bb..0000000 --- a/asklvkaszus-admin/src/Components/NotFound.jsx +++ /dev/null @@ -1,31 +0,0 @@ -import { Helmet } from 'react-helmet'; - -import Navbar from './Navbar'; - -import { useTranslation } from 'react-i18next'; - -import '../Main.css'; - -function NotFound() { - const { t } = useTranslation(); - - return ( -
- - HTTP 404! - - - - - - -
-

{t('notfound-pagetitle')}

- - {t('notfound-backtohomepage')} -
-
- ); -} - -export default NotFound; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Components/PurgeQuestion.jsx b/asklvkaszus-admin/src/Components/PurgeQuestion.jsx deleted file mode 100644 index 6342738..0000000 --- a/asklvkaszus-admin/src/Components/PurgeQuestion.jsx +++ /dev/null @@ -1,93 +0,0 @@ -import React, { useState } from 'react'; -import Axios from 'axios'; -import Cookies from 'js-cookie'; -import { useNavigate } from 'react-router-dom'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons/faExclamationCircle'; -import { faCheckCircle } from '@fortawesome/free-solid-svg-icons/faCheckCircle'; - -import { useTranslation } from 'react-i18next'; - -const PurgeQuestion = ({ questionId }) => { - const [error, setError] = useState(''); - const navigate = useNavigate(); - - const { t } = useTranslation(); - - const handleDelete = async () => { - const apiKeyFromCookie = Cookies.get('apiKey'); - const apiUrl = Cookies.get('url'); - - if (!apiUrl || !apiKeyFromCookie) { - navigate('/login'); - return; - } - - const expirationDate = new Date(Date.now() + 30 * 60 * 1000); - Cookies.set('apiKey', Cookies.get('apiKey'), { expires: expirationDate, sameSite: 'Strict', secure: true }); - Cookies.set('url', Cookies.get('url'), { expires: expirationDate, sameSite: 'Strict', secure: true }); - Cookies.set('apiKey_expiration', expirationDate.toISOString(), { expires: expirationDate, sameSite: 'Strict', secure: true }); - - try { - const response = await Axios.post(`https://${apiUrl}/api/v1/secure/purge_question/${questionId}`, null, { - headers: { - 'Authorization': `Ask-lvkaszus-Auth-Key: ${apiKeyFromCookie}`, - }, - }); - - if (response.status === 200) { - setError(t('msg-qremoved')); - setTimeout(() => { - setError(''); - }, 3000); - } - } catch (error) { - if (error.response) { - const { status, data } = error.response; - if (status === 403 && data.message === 'Unauthorized') { - setError(t('msg-checkapikey')); - } else if (status === 403 && data.message === 'Incorrect API Key') { - setError(t('msg-invapikey')); - } else if (status === 404 && data.message === 'Question with selected ID does not exist') { - setError(t('msg-questionnf')); - } else { - setError(t('msg-qdelerr')); - } - } else { - setError(t('msg-queryerr')); - } - - setTimeout(() => { - setError(''); - }, 3000); - } - }; - - return ( -
- - - {error && ( -
-
- {error.includes(t('msg-qremoved')) ? ( -
- -

{error}

-
- ) : ( -
- -

{error}

-
- )} -
-
- )} -
- ); -}; - -export default PurgeQuestion; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Components/PurgeQuestionsButton.jsx b/asklvkaszus-admin/src/Components/PurgeQuestionsButton.jsx deleted file mode 100644 index 6a58a3d..0000000 --- a/asklvkaszus-admin/src/Components/PurgeQuestionsButton.jsx +++ /dev/null @@ -1,91 +0,0 @@ -import React, { useState } from 'react'; -import Axios from 'axios'; -import Cookies from 'js-cookie'; -import { useNavigate } from 'react-router-dom'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons/faExclamationCircle'; -import { faCheckCircle } from '@fortawesome/free-solid-svg-icons/faCheckCircle'; - -import { useTranslation } from 'react-i18next'; - -const PurgeQuestionsButton = () => { - const [error, setError] = useState(''); - const navigate = useNavigate(); - - const { t } = useTranslation(); - - const handlePurgeAllQuestions = async () => { - const apiKeyFromCookie = Cookies.get('apiKey'); - const apiUrl = Cookies.get('url'); - - if (!apiUrl || !apiKeyFromCookie) { - navigate('/login'); - return; - } - - const expirationDate = new Date(Date.now() + 30 * 60 * 1000); - Cookies.set('apiKey', Cookies.get('apiKey'), { expires: expirationDate, sameSite: 'Strict', secure: true }); - Cookies.set('url', Cookies.get('url'), { expires: expirationDate, sameSite: 'Strict', secure: true }); - Cookies.set('apiKey_expiration', expirationDate.toISOString(), { expires: expirationDate, sameSite: 'Strict', secure: true }); - - try { - const response = await Axios.post(`https://${apiUrl}/api/v1/secure/purge_all_questions`, null, { - headers: { - 'Authorization': `Ask-lvkaszus-Auth-Key: ${apiKeyFromCookie}`, - }, - }); - - if (response.status === 200) { - setError(t('msg-delallquestions')); - setTimeout(() => { - setError(''); - }, 3000); - } - } catch (error) { - if (error.response) { - const { status, data } = error.response; - if (status === 403 && data.message === 'Unauthorized') { - setError(t('msg-checkapikey')); - } else if (status === 403 && data.message === 'Incorrect API Key') { - setError(t('msg-invapikey')); - } else { - setError(t('msg-delquestionserr')); - } - } else { - setError(t('msg-queryerr')); - } - - setTimeout(() => { - setError(''); - }, 3000); - } - }; - - return ( -
- - - {error && ( -
-
- {error.includes(t('msg-delallquestions')) ? ( -
- -

{error}

-
- ) : ( -
- -

{error}

-
- )} -
-
- )} -
- ); -}; - -export default PurgeQuestionsButton; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Components/QuestionsList.jsx b/asklvkaszus-admin/src/Components/QuestionsList.jsx deleted file mode 100644 index 81479cc..0000000 --- a/asklvkaszus-admin/src/Components/QuestionsList.jsx +++ /dev/null @@ -1,138 +0,0 @@ -import { useState, useEffect } from 'react'; -import Cookies from 'js-cookie'; -import { useNavigate } from 'react-router-dom'; -import axios from 'axios'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faCircleExclamation } from '@fortawesome/free-solid-svg-icons/faCircleExclamation'; -import PurgeQuestionsButton from './PurgeQuestionsButton.jsx'; -import AnswerQuestion from './AnswerQuestion.jsx'; -import PurgeQuestion from './PurgeQuestion.jsx'; -import { useTranslation } from 'react-i18next'; - -const yourNickname = import.meta.env.VITE_YOUR_NICKNAME || 'me'; - -const decodeQuestion = (question) => decodeURIComponent(question); - -const renderBBCode = (text) => { - let result = text; - - result = result.replace(/\[b\](.*?)\[\/b\]/g, '$1'); - result = result.replace(/\[i\](.*?)\[\/i\]/g, '$1'); - result = result.replace(/\[u\](.*?)\[\/u\]/g, '$1'); - - result = result.replace( - /(^|\s)((https?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?)/g, - '$1$2' - ); - - result = result.replace( - /\[yt\](.*?)\[\/yt\]/g, - (_, link) => { - const videoId = extractVideoIdFromURL(link); - return ``; - } - ); - - result = result.replace(/\[location:([\d.-]+),([\d.-]+)\]/g, (_, lat, lng) => { - const latNumber = parseFloat(lat); - const lngNumber = parseFloat(lng); - - const expandedLatMin = latNumber - 0.01; - const expandedLatMax = latNumber + 0.01; - const expandedLngMin = lngNumber - 0.01; - const expandedLngMax = lngNumber + 0.01; - - return `
- -
`; - }); - - return result; -}; - -const extractVideoIdFromURL = (url) => { - const match = url.match(/youtube\.com.*(\?v=|\/embed\/|\/\d\/|\/vi\/|v\/|\/u\/\w\/|embed\/|\/v\/|id_)([^#&?]*).*/); - return (match && match[2]) ? match[2] : url; -}; - -const decodeAndFormatText = (text) => { - let formattedText = decodeQuestion(text); - formattedText = renderBBCode(formattedText); - return ; -}; - -const QuestionsList = () => { - const [data, setData] = useState([]); - const [error, setError] = useState(false); - - const { t } = useTranslation(); - const navigate = useNavigate(); - - useEffect(() => { - fetchData(); - const interval = setInterval(fetchData, 10000); - - return () => { - clearInterval(interval); - }; - }, []); - - const fetchData = async () => { - const apiKeyFromCookie = Cookies.get('apiKey'); - const apiUrl = Cookies.get('url'); - - if (!apiUrl || !apiKeyFromCookie) { - navigate('/login'); - return; - } - - try { - const response = await axios.get(`https://${apiUrl}/api/v1/fetch_all_questions`); - const jsonData = response.data; - setData(jsonData); - setError(false); - } catch (error) { - console.error("[Ask @lvkaszus! - React] fetchAllQuestions: Fetch all questions - ERROR: " + error); - setError(true); - } - }; - - return ( -
- {error ? ( -
{t('msg-fetchqerr') + ' ' + yourNickname + ' ' + t('msg-fetchqerr2')}
- ) : ( -
-

{t('home-ql-questions')}

-

{t('home-ql-questionsoverview')}

- - - - {data.message === 'No questions yet' ? ( -

{t('msg-noquestionsyet')}

- ) : ( - data.map(({ answer, date, question, id }) => ( -
-

{decodeAndFormatText(question)}

- {answer === 'TODO' ? ( -

{yourNickname + ' ' + t('msg-notanswered')}

- ) : ( -

{decodeAndFormatText(answer)}

- )} - - - - -

{date}

-
- )) - )} -
- )} -
- ); -}; - -export default QuestionsList; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Components/VersionCheck.jsx b/asklvkaszus-admin/src/Components/VersionCheck.jsx deleted file mode 100644 index 748967f..0000000 --- a/asklvkaszus-admin/src/Components/VersionCheck.jsx +++ /dev/null @@ -1,27 +0,0 @@ -import { useEffect, useState } from 'react'; - -import axios from 'axios'; - -export const VersionCheck = () => { - const [latestVersion, setLatestVersion] = useState(['']); - - const fetchLatestVersion = async () => { - try { - const gitData = await axios.get('https://api.github.com/repos/lvkaszus/asklvkaszus-react/releases/latest'); - const latestVersion = gitData.data.tag_name; - - setLatestVersion(latestVersion); - } catch (error) { - console.error("[Ask @lvkaszus! - React] fetchLatestVersion: Fetch latest release from GitHub - ERROR: " + error); - } - }; - - useEffect(() => { - fetchLatestVersion(); - }, []); - - const currentVersion = '2.1-b3'; - const isLatestVersion = currentVersion === latestVersion; - - return { currentVersion, latestVersion, isLatestVersion }; -}; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Components/i18n.jsx b/asklvkaszus-admin/src/Components/i18n.jsx deleted file mode 100644 index 70557a4..0000000 --- a/asklvkaszus-admin/src/Components/i18n.jsx +++ /dev/null @@ -1,35 +0,0 @@ -import i18n from 'i18next'; -import { initReactI18next } from 'react-i18next'; - -import translationEN from '../Locales/en.json'; -import translationPL from '../Locales/pl.json'; - -const detectBrowserLanguage = () => { - const userLang = navigator.language || navigator.userLanguage; - - if (userLang !== 'pl-PL' && userLang !== 'pl' && userLang !== 'en-US' && userLang !== 'en-GB' && userLang !== 'en') { - return 'en'; - } - - return userLang; -}; - -i18n - .use(initReactI18next) - .init({ - resources: { - en: { - translation: translationEN, - }, - pl: { - translation: translationPL, - }, - }, - lng: detectBrowserLanguage(), - fallbackLng: 'en', - interpolation: { - escapeValue: false, - }, - }); - -export default i18n; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Home.jsx b/asklvkaszus-admin/src/Home.jsx deleted file mode 100644 index 2b28e47..0000000 --- a/asklvkaszus-admin/src/Home.jsx +++ /dev/null @@ -1,80 +0,0 @@ -import React, { useEffect, useState } from 'react'; -import { Helmet } from 'react-helmet'; -import Cookies from 'js-cookie'; -import { useNavigate } from 'react-router-dom'; - -import './Main.css'; - -import Navbar from './Components/Navbar.jsx'; - -import QuestionsList from './Components/QuestionsList.jsx'; - -import { useTranslation } from 'react-i18next'; - -const yourNickname = import.meta.env.VITE_YOUR_NICKNAME || 'me'; - -const Home = () =>{ - const [remainingTime, setRemainingTime] = useState(0); - const navigate = useNavigate(); - - const { t } = useTranslation(); - - useEffect(() => { - const apiKey = Cookies.get('apiKey'); - const url = Cookies.get('url'); - - if (!apiKey || !url) { - navigate('/login'); - } - }, [navigate]); - - useEffect(() => { - const interval = setInterval(() => { - const expirationTime = Cookies.get('apiKey_expiration'); - const remaining = expirationTime ? (new Date(expirationTime) - new Date()) / 1000 : 0; - setRemainingTime(remaining); - }, 1000); - - return () => clearInterval(interval); - }, []); - - const formatTime = (seconds) => { - const hours = Math.floor(seconds / 3600); - const minutes = Math.floor((seconds % 3600) / 60); - const secs = Math.floor(seconds % 60); - - return `${hours.toString().padStart(2, '0')}:${minutes - .toString() - .padStart(2, '0')}:${secs.toString().padStart(2, '0')}`; - }; - - const handleLogout = () => { - Cookies.remove('url'); - Cookies.remove('apiKey'); - Cookies.remove('apiKey_expiration'); - navigate('/login'); - }; - - return ( -
- - Ask {yourNickname}! - - - - -
-

Ask {yourNickname}! 😸

-

{t('home-description')}

- -

{t('home-sessiontime')} {formatTime(remainingTime)}

- - - - -
-
- ) -} - -export default Home; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Info.jsx b/asklvkaszus-admin/src/Info.jsx deleted file mode 100644 index 17810f3..0000000 --- a/asklvkaszus-admin/src/Info.jsx +++ /dev/null @@ -1,42 +0,0 @@ -import { Helmet } from 'react-helmet'; - -import './Main.css'; - -import Navbar from './Components/Navbar.jsx'; - -import { useTranslation } from 'react-i18next'; - -const yourNickname = import.meta.env.VITE_YOUR_NICKNAME || 'me'; - -const Info = () => { - const { t } = useTranslation(); - - return ( -
- - {t('info-title') + ' ' + yourNickname + '!'} - - - - -
-

{t('info-pagetitle') + ' ' + yourNickname + '!'}

-

{t('info-description')}

- -

"{t('info-authorquote')}" - @lvkaszus 2023

- - - -

{t('info-pageauthors')}

- -
  • lvkaszus ({t('info-author1-work')})
  • -
  • {yourNickname} ({t('info-author2-work')})
  • -
    - -
    - ) -} - -export default Info; \ No newline at end of file diff --git a/asklvkaszus-admin/src/Locales/en.json b/asklvkaszus-admin/src/Locales/en.json deleted file mode 100644 index 2d893d8..0000000 --- a/asklvkaszus-admin/src/Locales/en.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "loadingscreen": "Loading...", - - - "navbar-homepage": "homepage", - "navbar-informations": "informations", - - - "login-title": "Login - Ask", - - "login-description": "Administrator Panel!", - "login-urltextbox": "Domain name (without https at the beginning)", - "login-apitextbox": "API Key", - "login-loginbutton": "Log in", - - - "home-description": "Administrator Panel!", - "home-sessiontime": "Remaining session time:", - "home-logout": "Log out", - - - "home-ql-questions": "Questions:", - "home-ql-questionsoverview": "Scroll down to see older questions!", - - "home-pqb-button": "Purge all questions", - - "home-aq-reply": "Reply", - "home-aq-replyto": "Reply to question", - "home-aq-yourreply": "Your answer to the question", - "home-aq-sendreply": "Send reply", - - "home-aq-bbcodeinfo": "BBCode is enabled!", - "home-aq-whatisbbcode": "What is this?", - - "home-aq-close": "Close", - - - "home-bbc-howtobbcode": "How to use BBCode in questions?", - - "home-bbc-whatisbbcode": "What is BBCode?", - "home-bbc-bbcodeoverview": "- BBCode is an easy way to format text such as underlining, bolding or italicizing and allows in the case of this site to insert YouTube videos and map locations in the form of geographic coordinates.", - - "home-bbc-bbcodeexamples": "Examples of BBCode usage in questions", - "home-bbc-boldtext": "Bold Text", - "home-bbc-boldtextoverview": "Makes the text in the question that is in the [b] and [/b] tags bold.", - - "home-bbc-underlinetext": "Underlined Text", - "home-bbc-underlinetextoverview": "Makes the text in the question that is in the [u] and [/u] tags underlined.", - - "home-bbc-italictext": "Italicized text", - "home-bbc-italictextoverview": "Makes the text in the question that is in the [u] and [/u] tags italicized.", - - - "home-bbc-yttext": "Link to YouTube video", - "home-bbc-yttextoverview": "Inserts a YouTube video in the question that is in the [yt] and [/yt] tags.", - - "home-bbc-locationtext": "Latitude,Longtitude", - "home-bbc-locationtextoverview": "Inserts a location on map by specifying latitude and longtitude in the [location] tag.", - - - "home-pq-delete": "Delete", - - - "info-title": "Informations - Ask", - - "info-pagetitle": "Ask", - "info-description": "Questions and answers very similar to NGL application! 😸", - - "info-authorquote": "I hate NGL for the automatic messages that keep coming after being turned off and also for the lack of many features.", - - "info-sclink": "Check out the source code for this website! 😄", - - "info-pageauthors": "Authors of the site, components, graphics and design:", - "info-author1-work": "Entire site from scratch all the way to the end including scripting, etc.", - "info-author2-work": "Configuration and deployment", - - "notfound-pagetitle": "404: Not Found!", - "notfound-backtohomepage": "Back to homepage", - - - "msg-nourlorapi": "The domain name and API Key are required.", - "msg-invalidurl": "Incorrect domain name.", - - "msg-fetchqerr": "An error occurred while fetching anonymous question list! Contact", - "msg-fetchqerr2": "to resolve this issue.", - "msg-neterr": "Network error", - "msg-noquestionsyet": "There are no questions yet. Write them! 😁", - "msg-notanswered": "hasn't answered this question yet!", - - "msg-delallquestions": "All questions have been successfully purged.", - - "msg-checkapikey": "No authorization. Check the API Key.", - "msg-invapikey": "Incorrect API Key.", - "msg-delquestionserr": "There was a problem while deleting questions.", - "msg-queryerr": "There was a problem while sending the request. Are you sure the Domain Name is correct?", - - "msg-replysent": "Your reply has been sent!", - "msg-empty": "Your reply cannot be empty!", - "msg-questionnf": "Question not found.", - "msg-sqerr": "There was a problem while answering the question.", - - "msg-qremoved": "The question has been successfully deleted.", - "msg-qdelerr": "There was a problem while deleting the question." -} \ No newline at end of file diff --git a/asklvkaszus-admin/src/Locales/pl.json b/asklvkaszus-admin/src/Locales/pl.json deleted file mode 100644 index dcd0df6..0000000 --- a/asklvkaszus-admin/src/Locales/pl.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "loadingscreen": "Ładowanie...", - - - "navbar-homepage": "główna", - "navbar-informations": "informacje", - - - "login-title": "Logowanie - Ask", - - "login-description": "Panel administratora!", - "login-urltextbox": "Nazwa domeny (bez przedrostka https)", - "login-apitextbox": "Klucz API", - "login-loginbutton": "Zaloguj", - - - "home-description": "Panel administratora!", - "home-sessiontime": "Pozostały czas trwania sesji:", - "home-logout": "Wyloguj się", - - - "home-ql-questions": "Pytania:", - "home-ql-questionsoverview": "Przewijaj w dół, aby zobaczyć starsze pytania!", - - "home-pqb-button": "Usuń wszystkie pytania", - - "home-aq-reply": "Odpowiedz", - "home-aq-replyto": "Odpowiedź na pytanie", - "home-aq-yourreply": "Twoja odpowiedź na zadane pytanie", - "home-aq-sendreply": "Wyślij odpowiedź", - - "home-aq-bbcodeinfo": "BBCode jest włączone!", - "home-aq-whatisbbcode": "Co to jest?", - - "home-aq-close": "Zamknij", - - - "home-bbc-howtobbcode": "Jak używać BBCode w pytaniach?", - - "home-bbc-whatisbbcode": "Czym jest BBCode?", - "home-bbc-bbcodeoverview": "- BBCode to prosty sposób na formatowanie tekstu np. podkreślając go, pogrubiając go lub pochylając, oraz pozwala w przypadku tej strony na wstawianie filmów z YouTube oraz lokalizacji na mapach w postaci koordynatów geograficznych.", - - "home-bbc-bbcodeexamples": "Przykłady użycia BBCode w pytaniach", - "home-bbc-boldtext": "Pogrubiony tekst", - "home-bbc-boldtextoverview": "Pogrubia tekst w pytaniu mieszczący się w tagach [b] oraz [/b].", - - "home-bbc-underlinetext": "Podkreślony tekst", - "home-bbc-underlinetextoverview": "Podkreśla tekst w pytaniu mieszczący się w tagach [u] oraz [/u].", - - "home-bbc-italictext": "Pochylony tekst", - "home-bbc-italictextoverview": "Pochyla tekst w pytaniu mieszczący się w tagach [i] oraz [/i].", - - - "home-bbc-yttext": "Link do filmu z YouTube", - "home-bbc-yttextoverview": "Wstawia film z YouTube w pytaniu mieszczący się w tagach [yt] oraz [/yt].", - - "home-bbc-locationtext": "Szerokość,Wysokość", - "home-bbc-locationtextoverview": "Wstawia lokalizację na mapach podając szerokość i wysokość geograficzną w tagu [location].", - - - "home-pq-delete": "Usuń", - - - "info-title": "Informacje - Ask", - - "info-pagetitle": "Ask", - "info-description": "Pytania i odpowiedzi bardzo podobne do aplikacji NGL! 😸", - - "info-authorquote": "Nienawidzę NGL za automatyczne wiadomości które po wyłączeniu nadal przychodzą i również za brak wielu funkcji.", - - "info-sclink": "Zobacz kod źródłowy tej strony! 😄", - - "info-pageauthors": "Autorzy strony, komponentów, grafiki oraz design:", - "info-author1-work": "Cała strona od zera aż do końca wraz z oskryptowaniem itp.", - "info-author2-work": "Konfiguracja i wdrożenie", - - - "notfound-pagetitle": "404: Nie znaleziono!", - "notfound-backtohomepage": "Powróć do strony głównej", - - - "msg-nourlorapi": "Nazwa domeny i API Key są wymagane.", - "msg-invalidurl": "Nieprawidłowa nazwa domeny.", - - "msg-fetchqerr": "Wystąpił błąd w trakcie pobierania anonimowych pytań! Skontaktuj się z", - "msg-fetchqerr2": ", aby rozwiązać ten problem.", - "msg-neterr": "Błąd sieci", - "msg-noquestionsyet": "Nie ma jeszcze żadnych pytań. Zadaj je! 😁", - "msg-notanswered": "jeszcze nie odpowiedział na to pytanie!", - - "msg-delallquestions": "Wszystkie pytania zostały pomyślnie usunięte.", - - "msg-checkapikey": "Brak autoryzacji. Sprawdź klucz API.", - "msg-invapikey": "Nieprawidłowy klucz API.", - "msg-delquestionserr": "Wystąpił problem podczas usuwania pytań.", - "msg-queryerr": "Wystąpił problem podczas wysyłania żądania. Czy napewno Nazwa Domeny jest prawidłowa?", - - "msg-replysent": "Odpowiedź została pomyślnie wysłana.", - "msg-empty": "Wiadomość nie może być pusta!", - "msg-questionnf": "Nie znaleziono pytania.", - "msg-sqerr": "Wystąpił problem podczas odpowiedzi na pytanie.", - - "msg-qremoved": "Pytanie zostało pomyślnie usunięte.", - "msg-qdelerr": "Wystąpił problem podczas usuwania pytania." -} \ No newline at end of file diff --git a/asklvkaszus-admin/src/Main.css b/asklvkaszus-admin/src/Main.css deleted file mode 100644 index 8401d11..0000000 --- a/asklvkaszus-admin/src/Main.css +++ /dev/null @@ -1,62 +0,0 @@ -:root { - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; - - scrollbar-width: thin; - scrollbar-color: #A300CC #520066; -} - -@keyframes fadeInAnimation { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -@keyframes fadeOutAnimation { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -body { - background-color: black; - color: white; - margin: 0; - padding: 0; -} - -::-webkit-scrollbar { - width: 8px; -} - -::-webkit-scrollbar-track { - background-color: #520066; -} - -::-webkit-scrollbar-thumb { - background-color: #A300CC; -} - -.fade-in { - animation: fadeInAnimation ease 2s; - animation-fill-mode: forwards; -} - -.fade-out { - animation: fadeOutAnimation ease 0.5s; -} - -.fade-out-delayed { - animation: fadeOutAnimation ease 0.5s; - animation-fill-mode: forwards; - animation-delay: 2.5s; -} \ No newline at end of file diff --git a/asklvkaszus-admin/src/main.jsx b/asklvkaszus-admin/src/main.jsx deleted file mode 100644 index 3ca12f4..0000000 --- a/asklvkaszus-admin/src/main.jsx +++ /dev/null @@ -1,48 +0,0 @@ -import { lazy, Suspense } from "react"; -import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; -import ReactDOM from 'react-dom/client'; - -import { I18nextProvider } from 'react-i18next'; - -import '@fontsource/fira-code/300.css'; -import 'typeface-roboto'; - -import 'tailwindcss/tailwind.css'; - -import './Main.css'; - -import LoadingScreen from './Components/LoadingScreen.jsx'; - -const Login = lazy(() => import("./Components/Login.jsx")) - -const Home = lazy(() => import("./Home.jsx")) -const Info = lazy(() => import("./Info.jsx")) - -const Footer = lazy(() => import('./Components/Footer.jsx')); - -const NotFound = lazy(() => import("./Components/NotFound.jsx")) - -import i18n from './Components/i18n.jsx'; - -ReactDOM.createRoot(document.getElementById('flex-container')).render( - - - }> - - - - } /> - - -