diff --git a/crates/next-api/src/middleware.rs b/crates/next-api/src/middleware.rs index ace2d5c0b9adc6..63304b4b9d3f47 100644 --- a/crates/next-api/src/middleware.rs +++ b/crates/next-api/src/middleware.rs @@ -42,31 +42,6 @@ use crate::{ route::{Endpoint, EndpointOutput, EndpointOutputPaths}, }; -/// Rust implementation of the TypeScript getDefaultMiddlewareMatcher function -/// Generates default middleware matcher patterns that respect skipMiddlewareNextInternalRoutes -fn get_default_middleware_matcher( - skip_middleware_next_internal_routes: Option, -) -> MiddlewareMatcher { - let skip_internal = skip_middleware_next_internal_routes.unwrap_or(true); - - if skip_internal { - // Skip "/_next/" internal routes, except for "/_next/data/" which is needed for - // client-side navigation. Do not consider basePath as the user cannot create a - // route starts with underscore. - MiddlewareMatcher { - regexp: Some(rcstr!("^(?!.*\\/\\_next\\/(?!data\\/)).*")), - original_source: rcstr!("/((?!_next/(?!data/))[^]*)*"), - ..Default::default() - } - } else { - MiddlewareMatcher { - regexp: Some(rcstr!("^/.*$")), - original_source: rcstr!("/:path*"), - ..Default::default() - } - } -} - #[turbo_tasks::value] pub struct MiddlewareEndpoint { project: ResolvedVc, @@ -190,8 +165,6 @@ impl MiddlewareEndpoint { .map(|i18n| i18n.locales.len() > 1) .unwrap_or(false); let base_path = next_config.base_path().await?; - let skip_middleware_next_internal_routes = - next_config.skip_middleware_next_internal_routes().await?; let matchers = if let Some(matchers) = config.middleware_matcher.as_ref() { matchers @@ -243,9 +216,11 @@ impl MiddlewareEndpoint { }) .collect() } else { - vec![get_default_middleware_matcher( - *skip_middleware_next_internal_routes, - )] + vec![MiddlewareMatcher { + regexp: Some(rcstr!("^/.*$")), + original_source: rcstr!("/:path*"), + ..Default::default() + }] }; if matches!(runtime, NextRuntime::NodeJs) { diff --git a/crates/next-core/src/next_config.rs b/crates/next-core/src/next_config.rs index b3b4bcffa6778d..3c41b2b02388cb 100644 --- a/crates/next-core/src/next_config.rs +++ b/crates/next-core/src/next_config.rs @@ -103,7 +103,6 @@ pub struct NextConfig { asset_prefix: Option, base_path: Option, skip_middleware_url_normalize: Option, - skip_middleware_next_internal_routes: Option, skip_trailing_slash_redirect: Option, i18n: Option, cross_origin: Option, @@ -1344,11 +1343,6 @@ impl NextConfig { Vc::cell(self.base_path.clone()) } - #[turbo_tasks::function] - pub fn skip_middleware_next_internal_routes(&self) -> Vc> { - Vc::cell(self.skip_middleware_next_internal_routes) - } - #[turbo_tasks::function] pub fn cache_handler(&self, project_path: FileSystemPath) -> Result> { if let Some(handler) = &self.cache_handler { diff --git a/packages/next/src/build/entries.ts b/packages/next/src/build/entries.ts index c55eec3afe5ad2..db1356f92104e2 100644 --- a/packages/next/src/build/entries.ts +++ b/packages/next/src/build/entries.ts @@ -47,7 +47,6 @@ import { isInstrumentationHookFilename, } from './utils' import { getPageStaticInfo } from './analysis/get-page-static-info' -import { getDefaultMiddlewareMatcher } from '../shared/lib/router/utils/get-default-middleware-matcher' import { normalizePathSep } from '../shared/lib/page-path/normalize-path-sep' import { normalizePagePath } from '../shared/lib/page-path/normalize-page-path' import type { ServerRuntime } from '../types' @@ -901,7 +900,7 @@ export async function createEntrypoints( if (isMiddlewareFile(page)) { middlewareMatchers = staticInfo.middleware?.matchers ?? [ - getDefaultMiddlewareMatcher(params.config), + { regexp: '.*', originalSource: '/:path*' }, ] } diff --git a/packages/next/src/build/index.ts b/packages/next/src/build/index.ts index f22b53f19ba72b..3987eddb8acdb7 100644 --- a/packages/next/src/build/index.ts +++ b/packages/next/src/build/index.ts @@ -151,7 +151,6 @@ import { isEdgeRuntime } from '../lib/is-edge-runtime' import { recursiveCopy } from '../lib/recursive-copy' import { lockfilePatchPromise, teardownTraceSubscriber } from './swc' import { getNamedRouteRegex } from '../shared/lib/router/utils/route-regex' -import { getDefaultMiddlewareMatcher } from '../shared/lib/router/utils/get-default-middleware-matcher' import { getFilesInDir } from '../lib/get-files-in-dir' import { eventSwcPlugins } from '../telemetry/events/swc-plugins' import { normalizeAppPath } from '../shared/lib/router/utils/app-paths' @@ -2585,7 +2584,10 @@ export default async function build( functionsConfigManifest.functions['/_middleware'] = { runtime: staticInfo.runtime, matchers: staticInfo.middleware?.matchers ?? [ - getDefaultMiddlewareMatcher(config), + { + regexp: '^.*$', + originalSource: '/:path*', + }, ], } diff --git a/packages/next/src/build/webpack-config.ts b/packages/next/src/build/webpack-config.ts index 09e65bdc933bd8..04b97894050939 100644 --- a/packages/next/src/build/webpack-config.ts +++ b/packages/next/src/build/webpack-config.ts @@ -2081,7 +2081,6 @@ export default async function getBaseWebpackConfig( dev, sriEnabled: !dev && !!config.experimental.sri?.algorithm, rewrites, - nextConfig: config, edgeEnvironments: { __NEXT_BUILD_ID: buildId, NEXT_SERVER_ACTIONS_ENCRYPTION_KEY: encryptionKey, diff --git a/packages/next/src/build/webpack/plugins/middleware-plugin.ts b/packages/next/src/build/webpack/plugins/middleware-plugin.ts index 1d78740f0e0b9c..3f36ac8b09026a 100644 --- a/packages/next/src/build/webpack/plugins/middleware-plugin.ts +++ b/packages/next/src/build/webpack/plugins/middleware-plugin.ts @@ -5,7 +5,6 @@ import type { import type { EdgeSSRMeta } from '../loaders/get-module-build-info' import type { MiddlewareMatcher } from '../../analysis/get-page-static-info' import { getNamedMiddlewareRegex } from '../../../shared/lib/router/utils/route-regex' -import { getDefaultMiddlewareMatcher } from '../../../shared/lib/router/utils/get-default-middleware-matcher' import { getModuleBuildInfo } from '../loaders/get-module-build-info' import { getSortedRoutes } from '../../../shared/lib/router/utils' import { webpack, sources } from 'next/dist/compiled/webpack/webpack' @@ -37,7 +36,6 @@ import type { CustomRoutes } from '../../../lib/load-custom-routes' import { isInterceptionRouteRewrite } from '../../../lib/generate-interception-routes-rewrites' import { getDynamicCodeEvaluationError } from './wellknown-errors-plugin/parse-dynamic-code-evaluation-error' import { getModuleReferencesInOrder } from '../utils' -import type { NextConfigComplete } from '../../../server/config-shared' const KNOWN_SAFE_DYNAMIC_PACKAGES = require('../../../lib/known-edge-safe-packages.json') as string[] @@ -197,29 +195,21 @@ function getCreateAssets(params: { continue } - let matchers: MiddlewareMatcher[] - if (metadata?.edgeMiddleware?.matchers) { - matchers = metadata.edgeMiddleware.matchers - } else { - // For middleware at root with no explicit matchers, use getDefaultMiddlewareMatcher - // which respects skipMiddlewareNextInternalRoutes config - const catchAll = !metadata.edgeSSR && !metadata.edgeApiFunction - if (page === '/' && catchAll) { - matchers = [getDefaultMiddlewareMatcher(opts.nextConfig)] - } else { - const matcherSource = metadata.edgeSSR?.isAppDir - ? normalizeAppPath(page) - : page - matchers = [ - { - regexp: getNamedMiddlewareRegex(matcherSource, { - catchAll, - }).namedRegex, - originalSource: matcherSource, - }, - ] - } - } + const matcherSource = metadata.edgeSSR?.isAppDir + ? normalizeAppPath(page) + : page + + const catchAll = !metadata.edgeSSR && !metadata.edgeApiFunction + + const { namedRegex } = getNamedMiddlewareRegex(matcherSource, { + catchAll, + }) + const matchers = metadata?.edgeMiddleware?.matchers ?? [ + { + regexp: namedRegex, + originalSource: page === '/' && catchAll ? '/:path*' : matcherSource, + }, + ] const isEdgeFunction = !!(metadata.edgeApiFunction || metadata.edgeSSR) const edgeFunctionDefinition: EdgeFunctionDefinition = { @@ -828,7 +818,6 @@ interface Options { sriEnabled: boolean rewrites: CustomRoutes['rewrites'] edgeEnvironments: EdgeRuntimeEnvironments - nextConfig: NextConfigComplete } export default class MiddlewarePlugin { @@ -836,20 +825,12 @@ export default class MiddlewarePlugin { private readonly sriEnabled: Options['sriEnabled'] private readonly rewrites: Options['rewrites'] private readonly edgeEnvironments: EdgeRuntimeEnvironments - private readonly nextConfig: Options['nextConfig'] - - constructor({ - dev, - sriEnabled, - rewrites, - edgeEnvironments, - nextConfig, - }: Options) { + + constructor({ dev, sriEnabled, rewrites, edgeEnvironments }: Options) { this.dev = dev this.sriEnabled = sriEnabled this.rewrites = rewrites this.edgeEnvironments = edgeEnvironments - this.nextConfig = nextConfig } public apply(compiler: webpack.Compiler) { @@ -905,7 +886,6 @@ export default class MiddlewarePlugin { rewrites: this.rewrites, edgeEnvironments: this.edgeEnvironments, dev: this.dev, - nextConfig: this.nextConfig, }, }) ) diff --git a/packages/next/src/server/config-schema.ts b/packages/next/src/server/config-schema.ts index 11b4736a0efcbd..a1bd2b7cee8640 100644 --- a/packages/next/src/server/config-schema.ts +++ b/packages/next/src/server/config-schema.ts @@ -669,7 +669,6 @@ export const configSchema: zod.ZodType = z.lazy(() => .optional(), serverExternalPackages: z.array(z.string()).optional(), skipMiddlewareUrlNormalize: z.boolean().optional(), - skipMiddlewareNextInternalRoutes: z.boolean().optional(), skipTrailingSlashRedirect: z.boolean().optional(), staticPageGenerationTimeout: z.number().optional(), expireTime: z.number().optional(), diff --git a/packages/next/src/server/config-shared.ts b/packages/next/src/server/config-shared.ts index 3e83a2854831ee..be8699e10486fd 100644 --- a/packages/next/src/server/config-shared.ts +++ b/packages/next/src/server/config-shared.ts @@ -1228,12 +1228,6 @@ export interface NextConfig { skipMiddlewareUrlNormalize?: boolean - /** - * Skip Next.js internals route `/_next` from middleware. - * @default true - */ - skipMiddlewareNextInternalRoutes?: boolean - skipTrailingSlashRedirect?: boolean modularizeImports?: Record< @@ -1507,7 +1501,6 @@ export const defaultConfig = Object.freeze({ }, htmlLimitedBots: undefined, bundlePagesRouterDependencies: false, - skipMiddlewareNextInternalRoutes: true, } satisfies NextConfig) export async function normalizeConfig(phase: string, config: any) { diff --git a/packages/next/src/server/lib/router-utils/filesystem.ts b/packages/next/src/server/lib/router-utils/filesystem.ts index be19679c7878f7..cd276cd69eb58b 100644 --- a/packages/next/src/server/lib/router-utils/filesystem.ts +++ b/packages/next/src/server/lib/router-utils/filesystem.ts @@ -31,7 +31,6 @@ import { pathHasPrefix } from '../../../shared/lib/router/utils/path-has-prefix' import { normalizeLocalePath } from '../../../shared/lib/i18n/normalize-locale-path' import { removePathPrefix } from '../../../shared/lib/router/utils/remove-path-prefix' import { getMiddlewareRouteMatcher } from '../../../shared/lib/router/utils/middleware-route-matcher' -import { getDefaultMiddlewareMatcher } from '../../../shared/lib/router/utils/get-default-middleware-matcher' import { APP_PATH_ROUTES_MANIFEST, BUILD_ID_FILE, @@ -315,7 +314,7 @@ export async function setupFsCheck(opts: { } else if (functionsConfigManifest?.functions['/_middleware']) { middlewareMatcher = getMiddlewareRouteMatcher( functionsConfigManifest.functions['/_middleware'].matchers ?? [ - getDefaultMiddlewareMatcher(opts.config), + { regexp: '.*', originalSource: '/:path*' }, ] ) } diff --git a/packages/next/src/server/lib/router-utils/setup-dev-bundler.ts b/packages/next/src/server/lib/router-utils/setup-dev-bundler.ts index f6eb2cd65079b8..0834e10d1a027d 100644 --- a/packages/next/src/server/lib/router-utils/setup-dev-bundler.ts +++ b/packages/next/src/server/lib/router-utils/setup-dev-bundler.ts @@ -48,7 +48,6 @@ import { } from '../../../shared/lib/constants' import { getMiddlewareRouteMatcher } from '../../../shared/lib/router/utils/middleware-route-matcher' -import { getDefaultMiddlewareMatcher } from '../../../shared/lib/router/utils/get-default-middleware-matcher' import { isMiddlewareFile, @@ -501,7 +500,7 @@ async function startWatcher( serverFields.actualMiddlewareFile ) middlewareMatchers = staticInfo.middleware?.matchers || [ - getDefaultMiddlewareMatcher(opts.nextConfig), + { regexp: '^/.*$', originalSource: '/:path*' }, ] continue } diff --git a/packages/next/src/server/next-server.ts b/packages/next/src/server/next-server.ts index 2eb245e1c2223e..0d5b64e19f1ac4 100644 --- a/packages/next/src/server/next-server.ts +++ b/packages/next/src/server/next-server.ts @@ -71,7 +71,6 @@ import type { LoadComponentsReturnType } from './load-components' import isError, { getProperError } from '../lib/is-error' import { splitCookiesString, toNodeOutgoingHttpHeaders } from './web/utils' import { getMiddlewareRouteMatcher } from '../shared/lib/router/utils/middleware-route-matcher' -import { getDefaultMiddlewareMatcher } from '../shared/lib/router/utils/get-default-middleware-matcher' import { loadEnvConfig } from '@next/env' import { urlQueryToSearchParams } from '../shared/lib/router/utils/querystring' import { removeTrailingSlash } from '../shared/lib/router/utils/remove-trailing-slash' @@ -1456,13 +1455,13 @@ export default class NextNodeServer extends BaseServer< const middlewareModule = await this.loadNodeMiddleware() if (middlewareModule) { - const matchers = middlewareModule.config?.matchers || [ - getDefaultMiddlewareMatcher(this.nextConfig), - ] return { - match: getMiddlewareRouteMatcher(matchers), + match: getMiddlewareRouteMatcher( + middlewareModule.config?.matchers || [ + { regexp: '.*', originalSource: '/:path*' }, + ] + ), page: '/', - matchers, } } @@ -1472,7 +1471,6 @@ export default class NextNodeServer extends BaseServer< return { match: getMiddlewareMatcher(middleware), page: '/', - matchers: middleware.matchers, } } diff --git a/packages/next/src/shared/lib/router/utils/get-default-middleware-matcher.ts b/packages/next/src/shared/lib/router/utils/get-default-middleware-matcher.ts deleted file mode 100644 index 3d5c8830b0e27f..00000000000000 --- a/packages/next/src/shared/lib/router/utils/get-default-middleware-matcher.ts +++ /dev/null @@ -1,21 +0,0 @@ -import type { NextConfig } from '../../../../types' -import type { MiddlewareMatcher } from '../../../../build/analysis/get-page-static-info' - -export function getDefaultMiddlewareMatcher({ - skipMiddlewareNextInternalRoutes, -}: NextConfig): MiddlewareMatcher { - if (skipMiddlewareNextInternalRoutes !== false) { - // Skip "/_next/" internal routes, except for "/_next/data/" which is needed for - // client-side navigation. Do not consider basePath as the user cannot create a - // route starts with underscore. - return { - regexp: '^(?!.*\\/\\_next\\/(?!data\\/)).*', - originalSource: '/((?!_next/(?!data/))[^]*)*', - } - } - - return { - regexp: '^/.*$', - originalSource: '/:path*', - } -} diff --git a/test/e2e/middleware-general/test/index.test.ts b/test/e2e/middleware-general/test/index.test.ts index 3285390b43ca2c..0d616d10b5132d 100644 --- a/test/e2e/middleware-general/test/index.test.ts +++ b/test/e2e/middleware-general/test/index.test.ts @@ -39,8 +39,6 @@ describe('Middleware Runtime', () => { ), }, nextConfig: { - // This test needs to intercept internal routes /_next/ (skipped by default) - skipMiddlewareNextInternalRoutes: false, experimental: { webpackBuildWorker: true, }, @@ -129,7 +127,7 @@ describe('Middleware Runtime', () => { runtime: 'nodejs', matchers: [ { - regexp: '^/.*$', + regexp: '^.*$', originalSource: '/:path*', }, ], diff --git a/test/e2e/middleware-skip-next-internal-routes-base-path/app/layout.tsx b/test/e2e/middleware-skip-next-internal-routes-base-path/app/layout.tsx deleted file mode 100644 index 08eaa94fdc8896..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes-base-path/app/layout.tsx +++ /dev/null @@ -1,11 +0,0 @@ -export default function RootLayout({ - children, -}: { - children: React.ReactNode -}) { - return ( - - {children} - - ) -} diff --git a/test/e2e/middleware-skip-next-internal-routes-base-path/app/page.tsx b/test/e2e/middleware-skip-next-internal-routes-base-path/app/page.tsx deleted file mode 100644 index ff7159d9149fee..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes-base-path/app/page.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export default function Page() { - return

