From 75ae15b805078260ea5152bd2abbcf523a459ccf Mon Sep 17 00:00:00 2001 From: isirmt <52734487+isirmt@users.noreply.github.com> Date: Fri, 7 Aug 2026 16:49:56 +0900 Subject: [PATCH 1/3] auto migration --- package.json | 22 +- pnpm-lock.yaml | 924 +++++++++++------------ src/app/(common)/layout.tsx | 4 + src/app/(common)/page.tsx | 4 + src/app/(common)/post/[...slug]/page.tsx | 4 + src/app/(common)/post/page.tsx | 4 + src/app/(common)/profile/page.tsx | 4 + src/app/(common)/search/page.tsx | 4 + src/app/(common)/series/[slug]/page.tsx | 4 + src/app/(common)/series/page.tsx | 4 + src/app/(common)/tags/[slug]/page.tsx | 4 + src/app/(common)/tags/page.tsx | 4 + src/app/(dashboard)/dashboard/page.tsx | 4 + src/app/(dashboard)/layout.tsx | 4 + src/app/layout.tsx | 4 + 15 files changed, 509 insertions(+), 489 deletions(-) diff --git a/package.json b/package.json index a9749b5..a6cc01b 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@dnd-kit/sortable": "^8.0.0", "@dnd-kit/utilities": "^3.2.2", "@egoist/tailwindcss-icons": "^1.8.1", - "@next/third-parties": "^16.1.6", + "@next/third-parties": "16.3.0", "chart.js": "^4.4.4", "gray-matter": "^4.0.3", "jsdom": "^25.0.1", @@ -24,12 +24,12 @@ "lodash": "^4.17.21", "lru-cache": "^11.0.1", "markdown-to-txt": "^2.0.1", - "next": "16.1.6", + "next": "16.3.0", "next-auth": "5.0.0-beta.30", "nextjs-toploader": "^1.6.12", - "react": "^19.2.4", + "react": "19.2.8", "react-chartjs-2": "^5.2.0", - "react-dom": "^19.2.4", + "react-dom": "19.2.8", "react-google-recaptcha-v3": "^1.10.1", "react-markdown": "^9.0.1", "rehype-katex": "^7.0.1", @@ -51,16 +51,22 @@ "@types/jsdom": "^21.1.7", "@types/lodash": "^4.17.10", "@types/node": "^20.16.11", - "@types/react": "^19.2.14", - "@types/react-dom": "^19.2.3", + "@types/react": "19.2.18", + "@types/react-dom": "19.2.4", "@types/rss": "^0.0.32", - "eslint": "^9.39.3", - "eslint-config-next": "16.1.6", + "eslint": "10.8.0", + "eslint-config-next": "16.3.0", "eslint-config-prettier": "^10.1.8", "postcss": "^8.4.47", "prettier": "^3.3.3", "prettier-plugin-tailwindcss": "^0.6.8", "tailwindcss": "^3.4.13", "typescript": "^5.6.3" + }, + "pnpm": { + "overrides": { + "@types/react": "19.2.18", + "@types/react-dom": "19.2.4" + } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7b60325..42dfcea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,25 +4,29 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + '@types/react': 19.2.18 + '@types/react-dom': 19.2.4 + importers: .: dependencies: '@dnd-kit/core': specifier: ^6.1.0 - version: 6.1.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 6.1.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@dnd-kit/sortable': specifier: ^8.0.0 - version: 8.0.0(@dnd-kit/core@6.1.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 8.0.0(@dnd-kit/core@6.1.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8) '@dnd-kit/utilities': specifier: ^3.2.2 - version: 3.2.2(react@19.2.4) + version: 3.2.2(react@19.2.8) '@egoist/tailwindcss-icons': specifier: ^1.8.1 version: 1.8.1(tailwindcss@3.4.13) '@next/third-parties': - specifier: ^16.1.6 - version: 16.1.6(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + specifier: 16.3.0 + version: 16.3.0(next@16.3.0(@babel/core@7.29.0)(@types/node@20.16.11)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8) chart.js: specifier: ^4.4.4 version: 4.4.4 @@ -45,29 +49,29 @@ importers: specifier: ^2.0.1 version: 2.0.1 next: - specifier: 16.1.6 - version: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + specifier: 16.3.0 + version: 16.3.0(@babel/core@7.29.0)(@types/node@20.16.11)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) next-auth: specifier: 5.0.0-beta.30 - version: 5.0.0-beta.30(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 5.0.0-beta.30(next@16.3.0(@babel/core@7.29.0)(@types/node@20.16.11)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8) nextjs-toploader: specifier: ^1.6.12 - version: 1.6.12(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.6.12(next@16.3.0(@babel/core@7.29.0)(@types/node@20.16.11)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react@19.2.8) react: - specifier: ^19.2.4 - version: 19.2.4 + specifier: 19.2.8 + version: 19.2.8 react-chartjs-2: specifier: ^5.2.0 - version: 5.2.0(chart.js@4.4.4)(react@19.2.4) + version: 5.2.0(chart.js@4.4.4)(react@19.2.8) react-dom: - specifier: ^19.2.4 - version: 19.2.4(react@19.2.4) + specifier: 19.2.8 + version: 19.2.8(react@19.2.8) react-google-recaptcha-v3: specifier: ^1.10.1 - version: 1.10.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.10.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8) react-markdown: specifier: ^9.0.1 - version: 9.0.1(@types/react@19.2.14)(react@19.2.4) + version: 9.0.1(@types/react@19.2.18)(react@19.2.8) rehype-katex: specifier: ^7.0.1 version: 7.0.1 @@ -103,7 +107,7 @@ importers: version: 11.1.14 zustand: specifier: 5.0.0-rc.2 - version: 5.0.0-rc.2(@types/react@19.2.14)(react@19.2.4) + version: 5.0.0-rc.2(@types/react@19.2.18)(react@19.2.8) devDependencies: '@iconify/json': specifier: ^2.2.258 @@ -121,23 +125,23 @@ importers: specifier: ^20.16.11 version: 20.16.11 '@types/react': - specifier: ^19.2.14 - version: 19.2.14 + specifier: 19.2.18 + version: 19.2.18 '@types/react-dom': - specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.14) + specifier: 19.2.4 + version: 19.2.4(@types/react@19.2.18) '@types/rss': specifier: ^0.0.32 version: 0.0.32 eslint: - specifier: ^9.39.3 - version: 9.39.3(jiti@1.21.6) + specifier: 10.8.0 + version: 10.8.0(jiti@1.21.6) eslint-config-next: - specifier: 16.1.6 - version: 16.1.6(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) + specifier: 16.3.0 + version: 16.3.0(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@9.39.3(jiti@1.21.6)) + version: 10.1.8(eslint@10.8.0(jiti@1.21.6)) postcss: specifier: ^8.4.47 version: 8.4.47 @@ -277,6 +281,9 @@ packages: '@emnapi/core@1.8.1': resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} + '@emnapi/runtime@1.11.3': + resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} + '@emnapi/runtime@1.3.0': resolution: {integrity: sha512-XMBySMuNZs3DM96xcJmLW4EfGnf+uGmFNjzpehMjuX5PLB5j87ar2Zc4e3PVeZ3I5g3tYtAqskB28manlF69Zw==} @@ -296,33 +303,25 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.21.1': - resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.4.2': - resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.17.0': - resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/eslintrc@3.3.4': - resolution: {integrity: sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.7.0': + resolution: {integrity: sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/js@9.39.3': - resolution: {integrity: sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@1.2.1': + resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/object-schema@2.1.7': - resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.4.1': - resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.7.2': + resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} @@ -349,8 +348,8 @@ packages: '@iconify/utils@2.1.33': resolution: {integrity: sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw==} - '@img/colour@1.0.0': - resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} + '@img/colour@1.1.0': + resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} '@img/sharp-darwin-arm64@0.33.5': @@ -359,9 +358,9 @@ packages: cpu: [arm64] os: [darwin] - '@img/sharp-darwin-arm64@0.34.5': - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-darwin-arm64@0.35.3': + resolution: {integrity: sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [darwin] @@ -371,19 +370,24 @@ packages: cpu: [x64] os: [darwin] - '@img/sharp-darwin-x64@0.34.5': - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-darwin-x64@0.35.3': + resolution: {integrity: sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [darwin] + '@img/sharp-freebsd-wasm32@0.35.3': + resolution: {integrity: sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==} + engines: {node: '>=20.9.0'} + os: [freebsd] + '@img/sharp-libvips-darwin-arm64@1.0.4': resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.2.4': - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} + '@img/sharp-libvips-darwin-arm64@1.3.2': + resolution: {integrity: sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==} cpu: [arm64] os: [darwin] @@ -392,8 +396,8 @@ packages: cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.4': - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} + '@img/sharp-libvips-darwin-x64@1.3.2': + resolution: {integrity: sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==} cpu: [x64] os: [darwin] @@ -402,8 +406,8 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm64@1.2.4': - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} + '@img/sharp-libvips-linux-arm64@1.3.2': + resolution: {integrity: sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==} cpu: [arm64] os: [linux] @@ -412,18 +416,18 @@ packages: cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-arm@1.2.4': - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} + '@img/sharp-libvips-linux-arm@1.3.2': + resolution: {integrity: sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-ppc64@1.2.4': - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} + '@img/sharp-libvips-linux-ppc64@1.3.2': + resolution: {integrity: sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==} cpu: [ppc64] os: [linux] - '@img/sharp-libvips-linux-riscv64@1.2.4': - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + '@img/sharp-libvips-linux-riscv64@1.3.2': + resolution: {integrity: sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==} cpu: [riscv64] os: [linux] @@ -432,8 +436,8 @@ packages: cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-s390x@1.2.4': - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} + '@img/sharp-libvips-linux-s390x@1.3.2': + resolution: {integrity: sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==} cpu: [s390x] os: [linux] @@ -442,8 +446,8 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-libvips-linux-x64@1.2.4': - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} + '@img/sharp-libvips-linux-x64@1.3.2': + resolution: {integrity: sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==} cpu: [x64] os: [linux] @@ -452,8 +456,8 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} + '@img/sharp-libvips-linuxmusl-arm64@1.3.2': + resolution: {integrity: sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==} cpu: [arm64] os: [linux] @@ -462,8 +466,8 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} + '@img/sharp-libvips-linuxmusl-x64@1.3.2': + resolution: {integrity: sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==} cpu: [x64] os: [linux] @@ -473,9 +477,9 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-linux-arm64@0.34.5': - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-arm64@0.35.3': + resolution: {integrity: sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] @@ -485,21 +489,21 @@ packages: cpu: [arm] os: [linux] - '@img/sharp-linux-arm@0.34.5': - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-arm@0.35.3': + resolution: {integrity: sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==} + engines: {node: '>=20.9.0'} cpu: [arm] os: [linux] - '@img/sharp-linux-ppc64@0.34.5': - resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-ppc64@0.35.3': + resolution: {integrity: sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==} + engines: {node: '>=20.9.0'} cpu: [ppc64] os: [linux] - '@img/sharp-linux-riscv64@0.34.5': - resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-riscv64@0.35.3': + resolution: {integrity: sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==} + engines: {node: '>=20.9.0'} cpu: [riscv64] os: [linux] @@ -509,9 +513,9 @@ packages: cpu: [s390x] os: [linux] - '@img/sharp-linux-s390x@0.34.5': - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-s390x@0.35.3': + resolution: {integrity: sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==} + engines: {node: '>=20.9.0'} cpu: [s390x] os: [linux] @@ -521,9 +525,9 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-linux-x64@0.34.5': - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-x64@0.35.3': + resolution: {integrity: sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] @@ -533,9 +537,9 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.34.5': - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linuxmusl-arm64@0.35.3': + resolution: {integrity: sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] @@ -545,9 +549,9 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-x64@0.34.5': - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linuxmusl-x64@0.35.3': + resolution: {integrity: sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] @@ -556,14 +560,18 @@ packages: engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-wasm32@0.34.5': - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-wasm32@0.35.3': + resolution: {integrity: sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==} + engines: {node: '>=20.9.0'} + + '@img/sharp-webcontainers-wasm32@0.35.3': + resolution: {integrity: sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==} + engines: {node: '>=20.9.0'} cpu: [wasm32] - '@img/sharp-win32-arm64@0.34.5': - resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-arm64@0.35.3': + resolution: {integrity: sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [win32] @@ -573,9 +581,9 @@ packages: cpu: [ia32] os: [win32] - '@img/sharp-win32-ia32@0.34.5': - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-ia32@0.35.3': + resolution: {integrity: sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==} + engines: {node: ^20.9.0} cpu: [ia32] os: [win32] @@ -585,9 +593,9 @@ packages: cpu: [x64] os: [win32] - '@img/sharp-win32-x64@0.34.5': - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-x64@0.35.3': + resolution: {integrity: sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [win32] @@ -631,62 +639,62 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@next/env@16.1.6': - resolution: {integrity: sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==} + '@next/env@16.3.0': + resolution: {integrity: sha512-o9r1S0BNiNreHP9Vs+Qnqd9kviDkJh8xIACY7UFZSmiGbbQRzPBBosvHzAU4TULHOIuOj/18RSsyz2qrREmIFw==} - '@next/eslint-plugin-next@16.1.6': - resolution: {integrity: sha512-/Qq3PTagA6+nYVfryAtQ7/9FEr/6YVyvOtl6rZnGsbReGLf0jZU6gkpr1FuChAQpvV46a78p4cmHOVP8mbfSMQ==} + '@next/eslint-plugin-next@16.3.0': + resolution: {integrity: sha512-OqgJ8PN0d04KcPhDX/PTY5tJUJZxlbrt7O7FBsm4XE0XW2JDrKnDXsc9uo9WUimJGPoo2j+JRGhyXApC//mvbw==} - '@next/swc-darwin-arm64@16.1.6': - resolution: {integrity: sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==} + '@next/swc-darwin-arm64@16.3.0': + resolution: {integrity: sha512-55hpqq18bEVAlxedlTt3tFqZmKg2nUXT1kn1G/BGEy0R13h3LwtwHPVzzjG6P4LLeOHE32PFDQUVaJEWvBEZBw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.1.6': - resolution: {integrity: sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==} + '@next/swc-darwin-x64@16.3.0': + resolution: {integrity: sha512-SOi96kSaF5T+0wW4koiM1bWzSPwjzTesC1p3df+FjdOi5LIQkBK/blxh7HdoKnNuI4PURF1OO7TZqtfnbWDSgw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.1.6': - resolution: {integrity: sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==} + '@next/swc-linux-arm64-gnu@16.3.0': + resolution: {integrity: sha512-P0gZAoPMF4dyTRzhmkV4PrqVzSOB6t4mC1oI3c4dqijJ+OVEVx5clIXAKR4/uQpsqw2KKM/0D5tVumcR2r5blg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@16.1.6': - resolution: {integrity: sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==} + '@next/swc-linux-arm64-musl@16.3.0': + resolution: {integrity: sha512-tXXGKJw0m37O0eKJARVTX/TheKPhz0QFVtVVZXmOig+9YKLQOSP6hvf2pxv5DO7CLEJyTHx3Pg043CDQkv1G4Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@16.1.6': - resolution: {integrity: sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==} + '@next/swc-linux-x64-gnu@16.3.0': + resolution: {integrity: sha512-pjGxK5EY7yWml78ALejFkWmgHsU7wbFQrISiugpH6FbUJhgEvw3xFZ/EBAtLl7QtL0WdQKiG9eWJ3mOKGTukHw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@16.1.6': - resolution: {integrity: sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==} + '@next/swc-linux-x64-musl@16.3.0': + resolution: {integrity: sha512-sjo++Xx+lomlPs3HRsHWhVDyGG6ms1kGW5EtHLERdII8AyG1i+f6aq68xHREO6AEMlhjTNEWBSmfJfqm9orf7g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@16.1.6': - resolution: {integrity: sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==} + '@next/swc-win32-arm64-msvc@16.3.0': + resolution: {integrity: sha512-C5JSgiO54wURdaxdEUIXqkz04uMqC9UmPX1gtDrV/5Tf1UowdWYI8uA5hfFbPolTlp0q4KZ60xlHePNibf0VIw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.1.6': - resolution: {integrity: sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==} + '@next/swc-win32-x64-msvc@16.3.0': + resolution: {integrity: sha512-fDOggsweNb5SSw0ZKVk6U+gxSyGFFlIBY/LBc1r8GUj4u/6t6oArL+Pmkg0MBnsgR+KkdsURilVH4F3GXUGepA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@next/third-parties@16.1.6': - resolution: {integrity: sha512-/cLY1egaH529ylSMSK+C8dA3nWDLL4hOFR4fca9OLWWxjcNwzsbuq2pPb/tmdWL9Zj3K1nTjd1pWQoSlaDQ0VA==} + '@next/third-parties@16.3.0': + resolution: {integrity: sha512-cAA96hSI9NC7083b6sEsKjgyvM/YJ2eqXs4HWv8a/z5LE12CL1sUJS+cmcTwNMY4yAFpLyyuZHrMBEfh/4Xupw==} peerDependencies: next: ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0-beta.0 react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 @@ -752,6 +760,9 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -788,13 +799,13 @@ packages: '@types/node@20.16.11': resolution: {integrity: sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==} - '@types/react-dom@19.2.3': - resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + '@types/react-dom@19.2.4': + resolution: {integrity: sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==} peerDependencies: - '@types/react': ^19.2.0 + '@types/react': 19.2.18 - '@types/react@19.2.14': - resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} + '@types/react@19.2.18': + resolution: {integrity: sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==} '@types/rss@0.0.32': resolution: {integrity: sha512-2oKNqKyUY4RSdvl5eZR1n2Q9yvw3XTe3mQHsFPn9alaNBxfPnbXBtGP8R0SV8pK1PrVnLul0zx7izbm5/gF5Qw==} @@ -1016,9 +1027,6 @@ packages: argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -1106,6 +1114,10 @@ packages: resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==} engines: {node: 18 || 20 || >=22} + brace-expansion@5.0.9: + resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} + engines: {node: 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -1127,10 +1139,6 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} @@ -1141,10 +1149,6 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -1377,8 +1381,8 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-config-next@16.1.6: - resolution: {integrity: sha512-vKq40io2B0XtkkNDYyleATwblNt8xuh3FWp8SpSz3pt7P01OkBFlKsJZ2mWt5WsCySlDQLckb1zMY9yE9Qy0LA==} + eslint-config-next@16.3.0: + resolution: {integrity: sha512-lPrf1kHsMJEZqO0uXkNB400c5MGrhrTk3BNX7P0ol4gt61+iUlQfjy9TyIOEA9eOXrf+5+mYbT/JsY8+zqUByQ==} peerDependencies: eslint: '>=9.0.0' typescript: '>=3.3.1' @@ -1457,25 +1461,21 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@5.0.1: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@9.39.3: - resolution: {integrity: sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@10.8.0: + resolution: {integrity: sha512-nuKKvN+oIBO0koN7Tm7dlkmnkc21mtt0QJLwAKzjLq14y6lRTdVG36MZHJ8eQHwdJMwZbQNMlPOYedMq/oVJvQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: jiti: '*' @@ -1483,9 +1483,9 @@ packages: jiti: optional: true - espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -1628,10 +1628,6 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - globals@16.4.0: resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} engines: {node: '>=18'} @@ -1652,10 +1648,6 @@ packages: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} @@ -1759,10 +1751,6 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -1942,10 +1930,6 @@ packages: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} - hasBin: true - jsdom@25.0.1: resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} engines: {node: '>=18'} @@ -2239,6 +2223,10 @@ packages: resolution: {integrity: sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==} engines: {node: 18 || 20 || >=22} + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + minimatch@3.1.3: resolution: {integrity: sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==} @@ -2262,8 +2250,8 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + nanoid@3.3.17: + resolution: {integrity: sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -2296,8 +2284,8 @@ packages: nodemailer: optional: true - next@16.1.6: - resolution: {integrity: sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==} + next@16.3.0: + resolution: {integrity: sha512-NEdGOzH+08eTXMUp9UYkA99Nhi5N6Thrhc1jgFOQgfgnGK/dA2hRwBpXep+exdFQrnwlRf/3Wixyp8lLBUpE2A==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -2408,10 +2396,6 @@ packages: package-manager-detector@0.2.1: resolution: {integrity: sha512-/hVW2fZvAdEas+wyKh0SnlZ2mx0NIa1+j11YaQkogEJkcMErbwchHCuo8z7lEtajZJQZ6rgZNVTWMVVd71Bjng==} - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - parse-entities@4.0.1: resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} @@ -2506,14 +2490,14 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.4.47: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.23: + resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} + engines: {node: ^10 || ^12 || >=14} + preact-render-to-string@6.5.11: resolution: {integrity: sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==} peerDependencies: @@ -2608,10 +2592,10 @@ packages: chart.js: ^4.1.1 react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom@19.2.4: - resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} + react-dom@19.2.8: + resolution: {integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==} peerDependencies: - react: ^19.2.4 + react: ^19.2.8 react-google-recaptcha-v3@1.10.1: resolution: {integrity: sha512-K3AYzSE0SasTn+XvV2tq+6YaxM+zQypk9rbCgG4OVUt7Rh4ze9basIKefoBz9sC0CNslJj9N1uwTTgRMJQbQJQ==} @@ -2625,11 +2609,11 @@ packages: react-markdown@9.0.1: resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} peerDependencies: - '@types/react': '>=18' + '@types/react': 19.2.18 react: '>=18' - react@19.2.4: - resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} + react@19.2.8: + resolution: {integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -2683,10 +2667,6 @@ packages: remark@15.0.1: resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -2762,6 +2742,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -2778,9 +2763,14 @@ packages: resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - sharp@0.34.5: - resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.35.3: + resolution: {integrity: sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==} + engines: {node: '>=20.9.0'} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -2883,10 +2873,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} @@ -2908,10 +2894,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -3181,7 +3163,7 @@ packages: resolution: {integrity: sha512-o2Nwuvnk8vQBX7CcHL8WfFkZNJdxB/VKeWw0tNglw8p4cypsZ3tRT7rTRTDNeUPFS0qaMBRSKe+fVwL5xpcE3A==} engines: {node: '>=12.20.0'} peerDependencies: - '@types/react': '>=18.0.0' + '@types/react': 19.2.18 immer: '>=9.0.6' react: '>=18.0.0' use-sync-external-store: '>=1.2.0' @@ -3317,29 +3299,29 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@dnd-kit/accessibility@3.1.0(react@19.2.4)': + '@dnd-kit/accessibility@3.1.0(react@19.2.8)': dependencies: - react: 19.2.4 + react: 19.2.8 tslib: 2.7.0 - '@dnd-kit/core@6.1.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@dnd-kit/core@6.1.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@dnd-kit/accessibility': 3.1.0(react@19.2.4) - '@dnd-kit/utilities': 3.2.2(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@dnd-kit/accessibility': 3.1.0(react@19.2.8) + '@dnd-kit/utilities': 3.2.2(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) tslib: 2.7.0 - '@dnd-kit/sortable@8.0.0(@dnd-kit/core@6.1.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)': + '@dnd-kit/sortable@8.0.0(@dnd-kit/core@6.1.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)': dependencies: - '@dnd-kit/core': 6.1.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@dnd-kit/utilities': 3.2.2(react@19.2.4) - react: 19.2.4 + '@dnd-kit/core': 6.1.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@dnd-kit/utilities': 3.2.2(react@19.2.8) + react: 19.2.8 tslib: 2.7.0 - '@dnd-kit/utilities@3.2.2(react@19.2.4)': + '@dnd-kit/utilities@3.2.2(react@19.2.8)': dependencies: - react: 19.2.4 + react: 19.2.8 tslib: 2.7.0 '@egoist/tailwindcss-icons@1.8.1(tailwindcss@3.4.13)': @@ -3355,6 +3337,11 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.11.3': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.3.0': dependencies: tslib: 2.8.1 @@ -3370,50 +3357,34 @@ snapshots: tslib: 2.8.1 optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.3(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.8.0(jiti@1.21.6))': dependencies: - eslint: 9.39.3(jiti@1.21.6) + eslint: 10.8.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.21.1': + '@eslint/config-array@0.23.5': dependencies: - '@eslint/object-schema': 2.1.7 + '@eslint/object-schema': 3.0.5 debug: 4.4.3 - minimatch: 3.1.3 + minimatch: 10.2.6 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.4.2': + '@eslint/config-helpers@0.7.0': dependencies: - '@eslint/core': 0.17.0 + '@eslint/core': 1.2.1 - '@eslint/core@0.17.0': + '@eslint/core@1.2.1': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.4': - dependencies: - ajv: 6.14.0 - debug: 4.4.3 - espree: 10.4.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.1 - minimatch: 3.1.3 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + '@eslint/object-schema@3.0.5': {} - '@eslint/js@9.39.3': {} - - '@eslint/object-schema@2.1.7': {} - - '@eslint/plugin-kit@0.4.1': + '@eslint/plugin-kit@0.7.2': dependencies: - '@eslint/core': 0.17.0 + '@eslint/core': 1.2.1 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -3446,7 +3417,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@img/colour@1.0.0': + '@img/colour@1.1.0': optional: true '@img/sharp-darwin-arm64@0.33.5': @@ -3454,9 +3425,9 @@ snapshots: '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true - '@img/sharp-darwin-arm64@0.34.5': + '@img/sharp-darwin-arm64@0.35.3': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.4 + '@img/sharp-libvips-darwin-arm64': 1.3.2 optional: true '@img/sharp-darwin-x64@0.33.5': @@ -3464,63 +3435,68 @@ snapshots: '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true - '@img/sharp-darwin-x64@0.34.5': + '@img/sharp-darwin-x64@0.35.3': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.4 + '@img/sharp-libvips-darwin-x64': 1.3.2 + optional: true + + '@img/sharp-freebsd-wasm32@0.35.3': + dependencies: + '@img/sharp-wasm32': 0.35.3 optional: true '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true - '@img/sharp-libvips-darwin-arm64@1.2.4': + '@img/sharp-libvips-darwin-arm64@1.3.2': optional: true '@img/sharp-libvips-darwin-x64@1.0.4': optional: true - '@img/sharp-libvips-darwin-x64@1.2.4': + '@img/sharp-libvips-darwin-x64@1.3.2': optional: true '@img/sharp-libvips-linux-arm64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm64@1.2.4': + '@img/sharp-libvips-linux-arm64@1.3.2': optional: true '@img/sharp-libvips-linux-arm@1.0.5': optional: true - '@img/sharp-libvips-linux-arm@1.2.4': + '@img/sharp-libvips-linux-arm@1.3.2': optional: true - '@img/sharp-libvips-linux-ppc64@1.2.4': + '@img/sharp-libvips-linux-ppc64@1.3.2': optional: true - '@img/sharp-libvips-linux-riscv64@1.2.4': + '@img/sharp-libvips-linux-riscv64@1.3.2': optional: true '@img/sharp-libvips-linux-s390x@1.0.4': optional: true - '@img/sharp-libvips-linux-s390x@1.2.4': + '@img/sharp-libvips-linux-s390x@1.3.2': optional: true '@img/sharp-libvips-linux-x64@1.0.4': optional: true - '@img/sharp-libvips-linux-x64@1.2.4': + '@img/sharp-libvips-linux-x64@1.3.2': optional: true '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + '@img/sharp-libvips-linuxmusl-arm64@1.3.2': optional: true '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.4': + '@img/sharp-libvips-linuxmusl-x64@1.3.2': optional: true '@img/sharp-linux-arm64@0.33.5': @@ -3528,9 +3504,9 @@ snapshots: '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true - '@img/sharp-linux-arm64@0.34.5': + '@img/sharp-linux-arm64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.4 + '@img/sharp-libvips-linux-arm64': 1.3.2 optional: true '@img/sharp-linux-arm@0.33.5': @@ -3538,19 +3514,19 @@ snapshots: '@img/sharp-libvips-linux-arm': 1.0.5 optional: true - '@img/sharp-linux-arm@0.34.5': + '@img/sharp-linux-arm@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.4 + '@img/sharp-libvips-linux-arm': 1.3.2 optional: true - '@img/sharp-linux-ppc64@0.34.5': + '@img/sharp-linux-ppc64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.4 + '@img/sharp-libvips-linux-ppc64': 1.3.2 optional: true - '@img/sharp-linux-riscv64@0.34.5': + '@img/sharp-linux-riscv64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.2.4 + '@img/sharp-libvips-linux-riscv64': 1.3.2 optional: true '@img/sharp-linux-s390x@0.33.5': @@ -3558,9 +3534,9 @@ snapshots: '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true - '@img/sharp-linux-s390x@0.34.5': + '@img/sharp-linux-s390x@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.4 + '@img/sharp-libvips-linux-s390x': 1.3.2 optional: true '@img/sharp-linux-x64@0.33.5': @@ -3568,9 +3544,9 @@ snapshots: '@img/sharp-libvips-linux-x64': 1.0.4 optional: true - '@img/sharp-linux-x64@0.34.5': + '@img/sharp-linux-x64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.4 + '@img/sharp-libvips-linux-x64': 1.3.2 optional: true '@img/sharp-linuxmusl-arm64@0.33.5': @@ -3578,9 +3554,9 @@ snapshots: '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true - '@img/sharp-linuxmusl-arm64@0.34.5': + '@img/sharp-linuxmusl-arm64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.2 optional: true '@img/sharp-linuxmusl-x64@0.33.5': @@ -3588,9 +3564,9 @@ snapshots: '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true - '@img/sharp-linuxmusl-x64@0.34.5': + '@img/sharp-linuxmusl-x64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + '@img/sharp-libvips-linuxmusl-x64': 1.3.2 optional: true '@img/sharp-wasm32@0.33.5': @@ -3598,24 +3574,29 @@ snapshots: '@emnapi/runtime': 1.3.0 optional: true - '@img/sharp-wasm32@0.34.5': + '@img/sharp-wasm32@0.35.3': dependencies: - '@emnapi/runtime': 1.8.1 + '@emnapi/runtime': 1.11.3 optional: true - '@img/sharp-win32-arm64@0.34.5': + '@img/sharp-webcontainers-wasm32@0.35.3': + dependencies: + '@img/sharp-wasm32': 0.35.3 + optional: true + + '@img/sharp-win32-arm64@0.35.3': optional: true '@img/sharp-win32-ia32@0.33.5': optional: true - '@img/sharp-win32-ia32@0.34.5': + '@img/sharp-win32-ia32@0.35.3': optional: true '@img/sharp-win32-x64@0.33.5': optional: true - '@img/sharp-win32-x64@0.34.5': + '@img/sharp-win32-x64@0.35.3': optional: true '@isaacs/cliui@8.0.2': @@ -3670,40 +3651,43 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@next/env@16.1.6': {} + '@next/env@16.3.0': {} - '@next/eslint-plugin-next@16.1.6': + '@next/eslint-plugin-next@16.3.0(eslint@10.8.0(jiti@1.21.6))': dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@1.21.6)) fast-glob: 3.3.1 + transitivePeerDependencies: + - eslint - '@next/swc-darwin-arm64@16.1.6': + '@next/swc-darwin-arm64@16.3.0': optional: true - '@next/swc-darwin-x64@16.1.6': + '@next/swc-darwin-x64@16.3.0': optional: true - '@next/swc-linux-arm64-gnu@16.1.6': + '@next/swc-linux-arm64-gnu@16.3.0': optional: true - '@next/swc-linux-arm64-musl@16.1.6': + '@next/swc-linux-arm64-musl@16.3.0': optional: true - '@next/swc-linux-x64-gnu@16.1.6': + '@next/swc-linux-x64-gnu@16.3.0': optional: true - '@next/swc-linux-x64-musl@16.1.6': + '@next/swc-linux-x64-musl@16.3.0': optional: true - '@next/swc-win32-arm64-msvc@16.1.6': + '@next/swc-win32-arm64-msvc@16.3.0': optional: true - '@next/swc-win32-x64-msvc@16.1.6': + '@next/swc-win32-x64-msvc@16.3.0': optional: true - '@next/third-parties@16.1.6(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)': + '@next/third-parties@16.3.0(next@16.3.0(@babel/core@7.29.0)(@types/node@20.16.11)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)': dependencies: - next: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 + next: 16.3.0(@babel/core@7.29.0)(@types/node@20.16.11)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 third-party-capital: 1.0.20 '@nodelib/fs.scandir@2.1.5': @@ -3781,9 +3765,11 @@ snapshots: dependencies: '@types/ms': 0.7.34 + '@types/esrecurse@4.3.1': {} + '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 '@types/estree@1.0.6': {} @@ -3817,11 +3803,11 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/react-dom@19.2.3(@types/react@19.2.14)': + '@types/react-dom@19.2.4(@types/react@19.2.18)': dependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.18 - '@types/react@19.2.14': + '@types/react@19.2.18': dependencies: csstype: 3.2.3 @@ -3833,15 +3819,15 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/type-utils': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.56.1 - eslint: 9.39.3(jiti@1.21.6) + eslint: 10.8.0(jiti@1.21.6) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@5.6.3) @@ -3849,14 +3835,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3 - eslint: 9.39.3(jiti@1.21.6) + eslint: 10.8.0(jiti@1.21.6) typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -3879,13 +3865,13 @@ snapshots: dependencies: typescript: 5.6.3 - '@typescript-eslint/type-utils@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 8.56.1 '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.6.3) - '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) debug: 4.4.3 - eslint: 9.39.3(jiti@1.21.6) + eslint: 10.8.0(jiti@1.21.6) ts-api-utils: 2.4.0(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: @@ -3908,13 +3894,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/utils@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.6.3) - eslint: 9.39.3(jiti@1.21.6) + eslint: 10.8.0(jiti@1.21.6) typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -4029,8 +4015,6 @@ snapshots: dependencies: sprintf-js: 1.0.3 - argparse@2.0.1: {} - aria-query@5.3.2: {} array-buffer-byte-length@1.0.2: @@ -4137,6 +4121,10 @@ snapshots: dependencies: balanced-match: 4.0.4 + brace-expansion@5.0.9: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -4166,19 +4154,12 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - callsites@3.1.0: {} - camelcase-css@2.0.1: {} caniuse-lite@1.0.30001774: {} ccount@2.0.1: {} - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -4452,18 +4433,18 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-next@16.1.6(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3): + eslint-config-next@16.3.0(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3): dependencies: - '@next/eslint-plugin-next': 16.1.6 - eslint: 9.39.3(jiti@1.21.6) + '@next/eslint-plugin-next': 16.3.0(eslint@10.8.0(jiti@1.21.6)) + eslint: 10.8.0(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.3(jiti@1.21.6)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.3(jiti@1.21.6)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.3(jiti@1.21.6)) - eslint-plugin-react: 7.37.5(eslint@9.39.3(jiti@1.21.6)) - eslint-plugin-react-hooks: 7.0.1(eslint@9.39.3(jiti@1.21.6)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.0(jiti@1.21.6)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.8.0(jiti@1.21.6)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@10.8.0(jiti@1.21.6)) + eslint-plugin-react: 7.37.5(eslint@10.8.0(jiti@1.21.6)) + eslint-plugin-react-hooks: 7.0.1(eslint@10.8.0(jiti@1.21.6)) globals: 16.4.0 - typescript-eslint: 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) + typescript-eslint: 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -4472,9 +4453,9 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@10.1.8(eslint@9.39.3(jiti@1.21.6)): + eslint-config-prettier@10.1.8(eslint@10.8.0(jiti@1.21.6)): dependencies: - eslint: 9.39.3(jiti@1.21.6) + eslint: 10.8.0(jiti@1.21.6) eslint-import-resolver-node@0.3.9: dependencies: @@ -4484,33 +4465,33 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.3(jiti@1.21.6)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.0(jiti@1.21.6)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 - eslint: 9.39.3(jiti@1.21.6) + eslint: 10.8.0(jiti@1.21.6) get-tsconfig: 4.13.6 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.3(jiti@1.21.6)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.8.0(jiti@1.21.6)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.3(jiti@1.21.6)))(eslint@9.39.3(jiti@1.21.6)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.0(jiti@1.21.6)))(eslint@10.8.0(jiti@1.21.6)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) - eslint: 9.39.3(jiti@1.21.6) + '@typescript-eslint/parser': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) + eslint: 10.8.0(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.3(jiti@1.21.6)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.0(jiti@1.21.6)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.3(jiti@1.21.6)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.8.0(jiti@1.21.6)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -4519,9 +4500,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.39.3(jiti@1.21.6) + eslint: 10.8.0(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.3(jiti@1.21.6)))(eslint@9.39.3(jiti@1.21.6)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.0(jiti@1.21.6)))(eslint@10.8.0(jiti@1.21.6)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -4533,13 +4514,13 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.3(jiti@1.21.6)): + eslint-plugin-jsx-a11y@6.10.2(eslint@10.8.0(jiti@1.21.6)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 @@ -4549,7 +4530,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.39.3(jiti@1.21.6) + eslint: 10.8.0(jiti@1.21.6) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -4558,18 +4539,18 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@7.0.1(eslint@9.39.3(jiti@1.21.6)): + eslint-plugin-react-hooks@7.0.1(eslint@10.8.0(jiti@1.21.6)): dependencies: '@babel/core': 7.29.0 '@babel/parser': 7.29.0 - eslint: 9.39.3(jiti@1.21.6) + eslint: 10.8.0(jiti@1.21.6) hermes-parser: 0.25.1 zod: 4.3.6 zod-validation-error: 4.0.2(zod@4.3.6) transitivePeerDependencies: - supports-color - eslint-plugin-react@7.37.5(eslint@9.39.3(jiti@1.21.6)): + eslint-plugin-react@7.37.5(eslint@10.8.0(jiti@1.21.6)): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 @@ -4577,7 +4558,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.2 - eslint: 9.39.3(jiti@1.21.6) + eslint: 10.8.0(jiti@1.21.6) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -4591,39 +4572,36 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-scope@8.4.0: + eslint-scope@9.1.2: dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.8 esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.1: {} - eslint-visitor-keys@5.0.1: {} - eslint@9.39.3(jiti@1.21.6): + eslint@10.8.0(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@1.21.6)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.21.1 - '@eslint/config-helpers': 0.4.2 - '@eslint/core': 0.17.0 - '@eslint/eslintrc': 3.3.4 - '@eslint/js': 9.39.3 - '@eslint/plugin-kit': 0.4.1 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.7.0 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.2 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 ajv: 6.14.0 - chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -4634,8 +4612,7 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.3 + minimatch: 10.2.6 natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: @@ -4643,11 +4620,11 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.4.0: + espree@11.2.0: dependencies: acorn: 8.16.0 acorn-jsx: 5.3.2(acorn@8.16.0) - eslint-visitor-keys: 4.2.1 + eslint-visitor-keys: 5.0.1 esprima@4.0.1: {} @@ -4801,8 +4778,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - globals@14.0.0: {} - globals@16.4.0: {} globalthis@1.0.4: @@ -4821,8 +4796,6 @@ snapshots: has-bigints@1.1.0: {} - has-flag@4.0.0: {} - has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.1 @@ -5015,11 +4988,6 @@ snapshots: ignore@7.0.5: {} - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - imurmurhash@0.1.4: {} inline-style-parser@0.2.4: {} @@ -5201,10 +5169,6 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.1: - dependencies: - argparse: 2.0.1 - jsdom@25.0.1: dependencies: cssstyle: 4.1.0 @@ -5678,7 +5642,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.7 + debug: 4.4.3 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -5718,6 +5682,10 @@ snapshots: dependencies: brace-expansion: 5.0.3 + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.9 + minimatch@3.1.3: dependencies: brace-expansion: 1.1.12 @@ -5745,7 +5713,7 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nanoid@3.3.11: {} + nanoid@3.3.17: {} nanoid@3.3.8: {} @@ -5753,43 +5721,44 @@ snapshots: natural-compare@1.4.0: {} - next-auth@5.0.0-beta.30(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4): + next-auth@5.0.0-beta.30(next@16.3.0(@babel/core@7.29.0)(@types/node@20.16.11)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8): dependencies: '@auth/core': 0.41.0 - next: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 + next: 16.3.0(@babel/core@7.29.0)(@types/node@20.16.11)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 - next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + next@16.3.0(@babel/core@7.29.0)(@types/node@20.16.11)(react-dom@19.2.8(react@19.2.8))(react@19.2.8): dependencies: - '@next/env': 16.1.6 + '@next/env': 16.3.0 '@swc/helpers': 0.5.15 baseline-browser-mapping: 2.10.0 caniuse-lite: 1.0.30001774 - postcss: 8.4.31 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.4) + postcss: 8.5.23 + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.8) optionalDependencies: - '@next/swc-darwin-arm64': 16.1.6 - '@next/swc-darwin-x64': 16.1.6 - '@next/swc-linux-arm64-gnu': 16.1.6 - '@next/swc-linux-arm64-musl': 16.1.6 - '@next/swc-linux-x64-gnu': 16.1.6 - '@next/swc-linux-x64-musl': 16.1.6 - '@next/swc-win32-arm64-msvc': 16.1.6 - '@next/swc-win32-x64-msvc': 16.1.6 - sharp: 0.34.5 + '@next/swc-darwin-arm64': 16.3.0 + '@next/swc-darwin-x64': 16.3.0 + '@next/swc-linux-arm64-gnu': 16.3.0 + '@next/swc-linux-arm64-musl': 16.3.0 + '@next/swc-linux-x64-gnu': 16.3.0 + '@next/swc-linux-x64-musl': 16.3.0 + '@next/swc-win32-arm64-msvc': 16.3.0 + '@next/swc-win32-x64-msvc': 16.3.0 + sharp: 0.35.3(@types/node@20.16.11) transitivePeerDependencies: - '@babel/core' + - '@types/node' - babel-plugin-macros - nextjs-toploader@1.6.12(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + nextjs-toploader@1.6.12(next@16.3.0(@babel/core@7.29.0)(@types/node@20.16.11)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react@19.2.8): dependencies: - next: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + next: 16.3.0(@babel/core@7.29.0)(@types/node@20.16.11)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) nprogress: 0.2.0 prop-types: 15.8.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) node-exports-info@1.6.0: dependencies: @@ -5887,10 +5856,6 @@ snapshots: package-manager-detector@0.2.1: {} - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - parse-entities@4.0.1: dependencies: '@types/unist': 2.0.11 @@ -5975,18 +5940,18 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.4.31: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postcss@8.4.47: dependencies: nanoid: 3.3.8 picocolors: 1.1.0 source-map-js: 1.2.1 + postcss@8.5.23: + dependencies: + nanoid: 3.3.17 + picocolors: 1.1.1 + source-map-js: 1.2.1 + preact-render-to-string@6.5.11(preact@10.24.3): dependencies: preact: 10.24.3 @@ -6015,33 +5980,33 @@ snapshots: queue-microtask@1.2.3: {} - react-chartjs-2@5.2.0(chart.js@4.4.4)(react@19.2.4): + react-chartjs-2@5.2.0(chart.js@4.4.4)(react@19.2.8): dependencies: chart.js: 4.4.4 - react: 19.2.4 + react: 19.2.8 - react-dom@19.2.4(react@19.2.4): + react-dom@19.2.8(react@19.2.8): dependencies: - react: 19.2.4 + react: 19.2.8 scheduler: 0.27.0 - react-google-recaptcha-v3@1.10.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + react-google-recaptcha-v3@1.10.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8): dependencies: hoist-non-react-statics: 3.3.2 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) react-is@16.13.1: {} - react-markdown@9.0.1(@types/react@19.2.14)(react@19.2.4): + react-markdown@9.0.1(@types/react@19.2.18)(react@19.2.8): dependencies: '@types/hast': 3.0.4 - '@types/react': 19.2.14 + '@types/react': 19.2.18 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.0 html-url-attributes: 3.0.1 mdast-util-to-hast: 13.2.0 - react: 19.2.4 + react: 19.2.8 remark-parse: 11.0.0 remark-rehype: 11.1.1 unified: 11.0.5 @@ -6050,7 +6015,7 @@ snapshots: transitivePeerDependencies: - supports-color - react@19.2.4: {} + react@19.2.8: {} read-cache@1.0.0: dependencies: @@ -6163,8 +6128,6 @@ snapshots: transitivePeerDependencies: - supports-color - resolve-from@4.0.0: {} - resolve-pkg-maps@1.0.0: {} resolve@1.22.11: @@ -6243,6 +6206,9 @@ snapshots: semver@7.7.4: {} + semver@7.8.5: + optional: true + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -6291,36 +6257,38 @@ snapshots: '@img/sharp-win32-ia32': 0.33.5 '@img/sharp-win32-x64': 0.33.5 - sharp@0.34.5: + sharp@0.35.3(@types/node@20.16.11): dependencies: - '@img/colour': 1.0.0 + '@img/colour': 1.1.0 detect-libc: 2.1.2 - semver: 7.7.4 + semver: 7.8.5 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.5 - '@img/sharp-darwin-x64': 0.34.5 - '@img/sharp-libvips-darwin-arm64': 1.2.4 - '@img/sharp-libvips-darwin-x64': 1.2.4 - '@img/sharp-libvips-linux-arm': 1.2.4 - '@img/sharp-libvips-linux-arm64': 1.2.4 - '@img/sharp-libvips-linux-ppc64': 1.2.4 - '@img/sharp-libvips-linux-riscv64': 1.2.4 - '@img/sharp-libvips-linux-s390x': 1.2.4 - '@img/sharp-libvips-linux-x64': 1.2.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - '@img/sharp-linux-arm': 0.34.5 - '@img/sharp-linux-arm64': 0.34.5 - '@img/sharp-linux-ppc64': 0.34.5 - '@img/sharp-linux-riscv64': 0.34.5 - '@img/sharp-linux-s390x': 0.34.5 - '@img/sharp-linux-x64': 0.34.5 - '@img/sharp-linuxmusl-arm64': 0.34.5 - '@img/sharp-linuxmusl-x64': 0.34.5 - '@img/sharp-wasm32': 0.34.5 - '@img/sharp-win32-arm64': 0.34.5 - '@img/sharp-win32-ia32': 0.34.5 - '@img/sharp-win32-x64': 0.34.5 + '@img/sharp-darwin-arm64': 0.35.3 + '@img/sharp-darwin-x64': 0.35.3 + '@img/sharp-freebsd-wasm32': 0.35.3 + '@img/sharp-libvips-darwin-arm64': 1.3.2 + '@img/sharp-libvips-darwin-x64': 1.3.2 + '@img/sharp-libvips-linux-arm': 1.3.2 + '@img/sharp-libvips-linux-arm64': 1.3.2 + '@img/sharp-libvips-linux-ppc64': 1.3.2 + '@img/sharp-libvips-linux-riscv64': 1.3.2 + '@img/sharp-libvips-linux-s390x': 1.3.2 + '@img/sharp-libvips-linux-x64': 1.3.2 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.2 + '@img/sharp-libvips-linuxmusl-x64': 1.3.2 + '@img/sharp-linux-arm': 0.35.3 + '@img/sharp-linux-arm64': 0.35.3 + '@img/sharp-linux-ppc64': 0.35.3 + '@img/sharp-linux-riscv64': 0.35.3 + '@img/sharp-linux-s390x': 0.35.3 + '@img/sharp-linux-x64': 0.35.3 + '@img/sharp-linuxmusl-arm64': 0.35.3 + '@img/sharp-linuxmusl-x64': 0.35.3 + '@img/sharp-webcontainers-wasm32': 0.35.3 + '@img/sharp-win32-arm64': 0.35.3 + '@img/sharp-win32-ia32': 0.35.3 + '@img/sharp-win32-x64': 0.35.3 + '@types/node': 20.16.11 optional: true shebang-command@2.0.0: @@ -6466,16 +6434,14 @@ snapshots: strip-bom@3.0.0: {} - strip-json-comments@3.1.1: {} - style-to-object@1.0.8: dependencies: inline-style-parser: 0.2.4 - styled-jsx@5.1.6(@babel/core@7.29.0)(react@19.2.4): + styled-jsx@5.1.6(@babel/core@7.29.0)(react@19.2.8): dependencies: client-only: 0.0.1 - react: 19.2.4 + react: 19.2.8 optionalDependencies: '@babel/core': 7.29.0 @@ -6489,10 +6455,6 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} swiper@11.1.14: {} @@ -6619,13 +6581,13 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3): + typescript-eslint@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/parser': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.6.3) - '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) - eslint: 9.39.3(jiti@1.21.6) + '@typescript-eslint/utils': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) + eslint: 10.8.0(jiti@1.21.6) typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -6835,9 +6797,9 @@ snapshots: zod@4.3.6: {} - zustand@5.0.0-rc.2(@types/react@19.2.14)(react@19.2.4): + zustand@5.0.0-rc.2(@types/react@19.2.18)(react@19.2.8): optionalDependencies: - '@types/react': 19.2.14 - react: 19.2.4 + '@types/react': 19.2.18 + react: 19.2.8 zwitch@2.0.4: {} diff --git a/src/app/(common)/layout.tsx b/src/app/(common)/layout.tsx index 50fd9cf..d11cc2d 100644 --- a/src/app/(common)/layout.tsx +++ b/src/app/(common)/layout.tsx @@ -5,6 +5,10 @@ import Footer from '@/components/layout/Footer'; import Header from '@/components/layout/Header'; import Menu from '@/components/layout/Menu'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + export default function Layout({ children }: Readonly<{ children: React.ReactNode }>) { return ( <> diff --git a/src/app/(common)/page.tsx b/src/app/(common)/page.tsx index f6792ed..315d438 100644 --- a/src/app/(common)/page.tsx +++ b/src/app/(common)/page.tsx @@ -14,6 +14,10 @@ import { generateMetadataTemplate } from '@/lib/SEO'; import { getPostsProps } from '@/lib/getPosts'; import { headerMovPath, siteName } from '@/static/constant'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + export async function generateMetadata(): Promise { return generateMetadataTemplate({ url: `/`, diff --git a/src/app/(common)/post/[...slug]/page.tsx b/src/app/(common)/post/[...slug]/page.tsx index 182df7e..4424cd5 100644 --- a/src/app/(common)/post/[...slug]/page.tsx +++ b/src/app/(common)/post/[...slug]/page.tsx @@ -11,6 +11,10 @@ import { generateMetadataTemplate } from '@/lib/SEO'; import { getPost, getPostsProps } from '@/lib/getPosts'; import { author } from '@/static/constant'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + export const revalidate = 300; export const dynamicParams = true; diff --git a/src/app/(common)/post/page.tsx b/src/app/(common)/post/page.tsx index eccdefe..a4aa8c8 100644 --- a/src/app/(common)/post/page.tsx +++ b/src/app/(common)/post/page.tsx @@ -8,6 +8,10 @@ import { generateMetadataTemplate } from '@/lib/SEO'; import { getPostsProps } from '@/lib/getPosts'; import { siteName } from '@/static/constant'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + export async function generateMetadata(): Promise { return generateMetadataTemplate({ title: `投稿一覧`, diff --git a/src/app/(common)/profile/page.tsx b/src/app/(common)/profile/page.tsx index 2655822..c7403ca 100644 --- a/src/app/(common)/profile/page.tsx +++ b/src/app/(common)/profile/page.tsx @@ -8,6 +8,10 @@ import { generateMetadataTemplate } from '@/lib/SEO'; import { getPost } from '@/lib/getPosts'; import { author, siteName } from '@/static/constant'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + const getFileContent = cache(async () => { const postPath = `${process.env.GIT_PROFILE_PATH!}`; return await getPost(postPath); diff --git a/src/app/(common)/search/page.tsx b/src/app/(common)/search/page.tsx index ad55517..203f156 100644 --- a/src/app/(common)/search/page.tsx +++ b/src/app/(common)/search/page.tsx @@ -7,6 +7,10 @@ import { generateMetadataTemplate } from '@/lib/SEO'; import { getPostsProps } from '@/lib/getPosts'; import { siteName } from '@/static/constant'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + export async function generateMetadata(props: { searchParams: Promise<{ [key: string]: string }> }): Promise { const searchParams = await props.searchParams; const query = searchParams['q'] ?? ''; diff --git a/src/app/(common)/series/[slug]/page.tsx b/src/app/(common)/series/[slug]/page.tsx index bb1c82b..c9b992d 100644 --- a/src/app/(common)/series/[slug]/page.tsx +++ b/src/app/(common)/series/[slug]/page.tsx @@ -10,6 +10,10 @@ import { generateMetadataTemplate } from '@/lib/SEO'; import { getSeries } from '@/lib/getPosts'; import { siteName } from '@/static/constant'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + const getContents = cache(async (slug: string) => { return getSeries(slug); }); diff --git a/src/app/(common)/series/page.tsx b/src/app/(common)/series/page.tsx index 2d758d2..a167e13 100644 --- a/src/app/(common)/series/page.tsx +++ b/src/app/(common)/series/page.tsx @@ -6,6 +6,10 @@ import { generateMetadataTemplate } from '@/lib/SEO'; import { getSeriesProps } from '@/lib/getPosts'; import { siteName } from '@/static/constant'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + export async function generateMetadata(): Promise { return generateMetadataTemplate({ title: `シリーズ一覧`, diff --git a/src/app/(common)/tags/[slug]/page.tsx b/src/app/(common)/tags/[slug]/page.tsx index c1aa1ef..8dcd303 100644 --- a/src/app/(common)/tags/[slug]/page.tsx +++ b/src/app/(common)/tags/[slug]/page.tsx @@ -9,6 +9,10 @@ import { generateMetadataTemplate } from '@/lib/SEO'; import { getPostsProps } from '@/lib/getPosts'; import { siteName } from '@/static/constant'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + export async function generateMetadata(props: { params: Promise<{ slug: string }> }): Promise { const params = await props.params; const slug = decodeURIComponent(params.slug); diff --git a/src/app/(common)/tags/page.tsx b/src/app/(common)/tags/page.tsx index 23b9923..0ead64e 100644 --- a/src/app/(common)/tags/page.tsx +++ b/src/app/(common)/tags/page.tsx @@ -8,6 +8,10 @@ import { getPostsProps } from '@/lib/getPosts'; import { getTags } from '@/lib/postSorter'; import { siteName } from '@/static/constant'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + export async function generateMetadata(): Promise { return generateMetadataTemplate({ title: `タグ一覧`, diff --git a/src/app/(dashboard)/dashboard/page.tsx b/src/app/(dashboard)/dashboard/page.tsx index a86f288..b430ef9 100644 --- a/src/app/(dashboard)/dashboard/page.tsx +++ b/src/app/(dashboard)/dashboard/page.tsx @@ -12,6 +12,10 @@ import { getHeaders, getNext } from '@/lib/fetchingFunc'; import { getPostsProps } from '@/lib/getPosts'; import { siteName } from '@/static/constant'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + export async function generateMetadata(): Promise { return generateMetadataTemplate({ title: `ダッシュボード`, diff --git a/src/app/(dashboard)/layout.tsx b/src/app/(dashboard)/layout.tsx index dff1026..ff3233f 100644 --- a/src/app/(dashboard)/layout.tsx +++ b/src/app/(dashboard)/layout.tsx @@ -4,6 +4,10 @@ import NextTopLoader from 'nextjs-toploader'; import DashboardMenu from '@/components/layout/DashboardMenu'; import Header from '@/components/layout/Header'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + export default function Layout({ children }: Readonly<{ children: React.ReactNode }>) { return (
diff --git a/src/app/layout.tsx b/src/app/layout.tsx index ec3b078..7773c82 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -4,6 +4,10 @@ import { GoogleTagManager } from '@next/third-parties/google'; import { notoSansJp } from '@/lib/font'; import { preloadTheme } from '@/lib/themeManager'; +// TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. +// See: https://nextjs.org/docs/app/guides/migrating-to-cache-components +export const instant = false; + export default function RootLayout({ children }: Readonly<{ children: React.ReactNode }>) { return ( From 2dca474ac3ef4903172377d17e50e7228a9cc73a Mon Sep 17 00:00:00 2001 From: isirmt <52734487+isirmt@users.noreply.github.com> Date: Fri, 7 Aug 2026 16:58:06 +0900 Subject: [PATCH 2/3] rebase: eslint@9.39.3 --- package.json | 2 +- pnpm-lock.yaml | 339 +++++++++++++++++++++++++++++++------------------ 2 files changed, 218 insertions(+), 123 deletions(-) diff --git a/package.json b/package.json index a6cc01b..44b39e1 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "@types/react": "19.2.18", "@types/react-dom": "19.2.4", "@types/rss": "^0.0.32", - "eslint": "10.8.0", + "eslint": "9.39.3", "eslint-config-next": "16.3.0", "eslint-config-prettier": "^10.1.8", "postcss": "^8.4.47", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42dfcea..5a8d522 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,14 +134,14 @@ importers: specifier: ^0.0.32 version: 0.0.32 eslint: - specifier: 10.8.0 - version: 10.8.0(jiti@1.21.6) + specifier: 9.39.3 + version: 9.39.3(jiti@1.21.6) eslint-config-next: specifier: 16.3.0 - version: 16.3.0(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) + version: 16.3.0(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.8.0(jiti@1.21.6)) + version: 10.1.8(eslint@9.39.3(jiti@1.21.6)) postcss: specifier: ^8.4.47 version: 8.4.47 @@ -303,25 +303,33 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.23.5': - resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@eslint/config-array@0.21.2': + resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.7.0': - resolution: {integrity: sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@1.2.1': - resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@3.0.5': - resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@eslint/eslintrc@3.3.6': + resolution: {integrity: sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.7.2': - resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@eslint/js@9.39.3': + resolution: {integrity: sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} @@ -760,9 +768,6 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/esrecurse@4.3.1': - resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} - '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -1027,6 +1032,9 @@ packages: argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -1114,10 +1122,6 @@ packages: resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==} engines: {node: 18 || 20 || >=22} - brace-expansion@5.0.9: - resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} - engines: {node: 20 || >=22} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -1139,6 +1143,10 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} @@ -1149,6 +1157,10 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -1461,21 +1473,25 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-scope@9.1.2: - resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@5.0.1: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.8.0: - resolution: {integrity: sha512-nuKKvN+oIBO0koN7Tm7dlkmnkc21mtt0QJLwAKzjLq14y6lRTdVG36MZHJ8eQHwdJMwZbQNMlPOYedMq/oVJvQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + eslint@9.39.3: + resolution: {integrity: sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: jiti: '*' @@ -1483,9 +1499,9 @@ packages: jiti: optional: true - espree@11.2.0: - resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -1628,6 +1644,10 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + globals@16.4.0: resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} engines: {node: '>=18'} @@ -1648,6 +1668,10 @@ packages: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} @@ -1751,6 +1775,10 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -1930,6 +1958,10 @@ packages: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true + js-yaml@4.3.1: + resolution: {integrity: sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==} + hasBin: true + jsdom@25.0.1: resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} engines: {node: '>=18'} @@ -2223,13 +2255,12 @@ packages: resolution: {integrity: sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==} engines: {node: 18 || 20 || >=22} - minimatch@10.2.6: - resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} - engines: {node: 18 || 20 || >=22} - minimatch@3.1.3: resolution: {integrity: sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -2396,6 +2427,10 @@ packages: package-manager-detector@0.2.1: resolution: {integrity: sha512-/hVW2fZvAdEas+wyKh0SnlZ2mx0NIa1+j11YaQkogEJkcMErbwchHCuo8z7lEtajZJQZ6rgZNVTWMVVd71Bjng==} + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + parse-entities@4.0.1: resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} @@ -2667,6 +2702,10 @@ packages: remark@15.0.1: resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -2873,6 +2912,10 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} @@ -2894,6 +2937,10 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -3357,34 +3404,50 @@ snapshots: tslib: 2.8.1 optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.8.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.3(jiti@1.21.6))': dependencies: - eslint: 10.8.0(jiti@1.21.6) + eslint: 9.39.3(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.23.5': + '@eslint/config-array@0.21.2': dependencies: - '@eslint/object-schema': 3.0.5 + '@eslint/object-schema': 2.1.7 debug: 4.4.3 - minimatch: 10.2.6 + minimatch: 3.1.5 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.7.0': + '@eslint/config-helpers@0.4.2': dependencies: - '@eslint/core': 1.2.1 + '@eslint/core': 0.17.0 - '@eslint/core@1.2.1': + '@eslint/core@0.17.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/object-schema@3.0.5': {} + '@eslint/eslintrc@3.3.6': + dependencies: + ajv: 6.14.0 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.3.1 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.39.3': {} + + '@eslint/object-schema@2.1.7': {} - '@eslint/plugin-kit@0.7.2': + '@eslint/plugin-kit@0.4.1': dependencies: - '@eslint/core': 1.2.1 + '@eslint/core': 0.17.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -3653,9 +3716,9 @@ snapshots: '@next/env@16.3.0': {} - '@next/eslint-plugin-next@16.3.0(eslint@10.8.0(jiti@1.21.6))': + '@next/eslint-plugin-next@16.3.0(eslint@9.39.3(jiti@1.21.6))': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@1.21.6)) fast-glob: 3.3.1 transitivePeerDependencies: - eslint @@ -3765,8 +3828,6 @@ snapshots: dependencies: '@types/ms': 0.7.34 - '@types/esrecurse@4.3.1': {} - '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.8 @@ -3819,15 +3880,15 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.56.1 - eslint: 10.8.0(jiti@1.21.6) + eslint: 9.39.3(jiti@1.21.6) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@5.6.3) @@ -3835,14 +3896,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3 - eslint: 10.8.0(jiti@1.21.6) + eslint: 9.39.3(jiti@1.21.6) typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -3865,13 +3926,13 @@ snapshots: dependencies: typescript: 5.6.3 - '@typescript-eslint/type-utils@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 8.56.1 '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.6.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) debug: 4.4.3 - eslint: 10.8.0(jiti@1.21.6) + eslint: 9.39.3(jiti@1.21.6) ts-api-utils: 2.4.0(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: @@ -3894,13 +3955,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/utils@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.6.3) - eslint: 10.8.0(jiti@1.21.6) + eslint: 9.39.3(jiti@1.21.6) typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -4015,6 +4076,8 @@ snapshots: dependencies: sprintf-js: 1.0.3 + argparse@2.0.1: {} + aria-query@5.3.2: {} array-buffer-byte-length@1.0.2: @@ -4121,10 +4184,6 @@ snapshots: dependencies: balanced-match: 4.0.4 - brace-expansion@5.0.9: - dependencies: - balanced-match: 4.0.4 - braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -4154,12 +4213,19 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 + callsites@3.1.0: {} + camelcase-css@2.0.1: {} caniuse-lite@1.0.30001774: {} ccount@2.0.1: {} + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -4433,18 +4499,18 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-next@16.3.0(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3): + eslint-config-next@16.3.0(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3): dependencies: - '@next/eslint-plugin-next': 16.3.0(eslint@10.8.0(jiti@1.21.6)) - eslint: 10.8.0(jiti@1.21.6) + '@next/eslint-plugin-next': 16.3.0(eslint@9.39.3(jiti@1.21.6)) + eslint: 9.39.3(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.0(jiti@1.21.6)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.8.0(jiti@1.21.6)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@10.8.0(jiti@1.21.6)) - eslint-plugin-react: 7.37.5(eslint@10.8.0(jiti@1.21.6)) - eslint-plugin-react-hooks: 7.0.1(eslint@10.8.0(jiti@1.21.6)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.3(jiti@1.21.6)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.3(jiti@1.21.6)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.3(jiti@1.21.6)) + eslint-plugin-react: 7.37.5(eslint@9.39.3(jiti@1.21.6)) + eslint-plugin-react-hooks: 7.0.1(eslint@9.39.3(jiti@1.21.6)) globals: 16.4.0 - typescript-eslint: 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) + typescript-eslint: 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -4453,9 +4519,9 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@10.1.8(eslint@10.8.0(jiti@1.21.6)): + eslint-config-prettier@10.1.8(eslint@9.39.3(jiti@1.21.6)): dependencies: - eslint: 10.8.0(jiti@1.21.6) + eslint: 9.39.3(jiti@1.21.6) eslint-import-resolver-node@0.3.9: dependencies: @@ -4465,33 +4531,33 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.0(jiti@1.21.6)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.3(jiti@1.21.6)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 - eslint: 10.8.0(jiti@1.21.6) + eslint: 9.39.3(jiti@1.21.6) get-tsconfig: 4.13.6 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.8.0(jiti@1.21.6)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.3(jiti@1.21.6)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.0(jiti@1.21.6)))(eslint@10.8.0(jiti@1.21.6)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.3(jiti@1.21.6)))(eslint@9.39.3(jiti@1.21.6)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) - eslint: 10.8.0(jiti@1.21.6) + '@typescript-eslint/parser': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) + eslint: 9.39.3(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.0(jiti@1.21.6)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.3(jiti@1.21.6)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.8.0(jiti@1.21.6)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.3(jiti@1.21.6)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -4500,9 +4566,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 10.8.0(jiti@1.21.6) + eslint: 9.39.3(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.8.0(jiti@1.21.6)))(eslint@10.8.0(jiti@1.21.6)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.3(jiti@1.21.6)))(eslint@9.39.3(jiti@1.21.6)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -4514,13 +4580,13 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@10.8.0(jiti@1.21.6)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.3(jiti@1.21.6)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 @@ -4530,7 +4596,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 10.8.0(jiti@1.21.6) + eslint: 9.39.3(jiti@1.21.6) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -4539,18 +4605,18 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@7.0.1(eslint@10.8.0(jiti@1.21.6)): + eslint-plugin-react-hooks@7.0.1(eslint@9.39.3(jiti@1.21.6)): dependencies: '@babel/core': 7.29.0 '@babel/parser': 7.29.0 - eslint: 10.8.0(jiti@1.21.6) + eslint: 9.39.3(jiti@1.21.6) hermes-parser: 0.25.1 zod: 4.3.6 zod-validation-error: 4.0.2(zod@4.3.6) transitivePeerDependencies: - supports-color - eslint-plugin-react@7.37.5(eslint@10.8.0(jiti@1.21.6)): + eslint-plugin-react@7.37.5(eslint@9.39.3(jiti@1.21.6)): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 @@ -4558,7 +4624,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.2 - eslint: 10.8.0(jiti@1.21.6) + eslint: 9.39.3(jiti@1.21.6) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -4572,36 +4638,39 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-scope@9.1.2: + eslint-scope@8.4.0: dependencies: - '@types/esrecurse': 4.3.1 - '@types/estree': 1.0.8 esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} + eslint-visitor-keys@4.2.1: {} + eslint-visitor-keys@5.0.1: {} - eslint@10.8.0(jiti@1.21.6): + eslint@9.39.3(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@1.21.6)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.5 - '@eslint/config-helpers': 0.7.0 - '@eslint/core': 1.2.1 - '@eslint/plugin-kit': 0.7.2 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.6 + '@eslint/js': 9.39.3 + '@eslint/plugin-kit': 0.4.1 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 ajv: 6.14.0 + chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint-scope: 9.1.2 - eslint-visitor-keys: 5.0.1 - espree: 11.2.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -4612,7 +4681,8 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 10.2.6 + lodash.merge: 4.6.2 + minimatch: 3.1.3 natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: @@ -4620,11 +4690,11 @@ snapshots: transitivePeerDependencies: - supports-color - espree@11.2.0: + espree@10.4.0: dependencies: acorn: 8.16.0 acorn-jsx: 5.3.2(acorn@8.16.0) - eslint-visitor-keys: 5.0.1 + eslint-visitor-keys: 4.2.1 esprima@4.0.1: {} @@ -4778,6 +4848,8 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + globals@14.0.0: {} + globals@16.4.0: {} globalthis@1.0.4: @@ -4796,6 +4868,8 @@ snapshots: has-bigints@1.1.0: {} + has-flag@4.0.0: {} + has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.1 @@ -4988,6 +5062,11 @@ snapshots: ignore@7.0.5: {} + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + imurmurhash@0.1.4: {} inline-style-parser@0.2.4: {} @@ -5169,6 +5248,10 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 + js-yaml@4.3.1: + dependencies: + argparse: 2.0.1 + jsdom@25.0.1: dependencies: cssstyle: 4.1.0 @@ -5682,11 +5765,11 @@ snapshots: dependencies: brace-expansion: 5.0.3 - minimatch@10.2.6: + minimatch@3.1.3: dependencies: - brace-expansion: 5.0.9 + brace-expansion: 1.1.12 - minimatch@3.1.3: + minimatch@3.1.5: dependencies: brace-expansion: 1.1.12 @@ -5856,6 +5939,10 @@ snapshots: package-manager-detector@0.2.1: {} + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + parse-entities@4.0.1: dependencies: '@types/unist': 2.0.11 @@ -6128,6 +6215,8 @@ snapshots: transitivePeerDependencies: - supports-color + resolve-from@4.0.0: {} + resolve-pkg-maps@1.0.0: {} resolve@1.22.11: @@ -6434,6 +6523,8 @@ snapshots: strip-bom@3.0.0: {} + strip-json-comments@3.1.1: {} + style-to-object@1.0.8: dependencies: inline-style-parser: 0.2.4 @@ -6455,6 +6546,10 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + supports-preserve-symlinks-flag@1.0.0: {} swiper@11.1.14: {} @@ -6581,13 +6676,13 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3): + typescript-eslint@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3))(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/parser': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3))(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.6.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.8.0(jiti@1.21.6))(typescript@5.6.3) - eslint: 10.8.0(jiti@1.21.6) + '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@1.21.6))(typescript@5.6.3) + eslint: 9.39.3(jiti@1.21.6) typescript: 5.6.3 transitivePeerDependencies: - supports-color From f12245e1ca1e2a411ccdcc92545a42570ed96566 Mon Sep 17 00:00:00 2001 From: isirmt <52734487+isirmt@users.noreply.github.com> Date: Sat, 8 Aug 2026 12:33:34 +0900 Subject: [PATCH 3/3] update: adding cache components --- next.config.mjs | 1 + src/app/(common)/feed/route.ts | 21 ++++++++++++---- src/app/(common)/post/[...slug]/page.tsx | 13 ++++++---- src/app/(common)/series/[slug]/feed/route.ts | 26 ++++++++++++++------ src/app/(common)/tags/[slug]/feed/route.ts | 26 ++++++++++++++------ src/app/api/ogp-posts/[...slug]/route.tsx | 19 +++++++++++--- src/app/sitemap.ts | 8 ++++-- src/components/layout/ArticlePage.tsx | 4 +-- src/components/post/CachedPostMarkdown.tsx | 9 +++++++ 9 files changed, 96 insertions(+), 31 deletions(-) create mode 100644 src/components/post/CachedPostMarkdown.tsx diff --git a/next.config.mjs b/next.config.mjs index ac9f0f8..bc3a2f4 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,5 +1,6 @@ /** @type {import('next').NextConfig} */ const nextConfig = { + cacheComponents: true, images: { minimumCacheTTL: 1200, }, diff --git a/src/app/(common)/feed/route.ts b/src/app/(common)/feed/route.ts index 6420584..29eb551 100644 --- a/src/app/(common)/feed/route.ts +++ b/src/app/(common)/feed/route.ts @@ -1,13 +1,18 @@ +import { cacheLife, cacheTag } from 'next/cache'; import Rss from 'rss'; +import { BLOG_INDEX_CACHE_TAG } from '@/lib/blogCache'; import { getPostsProps } from '@/lib/getPosts'; import { siteName } from '@/static/constant'; import { lastModified } from '@/static/constant'; -export const revalidate = 1200; - const baseURL = process.env.NEXT_PUBLIC_URL!; +const feedRevalidateSeconds = 1200; + +async function getFeedXml() { + 'use cache'; + cacheLife({ revalidate: feedRevalidateSeconds }); + cacheTag(BLOG_INDEX_CACHE_TAG); -export async function GET() { const feed = new Rss({ title: `${siteName}の新着投稿`, description: `「${siteName}」の投稿フィード`, @@ -27,11 +32,17 @@ export async function GET() { }), ); - return new Response(feed.xml(), { + return feed.xml(); +} + +export async function GET() { + const feedXml = await getFeedXml(); + + return new Response(feedXml, { status: 200, headers: { 'Content-Type': 'application/xml', - 'Cache-Control': `s-maxage=${revalidate}, stale-while-revalidate`, + 'Cache-Control': `s-maxage=${feedRevalidateSeconds}, stale-while-revalidate`, 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, OPTIONS', }, diff --git a/src/app/(common)/post/[...slug]/page.tsx b/src/app/(common)/post/[...slug]/page.tsx index 4424cd5..0213a76 100644 --- a/src/app/(common)/post/[...slug]/page.tsx +++ b/src/app/(common)/post/[...slug]/page.tsx @@ -1,6 +1,7 @@ -import React, { cache } from 'react'; +import React from 'react'; import '@/styles/post/style.css'; import { Metadata } from 'next'; +import { cacheLife, cacheTag } from 'next/cache'; import { BlogPosting, WithContext } from 'schema-dts'; import JsonLd from '@/components/JsonLd'; import ShareButtons from '@/components/ShareButtons'; @@ -8,6 +9,7 @@ import Article from '@/components/layout/ArticlePage'; import { Main, SideMDShown } from '@/components/layout/PageLayout'; import PostIndex from '@/components/post/PostIndex'; import { generateMetadataTemplate } from '@/lib/SEO'; +import { getBlogPostCacheTag } from '@/lib/blogCache'; import { getPost, getPostsProps } from '@/lib/getPosts'; import { author } from '@/static/constant'; @@ -15,13 +17,14 @@ import { author } from '@/static/constant'; // See: https://nextjs.org/docs/app/guides/migrating-to-cache-components export const instant = false; -export const revalidate = 300; -export const dynamicParams = true; +async function getFileContent(path: string) { + 'use cache'; + cacheLife({ revalidate: 300 }); + cacheTag(getBlogPostCacheTag(path)); -const getFileContent = cache(async (path: string) => { const postPath = `${process.env.GIT_POSTS_DIR!}/${path}.md`; return await getPost(postPath); -}); +} export async function generateStaticParams(): Promise<{ slug: string[] }[]> { const posts = await getPostsProps(); diff --git a/src/app/(common)/series/[slug]/feed/route.ts b/src/app/(common)/series/[slug]/feed/route.ts index 8ba8c7a..47fa27d 100644 --- a/src/app/(common)/series/[slug]/feed/route.ts +++ b/src/app/(common)/series/[slug]/feed/route.ts @@ -1,21 +1,25 @@ +import { cacheLife, cacheTag } from 'next/cache'; import { NextRequest } from 'next/server'; import Rss from 'rss'; +import { BLOG_INDEX_CACHE_TAG, getBlogSeriesCacheTag } from '@/lib/blogCache'; import { getSeries } from '@/lib/getPosts'; import { siteName } from '@/static/constant'; import { lastModified } from '@/static/constant'; -export const revalidate = 1200; - const baseURL = process.env.NEXT_PUBLIC_URL!; +const feedRevalidateSeconds = 1200; + +async function getFeedXml(slug: string, encodedSlug: string) { + 'use cache'; + cacheLife({ revalidate: feedRevalidateSeconds }); + cacheTag(BLOG_INDEX_CACHE_TAG, getBlogSeriesCacheTag(slug)); -export async function GET(req: NextRequest, context: { params: Promise<{ slug: string }> }) { - const slug = decodeURIComponent((await context.params).slug); const seriesPosts = await getSeries(slug); const feed = new Rss({ title: `${siteName}のシリーズ「${seriesPosts.meta.name}」の新着投稿`, description: `「${siteName}」のシリーズ${seriesPosts.meta.description ? ': ' + seriesPosts.meta.description : ''}`, - feed_url: `${baseURL}/series/${(await context.params).slug}/feed`, + feed_url: `${baseURL}/series/${encodedSlug}/feed`, site_url: baseURL, language: 'ja', }); @@ -29,10 +33,18 @@ export async function GET(req: NextRequest, context: { params: Promise<{ slug: s }), ); - return new Response(feed.xml(), { + return feed.xml(); +} + +export async function GET(_req: NextRequest, context: { params: Promise<{ slug: string }> }) { + const { slug: encodedSlug } = await context.params; + const slug = decodeURIComponent(encodedSlug); + const feedXml = await getFeedXml(slug, encodedSlug); + + return new Response(feedXml, { headers: { 'Content-Type': 'application/xml', - 'Cache-Control': `s-maxage=${revalidate}, stale-while-revalidate`, + 'Cache-Control': `s-maxage=${feedRevalidateSeconds}, stale-while-revalidate`, }, }); } diff --git a/src/app/(common)/tags/[slug]/feed/route.ts b/src/app/(common)/tags/[slug]/feed/route.ts index a351496..c75d1a0 100644 --- a/src/app/(common)/tags/[slug]/feed/route.ts +++ b/src/app/(common)/tags/[slug]/feed/route.ts @@ -1,19 +1,23 @@ +import { cacheLife, cacheTag } from 'next/cache'; import { NextRequest } from 'next/server'; import Rss from 'rss'; +import { BLOG_INDEX_CACHE_TAG } from '@/lib/blogCache'; import { getPostsProps } from '@/lib/getPosts'; import { siteName } from '@/static/constant'; import { lastModified } from '@/static/constant'; -export const revalidate = 1200; - const baseURL = process.env.NEXT_PUBLIC_URL!; +const feedRevalidateSeconds = 1200; + +async function getFeedXml(slug: string, encodedSlug: string) { + 'use cache'; + cacheLife({ revalidate: feedRevalidateSeconds }); + cacheTag(BLOG_INDEX_CACHE_TAG); -export async function GET(req: NextRequest, context: { params: Promise<{ slug: string }> }) { - const slug = decodeURIComponent((await context.params).slug); const feed = new Rss({ title: `${siteName}のタグ「#${slug}」の新着投稿`, description: `「${siteName}」のタグ「#${slug}」の投稿フィード`, - feed_url: `${baseURL}/tags/${(await context.params).slug}/feed`, + feed_url: `${baseURL}/tags/${encodedSlug}/feed`, site_url: baseURL, language: 'ja', }); @@ -30,10 +34,18 @@ export async function GET(req: NextRequest, context: { params: Promise<{ slug: s }), ); - return new Response(feed.xml(), { + return feed.xml(); +} + +export async function GET(_req: NextRequest, context: { params: Promise<{ slug: string }> }) { + const { slug: encodedSlug } = await context.params; + const slug = decodeURIComponent(encodedSlug); + const feedXml = await getFeedXml(slug, encodedSlug); + + return new Response(feedXml, { headers: { 'Content-Type': 'application/xml', - 'Cache-Control': `s-maxage=${revalidate}, stale-while-revalidate`, + 'Cache-Control': `s-maxage=${feedRevalidateSeconds}, stale-while-revalidate`, }, }); } diff --git a/src/app/api/ogp-posts/[...slug]/route.tsx b/src/app/api/ogp-posts/[...slug]/route.tsx index bb49841..3924c57 100644 --- a/src/app/api/ogp-posts/[...slug]/route.tsx +++ b/src/app/api/ogp-posts/[...slug]/route.tsx @@ -1,18 +1,31 @@ import { promises as fs } from 'fs'; import path from 'path'; +import { cacheLife, cacheTag } from 'next/cache'; import { ImageResponse } from 'next/og'; import { NextRequest, NextResponse } from 'next/server'; +import { getBlogPostCacheTag } from '@/lib/blogCache'; import { getImage, getPost } from '@/lib/getPosts'; import { getImageMimeType } from '@/lib/mime-getter'; -export const revalidate = 1200; +const imageRevalidateSeconds = 1200; + +async function getImageData(slug: string) { + 'use cache'; + cacheLife({ revalidate: imageRevalidateSeconds }); + cacheTag(getBlogPostCacheTag(slug)); -export async function GET(req: NextRequest, context: { params: Promise<{ slug: string[] }> }) { - const slug = decodeURIComponent((await context.params).slug.join('/')); const { data } = await getPost(`${process.env.GIT_POSTS_DIR!}/${slug}.md`); const font = await fs.readFile(path.join(process.cwd(), 'assets', 'NotoSansJP-ExtraBold-Sub.ttf')); const base64Image = data.thumbnail ? await getImage(data.thumbnail) : ''; + return { data, font: font.toString('base64'), base64Image }; +} + +export async function GET(_req: NextRequest, context: { params: Promise<{ slug: string[] }> }) { + const slug = decodeURIComponent((await context.params).slug.join('/')); + const { data, font: fontBase64, base64Image } = await getImageData(slug); + const font = Buffer.from(fontBase64, 'base64'); + if ((data.thumbnail && base64Image === '') || !data.thumbnail) return new ImageResponse( ( diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts index 5d2597d..9d59dcd 100644 --- a/src/app/sitemap.ts +++ b/src/app/sitemap.ts @@ -1,12 +1,16 @@ import { MetadataRoute } from 'next'; +import { cacheLife, cacheTag } from 'next/cache'; +import { BLOG_INDEX_CACHE_TAG } from '@/lib/blogCache'; import { getPostsProps } from '@/lib/getPosts'; import { lastModified } from '@/static/constant'; -export const revalidate = 1200; - const staticPaths = ['/post', '/profile', '/series', '/tags']; export default async function sitemap(): Promise { + 'use cache'; + cacheLife({ revalidate: 1200 }); + cacheTag(BLOG_INDEX_CACHE_TAG); + const posts = await getPostsProps(); const baseURL = process.env.NEXT_PUBLIC_URL!; diff --git a/src/components/layout/ArticlePage.tsx b/src/components/layout/ArticlePage.tsx index 3ab4bfe..27bb520 100644 --- a/src/components/layout/ArticlePage.tsx +++ b/src/components/layout/ArticlePage.tsx @@ -9,8 +9,8 @@ import { getSeries } from '@/lib/getPosts'; import { PostData } from '@/static/postType'; import LoadingCircle from '../LoadingCircle'; import { ExplainingBanner } from '../UserBanner'; +import CachedPostMarkdown from '../post/CachedPostMarkdown'; import { CommentForm, CommentFormNoPosting } from '../post/CommentForm'; -import { PostMarkdown } from '../post/MarkdownElements'; import SeriesCard from '../post/SeriesCard'; export default async function Article({ data, content, slug }: { data: PostData; content: string; slug?: string }) { @@ -53,7 +53,7 @@ export default async function Article({ data, content, slug }: { data: PostData; ) : ( <> )} - + }> {issue && slug ? ( issue.state === 'closed' ? ( diff --git a/src/components/post/CachedPostMarkdown.tsx b/src/components/post/CachedPostMarkdown.tsx new file mode 100644 index 0000000..baeca50 --- /dev/null +++ b/src/components/post/CachedPostMarkdown.tsx @@ -0,0 +1,9 @@ +import { cacheLife } from 'next/cache'; +import { PostMarkdown } from './MarkdownElements'; + +export default async function CachedPostMarkdown({ content }: { content: string }) { + 'use cache'; + cacheLife('max'); + + return ; +}