chore(nextjs): upgrade to 16.4.0 (#8729)

This commit is contained in:
Waleed
2026-10-07 00:03:52 -07:00
committed by GitHub
parent 00cedfa34e
commit edb2e6b1ca
10 changed files with 57 additions and 50 deletions
+2 -6
View File
@@ -2,8 +2,6 @@ import type { CSSProperties } from 'react'
import { ImageResponse } from 'next/og'
import type { NextRequest } from 'next/server'
export const runtime = 'edge'
const TITLE_FONT_SIZE = {
large: 110,
medium: 96,
@@ -136,10 +134,8 @@ function wrapTitleLines(title: string, fontSize: number): string[] {
* Loads Söhne Kräftig (weight 500), the typeface used on the reference cover
* template this OG image matches. Converted to a plain TTF from the
* last-shipped `soehne-kraftig.woff2` since Satori (`next/og`'s renderer)
* can't parse WOFF2 or variable fonts. Fetched over HTTP since the edge
* runtime has no filesystem access — served from `/static/fonts/` (not
* `/fonts/`) so it isn't intercepted by the site's proxy (`proxy.ts`),
* whose matcher excludes `static` but not `fonts`.
* can't parse WOFF2 or variable fonts. Fetched over HTTP for Next's revalidation
* cache, from `/static/fonts/` so the site's proxy matcher excludes it.
*/
async function loadTitleFont(baseUrl: string): Promise<ArrayBuffer> {
const response = await fetch(new URL('/static/fonts/Soehne-Kraftig.ttf', baseUrl), {
+19 -10
View File
@@ -1,10 +1,15 @@
import { readFileSync } from 'node:fs'
import { join } from 'node:path'
import type { MethodInformation } from 'fumadocs-openapi'
import type { InlineCodeUsageGenerator } from 'fumadocs-openapi/requests/generators'
import { createOpenAPI } from 'fumadocs-openapi/server'
import { buildAuthCodeSamples } from '@/lib/openapi-code-samples'
import { OPENAPI_SPEC_FILES } from '@/lib/openapi-specs'
import billingSpec from '@/openapi-v2-billing.json'
import filesAuditSpec from '@/openapi-v2-files-audit.json'
import knowledgeSpec from '@/openapi-v2-knowledge.json'
import logsSpec from '@/openapi-v2-logs.json'
import resourcesSpec from '@/openapi-v2-resources.json'
import tablesSpec from '@/openapi-v2-tables.json'
import workflowsSpec from '@/openapi-v2-workflows.json'
export const openapi = createOpenAPI({
input: OPENAPI_SPEC_FILES.map((file) => `./${file}`),
@@ -66,16 +71,20 @@ function formatSchema(schema: unknown): string {
return JSON.stringify(schema, null, 2)
}
let cachedSpecs: Record<string, unknown>[] | null = null
const SPEC_BY_FILE = {
'openapi-v2-billing.json': billingSpec,
'openapi-v2-files-audit.json': filesAuditSpec,
'openapi-v2-knowledge.json': knowledgeSpec,
'openapi-v2-logs.json': logsSpec,
'openapi-v2-resources.json': resourcesSpec,
'openapi-v2-tables.json': tablesSpec,
'openapi-v2-workflows.json': workflowsSpec,
} satisfies Record<(typeof OPENAPI_SPEC_FILES)[number], Record<string, unknown>>
const SPECS = OPENAPI_SPEC_FILES.map((file) => SPEC_BY_FILE[file])
function getSpecs(): Record<string, unknown>[] {
if (!cachedSpecs) {
cachedSpecs = OPENAPI_SPEC_FILES.map(
(file) =>
JSON.parse(readFileSync(join(process.cwd(), file), 'utf8')) as Record<string, unknown>
)
}
return cachedSpecs
return SPECS
}
type SecurityRequirement = Record<string, string[]>
+1 -1
View File
@@ -30,7 +30,7 @@
"fumadocs-mdx": "14.3.2",
"fumadocs-openapi": "10.8.1",
"fumadocs-ui": "16.8.5",
"next": "16.3.6",
"next": "16.4.0",
"next-themes": "^0.4.6",
"react": "19.2.4",
"react-dom": "19.2.4",
+2 -2
View File
@@ -218,7 +218,7 @@
"mssql": "12.7.0",
"mysql2": "3.24.2",
"neo4j-driver": "6.0.1",
"next": "16.3.6",
"next": "16.4.0",
"next-mdx-remote": "^6.0.0",
"next-themes": "^0.4.6",
"nodemailer": "10.0.10",
@@ -267,7 +267,7 @@
"zustand": "^5.0.13"
},
"devDependencies": {
"@next/env": "16.3.6",
"@next/env": "16.4.0",
"@opentelemetry/context-async-hooks": "2.10.0",
"@sim/testing": "workspace:*",
"@sim/tsconfig": "workspace:*",
+22 -22
View File
@@ -36,10 +36,10 @@
"zod": "4.3.6",
},
"optionalDependencies": {
"@next/swc-darwin-arm64": "16.3.6",
"@next/swc-darwin-x64": "16.3.6",
"@next/swc-linux-arm64-gnu": "16.3.6",
"@next/swc-linux-x64-gnu": "16.3.6",
"@next/swc-darwin-arm64": "16.4.0",
"@next/swc-darwin-x64": "16.4.0",
"@next/swc-linux-arm64-gnu": "16.4.0",
"@next/swc-linux-x64-gnu": "16.4.0",
},
},
"apps/desktop": {
@@ -99,7 +99,7 @@
"fumadocs-mdx": "14.3.2",
"fumadocs-openapi": "10.8.1",
"fumadocs-ui": "16.8.5",
"next": "16.3.6",
"next": "16.4.0",
"next-themes": "^0.4.6",
"react": "19.2.4",
"react-dom": "19.2.4",
@@ -341,7 +341,7 @@
"mssql": "12.7.0",
"mysql2": "3.24.2",
"neo4j-driver": "6.0.1",
"next": "16.3.6",
"next": "16.4.0",
"next-mdx-remote": "^6.0.0",
"next-themes": "^0.4.6",
"nodemailer": "10.0.10",
@@ -390,7 +390,7 @@
"zustand": "^5.0.13",
},
"devDependencies": {
"@next/env": "16.3.6",
"@next/env": "16.4.0",
"@opentelemetry/context-async-hooks": "2.10.0",
"@sim/testing": "workspace:*",
"@sim/tsconfig": "workspace:*",
@@ -559,7 +559,7 @@
"class-variance-authority": "^0.7.1",
"framer-motion": "^12.5.0",
"input-otp": "^1.4.2",
"next": "16.3.6",
"next": "16.4.0",
"prismjs": "^1.30.0",
"react": "19.2.4",
"react-dom": "19.2.4",
@@ -690,7 +690,7 @@
},
"devDependencies": {
"@clack/prompts": "1.7.0",
"@next/env": "16.3.6",
"@next/env": "16.4.0",
"@sim/deployment-config": "workspace:*",
"@sim/security": "workspace:*",
"@sim/tsconfig": "workspace:*",
@@ -724,7 +724,7 @@
},
"devDependencies": {
"@sim/tsconfig": "workspace:*",
"next": "16.3.6",
"next": "16.4.0",
"stripe": "18.5.0",
"typescript": "^7.0.2",
"vitest": "^5.0.1",
@@ -837,7 +837,7 @@
},
"overrides": {
"@hono/node-server": "1.19.15",
"@next/env": "16.3.6",
"@next/env": "16.4.0",
"brace-expansion": "5.0.9",
"deepmerge-ts": "8.0.0",
"dompurify": "3.4.13",
@@ -850,7 +850,7 @@
"marked": "18.0.11",
"mermaid": "11.16.1",
"minimatch": "^10.2.5",
"next": "16.3.6",
"next": "16.4.0",
"postcss": "8.5.26",
"postgres": "^3.4.5",
"protobufjs": "7.6.5",
@@ -1542,23 +1542,23 @@
"@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.2.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" } }, "sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g=="],
"@next/env": ["@next/env@16.3.6", "", {}, "sha512-x9Vblze1EbtltQYnNH38xCPWU3TVfBd1eXqA3+w9+BTpedkkdNpAaltXlGQ/nsc1+E0mVTNrtcbX3GoO09zeLQ=="],
"@next/env": ["@next/env@16.4.0", "", {}, "sha512-pyLlT5oafGlX8X7xjgGNXz5dNIDSxREm+qD6i9VLSZiZFopA/XWl8NM/KPmLx/8EG/++c49iid3gNWSQW1+2dQ=="],
"@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.3.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-E/7GEqaUkt8mk/T8v9lAnrhzR06kdq1ZBkC12F8tAMkdIadwNp3H1KqHynDHrpcTlGCUdq/qu6vUL2aYVyYBdw=="],
"@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.4.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-yyZ+9MgViAKLLb5l1gPBGjRwnq3teNLb5Zx6JEw8LzNSTjlsnp+baUHFxTgl7PpjCmKf48VQfyipG1eBflb48Q=="],
"@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.3.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-yBE893/nDWTlaiBD1p+qgt7NUen4U5R6FXyH0s67Npq1S3E0cVSef1WIXC2xBRgQvwAvJq6DnS6Y6PrY0cy4Ew=="],
"@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.4.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-RePEEejEj1Auf5s9qEcG0JbcDP3ceNUS/ofNX8AhxzgIjTVlZIHMatlp16YplcSMpsVo/ZMQHJTjbMYJznjGUg=="],
"@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.3.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-KJDpjBqBPYlvkivmyrp+Qys6k/7ksbqGQvRVc6ZEGfR+cjQxx+nUkJaWmNZJsmoOrqYNbaXByF8wa0lBwDhB3Q=="],
"@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.4.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-HhsyCqd+NpmvDDVY/LqkAN24f+QVvXh3ie+PfcwKinWL2Mu826JymQxJXGjAIfmJ4VlHjp4Pe/nZtXtUoEMAqw=="],
"@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.3.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-mqNg2K+hvWskSRb/QM+Ix412DvBsuSF0XV+frTSw5vmoucNnIlynFwKYew8D01bfATErMOM7Bujrf0BA5DRKFA=="],
"@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.4.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-sN9Pf+Zh+RpZAOmbR7d8KAA8T61CVhawtbEJ2Bk6QrRzx6Z/6haaF4UiwBzytM96GRRRWZh9/WALIEO3npMamA=="],
"@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.3.6", "", { "os": "linux", "cpu": "x64" }, "sha512-nFncBNGAYouRHjRVaITs9beZRfhX4ssVwpnvPIAbkZVH6LtGoAVlH4bJ8Cnf9SOo9bsXgPFer/GdHtEE3JNOkw=="],
"@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.4.0", "", { "os": "linux", "cpu": "x64" }, "sha512-D5M5xLWQVd1CvR+L7BickM1weRfmM41x3L1NWcnKY/oyJJqr1qwaCgmu3dMAhLBOMdZwSuDCRV6DJRRpiUkbDQ=="],
"@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.3.6", "", { "os": "linux", "cpu": "x64" }, "sha512-5Mf3cHDGR/Iz0ng2Bj3zUR3p5QS9YK3Hn2QiAfavFmyF48zwThAjpFoiTKNIcOHLYS4zEk+gzyJ/9deQ2ZB8yQ=="],
"@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.4.0", "", { "os": "linux", "cpu": "x64" }, "sha512-8d5WLS6a9YalqpOgXdlbvonFu+sIgjA+CO6tGzetrpPVcUL56foa7B7664h41rAlbLi5fJwK4vWji3zf4QDy+w=="],
"@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.3.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-0jkJy0C2kbrJWTk4YLa3xk80pVBpx8FCHJym7CnUfDAXe/FWv5qT7SQJbR0KuemyxaEDlEx5WT4VQJoTW+/9Qw=="],
"@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.4.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-sQuOIiW3snb48UwrBcDMvFA/u03qtw2LeuSIxFIQ9AJuW9UG/4Ddsfo+eV73PnZwBhyncMtsKVh7PrzMol2/fA=="],
"@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.3.6", "", { "os": "win32", "cpu": "x64" }, "sha512-/YXjI1e5OXcZ7YpxRwgP/1jAV/SBKTzeVKqN2mk7mLpcICsyn3Gl5+dIfDTJp70M0ccMhyMMRso4v6mPDCGepg=="],
"@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.4.0", "", { "os": "win32", "cpu": "x64" }, "sha512-6/33lCuxpdHUy27RegyGM/5uTpF7YZd3UR4D0gpkOA/tWY5YR7msbQjqPgCZmSmxrrTLGCXYA4A8vT2H5DPGTQ=="],
"@noble/ciphers": ["@noble/ciphers@2.2.0", "", {}, "sha512-Z6pjIZ/8IJcCGzb2S/0Px5J81yij85xASuk1teLNeg75bfT07MV3a/O2Mtn1I2se43k3lkVEcFaR10N4cgQcZA=="],
@@ -3902,7 +3902,7 @@
"neo4j-driver-core": ["neo4j-driver-core@6.0.1", "", {}, "sha512-5I2KxICAvcHxnWdJyDqwu8PBAQvWVTlQH2ve3VQmtVdJScPqWhpXN1PiX5IIl+cRF3pFpz9GQF53B5n6s0QQUQ=="],
"next": ["next@16.3.6", "", { "dependencies": { "@next/env": "16.3.6", "@swc/helpers": "0.5.23", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.5.23", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.3.6", "@next/swc-darwin-x64": "16.3.6", "@next/swc-linux-arm64-gnu": "16.3.6", "@next/swc-linux-arm64-musl": "16.3.6", "@next/swc-linux-x64-gnu": "16.3.6", "@next/swc-linux-x64-musl": "16.3.6", "@next/swc-win32-arm64-msvc": "16.3.6", "@next/swc-win32-x64-msvc": "16.3.6", "sharp": "^0.35.4" }, "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" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-L+otWM/aQbYTx98aZhgEoMb4bZAXx1YVW4UMA/vuCyCoWG5HJyZUili8QAkqzrcC+5///tsz3s0M+SlyB5bLMw=="],
"next": ["next@16.4.0", "", { "dependencies": { "@next/env": "16.4.0", "@swc/helpers": "0.5.23", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.5.23", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.4.0", "@next/swc-darwin-x64": "16.4.0", "@next/swc-linux-arm64-gnu": "16.4.0", "@next/swc-linux-arm64-musl": "16.4.0", "@next/swc-linux-x64-gnu": "16.4.0", "@next/swc-linux-x64-musl": "16.4.0", "@next/swc-win32-arm64-msvc": "16.4.0", "@next/swc-win32-x64-msvc": "16.4.0", "sharp": "^0.35.4" }, "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" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-N2C+9q89Z/oLrsepSRS4jRMtwmUZAoZuAHU0e9T6+sAB5DdhADmrnOW+zjYijlrYFmVfmQhGVGy9eMFoB7UgKg=="],
"next-mdx-remote": ["next-mdx-remote@6.0.0", "", { "dependencies": { "@babel/code-frame": "^7.23.5", "@mdx-js/mdx": "^3.0.1", "@mdx-js/react": "^3.0.1", "unist-util-remove": "^4.0.0", "unist-util-visit": "^5.1.0", "vfile": "^6.0.1", "vfile-matter": "^5.0.0" }, "peerDependencies": { "react": ">=16" } }, "sha512-cJEpEZlgD6xGjB4jL8BnI8FaYdN9BzZM4NwadPe1YQr7pqoWjg9EBCMv3nXBkuHqMRfv2y33SzUsuyNh9LFAQQ=="],
+2
View File
@@ -3,6 +3,8 @@ exact = true
# Supply-chain gate: only install package versions published at least 7 days ago
# (blocks freshly published, potentially compromised releases).
minimumReleaseAge = 604800
# Explicit framework pins must install before their release reaches the age threshold.
minimumReleaseAgeExcludes = ["next", "@next/env"]
[run]
env = { NEXT_PUBLIC_APP_URL = "http://localhost:3000" }
+6 -6
View File
@@ -136,8 +136,8 @@
"overrides": {
"react": "19.2.4",
"react-dom": "19.2.4",
"next": "16.3.6",
"@next/env": "16.3.6",
"next": "16.4.0",
"@next/env": "16.4.0",
"drizzle-orm": "^0.45.2",
"postgres": "^3.4.5",
"minimatch": "^10.2.5",
@@ -160,10 +160,10 @@
"ws": "8.21.3"
},
"optionalDependencies": {
"@next/swc-darwin-arm64": "16.3.6",
"@next/swc-darwin-x64": "16.3.6",
"@next/swc-linux-arm64-gnu": "16.3.6",
"@next/swc-linux-x64-gnu": "16.3.6"
"@next/swc-darwin-arm64": "16.4.0",
"@next/swc-darwin-x64": "16.4.0",
"@next/swc-linux-arm64-gnu": "16.4.0",
"@next/swc-linux-x64-gnu": "16.4.0"
},
"devDependencies": {
"@babel/parser": "7.29.2",
+1 -1
View File
@@ -85,7 +85,7 @@
"class-variance-authority": "^0.7.1",
"framer-motion": "^12.5.0",
"input-otp": "^1.4.2",
"next": "16.3.6",
"next": "16.4.0",
"prismjs": "^1.30.0",
"react": "19.2.4",
"react-dom": "19.2.4",
+1 -1
View File
@@ -49,7 +49,7 @@
},
"devDependencies": {
"@clack/prompts": "1.7.0",
"@next/env": "16.3.6",
"@next/env": "16.4.0",
"@sim/deployment-config": "workspace:*",
"@sim/security": "workspace:*",
"@sim/tsconfig": "workspace:*",
+1 -1
View File
@@ -72,7 +72,7 @@
},
"devDependencies": {
"@sim/tsconfig": "workspace:*",
"next": "16.3.6",
"next": "16.4.0",
"stripe": "18.5.0",
"typescript": "^7.0.2",
"vitest": "^5.0.1"