This commit is contained in:
pa
2026-03-10 17:44:15 +09:00
parent 17b582c904
commit ff1529920b
237 changed files with 419 additions and 419 deletions

View File

@@ -276,10 +276,10 @@
} from '../../../stores';
import { userImage, userStatusClass } from '../../../shared/utils';
import { showUserDialog } from '../../../coordinators/userCoordinator';
import { database } from '../../../service/database';
import { watchState } from '../../../service/watchState';
import { database } from '../../../services/database';
import { watchState } from '../../../services/watchState';
import configRepository from '../../../service/config';
import configRepository from '../../../services/config';
const { t } = useI18n();
const friendStore = useFriendStore();

View File

@@ -2,7 +2,7 @@ import { nextTick, reactive, ref } from 'vue';
import dayjs from 'dayjs';
import { database } from '../../../service/database';
import { database } from '../../../services/database';
import { getWorldName } from '../../../shared/utils';
export function useInstanceActivityData() {

View File

@@ -1,6 +1,6 @@
import { nextTick, ref } from 'vue';
import configRepository from '../../../service/config';
import configRepository from '../../../services/config';
export function useInstanceActivitySettings() {
const barWidth = ref(25);

View File

@@ -7,7 +7,7 @@ import {
watch
} from 'vue';
import configRepository from '../../../service/config.js';
import configRepository from '../../../services/config.js';
function clamp(value, min, max) {
if (Number.isNaN(value)) {

View File

@@ -8,7 +8,7 @@ import {
watch
} from 'vue';
import configRepository from '../../../service/config.js';
import configRepository from '../../../services/config.js';
/**
* @param {object} options

View File

@@ -1,7 +1,7 @@
import { Trash2 } from 'lucide-vue-next';
import { Button } from '../../../components/ui/button';
import { i18n } from '../../../plugin';
import { i18n } from '../../../plugins';
const { t } = i18n.global;

View File

@@ -1,7 +1,7 @@
import { Trash2 } from 'lucide-vue-next';
import { Button } from '../../../components/ui/button';
import { i18n } from '../../../plugin';
import { i18n } from '../../../plugins';
const { t } = i18n.global;

View File

@@ -1,7 +1,7 @@
import { Trash2 } from 'lucide-vue-next';
import { Button } from '../../../components/ui/button';
import { i18n } from '../../../plugin';
import { i18n } from '../../../plugins';
const { t } = i18n.global;

View File

@@ -15,7 +15,7 @@ import {
ChevronRight
} from 'lucide-vue-next';
import { formatDateFilter, statusClass, timeToText } from '../../shared/utils';
import { i18n } from '../../plugin/i18n';
import { i18n } from '../../plugins/i18n';
import { useGalleryStore } from '../../stores';
import { showUserDialog } from '../../coordinators/userCoordinator';

View File

@@ -144,8 +144,8 @@
import { Toggle } from '../../components/ui/toggle';
import { createColumns } from './columns.jsx';
import { localeIncludes } from '../../shared/utils';
import removeConfusables, { removeWhitespace } from '../../service/confusables';
import { router } from '../../plugin/router';
import removeConfusables, { removeWhitespace } from '../../services/confusables';
import { router } from '../../plugins/router';
import { useDataTableScrollHeight } from '../../composables/useDataTableScrollHeight';
import { useVrcxVueTable } from '../../lib/table/useVrcxVueTable';
import { showUserDialog } from '../../coordinators/userCoordinator';

View File

@@ -100,7 +100,7 @@ vi.mock('../../../coordinators/friendRelationshipCoordinator', () => ({
handleFriendDelete: (...args) => mocks.handleFriendDelete(...args)
}));
vi.mock('../../../plugin/router', () => ({
vi.mock('../../../plugins/router', () => ({
router: {
push: (...args) => mocks.routerPush(...args)
}
@@ -115,7 +115,7 @@ vi.mock('../../../api', () => ({
}
}));
vi.mock('../../../service/confusables', () => ({
vi.mock('../../../services/confusables', () => ({
default: (value) => value,
removeWhitespace: (value) => String(value ?? '').replace(/\s+/g, '')
}));

View File

@@ -3,7 +3,7 @@ import { ArrowUpDown, UserMinus } from 'lucide-vue-next';
import { Button } from '../../components/ui/button';
import { Checkbox } from '../../components/ui/checkbox';
import { TooltipWrapper } from '../../components/ui/tooltip';
import { i18n } from '../../plugin';
import { i18n } from '../../plugins';
import {
formatDateFilter,
getFaviconUrl,

View File

@@ -66,12 +66,12 @@
import { DataTableLayout } from '../../components/ui/data-table';
import { InputGroupField } from '../../components/ui/input-group';
import { createColumns } from './columns.jsx';
import { database } from '../../service/database';
import { database } from '../../services/database';
import { removeFromArray } from '../../shared/utils';
import { useDataTableScrollHeight } from '../../composables/useDataTableScrollHeight';
import { useVrcxVueTable } from '../../lib/table/useVrcxVueTable';
import configRepository from '../../service/config';
import configRepository from '../../services/config';
const appearanceSettingsStore = useAppearanceSettingsStore();
const vrcxStore = useVrcxStore();

View File

@@ -108,13 +108,13 @@ vi.mock('../../../components/ui/input-group', () => ({
}
}));
vi.mock('../../../service/config', () => ({
vi.mock('../../../services/config', () => ({
default: {
setString: (...args) => mocks.configSetString(...args)
}
}));
vi.mock('../../../service/database', () => ({
vi.mock('../../../services/database', () => ({
database: {
deleteFriendLogHistory: (...args) => mocks.deleteFriendLogHistory(...args)
}

View File

@@ -9,7 +9,7 @@ import { ArrowRight, ArrowUpDown, Trash2, X } from 'lucide-vue-next';
import { storeToRefs } from 'pinia';
import { formatDateFilter } from '../../shared/utils';
import { i18n } from '../../plugin';
import { i18n } from '../../plugins';
import { useUiStore } from '../../stores';
import { showUserDialog } from '../../coordinators/userCoordinator';

View File

@@ -154,7 +154,7 @@
import { getFriendsSortFunction } from '../../shared/utils';
import FriendLocationCard from './components/FriendsLocationsCard.vue';
import configRepository from '../../service/config.js';
import configRepository from '../../services/config.js';
const { t } = useI18n();

View File

@@ -71,7 +71,7 @@ vi.mock('../../../stores', () => ({
})
}));
vi.mock('../../../service/config.js', () => ({
vi.mock('../../../services/config.js', () => ({
default: {
getString: (...args) => mocks.configGetString(...args),
getBool: (...args) => mocks.configGetBool(...args),

View File

@@ -13,7 +13,7 @@ vi.mock('../../../../views/Feed/Feed.vue', () => ({
vi.mock('../../../../views/Feed/columns.jsx', () => ({
columns: []
}));
vi.mock('../../../../plugin/router', () => ({
vi.mock('../../../../plugins/router', () => ({
router: {
beforeEach: vi.fn(),
push: vi.fn(),
@@ -34,10 +34,10 @@ vi.mock('vue-router', async (importOriginal) => {
}))
};
});
vi.mock('../../../../plugin/interopApi', () => ({
vi.mock('../../../../plugins/interopApi', () => ({
initInteropApi: vi.fn()
}));
vi.mock('../../../../service/database', () => ({
vi.mock('../../../../services/database', () => ({
database: new Proxy(
{},
{
@@ -48,7 +48,7 @@ vi.mock('../../../../service/database', () => ({
}
)
}));
vi.mock('../../../../service/config', () => ({
vi.mock('../../../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi
@@ -74,10 +74,10 @@ vi.mock('../../../../service/config', () => ({
remove: vi.fn()
}
}));
vi.mock('../../../../service/jsonStorage', () => ({
vi.mock('../../../../services/jsonStorage', () => ({
default: vi.fn()
}));
vi.mock('../../../../service/watchState', () => ({
vi.mock('../../../../services/watchState', () => ({
watchState: { isLoggedIn: false }
}));
vi.mock('../../../../shared/utils/world', () => ({

View File

@@ -80,7 +80,7 @@
import { DataTableLayout } from '../../components/ui/data-table';
import { InputGroupField } from '../../components/ui/input-group';
import { createColumns } from './columns.jsx';
import { database } from '../../service/database';
import { database } from '../../services/database';
import { removeFromArray } from '../../shared/utils';
import { useDataTableScrollHeight } from '../../composables/useDataTableScrollHeight';
import { useVrcxVueTable } from '../../lib/table/useVrcxVueTable';

View File

@@ -6,7 +6,7 @@ import { ArrowUpDown, FileText, Trash2, X } from 'lucide-vue-next';
import { storeToRefs } from 'pinia';
import { formatDateFilter, openExternalLink } from '../../shared/utils';
import { i18n } from '../../plugin';
import { i18n } from '../../plugins';
import {
useInstanceStore,
useUiStore

View File

@@ -96,7 +96,7 @@
import { SidebarInset, SidebarProvider } from '../../components/ui/sidebar';
import { useAppearanceSettingsStore } from '../../stores';
import { useMainLayoutResizable } from '../../composables/useMainLayoutResizable';
import { watchState } from '../../service/watchState';
import { watchState } from '../../services/watchState';
import AvatarImportDialog from '../Favorites/dialogs/AvatarImportDialog.vue';
import ChangelogDialog from '../Settings/dialogs/ChangelogDialog.vue';

View File

@@ -80,7 +80,7 @@
import { useI18n } from 'vue-i18n';
import { useAuthStore, useVRCXUpdaterStore, useVrcxStore } from '../../../stores';
import { AppDebug } from '../../../service/appConfig';
import { AppDebug } from '../../../services/appConfig';
const { loginForm, enableCustomEndpoint } = storeToRefs(useAuthStore());
const { toggleCustomEndpoint } = useAuthStore();

View File

@@ -32,7 +32,7 @@ vi.mock('../../../../stores', () => ({
useVrcxStore: () => mocks.vrcxStore
}));
vi.mock('../../../../service/appConfig', () => ({
vi.mock('../../../../services/appConfig', () => ({
AppDebug: {
endpointDomainVrchat: 'api.vrchat.cloud',
websocketDomainVrchat: 'pipeline.vrchat.cloud'

View File

@@ -180,7 +180,7 @@
import { useAppearanceSettingsStore, useAuthStore, useVRCXUpdaterStore } from '../../stores';
import { getLanguageName, languageCodes } from '../../localization';
import { openExternalLink, userImage } from '../../shared/utils';
import { watchState } from '../../service/watchState';
import { watchState } from '../../services/watchState';
import LoginSettingsDialog from './Dialog/LoginSettingsDialog.vue';

View File

@@ -8,7 +8,7 @@ vi.mock('../../../views/Feed/Feed.vue', () => ({
default: { template: '<div />' }
}));
vi.mock('../../../views/Feed/columns.jsx', () => ({ columns: [] }));
vi.mock('../../../plugin/router', () => ({
vi.mock('../../../plugins/router', () => ({
router: {
beforeEach: vi.fn(),
push: vi.fn(),
@@ -30,8 +30,8 @@ vi.mock('vue-router', async (importOriginal) => {
useRoute: vi.fn(() => ({ query: {} }))
};
});
vi.mock('../../../plugin/interopApi', () => ({ initInteropApi: vi.fn() }));
vi.mock('../../../service/database', () => ({
vi.mock('../../../plugins/interopApi', () => ({ initInteropApi: vi.fn() }));
vi.mock('../../../services/database', () => ({
database: new Proxy(
{},
{
@@ -42,7 +42,7 @@ vi.mock('../../../service/database', () => ({
}
)
}));
vi.mock('../../../service/config', () => ({
vi.mock('../../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi.fn().mockImplementation((_k, d) => d ?? '{}'),
@@ -60,8 +60,8 @@ vi.mock('../../../service/config', () => ({
remove: vi.fn()
}
}));
vi.mock('../../../service/jsonStorage', () => ({ default: vi.fn() }));
vi.mock('../../../service/watchState', () => ({
vi.mock('../../../services/jsonStorage', () => ({ default: vi.fn() }));
vi.mock('../../../services/watchState', () => ({
watchState: {
isLoggedIn: false,
isFriendsLoaded: false,

View File

@@ -66,7 +66,7 @@
import { useDataTableScrollHeight } from '../../composables/useDataTableScrollHeight';
import { useVrcxVueTable } from '../../lib/table/useVrcxVueTable';
import configRepository from '../../service/config.js';
import configRepository from '../../services/config.js';
const { t } = useI18n();
const { playerModerationTable } = storeToRefs(useModerationStore());

View File

@@ -59,7 +59,7 @@ vi.mock('../../../stores', () => ({
})
}));
vi.mock('../../../service/config.js', () => ({
vi.mock('../../../services/config.js', () => ({
default: {
getString: (...args) => mocks.configGetString(...args),
setString: (...args) => mocks.configSetString(...args)

View File

@@ -16,7 +16,7 @@ vi.mock('pinia', async (importOriginal) => {
};
});
vi.mock('../../../plugin', () => ({
vi.mock('../../../plugins', () => ({
i18n: {
global: {
t: (...args) => mocks.t(...args),

View File

@@ -9,7 +9,7 @@ import { ArrowUpDown, Trash2, X } from 'lucide-vue-next';
import { storeToRefs } from 'pinia';
import { formatDateFilter } from '../../shared/utils';
import { i18n } from '../../plugin';
import { i18n } from '../../plugins';
import { useUiStore, useUserStore } from '../../stores';
import { showUserDialog } from '../../coordinators/userCoordinator';

View File

@@ -334,11 +334,11 @@
import { Slider } from '../../components/ui/slider';
import { TooltipWrapper } from '../../components/ui/tooltip';
import { avatarRequest } from '../../api';
import { database } from '../../service/database';
import { database } from '../../services/database';
import { getColumns } from './columns';
import { getPlatformInfo } from '../../shared/utils/avatar';
import { getTagColor } from '../../shared/constants';
import { processBulk } from '../../service/request';
import { processBulk } from '../../services/request';
import { useAvatarCardGrid } from './composables/useAvatarCardGrid';
import { useDataTableScrollHeight } from '../../composables/useDataTableScrollHeight';
import { useVrcxVueTable } from '../../lib/table/useVrcxVueTable';
@@ -346,7 +346,7 @@
import ImageCropDialog from '../../components/dialogs/ImageCropDialog.vue';
import ManageTagsDialog from './ManageTagsDialog.vue';
import MyAvatarCard from './components/MyAvatarCard.vue';
import configRepository from '../../service/config.js';
import configRepository from '../../services/config.js';
import { showAvatarDialog, selectAvatarWithoutConfirmation, applyAvatar } from '../../coordinators/avatarCoordinator';
const { t } = useI18n();

View File

@@ -28,7 +28,7 @@ import {
getPlatformInfo,
timeToText
} from '../../shared/utils';
import { i18n } from '../../plugin';
import { i18n } from '../../plugins';
const { t } = i18n.global;

View File

@@ -1,6 +1,6 @@
import { beforeEach, describe, expect, it, vi } from 'vitest';
vi.mock('../../../../service/config.js', () => ({
vi.mock('../../../../services/config.js', () => ({
default: {
getString: vi.fn().mockResolvedValue('0.6'),
setString: vi.fn()
@@ -247,7 +247,7 @@ describe('useAvatarCardGrid', () => {
describe('persistence', () => {
it('calls configRepository.setString when scale changes', async () => {
const config = (await import('../../../../service/config.js'))
const config = (await import('../../../../services/config.js'))
.default;
const { cardScale } = createGrid();
cardScale.value = 0.7;
@@ -258,7 +258,7 @@ describe('useAvatarCardGrid', () => {
});
it('calls configRepository.setString when spacing changes', async () => {
const config = (await import('../../../../service/config.js'))
const config = (await import('../../../../services/config.js'))
.default;
const { cardSpacing } = createGrid();
cardSpacing.value = 0.8;
@@ -269,7 +269,7 @@ describe('useAvatarCardGrid', () => {
});
it('uses custom config keys', async () => {
const config = (await import('../../../../service/config.js'))
const config = (await import('../../../../services/config.js'))
.default;
const { cardScale } = createGrid({
scaleConfigKey: 'CUSTOM_SCALE'

View File

@@ -7,7 +7,7 @@ import {
watch
} from 'vue';
import configRepository from '../../../service/config.js';
import configRepository from '../../../services/config.js';
/**
*

View File

@@ -109,7 +109,7 @@
import SendInviteRequestResponseDialog from './dialogs/SendInviteRequestResponseDialog.vue';
import SendInviteResponseDialog from './dialogs/SendInviteResponseDialog.vue';
import configRepository from '../../service/config';
import configRepository from '../../services/config';
const { refreshInviteMessageTableData } = useInviteStore();
const { clearInviteImageUpload } = useGalleryStore();

View File

@@ -28,7 +28,7 @@ import {
import { storeToRefs } from 'pinia';
import { checkCanInvite, formatDateFilter } from '../../shared/utils';
import { i18n } from '../../plugin';
import { i18n } from '../../plugins';
import {
useGameStore,
useLocationStore,

View File

@@ -1,6 +1,6 @@
import CountdownTimer from '@/components/CountdownTimer.vue';
import { Button } from '@/components/ui/button';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
import { SquarePen } from 'lucide-vue-next';
const { t } = i18n.global;

View File

@@ -1,6 +1,6 @@
import CountdownTimer from '@/components/CountdownTimer.vue';
import { Button } from '@/components/ui/button';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
import { SquarePen } from 'lucide-vue-next';
const { t } = i18n.global;

View File

@@ -9,7 +9,7 @@ const mocks = vi.hoisted(() => ({
onUnblockChatbox: vi.fn()
}));
vi.mock('../../../plugin', () => ({
vi.mock('../../../plugins', () => ({
i18n: {
global: {
t: (key) => key

View File

@@ -16,7 +16,7 @@ import {
statusClass,
userImage
} from '../../shared/utils';
import { i18n } from '../../plugin';
import { i18n } from '../../plugins';
const { t } = i18n.global;

View File

@@ -2,7 +2,7 @@ import { ArrowRight, Download } from 'lucide-vue-next';
import Location from '@/components/Location.vue';
import { TooltipWrapper } from '@/components/ui/tooltip';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
import { formatDateFilter, statusClass } from '@/shared/utils';
const { t } = i18n.global;

View File

@@ -89,7 +89,7 @@
import { ToggleGroup, ToggleGroupItem } from '../../../components/ui/toggle-group';
import { feedFiltersOptions, sharedFeedFiltersDefaults } from '../../../shared/constants';
import configRepository from '../../../service/config';
import configRepository from '../../../services/config';
const { t } = useI18n();

View File

@@ -72,7 +72,7 @@
import { openExternalLink } from '../../../shared/utils';
import { useLaunchStore } from '../../../stores';
import configRepository from '../../../service/config';
import configRepository from '../../../services/config';
const { t } = useI18n();

View File

@@ -36,7 +36,7 @@ vi.mock('../../../../stores', () => ({
useLaunchStore: () => ({})
}));
vi.mock('../../../../service/config', () => ({
vi.mock('../../../../services/config', () => ({
default: mocks.configRepository
}));

View File

@@ -2,7 +2,7 @@ import { Download, RotateCcw, Trash2 } from 'lucide-vue-next';
import { Button } from '@/components/ui/button';
import { TooltipWrapper } from '@/components/ui/tooltip';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
import { formatDateFilter } from '@/shared/utils';
const { t } = i18n.global;

View File

@@ -213,7 +213,7 @@
import BackToTop from '../../../components/BackToTop.vue';
import FriendItem from './FriendItem.vue';
import Location from '../../../components/Location.vue';
import configRepository from '../../../service/config';
import configRepository from '../../../services/config';
import '@/styles/status-icon.css';
import { showUserDialog } from '../../../coordinators/userCoordinator';

View File

@@ -140,7 +140,7 @@ vi.mock('../../../../shared/utils/location.js', () => ({
getFriendsLocations: vi.fn(() => 'wrld_same:1')
}));
vi.mock('../../../../service/config', () => ({
vi.mock('../../../../services/config', () => ({
default: mocks.configRepository
}));

View File

@@ -588,7 +588,7 @@
import { useAdvancedSettingsStore, useAuthStore, useGalleryStore, useModalStore, useUserStore } from '../../stores';
import { handleImageUploadInput, readFileAsBase64, withUploadTimeout } from '../../shared/utils/imageUpload';
import { emojiAnimationStyleList, emojiAnimationStyleUrl } from '../../shared/constants';
import { AppDebug } from '../../service/appConfig';
import { AppDebug } from '../../services/appConfig';
import Emoji from '../../components/Emoji.vue';
import ImageCropDialog from '../../components/dialogs/ImageCropDialog.vue';

View File

@@ -347,7 +347,7 @@
import { useVrcxStore } from '../../stores/vrcx';
import AutoChangeStatusDialog from './dialogs/AutoChangeStatusDialog.vue';
import configRepository from '../../service/config.js';
import configRepository from '../../services/config.js';
const GroupCalendarDialog = defineAsyncComponent(() => import('./dialogs/GroupCalendarDialog.vue'));
const NoteExportDialog = defineAsyncComponent(() => import('./dialogs/NoteExportDialog.vue'));

View File

@@ -115,7 +115,7 @@
import { useI18n } from 'vue-i18n';
import { useGalleryStore, useGroupStore } from '../../../stores';
import { AppDebug } from '../../../service/appConfig';
import { AppDebug } from '../../../services/appConfig';
import { formatDateFilter } from '../../../shared/utils';
import { groupRequest } from '../../../api';

View File

@@ -23,7 +23,7 @@
import { useAvatarStore, useUserStore } from '../../../stores';
import { avatarRequest } from '../../../api';
import { processBulk } from '../../../service/request';
import { processBulk } from '../../../services/request';
const { t } = useI18n();

View File

@@ -107,12 +107,12 @@
import { formatDateFilter, getGroupName, replaceBioSymbols } from '../../../shared/utils';
import { Switch } from '../../../components/ui/switch';
import { groupRequest } from '../../../api';
import { processBulk } from '../../../service/request';
import { processBulk } from '../../../services/request';
import { useGroupStore } from '../../../stores';
import GroupCalendarEventCard from '../components/GroupCalendarEventCard.vue';
import GroupCalendarMonth from '../components/GroupCalendarMonth.vue';
import configRepository from '../../../service/config';
import configRepository from '../../../services/config';
const { applyGroupEvent, showGroupDialog } = useGroupStore();

View File

@@ -52,7 +52,7 @@
import { createColumns } from '../../Settings/dialogs/registryBackupColumns.jsx';
import { useVrcxVueTable } from '../../../lib/table/useVrcxVueTable';
import configRepository from '../../../service/config';
import configRepository from '../../../services/config';
const { backupVrcRegistry } = useVrcxStore();
const { isRegistryBackupDialogVisible } = storeToRefs(useVrcxStore());

View File

@@ -1,5 +1,5 @@
import CountdownTimer from '@/components/CountdownTimer.vue';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
const { t } = i18n.global;

View File

@@ -1,5 +1,5 @@
import CountdownTimer from '@/components/CountdownTimer.vue';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
const { t } = i18n.global;

View File

@@ -1,5 +1,5 @@
import CountdownTimer from '@/components/CountdownTimer.vue';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
const { t } = i18n.global;

View File

@@ -1,5 +1,5 @@
import CountdownTimer from '@/components/CountdownTimer.vue';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
const { t } = i18n.global;

View File

@@ -2,7 +2,7 @@ import { Trash2 } from 'lucide-vue-next';
import { Button } from '@/components/ui/button';
import { InputGroupTextareaField } from '@/components/ui/input-group';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
const { t } = i18n.global;