From d7861b9789bea88e31d4660c0332b640f1253575 Mon Sep 17 00:00:00 2001 From: Imken Luo Date: Fri, 29 Sep 2023 23:58:29 +0800 Subject: [PATCH] fix(viewer): fix user profile & reply showing build(deps): bump nextjs version to 13.5.3 --- packages/viewer/package.json | 4 +- .../viewer/src/app/r/[rid]/get-reply-raw.ts | 22 ++--- .../src/app/r/[rid]/image/template-default.ts | 2 +- packages/viewer/src/app/r/[rid]/page.tsx | 36 ++++---- .../[uid]/discussions/UserDiscussions.tsx | 2 +- .../user/[uid]/judgements/UserJudgements.tsx | 4 +- .../app/user/[uid]/judgements/data/route.ts | 5 +- packages/viewer/src/app/user/[uid]/layout.tsx | 2 + .../[uid]/participated/UserParticipated.tsx | 33 +++----- .../app/user/[uid]/participated/data/route.ts | 27 ++---- .../app/user/[uid]/replies/UserReplies.tsx | 33 +++----- .../src/app/user/[uid]/replies/data/route.ts | 23 +++--- packages/viewer/src/components/Ostracon.tsx | 4 +- packages/viewer/src/lib/reply.ts | 36 ++++++++ pnpm-lock.yaml | 82 +++++++++---------- 15 files changed, 152 insertions(+), 163 deletions(-) diff --git a/packages/viewer/package.json b/packages/viewer/package.json index b3d1816..099db2f 100644 --- a/packages/viewer/package.json +++ b/packages/viewer/package.json @@ -15,7 +15,7 @@ "highlight.js": "^11.8.0", "jsdom": "^22.1.0", "katex": "^0.16.8", - "next": "^13.5.2", + "next": "^13.5.3", "puppeteer": "^21.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -38,7 +38,7 @@ "eslint": "^8.49.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.1.0", - "eslint-config-next": "^13.5.2", + "eslint-config-next": "^13.5.3", "eslint-import-resolver-typescript": "^3.6.0", "eslint-plugin-import": "^2.28.1", "eslint-plugin-react": "^7.33.2", diff --git a/packages/viewer/src/app/r/[rid]/get-reply-raw.ts b/packages/viewer/src/app/r/[rid]/get-reply-raw.ts index b82b139..5cabf92 100644 --- a/packages/viewer/src/app/r/[rid]/get-reply-raw.ts +++ b/packages/viewer/src/app/r/[rid]/get-reply-raw.ts @@ -1,14 +1,15 @@ import { notFound } from "next/navigation"; import prisma from "@/lib/prisma"; +import { selectReply } from "@/lib/reply"; export default async (id: number) => (await prisma.reply.findUnique({ select: { - id: true, - author: true, - time: true, - content: true, - discussion: { + ...selectReply.withLatestContent, + ...selectReply.withTakedown, + ...selectReply.withBasic, + postId: undefined, + post: { select: { id: true, snapshots: { @@ -18,17 +19,6 @@ export default async (id: number) => }, }, }, - takedown: { - select: { - submitter: { - select: { - id: true, - username: true, - }, - }, - reason: true, - }, - }, }, where: { id }, })) ?? notFound(); diff --git a/packages/viewer/src/app/r/[rid]/image/template-default.ts b/packages/viewer/src/app/r/[rid]/image/template-default.ts index 2fe7f54..02f2d7e 100644 --- a/packages/viewer/src/app/r/[rid]/image/template-default.ts +++ b/packages/viewer/src/app/r/[rid]/image/template-default.ts @@ -100,7 +100,7 @@ export default ( position: relative; " > - ${reply.content} + ${reply.snapshots[0].content}
抱歉,本功能暂未完成 TAT; - + // return <>抱歉,本功能暂未完成 TAT; const id = parseInt(params.rid, 10); if (Number.isNaN(id)) notFound(); - const replyRaw = await getReplyRaw(id); - const reply = { - ...replyRaw, - ...(await serializeReply(replyRaw.discussion.id, replyRaw)), - }; + const reply = await getReplyRaw(id); const pages = Math.ceil( (await prisma.reply.count({ - where: { id: { lte: id }, discussionId: reply.discussion.id }, + where: { id: { lte: id }, postId: reply.post.id }, })) / REPLIES_PER_PAGE, ); // return redirect(`/${discussionId}/${pages}#${params.rid}`); @@ -37,15 +33,15 @@ export default async function Page({ params }: { params: { rid: string } }) {
- {reply.time} + {stringifyTime(reply.time)}
@@ -53,28 +49,28 @@ export default async function Page({ params }: { params: { rid: string } }) { className="position-absolute" style={{ bottom: "-1.6em", left: ".8em" }} > - +
- + - {reply.time} + {stringifyTime(reply.time)}
于帖子{" "} - {reply.discussion.snapshots[0].title} + {reply.post.snapshots[0].title} (第 {pages} 页)
@@ -85,9 +81,9 @@ export default async function Page({ params }: { params: { rid: string } }) { 于帖子{" "} - {reply.discussion.snapshots[0].title} + {reply.post.snapshots[0].title} (第 {pages} 页)
diff --git a/packages/viewer/src/app/user/[uid]/discussions/UserDiscussions.tsx b/packages/viewer/src/app/user/[uid]/discussions/UserDiscussions.tsx index 4ab932a..9f22904 100644 --- a/packages/viewer/src/app/user/[uid]/discussions/UserDiscussions.tsx +++ b/packages/viewer/src/app/user/[uid]/discussions/UserDiscussions.tsx @@ -72,7 +72,7 @@ export default function UserDiscussions({ uid }: { uid: string }) { )), diff --git a/packages/viewer/src/app/user/[uid]/judgements/UserJudgements.tsx b/packages/viewer/src/app/user/[uid]/judgements/UserJudgements.tsx index 4a0c930..449b05a 100644 --- a/packages/viewer/src/app/user/[uid]/judgements/UserJudgements.tsx +++ b/packages/viewer/src/app/user/[uid]/judgements/UserJudgements.tsx @@ -2,13 +2,13 @@ import useSWRInfinite from "swr/infinite"; import InfiniteScroll from "react-infinite-scroll-component"; -import { User } from "@prisma/client"; import fetcher from "@/lib/fetcher"; import Spinner from "@/components/Spinner"; import Ostracon from "@/components/Ostracon"; +import type { LatestUser } from "@/lib/user"; interface PageData { - data: { time: string; user: User; content: string }[]; + data: { time: string; user: LatestUser; content: string }[]; nextCursor: string; } diff --git a/packages/viewer/src/app/user/[uid]/judgements/data/route.ts b/packages/viewer/src/app/user/[uid]/judgements/data/route.ts index bca4da1..660162c 100644 --- a/packages/viewer/src/app/user/[uid]/judgements/data/route.ts +++ b/packages/viewer/src/app/user/[uid]/judgements/data/route.ts @@ -1,17 +1,18 @@ import { NextResponse, type NextRequest } from "next/server"; import prisma from "@/lib/prisma"; import { NUM_PER_PAGE } from "../../constants"; +import { selectUser } from "@/lib/user"; export async function GET( request: NextRequest, - { params }: { params: { uid: string } }, + { params }: { params: { uid: string } } ) { const uid = parseInt(params.uid, 10); const cursor = request.nextUrl.searchParams.get("cursor"); const judgements = await prisma.judgement.findMany({ select: { time: true, - user: true, + user: { select: selectUser.withLatest }, content: true, }, where: { diff --git a/packages/viewer/src/app/user/[uid]/layout.tsx b/packages/viewer/src/app/user/[uid]/layout.tsx index 9c7d322..c0925bc 100644 --- a/packages/viewer/src/app/user/[uid]/layout.tsx +++ b/packages/viewer/src/app/user/[uid]/layout.tsx @@ -6,6 +6,7 @@ import UserInfo from "@/components/UserInfo"; import "@/components/markdown.css"; import TabNavigation from "./TabNavigation"; import UserStatistics from "./UserStatistics"; +import { selectUser } from "@/lib/user"; export async function generateMetadata({ params, @@ -28,6 +29,7 @@ export default async function Layout({ const user = (await prisma.user.findUnique({ where: { id: parseInt(params.uid, 10) }, + select: selectUser.withLatest, })) ?? notFound(); return (
diff --git a/packages/viewer/src/app/user/[uid]/participated/UserParticipated.tsx b/packages/viewer/src/app/user/[uid]/participated/UserParticipated.tsx index 43c4eae..86072f0 100644 --- a/packages/viewer/src/app/user/[uid]/participated/UserParticipated.tsx +++ b/packages/viewer/src/app/user/[uid]/participated/UserParticipated.tsx @@ -4,7 +4,7 @@ import Link from "next/link"; import useSWRInfinite from "swr/infinite"; import InfiniteScroll from "react-infinite-scroll-component"; import type { PostWithLatestContent } from "@/lib/post"; -import type { UserMetioned } from "@/lib/serialize-reply"; +// import type { UserMetioned } from "@/lib/serialize-reply"; import UserAvatar from "@/components/UserAvatar"; import UserInfo from "@/components/UserInfo"; import Content from "@/components/replies/Content"; @@ -12,21 +12,12 @@ import fetcher from "@/lib/fetcher"; import Spinner from "@/components/Spinner"; import { NUM_MAX_REPLIES_SHOWED_DEFAULT } from "../constants"; import { LatestUser } from "@/lib/user"; +import { ReplyWithLatestContentPostMeta } from "@/lib/reply"; +import stringifyTime from "@/lib/time"; interface PageData { data: (PostWithLatestContent & { - content: string; - time: string; - usersMetioned: UserMetioned[]; - } & { - replies: { - content: string; - time: string; - usersMetioned: UserMetioned[]; - id: number; - discussionId: number; - authorId: number; - }[]; + replies: ReplyWithLatestContentPostMeta[]; })[]; nextCursor: number; } @@ -45,7 +36,7 @@ export default function UserParticipated({ : `/user/${uid}/participated/data${ pageIndex ? `?cursor=${previousPageData.nextCursor}` : "" }`, - fetcher, + fetcher ); return ( @@ -136,7 +127,7 @@ export default function UserParticipated({ @@ -185,7 +176,7 @@ export default function UserParticipated({
- {reply.authorId === + {reply.snapshots[0].author.id === discussion.snapshots[0].author.id ? ( - {reply.time} + {stringifyTime(reply.time)} - {reply.time} + {stringifyTime(reply.time)}
@@ -288,12 +279,12 @@ export default function UserParticipated({ {" "} {discussion.replyCount} - {discussion.time} + {stringifyTime(discussion.time)}
- )), + )) )} {isValidating && } diff --git a/packages/viewer/src/app/user/[uid]/participated/data/route.ts b/packages/viewer/src/app/user/[uid]/participated/data/route.ts index 73bc5fb..3dae923 100644 --- a/packages/viewer/src/app/user/[uid]/participated/data/route.ts +++ b/packages/viewer/src/app/user/[uid]/participated/data/route.ts @@ -1,7 +1,7 @@ import { NextResponse, type NextRequest } from "next/server"; import prisma from "@/lib/prisma"; import { getPost } from "@/lib/post"; -import serializeReply from "@/lib/serialize-reply"; +// import serializeReply from "@/lib/serialize-reply"; import { getReply } from "@/lib/reply"; import { NUM_PER_PAGE } from "../../constants"; @@ -11,7 +11,7 @@ export async function GET( ) { const uid = parseInt(params.uid, 10); const cursor = request.nextUrl.searchParams.get("cursor"); - const discussions = await prisma.post + const posts = await prisma.post .findMany({ select: { ...getPost.latestWithContent, @@ -34,27 +34,10 @@ export async function GET( orderBy: { id: "desc" }, take: NUM_PER_PAGE, }) - .then((d) => - Promise.all( - d.map(async (discussion) => ({ - ...discussion, - ...(await serializeReply(discussion.id, { - content: discussion.snapshots[0].content, - time: discussion.time, - })), - replies: await Promise.all( - discussion.replies.map(async (reply) => ({ - ...reply, - ...(await serializeReply(discussion.id, reply)), - })), - ), - })), - ), - ); return NextResponse.json({ - data: discussions, - nextCursor: discussions.length - ? discussions[discussions.length - 1].id + data: posts, + nextCursor: posts.length + ? posts[posts.length - 1].id : null, }); } diff --git a/packages/viewer/src/app/user/[uid]/replies/UserReplies.tsx b/packages/viewer/src/app/user/[uid]/replies/UserReplies.tsx index 0849587..798395d 100644 --- a/packages/viewer/src/app/user/[uid]/replies/UserReplies.tsx +++ b/packages/viewer/src/app/user/[uid]/replies/UserReplies.tsx @@ -3,27 +3,15 @@ import Link from "next/link"; import useSWRInfinite from "swr/infinite"; import InfiniteScroll from "react-infinite-scroll-component"; -import type { User } from "@prisma/client"; -import type { UserMetioned } from "@/lib/serialize-reply"; +// import type { User } from "@prisma/client"; +// import type { UserMetioned } from "@/lib/serialize-reply"; import fetcher from "@/lib/fetcher"; import Reply from "@/components/replies/Reply"; import Spinner from "@/components/Spinner"; +import { ReplyWithLatestContentPostMeta } from "@/lib/reply"; interface PageData { - data: { - id: number; - time: string; - author: User; - content: string; - usersMetioned: UserMetioned[]; - discussion: { - id: number; - snapshots: { - title: string; - authorId: number; - }[]; - }; - }[]; + data: ReplyWithLatestContentPostMeta[]; nextCursor: number; } @@ -57,19 +45,22 @@ export default function UserReplies({ uid }: { uid: string }) { replies.map((reply) => (
于帖子{" "} - {reply.discussion.snapshots[0].title} + {reply.post.snapshots[0].title} :
diff --git a/packages/viewer/src/app/user/[uid]/replies/data/route.ts b/packages/viewer/src/app/user/[uid]/replies/data/route.ts index bb66c9e..9495134 100644 --- a/packages/viewer/src/app/user/[uid]/replies/data/route.ts +++ b/packages/viewer/src/app/user/[uid]/replies/data/route.ts @@ -1,8 +1,8 @@ import { NextResponse, type NextRequest } from "next/server"; import { getPost } from "@/lib/post"; -import { getReply } from "@/lib/reply"; +import { getReply, selectReply } from "@/lib/reply"; import prisma from "@/lib/prisma"; -import serializeReply from "@/lib/serialize-reply"; +// import serializeReply from "@/lib/serialize-reply"; import { NUM_PER_PAGE } from "../../constants"; export async function GET( @@ -15,9 +15,8 @@ export async function GET( .findMany({ select: { ...getReply.latestWithContent, - post: { - select: getPost.latestNoContent, - }, + ...selectReply.withPostMeta, + // postId: undefined, }, where: { post: { takedown: { is: null } }, @@ -32,13 +31,13 @@ export async function GET( orderBy: { id: "desc" }, take: NUM_PER_PAGE, }) - .then((r) => - r.map(async (reply) => ({ - ...reply, - ...(await serializeReply(reply.post.id, reply.snapshots[0])), - })), - ) - .then((r) => Promise.all(r)); + // .then((r) => + // r.map(async (reply) => ({ + // ...reply, + // ...(await serializeReply(reply.post.id, reply.snapshots[0])), + // })), + // ) + // .then((r) => Promise.all(r)); return NextResponse.json({ data: replies, nextCursor: replies.length ? replies[replies.length - 1].id : null, diff --git a/packages/viewer/src/components/Ostracon.tsx b/packages/viewer/src/components/Ostracon.tsx index 8de8736..d4ee03b 100644 --- a/packages/viewer/src/components/Ostracon.tsx +++ b/packages/viewer/src/components/Ostracon.tsx @@ -1,13 +1,13 @@ -import type { User } from "@prisma/client"; import UserAvatar from "@/components/UserAvatar"; import UserInfo from "@/components/UserInfo"; +import type { LatestUser } from "@/lib/user"; export default function Ostracon({ ostracon, }: { ostracon: { time: Date; - user: User; + user: LatestUser; content: string; }; }) { diff --git a/packages/viewer/src/lib/reply.ts b/packages/viewer/src/lib/reply.ts index 67106fb..ae09268 100644 --- a/packages/viewer/src/lib/reply.ts +++ b/packages/viewer/src/lib/reply.ts @@ -1,5 +1,6 @@ import { Prisma } from "@prisma/client"; import { selectUser } from "./user"; +import { get } from "http"; export const selectReply = { withBasic: Prisma.validator()({ @@ -44,6 +45,23 @@ export const selectReply = { }, }, }).select, + withPostMeta: Prisma.validator()({ + select: { + postId: undefined, + post: { + select: { + id: true, + snapshots: { + select: { + forum: true, + title: true, + author: { select: selectUser.withLatest }, + }, + }, + }, + }, + }, + }).select, }; export const getReply = { @@ -55,6 +73,15 @@ export const getReply = { ...selectReply.withBasic, ...selectReply.withLatestContent, }, + latestWithPostMeta: { + ...selectReply.withBasic, + ...selectReply.withPostMeta, + }, + latestContentWithPostMeta: { + ...selectReply.withBasic, + ...selectReply.withPostMeta, + ...selectReply.withLatestContent, + }, }; export const selectReplyWithLatestSnapshotMeta = @@ -67,6 +94,11 @@ export const selectReplyWithLatestContent = select: getReply.latestWithContent, }); +export const selectReplyWithLatestContentPostMeta = + Prisma.validator()({ + select: getReply.latestContentWithPostMeta, + }); + export type ReplyWithLatestSnapshotMeta = Prisma.ReplyGetPayload< typeof selectReplyWithLatestSnapshotMeta >; @@ -74,3 +106,7 @@ export type ReplyWithLatestSnapshotMeta = Prisma.ReplyGetPayload< export type ReplyWithLatestContent = Prisma.ReplyGetPayload< typeof selectReplyWithLatestContent >; + +export type ReplyWithLatestContentPostMeta = Prisma.ReplyGetPayload< + typeof selectReplyWithLatestContentPostMeta +>; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 96a5a43..5f56a0c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -117,8 +117,8 @@ importers: specifier: ^0.16.8 version: 0.16.8 next: - specifier: ^13.5.2 - version: 13.5.2(react-dom@18.2.0)(react@18.2.0)(sass@1.68.0) + specifier: ^13.5.3 + version: 13.5.3(react-dom@18.2.0)(react@18.2.0)(sass@1.68.0) puppeteer: specifier: ^21.3.1 version: 21.3.1(typescript@5.2.2) @@ -185,8 +185,8 @@ importers: specifier: ^17.1.0 version: 17.1.0(@typescript-eslint/eslint-plugin@6.7.2)(@typescript-eslint/parser@6.7.2)(eslint-plugin-import@2.28.1)(eslint@8.49.0) eslint-config-next: - specifier: ^13.5.2 - version: 13.5.2(eslint@8.49.0)(typescript@5.2.2) + specifier: ^13.5.3 + version: 13.5.3(eslint@8.49.0)(typescript@5.2.2) eslint-import-resolver-typescript: specifier: ^3.6.0 version: 3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0) @@ -442,18 +442,18 @@ packages: - utf-8-validate dev: true - /@next/env@13.5.2: - resolution: {integrity: sha512-dUseBIQVax+XtdJPzhwww4GetTjlkRSsXeQnisIJWBaHsnxYcN2RGzsPHi58D6qnkATjnhuAtQTJmR1hKYQQPg==} + /@next/env@13.5.3: + resolution: {integrity: sha512-X4te86vsbjsB7iO4usY9jLPtZ827Mbx+WcwNBGUOIuswuTAKQtzsuoxc/6KLxCMvogKG795MhrR1LDhYgDvasg==} dev: false - /@next/eslint-plugin-next@13.5.2: - resolution: {integrity: sha512-Ew8DOUerJYGRo8pI84SVwn9wxxx8sH92AanCXSkkLJM2W0RJEWy+BqWSCfrlA/3ZIczEl4l4o4lOeTGBPYfBJg==} + /@next/eslint-plugin-next@13.5.3: + resolution: {integrity: sha512-lbZOoEjzSuTtpk9UgV9rOmxYw+PsSfNR+00mZcInqooiDMZ1u+RqT1YQYLsEZPW1kumZoQe5+exkCBtZ2xn0uw==} dependencies: glob: 7.1.7 dev: true - /@next/swc-darwin-arm64@13.5.2: - resolution: {integrity: sha512-7eAyunAWq6yFwdSQliWMmGhObPpHTesiKxMw4DWVxhm5yLotBj8FCR4PXGkpRP2tf8QhaWuVba+/fyAYggqfQg==} + /@next/swc-darwin-arm64@13.5.3: + resolution: {integrity: sha512-6hiYNJxJmyYvvKGrVThzo4nTcqvqUTA/JvKim7Auaj33NexDqSNwN5YrrQu+QhZJCIpv2tULSHt+lf+rUflLSw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -461,8 +461,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@13.5.2: - resolution: {integrity: sha512-WxXYWE7zF1ch8rrNh5xbIWzhMVas6Vbw+9BCSyZvu7gZC5EEiyZNJsafsC89qlaSA7BnmsDXVWQmc+s1feSYbQ==} + /@next/swc-darwin-x64@13.5.3: + resolution: {integrity: sha512-UpBKxu2ob9scbpJyEq/xPgpdrgBgN3aLYlxyGqlYX5/KnwpJpFuIHU2lx8upQQ7L+MEmz+fA1XSgesoK92ppwQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -470,8 +470,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@13.5.2: - resolution: {integrity: sha512-URSwhRYrbj/4MSBjLlefPTK3/tvg95TTm6mRaiZWBB6Za3hpHKi8vSdnCMw5D2aP6k0sQQIEG6Pzcfwm+C5vrg==} + /@next/swc-linux-arm64-gnu@13.5.3: + resolution: {integrity: sha512-5AzM7Yx1Ky+oLY6pHs7tjONTF22JirDPd5Jw/3/NazJ73uGB05NqhGhB4SbeCchg7SlVYVBeRMrMSZwJwq/xoA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -479,8 +479,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@13.5.2: - resolution: {integrity: sha512-HefiwAdIygFyNmyVsQeiJp+j8vPKpIRYDlmTlF9/tLdcd3qEL/UEBswa1M7cvO8nHcr27ZTKXz5m7dkd56/Esg==} + /@next/swc-linux-arm64-musl@13.5.3: + resolution: {integrity: sha512-A/C1shbyUhj7wRtokmn73eBksjTM7fFQoY2v/0rTM5wehpkjQRLOXI8WJsag2uLhnZ4ii5OzR1rFPwoD9cvOgA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -488,8 +488,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@13.5.2: - resolution: {integrity: sha512-htGVVroW0tdHgMYwKWkxWvVoG2RlAdDXRO1RQxYDvOBQsaV0nZsgKkw0EJJJ3urTYnwKskn/MXm305cOgRxD2w==} + /@next/swc-linux-x64-gnu@13.5.3: + resolution: {integrity: sha512-FubPuw/Boz8tKkk+5eOuDHOpk36F80rbgxlx4+xty/U71e3wZZxVYHfZXmf0IRToBn1Crb8WvLM9OYj/Ur815g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -497,8 +497,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@13.5.2: - resolution: {integrity: sha512-UBD333GxbHVGi7VDJPPDD1bKnx30gn2clifNJbla7vo5nmBV+x5adyARg05RiT9amIpda6yzAEEUu+s774ldkw==} + /@next/swc-linux-x64-musl@13.5.3: + resolution: {integrity: sha512-DPw8nFuM1uEpbX47tM3wiXIR0Qa+atSzs9Q3peY1urkhofx44o7E1svnq+a5Q0r8lAcssLrwiM+OyJJgV/oj7g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -506,8 +506,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@13.5.2: - resolution: {integrity: sha512-Em9ApaSFIQnWXRT3K6iFnr9uBXymixLc65Xw4eNt7glgH0eiXpg+QhjmgI2BFyc7k4ZIjglfukt9saNpEyolWA==} + /@next/swc-win32-arm64-msvc@13.5.3: + resolution: {integrity: sha512-zBPSP8cHL51Gub/YV8UUePW7AVGukp2D8JU93IHbVDu2qmhFAn9LWXiOOLKplZQKxnIPUkJTQAJDCWBWU4UWUA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -515,8 +515,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@13.5.2: - resolution: {integrity: sha512-TBACBvvNYU+87X0yklSuAseqdpua8m/P79P0SG1fWUvWDDA14jASIg7kr86AuY5qix47nZLEJ5WWS0L20jAUNw==} + /@next/swc-win32-ia32-msvc@13.5.3: + resolution: {integrity: sha512-ONcL/lYyGUj4W37D4I2I450SZtSenmFAvapkJQNIJhrPMhzDU/AdfLkW98NvH1D2+7FXwe7yclf3+B7v28uzBQ==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -524,8 +524,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@13.5.2: - resolution: {integrity: sha512-LfTHt+hTL8w7F9hnB3H4nRasCzLD/fP+h4/GUVBTxrkMJOnh/7OZ0XbYDKO/uuWwryJS9kZjhxcruBiYwc5UDw==} + /@next/swc-win32-x64-msvc@13.5.3: + resolution: {integrity: sha512-2Vz2tYWaLqJvLcWbbTlJ5k9AN6JD7a5CN2pAeIzpbecK8ZF/yobA39cXtv6e+Z8c5UJuVOmaTldEAIxvsIux/Q==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2116,8 +2116,8 @@ packages: object.entries: 1.1.7 dev: true - /eslint-config-next@13.5.2(eslint@8.49.0)(typescript@5.2.2): - resolution: {integrity: sha512-kCF7k7fHBtFtxfP6J6AP6Mo0vW3CrFeoIuoZ7NHGIvLFc/RUaIspJ6inO/R33zE1o9t/lbJgTnsqnRB++sxCUQ==} + /eslint-config-next@13.5.3(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-VN2qbCpq2DMWgs7SVF8KTmc8bVaWz3s4nmcFqRLs7PNBt5AXejOhJuZ4zg2sCEHOvz5RvqdwLeI++NSCV6qHVg==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 typescript: '>=3.3.1' @@ -2125,7 +2125,7 @@ packages: typescript: optional: true dependencies: - '@next/eslint-plugin-next': 13.5.2 + '@next/eslint-plugin-next': 13.5.3 '@rushstack/eslint-patch': 1.4.0 '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) eslint: 8.49.0 @@ -3979,8 +3979,8 @@ packages: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} - /next@13.5.2(react-dom@18.2.0)(react@18.2.0)(sass@1.68.0): - resolution: {integrity: sha512-vog4UhUaMYAzeqfiAAmgB/QWLW7p01/sg+2vn6bqc/CxHFYizMzLv6gjxKzl31EVFkfl/F+GbxlKizlkTE9RdA==} + /next@13.5.3(react-dom@18.2.0)(react@18.2.0)(sass@1.68.0): + resolution: {integrity: sha512-4Nt4HRLYDW/yRpJ/QR2t1v63UOMS55A38dnWv3UDOWGezuY0ZyFO1ABNbD7mulVzs9qVhgy2+ppjdsANpKP1mg==} engines: {node: '>=16.14.0'} hasBin: true peerDependencies: @@ -3994,7 +3994,7 @@ packages: sass: optional: true dependencies: - '@next/env': 13.5.2 + '@next/env': 13.5.3 '@swc/helpers': 0.5.2 busboy: 1.6.0 caniuse-lite: 1.0.30001538 @@ -4006,15 +4006,15 @@ packages: watchpack: 2.4.0 zod: 3.21.4 optionalDependencies: - '@next/swc-darwin-arm64': 13.5.2 - '@next/swc-darwin-x64': 13.5.2 - '@next/swc-linux-arm64-gnu': 13.5.2 - '@next/swc-linux-arm64-musl': 13.5.2 - '@next/swc-linux-x64-gnu': 13.5.2 - '@next/swc-linux-x64-musl': 13.5.2 - '@next/swc-win32-arm64-msvc': 13.5.2 - '@next/swc-win32-ia32-msvc': 13.5.2 - '@next/swc-win32-x64-msvc': 13.5.2 + '@next/swc-darwin-arm64': 13.5.3 + '@next/swc-darwin-x64': 13.5.3 + '@next/swc-linux-arm64-gnu': 13.5.3 + '@next/swc-linux-arm64-musl': 13.5.3 + '@next/swc-linux-x64-gnu': 13.5.3 + '@next/swc-linux-x64-musl': 13.5.3 + '@next/swc-win32-arm64-msvc': 13.5.3 + '@next/swc-win32-ia32-msvc': 13.5.3 + '@next/swc-win32-x64-msvc': 13.5.3 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros