Skip to content

Commit 2b9df3a

Browse files
authored
Merge pull request #16 from cp-20/chore/update-dependencies
依存関係の更新
2 parents fd61a28 + bffaae7 commit 2b9df3a

28 files changed

+87
-74
lines changed

apps/client/package.json

+18-17
Original file line numberDiff line numberDiff line change
@@ -9,37 +9,38 @@
99
"start": "vite preview --host"
1010
},
1111
"dependencies": {
12-
"@mantine/core": "^7.11.2",
13-
"@mantine/dates": "^7.12.2",
14-
"@mantine/hooks": "^7.11.2",
15-
"@tabler/icons-react": "^3.11.0",
12+
"@mantine/core": "^7.15.1",
13+
"@mantine/dates": "^7.15.1",
14+
"@mantine/hooks": "^7.15.1",
15+
"@tabler/icons-react": "^3.26.0",
1616
"@tailwindcss/container-queries": "^0.1.1",
1717
"@traptitech/traq-markdown-it": "^6.3.0",
1818
"@traq-ing/database": "workspace:*",
1919
"@traq-ing/server": "workspace:*",
20-
"chart.js": "^4.4.3",
20+
"chart.js": "^4.4.7",
2121
"clsx": "^2.1.1",
2222
"dayjs": "^1.11.13",
2323
"deepmerge": "^4.3.1",
24-
"hono": "^4.5.3",
25-
"jotai": "^2.9.1",
24+
"hono": "^4.6.14",
25+
"jotai": "^2.10.4",
2626
"react": "^18.3.1",
2727
"react-chartjs-2": "^5.2.0",
2828
"react-dom": "^18.3.1",
29-
"react-router-dom": "^6.25.1",
29+
"react-router": "^7.0.2",
3030
"swr": "^2.2.5",
31-
"vite-tsconfig-paths": "^4.3.2",
32-
"traq-bot-ts": "1.4.1"
31+
"traq-bot-ts": "1.4.1",
32+
"vite-tsconfig-paths": "^5.1.4"
3333
},
3434
"devDependencies": {
35-
"@types/react": "^18.3.3",
36-
"@types/react-dom": "^18.3.0",
37-
"@vitejs/plugin-react-swc": "^3.7.0",
38-
"autoprefixer": "^10.4.19",
39-
"postcss": "^8.4.40",
35+
"@react-router/dev": "^7.0.2",
36+
"@types/react": "^18.3.18",
37+
"@types/react-dom": "^18.3.5",
38+
"@vitejs/plugin-react-swc": "^3.7.2",
39+
"autoprefixer": "^10.4.20",
40+
"postcss": "^8.4.49",
4041
"postcss-preset-mantine": "^1.17.0",
4142
"postcss-simple-vars": "^7.0.1",
42-
"tailwindcss": "^3.4.7",
43-
"vite": "^5.3.5"
43+
"tailwindcss": "^3.4.17",
44+
"vite": "^6.0.4"
4445
}
4546
}

apps/client/src/App.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
import { NeedLogin } from '@/components/NeedLogin';
22
import { RouteAuthGuard } from '@/components/RouteAuthGuard';
3-
import { router } from '@/pages/router';
3+
import { AppRouter } from '@/pages/router';
44
import { MantineProvider } from '@mantine/core';
55

66
import '@mantine/core/styles.css';
7-
import { RouterProvider } from 'react-router-dom';
87

98
const App = () => {
109
return (
1110
<MantineProvider>
12-
<RouteAuthGuard component={<RouterProvider router={router} />} fallback={<NeedLogin />} />
11+
<RouteAuthGuard component={<AppRouter />} fallback={<NeedLogin />} />
1312
</MantineProvider>
1413
);
1514
};

apps/client/src/components/RouteAuthGuard.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ type Props = {
1010
};
1111

