ATProto Social Bookmark
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat : セッションの時間を確認できるように

usounds 2b65099b d05304f1

+441 -289
+1
backend/prisma/schema.prisma
··· 126 126 model NodeOAuthSession { 127 127 key String @id 128 128 session String 129 + updatedAt DateTime @default(now()) @updatedAt 129 130 130 131 @@map("NodeOAuthSession") 131 132 }
+94 -15
frontend/app/[locale]/settings/Auto.tsx
··· 1 1 "use client"; 2 2 import { Authentication } from "@/components/Authentication"; 3 3 import { useXrpcAgentStore } from "@/state/XrpcAgent"; 4 - import { Avatar, Button, Group, Modal, Stack, Switch, Text, Title } from '@mantine/core'; 4 + import { Alert, Avatar, Button, Group, Modal, Paper, Stack, Switch, Text, Title } from '@mantine/core'; 5 5 import { notifications } from '@mantine/notifications'; 6 6 import { useLocale, useMessages } from 'next-intl'; 7 7 import { useEffect, useState } from 'react'; ··· 62 62 if (response.ok) { 63 63 const data = await response.json(); 64 64 setenableAutoGenerateBookmark(data.enableAutoGenerateBookmark || false); 65 - }else{ 65 + } else { 66 66 setIsError(true); 67 67 68 68 } ··· 125 125 notifications.clean(); 126 126 } 127 127 128 + const [lastLogin, setLastLogin] = useState<string | null>(null); 129 + 130 + useEffect(() => { 131 + if (userProf) { 132 + fetch("/api/session-info") 133 + .then(res => res.json()) 134 + .then(data => { 135 + if (data.updatedAt) { 136 + setLastLogin(new Date(data.updatedAt).toLocaleDateString(locale, { 137 + year: 'numeric', 138 + month: 'long', 139 + day: 'numeric' 140 + })); 141 + } 142 + }) 143 + .catch(err => console.error("Failed to fetch session info", err)); 144 + } 145 + }, [userProf, locale]); 146 + 147 + async function handleRelogin() { 148 + if (!userProf?.handle) return; 149 + setIsLoading(true); 150 + 151 + try { 152 + const { csrfToken } = await fetch("/api/csrf").then(r => r.json()); 153 + const returnTo = window.location.href; 154 + 155 + const res = await fetch("/api/oauth/login", { 156 + method: "POST", 157 + headers: { 158 + "Content-Type": "application/json", 159 + }, 160 + body: JSON.stringify({ 161 + handle: userProf.handle, 162 + returnTo, 163 + csrf: csrfToken, 164 + }), 165 + }); 166 + 167 + if (!res.ok) { 168 + throw new Error("OAuth login failed"); 169 + } 170 + 171 + const { url } = await res.json(); 172 + window.location.href = url; 173 + } catch (e) { 174 + console.error("Relogin failed", e); 175 + notifications.show({ 176 + title: 'Error', 177 + message: messages.settings.inform.error, 178 + color: 'red', 179 + }); 180 + setIsLoading(false); 181 + } 182 + } 183 + 128 184 return ( 129 185 <Stack gap="sm"> 130 186 <Title order={4}>{messages.settings.section.user.title}</Title> ··· 153 209 </Modal> 154 210 </> 155 211 : 156 - 157 - <Group gap="sm" wrap="nowrap" align="center" mb='lg'> 158 - <Avatar src={userProf?.avatar} radius="xl" /> 159 - 160 - <div style={{ flex: 1 }}> 161 - <Text size="sm" fw={500}> 162 - {userProf?.displayName || userProf?.handle || "Loading..."} 163 - </Text> 212 + <Paper withBorder p="md" radius="md" shadow="xs"> 213 + <Stack gap="md"> 214 + <Group justify="space-between" align="center"> 215 + <Group gap="sm"> 216 + <Avatar src={userProf?.avatar} radius="xl" size="lg" /> 217 + <div> 218 + <Text size="sm" fw={600}> 219 + {userProf?.displayName || userProf?.handle || "Loading..."} 220 + </Text> 221 + <Text c="dimmed" size="xs"> 222 + @{userProf?.handle || 'Loading...'} 223 + </Text> 224 + {lastLogin && ( 225 + <Text size="xs" c="dimmed" mt={2}> 226 + {messages.settings.section.user.lastLogin.replace('{date}', lastLogin)} 227 + </Text> 228 + )} 229 + </div> 230 + </Group> 231 + <Button 232 + variant="light" 233 + size="sm" 234 + onClick={handleRelogin} 235 + loading={isLoading} 236 + color="blue" 237 + > 238 + {messages.settings.section.user.relogin} 239 + </Button> 240 + </Group> 164 241 165 - <Text c="dimmed" size="xs"> 166 - @{userProf?.handle || 'Loading...'} 167 - </Text> 168 - </div> 169 - </Group> 242 + <Alert color="blue" variant="light" radius="md" style={{ border: 'none' }}> 243 + <Text size="xs" style={{ lineHeight: 1.5 }}> 244 + {messages.settings.section.user.reloginDescription} 245 + </Text> 246 + </Alert> 247 + </Stack> 248 + </Paper> 170 249 } 171 250 <Title order={4}>{messages.settings.section.enableAutoGenerateBookmark.title}</Title> 172 251 <Switch
+7
frontend/app/api/oauth/callback/route.ts
··· 1 1 import { NextRequest, NextResponse } from "next/server"; 2 2 import { getOAuthClient } from '@/logic/HandleOauthClientNode' 3 + import { prisma } from '@/logic/HandlePrismaClient' 3 4 import { Agent } from "@atproto/api"; 4 5 import crypto from "crypto"; 5 6 ··· 34 35 // 認証成功 35 36 const agent = new Agent(session); 36 37 await agent.getProfile({ actor: agent.did || '' }); 38 + 39 + // ログイン成功時にのみ updatedAt を更新する 40 + await prisma.nodeOAuthSession.update({ 41 + where: { key: session.sub }, 42 + data: { updatedAt: new Date() }, 43 + }).catch((e: any) => console.error('Failed to update session updatedAt', e)); 37 44 // もし redirectTo が必要ならクッキーから取得してリダイレクト 38 45 const redirectTo = req.cookies.get("REDIRECT_TO")?.value || "/"; 39 46
+31
frontend/app/api/session-info/route.ts
··· 1 + import { NextRequest, NextResponse } from "next/server"; 2 + import { verifySignedDid } from "@/logic/HandleOauthClientNode"; 3 + import { prisma } from "@/logic/HandlePrismaClient"; 4 + 5 + export async function GET(req: NextRequest) { 6 + const signedDid = req.cookies.get("USER_DID")?.value; 7 + if (!signedDid) { 8 + return new NextResponse("Unauthorized", { status: 401 }); 9 + } 10 + 11 + const did = verifySignedDid(signedDid); 12 + if (!did) { 13 + return new NextResponse("Invalid signature", { status: 401 }); 14 + } 15 + 16 + try { 17 + const session = await prisma.nodeOAuthSession.findUnique({ 18 + where: { key: did }, 19 + select: { updatedAt: true } 20 + }); 21 + 22 + if (!session) { 23 + return new NextResponse("Session not found", { status: 404 }); 24 + } 25 + 26 + return NextResponse.json({ updatedAt: session.updatedAt }); 27 + } catch (e) { 28 + console.error("Failed to fetch session info", e); 29 + return new NextResponse("Internal Server Error", { status: 500 }); 30 + } 31 + }
+24
frontend/check-db.js
··· 1 + import pg from 'pg'; 2 + import dotenv from 'dotenv'; 3 + dotenv.config(); 4 + 5 + const pool = new pg.Pool({ 6 + connectionString: process.env.DATABASE_URL 7 + }); 8 + 9 + async function check() { 10 + try { 11 + const res = await pool.query(` 12 + SELECT column_name 13 + FROM information_schema.columns 14 + WHERE table_name = 'NodeOAuthSession' AND column_name = 'updatedAt' 15 + `); 16 + console.log('Columns found:', res.rows); 17 + } catch (e) { 18 + console.error('Error checking schema:', e); 19 + } finally { 20 + await pool.end(); 21 + } 22 + } 23 + 24 + check();
+2 -2
frontend/package.json
··· 5 5 "private": true, 6 6 "scripts": { 7 7 "dev": "next dev --turbopack -p 4600", 8 - "update": "pnpm dlx npm-check-updates -u && pnpm install", 8 + "update": "pnpm dlx npm-check-updates -u && pnpm install && pnpm update", 9 9 "build": "vitest run && pnpm run prisma:generate && next build --webpack", 10 10 "prisma:copy": " cp ../backend/prisma/schema.prisma ./prisma/schema.prisma", 11 11 "prisma:generate": "pnpm exec prisma generate --schema=./prisma/schema.prisma", ··· 69 69 "@vitejs/plugin-react": "^5.1.4", 70 70 "@vitest/coverage-v8": "4.0.18", 71 71 "dotenv-cli": "^11.0.0", 72 - "eslint": "^10.0.0", 72 + "eslint": "^10.0.1", 73 73 "eslint-config-next": "16.1.6", 74 74 "jsdom": "^28.1.0", 75 75 "postcss": "^8.5.6",
+266 -265
frontend/pnpm-lock.yaml
··· 146 146 version: 19.2.3(@types/react@19.2.14) 147 147 '@typescript-eslint/eslint-plugin': 148 148 specifier: ^8.56.0 149 - version: 8.56.0(@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 149 + version: 8.56.0(@typescript-eslint/parser@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 150 150 '@typescript-eslint/parser': 151 151 specifier: ^8.56.0 152 - version: 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 152 + version: 8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 153 153 '@vitejs/plugin-react': 154 154 specifier: ^5.1.4 155 155 version: 5.1.4(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6))) ··· 160 160 specifier: ^11.0.0 161 161 version: 11.0.0 162 162 eslint: 163 - specifier: ^10.0.0 164 - version: 10.0.0(jiti@2.6.1) 163 + specifier: ^10.0.1 164 + version: 10.0.1(jiti@2.6.1) 165 165 eslint-config-next: 166 166 specifier: 16.1.6 167 - version: 16.1.6(@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 167 + version: 16.1.6(@typescript-eslint/parser@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 168 168 jsdom: 169 169 specifier: ^28.1.0 170 170 version: 28.1.0(@noble/hashes@1.8.0) ··· 318 318 '@atproto/api@0.18.21': 319 319 resolution: {integrity: sha512-s35MIJerGT/pKe2xJtKKswqlIr/ola2r2iURBKBL0Mk1OKe6jP4YvTMh1N2d2PEANFzNNTbKoDaLfJPo2Uvc/w==} 320 320 321 - '@atproto/common-web@0.4.16': 322 - resolution: {integrity: sha512-Ufvaff5JgxUyUyTAG0/3o7ltpy3lnZ1DvLjyAnvAf+hHfiK7OMQg+8byr+orN+KP9MtIQaRTsCgYPX+PxMKUoA==} 321 + '@atproto/common-web@0.4.17': 322 + resolution: {integrity: sha512-sfxD8NGxyoxhxmM9EUshEFbWcJ3+JHEOZF4Quk6HsCh1UxpHBmLabT/vEsAkDWl+C/8U0ine0+c/gHyE/OZiQQ==} 323 323 324 324 '@atproto/did@0.3.0': 325 325 resolution: {integrity: sha512-raUPzUGegtW/6OxwCmM8bhZvuIMzxG5t9oWsth6Tp91Kb5fTnHV2h/KKNF1C82doeA4BdXCErTyg7ISwLbQkzA==} ··· 333 333 '@atproto/jwk@0.6.0': 334 334 resolution: {integrity: sha512-bDoJPvt7TrQVi/rBfBrSSpGykhtIriKxeYCYQTiPRKFfyRhbgpElF0wPXADjIswnbzZdOwbY63az4E/CFVT3Tw==} 335 335 336 - '@atproto/lex-data@0.0.11': 337 - resolution: {integrity: sha512-4+KTtHdqwlhiTKA7D4SACea4jprsNpCQsNALW09wsZ6IHhCDGO5tr1cmV+QnLYe3G3mu1E1yXHXbPUHrUUDT/A==} 336 + '@atproto/lex-data@0.0.12': 337 + resolution: {integrity: sha512-aekJudcK1p6sbTqUv2bJMJBAGZaOJS0mgDclpK3U6VuBREK/au4B6ffunBFWgrDfg0Vwj2JGyEA7E51WZkJcRw==} 338 338 339 - '@atproto/lex-json@0.0.11': 340 - resolution: {integrity: sha512-2IExAoQ4KsR5fyPa1JjIvtR316PvdgRH/l3BVGLBd3cSxM3m5MftIv1B6qZ9HjNiK60SgkWp0mi9574bTNDhBQ==} 339 + '@atproto/lex-json@0.0.12': 340 + resolution: {integrity: sha512-XlEpnWWZdDJ5BIgG25GyH+6iBfyrFL18BI5JSE6rUfMObbFMrQRaCuRLQfryRXNysVz3L3U+Qb9y8KcXbE8AcA==} 341 341 342 342 '@atproto/lexicon@0.6.1': 343 343 resolution: {integrity: sha512-/vI1kVlY50Si+5MXpvOucelnYwb0UJ6Qto5mCp+7Q5C+Jtp+SoSykAPVvjVtTnQUH2vrKOFOwpb3C375vSKzXw==} ··· 469 469 '@chevrotain/utils@10.5.0': 470 470 resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==} 471 471 472 - '@csstools/color-helpers@6.0.1': 473 - resolution: {integrity: sha512-NmXRccUJMk2AWA5A7e5a//3bCIMyOu2hAtdRYrhPPHjDxINuCwX1w6rnIZ4xjLcp0ayv6h8Pc3X0eJUGiAAXHQ==} 472 + '@csstools/color-helpers@6.0.2': 473 + resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} 474 474 engines: {node: '>=20.19.0'} 475 475 476 476 '@csstools/css-calc@3.1.1': ··· 480 480 '@csstools/css-parser-algorithms': ^4.0.0 481 481 '@csstools/css-tokenizer': ^4.0.0 482 482 483 - '@csstools/css-color-parser@4.0.1': 484 - resolution: {integrity: sha512-vYwO15eRBEkeF6xjAno/KQ61HacNhfQuuU/eGwH67DplL0zD5ZixUa563phQvUelA07yDczIXdtmYojCphKJcw==} 483 + '@csstools/css-color-parser@4.0.2': 484 + resolution: {integrity: sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==} 485 485 engines: {node: '>=20.19.0'} 486 486 peerDependencies: 487 487 '@csstools/css-parser-algorithms': ^4.0.0 ··· 493 493 peerDependencies: 494 494 '@csstools/css-tokenizer': ^4.0.0 495 495 496 - '@csstools/css-syntax-patches-for-csstree@1.0.27': 497 - resolution: {integrity: sha512-sxP33Jwg1bviSUXAV43cVYdmjt2TLnLXNqCWl9xmxHawWVjGz/kEbdkr7F9pxJNBN2Mh+dq0crgItbW6tQvyow==} 496 + '@csstools/css-syntax-patches-for-csstree@1.0.28': 497 + resolution: {integrity: sha512-1NRf1CUBjnr3K7hu8BLxjQrKCxEe8FP/xmPTenAxCRZWVLbmGotkFvG9mfNpjA6k7Bw1bw4BilZq9cu19RA5pg==} 498 498 499 499 '@csstools/css-tokenizer@4.0.0': 500 500 resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} ··· 689 689 resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} 690 690 engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 691 691 692 - '@eslint/config-array@0.23.1': 693 - resolution: {integrity: sha512-uVSdg/V4dfQmTjJzR0szNczjOH/J+FyUMMjYtr07xFRXR7EDf9i1qdxrD0VusZH9knj1/ecxzCQQxyic5NzAiA==} 692 + '@eslint/config-array@0.23.2': 693 + resolution: {integrity: sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==} 694 694 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 695 695 696 696 '@eslint/config-helpers@0.5.2': ··· 701 701 resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==} 702 702 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 703 703 704 - '@eslint/object-schema@3.0.1': 705 - resolution: {integrity: sha512-P9cq2dpr+LU8j3qbLygLcSZrl2/ds/pUpfnHNNuk5HW7mnngHs+6WSq5C9mO3rqRX8A1poxqLTC9cu0KOyJlBg==} 704 + '@eslint/object-schema@3.0.2': 705 + resolution: {integrity: sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw==} 706 706 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 707 707 708 708 '@eslint/plugin-kit@0.6.0': ··· 1205 1205 '@rolldown/pluginutils@1.0.0-rc.3': 1206 1206 resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} 1207 1207 1208 - '@rollup/rollup-android-arm-eabi@4.57.1': 1209 - resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} 1208 + '@rollup/rollup-android-arm-eabi@4.59.0': 1209 + resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} 1210 1210 cpu: [arm] 1211 1211 os: [android] 1212 1212 1213 - '@rollup/rollup-android-arm64@4.57.1': 1214 - resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} 1213 + '@rollup/rollup-android-arm64@4.59.0': 1214 + resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} 1215 1215 cpu: [arm64] 1216 1216 os: [android] 1217 1217 1218 - '@rollup/rollup-darwin-arm64@4.57.1': 1219 - resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} 1218 + '@rollup/rollup-darwin-arm64@4.59.0': 1219 + resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} 1220 1220 cpu: [arm64] 1221 1221 os: [darwin] 1222 1222 1223 - '@rollup/rollup-darwin-x64@4.57.1': 1224 - resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} 1223 + '@rollup/rollup-darwin-x64@4.59.0': 1224 + resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} 1225 1225 cpu: [x64] 1226 1226 os: [darwin] 1227 1227 1228 - '@rollup/rollup-freebsd-arm64@4.57.1': 1229 - resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} 1228 + '@rollup/rollup-freebsd-arm64@4.59.0': 1229 + resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} 1230 1230 cpu: [arm64] 1231 1231 os: [freebsd] 1232 1232 1233 - '@rollup/rollup-freebsd-x64@4.57.1': 1234 - resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} 1233 + '@rollup/rollup-freebsd-x64@4.59.0': 1234 + resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} 1235 1235 cpu: [x64] 1236 1236 os: [freebsd] 1237 1237 1238 - '@rollup/rollup-linux-arm-gnueabihf@4.57.1': 1239 - resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} 1238 + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': 1239 + resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} 1240 1240 cpu: [arm] 1241 1241 os: [linux] 1242 1242 1243 - '@rollup/rollup-linux-arm-musleabihf@4.57.1': 1244 - resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} 1243 + '@rollup/rollup-linux-arm-musleabihf@4.59.0': 1244 + resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} 1245 1245 cpu: [arm] 1246 1246 os: [linux] 1247 1247 1248 - '@rollup/rollup-linux-arm64-gnu@4.57.1': 1249 - resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} 1248 + '@rollup/rollup-linux-arm64-gnu@4.59.0': 1249 + resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} 1250 1250 cpu: [arm64] 1251 1251 os: [linux] 1252 1252 1253 - '@rollup/rollup-linux-arm64-musl@4.57.1': 1254 - resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} 1253 + '@rollup/rollup-linux-arm64-musl@4.59.0': 1254 + resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} 1255 1255 cpu: [arm64] 1256 1256 os: [linux] 1257 1257 1258 - '@rollup/rollup-linux-loong64-gnu@4.57.1': 1259 - resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} 1258 + '@rollup/rollup-linux-loong64-gnu@4.59.0': 1259 + resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} 1260 1260 cpu: [loong64] 1261 1261 os: [linux] 1262 1262 1263 - '@rollup/rollup-linux-loong64-musl@4.57.1': 1264 - resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} 1263 + '@rollup/rollup-linux-loong64-musl@4.59.0': 1264 + resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} 1265 1265 cpu: [loong64] 1266 1266 os: [linux] 1267 1267 1268 - '@rollup/rollup-linux-ppc64-gnu@4.57.1': 1269 - resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} 1268 + '@rollup/rollup-linux-ppc64-gnu@4.59.0': 1269 + resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} 1270 1270 cpu: [ppc64] 1271 1271 os: [linux] 1272 1272 1273 - '@rollup/rollup-linux-ppc64-musl@4.57.1': 1274 - resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} 1273 + '@rollup/rollup-linux-ppc64-musl@4.59.0': 1274 + resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} 1275 1275 cpu: [ppc64] 1276 1276 os: [linux] 1277 1277 1278 - '@rollup/rollup-linux-riscv64-gnu@4.57.1': 1279 - resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} 1278 + '@rollup/rollup-linux-riscv64-gnu@4.59.0': 1279 + resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} 1280 1280 cpu: [riscv64] 1281 1281 os: [linux] 1282 1282 1283 - '@rollup/rollup-linux-riscv64-musl@4.57.1': 1284 - resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} 1283 + '@rollup/rollup-linux-riscv64-musl@4.59.0': 1284 + resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} 1285 1285 cpu: [riscv64] 1286 1286 os: [linux] 1287 1287 1288 - '@rollup/rollup-linux-s390x-gnu@4.57.1': 1289 - resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} 1288 + '@rollup/rollup-linux-s390x-gnu@4.59.0': 1289 + resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} 1290 1290 cpu: [s390x] 1291 1291 os: [linux] 1292 1292 1293 - '@rollup/rollup-linux-x64-gnu@4.57.1': 1294 - resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} 1293 + '@rollup/rollup-linux-x64-gnu@4.59.0': 1294 + resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} 1295 1295 cpu: [x64] 1296 1296 os: [linux] 1297 1297 1298 - '@rollup/rollup-linux-x64-musl@4.57.1': 1299 - resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} 1298 + '@rollup/rollup-linux-x64-musl@4.59.0': 1299 + resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} 1300 1300 cpu: [x64] 1301 1301 os: [linux] 1302 1302 1303 - '@rollup/rollup-openbsd-x64@4.57.1': 1304 - resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} 1303 + '@rollup/rollup-openbsd-x64@4.59.0': 1304 + resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} 1305 1305 cpu: [x64] 1306 1306 os: [openbsd] 1307 1307 1308 - '@rollup/rollup-openharmony-arm64@4.57.1': 1309 - resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} 1308 + '@rollup/rollup-openharmony-arm64@4.59.0': 1309 + resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} 1310 1310 cpu: [arm64] 1311 1311 os: [openharmony] 1312 1312 1313 - '@rollup/rollup-win32-arm64-msvc@4.57.1': 1314 - resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} 1313 + '@rollup/rollup-win32-arm64-msvc@4.59.0': 1314 + resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} 1315 1315 cpu: [arm64] 1316 1316 os: [win32] 1317 1317 1318 - '@rollup/rollup-win32-ia32-msvc@4.57.1': 1319 - resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} 1318 + '@rollup/rollup-win32-ia32-msvc@4.59.0': 1319 + resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} 1320 1320 cpu: [ia32] 1321 1321 os: [win32] 1322 1322 1323 - '@rollup/rollup-win32-x64-gnu@4.57.1': 1324 - resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} 1323 + '@rollup/rollup-win32-x64-gnu@4.59.0': 1324 + resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} 1325 1325 cpu: [x64] 1326 1326 os: [win32] 1327 1327 1328 - '@rollup/rollup-win32-x64-msvc@4.57.1': 1329 - resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} 1328 + '@rollup/rollup-win32-x64-msvc@4.59.0': 1329 + resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} 1330 1330 cpu: [x64] 1331 1331 os: [win32] 1332 1332 ··· 1825 1825 peerDependencies: 1826 1826 acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 1827 1827 1828 - acorn@8.15.0: 1829 - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 1828 + acorn@8.16.0: 1829 + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} 1830 1830 engines: {node: '>=0.4.0'} 1831 1831 hasBin: true 1832 1832 ··· 1920 1920 bail@2.0.2: 1921 1921 resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} 1922 1922 1923 - balanced-match@4.0.3: 1924 - resolution: {integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==} 1925 - engines: {node: 20 || >=22} 1923 + balanced-match@4.0.4: 1924 + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} 1925 + engines: {node: 18 || 20 || >=22} 1926 1926 1927 1927 base64url@3.0.1: 1928 1928 resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==} 1929 1929 engines: {node: '>=6.0.0'} 1930 1930 1931 - baseline-browser-mapping@2.9.19: 1932 - resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} 1931 + baseline-browser-mapping@2.10.0: 1932 + resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} 1933 + engines: {node: '>=6.0.0'} 1933 1934 hasBin: true 1934 1935 1935 1936 bidi-js@1.0.3: ··· 1938 1939 boolbase@1.0.0: 1939 1940 resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 1940 1941 1941 - brace-expansion@5.0.2: 1942 - resolution: {integrity: sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==} 1943 - engines: {node: 20 || >=22} 1942 + brace-expansion@5.0.3: 1943 + resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==} 1944 + engines: {node: 18 || 20 || >=22} 1944 1945 1945 1946 braces@3.0.3: 1946 1947 resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} ··· 1978 1979 resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 1979 1980 engines: {node: '>= 6'} 1980 1981 1981 - caniuse-lite@1.0.30001770: 1982 - resolution: {integrity: sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw==} 1982 + caniuse-lite@1.0.30001772: 1983 + resolution: {integrity: sha512-mIwLZICj+ntVTw4BT2zfp+yu/AqV6GMKfJVJMx3MwPxs+uk/uj2GLl2dH8LQbjiLDX66amCga5nKFyDgRR43kg==} 1983 1984 1984 1985 canonicalize@2.1.0: 1985 1986 resolution: {integrity: sha512-F705O3xrsUtgt98j7leetNhTWPe+5S72rlL5O4jA1pKqBVQ/dT1O1D6PFxmSXvc0SUOinWS57DKx0I3CHrXJHQ==} ··· 2076 2077 engines: {node: '>=4'} 2077 2078 hasBin: true 2078 2079 2079 - cssstyle@6.0.1: 2080 - resolution: {integrity: sha512-IoJs7La+oFp/AB033wBStxNOJt4+9hHMxsXUPANcoXL2b3W4DZKghlJ2cI/eyeRZIQ9ysvYEorVhjrcYctWbog==} 2080 + cssstyle@6.0.2: 2081 + resolution: {integrity: sha512-B5xvQYh7n+s/elmwhMOthufrO+QaORHuUoSJGhmogxPz9LNT6HMbou3fUeieOOFogKP84SYryyLC405QvyFvaA==} 2081 2082 engines: {node: '>=20'} 2082 2083 2083 2084 csstype@3.2.3: ··· 2219 2220 effect@3.18.4: 2220 2221 resolution: {integrity: sha512-b1LXQJLe9D11wfnOKAk3PKxuqYshQ0Heez+y5pnkd3jLj1yx9QhM72zZ9uUrOQyNvrs2GZZd/3maL0ZV18YuDA==} 2221 2222 2222 - electron-to-chromium@1.5.286: 2223 - resolution: {integrity: sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==} 2223 + electron-to-chromium@1.5.302: 2224 + resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==} 2224 2225 2225 2226 emoji-regex@9.2.2: 2226 2227 resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} ··· 2370 2371 peerDependencies: 2371 2372 eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 2372 2373 2373 - eslint-scope@9.1.0: 2374 - resolution: {integrity: sha512-CkWE42hOJsNj9FJRaoMX9waUFYhqY4jmyLFdAdzZr6VaCg3ynLYx4WnOdkaIifGfH4gsUcBTn4OZbHXkpLD0FQ==} 2374 + eslint-scope@9.1.1: 2375 + resolution: {integrity: sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==} 2375 2376 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 2376 2377 2377 2378 eslint-visitor-keys@3.4.3: 2378 2379 resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 2379 2380 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2380 2381 2381 - eslint-visitor-keys@5.0.0: 2382 - resolution: {integrity: sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==} 2382 + eslint-visitor-keys@5.0.1: 2383 + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} 2383 2384 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 2384 2385 2385 - eslint@10.0.0: 2386 - resolution: {integrity: sha512-O0piBKY36YSJhlFSG8p9VUdPV/SxxS4FYDWVpr/9GJuMaepzwlf4J8I4ov1b+ySQfDTPhc3DtLaxcT1fN0yqCg==} 2386 + eslint@10.0.1: 2387 + resolution: {integrity: sha512-20MV9SUdeN6Jd84xESsKhRly+/vxI+hwvpBMA93s+9dAcjdCuCojn4IqUGS3lvVaqjVYGYHSRMCpeFtF2rQYxQ==} 2387 2388 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 2388 2389 hasBin: true 2389 2390 peerDependencies: ··· 2395 2396 esm-env@1.2.2: 2396 2397 resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} 2397 2398 2398 - espree@11.1.0: 2399 - resolution: {integrity: sha512-WFWYhO1fV4iYkqOOvq8FbqIhr2pYfoDY0kCotMkDeNtGpiGGkZ1iov2u8ydjtgM8yF8rzK7oaTbw2NAzbAbehw==} 2399 + espree@11.1.1: 2400 + resolution: {integrity: sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==} 2400 2401 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 2401 2402 2402 2403 esquery@1.7.0: ··· 2607 2608 hermes-parser@0.25.1: 2608 2609 resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} 2609 2610 2610 - hono@4.11.10: 2611 - resolution: {integrity: sha512-kyWP5PAiMooEvGrA9jcD3IXF7ATu8+o7B3KCbPXid5se52NPqnOpM/r9qeW2heMnOekF4kqR1fXJqCYeCLKrZg==} 2611 + hono@4.12.1: 2612 + resolution: {integrity: sha512-hi9afu8g0lfJVLolxElAZGANCTTl6bewIdsRNhaywfP9K8BPf++F2z6OLrYGIinUwpRKzbZHMhPwvc0ZEpAwGw==} 2612 2613 engines: {node: '>=16.9.0'} 2613 2614 2614 2615 html-encoding-sniffer@6.0.0: ··· 3024 3025 resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 3025 3026 engines: {node: '>= 0.4'} 3026 3027 3027 - mdast-util-from-markdown@2.0.2: 3028 - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} 3028 + mdast-util-from-markdown@2.0.3: 3029 + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} 3029 3030 3030 3031 mdast-util-mdx-expression@2.0.1: 3031 3032 resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} ··· 3126 3127 resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 3127 3128 engines: {node: '>=4'} 3128 3129 3129 - minimatch@10.2.1: 3130 - resolution: {integrity: sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==} 3131 - engines: {node: 20 || >=22} 3130 + minimatch@10.2.2: 3131 + resolution: {integrity: sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==} 3132 + engines: {node: 18 || 20 || >=22} 3132 3133 3133 3134 minimist@1.2.8: 3134 3135 resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} ··· 3636 3637 resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 3637 3638 engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3638 3639 3639 - rollup@4.57.1: 3640 - resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} 3640 + rollup@4.59.0: 3641 + resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} 3641 3642 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 3642 3643 hasBin: true 3643 3644 ··· 4264 4265 '@asamuzakjp/css-color@4.1.2': 4265 4266 dependencies: 4266 4267 '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) 4267 - '@csstools/css-color-parser': 4.0.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) 4268 + '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) 4268 4269 '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) 4269 4270 '@csstools/css-tokenizer': 4.0.0 4270 4271 lru-cache: 11.2.6 ··· 4464 4465 4465 4466 '@atproto/api@0.18.21': 4466 4467 dependencies: 4467 - '@atproto/common-web': 0.4.16 4468 + '@atproto/common-web': 0.4.17 4468 4469 '@atproto/lexicon': 0.6.1 4469 4470 '@atproto/syntax': 0.4.3 4470 4471 '@atproto/xrpc': 0.7.7 ··· 4473 4474 tlds: 1.261.0 4474 4475 zod: 3.25.76 4475 4476 4476 - '@atproto/common-web@0.4.16': 4477 + '@atproto/common-web@0.4.17': 4477 4478 dependencies: 4478 - '@atproto/lex-data': 0.0.11 4479 - '@atproto/lex-json': 0.0.11 4479 + '@atproto/lex-data': 0.0.12 4480 + '@atproto/lex-json': 0.0.12 4480 4481 '@atproto/syntax': 0.4.3 4481 4482 zod: 3.25.76 4482 4483 ··· 4500 4501 multiformats: 9.9.0 4501 4502 zod: 3.25.76 4502 4503 4503 - '@atproto/lex-data@0.0.11': 4504 + '@atproto/lex-data@0.0.12': 4504 4505 dependencies: 4505 4506 multiformats: 9.9.0 4506 4507 tslib: 2.8.1 4507 4508 uint8arrays: 3.0.0 4508 4509 unicode-segmenter: 0.14.5 4509 4510 4510 - '@atproto/lex-json@0.0.11': 4511 + '@atproto/lex-json@0.0.12': 4511 4512 dependencies: 4512 - '@atproto/lex-data': 0.0.11 4513 + '@atproto/lex-data': 0.0.12 4513 4514 tslib: 2.8.1 4514 4515 4515 4516 '@atproto/lexicon@0.6.1': 4516 4517 dependencies: 4517 - '@atproto/common-web': 0.4.16 4518 + '@atproto/common-web': 0.4.17 4518 4519 '@atproto/syntax': 0.4.3 4519 4520 iso-datestring-validator: 2.2.2 4520 4521 multiformats: 9.9.0 ··· 4700 4701 4701 4702 '@chevrotain/utils@10.5.0': {} 4702 4703 4703 - '@csstools/color-helpers@6.0.1': {} 4704 + '@csstools/color-helpers@6.0.2': {} 4704 4705 4705 4706 '@csstools/css-calc@3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': 4706 4707 dependencies: 4707 4708 '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) 4708 4709 '@csstools/css-tokenizer': 4.0.0 4709 4710 4710 - '@csstools/css-color-parser@4.0.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': 4711 + '@csstools/css-color-parser@4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': 4711 4712 dependencies: 4712 - '@csstools/color-helpers': 6.0.1 4713 + '@csstools/color-helpers': 6.0.2 4713 4714 '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) 4714 4715 '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) 4715 4716 '@csstools/css-tokenizer': 4.0.0 ··· 4718 4719 dependencies: 4719 4720 '@csstools/css-tokenizer': 4.0.0 4720 4721 4721 - '@csstools/css-syntax-patches-for-csstree@1.0.27': {} 4722 + '@csstools/css-syntax-patches-for-csstree@1.0.28': {} 4722 4723 4723 4724 '@csstools/css-tokenizer@4.0.0': {} 4724 4725 ··· 4826 4827 '@esbuild/win32-x64@0.27.3': 4827 4828 optional: true 4828 4829 4829 - '@eslint-community/eslint-utils@4.9.1(eslint@10.0.0(jiti@2.6.1))': 4830 + '@eslint-community/eslint-utils@4.9.1(eslint@10.0.1(jiti@2.6.1))': 4830 4831 dependencies: 4831 - eslint: 10.0.0(jiti@2.6.1) 4832 + eslint: 10.0.1(jiti@2.6.1) 4832 4833 eslint-visitor-keys: 3.4.3 4833 4834 4834 4835 '@eslint-community/regexpp@4.12.2': {} 4835 4836 4836 - '@eslint/config-array@0.23.1': 4837 + '@eslint/config-array@0.23.2': 4837 4838 dependencies: 4838 - '@eslint/object-schema': 3.0.1 4839 + '@eslint/object-schema': 3.0.2 4839 4840 debug: 4.4.3 4840 - minimatch: 10.2.1 4841 + minimatch: 10.2.2 4841 4842 transitivePeerDependencies: 4842 4843 - supports-color 4843 4844 ··· 4849 4850 dependencies: 4850 4851 '@types/json-schema': 7.0.15 4851 4852 4852 - '@eslint/object-schema@3.0.1': {} 4853 + '@eslint/object-schema@3.0.2': {} 4853 4854 4854 4855 '@eslint/plugin-kit@0.6.0': 4855 4856 dependencies: ··· 4912 4913 '@formatjs/fast-memoize': 3.1.0 4913 4914 tslib: 2.8.1 4914 4915 4915 - '@hono/node-server@1.19.9(hono@4.11.10)': 4916 + '@hono/node-server@1.19.9(hono@4.12.1)': 4916 4917 dependencies: 4917 - hono: 4.11.10 4918 + hono: 4.12.1 4918 4919 4919 4920 '@humanfs/core@0.19.1': {} 4920 4921 ··· 5249 5250 '@electric-sql/pglite': 0.3.15 5250 5251 '@electric-sql/pglite-socket': 0.0.20(@electric-sql/pglite@0.3.15) 5251 5252 '@electric-sql/pglite-tools': 0.2.20(@electric-sql/pglite@0.3.15) 5252 - '@hono/node-server': 1.19.9(hono@4.11.10) 5253 + '@hono/node-server': 1.19.9(hono@4.12.1) 5253 5254 '@mrleebo/prisma-ast': 0.13.1 5254 5255 '@prisma/get-platform': 7.2.0 5255 5256 '@prisma/query-plan-executor': 7.2.0 5256 5257 foreground-child: 3.3.1 5257 5258 get-port-please: 3.2.0 5258 - hono: 4.11.10 5259 + hono: 4.12.1 5259 5260 http-status-codes: 2.3.0 5260 5261 pathe: 2.0.3 5261 5262 proper-lockfile: 4.1.2 ··· 5303 5304 5304 5305 '@rolldown/pluginutils@1.0.0-rc.3': {} 5305 5306 5306 - '@rollup/rollup-android-arm-eabi@4.57.1': 5307 + '@rollup/rollup-android-arm-eabi@4.59.0': 5307 5308 optional: true 5308 5309 5309 - '@rollup/rollup-android-arm64@4.57.1': 5310 + '@rollup/rollup-android-arm64@4.59.0': 5310 5311 optional: true 5311 5312 5312 - '@rollup/rollup-darwin-arm64@4.57.1': 5313 + '@rollup/rollup-darwin-arm64@4.59.0': 5313 5314 optional: true 5314 5315 5315 - '@rollup/rollup-darwin-x64@4.57.1': 5316 + '@rollup/rollup-darwin-x64@4.59.0': 5316 5317 optional: true 5317 5318 5318 - '@rollup/rollup-freebsd-arm64@4.57.1': 5319 + '@rollup/rollup-freebsd-arm64@4.59.0': 5319 5320 optional: true 5320 5321 5321 - '@rollup/rollup-freebsd-x64@4.57.1': 5322 + '@rollup/rollup-freebsd-x64@4.59.0': 5322 5323 optional: true 5323 5324 5324 - '@rollup/rollup-linux-arm-gnueabihf@4.57.1': 5325 + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': 5325 5326 optional: true 5326 5327 5327 - '@rollup/rollup-linux-arm-musleabihf@4.57.1': 5328 + '@rollup/rollup-linux-arm-musleabihf@4.59.0': 5328 5329 optional: true 5329 5330 5330 - '@rollup/rollup-linux-arm64-gnu@4.57.1': 5331 + '@rollup/rollup-linux-arm64-gnu@4.59.0': 5331 5332 optional: true 5332 5333 5333 - '@rollup/rollup-linux-arm64-musl@4.57.1': 5334 + '@rollup/rollup-linux-arm64-musl@4.59.0': 5334 5335 optional: true 5335 5336 5336 - '@rollup/rollup-linux-loong64-gnu@4.57.1': 5337 + '@rollup/rollup-linux-loong64-gnu@4.59.0': 5337 5338 optional: true 5338 5339 5339 - '@rollup/rollup-linux-loong64-musl@4.57.1': 5340 + '@rollup/rollup-linux-loong64-musl@4.59.0': 5340 5341 optional: true 5341 5342 5342 - '@rollup/rollup-linux-ppc64-gnu@4.57.1': 5343 + '@rollup/rollup-linux-ppc64-gnu@4.59.0': 5343 5344 optional: true 5344 5345 5345 - '@rollup/rollup-linux-ppc64-musl@4.57.1': 5346 + '@rollup/rollup-linux-ppc64-musl@4.59.0': 5346 5347 optional: true 5347 5348 5348 - '@rollup/rollup-linux-riscv64-gnu@4.57.1': 5349 + '@rollup/rollup-linux-riscv64-gnu@4.59.0': 5349 5350 optional: true 5350 5351 5351 - '@rollup/rollup-linux-riscv64-musl@4.57.1': 5352 + '@rollup/rollup-linux-riscv64-musl@4.59.0': 5352 5353 optional: true 5353 5354 5354 - '@rollup/rollup-linux-s390x-gnu@4.57.1': 5355 + '@rollup/rollup-linux-s390x-gnu@4.59.0': 5355 5356 optional: true 5356 5357 5357 - '@rollup/rollup-linux-x64-gnu@4.57.1': 5358 + '@rollup/rollup-linux-x64-gnu@4.59.0': 5358 5359 optional: true 5359 5360 5360 - '@rollup/rollup-linux-x64-musl@4.57.1': 5361 + '@rollup/rollup-linux-x64-musl@4.59.0': 5361 5362 optional: true 5362 5363 5363 - '@rollup/rollup-openbsd-x64@4.57.1': 5364 + '@rollup/rollup-openbsd-x64@4.59.0': 5364 5365 optional: true 5365 5366 5366 - '@rollup/rollup-openharmony-arm64@4.57.1': 5367 + '@rollup/rollup-openharmony-arm64@4.59.0': 5367 5368 optional: true 5368 5369 5369 - '@rollup/rollup-win32-arm64-msvc@4.57.1': 5370 + '@rollup/rollup-win32-arm64-msvc@4.59.0': 5370 5371 optional: true 5371 5372 5372 - '@rollup/rollup-win32-ia32-msvc@4.57.1': 5373 + '@rollup/rollup-win32-ia32-msvc@4.59.0': 5373 5374 optional: true 5374 5375 5375 - '@rollup/rollup-win32-x64-gnu@4.57.1': 5376 + '@rollup/rollup-win32-x64-gnu@4.59.0': 5376 5377 optional: true 5377 5378 5378 - '@rollup/rollup-win32-x64-msvc@4.57.1': 5379 + '@rollup/rollup-win32-x64-msvc@4.59.0': 5379 5380 optional: true 5380 5381 5381 5382 '@rtsao/scc@1.1.0': {} ··· 5639 5640 5640 5641 '@types/unist@3.0.3': {} 5641 5642 5642 - '@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)': 5643 + '@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3)': 5643 5644 dependencies: 5644 5645 '@eslint-community/regexpp': 4.12.2 5645 - '@typescript-eslint/parser': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 5646 + '@typescript-eslint/parser': 8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 5646 5647 '@typescript-eslint/scope-manager': 8.56.0 5647 - '@typescript-eslint/type-utils': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 5648 - '@typescript-eslint/utils': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 5648 + '@typescript-eslint/type-utils': 8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 5649 + '@typescript-eslint/utils': 8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 5649 5650 '@typescript-eslint/visitor-keys': 8.56.0 5650 - eslint: 10.0.0(jiti@2.6.1) 5651 + eslint: 10.0.1(jiti@2.6.1) 5651 5652 ignore: 7.0.5 5652 5653 natural-compare: 1.4.0 5653 5654 ts-api-utils: 2.4.0(typescript@5.9.3) ··· 5655 5656 transitivePeerDependencies: 5656 5657 - supports-color 5657 5658 5658 - '@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)': 5659 + '@typescript-eslint/parser@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3)': 5659 5660 dependencies: 5660 5661 '@typescript-eslint/scope-manager': 8.56.0 5661 5662 '@typescript-eslint/types': 8.56.0 5662 5663 '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) 5663 5664 '@typescript-eslint/visitor-keys': 8.56.0 5664 5665 debug: 4.4.3 5665 - eslint: 10.0.0(jiti@2.6.1) 5666 + eslint: 10.0.1(jiti@2.6.1) 5666 5667 typescript: 5.9.3 5667 5668 transitivePeerDependencies: 5668 5669 - supports-color ··· 5685 5686 dependencies: 5686 5687 typescript: 5.9.3 5687 5688 5688 - '@typescript-eslint/type-utils@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)': 5689 + '@typescript-eslint/type-utils@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3)': 5689 5690 dependencies: 5690 5691 '@typescript-eslint/types': 8.56.0 5691 5692 '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) 5692 - '@typescript-eslint/utils': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 5693 + '@typescript-eslint/utils': 8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 5693 5694 debug: 4.4.3 5694 - eslint: 10.0.0(jiti@2.6.1) 5695 + eslint: 10.0.1(jiti@2.6.1) 5695 5696 ts-api-utils: 2.4.0(typescript@5.9.3) 5696 5697 typescript: 5.9.3 5697 5698 transitivePeerDependencies: ··· 5706 5707 '@typescript-eslint/types': 8.56.0 5707 5708 '@typescript-eslint/visitor-keys': 8.56.0 5708 5709 debug: 4.4.3 5709 - minimatch: 10.2.1 5710 + minimatch: 10.2.2 5710 5711 semver: 7.7.4 5711 5712 tinyglobby: 0.2.15 5712 5713 ts-api-utils: 2.4.0(typescript@5.9.3) ··· 5714 5715 transitivePeerDependencies: 5715 5716 - supports-color 5716 5717 5717 - '@typescript-eslint/utils@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)': 5718 + '@typescript-eslint/utils@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3)': 5718 5719 dependencies: 5719 - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.0(jiti@2.6.1)) 5720 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.1(jiti@2.6.1)) 5720 5721 '@typescript-eslint/scope-manager': 8.56.0 5721 5722 '@typescript-eslint/types': 8.56.0 5722 5723 '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) 5723 - eslint: 10.0.0(jiti@2.6.1) 5724 + eslint: 10.0.1(jiti@2.6.1) 5724 5725 typescript: 5.9.3 5725 5726 transitivePeerDependencies: 5726 5727 - supports-color ··· 5728 5729 '@typescript-eslint/visitor-keys@8.56.0': 5729 5730 dependencies: 5730 5731 '@typescript-eslint/types': 8.56.0 5731 - eslint-visitor-keys: 5.0.0 5732 + eslint-visitor-keys: 5.0.1 5732 5733 5733 5734 '@ungap/structured-clone@1.3.0': {} 5734 5735 ··· 5856 5857 '@vitest/pretty-format': 4.0.18 5857 5858 tinyrainbow: 3.0.3 5858 5859 5859 - acorn-jsx@5.3.2(acorn@8.15.0): 5860 + acorn-jsx@5.3.2(acorn@8.16.0): 5860 5861 dependencies: 5861 - acorn: 8.15.0 5862 + acorn: 8.16.0 5862 5863 5863 - acorn@8.15.0: {} 5864 + acorn@8.16.0: {} 5864 5865 5865 5866 agent-base@7.1.4: {} 5866 5867 ··· 5974 5975 5975 5976 bail@2.0.2: {} 5976 5977 5977 - balanced-match@4.0.3: {} 5978 + balanced-match@4.0.4: {} 5978 5979 5979 5980 base64url@3.0.1: {} 5980 5981 5981 - baseline-browser-mapping@2.9.19: {} 5982 + baseline-browser-mapping@2.10.0: {} 5982 5983 5983 5984 bidi-js@1.0.3: 5984 5985 dependencies: ··· 5986 5987 5987 5988 boolbase@1.0.0: {} 5988 5989 5989 - brace-expansion@5.0.2: 5990 + brace-expansion@5.0.3: 5990 5991 dependencies: 5991 - balanced-match: 4.0.3 5992 + balanced-match: 4.0.4 5992 5993 5993 5994 braces@3.0.3: 5994 5995 dependencies: ··· 5996 5997 5997 5998 browserslist@4.28.1: 5998 5999 dependencies: 5999 - baseline-browser-mapping: 2.9.19 6000 - caniuse-lite: 1.0.30001770 6001 - electron-to-chromium: 1.5.286 6000 + baseline-browser-mapping: 2.10.0 6001 + caniuse-lite: 1.0.30001772 6002 + electron-to-chromium: 1.5.302 6002 6003 node-releases: 2.0.27 6003 6004 update-browserslist-db: 1.2.3(browserslist@4.28.1) 6004 6005 ··· 6040 6041 6041 6042 camelcase-css@2.0.1: {} 6042 6043 6043 - caniuse-lite@1.0.30001770: {} 6044 + caniuse-lite@1.0.30001772: {} 6044 6045 6045 6046 canonicalize@2.1.0: {} 6046 6047 ··· 6145 6146 6146 6147 cssesc@3.0.0: {} 6147 6148 6148 - cssstyle@6.0.1: 6149 + cssstyle@6.0.2: 6149 6150 dependencies: 6150 6151 '@asamuzakjp/css-color': 4.1.2 6151 - '@csstools/css-syntax-patches-for-csstree': 1.0.27 6152 + '@csstools/css-syntax-patches-for-csstree': 1.0.28 6152 6153 css-tree: 3.1.0 6153 6154 lru-cache: 11.2.6 6154 6155 ··· 6298 6299 '@standard-schema/spec': 1.1.0 6299 6300 fast-check: 3.23.2 6300 6301 6301 - electron-to-chromium@1.5.286: {} 6302 + electron-to-chromium@1.5.302: {} 6302 6303 6303 6304 emoji-regex@9.2.2: {} 6304 6305 ··· 6456 6457 6457 6458 escape-string-regexp@4.0.0: {} 6458 6459 6459 - eslint-config-next@16.1.6(@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3): 6460 + eslint-config-next@16.1.6(@typescript-eslint/parser@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3): 6460 6461 dependencies: 6461 6462 '@next/eslint-plugin-next': 16.1.6 6462 - eslint: 10.0.0(jiti@2.6.1) 6463 + eslint: 10.0.1(jiti@2.6.1) 6463 6464 eslint-import-resolver-node: 0.3.9 6464 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.0(jiti@2.6.1)) 6465 - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.0(jiti@2.6.1)) 6466 - eslint-plugin-jsx-a11y: 6.10.2(eslint@10.0.0(jiti@2.6.1)) 6467 - eslint-plugin-react: 7.37.5(eslint@10.0.0(jiti@2.6.1)) 6468 - eslint-plugin-react-hooks: 7.0.1(eslint@10.0.0(jiti@2.6.1)) 6465 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.1(jiti@2.6.1)) 6466 + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.1(jiti@2.6.1)) 6467 + eslint-plugin-jsx-a11y: 6.10.2(eslint@10.0.1(jiti@2.6.1)) 6468 + eslint-plugin-react: 7.37.5(eslint@10.0.1(jiti@2.6.1)) 6469 + eslint-plugin-react-hooks: 7.0.1(eslint@10.0.1(jiti@2.6.1)) 6469 6470 globals: 16.4.0 6470 - typescript-eslint: 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 6471 + typescript-eslint: 8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 6471 6472 optionalDependencies: 6472 6473 typescript: 5.9.3 6473 6474 transitivePeerDependencies: ··· 6484 6485 transitivePeerDependencies: 6485 6486 - supports-color 6486 6487 6487 - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.0(jiti@2.6.1)): 6488 + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.1(jiti@2.6.1)): 6488 6489 dependencies: 6489 6490 '@nolyfill/is-core-module': 1.0.39 6490 6491 debug: 4.4.3 6491 - eslint: 10.0.0(jiti@2.6.1) 6492 + eslint: 10.0.1(jiti@2.6.1) 6492 6493 get-tsconfig: 4.13.6 6493 6494 is-bun-module: 2.0.0 6494 6495 stable-hash: 0.0.5 6495 6496 tinyglobby: 0.2.15 6496 6497 unrs-resolver: 1.11.1 6497 6498 optionalDependencies: 6498 - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.0(jiti@2.6.1)) 6499 + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.1(jiti@2.6.1)) 6499 6500 transitivePeerDependencies: 6500 6501 - supports-color 6501 6502 6502 - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.0(jiti@2.6.1)): 6503 + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.1(jiti@2.6.1)): 6503 6504 dependencies: 6504 6505 debug: 3.2.7 6505 6506 optionalDependencies: 6506 - '@typescript-eslint/parser': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 6507 - eslint: 10.0.0(jiti@2.6.1) 6507 + '@typescript-eslint/parser': 8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 6508 + eslint: 10.0.1(jiti@2.6.1) 6508 6509 eslint-import-resolver-node: 0.3.9 6509 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.0(jiti@2.6.1)) 6510 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.1(jiti@2.6.1)) 6510 6511 transitivePeerDependencies: 6511 6512 - supports-color 6512 6513 6513 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.0(jiti@2.6.1)): 6514 + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.1(jiti@2.6.1)): 6514 6515 dependencies: 6515 6516 '@rtsao/scc': 1.1.0 6516 6517 array-includes: 3.1.9 ··· 6519 6520 array.prototype.flatmap: 1.3.3 6520 6521 debug: 3.2.7 6521 6522 doctrine: 2.1.0 6522 - eslint: 10.0.0(jiti@2.6.1) 6523 + eslint: 10.0.1(jiti@2.6.1) 6523 6524 eslint-import-resolver-node: 0.3.9 6524 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.0(jiti@2.6.1)) 6525 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.1(jiti@2.6.1)) 6525 6526 hasown: 2.0.2 6526 6527 is-core-module: 2.16.1 6527 6528 is-glob: 4.0.3 6528 - minimatch: 10.2.1 6529 + minimatch: 10.2.2 6529 6530 object.fromentries: 2.0.8 6530 6531 object.groupby: 1.0.3 6531 6532 object.values: 1.2.1 ··· 6533 6534 string.prototype.trimend: 1.0.9 6534 6535 tsconfig-paths: 3.15.0 6535 6536 optionalDependencies: 6536 - '@typescript-eslint/parser': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 6537 + '@typescript-eslint/parser': 8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 6537 6538 transitivePeerDependencies: 6538 6539 - eslint-import-resolver-typescript 6539 6540 - eslint-import-resolver-webpack 6540 6541 - supports-color 6541 6542 6542 - eslint-plugin-jsx-a11y@6.10.2(eslint@10.0.0(jiti@2.6.1)): 6543 + eslint-plugin-jsx-a11y@6.10.2(eslint@10.0.1(jiti@2.6.1)): 6543 6544 dependencies: 6544 6545 aria-query: 5.3.2 6545 6546 array-includes: 3.1.9 ··· 6549 6550 axobject-query: 4.1.0 6550 6551 damerau-levenshtein: 1.0.8 6551 6552 emoji-regex: 9.2.2 6552 - eslint: 10.0.0(jiti@2.6.1) 6553 + eslint: 10.0.1(jiti@2.6.1) 6553 6554 hasown: 2.0.2 6554 6555 jsx-ast-utils: 3.3.5 6555 6556 language-tags: 1.0.9 6556 - minimatch: 10.2.1 6557 + minimatch: 10.2.2 6557 6558 object.fromentries: 2.0.8 6558 6559 safe-regex-test: 1.1.0 6559 6560 string.prototype.includes: 2.0.1 6560 6561 6561 - eslint-plugin-react-hooks@7.0.1(eslint@10.0.0(jiti@2.6.1)): 6562 + eslint-plugin-react-hooks@7.0.1(eslint@10.0.1(jiti@2.6.1)): 6562 6563 dependencies: 6563 6564 '@babel/core': 7.29.0 6564 6565 '@babel/parser': 7.29.0 6565 - eslint: 10.0.0(jiti@2.6.1) 6566 + eslint: 10.0.1(jiti@2.6.1) 6566 6567 hermes-parser: 0.25.1 6567 6568 zod: 4.3.6 6568 6569 zod-validation-error: 4.0.2(zod@4.3.6) 6569 6570 transitivePeerDependencies: 6570 6571 - supports-color 6571 6572 6572 - eslint-plugin-react@7.37.5(eslint@10.0.0(jiti@2.6.1)): 6573 + eslint-plugin-react@7.37.5(eslint@10.0.1(jiti@2.6.1)): 6573 6574 dependencies: 6574 6575 array-includes: 3.1.9 6575 6576 array.prototype.findlast: 1.2.5 ··· 6577 6578 array.prototype.tosorted: 1.1.4 6578 6579 doctrine: 2.1.0 6579 6580 es-iterator-helpers: 1.2.2 6580 - eslint: 10.0.0(jiti@2.6.1) 6581 + eslint: 10.0.1(jiti@2.6.1) 6581 6582 estraverse: 5.3.0 6582 6583 hasown: 2.0.2 6583 6584 jsx-ast-utils: 3.3.5 6584 - minimatch: 10.2.1 6585 + minimatch: 10.2.2 6585 6586 object.entries: 1.1.9 6586 6587 object.fromentries: 2.0.8 6587 6588 object.values: 1.2.1 ··· 6591 6592 string.prototype.matchall: 4.0.12 6592 6593 string.prototype.repeat: 1.0.0 6593 6594 6594 - eslint-scope@9.1.0: 6595 + eslint-scope@9.1.1: 6595 6596 dependencies: 6596 6597 '@types/esrecurse': 4.3.1 6597 6598 '@types/estree': 1.0.8 ··· 6600 6601 6601 6602 eslint-visitor-keys@3.4.3: {} 6602 6603 6603 - eslint-visitor-keys@5.0.0: {} 6604 + eslint-visitor-keys@5.0.1: {} 6604 6605 6605 - eslint@10.0.0(jiti@2.6.1): 6606 + eslint@10.0.1(jiti@2.6.1): 6606 6607 dependencies: 6607 - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.0(jiti@2.6.1)) 6608 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.1(jiti@2.6.1)) 6608 6609 '@eslint-community/regexpp': 4.12.2 6609 - '@eslint/config-array': 0.23.1 6610 + '@eslint/config-array': 0.23.2 6610 6611 '@eslint/config-helpers': 0.5.2 6611 6612 '@eslint/core': 1.1.0 6612 6613 '@eslint/plugin-kit': 0.6.0 ··· 6618 6619 cross-spawn: 7.0.6 6619 6620 debug: 4.4.3 6620 6621 escape-string-regexp: 4.0.0 6621 - eslint-scope: 9.1.0 6622 - eslint-visitor-keys: 5.0.0 6623 - espree: 11.1.0 6622 + eslint-scope: 9.1.1 6623 + eslint-visitor-keys: 5.0.1 6624 + espree: 11.1.1 6624 6625 esquery: 1.7.0 6625 6626 esutils: 2.0.3 6626 6627 fast-deep-equal: 3.1.3 ··· 6631 6632 imurmurhash: 0.1.4 6632 6633 is-glob: 4.0.3 6633 6634 json-stable-stringify-without-jsonify: 1.0.1 6634 - minimatch: 10.2.1 6635 + minimatch: 10.2.2 6635 6636 natural-compare: 1.4.0 6636 6637 optionator: 0.9.4 6637 6638 optionalDependencies: ··· 6641 6642 6642 6643 esm-env@1.2.2: {} 6643 6644 6644 - espree@11.1.0: 6645 + espree@11.1.1: 6645 6646 dependencies: 6646 - acorn: 8.15.0 6647 - acorn-jsx: 5.3.2(acorn@8.15.0) 6648 - eslint-visitor-keys: 5.0.0 6647 + acorn: 8.16.0 6648 + acorn-jsx: 5.3.2(acorn@8.16.0) 6649 + eslint-visitor-keys: 5.0.1 6649 6650 6650 6651 esquery@1.7.0: 6651 6652 dependencies: ··· 6866 6867 dependencies: 6867 6868 hermes-estree: 0.25.1 6868 6869 6869 - hono@4.11.10: {} 6870 + hono@4.12.1: {} 6870 6871 6871 6872 html-encoding-sniffer@6.0.0(@noble/hashes@1.8.0): 6872 6873 dependencies: ··· 7111 7112 '@asamuzakjp/dom-selector': 6.8.1 7112 7113 '@bramus/specificity': 2.4.2 7113 7114 '@exodus/bytes': 1.14.1(@noble/hashes@1.8.0) 7114 - cssstyle: 6.0.1 7115 + cssstyle: 6.0.2 7115 7116 data-urls: 7.0.0(@noble/hashes@1.8.0) 7116 7117 decimal.js: 10.6.0 7117 7118 html-encoding-sniffer: 6.0.0(@noble/hashes@1.8.0) ··· 7267 7268 7268 7269 math-intrinsics@1.1.0: {} 7269 7270 7270 - mdast-util-from-markdown@2.0.2: 7271 + mdast-util-from-markdown@2.0.3: 7271 7272 dependencies: 7272 7273 '@types/mdast': 4.0.4 7273 7274 '@types/unist': 3.0.3 ··· 7290 7291 '@types/hast': 3.0.4 7291 7292 '@types/mdast': 4.0.4 7292 7293 devlop: 1.1.0 7293 - mdast-util-from-markdown: 2.0.2 7294 + mdast-util-from-markdown: 2.0.3 7294 7295 mdast-util-to-markdown: 2.1.2 7295 7296 transitivePeerDependencies: 7296 7297 - supports-color ··· 7303 7304 '@types/unist': 3.0.3 7304 7305 ccount: 2.0.1 7305 7306 devlop: 1.1.0 7306 - mdast-util-from-markdown: 2.0.2 7307 + mdast-util-from-markdown: 2.0.3 7307 7308 mdast-util-to-markdown: 2.1.2 7308 7309 parse-entities: 4.0.2 7309 7310 stringify-entities: 4.0.4 ··· 7318 7319 '@types/hast': 3.0.4 7319 7320 '@types/mdast': 4.0.4 7320 7321 devlop: 1.1.0 7321 - mdast-util-from-markdown: 2.0.2 7322 + mdast-util-from-markdown: 2.0.3 7322 7323 mdast-util-to-markdown: 2.1.2 7323 7324 transitivePeerDependencies: 7324 7325 - supports-color ··· 7500 7501 7501 7502 min-indent@1.0.1: {} 7502 7503 7503 - minimatch@10.2.1: 7504 + minimatch@10.2.2: 7504 7505 dependencies: 7505 - brace-expansion: 5.0.2 7506 + brace-expansion: 5.0.3 7506 7507 7507 7508 minimist@1.2.8: {} 7508 7509 ··· 7561 7562 dependencies: 7562 7563 '@next/env': 16.1.6 7563 7564 '@swc/helpers': 0.5.15 7564 - baseline-browser-mapping: 2.9.19 7565 - caniuse-lite: 1.0.30001770 7565 + baseline-browser-mapping: 2.10.0 7566 + caniuse-lite: 1.0.30001772 7566 7567 postcss: 8.4.31 7567 7568 react: 19.2.4 7568 7569 react-dom: 19.2.4(react@19.2.4) ··· 8012 8013 remark-parse@11.0.0: 8013 8014 dependencies: 8014 8015 '@types/mdast': 4.0.4 8015 - mdast-util-from-markdown: 2.0.2 8016 + mdast-util-from-markdown: 2.0.3 8016 8017 micromark-util-types: 2.0.2 8017 8018 unified: 11.0.5 8018 8019 transitivePeerDependencies: ··· 8051 8052 8052 8053 reusify@1.1.0: {} 8053 8054 8054 - rollup@4.57.1: 8055 + rollup@4.59.0: 8055 8056 dependencies: 8056 8057 '@types/estree': 1.0.8 8057 8058 optionalDependencies: 8058 - '@rollup/rollup-android-arm-eabi': 4.57.1 8059 - '@rollup/rollup-android-arm64': 4.57.1 8060 - '@rollup/rollup-darwin-arm64': 4.57.1 8061 - '@rollup/rollup-darwin-x64': 4.57.1 8062 - '@rollup/rollup-freebsd-arm64': 4.57.1 8063 - '@rollup/rollup-freebsd-x64': 4.57.1 8064 - '@rollup/rollup-linux-arm-gnueabihf': 4.57.1 8065 - '@rollup/rollup-linux-arm-musleabihf': 4.57.1 8066 - '@rollup/rollup-linux-arm64-gnu': 4.57.1 8067 - '@rollup/rollup-linux-arm64-musl': 4.57.1 8068 - '@rollup/rollup-linux-loong64-gnu': 4.57.1 8069 - '@rollup/rollup-linux-loong64-musl': 4.57.1 8070 - '@rollup/rollup-linux-ppc64-gnu': 4.57.1 8071 - '@rollup/rollup-linux-ppc64-musl': 4.57.1 8072 - '@rollup/rollup-linux-riscv64-gnu': 4.57.1 8073 - '@rollup/rollup-linux-riscv64-musl': 4.57.1 8074 - '@rollup/rollup-linux-s390x-gnu': 4.57.1 8075 - '@rollup/rollup-linux-x64-gnu': 4.57.1 8076 - '@rollup/rollup-linux-x64-musl': 4.57.1 8077 - '@rollup/rollup-openbsd-x64': 4.57.1 8078 - '@rollup/rollup-openharmony-arm64': 4.57.1 8079 - '@rollup/rollup-win32-arm64-msvc': 4.57.1 8080 - '@rollup/rollup-win32-ia32-msvc': 4.57.1 8081 - '@rollup/rollup-win32-x64-gnu': 4.57.1 8082 - '@rollup/rollup-win32-x64-msvc': 4.57.1 8059 + '@rollup/rollup-android-arm-eabi': 4.59.0 8060 + '@rollup/rollup-android-arm64': 4.59.0 8061 + '@rollup/rollup-darwin-arm64': 4.59.0 8062 + '@rollup/rollup-darwin-x64': 4.59.0 8063 + '@rollup/rollup-freebsd-arm64': 4.59.0 8064 + '@rollup/rollup-freebsd-x64': 4.59.0 8065 + '@rollup/rollup-linux-arm-gnueabihf': 4.59.0 8066 + '@rollup/rollup-linux-arm-musleabihf': 4.59.0 8067 + '@rollup/rollup-linux-arm64-gnu': 4.59.0 8068 + '@rollup/rollup-linux-arm64-musl': 4.59.0 8069 + '@rollup/rollup-linux-loong64-gnu': 4.59.0 8070 + '@rollup/rollup-linux-loong64-musl': 4.59.0 8071 + '@rollup/rollup-linux-ppc64-gnu': 4.59.0 8072 + '@rollup/rollup-linux-ppc64-musl': 4.59.0 8073 + '@rollup/rollup-linux-riscv64-gnu': 4.59.0 8074 + '@rollup/rollup-linux-riscv64-musl': 4.59.0 8075 + '@rollup/rollup-linux-s390x-gnu': 4.59.0 8076 + '@rollup/rollup-linux-x64-gnu': 4.59.0 8077 + '@rollup/rollup-linux-x64-musl': 4.59.0 8078 + '@rollup/rollup-openbsd-x64': 4.59.0 8079 + '@rollup/rollup-openharmony-arm64': 4.59.0 8080 + '@rollup/rollup-win32-arm64-msvc': 4.59.0 8081 + '@rollup/rollup-win32-ia32-msvc': 4.59.0 8082 + '@rollup/rollup-win32-x64-gnu': 4.59.0 8083 + '@rollup/rollup-win32-x64-msvc': 4.59.0 8083 8084 fsevents: 2.3.3 8084 8085 8085 8086 run-parallel@1.2.0: ··· 8425 8426 possible-typed-array-names: 1.1.0 8426 8427 reflect.getprototypeof: 1.0.10 8427 8428 8428 - typescript-eslint@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3): 8429 + typescript-eslint@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3): 8429 8430 dependencies: 8430 - '@typescript-eslint/eslint-plugin': 8.56.0(@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 8431 - '@typescript-eslint/parser': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 8431 + '@typescript-eslint/eslint-plugin': 8.56.0(@typescript-eslint/parser@8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 8432 + '@typescript-eslint/parser': 8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 8432 8433 '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) 8433 - '@typescript-eslint/utils': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3) 8434 - eslint: 10.0.0(jiti@2.6.1) 8434 + '@typescript-eslint/utils': 8.56.0(eslint@10.0.1(jiti@2.6.1))(typescript@5.9.3) 8435 + eslint: 10.0.1(jiti@2.6.1) 8435 8436 typescript: 5.9.3 8436 8437 transitivePeerDependencies: 8437 8438 - supports-color ··· 8588 8589 fdir: 6.5.0(picomatch@4.0.3) 8589 8590 picomatch: 4.0.3 8590 8591 postcss: 8.5.6 8591 - rollup: 4.57.1 8592 + rollup: 4.59.0 8592 8593 tinyglobby: 0.2.15 8593 8594 optionalDependencies: 8594 8595 '@types/node': 25.3.0
+1
frontend/prisma/schema.prisma
··· 126 126 model NodeOAuthSession { 127 127 key String @id 128 128 session String 129 + updatedAt DateTime @default(now()) @updatedAt 129 130 130 131 @@map("NodeOAuthSession") 131 132 }
+4 -4
frontend/src/logic/HandleOauthClientNode.ts
··· 24 24 } 25 25 26 26 export async function getOAuthClient() { 27 - const key1 = await JoseKey.fromImportable(process.env.OAUTH_PRIVATE_JWK||'', 'key1') 27 + const key1 = await JoseKey.fromImportable(process.env.OAUTH_PRIVATE_JWK || '', 'key1') 28 28 29 29 const stateStore = { 30 30 async set(key: string, internalState: NodeSavedState) { ··· 44 44 } 45 45 }, 46 46 async del(key: string) { 47 - await prisma.nodeOAuthState.delete({ where: { key } }).catch(() => {}) 47 + await prisma.nodeOAuthState.delete({ where: { key } }).catch(() => { }) 48 48 }, 49 49 } 50 50 ··· 53 53 await prisma.nodeOAuthSession.upsert({ 54 54 where: { key: sub }, 55 55 update: { session: JSON.stringify(session) }, 56 - create: { key: sub, session: JSON.stringify(session) }, 56 + create: { key: sub, session: JSON.stringify(session), updatedAt: new Date() }, 57 57 }) 58 58 }, 59 59 async get(sub: string) { ··· 66 66 } 67 67 }, 68 68 async del(sub: string) { 69 - await prisma.nodeOAuthSession.delete({ where: { key: sub } }).catch(() => {}) 69 + await prisma.nodeOAuthSession.delete({ where: { key: sub } }).catch(() => { }) 70 70 }, 71 71 } 72 72
+4 -1
frontend/src/messages/en.json
··· 376 376 "enable": "Enable automatic collection" 377 377 }, 378 378 "user": { 379 - "title": "Current user" 379 + "title": "Current user", 380 + "relogin": "Re-login", 381 + "reloginDescription": "Sessions are valid for 180 days. If your session is about to expire or if something isn't working correctly, please re-login here.", 382 + "lastLogin": "Last Login: {date}" 380 383 } 381 384 }, 382 385 "inform": {
+7 -2
frontend/src/messages/ja.json
··· 110 110 "placeholder": "検索するタグ" 111 111 }, 112 112 "user": { 113 - "title": "ユーザー", 113 + "title": "Current user", 114 + "relogin": "Re-login", 115 + "reloginDescription": "Sessions are valid for 180 days. If your session is about to expire or if something isn't working correctly, please re-login here.", 114 116 "placeholder": "検索するハンドル" 115 117 }, 116 118 "commentpriority": { ··· 375 377 "enable": "自動収集を有効にする" 376 378 }, 377 379 "user": { 378 - "title": "現在ログインしているユーザー" 380 + "title": "現在ログインしているユーザー", 381 + "relogin": "再ログイン", 382 + "reloginDescription": "セッションは180日間有効です。期限が切れそうな場合や、うまく動作しない場合はこちらから再ログインしてください。", 383 + "lastLogin": "最終ログイン: {date}" 379 384 } 380 385 }, 381 386 "inform": {