hello world

-} diff --git a/test/e2e/middleware-skip-next-internal-routes-base-path/middleware-skip-next-internal-routes-base-path.test.ts b/test/e2e/middleware-skip-next-internal-routes-base-path/middleware-skip-next-internal-routes-base-path.test.ts deleted file mode 100644 index 2fb46031a98bf1..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes-base-path/middleware-skip-next-internal-routes-base-path.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { nextTestSetup } from 'e2e-utils' - -describe('middleware skip Next.js internal routes with base path', () => { - const { next } = nextTestSetup({ - files: __dirname, - }) - - it('should execute middleware on regular routes', async () => { - const res = await next.fetch('/base') - expect(res.status).toBe(200) - expect(res.headers.get('x-middleware-executed')).toBe('true') - }) - - it('should NOT execute middleware on _next routes', async () => { - const res = await next.fetch('/base/_next/static/chunks/webpack.js') - expect(res.headers.get('x-middleware-executed')).toBeFalsy() - }) -}) diff --git a/test/e2e/middleware-skip-next-internal-routes-base-path/middleware.ts b/test/e2e/middleware-skip-next-internal-routes-base-path/middleware.ts deleted file mode 100644 index 97426e940d1f77..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes-base-path/middleware.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { NextResponse } from 'next/server' - -export function middleware() { - const response = NextResponse.next() - response.headers.set('x-middleware-executed', 'true') - return response -} diff --git a/test/e2e/middleware-skip-next-internal-routes-base-path/next.config.js b/test/e2e/middleware-skip-next-internal-routes-base-path/next.config.js deleted file mode 100644 index fa1d25f445b248..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes-base-path/next.config.js +++ /dev/null @@ -1,6 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = { - basePath: '/base', -} - -module.exports = nextConfig diff --git a/test/e2e/middleware-skip-next-internal-routes-opt-out/app/layout.tsx b/test/e2e/middleware-skip-next-internal-routes-opt-out/app/layout.tsx deleted file mode 100644 index 08eaa94fdc8896..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes-opt-out/app/layout.tsx +++ /dev/null @@ -1,11 +0,0 @@ -export default function RootLayout({ - children, -}: { - children: React.ReactNode -}) { - return ( - - {children} - - ) -} diff --git a/test/e2e/middleware-skip-next-internal-routes-opt-out/app/page.tsx b/test/e2e/middleware-skip-next-internal-routes-opt-out/app/page.tsx deleted file mode 100644 index ff7159d9149fee..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes-opt-out/app/page.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export default function Page() { - return

hello world

-} diff --git a/test/e2e/middleware-skip-next-internal-routes-opt-out/middleware-skip-next-internal-routes-opt-out.test.ts b/test/e2e/middleware-skip-next-internal-routes-opt-out/middleware-skip-next-internal-routes-opt-out.test.ts deleted file mode 100644 index 9e4f81c5117423..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes-opt-out/middleware-skip-next-internal-routes-opt-out.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { nextTestSetup } from 'e2e-utils' - -describe('middleware skip Next.js internal routes (opt-out)', () => { - const { next } = nextTestSetup({ - files: __dirname, - }) - - it('should execute middleware on regular routes', async () => { - const res = await next.fetch('/') - expect(res.status).toBe(200) - expect(res.headers.get('x-middleware-executed')).toBe('true') - }) - - it('should ALSO execute middleware on _next routes when opted out', async () => { - const res = await next.fetch('/_next/static/chunks/webpack.js') - expect(res.headers.get('x-middleware-executed')).toBe('true') - }) -}) diff --git a/test/e2e/middleware-skip-next-internal-routes-opt-out/middleware.ts b/test/e2e/middleware-skip-next-internal-routes-opt-out/middleware.ts deleted file mode 100644 index 97426e940d1f77..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes-opt-out/middleware.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { NextResponse } from 'next/server' - -export function middleware() { - const response = NextResponse.next() - response.headers.set('x-middleware-executed', 'true') - return response -} diff --git a/test/e2e/middleware-skip-next-internal-routes-opt-out/next.config.js b/test/e2e/middleware-skip-next-internal-routes-opt-out/next.config.js deleted file mode 100644 index a590bd7b5ce14b..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes-opt-out/next.config.js +++ /dev/null @@ -1,6 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = { - skipMiddlewareNextInternalRoutes: false, -} - -module.exports = nextConfig diff --git a/test/e2e/middleware-skip-next-internal-routes/app/layout.tsx b/test/e2e/middleware-skip-next-internal-routes/app/layout.tsx deleted file mode 100644 index 08eaa94fdc8896..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes/app/layout.tsx +++ /dev/null @@ -1,11 +0,0 @@ -export default function RootLayout({ - children, -}: { - children: React.ReactNode -}) { - return ( - - {children} - - ) -} diff --git a/test/e2e/middleware-skip-next-internal-routes/app/page.tsx b/test/e2e/middleware-skip-next-internal-routes/app/page.tsx deleted file mode 100644 index ff7159d9149fee..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes/app/page.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export default function Page() { - return

hello world

-} diff --git a/test/e2e/middleware-skip-next-internal-routes/middleware-skip-next-internal-routes.test.ts b/test/e2e/middleware-skip-next-internal-routes/middleware-skip-next-internal-routes.test.ts deleted file mode 100644 index 9fa90820d5759c..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes/middleware-skip-next-internal-routes.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { nextTestSetup } from 'e2e-utils' - -describe('middleware skip Next.js internal routes', () => { - const { next } = nextTestSetup({ - files: __dirname, - }) - - it('should execute middleware on regular routes', async () => { - const res = await next.fetch('/') - expect(res.status).toBe(200) - expect(res.headers.get('x-middleware-executed')).toBe('true') - }) - - it('should NOT execute middleware on _next routes', async () => { - const res = await next.fetch('/_next/static/chunks/webpack.js') - expect(res.headers.get('x-middleware-executed')).toBeFalsy() - }) -}) diff --git a/test/e2e/middleware-skip-next-internal-routes/middleware.ts b/test/e2e/middleware-skip-next-internal-routes/middleware.ts deleted file mode 100644 index 97426e940d1f77..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes/middleware.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { NextResponse } from 'next/server' - -export function middleware() { - const response = NextResponse.next() - response.headers.set('x-middleware-executed', 'true') - return response -} diff --git a/test/e2e/middleware-skip-next-internal-routes/next.config.js b/test/e2e/middleware-skip-next-internal-routes/next.config.js deleted file mode 100644 index 767719fc4fba59..00000000000000 --- a/test/e2e/middleware-skip-next-internal-routes/next.config.js +++ /dev/null @@ -1,4 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = {} - -module.exports = nextConfig diff --git a/test/e2e/middleware-trailing-slash/app/next.config.js b/test/e2e/middleware-trailing-slash/app/next.config.js index 7bbcc25aa2ac67..0c482151c3a261 100644 --- a/test/e2e/middleware-trailing-slash/app/next.config.js +++ b/test/e2e/middleware-trailing-slash/app/next.config.js @@ -1,6 +1,4 @@ module.exports = { - // This test needs to intercept internal routes /_next/ (skipped by default) - skipMiddlewareNextInternalRoutes: false, trailingSlash: true, redirects() { return [ diff --git a/test/e2e/skip-trailing-slash-redirect/app/next.config.js b/test/e2e/skip-trailing-slash-redirect/app/next.config.js index ec8f1f73a1db3f..5b0be24a8af11d 100644 --- a/test/e2e/skip-trailing-slash-redirect/app/next.config.js +++ b/test/e2e/skip-trailing-slash-redirect/app/next.config.js @@ -1,7 +1,5 @@ /** @type {import('next').NextConfig} */ const nextConfig = { - // This test needs to intercept internal routes /_next/ (skipped by default) - skipMiddlewareNextInternalRoutes: false, skipMiddlewareUrlNormalize: true, skipTrailingSlashRedirect: true, experimental: { diff --git a/test/integration/next-image-new/middleware/next.config.js b/test/integration/next-image-new/middleware/next.config.js deleted file mode 100644 index 613d90fa882e77..00000000000000 --- a/test/integration/next-image-new/middleware/next.config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - // This test needs to intercept internal routes /_next/ (skipped by default) - skipMiddlewareNextInternalRoutes: false, -}