1212
export const RouteAuthGuard: FC<Props> = ({ component, fallback, loading }) => {
13-
const { me, isLoading } = useAuth();
13+
const { me, isLoading, isValidating } = useAuth();
1414

1515
return (
1616
<>
@@ -22,7 +22,7 @@ export const RouteAuthGuard: FC<Props> = ({ component, fallback, loading }) => {
2222
>
2323
{loading || <Loader type="bars" size="xl" />}
2424
</div>
25-
{!isLoading && (me ? component : fallback)}
25+
{(!isLoading || isValidating) && (me ? component : fallback)}
2626
</>
2727
);
2828
};

apps/client/src/components/containers/Container.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { IconChevronLeft } from '@tabler/icons-react';
22
import type { FC, ReactNode } from 'react';
3-
import { Link } from 'react-router-dom';
3+
import { Link } from 'react-router';
44

55
type ContainerProps = {
66
children: ReactNode;

apps/client/src/components/rankings/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Skeleton } from '@mantine/core';
22
import { IconCrown } from '@tabler/icons-react';
33
import { useEffect, useState, type FC, type ReactNode } from 'react';
4-
import { Link } from 'react-router-dom';
4+
import { Link } from 'react-router';
55
import clsx from 'clsx';
66

77
export type RankingItemSkeletonProps = {

apps/client/src/components/timelines/ChannelActionTimeline.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,8 @@ export const ChannelActionTimeline: FC<Props> = ({ channelId }) => {
3434
const { messages } = useMessages(messagesQuery);
3535
const { stamps } = useStamps(stampsQuery);
3636

37-
const labels = [...new Set([...messages.map((m) => m.month), ...stamps.map((s) => s.month)]).values()].toSorted(
38-
(a, b) => a.localeCompare(b),
39-
);
37+
const combined = [...messages.map((m) => m.month), ...stamps.map((s) => s.month)];
38+
const labels = [...new Set(combined)].sort((a, b) => a.localeCompare(b));
4039

4140
const data = {
4241
labels,

apps/client/src/components/timelines/TopMessagesTimeline.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export const TopUserMessagesTimeline: FC = () => {
2323
[topUsers],
2424
);
2525
const { messages } = useMessagesByMultipleQueries(queries);
26-
const labels = [...new Set(messages.flatMap((m) => m.map((m) => m.month)))].toSorted((a, b) => a.localeCompare(b));
26+
const labels = [...new Set(messages.flatMap((m) => m.map((m) => m.month)))].sort((a, b) => a.localeCompare(b));
2727
const datasets = messages.map((message, i) => ({
2828
label: `@${getUsername(topUsers[i])}`,
2929
data: labels.map((l) => message.filter((m) => m.month <= l).reduce((acc, cur) => acc + cur.count, 0)),
@@ -48,7 +48,7 @@ export const TopChannelMessagesTimeline: FC = () => {
4848
[topChannels],
4949
);
5050
const { messages } = useMessagesByMultipleQueries(queries);
51-
const labels = [...new Set(messages.flatMap((m) => m.map((m) => m.month)))].toSorted((a, b) => a.localeCompare(b));
51+
const labels = [...new Set(messages.flatMap((m) => m.map((m) => m.month)))].sort((a, b) => a.localeCompare(b));
5252
const datasets = messages.map((message, i) => ({
5353
label: `#${getChannelName(topChannels[i])}`,
5454
data: labels.map((l) => message.filter((m) => m.month <= l).reduce((acc, cur) => acc + cur.count, 0)),

apps/client/src/components/timelines/UserActionTimeline.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export const UserActionTimeline: FC<UserMessageTimelineProps> = ({ userId }) =>
4949
...gaveStamps.map((s) => s.month),
5050
...receivedStamps.map((s) => s.month),
5151
]).values(),
52-
].toSorted((a, b) => a.localeCompare(b));
52+
].sort((a, b) => a.localeCompare(b));
5353

5454
const data = {
5555
labels,

apps/client/src/hooks/useAuth.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { useMeData } from '@/hooks/useServerData';
22

33
export const useAuth = () => {
4-
const { data, isLoading } = useMeData();
4+
const { data, isLoading, isValidating } = useMeData();
55

66
const login = () => {
77
location.href = '/api/auth/request';
88
};
99

10-
return { me: data, isLoading, login };
10+
return { me: data, isLoading, isValidating, login };
1111
};

apps/client/src/pages/channels/ChannelDetailPage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { ChannelDetail } from '@/pages/channels/ChannelDetail';
44
import { Loader } from '@mantine/core';
55
import clsx from 'clsx';
66
import type { FC } from 'react';
7-
import { Link, useParams } from 'react-router-dom';
7+
import { Link, useParams } from 'react-router';
88

99
export const ChannelDetailPage: FC = () => {
1010
const { '*': channelName } = useParams<{ '*': string }>();

apps/client/src/pages/channels/ChannelOverviewPage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { useChannels } from '@/hooks/useChannels';
1212
import { searchChannels } from '@/lib/search';
1313
import { Skeleton, TextInput } from '@mantine/core';
1414
import { useState, type FC } from 'react';
15-
import { Link } from 'react-router-dom';
15+
import { Link } from 'react-router';
1616

1717
const SearchChannelBlock: FC = () => {
1818
const [keyword, setKeyword] = useState<string>('');

apps/client/src/pages/dashboard.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { StampRanking } from '@/components/rankings/StampRanking';
1313
import { MessagesUserRanking } from '@/components/rankings/UserRanking';
1414
import { useDateRangePicker } from '@/composables/useDateRangePicker';
1515
import type { FC } from 'react';
16-
import { Link } from 'react-router-dom';
16+
import { Link } from 'react-router';
1717

1818
export const Dashboard: FC = () => {
1919
const range = useDateRangePicker('last-7-days');

apps/client/src/pages/groups/GroupDetailPage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { GroupDetail } from '@/pages/groups/GroupDetail';
44
import { Loader } from '@mantine/core';
55
import clsx from 'clsx';
66
import type { FC } from 'react';
7-
import { Link, useParams } from 'react-router-dom';
7+
import { Link, useParams } from 'react-router';
88

99
export const GroupDetailPage: FC = () => {
1010
const { groupName } = useParams<{ groupName: string }>();

apps/client/src/pages/groups/GroupOverviewPage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { useGroups } from '@/hooks/useGroups';
66
import { searchGroups } from '@/lib/search';
77
import { TextInput, Skeleton } from '@mantine/core';
88
import { useState, type FC } from 'react';
9-
import { Link } from 'react-router-dom';
9+
import { Link } from 'react-router';
1010

1111
const SearchGroupBlock: FC = () => {
1212
const [keyword, setKeyword] = useState<string>('');

apps/client/src/pages/not-found.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { FC } from 'react';
2-
import { Link, useLocation } from 'react-router-dom';
2+
import { Link, useLocation } from 'react-router';
33

44
export const NotFoundPage: FC = () => {
55
const location = useLocation();

apps/client/src/pages/playground/PlaygroundResult.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { useUsers } from '@/hooks/useUsers';
77
import { assert } from '@/lib/invariant';
88
import clsx from 'clsx';
99
import type { FC, ReactNode } from 'react';
10-
import { Link } from 'react-router-dom';
10+
import { Link } from 'react-router';
1111

1212
type RowType = Partial<{
1313
channel: string;

apps/client/src/pages/router.tsx

+21-17
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,25 @@ import { SubscriptionSettingsPage } from '@/pages/subscriptions/SubscriptionSett
1212
import { TagOverviewPage } from '@/pages/tags/TagOverviewPage';
1313
import { UserDetailPage } from '@/pages/users/UserDetailPage';
1414
import { UserOverviewPage } from '@/pages/users/UserOverviewPage';
15-
import { createBrowserRouter } from 'react-router-dom';
15+
import { BrowserRouter, Routes, Route } from 'react-router';
1616

17-
export const router = createBrowserRouter([
18-
{ path: '/', element: <Dashboard /> },
19-
{ path: '/users', element: <UserOverviewPage /> },
20-
{ path: '/users/:username', element: <UserDetailPage /> },
21-
{ path: '/channels', element: <ChannelOverviewPage /> },
22-
{ path: '/channels/*', element: <ChannelDetailPage /> },
23-
{ path: '/stamps', element: <StampOverviewPage /> },
24-
{ path: '/stamps/:stampName', element: <StampDetailPage /> },
25-
{ path: '/messages', element: <MessageOverviewPage /> },
26-
{ path: '/groups', element: <GroupOverviewPage /> },
27-
{ path: '/groups/:groupName', element: <GroupDetailPage /> },
28-
{ path: '/tags', element: <TagOverviewPage /> },
29-
{ path: '/subscriptions', element: <SubscriptionSettingsPage /> },
30-
{ path: '/playground', element: <PlaygroundPage /> },
31-
{ path: '*', element: <NotFoundPage /> },
32-
]);
17+
export const AppRouter = () => (
18+
<BrowserRouter>
19+
<Routes>
20+
<Route index element={<Dashboard />} />
21+
<Route path="/users" element={<UserOverviewPage />} />
22+
<Route path="/users/:username" element={<UserDetailPage />} />
23+
<Route path="/channels" element={<ChannelOverviewPage />} />
24+
<Route path="/channels/*" element={<ChannelDetailPage />} />
25+
<Route path="/stamps" element={<StampOverviewPage />} />
26+
<Route path="/stamps/:stampName" element={<StampDetailPage />} />
27+
<Route path="/messages" element={<MessageOverviewPage />} />
28+
<Route path="/groups" element={<GroupOverviewPage />} />
29+
<Route path="/groups/:groupName" element={<GroupDetailPage />} />
30+
<Route path="/tags" element={<TagOverviewPage />} />
31+
<Route path="/subscriptions" element={<SubscriptionSettingsPage />} />
32+
<Route path="/playground" element={<PlaygroundPage />} />
33+
<Route path="*" element={<NotFoundPage />} />
34+
</Routes>
35+
</BrowserRouter>
36+
);

apps/client/src/pages/stamps/StampDetailPage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { StampDetail } from '@/pages/stamps/StampDetail';
44
import { Loader } from '@mantine/core';
55
import clsx from 'clsx';
66
import type { FC } from 'react';
7-
import { Link, useParams } from 'react-router-dom';
7+
import { Link, useParams } from 'react-router';
88

99
export const StampDetailPage: FC = () => {
1010
const { stampName } = useParams<{ stampName: string }>();

apps/client/src/pages/stamps/StampOverViewPage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { useMessageStamps } from '@/hooks/useMessageStamps';
88
import { searchStamps } from '@/lib/search';
99
import { Skeleton, TextInput } from '@mantine/core';
1010
import { useState, type FC } from 'react';
11-
import { Link } from 'react-router-dom';
11+
import { Link } from 'react-router';
1212

1313
const SearchStampBlock: FC = () => {
1414
const [keyword, setKeyword] = useState<string>('');

apps/client/src/pages/users/UserDetailPage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { UserDetail } from '@/pages/users/UserDetail';
44
import { Loader } from '@mantine/core';
55
import clsx from 'clsx';
66
import type { FC } from 'react';
7-
import { Link, useParams } from 'react-router-dom';
7+
import { Link, useParams } from 'react-router';
88

99
export const UserDetailPage: FC = () => {
1010
const { username } = useParams<{ username: string }>();

apps/client/src/pages/users/UserOverviewPage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { useUsers } from '@/hooks/useUsers';
1313
import { searchUsers } from '@/lib/search';
1414
import { Skeleton, TextInput } from '@mantine/core';
1515
import { useState, type FC } from 'react';
16-
import { Link } from 'react-router-dom';
16+
import { Link } from 'react-router';
1717

1818
const SearchUserBlock: FC = () => {
1919
const [keyword, setKeyword] = useState<string>('');

apps/client/tsconfig.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"compilerOptions": {
3-
"target": "ES2020",
3+
"target": "ES2021",
44
"useDefineForClassFields": true,
5-
"lib": ["ES2020", "DOM", "DOM.Iterable"],
5+
"lib": ["ES2021", "DOM", "DOM.Iterable"],
66
"module": "ESNext",
77
"skipLibCheck": true,
88

apps/client/vite.config.ts

+5
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,9 @@ export default defineConfig({
2626
credentials: true,
2727
},
2828
},
29+
resolve: {
30+
alias: {
31+
'@tabler/icons-react': '@tabler/icons-react/dist/esm/icons/index.mjs',
32+
},
33+
},
2934
});

apps/react-router.config.ts

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import type { Config } from '@react-router/dev/config';
2+
3+
export default {
4+
ssr: false,
5+
} satisfies Config;

apps/server/package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818
"update-statistics": "bun run ./src/traQ/scripts/update-statistics.ts"
1919
},
2020
"dependencies": {
21-
"@hono/zod-validator": "^0.2.2",
21+
"@hono/zod-validator": "^0.4.2",
2222
"@traq-ing/database": "workspace:*",
23-
"hono": "^4.5.3",
23+
"hono": "^4.6.14",
2424
"js-sha256": "^0.11.0",
2525
"sharp": "^0.33.5",
2626
"traq-bot-ts": "1.4.1",
27-
"zod": "^3.23.8"
27+
"zod": "^3.24.1"
2828
},
2929
"devDependencies": {
30-
"bun-types": "latest",
31-
"drizzle-kit": "^0.23.1"
30+
"bun-types": "^1.1.40",
31+
"drizzle-kit": "^0.30.1"
3232
}
3333
}

bun.lockb

43.3 KB
Binary file not shown.

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
"format:check": "biome format ."
3434
},
3535
"devDependencies": {
36-
"@biomejs/biome": "1.9.2",
36+
"@biomejs/biome": "1.9.4",
3737
"npm-run-all": "^4.1.5",
38-
"typescript": "^5.5.4"
38+
"typescript": "^5.7.2"
3939
}
4040
}

packages/database/package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
"studio": "drizzle-kit studio --host 0.0.0.0 --port 5000"
1414
},
1515
"dependencies": {
16-
"drizzle-orm": "0.33.0",
17-
"postgres": "3.4.4"
16+
"drizzle-orm": "0.38.2",
17+
"postgres": "3.4.5"
1818
},
1919
"devDependencies": {
20-
"bun-types": "latest",
21-
"drizzle-kit": "0.24.2",
22-
"tsup": "8.3.0"
20+
"bun-types": "^1.1.40",
21+
"drizzle-kit": "0.30.1",
22+
"tsup": "8.3.5"
2323
}
2424
}

0 commit comments

Comments
 (0)