From d569e28d016c48ba6adb8afafc97c75c92dfd48a Mon Sep 17 00:00:00 2001 From: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com> Date: Thu, 5 Nov 2026 19:50:41 +0100 Subject: [PATCH] fix: web import ordering (#32995) --- web/.prettierrc | 6 ++- web/package.json | 2 +- web/src/lib/commands.ts | 2 +- web/src/lib/components/AdaptiveImage.svelte | 4 +- .../lib/components/SchemaAlbumPicker.svelte | 2 +- .../components/SharedLinkExpiration.svelte | 2 +- .../StorageTemplateSettings.svelte | 6 +-- .../album-page/AlbumCardGroup.svelte | 2 +- .../album-page/AlbumThumbnail.svelte | 2 +- .../components/album-page/AlbumViewer.svelte | 8 ++-- .../components/album-page/AlbumsList.svelte | 2 +- .../album-page/AlbumsTableHeader.svelte | 2 +- .../album-page/AlbumsTableRow.svelte | 2 +- .../asset-viewer/AssetViewer.svelte | 18 ++++----- .../asset-viewer/AssetViewerNavBar.svelte | 4 +- .../asset-viewer/DetailPanel.svelte | 16 ++++---- .../asset-viewer/OcrBoundingBox.svelte | 3 +- .../asset-viewer/PhotoViewer.svelte | 4 +- .../asset-viewer/VideoRemoteViewer.svelte | 2 +- .../actions/NextAssetAction.svelte | 4 +- .../actions/PreviousAssetAction.svelte | 2 +- .../asset-viewer/editor/EditorPanel.svelte | 2 +- .../assets/thumbnail/ImageThumbnail.svelte | 2 +- .../assets/thumbnail/Thumbnail.svelte | 3 +- .../components/layouts/AuthPageLayout.svelte | 3 +- .../maintenance/MaintenanceBackupEntry.svelte | 2 +- .../maintenance/MaintenanceBackupsList.svelte | 5 +-- .../pages/SharedLinkErrorPage.svelte | 2 +- .../components/pages/SharedLinkPage.svelte | 2 +- .../share-page/IndividualSharedViewer.svelte | 4 +- .../shared-components/ThemeButton.svelte | 2 +- .../album-selection-utils.spec.ts | 2 +- .../context-menu/MenuOption.svelte | 7 +++- .../gallery-viewer/GalleryViewer.svelte | 4 +- .../navigation-bar/AccountInfoPanel.svelte | 2 +- .../navigation-bar/NavigationBar.svelte | 6 +-- .../navigation-bar/NotificationPanel.svelte | 4 +- .../progress-bar/ProgressBar.svelte | 1 - .../search-bar/SearchButton.svelte | 3 +- .../search-bar/SearchDisplaySection.svelte | 2 +- .../search-bar/SearchLocationSection.svelte | 2 +- .../search-bar/SearchMediaSection.svelte | 2 +- .../settings/SettingsLanguageSelector.svelte | 2 +- .../side-bar/BottomInfo.svelte | 6 +-- .../side-bar/PurchaseInfo.svelte | 4 +- .../side-bar/ServerStatus.svelte | 4 +- .../side-bar/StorageSpace.svelte | 2 +- .../side-bar/UserSidebar.svelte | 4 +- .../components/timeline/AssetLayout.svelte | 2 +- web/src/lib/components/timeline/Month.svelte | 2 +- .../lib/components/timeline/Timeline.svelte | 8 ++-- .../timeline/TimelineAssetViewer.svelte | 8 ++-- .../actions/DeleteAssetsAction.svelte | 2 +- .../timeline/actions/DownloadAction.svelte | 1 - .../actions/TimelineKeyboardActions.svelte | 2 +- web/src/lib/elements/DurationInput.svelte | 2 +- .../lib/managers/activity-manager.svelte.ts | 4 +- web/src/lib/managers/event-manager.svelte.ts | 2 +- web/src/lib/managers/memory-manager.svelte.ts | 6 +-- .../timeline-manager/timeline-day.svelte.ts | 7 +++- .../timeline-manager/timeline-month.svelte.ts | 4 +- web/src/lib/modals/AlbumOptionsModal.svelte | 8 ++-- web/src/lib/modals/AppDownloadModal.svelte | 3 +- web/src/lib/modals/AvatarEditModal.svelte | 2 +- .../lib/modals/HelpAndFeedbackModal.svelte | 2 +- .../lib/modals/ObtainiumConfigModal.svelte | 3 +- .../lib/modals/PartnerSelectionModal.svelte | 2 +- web/src/lib/modals/PeopleFilterModal.svelte | 2 +- .../lib/modals/PersonBulkShareModal.svelte | 2 +- .../lib/modals/PersonEditAccessModal.svelte | 2 +- web/src/lib/modals/PersonEditModal.svelte | 2 +- web/src/lib/modals/PinCodeResetModal.svelte | 4 +- web/src/lib/modals/PluginMethodPicker.svelte | 4 +- web/src/lib/modals/PurchaseModal.svelte | 1 - .../lib/modals/UserDeleteConfirmModal.svelte | 2 +- .../lib/modals/WorkflowAddStepModal.svelte | 2 +- .../lib/modals/WorkflowDuplicateModal.svelte | 2 +- .../lib/modals/WorkflowEditStepModal.svelte | 2 +- web/src/lib/modals/WorkflowLogsModal.svelte | 32 ++++++++-------- .../modals/WorkflowTemplatePickerModal.svelte | 2 +- web/src/lib/queries/album.query.ts | 4 +- web/src/lib/queries/client.ts | 6 +-- web/src/lib/queries/passkey.query.ts | 2 +- web/src/lib/route.ts | 2 +- web/src/lib/services/album.service.ts | 4 +- web/src/lib/services/asset.service.ts | 6 +-- .../lib/services/database-backups.service.ts | 2 +- web/src/lib/services/integrity.service.ts | 2 +- web/src/lib/services/person.service.ts | 2 +- web/src/lib/services/queue.service.ts | 4 +- web/src/lib/utils/maintenance.ts | 2 +- web/src/lib/utils/timeline-util.ts | 2 +- web/src/routes/(user)/+layout.svelte | 5 ++- .../(user)/DragAndDropUploadOverlay.svelte | 2 +- web/src/routes/(user)/albums/+page.svelte | 2 +- .../(user)/albums/AlbumsControls.svelte | 6 +-- .../[[assetId=id]]/+page.svelte | 38 +++++++++---------- .../[[assetId=id]]/+page.svelte | 9 ++--- web/src/routes/(user)/buy/+page.svelte | 4 +- web/src/routes/(user)/explore/+page.svelte | 14 +++---- web/src/routes/(user)/explore/+page.ts | 2 +- .../[[assetId=id]]/+page.svelte | 6 +-- .../[[assetId=id]]/+page.svelte | 2 +- .../[[assetId=id]]/+page.svelte | 10 ++--- .../[[assetId=id]]/+page.svelte | 10 ++--- .../[[assetId=id]]/MapTimelinePanel.svelte | 4 +- web/src/routes/(user)/memories/+page.svelte | 2 +- .../[[assetId=id]]/MemoryPhotoViewer.svelte | 2 +- .../[[assetId=id]]/MemoryViewer.svelte | 8 ++-- .../[[assetId=id]]/+page.svelte | 4 +- web/src/routes/(user)/people/+page.svelte | 6 +-- .../[[assetId=id]]/+page.svelte | 12 +++--- .../[[assetId=id]]/EditNameInput.svelte | 2 +- .../[[assetId=id]]/FaceThumbnail.svelte | 2 +- .../[[assetId=id]]/MergeFaceSelector.svelte | 4 +- .../[[assetId=id]]/PeopleList.svelte | 4 +- .../[[assetId=id]]/UnmergeFaceSelector.svelte | 2 +- .../routes/(user)/people/manage/+page.svelte | 4 +- web/src/routes/(user)/places/+page.svelte | 7 ++-- .../(user)/places/PlacesCardGroup.svelte | 2 +- .../routes/(user)/places/PlacesList.svelte | 7 ++-- .../[[assetId=id]]/+page.svelte | 10 ++--- .../[[assetId=id]]/+page.svelte | 18 ++++----- .../(user)/shared-links/(list)/+layout.svelte | 8 ++-- .../shared-links/(list)/SharedLinkCard.svelte | 2 +- .../(list)/[id]/edit/+page.svelte | 4 +- .../[[assetId=id]]/+page.svelte | 4 +- .../[[assetId=id]]/+page.svelte | 12 +++--- .../routes/(user)/user-settings/+page.svelte | 2 +- .../(user)/user-settings/AppSettings.svelte | 4 +- .../(user)/user-settings/DeviceList.svelte | 4 +- .../user-settings/FeatureSettings.svelte | 4 +- .../(user)/user-settings/OAuthSettings.svelte | 6 +-- .../user-settings/PinCodeChangeForm.svelte | 2 +- .../user-settings/PinCodeSettings.svelte | 2 +- .../user-settings/SharingSettings.svelte | 6 +-- .../user-settings/UserPurchaseSettings.svelte | 5 +-- .../user-settings/UserSettingsList.svelte | 20 +++++----- .../(user)/utilities/UtilitiesMenu.svelte | 2 +- .../[[assetId=id]]/+page.svelte | 17 ++++----- .../[[assetId=id]]/DuplicateAsset.svelte | 2 +- .../DuplicatesCompareControl.svelte | 2 +- .../(user)/utilities/geolocation/+page.svelte | 2 +- .../[[assetId=id]]/+page.svelte | 4 +- web/src/routes/(user)/workflows/+page.svelte | 2 +- .../workflows/[workflowId]/+page.svelte | 4 +- .../[workflowId]/WorkflowJsonEditor.svelte | 4 +- .../[workflowId]/WorkflowStepCard.svelte | 7 ++-- .../[workflowId]/WorkflowSummary.svelte | 2 +- web/src/routes/+layout.svelte | 26 ++++++------- web/src/routes/DownloadPanel.svelte | 8 ++-- web/src/routes/UploadAssetPreview.svelte | 3 +- web/src/routes/admin/backups/+page.svelte | 4 +- .../admin/backups/attempts/+page.svelte | 4 +- .../admin/backups/settings/+page.svelte | 4 +- .../admin/backups/snapshots/+page.svelte | 4 +- .../library-management/(list)/+layout.svelte | 4 +- .../(list)/new/+page.svelte | 2 +- .../library-management/[id]/+layout.svelte | 4 +- .../library-management/[id]/edit/+page.svelte | 2 +- web/src/routes/admin/maintenance/+page.svelte | 8 ++-- .../integrity-report/[type]/+page.svelte | 4 +- .../integrity-report/[type]/+page.ts | 2 +- web/src/routes/admin/queues/+page.svelte | 4 +- web/src/routes/admin/queues/QueueCard.svelte | 4 +- web/src/routes/admin/queues/QueuePanel.svelte | 8 ++-- .../routes/admin/queues/[name]/+page.svelte | 2 +- web/src/routes/admin/queues/[name]/+page.ts | 4 +- .../routes/admin/server-status/+page.svelte | 2 +- .../ServerStatisticsPanel.svelte | 2 +- .../routes/admin/system-settings/+page.svelte | 34 ++++++++--------- .../admin/system-settings/AuthSettings.svelte | 2 +- .../system-settings/BackupSettings.svelte | 10 ++--- .../system-settings/FFmpegSettings.svelte | 10 ++--- .../system-settings/ImageSettings.svelte | 13 +++---- .../IntegrityChecksSettings.svelte | 6 +-- .../admin/system-settings/JobSettings.svelte | 8 ++-- .../system-settings/LibrarySettings.svelte | 8 ++-- .../system-settings/LoggingSettings.svelte | 10 ++--- .../MachineLearningSettings.svelte | 8 ++-- .../admin/system-settings/MapSettings.svelte | 6 +-- .../system-settings/MetadataSettings.svelte | 6 +-- .../NewVersionCheckSettings.svelte | 8 ++-- .../NightlyTasksSettings.svelte | 10 ++--- .../NotificationSettings.svelte | 4 +- .../system-settings/ServerSettings.svelte | 10 ++--- .../system-settings/TemplateSettings.svelte | 6 +-- .../system-settings/ThemeSettings.svelte | 6 +-- .../system-settings/TrashSettings.svelte | 10 ++--- .../admin/system-settings/UserSettings.svelte | 11 +++--- .../admin/users/(list)/new/+page.svelte | 6 +-- .../routes/admin/users/[id]/+layout.svelte | 12 +++--- .../routes/admin/users/[id]/edit/+page.svelte | 6 +-- .../routes/auth/change-password/+page.svelte | 2 +- web/src/routes/auth/login/+page.svelte | 8 ++-- web/src/routes/auth/onboarding/+page.svelte | 26 ++++++------- .../auth/onboarding/OnboardingHello.svelte | 4 +- .../auth/onboarding/OnboardingTheme.svelte | 2 +- web/src/routes/auth/pin-prompt/+page.svelte | 2 +- web/src/routes/auth/register/+page.svelte | 2 +- web/src/routes/maintenance/+page.svelte | 4 +- .../maintenance/MaintenanceRestoreFlow.svelte | 2 +- .../RestoreFlowAutoSelectBackup.svelte | 6 +-- .../RestoreFlowDetectInstall.svelte | 2 +- .../maintenance/RestoreFlowIntro.svelte | 2 +- .../RestoreFlowSelectBackup.svelte | 4 +- web/test/common/factories.ts | 2 +- web/test/medium/matchers.ts | 2 +- web/test/unit/matchers.ts | 2 +- 209 files changed, 535 insertions(+), 541 deletions(-) diff --git a/web/.prettierrc b/web/.prettierrc index c19bf13b1..060db6d6b 100644 --- a/web/.prettierrc +++ b/web/.prettierrc @@ -1,9 +1,11 @@ { "importOrder": ["", "", "^\\$(.*)$", "^#test-data(.*)$", "^[./]"], - "importOrderSeparation": false, + "importOrderCaseSensitive": true, + "importOrderSafeSideEffects": [".*"], + "importOrderTypeScriptVersion": "6.0.0", "jsonRecursiveSort": true, "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }], - "plugins": ["@trivago/prettier-plugin-sort-imports", "prettier-plugin-svelte", "prettier-plugin-sort-json"], + "plugins": ["@ianvs/prettier-plugin-sort-imports", "prettier-plugin-svelte", "prettier-plugin-sort-json"], "printWidth": 120, "semi": true, "singleQuote": true, diff --git a/web/package.json b/web/package.json index 40a69a30d..7160e51be 100644 --- a/web/package.json +++ b/web/package.json @@ -83,6 +83,7 @@ }, "devDependencies": { "@eslint/js": "^10.0.0", + "@ianvs/prettier-plugin-sort-imports": "^4.7.1", "@koddsson/eslint-plugin-tscompat": "^0.4.0", "@playwright/test": "1.64.1", "@socket.io/component-emitter": "^3.1.0", @@ -91,7 +92,6 @@ "@sveltejs/kit": "^3.0.0", "@sveltejs/vite-plugin-svelte": "7.3.1", "@tailwindcss/vite": "^4.2.4", - "@trivago/prettier-plugin-sort-imports": "^6.0.2", "@types/chromecast-caf-sender": "^1.0.11", "@types/dom-to-image": "^2.6.7", "@types/justified-layout": "^4.1.4", diff --git a/web/src/lib/commands.ts b/web/src/lib/commands.ts index a6814e71f..56475bc5f 100644 --- a/web/src/lib/commands.ts +++ b/web/src/lib/commands.ts @@ -3,7 +3,7 @@ import { readPreloadedQuery } from '#lib/queries/client.ts'; import { getUserConfigQuery } from '#lib/queries/config-user.query.ts'; import { Route } from '#lib/route.ts'; import { copyToClipboard } from '#lib/utils.ts'; -import { defaultProvider, screencastManager, themeManager, ThemePreference, type ActionItem } from '@immich/ui'; +import { ThemePreference, defaultProvider, screencastManager, themeManager, type ActionItem } from '@immich/ui'; import { mdiAccountMultipleOutline, mdiAccountOutline, diff --git a/web/src/lib/components/AdaptiveImage.svelte b/web/src/lib/components/AdaptiveImage.svelte index 6b3896de1..e9f8216b3 100644 --- a/web/src/lib/components/AdaptiveImage.svelte +++ b/web/src/lib/components/AdaptiveImage.svelte @@ -51,11 +51,12 @@ diff --git a/web/src/lib/components/pages/SharedLinkPage.svelte b/web/src/lib/components/pages/SharedLinkPage.svelte index 13724a6be..d086d7fdd 100644 --- a/web/src/lib/components/pages/SharedLinkPage.svelte +++ b/web/src/lib/components/pages/SharedLinkPage.svelte @@ -8,7 +8,7 @@ import { setSharedLink } from '#lib/utils.ts'; import { handleError } from '#lib/utils/handle-error.ts'; import { navigate } from '#lib/utils/navigation.ts'; - import { sharedLinkLogin, SharedLinkType, type AssetResponseDto, type SharedLinkResponseDto } from '@immich/sdk'; + import { SharedLinkType, sharedLinkLogin, type AssetResponseDto, type SharedLinkResponseDto } from '@immich/sdk'; import { Button, Logo, PasswordInput } from '@immich/ui'; import { onDestroy, tick } from 'svelte'; import { t } from 'svelte-i18n'; diff --git a/web/src/lib/components/share-page/IndividualSharedViewer.svelte b/web/src/lib/components/share-page/IndividualSharedViewer.svelte index dcbff1c31..e34f86228 100644 --- a/web/src/lib/components/share-page/IndividualSharedViewer.svelte +++ b/web/src/lib/components/share-page/IndividualSharedViewer.svelte @@ -1,9 +1,8 @@ {#if themeManager.preference !== ThemePreference.System} diff --git a/web/src/lib/components/shared-components/album-selection/album-selection-utils.spec.ts b/web/src/lib/components/shared-components/album-selection/album-selection-utils.spec.ts index 443f9363a..386d7b0be 100644 --- a/web/src/lib/components/shared-components/album-selection/album-selection-utils.spec.ts +++ b/web/src/lib/components/shared-components/album-selection/album-selection-utils.spec.ts @@ -1,7 +1,7 @@ import { - type AlbumModalRow, AlbumModalRowConverter, AlbumModalRowType, + type AlbumModalRow, } from '#lib/components/shared-components/album-selection/album-selection-utils.ts'; import { AlbumSortBy, SortOrder } from '#lib/stores/preferences.store.ts'; import { factory } from '#test/unit/factories.ts'; diff --git a/web/src/lib/components/shared-components/context-menu/MenuOption.svelte b/web/src/lib/components/shared-components/context-menu/MenuOption.svelte index 769bb75a8..06c41f423 100644 --- a/web/src/lib/components/shared-components/context-menu/MenuOption.svelte +++ b/web/src/lib/components/shared-components/context-menu/MenuOption.svelte @@ -1,6 +1,9 @@ diff --git a/web/src/lib/components/shared-components/search-bar/SearchLocationSection.svelte b/web/src/lib/components/shared-components/search-bar/SearchLocationSection.svelte index 6df1c1d36..6d7ec5f17 100644 --- a/web/src/lib/components/shared-components/search-bar/SearchLocationSection.svelte +++ b/web/src/lib/components/shared-components/search-bar/SearchLocationSection.svelte @@ -2,7 +2,7 @@ import Combobox, { asComboboxOptions, asSelectedOption } from '#lib/components/shared-components/Combobox.svelte'; import { searchManager } from '#lib/managers/search-manager.svelte.ts'; import { handlePromiseError } from '#lib/utils.ts'; - import { getSearchSuggestions, SearchSuggestionType } from '@immich/sdk'; + import { SearchSuggestionType, getSearchSuggestions } from '@immich/sdk'; import { Text } from '@immich/ui'; import { onMount } from 'svelte'; import { t } from 'svelte-i18n'; diff --git a/web/src/lib/components/shared-components/search-bar/SearchMediaSection.svelte b/web/src/lib/components/shared-components/search-bar/SearchMediaSection.svelte index af4f0bdfc..fc08bee65 100644 --- a/web/src/lib/components/shared-components/search-bar/SearchMediaSection.svelte +++ b/web/src/lib/components/shared-components/search-bar/SearchMediaSection.svelte @@ -1,8 +1,8 @@
diff --git a/web/src/lib/components/shared-components/side-bar/PurchaseInfo.svelte b/web/src/lib/components/shared-components/side-bar/PurchaseInfo.svelte index e3f2c5e28..0aadb12cf 100644 --- a/web/src/lib/components/shared-components/side-bar/PurchaseInfo.svelte +++ b/web/src/lib/components/shared-components/side-bar/PurchaseInfo.svelte @@ -1,5 +1,4 @@ diff --git a/web/src/routes/auth/pin-prompt/+page.svelte b/web/src/routes/auth/pin-prompt/+page.svelte index 65c1ab749..26a486625 100644 --- a/web/src/routes/auth/pin-prompt/+page.svelte +++ b/web/src/routes/auth/pin-prompt/+page.svelte @@ -1,5 +1,4 @@