next 15.4.3 → 15.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/bin/next +1 -1
  2. package/dist/build/index.js +2 -2
  3. package/dist/build/swc/index.js +1 -1
  4. package/dist/build/templates/app-page.js +1 -1
  5. package/dist/build/templates/app-page.js.map +1 -1
  6. package/dist/build/templates/app-route.js +1 -1
  7. package/dist/build/templates/app-route.js.map +1 -1
  8. package/dist/build/templates/pages.js +11 -9
  9. package/dist/build/templates/pages.js.map +1 -1
  10. package/dist/build/webpack/loaders/metadata/resolve-route-data.js +4 -4
  11. package/dist/build/webpack/loaders/metadata/resolve-route-data.js.map +1 -1
  12. package/dist/build/webpack-config.js +2 -2
  13. package/dist/client/app-bootstrap.js +1 -1
  14. package/dist/client/index.js +1 -1
  15. package/dist/compiled/next-server/pages-api.runtime.prod.js +1 -1
  16. package/dist/compiled/next-server/pages-api.runtime.prod.js.map +1 -1
  17. package/dist/compiled/next-server/pages.runtime.prod.js +1 -1
  18. package/dist/compiled/next-server/pages.runtime.prod.js.map +1 -1
  19. package/dist/esm/build/index.js +2 -2
  20. package/dist/esm/build/swc/index.js +1 -1
  21. package/dist/esm/build/templates/app-page.js +1 -1
  22. package/dist/esm/build/templates/app-page.js.map +1 -1
  23. package/dist/esm/build/templates/app-route.js +1 -1
  24. package/dist/esm/build/templates/app-route.js.map +1 -1
  25. package/dist/esm/build/templates/pages.js +11 -9
  26. package/dist/esm/build/templates/pages.js.map +1 -1
  27. package/dist/esm/build/webpack/loaders/metadata/resolve-route-data.js +4 -4
  28. package/dist/esm/build/webpack/loaders/metadata/resolve-route-data.js.map +1 -1
  29. package/dist/esm/build/webpack-config.js +2 -2
  30. package/dist/esm/client/app-bootstrap.js +1 -1
  31. package/dist/esm/client/index.js +1 -1
  32. package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
  33. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  34. package/dist/esm/server/dev/next-dev-server.js +3 -1
  35. package/dist/esm/server/dev/next-dev-server.js.map +1 -1
  36. package/dist/esm/server/lib/app-info-log.js +1 -1
  37. package/dist/esm/server/lib/start-server.js +1 -1
  38. package/dist/esm/shared/lib/canary-only.js +1 -1
  39. package/dist/server/dev/hot-reloader-turbopack.js +1 -1
  40. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  41. package/dist/server/dev/next-dev-server.js +3 -1
  42. package/dist/server/dev/next-dev-server.js.map +1 -1
  43. package/dist/server/lib/app-info-log.js +1 -1
  44. package/dist/server/lib/start-server.js +1 -1
  45. package/dist/shared/lib/canary-only.js +1 -1
  46. package/dist/telemetry/anonymous-meta.js +1 -1
  47. package/dist/telemetry/events/session-stopped.js +2 -2
  48. package/dist/telemetry/events/version.js +2 -2
  49. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/dev/next-dev-server.ts"],"sourcesContent":["import type { FindComponentsResult, NodeRequestHandler } from '../next-server'\nimport type { LoadComponentsReturnType } from '../load-components'\nimport type { Options as ServerOptions } from '../next-server'\nimport type { Params } from '../request/params'\nimport type { ParsedUrl } from '../../shared/lib/router/utils/parse-url'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { UrlWithParsedQuery } from 'url'\nimport type { MiddlewareRoutingItem } from '../base-server'\nimport type { RouteDefinition } from '../route-definitions/route-definition'\nimport type { RouteMatcherManager } from '../route-matcher-managers/route-matcher-manager'\nimport {\n addRequestMeta,\n getRequestMeta,\n type NextParsedUrlQuery,\n type NextUrlWithParsedQuery,\n} from '../request-meta'\nimport type { DevBundlerService } from '../lib/dev-bundler-service'\nimport type { IncrementalCache } from '../lib/incremental-cache'\nimport type { UnwrapPromise } from '../../lib/coalesced-function'\nimport type { NodeNextResponse, NodeNextRequest } from '../base-http/node'\nimport type { RouteEnsurer } from '../route-matcher-managers/dev-route-matcher-manager'\nimport type { PagesManifest } from '../../build/webpack/plugins/pages-manifest-plugin'\n\nimport * as React from 'react'\nimport fs from 'fs'\nimport { Worker } from 'next/dist/compiled/jest-worker'\nimport { join as pathJoin } from 'path'\nimport { ampValidation } from '../../build/output'\nimport { PUBLIC_DIR_MIDDLEWARE_CONFLICT } from '../../lib/constants'\nimport { findPagesDir } from '../../lib/find-pages-dir'\nimport {\n PHASE_DEVELOPMENT_SERVER,\n PAGES_MANIFEST,\n APP_PATHS_MANIFEST,\n COMPILER_NAMES,\n PRERENDER_MANIFEST,\n} from '../../shared/lib/constants'\nimport Server, { WrappedBuildError } from '../next-server'\nimport { normalizePagePath } from '../../shared/lib/page-path/normalize-page-path'\nimport { pathHasPrefix } from '../../shared/lib/router/utils/path-has-prefix'\nimport { removePathPrefix } from '../../shared/lib/router/utils/remove-path-prefix'\nimport { Telemetry } from '../../telemetry/storage'\nimport { type Span, setGlobal, trace } from '../../trace'\nimport { findPageFile } from '../lib/find-page-file'\nimport { getFormattedNodeOptionsWithoutInspect } from '../lib/utils'\nimport { withCoalescedInvoke } from '../../lib/coalesced-function'\nimport { loadDefaultErrorComponents } from '../load-default-error-components'\nimport { DecodeError, MiddlewareNotFoundError } from '../../shared/lib/utils'\nimport * as Log from '../../build/output/log'\nimport isError, { getProperError } from '../../lib/is-error'\nimport { isMiddlewareFile } from '../../build/utils'\nimport { formatServerError } from '../../lib/format-server-error'\nimport { DevRouteMatcherManager } from '../route-matcher-managers/dev-route-matcher-manager'\nimport { DevPagesRouteMatcherProvider } from '../route-matcher-providers/dev/dev-pages-route-matcher-provider'\nimport { DevPagesAPIRouteMatcherProvider } from '../route-matcher-providers/dev/dev-pages-api-route-matcher-provider'\nimport { DevAppPageRouteMatcherProvider } from '../route-matcher-providers/dev/dev-app-page-route-matcher-provider'\nimport { DevAppRouteRouteMatcherProvider } from '../route-matcher-providers/dev/dev-app-route-route-matcher-provider'\nimport { NodeManifestLoader } from '../route-matcher-providers/helpers/manifest-loaders/node-manifest-loader'\nimport { BatchedFileReader } from '../route-matcher-providers/dev/helpers/file-reader/batched-file-reader'\nimport { DefaultFileReader } from '../route-matcher-providers/dev/helpers/file-reader/default-file-reader'\nimport { LRUCache } from '../lib/lru-cache'\nimport { getMiddlewareRouteMatcher } from '../../shared/lib/router/utils/middleware-route-matcher'\nimport { DetachedPromise } from '../../lib/detached-promise'\nimport { isPostpone } from '../lib/router-utils/is-postpone'\nimport { generateInterceptionRoutesRewrites } from '../../lib/generate-interception-routes-rewrites'\nimport { buildCustomRoute } from '../../lib/build-custom-route'\nimport { decorateServerError } from '../../shared/lib/error-source'\nimport type { ServerOnInstrumentationRequestError } from '../app-render/types'\nimport type { ServerComponentsHmrCache } from '../response-cache'\nimport { logRequests } from './log-requests'\nimport { FallbackMode, fallbackModeToFallbackField } from '../../lib/fallback'\nimport type { PagesDevOverlayBridgeType } from '../../next-devtools/userspace/pages/pages-dev-overlay-setup'\nimport {\n ensureInstrumentationRegistered,\n getInstrumentationModule,\n} from '../lib/router-utils/instrumentation-globals.external'\nimport type { PrerenderManifest } from '../../build'\n\n// Load ReactDevOverlay only when needed\nlet PagesDevOverlayBridgeImpl: PagesDevOverlayBridgeType\nconst ReactDevOverlay: PagesDevOverlayBridgeType = (props) => {\n if (PagesDevOverlayBridgeImpl === undefined) {\n PagesDevOverlayBridgeImpl = (\n require('../../next-devtools/userspace/pages/pages-dev-overlay-setup') as typeof import('../../next-devtools/userspace/pages/pages-dev-overlay-setup')\n ).PagesDevOverlayBridge\n }\n return React.createElement(PagesDevOverlayBridgeImpl, props)\n}\n\nexport interface Options extends ServerOptions {\n /**\n * Tells of Next.js is running from the `next dev` command\n */\n isNextDevCommand?: boolean\n\n /**\n * Interface to the development bundler.\n */\n bundlerService: DevBundlerService\n\n /**\n * Trace span for server startup.\n */\n startServerSpan: Span\n}\n\nexport default class DevServer extends Server {\n /**\n * The promise that resolves when the server is ready. When this is unset\n * the server is ready.\n */\n private ready? = new DetachedPromise<void>()\n protected sortedRoutes?: string[]\n private pagesDir?: string\n private appDir?: string\n private actualMiddlewareFile?: string\n private actualInstrumentationHookFile?: string\n private middleware?: MiddlewareRoutingItem\n private originalFetch?: typeof fetch\n private readonly bundlerService: DevBundlerService\n private staticPathsCache: LRUCache<\n UnwrapPromise<ReturnType<DevServer['getStaticPaths']>>\n >\n private startServerSpan: Span\n private readonly serverComponentsHmrCache:\n | ServerComponentsHmrCache\n | undefined\n\n protected staticPathsWorker?: { [key: string]: any } & {\n loadStaticPaths: typeof import('./static-paths-worker').loadStaticPaths\n }\n\n private getStaticPathsWorker(): { [key: string]: any } & {\n loadStaticPaths: typeof import('./static-paths-worker').loadStaticPaths\n } {\n const worker = new Worker(require.resolve('./static-paths-worker'), {\n maxRetries: 1,\n // For dev server, it's not necessary to spin up too many workers as long as you are not doing a load test.\n // This helps reusing the memory a lot.\n numWorkers: 1,\n enableWorkerThreads: this.nextConfig.experimental.workerThreads,\n forkOptions: {\n env: {\n ...process.env,\n // discard --inspect/--inspect-brk flags from process.env.NODE_OPTIONS. Otherwise multiple Node.js debuggers\n // would be started if user launch Next.js in debugging mode. The number of debuggers is linked to\n // the number of workers Next.js tries to launch. The only worker users are interested in debugging\n // is the main Next.js one\n NODE_OPTIONS: getFormattedNodeOptionsWithoutInspect(),\n },\n },\n }) as Worker & {\n loadStaticPaths: typeof import('./static-paths-worker').loadStaticPaths\n }\n\n worker.getStdout().pipe(process.stdout)\n worker.getStderr().pipe(process.stderr)\n\n return worker\n }\n\n constructor(options: Options) {\n try {\n // Increase the number of stack frames on the server\n Error.stackTraceLimit = 50\n } catch {}\n super({ ...options, dev: true })\n this.bundlerService = options.bundlerService\n this.startServerSpan =\n options.startServerSpan ?? trace('start-next-dev-server')\n this.renderOpts.dev = true\n this.renderOpts.ErrorDebug = ReactDevOverlay\n this.staticPathsCache = new LRUCache(\n // 5MB\n 5 * 1024 * 1024,\n function length(value) {\n return JSON.stringify(value.staticPaths)?.length ?? 0\n }\n )\n this.renderOpts.ampSkipValidation =\n this.nextConfig.experimental?.amp?.skipValidation ?? false\n this.renderOpts.ampValidator = async (html: string, pathname: string) => {\n const { getAmpValidatorInstance, getBundledAmpValidatorFilepath } =\n require('../../export/helpers/get-amp-html-validator') as typeof import('../../export/helpers/get-amp-html-validator')\n\n const validatorPath =\n this.nextConfig.experimental?.amp?.validator ||\n getBundledAmpValidatorFilepath()\n\n const validator = await getAmpValidatorInstance(validatorPath)\n\n const result = validator.validateString(html)\n ampValidation(\n pathname,\n result.errors\n .filter((error) => {\n if (error.severity === 'ERROR') {\n // Unclear yet if these actually prevent the page from being indexed by the AMP cache.\n // These are coming from React so all we can do is ignore them for now.\n\n // <link rel=\"expect\" blocking=\"render\" />\n // https://github.com/ampproject/amphtml/issues/40279\n if (\n error.code === 'DISALLOWED_ATTR' &&\n error.params[0] === 'blocking' &&\n error.params[1] === 'link'\n ) {\n return false\n }\n // <template> without type\n // https://github.com/ampproject/amphtml/issues/40280\n if (\n error.code === 'MANDATORY_ATTR_MISSING' &&\n error.params[0] === 'type' &&\n error.params[1] === 'template'\n ) {\n return false\n }\n // <template> without type\n // https://github.com/ampproject/amphtml/issues/40280\n if (\n error.code === 'MISSING_REQUIRED_EXTENSION' &&\n error.params[0] === 'template' &&\n error.params[1] === 'amp-mustache'\n ) {\n return false\n }\n return true\n }\n return false\n })\n .filter((e) => this._filterAmpDevelopmentScript(html, e)),\n result.errors.filter((e) => e.severity !== 'ERROR')\n )\n }\n\n const { pagesDir, appDir } = findPagesDir(this.dir)\n this.pagesDir = pagesDir\n this.appDir = appDir\n\n if (this.nextConfig.experimental.serverComponentsHmrCache) {\n this.serverComponentsHmrCache = new LRUCache(\n this.nextConfig.cacheMaxMemorySize,\n function length(value) {\n return JSON.stringify(value).length\n }\n )\n }\n }\n\n protected override getServerComponentsHmrCache() {\n return this.serverComponentsHmrCache\n }\n\n protected getRouteMatchers(): RouteMatcherManager {\n const { pagesDir, appDir } = findPagesDir(this.dir)\n\n const ensurer: RouteEnsurer = {\n ensure: async (match, pathname) => {\n await this.ensurePage({\n definition: match.definition,\n page: match.definition.page,\n clientOnly: false,\n url: pathname,\n })\n },\n }\n\n const matchers = new DevRouteMatcherManager(\n super.getRouteMatchers(),\n ensurer,\n this.dir\n )\n const extensions = this.nextConfig.pageExtensions\n const extensionsExpression = new RegExp(`\\\\.(?:${extensions.join('|')})$`)\n\n // If the pages directory is available, then configure those matchers.\n if (pagesDir) {\n const fileReader = new BatchedFileReader(\n new DefaultFileReader({\n // Only allow files that have the correct extensions.\n pathnameFilter: (pathname) => extensionsExpression.test(pathname),\n })\n )\n\n matchers.push(\n new DevPagesRouteMatcherProvider(\n pagesDir,\n extensions,\n fileReader,\n this.localeNormalizer\n )\n )\n matchers.push(\n new DevPagesAPIRouteMatcherProvider(\n pagesDir,\n extensions,\n fileReader,\n this.localeNormalizer\n )\n )\n }\n\n if (appDir) {\n // We create a new file reader for the app directory because we don't want\n // to include any folders or files starting with an underscore. This will\n // prevent the reader from wasting time reading files that we know we\n // don't care about.\n const fileReader = new BatchedFileReader(\n new DefaultFileReader({\n // Ignore any directory prefixed with an underscore.\n ignorePartFilter: (part) => part.startsWith('_'),\n })\n )\n\n // TODO: Improve passing of \"is running with Turbopack\"\n const isTurbopack = !!process.env.TURBOPACK\n matchers.push(\n new DevAppPageRouteMatcherProvider(\n appDir,\n extensions,\n fileReader,\n isTurbopack\n )\n )\n matchers.push(\n new DevAppRouteRouteMatcherProvider(\n appDir,\n extensions,\n fileReader,\n isTurbopack\n )\n )\n }\n\n return matchers\n }\n\n protected getBuildId(): string {\n return 'development'\n }\n\n protected async prepareImpl(): Promise<void> {\n setGlobal('distDir', this.distDir)\n setGlobal('phase', PHASE_DEVELOPMENT_SERVER)\n\n const telemetry = new Telemetry({ distDir: this.distDir })\n\n await super.prepareImpl()\n await this.matchers.reload()\n\n this.ready?.resolve()\n this.ready = undefined\n\n // In dev, this needs to be called after prepare because the build entries won't be known in the constructor\n this.interceptionRoutePatterns = this.getinterceptionRoutePatterns()\n\n // This is required by the tracing subsystem.\n setGlobal('appDir', this.appDir)\n setGlobal('pagesDir', this.pagesDir)\n setGlobal('telemetry', telemetry)\n\n process.on('unhandledRejection', (reason) => {\n if (isPostpone(reason)) {\n // React postpones that are unhandled might end up logged here but they're\n // not really errors. They're just part of rendering.\n return\n }\n this.logErrorWithOriginalStack(reason, 'unhandledRejection')\n })\n process.on('uncaughtException', (err) => {\n this.logErrorWithOriginalStack(err, 'uncaughtException')\n })\n }\n\n protected async hasPage(pathname: string): Promise<boolean> {\n let normalizedPath: string\n try {\n normalizedPath = normalizePagePath(pathname)\n } catch (err) {\n console.error(err)\n // if normalizing the page fails it means it isn't valid\n // so it doesn't exist so don't throw and return false\n // to ensure we return 404 instead of 500\n return false\n }\n\n if (isMiddlewareFile(normalizedPath)) {\n return findPageFile(\n this.dir,\n normalizedPath,\n this.nextConfig.pageExtensions,\n false\n ).then(Boolean)\n }\n\n let appFile: string | null = null\n let pagesFile: string | null = null\n\n if (this.appDir) {\n appFile = await findPageFile(\n this.appDir,\n normalizedPath + '/page',\n this.nextConfig.pageExtensions,\n true\n )\n }\n\n if (this.pagesDir) {\n pagesFile = await findPageFile(\n this.pagesDir,\n normalizedPath,\n this.nextConfig.pageExtensions,\n false\n )\n }\n if (appFile && pagesFile) {\n return false\n }\n\n return Boolean(appFile || pagesFile)\n }\n\n async runMiddleware(params: {\n request: NodeNextRequest\n response: NodeNextResponse\n parsedUrl: ParsedUrl\n parsed: UrlWithParsedQuery\n middlewareList: MiddlewareRoutingItem[]\n }) {\n try {\n const result = await super.runMiddleware({\n ...params,\n onWarning: (warn) => {\n this.logErrorWithOriginalStack(warn, 'warning')\n },\n })\n\n if ('finished' in result) {\n return result\n }\n\n result.waitUntil.catch((error) => {\n this.logErrorWithOriginalStack(error, 'unhandledRejection')\n })\n return result\n } catch (error) {\n if (error instanceof DecodeError) {\n throw error\n }\n\n /**\n * We only log the error when it is not a MiddlewareNotFound error as\n * in that case we should be already displaying a compilation error\n * which is what makes the module not found.\n */\n if (!(error instanceof MiddlewareNotFoundError)) {\n this.logErrorWithOriginalStack(error)\n }\n\n const err = getProperError(error)\n decorateServerError(err, COMPILER_NAMES.edgeServer)\n const { request, response, parsedUrl } = params\n\n /**\n * When there is a failure for an internal Next.js request from\n * middleware we bypass the error without finishing the request\n * so we can serve the required chunks to render the error.\n */\n if (\n request.url.includes('/_next/static') ||\n request.url.includes('/__nextjs_original-stack-frame') ||\n request.url.includes('/__nextjs_source-map') ||\n request.url.includes('/__nextjs_error_feedback')\n ) {\n return { finished: false }\n }\n\n response.statusCode = 500\n await this.renderError(err, request, response, parsedUrl.pathname)\n return { finished: true }\n }\n }\n\n async runEdgeFunction(params: {\n req: NodeNextRequest\n res: NodeNextResponse\n query: ParsedUrlQuery\n params: Params | undefined\n page: string\n appPaths: string[] | null\n isAppPath: boolean\n }) {\n try {\n return super.runEdgeFunction({\n ...params,\n onError: (err) => this.logErrorWithOriginalStack(err, 'app-dir'),\n onWarning: (warn) => {\n this.logErrorWithOriginalStack(warn, 'warning')\n },\n })\n } catch (error) {\n if (error instanceof DecodeError) {\n throw error\n }\n this.logErrorWithOriginalStack(error, 'warning')\n const err = getProperError(error)\n const { req, res, page } = params\n\n res.statusCode = 500\n await this.renderError(err, req, res, page)\n return null\n }\n }\n\n public getRequestHandler(): NodeRequestHandler {\n const handler = super.getRequestHandler()\n\n return (req, res, parsedUrl) => {\n const request = this.normalizeReq(req)\n const response = this.normalizeRes(res)\n const loggingConfig = this.nextConfig.logging\n\n if (loggingConfig !== false) {\n const start = Date.now()\n const isMiddlewareRequest = getRequestMeta(req, 'middlewareInvoke')\n\n if (!isMiddlewareRequest) {\n response.originalResponse.once('close', () => {\n // NOTE: The route match is only attached to the request's meta data\n // after the request handler is created, so we need to check it in the\n // close handler and not before.\n const routeMatch = getRequestMeta(req).match\n\n if (!routeMatch) {\n return\n }\n\n logRequests({\n request,\n response,\n loggingConfig,\n requestDurationInMs: Date.now() - start,\n })\n })\n }\n }\n\n return handler(request, response, parsedUrl)\n }\n }\n\n public async handleRequest(\n req: NodeNextRequest,\n res: NodeNextResponse,\n parsedUrl?: NextUrlWithParsedQuery\n ): Promise<void> {\n const span = trace('handle-request', undefined, { url: req.url })\n const result = await span.traceAsyncFn(async () => {\n await this.ready?.promise\n addRequestMeta(req, 'PagesErrorDebug', this.renderOpts.ErrorDebug)\n return await super.handleRequest(req, res, parsedUrl)\n })\n const memoryUsage = process.memoryUsage()\n span\n .traceChild('memory-usage', {\n url: req.url,\n 'memory.rss': String(memoryUsage.rss),\n 'memory.heapUsed': String(memoryUsage.heapUsed),\n 'memory.heapTotal': String(memoryUsage.heapTotal),\n })\n .stop()\n return result\n }\n\n async run(\n req: NodeNextRequest,\n res: NodeNextResponse,\n parsedUrl: UrlWithParsedQuery\n ): Promise<void> {\n await this.ready?.promise\n\n const { basePath } = this.nextConfig\n let originalPathname: string | null = null\n\n // TODO: see if we can remove this in the future\n if (basePath && pathHasPrefix(parsedUrl.pathname || '/', basePath)) {\n // strip basePath before handling dev bundles\n // If replace ends up replacing the full url it'll be `undefined`, meaning we have to default it to `/`\n originalPathname = parsedUrl.pathname\n parsedUrl.pathname = removePathPrefix(parsedUrl.pathname || '/', basePath)\n }\n\n const { pathname } = parsedUrl\n\n if (pathname!.startsWith('/_next')) {\n if (fs.existsSync(pathJoin(this.publicDir, '_next'))) {\n throw new Error(PUBLIC_DIR_MIDDLEWARE_CONFLICT)\n }\n }\n\n if (originalPathname) {\n // restore the path before continuing so that custom-routes can accurately determine\n // if they should match against the basePath or not\n parsedUrl.pathname = originalPathname\n }\n try {\n return await super.run(req, res, parsedUrl)\n } catch (error) {\n const err = getProperError(error)\n formatServerError(err)\n this.logErrorWithOriginalStack(err)\n if (!res.sent) {\n res.statusCode = 500\n try {\n return await this.renderError(err, req, res, pathname!, {\n __NEXT_PAGE: (isError(err) && err.page) || pathname || '',\n })\n } catch (internalErr) {\n console.error(internalErr)\n res.body('Internal Server Error').send()\n }\n }\n }\n }\n\n protected logErrorWithOriginalStack(\n err?: unknown,\n type?: 'unhandledRejection' | 'uncaughtException' | 'warning' | 'app-dir'\n ): void {\n this.bundlerService.logErrorWithOriginalStack(err, type)\n }\n\n protected getPagesManifest(): PagesManifest | undefined {\n return (\n NodeManifestLoader.require(\n pathJoin(this.serverDistDir, PAGES_MANIFEST)\n ) ?? undefined\n )\n }\n\n protected getAppPathsManifest(): PagesManifest | undefined {\n if (!this.enabledDirectories.app) return undefined\n\n return (\n NodeManifestLoader.require(\n pathJoin(this.serverDistDir, APP_PATHS_MANIFEST)\n ) ?? undefined\n )\n }\n\n protected getinterceptionRoutePatterns(): RegExp[] {\n const rewrites = generateInterceptionRoutesRewrites(\n Object.keys(this.appPathRoutes ?? {}),\n this.nextConfig.basePath\n ).map((route) => new RegExp(buildCustomRoute('rewrite', route).regex))\n\n if (this.nextConfig.output === 'export' && rewrites.length > 0) {\n Log.error(\n 'Intercepting routes are not supported with static export.\\nRead more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports#unsupported-features'\n )\n\n process.exit(1)\n }\n\n return rewrites ?? []\n }\n\n protected async getMiddleware() {\n // We need to populate the match\n // field as it isn't serializable\n if (this.middleware?.match === null) {\n this.middleware.match = getMiddlewareRouteMatcher(\n this.middleware.matchers || []\n )\n }\n return this.middleware\n }\n\n protected getNextFontManifest() {\n return undefined\n }\n\n protected async hasMiddleware(): Promise<boolean> {\n return this.hasPage(this.actualMiddlewareFile!)\n }\n\n protected async ensureMiddleware(url: string) {\n return this.ensurePage({\n page: this.actualMiddlewareFile!,\n clientOnly: false,\n definition: undefined,\n url,\n })\n }\n\n protected async loadInstrumentationModule(): Promise<any> {\n let instrumentationModule: any\n if (\n this.actualInstrumentationHookFile &&\n (await this.ensurePage({\n page: this.actualInstrumentationHookFile!,\n clientOnly: false,\n definition: undefined,\n })\n .then(() => true)\n .catch(() => false))\n ) {\n try {\n instrumentationModule = await getInstrumentationModule(\n this.dir,\n this.nextConfig.distDir\n )\n } catch (err: any) {\n err.message = `An error occurred while loading instrumentation hook: ${err.message}`\n throw err\n }\n }\n return instrumentationModule\n }\n\n protected async runInstrumentationHookIfAvailable() {\n await ensureInstrumentationRegistered(this.dir, this.nextConfig.distDir)\n }\n\n protected async ensureEdgeFunction({\n page,\n appPaths,\n url,\n }: {\n page: string\n appPaths: string[] | null\n url: string\n }) {\n return this.ensurePage({\n page,\n appPaths,\n clientOnly: false,\n definition: undefined,\n url,\n })\n }\n\n generateRoutes(_dev?: boolean) {\n // In development we expose all compiled files for react-error-overlay's line show feature\n // We use unshift so that we're sure the routes is defined before Next's default routes\n // routes.unshift({\n // match: getPathMatch('/_next/development/:path*'),\n // type: 'route',\n // name: '_next/development catchall',\n // fn: async (req, res, params) => {\n // const p = pathJoin(this.distDir, ...(params.path || []))\n // await this.serveStatic(req, res, p)\n // return {\n // finished: true,\n // }\n // },\n // })\n }\n\n _filterAmpDevelopmentScript(\n html: string,\n event: { line: number; col: number; code: string }\n ): boolean {\n if (event.code !== 'DISALLOWED_SCRIPT_TAG') {\n return true\n }\n\n const snippetChunks = html.split('\\n')\n\n let snippet\n if (\n !(snippet = html.split('\\n')[event.line - 1]) ||\n !(snippet = snippet.substring(event.col))\n ) {\n return true\n }\n\n snippet = snippet + snippetChunks.slice(event.line).join('\\n')\n snippet = snippet.substring(0, snippet.indexOf('</script>'))\n\n return !snippet.includes('data-amp-development-mode-only')\n }\n\n protected async getStaticPaths({\n pathname,\n requestHeaders,\n page,\n isAppPath,\n }: {\n pathname: string\n requestHeaders: IncrementalCache['requestHeaders']\n page: string\n isAppPath: boolean\n }): Promise<{\n staticPaths?: string[]\n fallbackMode?: FallbackMode\n }> {\n // we lazy load the staticPaths to prevent the user\n // from waiting on them for the page to load in dev mode\n\n const __getStaticPaths = async () => {\n const {\n configFileName,\n publicRuntimeConfig,\n serverRuntimeConfig,\n httpAgentOptions,\n } = this.nextConfig\n const { locales, defaultLocale } = this.nextConfig.i18n || {}\n const staticPathsWorker = this.getStaticPathsWorker()\n\n try {\n const pathsResult = await staticPathsWorker.loadStaticPaths({\n dir: this.dir,\n distDir: this.distDir,\n pathname,\n config: {\n pprConfig: this.nextConfig.experimental.ppr,\n configFileName,\n publicRuntimeConfig,\n serverRuntimeConfig,\n dynamicIO: Boolean(this.nextConfig.experimental.dynamicIO),\n },\n httpAgentOptions,\n locales,\n defaultLocale,\n page,\n isAppPath,\n requestHeaders,\n cacheHandler: this.nextConfig.cacheHandler,\n cacheHandlers: this.nextConfig.experimental.cacheHandlers,\n cacheLifeProfiles: this.nextConfig.experimental.cacheLife,\n fetchCacheKeyPrefix: this.nextConfig.experimental.fetchCacheKeyPrefix,\n isrFlushToDisk: this.nextConfig.experimental.isrFlushToDisk,\n maxMemoryCacheSize: this.nextConfig.cacheMaxMemorySize,\n nextConfigOutput: this.nextConfig.output,\n buildId: this.buildId,\n authInterrupts: Boolean(this.nextConfig.experimental.authInterrupts),\n sriEnabled: Boolean(this.nextConfig.experimental.sri?.algorithm),\n })\n return pathsResult\n } finally {\n // we don't re-use workers so destroy the used one\n staticPathsWorker.end()\n }\n }\n const result = this.staticPathsCache.get(pathname)\n\n const nextInvoke = withCoalescedInvoke(__getStaticPaths)(\n `staticPaths-${pathname}`,\n []\n )\n .then(async (res) => {\n const { prerenderedRoutes: staticPaths, fallbackMode: fallback } =\n res.value\n\n if (!isAppPath && this.nextConfig.output === 'export') {\n if (fallback === FallbackMode.BLOCKING_STATIC_RENDER) {\n throw new Error(\n 'getStaticPaths with \"fallback: blocking\" cannot be used with \"output: export\". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'\n )\n } else if (fallback === FallbackMode.PRERENDER) {\n throw new Error(\n 'getStaticPaths with \"fallback: true\" cannot be used with \"output: export\". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'\n )\n }\n }\n\n const value: {\n staticPaths: string[] | undefined\n fallbackMode: FallbackMode | undefined\n } = {\n staticPaths: staticPaths?.map((route) => route.pathname),\n fallbackMode: fallback,\n }\n\n if (res.value?.fallbackMode !== undefined) {\n // we write the static paths to partial manifest for\n // fallback handling inside of entry handler's\n const rawExistingManifest = await fs.promises.readFile(\n pathJoin(this.distDir, PRERENDER_MANIFEST),\n 'utf8'\n )\n const existingManifest: PrerenderManifest =\n JSON.parse(rawExistingManifest)\n for (const staticPath of value.staticPaths || []) {\n existingManifest.routes[staticPath] = {} as any\n }\n existingManifest.dynamicRoutes[pathname] = {\n fallback: fallbackModeToFallbackField(res.value.fallbackMode, page),\n } as any\n\n const updatedManifest = JSON.stringify(existingManifest)\n\n if (updatedManifest !== rawExistingManifest) {\n await fs.promises.writeFile(\n pathJoin(this.distDir, PRERENDER_MANIFEST),\n updatedManifest\n )\n }\n }\n this.staticPathsCache.set(pathname, value)\n return value\n })\n .catch((err) => {\n this.staticPathsCache.remove(pathname)\n if (!result) throw err\n Log.error(`Failed to generate static paths for ${pathname}:`)\n console.error(err)\n })\n\n if (result) {\n return result\n }\n return nextInvoke as NonNullable<typeof result>\n }\n\n protected async ensurePage(opts: {\n page: string\n clientOnly: boolean\n appPaths?: ReadonlyArray<string> | null\n definition: RouteDefinition | undefined\n url?: string\n }): Promise<void> {\n await this.bundlerService.ensurePage(opts)\n }\n\n protected async findPageComponents({\n locale,\n page,\n query,\n params,\n isAppPath,\n appPaths = null,\n shouldEnsure,\n url,\n }: {\n locale: string | undefined\n page: string\n query: NextParsedUrlQuery\n params: Params\n isAppPath: boolean\n sriEnabled?: boolean\n appPaths?: ReadonlyArray<string> | null\n shouldEnsure: boolean\n url?: string\n }): Promise<FindComponentsResult | null> {\n await this.ready?.promise\n\n const compilationErr = await this.getCompilationError(page)\n if (compilationErr) {\n // Wrap build errors so that they don't get logged again\n throw new WrappedBuildError(compilationErr)\n }\n if (shouldEnsure || this.serverOptions.customServer) {\n await this.ensurePage({\n page,\n appPaths,\n clientOnly: false,\n definition: undefined,\n url,\n })\n }\n\n this.nextFontManifest = super.getNextFontManifest()\n\n return await super.findPageComponents({\n page,\n query,\n params,\n locale,\n isAppPath,\n shouldEnsure,\n url,\n })\n }\n\n protected async getFallbackErrorComponents(\n url?: string\n ): Promise<LoadComponentsReturnType | null> {\n await this.bundlerService.getFallbackErrorComponents(url)\n return await loadDefaultErrorComponents(this.distDir)\n }\n\n async getCompilationError(page: string): Promise<any> {\n return await this.bundlerService.getCompilationError(page)\n }\n\n protected async instrumentationOnRequestError(\n ...args: Parameters<ServerOnInstrumentationRequestError>\n ) {\n await super.instrumentationOnRequestError(...args)\n\n const err = args[0]\n this.logErrorWithOriginalStack(err, 'app-dir')\n }\n}\n"],"names":["addRequestMeta","getRequestMeta","React","fs","Worker","join","pathJoin","ampValidation","PUBLIC_DIR_MIDDLEWARE_CONFLICT","findPagesDir","PHASE_DEVELOPMENT_SERVER","PAGES_MANIFEST","APP_PATHS_MANIFEST","COMPILER_NAMES","PRERENDER_MANIFEST","Server","WrappedBuildError","normalizePagePath","pathHasPrefix","removePathPrefix","Telemetry","setGlobal","trace","findPageFile","getFormattedNodeOptionsWithoutInspect","withCoalescedInvoke","loadDefaultErrorComponents","DecodeError","MiddlewareNotFoundError","Log","isError","getProperError","isMiddlewareFile","formatServerError","DevRouteMatcherManager","DevPagesRouteMatcherProvider","DevPagesAPIRouteMatcherProvider","DevAppPageRouteMatcherProvider","DevAppRouteRouteMatcherProvider","NodeManifestLoader","BatchedFileReader","DefaultFileReader","LRUCache","getMiddlewareRouteMatcher","DetachedPromise","isPostpone","generateInterceptionRoutesRewrites","buildCustomRoute","decorateServerError","logRequests","FallbackMode","fallbackModeToFallbackField","ensureInstrumentationRegistered","getInstrumentationModule","PagesDevOverlayBridgeImpl","ReactDevOverlay","props","undefined","require","PagesDevOverlayBridge","createElement","DevServer","getStaticPathsWorker","worker","resolve","maxRetries","numWorkers","enableWorkerThreads","nextConfig","experimental","workerThreads","forkOptions","env","process","NODE_OPTIONS","getStdout","pipe","stdout","getStderr","stderr","constructor","options","Error","stackTraceLimit","dev","ready","bundlerService","startServerSpan","renderOpts","ErrorDebug","staticPathsCache","length","value","JSON","stringify","staticPaths","ampSkipValidation","amp","skipValidation","ampValidator","html","pathname","getAmpValidatorInstance","getBundledAmpValidatorFilepath","validatorPath","validator","result","validateString","errors","filter","error","severity","code","params","e","_filterAmpDevelopmentScript","pagesDir","appDir","dir","serverComponentsHmrCache","cacheMaxMemorySize","getServerComponentsHmrCache","getRouteMatchers","ensurer","ensure","match","ensurePage","definition","page","clientOnly","url","matchers","extensions","pageExtensions","extensionsExpression","RegExp","fileReader","pathnameFilter","test","push","localeNormalizer","ignorePartFilter","part","startsWith","isTurbopack","TURBOPACK","getBuildId","prepareImpl","distDir","telemetry","reload","interceptionRoutePatterns","getinterceptionRoutePatterns","on","reason","logErrorWithOriginalStack","err","hasPage","normalizedPath","console","then","Boolean","appFile","pagesFile","runMiddleware","onWarning","warn","waitUntil","catch","edgeServer","request","response","parsedUrl","includes","finished","statusCode","renderError","runEdgeFunction","onError","req","res","getRequestHandler","handler","normalizeReq","normalizeRes","loggingConfig","logging","start","Date","now","isMiddlewareRequest","originalResponse","once","routeMatch","requestDurationInMs","handleRequest","span","traceAsyncFn","promise","memoryUsage","traceChild","String","rss","heapUsed","heapTotal","stop","run","basePath","originalPathname","existsSync","publicDir","sent","__NEXT_PAGE","internalErr","body","send","type","getPagesManifest","serverDistDir","getAppPathsManifest","enabledDirectories","app","rewrites","Object","keys","appPathRoutes","map","route","regex","output","exit","getMiddleware","middleware","getNextFontManifest","hasMiddleware","actualMiddlewareFile","ensureMiddleware","loadInstrumentationModule","instrumentationModule","actualInstrumentationHookFile","message","runInstrumentationHookIfAvailable","ensureEdgeFunction","appPaths","generateRoutes","_dev","event","snippetChunks","split","snippet","line","substring","col","slice","indexOf","getStaticPaths","requestHeaders","isAppPath","__getStaticPaths","configFileName","publicRuntimeConfig","serverRuntimeConfig","httpAgentOptions","locales","defaultLocale","i18n","staticPathsWorker","pathsResult","loadStaticPaths","config","pprConfig","ppr","dynamicIO","cacheHandler","cacheHandlers","cacheLifeProfiles","cacheLife","fetchCacheKeyPrefix","isrFlushToDisk","maxMemoryCacheSize","nextConfigOutput","buildId","authInterrupts","sriEnabled","sri","algorithm","end","get","nextInvoke","prerenderedRoutes","fallbackMode","fallback","BLOCKING_STATIC_RENDER","PRERENDER","rawExistingManifest","promises","readFile","existingManifest","parse","staticPath","routes","dynamicRoutes","updatedManifest","writeFile","set","remove","opts","findPageComponents","locale","query","shouldEnsure","compilationErr","getCompilationError","serverOptions","customServer","nextFontManifest","getFallbackErrorComponents","instrumentationOnRequestError","args"],"mappings":"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","ignoreList":[0]}
