]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-21970 implement prettier plugin organize imports
authorIsmail Cherri <ismail.cherri@sonarsource.com>
Tue, 16 Apr 2024 07:28:41 +0000 (02:28 -0500)
committersonartech <sonartech@sonarsource.com>
Tue, 16 Apr 2024 20:02:44 +0000 (20:02 +0000)
27 files changed:
server/sonar-web/.prettierrc
server/sonar-web/design-system/package.json
server/sonar-web/design-system/src/components/__tests__/Link-test.tsx
server/sonar-web/design-system/src/components/__tests__/NavLink-test.tsx
server/sonar-web/package.json
server/sonar-web/src/main/js/api/mocks/QualityProfilesServiceMock.ts
server/sonar-web/src/main/js/app/components/GlobalFooter.tsx
server/sonar-web/src/main/js/apps/component-measures/sidebar/Sidebar.tsx
server/sonar-web/src/main/js/apps/create/project/Azure/AzurePersonalAccessTokenForm.tsx
server/sonar-web/src/main/js/apps/create/project/Github/GitHubProjectCreate.tsx
server/sonar-web/src/main/js/apps/create/project/Gitlab/GItlabPersonalAccessTokenForm.tsx
server/sonar-web/src/main/js/apps/create/project/Gitlab/GitlabProjectCreate.tsx
server/sonar-web/src/main/js/apps/create/project/Gitlab/GitlabProjectCreateRenderer.tsx
server/sonar-web/src/main/js/apps/create/project/Gitlab/GitlabProjectSelectionForm.tsx
server/sonar-web/src/main/js/apps/create/project/__tests__/GitLab-it.tsx
server/sonar-web/src/main/js/apps/create/project/monorepo/MonorepoConnectionSelector.tsx
server/sonar-web/src/main/js/apps/create/project/monorepo/MonorepoProjectCreate.tsx
server/sonar-web/src/main/js/apps/create/project/usePersonalAccessToken.ts
server/sonar-web/src/main/js/apps/projects/components/__tests__/FavoriteFilter-test.tsx
server/sonar-web/src/main/js/apps/sessions/components/__tests__/Login-it.tsx
server/sonar-web/src/main/js/apps/settings/components/authentication/ConfigurationForm.tsx
server/sonar-web/src/main/js/apps/settings/components/authentication/ConfirmProvisioningModal.tsx
server/sonar-web/src/main/js/apps/settings/components/authentication/GitLabAuthenticationTab.tsx
server/sonar-web/src/main/js/apps/settings/components/authentication/GithubAuthenticationTab.tsx
server/sonar-web/src/main/js/components/issue/popups/IssueTagsPopup.tsx
server/sonar-web/src/main/js/components/workspace/WorkspaceNavComponent.tsx
server/sonar-web/yarn.lock

index 5ac85e271d543cf99a88eddb0cd368c1002ca629..910f0844a44c9fb6701ee3b1e66fefb03798cb49 100644 (file)
@@ -1,4 +1,5 @@
 {
   "printWidth": 100,
-  "singleQuote": true
+  "singleQuote": true,
+  "plugins": ["prettier-plugin-organize-imports"]
 }
index 6579424e13eac341a72db23f0d887fddf49ab809..e81329f12e05854a7bc77fe26bb728fd8038bcca 100644 (file)
@@ -49,6 +49,7 @@
     "postcss-calc": "9.0.1",
     "postcss-custom-properties": "12.1.11",
     "prettier": "^3.1.0",
+    "prettier-plugin-organize-imports": "3.2.4",
     "twin.macro": "3.4.1",
     "typescript": "5.3.3",
     "vite": "4.5.0",
index ddfe30ed5ba66bfdcd9d0e1ebac53198f9f90fd7..f9140e16dcd872c96cc5a6d897e532241c23e1df 100644 (file)
@@ -18,8 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { screen } from '@testing-library/react';
-// @ts-expect-error React is needed for <></> fragments
-import React from 'react';
+import * as React from 'react';
 import { MemoryRouter, Route, Routes, useLocation } from 'react-router-dom';
 import { render } from '../../helpers/testUtils';
 import { ContentLink, DiscreetLink, StandoutLink as Link } from '../Link';
