diff --git a/src/Detection/Rendering/SSR.php b/src/Detection/Rendering/SSR.php index 0c3b598..29a097f 100644 --- a/src/Detection/Rendering/SSR.php +++ b/src/Detection/Rendering/SSR.php @@ -7,7 +7,7 @@ class SSR extends Rendering { private const FRAMEWORK_FILES = [ - 'nextjs' => ['.next/server/webpack-runtime.js', '.next/turbopack'], + 'nextjs' => ['.next/server/webpack-runtime.js', '.next/turbopack', 'server.js'], 'nuxt' => ['server/index.mjs'], 'sveltekit' => ['handler.js'], 'astro' => ['server/entry.mjs'], diff --git a/tests/unit/DetectorTest.php b/tests/unit/DetectorTest.php index 9ab119c..f045904 100644 --- a/tests/unit/DetectorTest.php +++ b/tests/unit/DetectorTest.php @@ -356,6 +356,13 @@ public function renderingDataProvider(): array [['server/pages/api/users.js', '.next/server/pages/_app.js'], 'nextjs', 'static', null], [['server/pages/index.html', 'server/pages/api/users.js', '.next/turbopack'], 'nextjs', 'ssr', null], [['server/pages/index.html', 'server/pages/api/users.js', '.next/server/webpack-runtime.js'], 'nextjs', 'ssr', null], + [['.next/some-standalone-files.js', 'server.js'], 'nextjs', 'ssr', null], + + // Ensure server.js detection from Next.js doesn't interfere with other frameworks + [['nuxt.config.js', 'server/index.mjs', 'server.js'], 'nuxt', 'ssr', null], + [['nuxt.config.js', 'index.html', 'server.js'], 'nuxt', 'static', 'index.html'], + [['nuxt.config.js', '200.html', '202.html', 'server.js'], 'nuxt', 'static', null], + [['index.html', 'about.html', '404.html'], 'nextjs', 'static', null], [['nitro.json', 'server/index.mjs'], 'nuxt', 'ssr', null], [['server/server.mjs'], 'angular', 'ssr', null],