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

@@ -25,7 +25,7 @@
import { Toaster } from './components/ui/sonner';
import { TooltipProvider } from './components/ui/tooltip';
import { createGlobalStores } from './stores';
import { initNoty } from './plugin/noty';
import { initNoty } from './plugins/noty';
import { getGameLogTable } from './coordinators/gameLogCoordinator';
import { runCheckVRChatDebugLoggingFlow } from './coordinators/gameCoordinator';

View File

@@ -7,7 +7,7 @@ const mockApplyCurrentUser = vi.fn((json) => ({ id: json.id || 'usr_me', ...json
const mockApplyUser = vi.fn((json) => ({ ...json }));
const mockApplyWorld = vi.fn((json) => ({ ...json }));
vi.mock('../../service/request', () => ({
vi.mock('../../services/request', () => ({
request: (...args) => mockRequest(...args)
}));

View File

@@ -6,7 +6,7 @@ const mockHandleFavoriteAdd = vi.fn();
const mockHandleFavoriteDelete = vi.fn();
const mockHandleFavoriteGroupClear = vi.fn();
vi.mock('../../service/request', () => ({
vi.mock('../../services/request', () => ({
request: (...args) => mockRequest(...args)
}));

View File

@@ -4,7 +4,7 @@ const mockRequest = vi.fn();
const mockInvalidateQueries = vi.fn().mockResolvedValue();
const mockApplyUser = vi.fn((json) => json);
vi.mock('../../service/request', () => ({
vi.mock('../../services/request', () => ({
request: (...args) => mockRequest(...args)
}));

View File

@@ -4,7 +4,7 @@ const mockRequest = vi.fn();
const mockInvalidateQueries = vi.fn().mockResolvedValue();
const mockApplyGroup = vi.fn((json) => json);
vi.mock('../../service/request', () => ({
vi.mock('../../services/request', () => ({
request: (...args) => mockRequest(...args)
}));

View File

@@ -4,7 +4,7 @@ const mockRequest = vi.fn();
const mockInvalidateQueries = vi.fn().mockResolvedValue();
const mockRemoveQueries = vi.fn();
vi.mock('../../service/request', () => ({
vi.mock('../../services/request', () => ({
request: (...args) => mockRequest(...args)
}));

View File

@@ -1,4 +1,4 @@
import { request } from '../service/request';
import { request } from '../services/request';
import { handleConfig } from '../coordinators/userCoordinator';
const loginReq = {

View File

@@ -1,5 +1,5 @@
import { patchAndRefetchActiveQuery, queryKeys } from '../queries';
import { request } from '../service/request';
import { request } from '../services/request';
import { useUserStore } from '../stores';
import { applyCurrentUser } from '../coordinators/userCoordinator';

View File

@@ -1,4 +1,4 @@
import { request } from '../service/request';
import { request } from '../services/request';
const avatarModerationReq = {
getAvatarModerations() {

View File

@@ -5,7 +5,7 @@ import {
handleFavoriteGroupClear
} from '../coordinators/favoriteCoordinator';
import { queryClient } from '../queries';
import { request } from '../service/request';
import { request } from '../services/request';
/**
*

View File

@@ -1,5 +1,5 @@
import { queryClient } from '../queries';
import { request } from '../service/request';
import { request } from '../services/request';
import { useUserStore } from '../stores/user';
import { applyUser } from '../coordinators/userCoordinator';

View File

@@ -1,7 +1,7 @@
import { useUserStore } from '../stores';
import { applyGroup } from '../coordinators/groupCoordinator';
import { queryClient } from '../queries';
import { request } from '../service/request';
import { request } from '../services/request';
/**
*

View File

@@ -1,6 +1,6 @@
import { useAvatarStore, useWorldStore } from '../stores';
import { applyWorld } from '../coordinators/worldCoordinator';
import { request } from '../service/request';
import { request } from '../services/request';
const imageReq = {
async uploadAvatarFailCleanup(id) {

View File

@@ -3,7 +3,7 @@
* Export all API requests from here
*/
import { request } from '../service/request';
import { request } from '../services/request';
import authRequest from './auth';
import avatarModerationRequest from './avatarModeration';

View File

@@ -1,7 +1,7 @@
import { toast } from 'vue-sonner';
import { i18n } from '../plugin/i18n';
import { request } from '../service/request';
import { i18n } from '../plugins/i18n';
import { request } from '../services/request';
import { useInstanceStore } from '../stores';
const instanceReq = {

View File

@@ -1,5 +1,5 @@
import { queryClient } from '../queries';
import { request } from '../service/request';
import { request } from '../services/request';
/**
*

View File

@@ -1,4 +1,4 @@
import { request } from '../service/request';
import { request } from '../services/request';
import { useUserStore } from '../stores';
function getCurrentUserId() {

View File

@@ -1,5 +1,5 @@
import { queryClient, queryKeys } from '../queries';
import { request } from '../service/request';
import { request } from '../services/request';
import { useUserStore } from '../stores';
/**

View File

@@ -1,4 +1,4 @@
import { request } from '../service/request';
import { request } from '../services/request';
import { useGalleryStore } from '../stores';
const notificationReq = {

View File

@@ -1,4 +1,4 @@
import { request } from '../service/request';
import { request } from '../services/request';
const playerModerationReq = {
getPlayerModerations() {

View File

@@ -1,4 +1,4 @@
import { request } from '../service/request';
import { request } from '../services/request';
const propReq = {
/**

View File

@@ -1,5 +1,5 @@
import { patchAndRefetchActiveQuery, queryKeys } from '../queries';
import { request } from '../service/request';
import { request } from '../services/request';
import { useUserStore } from '../stores';
import { applyUser, applyCurrentUser } from '../coordinators/userCoordinator';

View File

@@ -1,5 +1,5 @@
import { queryClient } from '../queries';
import { request } from '../service/request';
import { request } from '../services/request';
/**
*

View File

@@ -1,5 +1,5 @@
import { queryClient } from '../queries';
import { request } from '../service/request';
import { request } from '../services/request';
import { useUserStore } from '../stores';
/**

View File

@@ -1,5 +1,5 @@
import { patchAndRefetchActiveQuery, queryKeys } from '../queries';
import { request } from '../service/request';
import { request } from '../services/request';
import { applyWorld } from '../coordinators/worldCoordinator';
const worldReq = {

View File

@@ -7,7 +7,7 @@ import {
initPlugins,
initRouter,
initSentry
} from './plugin';
} from './plugins';
import { initPiniaPlugins, pinia } from './stores';
import { queryClient } from './queries';

View File

@@ -399,7 +399,7 @@
import { THEME_CONFIG, links, navDefinitions } from '../shared/constants';
import { openExternalLink } from '../shared/utils';
import configRepository from '../service/config';
import configRepository from '../services/config';
const CustomNavDialog = defineAsyncComponent(() => import('./dialogs/CustomNavDialog.vue'));

View File

@@ -284,7 +284,7 @@
import { useIntervalFn, useNow } from '@vueuse/core';
import { TooltipWrapper } from '@/components/ui/tooltip';
import { useI18n } from 'vue-i18n';
import { wsState } from '@/service/websocket';
import { wsState } from '@/services/websocket';
import dayjs from 'dayjs';
import timezone from 'dayjs/plugin/timezone';
@@ -299,7 +299,7 @@
parseClockOffset
} from './statusBarUtils';
import configRepository from '../service/config';
import configRepository from '../services/config';
dayjs.extend(utc);
dayjs.extend(timezone);

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 }
}));

View File

@@ -16,7 +16,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(),
@@ -39,11 +39,11 @@ 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(
{},
{
@@ -55,7 +55,7 @@ vi.mock('../../service/database', () => ({
)
}));
vi.mock('../../service/config', () => ({
vi.mock('../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi
@@ -81,10 +81,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 }
}));

View File

@@ -12,7 +12,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(),
@@ -33,8 +33,8 @@ vi.mock('vue-router', async (importOriginal) => {
}))
};
});
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(
{},
{
@@ -45,7 +45,7 @@ vi.mock('../../service/database', () => ({
}
)
}));
vi.mock('../../service/config', () => ({
vi.mock('../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi.fn().mockImplementation((_k, d) => d ?? '{}'),
@@ -63,8 +63,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 }
}));

View File

@@ -9,7 +9,7 @@ import en from '../../localization/en.json';
// --- Mocks ---
vi.mock('../../service/config', () => ({
vi.mock('../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi
@@ -36,14 +36,14 @@ vi.mock('../../service/config', () => ({
}
}));
vi.mock('../../service/websocket', () => ({
vi.mock('../../services/websocket', () => ({
wsState: { connected: false, messageCount: 0, bytesReceived: 0 },
initWebsocket: vi.fn(),
closeWebSocket: vi.fn(),
reconnectWebSocket: vi.fn()
}));
vi.mock('../../service/webapi', () => ({
vi.mock('../../services/webapi', () => ({
default: {
execute: vi.fn().mockResolvedValue({
status: 200,
@@ -62,13 +62,13 @@ vi.mock('worker-timers', () => ({
clearTimeout: 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('../../service/database', () => ({
vi.mock('../../services/database', () => ({
database: new Proxy(
{},
{
@@ -79,7 +79,7 @@ vi.mock('../../service/database', () => ({
}
)
}));
vi.mock('../../plugin/router', () => ({
vi.mock('../../plugins/router', () => ({
router: {
beforeEach: vi.fn(),
push: vi.fn(),
@@ -100,7 +100,7 @@ vi.mock('vue-router', async (importOriginal) => {
}))
};
});
vi.mock('../../plugin/interopApi', () => ({
vi.mock('../../plugins/interopApi', () => ({
initInteropApi: vi.fn()
}));

View File

@@ -597,7 +597,7 @@
} from '../../ui/dropdown-menu';
import { Badge } from '../../ui/badge';
import { avatarRequest } from '../../../api';
import { database } from '../../../service/database';
import { database } from '../../../services/database';
import { formatJsonVars } from '../../../shared/utils/base/ui';
import { handleImageUploadInput } from '../../../shared/utils/imageUpload';
import { runDeleteVRChatCacheFlow as deleteVRChatCache } from '../../../coordinators/gameCoordinator';

View File

@@ -15,7 +15,7 @@ vi.mock('vue-i18n', () => ({
})
}));
vi.mock('../../../../plugin/router', () => {
vi.mock('../../../../plugins/router', () => {
const { ref } = require('vue');
return {
router: {
@@ -40,8 +40,8 @@ vi.mock('vue-router', async (importOriginal) => {
}))
};
});
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(
{},
{
@@ -52,7 +52,7 @@ vi.mock('../../../../service/database', () => ({
}
)
}));
vi.mock('../../../../service/config', () => ({
vi.mock('../../../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi.fn().mockImplementation((_k, d) => d ?? '{}'),
@@ -70,11 +70,11 @@ 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 }
}));
vi.mock('../../../../service/request', () => ({
vi.mock('../../../../services/request', () => ({
request: vi.fn().mockResolvedValue({ json: {} }),
processBulk: vi.fn(),
buildRequestInit: vi.fn(),

View File

@@ -19,7 +19,7 @@ vi.mock('vue-i18n', () => {
};
});
vi.mock('../../../../plugin/router', () => {
vi.mock('../../../../plugins/router', () => {
const { ref } = require('vue');
return {
router: {
@@ -44,8 +44,8 @@ vi.mock('vue-router', async (importOriginal) => {
}))
};
});
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(
{},
{
@@ -56,7 +56,7 @@ vi.mock('../../../../service/database', () => ({
}
)
}));
vi.mock('../../../../service/config', () => ({
vi.mock('../../../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi.fn().mockImplementation((_k, d) => d ?? '{}'),
@@ -74,11 +74,11 @@ 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 }
}));
vi.mock('../../../../service/request', () => ({
vi.mock('../../../../services/request', () => ({
request: vi.fn().mockResolvedValue({ json: {} }),
processBulk: vi.fn(),
buildRequestInit: vi.fn(),

View File

@@ -10,7 +10,7 @@ vi.mock('../../../../api', () => ({
},
userRequest: {}
}));
vi.mock('../../../../plugin/router', () => {
vi.mock('../../../../plugins/router', () => {
const { ref } = require('vue');
return {
router: {
@@ -35,8 +35,8 @@ vi.mock('vue-router', async (importOriginal) => {
}))
};
});
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(
{},
{
@@ -47,7 +47,7 @@ vi.mock('../../../../service/database', () => ({
}
)
}));
vi.mock('../../../../service/config', () => ({
vi.mock('../../../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi.fn().mockImplementation((_k, d) => d ?? '{}'),
@@ -65,11 +65,11 @@ 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 }
}));
vi.mock('../../../../service/request', () => ({
vi.mock('../../../../services/request', () => ({
request: vi.fn().mockResolvedValue({ json: {} }),
processBulk: vi.fn(),
buildRequestInit: vi.fn(),

View File

@@ -13,7 +13,7 @@ vi.mock('vue-i18n', () => ({
install: vi.fn()
})
}));
vi.mock('../../../../plugin/router', () => {
vi.mock('../../../../plugins/router', () => {
const { ref: vRef } = require('vue');
return {
router: {
@@ -38,8 +38,8 @@ vi.mock('vue-router', async (importOriginal) => {
}))
};
});
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(
{},
{
@@ -50,7 +50,7 @@ vi.mock('../../../../service/database', () => ({
}
)
}));
vi.mock('../../../../service/config', () => ({
vi.mock('../../../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi.fn().mockImplementation((_k, d) => d ?? '{}'),
@@ -68,11 +68,11 @@ 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 }
}));
vi.mock('../../../../service/request', () => ({
vi.mock('../../../../services/request', () => ({
request: vi.fn().mockResolvedValue({ json: {} }),
processBulk: vi.fn(),
buildRequestInit: vi.fn(),

View File

@@ -1,5 +1,5 @@
import { Checkbox } from '@/components/ui/checkbox';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
import { formatDateFilter } from '@/shared/utils';
import { Button } from '@/components/ui/button';
import { ArrowUpDown } from 'lucide-vue-next';

View File

@@ -1,5 +1,5 @@
import { Checkbox } from '@/components/ui/checkbox';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
import { ArrowUpDown } from 'lucide-vue-next';
import { Button } from '@/components/ui/button';

View File

@@ -1,5 +1,5 @@
import { Checkbox } from '@/components/ui/checkbox';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
import { ArrowUpDown } from 'lucide-vue-next';
import { Button } from '@/components/ui/button';

View File

@@ -1,5 +1,5 @@
import { Checkbox } from '@/components/ui/checkbox';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
import { ArrowUpDown } from 'lucide-vue-next';
import { Button } from '@/components/ui/button';

View File

@@ -1,5 +1,5 @@
import Location from '@/components/Location.vue';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
import { formatDateFilter } from '@/shared/utils';
import { ArrowUpDown } from 'lucide-vue-next';
import { Button } from '@/components/ui/button';

View File

@@ -1,5 +1,5 @@
import { Checkbox } from '@/components/ui/checkbox';
import { i18n } from '@/plugin';
import { i18n } from '@/plugins';
import { formatDateFilter } from '@/shared/utils';
import { ArrowUpDown } from 'lucide-vue-next';
import { Button } from '@/components/ui/button';

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

@@ -101,7 +101,7 @@
import { groupRequest, queryRequest } from '../../api';
import { VirtualCombobox } from '../ui/virtual-combobox';
import configRepository from '../../service/config';
import configRepository from '../../services/config';
const { vipFriends, onlineFriends, activeFriends, offlineFriends } = storeToRefs(useFriendStore());
const { currentUserGroups, inviteGroupDialog } = storeToRefs(useGroupStore());

View File

@@ -165,7 +165,7 @@
import { instanceRequest, queryRequest } from '../../api';
import InviteDialog from './InviteDialog/InviteDialog.vue';
import configRepository from '../../service/config';
import configRepository from '../../services/config';
const { t } = useI18n();

View File

@@ -585,7 +585,7 @@
import { VirtualCombobox } from '../ui/virtual-combobox';
import InviteDialog from './InviteDialog/InviteDialog.vue';
import configRepository from '../../service/config';
import configRepository from '../../services/config';
const props = defineProps({
newInstanceDialogLocationTag: {

View File

@@ -41,7 +41,7 @@
import { DataTableLayout } from '../../ui/data-table';
import { InputGroupField } from '../../../components/ui/input-group';
import { createColumns } from './previousInstancesInfoColumns.jsx';
import { database } from '../../../service/database';
import { database } from '../../../services/database';
import { useVrcxVueTable } from '../../../lib/table/useVrcxVueTable';
import { lookupUser } from '../../../coordinators/userCoordinator';

View File

@@ -56,7 +56,7 @@
} from '../../../shared/utils';
import { DataTableLayout } from '../../ui/data-table';
import { createPreviousInstancesColumns } from './previousInstancesColumns.jsx';
import { database } from '../../../service/database';
import { database } from '../../../services/database';
import { useVrcxVueTable } from '../../../lib/table/useVrcxVueTable';
const props = defineProps({

View File

@@ -4,7 +4,7 @@ import DisplayName from '../../DisplayName.vue';
import Location from '../../Location.vue';
import LocationWorld from '../../LocationWorld.vue';
import { Button } from '../../ui/button';
import { i18n } from '../../../plugin';
import { i18n } from '../../../plugins';
import { formatDateFilter } from '../../../shared/utils';
const { t } = i18n.global;

View File

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

View File

@@ -67,8 +67,8 @@
compareByLastActiveRef,
userImage
} from '../../../shared/utils';
import { database } from '../../../service/database';
import { processBulk } from '../../../service/request';
import { database } from '../../../services/database';
import { processBulk } from '../../../services/request';
import { useOptionKeySelect } from '../../../composables/useOptionKeySelect';
import { useUserStore } from '../../../stores';
import { userDialogMutualFriendSortingOptions } from '../../../shared/constants';

View File

@@ -19,7 +19,7 @@ vi.mock('vue-i18n', () => {
};
});
vi.mock('../../../../plugin/router', () => {
vi.mock('../../../../plugins/router', () => {
const { ref } = require('vue');
return {
router: {
@@ -44,8 +44,8 @@ vi.mock('vue-router', async (importOriginal) => {
}))
};
});
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(
{},
{
@@ -56,7 +56,7 @@ vi.mock('../../../../service/database', () => ({
}
)
}));
vi.mock('../../../../service/config', () => ({
vi.mock('../../../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi.fn().mockImplementation((_k, d) => d ?? '{}'),
@@ -74,8 +74,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 }
}));

View File

@@ -16,7 +16,7 @@ vi.mock('vue-i18n', () => ({
})
}));
vi.mock('../../../../plugin/router', () => {
vi.mock('../../../../plugins/router', () => {
const { ref } = require('vue');
return {
router: {
@@ -43,8 +43,8 @@ vi.mock('vue-router', async (importOriginal) => {
};
});
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(
{},
{
@@ -56,7 +56,7 @@ vi.mock('../../../../service/database', () => ({
)
}));
vi.mock('../../../../service/config', () => ({
vi.mock('../../../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi.fn().mockImplementation((_k, d) => d ?? '{}'),
@@ -75,11 +75,11 @@ vi.mock('../../../../service/config', () => ({
}
}));
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 }
}));
vi.mock('../../../../service/request', () => ({
vi.mock('../../../../services/request', () => ({
request: vi.fn().mockResolvedValue({ json: {} }),
processBulk: vi.fn(),
buildRequestInit: vi.fn(),

View File

@@ -15,7 +15,7 @@ vi.mock('vue-i18n', () => ({
})
}));
vi.mock('../../../../plugin/router', () => {
vi.mock('../../../../plugins/router', () => {
const { ref } = require('vue');
return {
router: {
@@ -40,8 +40,8 @@ vi.mock('vue-router', async (importOriginal) => {
}))
};
});
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(
{},
{
@@ -52,7 +52,7 @@ vi.mock('../../../../service/database', () => ({
}
)
}));
vi.mock('../../../../service/config', () => ({
vi.mock('../../../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi.fn().mockImplementation((_k, d) => d ?? '{}'),
@@ -70,11 +70,11 @@ 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 }
}));
vi.mock('../../../../service/request', () => ({
vi.mock('../../../../services/request', () => ({
request: vi.fn().mockResolvedValue({ json: {} }),
processBulk: vi.fn(),
buildRequestInit: vi.fn(),

View File

@@ -19,7 +19,7 @@ vi.mock('vue-i18n', () => {
};
});
vi.mock('../../../../plugin/router', () => {
vi.mock('../../../../plugins/router', () => {
const { ref } = require('vue');
return {
router: {
@@ -44,8 +44,8 @@ vi.mock('vue-router', async (importOriginal) => {
}))
};
});
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(
{},
{
@@ -56,7 +56,7 @@ vi.mock('../../../../service/database', () => ({
}
)
}));
vi.mock('../../../../service/config', () => ({
vi.mock('../../../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi.fn().mockImplementation((_k, d) => d ?? '{}'),
@@ -74,11 +74,11 @@ 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 }
}));
vi.mock('../../../../service/request', () => ({
vi.mock('../../../../services/request', () => ({
request: vi.fn().mockResolvedValue({ json: {} }),
processBulk: vi.fn(),
buildRequestInit: vi.fn(),

View File

@@ -33,7 +33,7 @@ vi.mock('../../../../shared/utils', () => ({
parseLocation: vi.fn(() => ({ worldId: 'wrld_test', tag: 'wrld_test~123' }))
}));
vi.mock('../../../../service/database', () => ({
vi.mock('../../../../services/database', () => ({
database: {
addFriendLogHistory: vi.fn()
}
@@ -48,7 +48,7 @@ const {
playerModerationRequest,
miscRequest
} = await import('../../../../api');
const { database } = await import('../../../../service/database');
const { database } = await import('../../../../services/database');
function createMockUserDialog() {
return ref({

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 @@ import {
queryRequest
} from '../../../api';
import { copyToClipboard, parseLocation } from '../../../shared/utils';
import { database } from '../../../service/database';
import { database } from '../../../services/database';
/**
* Composable for UserDialog command dispatch.

View File

@@ -9,14 +9,14 @@ vi.mock('../../../../shared/utils', () => ({
timeToText: vi.fn((ms) => `${Math.floor(ms / 1000)}s`)
}));
vi.mock('../../../../service/database', () => ({
vi.mock('../../../../services/database', () => ({
database: {
setWorldMemo: vi.fn(),
deleteWorldMemo: vi.fn()
}
}));
const { database } = await import('../../../../service/database');
const { database } = await import('../../../../services/database');
const { compareUnityVersion } = await import('../../../../shared/utils');
/**

View File

@@ -5,7 +5,7 @@ import {
formatDateFilter,
timeToText
} from '../../../shared/utils';
import { database } from '../../../service/database';
import { database } from '../../../services/database';
/**
* Composable for WorldDialogInfoTab computed properties and actions.

View File

@@ -26,7 +26,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(),
@@ -47,8 +47,8 @@ vi.mock('vue-router', async (importOriginal) => {
}))
};
});
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(
{},
{
@@ -59,7 +59,7 @@ vi.mock('../../../service/database', () => ({
}
)
}));
vi.mock('../../../service/config', () => ({
vi.mock('../../../services/config', () => ({
default: {
init: vi.fn(),
getString: vi.fn().mockImplementation((_k, d) => d ?? '{}'),
@@ -77,8 +77,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 }
}));

View File

@@ -1,7 +1,7 @@
import { toast } from 'vue-sonner';
import { i18n } from '../plugin/i18n';
import { i18n } from '../plugins/i18n';
import { AppDebug } from '../service/appConfig';
import { AppDebug } from '../services/appConfig';
import { useAdvancedSettingsStore } from '../stores/settings/advanced';
import { useAuthStore } from '../stores/auth';

View File

@@ -1,8 +1,8 @@
import { i18n } from '../plugin/i18n';
import { i18n } from '../plugins/i18n';
import Noty from 'noty';
import { closeWebSocket, initWebsocket } from '../service/websocket';
import { closeWebSocket, initWebsocket } from '../services/websocket';
import { escapeTag } from '../shared/utils';
import { queryClient } from '../queries';
import { useAuthStore } from '../stores/auth';
@@ -10,10 +10,10 @@ import { useNotificationStore } from '../stores/notification';
import { useUpdateLoopStore } from '../stores/updateLoop';
import { useUserStore } from '../stores/user';
import { applyCurrentUser } from './userCoordinator';
import { watchState } from '../service/watchState';
import { watchState } from '../services/watchState';
import configRepository from '../service/config';
import webApiService from '../service/webapi';
import configRepository from '../services/config';
import webApiService from '../services/webapi';
/**
* Runs the shared logout side effects (including goodbye notification).

View File

@@ -1,6 +1,6 @@
import { nextTick } from 'vue';
import { toast } from 'vue-sonner';
import { i18n } from '../plugin/i18n';
import { i18n } from '../plugins/i18n';
import {
createDefaultAvatarRef,
@@ -13,10 +13,10 @@ import {
storeAvatarImage
} from '../shared/utils';
import { avatarRequest, miscRequest, queryRequest } from '../api';
import { AppDebug } from '../service/appConfig';
import { database } from '../service/database';
import { AppDebug } from '../services/appConfig';
import { database } from '../services/database';
import { patchAvatarFromEvent } from '../queries';
import { processBulk } from '../service/request';
import { processBulk } from '../services/request';
import { applyFavorite } from './favoriteCoordinator';
import { refreshUserDialogAvatars, showUserDialog } from './userCoordinator';
import { useAdvancedSettingsStore } from '../stores/settings/advanced';
@@ -28,7 +28,7 @@ import { useUiStore } from '../stores/ui';
import { useUserStore } from '../stores/user';
import { useVRCXUpdaterStore } from '../stores/vrcxUpdater';
import webApiService from '../service/webapi';
import webApiService from '../services/webapi';
/**
* @param {object} json

View File

@@ -10,10 +10,10 @@ import { useWorldStore } from '../stores/world';
import { applyWorld } from './worldCoordinator';
import { runUpdateFriendFlow } from './friendPresenceCoordinator';
import { avatarRequest, favoriteRequest, queryRequest } from '../api';
import { database } from '../service/database';
import { i18n } from '../plugin/i18n';
import { processBulk } from '../service/request';
import { watchState } from '../service/watchState';
import { database } from '../services/database';
import { i18n } from '../plugins/i18n';
import { processBulk } from '../services/request';
import { watchState } from '../services/watchState';
import {
compareByName,
createDefaultFavoriteCachedRef,

View File

@@ -1,13 +1,13 @@
import { getGroupName, getWorldName, isRealInstance } from '../shared/utils';
import { AppDebug } from '../service/appConfig';
import { database } from '../service/database';
import { AppDebug } from '../services/appConfig';
import { database } from '../services/database';
import { useFeedStore } from '../stores/feed';
import { useFriendStore } from '../stores/friend';
import { useNotificationStore } from '../stores/notification';
import { useSharedFeedStore } from '../stores/sharedFeed';
import { useUserStore } from '../stores/user';
import { userRequest } from '../api';
import { watchState } from '../service/watchState';
import { watchState } from '../services/watchState';
/**
* @param {object} ctx

View File

@@ -1,6 +1,6 @@
import { i18n } from '../plugin/i18n';
import { i18n } from '../plugins/i18n';
import { database } from '../service/database';
import { database } from '../services/database';
import { friendRequest, userRequest } from '../api';
import { getNameColour } from '../shared/utils';
import { handleFavoriteDelete } from './favoriteCoordinator';
@@ -12,9 +12,9 @@ import { useNotificationStore } from '../stores/notification';
import { useSharedFeedStore } from '../stores/sharedFeed';
import { useUiStore } from '../stores/ui';
import { useUserStore } from '../stores/user';
import { watchState } from '../service/watchState';
import { watchState } from '../services/watchState';
import configRepository from '../service/config';
import configRepository from '../services/config';
/**
* @param {object} args

View File

@@ -1,16 +1,16 @@
import { toast } from 'vue-sonner';
import { AppDebug } from '../service/appConfig';
import { AppDebug } from '../services/appConfig';
import { migrateMemos } from '../shared/utils';
import { reconnectWebSocket } from '../service/websocket';
import { reconnectWebSocket } from '../services/websocket';
import { useAuthStore } from '../stores/auth';
import { useFriendStore } from '../stores/friend';
import { useUpdateLoopStore } from '../stores/updateLoop';
import { useUserStore } from '../stores/user';
import { getCurrentUser } from './userCoordinator';
import { watchState } from '../service/watchState';
import { watchState } from '../services/watchState';
import configRepository from '../service/config';
import configRepository from '../services/config';
/**
* Runs friend list refresh orchestration.

View File

@@ -4,7 +4,7 @@ import {
deleteVRChatCache as _deleteVRChatCache,
isRealInstance
} from '../shared/utils';
import { database } from '../service/database';
import { database } from '../services/database';
import { useAdvancedSettingsStore } from '../stores/settings/advanced';
import { useAvatarStore } from '../stores/avatar';
import { addAvatarWearTime } from './avatarCoordinator';
@@ -21,7 +21,7 @@ import { useUserStore } from '../stores/user';
import { useVrStore } from '../stores/vr';
import { useWorldStore } from '../stores/world';
import configRepository from '../service/config';
import configRepository from '../services/config';
import * as workerTimers from 'worker-timers';

View File

@@ -11,13 +11,13 @@ import {
parsePrintFromUrl,
replaceBioSymbols
} from '../shared/utils';
import { i18n } from '../plugin/i18n';
import { AppDebug } from '../service/appConfig';
import { database } from '../service/database';
import { i18n } from '../plugins/i18n';
import { AppDebug } from '../services/appConfig';
import { database } from '../services/database';
import { runLastLocationResetFlow, runUpdateCurrentUserLocationFlow } from './locationCoordinator';
import { getGroupName } from '../shared/utils';
import { userRequest } from '../api';
import { watchState } from '../service/watchState';
import { watchState } from '../services/watchState';
import { toast } from 'vue-sonner';
import { useAdvancedSettingsStore } from '../stores/settings/advanced';
@@ -36,7 +36,7 @@ import { useUserStore } from '../stores/user';
import { useVrStore } from '../stores/vr';
import { useVrcxStore } from '../stores/vrcx';
import gameLogService from '../service/gameLog.js';
import gameLogService from '../services/gameLog.js';
import * as workerTimers from 'worker-timers';
@@ -579,4 +579,4 @@ export async function disableGameLogDialog() {
}
}
import configRepository from '../service/config';
import configRepository from '../services/config';

View File

@@ -1,6 +1,6 @@
import { nextTick } from 'vue';
import { toast } from 'vue-sonner';
import { i18n } from '../plugin/i18n';
import { i18n } from '../plugins/i18n';
import {
convertFileUrlToImageUrl,
@@ -9,7 +9,7 @@ import {
replaceBioSymbols
} from '../shared/utils';
import { groupRequest, instanceRequest, queryRequest } from '../api';
import { database } from '../service/database';
import { database } from '../services/database';
import { groupDialogFilterOptions } from '../shared/constants/';
import { patchGroupFromEvent } from '../queries';
import { useGameStore } from '../stores/game';
@@ -19,9 +19,9 @@ import { useNotificationStore } from '../stores/notification';
import { useUiStore } from '../stores/ui';
import { useUserStore } from '../stores/user';
import { useGroupStore } from '../stores/group';
import { watchState } from '../service/watchState';
import { watchState } from '../services/watchState';
import configRepository from '../service/config';
import configRepository from '../services/config';
import * as workerTimers from 'worker-timers';

View File

@@ -1,5 +1,5 @@
import { toast } from 'vue-sonner';
import { i18n } from '../plugin/i18n';
import { i18n } from '../plugins/i18n';
import { instanceRequest } from '../api';
import { parseLocation } from '../shared/utils';

View File

@@ -4,7 +4,7 @@ import {
isRealInstance,
parseLocation
} from '../shared/utils';
import { database } from '../service/database';
import { database } from '../services/database';
import { useAdvancedSettingsStore } from '../stores/settings/advanced';
import { useGameLogStore } from '../stores/gameLog';
import { useGameStore } from '../stores/game';

View File

@@ -1,6 +1,6 @@
import { reactive } from 'vue';
import { toast } from 'vue-sonner';
import { i18n } from '../plugin/i18n';
import { i18n } from '../plugins/i18n';
import {
arraysMatch,
@@ -22,11 +22,11 @@ import {
queryRequest,
userRequest
} from '../api';
import { processBulk, request } from '../service/request';
import { AppDebug } from '../service/appConfig';
import { database } from '../service/database';
import { processBulk, request } from '../services/request';
import { AppDebug } from '../services/appConfig';
import { database } from '../services/database';
import { patchUserFromEvent } from '../queries';
import { watchState } from '../service/watchState';
import { watchState } from '../services/watchState';
import { applyAvatar, showAvatarDialog } from './avatarCoordinator';
import { applyFavorite } from './favoriteCoordinator';
import {

View File

@@ -1,6 +1,6 @@
import { getGroupName, getWorldName, parseLocation } from '../shared/utils';
import { AppDebug } from '../service/appConfig';
import { database } from '../service/database';
import { AppDebug } from '../services/appConfig';
import { database } from '../services/database';
import { useAvatarStore } from '../stores/avatar';
import { getAvatarName } from './avatarCoordinator';
import { useFeedStore } from '../stores/feed';

View File

@@ -7,7 +7,7 @@ import { useInstanceStore } from '../stores/instance';
import { useLocationStore } from '../stores/location';
import { useUserStore } from '../stores/user';
import { useWorldStore } from '../stores/world';
import { failedGetRequests } from '../service/request';
import { failedGetRequests } from '../services/request';
/**
* Clears caches across multiple stores while preserving data that is

View File

@@ -1,6 +1,6 @@
import { nextTick } from 'vue';
import { toast } from 'vue-sonner';
import { i18n } from '../plugin/i18n';
import { i18n } from '../plugins/i18n';
import {
checkVRChatCache,
@@ -14,9 +14,9 @@ import {
sanitizeEntityJson
} from '../shared/utils';
import { instanceRequest, queryRequest, worldRequest } from '../api';
import { database } from '../service/database';
import { database } from '../services/database';
import { patchWorldFromEvent } from '../queries';
import { processBulk } from '../service/request';
import { processBulk } from '../services/request';
import { applyFavorite } from './favoriteCoordinator';
import { useFavoriteStore } from '../stores/favorite';
import { useInstanceStore } from '../stores/instance';

View File

@@ -1,7 +1,7 @@
// @ts-nocheck
import InteropApi from '../ipc-electron/interopApi.js';
import configRepository from '../service/config';
import vrcxJsonStorage from '../service/jsonStorage';
import configRepository from '../services/config.js';
import vrcxJsonStorage from '../services/jsonStorage.js';
export async function initInteropApi(isVrOverlay = false) {
if (isVrOverlay) {

View File

@@ -1,6 +1,6 @@
import { createRouter, createWebHashHistory } from 'vue-router';
import { watchState } from './../service/watchState';
import { watchState } from '../services/watchState';
import FavoritesAvatar from './../views/Favorites/FavoritesAvatar.vue';
import FavoritesFriend from './../views/Favorites/FavoritesFriend.vue';

View File

@@ -1,7 +1,7 @@
import { router } from './router';
import { startRendererMemoryThresholdReport } from './piniaActionTrail';
import configRepository from '../service/config';
import configRepository from '../services/config';
export async function isSentryOptedIn() {
return NIGHTLY && configRepository.getBool('VRCX_SentryEnabled', false);

View File

@@ -9,7 +9,7 @@ import {
} from '../shared/utils/base/ui';
import { i18n, loadLocalizedStrings } from './i18n';
import configRepository from '../service/config';
import configRepository from '../services/config';
export async function initUi() {
try {

View File

@@ -1,5 +1,5 @@
// Mock router to avoid transitive i18n.global error from columns.jsx
vi.mock('../../plugin/router.js', () => ({
vi.mock('../../plugins/router.js', () => ({
router: { beforeEach: vi.fn(), push: vi.fn() },
initRouter: vi.fn()
}));

View File

@@ -1,5 +1,5 @@
// Mock router to avoid transitive i18n.global error from columns.jsx
vi.mock('../../plugin/router.js', () => ({
vi.mock('../../plugins/router.js', () => ({
router: { beforeEach: vi.fn(), push: vi.fn() },
initRouter: vi.fn()
}));

Some files were not shown because too many files have changed in this diff Show More