@@ -117,10 +116,14 @@ const setupWithMemoryRouter = (component: JSX.Element, initialEntries = ['/initi
       <Routes>
         <Route
           element={
-            <>
+            // Below: using <></> won't work in extensions ('React' is not defined). This is because the
+            // name 'React' would already have been minified to something else when <> is resolved to
+            // React.Fragment
+            // eslint-disable-next-line react/jsx-fragments
+            <React.Fragment>
               {component}
               <ShowPath />
-            </>
+            </React.Fragment>
           }
           path="/initial"
         />
index e40047658754de6acbb76c9d2f266937d992c1db..6aaa88a9c4493a48caa4caa2203f09a3866a0575 100644 (file)
@@ -18,8 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { screen } from '@testing-library/react';
-// @ts-expect-error React is needed for <></> fragments
-import React from 'react';
+import * as React from 'react';
 import { MemoryRouter, Route, Routes, useLocation } from 'react-router-dom';
 import { render } from '../../helpers/testUtils';
 import NavLink from '../NavLink';
@@ -99,10 +98,14 @@ const setupWithMemoryRouter = (component: JSX.Element, initialEntries = ['/initi
       <Routes>
         <Route
           element={
-            <>
+            // Below: using <></> won't work in extensions ('React' is not defined). This is because the
+            // name 'React' would already have been minified to something else when <> is resolved to
+            // React.Fragment
+            // eslint-disable-next-line react/jsx-fragments
+            <React.Fragment>
               {component}
               <ShowPath />
-            </>
+            </React.Fragment>
           }
           path="/initial"
         />
index ab14ba27caaeced18a7d8f7318239e189cd2e940..3261c94e24f7e1a805cc9a95b5fb7a4a1915952b 100644 (file)
     "postcss-calc": "9.0.1",
     "postcss-custom-properties": "12.1.11",
     "prettier": "3.2.5",
+    "prettier-plugin-organize-imports": "3.2.4",
     "react-select-event": "5.5.1",
     "tailwindcss": "3.3.5",
     "turbo": "1.11.3",
index 021f83755c16f2e5961ce7a67add617df1ef8a16..e348ef7dd2ab00bc74084ceb56f93fc192c1250a 100644 (file)
@@ -72,7 +72,7 @@ import {
   searchUsers,
   setDefaultProfile,
 } from '../quality-profiles';
-import { getRuleDetails, searchRules, listRules } from '../rules';
+import { getRuleDetails, listRules, searchRules } from '../rules';
 
 jest.mock('../../api/rules');
 
index 085e75a378dc979d999744170db394776343062b..098292751bf85ab593828dd6538c5efa19117590 100644 (file)
@@ -33,8 +33,8 @@ import InstanceMessage from '../../components/common/InstanceMessage';
 import AppVersionStatus from '../../components/shared/AppVersionStatus';
 import { useDocUrl } from '../../helpers/docs';
 import { getEdition } from '../../helpers/editions';
-import { useAppState } from './app-state/withAppStateContext';
 import GlobalFooterBranding from './GlobalFooterBranding';
+import { useAppState } from './app-state/withAppStateContext';
 
 interface GlobalFooterProps {
   hideLoggedInInfo?: boolean;
index d32cb1deea4e0281ac192c9fe0da675eac9be125..efe68a77584e67464f96b97548ef3f2cab7e2a57 100644 (file)
@@ -33,10 +33,10 @@ import * as React from 'react';
 import A11ySkipTarget from '../../../components/a11y/A11ySkipTarget';
 import { translate } from '../../../helpers/l10n';
 import useFollowScroll from '../../../hooks/useFollowScroll';
+import { Domain } from '../../../types/measures';
 import { MeasureEnhanced } from '../../../types/types';
 import { PROJECT_OVERVEW, Query, isProjectOverview, populateDomainsFromMeasures } from '../utils';
 import DomainSubnavigation from './DomainSubnavigation';
-import { Domain } from '../../../types/measures';
 
 interface Props {
   measures: MeasureEnhanced[];
index 1c38f7cb3bc53ad8c79958d106d818d7eee76679..fce1c4f4f2a0fdf77dd8eb40bf572b4a4539e3f9 100644 (file)
  */
 import {
   ButtonPrimary,
-  Spinner,
   FlagErrorIcon,
   FlagMessage,
   FormField,
   InputField,
   LightPrimary,
   Link,
+  Spinner,
 } from 'design-system';
 import * as React from 'react';
 import { FormattedMessage } from 'react-intl';
index a31c97af912ef9d3f111d596932cb709d289e691..f812560a5df920cd470b1a18abcdeeb63ee54dd2 100644 (file)
@@ -17,6 +17,7 @@
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
+import { LabelValueSelectOption } from 'design-system';
 import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
 import { getGithubOrganizations, getGithubRepositories } from '../../../../api/alm-integrations';
 import { useLocation, useRouter } from '../../../../components/hoc/withRouter';
@@ -29,7 +30,6 @@ import MonorepoProjectCreate from '../monorepo/MonorepoProjectCreate';
 import { CreateProjectModes } from '../types';
 import GitHubProjectCreateRenderer from './GitHubProjectCreateRenderer';
 import { redirectToGithub } from './utils';
-import { LabelValueSelectOption } from 'design-system';
 
 interface Props {
   canAdmin: boolean;
index 483de9465f597ecaae35aefd83f1092eb084834b..cb2c8eeaaba76fc45f56947e2b1c013c87eb3fdf 100644 (file)
@@ -30,8 +30,8 @@ import {
 import React from 'react';
 import { FormattedMessage } from 'react-intl';
 import { translate } from '../../../../helpers/l10n';
-import { usePersonalAccessToken } from '../usePersonalAccessToken';
 import { AlmInstanceBase } from '../../../../types/alm-settings';
+import { usePersonalAccessToken } from '../usePersonalAccessToken';
 
 interface Props {
   almSetting: AlmInstanceBase;
index 709200e925653aaf8710582198254b4faca8ce11..56af9258e916ad518d00267c48a54fe6eb54af60 100644 (file)
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
+import { LabelValueSelectOption } from 'design-system';
+import { orderBy } from 'lodash';
 import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
 import { getGitlabProjects } from '../../../../api/alm-integrations';
+import { useLocation, useRouter } from '../../../../components/hoc/withRouter';
 import { GitlabProject } from '../../../../types/alm-integration';
 import { AlmInstanceBase } from '../../../../types/alm-settings';
+import { DopSetting } from '../../../../types/dop-translation';
 import { Paging } from '../../../../types/types';
 import { ImportProjectParam } from '../CreateProjectPage';
-import { CreateProjectModes } from '../types';
-import GitlabProjectCreateRenderer from './GitlabProjectCreateRenderer';
-import { DopSetting } from '../../../../types/dop-translation';
-import { useLocation, useRouter } from '../../../../components/hoc/withRouter';
 import MonorepoProjectCreate from '../monorepo/MonorepoProjectCreate';
+import { CreateProjectModes } from '../types';
 import GitlabPersonalAccessTokenForm from './GItlabPersonalAccessTokenForm';
-import { orderBy } from 'lodash';
-import { LabelValueSelectOption } from 'design-system';
+import GitlabProjectCreateRenderer from './GitlabProjectCreateRenderer';
 
 interface Props {
   canAdmin: boolean;
index 9d64c069572aec60378802d59f4546bab2ce87f0..d78465b79ff2e2499b66252d7cbb16006bad468f 100644 (file)
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
+import { Link, Spinner } from '@sonarsource/echoes-react';
 import { LightPrimary, Title } from 'design-system';
 import * as React from 'react';
+import { FormattedMessage } from 'react-intl';
+import { AvailableFeaturesContext } from '../../../../app/components/available-features/AvailableFeaturesContext';
 import { translate } from '../../../../helpers/l10n';
+import { queryToSearch } from '../../../../helpers/urls';
 import { GitlabProject } from '../../../../types/alm-integration';
 import { AlmInstanceBase, AlmKeys, AlmSettingsInstance } from '../../../../types/alm-settings';
+import { Feature } from '../../../../types/features';
 import { Paging } from '../../../../types/types';
 import AlmSettingsInstanceDropdown from '../components/AlmSettingsInstanceDropdown';
 import WrongBindingCountAlert from '../components/WrongBindingCountAlert';
+import { CreateProjectModes } from '../types';
 import GitlabPersonalAccessTokenForm from './GItlabPersonalAccessTokenForm';
 import GitlabProjectSelectionForm from './GitlabProjectSelectionForm';
-import { FormattedMessage } from 'react-intl';
-import { Link, Spinner } from '@sonarsource/echoes-react';
-import { queryToSearch } from '../../../../helpers/urls';
-import { CreateProjectModes } from '../types';
-import { Feature } from '../../../../types/features';
-import { AvailableFeaturesContext } from '../../../../app/components/available-features/AvailableFeaturesContext';
 
 export interface GitlabProjectCreateRendererProps {
   canAdmin?: boolean;
index 76dc41a54ef31c48b48c74e31d4b3bfa75a51e23..2f42596321ced4b3bb126511f7b6f80bd1b24cb4 100644 (file)
@@ -17,6 +17,7 @@
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
+import { Link } from '@sonarsource/echoes-react';
 import { FlagMessage, InputSearch, LightPrimary } from 'design-system';
 import * as React from 'react';
 import { FormattedMessage } from 'react-intl';
@@ -29,7 +30,6 @@ import { GitlabProject } from '../../../../types/alm-integration';
 import { Paging } from '../../../../types/types';
 import AlmRepoItem from '../components/AlmRepoItem';
 import { CreateProjectModes } from '../types';
-import { Link } from '@sonarsource/echoes-react';
 
 export interface GitlabProjectSelectionFormProps {
   loadingMore: boolean;
index 356e373eb25f06ae40a6b05b00cf99e8e4a874ba..6de834ce94d21618cb26885c2621984c827a0c10 100644 (file)
@@ -27,8 +27,8 @@ import DopTranslationServiceMock from '../../../../api/mocks/DopTranslationServi
 import NewCodeDefinitionServiceMock from '../../../../api/mocks/NewCodeDefinitionServiceMock';
 import { renderApp } from '../../../../helpers/testReactTestingUtils';
 import { byLabelText, byRole, byText } from '../../../../helpers/testSelector';
-import CreateProjectPage from '../CreateProjectPage';
 import { Feature } from '../../../../types/features';
+import CreateProjectPage from '../CreateProjectPage';
 import { CreateProjectModes } from '../types';
 
 jest.mock('../../../../api/alm-integrations');
index fbfbcfde44b1a5b0bfdcb71225339e9c0f977975..9a9827fd19fc113d3c87416f67abae1dcee1aa1c 100644 (file)
 import { Title } from 'design-system/lib';
 import React from 'react';
 import { FormattedMessage } from 'react-intl';
-import DopSettingDropdown from '../components/DopSettingDropdown';
-import { MonorepoOrganisationSelector } from './MonorepoOrganisationSelector';
-import { MonorepoRepositorySelector } from './MonorepoRepositorySelector';
 import { LabelValueSelectOption } from '../../../../helpers/search';
-import { DopSetting } from '../../../../types/dop-translation';
 import { AlmKeys } from '../../../../types/alm-settings';
+import { DopSetting } from '../../../../types/dop-translation';
+import DopSettingDropdown from '../components/DopSettingDropdown';
 import MonorepoNoOrganisations from './MonorepoNoOrganisations';
+import { MonorepoOrganisationSelector } from './MonorepoOrganisationSelector';
+import { MonorepoRepositorySelector } from './MonorepoRepositorySelector';
 
 interface Props {
   almKey: AlmKeys;
index a3b1232dc4b2b505702a234d210d3b78dd2ab947..1db889773733073f1b5258b28751139f0d41d556 100644 (file)
@@ -32,8 +32,8 @@ import { ImportProjectParam } from '../CreateProjectPage';
 import { ProjectData } from '../components/ProjectValidation';
 import { CreateProjectModes } from '../types';
 import { getSanitizedProjectKey } from '../utils';
-import { MonorepoProjectHeader } from './MonorepoProjectHeader';
 import { MonorepoConnectionSelector } from './MonorepoConnectionSelector';
+import { MonorepoProjectHeader } from './MonorepoProjectHeader';
 import { MonorepoProjectsList } from './MonorepoProjectsList';
 
 interface MonorepoProjectCreateProps {
index b183a9b106097e84f9b63b87804cfbe1ee41b6e2..f365bdfb86304d1130b6c2e3e8f5b0f80d47e801 100644 (file)
@@ -23,8 +23,8 @@ import {
   setAlmPersonalAccessToken,
 } from '../../../api/alm-integrations';
 import { translate } from '../../../helpers/l10n';
-import { tokenExistedBefore } from './utils';
 import { AlmInstanceBase } from '../../../types/alm-settings';
+import { tokenExistedBefore } from './utils';
 
 export interface PATType {
   validationFailed: boolean;
index 651c2651ebb8866f5e8162899c84e1c64b73de25..700c48cfcca868c6879d8624a7c60d50721fc49b 100644 (file)
@@ -28,7 +28,7 @@ import {
   mockRouter,
 } from '../../../../helpers/testMocks';
 import { renderComponent } from '../../../../helpers/testReactTestingUtils';
-import { ALL_PATHNAME, FavoriteFilter, FAVORITE_PATHNAME } from '../FavoriteFilter';
+import { ALL_PATHNAME, FAVORITE_PATHNAME, FavoriteFilter } from '../FavoriteFilter';
 
 jest.mock('../../../../helpers/storage', () => ({
   save: jest.fn(),
index 47928aaf954a6be96c74539fef1777474a63deb0..cf883832d320f48e66d126cebfa03b254cb27a3c 100644 (file)
@@ -24,11 +24,11 @@ import { addGlobalErrorMessage } from 'design-system';
 import * as React from 'react';
 import { getLoginMessage } from '../../../../api/settings';
 import { getIdentityProviders } from '../../../../api/users';
+import { getBaseUrl } from '../../../../helpers/system';
 import { mockLocation } from '../../../../helpers/testMocks';
 import { renderComponent } from '../../../../helpers/testReactTestingUtils';
 import { byLabelText, byRole, byText } from '../../../../helpers/testSelector';
 import { LoginContainer } from '../LoginContainer';
-import { getBaseUrl } from '../../../../helpers/system';
 
 jest.mock('../../../../helpers/system', () => ({
   getBaseUrl: jest.fn().mockReturnValue(''),
index e52fdc491d11eebf2ed03bc58e4b9e98f0d0335e..6655ddaedb2463f719aaff192fac1b4f938310b3 100644 (file)
@@ -31,9 +31,9 @@ import { ProvisioningType } from '../../../../types/provisioning';
 import { Dict, Provider } from '../../../../types/types';
 import { AuthenticationTabs, DOCUMENTATION_LINK_SUFFIXES } from './Authentication';
 import AuthenticationFormField from './AuthenticationFormField';
+import ConfirmProvisioningModal from './ConfirmProvisioningModal';
 import { SettingValue } from './hook/useConfiguration';
 import { isAllowToSignUpEnabled, isOrganizationListEmpty } from './hook/useGithubConfiguration';
-import ConfirmProvisioningModal from './ConfirmProvisioningModal';
 
 interface Props {
   canBeSave: boolean;
index 2968b4252527794f06ae793c9e3e4570bc64193c..b6a8dc3e13c9a526576ed65dc33ceef0db846076 100644 (file)
  */
 import { FlagMessage } from 'design-system';
 import React from 'react';
+import { useIntl } from 'react-intl';
 import ConfirmModal from '../../../../components/controls/ConfirmModal';
 import { ProvisioningType } from '../../../../types/provisioning';
 import { Provider } from '../../../../types/types';
-import { useIntl } from 'react-intl';
 
 interface Props {
   allowUsersToSignUp?: boolean;
index 189ec2d1ab8bd4e49bd8d572c3b6aecb9bdeac22..829b9007e7eb403262449322d9b74b433e4dafb8 100644 (file)
@@ -40,11 +40,11 @@ import { Provider } from '../../../../types/types';
 import { DOCUMENTATION_LINK_SUFFIXES } from './Authentication';
 import AuthenticationFormField from './AuthenticationFormField';
 import ConfigurationDetails from './ConfigurationDetails';
+import ConfirmProvisioningModal from './ConfirmProvisioningModal';
 import GitLabConfigurationForm from './GitLabConfigurationForm';
 import GitLabConfigurationValidity from './GitLabConfigurationValidity';
 import ProvisioningSection from './ProvisioningSection';
 import TabHeader from './TabHeader';
-import ConfirmProvisioningModal from './ConfirmProvisioningModal';
 
 interface ChangesForm {
   provisioningType?: GitLabConfigurationUpdateBody['provisioningType'];
index 2f4937eefba4fe5ea31b7e9a97500b4f8857d598..e9da422d772b2efa283aa34784f9ca3ec0e4acab 100644 (file)
@@ -37,6 +37,7 @@ import AuthenticationFormField from './AuthenticationFormField';
 import AutoProvisioningConsent from './AutoProvisionningConsent';
 import ConfigurationDetails from './ConfigurationDetails';
 import ConfigurationForm from './ConfigurationForm';
+import ConfirmProvisioningModal from './ConfirmProvisioningModal';
 import GitHubConfigurationValidity from './GitHubConfigurationValidity';
 import GitHubMappingModal from './GitHubMappingModal';
 import ProvisioningSection from './ProvisioningSection';
@@ -48,7 +49,6 @@ import useGithubConfiguration, {
   isAllowToSignUpEnabled,
   isOrganizationListEmpty,
 } from './hook/useGithubConfiguration';
-import ConfirmProvisioningModal from './ConfirmProvisioningModal';
 
 interface GithubAuthenticationProps {
   definitions: ExtendedSettingDefinition[];
index 045b0d9099583403c9668e5ab395c225394ac18b..0e91805feb2e912df8e2009b77a58065600f492a 100644 (file)
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-import { searchIssueTags } from '../../../api/issues';
 import { MultiSelector } from 'design-system';
 import { difference, noop, without } from 'lodash';
 import * as React from 'react';
+import { searchIssueTags } from '../../../api/issues';
 import { translate } from '../../../helpers/l10n';
 
 interface IssueTagsPopupProps {
index ef6501a090900dd33b3408cb866ef89a0d18c7d1..07424c8ff2624e5ba18940e900903d08b585ca2c 100644 (file)
@@ -18,9 +18,9 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import * as React from 'react';
-import { ComponentDescriptor } from './context';
 import WorkspaceComponentTitle from './WorkspaceComponentTitle';
 import WorkspaceNavItem from './WorkspaceNavItem';
+import { ComponentDescriptor } from './context';
 
 export interface Props {
   component: ComponentDescriptor;
index f21b0771947d86b61a08c2080fc0972b67f9d395..146903e68e08ae6a3c435c3077bef2f51965c577 100644 (file)
@@ -5828,6 +5828,7 @@ __metadata:
     postcss-calc: "npm:9.0.1"
     postcss-custom-properties: "npm:12.1.11"
     prettier: "npm:3.2.5"
+    prettier-plugin-organize-imports: "npm:3.2.4"
     react: "npm:18.2.0"
     react-day-picker: "npm:8.10.0"
     react-dom: "npm:18.2.0"
@@ -7705,6 +7706,7 @@ __metadata:
     postcss-calc: "npm:9.0.1"
     postcss-custom-properties: "npm:12.1.11"
     prettier: "npm:^3.1.0"
+    prettier-plugin-organize-imports: "npm:3.2.4"
     react-toastify: "npm:10.0.4"
     twin.macro: "npm:3.4.1"
     typescript: "npm:5.3.3"
@@ -12748,6 +12750,23 @@ __metadata:
   languageName: node
   linkType: hard
 
+"prettier-plugin-organize-imports@npm:3.2.4":
+  version: 3.2.4
+  resolution: "prettier-plugin-organize-imports@npm:3.2.4"
+  peerDependencies:
+    "@volar/vue-language-plugin-pug": ^1.0.4
+    "@volar/vue-typescript": ^1.0.4
+    prettier: ">=2.0"
+    typescript: ">=2.9"
+  peerDependenciesMeta:
+    "@volar/vue-language-plugin-pug":
+      optional: true
+    "@volar/vue-typescript":
+      optional: true
+  checksum: 10/93c98d365af500aa4c72f5330d82c20a20d0e7661a9692e6f26a76a2f4f88b99e0f85dcb8871e98b6d687d6e19ea5f1dcc937f9e29fd0778e888675ecafed233
+  languageName: node
+  linkType: hard
+
 "prettier@npm:3.2.5":
   version: 3.2.5
   resolution: "prettier@npm:3.2.5"