From 2f3f2ae7f098376f535e5aa993c9eedc14e36f5d Mon Sep 17 00:00:00 2001 From: Vijay A Date: Fri, 22 Mar 2024 02:33:33 +0530 Subject: Upgrade node modules --- .eslintrc.js | 4 + biome.json | 6 +- esbuild.mjs | 16 +- package.json | 58 +- pnpm-lock.yaml | 2025 +++++++++++++------- scripts/add-crowdin-contributors.ts | 2 +- src/@types/ferdium-components.types.ts | 4 +- src/@types/ferdium.types.ts | 2 +- src/@types/mobx-form.types.ts | 4 +- src/@types/stores.types.ts | 14 +- src/I18n.tsx | 6 +- src/actions/app.ts | 2 +- src/actions/index.ts | 12 +- src/actions/recipe.ts | 2 +- src/actions/recipePreview.ts | 2 +- src/actions/requests.ts | 2 +- src/actions/service.ts | 2 +- src/actions/settings.ts | 2 +- src/actions/ui.ts | 2 +- src/actions/user.ts | 2 +- src/api/UserApi.ts | 2 +- src/api/apiBase.ts | 10 +- src/api/index.ts | 6 +- src/api/server/LocalApi.ts | 2 +- src/api/server/ServerApi.ts | 18 +- src/api/utils/auth.ts | 4 +- src/app.tsx | 12 +- src/components/AppUpdateInfoBar.tsx | 4 +- src/components/auth/AuthLayout.tsx | 26 +- src/components/auth/ChangeServer.tsx | 22 +- src/components/auth/Invite.tsx | 20 +- src/components/auth/Locked.tsx | 14 +- src/components/auth/Login.tsx | 22 +- src/components/auth/Password.tsx | 18 +- src/components/auth/SetupAssistant.tsx | 24 +- src/components/auth/Signup.tsx | 24 +- src/components/auth/Welcome.tsx | 18 +- .../downloadManager/DownloadManagerDashboard.tsx | 34 +- .../downloadManager/DownloadManagerLayout.tsx | 13 +- src/components/layout/AppLayout.tsx | 27 +- src/components/layout/Sidebar.tsx | 22 +- .../services/content/ConnectionLostBanner.tsx | 12 +- .../services/content/ServiceDisabled.tsx | 8 +- src/components/services/content/ServiceView.tsx | 18 +- src/components/services/content/ServiceWebview.tsx | 6 +- src/components/services/content/Services.tsx | 18 +- .../services/content/WebviewCrashHandler.tsx | 8 +- .../services/content/WebviewErrorHandler.tsx | 10 +- .../services/tabs/TabBarSortableList.tsx | 4 +- src/components/services/tabs/TabItem.tsx | 24 +- src/components/services/tabs/Tabbar.tsx | 4 +- src/components/settings/SettingsLayout.tsx | 14 +- .../settings/account/AccountDashboard.tsx | 18 +- .../settings/navigation/SettingsNavigation.tsx | 12 +- .../releaseNotes/ReleaseNotesDashboard.tsx | 6 +- .../settings/releaseNotes/ReleaseNotesLayout.tsx | 14 +- .../settings/services/EditServiceForm.tsx | 38 +- src/components/settings/services/ServiceError.tsx | 8 +- src/components/settings/services/ServiceItem.tsx | 16 +- .../settings/services/ServicesDashboard.tsx | 20 +- .../settings/settings/EditSettingsForm.tsx | 44 +- src/components/settings/team/TeamDashboard.tsx | 18 +- src/components/settings/user/EditUserForm.tsx | 23 +- src/components/ui/AppLoader/index.tsx | 8 +- src/components/ui/FAB.tsx | 4 +- src/components/ui/FullscreenLoader/index.tsx | 10 +- src/components/ui/InfoBar.tsx | 14 +- src/components/ui/Infobox.tsx | 19 +- src/components/ui/Link.tsx | 12 +- src/components/ui/Modal/index.tsx | 8 +- src/components/ui/Radio.tsx | 6 +- src/components/ui/SearchInput.tsx | 6 +- src/components/ui/Select.tsx | 16 +- src/components/ui/ServiceIcon.tsx | 8 +- src/components/ui/Slider.tsx | 4 +- src/components/ui/StatusBarTargetUrl.tsx | 4 +- src/components/ui/Tabs/TabItem.tsx | 2 +- src/components/ui/Tabs/Tabs.tsx | 11 +- src/components/ui/WebviewLoader/index.tsx | 10 +- src/components/ui/badge/ProBadge.tsx | 4 +- src/components/ui/badge/index.tsx | 6 +- src/components/ui/button/index.tsx | 13 +- src/components/ui/colorPickerInput/index.tsx | 16 +- src/components/ui/effects/Appear.tsx | 2 +- src/components/ui/error/index.tsx | 2 +- src/components/ui/error/styles.ts | 2 +- src/components/ui/headline/index.tsx | 12 +- src/components/ui/icon/index.tsx | 6 +- src/components/ui/imageUpload/index.tsx | 10 +- src/components/ui/infobox/index.tsx | 6 +- src/components/ui/input/index.tsx | 24 +- src/components/ui/input/styles.ts | 4 +- src/components/ui/label/index.tsx | 6 +- src/components/ui/label/styles.ts | 2 +- src/components/ui/loader/index.tsx | 6 +- src/components/ui/select/index.tsx | 13 +- src/components/ui/textarea/index.tsx | 6 +- src/components/ui/textarea/styles.ts | 4 +- src/components/ui/toggle/index.tsx | 10 +- src/components/ui/wrapper/index.tsx | 4 +- src/components/util/ErrorBoundary/index.tsx | 6 +- src/containers/auth/AuthLayoutContainer.tsx | 4 +- src/containers/auth/AuthReleaseNotesScreen.tsx | 8 +- src/containers/auth/ChangeServerScreen.tsx | 8 +- src/containers/auth/InviteScreen.tsx | 4 +- src/containers/auth/LockedScreen.tsx | 8 +- src/containers/auth/LoginScreen.tsx | 6 +- src/containers/auth/PasswordScreen.tsx | 4 +- src/containers/auth/SetupAssistantScreen.tsx | 8 +- src/containers/auth/SignupScreen.tsx | 6 +- src/containers/auth/WelcomeScreen.tsx | 4 +- .../download-manager/DownloadManagerScreen.tsx | 4 +- .../download-manager/DownloadManagerWindow.tsx | 4 +- src/containers/layout/AppLayoutContainer.tsx | 6 +- src/containers/settings/AccountScreen.tsx | 4 +- src/containers/settings/EditServiceScreen.tsx | 32 +- src/containers/settings/EditSettingsScreen.tsx | 36 +- src/containers/settings/EditUserScreen.tsx | 12 +- src/containers/settings/InviteScreen.tsx | 4 +- src/containers/settings/RecipesScreen.tsx | 16 +- src/containers/settings/ReleaseNotesScreen.tsx | 2 +- src/containers/settings/ReleaseNotesWindow.tsx | 4 +- src/containers/settings/ServicesScreen.tsx | 4 +- src/containers/settings/SettingsWindow.tsx | 6 +- src/containers/settings/SupportScreen.tsx | 2 +- src/containers/settings/TeamScreen.tsx | 4 +- src/electron-util.ts | 2 +- src/electron/Settings.ts | 2 +- src/electron/deepLinking.ts | 2 +- src/electron/ipc-api/appIndicator.ts | 6 +- src/electron/ipc-api/autoUpdate.ts | 2 +- src/electron/ipc-api/download.ts | 4 +- src/electron/ipc-api/focusState.ts | 2 +- src/electron/ipc-api/index.ts | 18 +- src/electron/ipc-api/localServer.ts | 2 +- src/electron/ipc-api/processManager.ts | 2 +- src/electron/ipc-api/sessionStorage.ts | 2 +- src/electron/ipc-api/settings.ts | 2 +- src/electron/macOSPermissions.ts | 4 +- src/enforce-macos-app-location.ts | 2 +- src/environment-remote.ts | 12 +- src/features/appearance/index.ts | 8 +- src/features/basicAuth/Component.tsx | 20 +- src/features/basicAuth/index.ts | 2 +- src/features/basicAuth/mainIpcHandler.ts | 2 +- src/features/basicAuth/store.ts | 2 +- src/features/publishDebugInfo/Component.tsx | 18 +- src/features/quickSwitch/Component.tsx | 27 +- src/features/serviceProxy/index.ts | 2 +- src/features/todos/actions.ts | 2 +- src/features/todos/components/TodosWebview.tsx | 13 +- src/features/todos/containers/TodosScreen.tsx | 10 +- src/features/todos/store.ts | 25 +- src/features/utils/FeatureStore.ts | 2 +- .../webControls/components/WebControls.tsx | 18 +- .../webControls/containers/WebControlsScreen.tsx | 16 +- src/features/workspaces/actions.ts | 2 +- src/features/workspaces/api.ts | 2 +- .../workspaces/components/CreateWorkspaceForm.tsx | 14 +- .../workspaces/components/EditWorkspaceForm.tsx | 28 +- .../workspaces/components/WorkspaceDrawer.tsx | 20 +- .../workspaces/components/WorkspaceDrawerItem.tsx | 16 +- .../workspaces/components/WorkspaceItem.tsx | 8 +- .../components/WorkspaceServiceListItem.tsx | 10 +- .../components/WorkspaceSwitchingIndicator.tsx | 14 +- .../workspaces/components/WorkspacesDashboard.tsx | 20 +- .../workspaces/containers/EditWorkspaceScreen.tsx | 8 +- .../workspaces/containers/WorkspacesScreen.tsx | 10 +- src/features/workspaces/store.ts | 12 +- src/helpers/certs-helpers.ts | 2 +- src/helpers/password-helpers.ts | 2 +- src/helpers/update-helpers.ts | 2 +- src/helpers/url-helpers.ts | 2 +- src/helpers/userAgent-helpers.ts | 2 +- src/index.ts | 34 +- src/internal-server/start.ts | 2 +- src/lib/DBus.ts | 4 +- src/lib/Form.ts | 2 +- src/lib/Menu.ts | 60 +- src/lib/TouchBar.ts | 2 +- src/lib/Tray.ts | 12 +- src/models/Recipe.ts | 2 +- src/models/Service.ts | 16 +- src/models/UserAgent.ts | 2 +- src/routes.tsx | 54 +- src/stores/AppStore.ts | 32 +- src/stores/FeaturesStore.ts | 18 +- src/stores/GlobalErrorStore.ts | 10 +- src/stores/RecipePreviewsStore.ts | 10 +- src/stores/RecipesStore.ts | 14 +- src/stores/RequestStore.ts | 8 +- src/stores/ServicesStore.ts | 32 +- src/stores/SettingsStore.ts | 8 +- src/stores/UIStore.ts | 10 +- src/stores/UserStore.ts | 14 +- src/stores/index.ts | 24 +- src/stores/lib/CachedRequest.ts | 2 +- src/stores/lib/Reaction.ts | 2 +- src/stores/lib/Request.ts | 2 +- src/stores/lib/TypedStore.ts | 8 +- src/themes/default/index.ts | 4 +- src/webview/contextMenuBuilder.ts | 13 +- src/webview/lib/RecipeWebview.ts | 4 +- src/webview/recipe.ts | 22 +- src/webview/spellchecker.ts | 2 +- test/features/utils/FeatureStore.test.ts | 4 +- test/helpers/array-helpers.test.ts | 1 + test/themes/index.test.ts | 4 +- 208 files changed, 2498 insertions(+), 1705 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 07c07b8dc..50b511d0c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -66,9 +66,13 @@ module.exports = { '@typescript-eslint/consistent-type-assertions': 0, '@typescript-eslint/consistent-type-definitions': 0, '@typescript-eslint/no-empty-interface': 0, + '@typescript-eslint/ban-ts-comment': 0, // eslint-plugin-import 'import/no-extraneous-dependencies': 0, + + // sonar + 'sonar/no-try-promise': 0, }, }, ], diff --git a/biome.json b/biome.json index 0e7563225..c161d69fe 100644 --- a/biome.json +++ b/biome.json @@ -4,7 +4,7 @@ "enabled": false }, "organizeImports": { - "enabled": false + "enabled": true }, "linter": { "ignore": ["build", "coverage", "node_modules", "recipes", "*.json"], @@ -23,7 +23,9 @@ "suspicious": { "noEmptyInterface": "off", "noExplicitAny": "off", - "noArrayIndexKey": "off" + "noImplicitAnyLet": "off", + "noArrayIndexKey": "off", + "noThenProperty": "off" }, "performance": { "noDelete": "off" diff --git a/esbuild.mjs b/esbuild.mjs index b29f15621..8aa500f23 100755 --- a/esbuild.mjs +++ b/esbuild.mjs @@ -1,15 +1,15 @@ #!/usr/bin/env node +import * as fs from 'node:fs'; +import { performance } from 'node:perf_hooks'; +import chalk from 'chalk'; import * as esbuild from 'esbuild'; -import { sassPlugin } from 'esbuild-sass-plugin'; import { copy } from 'esbuild-plugin-copy'; -import glob from 'tiny-glob'; -import livereload from 'gulp-livereload'; -import * as fs from 'node:fs'; -import * as buildInfo from 'preval-build-info'; +import { sassPlugin } from 'esbuild-sass-plugin'; import fsPkg from 'fs-extra'; -import chalk from 'chalk'; -import { performance } from 'node:perf_hooks'; +import livereload from 'gulp-livereload'; import moment from 'moment'; +import * as buildInfo from 'preval-build-info'; +import glob from 'tiny-glob'; const { log } = console; @@ -140,4 +140,4 @@ const runEsbuild = async () => { } }; -runEsbuild(); +await runEsbuild(); diff --git a/package.json b/package.json index 1176ecb60..5fd0f0317 100644 --- a/package.json +++ b/package.json @@ -64,13 +64,13 @@ "@adonisjs/shield": "1.1.0", "@adonisjs/validator": "5.1.0", "@electron/remote": "2.1.2", - "@emotion/react": "11.11.3", + "@emotion/react": "11.11.4", "@emotion/styled": "11.11.0", "@krisdages/electron-process-manager": "3.0.0", "@mdi/js": "7.4.47", "@mdi/react": "1.6.1", - "@mui/icons-material": "5.15.10", - "@mui/material": "5.15.10", + "@mui/icons-material": "5.15.14", + "@mui/material": "5.15.14", "@octokit/core": "5.1.0", "@sentry/electron": "4.14.0", "@superwf/mobx-react-router": "7.4.0", @@ -78,13 +78,13 @@ "classnames": "2.5.1", "color": "4.2.3", "csstype": "3.1.3", - "darkreader": "4.9.77", + "darkreader": "4.9.80", "dbus-next": "0.10.2", "debug": "4.3.4", "electron-dl": "3.5.2", "electron-find": "1.0.7", "electron-react-titlebar": "1.2.1", - "electron-updater": "6.1.7", + "electron-updater": "6.1.8", "electron-window-state": "5.0.3", "fast-folder-size": "2.2.0", "fs-extra": "11.2.0", @@ -96,12 +96,12 @@ "languagedetect": "2.0.0", "lodash": "4.17.21", "macos-version": "5.2.1", - "markdown-to-jsx": "7.4.1", + "markdown-to-jsx": "7.4.4", "minimist": "1.2.8", "mobx": "6.12.0", "mobx-localstorage": "1.2.0", "mobx-react": "7.6.0", - "mobx-react-form": "6.9.3", + "mobx-react-form": "6.9.4", "moment": "2.30.1", "ms": "2.1.3", "normalize-url": "6.1.0", @@ -119,9 +119,9 @@ "react-jss": "10.10.0", "react-loader-spinner": "5.4.5", "react-modal": "3.16.1", - "react-router-dom": "6.22.1", + "react-router-dom": "6.22.3", "react-sortable-hoc": "2.0.0", - "react-tooltip": "5.26.2", + "react-tooltip": "5.26.3", "react-topbar-progress-indicator": "4.1.1", "react-transition-group": "4.4.5", "route-parser": "0.0.5", @@ -135,9 +135,9 @@ "validator": "13.11.0" }, "devDependencies": { - "@biomejs/biome": "1.4.1", - "@commitlint/cli": "18.6.1", - "@commitlint/config-conventional": "18.6.2", + "@biomejs/biome": "1.6.1", + "@commitlint/cli": "19.2.1", + "@commitlint/config-conventional": "19.1.0", "@electron/notarize": "1.2.3", "@formatjs/cli": "6.2.7", "@jest/types": "29.6.3", @@ -145,44 +145,44 @@ "@types/color": "3.0.6", "@types/fs-extra": "11.0.4", "@types/jest": "29.5.12", - "@types/lodash": "4.14.202", + "@types/lodash": "4.17.0", "@types/minimist": "1.2.5", "@types/ms": "0.7.34", - "@types/node": "20.11.19", + "@types/node": "20.11.30", "@types/prop-types": "15.7.11", - "@types/react": "18.2.55", - "@types/react-color": "3.0.11", - "@types/react-dom": "18.2.19", + "@types/react": "18.2.67", + "@types/react-color": "3.0.12", + "@types/react-dom": "18.2.22", "@types/react-transition-group": "4.4.10", "@types/route-parser": "0.1.7", - "@types/semver": "7.5.7", + "@types/semver": "7.5.8", "@types/tar": "6.1.11", "@types/uuid": "9.0.8", "@types/validator": "13.11.9", - "@typescript-eslint/eslint-plugin": "6.21.0", - "@typescript-eslint/parser": "6.21.0", + "@typescript-eslint/eslint-plugin": "7.3.1", + "@typescript-eslint/parser": "7.3.1", "all-contributors-cli": "6.26.1", "chalk": "5.3.0", "concurrently": "8.2.2", "cross-env": "7.0.3", "electron": "29.1.5", - "electron-builder": "24.9.1", + "electron-builder": "24.13.3", "esbuild": "0.16.17", "esbuild-plugin-copy": "2.1.1", "esbuild-runner": "2.2.2", "esbuild-sass-plugin": "2.16.1", - "eslint": "8.56.0", + "eslint": "8.57.0", "eslint-config-airbnb": "19.0.4", - "eslint-config-airbnb-typescript": "17.1.0", + "eslint-config-airbnb-typescript": "18.0.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.29.1", "eslint-plugin-jest": "27.9.0", "eslint-plugin-jsx-a11y": "6.8.0", "eslint-plugin-prettier": "5.1.3", - "eslint-plugin-react": "7.33.2", + "eslint-plugin-react": "7.34.1", "eslint-plugin-react-hooks": "4.6.0", - "eslint-plugin-sonar": "0.12.0", - "eslint-plugin-unicorn": "50.0.1", + "eslint-plugin-sonar": "0.13.2", + "eslint-plugin-unicorn": "51.0.1", "gulp-livereload": "4.0.2", "husky": "9.0.11", "is-ci": "3.0.1", @@ -190,10 +190,10 @@ "prettier": "3.2.5", "preval-build-info": "1.0.3", "rimraf": "5.0.5", - "simple-git": "3.22.0", + "simple-git": "3.23.0", "tiny-glob": "0.2.9", "ts-node": "10.9.2", - "typescript": "5.3.3", + "typescript": "5.4.3", "wait-on": "7.2.0" }, "pnpm": { @@ -202,7 +202,7 @@ }, "peerDependencyRules": { "allowedVersions": { - "@typescript-eslint/parser": "^6.0.0", + "@typescript-eslint/parser": "^7.0.0", "esbuild-sass-plugin>esbuild": "^0.16.7", "react-electron-web-view>react": "^18.0.0", "react-electron-web-view>react-dom": "^18.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab8abe1f6..4c22627f0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,11 +48,11 @@ dependencies: specifier: 2.1.2 version: 2.1.2(electron@29.1.5) '@emotion/react': - specifier: 11.11.3 - version: 11.11.3(@types/react@18.2.55)(react@18.2.0) + specifier: 11.11.4 + version: 11.11.4(@types/react@18.2.67)(react@18.2.0) '@emotion/styled': specifier: 11.11.0 - version: 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.55)(react@18.2.0) + version: 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.67)(react@18.2.0) '@krisdages/electron-process-manager': specifier: 3.0.0 version: 3.0.0(@electron/remote@2.1.2)(electron@29.1.5)(rxjs@7.8.1) @@ -63,11 +63,11 @@ dependencies: specifier: 1.6.1 version: 1.6.1 '@mui/icons-material': - specifier: 5.15.10 - version: 5.15.10(@mui/material@5.15.10)(@types/react@18.2.55)(react@18.2.0) + specifier: 5.15.14 + version: 5.15.14(@mui/material@5.15.14)(@types/react@18.2.67)(react@18.2.0) '@mui/material': - specifier: 5.15.10 - version: 5.15.10(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0) + specifier: 5.15.14 + version: 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) '@octokit/core': specifier: 5.1.0 version: 5.1.0 @@ -90,8 +90,8 @@ dependencies: specifier: 3.1.3 version: 3.1.3 darkreader: - specifier: 4.9.77 - version: 4.9.77 + specifier: 4.9.80 + version: 4.9.80 dbus-next: specifier: 0.10.2 version: 0.10.2 @@ -108,8 +108,8 @@ dependencies: specifier: 1.2.1 version: 1.2.1(react-dom@18.2.0)(react@18.2.0) electron-updater: - specifier: 6.1.7 - version: 6.1.7 + specifier: 6.1.8 + version: 6.1.8 electron-window-state: specifier: 5.0.3 version: 5.0.3 @@ -144,8 +144,8 @@ dependencies: specifier: 5.2.1 version: 5.2.1 markdown-to-jsx: - specifier: 7.4.1 - version: 7.4.1(react@18.2.0) + specifier: 7.4.4 + version: 7.4.4(react@18.2.0) minimist: specifier: 1.2.8 version: 1.2.8 @@ -159,8 +159,8 @@ dependencies: specifier: 7.6.0 version: 7.6.0(mobx@6.12.0)(react-dom@18.2.0)(react@18.2.0) mobx-react-form: - specifier: 6.9.3 - version: 6.9.3(mobx@6.12.0) + specifier: 6.9.4 + version: 6.9.4(mobx@6.12.0) moment: specifier: 2.30.1 version: 2.30.1 @@ -202,7 +202,7 @@ dependencies: version: 2.0.1(react-dom@18.2.0)(react@18.2.0) react-intl: specifier: 6.6.2 - version: 6.6.2(react@18.2.0)(typescript@5.3.3) + version: 6.6.2(react@18.2.0)(typescript@5.4.3) react-jss: specifier: 10.10.0 version: 10.10.0(react@18.2.0) @@ -213,14 +213,14 @@ dependencies: specifier: 3.16.1 version: 3.16.1(react-dom@18.2.0)(react@18.2.0) react-router-dom: - specifier: 6.22.1 - version: 6.22.1(react-dom@18.2.0)(react@18.2.0) + specifier: 6.22.3 + version: 6.22.3(react-dom@18.2.0)(react@18.2.0) react-sortable-hoc: specifier: 2.0.0 version: 2.0.0(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) react-tooltip: - specifier: 5.26.2 - version: 5.26.2(react-dom@18.2.0)(react@18.2.0) + specifier: 5.26.3 + version: 5.26.3(react-dom@18.2.0)(react@18.2.0) react-topbar-progress-indicator: specifier: 4.1.1 version: 4.1.1(react@18.2.0) @@ -265,14 +265,14 @@ optionalDependencies: devDependencies: '@biomejs/biome': - specifier: 1.4.1 - version: 1.4.1 + specifier: 1.6.1 + version: 1.6.1 '@commitlint/cli': - specifier: 18.6.1 - version: 18.6.1(@types/node@20.11.19)(typescript@5.3.3) + specifier: 19.2.1 + version: 19.2.1(@types/node@20.11.30)(typescript@5.4.3) '@commitlint/config-conventional': - specifier: 18.6.2 - version: 18.6.2 + specifier: 19.1.0 + version: 19.1.0 '@electron/notarize': specifier: 1.2.3 version: 1.2.3 @@ -295,8 +295,8 @@ devDependencies: specifier: 29.5.12 version: 29.5.12 '@types/lodash': - specifier: 4.14.202 - version: 4.14.202 + specifier: 4.17.0 + version: 4.17.0 '@types/minimist': specifier: 1.2.5 version: 1.2.5 @@ -304,20 +304,20 @@ devDependencies: specifier: 0.7.34 version: 0.7.34 '@types/node': - specifier: 20.11.19 - version: 20.11.19 + specifier: 20.11.30 + version: 20.11.30 '@types/prop-types': specifier: 15.7.11 version: 15.7.11 '@types/react': - specifier: 18.2.55 - version: 18.2.55 + specifier: 18.2.67 + version: 18.2.67 '@types/react-color': - specifier: 3.0.11 - version: 3.0.11 + specifier: 3.0.12 + version: 3.0.12 '@types/react-dom': - specifier: 18.2.19 - version: 18.2.19 + specifier: 18.2.22 + version: 18.2.22 '@types/react-transition-group': specifier: 4.4.10 version: 4.4.10 @@ -325,8 +325,8 @@ devDependencies: specifier: 0.1.7 version: 0.1.7 '@types/semver': - specifier: 7.5.7 - version: 7.5.7 + specifier: 7.5.8 + version: 7.5.8 '@types/tar': specifier: 6.1.11 version: 6.1.11 @@ -337,11 +337,11 @@ devDependencies: specifier: 13.11.9 version: 13.11.9 '@typescript-eslint/eslint-plugin': - specifier: 6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 7.3.1 + version: 7.3.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.3) '@typescript-eslint/parser': - specifier: 6.21.0 - version: 6.21.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 7.3.1 + version: 7.3.1(eslint@8.57.0)(typescript@5.4.3) all-contributors-cli: specifier: 6.26.1 version: 6.26.1 @@ -358,8 +358,8 @@ devDependencies: specifier: 29.1.5 version: 29.1.5 electron-builder: - specifier: 24.9.1 - version: 24.9.1 + specifier: 24.13.3 + version: 24.13.3(electron-builder-squirrel-windows@24.13.3) esbuild: specifier: 0.16.17 version: 0.16.17 @@ -373,41 +373,41 @@ devDependencies: specifier: 2.16.1 version: 2.16.1(esbuild@0.16.17) eslint: - specifier: 8.56.0 - version: 8.56.0 + specifier: 8.57.0 + version: 8.57.0 eslint-config-airbnb: specifier: 19.0.4 - version: 19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.56.0) + version: 19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.34.1)(eslint@8.57.0) eslint-config-airbnb-typescript: - specifier: 17.1.0 - version: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + specifier: 18.0.0 + version: 18.0.0(@typescript-eslint/eslint-plugin@7.3.1)(@typescript-eslint/parser@7.3.1)(eslint-plugin-import@2.29.1)(eslint@8.57.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@8.57.0) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0) eslint-plugin-jest: specifier: 27.9.0 - version: 27.9.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.56.0)(jest@29.7.0)(typescript@5.3.3) + version: 27.9.0(@typescript-eslint/eslint-plugin@7.3.1)(eslint@8.57.0)(jest@29.7.0)(typescript@5.4.3) eslint-plugin-jsx-a11y: specifier: 6.8.0 - version: 6.8.0(eslint@8.56.0) + version: 6.8.0(eslint@8.57.0) eslint-plugin-prettier: specifier: 5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.5) + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) eslint-plugin-react: - specifier: 7.33.2 - version: 7.33.2(eslint@8.56.0) + specifier: 7.34.1 + version: 7.34.1(eslint@8.57.0) eslint-plugin-react-hooks: specifier: 4.6.0 - version: 4.6.0(eslint@8.56.0) + version: 4.6.0(eslint@8.57.0) eslint-plugin-sonar: - specifier: 0.12.0 - version: 0.12.0(@babel/core@7.24.0)(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 0.13.2 + version: 0.13.2(@babel/core@7.24.0)(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.3) eslint-plugin-unicorn: - specifier: 50.0.1 - version: 50.0.1(eslint@8.56.0) + specifier: 51.0.1 + version: 51.0.1(eslint@8.57.0) gulp-livereload: specifier: 4.0.2 version: 4.0.2 @@ -419,7 +419,7 @@ devDependencies: version: 3.0.1 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + version: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2) prettier: specifier: 3.2.5 version: 3.2.5 @@ -430,17 +430,17 @@ devDependencies: specifier: 5.0.5 version: 5.0.5 simple-git: - specifier: 3.22.0 - version: 3.22.0 + specifier: 3.23.0 + version: 3.23.0 tiny-glob: specifier: 0.2.9 version: 0.2.9 ts-node: specifier: 10.9.2 - version: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + version: 10.9.2(@types/node@20.11.30)(typescript@5.4.3) typescript: - specifier: 5.3.3 - version: 5.3.3 + specifier: 5.4.3 + version: 5.4.3 wait-on: specifier: 7.2.0 version: 7.2.0(debug@4.3.4) @@ -728,7 +728,7 @@ packages: transitivePeerDependencies: - supports-color - /@babel/eslint-parser@7.23.10(@babel/core@7.24.0)(eslint@8.56.0): + /@babel/eslint-parser@7.23.10(@babel/core@7.24.0)(eslint@8.57.0): resolution: {integrity: sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -737,7 +737,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.56.0 + eslint: 8.57.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true @@ -773,7 +773,7 @@ packages: dependencies: '@babel/compat-data': 7.22.20 '@babel/helper-validator-option': 7.22.15 - browserslist: 4.21.10 + browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 dev: true @@ -1135,22 +1135,24 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@biomejs/biome@1.4.1: - resolution: {integrity: sha512-JccVAwPbhi37pdxbAGmaOBjUTKEwEjWAhl7rKkVVuXHo4MLASXJ5HR8BTgrImi4/7rTBsGz1tgVD1Kwv1CHGRg==} + /@biomejs/biome@1.6.1: + resolution: {integrity: sha512-SILQvA2S0XeaOuu1bivv6fQmMo7zMfr2xqDEN+Sz78pGbAKZnGmg0emsXjQWoBY/RVm9kPCgX+aGEpZZTYaM7w==} engines: {node: '>=14.*'} hasBin: true requiresBuild: true optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.4.1 - '@biomejs/cli-darwin-x64': 1.4.1 - '@biomejs/cli-linux-arm64': 1.4.1 - '@biomejs/cli-linux-x64': 1.4.1 - '@biomejs/cli-win32-arm64': 1.4.1 - '@biomejs/cli-win32-x64': 1.4.1 - dev: true - - /@biomejs/cli-darwin-arm64@1.4.1: - resolution: {integrity: sha512-PZWy2Idndqux38p6AXSDQM2ldRAWi32bvb7bMbTN0ALzpWYMYnxd71ornatumSSJYoNhKmxzDLq+jct7nZJ79w==} + '@biomejs/cli-darwin-arm64': 1.6.1 + '@biomejs/cli-darwin-x64': 1.6.1 + '@biomejs/cli-linux-arm64': 1.6.1 + '@biomejs/cli-linux-arm64-musl': 1.6.1 + '@biomejs/cli-linux-x64': 1.6.1 + '@biomejs/cli-linux-x64-musl': 1.6.1 + '@biomejs/cli-win32-arm64': 1.6.1 + '@biomejs/cli-win32-x64': 1.6.1 + dev: true + + /@biomejs/cli-darwin-arm64@1.6.1: + resolution: {integrity: sha512-KlvY00iB9T/vFi4m/GXxEyYkYnYy6aw06uapzUIIdiMMj7I/pmZu7CsZlzWdekVD0j+SsQbxdZMsb0wPhnRSsg==} engines: {node: '>=14.*'} cpu: [arm64] os: [darwin] @@ -1158,8 +1160,8 @@ packages: dev: true optional: true - /@biomejs/cli-darwin-x64@1.4.1: - resolution: {integrity: sha512-soj3BWhnsM1M2JlzR09cibUzG1owJqetwj/Oo7yg0foijo9lNH9XWXZfJBYDKgW/6Fomn+CC2EcUS+hisQzt9g==} + /@biomejs/cli-darwin-x64@1.6.1: + resolution: {integrity: sha512-jP4E8TXaQX5e3nvRJSzB+qicZrdIDCrjR0sSb1DaDTx4JPZH5WXq/BlTqAyWi3IijM+IYMjWqAAK4kOHsSCzxw==} engines: {node: '>=14.*'} cpu: [x64] os: [darwin] @@ -1167,8 +1169,8 @@ packages: dev: true optional: true - /@biomejs/cli-linux-arm64@1.4.1: - resolution: {integrity: sha512-YIZqfJUg4F+fPsBTXxgD7EU2E5OAYbmYSl/snf4PevwfQCWE/omOFZv+NnIQmjYj9I7ParDgcJvanoA3/kO0JQ==} + /@biomejs/cli-linux-arm64-musl@1.6.1: + resolution: {integrity: sha512-YdkDgFecdHJg7PJxAMaZIixVWGB6St4yH08BHagO0fEhNNiY8cAKEVo2mcXlsnEiTMpeSEAY9VxLUrVT3IVxpw==} engines: {node: '>=14.*'} cpu: [arm64] os: [linux] @@ -1176,8 +1178,26 @@ packages: dev: true optional: true - /@biomejs/cli-linux-x64@1.4.1: - resolution: {integrity: sha512-9YOZw3qBd/KUj63A6Hn2zZgzGb2nbESM0qNmeMXgmqinVKM//uc4OgY5TuKITuGjMSvcVxxd4dX1IzYjV9qvNQ==} + /@biomejs/cli-linux-arm64@1.6.1: + resolution: {integrity: sha512-nxD1UyX3bWSl/RSKlib/JsOmt+652/9yieogdSC/UTLgVCZYOF7u8L/LK7kAa0Y4nA8zSPavAQTgko7mHC2ObA==} + engines: {node: '>=14.*'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@biomejs/cli-linux-x64-musl@1.6.1: + resolution: {integrity: sha512-aSISIDmxq04NNy7tm4x9rBk2vH0ub2VDIE4outEmdC2LBtEJoINiphlZagx/FvjbsqUfygent9QUSn0oREnAXg==} + engines: {node: '>=14.*'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@biomejs/cli-linux-x64@1.6.1: + resolution: {integrity: sha512-BYAzenlMF3QdngjNFw9QVBXKGNzeecqwF3pwDgUGEvU7OJpn1/lyVkJVxYPtVGRNdjQ9e6l/s8NjKuBpW/ZR4Q==} engines: {node: '>=14.*'} cpu: [x64] os: [linux] @@ -1185,8 +1205,8 @@ packages: dev: true optional: true - /@biomejs/cli-win32-arm64@1.4.1: - resolution: {integrity: sha512-nWQbvkNKxYn/kCQ0yVF8kCaS3VzaGvtFSmItXiMknU4521LDjJ7tNWH12Gol+pIslrCbd4E1LhJa0a3ThRsBVg==} + /@biomejs/cli-win32-arm64@1.6.1: + resolution: {integrity: sha512-/eCHQKZ1kEawUpkSuXq4urtxMsD1P1678OPG3zNKt3ru16AqqspLdO3jzBe3k74xCPYnQ36e9Yqc97Mo0qgPtg==} engines: {node: '>=14.*'} cpu: [arm64] os: [win32] @@ -1194,8 +1214,8 @@ packages: dev: true optional: true - /@biomejs/cli-win32-x64@1.4.1: - resolution: {integrity: sha512-88fR2CQxQ4YLs2BUDuywWYQpUKgU3A3sTezANFc/4LGKQFFLV2yX+F7QAdZVkMHfA+RD9Xg178HomM/6mnTNPA==} + /@biomejs/cli-win32-x64@1.6.1: + resolution: {integrity: sha512-5TUZbzBwnDLFxLVGEPsorNi6eC2Gt+z4Oei9Qvq0M/4c4/mjZ96ABgwao/tMxf4ZBr/qyy2YdvF+gX9Rc+xC0A==} engines: {node: '>=14.*'} cpu: [x64] os: [win32] @@ -1208,47 +1228,44 @@ packages: engines: {node: '>=0.1.90'} dev: false - /@commitlint/cli@18.6.1(@types/node@20.11.19)(typescript@5.3.3): - resolution: {integrity: sha512-5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw==} + /@commitlint/cli@19.2.1(@types/node@20.11.30)(typescript@5.4.3): + resolution: {integrity: sha512-cbkYUJsLqRomccNxvoJTyv5yn0bSy05BBizVyIcLACkRbVUqYorC351Diw/XFSWC/GtpwiwT2eOvQgFZa374bg==} engines: {node: '>=v18'} hasBin: true dependencies: - '@commitlint/format': 18.6.1 - '@commitlint/lint': 18.6.1 - '@commitlint/load': 18.6.1(@types/node@20.11.19)(typescript@5.3.3) - '@commitlint/read': 18.6.1 - '@commitlint/types': 18.6.1 - execa: 5.1.1 - lodash.isfunction: 3.0.9 - resolve-from: 5.0.0 - resolve-global: 1.0.0 + '@commitlint/format': 19.0.3 + '@commitlint/lint': 19.1.0 + '@commitlint/load': 19.2.0(@types/node@20.11.30)(typescript@5.4.3) + '@commitlint/read': 19.2.1 + '@commitlint/types': 19.0.3 + execa: 8.0.1 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - typescript dev: true - /@commitlint/config-conventional@18.6.2: - resolution: {integrity: sha512-PcgSYg1AKGQIwDQKbaHtJsfqYy4uJTC7crLVZ83lfjcPaec4Pry2vLeaWej7ao2KsT20l9dWoMPpEGg8LWdUuA==} + /@commitlint/config-conventional@19.1.0: + resolution: {integrity: sha512-KIKD2xrp6Uuk+dcZVj3++MlzIr/Su6zLE8crEDQCZNvWHNQSeeGbzOlNtsR32TUy6H3JbP7nWgduAHCaiGQ6EA==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.6.1 + '@commitlint/types': 19.0.3 conventional-changelog-conventionalcommits: 7.0.2 dev: true - /@commitlint/config-validator@18.6.1: - resolution: {integrity: sha512-05uiToBVfPhepcQWE1ZQBR/Io3+tb3gEotZjnI4tTzzPk16NffN6YABgwFQCLmzZefbDcmwWqJWc2XT47q7Znw==} + /@commitlint/config-validator@19.0.3: + resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.6.1 + '@commitlint/types': 19.0.3 ajv: 8.12.0 dev: true - /@commitlint/ensure@18.6.1: - resolution: {integrity: sha512-BPm6+SspyxQ7ZTsZwXc7TRQL5kh5YWt3euKmEIBZnocMFkJevqs3fbLRb8+8I/cfbVcAo4mxRlpTPfz8zX7SnQ==} + /@commitlint/ensure@19.0.3: + resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.6.1 + '@commitlint/types': 19.0.3 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 @@ -1256,121 +1273,122 @@ packages: lodash.upperfirst: 4.3.1 dev: true - /@commitlint/execute-rule@18.6.1: - resolution: {integrity: sha512-7s37a+iWyJiGUeMFF6qBlyZciUkF8odSAnHijbD36YDctLhGKoYltdvuJ/AFfRm6cBLRtRk9cCVPdsEFtt/2rg==} + /@commitlint/execute-rule@19.0.0: + resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} engines: {node: '>=v18'} dev: true - /@commitlint/format@18.6.1: - resolution: {integrity: sha512-K8mNcfU/JEFCharj2xVjxGSF+My+FbUHoqR+4GqPGrHNqXOGNio47ziiR4HQUPKtiNs05o8/WyLBoIpMVOP7wg==} + /@commitlint/format@19.0.3: + resolution: {integrity: sha512-QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.6.1 - chalk: 4.1.2 + '@commitlint/types': 19.0.3 + chalk: 5.3.0 dev: true - /@commitlint/is-ignored@18.6.1: - resolution: {integrity: sha512-MOfJjkEJj/wOaPBw5jFjTtfnx72RGwqYIROABudOtJKW7isVjFe9j0t8xhceA02QebtYf4P/zea4HIwnXg8rvA==} + /@commitlint/is-ignored@19.0.3: + resolution: {integrity: sha512-MqDrxJaRSVSzCbPsV6iOKG/Lt52Y+PVwFVexqImmYYFhe51iVJjK2hRhOG2jUAGiUHk4jpdFr0cZPzcBkSzXDQ==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.6.1 + '@commitlint/types': 19.0.3 semver: 7.6.0 dev: true - /@commitlint/lint@18.6.1: - resolution: {integrity: sha512-8WwIFo3jAuU+h1PkYe5SfnIOzp+TtBHpFr4S8oJWhu44IWKuVx6GOPux3+9H1iHOan/rGBaiacicZkMZuluhfQ==} + /@commitlint/lint@19.1.0: + resolution: {integrity: sha512-ESjaBmL/9cxm+eePyEr6SFlBUIYlYpI80n+Ltm7IA3MAcrmiP05UMhJdAD66sO8jvo8O4xdGn/1Mt2G5VzfZKw==} engines: {node: '>=v18'} dependencies: - '@commitlint/is-ignored': 18.6.1 - '@commitlint/parse': 18.6.1 - '@commitlint/rules': 18.6.1 - '@commitlint/types': 18.6.1 + '@commitlint/is-ignored': 19.0.3 + '@commitlint/parse': 19.0.3 + '@commitlint/rules': 19.0.3 + '@commitlint/types': 19.0.3 dev: true - /@commitlint/load@18.6.1(@types/node@20.11.19)(typescript@5.3.3): - resolution: {integrity: sha512-p26x8734tSXUHoAw0ERIiHyW4RaI4Bj99D8YgUlVV9SedLf8hlWAfyIFhHRIhfPngLlCe0QYOdRKYFt8gy56TA==} + /@commitlint/load@19.2.0(@types/node@20.11.30)(typescript@5.4.3): + resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} engines: {node: '>=v18'} dependencies: - '@commitlint/config-validator': 18.6.1 - '@commitlint/execute-rule': 18.6.1 - '@commitlint/resolve-extends': 18.6.1 - '@commitlint/types': 18.6.1 - chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.3.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.11.19)(cosmiconfig@8.3.6)(typescript@5.3.3) + '@commitlint/config-validator': 19.0.3 + '@commitlint/execute-rule': 19.0.0 + '@commitlint/resolve-extends': 19.1.0 + '@commitlint/types': 19.0.3 + chalk: 5.3.0 + cosmiconfig: 9.0.0(typescript@5.4.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.11.30)(cosmiconfig@9.0.0)(typescript@5.4.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 - resolve-from: 5.0.0 transitivePeerDependencies: - '@types/node' - typescript dev: true - /@commitlint/message@18.6.1: - resolution: {integrity: sha512-VKC10UTMLcpVjMIaHHsY1KwhuTQtdIKPkIdVEwWV+YuzKkzhlI3aNy6oo1eAN6b/D2LTtZkJe2enHmX0corYRw==} + /@commitlint/message@19.0.0: + resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==} engines: {node: '>=v18'} dev: true - /@commitlint/parse@18.6.1: - resolution: {integrity: sha512-eS/3GREtvVJqGZrwAGRwR9Gdno3YcZ6Xvuaa+vUF8j++wsmxrA2En3n0ccfVO2qVOLJC41ni7jSZhQiJpMPGOQ==} + /@commitlint/parse@19.0.3: + resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.6.1 + '@commitlint/types': 19.0.3 conventional-changelog-angular: 7.0.0 conventional-commits-parser: 5.0.0 dev: true - /@commitlint/read@18.6.1: - resolution: {integrity: sha512-ia6ODaQFzXrVul07ffSgbZGFajpe8xhnDeLIprLeyfz3ivQU1dIoHp7yz0QIorZ6yuf4nlzg4ZUkluDrGN/J/w==} + /@commitlint/read@19.2.1: + resolution: {integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==} engines: {node: '>=v18'} dependencies: - '@commitlint/top-level': 18.6.1 - '@commitlint/types': 18.6.1 - git-raw-commits: 2.0.11 + '@commitlint/top-level': 19.0.0 + '@commitlint/types': 19.0.3 + execa: 8.0.1 + git-raw-commits: 4.0.0 minimist: 1.2.8 dev: true - /@commitlint/resolve-extends@18.6.1: - resolution: {integrity: sha512-ifRAQtHwK+Gj3Bxj/5chhc4L2LIc3s30lpsyW67yyjsETR6ctHAHRu1FSpt0KqahK5xESqoJ92v6XxoDRtjwEQ==} + /@commitlint/resolve-extends@19.1.0: + resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==} engines: {node: '>=v18'} dependencies: - '@commitlint/config-validator': 18.6.1 - '@commitlint/types': 18.6.1 - import-fresh: 3.3.0 + '@commitlint/config-validator': 19.0.3 + '@commitlint/types': 19.0.3 + global-directory: 4.0.1 + import-meta-resolve: 4.0.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 - resolve-global: 1.0.0 dev: true - /@commitlint/rules@18.6.1: - resolution: {integrity: sha512-kguM6HxZDtz60v/zQYOe0voAtTdGybWXefA1iidjWYmyUUspO1zBPQEmJZ05/plIAqCVyNUTAiRPWIBKLCrGew==} + /@commitlint/rules@19.0.3: + resolution: {integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==} engines: {node: '>=v18'} dependencies: - '@commitlint/ensure': 18.6.1 - '@commitlint/message': 18.6.1 - '@commitlint/to-lines': 18.6.1 - '@commitlint/types': 18.6.1 - execa: 5.1.1 + '@commitlint/ensure': 19.0.3 + '@commitlint/message': 19.0.0 + '@commitlint/to-lines': 19.0.0 + '@commitlint/types': 19.0.3 + execa: 8.0.1 dev: true - /@commitlint/to-lines@18.6.1: - resolution: {integrity: sha512-Gl+orGBxYSNphx1+83GYeNy5N0dQsHBQ9PJMriaLQDB51UQHCVLBT/HBdOx5VaYksivSf5Os55TLePbRLlW50Q==} + /@commitlint/to-lines@19.0.0: + resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==} engines: {node: '>=v18'} dev: true - /@commitlint/top-level@18.6.1: - resolution: {integrity: sha512-HyiHQZUTf0+r0goTCDs/bbVv/LiiQ7AVtz6KIar+8ZrseB9+YJAIo8HQ2IC2QT1y3N1lbW6OqVEsTHjbT6hGSw==} + /@commitlint/top-level@19.0.0: + resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==} engines: {node: '>=v18'} dependencies: - find-up: 5.0.0 + find-up: 7.0.0 dev: true - /@commitlint/types@18.6.1: - resolution: {integrity: sha512-gwRLBLra/Dozj2OywopeuHj2ac26gjGkz2cZ+86cTJOdtWfiRRr4+e77ZDAGc6MDWxaWheI+mAV5TLWWRwqrFg==} + /@commitlint/types@19.0.3: + resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} engines: {node: '>=v18'} dependencies: - chalk: 4.1.2 + '@types/conventional-commits-parser': 5.0.0 + chalk: 5.3.0 dev: true /@cspotcode/source-map-support@0.8.1: @@ -1432,8 +1450,8 @@ packages: - supports-color dev: true - /@electron/notarize@2.1.0: - resolution: {integrity: sha512-Q02xem1D0sg4v437xHgmBLxI2iz/fc0D4K7fiVWHa/AnW8o7D751xyKNXgziA6HrTOme9ul1JfWN5ark8WH1xA==} + /@electron/notarize@2.2.1: + resolution: {integrity: sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==} engines: {node: '>= 10.0.0'} dependencies: debug: 4.3.4(supports-color@5.5.0) @@ -1466,8 +1484,8 @@ packages: electron: 29.1.5 dev: false - /@electron/universal@1.4.1: - resolution: {integrity: sha512-lE/U3UNw1YHuowNbTmKNs9UlS3En3cPgwM5MI+agIgr/B1hSze9NdOP0qn7boZaI9Lph8IDv3/24g9IxnJP7aQ==} + /@electron/universal@1.5.1: + resolution: {integrity: sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==} engines: {node: '>=8.6'} dependencies: '@electron/asar': 3.2.8 @@ -1531,8 +1549,8 @@ packages: resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} dev: false - /@emotion/react@11.11.3(@types/react@18.2.55)(react@18.2.0): - resolution: {integrity: sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA==} + /@emotion/react@11.11.4(@types/react@18.2.67)(react@18.2.0): + resolution: {integrity: sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==} peerDependencies: '@types/react': '*' react: '>=16.8.0' @@ -1540,14 +1558,14 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.9 '@emotion/babel-plugin': 11.11.0 '@emotion/cache': 11.11.0 '@emotion/serialize': 1.1.3 '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.2.55 + '@types/react': 18.2.67 hoist-non-react-statics: 3.3.2 react: 18.2.0 dev: false @@ -1576,7 +1594,7 @@ packages: resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} dev: false - /@emotion/styled@11.11.0(@emotion/react@11.11.3)(@types/react@18.2.55)(react@18.2.0): + /@emotion/styled@11.11.0(@emotion/react@11.11.4)(@types/react@18.2.67)(react@18.2.0): resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} peerDependencies: '@emotion/react': ^11.0.0-rc.0 @@ -1589,11 +1607,11 @@ packages: '@babel/runtime': 7.23.5 '@emotion/babel-plugin': 11.11.0 '@emotion/is-prop-valid': 1.2.1 - '@emotion/react': 11.11.3(@types/react@18.2.55)(react@18.2.0) + '@emotion/react': 11.11.4(@types/react@18.2.67)(react@18.2.0) '@emotion/serialize': 1.1.2 '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 - '@types/react': 18.2.55 + '@types/react': 18.2.67 react: 18.2.0 dev: false @@ -1823,13 +1841,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1855,8 +1873,8 @@ packages: - supports-color dev: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1949,7 +1967,7 @@ packages: tslib: 2.6.2 dev: false - /@formatjs/intl@2.10.0(typescript@5.3.3): + /@formatjs/intl@2.10.0(typescript@5.4.3): resolution: {integrity: sha512-X3xT9guVkKDS86EKV80lS0KxoazUglkJTGZO66sKY7otgl0VeStPA8B3u8UkKT47PexVV98fUzjpkchYmbe9nw==} peerDependencies: typescript: ^4.7 || 5 @@ -1964,7 +1982,7 @@ packages: '@formatjs/intl-listformat': 7.5.5 intl-messageformat: 10.5.11 tslib: 2.6.2 - typescript: 5.3.3 + typescript: 5.4.3 dev: false /@gar/promisify@1.1.3: @@ -1983,11 +2001,11 @@ packages: '@hapi/hoek': 9.3.0 dev: true - /@humanwhocodes/config-array@0.11.13: - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.1 + '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4(supports-color@5.5.0) minimatch: 3.1.2 transitivePeerDependencies: @@ -1999,8 +2017,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@2.0.1: - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: true /@icons/material@0.2.4(react@18.2.0): @@ -2045,7 +2063,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.11.19 + '@types/node': 20.11.30 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -2066,14 +2084,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.11.19 + '@types/node': 20.11.30 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + jest-config: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -2101,7 +2119,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.11.19 + '@types/node': 20.11.30 jest-mock: 29.7.0 dev: true @@ -2128,7 +2146,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.2.0 - '@types/node': 20.11.19 + '@types/node': 20.11.30 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -2161,7 +2179,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 - '@types/node': 20.11.19 + '@types/node': 20.11.30 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -2249,7 +2267,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.11.19 + '@types/node': 20.11.30 '@types/yargs': 17.0.24 chalk: 4.1.2 dev: true @@ -2391,8 +2409,8 @@ packages: prop-types: 15.8.1 dev: false - /@mui/base@5.0.0-beta.36(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-6A8fYiXgjqTO6pgj31Hc8wm1M3rFYCxDRh09dBVk0L0W4cb2lnurRJa3cAyic6hHY+we1S58OdGYRbKmOsDpGQ==} + /@mui/base@5.0.0-beta.40(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 @@ -2404,22 +2422,22 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0) - '@mui/types': 7.2.13(@types/react@18.2.55) - '@mui/utils': 5.15.9(@types/react@18.2.55)(react@18.2.0) + '@mui/types': 7.2.14(@types/react@18.2.67) + '@mui/utils': 5.15.14(@types/react@18.2.67)(react@18.2.0) '@popperjs/core': 2.11.8 - '@types/react': 18.2.55 + '@types/react': 18.2.67 clsx: 2.1.0 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@mui/core-downloads-tracker@5.15.10: - resolution: {integrity: sha512-qPv7B+LeMatYuzRjB3hlZUHqinHx/fX4YFBiaS19oC02A1e9JFuDKDvlyRQQ5oRSbJJt0QlaLTlr0IcauVcJRQ==} + /@mui/core-downloads-tracker@5.15.14: + resolution: {integrity: sha512-on75VMd0XqZfaQW+9pGjSNiqW+ghc5E2ZSLRBXwcXl/C4YzjfyjrLPhrEpKnR9Uym9KXBvxrhoHfPcczYHweyA==} dev: false - /@mui/icons-material@5.15.10(@mui/material@5.15.10)(@types/react@18.2.55)(react@18.2.0): - resolution: {integrity: sha512-9cF8oUHZKo9oQ7EQ3pxPELaZuZVmphskU4OI6NiJNDVN7zcuvrEsuWjYo1Zh4fLiC39Nrvm30h/B51rcUjvSGA==} + /@mui/icons-material@5.15.14(@mui/material@5.15.14)(@types/react@18.2.67)(react@18.2.0): + resolution: {integrity: sha512-vj/51k7MdFmt+XVw94sl30SCvGx6+wJLsNYjZRgxhS6y3UtnWnypMOsm3Kmg8TN+P0dqwsjy4/fX7B1HufJIhw==} engines: {node: '>=12.0.0'} peerDependencies: '@mui/material': ^5.0.0 @@ -2430,13 +2448,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@mui/material': 5.15.10(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.55 + '@mui/material': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.67 react: 18.2.0 dev: false - /@mui/material@5.15.10(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-YJJGHjwDOucecjDEV5l9ISTCo+l9YeWrho623UajzoHRYxuKUmwrGVYOW4PKwGvCx9SU9oklZnbbi2Clc5XZHw==} + /@mui/material@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-kEbRw6fASdQ1SQ7LVdWR5OlWV3y7Y54ZxkLzd6LV5tmz+NpO3MJKZXSfgR0LHMP7meKsPiMm4AuzV0pXDpk/BQ==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -2453,14 +2471,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@emotion/react': 11.11.3(@types/react@18.2.55)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.55)(react@18.2.0) - '@mui/base': 5.0.0-beta.36(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0) - '@mui/core-downloads-tracker': 5.15.10 - '@mui/system': 5.15.9(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react@18.2.0) - '@mui/types': 7.2.13(@types/react@18.2.55) - '@mui/utils': 5.15.9(@types/react@18.2.55)(react@18.2.0) - '@types/react': 18.2.55 + '@emotion/react': 11.11.4(@types/react@18.2.67)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.67)(react@18.2.0) + '@mui/base': 5.0.0-beta.40(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) + '@mui/core-downloads-tracker': 5.15.14 + '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.67)(react@18.2.0) + '@mui/types': 7.2.14(@types/react@18.2.67) + '@mui/utils': 5.15.14(@types/react@18.2.67)(react@18.2.0) + '@types/react': 18.2.67 '@types/react-transition-group': 4.4.10 clsx: 2.1.0 csstype: 3.1.3 @@ -2471,8 +2489,8 @@ packages: react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) dev: false - /@mui/private-theming@5.15.9(@types/react@18.2.55)(react@18.2.0): - resolution: {integrity: sha512-/aMJlDOxOTAXyp4F2rIukW1O0anodAMCkv1DfBh/z9vaKHY3bd5fFf42wmP+0GRmwMinC5aWPpNfHXOED1fEtg==} + /@mui/private-theming@5.15.14(@types/react@18.2.67)(react@18.2.0): + resolution: {integrity: sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==} engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 @@ -2482,14 +2500,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@mui/utils': 5.15.9(@types/react@18.2.55)(react@18.2.0) - '@types/react': 18.2.55 + '@mui/utils': 5.15.14(@types/react@18.2.67)(react@18.2.0) + '@types/react': 18.2.67 prop-types: 15.8.1 react: 18.2.0 dev: false - /@mui/styled-engine@5.15.9(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0): - resolution: {integrity: sha512-NRKtYkL5PZDH7dEmaLEIiipd3mxNnQSO+Yo8rFNBNptY8wzQnQ+VjayTq39qH7Sast5cwHKYFusUrQyD+SS4Og==} + /@mui/styled-engine@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(react@18.2.0): + resolution: {integrity: sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.4.1 @@ -2503,15 +2521,15 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@emotion/cache': 11.11.0 - '@emotion/react': 11.11.3(@types/react@18.2.55)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.55)(react@18.2.0) + '@emotion/react': 11.11.4(@types/react@18.2.67)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.67)(react@18.2.0) csstype: 3.1.3 prop-types: 15.8.1 react: 18.2.0 dev: false - /@mui/system@5.15.9(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react@18.2.0): - resolution: {integrity: sha512-SxkaaZ8jsnIJ77bBXttfG//LUf6nTfOcaOuIgItqfHv60ZCQy/Hu7moaob35kBb+guxVJnoSZ+7vQJrA/E7pKg==} + /@mui/system@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.67)(react@18.2.0): + resolution: {integrity: sha512-auXLXzUaCSSOLqJXmsAaq7P96VPRXg2Rrz6OHNV7lr+kB8lobUF+/N84Vd9C4G/wvCXYPs5TYuuGBRhcGbiBGg==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -2527,32 +2545,32 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@emotion/react': 11.11.3(@types/react@18.2.55)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.55)(react@18.2.0) - '@mui/private-theming': 5.15.9(@types/react@18.2.55)(react@18.2.0) - '@mui/styled-engine': 5.15.9(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - '@mui/types': 7.2.13(@types/react@18.2.55) - '@mui/utils': 5.15.9(@types/react@18.2.55)(react@18.2.0) - '@types/react': 18.2.55 + '@emotion/react': 11.11.4(@types/react@18.2.67)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.67)(react@18.2.0) + '@mui/private-theming': 5.15.14(@types/react@18.2.67)(react@18.2.0) + '@mui/styled-engine': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(react@18.2.0) + '@mui/types': 7.2.14(@types/react@18.2.67) + '@mui/utils': 5.15.14(@types/react@18.2.67)(react@18.2.0) + '@types/react': 18.2.67 clsx: 2.1.0 csstype: 3.1.3 prop-types: 15.8.1 react: 18.2.0 dev: false - /@mui/types@7.2.13(@types/react@18.2.55): - resolution: {integrity: sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==} + /@mui/types@7.2.14(@types/react@18.2.67): + resolution: {integrity: sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 peerDependenciesMeta: '@types/react': optional: true dependencies: - '@types/react': 18.2.55 + '@types/react': 18.2.67 dev: false - /@mui/utils@5.15.9(@types/react@18.2.55)(react@18.2.0): - resolution: {integrity: sha512-yDYfr61bCYUz1QtwvpqYy/3687Z8/nS4zv7lv/ih/6ZFGMl1iolEvxRmR84v2lOYxlds+kq1IVYbXxDKh8Z9sg==} + /@mui/utils@5.15.14(@types/react@18.2.67)(react@18.2.0): + resolution: {integrity: sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==} engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 @@ -2563,7 +2581,7 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@types/prop-types': 15.7.11 - '@types/react': 18.2.55 + '@types/react': 18.2.67 prop-types: 15.8.1 react: 18.2.0 react-is: 18.2.0 @@ -2729,8 +2747,8 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: false - /@remix-run/router@1.15.1: - resolution: {integrity: sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w==} + /@remix-run/router@1.15.3: + resolution: {integrity: sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==} engines: {node: '>=14.0.0'} dev: false @@ -2946,7 +2964,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 20.11.19 + '@types/node': 20.11.30 '@types/responselike': 1.0.3 /@types/color-convert@2.0.3: @@ -2965,6 +2983,12 @@ packages: '@types/color-convert': 2.0.3 dev: true + /@types/conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + dependencies: + '@types/node': 20.11.30 + dev: true + /@types/debug@4.1.12: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: @@ -2975,25 +2999,25 @@ packages: resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.11.19 + '@types/node': 20.11.30 dev: true /@types/fs-extra@9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 20.11.19 + '@types/node': 20.11.30 dev: true /@types/graceful-fs@4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 20.11.19 + '@types/node': 20.11.30 dev: true /@types/hoist-non-react-statics@3.3.5: resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==} dependencies: - '@types/react': 18.2.55 + '@types/react': 18.2.67 hoist-non-react-statics: 3.3.2 dev: false @@ -3034,16 +3058,16 @@ packages: /@types/jsonfile@6.1.4: resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: - '@types/node': 20.11.19 + '@types/node': 20.11.30 dev: true /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 20.11.19 + '@types/node': 20.11.30 - /@types/lodash@4.14.202: - resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} + /@types/lodash@4.17.0: + resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} dev: true /@types/minimist@1.2.5: @@ -3054,8 +3078,8 @@ packages: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true - /@types/node@20.11.19: - resolution: {integrity: sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==} + /@types/node@20.11.30: + resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} dependencies: undici-types: 5.26.5 @@ -3071,7 +3095,7 @@ packages: resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} requiresBuild: true dependencies: - '@types/node': 20.11.19 + '@types/node': 20.11.30 xmlbuilder: 15.1.1 dev: true optional: true @@ -3079,26 +3103,26 @@ packages: /@types/prop-types@15.7.11: resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} - /@types/react-color@3.0.11: - resolution: {integrity: sha512-20m5GpzmdqwmSdnPeMs4UPPUuvkS4ESwakL6u2YN1hbo+ajWiiTwGYIMGhdcJFGeoLyAsr7TVonbZrMhU3+pdw==} + /@types/react-color@3.0.12: + resolution: {integrity: sha512-pr3uKE3lSvf7GFo1Rn2K3QktiZQFFrSgSGJ/3iMvSOYWt2pPAJ97rVdVfhWxYJZ8prAEXzoP2XX//3qGSQgu7Q==} dependencies: - '@types/react': 18.2.55 + '@types/react': 18.2.67 '@types/reactcss': 1.2.10 dev: true - /@types/react-dom@18.2.19: - resolution: {integrity: sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==} + /@types/react-dom@18.2.22: + resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} dependencies: - '@types/react': 18.2.55 + '@types/react': 18.2.67 dev: true /@types/react-transition-group@4.4.10: resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} dependencies: - '@types/react': 18.2.55 + '@types/react': 18.2.67 - /@types/react@18.2.55: - resolution: {integrity: sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==} + /@types/react@18.2.67: + resolution: {integrity: sha512-vkIE2vTIMHQ/xL0rgmuoECBCkZFZeHr49HeWSc24AptMbNRo7pwSBvj73rlJJs9fGKj0koS+V7kQB1jHS0uCgw==} dependencies: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.8 @@ -3107,13 +3131,13 @@ packages: /@types/reactcss@1.2.10: resolution: {integrity: sha512-gf5qJ1wOYP8N5q9H8/5c3QZHQzu8ltPClhM0vEWuBu9SGg4KSzgpJd2TShEsQDwsYn+mtnJ1xHUdJyzj/r9WrA==} dependencies: - '@types/react': 18.2.55 + '@types/react': 18.2.67 dev: true /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 20.11.19 + '@types/node': 20.11.30 /@types/route-parser@0.1.7: resolution: {integrity: sha512-haO+3HVio/4w+yuMJTjqfSo0ivOV8WnXaOReVD6QN729UGBEyizWNGc2Jd0OLsJDucIod4aJSsPLBeLj2uzMCQ==} @@ -3122,8 +3146,8 @@ packages: /@types/scheduler@0.16.8: resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} - /@types/semver@7.5.7: - resolution: {integrity: sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true /@types/stack-trace@0.0.29: @@ -3137,7 +3161,7 @@ packages: /@types/tar@6.1.11: resolution: {integrity: sha512-ThA1WD8aDdVU4VLuyq5NEqriwXErF5gEIJeyT6gHBWU7JtSmW2a5qjNv3/vR82O20mW+1vhmeZJfBQPT3HCugg==} dependencies: - '@types/node': 20.11.19 + '@types/node': 20.11.30 minipass: 4.2.8 dev: true @@ -3169,83 +3193,84 @@ packages: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 20.11.19 + '@types/node': 20.11.30 optional: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 || ^6.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha || ^7.0.0 + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4(supports-color@5.5.0) - eslint: 8.56.0 + eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.0 - natural-compare-lite: 1.4.0 + natural-compare: 1.4.0 semver: 7.6.0 - tsutils: 3.21.0(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.4.3) + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/eslint-plugin@7.3.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/scope-manager': 7.3.1 + '@typescript-eslint/type-utils': 7.3.1(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/utils': 7.3.1(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/visitor-keys': 7.3.1 debug: 4.3.4(supports-color@5.5.0) - eslint: 8.56.0 + eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.6.0 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.4.3) + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/parser@7.3.1(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/scope-manager': 7.3.1 + '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.3) + '@typescript-eslint/visitor-keys': 7.3.1 debug: 4.3.4(supports-color@5.5.0) - eslint: 8.56.0 - typescript: 5.3.3 + eslint: 8.57.0 + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true @@ -3266,42 +3291,50 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/scope-manager@7.3.1: + resolution: {integrity: sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/visitor-keys': 7.3.1 + dev: true + + /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: '*' + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) debug: 4.3.4(supports-color@5.5.0) - eslint: 8.56.0 - tsutils: 3.21.0(typescript@5.3.3) - typescript: 5.3.3 + eslint: 8.57.0 + ts-api-utils: 1.0.3(typescript@5.4.3) + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/type-utils@7.3.1(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.3) + '@typescript-eslint/utils': 7.3.1(eslint@8.57.0)(typescript@5.4.3) debug: 4.3.4(supports-color@5.5.0) - eslint: 8.56.0 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + eslint: 8.57.0 + ts-api-utils: 1.0.3(typescript@5.4.3) + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true @@ -3316,7 +3349,12 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): + /@typescript-eslint/types@7.3.1: + resolution: {integrity: sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==} + engines: {node: ^18.18.0 || >=20.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3331,13 +3369,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.0 - tsutils: 3.21.0(typescript@5.3.3) - typescript: 5.3.3 + tsutils: 3.21.0(typescript@5.4.3) + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3): resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -3353,25 +3391,47 @@ packages: is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.6.0 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.4.3) + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/typescript-estree@7.3.1(typescript@5.4.3): + resolution: {integrity: sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/visitor-keys': 7.3.1 + debug: 4.3.4(supports-color@5.5.0) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.0.3(typescript@5.4.3) + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 + '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.3) + eslint: 8.57.0 eslint-scope: 5.1.1 semver: 7.6.0 transitivePeerDependencies: @@ -3379,19 +3439,38 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.3): resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 + '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.3) + eslint: 8.57.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils@7.3.1(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.3.1 + '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.3) + eslint: 8.57.0 semver: 7.6.0 transitivePeerDependencies: - supports-color @@ -3414,6 +3493,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@7.3.1: + resolution: {integrity: sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.3.1 + eslint-visitor-keys: 3.4.3 + dev: true + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -3854,25 +3941,29 @@ packages: resolution: {integrity: sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==} dev: true - /app-builder-lib@24.9.1: - resolution: {integrity: sha512-Q1nYxZcio4r+W72cnIRVYofEAyjBd3mG47o+zms8HlD51zWtA/YxJb01Jei5F+jkWhge/PTQK+uldsPh6d0/4g==} + /app-builder-lib@24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3): + resolution: {integrity: sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==} engines: {node: '>=14.0.0'} + peerDependencies: + dmg-builder: 24.13.3 + electron-builder-squirrel-windows: 24.13.3 dependencies: - 7zip-bin: 5.2.0 '@develar/schema-utils': 2.6.5 - '@electron/notarize': 2.1.0 + '@electron/notarize': 2.2.1 '@electron/osx-sign': 1.0.5 - '@electron/universal': 1.4.1 + '@electron/universal': 1.5.1 '@malept/flatpak-bundler': 0.4.0 '@types/fs-extra': 9.0.13 async-exit-hook: 2.0.1 bluebird-lst: 1.0.9 - builder-util: 24.8.1 - builder-util-runtime: 9.2.3 + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 chromium-pickle-js: 0.2.0 debug: 4.3.4(supports-color@5.5.0) + dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3) ejs: 3.1.9 - electron-publish: 24.8.1 + electron-builder-squirrel-windows: 24.13.3(dmg-builder@24.13.3) + electron-publish: 24.13.1 form-data: 4.0.0 fs-extra: 10.1.0 hosted-git-info: 4.1.0 @@ -3904,6 +3995,51 @@ packages: requiresBuild: true dev: false + /archiver-utils@2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.8 + dev: true + + /archiver-utils@3.0.4: + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + dev: true + + /archiver@5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} + dependencies: + archiver-utils: 2.1.0 + async: 3.2.5 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.1 + dev: true + /are-we-there-yet@2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} @@ -3970,6 +4106,14 @@ packages: is-array-buffer: 3.0.2 dev: true + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + dev: true + /array-each@1.0.1: resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} engines: {node: '>=0.10.0'} @@ -4005,6 +4149,18 @@ packages: engines: {node: '>=0.10.0'} dev: false + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.2 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: true + /array.prototype.findlastindex@1.2.3: resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} @@ -4036,14 +4192,23 @@ packages: es-shim-unscopables: 1.0.2 dev: true - /array.prototype.tosorted@1.1.1: - resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + /array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 + dev: true + + /array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 dev: true /arraybuffer.prototype.slice@1.0.2: @@ -4059,9 +4224,18 @@ packages: is-shared-array-buffer: 1.0.2 dev: true - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.2 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 dev: true /asn1@0.2.6: @@ -4138,6 +4312,13 @@ packages: engines: {node: '>= 0.4'} dev: true + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + dependencies: + possible-typed-array-names: 1.0.0 + dev: true + /aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} dev: false @@ -4330,6 +4511,14 @@ packages: safe-buffer: 5.2.1 dev: false + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + /bluebird-lst@1.0.9: resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==} dependencies: @@ -4398,28 +4587,6 @@ packages: fill-range: 7.0.1 dev: true - /browserslist@4.21.10: - resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001599 - electron-to-chromium: 1.4.490 - node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.10) - dev: true - - /browserslist@4.22.2: - resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001599 - electron-to-chromium: 1.4.616 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.2) - dev: true - /browserslist@4.23.0: resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -4487,15 +4654,26 @@ packages: sax: 1.3.0 transitivePeerDependencies: - supports-color + dev: false - /builder-util@24.8.1: - resolution: {integrity: sha512-ibmQ4BnnqCnJTNrdmdNlnhF48kfqhNzSeqFMXHLIl+o9/yhn6QfOaVrloZ9YUu3m0k3rexvlT5wcki6LWpjTZw==} + /builder-util-runtime@9.2.4: + resolution: {integrity: sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==} + engines: {node: '>=12.0.0'} + dependencies: + debug: 4.3.4(supports-color@5.5.0) + sax: 1.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /builder-util@24.13.1: + resolution: {integrity: sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==} dependencies: 7zip-bin: 5.2.0 '@types/debug': 4.1.12 app-builder-bin: 4.0.0 bluebird-lst: 1.0.9 - builder-util-runtime: 9.2.3 + builder-util-runtime: 9.2.4 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.4(supports-color@5.5.0) @@ -4625,6 +4803,17 @@ packages: get-intrinsic: 1.2.2 set-function-length: 1.1.1 + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: true + /caller-path@0.1.0: resolution: {integrity: sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==} engines: {node: '>=0.10.0'} @@ -4645,15 +4834,6 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: true - /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -5018,6 +5198,16 @@ packages: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} dev: false + /compress-commons@4.1.2: + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.3 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} requiresBuild: true @@ -5119,7 +5309,7 @@ packages: /core-js-compat@3.34.0: resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} dependencies: - browserslist: 4.22.2 + browserslist: 4.23.0 dev: true /core-util-is@1.0.2: @@ -5128,7 +5318,7 @@ packages: /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - /cosmiconfig-typescript-loader@5.0.0(@types/node@20.11.19)(cosmiconfig@8.3.6)(typescript@5.3.3): + /cosmiconfig-typescript-loader@5.0.0(@types/node@20.11.30)(cosmiconfig@9.0.0)(typescript@5.4.3): resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} peerDependencies: @@ -5136,10 +5326,10 @@ packages: cosmiconfig: '>=8.2' typescript: '>=4' dependencies: - '@types/node': 20.11.19 - cosmiconfig: 8.3.6(typescript@5.3.3) + '@types/node': 20.11.30 + cosmiconfig: 9.0.0(typescript@5.4.3) jiti: 1.21.0 - typescript: 5.3.3 + typescript: 5.4.3 dev: true /cosmiconfig@7.1.0: @@ -5153,8 +5343,8 @@ packages: yaml: 1.10.2 dev: false - /cosmiconfig@8.3.6(typescript@5.3.3): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + /cosmiconfig@9.0.0(typescript@5.4.3): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -5162,11 +5352,25 @@ packages: typescript: optional: true dependencies: + env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - path-type: 4.0.0 - typescript: 5.3.3 + typescript: 5.4.3 + dev: true + + /crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + dev: true + + /crc32-stream@4.0.3: + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 dev: true /crc@3.8.0: @@ -5177,7 +5381,7 @@ packages: dev: true optional: true - /create-jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2): + /create-jest@29.7.0(@types/node@20.11.30)(ts-node@10.9.2): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -5186,7 +5390,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + jest-config: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -5293,13 +5497,13 @@ packages: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true - /dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} + /dargs@8.1.0: + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} dev: true - /darkreader@4.9.77: - resolution: {integrity: sha512-PHv6pOEFIdoiQxJewUxnbrcB7aJsTgiECws9KNNxEpk2bma1CZNaweFALyADfmosAaoDlJaxvbpzXMxcc0T+jA==} + /darkreader@4.9.80: + resolution: {integrity: sha512-4MxER8urVmzpf0Z98PGj9Z0nL8ZfAhIZLLcWtdTfy/xM15ciGIOSiRa+0DqJ52euiMBr5CH8DutEVLaDho0naA==} dev: false /dashdash@1.14.1: @@ -5309,6 +5513,33 @@ packages: assert-plus: 1.0.0 dev: false + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + /date-fns@2.30.0: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} @@ -5373,14 +5604,6 @@ packages: ms: 2.1.2 supports-color: 5.5.0 - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: true - /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -5503,6 +5726,15 @@ packages: gopd: 1.0.1 has-property-descriptors: 1.0.1 + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: true + /define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} @@ -5623,18 +5855,19 @@ packages: path-type: 4.0.0 dev: true - /dmg-builder@24.9.1: - resolution: {integrity: sha512-huC+O6hvHd24Ubj3cy2GMiGLe2xGFKN3klqVMLAdcbB6SWMd1yPSdZvV8W1O01ICzCCRlZDHiv4VrNUgnPUfbQ==} + /dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3): + resolution: {integrity: sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==} dependencies: - app-builder-lib: 24.9.1 - builder-util: 24.8.1 - builder-util-runtime: 9.2.3 + app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 fs-extra: 10.1.0 iconv-lite: 0.6.3 js-yaml: 4.1.0 optionalDependencies: dmg-license: 1.0.11 transitivePeerDependencies: + - electron-builder-squirrel-windows - supports-color dev: true @@ -5748,16 +5981,28 @@ packages: jake: 10.8.7 dev: true - /electron-builder@24.9.1: - resolution: {integrity: sha512-v7BuakDuY6sKMUYM8mfQGrwyjBpZ/ObaqnenU0H+igEL10nc6ht049rsCw2HghRBdEwJxGIBuzs3jbEhNaMDmg==} + /electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3): + resolution: {integrity: sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==} + dependencies: + app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + archiver: 5.3.2 + builder-util: 24.13.1 + fs-extra: 10.1.0 + transitivePeerDependencies: + - dmg-builder + - supports-color + dev: true + + /electron-builder@24.13.3(electron-builder-squirrel-windows@24.13.3): + resolution: {integrity: sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==} engines: {node: '>=14.0.0'} hasBin: true dependencies: - app-builder-lib: 24.9.1 - builder-util: 24.8.1 - builder-util-runtime: 9.2.3 + app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 chalk: 4.1.2 - dmg-builder: 24.9.1 + dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3) fs-extra: 10.1.0 is-ci: 3.0.1 lazy-val: 1.0.5 @@ -5765,6 +6010,7 @@ packages: simple-update-notifier: 2.0.0 yargs: 17.7.2 transitivePeerDependencies: + - electron-builder-squirrel-windows - supports-color dev: true @@ -5781,12 +6027,12 @@ packages: resolution: {integrity: sha512-C2FQJuk8567P2a2loBNwl5c8kwOTQVMB0capgHtPI7zKwZG16X0UxG+sNYZExQfnJ0PA+ecECA/4LcXxQa2TCA==} dev: false - /electron-publish@24.8.1: - resolution: {integrity: sha512-IFNXkdxMVzUdweoLJNXSupXkqnvgbrn3J4vognuOY06LaS/m0xvfFYIf+o1CM8if6DuWYWoQFKPcWZt/FUjZPw==} + /electron-publish@24.13.1: + resolution: {integrity: sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==} dependencies: '@types/fs-extra': 9.0.13 - builder-util: 24.8.1 - builder-util-runtime: 9.2.3 + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 chalk: 4.1.2 fs-extra: 10.1.0 lazy-val: 1.0.5 @@ -5806,19 +6052,11 @@ packages: - react-dom dev: false - /electron-to-chromium@1.4.490: - resolution: {integrity: sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A==} - dev: true - - /electron-to-chromium@1.4.616: - resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} - dev: true - /electron-to-chromium@1.4.710: resolution: {integrity: sha512-w+9yAVHoHhysCa+gln7AzbO9CdjFcL/wN/5dd+XW/Msl2d/4+WisEaCF1nty0xbAKaxdaJfgLB2296U7zZB7BA==} - /electron-updater@6.1.7: - resolution: {integrity: sha512-SNOhYizjkm4ET+Y8ilJyUzcVsFJDtINzVN1TyHnZeMidZEG3YoBebMyXc/J6WSiXdUaOjC7ngekN6rNp6ardHA==} + /electron-updater@6.1.8: + resolution: {integrity: sha512-hhOTfaFAd6wRHAfUaBhnAOYc+ymSGCWJLtFkw4xJqOvtpHmIdNHnXDV9m1MHC+A6q08Abx4Ykgyz/R5DGKNAMQ==} dependencies: builder-util-runtime: 9.2.3 fs-extra: 10.1.0 @@ -5847,7 +6085,7 @@ packages: requiresBuild: true dependencies: '@electron/get': 2.0.3 - '@types/node': 20.11.19 + '@types/node': 20.11.30 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -5976,6 +6214,70 @@ packages: which-typed-array: 1.1.13 dev: true + /es-abstract@1.23.2: + resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.5 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true + /es-iterator-helpers@1.0.15: resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} dependencies: @@ -5995,6 +6297,33 @@ packages: safe-array-concat: 1.0.1 dev: true + /es-iterator-helpers@1.0.18: + resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.2 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + dev: true + + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + dev: true + /es-set-tostringtag@2.0.2: resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} @@ -6004,6 +6333,15 @@ packages: hasown: 2.0.0 dev: true + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + dev: true + /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: @@ -6149,7 +6487,7 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0): + /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0): resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: @@ -6157,29 +6495,29 @@ packages: eslint-plugin-import: ^2.25.2 dependencies: confusing-browser-globals: 1.0.11 - eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) + eslint: 8.57.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0) object.assign: 4.1.5 object.entries: 1.1.7 semver: 6.3.1 dev: true - /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0): - resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==} + /eslint-config-airbnb-typescript@18.0.0(@typescript-eslint/eslint-plugin@7.3.1)(@typescript-eslint/parser@7.3.1)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + resolution: {integrity: sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg==} peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0 - '@typescript-eslint/parser': ^5.0.0 || ^6.0.0 - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.3 + '@typescript-eslint/eslint-plugin': ^7.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 dependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) + '@typescript-eslint/eslint-plugin': 7.3.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.3) + eslint: 8.57.0 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0) + transitivePeerDependencies: + - eslint-plugin-import dev: true - /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.56.0): + /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.34.1)(eslint@8.57.0): resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6189,23 +6527,23 @@ packages: eslint-plugin-react: ^7.28.0 eslint-plugin-react-hooks: ^4.3.0 dependencies: - eslint: 8.56.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) - eslint-plugin-react: 7.33.2(eslint@8.56.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) + eslint: 8.57.0 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) + eslint-plugin-react: 7.34.1(eslint@8.57.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) object.assign: 4.1.5 object.entries: 1.1.7 dev: true - /eslint-config-prettier@9.1.0(eslint@8.56.0): + /eslint-config-prettier@9.1.0(eslint@8.57.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true /eslint-import-resolver-node@0.3.9: @@ -6218,7 +6556,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -6239,15 +6577,15 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -6257,16 +6595,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -6282,7 +6620,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.56.0)(jest@29.7.0)(typescript@5.3.3): + /eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.3.1)(eslint@8.57.0)(jest@29.7.0)(typescript@5.4.3): resolution: {integrity: sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -6295,16 +6633,16 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 - jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + '@typescript-eslint/eslint-plugin': 7.3.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.3) + eslint: 8.57.0 + jest: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2) transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} peerDependencies: @@ -6320,7 +6658,7 @@ packages: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.15 - eslint: 8.56.0 + eslint: 8.57.0 hasown: 2.0.0 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -6329,7 +6667,7 @@ packages: object.fromentries: 2.0.7 dev: true - /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.5): + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -6343,95 +6681,102 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.56.0 - eslint-config-prettier: 9.1.0(eslint@8.56.0) + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.6 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.56.0): - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + /eslint-plugin-react@7.34.1(eslint@8.57.0): + resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: array-includes: 3.1.7 + array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.1 + array.prototype.toreversed: 1.1.2 + array.prototype.tosorted: 1.1.3 doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 - eslint: 8.56.0 + es-iterator-helpers: 1.0.18 + eslint: 8.57.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 object.entries: 1.1.7 object.fromentries: 2.0.7 - object.hasown: 1.1.2 + object.hasown: 1.1.3 object.values: 1.1.7 prop-types: 15.8.1 - resolve: 2.0.0-next.4 + resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.8 + string.prototype.matchall: 4.0.11 dev: true - /eslint-plugin-sonar@0.12.0(@babel/core@7.24.0)(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-49linjQRXazFXZR4PXHwgMkkrnLavZTeSkxJ5+k3PoNqGm/shgJCVmdQAki3AJNqM+huZSwYxwsWS+LSpB48cQ==} + /eslint-plugin-sonar@0.13.2(@babel/core@7.24.0)(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-7mZkk4/E2tGtIi3OCNCTmEWthweWzoAj9YcsxxIDI38r7q4RDusWDpsdGHPZXp/+QU8ZKkvmE11G4DtJW+k1kg==} engines: {node: '>=14'} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + '@babel/core': ^7.11.0 + '@typescript-eslint/parser': ^6.0.0 || ^7.0.0 + eslint: ^8.0.0 typescript: ^4.0.0 || ^5.0.0 dependencies: - '@babel/eslint-parser': 7.23.10(@babel/core@7.24.0)(eslint@8.56.0) - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@babel/core': 7.24.0 + '@babel/eslint-parser': 7.23.10(@babel/core@7.24.0)(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.3) builtin-modules: 3.3.0 bytes: 3.1.2 - eslint: 8.56.0 - eslint-plugin-react: 7.33.2(eslint@8.56.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) - eslint-plugin-sonarjs: 0.19.0(eslint@8.56.0) + eslint: 8.57.0 + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) + eslint-plugin-react: 7.34.1(eslint@8.57.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) + eslint-plugin-sonarjs: 0.23.0(eslint@8.57.0) functional-red-black-tree: 1.0.1 - regexpp: 3.2.0 - scslre: 0.2.0 + jsx-ast-utils: 3.3.5 + minimatch: 9.0.3 + scslre: 0.3.0 tmp: 0.2.1 - typescript: 5.3.3 + typescript: 5.4.3 transitivePeerDependencies: - - '@babel/core' - - '@typescript-eslint/parser' - supports-color dev: true - /eslint-plugin-sonarjs@0.19.0(eslint@8.56.0): - resolution: {integrity: sha512-6+s5oNk5TFtVlbRxqZN7FIGmjdPCYQKaTzFPmqieCmsU1kBYDzndTeQav0xtQNwZJWu5awWfTGe8Srq9xFOGnw==} + /eslint-plugin-sonarjs@0.23.0(eslint@8.57.0): + resolution: {integrity: sha512-z44T3PBf9W7qQ/aR+NmofOTyg6HLhSEZOPD4zhStqBpLoMp8GYhFksuUBnCxbnf1nfISpKBVkQhiBLFI/F4Wlg==} engines: {node: '>=14'} peerDependencies: eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true - /eslint-plugin-unicorn@50.0.1(eslint@8.56.0): - resolution: {integrity: sha512-KxenCZxqSYW0GWHH18okDlOQcpezcitm5aOSz6EnobyJ6BIByiPDviQRjJIUAjG/tMN11958MxaQ+qCoU6lfDA==} + /eslint-plugin-unicorn@51.0.1(eslint@8.57.0): + resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} engines: {node: '>=16'} peerDependencies: eslint: '>=8.56.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint/eslintrc': 2.1.4 ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.34.0 - eslint: 8.56.0 + eslint: 8.57.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -6472,16 +6817,16 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.13 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 @@ -6650,6 +6995,21 @@ packages: strip-final-newline: 3.0.0 dev: true + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.2.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + /exenv@1.2.2: resolution: {integrity: sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==} dev: false @@ -6956,6 +7316,15 @@ packages: path-exists: 4.0.0 dev: true + /find-up@7.0.0: + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + unicorn-magic: 0.1.0 + dev: true + /findup-sync@3.0.0: resolution: {integrity: sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==} engines: {node: '>= 0.10'} @@ -7089,7 +7458,6 @@ packages: /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: false /fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} @@ -7220,6 +7588,17 @@ packages: has-symbols: 1.0.3 hasown: 2.0.0 + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.0 + dev: true + /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -7243,6 +7622,11 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -7251,6 +7635,15 @@ packages: get-intrinsic: 1.2.2 dev: true + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + dev: true + /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} @@ -7266,16 +7659,14 @@ packages: assert-plus: 1.0.0 dev: false - /git-raw-commits@2.0.11: - resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} - engines: {node: '>=10'} + /git-raw-commits@4.0.0: + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} hasBin: true dependencies: - dargs: 7.0.0 - lodash: 4.17.21 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 + dargs: 8.1.0 + meow: 12.1.1 + split2: 4.2.0 dev: true /glob-parent@5.1.2: @@ -7340,11 +7731,11 @@ packages: serialize-error: 7.0.1 optional: true - /global-dirs@0.1.1: - resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} - engines: {node: '>=4'} + /global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} dependencies: - ini: 1.3.8 + ini: 4.1.1 dev: true /global-modules@1.0.0: @@ -7466,11 +7857,6 @@ packages: har-schema: 2.0.0 dev: false - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true - /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true @@ -7489,10 +7875,21 @@ packages: dependencies: get-intrinsic: 1.2.2 + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: true + /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true + /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} @@ -7504,6 +7901,13 @@ packages: has-symbols: 1.0.3 dev: true + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + /has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} requiresBuild: true @@ -7546,6 +7950,13 @@ packages: dependencies: function-bind: 1.1.2 + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /haye@2.0.2: resolution: {integrity: sha512-C+jeFipAuwLLmQziwQrXuHzUIihDzqoLpCpwDWYFQVCIyqi5ZvC+4YtzawPTmd1tIKo0ULf+4P0Mw8irUdXIpg==} dev: false @@ -7701,6 +8112,11 @@ packages: engines: {node: '>=14.18.0'} dev: true + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} requiresBuild: true @@ -7770,6 +8186,10 @@ packages: resolve-cwd: 3.0.0 dev: true + /import-meta-resolve@4.0.0: + resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + dev: true + /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -7819,6 +8239,12 @@ packages: /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: false + + /ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true /inquirer@7.3.3: resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} @@ -7848,6 +8274,15 @@ packages: side-channel: 1.0.4 dev: true + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + hasown: 2.0.0 + side-channel: 1.0.4 + dev: true + /interpret@2.2.0: resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} engines: {node: '>= 0.10'} @@ -7909,6 +8344,14 @@ packages: is-typed-array: 1.1.12 dev: true + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -7992,6 +8435,13 @@ packages: kind-of: 6.0.3 dev: false + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 + dev: true + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -8110,6 +8560,11 @@ packages: engines: {node: '>= 0.4'} dev: true + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true + /is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} @@ -8147,6 +8602,7 @@ packages: /is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} + dev: false /is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} @@ -8184,6 +8640,13 @@ packages: call-bind: 1.0.5 dev: true + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + dev: true + /is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} @@ -8226,6 +8689,13 @@ packages: which-typed-array: 1.1.13 dev: true + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.15 + dev: true + /is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} dev: false @@ -8408,7 +8878,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.11.19 + '@types/node': 20.11.30 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -8429,7 +8899,7 @@ packages: - supports-color dev: true - /jest-cli@29.7.0(@types/node@20.11.19)(ts-node@10.9.2): + /jest-cli@29.7.0(@types/node@20.11.30)(ts-node@10.9.2): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -8443,10 +8913,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + create-jest: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + jest-config: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -8457,7 +8927,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@20.11.19)(ts-node@10.9.2): + /jest-config@29.7.0(@types/node@20.11.30)(ts-node@10.9.2): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -8472,7 +8942,7 @@ packages: '@babel/core': 7.23.5 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.11.19 + '@types/node': 20.11.30 babel-jest: 29.7.0(@babel/core@7.23.5) chalk: 4.1.2 ci-info: 3.8.0 @@ -8492,7 +8962,7 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + ts-node: 10.9.2(@types/node@20.11.30)(typescript@5.4.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -8533,7 +9003,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.11.19 + '@types/node': 20.11.30 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -8549,7 +9019,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.5 - '@types/node': 20.11.19 + '@types/node': 20.11.30 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -8600,7 +9070,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.11.19 + '@types/node': 20.11.30 jest-util: 29.7.0 dev: true @@ -8655,7 +9125,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.11.19 + '@types/node': 20.11.30 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -8686,7 +9156,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.11.19 + '@types/node': 20.11.30 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -8738,7 +9208,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.11.19 + '@types/node': 20.11.30 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -8763,7 +9233,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.11.19 + '@types/node': 20.11.30 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -8775,13 +9245,13 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.11.19 + '@types/node': 20.11.30 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2): + /jest@29.7.0(@types/node@20.11.30)(ts-node@10.9.2): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -8794,7 +9264,7 @@ packages: '@jest/core': 29.7.0(ts-node@10.9.2) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + jest-cli: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -9142,6 +9612,7 @@ packages: /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} + dev: false /kleur@2.0.2: resolution: {integrity: sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==} @@ -9238,6 +9709,13 @@ packages: /lazy-val@1.0.5: resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} + /lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + dependencies: + readable-stream: 2.3.8 + dev: true + /leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -9288,6 +9766,13 @@ packages: p-locate: 5.0.0 dev: true + /locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: 6.0.0 + dev: true + /lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} dev: false @@ -9299,10 +9784,22 @@ packages: /lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + /lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + dev: true + + /lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + dev: true + /lodash.escaperegexp@4.1.2: resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} dev: false + /lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + dev: true + /lodash.includes@4.3.0: resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} dev: false @@ -9315,10 +9812,6 @@ packages: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} dev: false - /lodash.isfunction@3.0.9: - resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} - dev: true - /lodash.isinteger@4.0.4: resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} dev: false @@ -9358,6 +9851,10 @@ packages: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} dev: true + /lodash.union@4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + dev: true + /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} dev: true @@ -9561,16 +10058,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true - - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true - /map-stream@0.1.0: resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} dev: false @@ -9582,8 +10069,8 @@ packages: object-visit: 1.0.1 dev: false - /markdown-to-jsx@7.4.1(react@18.2.0): - resolution: {integrity: sha512-GbrbkTnHp9u6+HqbPRFJbObi369AgJNXi/sGqq5HRsoZW063xR1XDCaConqq+whfEIAlzB1YPnOgsPc7B7bc/A==} + /markdown-to-jsx@7.4.4(react@18.2.0): + resolution: {integrity: sha512-R9SGyfV2zsQx25YIYImACpiQ8dQe617CNyoE1wLst4wFHtiBGG3SEtJDlI1bt9SeotIcbITbVy9+ieQFWfEoQw==} engines: {node: '>= 10'} peerDependencies: react: '>= 0.14.0' @@ -9635,23 +10122,6 @@ packages: engines: {node: '>=16.10'} dev: true - /meow@8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} - dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - dev: true - /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -9756,15 +10226,6 @@ packages: brace-expansion: 2.0.1 dev: true - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: true - /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -9895,8 +10356,8 @@ packages: reactive-localstorage: 0.0.2 dev: false - /mobx-react-form@6.9.3(mobx@6.12.0): - resolution: {integrity: sha512-T7FKfLD+BfNwHRgW32QGxBW1fTEZWjIQ5dGacHzOBZCBKynHMEPHonYxBZaavduGpchF96dHTTAeRlAdqsN8fA==} + /mobx-react-form@6.9.4(mobx@6.12.0): + resolution: {integrity: sha512-Q5V5I+EexsNk3TI6hl1yINqG9V6KTtoEJMrMsArcuLpYA+JWP/41Jq6e8lnmGAInq+GH+MzyNPwgvz3XGUXEaA==} engines: {node: '>=8.0.0'} peerDependencies: mobx: ^6.0.0 @@ -10006,10 +10467,6 @@ packages: - supports-color dev: false - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -10145,10 +10602,6 @@ packages: dev: false optional: true - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - dev: true - /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} @@ -10203,16 +10656,6 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.13.1 - semver: 7.6.0 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -10338,8 +10781,8 @@ packages: get-intrinsic: 1.2.2 dev: true - /object.hasown@1.1.2: - resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} dependencies: define-properties: 1.2.1 es-abstract: 1.22.3 @@ -10459,6 +10902,13 @@ packages: yocto-queue: 0.1.0 dev: true + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + /p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -10473,6 +10923,13 @@ packages: p-limit: 3.1.0 dev: true + /p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: 4.0.0 + dev: true + /p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} @@ -10535,6 +10992,11 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + /path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -10703,6 +11165,11 @@ packages: engines: {node: '>=0.10.0'} dev: false + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true + /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: false @@ -11065,11 +11532,6 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: true - /quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -11198,7 +11660,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /react-intl@6.6.2(react@18.2.0)(typescript@5.3.3): + /react-intl@6.6.2(react@18.2.0)(typescript@5.4.3): resolution: {integrity: sha512-IpW2IkLtGENSFlX3vfH11rjuCIsW0VyjT0Q1pPKMZPtT2z1FxLt4weFT5Ezti2TScT1xiyb3aQBFth9EB7jzAg==} peerDependencies: react: ^16.6.0 || 17 || 18 @@ -11209,16 +11671,16 @@ packages: dependencies: '@formatjs/ecma402-abstract': 1.18.2 '@formatjs/icu-messageformat-parser': 2.7.6 - '@formatjs/intl': 2.10.0(typescript@5.3.3) + '@formatjs/intl': 2.10.0(typescript@5.4.3) '@formatjs/intl-displaynames': 6.6.6 '@formatjs/intl-listformat': 7.5.5 '@types/hoist-non-react-statics': 3.3.5 - '@types/react': 18.2.55 + '@types/react': 18.2.67 hoist-non-react-statics: 3.3.2 intl-messageformat: 10.5.11 react: 18.2.0 tslib: 2.6.2 - typescript: 5.3.3 + typescript: 5.4.3 dev: false /react-is@16.13.1: @@ -11280,26 +11742,26 @@ packages: warning: 4.0.3 dev: false - /react-router-dom@6.22.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-iwMyyyrbL7zkKY7MRjOVRy+TMnS/OPusaFVxM2P11x9dzSzGmLsebkCvYirGq0DWB9K9hOspHYYtDz33gE5Duw==} + /react-router-dom@6.22.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.15.1 + '@remix-run/router': 1.15.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.22.1(react@18.2.0) + react-router: 6.22.3(react@18.2.0) dev: false - /react-router@6.22.1(react@18.2.0): - resolution: {integrity: sha512-0pdoRGwLtemnJqn1K0XHUbnKiX0S4X8CgvVVmHGOWmofESj31msHo/1YiqcJWK7Wxfq2a4uvvtS01KAQyWK/CQ==} + /react-router@6.22.3(react@18.2.0): + resolution: {integrity: sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.15.1 + '@remix-run/router': 1.15.3 react: 18.2.0 dev: false @@ -11317,8 +11779,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /react-tooltip@5.26.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-C1qHiqWYn6l5c98kL/NKFyJSw5G11vUVJkgOPcKgn306c5iL5317LxMNn5Qg1GSSM7Qvtsd6KA5MvwfgxFF7Dg==} + /react-tooltip@5.26.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-MpYAws8CEHUd/RC4GaDCdoceph/T4KHM5vS5Dbk8FOmLMvvIht2ymP2htWdrke7K6lqPO8rz8+bnwWUIXeDlzg==} peerDependencies: react: '>=16.14.0' react-dom: '>=16.14.0' @@ -11435,6 +11897,12 @@ packages: string_decoder: 1.3.0 util-deprecate: 1.0.2 + /readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + dependencies: + minimatch: 5.1.6 + dev: true + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -11476,16 +11944,8 @@ packages: resolve: 1.22.8 dev: false - /redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - dev: true - - /refa@0.11.0: - resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} + /refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: '@eslint-community/regexpp': 4.10.0 @@ -11514,12 +11974,12 @@ packages: safe-regex: 1.1.0 dev: false - /regexp-ast-analysis@0.6.0: - resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} + /regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: '@eslint-community/regexpp': 4.10.0 - refa: 0.11.0 + refa: 0.12.1 dev: true /regexp-tree@0.1.27: @@ -11536,9 +11996,14 @@ packages: set-function-name: 2.0.1 dev: true - /regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 dev: true /regjsparser@0.10.0: @@ -11665,13 +12130,6 @@ packages: engines: {node: '>=8'} dev: true - /resolve-global@1.0.0: - resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} - engines: {node: '>=8'} - dependencies: - global-dirs: 0.1.1 - dev: true - /resolve-url@0.2.1: resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated @@ -11690,8 +12148,8 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /resolve@2.0.0-next.4: - resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true dependencies: is-core-module: 2.13.1 @@ -11803,6 +12261,16 @@ packages: isarray: 2.0.5 dev: true + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -11821,6 +12289,15 @@ packages: is-regex: 1.1.4 dev: true + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + dev: true + /safe-regex@1.1.0: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} dependencies: @@ -11863,12 +12340,13 @@ packages: resolution: {integrity: sha512-FaHoAk75AYhT+rnBmMpkvHSIcQma4OHzYXOhn1XXtgNomi0FTV8YEXYuh2EIdCg5IKMVyFbXeJT4Cn96+fzABg==} dev: false - /scslre@0.2.0: - resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} + /scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} dependencies: '@eslint-community/regexpp': 4.10.0 - refa: 0.11.0 - regexp-ast-analysis: 0.6.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 dev: true /seek-bzip@1.0.6: @@ -11983,6 +12461,18 @@ packages: gopd: 1.0.1 has-property-descriptors: 1.0.1 + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: true + /set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} engines: {node: '>= 0.4'} @@ -11992,6 +12482,16 @@ packages: has-property-descriptors: 1.0.1 dev: true + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + dev: true + /set-getter@0.1.1: resolution: {integrity: sha512-9sVWOy+gthr+0G9DzqqLaYNA7+5OKkSmcqjL9cBpDEaZrr3ShQlyX2cZ/O/ozE41oxn/Tt0LGEM/w4Rub3A3gw==} engines: {node: '>=0.10.0'} @@ -12104,6 +12604,16 @@ packages: get-intrinsic: 1.2.2 object-inspect: 1.13.1 + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -12126,8 +12636,8 @@ packages: scmp: 2.0.0 dev: false - /simple-git@3.22.0: - resolution: {integrity: sha512-6JujwSs0ac82jkGjMHiCnTifvf1crOiY/+tfs/Pqih6iow7VrpNKRRNdWm6RtaXpvvv/JGNYhlUtLhGFqHF+Yw==} + /simple-git@3.23.0: + resolution: {integrity: sha512-P9ggTW8vb/21CAL/AmnACAhqBDfnqSSZVpV7WuFtsFR9HLunf5IqQvk+OXAQTfkcZep8pKnt3DV3o7w3TegEkQ==} dependencies: '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 @@ -12335,12 +12845,6 @@ packages: extend-shallow: 3.0.2 dev: false - /split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - dependencies: - readable-stream: 3.6.2 - dev: true - /split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} @@ -12493,17 +12997,22 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.matchall@4.0.8: - resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.2 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.6 - regexp.prototype.flags: 1.5.1 - side-channel: 1.0.4 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 dev: true /string.prototype.trim@1.2.8: @@ -12515,6 +13024,16 @@ packages: es-abstract: 1.22.3 dev: true + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.2 + es-object-atoms: 1.0.0 + dev: true + /string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: @@ -12523,6 +13042,14 @@ packages: es-abstract: 1.22.3 dev: true + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: @@ -12710,6 +13237,17 @@ packages: xtend: 4.0.2 dev: false + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + /tar@6.2.0: resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} engines: {node: '>=10'} @@ -12779,12 +13317,6 @@ packages: tiny-warning: 1.0.3 dev: false - /through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - dependencies: - readable-stream: 3.6.2 - dev: true - /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -12936,11 +13468,6 @@ packages: hasBin: true dev: true - /trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - dev: true - /triple-beam@1.3.0: resolution: {integrity: sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==} dev: false @@ -12950,16 +13477,16 @@ packages: dependencies: utf8-byte-length: 1.0.4 - /ts-api-utils@1.0.3(typescript@5.3.3): + /ts-api-utils@1.0.3(typescript@5.4.3): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.3 + typescript: 5.4.3 dev: true - /ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3): + /ts-node@10.9.2(@types/node@20.11.30)(typescript@5.4.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -12978,14 +13505,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.11.19 + '@types/node': 20.11.30 acorn: 8.11.2 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.3.3 + typescript: 5.4.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -13015,14 +13542,14 @@ packages: engines: {node: '>=0.6.x'} dev: false - /tsutils@3.21.0(typescript@5.3.3): + /tsutils@3.21.0(typescript@5.4.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.3.3 + typescript: 5.4.3 dev: true /tunnel-agent@0.6.0: @@ -13057,11 +13584,6 @@ packages: requiresBuild: true optional: true - /type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - dev: true - /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -13108,6 +13630,15 @@ packages: is-typed-array: 1.1.12 dev: true + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + dev: true + /typed-array-byte-length@1.0.0: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} engines: {node: '>= 0.4'} @@ -13118,6 +13649,17 @@ packages: is-typed-array: 1.1.12 dev: true + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + /typed-array-byte-offset@1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} engines: {node: '>= 0.4'} @@ -13129,6 +13671,18 @@ packages: is-typed-array: 1.1.12 dev: true + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: @@ -13137,14 +13691,26 @@ packages: is-typed-array: 1.1.12 dev: true + /typed-array-length@1.0.5: + resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + dev: true + /typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true dev: true - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + /typescript@5.4.3: + resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} engines: {node: '>=14.17'} hasBin: true @@ -13179,6 +13745,11 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + /unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + dev: true + /union-value@1.0.1: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} engines: {node: '>=0.10.0'} @@ -13273,28 +13844,6 @@ packages: cross-env: 5.2.1 dev: false - /update-browserslist-db@1.0.11(browserslist@4.21.10): - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.10 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true - - /update-browserslist-db@1.0.13(browserslist@4.22.2): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.22.2 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true - /update-browserslist-db@1.0.13(browserslist@4.23.0): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true @@ -13535,6 +14084,17 @@ packages: has-tostringtag: 1.0.0 dev: true + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + dev: true + /which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -13703,11 +14263,6 @@ packages: decamelize: 1.2.0 dev: true - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -13759,6 +14314,11 @@ packages: engines: {node: '>=10'} dev: true + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + /youch-terminal@1.1.1: resolution: {integrity: sha512-LRJCIDkMH4AA6KtiX1JH3nBO8xCJx8le/CHI2hheBGHd7hcpP62owgUW5R9ObrxW0RLQT/VqPRO4mR92STkvAw==} dependencies: @@ -13774,6 +14334,15 @@ packages: stack-trace: 0.0.10 dev: false + /zip-stream@4.1.1: + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} + dependencies: + archiver-utils: 3.0.4 + compress-commons: 4.1.2 + readable-stream: 3.6.2 + dev: true + github.com/ferdium/macos-notification-state/e0e78c3aff1a9d2362709dff70d01d3eaef4ee6a: resolution: {tarball: https://codeload.github.com/ferdium/macos-notification-state/tar.gz/e0e78c3aff1a9d2362709dff70d01d3eaef4ee6a} name: macos-notification-state diff --git a/scripts/add-crowdin-contributors.ts b/scripts/add-crowdin-contributors.ts index 8dc7e650c..be8d13325 100644 --- a/scripts/add-crowdin-contributors.ts +++ b/scripts/add-crowdin-contributors.ts @@ -1,6 +1,6 @@ import path from 'node:path'; -import fs from 'fs-extra'; import allContributors from 'all-contributors-cli'; +import fs from 'fs-extra'; /** * Add CrowdIn Contributors to AllContributors list diff --git a/src/@types/ferdium-components.types.ts b/src/@types/ferdium-components.types.ts index 516ef9dd7..35c0da85f 100644 --- a/src/@types/ferdium-components.types.ts +++ b/src/@types/ferdium-components.types.ts @@ -1,5 +1,5 @@ -import { Actions } from '../actions/lib/actions'; -import { RealStores } from '../stores'; +import type { Actions } from '../actions/lib/actions'; +import type { RealStores } from '../stores'; export interface StoresProps { actions: Actions; diff --git a/src/@types/ferdium.types.ts b/src/@types/ferdium.types.ts index f54fb64ae..1120b73c8 100644 --- a/src/@types/ferdium.types.ts +++ b/src/@types/ferdium.types.ts @@ -21,4 +21,4 @@ declare global { * Workaround to make TS recognize this file as a module. * https://fettblog.eu/typescript-augmenting-global-lib-dom/ */ -export {}; +export type {}; diff --git a/src/@types/mobx-form.types.ts b/src/@types/mobx-form.types.ts index aa274b9db..67b0aa3ec 100644 --- a/src/@types/mobx-form.types.ts +++ b/src/@types/mobx-form.types.ts @@ -1,5 +1,5 @@ -import { ChangeEventHandler, FocusEventHandler } from 'react'; -import { GlobalError } from './ferdium-components.types'; +import type { ChangeEventHandler, FocusEventHandler } from 'react'; +import type { GlobalError } from './ferdium-components.types'; interface SelectOptions { disabled?: boolean; diff --git a/src/@types/stores.types.ts b/src/@types/stores.types.ts index c2d7bd78a..a2e935bf1 100644 --- a/src/@types/stores.types.ts +++ b/src/@types/stores.types.ts @@ -1,11 +1,11 @@ /* eslint-disable no-use-before-define */ -import Workspace from '../features/workspaces/models/Workspace'; -import Recipe from '../models/Recipe'; -import Service from '../models/Service'; -import User from '../models/User'; -import Request from '../stores/lib/Request'; -import CachedRequest from '../stores/lib/CachedRequest'; -import Reaction from '../stores/lib/Reaction'; +import type Workspace from '../features/workspaces/models/Workspace'; +import type Recipe from '../models/Recipe'; +import type Service from '../models/Service'; +import type User from '../models/User'; +import type CachedRequest from '../stores/lib/CachedRequest'; +import type Reaction from '../stores/lib/Reaction'; +import type Request from '../stores/lib/Request'; // TODO: This file will be removed in the future when all stores are // correctly typed and the use of these interfaces are obsolete. diff --git a/src/I18n.tsx b/src/I18n.tsx index 1a69ed1a2..2085f3e98 100644 --- a/src/I18n.tsx +++ b/src/I18n.tsx @@ -1,10 +1,10 @@ -import { Component, ReactNode } from 'react'; import { inject, observer } from 'mobx-react'; +import { Component, type ReactNode } from 'react'; import { IntlProvider } from 'react-intl'; import generatedTranslations from './i18n/translations'; -import UserStore from './stores/UserStore'; -import AppStore from './stores/AppStore'; +import type AppStore from './stores/AppStore'; +import type UserStore from './stores/UserStore'; const translations = generatedTranslations(); diff --git a/src/actions/app.ts b/src/actions/app.ts index 07cc47078..22324c055 100644 --- a/src/actions/app.ts +++ b/src/actions/app.ts @@ -1,5 +1,5 @@ import PropTypes from 'prop-types'; -import { ActionDefinitions } from './lib/actions'; +import type { ActionDefinitions } from './lib/actions'; export default { setBadge: { diff --git a/src/actions/index.ts b/src/actions/index.ts index 5297a7a7b..2368e98a5 100644 --- a/src/actions/index.ts +++ b/src/actions/index.ts @@ -1,16 +1,16 @@ import PropTypes from 'prop-types'; +import { todoActions } from '../features/todos/actions'; +import workspaces from '../features/workspaces/actions'; +import app from './app'; import defineActions from './lib/actions'; -import service from './service'; import recipe from './recipe'; import recipePreview from './recipePreview'; +import requests from './requests'; +import service from './service'; +import settings from './settings'; import ui from './ui'; -import app from './app'; import user from './user'; -import settings from './settings'; -import requests from './requests'; -import workspaces from '../features/workspaces/actions'; -import { todoActions } from '../features/todos/actions'; const actions = { service, diff --git a/src/actions/recipe.ts b/src/actions/recipe.ts index 0dd92737f..9a1210793 100644 --- a/src/actions/recipe.ts +++ b/src/actions/recipe.ts @@ -1,5 +1,5 @@ import PropTypes from 'prop-types'; -import { ActionDefinitions } from './lib/actions'; +import type { ActionDefinitions } from './lib/actions'; export default { install: { diff --git a/src/actions/recipePreview.ts b/src/actions/recipePreview.ts index 053b363e9..6e4421d9e 100644 --- a/src/actions/recipePreview.ts +++ b/src/actions/recipePreview.ts @@ -1,5 +1,5 @@ import PropTypes from 'prop-types'; -import { ActionDefinitions } from './lib/actions'; +import type { ActionDefinitions } from './lib/actions'; export default { search: { diff --git a/src/actions/requests.ts b/src/actions/requests.ts index 0b4c905ee..b487a3fa4 100644 --- a/src/actions/requests.ts +++ b/src/actions/requests.ts @@ -1,4 +1,4 @@ -import { ActionDefinitions } from './lib/actions'; +import type { ActionDefinitions } from './lib/actions'; export default { retryRequiredRequests: {}, diff --git a/src/actions/service.ts b/src/actions/service.ts index 4b43fc2ca..c141f03ec 100644 --- a/src/actions/service.ts +++ b/src/actions/service.ts @@ -1,6 +1,6 @@ import PropTypes from 'prop-types'; import ServiceModel from '../models/Service'; -import { ActionDefinitions } from './lib/actions'; +import type { ActionDefinitions } from './lib/actions'; export default { setActive: { diff --git a/src/actions/settings.ts b/src/actions/settings.ts index 4796f6a02..b99344a03 100644 --- a/src/actions/settings.ts +++ b/src/actions/settings.ts @@ -1,5 +1,5 @@ import PropTypes from 'prop-types'; -import { ActionDefinitions } from './lib/actions'; +import type { ActionDefinitions } from './lib/actions'; export default { update: { diff --git a/src/actions/ui.ts b/src/actions/ui.ts index f496c5c07..b76a7e5bf 100644 --- a/src/actions/ui.ts +++ b/src/actions/ui.ts @@ -1,5 +1,5 @@ import PropTypes from 'prop-types'; -import { ActionDefinitions } from './lib/actions'; +import type { ActionDefinitions } from './lib/actions'; export default { openSettings: { diff --git a/src/actions/user.ts b/src/actions/user.ts index c0ede619e..90fefdbce 100644 --- a/src/actions/user.ts +++ b/src/actions/user.ts @@ -1,5 +1,5 @@ import PropTypes from 'prop-types'; -import { ActionDefinitions } from './lib/actions'; +import type { ActionDefinitions } from './lib/actions'; export default { login: { diff --git a/src/api/UserApi.ts b/src/api/UserApi.ts index 38f489131..b70d3b345 100644 --- a/src/api/UserApi.ts +++ b/src/api/UserApi.ts @@ -1,4 +1,4 @@ -import { BinaryLike } from 'node:crypto'; +import type { BinaryLike } from 'node:crypto'; import { hash } from '../helpers/password-helpers'; export default class UserApi { diff --git a/src/api/apiBase.ts b/src/api/apiBase.ts index 649895fbc..522891fa0 100644 --- a/src/api/apiBase.ts +++ b/src/api/apiBase.ts @@ -1,15 +1,15 @@ -/** - * Get API base URL from store - */ -import { API_VERSION } from '../environment-remote'; import { DEV_API_FRANZ_WEBSITE, - LIVE_FRANZ_API, LIVE_FERDIUM_API, + LIVE_FRANZ_API, LOCAL_HOSTNAME, LOCAL_SERVER, SERVER_NOT_LOADED, } from '../config'; +/** + * Get API base URL from store + */ +import { API_VERSION } from '../environment-remote'; import { fixUrl } from '../helpers/url-helpers'; // Note: This cannot be used from the internal-server since we are not running within the context of a browser window diff --git a/src/api/index.ts b/src/api/index.ts index 5ca6ba132..f0f396edc 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -1,10 +1,10 @@ import AppApi from './AppApi'; -import ServicesApi from './ServicesApi'; +import FeaturesApi from './FeaturesApi'; +import LocalApi from './LocalApi'; import RecipePreviewsApi from './RecipePreviewsApi'; import RecipesApi from './RecipesApi'; +import ServicesApi from './ServicesApi'; import UserApi from './UserApi'; -import LocalApi from './LocalApi'; -import FeaturesApi from './FeaturesApi'; export interface ApiInterface { app: AppApi; diff --git a/src/api/server/LocalApi.ts b/src/api/server/LocalApi.ts index 6764816f9..56fa5cc8f 100644 --- a/src/api/server/LocalApi.ts +++ b/src/api/server/LocalApi.ts @@ -1,4 +1,4 @@ -import { ExecException } from 'node:child_process'; +import type { ExecException } from 'node:child_process'; import { ipcRenderer } from 'electron'; import fastFolderSize from 'fast-folder-size'; diff --git a/src/api/server/ServerApi.ts b/src/api/server/ServerApi.ts index 9e7582e1e..58c6845ac 100644 --- a/src/api/server/ServerApi.ts +++ b/src/api/server/ServerApi.ts @@ -1,22 +1,24 @@ /* eslint-disable import/no-import-module-exports */ /* eslint-disable global-require */ import { join } from 'node:path'; -import tar from 'tar'; import { - readdirSync, - statSync, - writeFileSync, + type PathOrFileDescriptor, copySync, ensureDirSync, pathExistsSync, readJsonSync, + readdirSync, removeSync, - PathOrFileDescriptor, + statSync, + writeFileSync, } from 'fs-extra'; +import tar from 'tar'; +import RecipeModel, { type IRecipe } from '../../models/Recipe'; +import RecipePreviewModel, { + type IRecipePreview, +} from '../../models/RecipePreview'; import ServiceModel from '../../models/Service'; -import RecipePreviewModel, { IRecipePreview } from '../../models/RecipePreview'; -import RecipeModel, { IRecipe } from '../../models/Recipe'; import UserModel from '../../models/User'; import sleep from '../../helpers/async-helpers'; @@ -32,8 +34,8 @@ import { } from '../utils/auth'; import { - getRecipeDirectory, getDevRecipeDirectory, + getRecipeDirectory, loadRecipeConfig, } from '../../helpers/recipe-helpers'; diff --git a/src/api/utils/auth.ts b/src/api/utils/auth.ts index 1f694a781..ce30e0132 100644 --- a/src/api/utils/auth.ts +++ b/src/api/utils/auth.ts @@ -1,7 +1,7 @@ -import localStorage from 'mobx-localstorage'; import { when } from 'mobx'; -import { localServerToken, needsToken } from '../apiBase'; +import localStorage from 'mobx-localstorage'; import { ferdiumLocale, ferdiumVersion } from '../../environment-remote'; +import { localServerToken, needsToken } from '../apiBase'; export const prepareAuthRequest = ( // eslint-disable-next-line unicorn/no-object-as-default-parameter diff --git a/src/app.tsx b/src/app.tsx index 77ec27021..a894e6737 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -1,17 +1,17 @@ import { webFrame } from 'electron'; -import { createRoot } from 'react-dom/client'; -import { Provider } from 'mobx-react'; import { RouterStore } from '@superwf/mobx-react-router'; import { createHashHistory } from 'history'; +import { Provider } from 'mobx-react'; +import { createRoot } from 'react-dom/client'; -import ServerApi from './api/server/ServerApi'; -import LocalApi from './api/server/LocalApi'; -import storeFactory from './stores'; -import apiFactory from './api'; import actions from './actions'; +import apiFactory from './api'; +import LocalApi from './api/server/LocalApi'; +import ServerApi from './api/server/ServerApi'; import MenuFactory from './lib/Menu'; import TouchBarFactory from './lib/TouchBar'; +import storeFactory from './stores'; import I18N from './I18n'; import FerdiumRoutes from './routes'; diff --git a/src/components/AppUpdateInfoBar.tsx b/src/components/AppUpdateInfoBar.tsx index 103bd2900..7bba8053a 100644 --- a/src/components/AppUpdateInfoBar.tsx +++ b/src/components/AppUpdateInfoBar.tsx @@ -1,12 +1,12 @@ import { defineMessages, useIntl } from 'react-intl'; import { mdiInformation } from '@mdi/js'; -import { MouseEventHandler } from 'react'; +import type { MouseEventHandler } from 'react'; import InfoBar from './ui/InfoBar'; import Icon from './ui/icon'; -import { onAuthGoToReleaseNotes } from '../helpers/update-helpers'; import { isWinPortable } from '../environment'; +import { onAuthGoToReleaseNotes } from '../helpers/update-helpers'; const messages = defineMessages({ updateAvailable: { diff --git a/src/components/auth/AuthLayout.tsx b/src/components/auth/AuthLayout.tsx index eeb93b83b..67e898318 100644 --- a/src/components/auth/AuthLayout.tsx +++ b/src/components/auth/AuthLayout.tsx @@ -1,24 +1,24 @@ +import { mdiFlash } from '@mdi/js'; +import type { Response } from 'electron'; +import { TitleBar } from 'electron-react-titlebar/renderer'; +import { observer } from 'mobx-react'; import { - cloneElement, Component, - MouseEventHandler, - ReactElement, + type MouseEventHandler, + type ReactElement, + cloneElement, } from 'react'; -import { observer } from 'mobx-react'; -import { TitleBar } from 'electron-react-titlebar/renderer'; -import { injectIntl, WrappedComponentProps } from 'react-intl'; -import { mdiFlash } from '@mdi/js'; -import { Response } from 'electron'; -import Link from '../ui/Link'; -import InfoBar from '../ui/InfoBar'; +import { type WrappedComponentProps, injectIntl } from 'react-intl'; +import { serverName } from '../../api/apiBase'; +import { GITHUB_FERDIUM_URL } from '../../config'; +import { isWindows } from '../../environment'; import { Component as PublishDebugInfo } from '../../features/publishDebugInfo'; import { updateVersionParse } from '../../helpers/update-helpers'; import globalMessages from '../../i18n/globalMessages'; -import { isWindows } from '../../environment'; import AppUpdateInfoBar from '../AppUpdateInfoBar'; -import { GITHUB_FERDIUM_URL } from '../../config'; +import InfoBar from '../ui/InfoBar'; +import Link from '../ui/Link'; import Icon from '../ui/icon'; -import { serverName } from '../../api/apiBase'; export interface IProps extends WrappedComponentProps { children: ReactElement; diff --git a/src/components/auth/ChangeServer.tsx b/src/components/auth/ChangeServer.tsx index c49e52673..665e8f6f9 100644 --- a/src/components/auth/ChangeServer.tsx +++ b/src/components/auth/ChangeServer.tsx @@ -1,19 +1,23 @@ -import { Component, FormEvent, ReactElement } from 'react'; -import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { mdiArrowLeftCircle } from '@mdi/js'; import { noop } from 'lodash'; +import { observer } from 'mobx-react'; +import { Component, type FormEvent, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import { LIVE_FERDIUM_API, LIVE_FRANZ_API } from '../../config'; +import { url, required } from '../../helpers/validation-helpers'; +import globalMessages from '../../i18n/globalMessages'; import Form from '../../lib/Form'; -import Input from '../ui/input/index'; +import Infobox from '../ui/Infobox'; +import Link from '../ui/Link'; import Select from '../ui/Select'; import Button from '../ui/button'; -import Link from '../ui/Link'; -import Infobox from '../ui/Infobox'; -import { url, required } from '../../helpers/validation-helpers'; -import { LIVE_FERDIUM_API, LIVE_FRANZ_API } from '../../config'; -import globalMessages from '../../i18n/globalMessages'; import { H1 } from '../ui/headline'; import Icon from '../ui/icon'; +import Input from '../ui/input/index'; const messages = defineMessages({ headline: { diff --git a/src/components/auth/Invite.tsx b/src/components/auth/Invite.tsx index 0d39d861a..93441abe3 100644 --- a/src/components/auth/Invite.tsx +++ b/src/components/auth/Invite.tsx @@ -1,16 +1,20 @@ -import { Component } from 'react'; -import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import { Link } from 'react-router-dom'; import classnames from 'classnames'; import { noop } from 'lodash'; -import Infobox from '../ui/Infobox'; -import Appear from '../ui/effects/Appear'; -import Form from '../../lib/Form'; +import { observer } from 'mobx-react'; +import { Component } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import { Link } from 'react-router-dom'; import { email, required } from '../../helpers/validation-helpers'; -import Input from '../ui/input/index'; +import Form from '../../lib/Form'; +import Infobox from '../ui/Infobox'; import Button from '../ui/button'; +import Appear from '../ui/effects/Appear'; import { H1 } from '../ui/headline'; +import Input from '../ui/input/index'; const messages = defineMessages({ settingsHeadline: { diff --git a/src/components/auth/Locked.tsx b/src/components/auth/Locked.tsx index 34d010782..46ce24a2e 100644 --- a/src/components/auth/Locked.tsx +++ b/src/components/auth/Locked.tsx @@ -1,13 +1,17 @@ import { systemPreferences } from '@electron/remote'; -import { Component } from 'react'; -import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { noop } from 'lodash'; +import { observer } from 'mobx-react'; +import { Component } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import { isMac } from '../../environment'; import Form from '../../lib/Form'; -import Input from '../ui/input/index'; import Button from '../ui/button'; import { H1 } from '../ui/headline'; -import { isMac } from '../../environment'; +import Input from '../ui/input/index'; const messages = defineMessages({ headline: { diff --git a/src/components/auth/Login.tsx b/src/components/auth/Login.tsx index 9bad731c8..37ce595eb 100644 --- a/src/components/auth/Login.tsx +++ b/src/components/auth/Login.tsx @@ -1,19 +1,23 @@ -import { Component, FormEvent, ReactElement } from 'react'; -import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { mdiArrowLeftCircle } from '@mdi/js'; import { noop } from 'lodash'; -import Icon from '../ui/icon'; +import { observer } from 'mobx-react'; +import { Component, type FormEvent, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import type { GlobalError } from '../../@types/ferdium-components.types'; +import { serverBase } from '../../api/apiBase'; // TODO: Remove this line after fixing password recovery in-app import { LIVE_FRANZ_API } from '../../config'; import { API_VERSION } from '../../environment-remote'; -import { serverBase } from '../../api/apiBase'; // TODO: Remove this line after fixing password recovery in-app +import { email, required } from '../../helpers/validation-helpers'; import Form from '../../lib/Form'; -import { required, email } from '../../helpers/validation-helpers'; -import Input from '../ui/input/index'; -import Button from '../ui/button'; import Link from '../ui/Link'; +import Button from '../ui/button'; import { H1 } from '../ui/headline'; -import { GlobalError } from '../../@types/ferdium-components.types'; +import Icon from '../ui/icon'; +import Input from '../ui/input/index'; const messages = defineMessages({ headline: { diff --git a/src/components/auth/Password.tsx b/src/components/auth/Password.tsx index 03adc3859..6f398c3fb 100644 --- a/src/components/auth/Password.tsx +++ b/src/components/auth/Password.tsx @@ -1,16 +1,20 @@ -import { Component, FormEvent } from 'react'; import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { Component, type FormEvent } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import { noop } from 'lodash'; +import { email, required } from '../../helpers/validation-helpers'; +import globalMessages from '../../i18n/globalMessages'; import Form from '../../lib/Form'; -import { required, email } from '../../helpers/validation-helpers'; -import Input from '../ui/input/index'; -import Button from '../ui/button'; -import Link from '../ui/Link'; import Infobox from '../ui/Infobox'; -import globalMessages from '../../i18n/globalMessages'; +import Link from '../ui/Link'; +import Button from '../ui/button'; import { H1 } from '../ui/headline'; +import Input from '../ui/input/index'; const messages = defineMessages({ headline: { diff --git a/src/components/auth/SetupAssistant.tsx b/src/components/auth/SetupAssistant.tsx index c25495471..c1965dbb4 100644 --- a/src/components/auth/SetupAssistant.tsx +++ b/src/components/auth/SetupAssistant.tsx @@ -1,17 +1,21 @@ -import { Component } from 'react'; -import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import withStyles, { WithStylesProps } from 'react-jss'; import classnames from 'classnames'; -import Input from '../ui/input/index'; -import Button from '../ui/button'; -import Badge from '../ui/badge'; -import Modal from '../ui/Modal'; +import { observer } from 'mobx-react'; +import { Component } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; +import { CDN_URL } from '../../config'; +import globalMessages from '../../i18n/globalMessages'; import Infobox from '../ui/Infobox'; +import Modal from '../ui/Modal'; +import Badge from '../ui/badge'; +import Button from '../ui/button'; import Appear from '../ui/effects/Appear'; -import globalMessages from '../../i18n/globalMessages'; -import { CDN_URL } from '../../config'; import { H1, H2 } from '../ui/headline'; +import Input from '../ui/input/index'; const SLACK_ID = 'slack'; diff --git a/src/components/auth/Signup.tsx b/src/components/auth/Signup.tsx index 06a9774aa..84974fd07 100644 --- a/src/components/auth/Signup.tsx +++ b/src/components/auth/Signup.tsx @@ -1,18 +1,22 @@ -import { Component } from 'react'; -import { observer, inject } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { mdiArrowLeftCircle } from '@mdi/js'; import { noop } from 'lodash'; +import { inject, observer } from 'mobx-react'; +import { Component } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import type { GlobalError } from '../../@types/ferdium-components.types'; +import type { Actions } from '../../actions/lib/actions'; +import { serverBase } from '../../api/apiBase'; +import { email, minLength, required } from '../../helpers/validation-helpers'; import Form from '../../lib/Form'; -import { required, email, minLength } from '../../helpers/validation-helpers'; -import Input from '../ui/input/index'; -import Button from '../ui/button'; import Link from '../ui/Link'; -import Icon from '../ui/icon'; -import { serverBase } from '../../api/apiBase'; +import Button from '../ui/button'; import { H1 } from '../ui/headline'; -import { GlobalError } from '../../@types/ferdium-components.types'; -import { Actions } from '../../actions/lib/actions'; +import Icon from '../ui/icon'; +import Input from '../ui/input/index'; const messages = defineMessages({ headline: { diff --git a/src/components/auth/Welcome.tsx b/src/components/auth/Welcome.tsx index c1a2db386..ec1c167c0 100644 --- a/src/components/auth/Welcome.tsx +++ b/src/components/auth/Welcome.tsx @@ -1,14 +1,18 @@ -import { Component, ReactElement } from 'react'; -import { observer, inject } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { noop } from 'lodash'; -import serverlessLogin from '../../helpers/serverless-helpers'; -import shuffleArray from '../../helpers/array-helpers'; +import { inject, observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import { serverName } from '../../api/apiBase'; +import shuffleArray from '../../helpers/array-helpers'; +import serverlessLogin from '../../helpers/serverless-helpers'; +import type RecipePreview from '../../models/RecipePreview'; import Link from '../ui/Link'; import { H1 } from '../ui/headline'; -import { StoresProps } from '../../@types/ferdium-components.types'; -import RecipePreview from '../../models/RecipePreview'; const messages = defineMessages({ signupButton: { diff --git a/src/components/downloadManager/DownloadManagerDashboard.tsx b/src/components/downloadManager/DownloadManagerDashboard.tsx index 25e73d48f..490be269d 100644 --- a/src/components/downloadManager/DownloadManagerDashboard.tsx +++ b/src/components/downloadManager/DownloadManagerDashboard.tsx @@ -1,29 +1,29 @@ -import { Component } from 'react'; -import { observer } from 'mobx-react'; -import { IntlShape, defineMessages, injectIntl } from 'react-intl'; -import { shell } from 'electron'; -import prettyBytes from 'pretty-bytes'; +import { mdiDownload } from '@mdi/js'; +import CancelIcon from '@mui/icons-material/Cancel'; +import ClearAllIcon from '@mui/icons-material/ClearAll'; +import DeleteIcon from '@mui/icons-material/Delete'; +import FolderIcon from '@mui/icons-material/Folder'; +import PauseIcon from '@mui/icons-material/Pause'; +import PlayArrowIcon from '@mui/icons-material/PlayArrow'; import { - Typography, + Box, Card, CardContent, - LinearProgress, - Box, IconButton, + LinearProgress, ListItemButton, ListItemIcon, ListItemText, + Typography, } from '@mui/material'; -import { mdiDownload } from '@mdi/js'; -import PlayArrowIcon from '@mui/icons-material/PlayArrow'; -import PauseIcon from '@mui/icons-material/Pause'; -import CancelIcon from '@mui/icons-material/Cancel'; -import FolderIcon from '@mui/icons-material/Folder'; -import DeleteIcon from '@mui/icons-material/Delete'; -import ClearAllIcon from '@mui/icons-material/ClearAll'; +import { shell } from 'electron'; import { round } from 'lodash'; -import { RealStores } from '../../stores'; -import { Actions } from '../../actions/lib/actions'; +import { observer } from 'mobx-react'; +import prettyBytes from 'pretty-bytes'; +import { Component } from 'react'; +import { type IntlShape, defineMessages, injectIntl } from 'react-intl'; +import type { Actions } from '../../actions/lib/actions'; +import type { RealStores } from '../../stores'; import Icon from '../ui/icon'; const messages = defineMessages({ diff --git a/src/components/downloadManager/DownloadManagerLayout.tsx b/src/components/downloadManager/DownloadManagerLayout.tsx index 1e018cfb8..08c0ace1e 100644 --- a/src/components/downloadManager/DownloadManagerLayout.tsx +++ b/src/components/downloadManager/DownloadManagerLayout.tsx @@ -1,14 +1,19 @@ -import React, { Component } from 'react'; import { inject, observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import type React from 'react'; +import { Component } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import { mdiClose } from '@mdi/js'; import { Outlet } from 'react-router-dom'; -import { Actions } from '../../actions/lib/actions'; +import type { Actions } from '../../actions/lib/actions'; import { isEscKeyPress } from '../../jsUtils'; import Appear from '../ui/effects/Appear'; -import ErrorBoundary from '../util/ErrorBoundary'; import Icon from '../ui/icon'; +import ErrorBoundary from '../util/ErrorBoundary'; const messages = defineMessages({ closeSettings: { diff --git a/src/components/layout/AppLayout.tsx b/src/components/layout/AppLayout.tsx index 97795212a..160664c20 100644 --- a/src/components/layout/AppLayout.tsx +++ b/src/components/layout/AppLayout.tsx @@ -1,28 +1,33 @@ -import React, { Component, PropsWithChildren } from 'react'; -import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import { TitleBar } from 'electron-react-titlebar/renderer'; -import injectSheet, { WithStylesProps } from 'react-jss'; import { ipcRenderer } from 'electron'; +import { TitleBar } from 'electron-react-titlebar/renderer'; +import { observer } from 'mobx-react'; +import type React from 'react'; +import { Component, type PropsWithChildren } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import injectSheet, { type WithStylesProps } from 'react-jss'; import { mdiFlash, mdiPowerPlug } from '@mdi/js'; import { Outlet } from 'react-router-dom'; -import InfoBar from '../ui/InfoBar'; import { Component as BasicAuth } from '../../features/basicAuth'; -import { Component as QuickSwitch } from '../../features/quickSwitch'; import { Component as PublishDebugInfo } from '../../features/publishDebugInfo'; -import ErrorBoundary from '../util/ErrorBoundary'; +import { Component as QuickSwitch } from '../../features/quickSwitch'; import { updateVersionParse } from '../../helpers/update-helpers'; +import InfoBar from '../ui/InfoBar'; +import ErrorBoundary from '../util/ErrorBoundary'; import { isMac, isWindows } from '../../environment'; -import WorkspaceSwitchingIndicator from '../../features/workspaces/components/WorkspaceSwitchingIndicator'; +import Todos from '../../features/todos/containers/TodosScreen'; import { workspaceStore } from '../../features/workspaces'; +import WorkspaceSwitchingIndicator from '../../features/workspaces/components/WorkspaceSwitchingIndicator'; import AppUpdateInfoBar from '../AppUpdateInfoBar'; -import Todos from '../../features/todos/containers/TodosScreen'; import Icon from '../ui/icon'; import LockedScreen from '../../containers/auth/LockedScreen'; -import SettingsStore from '../../stores/SettingsStore'; +import type SettingsStore from '../../stores/SettingsStore'; const messages = defineMessages({ servicesUpdated: { diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx index 1106113f0..a927d5745 100644 --- a/src/components/layout/Sidebar.tsx +++ b/src/components/layout/Sidebar.tsx @@ -1,7 +1,3 @@ -import { Component } from 'react'; -import { Tooltip as ReactTooltip } from 'react-tooltip'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import { inject, observer } from 'mobx-react'; import { mdiBell, mdiBellOff, @@ -9,14 +5,22 @@ import { mdiChevronDown, mdiChevronRight, mdiCog, + mdiDownload, mdiLock, mdiMenu, mdiPlusBox, mdiViewGrid, mdiViewSplitVertical, - mdiDownload, } from '@mdi/js'; -import Tabbar from '../services/tabs/Tabbar'; +import { inject, observer } from 'mobx-react'; +import { Component } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import { Tooltip as ReactTooltip } from 'react-tooltip'; +import type { Actions } from '../../actions/lib/actions'; import { addNewServiceShortcutKey, downloadsShortcutKey, @@ -30,10 +34,10 @@ import { import { todosStore } from '../../features/todos'; import { todoActions } from '../../features/todos/actions'; import globalMessages from '../../i18n/globalMessages'; +import type Service from '../../models/Service'; +import type { RealStores } from '../../stores'; +import Tabbar from '../services/tabs/Tabbar'; import Icon from '../ui/icon'; -import { Actions } from '../../actions/lib/actions'; -import { RealStores } from '../../stores'; -import Service from '../../models/Service'; const messages = defineMessages({ addNewService: { diff --git a/src/components/services/content/ConnectionLostBanner.tsx b/src/components/services/content/ConnectionLostBanner.tsx index 7040337f0..04e62ff6b 100644 --- a/src/components/services/content/ConnectionLostBanner.tsx +++ b/src/components/services/content/ConnectionLostBanner.tsx @@ -1,8 +1,12 @@ -import { Component, ReactElement } from 'react'; -import { observer } from 'mobx-react'; -import withStyles, { WithStylesProps } from 'react-jss'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { mdiAlert } from '@mdi/js'; +import { observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; import { LIVE_API_FERDIUM_WEBSITE } from '../../../config'; import Icon from '../../ui/icon'; diff --git a/src/components/services/content/ServiceDisabled.tsx b/src/components/services/content/ServiceDisabled.tsx index 2f0d439ec..9b9f377b1 100644 --- a/src/components/services/content/ServiceDisabled.tsx +++ b/src/components/services/content/ServiceDisabled.tsx @@ -1,6 +1,10 @@ -import { Component, ReactElement } from 'react'; import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import Button from '../../ui/button'; import { H1 } from '../../ui/headline'; diff --git a/src/components/services/content/ServiceView.tsx b/src/components/services/content/ServiceView.tsx index d89cd0610..577473b5d 100644 --- a/src/components/services/content/ServiceView.tsx +++ b/src/components/services/content/ServiceView.tsx @@ -1,18 +1,18 @@ -import { Component } from 'react'; -import { autorun, IReactionDisposer } from 'mobx'; -import { observer, inject } from 'mobx-react'; import classnames from 'classnames'; +import { type IReactionDisposer, autorun } from 'mobx'; +import { inject, observer } from 'mobx-react'; +import { Component } from 'react'; import TopBarProgress from 'react-topbar-progress-indicator'; -import ServiceModel from '../../../models/Service'; +import { CUSTOM_WEBSITE_RECIPE_ID } from '../../../config'; +import WebControlsScreen from '../../../features/webControls/containers/WebControlsScreen'; +import type ServiceModel from '../../../models/Service'; +import type { RealStores } from '../../../stores'; import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl'; import WebviewLoader from '../../ui/WebviewLoader'; -import WebviewCrashHandler from './WebviewCrashHandler'; -import WebviewErrorHandler from './WebviewErrorHandler'; import ServiceDisabled from './ServiceDisabled'; import ServiceWebview from './ServiceWebview'; -import WebControlsScreen from '../../../features/webControls/containers/WebControlsScreen'; -import { CUSTOM_WEBSITE_RECIPE_ID } from '../../../config'; -import { RealStores } from '../../../stores'; +import WebviewCrashHandler from './WebviewCrashHandler'; +import WebviewErrorHandler from './WebviewErrorHandler'; interface IProps { service: ServiceModel; diff --git a/src/components/services/content/ServiceWebview.tsx b/src/components/services/content/ServiceWebview.tsx index c598d4be6..0cf34c14b 100644 --- a/src/components/services/content/ServiceWebview.tsx +++ b/src/components/services/content/ServiceWebview.tsx @@ -1,9 +1,9 @@ import { join } from 'node:path'; -import { Component, ReactElement } from 'react'; -import { observer } from 'mobx-react'; import { action, makeObservable, observable, reaction } from 'mobx'; +import { observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; import ElectronWebView from 'react-electron-web-view'; -import ServiceModel from '../../../models/Service'; +import type ServiceModel from '../../../models/Service'; const debug = require('../../../preload-safe-debug')('Ferdium:Services'); diff --git a/src/components/services/content/Services.tsx b/src/components/services/content/Services.tsx index 5766e0d75..65359d0b4 100644 --- a/src/components/services/content/Services.tsx +++ b/src/components/services/content/Services.tsx @@ -1,13 +1,17 @@ -import { Component, ReactElement } from 'react'; import { observer } from 'mobx-react'; -import { Link } from 'react-router-dom'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import Confetti from 'react-confetti'; import ms from 'ms'; -import withStyles, { WithStylesProps } from 'react-jss'; -import ServiceView from './ServiceView'; +import { Component, type ReactElement } from 'react'; +import Confetti from 'react-confetti'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; +import { Link } from 'react-router-dom'; +import type Service from '../../../models/Service'; import Appear from '../../ui/effects/Appear'; -import Service from '../../../models/Service'; +import ServiceView from './ServiceView'; const messages = defineMessages({ getStarted: { diff --git a/src/components/services/content/WebviewCrashHandler.tsx b/src/components/services/content/WebviewCrashHandler.tsx index 91c9cf927..0306dcbda 100644 --- a/src/components/services/content/WebviewCrashHandler.tsx +++ b/src/components/services/content/WebviewCrashHandler.tsx @@ -1,7 +1,11 @@ -import { Component, ReactElement } from 'react'; import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import ms from 'ms'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import Button from '../../ui/button'; import { H1 } from '../../ui/headline'; diff --git a/src/components/services/content/WebviewErrorHandler.tsx b/src/components/services/content/WebviewErrorHandler.tsx index b99c15006..1d33ae117 100644 --- a/src/components/services/content/WebviewErrorHandler.tsx +++ b/src/components/services/content/WebviewErrorHandler.tsx @@ -1,7 +1,11 @@ -import { Component, ReactElement } from 'react'; import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import withStyles, { WithStylesProps } from 'react-jss'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; import Button from '../../ui/button'; import { H1 } from '../../ui/headline'; diff --git a/src/components/services/tabs/TabBarSortableList.tsx b/src/components/services/tabs/TabBarSortableList.tsx index a30587470..2f76c17f1 100644 --- a/src/components/services/tabs/TabBarSortableList.tsx +++ b/src/components/services/tabs/TabBarSortableList.tsx @@ -1,9 +1,9 @@ -import { Component } from 'react'; import { observer } from 'mobx-react'; +import { Component } from 'react'; import { SortableContainer } from 'react-sortable-hoc'; +import type Service from '../../../models/Service'; import TabItem from './TabItem'; -import Service from '../../../models/Service'; interface IProps { showMessageBadgeWhenMutedSetting: boolean; diff --git a/src/components/services/tabs/TabItem.tsx b/src/components/services/tabs/TabItem.tsx index 804efe8a5..bf193e136 100644 --- a/src/components/services/tabs/TabItem.tsx +++ b/src/components/services/tabs/TabItem.tsx @@ -1,19 +1,23 @@ -import { app, dialog, Menu } from '@electron/remote'; +import { Menu, app, dialog } from '@electron/remote'; +import { mdiExclamation, mdiVolumeSource } from '@mdi/js'; +import classnames from 'classnames'; import { noop } from 'lodash'; -import { Component } from 'react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { autorun, makeObservable, observable, reaction } from 'mobx'; import { inject, observer } from 'mobx-react'; -import classnames from 'classnames'; -import { SortableElement } from 'react-sortable-hoc'; -import injectSheet, { WithStylesProps } from 'react-jss'; import ms from 'ms'; -import { autorun, makeObservable, observable, reaction } from 'mobx'; -import { mdiExclamation, mdiVolumeSource } from '@mdi/js'; -import Service from '../../../models/Service'; +import { Component } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import injectSheet, { type WithStylesProps } from 'react-jss'; +import { SortableElement } from 'react-sortable-hoc'; +import type { Stores } from '../../../@types/stores.types'; import { altKey, cmdOrCtrlShortcutKey, shiftKey } from '../../../environment'; import globalMessages from '../../../i18n/globalMessages'; +import type Service from '../../../models/Service'; import Icon from '../../ui/icon'; -import { Stores } from '../../../@types/stores.types'; import MenuItemConstructorOptions = Electron.MenuItemConstructorOptions; import { acceleratorString } from '../../../jsUtils'; diff --git a/src/components/services/tabs/Tabbar.tsx b/src/components/services/tabs/Tabbar.tsx index d19a4b8de..164051aae 100644 --- a/src/components/services/tabs/Tabbar.tsx +++ b/src/components/services/tabs/Tabbar.tsx @@ -1,8 +1,8 @@ -import { Component } from 'react'; import { observer } from 'mobx-react'; +import { Component } from 'react'; +import type Service from '../../../models/Service'; import TabBarSortableList from './TabBarSortableList'; -import Service from '../../../models/Service'; interface IProps { useHorizontalStyle: boolean; diff --git a/src/components/settings/SettingsLayout.tsx b/src/components/settings/SettingsLayout.tsx index f96ad7394..17f8c3e33 100644 --- a/src/components/settings/SettingsLayout.tsx +++ b/src/components/settings/SettingsLayout.tsx @@ -1,12 +1,16 @@ -import { Component, PropsWithChildren, ReactElement } from 'react'; -import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { mdiClose } from '@mdi/js'; +import { observer } from 'mobx-react'; +import { Component, type PropsWithChildren, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import { Outlet } from 'react-router-dom'; -import ErrorBoundary from '../util/ErrorBoundary'; +import { isEscKeyPress } from '../../jsUtils'; import Appear from '../ui/effects/Appear'; import Icon from '../ui/icon'; -import { isEscKeyPress } from '../../jsUtils'; +import ErrorBoundary from '../util/ErrorBoundary'; const messages = defineMessages({ closeSettings: { diff --git a/src/components/settings/account/AccountDashboard.tsx b/src/components/settings/account/AccountDashboard.tsx index eab019084..76b4ce14e 100644 --- a/src/components/settings/account/AccountDashboard.tsx +++ b/src/components/settings/account/AccountDashboard.tsx @@ -1,18 +1,22 @@ -import { Component } from 'react'; import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { Component } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import { Tooltip as ReactTooltip } from 'react-tooltip'; import { H1, H2 } from '../../ui/headline'; -import Loader from '../../ui/loader'; -import Button from '../../ui/button'; -import Infobox from '../../ui/infobox/index'; import { DEFAULT_LOADER_COLOR, - LOCAL_SERVER, LIVE_FRANZ_API, + LOCAL_SERVER, } from '../../../config'; -import User from '../../../models/User'; +import type User from '../../../models/User'; +import Button from '../../ui/button'; +import Infobox from '../../ui/infobox/index'; +import Loader from '../../ui/loader'; const messages = defineMessages({ headline: { diff --git a/src/components/settings/navigation/SettingsNavigation.tsx b/src/components/settings/navigation/SettingsNavigation.tsx index 66763c6a6..0504b6553 100644 --- a/src/components/settings/navigation/SettingsNavigation.tsx +++ b/src/components/settings/navigation/SettingsNavigation.tsx @@ -1,12 +1,16 @@ -import { Component } from 'react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { inject, observer } from 'mobx-react'; +import { Component } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import { NavLink } from 'react-router-dom'; -import { StoresProps } from '../../../@types/ferdium-components.types'; +import type { StoresProps } from '../../../@types/ferdium-components.types'; import { - LOCAL_SERVER, LIVE_FERDIUM_API, LIVE_FRANZ_API, + LOCAL_SERVER, } from '../../../config'; import globalMessages from '../../../i18n/globalMessages'; diff --git a/src/components/settings/releaseNotes/ReleaseNotesDashboard.tsx b/src/components/settings/releaseNotes/ReleaseNotesDashboard.tsx index 9b17e551c..1afc17491 100644 --- a/src/components/settings/releaseNotes/ReleaseNotesDashboard.tsx +++ b/src/components/settings/releaseNotes/ReleaseNotesDashboard.tsx @@ -1,7 +1,7 @@ -import { Component } from 'react'; -import { observer } from 'mobx-react'; -import { IntlShape, defineMessages, injectIntl } from 'react-intl'; import Markdown from 'markdown-to-jsx'; +import { observer } from 'mobx-react'; +import { Component } from 'react'; +import { type IntlShape, defineMessages, injectIntl } from 'react-intl'; import { ferdiumVersion } from '../../../environment-remote'; import { getFerdiumVersion, diff --git a/src/components/settings/releaseNotes/ReleaseNotesLayout.tsx b/src/components/settings/releaseNotes/ReleaseNotesLayout.tsx index 4a6fe54f4..23db7141e 100644 --- a/src/components/settings/releaseNotes/ReleaseNotesLayout.tsx +++ b/src/components/settings/releaseNotes/ReleaseNotesLayout.tsx @@ -1,14 +1,18 @@ -import { Component } from 'react'; import { inject, observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { Component } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import { mdiClose } from '@mdi/js'; import { Outlet } from 'react-router-dom'; -import ErrorBoundary from '../../util/ErrorBoundary'; +import type { Actions } from '../../../actions/lib/actions'; +import { isEscKeyPress } from '../../../jsUtils'; import Appear from '../../ui/effects/Appear'; import Icon from '../../ui/icon'; -import { isEscKeyPress } from '../../../jsUtils'; -import { Actions } from '../../../actions/lib/actions'; +import ErrorBoundary from '../../util/ErrorBoundary'; const messages = defineMessages({ closeSettings: { diff --git a/src/components/settings/services/EditServiceForm.tsx b/src/components/settings/services/EditServiceForm.tsx index 520cb3c46..69893c16c 100644 --- a/src/components/settings/services/EditServiceForm.tsx +++ b/src/components/settings/services/EditServiceForm.tsx @@ -1,25 +1,29 @@ -import { Component, FormEvent, ReactElement } from 'react'; -import { observer } from 'mobx-react'; -import { Link } from 'react-router-dom'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { mdiInformation } from '@mdi/js'; import { noop } from 'lodash'; -import Form from '../../../lib/Form'; -import Tabs from '../../ui/Tabs/Tabs'; -import TabItem from '../../ui/Tabs/TabItem'; -import Input from '../../ui/input/index'; -import Toggle from '../../ui/toggle'; -import Slider from '../../ui/Slider'; -import Button from '../../ui/button'; -import ImageUpload from '../../ui/imageUpload'; -import Select from '../../ui/Select'; +import { observer } from 'mobx-react'; +import { Component, type FormEvent, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import { Link } from 'react-router-dom'; import { isMac } from '../../../environment'; +import { normalizedUrl } from '../../../helpers/url-helpers'; import globalMessages from '../../../i18n/globalMessages'; -import Icon from '../../ui/icon'; +import type Form from '../../../lib/Form'; +import type { IRecipe } from '../../../models/Recipe'; +import type Service from '../../../models/Service'; +import Select from '../../ui/Select'; +import Slider from '../../ui/Slider'; +import TabItem from '../../ui/Tabs/TabItem'; +import Tabs from '../../ui/Tabs/Tabs'; +import Button from '../../ui/button'; import { H3 } from '../../ui/headline'; -import { IRecipe } from '../../../models/Recipe'; -import Service from '../../../models/Service'; -import { normalizedUrl } from '../../../helpers/url-helpers'; +import Icon from '../../ui/icon'; +import ImageUpload from '../../ui/imageUpload'; +import Input from '../../ui/input/index'; +import Toggle from '../../ui/toggle'; const messages = defineMessages({ saveService: { diff --git a/src/components/settings/services/ServiceError.tsx b/src/components/settings/services/ServiceError.tsx index 87efdeb96..426565547 100644 --- a/src/components/settings/services/ServiceError.tsx +++ b/src/components/settings/services/ServiceError.tsx @@ -1,7 +1,11 @@ -import { Component, ReactElement } from 'react'; import { observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import { Link } from 'react-router-dom'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import Infobox from '../../ui/Infobox'; import Button from '../../ui/button'; diff --git a/src/components/settings/services/ServiceItem.tsx b/src/components/settings/services/ServiceItem.tsx index 35b63b160..7df59f1d2 100644 --- a/src/components/settings/services/ServiceItem.tsx +++ b/src/components/settings/services/ServiceItem.tsx @@ -1,10 +1,14 @@ -import { Component, ReactElement } from 'react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import { Tooltip as ReactTooltip } from 'react-tooltip'; -import { observer } from 'mobx-react'; -import classnames from 'classnames'; import { mdiBellOff, mdiMessageBulletedOff, mdiPower } from '@mdi/js'; -import ServiceModel from '../../../models/Service'; +import classnames from 'classnames'; +import { observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import { Tooltip as ReactTooltip } from 'react-tooltip'; +import type ServiceModel from '../../../models/Service'; import Icon from '../../ui/icon'; const messages = defineMessages({ diff --git a/src/components/settings/services/ServicesDashboard.tsx b/src/components/settings/services/ServicesDashboard.tsx index b8c3ce3f0..e63898ae5 100644 --- a/src/components/settings/services/ServicesDashboard.tsx +++ b/src/components/settings/services/ServicesDashboard.tsx @@ -1,16 +1,20 @@ -import { Component, ReactElement } from 'react'; +import type { To } from 'history'; import { observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import { Link } from 'react-router-dom'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import { To } from 'history'; -import SearchInput from '../../ui/SearchInput'; -import Infobox from '../../ui/Infobox'; -import Loader from '../../ui/loader'; +import type Service from '../../../models/Service'; import FAB from '../../ui/FAB'; -import ServiceItem from './ServiceItem'; +import Infobox from '../../ui/Infobox'; +import SearchInput from '../../ui/SearchInput'; import Appear from '../../ui/effects/Appear'; import { H1 } from '../../ui/headline'; -import Service from '../../../models/Service'; +import Loader from '../../ui/loader'; +import ServiceItem from './ServiceItem'; const messages = defineMessages({ headline: { diff --git a/src/components/settings/settings/EditSettingsForm.tsx b/src/components/settings/settings/EditSettingsForm.tsx index 81cfe8b12..598158e20 100644 --- a/src/components/settings/settings/EditSettingsForm.tsx +++ b/src/components/settings/settings/EditSettingsForm.tsx @@ -1,31 +1,20 @@ import { systemPreferences } from '@electron/remote'; -import { Component, ReactElement } from 'react'; -import { observer } from 'mobx-react'; -import prettyBytes from 'pretty-bytes'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { mdiGithub, mdiOpenInNew, mdiPowerPlug } from '@mdi/js'; import { noop } from 'lodash'; -import Form from '../../../lib/Form'; -import Button from '../../ui/button'; -import Toggle from '../../ui/toggle'; -import Select from '../../ui/Select'; -import Input from '../../ui/input/index'; -import ColorPickerInput from '../../ui/colorPickerInput'; -import Infobox from '../../ui/Infobox'; -import { H1, H2, H3, H5 } from '../../ui/headline'; +import { observer } from 'mobx-react'; +import prettyBytes from 'pretty-bytes'; +import { Component, type ReactElement } from 'react'; import { - ferdiumVersion, - userDataCertsPath, - userDataPath, - userDataRecipesPath, -} from '../../../environment-remote'; -import { updateVersionParse } from '../../../helpers/update-helpers'; + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import { DEFAULT_ACCENT_COLOR, DEFAULT_APP_SETTINGS, FERDIUM_TRANSLATION, - GITHUB_FRANZ_URL, GITHUB_FERDIUM_URL, + GITHUB_FRANZ_URL, SPLIT_COLUMNS_MAX, SPLIT_COLUMNS_MIN, } from '../../../config'; @@ -35,10 +24,25 @@ import { isWindows, lockFerdiumShortcutKey, } from '../../../environment'; +import { + ferdiumVersion, + userDataCertsPath, + userDataPath, + userDataRecipesPath, +} from '../../../environment-remote'; +import { updateVersionParse } from '../../../helpers/update-helpers'; import { openExternalUrl, openPath } from '../../../helpers/url-helpers'; import globalMessages from '../../../i18n/globalMessages'; -import Icon from '../../ui/icon'; +import type Form from '../../../lib/Form'; +import Infobox from '../../ui/Infobox'; +import Select from '../../ui/Select'; import Slider from '../../ui/Slider'; +import Button from '../../ui/button'; +import ColorPickerInput from '../../ui/colorPickerInput'; +import { H1, H2, H3, H5 } from '../../ui/headline'; +import Icon from '../../ui/icon'; +import Input from '../../ui/input/index'; +import Toggle from '../../ui/toggle'; const debug = require('../../../preload-safe-debug')( 'Ferdium:EditSettingsForm', diff --git a/src/components/settings/team/TeamDashboard.tsx b/src/components/settings/team/TeamDashboard.tsx index 96613373e..b2d5aa6d5 100644 --- a/src/components/settings/team/TeamDashboard.tsx +++ b/src/components/settings/team/TeamDashboard.tsx @@ -1,16 +1,20 @@ // TODO: Is this feature even being used? If not, then we can cleanup this code -import { Component, ReactElement } from 'react'; +import classnames from 'classnames'; import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; import { Tooltip as ReactTooltip } from 'react-tooltip'; -import withStyles, { WithStylesProps } from 'react-jss'; -import classnames from 'classnames'; -import Loader from '../../ui/loader'; -import Button from '../../ui/button'; +import { DEFAULT_LOADER_COLOR, LIVE_FRANZ_API } from '../../../config'; import Infobox from '../../ui/Infobox'; +import Button from '../../ui/button'; import { H1 } from '../../ui/headline'; -import { DEFAULT_LOADER_COLOR, LIVE_FRANZ_API } from '../../../config'; +import Loader from '../../ui/loader'; const messages = defineMessages({ headline: { diff --git a/src/components/settings/user/EditUserForm.tsx b/src/components/settings/user/EditUserForm.tsx index 5a2a5a83e..f4b84166a 100644 --- a/src/components/settings/user/EditUserForm.tsx +++ b/src/components/settings/user/EditUserForm.tsx @@ -1,14 +1,23 @@ -import { Component, FormEvent, FormEventHandler, ReactElement } from 'react'; +import { noop } from 'lodash'; import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { + Component, + type FormEvent, + type FormEventHandler, + type ReactElement, +} from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import { Link } from 'react-router-dom'; -import { noop } from 'lodash'; -import Input from '../../ui/input/index'; -import Form from '../../../lib/Form'; -import Button from '../../ui/button'; -import Radio from '../../ui/Radio'; +import type Form from '../../../lib/Form'; import Infobox from '../../ui/Infobox'; +import Radio from '../../ui/Radio'; +import Button from '../../ui/button'; import { H2 } from '../../ui/headline'; +import Input from '../../ui/input/index'; const messages = defineMessages({ headline: { diff --git a/src/components/ui/AppLoader/index.tsx b/src/components/ui/AppLoader/index.tsx index 4b5828ef4..a2133e174 100644 --- a/src/components/ui/AppLoader/index.tsx +++ b/src/components/ui/AppLoader/index.tsx @@ -1,9 +1,9 @@ -import { Component, ReactElement } from 'react'; import classnames from 'classnames'; -import withStyles, { WithStylesProps } from 'react-jss'; -import { Theme } from '../../../themes'; -import FullscreenLoader from '../FullscreenLoader'; +import { Component, type ReactElement } from 'react'; +import withStyles, { type WithStylesProps } from 'react-jss'; import shuffleArray from '../../../helpers/array-helpers'; +import type { Theme } from '../../../themes'; +import FullscreenLoader from '../FullscreenLoader'; import styles from './styles'; diff --git a/src/components/ui/FAB.tsx b/src/components/ui/FAB.tsx index acb0f690e..b4eeace8b 100644 --- a/src/components/ui/FAB.tsx +++ b/src/components/ui/FAB.tsx @@ -1,7 +1,7 @@ -import { Component, ReactElement, ReactNode } from 'react'; -import { observer } from 'mobx-react'; import classnames from 'classnames'; import { noop } from 'lodash'; +import { observer } from 'mobx-react'; +import { Component, type ReactElement, type ReactNode } from 'react'; interface IProps { className: string; diff --git a/src/components/ui/FullscreenLoader/index.tsx b/src/components/ui/FullscreenLoader/index.tsx index 09c1d5fbb..40b04abe8 100644 --- a/src/components/ui/FullscreenLoader/index.tsx +++ b/src/components/ui/FullscreenLoader/index.tsx @@ -1,11 +1,11 @@ -import { Component, ReactElement, ReactNode } from 'react'; -import { observer } from 'mobx-react'; -import withStyles, { WithStylesProps } from 'react-jss'; import classnames from 'classnames'; +import { observer } from 'mobx-react'; +import { Component, type ReactElement, type ReactNode } from 'react'; +import withStyles, { type WithStylesProps } from 'react-jss'; +import type { Theme } from '../../../themes'; +import { H1 } from '../headline'; import Loader from '../loader/index'; import styles from './styles'; -import { H1 } from '../headline'; -import { Theme } from '../../../themes'; interface IProps extends WithStylesProps { className?: string; diff --git a/src/components/ui/InfoBar.tsx b/src/components/ui/InfoBar.tsx index f3f1adbe7..5fd27f61a 100644 --- a/src/components/ui/InfoBar.tsx +++ b/src/components/ui/InfoBar.tsx @@ -1,14 +1,18 @@ -import { Component, MouseEventHandler, ReactNode } from 'react'; -import { observer } from 'mobx-react'; import classnames from 'classnames'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { observer } from 'mobx-react'; +import { Component, type MouseEventHandler, type ReactNode } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import { mdiClose } from '@mdi/js'; import { noop } from 'lodash'; -import Loader from './loader/index'; +import { DEFAULT_LOADER_COLOR } from '../../config'; import Appear from './effects/Appear'; import Icon from './icon'; -import { DEFAULT_LOADER_COLOR } from '../../config'; +import Loader from './loader/index'; const messages = defineMessages({ hide: { diff --git a/src/components/ui/Infobox.tsx b/src/components/ui/Infobox.tsx index 14e1a581c..fc88c4654 100644 --- a/src/components/ui/Infobox.tsx +++ b/src/components/ui/Infobox.tsx @@ -1,12 +1,21 @@ -import { Component, MouseEventHandler, ReactElement, ReactNode } from 'react'; -import classnames from 'classnames'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { mdiAlert, mdiCheckboxMarkedCircleOutline, mdiClose } from '@mdi/js'; +import classnames from 'classnames'; import { noop } from 'lodash'; import { observer } from 'mobx-react'; -import Loader from './loader/index'; -import Icon from './icon'; +import { + Component, + type MouseEventHandler, + type ReactElement, + type ReactNode, +} from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; import { DEFAULT_LOADER_COLOR } from '../../config'; +import Icon from './icon'; +import Loader from './loader/index'; const icons = { 'checkbox-marked-circle-outline': mdiCheckboxMarkedCircleOutline, diff --git a/src/components/ui/Link.tsx b/src/components/ui/Link.tsx index f9fdd57f9..816798d79 100644 --- a/src/components/ui/Link.tsx +++ b/src/components/ui/Link.tsx @@ -1,9 +1,14 @@ -import { Component, CSSProperties, ReactNode, MouseEvent } from 'react'; -import { inject, observer } from 'mobx-react'; import classnames from 'classnames'; +import { inject, observer } from 'mobx-react'; +import { + type CSSProperties, + Component, + type MouseEvent, + type ReactNode, +} from 'react'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import matchRoute from '../../helpers/routing-helpers'; import { openExternalUrl } from '../../helpers/url-helpers'; -import { StoresProps } from '../../@types/ferdium-components.types'; interface IProps extends Partial { children: ReactNode; @@ -54,7 +59,6 @@ class Link extends Component { }); return ( - // biome-ignore lint/a11y/useValidAnchor: import Error from './error'; diff --git a/src/components/ui/SearchInput.tsx b/src/components/ui/SearchInput.tsx index b2caaa1de..2e70d1b35 100644 --- a/src/components/ui/SearchInput.tsx +++ b/src/components/ui/SearchInput.tsx @@ -1,8 +1,8 @@ -import { ChangeEvent, Component, ReactElement } from 'react'; -import { observer } from 'mobx-react'; +import { mdiCloseCircleOutline, mdiMagnify } from '@mdi/js'; import classnames from 'classnames'; import { debounce, noop } from 'lodash'; -import { mdiCloseCircleOutline, mdiMagnify } from '@mdi/js'; +import { observer } from 'mobx-react'; +import { type ChangeEvent, Component, type ReactElement } from 'react'; import Icon from './icon'; interface IProps { diff --git a/src/components/ui/Select.tsx b/src/components/ui/Select.tsx index a2ed4216f..4abed849d 100644 --- a/src/components/ui/Select.tsx +++ b/src/components/ui/Select.tsx @@ -1,14 +1,14 @@ +import classnames from 'classnames'; +import { observer } from 'mobx-react'; import { - createRef, + type ChangeEvent, Component, - ReactElement, - RefObject, - ChangeEvent, - ReactNode, + type ReactElement, + type ReactNode, + type RefObject, + createRef, } from 'react'; -import { observer } from 'mobx-react'; -import classnames from 'classnames'; -import { Field } from '../../@types/mobx-form.types'; +import type { Field } from '../../@types/mobx-form.types'; interface IProps { field: Field; diff --git a/src/components/ui/ServiceIcon.tsx b/src/components/ui/ServiceIcon.tsx index 6920611d0..03a345c23 100644 --- a/src/components/ui/ServiceIcon.tsx +++ b/src/components/ui/ServiceIcon.tsx @@ -1,8 +1,8 @@ -import { Component, ReactNode } from 'react'; -import { observer } from 'mobx-react'; -import withStyles, { WithStylesProps } from 'react-jss'; import classnames from 'classnames'; -import ServiceModel from '../../models/Service'; +import { observer } from 'mobx-react'; +import { Component, type ReactNode } from 'react'; +import withStyles, { type WithStylesProps } from 'react-jss'; +import type ServiceModel from '../../models/Service'; const styles = theme => ({ root: { diff --git a/src/components/ui/Slider.tsx b/src/components/ui/Slider.tsx index aa351ccd2..4f22290ef 100644 --- a/src/components/ui/Slider.tsx +++ b/src/components/ui/Slider.tsx @@ -1,7 +1,7 @@ -import { ChangeEvent, Component, ReactElement } from 'react'; -import { observer } from 'mobx-react'; import classnames from 'classnames'; import { noop } from 'lodash'; +import { observer } from 'mobx-react'; +import { type ChangeEvent, Component, type ReactElement } from 'react'; interface IProps { field: any; diff --git a/src/components/ui/StatusBarTargetUrl.tsx b/src/components/ui/StatusBarTargetUrl.tsx index d969267eb..92cb6c36d 100644 --- a/src/components/ui/StatusBarTargetUrl.tsx +++ b/src/components/ui/StatusBarTargetUrl.tsx @@ -1,6 +1,6 @@ -import { Component } from 'react'; -import { observer } from 'mobx-react'; import classnames from 'classnames'; +import { observer } from 'mobx-react'; +import { Component } from 'react'; import Appear from './effects/Appear'; interface IProps { diff --git a/src/components/ui/Tabs/TabItem.tsx b/src/components/ui/Tabs/TabItem.tsx index 55dee42c6..df99a8bfb 100644 --- a/src/components/ui/Tabs/TabItem.tsx +++ b/src/components/ui/Tabs/TabItem.tsx @@ -1,4 +1,4 @@ -import { Fragment, ReactElement } from 'react'; +import { Fragment, type ReactElement } from 'react'; export interface IProps { children: diff --git a/src/components/ui/Tabs/Tabs.tsx b/src/components/ui/Tabs/Tabs.tsx index d7f75c8b8..a5ec148aa 100644 --- a/src/components/ui/Tabs/Tabs.tsx +++ b/src/components/ui/Tabs/Tabs.tsx @@ -1,7 +1,12 @@ -import { Children, Component, ReactElement, ReactPortal } from 'react'; -import { observer } from 'mobx-react'; import classnames from 'classnames'; -import { IProps as TabItemProps } from './TabItem'; +import { observer } from 'mobx-react'; +import { + Children, + Component, + type ReactElement, + type ReactPortal, +} from 'react'; +import type { IProps as TabItemProps } from './TabItem'; interface IProps { children: diff --git a/src/components/ui/WebviewLoader/index.tsx b/src/components/ui/WebviewLoader/index.tsx index c4e9c724c..53e10d3b9 100644 --- a/src/components/ui/WebviewLoader/index.tsx +++ b/src/components/ui/WebviewLoader/index.tsx @@ -1,7 +1,11 @@ -import { Component, ReactElement } from 'react'; import { observer } from 'mobx-react'; -import injectSheet, { WithStylesProps } from 'react-jss'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import injectSheet, { type WithStylesProps } from 'react-jss'; import FullscreenLoader from '../FullscreenLoader'; const messages = defineMessages({ diff --git a/src/components/ui/badge/ProBadge.tsx b/src/components/ui/badge/ProBadge.tsx index a5947d3a8..fd5752ed0 100644 --- a/src/components/ui/badge/ProBadge.tsx +++ b/src/components/ui/badge/ProBadge.tsx @@ -1,9 +1,9 @@ import { mdiStar } from '@mdi/js'; import classnames from 'classnames'; import { Component } from 'react'; -import injectStyle, { WithStylesProps } from 'react-jss'; +import injectStyle, { type WithStylesProps } from 'react-jss'; -import { Theme } from '../../../themes'; +import type { Theme } from '../../../themes'; import Icon from '../icon'; import Badge from './index'; diff --git a/src/components/ui/badge/index.tsx b/src/components/ui/badge/index.tsx index 44fbf2d4a..e464c07ec 100644 --- a/src/components/ui/badge/index.tsx +++ b/src/components/ui/badge/index.tsx @@ -1,8 +1,8 @@ import classnames from 'classnames'; -import { Component, ReactNode } from 'react'; -import injectStyle, { WithStylesProps } from 'react-jss'; +import { Component, type ReactNode } from 'react'; +import injectStyle, { type WithStylesProps } from 'react-jss'; -import { Theme } from '../../../themes'; +import type { Theme } from '../../../themes'; const badgeStyles = (theme: Theme) => { const styles = {}; diff --git a/src/components/ui/button/index.tsx b/src/components/ui/button/index.tsx index 3247072a9..5c606f274 100644 --- a/src/components/ui/button/index.tsx +++ b/src/components/ui/button/index.tsx @@ -1,14 +1,14 @@ /* eslint-disable no-use-before-define */ import Icon from '@mdi/react'; import classnames from 'classnames'; -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { noop } from 'lodash'; -import { Component, MouseEventHandler } from 'react'; -import withStyles, { WithStylesProps } from 'react-jss'; -import Loader from '../loader/index'; -import { Theme } from '../../../themes'; -import { IFormField } from '../typings/generic'; +import { Component, type MouseEventHandler } from 'react'; +import withStyles, { type WithStylesProps } from 'react-jss'; import { DEFAULT_LOADER_COLOR } from '../../../config'; +import type { Theme } from '../../../themes'; +import Loader from '../loader/index'; +import type { IFormField } from '../typings/generic'; type ButtonType = | 'primary' @@ -206,7 +206,6 @@ class ButtonComponent extends Component { ); const wrapperComponent = href ? ( - // biome-ignore lint/a11y/useValidAnchor: , FormFields { onColorChange: (event: ChangeEvent) => void; diff --git a/src/components/ui/effects/Appear.tsx b/src/components/ui/effects/Appear.tsx index 06f63a029..c32c339fd 100644 --- a/src/components/ui/effects/Appear.tsx +++ b/src/components/ui/effects/Appear.tsx @@ -1,4 +1,4 @@ -import { ReactElement, ReactNode, useEffect, useState } from 'react'; +import { type ReactElement, type ReactNode, useEffect, useState } from 'react'; import { CSSTransition, TransitionGroup } from 'react-transition-group'; interface IProps { diff --git a/src/components/ui/error/index.tsx b/src/components/ui/error/index.tsx index 01fb5ca27..d0008529f 100644 --- a/src/components/ui/error/index.tsx +++ b/src/components/ui/error/index.tsx @@ -1,4 +1,4 @@ -import { Classes } from 'jss'; +import type { Classes } from 'jss'; import { Component } from 'react'; import injectSheet from 'react-jss'; diff --git a/src/components/ui/error/styles.ts b/src/components/ui/error/styles.ts index 9da95705a..ac781052f 100644 --- a/src/components/ui/error/styles.ts +++ b/src/components/ui/error/styles.ts @@ -1,4 +1,4 @@ -import { Theme } from '../../../themes'; +import type { Theme } from '../../../themes'; export default (theme: Theme) => ({ message: { diff --git a/src/components/ui/headline/index.tsx b/src/components/ui/headline/index.tsx index 8e40fa896..2070745bb 100644 --- a/src/components/ui/headline/index.tsx +++ b/src/components/ui/headline/index.tsx @@ -1,15 +1,15 @@ import classnames from 'classnames'; import { Component, + type MouseEventHandler, + type ReactElement, + type ReactNode, createElement, - MouseEventHandler, - ReactElement, - ReactNode, } from 'react'; -import injectStyle, { WithStylesProps } from 'react-jss'; +import injectStyle, { type WithStylesProps } from 'react-jss'; -import { Theme } from '../../../themes'; -import { Omit } from '../typings/generic'; +import type { Theme } from '../../../themes'; +import type { Omit } from '../typings/generic'; const styles = (theme: Theme) => ({ headline: { diff --git a/src/components/ui/icon/index.tsx b/src/components/ui/icon/index.tsx index 04a00d0e0..ad9f43730 100644 --- a/src/components/ui/icon/index.tsx +++ b/src/components/ui/icon/index.tsx @@ -1,9 +1,9 @@ import MdiIcon from '@mdi/react'; import classnames from 'classnames'; -import { Component, ReactElement } from 'react'; -import injectStyle, { WithStylesProps } from 'react-jss'; +import { Component, type ReactElement } from 'react'; +import injectStyle, { type WithStylesProps } from 'react-jss'; -import { Theme } from '../../../themes'; +import type { Theme } from '../../../themes'; const styles = (theme: Theme) => ({ icon: { diff --git a/src/components/ui/imageUpload/index.tsx b/src/components/ui/imageUpload/index.tsx index 3b164ed41..876572484 100644 --- a/src/components/ui/imageUpload/index.tsx +++ b/src/components/ui/imageUpload/index.tsx @@ -1,11 +1,11 @@ -import { Component, ReactElement } from 'react'; -import { observer } from 'mobx-react'; -import classnames from 'classnames'; -import Dropzone from 'react-dropzone'; import { mdiDelete, mdiFileImage } from '@mdi/js'; +import classnames from 'classnames'; +import { observer } from 'mobx-react'; import prettyBytes from 'pretty-bytes'; -import Icon from '../icon'; +import { Component, type ReactElement } from 'react'; +import Dropzone from 'react-dropzone'; import { isWindows } from '../../../environment'; +import Icon from '../icon'; interface IProps { field: any; diff --git a/src/components/ui/infobox/index.tsx b/src/components/ui/infobox/index.tsx index a1c4f9d21..36ea6a59f 100644 --- a/src/components/ui/infobox/index.tsx +++ b/src/components/ui/infobox/index.tsx @@ -2,9 +2,9 @@ import { mdiClose } from '@mdi/js'; import classnames from 'classnames'; import { noop } from 'lodash'; -import { Component, ReactElement, ReactNode } from 'react'; -import withStyles, { WithStylesProps } from 'react-jss'; -import { Theme } from '../../../themes'; +import { Component, type ReactElement, type ReactNode } from 'react'; +import withStyles, { type WithStylesProps } from 'react-jss'; +import type { Theme } from '../../../themes'; import Icon from '../icon'; const buttonStyles = (theme: Theme) => { diff --git a/src/components/ui/input/index.tsx b/src/components/ui/input/index.tsx index 68cc9ee22..c61efe570 100644 --- a/src/components/ui/input/index.tsx +++ b/src/components/ui/input/index.tsx @@ -1,22 +1,26 @@ import { mdiEye, mdiEyeOff } from '@mdi/js'; import classnames from 'classnames'; +import { noop } from 'lodash'; +import { observer } from 'mobx-react'; import { Component, + type InputHTMLAttributes, + type KeyboardEvent, + type ReactElement, + type RefObject, createRef, - InputHTMLAttributes, - ReactElement, - RefObject, - KeyboardEvent, } from 'react'; -import withStyles, { WithStylesProps } from 'react-jss'; -import { noop } from 'lodash'; -import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import Icon from '../icon'; -import { IFormField } from '../typings/generic'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; // biome-ignore lint/suspicious/noShadowRestrictedNames: import Error from '../error'; +import Icon from '../icon'; import Label from '../label'; +import type { IFormField } from '../typings/generic'; import Wrapper from '../wrapper'; import { scorePasswordFunc } from './scorePassword'; import styles from './styles'; diff --git a/src/components/ui/input/styles.ts b/src/components/ui/input/styles.ts index ebae0e40d..580c72889 100644 --- a/src/components/ui/input/styles.ts +++ b/src/components/ui/input/styles.ts @@ -1,6 +1,6 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; -import { Theme } from '../../../themes'; +import type { Theme } from '../../../themes'; const prefixStyles = (theme: Theme) => ({ background: theme.inputPrefixBackground, diff --git a/src/components/ui/label/index.tsx b/src/components/ui/label/index.tsx index 5f5cc5c8e..c0a3903b0 100644 --- a/src/components/ui/label/index.tsx +++ b/src/components/ui/label/index.tsx @@ -1,8 +1,8 @@ import classnames from 'classnames'; -import { Component, LabelHTMLAttributes } from 'react'; -import injectSheet, { WithStylesProps } from 'react-jss'; +import { Component, type LabelHTMLAttributes } from 'react'; +import injectSheet, { type WithStylesProps } from 'react-jss'; -import { IFormField } from '../typings/generic'; +import type { IFormField } from '../typings/generic'; import styles from './styles'; diff --git a/src/components/ui/label/styles.ts b/src/components/ui/label/styles.ts index faa44ae5b..fecfa1816 100644 --- a/src/components/ui/label/styles.ts +++ b/src/components/ui/label/styles.ts @@ -1,4 +1,4 @@ -import { Theme } from '../../../themes'; +import type { Theme } from '../../../themes'; export default (theme: Theme) => ({ content: {}, diff --git a/src/components/ui/loader/index.tsx b/src/components/ui/loader/index.tsx index c0ae15028..8757985b9 100644 --- a/src/components/ui/loader/index.tsx +++ b/src/components/ui/loader/index.tsx @@ -1,9 +1,9 @@ import classnames from 'classnames'; +import { inject } from 'mobx-react'; import { Component } from 'react'; -import injectStyle, { WithStylesProps } from 'react-jss'; +import injectStyle, { type WithStylesProps } from 'react-jss'; import { Oval } from 'react-loader-spinner'; -import { inject } from 'mobx-react'; -import { FerdiumStores } from '../../../@types/stores.types'; +import type { FerdiumStores } from '../../../@types/stores.types'; import { DEFAULT_LOADER_COLOR } from '../../../config'; const styles = () => ({ diff --git a/src/components/ui/select/index.tsx b/src/components/ui/select/index.tsx index 0d8520f58..2716ebc2d 100644 --- a/src/components/ui/select/index.tsx +++ b/src/components/ui/select/index.tsx @@ -5,14 +5,19 @@ import { } from '@mdi/js'; import Icon from '@mdi/react'; import classnames from 'classnames'; -import { ChangeEvent, Component, createRef, ReactElement } from 'react'; -import withStyles, { WithStylesProps } from 'react-jss'; import { noop } from 'lodash'; -import { Theme } from '../../../themes'; -import { IFormField } from '../typings/generic'; +import { + type ChangeEvent, + Component, + type ReactElement, + createRef, +} from 'react'; +import withStyles, { type WithStylesProps } from 'react-jss'; +import type { Theme } from '../../../themes'; // biome-ignore lint/suspicious/noShadowRestrictedNames: import Error from '../error'; import Label from '../label'; +import type { IFormField } from '../typings/generic'; import Wrapper from '../wrapper'; let popupTransition: string = 'none'; diff --git a/src/components/ui/textarea/index.tsx b/src/components/ui/textarea/index.tsx index 0967c4c25..4a0e77afe 100644 --- a/src/components/ui/textarea/index.tsx +++ b/src/components/ui/textarea/index.tsx @@ -1,9 +1,9 @@ import classnames from 'classnames'; -import { Component, createRef, TextareaHTMLAttributes } from 'react'; -import injectSheet, { WithStylesProps } from 'react-jss'; +import { Component, type TextareaHTMLAttributes, createRef } from 'react'; +import injectSheet, { type WithStylesProps } from 'react-jss'; import { noop } from 'lodash'; -import { IFormField } from '../typings/generic'; +import type { IFormField } from '../typings/generic'; // biome-ignore lint/suspicious/noShadowRestrictedNames: import Error from '../error'; diff --git a/src/components/ui/textarea/styles.ts b/src/components/ui/textarea/styles.ts index 36fc2a82e..c4c27b95d 100644 --- a/src/components/ui/textarea/styles.ts +++ b/src/components/ui/textarea/styles.ts @@ -1,6 +1,6 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; -import { Theme } from '../../../themes'; +import type { Theme } from '../../../themes'; export default (theme: Theme) => ({ label: { diff --git a/src/components/ui/toggle/index.tsx b/src/components/ui/toggle/index.tsx index 878ffecdc..dc426b3a1 100644 --- a/src/components/ui/toggle/index.tsx +++ b/src/components/ui/toggle/index.tsx @@ -1,13 +1,13 @@ import classnames from 'classnames'; -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { noop } from 'lodash'; -import { Component, InputHTMLAttributes, ReactElement } from 'react'; -import withStyles, { WithStylesProps } from 'react-jss'; -import { Theme } from '../../../themes'; +import { Component, type InputHTMLAttributes, type ReactElement } from 'react'; +import withStyles, { type WithStylesProps } from 'react-jss'; +import type { Theme } from '../../../themes'; // biome-ignore lint/suspicious/noShadowRestrictedNames: import Error from '../error'; import Label from '../label'; -import { IFormField } from '../typings/generic'; +import type { IFormField } from '../typings/generic'; import Wrapper from '../wrapper'; const buttonTransition: string = window?.matchMedia( diff --git a/src/components/ui/wrapper/index.tsx b/src/components/ui/wrapper/index.tsx index 450d09fd1..081b13b36 100644 --- a/src/components/ui/wrapper/index.tsx +++ b/src/components/ui/wrapper/index.tsx @@ -1,6 +1,6 @@ import classnames from 'classnames'; -import { Component, ReactNode } from 'react'; -import injectStyle, { WithStylesProps } from 'react-jss'; +import { Component, type ReactNode } from 'react'; +import injectStyle, { type WithStylesProps } from 'react-jss'; // eslint-disable-next-line no-use-before-define interface IProps extends WithStylesProps { diff --git a/src/components/util/ErrorBoundary/index.tsx b/src/components/util/ErrorBoundary/index.tsx index 66f860835..a37d1b33a 100644 --- a/src/components/util/ErrorBoundary/index.tsx +++ b/src/components/util/ErrorBoundary/index.tsx @@ -1,6 +1,6 @@ -import { Component, ReactNode } from 'react'; -import withStyles, { WithStylesProps } from 'react-jss'; -import { defineMessages, injectIntl, IntlShape } from 'react-intl'; +import { Component, type ReactNode } from 'react'; +import { type IntlShape, defineMessages, injectIntl } from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; import Button from '../../ui/button'; import { H1 } from '../../ui/headline'; diff --git a/src/containers/auth/AuthLayoutContainer.tsx b/src/containers/auth/AuthLayoutContainer.tsx index 6a1fed0d7..6c9834ece 100644 --- a/src/containers/auth/AuthLayoutContainer.tsx +++ b/src/containers/auth/AuthLayoutContainer.tsx @@ -1,8 +1,8 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; import { ThemeProvider } from 'react-jss'; import { Outlet } from 'react-router-dom'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import AuthLayout from '../../components/auth/AuthLayout'; import AppLoader from '../../components/ui/AppLoader'; diff --git a/src/containers/auth/AuthReleaseNotesScreen.tsx b/src/containers/auth/AuthReleaseNotesScreen.tsx index c9d2286e1..3191ba139 100644 --- a/src/containers/auth/AuthReleaseNotesScreen.tsx +++ b/src/containers/auth/AuthReleaseNotesScreen.tsx @@ -1,16 +1,16 @@ -import { Component } from 'react'; import { inject, observer } from 'mobx-react'; +import { Component } from 'react'; -import { IntlShape, defineMessages, injectIntl } from 'react-intl'; -import Markdown from 'markdown-to-jsx'; import { mdiArrowLeftCircle } from '@mdi/js'; -import { openExternalUrl } from '../../helpers/url-helpers'; +import Markdown from 'markdown-to-jsx'; +import { type IntlShape, defineMessages, injectIntl } from 'react-intl'; import Icon from '../../components/ui/icon'; import { ferdiumVersion } from '../../environment-remote'; import { getFerdiumVersion, getUpdateInfoFromGH, } from '../../helpers/update-helpers'; +import { openExternalUrl } from '../../helpers/url-helpers'; const messages = defineMessages({ headline: { diff --git a/src/containers/auth/ChangeServerScreen.tsx b/src/containers/auth/ChangeServerScreen.tsx index db48479cc..00715a0a2 100644 --- a/src/containers/auth/ChangeServerScreen.tsx +++ b/src/containers/auth/ChangeServerScreen.tsx @@ -1,9 +1,9 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import { Component, type ReactElement } from 'react'; +import type { StoresProps } from '../../@types/ferdium-components.types'; +import type { Actions } from '../../actions/lib/actions'; import ChangeServer from '../../components/auth/ChangeServer'; -import { Actions } from '../../actions/lib/actions'; -import { RealStores } from '../../stores'; +import type { RealStores } from '../../stores'; interface IProps { stores?: RealStores; diff --git a/src/containers/auth/InviteScreen.tsx b/src/containers/auth/InviteScreen.tsx index 2dfc3c88c..ed656a33a 100644 --- a/src/containers/auth/InviteScreen.tsx +++ b/src/containers/auth/InviteScreen.tsx @@ -1,6 +1,6 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import { Component, type ReactElement } from 'react'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import Invite from '../../components/auth/Invite'; class InviteScreen extends Component { diff --git a/src/containers/auth/LockedScreen.tsx b/src/containers/auth/LockedScreen.tsx index a4cb43f73..cf4d5bd53 100644 --- a/src/containers/auth/LockedScreen.tsx +++ b/src/containers/auth/LockedScreen.tsx @@ -1,11 +1,11 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import { Component, type ReactElement } from 'react'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import Locked from '../../components/auth/Locked'; +import type { Actions } from '../../actions/lib/actions'; import { hash } from '../../helpers/password-helpers'; -import { Actions } from '../../actions/lib/actions'; -import { RealStores } from '../../stores'; +import type { RealStores } from '../../stores'; interface IProps { actions?: Actions; diff --git a/src/containers/auth/LoginScreen.tsx b/src/containers/auth/LoginScreen.tsx index 100736d19..89d002584 100644 --- a/src/containers/auth/LoginScreen.tsx +++ b/src/containers/auth/LoginScreen.tsx @@ -1,8 +1,8 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; -import { - StoresProps, +import { Component, type ReactElement } from 'react'; +import type { GlobalError, + StoresProps, } from '../../@types/ferdium-components.types'; import Login from '../../components/auth/Login'; diff --git a/src/containers/auth/PasswordScreen.tsx b/src/containers/auth/PasswordScreen.tsx index c7539f21e..e0f25db3e 100644 --- a/src/containers/auth/PasswordScreen.tsx +++ b/src/containers/auth/PasswordScreen.tsx @@ -1,6 +1,6 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import { Component, type ReactElement } from 'react'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import Password from '../../components/auth/Password'; class PasswordScreen extends Component { diff --git a/src/containers/auth/SetupAssistantScreen.tsx b/src/containers/auth/SetupAssistantScreen.tsx index 1a20ab002..d15b4e6e1 100644 --- a/src/containers/auth/SetupAssistantScreen.tsx +++ b/src/containers/auth/SetupAssistantScreen.tsx @@ -1,9 +1,9 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; -import { StoresProps } from '../../@types/ferdium-components.types'; -import sleep from '../../helpers/async-helpers'; +import { Component, type ReactElement } from 'react'; +import type { StoresProps } from '../../@types/ferdium-components.types'; +import type { ILegacyServices } from '../../@types/legacy-types'; import SetupAssistant from '../../components/auth/SetupAssistant'; -import { ILegacyServices } from '../../@types/legacy-types'; +import sleep from '../../helpers/async-helpers'; interface IProps extends StoresProps {} diff --git a/src/containers/auth/SignupScreen.tsx b/src/containers/auth/SignupScreen.tsx index bf7ffe778..cf5d8006e 100644 --- a/src/containers/auth/SignupScreen.tsx +++ b/src/containers/auth/SignupScreen.tsx @@ -1,9 +1,9 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; -import { - StoresProps, +import type { GlobalError, + StoresProps, } from '../../@types/ferdium-components.types'; import Signup from '../../components/auth/Signup'; diff --git a/src/containers/auth/WelcomeScreen.tsx b/src/containers/auth/WelcomeScreen.tsx index 1f3f50e4a..8a95ded80 100644 --- a/src/containers/auth/WelcomeScreen.tsx +++ b/src/containers/auth/WelcomeScreen.tsx @@ -1,6 +1,6 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import { Component, type ReactElement } from 'react'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import Welcome from '../../components/auth/Welcome'; interface IProps extends Partial {} diff --git a/src/containers/download-manager/DownloadManagerScreen.tsx b/src/containers/download-manager/DownloadManagerScreen.tsx index 5d395a180..cd9686f4d 100644 --- a/src/containers/download-manager/DownloadManagerScreen.tsx +++ b/src/containers/download-manager/DownloadManagerScreen.tsx @@ -1,6 +1,6 @@ -import { Component, ReactElement } from 'react'; -import ErrorBoundary from '../../components/util/ErrorBoundary'; +import { Component, type ReactElement } from 'react'; import DownloadManager from '../../components/downloadManager/DownloadManagerDashboard'; +import ErrorBoundary from '../../components/util/ErrorBoundary'; class DownloadManagerScreen extends Component { render(): ReactElement { diff --git a/src/containers/download-manager/DownloadManagerWindow.tsx b/src/containers/download-manager/DownloadManagerWindow.tsx index e13e51774..4aacd50b6 100644 --- a/src/containers/download-manager/DownloadManagerWindow.tsx +++ b/src/containers/download-manager/DownloadManagerWindow.tsx @@ -1,9 +1,9 @@ import { inject, observer } from 'mobx-react'; -import { Component, ReactPortal } from 'react'; +import { Component, type ReactPortal } from 'react'; import ReactDOM from 'react-dom'; import { Outlet } from 'react-router-dom'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import Layout from '../../components/downloadManager/DownloadManagerLayout'; import ErrorBoundary from '../../components/util/ErrorBoundary'; diff --git a/src/containers/layout/AppLayoutContainer.tsx b/src/containers/layout/AppLayoutContainer.tsx index 8748f1032..3f8aad0ac 100644 --- a/src/containers/layout/AppLayoutContainer.tsx +++ b/src/containers/layout/AppLayoutContainer.tsx @@ -1,15 +1,15 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; import { ThemeProvider } from 'react-jss'; import { Outlet } from 'react-router-dom'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import AppLayout from '../../components/layout/AppLayout'; import Sidebar from '../../components/layout/Sidebar'; import Services from '../../components/services/content/Services'; import AppLoader from '../../components/ui/AppLoader'; -import WorkspaceDrawer from '../../features/workspaces/components/WorkspaceDrawer'; import { workspaceStore } from '../../features/workspaces'; +import WorkspaceDrawer from '../../features/workspaces/components/WorkspaceDrawer'; interface IProps extends StoresProps {} diff --git a/src/containers/settings/AccountScreen.tsx b/src/containers/settings/AccountScreen.tsx index 55aa1e5c9..f1ef1ae3e 100644 --- a/src/containers/settings/AccountScreen.tsx +++ b/src/containers/settings/AccountScreen.tsx @@ -1,7 +1,7 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import AccountDashboard from '../../components/settings/account/AccountDashboard'; import ErrorBoundary from '../../components/util/ErrorBoundary'; diff --git a/src/containers/settings/EditServiceScreen.tsx b/src/containers/settings/EditServiceScreen.tsx index 3c65877c8..dde69ef2d 100644 --- a/src/containers/settings/EditServiceScreen.tsx +++ b/src/containers/settings/EditServiceScreen.tsx @@ -1,23 +1,27 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import { Params } from 'react-router-dom'; -import { StoresProps } from '../../@types/ferdium-components.types'; -import { IRecipe } from '../../models/Recipe'; -import Service from '../../models/Service'; -import { FormFields } from '../../@types/mobx-form.types'; -import Form from '../../lib/Form'; -import ServiceError from '../../components/settings/services/ServiceError'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import type { Params } from 'react-router-dom'; +import type { StoresProps } from '../../@types/ferdium-components.types'; +import type { FormFields } from '../../@types/mobx-form.types'; import EditServiceForm from '../../components/settings/services/EditServiceForm'; +import ServiceError from '../../components/settings/services/ServiceError'; import ErrorBoundary from '../../components/util/ErrorBoundary'; -import { required, url, oneRequired } from '../../helpers/validation-helpers'; -import { getSelectOptions } from '../../helpers/i18n-helpers'; +import withParams from '../../components/util/WithParams'; +import { DEFAULT_APP_SETTINGS, DEFAULT_SERVICE_SETTINGS } from '../../config'; import { config as proxyFeature } from '../../features/serviceProxy'; -import { SPELLCHECKER_LOCALES } from '../../i18n/languages'; +import { getSelectOptions } from '../../helpers/i18n-helpers'; +import { url, oneRequired, required } from '../../helpers/validation-helpers'; import globalMessages from '../../i18n/globalMessages'; -import { DEFAULT_APP_SETTINGS, DEFAULT_SERVICE_SETTINGS } from '../../config'; -import withParams from '../../components/util/WithParams'; +import { SPELLCHECKER_LOCALES } from '../../i18n/languages'; import { ifUndefined } from '../../jsUtils'; +import Form from '../../lib/Form'; +import type { IRecipe } from '../../models/Recipe'; +import type Service from '../../models/Service'; const messages = defineMessages({ name: { diff --git a/src/containers/settings/EditSettingsScreen.tsx b/src/containers/settings/EditSettingsScreen.tsx index 5d1b09296..b731ad50a 100644 --- a/src/containers/settings/EditSettingsScreen.tsx +++ b/src/containers/settings/EditSettingsScreen.tsx @@ -1,32 +1,36 @@ import { ipcRenderer } from 'electron'; -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; -import { FormFields } from '../../@types/mobx-form.types'; -import { StoresProps } from '../../@types/ferdium-components.types'; -import Form from '../../lib/Form'; -import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages'; +import type { StoresProps } from '../../@types/ferdium-components.types'; +import type { FormFields } from '../../@types/mobx-form.types'; import { DEFAULT_APP_SETTINGS, + GOOGLE_TRANSLATOR_LANGUAGES, HIBERNATION_STRATEGIES, - SIDEBAR_WIDTH, - SIDEBAR_SERVICES_LOCATION, ICON_SIZES, + LIBRETRANSLATE_TRANSLATOR_LANGUAGES, NAVIGATION_BAR_BEHAVIOURS, SEARCH_ENGINE_NAMES, - TRANSLATOR_ENGINE_NAMES, - GOOGLE_TRANSLATOR_LANGUAGES, - TRANSLATOR_ENGINE_GOOGLE, - LIBRETRANSLATE_TRANSLATOR_LANGUAGES, + SIDEBAR_SERVICES_LOCATION, + SIDEBAR_WIDTH, + SPLIT_COLUMNS_MAX, + SPLIT_COLUMNS_MIN, TODO_APPS, - WAKE_UP_STRATEGIES, + TRANSLATOR_ENGINE_GOOGLE, + TRANSLATOR_ENGINE_NAMES, WAKE_UP_HIBERNATION_STRATEGIES, - SPLIT_COLUMNS_MIN, - SPLIT_COLUMNS_MAX, + WAKE_UP_STRATEGIES, WEBRTC_IP_HANDLING_POLICY, } from '../../config'; import { isMac } from '../../environment'; +import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages'; +import Form from '../../lib/Form'; import { getSelectOptions } from '../../helpers/i18n-helpers'; import { hash } from '../../helpers/password-helpers'; @@ -35,8 +39,8 @@ import defaultUserAgent from '../../helpers/userAgent-helpers'; import EditSettingsForm from '../../components/settings/settings/EditSettingsForm'; import ErrorBoundary from '../../components/util/ErrorBoundary'; -import globalMessages from '../../i18n/globalMessages'; import { importExportURL } from '../../api/apiBase'; +import globalMessages from '../../i18n/globalMessages'; import { ifUndefined } from '../../jsUtils'; const debug = require('../../preload-safe-debug')('Ferdium:EditSettingsScreen'); diff --git a/src/containers/settings/EditUserScreen.tsx b/src/containers/settings/EditUserScreen.tsx index 62df170fc..27fe87988 100644 --- a/src/containers/settings/EditUserScreen.tsx +++ b/src/containers/settings/EditUserScreen.tsx @@ -1,14 +1,14 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; -import { IntlShape, defineMessages, injectIntl } from 'react-intl'; +import { Component, type ReactElement } from 'react'; +import { type IntlShape, defineMessages, injectIntl } from 'react-intl'; -import { StoresProps } from '../../@types/ferdium-components.types'; -import { FormFields } from '../../@types/mobx-form.types'; -import Form from '../../lib/Form'; +import type { StoresProps } from '../../@types/ferdium-components.types'; +import type { FormFields } from '../../@types/mobx-form.types'; import EditUserForm from '../../components/settings/user/EditUserForm'; import ErrorBoundary from '../../components/util/ErrorBoundary'; +import Form from '../../lib/Form'; -import { required, email, minLength } from '../../helpers/validation-helpers'; +import { email, minLength, required } from '../../helpers/validation-helpers'; const messages = defineMessages({ firstname: { diff --git a/src/containers/settings/InviteScreen.tsx b/src/containers/settings/InviteScreen.tsx index c67b892bd..057c36c86 100644 --- a/src/containers/settings/InviteScreen.tsx +++ b/src/containers/settings/InviteScreen.tsx @@ -1,7 +1,7 @@ -import { Component, ReactNode } from 'react'; import { inject, observer } from 'mobx-react'; +import { Component, type ReactNode } from 'react'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import Invite from '../../components/auth/Invite'; import ErrorBoundary from '../../components/util/ErrorBoundary'; diff --git a/src/containers/settings/RecipesScreen.tsx b/src/containers/settings/RecipesScreen.tsx index a46510d54..5540b602c 100644 --- a/src/containers/settings/RecipesScreen.tsx +++ b/src/containers/settings/RecipesScreen.tsx @@ -1,20 +1,20 @@ import { readJsonSync } from 'fs-extra'; -import { Component, ReactElement } from 'react'; -import { autorun, IReactionDisposer } from 'mobx'; +import { type IReactionDisposer, autorun } from 'mobx'; import { inject, observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; -import { Params } from 'react-router-dom'; -import Recipe from '../../models/Recipe'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import type { Params } from 'react-router-dom'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import RecipesDashboard from '../../components/settings/recipes/RecipesDashboard'; import ErrorBoundary from '../../components/util/ErrorBoundary'; +import withParams from '../../components/util/WithParams'; import { CUSTOM_WEBSITE_RECIPE_ID, FERDIUM_DEV_DOCS } from '../../config'; import { userDataRecipesPath } from '../../environment-remote'; -import { asarRecipesPath } from '../../helpers/asar-helpers'; import { communityRecipesStore } from '../../features/communityRecipes'; -import RecipePreview from '../../models/RecipePreview'; +import { asarRecipesPath } from '../../helpers/asar-helpers'; import { openPath } from '../../helpers/url-helpers'; -import withParams from '../../components/util/WithParams'; +import type Recipe from '../../models/Recipe'; +import RecipePreview from '../../models/RecipePreview'; interface IProps extends Partial { params: Params; diff --git a/src/containers/settings/ReleaseNotesScreen.tsx b/src/containers/settings/ReleaseNotesScreen.tsx index c3014d187..482364817 100644 --- a/src/containers/settings/ReleaseNotesScreen.tsx +++ b/src/containers/settings/ReleaseNotesScreen.tsx @@ -1,4 +1,4 @@ -import { Component, ReactElement } from 'react'; +import { Component, type ReactElement } from 'react'; import ReleaseNotes from '../../components/settings/releaseNotes/ReleaseNotesDashboard'; import ErrorBoundary from '../../components/util/ErrorBoundary'; diff --git a/src/containers/settings/ReleaseNotesWindow.tsx b/src/containers/settings/ReleaseNotesWindow.tsx index 8215c9f36..a12c821e7 100644 --- a/src/containers/settings/ReleaseNotesWindow.tsx +++ b/src/containers/settings/ReleaseNotesWindow.tsx @@ -1,9 +1,9 @@ import { inject, observer } from 'mobx-react'; -import { Component, ReactPortal } from 'react'; +import { Component, type ReactPortal } from 'react'; import ReactDOM from 'react-dom'; import { Outlet } from 'react-router-dom'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import Layout from '../../components/settings/releaseNotes/ReleaseNotesLayout'; import ErrorBoundary from '../../components/util/ErrorBoundary'; diff --git a/src/containers/settings/ServicesScreen.tsx b/src/containers/settings/ServicesScreen.tsx index 6b648f038..b8f115e9a 100644 --- a/src/containers/settings/ServicesScreen.tsx +++ b/src/containers/settings/ServicesScreen.tsx @@ -1,6 +1,6 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import { Component, type ReactElement } from 'react'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import ServicesDashboard from '../../components/settings/services/ServicesDashboard'; import ErrorBoundary from '../../components/util/ErrorBoundary'; diff --git a/src/containers/settings/SettingsWindow.tsx b/src/containers/settings/SettingsWindow.tsx index d2cdf3eb3..67d6c8969 100644 --- a/src/containers/settings/SettingsWindow.tsx +++ b/src/containers/settings/SettingsWindow.tsx @@ -1,10 +1,10 @@ import { inject, observer } from 'mobx-react'; -import { Component, ReactElement, ReactPortal } from 'react'; +import { Component, type ReactElement, type ReactPortal } from 'react'; import ReactDOM from 'react-dom'; import { Outlet } from 'react-router-dom'; -import { StoresProps } from '../../@types/ferdium-components.types'; -import Navigation from '../../components/settings/navigation/SettingsNavigation'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import Layout from '../../components/settings/SettingsLayout'; +import Navigation from '../../components/settings/navigation/SettingsNavigation'; import ErrorBoundary from '../../components/util/ErrorBoundary'; import { workspaceStore } from '../../features/workspaces'; diff --git a/src/containers/settings/SupportScreen.tsx b/src/containers/settings/SupportScreen.tsx index c2f25ad8c..4c50869bb 100644 --- a/src/containers/settings/SupportScreen.tsx +++ b/src/containers/settings/SupportScreen.tsx @@ -1,4 +1,4 @@ -import { Component, ReactElement } from 'react'; +import { Component, type ReactElement } from 'react'; import SupportFerdium from '../../components/settings/supportFerdium/SupportFerdiumDashboard'; import ErrorBoundary from '../../components/util/ErrorBoundary'; diff --git a/src/containers/settings/TeamScreen.tsx b/src/containers/settings/TeamScreen.tsx index 9d155f01c..ff2a1fb43 100644 --- a/src/containers/settings/TeamScreen.tsx +++ b/src/containers/settings/TeamScreen.tsx @@ -1,7 +1,7 @@ -import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; -import { StoresProps } from '../../@types/ferdium-components.types'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import TeamDashboard from '../../components/settings/team/TeamDashboard'; import ErrorBoundary from '../../components/util/ErrorBoundary'; diff --git a/src/electron-util.ts b/src/electron-util.ts index 6250366dc..697684232 100644 --- a/src/electron-util.ts +++ b/src/electron-util.ts @@ -1,7 +1,7 @@ // Enhanced from: https://github.com/dertieran/electron-util/blob/replace-remote/source/api.js +import { enable, initialize } from '@electron/remote/main'; import * as electron from 'electron'; -import { initialize, enable } from '@electron/remote/main'; export const initializeRemote = (): void => { if (process.type !== 'browser') { diff --git a/src/electron/Settings.ts b/src/electron/Settings.ts index 7bb12338e..e15a2e65c 100644 --- a/src/electron/Settings.ts +++ b/src/electron/Settings.ts @@ -1,5 +1,5 @@ +import { outputJsonSync, pathExistsSync, readJsonSync } from 'fs-extra'; import { makeObservable, observable, toJS } from 'mobx'; -import { pathExistsSync, outputJsonSync, readJsonSync } from 'fs-extra'; import { userDataPath } from '../environment-remote'; const debug = require('../preload-safe-debug')('Ferdium:Settings'); diff --git a/src/electron/deepLinking.ts b/src/electron/deepLinking.ts index 14cb8e5b1..33ec025f7 100644 --- a/src/electron/deepLinking.ts +++ b/src/electron/deepLinking.ts @@ -1,4 +1,4 @@ -import { BrowserWindow } from 'electron'; +import type { BrowserWindow } from 'electron'; import { protocolClient } from '../environment-remote'; export default function handleDeepLink( diff --git a/src/electron/ipc-api/appIndicator.ts b/src/electron/ipc-api/appIndicator.ts index f4a5ba480..2837a75f0 100644 --- a/src/electron/ipc-api/appIndicator.ts +++ b/src/electron/ipc-api/appIndicator.ts @@ -1,8 +1,8 @@ import { join } from 'node:path'; -import { app, ipcMain, BrowserWindow } from 'electron'; +import { type BrowserWindow, app, ipcMain } from 'electron'; import { autorun } from 'mobx'; -import { isMac, isWindows, isLinux } from '../../environment'; -import TrayIcon from '../../lib/Tray'; +import { isLinux, isMac, isWindows } from '../../environment'; +import type TrayIcon from '../../lib/Tray'; const INDICATOR_TASKBAR = 'taskbar'; const FILE_EXTENSION = isWindows ? 'ico' : 'png'; diff --git a/src/electron/ipc-api/autoUpdate.ts b/src/electron/ipc-api/autoUpdate.ts index 14214aacb..775daf602 100644 --- a/src/electron/ipc-api/autoUpdate.ts +++ b/src/electron/ipc-api/autoUpdate.ts @@ -1,4 +1,4 @@ -import { ipcMain, BrowserWindow } from 'electron'; +import { BrowserWindow, ipcMain } from 'electron'; import { autoUpdater } from 'electron-updater'; import { appEvents } from '../..'; diff --git a/src/electron/ipc-api/download.ts b/src/electron/ipc-api/download.ts index 44eec9fc1..d749cb889 100644 --- a/src/electron/ipc-api/download.ts +++ b/src/electron/ipc-api/download.ts @@ -1,5 +1,5 @@ -import { PathLike } from 'node:fs'; -import { ipcMain, dialog, BrowserWindow } from 'electron'; +import type { PathLike } from 'node:fs'; +import { BrowserWindow, dialog, ipcMain } from 'electron'; import { download } from 'electron-dl'; import { writeFileSync } from 'fs-extra'; diff --git a/src/electron/ipc-api/focusState.ts b/src/electron/ipc-api/focusState.ts index 01aa1a971..bfda92b1e 100644 --- a/src/electron/ipc-api/focusState.ts +++ b/src/electron/ipc-api/focusState.ts @@ -1,4 +1,4 @@ -import { BrowserWindow } from 'electron'; +import type { BrowserWindow } from 'electron'; export default (params: { mainWindow: BrowserWindow }) => { params.mainWindow.on('focus', () => { diff --git a/src/electron/ipc-api/index.ts b/src/electron/ipc-api/index.ts index b57a9d881..48c6d142c 100644 --- a/src/electron/ipc-api/index.ts +++ b/src/electron/ipc-api/index.ts @@ -1,15 +1,15 @@ -import { BrowserWindow } from 'electron'; -import autoUpdate from './autoUpdate'; -import settings from './settings'; -import sessionStorage from './sessionStorage'; +import type { BrowserWindow } from 'electron'; +import type TrayIcon from '../../lib/Tray'; import appIndicator from './appIndicator'; -import download from './download'; -import processManager from './processManager'; -import localServer from './localServer'; -import languageDetect from './languageDetect'; +import autoUpdate from './autoUpdate'; import dnd from './dnd'; +import download from './download'; import focusState from './focusState'; -import TrayIcon from '../../lib/Tray'; +import languageDetect from './languageDetect'; +import localServer from './localServer'; +import processManager from './processManager'; +import sessionStorage from './sessionStorage'; +import settings from './settings'; export default (params: { mainWindow: BrowserWindow; diff --git a/src/electron/ipc-api/localServer.ts b/src/electron/ipc-api/localServer.ts index bcc2f9d78..99c40dfd6 100644 --- a/src/electron/ipc-api/localServer.ts +++ b/src/electron/ipc-api/localServer.ts @@ -1,6 +1,6 @@ import { randomBytes } from 'node:crypto'; import { createServer } from 'node:net'; -import { ipcMain, BrowserWindow } from 'electron'; +import { type BrowserWindow, ipcMain } from 'electron'; import { LOCAL_HOSTNAME, LOCAL_PORT } from '../../config'; import { userDataPath } from '../../environment-remote'; import { server } from '../../internal-server/start'; diff --git a/src/electron/ipc-api/processManager.ts b/src/electron/ipc-api/processManager.ts index 96501eeaa..6e9069666 100644 --- a/src/electron/ipc-api/processManager.ts +++ b/src/electron/ipc-api/processManager.ts @@ -1,5 +1,5 @@ -import { ipcMain } from 'electron'; import { openProcessManager } from '@krisdages/electron-process-manager'; +import { ipcMain } from 'electron'; export default () => { ipcMain.on('openProcessManager', () => { diff --git a/src/electron/ipc-api/sessionStorage.ts b/src/electron/ipc-api/sessionStorage.ts index 39e84d42b..0f32cd6de 100644 --- a/src/electron/ipc-api/sessionStorage.ts +++ b/src/electron/ipc-api/sessionStorage.ts @@ -1,4 +1,4 @@ -import { ipcMain, Session, session } from 'electron'; +import { type Session, ipcMain, session } from 'electron'; import { TODOS_PARTITION_ID } from '../../config'; diff --git a/src/electron/ipc-api/settings.ts b/src/electron/ipc-api/settings.ts index 72de6866d..3cc001080 100644 --- a/src/electron/ipc-api/settings.ts +++ b/src/electron/ipc-api/settings.ts @@ -1,4 +1,4 @@ -import { ipcMain, BrowserWindow, Settings } from 'electron'; +import { type BrowserWindow, type Settings, ipcMain } from 'electron'; export default (params: { mainWindow: BrowserWindow; settings: Settings }) => { ipcMain.on('getAppSettings', (_event, type) => { diff --git a/src/electron/macOSPermissions.ts b/src/electron/macOSPermissions.ts index 2ad3d6cd0..90f0f4028 100644 --- a/src/electron/macOSPermissions.ts +++ b/src/electron/macOSPermissions.ts @@ -1,6 +1,6 @@ import { dirname } from 'node:path'; -import { systemPreferences, BrowserWindow, dialog } from 'electron'; -import { pathExistsSync, mkdirSync, writeFileSync } from 'fs-extra'; +import { type BrowserWindow, dialog, systemPreferences } from 'electron'; +import { mkdirSync, pathExistsSync, writeFileSync } from 'fs-extra'; import macosVersion from 'macos-version'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/prefer-ts-expect-error // @ts-ignore diff --git a/src/enforce-macos-app-location.ts b/src/enforce-macos-app-location.ts index 222127acf..298ef4d09 100644 --- a/src/enforce-macos-app-location.ts +++ b/src/enforce-macos-app-location.ts @@ -1,8 +1,8 @@ // Enhanced from: https://github.com/dertieran/electron-util/blob/replace-remote/source/enforce-macos-app-location.js +import { api } from './electron-util'; import { isMac } from './environment'; import { isDevMode } from './environment-remote'; -import { api } from './electron-util'; export default function enforceMacOSAppLocation(): void { if (isDevMode || !isMac || api.app.isInApplicationsFolder()) { diff --git a/src/environment-remote.ts b/src/environment-remote.ts index 346a75e97..629131658 100644 --- a/src/environment-remote.ts +++ b/src/environment-remote.ts @@ -1,16 +1,16 @@ import { join } from 'node:path'; -import { api as electronApi } from './electron-util'; import { - LIVE_FERDIUM_API, - DEV_FRANZ_API, - LOCAL_API, - LOCAL_API_WEBSITE, DEV_API_FRANZ_WEBSITE, + DEV_FRANZ_API, + DEV_WS_API, LIVE_API_FERDIUM_WEBSITE, + LIVE_FERDIUM_API, LIVE_WS_API, + LOCAL_API, + LOCAL_API_WEBSITE, LOCAL_WS_API, - DEV_WS_API, } from './config'; +import { api as electronApi } from './electron-util'; import { isWindows } from './environment'; export const { app } = electronApi; diff --git a/src/features/appearance/index.ts b/src/features/appearance/index.ts index 46403275e..049080505 100644 --- a/src/features/appearance/index.ts +++ b/src/features/appearance/index.ts @@ -3,14 +3,14 @@ import { reaction } from 'mobx'; import TopBarProgress from 'react-topbar-progress-indicator'; import { pathExistsSync, readFileSync } from 'fs-extra'; -import { isWindows, isLinux } from '../../environment'; import { DEFAULT_APP_SETTINGS, - iconSizeBias, - SIDEBAR_SERVICES_LOCATION_TOPLEFT, - SIDEBAR_SERVICES_LOCATION_CENTER, SIDEBAR_SERVICES_LOCATION_BOTTOMRIGHT, + SIDEBAR_SERVICES_LOCATION_CENTER, + SIDEBAR_SERVICES_LOCATION_TOPLEFT, + iconSizeBias, } from '../../config'; +import { isLinux, isWindows } from '../../environment'; import { userDataPath } from '../../environment-remote'; const STYLE_ELEMENT_ID = 'custom-appearance-style'; diff --git a/src/features/basicAuth/Component.tsx b/src/features/basicAuth/Component.tsx index e20f7641b..7c901344d 100644 --- a/src/features/basicAuth/Component.tsx +++ b/src/features/basicAuth/Component.tsx @@ -1,17 +1,21 @@ -import { Component, FormEvent, ReactElement } from 'react'; -import injectSheet, { WithStylesProps } from 'react-jss'; -import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import classnames from 'classnames'; import { noop } from 'lodash'; +import { observer } from 'mobx-react'; +import { Component, type FormEvent, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import injectSheet, { type WithStylesProps } from 'react-jss'; import Modal from '../../components/ui/Modal'; -import Input from '../../components/ui/input/index'; import Button from '../../components/ui/button'; -import { state, resetState, sendCredentials, cancelLogin } from './store'; +import { H1 } from '../../components/ui/headline'; +import Input from '../../components/ui/input/index'; +import globalMessages from '../../i18n/globalMessages'; import Form from './Form'; +import { cancelLogin, resetState, sendCredentials, state } from './store'; import styles from './styles'; -import globalMessages from '../../i18n/globalMessages'; -import { H1 } from '../../components/ui/headline'; const messages = defineMessages({ signIn: { diff --git a/src/features/basicAuth/index.ts b/src/features/basicAuth/index.ts index ae698cba8..bedb57309 100644 --- a/src/features/basicAuth/index.ts +++ b/src/features/basicAuth/index.ts @@ -1,4 +1,4 @@ -import { AuthInfo, BrowserWindow, ipcRenderer } from 'electron'; +import { type AuthInfo, type BrowserWindow, ipcRenderer } from 'electron'; import { state as ModalState } from './store'; diff --git a/src/features/basicAuth/mainIpcHandler.ts b/src/features/basicAuth/mainIpcHandler.ts index d9cedc974..d46657748 100644 --- a/src/features/basicAuth/mainIpcHandler.ts +++ b/src/features/basicAuth/mainIpcHandler.ts @@ -1,4 +1,4 @@ -import { BrowserWindow } from 'electron'; +import type { BrowserWindow } from 'electron'; const debug = require('../../preload-safe-debug')( 'Ferdium:feature:basicAuth:main', diff --git a/src/features/basicAuth/store.ts b/src/features/basicAuth/store.ts index 0fc289916..489eac087 100644 --- a/src/features/basicAuth/store.ts +++ b/src/features/basicAuth/store.ts @@ -1,5 +1,5 @@ -import { observable } from 'mobx'; import { ipcRenderer } from 'electron'; +import { observable } from 'mobx'; const debug = require('../../preload-safe-debug')('Ferdium:feature:basicAuth'); diff --git a/src/features/publishDebugInfo/Component.tsx b/src/features/publishDebugInfo/Component.tsx index 3c6729ba0..8b38ba5af 100644 --- a/src/features/publishDebugInfo/Component.tsx +++ b/src/features/publishDebugInfo/Component.tsx @@ -1,15 +1,19 @@ import { inject, observer } from 'mobx-react'; -import { Component, ReactElement } from 'react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import withStyles, { WithStylesProps } from 'react-jss'; -import { StoresProps } from '../../@types/ferdium-components.types'; -import { state as ModalState } from './store'; -import { H1 } from '../../components/ui/headline'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import { sendAuthRequest } from '../../api/utils/auth'; +import Modal from '../../components/ui/Modal'; import Button from '../../components/ui/button'; +import { H1 } from '../../components/ui/headline'; import Input from '../../components/ui/input/index'; -import Modal from '../../components/ui/Modal'; import { DEBUG_API } from '../../config'; +import { state as ModalState } from './store'; const debug = require('../../preload-safe-debug')( 'Ferdium:feature:publishDebugInfo', diff --git a/src/features/quickSwitch/Component.tsx b/src/features/quickSwitch/Component.tsx index 7f6ad6432..a5c102386 100644 --- a/src/features/quickSwitch/Component.tsx +++ b/src/features/quickSwitch/Component.tsx @@ -1,15 +1,24 @@ -import { ChangeEvent, Component, createRef, ReactElement } from 'react'; import { getCurrentWindow } from '@electron/remote'; -import { observer, inject } from 'mobx-react'; -import { reaction } from 'mobx'; -import withStyles, { WithStylesProps } from 'react-jss'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { compact, invoke, noop } from 'lodash'; -import { StoresProps } from '../../@types/ferdium-components.types'; -import Service from '../../models/Service'; -import Input from '../../components/ui/input/index'; -import { H1 } from '../../components/ui/headline'; +import { reaction } from 'mobx'; +import { inject, observer } from 'mobx-react'; +import { + type ChangeEvent, + Component, + type ReactElement, + createRef, +} from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; +import type { StoresProps } from '../../@types/ferdium-components.types'; import Modal from '../../components/ui/Modal'; +import { H1 } from '../../components/ui/headline'; +import Input from '../../components/ui/input/index'; +import type Service from '../../models/Service'; import { state as ModalState } from './store'; const messages = defineMessages({ diff --git a/src/features/serviceProxy/index.ts b/src/features/serviceProxy/index.ts index c98ae00a7..68415c31e 100644 --- a/src/features/serviceProxy/index.ts +++ b/src/features/serviceProxy/index.ts @@ -1,5 +1,5 @@ -import { autorun, action, observable } from 'mobx'; import { session } from '@electron/remote'; +import { action, autorun, observable } from 'mobx'; const debug = require('../../preload-safe-debug')( 'Ferdium:feature:serviceProxy', diff --git a/src/features/todos/actions.ts b/src/features/todos/actions.ts index 5273cc858..c2000752f 100644 --- a/src/features/todos/actions.ts +++ b/src/features/todos/actions.ts @@ -1,5 +1,5 @@ -import { Webview } from 'react-electron-web-view'; import PropTypes from 'prop-types'; +import type { Webview } from 'react-electron-web-view'; import { createActionsFromDefinitions } from '../../actions/lib/actions'; export interface TodoClientMessage { diff --git a/src/features/todos/components/TodosWebview.tsx b/src/features/todos/components/TodosWebview.tsx index 1ccfa3cdd..f9493d519 100644 --- a/src/features/todos/components/TodosWebview.tsx +++ b/src/features/todos/components/TodosWebview.tsx @@ -1,10 +1,15 @@ -import { Component, createRef, ReactElement, MouseEvent } from 'react'; +import classnames from 'classnames'; import { observer } from 'mobx-react'; -import withStyles, { WithStylesProps } from 'react-jss'; +import { + Component, + type MouseEvent, + type ReactElement, + createRef, +} from 'react'; import Webview from 'react-electron-web-view'; -import classnames from 'classnames'; +import withStyles, { type WithStylesProps } from 'react-jss'; import { TODOS_PARTITION_ID } from '../../../config'; -import { TodoClientMessage } from '../actions'; +import type { TodoClientMessage } from '../actions'; const styles = theme => ({ root: { diff --git a/src/features/todos/containers/TodosScreen.tsx b/src/features/todos/containers/TodosScreen.tsx index 8941a4b39..29ecd5a0e 100644 --- a/src/features/todos/containers/TodosScreen.tsx +++ b/src/features/todos/containers/TodosScreen.tsx @@ -1,11 +1,11 @@ -import { Component, ReactElement } from 'react'; -import { observer, inject } from 'mobx-react'; -import TodosWebview from '../components/TodosWebview'; -import ErrorBoundary from '../../../components/util/ErrorBoundary'; +import { inject, observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; import { todosStore } from '..'; +import ErrorBoundary from '../../../components/util/ErrorBoundary'; import { TODOS_MIN_WIDTH } from '../../../config'; +import type { RealStores } from '../../../stores'; import { todoActions } from '../actions'; -import { RealStores } from '../../../stores'; +import TodosWebview from '../components/TodosWebview'; interface IProps { stores?: RealStores; diff --git a/src/features/todos/store.ts b/src/features/todos/store.ts index 50704c73f..b3f7195e7 100644 --- a/src/features/todos/store.ts +++ b/src/features/todos/store.ts @@ -1,25 +1,26 @@ -import { Webview } from 'react-electron-web-view'; -import { computed, action, observable, makeObservable } from 'mobx'; +import { action, computed, makeObservable, observable } from 'mobx'; import localStorage from 'mobx-localstorage'; -import { Actions } from '../../actions/lib/actions'; +import type { Webview } from 'react-electron-web-view'; +import type { Actions } from '../../actions/lib/actions'; -import { ThemeType } from '../../themes'; -import { todoActions } from './actions'; import { CUSTOM_TODO_SERVICE, - TODO_SERVICE_RECIPE_IDS, + DEFAULT_IS_TODO_FEATURE_ENABLED_BY_USER, + DEFAULT_TODOS_VISIBLE, DEFAULT_TODOS_WIDTH, TODOS_MIN_WIDTH, - DEFAULT_TODOS_VISIBLE, - DEFAULT_IS_TODO_FEATURE_ENABLED_BY_USER, + TODO_SERVICE_RECIPE_IDS, } from '../../config'; import { isValidExternalURL } from '../../helpers/url-helpers'; -import FeatureStore from '../utils/FeatureStore'; -import Reaction, { createReactions } from '../../stores/lib/Reaction'; +import { ifUndefined } from '../../jsUtils'; +import UserAgent from '../../models/UserAgent'; +import type Reaction from '../../stores/lib/Reaction'; +import { createReactions } from '../../stores/lib/Reaction'; +import { ThemeType } from '../../themes'; import { createActionBindings } from '../utils/ActionBinding'; +import FeatureStore from '../utils/FeatureStore'; +import { todoActions } from './actions'; import { IPC, TODOS_ROUTES } from './constants'; -import UserAgent from '../../models/UserAgent'; -import { ifUndefined } from '../../jsUtils'; const debug = require('../../preload-safe-debug')( 'Ferdium:feature:todos:store', diff --git a/src/features/utils/FeatureStore.ts b/src/features/utils/FeatureStore.ts index 2bdd167f3..df82a7bd0 100644 --- a/src/features/utils/FeatureStore.ts +++ b/src/features/utils/FeatureStore.ts @@ -1,4 +1,4 @@ -import Reaction from '../../stores/lib/Reaction'; +import type Reaction from '../../stores/lib/Reaction'; export default class FeatureStore { _actions: any = []; diff --git a/src/features/webControls/components/WebControls.tsx b/src/features/webControls/components/WebControls.tsx index 54f45c843..aee568a7d 100644 --- a/src/features/webControls/components/WebControls.tsx +++ b/src/features/webControls/components/WebControls.tsx @@ -1,14 +1,18 @@ -import { createRef, Component, ReactElement, RefObject } from 'react'; -import { observer } from 'mobx-react'; -import withStyles, { WithStylesProps } from 'react-jss'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { - mdiReload, - mdiArrowRight, mdiArrowLeft, - mdiHomeOutline, + mdiArrowRight, mdiEarth, + mdiHomeOutline, + mdiReload, } from '@mdi/js'; +import { observer } from 'mobx-react'; +import { Component, type ReactElement, type RefObject, createRef } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; import { Tooltip as ReactTooltip } from 'react-tooltip'; import Icon from '../../../components/ui/icon'; diff --git a/src/features/webControls/containers/WebControlsScreen.tsx b/src/features/webControls/containers/WebControlsScreen.tsx index f6f1cddb8..b492264bf 100644 --- a/src/features/webControls/containers/WebControlsScreen.tsx +++ b/src/features/webControls/containers/WebControlsScreen.tsx @@ -1,17 +1,17 @@ -import { Component, ReactElement } from 'react'; -import { observer, inject } from 'mobx-react'; import { - autorun, + type IReactionDisposer, action, + autorun, makeObservable, observable, - IReactionDisposer, } from 'mobx'; -import ElectronWebView from 'react-electron-web-view'; -import WebControls from '../components/WebControls'; -import Service from '../../../models/Service'; +import { inject, observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; +import type ElectronWebView from 'react-electron-web-view'; +import type { StoresProps } from '../../../@types/ferdium-components.types'; import { SEARCH_ENGINE_URLS } from '../../../config'; -import { StoresProps } from '../../../@types/ferdium-components.types'; +import type Service from '../../../models/Service'; +import WebControls from '../components/WebControls'; const URL_EVENTS = [ 'load-commit', diff --git a/src/features/workspaces/actions.ts b/src/features/workspaces/actions.ts index cfe4f9e8e..7970c042c 100644 --- a/src/features/workspaces/actions.ts +++ b/src/features/workspaces/actions.ts @@ -1,6 +1,6 @@ import PropTypes from 'prop-types'; -import Workspace from './models/Workspace'; import { createActionsFromDefinitions } from '../../actions/lib/actions'; +import Workspace from './models/Workspace'; type WorkspaceArg = { workspace: Workspace }; diff --git a/src/features/workspaces/api.ts b/src/features/workspaces/api.ts index b8bb703cd..6ae71a930 100644 --- a/src/features/workspaces/api.ts +++ b/src/features/workspaces/api.ts @@ -1,8 +1,8 @@ import { pick } from 'lodash'; +import apiBase from '../../api/apiBase'; import { sendAuthRequest } from '../../api/utils/auth'; import Request from '../../stores/lib/Request'; import Workspace from './models/Workspace'; -import apiBase from '../../api/apiBase'; const debug = require('../../preload-safe-debug')( 'Ferdium:feature:workspaces:api', diff --git a/src/features/workspaces/components/CreateWorkspaceForm.tsx b/src/features/workspaces/components/CreateWorkspaceForm.tsx index b72052fe2..0c365564a 100644 --- a/src/features/workspaces/components/CreateWorkspaceForm.tsx +++ b/src/features/workspaces/components/CreateWorkspaceForm.tsx @@ -1,11 +1,15 @@ -import { Component, ReactElement } from 'react'; import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import withStyles, { WithStylesProps } from 'react-jss'; -import Input from '../../../components/ui/input/index'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; import Button from '../../../components/ui/button'; -import Form from '../../../lib/Form'; +import Input from '../../../components/ui/input/index'; import { required } from '../../../helpers/validation-helpers'; +import Form from '../../../lib/Form'; import { workspaceStore } from '../index'; const messages = defineMessages({ diff --git a/src/features/workspaces/components/EditWorkspaceForm.tsx b/src/features/workspaces/components/EditWorkspaceForm.tsx index d902d29be..18e7c251e 100644 --- a/src/features/workspaces/components/EditWorkspaceForm.tsx +++ b/src/features/workspaces/components/EditWorkspaceForm.tsx @@ -1,21 +1,25 @@ -import { Component, ReactElement } from 'react'; +import { noop } from 'lodash'; import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; import { Link } from 'react-router-dom'; -import withStyles, { WithStylesProps } from 'react-jss'; -import { noop } from 'lodash'; +import Button from '../../../components/ui/button'; +import { H2 } from '../../../components/ui/headline'; import Infobox from '../../../components/ui/infobox/index'; import Input from '../../../components/ui/input'; -import Button from '../../../components/ui/button'; -import Workspace from '../models/Workspace'; -import Service from '../../../models/Service'; -import Form from '../../../lib/Form'; +import Toggle from '../../../components/ui/toggle'; +import { KEEP_WS_LOADED_USID } from '../../../config'; import { required } from '../../../helpers/validation-helpers'; +import Form from '../../../lib/Form'; +import type Service from '../../../models/Service'; +import type Request from '../../../stores/lib/Request'; +import type Workspace from '../models/Workspace'; import WorkspaceServiceListItem from './WorkspaceServiceListItem'; -import Request from '../../../stores/lib/Request'; -import { KEEP_WS_LOADED_USID } from '../../../config'; -import Toggle from '../../../components/ui/toggle'; -import { H2 } from '../../../components/ui/headline'; const messages = defineMessages({ buttonDelete: { diff --git a/src/features/workspaces/components/WorkspaceDrawer.tsx b/src/features/workspaces/components/WorkspaceDrawer.tsx index 3e05cb7de..2826b741a 100644 --- a/src/features/workspaces/components/WorkspaceDrawer.tsx +++ b/src/features/workspaces/components/WorkspaceDrawer.tsx @@ -1,17 +1,21 @@ -import { Component, ReactElement } from 'react'; +import { mdiCog, mdiPlusBox } from '@mdi/js'; +import { noop } from 'lodash'; import { observer } from 'mobx-react'; -import withStyles, { WithStylesProps } from 'react-jss'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; import { Tooltip as ReactTooltip } from 'react-tooltip'; -import { mdiPlusBox, mdiCog } from '@mdi/js'; -import { noop } from 'lodash'; import { H1 } from '../../../components/ui/headline'; import Icon from '../../../components/ui/icon'; -import WorkspaceDrawerItem from './WorkspaceDrawerItem'; import workspaceActions from '../actions'; -import { workspaceStore } from '../index'; import { getUserWorkspacesRequest } from '../api'; -import Workspace from '../models/Workspace'; +import { workspaceStore } from '../index'; +import type Workspace from '../models/Workspace'; +import WorkspaceDrawerItem from './WorkspaceDrawerItem'; const messages = defineMessages({ headline: { diff --git a/src/features/workspaces/components/WorkspaceDrawerItem.tsx b/src/features/workspaces/components/WorkspaceDrawerItem.tsx index 85ed4c38c..1e4b57dba 100644 --- a/src/features/workspaces/components/WorkspaceDrawerItem.tsx +++ b/src/features/workspaces/components/WorkspaceDrawerItem.tsx @@ -1,11 +1,15 @@ -import { Component, MouseEventHandler, ReactElement } from 'react'; -import { observer } from 'mobx-react'; -import withStyles, { WithStylesProps } from 'react-jss'; +import { Menu } from '@electron/remote'; import classnames from 'classnames'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import type { MenuItemConstructorOptions } from 'electron'; import { noop } from 'lodash'; -import { Menu } from '@electron/remote'; -import { MenuItemConstructorOptions } from 'electron'; +import { observer } from 'mobx-react'; +import { Component, type MouseEventHandler, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; import { altKey, cmdOrCtrlShortcutKey } from '../../../environment'; import { acceleratorString } from '../../../jsUtils'; diff --git a/src/features/workspaces/components/WorkspaceItem.tsx b/src/features/workspaces/components/WorkspaceItem.tsx index 36c6ed2f5..f24e6a85d 100644 --- a/src/features/workspaces/components/WorkspaceItem.tsx +++ b/src/features/workspaces/components/WorkspaceItem.tsx @@ -1,8 +1,8 @@ -import { Component, ReactElement } from 'react'; -import { observer } from 'mobx-react'; -import withStyles, { WithStylesProps } from 'react-jss'; import { noop } from 'lodash'; -import Workspace from '../models/Workspace'; +import { observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; +import withStyles, { type WithStylesProps } from 'react-jss'; +import type Workspace from '../models/Workspace'; const styles = theme => ({ row: { diff --git a/src/features/workspaces/components/WorkspaceServiceListItem.tsx b/src/features/workspaces/components/WorkspaceServiceListItem.tsx index 9034be37c..6f61f8a51 100644 --- a/src/features/workspaces/components/WorkspaceServiceListItem.tsx +++ b/src/features/workspaces/components/WorkspaceServiceListItem.tsx @@ -1,11 +1,11 @@ -import { Component, ReactElement } from 'react'; -import { observer } from 'mobx-react'; -import withStyles, { WithStylesProps } from 'react-jss'; import classnames from 'classnames'; import { noop } from 'lodash'; -import Toggle from '../../../components/ui/toggle'; +import { observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; +import withStyles, { type WithStylesProps } from 'react-jss'; import ServiceIcon from '../../../components/ui/ServiceIcon'; -import Service from '../../../models/Service'; +import Toggle from '../../../components/ui/toggle'; +import type Service from '../../../models/Service'; const styles = theme => ({ listItem: { diff --git a/src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx b/src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx index 19dd9037d..7fddd8553 100644 --- a/src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx +++ b/src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx @@ -1,11 +1,15 @@ -import { Component, ReactElement } from 'react'; -import { observer } from 'mobx-react'; -import withStyles, { WithStylesProps } from 'react-jss'; import classnames from 'classnames'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; +import { observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; import Loader from '../../../components/ui/loader'; -import { workspaceStore } from '../index'; import { DEFAULT_LOADER_COLOR } from '../../../config'; +import { workspaceStore } from '../index'; const messages = defineMessages({ switchingTo: { diff --git a/src/features/workspaces/components/WorkspacesDashboard.tsx b/src/features/workspaces/components/WorkspacesDashboard.tsx index 0a417bffd..8fb2cf923 100644 --- a/src/features/workspaces/components/WorkspacesDashboard.tsx +++ b/src/features/workspaces/components/WorkspacesDashboard.tsx @@ -1,15 +1,19 @@ -import { Component, ReactElement } from 'react'; import { observer } from 'mobx-react'; -import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; -import withStyles, { WithStylesProps } from 'react-jss'; +import { Component, type ReactElement } from 'react'; +import { + type WrappedComponentProps, + defineMessages, + injectIntl, +} from 'react-intl'; +import withStyles, { type WithStylesProps } from 'react-jss'; +import Appear from '../../../components/ui/effects/Appear'; +import { H1 } from '../../../components/ui/headline'; import Infobox from '../../../components/ui/infobox/index'; import Loader from '../../../components/ui/loader'; -import WorkspaceItem from './WorkspaceItem'; +import type Request from '../../../stores/lib/Request'; +import type Workspace from '../models/Workspace'; import CreateWorkspaceForm from './CreateWorkspaceForm'; -import Request from '../../../stores/lib/Request'; -import Appear from '../../../components/ui/effects/Appear'; -import { H1 } from '../../../components/ui/headline'; -import Workspace from '../models/Workspace'; +import WorkspaceItem from './WorkspaceItem'; const messages = defineMessages({ headline: { diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.tsx b/src/features/workspaces/containers/EditWorkspaceScreen.tsx index abc747c33..92450d685 100644 --- a/src/features/workspaces/containers/EditWorkspaceScreen.tsx +++ b/src/features/workspaces/containers/EditWorkspaceScreen.tsx @@ -1,12 +1,12 @@ -import { Component } from 'react'; import { inject, observer } from 'mobx-react'; +import { Component } from 'react'; -import { StoresProps } from '../../../@types/ferdium-components.types'; +import type { StoresProps } from '../../../@types/ferdium-components.types'; import ErrorBoundary from '../../../components/util/ErrorBoundary'; +import { deleteWorkspaceRequest, updateWorkspaceRequest } from '../api'; import EditWorkspaceForm from '../components/EditWorkspaceForm'; -import Workspace from '../models/Workspace'; import { workspaceStore } from '../index'; -import { deleteWorkspaceRequest, updateWorkspaceRequest } from '../api'; +import Workspace from '../models/Workspace'; class EditWorkspaceScreen extends Component { onDelete = () => { diff --git a/src/features/workspaces/containers/WorkspacesScreen.tsx b/src/features/workspaces/containers/WorkspacesScreen.tsx index 39f19935f..92565b45c 100644 --- a/src/features/workspaces/containers/WorkspacesScreen.tsx +++ b/src/features/workspaces/containers/WorkspacesScreen.tsx @@ -1,16 +1,16 @@ -import { Component } from 'react'; import { inject, observer } from 'mobx-react'; -import { StoresProps } from '../../../@types/ferdium-components.types'; -import WorkspacesDashboard from '../components/WorkspacesDashboard'; +import { Component } from 'react'; +import type { StoresProps } from '../../../@types/ferdium-components.types'; import ErrorBoundary from '../../../components/util/ErrorBoundary'; -import { workspaceStore } from '../index'; import { createWorkspaceRequest, deleteWorkspaceRequest, getUserWorkspacesRequest, updateWorkspaceRequest, } from '../api'; -import Workspace from '../models/Workspace'; +import WorkspacesDashboard from '../components/WorkspacesDashboard'; +import { workspaceStore } from '../index'; +import type Workspace from '../models/Workspace'; interface IProps extends StoresProps {} diff --git a/src/features/workspaces/store.ts b/src/features/workspaces/store.ts index f97009186..41bf5d6f4 100644 --- a/src/features/workspaces/store.ts +++ b/src/features/workspaces/store.ts @@ -1,8 +1,10 @@ -import { computed, observable, action, makeObservable } from 'mobx'; +import { action, computed, makeObservable, observable } from 'mobx'; import localStorage from 'mobx-localstorage'; import matchRoute from '../../helpers/routing-helpers'; -import workspaceActions from './actions'; +import { createReactions } from '../../stores/lib/Reaction'; +import { createActionBindings } from '../utils/ActionBinding'; import FeatureStore from '../utils/FeatureStore'; +import workspaceActions from './actions'; import { createWorkspaceRequest, deleteWorkspaceRequest, @@ -10,12 +12,10 @@ import { updateWorkspaceRequest, } from './api'; import { WORKSPACES_ROUTES } from './constants'; -import { createReactions } from '../../stores/lib/Reaction'; -import { createActionBindings } from '../utils/ActionBinding'; +import type { Actions } from '../../actions/lib/actions'; import { KEEP_WS_LOADED_USID } from '../../config'; -import Workspace from './models/Workspace'; -import { Actions } from '../../actions/lib/actions'; +import type Workspace from './models/Workspace'; const debug = require('../../preload-safe-debug')( 'Ferdium:feature:workspaces:store', diff --git a/src/helpers/certs-helpers.ts b/src/helpers/certs-helpers.ts index a6c83f5c4..fdbc495bc 100644 --- a/src/helpers/certs-helpers.ts +++ b/src/helpers/certs-helpers.ts @@ -1,5 +1,5 @@ -import { readdirSync, readFileSync, ensureDirSync } from 'fs-extra'; import { join } from 'node:path'; +import { ensureDirSync, readFileSync, readdirSync } from 'fs-extra'; import { userDataCertsPath } from '../environment-remote'; import { removeNewLines } from '../jsUtils'; diff --git a/src/helpers/password-helpers.ts b/src/helpers/password-helpers.ts index 75ef5606a..a628ea51e 100644 --- a/src/helpers/password-helpers.ts +++ b/src/helpers/password-helpers.ts @@ -1,4 +1,4 @@ -import { createHash, BinaryLike } from 'node:crypto'; +import { type BinaryLike, createHash } from 'node:crypto'; export function hash(password: BinaryLike): string { return createHash('sha256').update(password).digest('base64'); diff --git a/src/helpers/update-helpers.ts b/src/helpers/update-helpers.ts index ca541c4b0..3e548c69b 100644 --- a/src/helpers/update-helpers.ts +++ b/src/helpers/update-helpers.ts @@ -1,5 +1,5 @@ import { Octokit } from '@octokit/core'; -import { defineMessages, IntlShape } from 'react-intl'; +import { type IntlShape, defineMessages } from 'react-intl'; export function getFerdiumVersion( currentLocation: string, diff --git a/src/helpers/url-helpers.ts b/src/helpers/url-helpers.ts index fe637bb08..b30c2cd83 100644 --- a/src/helpers/url-helpers.ts +++ b/src/helpers/url-helpers.ts @@ -1,7 +1,7 @@ // This is taken from: https://benjamin-altpeter.de/shell-openexternal-dangers/ import { URL } from 'node:url'; -import { ensureDirSync, existsSync } from 'fs-extra'; import { shell } from 'electron'; +import { ensureDirSync, existsSync } from 'fs-extra'; import normalizeUrl from 'normalize-url'; import { ALLOWED_PROTOCOLS } from '../config'; diff --git a/src/helpers/userAgent-helpers.ts b/src/helpers/userAgent-helpers.ts index 42e3a9851..fd9b8c835 100644 --- a/src/helpers/userAgent-helpers.ts +++ b/src/helpers/userAgent-helpers.ts @@ -3,9 +3,9 @@ import macosVersion from 'macos-version'; import { chrome } from 'useragent-generator'; import { chromeVersion, + is64Bit, isMac, isWindows, - is64Bit, osArch, osRelease, } from '../environment'; diff --git a/src/index.ts b/src/index.ts index fe254b4f6..a2fcfb890 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,22 +1,22 @@ /* eslint-disable import/first */ -import { join } from 'node:path'; import { EventEmitter } from 'node:events'; +import { join } from 'node:path'; import { - app, BrowserWindow, + app, + desktopCapturer, + dialog, globalShortcut, ipcMain, session, - dialog, - desktopCapturer, } from 'electron'; -import { emptyDirSync, ensureFileSync } from 'fs-extra'; +import { initialize } from 'electron-react-titlebar/main'; import windowStateKeeper from 'electron-window-state'; +import { emptyDirSync, ensureFileSync } from 'fs-extra'; import minimist from 'minimist'; import ms from 'ms'; -import { initialize } from 'electron-react-titlebar/main'; import { enableWebContents, initializeRemote } from './electron-util'; import enforceMacOSAppLocation from './enforce-macos-app-location'; @@ -24,33 +24,33 @@ initializeRemote(); import { DEFAULT_APP_SETTINGS, DEFAULT_WINDOW_OPTIONS } from './config'; -import { isMac, isWindows, isLinux, altKey } from './environment'; +import { altKey, isLinux, isMac, isWindows } from './environment'; import { isDevMode, - userDataRecipesPath, - userDataPath, protocolClient, + userDataPath, + userDataRecipesPath, } from './environment-remote'; import { ifUndefined } from './jsUtils'; -import { mainIpcHandler as basicAuthHandler } from './features/basicAuth'; -// eslint-disable-next-line import/no-cycle -import ipcApi from './electron/ipc-api'; -import TrayIcon from './lib/Tray'; -import DBus from './lib/DBus'; import Settings from './electron/Settings'; import handleDeepLink from './electron/deepLinking'; +import './electron/exception'; +// eslint-disable-next-line import/no-cycle +import ipcApi from './electron/ipc-api'; import isPositionValid from './electron/windowUtils'; +import { mainIpcHandler as basicAuthHandler } from './features/basicAuth'; +import DBus from './lib/DBus'; +import TrayIcon from './lib/Tray'; // @ts-expect-error Cannot find module './package.json' or its corresponding type declarations. import { appId } from './package.json'; -import './electron/exception'; import { asarPath } from './helpers/asar-helpers'; +import { checkIfCertIsPresent } from './helpers/certs-helpers'; +import { translateTo } from './helpers/translation-helpers'; import { openExternalUrl } from './helpers/url-helpers'; import userAgent from './helpers/userAgent-helpers'; -import { translateTo } from './helpers/translation-helpers'; import { darkThemeGrayDarkest } from './themes/legacy'; -import { checkIfCertIsPresent } from './helpers/certs-helpers'; const debug = require('./preload-safe-debug')('Ferdium:App'); diff --git a/src/internal-server/start.ts b/src/internal-server/start.ts index bcd3ee3a1..c88a61fec 100644 --- a/src/internal-server/start.ts +++ b/src/internal-server/start.ts @@ -18,7 +18,7 @@ import { join } from 'node:path'; import fold from '@adonisjs/fold'; import { Ignitor, hooks } from '@adonisjs/ignitor'; -import { readFile, stat, chmod, writeFile } from 'fs-extra'; +import { chmod, readFile, stat, writeFile } from 'fs-extra'; import { LOCAL_HOSTNAME } from '../config'; import { isWindows } from '../environment'; diff --git a/src/lib/DBus.ts b/src/lib/DBus.ts index 530e30c85..70c8132a3 100644 --- a/src/lib/DBus.ts +++ b/src/lib/DBus.ts @@ -1,9 +1,9 @@ import { ipcMain } from 'electron'; import { comparer } from 'mobx'; -import { MessageBus, sessionBus } from 'dbus-next'; +import { type MessageBus, sessionBus } from 'dbus-next'; import { isLinux } from '../environment'; -import TrayIcon from './Tray'; +import type TrayIcon from './Tray'; import Ferdium, { type UnreadServices } from './dbus/Ferdium'; export default class DBus { diff --git a/src/lib/Form.ts b/src/lib/Form.ts index 2b25eb193..c60506446 100644 --- a/src/lib/Form.ts +++ b/src/lib/Form.ts @@ -1,6 +1,6 @@ import Form from 'mobx-react-form'; import vjf from 'mobx-react-form/lib/validators/VJF'; -import { FormFields } from '../@types/mobx-form.types'; +import type { FormFields } from '../@types/mobx-form.types'; export default class DefaultForm extends Form { // eslint-disable-next-line @typescript-eslint/no-useless-constructor diff --git a/src/lib/Menu.ts b/src/lib/Menu.ts index 12dc1e42c..f7ed3b310 100644 --- a/src/lib/Menu.ts +++ b/src/lib/Menu.ts @@ -1,54 +1,54 @@ import os from 'node:os'; -import { clipboard, MenuItemConstructorOptions } from 'electron'; import { - app, Menu, + app, dialog, - webContents, - systemPreferences, getCurrentWindow, + systemPreferences, + webContents, } from '@electron/remote'; -import { autorun, action, makeObservable, observable } from 'mobx'; -import { defineMessages, IntlShape } from 'react-intl'; -import osName from 'os-name'; +import { type MenuItemConstructorOptions, clipboard } from 'electron'; import { fromJS } from 'immutable'; +import { action, autorun, makeObservable, observable } from 'mobx'; +import osName from 'os-name'; +import { type IntlShape, defineMessages } from 'react-intl'; import semver from 'semver'; +import type { StoresProps } from '../@types/ferdium-components.types'; +import { importExportURL, serverBase, serverName } from '../api/apiBase'; +// @ts-expect-error Cannot find module '../buildInfo.json' or its corresponding type declarations. +import { gitBranch, gitHashShort, timestamp } from '../buildInfo.json'; +import { CUSTOM_WEBSITE_RECIPE_ID, LIVE_API_FERDIUM_WEBSITE } from '../config'; import { - isWindows, - cmdOrCtrlShortcutKey, + addNewServiceShortcutKey, altKey, - shiftKey, - settingsShortcutKey, + chromeVersion, + cmdOrCtrlShortcutKey, + downloadsShortcutKey, + electronVersion, isLinux, isMac, + isWindows, lockFerdiumShortcutKey, - todosToggleShortcutKey, - workspaceToggleShortcutKey, - addNewServiceShortcutKey, - splitModeToggleShortcutKey, muteFerdiumShortcutKey, - electronVersion, - chromeVersion, nodeVersion, osArch, + settingsShortcutKey, + shiftKey, + splitModeToggleShortcutKey, + todosToggleShortcutKey, toggleFullScreenKey, - downloadsShortcutKey, + workspaceToggleShortcutKey, } from '../environment'; -import { CUSTOM_WEBSITE_RECIPE_ID, LIVE_API_FERDIUM_WEBSITE } from '../config'; import { ferdiumVersion } from '../environment-remote'; import { todoActions } from '../features/todos/actions'; import workspaceActions from '../features/workspaces/actions'; import { workspaceStore } from '../features/workspaces/index'; -import { importExportURL, serverBase, serverName } from '../api/apiBase'; +import { onAuthGoToReleaseNotes } from '../helpers/update-helpers'; import { openExternalUrl } from '../helpers/url-helpers'; import globalMessages from '../i18n/globalMessages'; -import { onAuthGoToReleaseNotes } from '../helpers/update-helpers'; -// @ts-expect-error Cannot find module '../buildInfo.json' or its corresponding type declarations. -import { timestamp, gitHashShort, gitBranch } from '../buildInfo.json'; -import Service from '../models/Service'; -import { StoresProps } from '../@types/ferdium-components.types'; -import { RealStores } from '../stores'; import { acceleratorString } from '../jsUtils'; +import type Service from '../models/Service'; +import type { RealStores } from '../stores'; const menuItems = defineMessages({ edit: { @@ -688,11 +688,9 @@ class FranzMenu implements StoresProps { } getOsName(): string { - let osNameParse = osName(); - const isWin11 = semver.satisfies(os.release(), '>=10.0.22000'); - osNameParse = isWindows && isWin11 ? 'Windows 11' : osNameParse; - - return osNameParse; + return isWindows && semver.satisfies(os.release(), '>=10.0.22000') + ? 'Windows 11' + : osName(os.platform(), os.release()); } _build(): void { diff --git a/src/lib/TouchBar.ts b/src/lib/TouchBar.ts index 417e20411..5adeb84b5 100644 --- a/src/lib/TouchBar.ts +++ b/src/lib/TouchBar.ts @@ -1,6 +1,6 @@ -import semver from 'semver'; import { TouchBar, getCurrentWindow } from '@electron/remote'; import { autorun } from 'mobx'; +import semver from 'semver'; import { isMac, osRelease } from '../environment'; diff --git a/src/lib/Tray.ts b/src/lib/Tray.ts index 726d32b23..447096b4c 100644 --- a/src/lib/Tray.ts +++ b/src/lib/Tray.ts @@ -1,17 +1,17 @@ import { join } from 'node:path'; import { - app, + BrowserWindow, Menu, + type NativeImage, + Tray, + app, + ipcMain, nativeImage, nativeTheme, systemPreferences, - Tray, - ipcMain, - BrowserWindow, - NativeImage, } from 'electron'; import macosVersion from 'macos-version'; -import { isMac, isWindows, isLinux } from '../environment'; +import { isLinux, isMac, isWindows } from '../environment'; const FILE_EXTENSION = isWindows ? 'ico' : 'png'; const INDICATOR_TRAY_PLAIN = 'tray'; diff --git a/src/models/Recipe.ts b/src/models/Recipe.ts index 53d6c4b89..e8f11df5f 100644 --- a/src/models/Recipe.ts +++ b/src/models/Recipe.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; -import semver from 'semver'; import { pathExistsSync } from 'fs-extra'; +import semver from 'semver'; import { DEFAULT_SERVICE_SETTINGS } from '../config'; import { ifUndefined } from '../jsUtils'; diff --git a/src/models/Service.ts b/src/models/Service.ts index da9fa43dd..6d19f44f1 100644 --- a/src/models/Service.ts +++ b/src/models/Service.ts @@ -1,17 +1,17 @@ -import { join, basename } from 'node:path'; -import { autorun, action, computed, makeObservable, observable } from 'mobx'; -import { ipcRenderer } from 'electron'; +import { basename, join } from 'node:path'; import { webContents } from '@electron/remote'; -import ElectronWebView from 'react-electron-web-view'; +import { ipcRenderer } from 'electron'; +import { action, autorun, computed, makeObservable, observable } from 'mobx'; +import type ElectronWebView from 'react-electron-web-view'; import { v4 as uuidV4 } from 'uuid'; +import { needsToken } from '../api/apiBase'; +import { DEFAULT_SERVICE_ORDER, DEFAULT_SERVICE_SETTINGS } from '../config'; import { todosStore } from '../features/todos'; import { isValidExternalURL, normalizedUrl } from '../helpers/url-helpers'; -import UserAgent from './UserAgent'; -import { DEFAULT_SERVICE_ORDER, DEFAULT_SERVICE_SETTINGS } from '../config'; import { ifUndefined } from '../jsUtils'; -import { IRecipe } from './Recipe'; -import { needsToken } from '../api/apiBase'; +import type { IRecipe } from './Recipe'; +import UserAgent from './UserAgent'; const debug = require('../preload-safe-debug')('Ferdium:Service'); diff --git a/src/models/UserAgent.ts b/src/models/UserAgent.ts index d54286ee8..817dea4a1 100644 --- a/src/models/UserAgent.ts +++ b/src/models/UserAgent.ts @@ -1,6 +1,6 @@ import { action, computed, makeObservable, observable, observe } from 'mobx'; -import ElectronWebView from 'react-electron-web-view'; +import type ElectronWebView from 'react-electron-web-view'; import defaultUserAgent from '../helpers/userAgent-helpers'; const debug = require('../preload-safe-debug')('Ferdium:UserAgent'); diff --git a/src/routes.tsx b/src/routes.tsx index 436f25ea4..d2a88950f 100644 --- a/src/routes.tsx +++ b/src/routes.tsx @@ -1,42 +1,42 @@ -import { Component, ReactElement } from 'react'; +import type { HashHistory } from 'history'; import { inject, observer } from 'mobx-react'; +import { Component, type ReactElement } from 'react'; import { + unstable_HistoryRouter as HistoryRouter, Navigate, Route, Routes, - unstable_HistoryRouter as HistoryRouter, } from 'react-router-dom'; -import { HashHistory } from 'history'; +import type { StoresProps } from './@types/ferdium-components.types'; +import type { Actions } from './actions/lib/actions'; +import AuthLayoutContainer from './containers/auth/AuthLayoutContainer'; +import AuthReleaseNotesScreen from './containers/auth/AuthReleaseNotesScreen'; +import ChangeServerScreen from './containers/auth/ChangeServerScreen'; +import InviteScreen from './containers/auth/InviteScreen'; +import LoginScreen from './containers/auth/LoginScreen'; +import PasswordScreen from './containers/auth/PasswordScreen'; +import SetupAssistantScreen from './containers/auth/SetupAssistantScreen'; +import SignupScreen from './containers/auth/SignupScreen'; +import WelcomeScreen from './containers/auth/WelcomeScreen'; +import DownloadManagerScreen from './containers/download-manager/DownloadManagerScreen'; +import DownloadManagerWindow from './containers/download-manager/DownloadManagerWindow'; import AppLayoutContainer from './containers/layout/AppLayoutContainer'; -import SettingsWindow from './containers/settings/SettingsWindow'; -import ReleaseNotesWindow from './containers/settings/ReleaseNotesWindow'; -import RecipesScreen from './containers/settings/RecipesScreen'; -import ServicesScreen from './containers/settings/ServicesScreen'; -import EditServiceScreen from './containers/settings/EditServiceScreen'; import AccountScreen from './containers/settings/AccountScreen'; -import TeamScreen from './containers/settings/TeamScreen'; -import EditUserScreen from './containers/settings/EditUserScreen'; +import EditServiceScreen from './containers/settings/EditServiceScreen'; import EditSettingsScreen from './containers/settings/EditSettingsScreen'; +import EditUserScreen from './containers/settings/EditUserScreen'; import InviteSettingsScreen from './containers/settings/InviteScreen'; -import SupportFerdiumScreen from './containers/settings/SupportScreen'; +import RecipesScreen from './containers/settings/RecipesScreen'; import ReleaseNotesScreen from './containers/settings/ReleaseNotesScreen'; -import WelcomeScreen from './containers/auth/WelcomeScreen'; -import LoginScreen from './containers/auth/LoginScreen'; -import AuthReleaseNotesScreen from './containers/auth/AuthReleaseNotesScreen'; -import PasswordScreen from './containers/auth/PasswordScreen'; -import ChangeServerScreen from './containers/auth/ChangeServerScreen'; -import SignupScreen from './containers/auth/SignupScreen'; -import SetupAssistantScreen from './containers/auth/SetupAssistantScreen'; -import InviteScreen from './containers/auth/InviteScreen'; -import AuthLayoutContainer from './containers/auth/AuthLayoutContainer'; -import WorkspacesScreen from './features/workspaces/containers/WorkspacesScreen'; -import EditWorkspaceScreen from './features/workspaces/containers/EditWorkspaceScreen'; +import ReleaseNotesWindow from './containers/settings/ReleaseNotesWindow'; +import ServicesScreen from './containers/settings/ServicesScreen'; +import SettingsWindow from './containers/settings/SettingsWindow'; +import SupportFerdiumScreen from './containers/settings/SupportScreen'; +import TeamScreen from './containers/settings/TeamScreen'; import { WORKSPACES_ROUTES } from './features/workspaces/constants'; -import { StoresProps } from './@types/ferdium-components.types'; -import { Actions } from './actions/lib/actions'; -import { RealStores } from './stores'; -import DownloadManagerScreen from './containers/download-manager/DownloadManagerScreen'; -import DownloadManagerWindow from './containers/download-manager/DownloadManagerWindow'; +import EditWorkspaceScreen from './features/workspaces/containers/EditWorkspaceScreen'; +import WorkspacesScreen from './features/workspaces/containers/WorkspacesScreen'; +import type { RealStores } from './stores'; interface IProps { history: HashHistory; diff --git a/src/stores/AppStore.ts b/src/stores/AppStore.ts index b8356bd56..b0a925411 100644 --- a/src/stores/AppStore.ts +++ b/src/stores/AppStore.ts @@ -1,46 +1,46 @@ import { URL } from 'node:url'; -import { ipcRenderer } from 'electron'; import { app, - screen, - powerMonitor, - nativeTheme, getCurrentWindow, + nativeTheme, + powerMonitor, process as remoteProcess, + screen, } from '@electron/remote'; +import AutoLaunch from 'auto-launch'; +import { ipcRenderer } from 'electron'; +import { readJsonSync } from 'fs-extra'; import { action, computed, makeObservable, observable } from 'mobx'; import moment from 'moment'; -import AutoLaunch from 'auto-launch'; import ms from 'ms'; -import { readJsonSync } from 'fs-extra'; -import { Stores } from '../@types/stores.types'; -import { ApiInterface } from '../api'; -import { Actions } from '../actions/lib/actions'; -import TypedStore from './lib/TypedStore'; -import Request from './lib/Request'; +import type { Stores } from '../@types/stores.types'; +import type { Actions } from '../actions/lib/actions'; +import type { ApiInterface } from '../api'; import { CHECK_INTERVAL, DEFAULT_APP_SETTINGS } from '../config'; -import { cleanseJSObject } from '../jsUtils'; import { + electronVersion, isMac, isWinPortable, - electronVersion, osRelease, } from '../environment'; import { + ferdiumLocale, ferdiumVersion, userDataPath, - ferdiumLocale, } from '../environment-remote'; -import generatedTranslations from '../i18n/translations'; import { getLocale } from '../helpers/i18n-helpers'; +import generatedTranslations from '../i18n/translations'; +import { cleanseJSObject } from '../jsUtils'; +import Request from './lib/Request'; +import TypedStore from './lib/TypedStore'; +import sleep from '../helpers/async-helpers'; import { getServiceIdsFromPartitions, removeServicePartitionDirectory, } from '../helpers/service-helpers'; import { openExternalUrl } from '../helpers/url-helpers'; -import sleep from '../helpers/async-helpers'; const debug = require('../preload-safe-debug')('Ferdium:AppStore'); diff --git a/src/stores/FeaturesStore.ts b/src/stores/FeaturesStore.ts index 8584b6060..6167d0e22 100644 --- a/src/stores/FeaturesStore.ts +++ b/src/stores/FeaturesStore.ts @@ -5,18 +5,18 @@ import { observable, runInAction, } from 'mobx'; -import { Stores } from '../@types/stores.types'; -import { ApiInterface } from '../api'; -import { Actions } from '../actions/lib/actions'; -import CachedRequest from './lib/CachedRequest'; -import serviceProxy from '../features/serviceProxy'; +import type { Stores } from '../@types/stores.types'; +import type { Actions } from '../actions/lib/actions'; +import type { ApiInterface } from '../api'; +import appearance from '../features/appearance'; import basicAuth from '../features/basicAuth'; -import workspaces from '../features/workspaces'; -import quickSwitch from '../features/quickSwitch'; -import publishDebugInfo from '../features/publishDebugInfo'; import communityRecipes from '../features/communityRecipes'; +import publishDebugInfo from '../features/publishDebugInfo'; +import quickSwitch from '../features/quickSwitch'; +import serviceProxy from '../features/serviceProxy'; import todos from '../features/todos'; -import appearance from '../features/appearance'; +import workspaces from '../features/workspaces'; +import CachedRequest from './lib/CachedRequest'; import TypedStore from './lib/TypedStore'; export default class FeaturesStore extends TypedStore { diff --git a/src/stores/GlobalErrorStore.ts b/src/stores/GlobalErrorStore.ts index 74a43100b..1da81eaa3 100644 --- a/src/stores/GlobalErrorStore.ts +++ b/src/stores/GlobalErrorStore.ts @@ -1,8 +1,8 @@ -import { observable, action, makeObservable } from 'mobx'; -import { Response } from 'electron'; -import { Actions } from '../actions/lib/actions'; -import { ApiInterface } from '../api'; -import { Stores } from '../@types/stores.types'; +import type { Response } from 'electron'; +import { action, makeObservable, observable } from 'mobx'; +import type { Stores } from '../@types/stores.types'; +import type { Actions } from '../actions/lib/actions'; +import type { ApiInterface } from '../api'; import Request from './lib/Request'; import TypedStore from './lib/TypedStore'; diff --git a/src/stores/RecipePreviewsStore.ts b/src/stores/RecipePreviewsStore.ts index 1c95e6b54..f851f3203 100644 --- a/src/stores/RecipePreviewsStore.ts +++ b/src/stores/RecipePreviewsStore.ts @@ -1,14 +1,14 @@ import { action, computed, makeObservable, observable } from 'mobx'; -import { Actions } from '../actions/lib/actions'; -import { ApiInterface } from '../api'; -import Recipe from '../models/Recipe'; -import { Stores } from '../@types/stores.types'; +import type { Stores } from '../@types/stores.types'; +import type { Actions } from '../actions/lib/actions'; +import type { ApiInterface } from '../api'; +import type Recipe from '../models/Recipe'; +import type RecipePreview from '../models/RecipePreview'; import CachedRequest from './lib/CachedRequest'; import Request from './lib/Request'; import TypedStore from './lib/TypedStore'; -import RecipePreview from '../models/RecipePreview'; export default class RecipePreviewsStore extends TypedStore { @observable allRecipePreviewsRequest = new CachedRequest( diff --git a/src/stores/RecipesStore.ts b/src/stores/RecipesStore.ts index 9b5565dcf..3cd81807a 100644 --- a/src/stores/RecipesStore.ts +++ b/src/stores/RecipesStore.ts @@ -1,15 +1,15 @@ -import { action, computed, makeObservable, observable } from 'mobx'; import { readJSONSync } from 'fs-extra'; +import { action, computed, makeObservable, observable } from 'mobx'; import semver from 'semver'; -import Recipe from '../models/Recipe'; -import { Stores } from '../@types/stores.types'; -import { ApiInterface } from '../api'; -import { Actions } from '../actions/lib/actions'; +import type { Stores } from '../@types/stores.types'; +import type { Actions } from '../actions/lib/actions'; +import type { ApiInterface } from '../api'; +import { asarRecipesPath } from '../helpers/asar-helpers'; +import matchRoute from '../helpers/routing-helpers'; +import type Recipe from '../models/Recipe'; import CachedRequest from './lib/CachedRequest'; import Request from './lib/Request'; -import matchRoute from '../helpers/routing-helpers'; -import { asarRecipesPath } from '../helpers/asar-helpers'; import TypedStore from './lib/TypedStore'; const debug = require('../preload-safe-debug')('Ferdium:RecipeStore'); diff --git a/src/stores/RequestStore.ts b/src/stores/RequestStore.ts index 807f2d126..bad9f39ea 100644 --- a/src/stores/RequestStore.ts +++ b/src/stores/RequestStore.ts @@ -2,11 +2,11 @@ import { ipcRenderer } from 'electron'; import { action, computed, makeObservable, observable } from 'mobx'; import ms from 'ms'; -import { Actions } from '../actions/lib/actions'; -import { ApiInterface } from '../api'; -import { Stores } from '../@types/stores.types'; -import CachedRequest from './lib/CachedRequest'; +import type { Stores } from '../@types/stores.types'; +import type { Actions } from '../actions/lib/actions'; +import type { ApiInterface } from '../api'; import { LOCAL_HOSTNAME, LOCAL_PORT } from '../config'; +import type CachedRequest from './lib/CachedRequest'; import TypedStore from './lib/TypedStore'; diff --git a/src/stores/ServicesStore.ts b/src/stores/ServicesStore.ts index d7804a3fe..8105aa084 100644 --- a/src/stores/ServicesStore.ts +++ b/src/stores/ServicesStore.ts @@ -1,29 +1,29 @@ import { join } from 'node:path'; import { clipboard, ipcRenderer, shell } from 'electron'; -import { action, reaction, computed, observable, makeObservable } from 'mobx'; +import { ensureFileSync, pathExistsSync, writeFileSync } from 'fs-extra'; import { debounce, remove } from 'lodash'; +import { action, computed, makeObservable, observable, reaction } from 'mobx'; import ms from 'ms'; -import { ensureFileSync, pathExistsSync, writeFileSync } from 'fs-extra'; -import { Stores } from '../@types/stores.types'; -import { ApiInterface } from '../api'; -import { Actions } from '../actions/lib/actions'; -import Request from './lib/Request'; -import CachedRequest from './lib/CachedRequest'; -import matchRoute from '../helpers/routing-helpers'; -import { isInTimeframe } from '../helpers/schedule-helpers'; +import type { Stores } from '../@types/stores.types'; +import type { Actions } from '../actions/lib/actions'; +import type { ApiInterface } from '../api'; +import { DEFAULT_SERVICE_SETTINGS, KEEP_WS_LOADED_USID } from '../config'; +import { ferdiumVersion } from '../environment-remote'; +import { workspaceStore } from '../features/workspaces'; import { - getRecipeDirectory, getDevRecipeDirectory, + getRecipeDirectory, } from '../helpers/recipe-helpers'; -import Service from '../models/Service'; -import { workspaceStore } from '../features/workspaces'; -import { DEFAULT_SERVICE_SETTINGS, KEEP_WS_LOADED_USID } from '../config'; -import { cleanseJSObject } from '../jsUtils'; +import matchRoute from '../helpers/routing-helpers'; +import { isInTimeframe } from '../helpers/schedule-helpers'; import { SPELLCHECKER_LOCALES } from '../i18n/languages'; -import { ferdiumVersion } from '../environment-remote'; -import TypedStore from './lib/TypedStore'; +import { cleanseJSObject } from '../jsUtils'; import type { UnreadServices } from '../lib/dbus/Ferdium'; +import type Service from '../models/Service'; +import CachedRequest from './lib/CachedRequest'; +import Request from './lib/Request'; +import TypedStore from './lib/TypedStore'; const debug = require('../preload-safe-debug')('Ferdium:ServiceStore'); diff --git a/src/stores/SettingsStore.ts b/src/stores/SettingsStore.ts index 010290a4a..72d6331cb 100644 --- a/src/stores/SettingsStore.ts +++ b/src/stores/SettingsStore.ts @@ -1,10 +1,10 @@ -import { ipcRenderer } from 'electron'; import { getCurrentWindow } from '@electron/remote'; +import { ipcRenderer } from 'electron'; import { action, computed, makeObservable, observable, reaction } from 'mobx'; import localStorage from 'mobx-localstorage'; -import { Stores } from '../@types/stores.types'; -import { ApiInterface } from '../api'; -import { Actions } from '../actions/lib/actions'; +import type { Stores } from '../@types/stores.types'; +import type { Actions } from '../actions/lib/actions'; +import type { ApiInterface } from '../api'; import { DEFAULT_APP_SETTINGS, FILE_SYSTEM_SETTINGS_TYPES, diff --git a/src/stores/UIStore.ts b/src/stores/UIStore.ts index a3330c2e6..614c16763 100644 --- a/src/stores/UIStore.ts +++ b/src/stores/UIStore.ts @@ -1,10 +1,10 @@ -import { action, observable, computed, reaction, makeObservable } from 'mobx'; import { nativeTheme } from '@electron/remote'; +import { action, computed, makeObservable, observable, reaction } from 'mobx'; -import { Stores } from '../@types/stores.types'; -import { ApiInterface } from '../api'; -import { Actions } from '../actions/lib/actions'; -import { Theme, theme, ThemeType } from '../themes'; +import type { Stores } from '../@types/stores.types'; +import type { Actions } from '../actions/lib/actions'; +import type { ApiInterface } from '../api'; +import { type Theme, ThemeType, theme } from '../themes'; import TypedStore from './lib/TypedStore'; export default class UIStore extends TypedStore { diff --git a/src/stores/UserStore.ts b/src/stores/UserStore.ts index 9c3fcd3b9..ade68e4d4 100644 --- a/src/stores/UserStore.ts +++ b/src/stores/UserStore.ts @@ -1,16 +1,16 @@ -import { observable, computed, action, makeObservable } from 'mobx'; -import moment from 'moment'; +import { ipcRenderer } from 'electron'; import jwt from 'jsonwebtoken'; +import { action, computed, makeObservable, observable } from 'mobx'; import localStorage from 'mobx-localstorage'; -import { ipcRenderer } from 'electron'; +import moment from 'moment'; -import { ApiInterface } from '../api'; -import { Actions } from '../actions/lib/actions'; -import { Stores } from '../@types/stores.types'; +import type { Stores } from '../@types/stores.types'; +import type { Actions } from '../actions/lib/actions'; +import type { ApiInterface } from '../api'; import { TODOS_PARTITION_ID } from '../config'; import { isDevMode } from '../environment-remote'; -import Request from './lib/Request'; import CachedRequest from './lib/CachedRequest'; +import Request from './lib/Request'; import TypedStore from './lib/TypedStore'; const debug = require('../preload-safe-debug')('Ferdium:UserStore'); diff --git a/src/stores/index.ts b/src/stores/index.ts index f9927d9a3..5b96e6efb 100644 --- a/src/stores/index.ts +++ b/src/stores/index.ts @@ -1,19 +1,19 @@ -import { RouterStore } from '@superwf/mobx-react-router'; -import { ApiInterface } from '../api'; -import { Actions } from '../actions/lib/actions'; +import type { RouterStore } from '@superwf/mobx-react-router'; +import type { Actions } from '../actions/lib/actions'; +import type { ApiInterface } from '../api'; +import { communityRecipesStore } from '../features/communityRecipes'; +import { todosStore } from '../features/todos'; +import { workspaceStore } from '../features/workspaces'; import AppStore from './AppStore'; -import UserStore from './UserStore'; import FeaturesStore from './FeaturesStore'; -import SettingsStore from './SettingsStore'; -import ServicesStore from './ServicesStore'; -import RecipesStore from './RecipesStore'; +import GlobalErrorStore from './GlobalErrorStore'; import RecipePreviewsStore from './RecipePreviewsStore'; -import UIStore from './UIStore'; +import RecipesStore from './RecipesStore'; import RequestStore from './RequestStore'; -import GlobalErrorStore from './GlobalErrorStore'; -import { workspaceStore } from '../features/workspaces'; -import { communityRecipesStore } from '../features/communityRecipes'; -import { todosStore } from '../features/todos'; +import ServicesStore from './ServicesStore'; +import SettingsStore from './SettingsStore'; +import UIStore from './UIStore'; +import UserStore from './UserStore'; export interface RealStores { router: RouterStore; diff --git a/src/stores/lib/CachedRequest.ts b/src/stores/lib/CachedRequest.ts index b24336fe6..3b15fcf3f 100644 --- a/src/stores/lib/CachedRequest.ts +++ b/src/stores/lib/CachedRequest.ts @@ -1,5 +1,5 @@ -import { action } from 'mobx'; import { isEqual } from 'lodash'; +import { action } from 'mobx'; import Request from './Request'; export default class CachedRequest extends Request { diff --git a/src/stores/lib/Reaction.ts b/src/stores/lib/Reaction.ts index 3966c8073..d418d8db8 100644 --- a/src/stores/lib/Reaction.ts +++ b/src/stores/lib/Reaction.ts @@ -1,4 +1,4 @@ -import { autorun, IReactionDisposer, IReactionPublic } from 'mobx'; +import { type IReactionDisposer, type IReactionPublic, autorun } from 'mobx'; export default class Reaction { public reaction: (r: IReactionPublic) => any; diff --git a/src/stores/lib/Request.ts b/src/stores/lib/Request.ts index 587af87d7..e7739bba1 100644 --- a/src/stores/lib/Request.ts +++ b/src/stores/lib/Request.ts @@ -1,4 +1,4 @@ -import { observable, action, computed, makeObservable } from 'mobx'; +import { action, computed, makeObservable, observable } from 'mobx'; // eslint-disable-next-line no-use-before-define type Hook = (request: Request) => void; diff --git a/src/stores/lib/TypedStore.ts b/src/stores/lib/TypedStore.ts index 8bae529ba..6d499b637 100644 --- a/src/stores/lib/TypedStore.ts +++ b/src/stores/lib/TypedStore.ts @@ -1,13 +1,13 @@ import { + type IReactionPublic, action, computed, - IReactionPublic, makeObservable, observable, } from 'mobx'; -import { Actions } from '../../actions/lib/actions'; -import { ApiInterface } from '../../api'; -import { Stores } from '../../@types/stores.types'; +import type { Stores } from '../../@types/stores.types'; +import type { Actions } from '../../actions/lib/actions'; +import type { ApiInterface } from '../../api'; import Reaction from './Reaction'; export default abstract class TypedStore { diff --git a/src/themes/default/index.ts b/src/themes/default/index.ts index ac04a6e3b..8df7ff06e 100644 --- a/src/themes/default/index.ts +++ b/src/themes/default/index.ts @@ -1,9 +1,9 @@ import color from 'color'; import { cloneDeep } from 'lodash'; -import * as legacyStyles from '../legacy'; -import type IStyleTypes from '../IStyleTypes'; import { DEFAULT_LOADER_COLOR } from '../../config'; +import type IStyleTypes from '../IStyleTypes'; +import * as legacyStyles from '../legacy'; export default (brandPrimary: string) => { if (!brandPrimary) { diff --git a/src/webview/contextMenuBuilder.ts b/src/webview/contextMenuBuilder.ts index ee55fbe62..155e533e9 100644 --- a/src/webview/contextMenuBuilder.ts +++ b/src/webview/contextMenuBuilder.ts @@ -7,20 +7,25 @@ * Source: https://github.com/electron-userland/electron-spellchecker/blob/master/src/context-menu-builder.js */ -import { clipboard, ipcRenderer, nativeImage, WebContents } from 'electron'; import { Menu, MenuItem } from '@electron/remote'; +import { + type WebContents, + clipboard, + ipcRenderer, + nativeImage, +} from 'electron'; import { cmdOrCtrlShortcutKey, isMac } from '../environment'; import { + GOOGLE_TRANSLATOR_LANGUAGES, + LIBRETRANSLATE_TRANSLATOR_LANGUAGES, SEARCH_ENGINE_NAMES, SEARCH_ENGINE_URLS, - GOOGLE_TRANSLATOR_LANGUAGES, TRANSLATOR_ENGINE_GOOGLE, TRANSLATOR_ENGINE_LIBRETRANSLATE, - LIBRETRANSLATE_TRANSLATOR_LANGUAGES, } from '../config'; import { openExternalUrl } from '../helpers/url-helpers'; -import IContextMenuParams from '../models/IContextMenuParams'; +import type IContextMenuParams from '../models/IContextMenuParams'; function matchesWord(string: string) { const regex = diff --git a/src/webview/lib/RecipeWebview.ts b/src/webview/lib/RecipeWebview.ts index 31e9a288d..3b6b9cc88 100644 --- a/src/webview/lib/RecipeWebview.ts +++ b/src/webview/lib/RecipeWebview.ts @@ -1,6 +1,6 @@ -import { ipcRenderer } from 'electron'; import { BrowserWindow } from '@electron/remote'; -import { pathExistsSync, readFileSync, existsSync } from 'fs-extra'; +import { ipcRenderer } from 'electron'; +import { existsSync, pathExistsSync, readFileSync } from 'fs-extra'; import { safeParseInt } from '../../jsUtils'; const debug = require('../../preload-safe-debug')( diff --git a/src/webview/recipe.ts b/src/webview/recipe.ts index 148ea6fab..d6db39779 100644 --- a/src/webview/recipe.ts +++ b/src/webview/recipe.ts @@ -1,26 +1,24 @@ /* eslint-disable global-require */ /* eslint-disable import/no-dynamic-require */ -import { join } from 'node:path'; import { existsSync } from 'node:fs'; -import { noop, debounce } from 'lodash'; -import { contextBridge, ipcRenderer } from 'electron'; -import { autorun, computed, makeObservable, observable } from 'mobx'; -import { pathExistsSync, readFileSync } from 'fs-extra'; +import { join } from 'node:path'; import { disable as disableDarkMode, enable as enableDarkMode, } from 'darkreader'; +import { contextBridge, ipcRenderer } from 'electron'; +import { pathExistsSync, readFileSync } from 'fs-extra'; +import { debounce, noop } from 'lodash'; +import { autorun, computed, makeObservable, observable } from 'mobx'; -import ignoreList from './darkmode/ignore'; import customDarkModeCss from './darkmode/custom'; +import ignoreList from './darkmode/ignore'; import RecipeWebview from './lib/RecipeWebview'; import Userscript from './lib/Userscript'; import BadgeHandler from './badge'; -import DialogTitleHandler from './dialogTitle'; -import SessionHandler from './sessionHandler'; import contextMenu from './contextMenu'; import { darkModeStyleExists, @@ -28,25 +26,27 @@ import { isDarkModeStyleInjected, removeDarkModeStyle, } from './darkmode'; +import DialogTitleHandler from './dialogTitle'; import FindInPage from './find'; import { - notificationsClassDefinition, NotificationsHandler, + notificationsClassDefinition, } from './notifications'; import { getDisplayMediaSelector, screenShareCss, screenShareJs, } from './screenshare'; +import SessionHandler from './sessionHandler'; import { getSpellcheckerLocaleByFuzzyIdentifier, switchDict, } from './spellchecker'; +import type { AppStore } from '../@types/stores.types'; import { DEFAULT_APP_SETTINGS } from '../config'; import { cleanseJSObject, ifUndefined, safeParseInt } from '../jsUtils'; -import { AppStore } from '../@types/stores.types'; -import Service from '../models/Service'; +import type Service from '../models/Service'; // For some services darkreader tries to use the chrome extension message API // This will cause the service to fail loading diff --git a/src/webview/spellchecker.ts b/src/webview/spellchecker.ts index 8e452c791..92024b9b0 100644 --- a/src/webview/spellchecker.ts +++ b/src/webview/spellchecker.ts @@ -1,6 +1,6 @@ import { ipcRenderer } from 'electron'; -import { SPELLCHECKER_LOCALES } from '../i18n/languages'; import { isMac } from '../environment'; +import { SPELLCHECKER_LOCALES } from '../i18n/languages'; const debug = require('../preload-safe-debug')('Ferdium:spellchecker'); diff --git a/test/features/utils/FeatureStore.test.ts b/test/features/utils/FeatureStore.test.ts index de40d257e..2178ac99e 100644 --- a/test/features/utils/FeatureStore.test.ts +++ b/test/features/utils/FeatureStore.test.ts @@ -1,8 +1,8 @@ -import PropTypes from 'prop-types'; import { observable } from 'mobx'; -import FeatureStore from '../../../src/features/utils/FeatureStore'; +import PropTypes from 'prop-types'; import { createActionsFromDefinitions } from '../../../src/actions/lib/actions'; import { createActionBindings } from '../../../src/features/utils/ActionBinding'; +import FeatureStore from '../../../src/features/utils/FeatureStore'; import { createReactions } from '../../../src/stores/lib/Reaction'; const actions: any = createActionsFromDefinitions( diff --git a/test/helpers/array-helpers.test.ts b/test/helpers/array-helpers.test.ts index ee94bac80..662d6b828 100644 --- a/test/helpers/array-helpers.test.ts +++ b/test/helpers/array-helpers.test.ts @@ -7,6 +7,7 @@ describe('array_helpers', () => { // Expect the arrays to be exactly the same // when both are sorted alphabetically + // eslint-disable-next-line sonar/no-alphabetical-sort expect(shuffledArray.sort()).toEqual(originalArray.sort()); }); }); diff --git a/test/themes/index.test.ts b/test/themes/index.test.ts index 387a296a8..8f23dfb75 100644 --- a/test/themes/index.test.ts +++ b/test/themes/index.test.ts @@ -1,6 +1,6 @@ -import makeDefaultThemeConfig from '../../src/themes/default'; +import { type ThemeType, theme } from '../../src/themes'; import makeDarkThemeConfig from '../../src/themes/dark'; -import { theme, ThemeType } from '../../src/themes'; +import makeDefaultThemeConfig from '../../src/themes/default'; describe('Load theme', () => { it('loads default theme', () => { -- cgit v1.2.3-70-g09d2