From 2b2de7156ce25eaf585b995863ec22aff6a86a09 Mon Sep 17 00:00:00 2001 From: Nicolas Dorseuil Date: Mon, 20 Oct 2025 19:23:50 +0200 Subject: [PATCH 1/7] turbopack plugins --- .../cli/build/open-next/createServerBundle.ts | 6 +- .../cli/build/patches/plugins/turbopack.ts | 59 +++++++++++++++++++ 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts diff --git a/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts b/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts index b78aafc0a..d3a90598d 100644 --- a/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts +++ b/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts @@ -30,6 +30,7 @@ import { patchResRevalidate } from "../patches/plugins/res-revalidate.js"; import { patchUseCacheIO } from "../patches/plugins/use-cache.js"; import { normalizePath } from "../utils/index.js"; import { copyWorkerdPackages } from "../utils/workerd.js"; +import { inlineChunksPatch } from "../patches/plugins/turbopack.js"; interface CodeCustomization { // These patches are meant to apply on user and next generated code @@ -210,6 +211,7 @@ async function generateBundle( // Cloudflare specific patches patchResRevalidate, patchUseCacheIO, + inlineChunksPatch, ...additionalCodePatches, ]); @@ -287,8 +289,8 @@ async function generateBundle( alias: { ...(isBundled ? { - "next/dist/server/next-server.js": "./next-server.runtime.prod.js", - } + "next/dist/server/next-server.js": "./next-server.runtime.prod.js", + } : {}), }, }, diff --git a/packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts b/packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts new file mode 100644 index 000000000..755e30f7f --- /dev/null +++ b/packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts @@ -0,0 +1,59 @@ +import { patchCode } from "@opennextjs/aws/build/patch/astCodePatcher.js"; +import type { CodePatcher } from "@opennextjs/aws/build/patch/codePatcher"; +import { getCrossPlatformPathRegex } from "@opennextjs/aws/utils/regex.js"; + +const inlineChunksRule = ` +rule: + kind: call_expression + pattern: require(resolved) +fix: + requireChunk(chunkPath) +`; + +export const inlineChunksPatch: CodePatcher = { + name: "inline-turbopack-chunks", + patches: [ + { + versions: ">=16.0.0", + pathFilter: getCrossPlatformPathRegex( + String.raw`\[turbopack\]_runtime\.js$`, + { + escape: false, + } + ), + contentFilter: /loadRuntimeChunkPath/, + patchCode: async ({ code, tracedFiles }) => { + const patched = patchCode(code, inlineChunksRule); + + return `${patched}\n${inlineChunksFn(tracedFiles)}`; + }, + }, + ], +}; + +function getInlinableChunks(tracedFiles: string[]) { + const chunks = new Set(); + for (const file of tracedFiles) { + if (file.includes(".next/server/chunks/") && !file.includes("[turbopack]_runtime.js")) { + chunks.add(file); + } + } + return chunks; +} + +function inlineChunksFn(tracedFiles: string[]) { + // From the outputs, we extract every chunks + const chunks = getInlinableChunks(tracedFiles); + return ` + function requireChunk(chunkPath) { + switch(chunkPath) { +${Array.from(chunks).map(chunk => ` case "${ + // we only want the path after /path/to/.next/ + chunk.replace(/.*\.next\//, "") + }": return require("${chunk}");`).join("\n")} + default: + throw new Error(\`Not found \${chunkPath}\`); + } + } +`; +} \ No newline at end of file From 62233455ebf83dfa8cd3a082da4b8a63501aaed3 Mon Sep 17 00:00:00 2001 From: Nicolas Dorseuil Date: Mon, 20 Oct 2025 19:53:57 +0200 Subject: [PATCH 2/7] Bump e2e/experimental to 16 --- examples/e2e/experimental/next.config.ts | 3 - examples/e2e/experimental/package.json | 2 +- .../e2e/experimental/src/app/ppr/page.tsx | 2 +- examples/e2e/experimental/tsconfig.json | 64 ++- pnpm-lock.yaml | 478 +++++++++++------- 5 files changed, 350 insertions(+), 199 deletions(-) diff --git a/examples/e2e/experimental/next.config.ts b/examples/e2e/experimental/next.config.ts index 886ddd589..34d00e7bc 100644 --- a/examples/e2e/experimental/next.config.ts +++ b/examples/e2e/experimental/next.config.ts @@ -4,9 +4,6 @@ const nextConfig: NextConfig = { /* config options here */ cleanDistDir: true, output: "standalone", - eslint: { - ignoreDuringBuilds: true, - }, typescript: { // Ignore type errors during build for now, we'll need to figure this out later ignoreBuildErrors: true, diff --git a/examples/e2e/experimental/package.json b/examples/e2e/experimental/package.json index 6f5e09fe9..f9ca03ba2 100644 --- a/examples/e2e/experimental/package.json +++ b/examples/e2e/experimental/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@opennextjs/cloudflare": "workspace:*", - "next": "15.4.2-canary.29", + "next": "16.0.0-canary.15", "react": "catalog:e2e", "react-dom": "catalog:e2e" }, diff --git a/examples/e2e/experimental/src/app/ppr/page.tsx b/examples/e2e/experimental/src/app/ppr/page.tsx index c252506b1..554b3a3a5 100644 --- a/examples/e2e/experimental/src/app/ppr/page.tsx +++ b/examples/e2e/experimental/src/app/ppr/page.tsx @@ -2,7 +2,7 @@ import { DynamicComponent } from "@/components/dynamic"; import { StaticComponent } from "@/components/static"; import { Suspense } from "react"; -export const experimental_ppr = true; +// export const experimental_ppr = true; export default function PPRPage() { return ( diff --git a/examples/e2e/experimental/tsconfig.json b/examples/e2e/experimental/tsconfig.json index 7df89e76d..b575f7dac 100644 --- a/examples/e2e/experimental/tsconfig.json +++ b/examples/e2e/experimental/tsconfig.json @@ -1,27 +1,41 @@ { - "compilerOptions": { - "target": "ES2017", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "bundler", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "plugins": [ - { - "name": "next" - } - ], - "paths": { - "@/*": ["./src/*"] - } - }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] + "compilerOptions": { + "target": "ES2017", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "react-jsx", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": [ + "./src/*" + ] + } + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + ".next/dev/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ebc234935..3d06ac973 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -526,8 +526,8 @@ importers: specifier: workspace:* version: link:../../../packages/cloudflare next: - specifier: 15.4.2-canary.29 - version: 15.4.2-canary.29(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: 16.0.0-canary.15 + version: 16.0.0-canary.15(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: specifier: catalog:e2e version: 19.0.0 @@ -1851,6 +1851,9 @@ packages: '@emnapi/runtime@1.4.5': resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} + '@emnapi/runtime@1.5.0': + resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} + '@esbuild-kit/core-utils@3.3.2': resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} deprecated: 'Merged into tsx: https://tsx.is' @@ -2954,6 +2957,10 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} + '@img/colour@1.0.0': + resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} + engines: {node: '>=18'} + '@img/sharp-darwin-arm64@0.33.5': resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -2966,6 +2973,12 @@ packages: cpu: [arm64] os: [darwin] + '@img/sharp-darwin-arm64@0.34.4': + resolution: {integrity: sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + '@img/sharp-darwin-x64@0.33.5': resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -2978,6 +2991,12 @@ packages: cpu: [x64] os: [darwin] + '@img/sharp-darwin-x64@0.34.4': + resolution: {integrity: sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + '@img/sharp-libvips-darwin-arm64@1.0.4': resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] @@ -2988,6 +3007,11 @@ packages: cpu: [arm64] os: [darwin] + '@img/sharp-libvips-darwin-arm64@1.2.3': + resolution: {integrity: sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==} + cpu: [arm64] + os: [darwin] + '@img/sharp-libvips-darwin-x64@1.0.4': resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} cpu: [x64] @@ -2998,6 +3022,11 @@ packages: cpu: [x64] os: [darwin] + '@img/sharp-libvips-darwin-x64@1.2.3': + resolution: {integrity: sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==} + cpu: [x64] + os: [darwin] + '@img/sharp-libvips-linux-arm64@1.0.4': resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] @@ -3008,6 +3037,11 @@ packages: cpu: [arm64] os: [linux] + '@img/sharp-libvips-linux-arm64@1.2.3': + resolution: {integrity: sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==} + cpu: [arm64] + os: [linux] + '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] @@ -3018,11 +3052,21 @@ packages: cpu: [arm] os: [linux] + '@img/sharp-libvips-linux-arm@1.2.3': + resolution: {integrity: sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==} + cpu: [arm] + os: [linux] + '@img/sharp-libvips-linux-ppc64@1.2.0': resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} cpu: [ppc64] os: [linux] + '@img/sharp-libvips-linux-ppc64@1.2.3': + resolution: {integrity: sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==} + cpu: [ppc64] + os: [linux] + '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] @@ -3033,6 +3077,11 @@ packages: cpu: [s390x] os: [linux] + '@img/sharp-libvips-linux-s390x@1.2.3': + resolution: {integrity: sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==} + cpu: [s390x] + os: [linux] + '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] @@ -3043,6 +3092,11 @@ packages: cpu: [x64] os: [linux] + '@img/sharp-libvips-linux-x64@1.2.3': + resolution: {integrity: sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==} + cpu: [x64] + os: [linux] + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] @@ -3053,6 +3107,11 @@ packages: cpu: [arm64] os: [linux] + '@img/sharp-libvips-linuxmusl-arm64@1.2.3': + resolution: {integrity: sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==} + cpu: [arm64] + os: [linux] + '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] @@ -3063,6 +3122,11 @@ packages: cpu: [x64] os: [linux] + '@img/sharp-libvips-linuxmusl-x64@1.2.3': + resolution: {integrity: sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==} + cpu: [x64] + os: [linux] + '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3075,6 +3139,12 @@ packages: cpu: [arm64] os: [linux] + '@img/sharp-linux-arm64@0.34.4': + resolution: {integrity: sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3087,12 +3157,24 @@ packages: cpu: [arm] os: [linux] + '@img/sharp-linux-arm@0.34.4': + resolution: {integrity: sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.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} cpu: [ppc64] os: [linux] + '@img/sharp-linux-ppc64@0.34.4': + resolution: {integrity: sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ppc64] + os: [linux] + '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3105,6 +3187,12 @@ packages: cpu: [s390x] os: [linux] + '@img/sharp-linux-s390x@0.34.4': + resolution: {integrity: sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3117,6 +3205,12 @@ packages: cpu: [x64] os: [linux] + '@img/sharp-linux-x64@0.34.4': + resolution: {integrity: sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3129,6 +3223,12 @@ packages: cpu: [arm64] os: [linux] + '@img/sharp-linuxmusl-arm64@0.34.4': + resolution: {integrity: sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3141,6 +3241,12 @@ packages: cpu: [x64] os: [linux] + '@img/sharp-linuxmusl-x64@0.34.4': + resolution: {integrity: sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3151,12 +3257,23 @@ packages: engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] + '@img/sharp-wasm32@0.34.4': + resolution: {integrity: sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.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} cpu: [arm64] os: [win32] + '@img/sharp-win32-arm64@0.34.4': + resolution: {integrity: sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [win32] + '@img/sharp-win32-ia32@0.33.5': resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3169,6 +3286,12 @@ packages: cpu: [ia32] os: [win32] + '@img/sharp-win32-ia32@0.34.4': + resolution: {integrity: sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + '@img/sharp-win32-x64@0.33.5': resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3181,6 +3304,12 @@ packages: cpu: [x64] os: [win32] + '@img/sharp-win32-x64@0.34.4': + resolution: {integrity: sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -3307,14 +3436,11 @@ packages: '@next/env@15.1.7': resolution: {integrity: sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==} - '@next/env@15.4.2-canary.29': - resolution: {integrity: sha512-zmkSqVO16lUnanrgywv4SfgiLyMI2V/IxEgRTKcded5Lor0jXC73eqtjTL4vKpFKK771l7M0zILv8Hv5uHsR1A==} - '@next/env@15.4.5': resolution: {integrity: sha512-ruM+q2SCOVCepUiERoxOmZY9ZVoecR3gcXNwCYZRvQQWRjhOiPJGmQ2fAiLR6YKWXcSAh7G79KEFxN3rwhs4LQ==} - '@next/env@15.5.6': - resolution: {integrity: sha512-3qBGRW+sCGzgbpc5TS1a0p7eNxnOarGVQhZxfvTdnV0gFI61lX7QNtQ4V1TSREctXzYn5NetbUsLvyqwLFJM6Q==} + '@next/env@16.0.0-canary.15': + resolution: {integrity: sha512-8jqx2sdos/GZfn438PBro+5gnAqOUeZ3r7jU7954n9DsvmrDYDIhzVL5UogvHLUEdgYADn+Luo0CLyfPIrybKg==} '@next/eslint-plugin-next@14.2.14': resolution: {integrity: sha512-kV+OsZ56xhj0rnTn6HegyTGkoa16Mxjrpk7pjWumyB2P8JVQb8S9qtkjy/ye0GnTr4JWtWG4x/2qN40lKZ3iVQ==} @@ -3364,20 +3490,14 @@ packages: cpu: [arm64] os: [darwin] - '@next/swc-darwin-arm64@15.4.2-canary.29': - resolution: {integrity: sha512-W0isQe+NuLgGEccJoqfuikN8irbHrq7qHYI+w2hdw0l6CzgvKa4GYEQV4FnblK9epa9rU+SRdTB428vzl5eesQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - '@next/swc-darwin-arm64@15.4.5': resolution: {integrity: sha512-84dAN4fkfdC7nX6udDLz9GzQlMUwEMKD7zsseXrl7FTeIItF8vpk1lhLEnsotiiDt+QFu3O1FVWnqwcRD2U3KA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-arm64@15.5.6': - resolution: {integrity: sha512-ES3nRz7N+L5Umz4KoGfZ4XX6gwHplwPhioVRc25+QNsDa7RtUF/z8wJcbuQ2Tffm5RZwuN2A063eapoJ1u4nPg==} + '@next/swc-darwin-arm64@16.0.0-canary.15': + resolution: {integrity: sha512-z9F34hGTGq51C2UGhHT6ci4OflC3eneE4J9S/bCXnWND8PpH6mDaxbq+NG7O2vzAjtqFaYEhYjT7QQNs9gkAyA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -3418,20 +3538,14 @@ packages: cpu: [x64] os: [darwin] - '@next/swc-darwin-x64@15.4.2-canary.29': - resolution: {integrity: sha512-vPIml27iYFMqRNwYRO82leBuBs0Boach3thGfrUIzbDUambfQmKaylMBaEYkX2s7if+p+FmmCHY0XYrRHQf4yQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - '@next/swc-darwin-x64@15.4.5': resolution: {integrity: sha512-CL6mfGsKuFSyQjx36p2ftwMNSb8PQog8y0HO/ONLdQqDql7x3aJb/wB+LA651r4we2pp/Ck+qoRVUeZZEvSurA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-darwin-x64@15.5.6': - resolution: {integrity: sha512-JIGcytAyk9LQp2/nuVZPAtj8uaJ/zZhsKOASTjxDug0SPU9LAM3wy6nPU735M1OqacR4U20LHVF5v5Wnl9ptTA==} + '@next/swc-darwin-x64@16.0.0-canary.15': + resolution: {integrity: sha512-CgarpUHQMNHf+3CEbwWKRKZQDsRiohQN0gMs67oRMU7hnLLVg2Vsg34wXtnkeGZugN1RwuADQ3mxh+eglMBUuw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -3472,20 +3586,14 @@ packages: cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-gnu@15.4.2-canary.29': - resolution: {integrity: sha512-OfjJBsSqHCNzcyMkMD2zoMOe6/l1EIWkuWYGPmffImSvPelXwY42FL42VHvYvnX6cq8xeOOEj6WIj03mPiErIA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - '@next/swc-linux-arm64-gnu@15.4.5': resolution: {integrity: sha512-1hTVd9n6jpM/thnDc5kYHD1OjjWYpUJrJxY4DlEacT7L5SEOXIifIdTye6SQNNn8JDZrcN+n8AWOmeJ8u3KlvQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-gnu@15.5.6': - resolution: {integrity: sha512-qvz4SVKQ0P3/Im9zcS2RmfFL/UCQnsJKJwQSkissbngnB/12c6bZTCB0gHTexz1s6d/mD0+egPKXAIRFVS7hQg==} + '@next/swc-linux-arm64-gnu@16.0.0-canary.15': + resolution: {integrity: sha512-viAbf6wHgOp+btxHZJqxI9eOJkzi1o4FS+Be3O8qhoENVgGmUUehRMSG4AiGUmama+dqAqWqAhlKNeE07Ucz4w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -3526,20 +3634,14 @@ packages: cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.4.2-canary.29': - resolution: {integrity: sha512-U2Rp+q3Fs/1P6/UPEIhSJ4zOuEUnq1SSLjsLdra1ZJNrt/bOiulB8EtCaGzNCP+Fc/C3x0o7HswUL1PTGPCaqA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - '@next/swc-linux-arm64-musl@15.4.5': resolution: {integrity: sha512-4W+D/nw3RpIwGrqpFi7greZ0hjrCaioGErI7XHgkcTeWdZd146NNu1s4HnaHonLeNTguKnL2Urqvj28UJj6Gqw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.5.6': - resolution: {integrity: sha512-FsbGVw3SJz1hZlvnWD+T6GFgV9/NYDeLTNQB2MXoPN5u9VA9OEDy6fJEfePfsUKAhJufFbZLgp0cPxMuV6SV0w==} + '@next/swc-linux-arm64-musl@16.0.0-canary.15': + resolution: {integrity: sha512-fST2TNOzDuM2ucZFqdmcQzi2rBEmSm2hOTi7DN2wRoxNqbo2aJTIjGm65ZIamc0h0xeE/F69cuNyJS+b1ryZEg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -3580,20 +3682,14 @@ packages: cpu: [x64] os: [linux] - '@next/swc-linux-x64-gnu@15.4.2-canary.29': - resolution: {integrity: sha512-naAxNmS9fB4ayezHHWnoM2nHyxHge1V8rJnJ5sGFQDexsZI0B5u4ghvVrPvX+z7u3vyOhJrWQuXiAXHcbBP2xg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - '@next/swc-linux-x64-gnu@15.4.5': resolution: {integrity: sha512-N6Mgdxe/Cn2K1yMHge6pclffkxzbSGOydXVKYOjYqQXZYjLCfN/CuFkaYDeDHY2VBwSHyM2fUjYBiQCIlxIKDA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-gnu@15.5.6': - resolution: {integrity: sha512-3QnHGFWlnvAgyxFxt2Ny8PTpXtQD7kVEeaFat5oPAHHI192WKYB+VIKZijtHLGdBBvc16tiAkPTDmQNOQ0dyrA==} + '@next/swc-linux-x64-gnu@16.0.0-canary.15': + resolution: {integrity: sha512-jdElLDM+T+y0BxG/V/P7NiZoZXVfZenANAHtWFtjNz0avRmC53L/lC4kCvNXWP4OCxBI8rgFDDAByDw+oIx4lQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -3634,20 +3730,14 @@ packages: cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.4.2-canary.29': - resolution: {integrity: sha512-4Id31wM5uep5jqwyvFlfzduPaXa6sbLdgQk+wWVMsSC9FqiIkevIB541OP/MnsoiQ6djTmd1NiRxeC0ffR7Llw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - '@next/swc-linux-x64-musl@15.4.5': resolution: {integrity: sha512-YZ3bNDrS8v5KiqgWE0xZQgtXgCTUacgFtnEgI4ccotAASwSvcMPDLua7BWLuTfucoRv6mPidXkITJLd8IdJplQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.5.6': - resolution: {integrity: sha512-OsGX148sL+TqMK9YFaPFPoIaJKbFJJxFzkXZljIgA9hjMjdruKht6xDCEv1HLtlLNfkx3c5w2GLKhj7veBQizQ==} + '@next/swc-linux-x64-musl@16.0.0-canary.15': + resolution: {integrity: sha512-UQYBPjwWZjhX0+a2OxXMfXK5X+zK+wU7m9yc8lXygNiBJHNnae7evZs1Kl0QKrPu23UsAPUk+nEvEHT8TskoqA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -3688,20 +3778,14 @@ packages: cpu: [arm64] os: [win32] - '@next/swc-win32-arm64-msvc@15.4.2-canary.29': - resolution: {integrity: sha512-6x5I4/MskJ9rXC8Co+U9sAXUqGfz+pzikNE5Bt6atwILP39GNLV1RxkcZUHx1/qK/Z5+NFsUmPNfjlH6auph+g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - '@next/swc-win32-arm64-msvc@15.4.5': resolution: {integrity: sha512-9Wr4t9GkZmMNcTVvSloFtjzbH4vtT4a8+UHqDoVnxA5QyfWe6c5flTH1BIWPGNWSUlofc8dVJAE7j84FQgskvQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-arm64-msvc@15.5.6': - resolution: {integrity: sha512-ONOMrqWxdzXDJNh2n60H6gGyKed42Ieu6UTVPZteXpuKbLZTH4G4eBMsr5qWgOBA+s7F+uB4OJbZnrkEDnZ5Fg==} + '@next/swc-win32-arm64-msvc@16.0.0-canary.15': + resolution: {integrity: sha512-kmT0okdaFImEV8jfBQXokmf20AUGqEBoPStxheTRuIrcVZLAUZTK/H6ZfivZSlkQdN4M2sE7U1RYuuyFUZ67Cw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -3754,20 +3838,14 @@ packages: cpu: [x64] os: [win32] - '@next/swc-win32-x64-msvc@15.4.2-canary.29': - resolution: {integrity: sha512-yKyOuM2HH1Ryvd80q+5wYZrMIcn8+4sEJo5++Ywf0CFEnkSZdj6gl5BX2qU4OdryiR2E/29PFwv7qEYTFUaXiQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - '@next/swc-win32-x64-msvc@15.4.5': resolution: {integrity: sha512-voWk7XtGvlsP+w8VBz7lqp8Y+dYw/MTI4KeS0gTVtfdhdJ5QwhXLmNrndFOin/MDoCvUaLWMkYKATaCoUkt2/A==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@next/swc-win32-x64-msvc@15.5.6': - resolution: {integrity: sha512-pxK4VIjFRx1MY92UycLOOw7dTdvccWsNETQ0kDHkBlcFH1GrTLUjSiHU1ohrznnux6TqRHgv5oflhfIWZwVROQ==} + '@next/swc-win32-x64-msvc@16.0.0-canary.15': + resolution: {integrity: sha512-BrSrVPtVeFPNfR0iNeV51bQIXiIYFmMAGQWnMoahBVUkNH9UGVzw3rO61CIdUYfXtTdsMvBGkREAfZ7+X2gOeA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -5729,6 +5807,10 @@ packages: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -7849,27 +7931,6 @@ packages: sass: optional: true - next@15.4.2-canary.29: - resolution: {integrity: sha512-jRBUNrhf69oYsxbo2sFRB9W5ZI8Wav5CEMKyRG+DQwZhRyEQ2+kpS0+j/bfBjs11CBk3fhGMoQti2/EoRlWInQ==} - 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.4.5: resolution: {integrity: sha512-nJ4v+IO9CPmbmcvsPebIoX3Q+S7f6Fu08/dEWu0Ttfa+wVwQRh9epcmsyCPjmL2b8MxC+CkBR97jgDhUUztI3g==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} @@ -7891,9 +7952,9 @@ packages: sass: optional: true - next@15.5.6: - resolution: {integrity: sha512-zTxsnI3LQo3c9HSdSf91O1jMNsEzIXDShXd4wVdg9y5shwLqBXi4ZtUUJyB86KGVSJLZx0PFONvO54aheGX8QQ==} - engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + next@16.0.0-canary.15: + resolution: {integrity: sha512-dKt33hWYxWsaka6FKOV2BmRRMSXi6DLGUOsIIkBU7UmAcjoZwx2TNjsuO30Hus5w+1987e75LghENEuS5N2sDg==} + engines: {node: '>=20.9.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 @@ -8808,6 +8869,10 @@ packages: resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.34.4: + resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -11453,6 +11518,11 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.5.0': + dependencies: + tslib: 2.8.1 + optional: true + '@esbuild-kit/core-utils@3.3.2': dependencies: esbuild: 0.18.20 @@ -12387,6 +12457,9 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} + '@img/colour@1.0.0': + optional: true + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.0.4 @@ -12397,6 +12470,11 @@ snapshots: '@img/sharp-libvips-darwin-arm64': 1.2.0 optional: true + '@img/sharp-darwin-arm64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.2.3 + optional: true + '@img/sharp-darwin-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.0.4 @@ -12407,57 +12485,89 @@ snapshots: '@img/sharp-libvips-darwin-x64': 1.2.0 optional: true + '@img/sharp-darwin-x64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.2.3 + optional: true + '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true '@img/sharp-libvips-darwin-arm64@1.2.0': optional: true + '@img/sharp-libvips-darwin-arm64@1.2.3': + optional: true + '@img/sharp-libvips-darwin-x64@1.0.4': optional: true '@img/sharp-libvips-darwin-x64@1.2.0': optional: true + '@img/sharp-libvips-darwin-x64@1.2.3': + optional: true + '@img/sharp-libvips-linux-arm64@1.0.4': optional: true '@img/sharp-libvips-linux-arm64@1.2.0': optional: true + '@img/sharp-libvips-linux-arm64@1.2.3': + optional: true + '@img/sharp-libvips-linux-arm@1.0.5': optional: true '@img/sharp-libvips-linux-arm@1.2.0': optional: true + '@img/sharp-libvips-linux-arm@1.2.3': + optional: true + '@img/sharp-libvips-linux-ppc64@1.2.0': optional: true + '@img/sharp-libvips-linux-ppc64@1.2.3': + optional: true + '@img/sharp-libvips-linux-s390x@1.0.4': optional: true '@img/sharp-libvips-linux-s390x@1.2.0': optional: true + '@img/sharp-libvips-linux-s390x@1.2.3': + optional: true + '@img/sharp-libvips-linux-x64@1.0.4': optional: true '@img/sharp-libvips-linux-x64@1.2.0': optional: true + '@img/sharp-libvips-linux-x64@1.2.3': + optional: true + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true '@img/sharp-libvips-linuxmusl-arm64@1.2.0': optional: true + '@img/sharp-libvips-linuxmusl-arm64@1.2.3': + optional: true + '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true '@img/sharp-libvips-linuxmusl-x64@1.2.0': optional: true + '@img/sharp-libvips-linuxmusl-x64@1.2.3': + optional: true + '@img/sharp-linux-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.0.4 @@ -12468,6 +12578,11 @@ snapshots: '@img/sharp-libvips-linux-arm64': 1.2.0 optional: true + '@img/sharp-linux-arm64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.2.3 + optional: true + '@img/sharp-linux-arm@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.0.5 @@ -12478,11 +12593,21 @@ snapshots: '@img/sharp-libvips-linux-arm': 1.2.0 optional: true + '@img/sharp-linux-arm@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.2.3 + optional: true + '@img/sharp-linux-ppc64@0.34.3': optionalDependencies: '@img/sharp-libvips-linux-ppc64': 1.2.0 optional: true + '@img/sharp-linux-ppc64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.2.3 + optional: true + '@img/sharp-linux-s390x@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.0.4 @@ -12493,6 +12618,11 @@ snapshots: '@img/sharp-libvips-linux-s390x': 1.2.0 optional: true + '@img/sharp-linux-s390x@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.2.3 + optional: true + '@img/sharp-linux-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.0.4 @@ -12503,6 +12633,11 @@ snapshots: '@img/sharp-libvips-linux-x64': 1.2.0 optional: true + '@img/sharp-linux-x64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.2.3 + optional: true + '@img/sharp-linuxmusl-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 @@ -12513,6 +12648,11 @@ snapshots: '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 optional: true + '@img/sharp-linuxmusl-arm64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 + optional: true + '@img/sharp-linuxmusl-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.0.4 @@ -12523,6 +12663,11 @@ snapshots: '@img/sharp-libvips-linuxmusl-x64': 1.2.0 optional: true + '@img/sharp-linuxmusl-x64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.2.3 + optional: true + '@img/sharp-wasm32@0.33.5': dependencies: '@emnapi/runtime': 1.4.3 @@ -12533,21 +12678,35 @@ snapshots: '@emnapi/runtime': 1.4.5 optional: true + '@img/sharp-wasm32@0.34.4': + dependencies: + '@emnapi/runtime': 1.5.0 + optional: true + '@img/sharp-win32-arm64@0.34.3': optional: true + '@img/sharp-win32-arm64@0.34.4': + optional: true + '@img/sharp-win32-ia32@0.33.5': optional: true '@img/sharp-win32-ia32@0.34.3': optional: true + '@img/sharp-win32-ia32@0.34.4': + optional: true + '@img/sharp-win32-x64@0.33.5': optional: true '@img/sharp-win32-x64@0.34.3': optional: true + '@img/sharp-win32-x64@0.34.4': + optional: true + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -12683,7 +12842,7 @@ snapshots: https-proxy-agent: 7.0.6 node-fetch: 2.7.0 nopt: 8.1.0 - semver: 7.7.1 + semver: 7.7.2 tar: 7.4.3 transitivePeerDependencies: - encoding @@ -12703,11 +12862,9 @@ snapshots: '@next/env@15.1.7': {} - '@next/env@15.4.2-canary.29': {} - '@next/env@15.4.5': {} - '@next/env@15.5.6': {} + '@next/env@16.0.0-canary.15': {} '@next/eslint-plugin-next@14.2.14': dependencies: @@ -12743,13 +12900,10 @@ snapshots: '@next/swc-darwin-arm64@15.1.7': optional: true - '@next/swc-darwin-arm64@15.4.2-canary.29': - optional: true - '@next/swc-darwin-arm64@15.4.5': optional: true - '@next/swc-darwin-arm64@15.5.6': + '@next/swc-darwin-arm64@16.0.0-canary.15': optional: true '@next/swc-darwin-x64@14.2.24': @@ -12770,13 +12924,10 @@ snapshots: '@next/swc-darwin-x64@15.1.7': optional: true - '@next/swc-darwin-x64@15.4.2-canary.29': - optional: true - '@next/swc-darwin-x64@15.4.5': optional: true - '@next/swc-darwin-x64@15.5.6': + '@next/swc-darwin-x64@16.0.0-canary.15': optional: true '@next/swc-linux-arm64-gnu@14.2.24': @@ -12797,13 +12948,10 @@ snapshots: '@next/swc-linux-arm64-gnu@15.1.7': optional: true - '@next/swc-linux-arm64-gnu@15.4.2-canary.29': - optional: true - '@next/swc-linux-arm64-gnu@15.4.5': optional: true - '@next/swc-linux-arm64-gnu@15.5.6': + '@next/swc-linux-arm64-gnu@16.0.0-canary.15': optional: true '@next/swc-linux-arm64-musl@14.2.24': @@ -12824,13 +12972,10 @@ snapshots: '@next/swc-linux-arm64-musl@15.1.7': optional: true - '@next/swc-linux-arm64-musl@15.4.2-canary.29': - optional: true - '@next/swc-linux-arm64-musl@15.4.5': optional: true - '@next/swc-linux-arm64-musl@15.5.6': + '@next/swc-linux-arm64-musl@16.0.0-canary.15': optional: true '@next/swc-linux-x64-gnu@14.2.24': @@ -12851,13 +12996,10 @@ snapshots: '@next/swc-linux-x64-gnu@15.1.7': optional: true - '@next/swc-linux-x64-gnu@15.4.2-canary.29': - optional: true - '@next/swc-linux-x64-gnu@15.4.5': optional: true - '@next/swc-linux-x64-gnu@15.5.6': + '@next/swc-linux-x64-gnu@16.0.0-canary.15': optional: true '@next/swc-linux-x64-musl@14.2.24': @@ -12878,13 +13020,10 @@ snapshots: '@next/swc-linux-x64-musl@15.1.7': optional: true - '@next/swc-linux-x64-musl@15.4.2-canary.29': - optional: true - '@next/swc-linux-x64-musl@15.4.5': optional: true - '@next/swc-linux-x64-musl@15.5.6': + '@next/swc-linux-x64-musl@16.0.0-canary.15': optional: true '@next/swc-win32-arm64-msvc@14.2.24': @@ -12905,13 +13044,10 @@ snapshots: '@next/swc-win32-arm64-msvc@15.1.7': optional: true - '@next/swc-win32-arm64-msvc@15.4.2-canary.29': - optional: true - '@next/swc-win32-arm64-msvc@15.4.5': optional: true - '@next/swc-win32-arm64-msvc@15.5.6': + '@next/swc-win32-arm64-msvc@16.0.0-canary.15': optional: true '@next/swc-win32-ia32-msvc@14.2.24': @@ -12938,13 +13074,10 @@ snapshots: '@next/swc-win32-x64-msvc@15.1.7': optional: true - '@next/swc-win32-x64-msvc@15.4.2-canary.29': - optional: true - '@next/swc-win32-x64-msvc@15.4.5': optional: true - '@next/swc-win32-x64-msvc@15.5.6': + '@next/swc-win32-x64-msvc@16.0.0-canary.15': optional: true '@noble/ciphers@1.3.0': {} @@ -15509,6 +15642,9 @@ snapshots: detect-libc@2.0.4: {} + detect-libc@2.1.2: + optional: true + devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -18558,31 +18694,6 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.4.2-canary.29(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - '@next/env': 15.4.2-canary.29 - '@swc/helpers': 0.5.15 - caniuse-lite: 1.0.30001717 - postcss: 8.4.31 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - styled-jsx: 5.1.6(react@19.0.0) - optionalDependencies: - '@next/swc-darwin-arm64': 15.4.2-canary.29 - '@next/swc-darwin-x64': 15.4.2-canary.29 - '@next/swc-linux-arm64-gnu': 15.4.2-canary.29 - '@next/swc-linux-arm64-musl': 15.4.2-canary.29 - '@next/swc-linux-x64-gnu': 15.4.2-canary.29 - '@next/swc-linux-x64-musl': 15.4.2-canary.29 - '@next/swc-win32-arm64-msvc': 15.4.2-canary.29 - '@next/swc-win32-x64-msvc': 15.4.2-canary.29 - '@opentelemetry/api': 1.9.0 - '@playwright/test': 1.51.1 - sharp: 0.34.3 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - next@15.4.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@next/env': 15.4.5 @@ -18608,9 +18719,9 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.5.6(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next@16.0.0-canary.15(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@next/env': 15.5.6 + '@next/env': 16.0.0-canary.15 '@swc/helpers': 0.5.15 caniuse-lite: 1.0.30001717 postcss: 8.4.31 @@ -18618,17 +18729,17 @@ snapshots: react-dom: 19.0.0(react@19.0.0) styled-jsx: 5.1.6(react@19.0.0) optionalDependencies: - '@next/swc-darwin-arm64': 15.5.6 - '@next/swc-darwin-x64': 15.5.6 - '@next/swc-linux-arm64-gnu': 15.5.6 - '@next/swc-linux-arm64-musl': 15.5.6 - '@next/swc-linux-x64-gnu': 15.5.6 - '@next/swc-linux-x64-musl': 15.5.6 - '@next/swc-win32-arm64-msvc': 15.5.6 - '@next/swc-win32-x64-msvc': 15.5.6 + '@next/swc-darwin-arm64': 16.0.0-canary.15 + '@next/swc-darwin-x64': 16.0.0-canary.15 + '@next/swc-linux-arm64-gnu': 16.0.0-canary.15 + '@next/swc-linux-arm64-musl': 16.0.0-canary.15 + '@next/swc-linux-x64-gnu': 16.0.0-canary.15 + '@next/swc-linux-x64-musl': 16.0.0-canary.15 + '@next/swc-win32-arm64-msvc': 16.0.0-canary.15 + '@next/swc-win32-x64-msvc': 16.0.0-canary.15 '@opentelemetry/api': 1.9.0 '@playwright/test': 1.51.1 - sharp: 0.34.3 + sharp: 0.34.4 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -19580,8 +19691,7 @@ snapshots: semver@7.7.1: {} - semver@7.7.2: - optional: true + semver@7.7.2: {} send@1.2.0: dependencies: @@ -19692,6 +19802,36 @@ snapshots: '@img/sharp-win32-x64': 0.34.3 optional: true + sharp@0.34.4: + dependencies: + '@img/colour': 1.0.0 + detect-libc: 2.1.2 + semver: 7.7.2 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.34.4 + '@img/sharp-darwin-x64': 0.34.4 + '@img/sharp-libvips-darwin-arm64': 1.2.3 + '@img/sharp-libvips-darwin-x64': 1.2.3 + '@img/sharp-libvips-linux-arm': 1.2.3 + '@img/sharp-libvips-linux-arm64': 1.2.3 + '@img/sharp-libvips-linux-ppc64': 1.2.3 + '@img/sharp-libvips-linux-s390x': 1.2.3 + '@img/sharp-libvips-linux-x64': 1.2.3 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 + '@img/sharp-libvips-linuxmusl-x64': 1.2.3 + '@img/sharp-linux-arm': 0.34.4 + '@img/sharp-linux-arm64': 0.34.4 + '@img/sharp-linux-ppc64': 0.34.4 + '@img/sharp-linux-s390x': 0.34.4 + '@img/sharp-linux-x64': 0.34.4 + '@img/sharp-linuxmusl-arm64': 0.34.4 + '@img/sharp-linuxmusl-x64': 0.34.4 + '@img/sharp-wasm32': 0.34.4 + '@img/sharp-win32-arm64': 0.34.4 + '@img/sharp-win32-ia32': 0.34.4 + '@img/sharp-win32-x64': 0.34.4 + optional: true + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 From 974a21cad884d423cb8208ba5e4f09d63fe1d2d5 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Mon, 10 Nov 2025 15:23:01 +0100 Subject: [PATCH 3/7] fixup: lint --- examples/e2e/experimental/tsconfig.json | 64 +++++++---------- .../cli/build/open-next/createServerBundle.ts | 6 +- .../cli/build/patches/plugins/turbopack.ts | 68 ++++++++++--------- 3 files changed, 63 insertions(+), 75 deletions(-) diff --git a/examples/e2e/experimental/tsconfig.json b/examples/e2e/experimental/tsconfig.json index b575f7dac..99cb56b62 100644 --- a/examples/e2e/experimental/tsconfig.json +++ b/examples/e2e/experimental/tsconfig.json @@ -1,41 +1,27 @@ { - "compilerOptions": { - "target": "ES2017", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "bundler", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "react-jsx", - "incremental": true, - "plugins": [ - { - "name": "next" - } - ], - "paths": { - "@/*": [ - "./src/*" - ] - } - }, - "include": [ - "next-env.d.ts", - "**/*.ts", - "**/*.tsx", - ".next/types/**/*.ts", - ".next/dev/types/**/*.ts" - ], - "exclude": [ - "node_modules" - ] + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "react-jsx", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", ".next/dev/types/**/*.ts"], + "exclude": ["node_modules"] } diff --git a/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts b/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts index d3a90598d..7b1cef308 100644 --- a/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts +++ b/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts @@ -27,10 +27,10 @@ import type { Plugin } from "esbuild"; import { getOpenNextConfig } from "../../../api/config.js"; import { patchResRevalidate } from "../patches/plugins/res-revalidate.js"; +import { inlineChunksPatch } from "../patches/plugins/turbopack.js"; import { patchUseCacheIO } from "../patches/plugins/use-cache.js"; import { normalizePath } from "../utils/index.js"; import { copyWorkerdPackages } from "../utils/workerd.js"; -import { inlineChunksPatch } from "../patches/plugins/turbopack.js"; interface CodeCustomization { // These patches are meant to apply on user and next generated code @@ -289,8 +289,8 @@ async function generateBundle( alias: { ...(isBundled ? { - "next/dist/server/next-server.js": "./next-server.runtime.prod.js", - } + "next/dist/server/next-server.js": "./next-server.runtime.prod.js", + } : {}), }, }, diff --git a/packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts b/packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts index 755e30f7f..77301ea3e 100644 --- a/packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts +++ b/packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts @@ -1,5 +1,5 @@ import { patchCode } from "@opennextjs/aws/build/patch/astCodePatcher.js"; -import type { CodePatcher } from "@opennextjs/aws/build/patch/codePatcher"; +import type { CodePatcher } from "@opennextjs/aws/build/patch/codePatcher.js"; import { getCrossPlatformPathRegex } from "@opennextjs/aws/utils/regex.js"; const inlineChunksRule = ` @@ -11,49 +11,51 @@ fix: `; export const inlineChunksPatch: CodePatcher = { - name: "inline-turbopack-chunks", - patches: [ - { - versions: ">=16.0.0", - pathFilter: getCrossPlatformPathRegex( - String.raw`\[turbopack\]_runtime\.js$`, - { - escape: false, - } - ), - contentFilter: /loadRuntimeChunkPath/, - patchCode: async ({ code, tracedFiles }) => { - const patched = patchCode(code, inlineChunksRule); + name: "inline-turbopack-chunks", + patches: [ + { + versions: ">=16.0.0", + pathFilter: getCrossPlatformPathRegex(String.raw`\[turbopack\]_runtime\.js$`, { + escape: false, + }), + contentFilter: /loadRuntimeChunkPath/, + patchCode: async ({ code, tracedFiles }) => { + const patched = patchCode(code, inlineChunksRule); - return `${patched}\n${inlineChunksFn(tracedFiles)}`; - }, - }, - ], + return `${patched}\n${inlineChunksFn(tracedFiles)}`; + }, + }, + ], }; function getInlinableChunks(tracedFiles: string[]) { - const chunks = new Set(); - for (const file of tracedFiles) { - if (file.includes(".next/server/chunks/") && !file.includes("[turbopack]_runtime.js")) { - chunks.add(file); - } - } - return chunks; + const chunks = new Set(); + for (const file of tracedFiles) { + if (file.includes(".next/server/chunks/") && !file.includes("[turbopack]_runtime.js")) { + chunks.add(file); + } + } + return chunks; } function inlineChunksFn(tracedFiles: string[]) { - // From the outputs, we extract every chunks - const chunks = getInlinableChunks(tracedFiles); - return ` + // From the outputs, we extract every chunks + const chunks = getInlinableChunks(tracedFiles); + return ` function requireChunk(chunkPath) { switch(chunkPath) { -${Array.from(chunks).map(chunk => ` case "${ - // we only want the path after /path/to/.next/ - chunk.replace(/.*\.next\//, "") - }": return require("${chunk}");`).join("\n")} +${Array.from(chunks) + .map( + (chunk) => + ` case "${ + // we only want the path after /path/to/.next/ + chunk.replace(/.*\.next\//, "") + }": return require("${chunk}");` + ) + .join("\n")} default: throw new Error(\`Not found \${chunkPath}\`); } } `; -} \ No newline at end of file +} From cbe4844db78825727801c0dc9d82f62935ea6ef3 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Mon, 10 Nov 2025 15:31:27 +0100 Subject: [PATCH 4/7] fixup! fix lock file after rebase --- pnpm-lock.yaml | 123 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3d06ac973..91effe5b4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3439,6 +3439,9 @@ packages: '@next/env@15.4.5': resolution: {integrity: sha512-ruM+q2SCOVCepUiERoxOmZY9ZVoecR3gcXNwCYZRvQQWRjhOiPJGmQ2fAiLR6YKWXcSAh7G79KEFxN3rwhs4LQ==} + '@next/env@15.5.6': + resolution: {integrity: sha512-3qBGRW+sCGzgbpc5TS1a0p7eNxnOarGVQhZxfvTdnV0gFI61lX7QNtQ4V1TSREctXzYn5NetbUsLvyqwLFJM6Q==} + '@next/env@16.0.0-canary.15': resolution: {integrity: sha512-8jqx2sdos/GZfn438PBro+5gnAqOUeZ3r7jU7954n9DsvmrDYDIhzVL5UogvHLUEdgYADn+Luo0CLyfPIrybKg==} @@ -3496,6 +3499,12 @@ packages: cpu: [arm64] os: [darwin] + '@next/swc-darwin-arm64@15.5.6': + resolution: {integrity: sha512-ES3nRz7N+L5Umz4KoGfZ4XX6gwHplwPhioVRc25+QNsDa7RtUF/z8wJcbuQ2Tffm5RZwuN2A063eapoJ1u4nPg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + '@next/swc-darwin-arm64@16.0.0-canary.15': resolution: {integrity: sha512-z9F34hGTGq51C2UGhHT6ci4OflC3eneE4J9S/bCXnWND8PpH6mDaxbq+NG7O2vzAjtqFaYEhYjT7QQNs9gkAyA==} engines: {node: '>= 10'} @@ -3544,6 +3553,12 @@ packages: cpu: [x64] os: [darwin] + '@next/swc-darwin-x64@15.5.6': + resolution: {integrity: sha512-JIGcytAyk9LQp2/nuVZPAtj8uaJ/zZhsKOASTjxDug0SPU9LAM3wy6nPU735M1OqacR4U20LHVF5v5Wnl9ptTA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + '@next/swc-darwin-x64@16.0.0-canary.15': resolution: {integrity: sha512-CgarpUHQMNHf+3CEbwWKRKZQDsRiohQN0gMs67oRMU7hnLLVg2Vsg34wXtnkeGZugN1RwuADQ3mxh+eglMBUuw==} engines: {node: '>= 10'} @@ -3592,6 +3607,12 @@ packages: cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-gnu@15.5.6': + resolution: {integrity: sha512-qvz4SVKQ0P3/Im9zcS2RmfFL/UCQnsJKJwQSkissbngnB/12c6bZTCB0gHTexz1s6d/mD0+egPKXAIRFVS7hQg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-arm64-gnu@16.0.0-canary.15': resolution: {integrity: sha512-viAbf6wHgOp+btxHZJqxI9eOJkzi1o4FS+Be3O8qhoENVgGmUUehRMSG4AiGUmama+dqAqWqAhlKNeE07Ucz4w==} engines: {node: '>= 10'} @@ -3640,6 +3661,12 @@ packages: cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-musl@15.5.6': + resolution: {integrity: sha512-FsbGVw3SJz1hZlvnWD+T6GFgV9/NYDeLTNQB2MXoPN5u9VA9OEDy6fJEfePfsUKAhJufFbZLgp0cPxMuV6SV0w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-arm64-musl@16.0.0-canary.15': resolution: {integrity: sha512-fST2TNOzDuM2ucZFqdmcQzi2rBEmSm2hOTi7DN2wRoxNqbo2aJTIjGm65ZIamc0h0xeE/F69cuNyJS+b1ryZEg==} engines: {node: '>= 10'} @@ -3688,6 +3715,12 @@ packages: cpu: [x64] os: [linux] + '@next/swc-linux-x64-gnu@15.5.6': + resolution: {integrity: sha512-3QnHGFWlnvAgyxFxt2Ny8PTpXtQD7kVEeaFat5oPAHHI192WKYB+VIKZijtHLGdBBvc16tiAkPTDmQNOQ0dyrA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-linux-x64-gnu@16.0.0-canary.15': resolution: {integrity: sha512-jdElLDM+T+y0BxG/V/P7NiZoZXVfZenANAHtWFtjNz0avRmC53L/lC4kCvNXWP4OCxBI8rgFDDAByDw+oIx4lQ==} engines: {node: '>= 10'} @@ -3736,6 +3769,12 @@ packages: cpu: [x64] os: [linux] + '@next/swc-linux-x64-musl@15.5.6': + resolution: {integrity: sha512-OsGX148sL+TqMK9YFaPFPoIaJKbFJJxFzkXZljIgA9hjMjdruKht6xDCEv1HLtlLNfkx3c5w2GLKhj7veBQizQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-linux-x64-musl@16.0.0-canary.15': resolution: {integrity: sha512-UQYBPjwWZjhX0+a2OxXMfXK5X+zK+wU7m9yc8lXygNiBJHNnae7evZs1Kl0QKrPu23UsAPUk+nEvEHT8TskoqA==} engines: {node: '>= 10'} @@ -3784,6 +3823,12 @@ packages: cpu: [arm64] os: [win32] + '@next/swc-win32-arm64-msvc@15.5.6': + resolution: {integrity: sha512-ONOMrqWxdzXDJNh2n60H6gGyKed42Ieu6UTVPZteXpuKbLZTH4G4eBMsr5qWgOBA+s7F+uB4OJbZnrkEDnZ5Fg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + '@next/swc-win32-arm64-msvc@16.0.0-canary.15': resolution: {integrity: sha512-kmT0okdaFImEV8jfBQXokmf20AUGqEBoPStxheTRuIrcVZLAUZTK/H6ZfivZSlkQdN4M2sE7U1RYuuyFUZ67Cw==} engines: {node: '>= 10'} @@ -3844,6 +3889,12 @@ packages: cpu: [x64] os: [win32] + '@next/swc-win32-x64-msvc@15.5.6': + resolution: {integrity: sha512-pxK4VIjFRx1MY92UycLOOw7dTdvccWsNETQ0kDHkBlcFH1GrTLUjSiHU1ohrznnux6TqRHgv5oflhfIWZwVROQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@next/swc-win32-x64-msvc@16.0.0-canary.15': resolution: {integrity: sha512-BrSrVPtVeFPNfR0iNeV51bQIXiIYFmMAGQWnMoahBVUkNH9UGVzw3rO61CIdUYfXtTdsMvBGkREAfZ7+X2gOeA==} engines: {node: '>= 10'} @@ -7952,6 +8003,27 @@ packages: sass: optional: true + next@15.5.6: + resolution: {integrity: sha512-zTxsnI3LQo3c9HSdSf91O1jMNsEzIXDShXd4wVdg9y5shwLqBXi4ZtUUJyB86KGVSJLZx0PFONvO54aheGX8QQ==} + 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@16.0.0-canary.15: resolution: {integrity: sha512-dKt33hWYxWsaka6FKOV2BmRRMSXi6DLGUOsIIkBU7UmAcjoZwx2TNjsuO30Hus5w+1987e75LghENEuS5N2sDg==} engines: {node: '>=20.9.0'} @@ -12864,6 +12936,8 @@ snapshots: '@next/env@15.4.5': {} + '@next/env@15.5.6': {} + '@next/env@16.0.0-canary.15': {} '@next/eslint-plugin-next@14.2.14': @@ -12903,6 +12977,9 @@ snapshots: '@next/swc-darwin-arm64@15.4.5': optional: true + '@next/swc-darwin-arm64@15.5.6': + optional: true + '@next/swc-darwin-arm64@16.0.0-canary.15': optional: true @@ -12927,6 +13004,9 @@ snapshots: '@next/swc-darwin-x64@15.4.5': optional: true + '@next/swc-darwin-x64@15.5.6': + optional: true + '@next/swc-darwin-x64@16.0.0-canary.15': optional: true @@ -12951,6 +13031,9 @@ snapshots: '@next/swc-linux-arm64-gnu@15.4.5': optional: true + '@next/swc-linux-arm64-gnu@15.5.6': + optional: true + '@next/swc-linux-arm64-gnu@16.0.0-canary.15': optional: true @@ -12975,6 +13058,9 @@ snapshots: '@next/swc-linux-arm64-musl@15.4.5': optional: true + '@next/swc-linux-arm64-musl@15.5.6': + optional: true + '@next/swc-linux-arm64-musl@16.0.0-canary.15': optional: true @@ -12999,6 +13085,9 @@ snapshots: '@next/swc-linux-x64-gnu@15.4.5': optional: true + '@next/swc-linux-x64-gnu@15.5.6': + optional: true + '@next/swc-linux-x64-gnu@16.0.0-canary.15': optional: true @@ -13023,6 +13112,9 @@ snapshots: '@next/swc-linux-x64-musl@15.4.5': optional: true + '@next/swc-linux-x64-musl@15.5.6': + optional: true + '@next/swc-linux-x64-musl@16.0.0-canary.15': optional: true @@ -13047,6 +13139,9 @@ snapshots: '@next/swc-win32-arm64-msvc@15.4.5': optional: true + '@next/swc-win32-arm64-msvc@15.5.6': + optional: true + '@next/swc-win32-arm64-msvc@16.0.0-canary.15': optional: true @@ -13077,6 +13172,9 @@ snapshots: '@next/swc-win32-x64-msvc@15.4.5': optional: true + '@next/swc-win32-x64-msvc@15.5.6': + optional: true + '@next/swc-win32-x64-msvc@16.0.0-canary.15': optional: true @@ -18719,6 +18817,31 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@15.5.6(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@next/env': 15.5.6 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001717 + postcss: 8.4.31 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + styled-jsx: 5.1.6(react@19.0.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.5.6 + '@next/swc-darwin-x64': 15.5.6 + '@next/swc-linux-arm64-gnu': 15.5.6 + '@next/swc-linux-arm64-musl': 15.5.6 + '@next/swc-linux-x64-gnu': 15.5.6 + '@next/swc-linux-x64-musl': 15.5.6 + '@next/swc-win32-arm64-msvc': 15.5.6 + '@next/swc-win32-x64-msvc': 15.5.6 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.51.1 + sharp: 0.34.4 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + next@16.0.0-canary.15(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@next/env': 16.0.0-canary.15 From b17f6de2f4b27b5c21cd156a11c4f566966bdddb Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Mon, 10 Nov 2025 15:57:47 +0100 Subject: [PATCH 5/7] fixup! updates for Next 16 --- examples/e2e/experimental/next.config.ts | 4 +--- examples/e2e/experimental/src/app/api/revalidate/route.ts | 2 +- examples/e2e/experimental/src/components/cached.tsx | 6 +++--- packages/cloudflare/src/cli/build/bundle-server.ts | 4 ---- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/examples/e2e/experimental/next.config.ts b/examples/e2e/experimental/next.config.ts index 34d00e7bc..d678d7520 100644 --- a/examples/e2e/experimental/next.config.ts +++ b/examples/e2e/experimental/next.config.ts @@ -4,13 +4,11 @@ const nextConfig: NextConfig = { /* config options here */ cleanDistDir: true, output: "standalone", + cacheComponents: true, typescript: { // Ignore type errors during build for now, we'll need to figure this out later ignoreBuildErrors: true, }, - experimental: { - cacheComponents: true, - }, }; export default nextConfig; diff --git a/examples/e2e/experimental/src/app/api/revalidate/route.ts b/examples/e2e/experimental/src/app/api/revalidate/route.ts index 0d55d697a..cd7dc7103 100644 --- a/examples/e2e/experimental/src/app/api/revalidate/route.ts +++ b/examples/e2e/experimental/src/app/api/revalidate/route.ts @@ -1,6 +1,6 @@ import { revalidateTag } from "next/cache"; export function GET() { - revalidateTag("fullyTagged"); + revalidateTag("fullyTagged", { expire: 0 }); return new Response("DONE"); } diff --git a/examples/e2e/experimental/src/components/cached.tsx b/examples/e2e/experimental/src/components/cached.tsx index 2f299ad8d..92b50db4a 100644 --- a/examples/e2e/experimental/src/components/cached.tsx +++ b/examples/e2e/experimental/src/components/cached.tsx @@ -1,4 +1,4 @@ -import { unstable_cacheLife, unstable_cacheTag } from "next/cache"; +import { cacheLife, cacheTag } from "next/cache"; export async function FullyCachedComponent() { "use cache"; @@ -11,7 +11,7 @@ export async function FullyCachedComponent() { export async function FullyCachedComponentWithTag() { "use cache"; - unstable_cacheTag("fullyTagged"); + cacheTag("fullyTagged"); return (

{Date.now()}

@@ -21,7 +21,7 @@ export async function FullyCachedComponentWithTag() { export async function ISRComponent() { "use cache"; - unstable_cacheLife({ + cacheLife({ stale: 1, revalidate: 5, }); diff --git a/packages/cloudflare/src/cli/build/bundle-server.ts b/packages/cloudflare/src/cli/build/bundle-server.ts index 954024513..a28953c13 100644 --- a/packages/cloudflare/src/cli/build/bundle-server.ts +++ b/packages/cloudflare/src/cli/build/bundle-server.ts @@ -144,10 +144,6 @@ export async function bundleServer(buildOpts: BuildOptions, projectOpts: Project // We make sure that environment variables that Next.js expects are properly defined "process.env.NEXT_RUNTIME": '"nodejs"', "process.env.NODE_ENV": '"production"', - // The 2 following defines are used to reduce the bundle size by removing unnecessary code - // Next uses different precompiled renderers (i.e. `app-page.runtime.prod.js`) based on if you use `TURBOPACK` or some experimental React features - // Turbopack is not supported for build at the moment, so we disable it - "process.env.TURBOPACK": "false", // This define should be safe to use for Next 14.2+, earlier versions (13.5 and less) will cause trouble "process.env.__NEXT_EXPERIMENTAL_REACT": `${needsExperimentalReact(nextConfig)}`, // Fix `res.validate` in Next 15.4 (together with the `route-module` patch) From 20b779e9f6952df928d4424fde4b1183af3bbccf Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Mon, 10 Nov 2025 17:04:44 +0100 Subject: [PATCH 6/7] fixup! update to latest Canary to fix cache bug --- examples/e2e/experimental/package.json | 2 +- pnpm-lock.yaml | 82 +++++++++++++------------- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/examples/e2e/experimental/package.json b/examples/e2e/experimental/package.json index f9ca03ba2..aef72dfcd 100644 --- a/examples/e2e/experimental/package.json +++ b/examples/e2e/experimental/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@opennextjs/cloudflare": "workspace:*", - "next": "16.0.0-canary.15", + "next": "16.0.2-canary.13", "react": "catalog:e2e", "react-dom": "catalog:e2e" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 91effe5b4..6e15a642a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -526,8 +526,8 @@ importers: specifier: workspace:* version: link:../../../packages/cloudflare next: - specifier: 16.0.0-canary.15 - version: 16.0.0-canary.15(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: 16.0.2-canary.13 + version: 16.0.2-canary.13(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: specifier: catalog:e2e version: 19.0.0 @@ -3442,8 +3442,8 @@ packages: '@next/env@15.5.6': resolution: {integrity: sha512-3qBGRW+sCGzgbpc5TS1a0p7eNxnOarGVQhZxfvTdnV0gFI61lX7QNtQ4V1TSREctXzYn5NetbUsLvyqwLFJM6Q==} - '@next/env@16.0.0-canary.15': - resolution: {integrity: sha512-8jqx2sdos/GZfn438PBro+5gnAqOUeZ3r7jU7954n9DsvmrDYDIhzVL5UogvHLUEdgYADn+Luo0CLyfPIrybKg==} + '@next/env@16.0.2-canary.13': + resolution: {integrity: sha512-dumqLdc5cyAVb+gXkByT1K6hbMCIu1GSF+DaGNR3za7Eq9yyYrys8HV/293iOpFwc+yB3KqLttqVLXGzca7EiQ==} '@next/eslint-plugin-next@14.2.14': resolution: {integrity: sha512-kV+OsZ56xhj0rnTn6HegyTGkoa16Mxjrpk7pjWumyB2P8JVQb8S9qtkjy/ye0GnTr4JWtWG4x/2qN40lKZ3iVQ==} @@ -3505,8 +3505,8 @@ packages: cpu: [arm64] os: [darwin] - '@next/swc-darwin-arm64@16.0.0-canary.15': - resolution: {integrity: sha512-z9F34hGTGq51C2UGhHT6ci4OflC3eneE4J9S/bCXnWND8PpH6mDaxbq+NG7O2vzAjtqFaYEhYjT7QQNs9gkAyA==} + '@next/swc-darwin-arm64@16.0.2-canary.13': + resolution: {integrity: sha512-/DDGrMDQlIRHJU/woJgK+A0bxCuyrw7O6EY0aAQidD/7y0pcW+Eq51+UIEAUxxKx4iBoI2LMvQcmzCxBWmjf5Q==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -3559,8 +3559,8 @@ packages: cpu: [x64] os: [darwin] - '@next/swc-darwin-x64@16.0.0-canary.15': - resolution: {integrity: sha512-CgarpUHQMNHf+3CEbwWKRKZQDsRiohQN0gMs67oRMU7hnLLVg2Vsg34wXtnkeGZugN1RwuADQ3mxh+eglMBUuw==} + '@next/swc-darwin-x64@16.0.2-canary.13': + resolution: {integrity: sha512-7BDXqwbQQxYpVU/OWzsKUh0zYjL3jCGG4mD/MK8IWTKw4R1RRakJCCOF7D+PPwCQ65Wabq/pH/F/9z9hSv4eCw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -3613,8 +3613,8 @@ packages: cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-gnu@16.0.0-canary.15': - resolution: {integrity: sha512-viAbf6wHgOp+btxHZJqxI9eOJkzi1o4FS+Be3O8qhoENVgGmUUehRMSG4AiGUmama+dqAqWqAhlKNeE07Ucz4w==} + '@next/swc-linux-arm64-gnu@16.0.2-canary.13': + resolution: {integrity: sha512-F/TBhiRWOyECtTujCQxYRMV0SEauvoY5IO1WOzvc2C474/d8Q+4vzstAKbPc7DNfv20FrXykQteDhLi3pRGrag==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -3667,8 +3667,8 @@ packages: cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@16.0.0-canary.15': - resolution: {integrity: sha512-fST2TNOzDuM2ucZFqdmcQzi2rBEmSm2hOTi7DN2wRoxNqbo2aJTIjGm65ZIamc0h0xeE/F69cuNyJS+b1ryZEg==} + '@next/swc-linux-arm64-musl@16.0.2-canary.13': + resolution: {integrity: sha512-vz3toyCjrU/I9ZZFQlHVBBcSzIgQwaIFSUdT2EG067vi4y1u9HdLfJNSWW2bKU4WfbyF3FTxhbXCp57TiR/mLA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -3721,8 +3721,8 @@ packages: cpu: [x64] os: [linux] - '@next/swc-linux-x64-gnu@16.0.0-canary.15': - resolution: {integrity: sha512-jdElLDM+T+y0BxG/V/P7NiZoZXVfZenANAHtWFtjNz0avRmC53L/lC4kCvNXWP4OCxBI8rgFDDAByDw+oIx4lQ==} + '@next/swc-linux-x64-gnu@16.0.2-canary.13': + resolution: {integrity: sha512-vToY4INmEIFp1hpvzwSrvnCES26E1gCnTV+knXeQNnPzRUMald1E+ZVOKqXhOIyeZcZEcT6x4F1RS5CTW8iAmQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -3775,8 +3775,8 @@ packages: cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@16.0.0-canary.15': - resolution: {integrity: sha512-UQYBPjwWZjhX0+a2OxXMfXK5X+zK+wU7m9yc8lXygNiBJHNnae7evZs1Kl0QKrPu23UsAPUk+nEvEHT8TskoqA==} + '@next/swc-linux-x64-musl@16.0.2-canary.13': + resolution: {integrity: sha512-RmHJ3wq4FrbdW2uZCDoZgzbS34rwpTkFe+tKmdpJhRqlKsrcXhYDofKGqCzkRmb49JjK/GPBuYHuxoqjM1MQNQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -3829,8 +3829,8 @@ packages: cpu: [arm64] os: [win32] - '@next/swc-win32-arm64-msvc@16.0.0-canary.15': - resolution: {integrity: sha512-kmT0okdaFImEV8jfBQXokmf20AUGqEBoPStxheTRuIrcVZLAUZTK/H6ZfivZSlkQdN4M2sE7U1RYuuyFUZ67Cw==} + '@next/swc-win32-arm64-msvc@16.0.2-canary.13': + resolution: {integrity: sha512-e3gq+Vy21E611Y1qLxzTC/c+GhScLlctGcmBvR5txiPVxkHnn4RB+7sdSMp0M0gSI6y+SPOfAPWxNDSCCG9JCA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -3895,8 +3895,8 @@ packages: cpu: [x64] os: [win32] - '@next/swc-win32-x64-msvc@16.0.0-canary.15': - resolution: {integrity: sha512-BrSrVPtVeFPNfR0iNeV51bQIXiIYFmMAGQWnMoahBVUkNH9UGVzw3rO61CIdUYfXtTdsMvBGkREAfZ7+X2gOeA==} + '@next/swc-win32-x64-msvc@16.0.2-canary.13': + resolution: {integrity: sha512-5p1vvvZOA0dZjmOMjd4PpfHfv5wI+Q8ByXwAuDjsCZNiobQa8t1UMSFWdDV0GFZgPfBbE02aVfC6PWBUF9wfbQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -8024,8 +8024,8 @@ packages: sass: optional: true - next@16.0.0-canary.15: - resolution: {integrity: sha512-dKt33hWYxWsaka6FKOV2BmRRMSXi6DLGUOsIIkBU7UmAcjoZwx2TNjsuO30Hus5w+1987e75LghENEuS5N2sDg==} + next@16.0.2-canary.13: + resolution: {integrity: sha512-F8R9GYxJ32ZBhF6t2ZKfVhZoMxPXRwNeNrx8+VR+2xs55rOEZgeI1Lq18+FBZ2I+rp/KJMYv5+UUAJAcuILQTw==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -12938,7 +12938,7 @@ snapshots: '@next/env@15.5.6': {} - '@next/env@16.0.0-canary.15': {} + '@next/env@16.0.2-canary.13': {} '@next/eslint-plugin-next@14.2.14': dependencies: @@ -12980,7 +12980,7 @@ snapshots: '@next/swc-darwin-arm64@15.5.6': optional: true - '@next/swc-darwin-arm64@16.0.0-canary.15': + '@next/swc-darwin-arm64@16.0.2-canary.13': optional: true '@next/swc-darwin-x64@14.2.24': @@ -13007,7 +13007,7 @@ snapshots: '@next/swc-darwin-x64@15.5.6': optional: true - '@next/swc-darwin-x64@16.0.0-canary.15': + '@next/swc-darwin-x64@16.0.2-canary.13': optional: true '@next/swc-linux-arm64-gnu@14.2.24': @@ -13034,7 +13034,7 @@ snapshots: '@next/swc-linux-arm64-gnu@15.5.6': optional: true - '@next/swc-linux-arm64-gnu@16.0.0-canary.15': + '@next/swc-linux-arm64-gnu@16.0.2-canary.13': optional: true '@next/swc-linux-arm64-musl@14.2.24': @@ -13061,7 +13061,7 @@ snapshots: '@next/swc-linux-arm64-musl@15.5.6': optional: true - '@next/swc-linux-arm64-musl@16.0.0-canary.15': + '@next/swc-linux-arm64-musl@16.0.2-canary.13': optional: true '@next/swc-linux-x64-gnu@14.2.24': @@ -13088,7 +13088,7 @@ snapshots: '@next/swc-linux-x64-gnu@15.5.6': optional: true - '@next/swc-linux-x64-gnu@16.0.0-canary.15': + '@next/swc-linux-x64-gnu@16.0.2-canary.13': optional: true '@next/swc-linux-x64-musl@14.2.24': @@ -13115,7 +13115,7 @@ snapshots: '@next/swc-linux-x64-musl@15.5.6': optional: true - '@next/swc-linux-x64-musl@16.0.0-canary.15': + '@next/swc-linux-x64-musl@16.0.2-canary.13': optional: true '@next/swc-win32-arm64-msvc@14.2.24': @@ -13142,7 +13142,7 @@ snapshots: '@next/swc-win32-arm64-msvc@15.5.6': optional: true - '@next/swc-win32-arm64-msvc@16.0.0-canary.15': + '@next/swc-win32-arm64-msvc@16.0.2-canary.13': optional: true '@next/swc-win32-ia32-msvc@14.2.24': @@ -13175,7 +13175,7 @@ snapshots: '@next/swc-win32-x64-msvc@15.5.6': optional: true - '@next/swc-win32-x64-msvc@16.0.0-canary.15': + '@next/swc-win32-x64-msvc@16.0.2-canary.13': optional: true '@noble/ciphers@1.3.0': {} @@ -18842,9 +18842,9 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@16.0.0-canary.15(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next@16.0.2-canary.13(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@next/env': 16.0.0-canary.15 + '@next/env': 16.0.2-canary.13 '@swc/helpers': 0.5.15 caniuse-lite: 1.0.30001717 postcss: 8.4.31 @@ -18852,14 +18852,14 @@ snapshots: react-dom: 19.0.0(react@19.0.0) styled-jsx: 5.1.6(react@19.0.0) optionalDependencies: - '@next/swc-darwin-arm64': 16.0.0-canary.15 - '@next/swc-darwin-x64': 16.0.0-canary.15 - '@next/swc-linux-arm64-gnu': 16.0.0-canary.15 - '@next/swc-linux-arm64-musl': 16.0.0-canary.15 - '@next/swc-linux-x64-gnu': 16.0.0-canary.15 - '@next/swc-linux-x64-musl': 16.0.0-canary.15 - '@next/swc-win32-arm64-msvc': 16.0.0-canary.15 - '@next/swc-win32-x64-msvc': 16.0.0-canary.15 + '@next/swc-darwin-arm64': 16.0.2-canary.13 + '@next/swc-darwin-x64': 16.0.2-canary.13 + '@next/swc-linux-arm64-gnu': 16.0.2-canary.13 + '@next/swc-linux-arm64-musl': 16.0.2-canary.13 + '@next/swc-linux-x64-gnu': 16.0.2-canary.13 + '@next/swc-linux-x64-musl': 16.0.2-canary.13 + '@next/swc-win32-arm64-msvc': 16.0.2-canary.13 + '@next/swc-win32-x64-msvc': 16.0.2-canary.13 '@opentelemetry/api': 1.9.0 '@playwright/test': 1.51.1 sharp: 0.34.4 From 64bf7c77b760cc08cfc6f82f9a2d73adc36b8f2f Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Mon, 10 Nov 2025 17:39:35 +0100 Subject: [PATCH 7/7] fixup! use turbopack in app-router --- examples/e2e/app-router/package.json | 2 +- packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/e2e/app-router/package.json b/examples/e2e/app-router/package.json index 3101e5313..451340479 100644 --- a/examples/e2e/app-router/package.json +++ b/examples/e2e/app-router/package.json @@ -5,7 +5,7 @@ "scripts": { "openbuild": "node ../../packages/open-next/dist/index.js build --streaming --build-command \"npx turbo build\"", "dev": "next dev --turbopack --port 3001", - "build": "next build", + "build": "next build --turbopack", "start": "next start --port 3001", "lint": "next lint", "clean": "rm -rf .turbo node_modules .next .open-next", diff --git a/packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts b/packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts index 77301ea3e..d54d953a8 100644 --- a/packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts +++ b/packages/cloudflare/src/cli/build/patches/plugins/turbopack.ts @@ -14,7 +14,7 @@ export const inlineChunksPatch: CodePatcher = { name: "inline-turbopack-chunks", patches: [ { - versions: ">=16.0.0", + versions: ">=15.0.0", pathFilter: getCrossPlatformPathRegex(String.raw`\[turbopack\]_runtime\.js$`, { escape: false, }),