1
+ {"version":3,"sources":["../../../src/server/dev/next-dev-server.ts"],"sourcesContent":["import type { FindComponentsResult, NodeRequestHandler } from '../next-server'\nimport type { LoadComponentsReturnType } from '../load-components'\nimport type { Options as ServerOptions } from '../next-server'\nimport type { Params } from '../request/params'\nimport type { ParsedUrl } from '../../shared/lib/router/utils/parse-url'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { UrlWithParsedQuery } from 'url'\nimport type { MiddlewareRoutingItem } from '../base-server'\nimport type { RouteDefinition } from '../route-definitions/route-definition'\nimport type { RouteMatcherManager } from '../route-matcher-managers/route-matcher-manager'\nimport {\n addRequestMeta,\n getRequestMeta,\n type NextParsedUrlQuery,\n type NextUrlWithParsedQuery,\n} from '../request-meta'\nimport type { DevBundlerService } from '../lib/dev-bundler-service'\nimport type { IncrementalCache } from '../lib/incremental-cache'\nimport type { UnwrapPromise } from '../../lib/coalesced-function'\nimport type { NodeNextResponse, NodeNextRequest } from '../base-http/node'\nimport type { RouteEnsurer } from '../route-matcher-managers/dev-route-matcher-manager'\nimport type { PagesManifest } from '../../build/webpack/plugins/pages-manifest-plugin'\n\nimport * as React from 'react'\nimport fs from 'fs'\nimport { Worker } from 'next/dist/compiled/jest-worker'\nimport { join as pathJoin } from 'path'\nimport { ampValidation } from '../../build/output'\nimport { PUBLIC_DIR_MIDDLEWARE_CONFLICT } from '../../lib/constants'\nimport { findPagesDir } from '../../lib/find-pages-dir'\nimport {\n PHASE_DEVELOPMENT_SERVER,\n PAGES_MANIFEST,\n APP_PATHS_MANIFEST,\n COMPILER_NAMES,\n PRERENDER_MANIFEST,\n} from '../../shared/lib/constants'\nimport Server, { WrappedBuildError } from '../next-server'\nimport { normalizePagePath } from '../../shared/lib/page-path/normalize-page-path'\nimport { pathHasPrefix } from '../../shared/lib/router/utils/path-has-prefix'\nimport { removePathPrefix } from '../../shared/lib/router/utils/remove-path-prefix'\nimport { Telemetry } from '../../telemetry/storage'\nimport { type Span, setGlobal, trace } from '../../trace'\nimport { findPageFile } from '../lib/find-page-file'\nimport { getFormattedNodeOptionsWithoutInspect } from '../lib/utils'\nimport { withCoalescedInvoke } from '../../lib/coalesced-function'\nimport { loadDefaultErrorComponents } from '../load-default-error-components'\nimport { DecodeError, MiddlewareNotFoundError } from '../../shared/lib/utils'\nimport * as Log from '../../build/output/log'\nimport isError, { getProperError } from '../../lib/is-error'\nimport { isMiddlewareFile } from '../../build/utils'\nimport { formatServerError } from '../../lib/format-server-error'\nimport { DevRouteMatcherManager } from '../route-matcher-managers/dev-route-matcher-manager'\nimport { DevPagesRouteMatcherProvider } from '../route-matcher-providers/dev/dev-pages-route-matcher-provider'\nimport { DevPagesAPIRouteMatcherProvider } from '../route-matcher-providers/dev/dev-pages-api-route-matcher-provider'\nimport { DevAppPageRouteMatcherProvider } from '../route-matcher-providers/dev/dev-app-page-route-matcher-provider'\nimport { DevAppRouteRouteMatcherProvider } from '../route-matcher-providers/dev/dev-app-route-route-matcher-provider'\nimport { NodeManifestLoader } from '../route-matcher-providers/helpers/manifest-loaders/node-manifest-loader'\nimport { BatchedFileReader } from '../route-matcher-providers/dev/helpers/file-reader/batched-file-reader'\nimport { DefaultFileReader } from '../route-matcher-providers/dev/helpers/file-reader/default-file-reader'\nimport { LRUCache } from '../lib/lru-cache'\nimport { getMiddlewareRouteMatcher } from '../../shared/lib/router/utils/middleware-route-matcher'\nimport { DetachedPromise } from '../../lib/detached-promise'\nimport { isPostpone } from '../lib/router-utils/is-postpone'\nimport { generateInterceptionRoutesRewrites } from '../../lib/generate-interception-routes-rewrites'\nimport { buildCustomRoute } from '../../lib/build-custom-route'\nimport { decorateServerError } from '../../shared/lib/error-source'\nimport type { ServerOnInstrumentationRequestError } from '../app-render/types'\nimport type { ServerComponentsHmrCache } from '../response-cache'\nimport { logRequests } from './log-requests'\nimport { FallbackMode, fallbackModeToFallbackField } from '../../lib/fallback'\nimport type { PagesDevOverlayBridgeType } from '../../next-devtools/userspace/pages/pages-dev-overlay-setup'\nimport {\n ensureInstrumentationRegistered,\n getInstrumentationModule,\n} from '../lib/router-utils/instrumentation-globals.external'\nimport type { PrerenderManifest } from '../../build'\n\n// Load ReactDevOverlay only when needed\nlet PagesDevOverlayBridgeImpl: PagesDevOverlayBridgeType\nconst ReactDevOverlay: PagesDevOverlayBridgeType = (props) => {\n if (PagesDevOverlayBridgeImpl === undefined) {\n PagesDevOverlayBridgeImpl = (\n require('../../next-devtools/userspace/pages/pages-dev-overlay-setup') as typeof import('../../next-devtools/userspace/pages/pages-dev-overlay-setup')\n ).PagesDevOverlayBridge\n }\n return React.createElement(PagesDevOverlayBridgeImpl, props)\n}\n\nexport interface Options extends ServerOptions {\n /**\n * Tells of Next.js is running from the `next dev` command\n */\n isNextDevCommand?: boolean\n\n /**\n * Interface to the development bundler.\n */\n bundlerService: DevBundlerService\n\n /**\n * Trace span for server startup.\n */\n startServerSpan: Span\n}\n\nexport default class DevServer extends Server {\n /**\n * The promise that resolves when the server is ready. When this is unset\n * the server is ready.\n */\n private ready? = new DetachedPromise<void>()\n protected sortedRoutes?: string[]\n private pagesDir?: string\n private appDir?: string\n private actualMiddlewareFile?: string\n private actualInstrumentationHookFile?: string\n private middleware?: MiddlewareRoutingItem\n private originalFetch?: typeof fetch\n private readonly bundlerService: DevBundlerService\n private staticPathsCache: LRUCache<\n UnwrapPromise<ReturnType<DevServer['getStaticPaths']>>\n >\n private startServerSpan: Span\n private readonly serverComponentsHmrCache:\n | ServerComponentsHmrCache\n | undefined\n\n protected staticPathsWorker?: { [key: string]: any } & {\n loadStaticPaths: typeof import('./static-paths-worker').loadStaticPaths\n }\n\n private getStaticPathsWorker(): { [key: string]: any } & {\n loadStaticPaths: typeof import('./static-paths-worker').loadStaticPaths\n } {\n const worker = new Worker(require.resolve('./static-paths-worker'), {\n maxRetries: 1,\n // For dev server, it's not necessary to spin up too many workers as long as you are not doing a load test.\n // This helps reusing the memory a lot.\n numWorkers: 1,\n enableWorkerThreads: this.nextConfig.experimental.workerThreads,\n forkOptions: {\n env: {\n ...process.env,\n // discard --inspect/--inspect-brk flags from process.env.NODE_OPTIONS. Otherwise multiple Node.js debuggers\n // would be started if user launch Next.js in debugging mode. The number of debuggers is linked to\n // the number of workers Next.js tries to launch. The only worker users are interested in debugging\n // is the main Next.js one\n NODE_OPTIONS: getFormattedNodeOptionsWithoutInspect(),\n },\n },\n }) as Worker & {\n loadStaticPaths: typeof import('./static-paths-worker').loadStaticPaths\n }\n\n worker.getStdout().pipe(process.stdout)\n worker.getStderr().pipe(process.stderr)\n\n return worker\n }\n\n constructor(options: Options) {\n try {\n // Increase the number of stack frames on the server\n Error.stackTraceLimit = 50\n } catch {}\n super({ ...options, dev: true })\n this.bundlerService = options.bundlerService\n this.startServerSpan =\n options.startServerSpan ?? trace('start-next-dev-server')\n this.renderOpts.dev = true\n this.renderOpts.ErrorDebug = ReactDevOverlay\n this.staticPathsCache = new LRUCache(\n // 5MB\n 5 * 1024 * 1024,\n function length(value) {\n return JSON.stringify(value.staticPaths)?.length ?? 0\n }\n )\n this.renderOpts.ampSkipValidation =\n this.nextConfig.experimental?.amp?.skipValidation ?? false\n this.renderOpts.ampValidator = async (html: string, pathname: string) => {\n const { getAmpValidatorInstance, getBundledAmpValidatorFilepath } =\n require('../../export/helpers/get-amp-html-validator') as typeof import('../../export/helpers/get-amp-html-validator')\n\n const validatorPath =\n this.nextConfig.experimental?.amp?.validator ||\n getBundledAmpValidatorFilepath()\n\n const validator = await getAmpValidatorInstance(validatorPath)\n\n const result = validator.validateString(html)\n ampValidation(\n pathname,\n result.errors\n .filter((error) => {\n if (error.severity === 'ERROR') {\n // Unclear yet if these actually prevent the page from being indexed by the AMP cache.\n // These are coming from React so all we can do is ignore them for now.\n\n // <link rel=\"expect\" blocking=\"render\" />\n // https://github.com/ampproject/amphtml/issues/40279\n if (\n error.code === 'DISALLOWED_ATTR' &&\n error.params[0] === 'blocking' &&\n error.params[1] === 'link'\n ) {\n return false\n }\n // <template> without type\n // https://github.com/ampproject/amphtml/issues/40280\n if (\n error.code === 'MANDATORY_ATTR_MISSING' &&\n error.params[0] === 'type' &&\n error.params[1] === 'template'\n ) {\n return false\n }\n // <template> without type\n // https://github.com/ampproject/amphtml/issues/40280\n if (\n error.code === 'MISSING_REQUIRED_EXTENSION' &&\n error.params[0] === 'template' &&\n error.params[1] === 'amp-mustache'\n ) {\n return false\n }\n return true\n }\n return false\n })\n .filter((e) => this._filterAmpDevelopmentScript(html, e)),\n result.errors.filter((e) => e.severity !== 'ERROR')\n )\n }\n\n const { pagesDir, appDir } = findPagesDir(this.dir)\n this.pagesDir = pagesDir\n this.appDir = appDir\n\n if (this.nextConfig.experimental.serverComponentsHmrCache) {\n this.serverComponentsHmrCache = new LRUCache(\n this.nextConfig.cacheMaxMemorySize,\n function length(value) {\n return JSON.stringify(value).length\n }\n )\n }\n }\n\n protected override getServerComponentsHmrCache() {\n return this.serverComponentsHmrCache\n }\n\n protected getRouteMatchers(): RouteMatcherManager {\n const { pagesDir, appDir } = findPagesDir(this.dir)\n\n const ensurer: RouteEnsurer = {\n ensure: async (match, pathname) => {\n await this.ensurePage({\n definition: match.definition,\n page: match.definition.page,\n clientOnly: false,\n url: pathname,\n })\n },\n }\n\n const matchers = new DevRouteMatcherManager(\n super.getRouteMatchers(),\n ensurer,\n this.dir\n )\n const extensions = this.nextConfig.pageExtensions\n const extensionsExpression = new RegExp(`\\\\.(?:${extensions.join('|')})$`)\n\n // If the pages directory is available, then configure those matchers.\n if (pagesDir) {\n const fileReader = new BatchedFileReader(\n new DefaultFileReader({\n // Only allow files that have the correct extensions.\n pathnameFilter: (pathname) => extensionsExpression.test(pathname),\n })\n )\n\n matchers.push(\n new DevPagesRouteMatcherProvider(\n pagesDir,\n extensions,\n fileReader,\n this.localeNormalizer\n )\n )\n matchers.push(\n new DevPagesAPIRouteMatcherProvider(\n pagesDir,\n extensions,\n fileReader,\n this.localeNormalizer\n )\n )\n }\n\n if (appDir) {\n // We create a new file reader for the app directory because we don't want\n // to include any folders or files starting with an underscore. This will\n // prevent the reader from wasting time reading files that we know we\n // don't care about.\n const fileReader = new BatchedFileReader(\n new DefaultFileReader({\n // Ignore any directory prefixed with an underscore.\n ignorePartFilter: (part) => part.startsWith('_'),\n })\n )\n\n // TODO: Improve passing of \"is running with Turbopack\"\n const isTurbopack = !!process.env.TURBOPACK\n matchers.push(\n new DevAppPageRouteMatcherProvider(\n appDir,\n extensions,\n fileReader,\n isTurbopack\n )\n )\n matchers.push(\n new DevAppRouteRouteMatcherProvider(\n appDir,\n extensions,\n fileReader,\n isTurbopack\n )\n )\n }\n\n return matchers\n }\n\n protected getBuildId(): string {\n return 'development'\n }\n\n protected async prepareImpl(): Promise<void> {\n setGlobal('distDir', this.distDir)\n setGlobal('phase', PHASE_DEVELOPMENT_SERVER)\n\n const telemetry = new Telemetry({ distDir: this.distDir })\n\n await super.prepareImpl()\n await this.matchers.reload()\n\n this.ready?.resolve()\n this.ready = undefined\n\n // In dev, this needs to be called after prepare because the build entries won't be known in the constructor\n this.interceptionRoutePatterns = this.getinterceptionRoutePatterns()\n\n // This is required by the tracing subsystem.\n setGlobal('appDir', this.appDir)\n setGlobal('pagesDir', this.pagesDir)\n setGlobal('telemetry', telemetry)\n\n process.on('unhandledRejection', (reason) => {\n if (isPostpone(reason)) {\n // React postpones that are unhandled might end up logged here but they're\n // not really errors. They're just part of rendering.\n return\n }\n this.logErrorWithOriginalStack(reason, 'unhandledRejection')\n })\n process.on('uncaughtException', (err) => {\n this.logErrorWithOriginalStack(err, 'uncaughtException')\n })\n }\n\n protected async hasPage(pathname: string): Promise<boolean> {\n let normalizedPath: string\n try {\n normalizedPath = normalizePagePath(pathname)\n } catch (err) {\n console.error(err)\n // if normalizing the page fails it means it isn't valid\n // so it doesn't exist so don't throw and return false\n // to ensure we return 404 instead of 500\n return false\n }\n\n if (isMiddlewareFile(normalizedPath)) {\n return findPageFile(\n this.dir,\n normalizedPath,\n this.nextConfig.pageExtensions,\n false\n ).then(Boolean)\n }\n\n let appFile: string | null = null\n let pagesFile: string | null = null\n\n if (this.appDir) {\n appFile = await findPageFile(\n this.appDir,\n normalizedPath + '/page',\n this.nextConfig.pageExtensions,\n true\n )\n }\n\n if (this.pagesDir) {\n pagesFile = await findPageFile(\n this.pagesDir,\n normalizedPath,\n this.nextConfig.pageExtensions,\n false\n )\n }\n if (appFile && pagesFile) {\n return false\n }\n\n return Boolean(appFile || pagesFile)\n }\n\n async runMiddleware(params: {\n request: NodeNextRequest\n response: NodeNextResponse\n parsedUrl: ParsedUrl\n parsed: UrlWithParsedQuery\n middlewareList: MiddlewareRoutingItem[]\n }) {\n try {\n const result = await super.runMiddleware({\n ...params,\n onWarning: (warn) => {\n this.logErrorWithOriginalStack(warn, 'warning')\n },\n })\n\n if ('finished' in result) {\n return result\n }\n\n result.waitUntil.catch((error) => {\n this.logErrorWithOriginalStack(error, 'unhandledRejection')\n })\n return result\n } catch (error) {\n if (error instanceof DecodeError) {\n throw error\n }\n\n /**\n * We only log the error when it is not a MiddlewareNotFound error as\n * in that case we should be already displaying a compilation error\n * which is what makes the module not found.\n */\n if (!(error instanceof MiddlewareNotFoundError)) {\n this.logErrorWithOriginalStack(error)\n }\n\n const err = getProperError(error)\n decorateServerError(err, COMPILER_NAMES.edgeServer)\n const { request, response, parsedUrl } = params\n\n /**\n * When there is a failure for an internal Next.js request from\n * middleware we bypass the error without finishing the request\n * so we can serve the required chunks to render the error.\n */\n if (\n request.url.includes('/_next/static') ||\n request.url.includes('/__nextjs_original-stack-frame') ||\n request.url.includes('/__nextjs_source-map') ||\n request.url.includes('/__nextjs_error_feedback')\n ) {\n return { finished: false }\n }\n\n response.statusCode = 500\n await this.renderError(err, request, response, parsedUrl.pathname)\n return { finished: true }\n }\n }\n\n async runEdgeFunction(params: {\n req: NodeNextRequest\n res: NodeNextResponse\n query: ParsedUrlQuery\n params: Params | undefined\n page: string\n appPaths: string[] | null\n isAppPath: boolean\n }) {\n try {\n return super.runEdgeFunction({\n ...params,\n onError: (err) => this.logErrorWithOriginalStack(err, 'app-dir'),\n onWarning: (warn) => {\n this.logErrorWithOriginalStack(warn, 'warning')\n },\n })\n } catch (error) {\n if (error instanceof DecodeError) {\n throw error\n }\n this.logErrorWithOriginalStack(error, 'warning')\n const err = getProperError(error)\n const { req, res, page } = params\n\n res.statusCode = 500\n await this.renderError(err, req, res, page)\n return null\n }\n }\n\n public getRequestHandler(): NodeRequestHandler {\n const handler = super.getRequestHandler()\n\n return (req, res, parsedUrl) => {\n const request = this.normalizeReq(req)\n const response = this.normalizeRes(res)\n const loggingConfig = this.nextConfig.logging\n\n if (loggingConfig !== false) {\n const start = Date.now()\n const isMiddlewareRequest = getRequestMeta(req, 'middlewareInvoke')\n\n if (!isMiddlewareRequest) {\n response.originalResponse.once('close', () => {\n // NOTE: The route match is only attached to the request's meta data\n // after the request handler is created, so we need to check it in the\n // close handler and not before.\n const routeMatch = getRequestMeta(req).match\n\n if (!routeMatch) {\n return\n }\n\n logRequests({\n request,\n response,\n loggingConfig,\n requestDurationInMs: Date.now() - start,\n })\n })\n }\n }\n\n return handler(request, response, parsedUrl)\n }\n }\n\n public async handleRequest(\n req: NodeNextRequest,\n res: NodeNextResponse,\n parsedUrl?: NextUrlWithParsedQuery\n ): Promise<void> {\n const span = trace('handle-request', undefined, { url: req.url })\n const result = await span.traceAsyncFn(async () => {\n await this.ready?.promise\n addRequestMeta(req, 'PagesErrorDebug', this.renderOpts.ErrorDebug)\n return await super.handleRequest(req, res, parsedUrl)\n })\n const memoryUsage = process.memoryUsage()\n span\n .traceChild('memory-usage', {\n url: req.url,\n 'memory.rss': String(memoryUsage.rss),\n 'memory.heapUsed': String(memoryUsage.heapUsed),\n 'memory.heapTotal': String(memoryUsage.heapTotal),\n })\n .stop()\n return result\n }\n\n async run(\n req: NodeNextRequest,\n res: NodeNextResponse,\n parsedUrl: UrlWithParsedQuery\n ): Promise<void> {\n await this.ready?.promise\n\n const { basePath } = this.nextConfig\n let originalPathname: string | null = null\n\n // TODO: see if we can remove this in the future\n if (basePath && pathHasPrefix(parsedUrl.pathname || '/', basePath)) {\n // strip basePath before handling dev bundles\n // If replace ends up replacing the full url it'll be `undefined`, meaning we have to default it to `/`\n originalPathname = parsedUrl.pathname\n parsedUrl.pathname = removePathPrefix(parsedUrl.pathname || '/', basePath)\n }\n\n const { pathname } = parsedUrl\n\n if (pathname!.startsWith('/_next')) {\n if (fs.existsSync(pathJoin(this.publicDir, '_next'))) {\n throw new Error(PUBLIC_DIR_MIDDLEWARE_CONFLICT)\n }\n }\n\n if (originalPathname) {\n // restore the path before continuing so that custom-routes can accurately determine\n // if they should match against the basePath or not\n parsedUrl.pathname = originalPathname\n }\n try {\n return await super.run(req, res, parsedUrl)\n } catch (error) {\n const err = getProperError(error)\n formatServerError(err)\n this.logErrorWithOriginalStack(err)\n if (!res.sent) {\n res.statusCode = 500\n try {\n return await this.renderError(err, req, res, pathname!, {\n __NEXT_PAGE: (isError(err) && err.page) || pathname || '',\n })\n } catch (internalErr) {\n console.error(internalErr)\n res.body('Internal Server Error').send()\n }\n }\n }\n }\n\n protected logErrorWithOriginalStack(\n err?: unknown,\n type?: 'unhandledRejection' | 'uncaughtException' | 'warning' | 'app-dir'\n ): void {\n this.bundlerService.logErrorWithOriginalStack(err, type)\n }\n\n protected getPagesManifest(): PagesManifest | undefined {\n return (\n NodeManifestLoader.require(\n pathJoin(this.serverDistDir, PAGES_MANIFEST)\n ) ?? undefined\n )\n }\n\n protected getAppPathsManifest(): PagesManifest | undefined {\n if (!this.enabledDirectories.app) return undefined\n\n return (\n NodeManifestLoader.require(\n pathJoin(this.serverDistDir, APP_PATHS_MANIFEST)\n ) ?? undefined\n )\n }\n\n protected getinterceptionRoutePatterns(): RegExp[] {\n const rewrites = generateInterceptionRoutesRewrites(\n Object.keys(this.appPathRoutes ?? {}),\n this.nextConfig.basePath\n ).map((route) => new RegExp(buildCustomRoute('rewrite', route).regex))\n\n if (this.nextConfig.output === 'export' && rewrites.length > 0) {\n Log.error(\n 'Intercepting routes are not supported with static export.\\nRead more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports#unsupported-features'\n )\n\n process.exit(1)\n }\n\n return rewrites ?? []\n }\n\n protected async getMiddleware() {\n // We need to populate the match\n // field as it isn't serializable\n if (this.middleware?.match === null) {\n this.middleware.match = getMiddlewareRouteMatcher(\n this.middleware.matchers || []\n )\n }\n return this.middleware\n }\n\n protected getNextFontManifest() {\n return undefined\n }\n\n protected async hasMiddleware(): Promise<boolean> {\n return this.hasPage(this.actualMiddlewareFile!)\n }\n\n protected async ensureMiddleware(url: string) {\n return this.ensurePage({\n page: this.actualMiddlewareFile!,\n clientOnly: false,\n definition: undefined,\n url,\n })\n }\n\n protected async loadInstrumentationModule(): Promise<any> {\n let instrumentationModule: any\n if (\n this.actualInstrumentationHookFile &&\n (await this.ensurePage({\n page: this.actualInstrumentationHookFile!,\n clientOnly: false,\n definition: undefined,\n })\n .then(() => true)\n .catch(() => false))\n ) {\n try {\n instrumentationModule = await getInstrumentationModule(\n this.dir,\n this.nextConfig.distDir\n )\n } catch (err: any) {\n err.message = `An error occurred while loading instrumentation hook: ${err.message}`\n throw err\n }\n }\n return instrumentationModule\n }\n\n protected async runInstrumentationHookIfAvailable() {\n await ensureInstrumentationRegistered(this.dir, this.nextConfig.distDir)\n }\n\n protected async ensureEdgeFunction({\n page,\n appPaths,\n url,\n }: {\n page: string\n appPaths: string[] | null\n url: string\n }) {\n return this.ensurePage({\n page,\n appPaths,\n clientOnly: false,\n definition: undefined,\n url,\n })\n }\n\n generateRoutes(_dev?: boolean) {\n // In development we expose all compiled files for react-error-overlay's line show feature\n // We use unshift so that we're sure the routes is defined before Next's default routes\n // routes.unshift({\n // match: getPathMatch('/_next/development/:path*'),\n // type: 'route',\n // name: '_next/development catchall',\n // fn: async (req, res, params) => {\n // const p = pathJoin(this.distDir, ...(params.path || []))\n // await this.serveStatic(req, res, p)\n // return {\n // finished: true,\n // }\n // },\n // })\n }\n\n _filterAmpDevelopmentScript(\n html: string,\n event: { line: number; col: number; code: string }\n ): boolean {\n if (event.code !== 'DISALLOWED_SCRIPT_TAG') {\n return true\n }\n\n const snippetChunks = html.split('\\n')\n\n let snippet\n if (\n !(snippet = html.split('\\n')[event.line - 1]) ||\n !(snippet = snippet.substring(event.col))\n ) {\n return true\n }\n\n snippet = snippet + snippetChunks.slice(event.line).join('\\n')\n snippet = snippet.substring(0, snippet.indexOf('</script>'))\n\n return !snippet.includes('data-amp-development-mode-only')\n }\n\n protected async getStaticPaths({\n pathname,\n requestHeaders,\n page,\n isAppPath,\n }: {\n pathname: string\n requestHeaders: IncrementalCache['requestHeaders']\n page: string\n isAppPath: boolean\n }): Promise<{\n staticPaths?: string[]\n fallbackMode?: FallbackMode\n }> {\n // we lazy load the staticPaths to prevent the user\n // from waiting on them for the page to load in dev mode\n\n const __getStaticPaths = async () => {\n const {\n configFileName,\n publicRuntimeConfig,\n serverRuntimeConfig,\n httpAgentOptions,\n } = this.nextConfig\n const { locales, defaultLocale } = this.nextConfig.i18n || {}\n const staticPathsWorker = this.getStaticPathsWorker()\n\n try {\n const pathsResult = await staticPathsWorker.loadStaticPaths({\n dir: this.dir,\n distDir: this.distDir,\n pathname,\n config: {\n pprConfig: this.nextConfig.experimental.ppr,\n configFileName,\n publicRuntimeConfig,\n serverRuntimeConfig,\n dynamicIO: Boolean(this.nextConfig.experimental.dynamicIO),\n },\n httpAgentOptions,\n locales,\n defaultLocale,\n page,\n isAppPath,\n requestHeaders,\n cacheHandler: this.nextConfig.cacheHandler,\n cacheHandlers: this.nextConfig.experimental.cacheHandlers,\n cacheLifeProfiles: this.nextConfig.experimental.cacheLife,\n fetchCacheKeyPrefix: this.nextConfig.experimental.fetchCacheKeyPrefix,\n isrFlushToDisk: this.nextConfig.experimental.isrFlushToDisk,\n maxMemoryCacheSize: this.nextConfig.cacheMaxMemorySize,\n nextConfigOutput: this.nextConfig.output,\n buildId: this.buildId,\n authInterrupts: Boolean(this.nextConfig.experimental.authInterrupts),\n sriEnabled: Boolean(this.nextConfig.experimental.sri?.algorithm),\n })\n return pathsResult\n } finally {\n // we don't re-use workers so destroy the used one\n staticPathsWorker.end()\n }\n }\n const result = this.staticPathsCache.get(pathname)\n\n const nextInvoke = withCoalescedInvoke(__getStaticPaths)(\n `staticPaths-${pathname}`,\n []\n )\n .then(async (res) => {\n const { prerenderedRoutes: staticPaths, fallbackMode: fallback } =\n res.value\n\n if (!isAppPath && this.nextConfig.output === 'export') {\n if (fallback === FallbackMode.BLOCKING_STATIC_RENDER) {\n throw new Error(\n 'getStaticPaths with \"fallback: blocking\" cannot be used with \"output: export\". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'\n )\n } else if (fallback === FallbackMode.PRERENDER) {\n throw new Error(\n 'getStaticPaths with \"fallback: true\" cannot be used with \"output: export\". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'\n )\n }\n }\n\n const value: {\n staticPaths: string[] | undefined\n fallbackMode: FallbackMode | undefined\n } = {\n staticPaths: staticPaths?.map((route) => route.pathname),\n fallbackMode: fallback,\n }\n\n if (\n res.value?.fallbackMode !== undefined &&\n // This matches the hasGenerateStaticParams logic\n // we do during build\n (!isAppPath || (staticPaths && staticPaths.length > 0))\n ) {\n // we write the static paths to partial manifest for\n // fallback handling inside of entry handler's\n const rawExistingManifest = await fs.promises.readFile(\n pathJoin(this.distDir, PRERENDER_MANIFEST),\n 'utf8'\n )\n const existingManifest: PrerenderManifest =\n JSON.parse(rawExistingManifest)\n for (const staticPath of value.staticPaths || []) {\n existingManifest.routes[staticPath] = {} as any\n }\n existingManifest.dynamicRoutes[pathname] = {\n fallback: fallbackModeToFallbackField(res.value.fallbackMode, page),\n } as any\n\n const updatedManifest = JSON.stringify(existingManifest)\n\n if (updatedManifest !== rawExistingManifest) {\n await fs.promises.writeFile(\n pathJoin(this.distDir, PRERENDER_MANIFEST),\n updatedManifest\n )\n }\n }\n this.staticPathsCache.set(pathname, value)\n return value\n })\n .catch((err) => {\n this.staticPathsCache.remove(pathname)\n if (!result) throw err\n Log.error(`Failed to generate static paths for ${pathname}:`)\n console.error(err)\n })\n\n if (result) {\n return result\n }\n return nextInvoke as NonNullable<typeof result>\n }\n\n protected async ensurePage(opts: {\n page: string\n clientOnly: boolean\n appPaths?: ReadonlyArray<string> | null\n definition: RouteDefinition | undefined\n url?: string\n }): Promise<void> {\n await this.bundlerService.ensurePage(opts)\n }\n\n protected async findPageComponents({\n locale,\n page,\n query,\n params,\n isAppPath,\n appPaths = null,\n shouldEnsure,\n url,\n }: {\n locale: string | undefined\n page: string\n query: NextParsedUrlQuery\n params: Params\n isAppPath: boolean\n sriEnabled?: boolean\n appPaths?: ReadonlyArray<string> | null\n shouldEnsure: boolean\n url?: string\n }): Promise<FindComponentsResult | null> {\n await this.ready?.promise\n\n const compilationErr = await this.getCompilationError(page)\n if (compilationErr) {\n // Wrap build errors so that they don't get logged again\n throw new WrappedBuildError(compilationErr)\n }\n if (shouldEnsure || this.serverOptions.customServer) {\n await this.ensurePage({\n page,\n appPaths,\n clientOnly: false,\n definition: undefined,\n url,\n })\n }\n\n this.nextFontManifest = super.getNextFontManifest()\n\n return await super.findPageComponents({\n page,\n query,\n params,\n locale,\n isAppPath,\n shouldEnsure,\n url,\n })\n }\n\n protected async getFallbackErrorComponents(\n url?: string\n ): Promise<LoadComponentsReturnType | null> {\n await this.bundlerService.getFallbackErrorComponents(url)\n return await loadDefaultErrorComponents(this.distDir)\n }\n\n async getCompilationError(page: string): Promise<any> {\n return await this.bundlerService.getCompilationError(page)\n }\n\n protected async instrumentationOnRequestError(\n ...args: Parameters<ServerOnInstrumentationRequestError>\n ) {\n await super.instrumentationOnRequestError(...args)\n\n const err = args[0]\n this.logErrorWithOriginalStack(err, 'app-dir')\n }\n}\n"],"names":["addRequestMeta","getRequestMeta","React","fs","Worker","join","pathJoin","ampValidation","PUBLIC_DIR_MIDDLEWARE_CONFLICT","findPagesDir","PHASE_DEVELOPMENT_SERVER","PAGES_MANIFEST","APP_PATHS_MANIFEST","COMPILER_NAMES","PRERENDER_MANIFEST","Server","WrappedBuildError","normalizePagePath","pathHasPrefix","removePathPrefix","Telemetry","setGlobal","trace","findPageFile","getFormattedNodeOptionsWithoutInspect","withCoalescedInvoke","loadDefaultErrorComponents","DecodeError","MiddlewareNotFoundError","Log","isError","getProperError","isMiddlewareFile","formatServerError","DevRouteMatcherManager","DevPagesRouteMatcherProvider","DevPagesAPIRouteMatcherProvider","DevAppPageRouteMatcherProvider","DevAppRouteRouteMatcherProvider","NodeManifestLoader","BatchedFileReader","DefaultFileReader","LRUCache","getMiddlewareRouteMatcher","DetachedPromise","isPostpone","generateInterceptionRoutesRewrites","buildCustomRoute","decorateServerError","logRequests","FallbackMode","fallbackModeToFallbackField","ensureInstrumentationRegistered","getInstrumentationModule","PagesDevOverlayBridgeImpl","ReactDevOverlay","props","undefined","require","PagesDevOverlayBridge","createElement","DevServer","getStaticPathsWorker","worker","resolve","maxRetries","numWorkers","enableWorkerThreads","nextConfig","experimental","workerThreads","forkOptions","env","process","NODE_OPTIONS","getStdout","pipe","stdout","getStderr","stderr","constructor","options","Error","stackTraceLimit","dev","ready","bundlerService","startServerSpan","renderOpts","ErrorDebug","staticPathsCache","length","value","JSON","stringify","staticPaths","ampSkipValidation","amp","skipValidation","ampValidator","html","pathname","getAmpValidatorInstance","getBundledAmpValidatorFilepath","validatorPath","validator","result","validateString","errors","filter","error","severity","code","params","e","_filterAmpDevelopmentScript","pagesDir","appDir","dir","serverComponentsHmrCache","cacheMaxMemorySize","getServerComponentsHmrCache","getRouteMatchers","ensurer","ensure","match","ensurePage","definition","page","clientOnly","url","matchers","extensions","pageExtensions","extensionsExpression","RegExp","fileReader","pathnameFilter","test","push","localeNormalizer","ignorePartFilter","part","startsWith","isTurbopack","TURBOPACK","getBuildId","prepareImpl","distDir","telemetry","reload","interceptionRoutePatterns","getinterceptionRoutePatterns","on","reason","logErrorWithOriginalStack","err","hasPage","normalizedPath","console","then","Boolean","appFile","pagesFile","runMiddleware","onWarning","warn","waitUntil","catch","edgeServer","request","response","parsedUrl","includes","finished","statusCode","renderError","runEdgeFunction","onError","req","res","getRequestHandler","handler","normalizeReq","normalizeRes","loggingConfig","logging","start","Date","now","isMiddlewareRequest","originalResponse","once","routeMatch","requestDurationInMs","handleRequest","span","traceAsyncFn","promise","memoryUsage","traceChild","String","rss","heapUsed","heapTotal","stop","run","basePath","originalPathname","existsSync","publicDir","sent","__NEXT_PAGE","internalErr","body","send","type","getPagesManifest","serverDistDir","getAppPathsManifest","enabledDirectories","app","rewrites","Object","keys","appPathRoutes","map","route","regex","output","exit","getMiddleware","middleware","getNextFontManifest","hasMiddleware","actualMiddlewareFile","ensureMiddleware","loadInstrumentationModule","instrumentationModule","actualInstrumentationHookFile","message","runInstrumentationHookIfAvailable","ensureEdgeFunction","appPaths","generateRoutes","_dev","event","snippetChunks","split","snippet","line","substring","col","slice","indexOf","getStaticPaths","requestHeaders","isAppPath","__getStaticPaths","configFileName","publicRuntimeConfig","serverRuntimeConfig","httpAgentOptions","locales","defaultLocale","i18n","staticPathsWorker","pathsResult","loadStaticPaths","config","pprConfig","ppr","dynamicIO","cacheHandler","cacheHandlers","cacheLifeProfiles","cacheLife","fetchCacheKeyPrefix","isrFlushToDisk","maxMemoryCacheSize","nextConfigOutput","buildId","authInterrupts","sriEnabled","sri","algorithm","end","get","nextInvoke","prerenderedRoutes","fallbackMode","fallback","BLOCKING_STATIC_RENDER","PRERENDER","rawExistingManifest","promises","readFile","existingManifest","parse","staticPath","routes","dynamicRoutes","updatedManifest","writeFile","set","remove","opts","findPageComponents","locale","query","shouldEnsure","compilationErr","getCompilationError","serverOptions","customServer","nextFontManifest","getFallbackErrorComponents","instrumentationOnRequestError","args"],"mappings":"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","ignoreList":[0]}
@@ -12,7 +12,7 @@ export function logStartInfo({ networkUrl, appUrl, envInfo, experimentalFeatures
12
12
  } else {
13
13
  bundlerSuffix = '';
14
14
  }
15
- Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"15.4.3"}`))}${bundlerSuffix}`);
15
+ Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"15.4.4"}`))}${bundlerSuffix}`);
16
16
  if (appUrl) {
17
17
  Log.bootstrap(`- Local: ${appUrl}`);
18
18
  }
