From aecbdad7e1378220cd32af1c4be7d272040a891d Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 22 Oct 2026 12:38:03 +0200 Subject: [PATCH 1/3] fix: update next to 15.5.28, disable image optimizer, label server action probes in sentry --- core/instrumentation.onRequestError.ts | 20 +- core/lib/server/serverActionProbe.test.ts | 67 ++ core/lib/server/serverActionProbe.ts | 81 +++ core/next.config.ts | 19 +- package.json | 3 +- pnpm-lock.yaml | 822 ++++++++++++---------- pnpm-workspace.yaml | 2 +- 7 files changed, 610 insertions(+), 404 deletions(-) create mode 100644 core/lib/server/serverActionProbe.test.ts create mode 100644 core/lib/server/serverActionProbe.ts diff --git a/core/instrumentation.onRequestError.ts b/core/instrumentation.onRequestError.ts index d5c28e005e..2993c0c6c6 100644 --- a/core/instrumentation.onRequestError.ts +++ b/core/instrumentation.onRequestError.ts @@ -1,3 +1,21 @@ +import type { InstrumentationOnRequestError } from "next/dist/server/instrumentation/types" + import * as Sentry from "@sentry/nextjs" -export const onRequestError = Sentry.captureRequestError +import { classifyServerActionProbe, serverActionProbeContext } from "./lib/server/serverActionProbe" + +export const onRequestError: InstrumentationOnRequestError = (error, request, context) => { + const probe = classifyServerActionProbe(error, request) + if (!probe) { + return Sentry.captureRequestError(error, request, context) + } + + // group each kind into a single warning-level issue, filterable with probe: + Sentry.withScope((scope) => { + scope.setLevel("warning") + scope.setFingerprint([probe.kind]) + scope.setTag("probe", probe.kind) + scope.setContext("probe", serverActionProbeContext(request)) + Sentry.captureRequestError(probe, request, context) + }) +} diff --git a/core/lib/server/serverActionProbe.test.ts b/core/lib/server/serverActionProbe.test.ts new file mode 100644 index 0000000000..b19f2fd395 --- /dev/null +++ b/core/lib/server/serverActionProbe.test.ts @@ -0,0 +1,67 @@ +import { describe, expect, test } from "vitest" + +import { classifyServerActionProbe } from "./serverActionProbe" + +const parseError = () => { + try { + JSON.parse('{"then":"$1"x}') + } catch (error) { + return error + } + throw new Error("expected JSON.parse to throw") +} + +const actionRequest = (headers: Record = {}) => ({ + path: "/login", + method: "POST", + headers: { "next-action": "x", "content-type": "text/plain;charset=UTF-8", ...headers }, +}) + +describe("classifyServerActionProbe", () => { + test("flags an undecodable Server Action payload", () => { + const probe = classifyServerActionProbe(parseError(), actionRequest()) + + expect(probe?.kind).toBe("malformed-server-action") + expect(probe?.name).toBe("MalformedServerAction") + expect(probe?.message).toContain("POST /login") + expect(probe?.cause).toBeInstanceOf(SyntaxError) + }) + + test("flags a multipart form post without a next-action header", () => { + const probe = classifyServerActionProbe(parseError(), { + path: "/login", + method: "POST", + headers: { "content-type": "multipart/form-data; boundary=x" }, + }) + + expect(probe?.kind).toBe("malformed-server-action") + }) + + test("flags an unknown Server Action ID", () => { + const probe = classifyServerActionProbe( + new Error( + "Failed to find Server Action. This request might be from an older or newer deployment." + ), + actionRequest() + ) + + expect(probe?.kind).toBe("unknown-server-action") + }) + + test("leaves other errors in Server Actions alone", () => { + expect(classifyServerActionProbe(new Error("database is down"), actionRequest())).toBeNull() + }) + + test("leaves parse errors outside Server Actions alone", () => { + expect( + classifyServerActionProbe(parseError(), { path: "/login", method: "GET", headers: {} }) + ).toBeNull() + expect( + classifyServerActionProbe(parseError(), { + path: "/api/v0/pubs", + method: "POST", + headers: { "content-type": "application/json" }, + }) + ).toBeNull() + }) +}) diff --git a/core/lib/server/serverActionProbe.ts b/core/lib/server/serverActionProbe.ts new file mode 100644 index 0000000000..3bebd9ffc8 --- /dev/null +++ b/core/lib/server/serverActionProbe.ts @@ -0,0 +1,81 @@ +type RequestHeaders = NodeJS.Dict + +export type ServerActionProbeKind = "malformed-server-action" | "unknown-server-action" + +/** + * Stands in for the original error in Sentry, so these requests group into + * one clearly named issue per kind instead of a pile of raw parse errors. + * The original error stays attached as `cause`. + */ +export class ServerActionProbeError extends Error { + readonly kind: ServerActionProbeKind + + constructor(kind: ServerActionProbeKind, message: string, cause: unknown) { + super(message, { cause }) + this.name = + kind === "malformed-server-action" ? "MalformedServerAction" : "UnknownServerAction" + this.kind = kind + } +} + +const header = (headers: RequestHeaders, name: string) => { + const value = headers[name] + return Array.isArray(value) ? value[0] : value +} + +/** + * Next treats any POST with a `next-action` header, or a multipart / urlencoded + * form body, as a possible Server Action call. + */ +const isServerActionRequest = (request: { method: string; headers: RequestHeaders }) => { + if (request.method !== "POST") { + return false + } + const contentType = header(request.headers, "content-type") ?? "" + return ( + header(request.headers, "next-action") !== undefined || + contentType.startsWith("multipart/form-data") || + contentType.startsWith("application/x-www-form-urlencoded") + ) +} + +/** + * Recognizes Server Action requests that failed before any of our code ran: + * the payload couldn't be decoded, or the action ID doesn't exist. Malformed + * payloads are almost always vulnerability scanners (React2Shell-style probes); + * unknown IDs are scanners or tabs left open across a deploy. Returns null for + * everything else, which should be reported as usual. + */ +export const classifyServerActionProbe = ( + error: unknown, + request: { path: string; method: string; headers: RequestHeaders } +): ServerActionProbeError | null => { + if (!(error instanceof Error) || !isServerActionRequest(request)) { + return null + } + + if (error.message.startsWith("Failed to find Server Action")) { + return new ServerActionProbeError( + "unknown-server-action", + `POST ${request.path} called a Server Action that doesn't exist (stale tab after a deploy, or a scanner)`, + error + ) + } + + if (error instanceof SyntaxError) { + return new ServerActionProbeError( + "malformed-server-action", + `POST ${request.path} sent a Server Action payload that couldn't be decoded (likely a vulnerability scanner)`, + error + ) + } + + return null +} + +export const serverActionProbeContext = (request: { headers: RequestHeaders }) => ({ + nextAction: header(request.headers, "next-action"), + contentType: header(request.headers, "content-type"), + userAgent: header(request.headers, "user-agent"), + forwardedFor: header(request.headers, "x-forwarded-for"), +}) diff --git a/core/next.config.ts b/core/next.config.ts index 61aaa036db..d663a56a9d 100644 --- a/core/next.config.ts +++ b/core/next.config.ts @@ -30,21 +30,12 @@ const nextConfig: NextConfig = { */ cacheHandler: new URL("./cache-handler.mjs", import.meta.url).pathname, cacheMaxMemorySize: 0, + /** + * We don't use next/image. Turning optimization off makes /_next/image + * 404 instead of exposing the optimizer (and sharp) to the internet. + */ images: { - remotePatterns: [ - { - protocol: "https", - hostname: "avatars.githubusercontent.com", - port: "", - pathname: "/u/**", - }, - { - protocol: "https", - hostname: "cloudflare-ipfs.com", - port: "", - pathname: "/ipfs/**", - }, - ], + unoptimized: true, }, turbopack: { root: new URL("./..", import.meta.url).pathname, diff --git a/package.json b/package.json index 84f24cfdaa..6cd10f58ed 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,8 @@ "@radix-ui/react-dismissable-layer": "^1.0.5", "@radix-ui/react-focus-scope": "^1.0.4", "@react-email/render@1>prettier": "^3.6.2", - "react-email@3>next": "^15.5.0", + "react-email@3>next": "^15.5.28", + "sharp": "^0.35.5", "@opentelemetry/instrumentation@0>import-in-the-middle": "1.14.2", "react-email@3>glob": "^10.5.0", "tailwindcss@3>sucrase": "^3.35.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a7bd933f3b..2d421fb869 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,7 +56,7 @@ catalogs: version: 20.19.11 '@typescript/native-preview': specifier: latest - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 '@vitejs/plugin-react': specifier: ^4.5.0 version: 4.7.0 @@ -73,8 +73,8 @@ catalogs: specifier: ^0.16.18 version: 0.16.22 next: - specifier: ^15.5.18 - version: 15.5.18 + specifier: ^15.5.28 + version: 15.5.28 nuqs: specifier: 2.4.3 version: 2.4.3 @@ -146,7 +146,8 @@ overrides: '@radix-ui/react-dismissable-layer': ^1.0.5 '@radix-ui/react-focus-scope': ^1.0.4 '@react-email/render@1>prettier': ^3.6.2 - react-email@3>next: ^15.5.0 + react-email@3>next: ^15.5.28 + sharp: ^0.35.5 '@opentelemetry/instrumentation@0>import-in-the-middle': 1.14.2 react-email@3>glob: ^10.5.0 tailwindcss@3>sucrase: ^3.35.1 @@ -249,7 +250,7 @@ importers: version: 9.9.0 '@fortedigital/nextjs-cache-handler': specifier: 1.2.0 - version: 1.2.0(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(redis@4.7.0) + version: 1.2.0(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(redis@4.7.0) '@googleapis/drive': specifier: ^8.16.0 version: 8.16.0 @@ -267,10 +268,10 @@ importers: version: 10.2.0(react@19.2.3) '@neshca/cache-handler': specifier: ^1.9.0 - version: 1.9.0(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(redis@4.7.0) + version: 1.9.0(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(redis@4.7.0) '@nimpl/getters': specifier: ^2.2.0 - version: 2.2.0(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 2.2.0(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@node-rs/argon2': specifier: ^1.8.3 version: 1.8.3 @@ -288,7 +289,7 @@ importers: version: 1.2.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@sentry/nextjs': specifier: 'catalog:' - version: 10.5.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9)) + version: 10.5.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9)) '@sinclair/typebox': specifier: 'catalog:' version: 0.34.30 @@ -306,7 +307,7 @@ importers: version: 3.51.0(@types/node@20.19.11)(zod@3.25.76) '@ts-rest/next': specifier: 'catalog:' - version: 3.51.0(@ts-rest/core@3.51.0(@types/node@20.19.11)(zod@3.25.76))(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(zod@3.25.76) + version: 3.51.0(@ts-rest/core@3.51.0(@types/node@20.19.11)(zod@3.25.76))(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(zod@3.25.76) '@ts-rest/open-api': specifier: 'catalog:' version: 3.51.0(@ts-rest/core@3.51.0(@types/node@20.19.11)(zod@3.25.76))(zod@3.25.76) @@ -315,7 +316,7 @@ importers: version: 3.51.0(@tanstack/react-query@5.85.5(react@19.2.3))(@ts-rest/core@3.51.0(@types/node@20.19.11)(zod@3.25.76))(react@19.2.3)(zod@3.25.76) '@ts-rest/serverless': specifier: 'catalog:' - version: 3.51.0(@ts-rest/core@3.51.0(@types/node@20.19.11)(zod@3.25.76))(@types/aws-lambda@8.10.145)(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(zod@3.25.76) + version: 3.51.0(@ts-rest/core@3.51.0(@types/node@20.19.11)(zod@3.25.76))(@types/aws-lambda@8.10.145)(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(zod@3.25.76) '@types/hast': specifier: ^3.0.4 version: 3.0.4 @@ -408,7 +409,7 @@ importers: version: 2.1.1 next: specifier: 'catalog:' - version: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) next-connect: specifier: ^1.0.0 version: 1.0.0 @@ -420,7 +421,7 @@ importers: version: 6.10.1 nuqs: specifier: 'catalog:' - version: 2.4.3(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + version: 2.4.3(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) openapi3-ts: specifier: ^4.5.0 version: 4.5.0 @@ -525,7 +526,7 @@ importers: version: 10.0.5(react@19.2.3) use-next-sse: specifier: ^0.2.3 - version: 0.2.3(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 0.2.3(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) utils: specifier: workspace:* version: link:../packages/utils @@ -574,7 +575,7 @@ importers: version: 9.0.8(@vitest/browser@3.0.5(@types/node@20.19.11)(playwright@1.53.0)(typescript@5.9.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4))(@vitest/runner@3.2.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.11)(@vitest/browser@3.0.5)(jiti@2.6.1)(jsdom@25.0.1)(lightningcss@1.30.2)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@storybook/nextjs-vite': specifier: ^9.1.2 - version: 9.1.2(@babel/core@7.28.3)(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.46.4)(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 9.1.2(@babel/core@7.28.3)(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.46.4)(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@tailwindcss/forms': specifier: 'catalog:' version: 0.5.10(tailwindcss@4.1.17) @@ -646,7 +647,7 @@ importers: version: 9.0.8 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 '@vitejs/plugin-react': specifier: 'catalog:' version: 4.7.0(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) @@ -730,13 +731,13 @@ importers: dependencies: next: specifier: 'catalog:' - version: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nextra: specifier: ^4.3.0 - version: 4.3.0(acorn@8.15.0)(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2) + version: 4.3.0(acorn@8.15.0)(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2) nextra-theme-docs: specifier: ^4.3.0 - version: 4.3.0(@types/react@19.1.10)(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(nextra@4.3.0(acorn@8.15.0)(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(use-sync-external-store@1.5.0(react@19.2.3)) + version: 4.3.0(@types/react@19.1.10)(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(nextra@4.3.0(acorn@8.15.0)(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(use-sync-external-store@1.5.0(react@19.2.3)) pagefind: specifier: ^1.3.0 version: 1.3.0 @@ -761,7 +762,7 @@ importers: version: 19.1.7(@types/react@19.1.10) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 autoprefixer: specifier: 'catalog:' version: 10.4.21(postcss@8.5.6) @@ -846,7 +847,7 @@ importers: version: 8.15.5 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 dotenv-cli: specifier: ^7.4.4 version: 7.4.4 @@ -867,7 +868,7 @@ importers: version: 2.1.1 next: specifier: 'catalog:' - version: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: specifier: catalog:react19 version: 19.2.3 @@ -889,7 +890,7 @@ importers: version: 19.1.7(@types/react@19.1.10) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 tsconfig: specifier: workspace:* version: link:../config/tsconfig @@ -1145,7 +1146,7 @@ importers: version: 9.0.8 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 '@uiw/react-json-view': specifier: 2.0.0-alpha.27 version: 2.0.0-alpha.27(@babel/runtime@7.28.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -1194,7 +1195,7 @@ importers: version: 3.51.0(@types/node@20.19.11)(zod@3.25.76) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -1228,7 +1229,7 @@ importers: version: 8.15.5 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 dotenv-cli: specifier: ^7.4.4 version: 7.4.4 @@ -1264,7 +1265,7 @@ importers: version: 0.0.31(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 browserslist: specifier: ^4.25.3 version: 4.25.3 @@ -1276,7 +1277,7 @@ importers: version: 19.2.3 react-email: specifier: 3.0.4 - version: 3.0.4(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 3.0.4(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -1308,7 +1309,7 @@ importers: version: 2.2.0 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -1330,7 +1331,7 @@ importers: version: 20.19.11 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -1355,7 +1356,7 @@ importers: devDependencies: '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 react: specifier: catalog:react19 version: 19.2.3 @@ -1538,13 +1539,13 @@ importers: version: 0.55.1 next: specifier: 'catalog:' - version: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@24.3.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) next-themes: specifier: ^0.4.6 version: 0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nuqs: specifier: 'catalog:' - version: 2.4.3(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + version: 2.4.3(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@24.3.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) react-colorful: specifier: ^5.6.1 version: 5.6.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -1581,7 +1582,7 @@ importers: version: 19.1.10 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 react: specifier: catalog:react19 version: 19.2.3 @@ -1606,7 +1607,7 @@ importers: devDependencies: '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260430.1 + version: 7.0.0-dev.20260707.2 tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -2925,6 +2926,9 @@ packages: '@emnapi/runtime@0.45.0': resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==} + '@emnapi/runtime@1.11.3': + resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} + '@emnapi/runtime@1.4.5': resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} @@ -3389,125 +3393,149 @@ packages: peerDependencies: react: ^16.13 || ^17 || ^18 || ^19 - '@img/sharp-darwin-arm64@0.34.3': - resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/colour@1.1.0': + resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} + engines: {node: '>=18'} + + '@img/sharp-darwin-arm64@0.35.5': + resolution: {integrity: sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.34.3': - resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-darwin-x64@0.35.5': + resolution: {integrity: sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.2.0': - resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} + '@img/sharp-freebsd-wasm32@0.35.5': + resolution: {integrity: sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw==} + engines: {node: '>=20.9.0'} + os: [freebsd] + + '@img/sharp-libvips-darwin-arm64@1.3.4': + resolution: {integrity: sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.0': - resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} + '@img/sharp-libvips-darwin-x64@1.3.4': + resolution: {integrity: sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.2.0': - resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} + '@img/sharp-libvips-linux-arm64@1.3.4': + resolution: {integrity: sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.2.0': - resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} + '@img/sharp-libvips-linux-arm@1.3.4': + resolution: {integrity: sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-ppc64@1.2.0': - resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} + '@img/sharp-libvips-linux-ppc64@1.3.4': + resolution: {integrity: sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ==} cpu: [ppc64] os: [linux] - '@img/sharp-libvips-linux-s390x@1.2.0': - resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} + '@img/sharp-libvips-linux-riscv64@1.3.4': + resolution: {integrity: sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q==} + cpu: [riscv64] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.3.4': + resolution: {integrity: sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.2.0': - resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} + '@img/sharp-libvips-linux-x64@1.3.4': + resolution: {integrity: sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.2.0': - resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} + '@img/sharp-libvips-linuxmusl-arm64@1.3.4': + resolution: {integrity: sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.2.0': - resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} + '@img/sharp-libvips-linuxmusl-x64@1.3.4': + resolution: {integrity: sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.34.3': - resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-arm64@0.35.5': + resolution: {integrity: sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.34.3': - resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-arm@0.35.5': + resolution: {integrity: sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ==} + engines: {node: '>=20.9.0'} cpu: [arm] os: [linux] - '@img/sharp-linux-ppc64@0.34.3': - resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-ppc64@0.35.5': + resolution: {integrity: sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA==} + engines: {node: '>=20.9.0'} cpu: [ppc64] os: [linux] - '@img/sharp-linux-s390x@0.34.3': - resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-riscv64@0.35.5': + resolution: {integrity: sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ==} + engines: {node: '>=20.9.0'} + cpu: [riscv64] + os: [linux] + + '@img/sharp-linux-s390x@0.35.5': + resolution: {integrity: sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA==} + engines: {node: '>=20.9.0'} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.34.3': - resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-x64@0.35.5': + resolution: {integrity: sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.34.3': - resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linuxmusl-arm64@0.35.5': + resolution: {integrity: sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.34.3': - resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linuxmusl-x64@0.35.5': + resolution: {integrity: sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.34.3': - resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-wasm32@0.35.5': + resolution: {integrity: sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ==} + engines: {node: '>=20.9.0'} + + '@img/sharp-webcontainers-wasm32@0.35.5': + resolution: {integrity: sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA==} + engines: {node: '>=20.9.0'} cpu: [wasm32] - '@img/sharp-win32-arm64@0.34.3': - resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-arm64@0.35.5': + resolution: {integrity: sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [win32] - '@img/sharp-win32-ia32@0.34.3': - resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-ia32@0.35.5': + resolution: {integrity: sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A==} + engines: {node: ^20.9.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.34.3': - resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-x64@0.35.5': + resolution: {integrity: sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [win32] @@ -3874,107 +3902,56 @@ packages: next: '>= 13.5.1 < 15' redis: '>= 4.6' - '@next/env@15.5.0': - resolution: {integrity: sha512-sDaprBAfzCQiOgo2pO+LhnV0Wt2wBgartjrr+dpcTORYVnnXD0gwhHhiiyIih9hQbq+JnbqH4odgcFWhqCGidw==} - '@next/env@15.5.18': resolution: {integrity: sha512-hAV85Ckd9QR6RvH04MEKwsfLTksvFpO47j9xwtoIuvuPnlwecpSi+uZTtm8HirVbtlI2Fnz//xpcSTjFdyJk+g==} - '@next/env@15.5.9': - resolution: {integrity: sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==} - - '@next/swc-darwin-arm64@15.5.18': - resolution: {integrity: sha512-w0WvQf1n+txiwns/9pwIQteCJpZTbxzO2SE0FLcwuD4v0WEh1JPOjdyxWL21XwJsdpx8cFRjyzxzCS/siP7HcQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] + '@next/env@15.5.28': + resolution: {integrity: sha512-xxW5EBI8fMPuVTPBW7LL980IRbuDXlbkUAwp9DDhtb4Lnich3nJ13uYpvrX4VE74hWPf6AvHHAMmGCidcHjbfg==} - '@next/swc-darwin-arm64@15.5.7': - resolution: {integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==} + '@next/swc-darwin-arm64@15.5.28': + resolution: {integrity: sha512-dPoQYXcfSIqx5o+TOXVXO7kONK5qbtNRDeiTfII0bT3puGIT6VF5e0QwmxNZfEZ5Zety5f3m9P/p4xqwfiLlPg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.5.18': - resolution: {integrity: sha512-znn71QmDuxm+BOaglihMZfvyySMnNljkVIY5Z2TCssBmm+WqL6c19VhtH5ktFkHa8EZ2bnTUpcNcmNSQsg67og==} + '@next/swc-darwin-x64@15.5.28': + resolution: {integrity: sha512-RgCJ7buBivTH+6sddqaVm+/v8kwMHlFkobvdt3DfETutws5HrxnToMIWSN9X3MZ3aAi7BbKrGZZWUDQLEycXqw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-darwin-x64@15.5.7': - resolution: {integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@next/swc-linux-arm64-gnu@15.5.18': - resolution: {integrity: sha512-yPPe5MNL+igZUa+OsqQJisqSfh6oarIuA1Q0BDxljGJhRQyZeP+WRHh7rs/jZUGMh5aY0YdIjXZG0VohkKkUdw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-gnu@15.5.7': - resolution: {integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==} + '@next/swc-linux-arm64-gnu@15.5.28': + resolution: {integrity: sha512-OHXQe13olE59aKe++zHavGcJPh5SLHXi6Anret3BBeq1+qhSuOJDNAli/EDDfxs6UTqA4Qddo4uyYry2slyjiQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.5.18': - resolution: {integrity: sha512-glaCczEWIrHsokFZ3pP08U4BpKxwIdnT+txdOM32OBgpL9Yw4aqx8NejmgtZQZOdstQ5f0L3CasIZudzCuD+nw==} + '@next/swc-linux-arm64-musl@15.5.28': + resolution: {integrity: sha512-nTB7bB6vfn4ezCJNYP43ukt2o8L3+WxKF/sTcTxepdXsJh3SM9RhlU7wrZYbH7L4HO5M87dqDTwm8587vAkCiw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.5.7': - resolution: {integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-x64-gnu@15.5.18': - resolution: {integrity: sha512-oUfg2EgJmU3R0OCOWiokGFUTvZiPfXtriXiuF3YNxRoROCdgvTedHIzYoeKH34gsZxS/V7mHbfq2hpAHwhH1/A==} + '@next/swc-linux-x64-gnu@15.5.28': + resolution: {integrity: sha512-WXCfVI32rW3xCusoUX1RpZKtyChWU2Zwe27JUDmM3KrXwcDNc9vV4zEq0GKFAURnuQ/Ouo/XqPvB0yh445XZCg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-gnu@15.5.7': - resolution: {integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==} + '@next/swc-linux-x64-musl@15.5.28': + resolution: {integrity: sha512-Miq+NDb/HWsXuxseYxMM6fuEOQXgTziarkKIRpVKCn8W69cEfhQaQr+90pO+u4q2CbJR2wzXmUuCFyZaJs/Nng==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.5.18': - resolution: {integrity: sha512-JLxSP3KTd9iu/bvUMQxH7RJo9xKSHf55/6RPE4a6FTSZygGn7uvZbCej0AHXydwkggQGSD9UddSjwv6Xz5ESfA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-musl@15.5.7': - resolution: {integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-win32-arm64-msvc@15.5.18': - resolution: {integrity: sha512-ir1v7enP52K2HNz3tQQvwF+x7VNxBk1ciiZ18WBPvxf4C59IqdfmHPJYK3vH7rSxpuCVw/8C712wTXNAtEp+NA==} + '@next/swc-win32-arm64-msvc@15.5.28': + resolution: {integrity: sha512-5LR79lemgDlgxvG7MQJ+zHCkVcrUoQuO7CiIvq3I58vNW4goSOE2b+19Z6FujRWMouvni4gvudYFuFuNxolGWA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-arm64-msvc@15.5.7': - resolution: {integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@next/swc-win32-x64-msvc@15.5.18': - resolution: {integrity: sha512-LIu5me6QTANCd25E7I5uIEfvgQ06RK7tvHAbYo3zCb3VpxQEPvMcSpd87NwUABDT6MbGPdEGR5VRiK4PPTJhQg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@next/swc-win32-x64-msvc@15.5.7': - resolution: {integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==} + '@next/swc-win32-x64-msvc@15.5.28': + resolution: {integrity: sha512-GNipvXUYROSTf4PXEyH95FrWImIB5zdaK6uEOg0RP1/X2drnvoMwiBkJ0VWdzX7w3iiBm3y5g2TxkKDGVTOQcg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -5033,6 +5010,7 @@ packages: '@opentelemetry/propagation-utils@0.30.16': resolution: {integrity: sha512-ZVQ3Z/PQ+2GQlrBfbMMMT0U7MzvYZLCPP800+ooyaBqm4hMvuQHfP028gB9/db0mwkmyEAMad9houukUVxhwcw==} engines: {node: '>=14'} + deprecated: The use of process spans has been removed from Messaging Semantic Conventions. It is now recommended to connect pub/sub spans via Span Links. See https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/ for details. peerDependencies: '@opentelemetry/api': ^1.0.0 @@ -5051,12 +5029,14 @@ packages: '@opentelemetry/propagator-jaeger@1.19.0': resolution: {integrity: sha512-dedkOoTzKg+nYoLWCMp0Im+wo+XkTRW6aXhi8VQRtMW/9SNJGOllCJSu8llToLxMDF0+6zu7OCrKkevAof2tew==} engines: {node: '>=14'} + deprecated: Package no longer supported. See https://github.com/open-telemetry/opentelemetry-js/pull/7077 peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/propagator-jaeger@1.28.0': resolution: {integrity: sha512-wKJ94+s8467CnIRgoSRh0yXm/te0QMOwTq9J01PfG/RzYZvlvN8aRisN2oZ9SznB45dDGnMj3BhUlchSA9cEKA==} engines: {node: '>=14'} + deprecated: Package no longer supported. See https://github.com/open-telemetry/opentelemetry-js/pull/7077 peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' @@ -5172,36 +5152,42 @@ packages: '@opentelemetry/sdk-trace-base@1.19.0': resolution: {integrity: sha512-+IRvUm+huJn2KqfFW3yW/cjvRwJ8Q7FzYHoUNx5Fr0Lws0LxjMJG1uVB8HDpLwm7mg5XXH2M5MF+0jj5cM8BpQ==} engines: {node: '>=14'} + deprecated: Use @opentelemetry/sdk-trace package peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/sdk-trace-base@1.28.0': resolution: {integrity: sha512-ceUVWuCpIao7Y5xE02Xs3nQi0tOGmMea17ecBdwtCvdo9ekmO+ijc9RFDgfifMl7XCBf41zne/1POM3LqSTZDA==} engines: {node: '>=14'} + deprecated: Use @opentelemetry/sdk-trace package peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/sdk-trace-base@2.0.1': resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} engines: {node: ^18.19.0 || >=20.6.0} + deprecated: Use @opentelemetry/sdk-trace package peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/sdk-trace-base@2.7.0': resolution: {integrity: sha512-Yg9zEXJB50DLVLpsKPk7NmNqlPlS+OvqhJGh0A8oawIOTPOwlm4eXs9BMJV7L79lvEwI+dWtAj+YjTyddV336A==} engines: {node: ^18.19.0 || >=20.6.0} + deprecated: Use @opentelemetry/sdk-trace package peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/sdk-trace-node@1.19.0': resolution: {integrity: sha512-TCiEq/cUjM15RFqBRwWomTVbOqzndWL4ILa7ZCu0zbjU1/XY6AgHkgrgAc7vGP6TjRqH4Xryuglol8tcIfbBUQ==} engines: {node: '>=14'} + deprecated: Use @opentelemetry/sdk-trace package peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/sdk-trace-node@1.28.0': resolution: {integrity: sha512-N0sYfYXvHpP0FNIyc+UfhLnLSTOuZLytV0qQVrDWIlABeD/DWJIGttS7nYeR14gQLXch0M1DW8zm3VeN6Opwtg==} engines: {node: '>=14'} + deprecated: Use @opentelemetry/sdk-trace package peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' @@ -5245,12 +5231,15 @@ packages: '@oslojs/asn1@1.0.0': resolution: {integrity: sha512-zw/wn0sj0j0QKbIXfIlnEcTviaCzYOY3V5rAyjR6YtOByFtJiT574+8p9Wlach0lZH9fddD4yb9laEAIl4vXQA==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@oslojs/binary@1.0.0': resolution: {integrity: sha512-9RCU6OwXU6p67H4NODbuxv2S3eenuQ4/WFLrsq+K/k682xrznH5EVWA7N4VFk9VYVcbFtKqur5YQQZc0ySGhsQ==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@oslojs/crypto@1.0.1': resolution: {integrity: sha512-7n08G8nWjAr/Yu3vu9zzrd0L9XnrJfpMioQcvCMxBIiF5orECHe5/3J0jmXRVvgfqMm/+4oxlQ+Sq39COYLcNQ==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} @@ -6971,6 +6960,7 @@ packages: '@smithy/util-retry@4.3.6': resolution: {integrity: sha512-p6/FO1n2KxMeQyna067i0uJ6TSbb165ZhnRtCpWh4Foxqbfc6oW+XITaL8QkFJj3KFnDe2URt4gOhgU06EP9ew==} engines: {node: '>=18.0.0'} + deprecated: '@smithy/util-retry v4.3.6 contains a bug in Adaptive Retry, see https://github.com/smithy-lang/smithy-typescript/issues/1993. Upgrade to 4.3.7+' '@smithy/util-stream@4.2.4': resolution: {integrity: sha512-vSKnvNZX2BXzl0U2RgCLOwWaAP9x/ddd/XobPK02pCbzRm5s55M53uwb1rl/Ts7RXZvdJZerPkA+en2FDghLuQ==} @@ -7955,50 +7945,50 @@ packages: '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260430.1': - resolution: {integrity: sha512-1Rk5JoMlmlF4GzeNxQmpaZSSPFa056DCrGLjhXwVIqRf8+pGNKKxyD2ugGSyOeLShqYb1XUoE9LhsAhdh1xgSA==} + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260707.2': + resolution: {integrity: sha512-wny2pgKjGbiZtnOIHVa3tXC1UfDqxNEFzyPGmiqybedG8hipG2Nfp0l5UxbaKCjkLacUpH/W5bP2hBOMVhCOzg==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [darwin] - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260430.1': - resolution: {integrity: sha512-wjXJtELfI0QIYxGCqqKMR3DonPUlMP4aWOYRPiN5ylDtdV+OqCC16zvH7C+No7xvlf8dDxlV1ZTyuRCWL6CQmw==} + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260707.2': + resolution: {integrity: sha512-Afc7M5zOwo+GpfcYwz5Z8HMB2tPVsui7nNIqEuuFB73MPdVqNn/Wmpe4tP4MRri0AtJnJknoHBaTJ/VDAp/Jhw==} engines: {node: '>=16.20.0'} cpu: [x64] os: [darwin] - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260430.1': - resolution: {integrity: sha512-PeCFDB1glivpkqqKsQJ1RrM4f5B1yXzXFF+eKwgEZ+evcQ3N+BgeR7BpuRhOpHU9ixJchKjU1bXgcHOAaM+Rkw==} + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260707.2': + resolution: {integrity: sha512-iITBa2WjjTI5N9t5l7Z4KoOSI+2zBlhbvFzsD/f8qX8QoKjz/Y4DPyBDgezYi8nkqjjksbgSOJ3/ykzhwrB9cg==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [linux] - '@typescript/native-preview-linux-arm@7.0.0-dev.20260430.1': - resolution: {integrity: sha512-3eqYkqy1XpbIJC1XkGbkwAvTtSCw6dSjYzJaw9bvow4fS1totTFZP/2K9ecXQ3gIZaPS4Ome/SpkZHl1cy9eZA==} + '@typescript/native-preview-linux-arm@7.0.0-dev.20260707.2': + resolution: {integrity: sha512-hJm/UOqZTr9FHmR7uNm8VGX4oKtfWk0Jem0zPeJFNC8ckGUfSBueyiEYMZB+XmRc1aG4x1E46y3CplP4CLHvGQ==} engines: {node: '>=16.20.0'} cpu: [arm] os: [linux] - '@typescript/native-preview-linux-x64@7.0.0-dev.20260430.1': - resolution: {integrity: sha512-Eg7nbRV57ayq0Pjuott/36UbQlVlpz2YRVLM5h8RyXx6SwvgrdYxNv/1zULLB0UlWdyKkK3bXILmR8YmNvbl+g==} + '@typescript/native-preview-linux-x64@7.0.0-dev.20260707.2': + resolution: {integrity: sha512-du0dzi6y97Po5vDNdPJTyyijHCpaS22JLRnKZEJXBDaO9gCIymOv/5QQokFRuOlQm0bWl3i9PF4OVdGP6uAOQA==} engines: {node: '>=16.20.0'} cpu: [x64] os: [linux] - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260430.1': - resolution: {integrity: sha512-0LAjufJKUZnHmp0bxlndjphDQlIeUXA0czZCrKENtKySeGMXrM9PAFtSx94ldWVXDTZ9ZP1r+FxbIvP9pRORzA==} + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260707.2': + resolution: {integrity: sha512-SsAwfhyHJ1akgBc+99z4+hwdbHsdWaKB8EwCNIMA6JfSLMeUjffrYvxu+vfMyxVtOVOz7RrRXRoiDiu4a2sCtg==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [win32] - '@typescript/native-preview-win32-x64@7.0.0-dev.20260430.1': - resolution: {integrity: sha512-FvLWX7d3b/IhL0656tnjep7dOMnI7CPrg+5oI1MKIY74qgvR+8VRo6aGj0IRCwtAJeklpxBpljEcIGuS5Yc/pQ==} + '@typescript/native-preview-win32-x64@7.0.0-dev.20260707.2': + resolution: {integrity: sha512-DL4u27stv0fo71sVhOzHSwE+YMZsbBijVI+kg5dLDLilSH79WFTJ8RSQ46vJrCMt+Gjlv/JOZP1PuLJDfioYeQ==} engines: {node: '>=16.20.0'} cpu: [x64] os: [win32] - '@typescript/native-preview@7.0.0-dev.20260430.1': - resolution: {integrity: sha512-HHk3tPpzPKqHY4AHMxGK6i960Dd1kIvnSnT3mzD1hNO/sUVG2YdWvWBIActGkRnKS94AZBpekOr1bQP7O2OwIg==} + '@typescript/native-preview@7.0.0-dev.20260707.2': + resolution: {integrity: sha512-oUGp+Rep/hqMhPunyinsALUwSlzHINSxitifPiSaeqoKOKD2OlR9NE3TaPqwsl4NlGslsOSUXI1JotWQzpYCPg==} engines: {node: '>=16.20.0'} hasBin: true @@ -8016,6 +8006,7 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher '@uppy/audio@2.2.2': resolution: {integrity: sha512-63pwCo+JbJyxB1V/YK59cMSMFi8+g9Mfew6awfJFeu4tAK0HHfZtUk5+fUdZJRdCf4eIwBAiwixBL8Q4BOes+Q==} @@ -8916,10 +8907,6 @@ packages: color@3.2.1: resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} - color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - colorette@2.0.19: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} @@ -9409,6 +9396,10 @@ packages: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} @@ -10761,7 +10752,6 @@ packages: resolution: {integrity: sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==} engines: {node: '>=8.17.0'} hasBin: true - bundledDependencies: [] jsonfile@6.2.0: resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} @@ -11638,29 +11628,8 @@ packages: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - next@15.5.18: - resolution: {integrity: sha512-eKL8zUJkX9Y5lE+RX/2YJoItVdGlIscyVyboeD9wSpp0PaGqjoA4tTpT2qPqz9ax+5IzGESyLSeZ/RCwbSZ2uQ==} - engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.51.1 - babel-plugin-react-compiler: '*' - react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - '@playwright/test': - optional: true - babel-plugin-react-compiler: - optional: true - sass: - optional: true - - next@15.5.9: - resolution: {integrity: sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg==} + next@15.5.28: + resolution: {integrity: sha512-JjhLBBY1PNnuwPtcZ7t8yxVeJVYvD2Jyp633J+gRCNbzSt7N0E+xqCf6uQiff3+3qmUkwcF/ksfSsK1xsZ76Tw==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: @@ -12977,6 +12946,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + sentence-case@2.1.1: resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==} @@ -13012,9 +12986,14 @@ packages: shallow-equal@3.1.0: resolution: {integrity: sha512-pfVOw8QZIXpMbhBWvzBISicvToTiM5WBF1EeAUZDDSb5Dt29yl4AYbyywbJFSEsRUMr7gJaxqCdr4L3tQf9wVg==} - sharp@0.34.3: - resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.35.5: + resolution: {integrity: sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==} + 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==} @@ -13601,6 +13580,7 @@ packages: tsconfck@3.1.6: resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} engines: {node: ^18 || >=20} + deprecated: unmaintained hasBin: true peerDependencies: typescript: ^5.0.0 @@ -16505,6 +16485,11 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.11.3': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.4.5': dependencies: tslib: 2.8.1 @@ -16786,12 +16771,12 @@ snapshots: dependencies: tslib: 2.8.1 - '@fortedigital/nextjs-cache-handler@1.2.0(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(redis@4.7.0)': + '@fortedigital/nextjs-cache-handler@1.2.0(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(redis@4.7.0)': dependencies: - '@neshca/cache-handler': 1.9.0(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(redis@4.7.0) + '@neshca/cache-handler': 1.9.0(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(redis@4.7.0) cluster-key-slot: 1.1.2 lru-cache: 11.1.0 - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) redis: 4.7.0 optionalDependencies: '@rollup/rollup-linux-x64-gnu': 4.46.4 @@ -16902,90 +16887,111 @@ snapshots: dependencies: react: 19.2.3 - '@img/sharp-darwin-arm64@0.34.3': + '@img/colour@1.1.0': + optional: true + + '@img/sharp-darwin-arm64@0.35.5': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.0 + '@img/sharp-libvips-darwin-arm64': 1.3.4 optional: true - '@img/sharp-darwin-x64@0.34.3': + '@img/sharp-darwin-x64@0.35.5': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.0 + '@img/sharp-libvips-darwin-x64': 1.3.4 + optional: true + + '@img/sharp-freebsd-wasm32@0.35.5': + dependencies: + '@img/sharp-wasm32': 0.35.5 optional: true - '@img/sharp-libvips-darwin-arm64@1.2.0': + '@img/sharp-libvips-darwin-arm64@1.3.4': optional: true - '@img/sharp-libvips-darwin-x64@1.2.0': + '@img/sharp-libvips-darwin-x64@1.3.4': optional: true - '@img/sharp-libvips-linux-arm64@1.2.0': + '@img/sharp-libvips-linux-arm64@1.3.4': optional: true - '@img/sharp-libvips-linux-arm@1.2.0': + '@img/sharp-libvips-linux-arm@1.3.4': optional: true - '@img/sharp-libvips-linux-ppc64@1.2.0': + '@img/sharp-libvips-linux-ppc64@1.3.4': optional: true - '@img/sharp-libvips-linux-s390x@1.2.0': + '@img/sharp-libvips-linux-riscv64@1.3.4': optional: true - '@img/sharp-libvips-linux-x64@1.2.0': + '@img/sharp-libvips-linux-s390x@1.3.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.0': + '@img/sharp-libvips-linux-x64@1.3.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.0': + '@img/sharp-libvips-linuxmusl-arm64@1.3.4': optional: true - '@img/sharp-linux-arm64@0.34.3': + '@img/sharp-libvips-linuxmusl-x64@1.3.4': + optional: true + + '@img/sharp-linux-arm64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.3.4 + optional: true + + '@img/sharp-linux-arm@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.0 + '@img/sharp-libvips-linux-arm': 1.3.4 optional: true - '@img/sharp-linux-arm@0.34.3': + '@img/sharp-linux-ppc64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.0 + '@img/sharp-libvips-linux-ppc64': 1.3.4 optional: true - '@img/sharp-linux-ppc64@0.34.3': + '@img/sharp-linux-riscv64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.0 + '@img/sharp-libvips-linux-riscv64': 1.3.4 optional: true - '@img/sharp-linux-s390x@0.34.3': + '@img/sharp-linux-s390x@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.0 + '@img/sharp-libvips-linux-s390x': 1.3.4 optional: true - '@img/sharp-linux-x64@0.34.3': + '@img/sharp-linux-x64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.0 + '@img/sharp-libvips-linux-x64': 1.3.4 optional: true - '@img/sharp-linuxmusl-arm64@0.34.3': + '@img/sharp-linuxmusl-arm64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.4 optional: true - '@img/sharp-linuxmusl-x64@0.34.3': + '@img/sharp-linuxmusl-x64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.0 + '@img/sharp-libvips-linuxmusl-x64': 1.3.4 optional: true - '@img/sharp-wasm32@0.34.3': + '@img/sharp-wasm32@0.35.5': dependencies: - '@emnapi/runtime': 1.4.5 + '@emnapi/runtime': 1.11.3 optional: true - '@img/sharp-win32-arm64@0.34.3': + '@img/sharp-webcontainers-wasm32@0.35.5': + dependencies: + '@img/sharp-wasm32': 0.35.5 optional: true - '@img/sharp-win32-ia32@0.34.3': + '@img/sharp-win32-arm64@0.35.5': optional: true - '@img/sharp-win32-x64@0.34.3': + '@img/sharp-win32-ia32@0.35.5': + optional: true + + '@img/sharp-win32-x64@0.35.5': optional: true '@inquirer/confirm@5.1.15(@types/node@20.19.11)': @@ -17484,70 +17490,44 @@ snapshots: '@neoconfetti/react@1.0.0': {} - '@neshca/cache-handler@1.9.0(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(redis@4.7.0)': + '@neshca/cache-handler@1.9.0(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(redis@4.7.0)': dependencies: cluster-key-slot: 1.1.2 lru-cache: 10.4.3 - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) redis: 4.7.0 - '@next/env@15.5.0': {} - '@next/env@15.5.18': {} - '@next/env@15.5.9': {} + '@next/env@15.5.28': {} - '@next/swc-darwin-arm64@15.5.18': + '@next/swc-darwin-arm64@15.5.28': optional: true - '@next/swc-darwin-arm64@15.5.7': + '@next/swc-darwin-x64@15.5.28': optional: true - '@next/swc-darwin-x64@15.5.18': + '@next/swc-linux-arm64-gnu@15.5.28': optional: true - '@next/swc-darwin-x64@15.5.7': + '@next/swc-linux-arm64-musl@15.5.28': optional: true - '@next/swc-linux-arm64-gnu@15.5.18': + '@next/swc-linux-x64-gnu@15.5.28': optional: true - '@next/swc-linux-arm64-gnu@15.5.7': + '@next/swc-linux-x64-musl@15.5.28': optional: true - '@next/swc-linux-arm64-musl@15.5.18': + '@next/swc-win32-arm64-msvc@15.5.28': optional: true - '@next/swc-linux-arm64-musl@15.5.7': + '@next/swc-win32-x64-msvc@15.5.28': optional: true - '@next/swc-linux-x64-gnu@15.5.18': - optional: true - - '@next/swc-linux-x64-gnu@15.5.7': - optional: true - - '@next/swc-linux-x64-musl@15.5.18': - optional: true - - '@next/swc-linux-x64-musl@15.5.7': - optional: true - - '@next/swc-win32-arm64-msvc@15.5.18': - optional: true - - '@next/swc-win32-arm64-msvc@15.5.7': - optional: true - - '@next/swc-win32-x64-msvc@15.5.18': - optional: true - - '@next/swc-win32-x64-msvc@15.5.7': - optional: true - - '@nimpl/getters@2.2.0(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@nimpl/getters@2.2.0(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -21144,7 +21124,7 @@ snapshots: '@sentry/core@10.50.0': {} - '@sentry/nextjs@10.5.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9))': + '@sentry/nextjs@10.5.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.36.0 @@ -21157,7 +21137,7 @@ snapshots: '@sentry/vercel-edge': 10.5.0 '@sentry/webpack-plugin': 4.1.1(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9)) chalk: 3.0.0 - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) resolve: 1.22.8 rollup: 4.46.4 stacktrace-parser: 0.1.11 @@ -22071,18 +22051,18 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@storybook/nextjs-vite@9.1.2(@babel/core@7.28.3)(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.46.4)(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@storybook/nextjs-vite@9.1.2(@babel/core@7.28.3)(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.46.4)(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@storybook/builder-vite': 9.1.2(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@storybook/react': 9.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(typescript@5.9.2) '@storybook/react-vite': 9.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.46.4)(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) storybook: 9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) styled-jsx: 5.1.6(@babel/core@7.28.3)(react@19.2.3) vite: 6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vite-plugin-storybook-nextjs: 2.0.6(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + vite-plugin-storybook-nextjs: 2.0.6(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) optionalDependencies: typescript: 5.9.2 transitivePeerDependencies: @@ -22466,10 +22446,10 @@ snapshots: '@types/node': 24.3.0 zod: 3.25.76 - '@ts-rest/next@3.51.0(@ts-rest/core@3.51.0(@types/node@20.19.11)(zod@3.25.76))(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(zod@3.25.76)': + '@ts-rest/next@3.51.0(@ts-rest/core@3.51.0(@types/node@20.19.11)(zod@3.25.76))(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(zod@3.25.76)': dependencies: '@ts-rest/core': 3.51.0(@types/node@20.19.11)(zod@3.25.76) - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) optionalDependencies: zod: 3.25.76 @@ -22488,13 +22468,13 @@ snapshots: optionalDependencies: zod: 3.25.76 - '@ts-rest/serverless@3.51.0(@ts-rest/core@3.51.0(@types/node@20.19.11)(zod@3.25.76))(@types/aws-lambda@8.10.145)(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(zod@3.25.76)': + '@ts-rest/serverless@3.51.0(@ts-rest/core@3.51.0(@types/node@20.19.11)(zod@3.25.76))(@types/aws-lambda@8.10.145)(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(zod@3.25.76)': dependencies: '@ts-rest/core': 3.51.0(@types/node@20.19.11)(zod@3.25.76) itty-router: 5.0.22 optionalDependencies: '@types/aws-lambda': 8.10.145 - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) zod: 3.25.76 '@ts-rest/serverless@3.52.1(@ts-rest/core@3.51.0(@types/node@22.17.2)(zod@3.25.76))(@types/aws-lambda@8.10.145)(zod@3.25.76)': @@ -22972,36 +22952,36 @@ snapshots: '@types/uuid@9.0.8': {} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260430.1': + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260707.2': optional: true - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260430.1': + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260707.2': optional: true - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260430.1': + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260707.2': optional: true - '@typescript/native-preview-linux-arm@7.0.0-dev.20260430.1': + '@typescript/native-preview-linux-arm@7.0.0-dev.20260707.2': optional: true - '@typescript/native-preview-linux-x64@7.0.0-dev.20260430.1': + '@typescript/native-preview-linux-x64@7.0.0-dev.20260707.2': optional: true - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260430.1': + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260707.2': optional: true - '@typescript/native-preview-win32-x64@7.0.0-dev.20260430.1': + '@typescript/native-preview-win32-x64@7.0.0-dev.20260707.2': optional: true - '@typescript/native-preview@7.0.0-dev.20260430.1': + '@typescript/native-preview@7.0.0-dev.20260707.2': optionalDependencies: - '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260430.1 - '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260430.1 - '@typescript/native-preview-linux-arm': 7.0.0-dev.20260430.1 - '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260430.1 - '@typescript/native-preview-linux-x64': 7.0.0-dev.20260430.1 - '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260430.1 - '@typescript/native-preview-win32-x64': 7.0.0-dev.20260430.1 + '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260707.2 + '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260707.2 + '@typescript/native-preview-linux-arm': 7.0.0-dev.20260707.2 + '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260707.2 + '@typescript/native-preview-linux-x64': 7.0.0-dev.20260707.2 + '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260707.2 + '@typescript/native-preview-win32-x64': 7.0.0-dev.20260707.2 '@typescript/vfs@1.6.1(typescript@5.9.2)': dependencies: @@ -24108,12 +24088,6 @@ snapshots: color-convert: 1.9.3 color-string: 1.9.1 - color@4.2.3: - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - optional: true - colorette@2.0.19: {} colorette@2.0.20: {} @@ -24606,6 +24580,9 @@ snapshots: detect-libc@2.0.4: {} + detect-libc@2.1.2: + optional: true + detect-node-es@1.1.0: {} devlop@1.1.0: @@ -27463,9 +27440,35 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next@15.5.28(@babel/core@7.24.5)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - '@next/env': 15.5.18 + '@next/env': 15.5.28 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001735 + postcss: 8.4.31 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + styled-jsx: 5.1.6(@babel/core@7.24.5)(react@19.2.3) + optionalDependencies: + '@next/swc-darwin-arm64': 15.5.28 + '@next/swc-darwin-x64': 15.5.28 + '@next/swc-linux-arm64-gnu': 15.5.28 + '@next/swc-linux-arm64-musl': 15.5.28 + '@next/swc-linux-x64-gnu': 15.5.28 + '@next/swc-linux-x64-musl': 15.5.28 + '@next/swc-win32-arm64-msvc': 15.5.28 + '@next/swc-win32-x64-msvc': 15.5.28 + '@opentelemetry/api': 1.9.1 + '@playwright/test': 1.53.0 + sharp: 0.35.5(@types/node@20.19.11) + transitivePeerDependencies: + - '@babel/core' + - '@types/node' + - babel-plugin-macros + + next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + '@next/env': 15.5.28 '@swc/helpers': 0.5.15 caniuse-lite: 1.0.30001735 postcss: 8.4.31 @@ -27473,24 +27476,25 @@ snapshots: react-dom: 19.2.3(react@19.2.3) styled-jsx: 5.1.6(@babel/core@7.28.3)(react@19.2.3) optionalDependencies: - '@next/swc-darwin-arm64': 15.5.18 - '@next/swc-darwin-x64': 15.5.18 - '@next/swc-linux-arm64-gnu': 15.5.18 - '@next/swc-linux-arm64-musl': 15.5.18 - '@next/swc-linux-x64-gnu': 15.5.18 - '@next/swc-linux-x64-musl': 15.5.18 - '@next/swc-win32-arm64-msvc': 15.5.18 - '@next/swc-win32-x64-msvc': 15.5.18 + '@next/swc-darwin-arm64': 15.5.28 + '@next/swc-darwin-x64': 15.5.28 + '@next/swc-linux-arm64-gnu': 15.5.28 + '@next/swc-linux-arm64-musl': 15.5.28 + '@next/swc-linux-x64-gnu': 15.5.28 + '@next/swc-linux-x64-musl': 15.5.28 + '@next/swc-win32-arm64-msvc': 15.5.28 + '@next/swc-win32-x64-msvc': 15.5.28 '@opentelemetry/api': 1.9.0 '@playwright/test': 1.53.0 - sharp: 0.34.3 + sharp: 0.35.5(@types/node@20.19.11) transitivePeerDependencies: - '@babel/core' + - '@types/node' - babel-plugin-macros - next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - '@next/env': 15.5.18 + '@next/env': 15.5.28 '@swc/helpers': 0.5.15 caniuse-lite: 1.0.30001735 postcss: 8.4.31 @@ -27498,53 +27502,55 @@ snapshots: react-dom: 19.2.3(react@19.2.3) styled-jsx: 5.1.6(@babel/core@7.28.3)(react@19.2.3) optionalDependencies: - '@next/swc-darwin-arm64': 15.5.18 - '@next/swc-darwin-x64': 15.5.18 - '@next/swc-linux-arm64-gnu': 15.5.18 - '@next/swc-linux-arm64-musl': 15.5.18 - '@next/swc-linux-x64-gnu': 15.5.18 - '@next/swc-linux-x64-musl': 15.5.18 - '@next/swc-win32-arm64-msvc': 15.5.18 - '@next/swc-win32-x64-msvc': 15.5.18 + '@next/swc-darwin-arm64': 15.5.28 + '@next/swc-darwin-x64': 15.5.28 + '@next/swc-linux-arm64-gnu': 15.5.28 + '@next/swc-linux-arm64-musl': 15.5.28 + '@next/swc-linux-x64-gnu': 15.5.28 + '@next/swc-linux-x64-musl': 15.5.28 + '@next/swc-win32-arm64-msvc': 15.5.28 + '@next/swc-win32-x64-msvc': 15.5.28 '@opentelemetry/api': 1.9.1 '@playwright/test': 1.53.0 - sharp: 0.34.3 + sharp: 0.35.5(@types/node@20.19.11) transitivePeerDependencies: - '@babel/core' + - '@types/node' - babel-plugin-macros - next@15.5.9(@babel/core@7.24.5)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@24.3.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - '@next/env': 15.5.9 + '@next/env': 15.5.28 '@swc/helpers': 0.5.15 caniuse-lite: 1.0.30001735 postcss: 8.4.31 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - styled-jsx: 5.1.6(@babel/core@7.24.5)(react@19.2.3) + styled-jsx: 5.1.6(@babel/core@7.28.3)(react@19.2.3) optionalDependencies: - '@next/swc-darwin-arm64': 15.5.7 - '@next/swc-darwin-x64': 15.5.7 - '@next/swc-linux-arm64-gnu': 15.5.7 - '@next/swc-linux-arm64-musl': 15.5.7 - '@next/swc-linux-x64-gnu': 15.5.7 - '@next/swc-linux-x64-musl': 15.5.7 - '@next/swc-win32-arm64-msvc': 15.5.7 - '@next/swc-win32-x64-msvc': 15.5.7 + '@next/swc-darwin-arm64': 15.5.28 + '@next/swc-darwin-x64': 15.5.28 + '@next/swc-linux-arm64-gnu': 15.5.28 + '@next/swc-linux-arm64-musl': 15.5.28 + '@next/swc-linux-x64-gnu': 15.5.28 + '@next/swc-linux-x64-musl': 15.5.28 + '@next/swc-win32-arm64-msvc': 15.5.28 + '@next/swc-win32-x64-msvc': 15.5.28 '@opentelemetry/api': 1.9.1 '@playwright/test': 1.53.0 - sharp: 0.34.3 + sharp: 0.35.5(@types/node@24.3.0) transitivePeerDependencies: - '@babel/core' + - '@types/node' - babel-plugin-macros - nextra-theme-docs@4.3.0(@types/react@19.1.10)(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(nextra@4.3.0(acorn@8.15.0)(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(use-sync-external-store@1.5.0(react@19.2.3)): + nextra-theme-docs@4.3.0(@types/react@19.1.10)(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(nextra@4.3.0(acorn@8.15.0)(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(use-sync-external-store@1.5.0(react@19.2.3)): dependencies: '@headlessui/react': 2.2.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) next-themes: 0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - nextra: 4.3.0(acorn@8.15.0)(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2) + nextra: 4.3.0(acorn@8.15.0)(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2) react: 19.2.3 react-compiler-runtime: 19.1.0-rc.2(react@19.2.3) react-dom: 19.2.3(react@19.2.3) @@ -27556,7 +27562,7 @@ snapshots: - immer - use-sync-external-store - nextra@4.3.0(acorn@8.15.0)(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2): + nextra@4.3.0(acorn@8.15.0)(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2): dependencies: '@formatjs/intl-localematcher': 0.6.1 '@headlessui/react': 2.2.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -27577,7 +27583,7 @@ snapshots: mdast-util-gfm: 3.1.0 mdast-util-to-hast: 13.2.0 negotiator: 1.0.0 - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: 19.2.3 react-compiler-runtime: 19.1.0-rc.2(react@19.2.3) react-dom: 19.2.3(react@19.2.3) @@ -27690,19 +27696,19 @@ snapshots: npm-to-yarn@3.0.1: {} - nuqs@2.4.3(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3): + nuqs@2.4.3(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3): dependencies: mitt: 3.0.1 react: 19.2.3 optionalDependencies: - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - nuqs@2.4.3(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3): + nuqs@2.4.3(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@24.3.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3): dependencies: mitt: 3.0.1 react: 19.2.3 optionalDependencies: - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@24.3.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nwsapi@2.2.21: {} @@ -28542,7 +28548,7 @@ snapshots: react: 19.2.3 scheduler: 0.27.0 - react-email@3.0.4(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-email@3.0.4(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: '@babel/core': 7.24.5 '@babel/parser': 7.24.5 @@ -28554,13 +28560,14 @@ snapshots: glob: 10.5.0 log-symbols: 4.1.0 mime-types: 2.1.35 - next: 15.5.9(@babel/core@7.24.5)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.24.5)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) normalize-path: 3.0.0 ora: 5.4.1 socket.io: 4.8.0 transitivePeerDependencies: - '@opentelemetry/api' - '@playwright/test' + - '@types/node' - babel-plugin-macros - babel-plugin-react-compiler - bufferutil @@ -29244,6 +29251,9 @@ snapshots: semver@7.7.2: {} + semver@7.8.5: + optional: true + sentence-case@2.1.1: dependencies: no-case: 2.3.2 @@ -29310,34 +29320,72 @@ snapshots: shallow-equal@3.1.0: {} - sharp@0.34.3: + sharp@0.35.5(@types/node@20.19.11): dependencies: - color: 4.2.3 - detect-libc: 2.0.4 - semver: 7.7.2 + '@img/colour': 1.1.0 + detect-libc: 2.1.2 + semver: 7.8.5 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.3 - '@img/sharp-darwin-x64': 0.34.3 - '@img/sharp-libvips-darwin-arm64': 1.2.0 - '@img/sharp-libvips-darwin-x64': 1.2.0 - '@img/sharp-libvips-linux-arm': 1.2.0 - '@img/sharp-libvips-linux-arm64': 1.2.0 - '@img/sharp-libvips-linux-ppc64': 1.2.0 - '@img/sharp-libvips-linux-s390x': 1.2.0 - '@img/sharp-libvips-linux-x64': 1.2.0 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 - '@img/sharp-libvips-linuxmusl-x64': 1.2.0 - '@img/sharp-linux-arm': 0.34.3 - '@img/sharp-linux-arm64': 0.34.3 - '@img/sharp-linux-ppc64': 0.34.3 - '@img/sharp-linux-s390x': 0.34.3 - '@img/sharp-linux-x64': 0.34.3 - '@img/sharp-linuxmusl-arm64': 0.34.3 - '@img/sharp-linuxmusl-x64': 0.34.3 - '@img/sharp-wasm32': 0.34.3 - '@img/sharp-win32-arm64': 0.34.3 - '@img/sharp-win32-ia32': 0.34.3 - '@img/sharp-win32-x64': 0.34.3 + '@img/sharp-darwin-arm64': 0.35.5 + '@img/sharp-darwin-x64': 0.35.5 + '@img/sharp-freebsd-wasm32': 0.35.5 + '@img/sharp-libvips-darwin-arm64': 1.3.4 + '@img/sharp-libvips-darwin-x64': 1.3.4 + '@img/sharp-libvips-linux-arm': 1.3.4 + '@img/sharp-libvips-linux-arm64': 1.3.4 + '@img/sharp-libvips-linux-ppc64': 1.3.4 + '@img/sharp-libvips-linux-riscv64': 1.3.4 + '@img/sharp-libvips-linux-s390x': 1.3.4 + '@img/sharp-libvips-linux-x64': 1.3.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.4 + '@img/sharp-libvips-linuxmusl-x64': 1.3.4 + '@img/sharp-linux-arm': 0.35.5 + '@img/sharp-linux-arm64': 0.35.5 + '@img/sharp-linux-ppc64': 0.35.5 + '@img/sharp-linux-riscv64': 0.35.5 + '@img/sharp-linux-s390x': 0.35.5 + '@img/sharp-linux-x64': 0.35.5 + '@img/sharp-linuxmusl-arm64': 0.35.5 + '@img/sharp-linuxmusl-x64': 0.35.5 + '@img/sharp-webcontainers-wasm32': 0.35.5 + '@img/sharp-win32-arm64': 0.35.5 + '@img/sharp-win32-ia32': 0.35.5 + '@img/sharp-win32-x64': 0.35.5 + '@types/node': 20.19.11 + optional: true + + sharp@0.35.5(@types/node@24.3.0): + dependencies: + '@img/colour': 1.1.0 + detect-libc: 2.1.2 + semver: 7.8.5 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.35.5 + '@img/sharp-darwin-x64': 0.35.5 + '@img/sharp-freebsd-wasm32': 0.35.5 + '@img/sharp-libvips-darwin-arm64': 1.3.4 + '@img/sharp-libvips-darwin-x64': 1.3.4 + '@img/sharp-libvips-linux-arm': 1.3.4 + '@img/sharp-libvips-linux-arm64': 1.3.4 + '@img/sharp-libvips-linux-ppc64': 1.3.4 + '@img/sharp-libvips-linux-riscv64': 1.3.4 + '@img/sharp-libvips-linux-s390x': 1.3.4 + '@img/sharp-libvips-linux-x64': 1.3.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.4 + '@img/sharp-libvips-linuxmusl-x64': 1.3.4 + '@img/sharp-linux-arm': 0.35.5 + '@img/sharp-linux-arm64': 0.35.5 + '@img/sharp-linux-ppc64': 0.35.5 + '@img/sharp-linux-riscv64': 0.35.5 + '@img/sharp-linux-s390x': 0.35.5 + '@img/sharp-linux-x64': 0.35.5 + '@img/sharp-linuxmusl-arm64': 0.35.5 + '@img/sharp-linuxmusl-x64': 0.35.5 + '@img/sharp-webcontainers-wasm32': 0.35.5 + '@img/sharp-win32-arm64': 0.35.5 + '@img/sharp-win32-ia32': 0.35.5 + '@img/sharp-win32-x64': 0.35.5 + '@types/node': 24.3.0 optional: true shebang-command@2.0.0: @@ -30284,9 +30332,9 @@ snapshots: dequal: 2.0.3 react: 19.2.3 - use-next-sse@0.2.3(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + use-next-sse@0.2.3(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -30384,13 +30432,13 @@ snapshots: - tsx - yaml - vite-plugin-storybook-nextjs@2.0.6(next@15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): + vite-plugin-storybook-nextjs@2.0.6(next@15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): dependencies: - '@next/env': 15.5.0 + '@next/env': 15.5.18 image-size: 2.0.2 magic-string: 0.30.17 module-alias: 2.2.3 - next: 15.5.18(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.28(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(@types/node@20.19.11)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) storybook: 9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) ts-dedent: 2.2.0 vite: 6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 41c96a268b..6f0450fa39 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -10,7 +10,7 @@ packages: # A catalog is used to line up the package versions across workspaces catalog: - next: ^15.5.18 + next: ^15.5.28 katex: ^0.16.18 tailwindcss: 4.1.17 tailwind-merge: ^3.4.0 From 824f6aa4fdbccbf6bd1a2ce1ed162167533b4e22 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 22 Oct 2026 12:45:33 +0200 Subject: [PATCH 2/3] fix: switch minio images to pgsty fork, official ones are gone --- docker-compose.base.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker-compose.base.yml b/docker-compose.base.yml index 55f8753514..992266799d 100644 --- a/docker-compose.base.yml +++ b/docker-compose.base.yml @@ -1,6 +1,7 @@ services: minio: - image: minio/minio:RELEASE.2025-04-22T22-12-26Z + # minio/minio is gone from docker hub and quay; pgsty/minio is the maintained community fork + image: pgsty/minio:RELEASE.2026-08-04T00-00-00Z healthcheck: test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/ready" ] interval: 1m30s @@ -16,7 +17,7 @@ services: - "9001:9001" # Console minio-init: - image: minio/mc:latest + image: pgsty/mc:RELEASE.2026-10-18T00-00-00Z # basically what this does: # - create the public assets bucket # - allow public downloads for said bucket From 1ed897e9372eab2f056e2e3f48a5b31f9f33c067 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 22 Oct 2026 13:19:20 +0200 Subject: [PATCH 3/3] ci: install only chromium for e2e and skip the flaky azure apt mirror --- .github/workflows/e2e.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 10735368a5..f93e6b00a3 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -104,7 +104,17 @@ jobs: MINIMAL_SEED: true SKIP_VALIDATION: true - - run: pnpm --filter core exec playwright install --with-deps + # the runner's apt mirror list tries azure.archive.ubuntu.com first, which sometimes + # times out on every request before falling back. skip straight to the fallback. + - name: Skip azure apt mirror + run: | + if [ -f /etc/apt/apt-mirrors.txt ] && grep -v azure.archive.ubuntu.com /etc/apt/apt-mirrors.txt | grep -q .; then + sudo sed -i '/azure\.archive\.ubuntu\.com/d' /etc/apt/apt-mirrors.txt + fi + cat /etc/apt/apt-mirrors.txt || true + + # core only runs chromium; add firefox here if context-editor is re-enabled + - run: pnpm --filter core exec playwright install --with-deps chromium - name: Start up core etc run: pnpm integration:setup