@@ -103,7 +103,7 @@ export async function getRequestHandlers({ dir, port, isDev, onDevServerCleanup,
103
103
  export async function startServer(serverOptions) {
104
104
  const { dir, isDev, hostname, minimalMode, allowRetry, keepAliveTimeout, selfSignedCertificate } = serverOptions;
105
105
  let { port } = serverOptions;
106
- process.title = `next-server (v${"15.4.3"})`;
106
+ process.title = `next-server (v${"15.4.4"})`;
107
107
  let handlersReady = ()=>{};
108
108
  let handlersError = ()=>{};
109
109
  let handlersPromise = new Promise((resolve, reject)=>{
@@ -1,6 +1,6 @@
1
1
  export function isStableBuild() {
2
2
  var _process_env___NEXT_VERSION;
3
- return !((_process_env___NEXT_VERSION = "15.4.3") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
3
+ return !((_process_env___NEXT_VERSION = "15.4.4") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
4
4
  }
5
5
  export class CanaryOnlyError extends Error {
6
6
  constructor(arg){
@@ -144,7 +144,7 @@ async function createHotReloaderTurbopack(opts, serverFields, distDir, resetFetc
144
144
  }
145
145
  const hasRewrites = opts.fsChecker.rewrites.afterFiles.length > 0 || opts.fsChecker.rewrites.beforeFiles.length > 0 || opts.fsChecker.rewrites.fallback.length > 0;
146
146
  const hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
147
- version: "15.4.3"
147
+ version: "15.4.4"
148
148
  });
149
149
  // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
150
150
  // of the current `next dev` invocation.
@@ -261,7 +261,7 @@ class HotReloaderWebpack {
261
261
  this.previewProps = previewProps;
262
262
  this.rewrites = rewrites;
263
263
  this.hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
264
- version: "15.4.3"
264
+ version: "15.4.4"
265
265
  });
266
266
  // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
267
267
  // of the current `next dev` invocation.
@@ -616,7 +616,9 @@ class DevServer extends _nextserver.default {
616
616
  staticPaths: staticPaths == null ? void 0 : staticPaths.map((route)=>route.pathname),
617
617
  fallbackMode: fallback
618
618
  };
619
- if (((_res_value = res.value) == null ? void 0 : _res_value.fallbackMode) !== undefined) {
619
+ if (((_res_value = res.value) == null ? void 0 : _res_value.fallbackMode) !== undefined && // This matches the hasGenerateStaticParams logic
620
+ // we do during build
621
+ (!isAppPath || staticPaths && staticPaths.length > 0)) {
620
622
  // we write the static paths to partial manifest for
621
623
  // fallback handling inside of entry handler's
622
624
  const rawExistingManifest = await _fs.default.promises.readFile((0, _path.join)(this.distDir, _constants1.PRERENDER_MANIFEST), 'utf8');