next 15.2.0-canary.15 → 15.2.0-canary.16
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.
Potentially problematic release.
This version of next might be problematic. Click here for more details.
- package/dist/bin/next +1 -1
- package/dist/build/index.js +2 -2
- package/dist/build/swc/index.js +1 -1
- package/dist/build/webpack-config.js +2 -2
- package/dist/client/app-bootstrap.js +1 -1
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.js +17 -2
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.js.map +1 -1
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/next-logo.d.ts +2 -1
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/next-logo.js +160 -375
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/next-logo.js.map +1 -1
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/use-delayed-render.d.ts +11 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/use-delayed-render.js +76 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/use-delayed-render.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/styles.js +1 -1
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/styles.js.map +1 -1
- package/dist/client/components/react-dev-overlay/_experimental/internal/styles/base.js +1 -1
- package/dist/client/components/react-dev-overlay/_experimental/internal/styles/base.js.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/compiled/next-server/app-page-experimental.runtime.dev.js +2 -2
- package/dist/compiled/next-server/app-page-experimental.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/app-page.runtime.dev.js +2 -2
- package/dist/compiled/next-server/app-page.runtime.dev.js.map +1 -1
- package/dist/esm/build/index.js +2 -2
- package/dist/esm/build/swc/index.js +1 -1
- package/dist/esm/build/webpack-config.js +2 -2
- package/dist/esm/client/app-bootstrap.js +1 -1
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.js +17 -2
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/dev-tools-indicator.js.map +1 -1
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/next-logo.js +162 -377
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/next-logo.js.map +1 -1
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/use-delayed-render.js +60 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/internal/use-delayed-render.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/styles.js +1 -1
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/errors/dev-tools-indicator/styles.js.map +1 -1
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/base.js +1 -1
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/base.js.map +1 -1
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/export/index.js +17 -3
- package/dist/esm/export/index.js.map +1 -1
- package/dist/esm/server/config.js +1 -1
- package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/esm/server/dev/next-dev-server.js +4 -0
- package/dist/esm/server/dev/next-dev-server.js.map +1 -1
- package/dist/esm/server/lib/app-info-log.js +1 -1
- package/dist/esm/server/lib/start-server.js +1 -1
- package/dist/export/index.js +16 -2
- package/dist/export/index.js.map +1 -1
- package/dist/server/config.js +1 -1
- package/dist/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/server/dev/next-dev-server.js +4 -0
- package/dist/server/dev/next-dev-server.js.map +1 -1
- package/dist/server/lib/app-info-log.js +1 -1
- package/dist/server/lib/start-server.js +1 -1
- package/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/telemetry/events/session-stopped.js +2 -2
- package/dist/telemetry/events/version.js +2 -2
- package/package.json +15 -15
|
@@ -380,6 +380,10 @@ export default class DevServer extends Server {
|
|
|
380
380
|
}
|
|
381
381
|
getinterceptionRoutePatterns() {
|
|
382
382
|
const rewrites = generateInterceptionRoutesRewrites(Object.keys(this.appPathRoutes ?? {}), this.nextConfig.basePath).map((route)=>new RegExp(buildCustomRoute('rewrite', route).regex));
|
|
383
|
+
if (this.nextConfig.output === 'export' && rewrites.length > 0) {
|
|
384
|
+
Log.error('Intercepting routes are not supported with static export.\nRead more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports#unsupported-features');
|
|
385
|
+
process.exit(1);
|
|
386
|
+
}
|
|
383
387
|
return rewrites ?? [];
|
|
384
388
|
}
|
|
385
389
|
getMiddleware() {
|
|
@@ -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 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 fs from 'fs'\nimport { Worker } from 'next/dist/compiled/jest-worker'\nimport { join as pathJoin } from 'path'\nimport { ampValidation } from '../../build/output'\nimport {\n INSTRUMENTATION_HOOK_FILENAME,\n PUBLIC_DIR_MIDDLEWARE_CONFLICT,\n} 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} 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 } from '../../lib/fallback'\nimport type { ReactDevOverlayType } from '../../client/components/react-dev-overlay/pages/react-dev-overlay'\n\n// Load ReactDevOverlay only when needed\nlet ReactDevOverlayImpl: ReactDevOverlayType\nconst ReactDevOverlay: ReactDevOverlayType = (props) => {\n if (ReactDevOverlayImpl === undefined) {\n ReactDevOverlayImpl =\n require('../../client/components/react-dev-overlay/pages/client').ReactDevOverlay\n }\n return ReactDevOverlayImpl(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 = (html: string, pathname: string) => {\n const validatorPath =\n (this.nextConfig.experimental &&\n this.nextConfig.experimental.amp &&\n this.nextConfig.experimental.amp.validator) ||\n require.resolve(\n 'next/dist/compiled/amphtml-validator/validator_wasm.js'\n )\n\n const AmpHtmlValidator =\n require('next/dist/compiled/amphtml-validator') as typeof import('next/dist/compiled/amphtml-validator')\n return AmpHtmlValidator.getInstance(validatorPath).then((validator) => {\n const result = validator.validateString(html)\n ampValidation(\n pathname,\n result.errors\n .filter((e) => e.severity === 'ERROR')\n .filter((e) => this._filterAmpDevelopmentScript(html, e)),\n result.errors.filter((e) => e.severity !== 'ERROR')\n )\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 matchers.push(\n new DevAppPageRouteMatcherProvider(appDir, extensions, fileReader)\n )\n matchers.push(\n new DevAppRouteRouteMatcherProvider(appDir, extensions, fileReader)\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 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 return rewrites ?? []\n }\n\n protected 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 require(\n pathJoin(this.distDir, 'server', INSTRUMENTATION_HOOK_FILENAME)\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 this.startServerSpan\n .traceChild('run-instrumentation-hook')\n .traceAsyncFn(() => this.instrumentation?.register?.())\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((res) => {\n const { prerenderedRoutes: staticPaths, fallbackMode: fallback } =\n res.value\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 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":["getRequestMeta","fs","Worker","join","pathJoin","ampValidation","INSTRUMENTATION_HOOK_FILENAME","PUBLIC_DIR_MIDDLEWARE_CONFLICT","findPagesDir","PHASE_DEVELOPMENT_SERVER","PAGES_MANIFEST","APP_PATHS_MANIFEST","COMPILER_NAMES","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","ReactDevOverlayImpl","ReactDevOverlay","props","undefined","require","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","validatorPath","validator","AmpHtmlValidator","getInstance","then","result","validateString","errors","filter","e","severity","_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","getBuildId","prepareImpl","distDir","telemetry","reload","interceptionRoutePatterns","getinterceptionRoutePatterns","on","reason","logErrorWithOriginalStack","err","hasPage","normalizedPath","console","error","Boolean","appFile","pagesFile","runMiddleware","params","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","getMiddleware","middleware","getNextFontManifest","hasMiddleware","actualMiddlewareFile","ensureMiddleware","loadInstrumentationModule","instrumentationModule","actualInstrumentationHookFile","message","runInstrumentationHookIfAvailable","instrumentation","register","ensureEdgeFunction","appPaths","generateRoutes","_dev","event","code","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","output","buildId","authInterrupts","sriEnabled","sri","algorithm","end","get","nextInvoke","prerenderedRoutes","fallbackMode","fallback","BLOCKING_STATIC_RENDER","PRERENDER","set","remove","opts","findPageComponents","locale","query","shouldEnsure","compilationErr","getCompilationError","serverOptions","customServer","nextFontManifest","getFallbackErrorComponents","instrumentationOnRequestError","args"],"mappings":"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"}
|
|
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 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 fs from 'fs'\nimport { Worker } from 'next/dist/compiled/jest-worker'\nimport { join as pathJoin } from 'path'\nimport { ampValidation } from '../../build/output'\nimport {\n INSTRUMENTATION_HOOK_FILENAME,\n PUBLIC_DIR_MIDDLEWARE_CONFLICT,\n} 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} 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 } from '../../lib/fallback'\nimport type { ReactDevOverlayType } from '../../client/components/react-dev-overlay/pages/react-dev-overlay'\n\n// Load ReactDevOverlay only when needed\nlet ReactDevOverlayImpl: ReactDevOverlayType\nconst ReactDevOverlay: ReactDevOverlayType = (props) => {\n if (ReactDevOverlayImpl === undefined) {\n ReactDevOverlayImpl =\n require('../../client/components/react-dev-overlay/pages/client').ReactDevOverlay\n }\n return ReactDevOverlayImpl(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 = (html: string, pathname: string) => {\n const validatorPath =\n (this.nextConfig.experimental &&\n this.nextConfig.experimental.amp &&\n this.nextConfig.experimental.amp.validator) ||\n require.resolve(\n 'next/dist/compiled/amphtml-validator/validator_wasm.js'\n )\n\n const AmpHtmlValidator =\n require('next/dist/compiled/amphtml-validator') as typeof import('next/dist/compiled/amphtml-validator')\n return AmpHtmlValidator.getInstance(validatorPath).then((validator) => {\n const result = validator.validateString(html)\n ampValidation(\n pathname,\n result.errors\n .filter((e) => e.severity === 'ERROR')\n .filter((e) => this._filterAmpDevelopmentScript(html, e)),\n result.errors.filter((e) => e.severity !== 'ERROR')\n )\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 matchers.push(\n new DevAppPageRouteMatcherProvider(appDir, extensions, fileReader)\n )\n matchers.push(\n new DevAppRouteRouteMatcherProvider(appDir, extensions, fileReader)\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 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 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 require(\n pathJoin(this.distDir, 'server', INSTRUMENTATION_HOOK_FILENAME)\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 this.startServerSpan\n .traceChild('run-instrumentation-hook')\n .traceAsyncFn(() => this.instrumentation?.register?.())\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((res) => {\n const { prerenderedRoutes: staticPaths, fallbackMode: fallback } =\n res.value\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 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":["getRequestMeta","fs","Worker","join","pathJoin","ampValidation","INSTRUMENTATION_HOOK_FILENAME","PUBLIC_DIR_MIDDLEWARE_CONFLICT","findPagesDir","PHASE_DEVELOPMENT_SERVER","PAGES_MANIFEST","APP_PATHS_MANIFEST","COMPILER_NAMES","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","ReactDevOverlayImpl","ReactDevOverlay","props","undefined","require","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","validatorPath","validator","AmpHtmlValidator","getInstance","then","result","validateString","errors","filter","e","severity","_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","getBuildId","prepareImpl","distDir","telemetry","reload","interceptionRoutePatterns","getinterceptionRoutePatterns","on","reason","logErrorWithOriginalStack","err","hasPage","normalizedPath","console","error","Boolean","appFile","pagesFile","runMiddleware","params","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","instrumentation","register","ensureEdgeFunction","appPaths","generateRoutes","_dev","event","code","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","set","remove","opts","findPageComponents","locale","query","shouldEnsure","compilationErr","getCompilationError","serverOptions","customServer","nextFontManifest","getFallbackErrorComponents","instrumentationOnRequestError","args"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { bold, purple } from '../../lib/picocolors';
|
|
|
4
4
|
import { PHASE_DEVELOPMENT_SERVER, PHASE_PRODUCTION_BUILD } from '../../shared/lib/constants';
|
|
5
5
|
import loadConfig, { getConfiguredExperimentalFeatures } from '../config';
|
|
6
6
|
export function logStartInfo({ networkUrl, appUrl, envInfo, experimentalFeatures, maxExperimentalFeatures = Infinity }) {
|
|
7
|
-
Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"15.2.0-canary.
|
|
7
|
+
Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"15.2.0-canary.16"}`))}${process.env.TURBOPACK ? ' (Turbopack)' : ''}`);
|
|
8
8
|
if (appUrl) {
|
|
9
9
|
Log.bootstrap(`- Local: ${appUrl}`);
|
|
10
10
|
}
|
|
@@ -43,7 +43,7 @@ export async function getRequestHandlers({ dir, port, isDev, onDevServerCleanup,
|
|
|
43
43
|
export async function startServer(serverOptions) {
|
|
44
44
|
const { dir, isDev, hostname, minimalMode, allowRetry, keepAliveTimeout, selfSignedCertificate } = serverOptions;
|
|
45
45
|
let { port } = serverOptions;
|
|
46
|
-
process.title = `next-server (v${"15.2.0-canary.
|
|
46
|
+
process.title = `next-server (v${"15.2.0-canary.16"})`;
|
|
47
47
|
let handlersReady = ()=>{};
|
|
48
48
|
let handlersError = ()=>{};
|
|
49
49
|
let handlersPromise = new Promise((resolve, reject)=>{
|
package/dist/export/index.js
CHANGED
|
@@ -46,6 +46,7 @@ const _iserror = /*#__PURE__*/ _interop_require_default(require("../lib/is-error
|
|
|
46
46
|
const _formatmanifest = require("../build/manifests/formatter/format-manifest");
|
|
47
47
|
const _turborepoaccesstrace = require("../build/turborepo-access-trace");
|
|
48
48
|
const _progress = require("../build/progress");
|
|
49
|
+
const _generateinterceptionroutesrewrites = require("../lib/generate-interception-routes-rewrites");
|
|
49
50
|
function _interop_require_default(obj) {
|
|
50
51
|
return obj && obj.__esModule ? obj : {
|
|
51
52
|
default: obj
|
|
@@ -269,9 +270,22 @@ async function exportAppImpl(dir, options, span) {
|
|
|
269
270
|
if (enabledDirectories.app) {
|
|
270
271
|
serverActionsManifest = require((0, _path.join)(distDir, _constants1.SERVER_DIRECTORY, _constants1.SERVER_REFERENCE_MANIFEST + '.json'));
|
|
271
272
|
if (nextConfig.output === 'export') {
|
|
273
|
+
var _routesManifest_rewrites_beforeFiles, _routesManifest_rewrites;
|
|
274
|
+
const routesManifest = require((0, _path.join)(distDir, _constants1.ROUTES_MANIFEST));
|
|
275
|
+
// We already prevent rewrites earlier in the process, however Next.js will insert rewrites
|
|
276
|
+
// for interception routes so we need to check for that here.
|
|
277
|
+
if ((routesManifest == null ? void 0 : (_routesManifest_rewrites = routesManifest.rewrites) == null ? void 0 : (_routesManifest_rewrites_beforeFiles = _routesManifest_rewrites.beforeFiles) == null ? void 0 : _routesManifest_rewrites_beforeFiles.length) > 0) {
|
|
278
|
+
const hasInterceptionRouteRewrite = routesManifest.rewrites.beforeFiles.some(_generateinterceptionroutesrewrites.isInterceptionRouteRewrite);
|
|
279
|
+
if (hasInterceptionRouteRewrite) {
|
|
280
|
+
throw Object.defineProperty(new ExportError(`Intercepting routes are not supported with static export.\nRead more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports#unsupported-features`), "__NEXT_ERROR_CODE", {
|
|
281
|
+
value: "E626",
|
|
282
|
+
enumerable: false
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
}
|
|
272
286
|
if (Object.keys(serverActionsManifest.node).length > 0 || Object.keys(serverActionsManifest.edge).length > 0) {
|
|
273
|
-
throw Object.defineProperty(new ExportError(`Server Actions are not supported with static export
|
|
274
|
-
value: "
|
|
287
|
+
throw Object.defineProperty(new ExportError(`Server Actions are not supported with static export.\nRead more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports#unsupported-features`), "__NEXT_ERROR_CODE", {
|
|
288
|
+
value: "E625",
|
|
275
289
|
enumerable: false
|
|
276
290
|
});
|
|
277
291
|
}
|
package/dist/export/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/export/index.ts"],"sourcesContent":["import type {\n ExportAppResult,\n ExportAppOptions,\n WorkerRenderOptsPartial,\n} from './types'\nimport { createStaticWorker, type PrerenderManifest } from '../build'\nimport type { PagesManifest } from '../build/webpack/plugins/pages-manifest-plugin'\n\nimport { bold, yellow } from '../lib/picocolors'\nimport findUp from 'next/dist/compiled/find-up'\nimport { existsSync, promises as fs } from 'fs'\n\nimport '../server/require-hook'\n\nimport { dirname, join, resolve, sep } from 'path'\nimport { formatAmpMessages } from '../build/output/index'\nimport type { AmpPageStatus } from '../build/output/index'\nimport * as Log from '../build/output/log'\nimport { RSC_SUFFIX, SSG_FALLBACK_EXPORT_ERROR } from '../lib/constants'\nimport { recursiveCopy } from '../lib/recursive-copy'\nimport {\n BUILD_ID_FILE,\n CLIENT_PUBLIC_FILES_PATH,\n CLIENT_STATIC_FILES_PATH,\n EXPORT_DETAIL,\n EXPORT_MARKER,\n NEXT_FONT_MANIFEST,\n MIDDLEWARE_MANIFEST,\n PAGES_MANIFEST,\n PHASE_EXPORT,\n PRERENDER_MANIFEST,\n SERVER_DIRECTORY,\n SERVER_REFERENCE_MANIFEST,\n APP_PATH_ROUTES_MANIFEST,\n} from '../shared/lib/constants'\nimport loadConfig from '../server/config'\nimport type { ExportPathMap } from '../server/config-shared'\nimport { eventCliSession } from '../telemetry/events'\nimport { hasNextSupport } from '../server/ci-info'\nimport { Telemetry } from '../telemetry/storage'\nimport { normalizePagePath } from '../shared/lib/page-path/normalize-page-path'\nimport { denormalizePagePath } from '../shared/lib/page-path/denormalize-page-path'\nimport { loadEnvConfig } from '@next/env'\nimport { isAPIRoute } from '../lib/is-api-route'\nimport { getPagePath } from '../server/require'\nimport type { Span } from '../trace'\nimport type { MiddlewareManifest } from '../build/webpack/plugins/middleware-plugin'\nimport { isAppRouteRoute } from '../lib/is-app-route-route'\nimport { isAppPageRoute } from '../lib/is-app-page-route'\nimport isError from '../lib/is-error'\nimport { formatManifest } from '../build/manifests/formatter/format-manifest'\nimport { TurborepoAccessTraceResult } from '../build/turborepo-access-trace'\nimport { createProgress } from '../build/progress'\nimport type { DeepReadonly } from '../shared/lib/deep-readonly'\n\nexport class ExportError extends Error {\n code = 'NEXT_EXPORT_ERROR'\n}\n\nasync function exportAppImpl(\n dir: string,\n options: Readonly<ExportAppOptions>,\n span: Span\n): Promise<ExportAppResult | null> {\n dir = resolve(dir)\n\n // attempt to load global env values so they are available in next.config.js\n span.traceChild('load-dotenv').traceFn(() => loadEnvConfig(dir, false, Log))\n\n const { enabledDirectories } = options\n\n const nextConfig =\n options.nextConfig ||\n (await span\n .traceChild('load-next-config')\n .traceAsyncFn(() => loadConfig(PHASE_EXPORT, dir)))\n\n const distDir = join(dir, nextConfig.distDir)\n const telemetry = options.buildExport ? null : new Telemetry({ distDir })\n\n if (telemetry) {\n telemetry.record(\n eventCliSession(distDir, nextConfig, {\n webpackVersion: null,\n cliCommand: 'export',\n isSrcDir: null,\n hasNowJson: !!(await findUp('now.json', { cwd: dir })),\n isCustomServer: null,\n turboFlag: false,\n pagesDir: null,\n appDir: null,\n })\n )\n }\n\n const subFolders = nextConfig.trailingSlash && !options.buildExport\n\n if (!options.silent && !options.buildExport) {\n Log.info(`using build directory: ${distDir}`)\n }\n\n const buildIdFile = join(distDir, BUILD_ID_FILE)\n\n if (!existsSync(buildIdFile)) {\n throw new ExportError(\n `Could not find a production build in the '${distDir}' directory. Try building your app with 'next build' before starting the static export. https://nextjs.org/docs/messages/next-export-no-build-id`\n )\n }\n\n const customRoutes = ['rewrites', 'redirects', 'headers'].filter(\n (config) => typeof nextConfig[config] === 'function'\n )\n\n if (!hasNextSupport && !options.buildExport && customRoutes.length > 0) {\n Log.warn(\n `rewrites, redirects, and headers are not applied when exporting your application, detected (${customRoutes.join(\n ', '\n )}). See more info here: https://nextjs.org/docs/messages/export-no-custom-routes`\n )\n }\n\n const buildId = await fs.readFile(buildIdFile, 'utf8')\n\n const pagesManifest =\n !options.pages &&\n (require(join(distDir, SERVER_DIRECTORY, PAGES_MANIFEST)) as PagesManifest)\n\n let prerenderManifest: DeepReadonly<PrerenderManifest> | undefined\n try {\n prerenderManifest = require(join(distDir, PRERENDER_MANIFEST))\n } catch {}\n\n let appRoutePathManifest: Record<string, string> | undefined\n try {\n appRoutePathManifest = require(join(distDir, APP_PATH_ROUTES_MANIFEST))\n } catch (err) {\n if (\n isError(err) &&\n (err.code === 'ENOENT' || err.code === 'MODULE_NOT_FOUND')\n ) {\n // the manifest doesn't exist which will happen when using\n // \"pages\" dir instead of \"app\" dir.\n appRoutePathManifest = undefined\n } else {\n // the manifest is malformed (invalid json)\n throw err\n }\n }\n\n const excludedPrerenderRoutes = new Set<string>()\n const pages = options.pages || Object.keys(pagesManifest)\n const defaultPathMap: ExportPathMap = {}\n\n let hasApiRoutes = false\n for (const page of pages) {\n // _document and _app are not real pages\n // _error is exported as 404.html later on\n // API Routes are Node.js functions\n\n if (isAPIRoute(page)) {\n hasApiRoutes = true\n continue\n }\n\n if (page === '/_document' || page === '/_app' || page === '/_error') {\n continue\n }\n\n // iSSG pages that are dynamic should not export templated version by\n // default. In most cases, this would never work. There is no server that\n // could run `getStaticProps`. If users make their page work lazily, they\n // can manually add it to the `exportPathMap`.\n if (prerenderManifest?.dynamicRoutes[page]) {\n excludedPrerenderRoutes.add(page)\n continue\n }\n\n defaultPathMap[page] = { page }\n }\n\n const mapAppRouteToPage = new Map<string, string>()\n if (!options.buildExport && appRoutePathManifest) {\n for (const [pageName, routePath] of Object.entries(appRoutePathManifest)) {\n mapAppRouteToPage.set(routePath, pageName)\n if (\n isAppPageRoute(pageName) &&\n !prerenderManifest?.routes[routePath] &&\n !prerenderManifest?.dynamicRoutes[routePath]\n ) {\n defaultPathMap[routePath] = {\n page: pageName,\n _isAppDir: true,\n }\n }\n }\n }\n\n // Initialize the output directory\n const outDir = options.outdir\n\n if (outDir === join(dir, 'public')) {\n throw new ExportError(\n `The 'public' directory is reserved in Next.js and can not be used as the export out directory. https://nextjs.org/docs/messages/can-not-output-to-public`\n )\n }\n\n if (outDir === join(dir, 'static')) {\n throw new ExportError(\n `The 'static' directory is reserved in Next.js and can not be used as the export out directory. https://nextjs.org/docs/messages/can-not-output-to-static`\n )\n }\n\n await fs.rm(outDir, { recursive: true, force: true })\n await fs.mkdir(join(outDir, '_next', buildId), { recursive: true })\n\n await fs.writeFile(\n join(distDir, EXPORT_DETAIL),\n formatManifest({\n version: 1,\n outDirectory: outDir,\n success: false,\n }),\n 'utf8'\n )\n\n // Copy static directory\n if (!options.buildExport && existsSync(join(dir, 'static'))) {\n if (!options.silent) {\n Log.info('Copying \"static\" directory')\n }\n await span\n .traceChild('copy-static-directory')\n .traceAsyncFn(() =>\n recursiveCopy(join(dir, 'static'), join(outDir, 'static'))\n )\n }\n\n // Copy .next/static directory\n if (\n !options.buildExport &&\n existsSync(join(distDir, CLIENT_STATIC_FILES_PATH))\n ) {\n if (!options.silent) {\n Log.info('Copying \"static build\" directory')\n }\n await span\n .traceChild('copy-next-static-directory')\n .traceAsyncFn(() =>\n recursiveCopy(\n join(distDir, CLIENT_STATIC_FILES_PATH),\n join(outDir, '_next', CLIENT_STATIC_FILES_PATH)\n )\n )\n }\n\n // Get the exportPathMap from the config file\n if (typeof nextConfig.exportPathMap !== 'function') {\n nextConfig.exportPathMap = async (defaultMap) => {\n return defaultMap\n }\n }\n\n const {\n i18n,\n images: { loader = 'default', unoptimized },\n } = nextConfig\n\n if (i18n && !options.buildExport) {\n throw new ExportError(\n `i18n support is not compatible with next export. See here for more info on deploying: https://nextjs.org/docs/messages/export-no-custom-routes`\n )\n }\n\n if (!options.buildExport) {\n const { isNextImageImported } = await span\n .traceChild('is-next-image-imported')\n .traceAsyncFn(() =>\n fs\n .readFile(join(distDir, EXPORT_MARKER), 'utf8')\n .then((text) => JSON.parse(text))\n .catch(() => ({}))\n )\n\n if (\n isNextImageImported &&\n loader === 'default' &&\n !unoptimized &&\n !hasNextSupport\n ) {\n throw new ExportError(\n `Image Optimization using the default loader is not compatible with export.\n Possible solutions:\n - Use \\`next start\\` to run a server, which includes the Image Optimization API.\n - Configure \\`images.unoptimized = true\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`\n )\n }\n }\n\n let serverActionsManifest\n if (enabledDirectories.app) {\n serverActionsManifest = require(\n join(distDir, SERVER_DIRECTORY, SERVER_REFERENCE_MANIFEST + '.json')\n )\n if (nextConfig.output === 'export') {\n if (\n Object.keys(serverActionsManifest.node).length > 0 ||\n Object.keys(serverActionsManifest.edge).length > 0\n ) {\n throw new ExportError(\n `Server Actions are not supported with static export.`\n )\n }\n }\n }\n\n // Start the rendering process\n const renderOpts: WorkerRenderOptsPartial = {\n previewProps: prerenderManifest?.preview,\n nextExport: true,\n assetPrefix: nextConfig.assetPrefix.replace(/\\/$/, ''),\n distDir,\n dev: false,\n basePath: nextConfig.basePath,\n trailingSlash: nextConfig.trailingSlash,\n canonicalBase: nextConfig.amp?.canonicalBase || '',\n ampSkipValidation: nextConfig.experimental.amp?.skipValidation || false,\n ampOptimizerConfig: nextConfig.experimental.amp?.optimizer || undefined,\n locales: i18n?.locales,\n locale: i18n?.defaultLocale,\n defaultLocale: i18n?.defaultLocale,\n domainLocales: i18n?.domains,\n disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading,\n // Exported pages do not currently support dynamic HTML.\n supportsDynamicResponse: false,\n crossOrigin: nextConfig.crossOrigin,\n optimizeCss: nextConfig.experimental.optimizeCss,\n nextConfigOutput: nextConfig.output,\n nextScriptWorkers: nextConfig.experimental.nextScriptWorkers,\n largePageDataBytes: nextConfig.experimental.largePageDataBytes,\n serverActions: nextConfig.experimental.serverActions,\n serverComponents: enabledDirectories.app,\n cacheLifeProfiles: nextConfig.experimental.cacheLife,\n nextFontManifest: require(\n join(distDir, 'server', `${NEXT_FONT_MANIFEST}.json`)\n ),\n images: nextConfig.images,\n ...(enabledDirectories.app\n ? {\n serverActionsManifest,\n }\n : {}),\n strictNextHead: nextConfig.experimental.strictNextHead ?? true,\n deploymentId: nextConfig.deploymentId,\n experimental: {\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata,\n expireTime: nextConfig.expireTime,\n dynamicIO: nextConfig.experimental.dynamicIO ?? false,\n clientSegmentCache: nextConfig.experimental.clientSegmentCache ?? false,\n inlineCss: nextConfig.experimental.inlineCss ?? false,\n authInterrupts: !!nextConfig.experimental.authInterrupts,\n streamingMetadata: !!nextConfig.experimental.streamingMetadata,\n htmlLimitedBots: nextConfig.experimental.htmlLimitedBots,\n },\n reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n }\n\n const { publicRuntimeConfig } = nextConfig\n\n if (Object.keys(publicRuntimeConfig).length > 0) {\n renderOpts.runtimeConfig = publicRuntimeConfig\n }\n\n // We need this for server rendering the Link component.\n ;(globalThis as any).__NEXT_DATA__ = {\n nextExport: true,\n }\n\n const exportPathMap = await span\n .traceChild('run-export-path-map')\n .traceAsyncFn(async () => {\n const exportMap = await nextConfig.exportPathMap(defaultPathMap, {\n dev: false,\n dir,\n outDir,\n distDir,\n buildId,\n })\n return exportMap\n })\n\n // only add missing 404 page when `buildExport` is false\n if (!options.buildExport) {\n // only add missing /404 if not specified in `exportPathMap`\n if (!exportPathMap['/404']) {\n exportPathMap['/404'] = { page: '/_error' }\n }\n\n /**\n * exports 404.html for backwards compat\n * E.g. GitHub Pages, GitLab Pages, Cloudflare Pages, Netlify\n */\n if (!exportPathMap['/404.html']) {\n // alias /404.html to /404 to be compatible with custom 404 / _error page\n exportPathMap['/404.html'] = exportPathMap['/404']\n }\n }\n\n // make sure to prevent duplicates\n const exportPaths = [\n ...new Set(\n Object.keys(exportPathMap).map((path) =>\n denormalizePagePath(normalizePagePath(path))\n )\n ),\n ]\n\n const filteredPaths = exportPaths.filter(\n (route) =>\n exportPathMap[route]._isAppDir ||\n // Remove API routes\n !isAPIRoute(exportPathMap[route].page)\n )\n\n if (filteredPaths.length !== exportPaths.length) {\n hasApiRoutes = true\n }\n\n if (filteredPaths.length === 0) {\n return null\n }\n\n if (prerenderManifest && !options.buildExport) {\n const fallbackEnabledPages = new Set()\n\n for (const path of Object.keys(exportPathMap)) {\n const page = exportPathMap[path].page\n const prerenderInfo = prerenderManifest.dynamicRoutes[page]\n\n if (prerenderInfo && prerenderInfo.fallback !== false) {\n fallbackEnabledPages.add(page)\n }\n }\n\n if (fallbackEnabledPages.size > 0) {\n throw new ExportError(\n `Found pages with \\`fallback\\` enabled:\\n${[\n ...fallbackEnabledPages,\n ].join('\\n')}\\n${SSG_FALLBACK_EXPORT_ERROR}\\n`\n )\n }\n }\n let hasMiddleware = false\n\n if (!options.buildExport) {\n try {\n const middlewareManifest = require(\n join(distDir, SERVER_DIRECTORY, MIDDLEWARE_MANIFEST)\n ) as MiddlewareManifest\n\n hasMiddleware = Object.keys(middlewareManifest.middleware).length > 0\n } catch {}\n\n // Warn if the user defines a path for an API page\n if (hasApiRoutes || hasMiddleware) {\n if (nextConfig.output === 'export') {\n Log.warn(\n yellow(\n `Statically exporting a Next.js application via \\`next export\\` disables API routes and middleware.`\n ) +\n `\\n` +\n yellow(\n `This command is meant for static-only hosts, and is` +\n ' ' +\n bold(`not necessary to make your application static.`)\n ) +\n `\\n` +\n yellow(\n `Pages in your application without server-side data dependencies will be automatically statically exported by \\`next build\\`, including pages powered by \\`getStaticProps\\`.`\n ) +\n `\\n` +\n yellow(\n `Learn more: https://nextjs.org/docs/messages/api-routes-static-export`\n )\n )\n }\n }\n }\n\n const pagesDataDir = options.buildExport\n ? outDir\n : join(outDir, '_next/data', buildId)\n\n const ampValidations: AmpPageStatus = {}\n\n const publicDir = join(dir, CLIENT_PUBLIC_FILES_PATH)\n // Copy public directory\n if (!options.buildExport && existsSync(publicDir)) {\n if (!options.silent) {\n Log.info('Copying \"public\" directory')\n }\n await span.traceChild('copy-public-directory').traceAsyncFn(() =>\n recursiveCopy(publicDir, outDir, {\n filter(path) {\n // Exclude paths used by pages\n return !exportPathMap[path]\n },\n })\n )\n }\n\n const failedExportAttemptsByPage: Map<string, boolean> = new Map()\n\n // Chunk filtered pages into smaller groups, and call the export worker on each group.\n // We've set a default minimum of 25 pages per chunk to ensure that even setups\n // with only a few static pages can leverage a shared incremental cache, however this\n // value can be configured.\n const minChunkSize =\n nextConfig.experimental.staticGenerationMinPagesPerWorker ?? 25\n // Calculate the number of workers needed to ensure each chunk has at least minChunkSize pages\n const numWorkers = Math.min(\n options.numWorkers,\n Math.ceil(filteredPaths.length / minChunkSize)\n )\n // Calculate the chunk size based on the number of workers\n const chunkSize = Math.ceil(filteredPaths.length / numWorkers)\n const chunks = Array.from({ length: numWorkers }, (_, i) =>\n filteredPaths.slice(i * chunkSize, (i + 1) * chunkSize)\n )\n // Distribute remaining pages\n const remainingPages = filteredPaths.slice(numWorkers * chunkSize)\n remainingPages.forEach((page, index) => {\n chunks[index % chunks.length].push(page)\n })\n\n const progress = createProgress(\n filteredPaths.length,\n options.statusMessage || 'Exporting'\n )\n\n const worker = createStaticWorker(nextConfig, progress)\n\n const results = (\n await Promise.all(\n chunks.map((paths) =>\n worker.exportPages({\n buildId,\n paths,\n exportPathMap,\n parentSpanId: span.getId(),\n pagesDataDir,\n renderOpts,\n options,\n dir,\n distDir,\n outDir,\n nextConfig,\n cacheHandler: nextConfig.cacheHandler,\n cacheMaxMemorySize: nextConfig.cacheMaxMemorySize,\n fetchCache: true,\n fetchCacheKeyPrefix: nextConfig.experimental.fetchCacheKeyPrefix,\n })\n )\n )\n ).flat()\n\n let hadValidationError = false\n\n const collector: ExportAppResult = {\n byPath: new Map(),\n byPage: new Map(),\n ssgNotFoundPaths: new Set(),\n turborepoAccessTraceResults: new Map(),\n }\n\n for (const { result, path, pageKey } of results) {\n if (!result) continue\n if ('error' in result) {\n failedExportAttemptsByPage.set(pageKey, true)\n continue\n }\n\n const { page } = exportPathMap[path]\n\n if (result.turborepoAccessTraceResult) {\n collector.turborepoAccessTraceResults?.set(\n path,\n TurborepoAccessTraceResult.fromSerialized(\n result.turborepoAccessTraceResult\n )\n )\n }\n\n // Capture any amp validations.\n if (result.ampValidations) {\n for (const validation of result.ampValidations) {\n ampValidations[validation.page] = validation.result\n hadValidationError ||= validation.result.errors.length > 0\n }\n }\n\n if (options.buildExport) {\n // Update path info by path.\n const info = collector.byPath.get(path) ?? {}\n if (typeof result.revalidate !== 'undefined') {\n info.revalidate = result.revalidate\n }\n if (typeof result.metadata !== 'undefined') {\n info.metadata = result.metadata\n }\n\n if (typeof result.hasEmptyPrelude !== 'undefined') {\n info.hasEmptyPrelude = result.hasEmptyPrelude\n }\n\n if (typeof result.hasPostponed !== 'undefined') {\n info.hasPostponed = result.hasPostponed\n }\n\n if (typeof result.fetchMetrics !== 'undefined') {\n info.fetchMetrics = result.fetchMetrics\n }\n\n collector.byPath.set(path, info)\n\n // Update not found.\n if (result.ssgNotFound === true) {\n collector.ssgNotFoundPaths.add(path)\n }\n\n // Update durations.\n const durations = collector.byPage.get(page) ?? {\n durationsByPath: new Map<string, number>(),\n }\n durations.durationsByPath.set(path, result.duration)\n collector.byPage.set(page, durations)\n }\n }\n\n // Export mode provide static outputs that are not compatible with PPR mode.\n if (!options.buildExport && nextConfig.experimental.ppr) {\n // TODO: add message\n throw new Error('Invariant: PPR cannot be enabled in export mode')\n }\n\n // copy prerendered routes to outDir\n if (!options.buildExport && prerenderManifest) {\n await Promise.all(\n Object.keys(prerenderManifest.routes).map(async (route) => {\n const { srcRoute } = prerenderManifest!.routes[route]\n const appPageName = mapAppRouteToPage.get(srcRoute || '')\n const pageName = appPageName || srcRoute || route\n const isAppPath = Boolean(appPageName)\n const isAppRouteHandler = appPageName && isAppRouteRoute(appPageName)\n\n // returning notFound: true from getStaticProps will not\n // output html/json files during the build\n if (prerenderManifest!.notFoundRoutes.includes(route)) {\n return\n }\n route = normalizePagePath(route)\n\n const pagePath = getPagePath(pageName, distDir, undefined, isAppPath)\n const distPagesDir = join(\n pagePath,\n // strip leading / and then recurse number of nested dirs\n // to place from base folder\n pageName\n .slice(1)\n .split('/')\n .map(() => '..')\n .join('/')\n )\n\n const orig = join(distPagesDir, route)\n const handlerSrc = `${orig}.body`\n const handlerDest = join(outDir, route)\n\n if (isAppRouteHandler && existsSync(handlerSrc)) {\n await fs.mkdir(dirname(handlerDest), { recursive: true })\n await fs.copyFile(handlerSrc, handlerDest)\n return\n }\n\n const htmlDest = join(\n outDir,\n `${route}${\n subFolders && route !== '/index' ? `${sep}index` : ''\n }.html`\n )\n const ampHtmlDest = join(\n outDir,\n `${route}.amp${subFolders ? `${sep}index` : ''}.html`\n )\n const jsonDest = isAppPath\n ? join(\n outDir,\n `${route}${\n subFolders && route !== '/index' ? `${sep}index` : ''\n }.txt`\n )\n : join(pagesDataDir, `${route}.json`)\n\n await fs.mkdir(dirname(htmlDest), { recursive: true })\n await fs.mkdir(dirname(jsonDest), { recursive: true })\n\n const htmlSrc = `${orig}.html`\n const jsonSrc = `${orig}${isAppPath ? RSC_SUFFIX : '.json'}`\n\n await fs.copyFile(htmlSrc, htmlDest)\n await fs.copyFile(jsonSrc, jsonDest)\n\n if (existsSync(`${orig}.amp.html`)) {\n await fs.mkdir(dirname(ampHtmlDest), { recursive: true })\n await fs.copyFile(`${orig}.amp.html`, ampHtmlDest)\n }\n })\n )\n }\n\n if (Object.keys(ampValidations).length) {\n console.log(formatAmpMessages(ampValidations))\n }\n if (hadValidationError) {\n throw new ExportError(\n `AMP Validation caused the export to fail. https://nextjs.org/docs/messages/amp-export-validation`\n )\n }\n\n if (failedExportAttemptsByPage.size > 0) {\n const failedPages = Array.from(failedExportAttemptsByPage.keys())\n throw new ExportError(\n `Export encountered errors on following paths:\\n\\t${failedPages\n .sort()\n .join('\\n\\t')}`\n )\n }\n\n await fs.writeFile(\n join(distDir, EXPORT_DETAIL),\n formatManifest({\n version: 1,\n outDirectory: outDir,\n success: true,\n }),\n 'utf8'\n )\n\n if (telemetry) {\n await telemetry.flush()\n }\n\n await worker.end()\n\n return collector\n}\n\nexport default async function exportApp(\n dir: string,\n options: ExportAppOptions,\n span: Span\n): Promise<ExportAppResult | null> {\n const nextExportSpan = span.traceChild('next-export')\n\n return nextExportSpan.traceAsyncFn(async () => {\n return await exportAppImpl(dir, options, nextExportSpan)\n })\n}\n"],"names":["ExportError","exportApp","Error","code","exportAppImpl","dir","options","span","nextConfig","resolve","traceChild","traceFn","loadEnvConfig","Log","enabledDirectories","traceAsyncFn","loadConfig","PHASE_EXPORT","distDir","join","telemetry","buildExport","Telemetry","record","eventCliSession","webpackVersion","cliCommand","isSrcDir","hasNowJson","findUp","cwd","isCustomServer","turboFlag","pagesDir","appDir","subFolders","trailingSlash","silent","info","buildIdFile","BUILD_ID_FILE","existsSync","customRoutes","filter","config","hasNextSupport","length","warn","buildId","fs","readFile","pagesManifest","pages","require","SERVER_DIRECTORY","PAGES_MANIFEST","prerenderManifest","PRERENDER_MANIFEST","appRoutePathManifest","APP_PATH_ROUTES_MANIFEST","err","isError","undefined","excludedPrerenderRoutes","Set","Object","keys","defaultPathMap","hasApiRoutes","page","isAPIRoute","dynamicRoutes","add","mapAppRouteToPage","Map","pageName","routePath","entries","set","isAppPageRoute","routes","_isAppDir","outDir","outdir","rm","recursive","force","mkdir","writeFile","EXPORT_DETAIL","formatManifest","version","outDirectory","success","recursiveCopy","CLIENT_STATIC_FILES_PATH","exportPathMap","defaultMap","i18n","images","loader","unoptimized","isNextImageImported","EXPORT_MARKER","then","text","JSON","parse","catch","serverActionsManifest","app","SERVER_REFERENCE_MANIFEST","output","node","edge","renderOpts","previewProps","preview","nextExport","assetPrefix","replace","dev","basePath","canonicalBase","amp","ampSkipValidation","experimental","skipValidation","ampOptimizerConfig","optimizer","locales","locale","defaultLocale","domainLocales","domains","disableOptimizedLoading","supportsDynamicResponse","crossOrigin","optimizeCss","nextConfigOutput","nextScriptWorkers","largePageDataBytes","serverActions","serverComponents","cacheLifeProfiles","cacheLife","nextFontManifest","NEXT_FONT_MANIFEST","strictNextHead","deploymentId","clientTraceMetadata","expireTime","dynamicIO","clientSegmentCache","inlineCss","authInterrupts","streamingMetadata","htmlLimitedBots","reactMaxHeadersLength","publicRuntimeConfig","runtimeConfig","globalThis","__NEXT_DATA__","exportMap","exportPaths","map","path","denormalizePagePath","normalizePagePath","filteredPaths","route","fallbackEnabledPages","prerenderInfo","fallback","size","SSG_FALLBACK_EXPORT_ERROR","hasMiddleware","middlewareManifest","MIDDLEWARE_MANIFEST","middleware","yellow","bold","pagesDataDir","ampValidations","publicDir","CLIENT_PUBLIC_FILES_PATH","failedExportAttemptsByPage","minChunkSize","staticGenerationMinPagesPerWorker","numWorkers","Math","min","ceil","chunkSize","chunks","Array","from","_","i","slice","remainingPages","forEach","index","push","progress","createProgress","statusMessage","worker","createStaticWorker","results","Promise","all","paths","exportPages","parentSpanId","getId","cacheHandler","cacheMaxMemorySize","fetchCache","fetchCacheKeyPrefix","flat","hadValidationError","collector","byPath","byPage","ssgNotFoundPaths","turborepoAccessTraceResults","result","pageKey","turborepoAccessTraceResult","TurborepoAccessTraceResult","fromSerialized","validation","errors","get","revalidate","metadata","hasEmptyPrelude","hasPostponed","fetchMetrics","ssgNotFound","durations","durationsByPath","duration","ppr","srcRoute","appPageName","isAppPath","Boolean","isAppRouteHandler","isAppRouteRoute","notFoundRoutes","includes","pagePath","getPagePath","distPagesDir","split","orig","handlerSrc","handlerDest","dirname","copyFile","htmlDest","sep","ampHtmlDest","jsonDest","htmlSrc","jsonSrc","RSC_SUFFIX","console","log","formatAmpMessages","failedPages","sort","flush","end","nextExportSpan"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/export/index.ts"],"sourcesContent":["import type {\n ExportAppResult,\n ExportAppOptions,\n WorkerRenderOptsPartial,\n} from './types'\nimport { createStaticWorker, type PrerenderManifest } from '../build'\nimport type { PagesManifest } from '../build/webpack/plugins/pages-manifest-plugin'\n\nimport { bold, yellow } from '../lib/picocolors'\nimport findUp from 'next/dist/compiled/find-up'\nimport { existsSync, promises as fs } from 'fs'\n\nimport '../server/require-hook'\n\nimport { dirname, join, resolve, sep } from 'path'\nimport { formatAmpMessages } from '../build/output/index'\nimport type { AmpPageStatus } from '../build/output/index'\nimport * as Log from '../build/output/log'\nimport { RSC_SUFFIX, SSG_FALLBACK_EXPORT_ERROR } from '../lib/constants'\nimport { recursiveCopy } from '../lib/recursive-copy'\nimport {\n BUILD_ID_FILE,\n CLIENT_PUBLIC_FILES_PATH,\n CLIENT_STATIC_FILES_PATH,\n EXPORT_DETAIL,\n EXPORT_MARKER,\n NEXT_FONT_MANIFEST,\n MIDDLEWARE_MANIFEST,\n PAGES_MANIFEST,\n PHASE_EXPORT,\n PRERENDER_MANIFEST,\n SERVER_DIRECTORY,\n SERVER_REFERENCE_MANIFEST,\n APP_PATH_ROUTES_MANIFEST,\n ROUTES_MANIFEST,\n} from '../shared/lib/constants'\nimport loadConfig from '../server/config'\nimport type { ExportPathMap } from '../server/config-shared'\nimport { eventCliSession } from '../telemetry/events'\nimport { hasNextSupport } from '../server/ci-info'\nimport { Telemetry } from '../telemetry/storage'\nimport { normalizePagePath } from '../shared/lib/page-path/normalize-page-path'\nimport { denormalizePagePath } from '../shared/lib/page-path/denormalize-page-path'\nimport { loadEnvConfig } from '@next/env'\nimport { isAPIRoute } from '../lib/is-api-route'\nimport { getPagePath } from '../server/require'\nimport type { Span } from '../trace'\nimport type { MiddlewareManifest } from '../build/webpack/plugins/middleware-plugin'\nimport { isAppRouteRoute } from '../lib/is-app-route-route'\nimport { isAppPageRoute } from '../lib/is-app-page-route'\nimport isError from '../lib/is-error'\nimport { formatManifest } from '../build/manifests/formatter/format-manifest'\nimport { TurborepoAccessTraceResult } from '../build/turborepo-access-trace'\nimport { createProgress } from '../build/progress'\nimport type { DeepReadonly } from '../shared/lib/deep-readonly'\nimport { isInterceptionRouteRewrite } from '../lib/generate-interception-routes-rewrites'\n\nexport class ExportError extends Error {\n code = 'NEXT_EXPORT_ERROR'\n}\n\nasync function exportAppImpl(\n dir: string,\n options: Readonly<ExportAppOptions>,\n span: Span\n): Promise<ExportAppResult | null> {\n dir = resolve(dir)\n\n // attempt to load global env values so they are available in next.config.js\n span.traceChild('load-dotenv').traceFn(() => loadEnvConfig(dir, false, Log))\n\n const { enabledDirectories } = options\n\n const nextConfig =\n options.nextConfig ||\n (await span\n .traceChild('load-next-config')\n .traceAsyncFn(() => loadConfig(PHASE_EXPORT, dir)))\n\n const distDir = join(dir, nextConfig.distDir)\n const telemetry = options.buildExport ? null : new Telemetry({ distDir })\n\n if (telemetry) {\n telemetry.record(\n eventCliSession(distDir, nextConfig, {\n webpackVersion: null,\n cliCommand: 'export',\n isSrcDir: null,\n hasNowJson: !!(await findUp('now.json', { cwd: dir })),\n isCustomServer: null,\n turboFlag: false,\n pagesDir: null,\n appDir: null,\n })\n )\n }\n\n const subFolders = nextConfig.trailingSlash && !options.buildExport\n\n if (!options.silent && !options.buildExport) {\n Log.info(`using build directory: ${distDir}`)\n }\n\n const buildIdFile = join(distDir, BUILD_ID_FILE)\n\n if (!existsSync(buildIdFile)) {\n throw new ExportError(\n `Could not find a production build in the '${distDir}' directory. Try building your app with 'next build' before starting the static export. https://nextjs.org/docs/messages/next-export-no-build-id`\n )\n }\n\n const customRoutes = ['rewrites', 'redirects', 'headers'].filter(\n (config) => typeof nextConfig[config] === 'function'\n )\n\n if (!hasNextSupport && !options.buildExport && customRoutes.length > 0) {\n Log.warn(\n `rewrites, redirects, and headers are not applied when exporting your application, detected (${customRoutes.join(\n ', '\n )}). See more info here: https://nextjs.org/docs/messages/export-no-custom-routes`\n )\n }\n\n const buildId = await fs.readFile(buildIdFile, 'utf8')\n\n const pagesManifest =\n !options.pages &&\n (require(join(distDir, SERVER_DIRECTORY, PAGES_MANIFEST)) as PagesManifest)\n\n let prerenderManifest: DeepReadonly<PrerenderManifest> | undefined\n try {\n prerenderManifest = require(join(distDir, PRERENDER_MANIFEST))\n } catch {}\n\n let appRoutePathManifest: Record<string, string> | undefined\n try {\n appRoutePathManifest = require(join(distDir, APP_PATH_ROUTES_MANIFEST))\n } catch (err) {\n if (\n isError(err) &&\n (err.code === 'ENOENT' || err.code === 'MODULE_NOT_FOUND')\n ) {\n // the manifest doesn't exist which will happen when using\n // \"pages\" dir instead of \"app\" dir.\n appRoutePathManifest = undefined\n } else {\n // the manifest is malformed (invalid json)\n throw err\n }\n }\n\n const excludedPrerenderRoutes = new Set<string>()\n const pages = options.pages || Object.keys(pagesManifest)\n const defaultPathMap: ExportPathMap = {}\n\n let hasApiRoutes = false\n for (const page of pages) {\n // _document and _app are not real pages\n // _error is exported as 404.html later on\n // API Routes are Node.js functions\n\n if (isAPIRoute(page)) {\n hasApiRoutes = true\n continue\n }\n\n if (page === '/_document' || page === '/_app' || page === '/_error') {\n continue\n }\n\n // iSSG pages that are dynamic should not export templated version by\n // default. In most cases, this would never work. There is no server that\n // could run `getStaticProps`. If users make their page work lazily, they\n // can manually add it to the `exportPathMap`.\n if (prerenderManifest?.dynamicRoutes[page]) {\n excludedPrerenderRoutes.add(page)\n continue\n }\n\n defaultPathMap[page] = { page }\n }\n\n const mapAppRouteToPage = new Map<string, string>()\n if (!options.buildExport && appRoutePathManifest) {\n for (const [pageName, routePath] of Object.entries(appRoutePathManifest)) {\n mapAppRouteToPage.set(routePath, pageName)\n if (\n isAppPageRoute(pageName) &&\n !prerenderManifest?.routes[routePath] &&\n !prerenderManifest?.dynamicRoutes[routePath]\n ) {\n defaultPathMap[routePath] = {\n page: pageName,\n _isAppDir: true,\n }\n }\n }\n }\n\n // Initialize the output directory\n const outDir = options.outdir\n\n if (outDir === join(dir, 'public')) {\n throw new ExportError(\n `The 'public' directory is reserved in Next.js and can not be used as the export out directory. https://nextjs.org/docs/messages/can-not-output-to-public`\n )\n }\n\n if (outDir === join(dir, 'static')) {\n throw new ExportError(\n `The 'static' directory is reserved in Next.js and can not be used as the export out directory. https://nextjs.org/docs/messages/can-not-output-to-static`\n )\n }\n\n await fs.rm(outDir, { recursive: true, force: true })\n await fs.mkdir(join(outDir, '_next', buildId), { recursive: true })\n\n await fs.writeFile(\n join(distDir, EXPORT_DETAIL),\n formatManifest({\n version: 1,\n outDirectory: outDir,\n success: false,\n }),\n 'utf8'\n )\n\n // Copy static directory\n if (!options.buildExport && existsSync(join(dir, 'static'))) {\n if (!options.silent) {\n Log.info('Copying \"static\" directory')\n }\n await span\n .traceChild('copy-static-directory')\n .traceAsyncFn(() =>\n recursiveCopy(join(dir, 'static'), join(outDir, 'static'))\n )\n }\n\n // Copy .next/static directory\n if (\n !options.buildExport &&\n existsSync(join(distDir, CLIENT_STATIC_FILES_PATH))\n ) {\n if (!options.silent) {\n Log.info('Copying \"static build\" directory')\n }\n await span\n .traceChild('copy-next-static-directory')\n .traceAsyncFn(() =>\n recursiveCopy(\n join(distDir, CLIENT_STATIC_FILES_PATH),\n join(outDir, '_next', CLIENT_STATIC_FILES_PATH)\n )\n )\n }\n\n // Get the exportPathMap from the config file\n if (typeof nextConfig.exportPathMap !== 'function') {\n nextConfig.exportPathMap = async (defaultMap) => {\n return defaultMap\n }\n }\n\n const {\n i18n,\n images: { loader = 'default', unoptimized },\n } = nextConfig\n\n if (i18n && !options.buildExport) {\n throw new ExportError(\n `i18n support is not compatible with next export. See here for more info on deploying: https://nextjs.org/docs/messages/export-no-custom-routes`\n )\n }\n\n if (!options.buildExport) {\n const { isNextImageImported } = await span\n .traceChild('is-next-image-imported')\n .traceAsyncFn(() =>\n fs\n .readFile(join(distDir, EXPORT_MARKER), 'utf8')\n .then((text) => JSON.parse(text))\n .catch(() => ({}))\n )\n\n if (\n isNextImageImported &&\n loader === 'default' &&\n !unoptimized &&\n !hasNextSupport\n ) {\n throw new ExportError(\n `Image Optimization using the default loader is not compatible with export.\n Possible solutions:\n - Use \\`next start\\` to run a server, which includes the Image Optimization API.\n - Configure \\`images.unoptimized = true\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`\n )\n }\n }\n\n let serverActionsManifest\n if (enabledDirectories.app) {\n serverActionsManifest = require(\n join(distDir, SERVER_DIRECTORY, SERVER_REFERENCE_MANIFEST + '.json')\n )\n\n if (nextConfig.output === 'export') {\n const routesManifest = require(join(distDir, ROUTES_MANIFEST))\n\n // We already prevent rewrites earlier in the process, however Next.js will insert rewrites\n // for interception routes so we need to check for that here.\n if (routesManifest?.rewrites?.beforeFiles?.length > 0) {\n const hasInterceptionRouteRewrite =\n routesManifest.rewrites.beforeFiles.some(isInterceptionRouteRewrite)\n\n if (hasInterceptionRouteRewrite) {\n throw new ExportError(\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 }\n\n if (\n Object.keys(serverActionsManifest.node).length > 0 ||\n Object.keys(serverActionsManifest.edge).length > 0\n ) {\n throw new ExportError(\n `Server Actions are not supported with static export.\\nRead more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports#unsupported-features`\n )\n }\n }\n }\n\n // Start the rendering process\n const renderOpts: WorkerRenderOptsPartial = {\n previewProps: prerenderManifest?.preview,\n nextExport: true,\n assetPrefix: nextConfig.assetPrefix.replace(/\\/$/, ''),\n distDir,\n dev: false,\n basePath: nextConfig.basePath,\n trailingSlash: nextConfig.trailingSlash,\n canonicalBase: nextConfig.amp?.canonicalBase || '',\n ampSkipValidation: nextConfig.experimental.amp?.skipValidation || false,\n ampOptimizerConfig: nextConfig.experimental.amp?.optimizer || undefined,\n locales: i18n?.locales,\n locale: i18n?.defaultLocale,\n defaultLocale: i18n?.defaultLocale,\n domainLocales: i18n?.domains,\n disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading,\n // Exported pages do not currently support dynamic HTML.\n supportsDynamicResponse: false,\n crossOrigin: nextConfig.crossOrigin,\n optimizeCss: nextConfig.experimental.optimizeCss,\n nextConfigOutput: nextConfig.output,\n nextScriptWorkers: nextConfig.experimental.nextScriptWorkers,\n largePageDataBytes: nextConfig.experimental.largePageDataBytes,\n serverActions: nextConfig.experimental.serverActions,\n serverComponents: enabledDirectories.app,\n cacheLifeProfiles: nextConfig.experimental.cacheLife,\n nextFontManifest: require(\n join(distDir, 'server', `${NEXT_FONT_MANIFEST}.json`)\n ),\n images: nextConfig.images,\n ...(enabledDirectories.app\n ? {\n serverActionsManifest,\n }\n : {}),\n strictNextHead: nextConfig.experimental.strictNextHead ?? true,\n deploymentId: nextConfig.deploymentId,\n experimental: {\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata,\n expireTime: nextConfig.expireTime,\n dynamicIO: nextConfig.experimental.dynamicIO ?? false,\n clientSegmentCache: nextConfig.experimental.clientSegmentCache ?? false,\n inlineCss: nextConfig.experimental.inlineCss ?? false,\n authInterrupts: !!nextConfig.experimental.authInterrupts,\n streamingMetadata: !!nextConfig.experimental.streamingMetadata,\n htmlLimitedBots: nextConfig.experimental.htmlLimitedBots,\n },\n reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n }\n\n const { publicRuntimeConfig } = nextConfig\n\n if (Object.keys(publicRuntimeConfig).length > 0) {\n renderOpts.runtimeConfig = publicRuntimeConfig\n }\n\n // We need this for server rendering the Link component.\n ;(globalThis as any).__NEXT_DATA__ = {\n nextExport: true,\n }\n\n const exportPathMap = await span\n .traceChild('run-export-path-map')\n .traceAsyncFn(async () => {\n const exportMap = await nextConfig.exportPathMap(defaultPathMap, {\n dev: false,\n dir,\n outDir,\n distDir,\n buildId,\n })\n return exportMap\n })\n\n // only add missing 404 page when `buildExport` is false\n if (!options.buildExport) {\n // only add missing /404 if not specified in `exportPathMap`\n if (!exportPathMap['/404']) {\n exportPathMap['/404'] = { page: '/_error' }\n }\n\n /**\n * exports 404.html for backwards compat\n * E.g. GitHub Pages, GitLab Pages, Cloudflare Pages, Netlify\n */\n if (!exportPathMap['/404.html']) {\n // alias /404.html to /404 to be compatible with custom 404 / _error page\n exportPathMap['/404.html'] = exportPathMap['/404']\n }\n }\n\n // make sure to prevent duplicates\n const exportPaths = [\n ...new Set(\n Object.keys(exportPathMap).map((path) =>\n denormalizePagePath(normalizePagePath(path))\n )\n ),\n ]\n\n const filteredPaths = exportPaths.filter(\n (route) =>\n exportPathMap[route]._isAppDir ||\n // Remove API routes\n !isAPIRoute(exportPathMap[route].page)\n )\n\n if (filteredPaths.length !== exportPaths.length) {\n hasApiRoutes = true\n }\n\n if (filteredPaths.length === 0) {\n return null\n }\n\n if (prerenderManifest && !options.buildExport) {\n const fallbackEnabledPages = new Set()\n\n for (const path of Object.keys(exportPathMap)) {\n const page = exportPathMap[path].page\n const prerenderInfo = prerenderManifest.dynamicRoutes[page]\n\n if (prerenderInfo && prerenderInfo.fallback !== false) {\n fallbackEnabledPages.add(page)\n }\n }\n\n if (fallbackEnabledPages.size > 0) {\n throw new ExportError(\n `Found pages with \\`fallback\\` enabled:\\n${[\n ...fallbackEnabledPages,\n ].join('\\n')}\\n${SSG_FALLBACK_EXPORT_ERROR}\\n`\n )\n }\n }\n let hasMiddleware = false\n\n if (!options.buildExport) {\n try {\n const middlewareManifest = require(\n join(distDir, SERVER_DIRECTORY, MIDDLEWARE_MANIFEST)\n ) as MiddlewareManifest\n\n hasMiddleware = Object.keys(middlewareManifest.middleware).length > 0\n } catch {}\n\n // Warn if the user defines a path for an API page\n if (hasApiRoutes || hasMiddleware) {\n if (nextConfig.output === 'export') {\n Log.warn(\n yellow(\n `Statically exporting a Next.js application via \\`next export\\` disables API routes and middleware.`\n ) +\n `\\n` +\n yellow(\n `This command is meant for static-only hosts, and is` +\n ' ' +\n bold(`not necessary to make your application static.`)\n ) +\n `\\n` +\n yellow(\n `Pages in your application without server-side data dependencies will be automatically statically exported by \\`next build\\`, including pages powered by \\`getStaticProps\\`.`\n ) +\n `\\n` +\n yellow(\n `Learn more: https://nextjs.org/docs/messages/api-routes-static-export`\n )\n )\n }\n }\n }\n\n const pagesDataDir = options.buildExport\n ? outDir\n : join(outDir, '_next/data', buildId)\n\n const ampValidations: AmpPageStatus = {}\n\n const publicDir = join(dir, CLIENT_PUBLIC_FILES_PATH)\n // Copy public directory\n if (!options.buildExport && existsSync(publicDir)) {\n if (!options.silent) {\n Log.info('Copying \"public\" directory')\n }\n await span.traceChild('copy-public-directory').traceAsyncFn(() =>\n recursiveCopy(publicDir, outDir, {\n filter(path) {\n // Exclude paths used by pages\n return !exportPathMap[path]\n },\n })\n )\n }\n\n const failedExportAttemptsByPage: Map<string, boolean> = new Map()\n\n // Chunk filtered pages into smaller groups, and call the export worker on each group.\n // We've set a default minimum of 25 pages per chunk to ensure that even setups\n // with only a few static pages can leverage a shared incremental cache, however this\n // value can be configured.\n const minChunkSize =\n nextConfig.experimental.staticGenerationMinPagesPerWorker ?? 25\n // Calculate the number of workers needed to ensure each chunk has at least minChunkSize pages\n const numWorkers = Math.min(\n options.numWorkers,\n Math.ceil(filteredPaths.length / minChunkSize)\n )\n // Calculate the chunk size based on the number of workers\n const chunkSize = Math.ceil(filteredPaths.length / numWorkers)\n const chunks = Array.from({ length: numWorkers }, (_, i) =>\n filteredPaths.slice(i * chunkSize, (i + 1) * chunkSize)\n )\n // Distribute remaining pages\n const remainingPages = filteredPaths.slice(numWorkers * chunkSize)\n remainingPages.forEach((page, index) => {\n chunks[index % chunks.length].push(page)\n })\n\n const progress = createProgress(\n filteredPaths.length,\n options.statusMessage || 'Exporting'\n )\n\n const worker = createStaticWorker(nextConfig, progress)\n\n const results = (\n await Promise.all(\n chunks.map((paths) =>\n worker.exportPages({\n buildId,\n paths,\n exportPathMap,\n parentSpanId: span.getId(),\n pagesDataDir,\n renderOpts,\n options,\n dir,\n distDir,\n outDir,\n nextConfig,\n cacheHandler: nextConfig.cacheHandler,\n cacheMaxMemorySize: nextConfig.cacheMaxMemorySize,\n fetchCache: true,\n fetchCacheKeyPrefix: nextConfig.experimental.fetchCacheKeyPrefix,\n })\n )\n )\n ).flat()\n\n let hadValidationError = false\n\n const collector: ExportAppResult = {\n byPath: new Map(),\n byPage: new Map(),\n ssgNotFoundPaths: new Set(),\n turborepoAccessTraceResults: new Map(),\n }\n\n for (const { result, path, pageKey } of results) {\n if (!result) continue\n if ('error' in result) {\n failedExportAttemptsByPage.set(pageKey, true)\n continue\n }\n\n const { page } = exportPathMap[path]\n\n if (result.turborepoAccessTraceResult) {\n collector.turborepoAccessTraceResults?.set(\n path,\n TurborepoAccessTraceResult.fromSerialized(\n result.turborepoAccessTraceResult\n )\n )\n }\n\n // Capture any amp validations.\n if (result.ampValidations) {\n for (const validation of result.ampValidations) {\n ampValidations[validation.page] = validation.result\n hadValidationError ||= validation.result.errors.length > 0\n }\n }\n\n if (options.buildExport) {\n // Update path info by path.\n const info = collector.byPath.get(path) ?? {}\n if (typeof result.revalidate !== 'undefined') {\n info.revalidate = result.revalidate\n }\n if (typeof result.metadata !== 'undefined') {\n info.metadata = result.metadata\n }\n\n if (typeof result.hasEmptyPrelude !== 'undefined') {\n info.hasEmptyPrelude = result.hasEmptyPrelude\n }\n\n if (typeof result.hasPostponed !== 'undefined') {\n info.hasPostponed = result.hasPostponed\n }\n\n if (typeof result.fetchMetrics !== 'undefined') {\n info.fetchMetrics = result.fetchMetrics\n }\n\n collector.byPath.set(path, info)\n\n // Update not found.\n if (result.ssgNotFound === true) {\n collector.ssgNotFoundPaths.add(path)\n }\n\n // Update durations.\n const durations = collector.byPage.get(page) ?? {\n durationsByPath: new Map<string, number>(),\n }\n durations.durationsByPath.set(path, result.duration)\n collector.byPage.set(page, durations)\n }\n }\n\n // Export mode provide static outputs that are not compatible with PPR mode.\n if (!options.buildExport && nextConfig.experimental.ppr) {\n // TODO: add message\n throw new Error('Invariant: PPR cannot be enabled in export mode')\n }\n\n // copy prerendered routes to outDir\n if (!options.buildExport && prerenderManifest) {\n await Promise.all(\n Object.keys(prerenderManifest.routes).map(async (route) => {\n const { srcRoute } = prerenderManifest!.routes[route]\n const appPageName = mapAppRouteToPage.get(srcRoute || '')\n const pageName = appPageName || srcRoute || route\n const isAppPath = Boolean(appPageName)\n const isAppRouteHandler = appPageName && isAppRouteRoute(appPageName)\n\n // returning notFound: true from getStaticProps will not\n // output html/json files during the build\n if (prerenderManifest!.notFoundRoutes.includes(route)) {\n return\n }\n route = normalizePagePath(route)\n\n const pagePath = getPagePath(pageName, distDir, undefined, isAppPath)\n const distPagesDir = join(\n pagePath,\n // strip leading / and then recurse number of nested dirs\n // to place from base folder\n pageName\n .slice(1)\n .split('/')\n .map(() => '..')\n .join('/')\n )\n\n const orig = join(distPagesDir, route)\n const handlerSrc = `${orig}.body`\n const handlerDest = join(outDir, route)\n\n if (isAppRouteHandler && existsSync(handlerSrc)) {\n await fs.mkdir(dirname(handlerDest), { recursive: true })\n await fs.copyFile(handlerSrc, handlerDest)\n return\n }\n\n const htmlDest = join(\n outDir,\n `${route}${\n subFolders && route !== '/index' ? `${sep}index` : ''\n }.html`\n )\n const ampHtmlDest = join(\n outDir,\n `${route}.amp${subFolders ? `${sep}index` : ''}.html`\n )\n const jsonDest = isAppPath\n ? join(\n outDir,\n `${route}${\n subFolders && route !== '/index' ? `${sep}index` : ''\n }.txt`\n )\n : join(pagesDataDir, `${route}.json`)\n\n await fs.mkdir(dirname(htmlDest), { recursive: true })\n await fs.mkdir(dirname(jsonDest), { recursive: true })\n\n const htmlSrc = `${orig}.html`\n const jsonSrc = `${orig}${isAppPath ? RSC_SUFFIX : '.json'}`\n\n await fs.copyFile(htmlSrc, htmlDest)\n await fs.copyFile(jsonSrc, jsonDest)\n\n if (existsSync(`${orig}.amp.html`)) {\n await fs.mkdir(dirname(ampHtmlDest), { recursive: true })\n await fs.copyFile(`${orig}.amp.html`, ampHtmlDest)\n }\n })\n )\n }\n\n if (Object.keys(ampValidations).length) {\n console.log(formatAmpMessages(ampValidations))\n }\n if (hadValidationError) {\n throw new ExportError(\n `AMP Validation caused the export to fail. https://nextjs.org/docs/messages/amp-export-validation`\n )\n }\n\n if (failedExportAttemptsByPage.size > 0) {\n const failedPages = Array.from(failedExportAttemptsByPage.keys())\n throw new ExportError(\n `Export encountered errors on following paths:\\n\\t${failedPages\n .sort()\n .join('\\n\\t')}`\n )\n }\n\n await fs.writeFile(\n join(distDir, EXPORT_DETAIL),\n formatManifest({\n version: 1,\n outDirectory: outDir,\n success: true,\n }),\n 'utf8'\n )\n\n if (telemetry) {\n await telemetry.flush()\n }\n\n await worker.end()\n\n return collector\n}\n\nexport default async function exportApp(\n dir: string,\n options: ExportAppOptions,\n span: Span\n): Promise<ExportAppResult | null> {\n const nextExportSpan = span.traceChild('next-export')\n\n return nextExportSpan.traceAsyncFn(async () => {\n return await exportAppImpl(dir, options, nextExportSpan)\n })\n}\n"],"names":["ExportError","exportApp","Error","code","exportAppImpl","dir","options","span","nextConfig","resolve","traceChild","traceFn","loadEnvConfig","Log","enabledDirectories","traceAsyncFn","loadConfig","PHASE_EXPORT","distDir","join","telemetry","buildExport","Telemetry","record","eventCliSession","webpackVersion","cliCommand","isSrcDir","hasNowJson","findUp","cwd","isCustomServer","turboFlag","pagesDir","appDir","subFolders","trailingSlash","silent","info","buildIdFile","BUILD_ID_FILE","existsSync","customRoutes","filter","config","hasNextSupport","length","warn","buildId","fs","readFile","pagesManifest","pages","require","SERVER_DIRECTORY","PAGES_MANIFEST","prerenderManifest","PRERENDER_MANIFEST","appRoutePathManifest","APP_PATH_ROUTES_MANIFEST","err","isError","undefined","excludedPrerenderRoutes","Set","Object","keys","defaultPathMap","hasApiRoutes","page","isAPIRoute","dynamicRoutes","add","mapAppRouteToPage","Map","pageName","routePath","entries","set","isAppPageRoute","routes","_isAppDir","outDir","outdir","rm","recursive","force","mkdir","writeFile","EXPORT_DETAIL","formatManifest","version","outDirectory","success","recursiveCopy","CLIENT_STATIC_FILES_PATH","exportPathMap","defaultMap","i18n","images","loader","unoptimized","isNextImageImported","EXPORT_MARKER","then","text","JSON","parse","catch","serverActionsManifest","app","SERVER_REFERENCE_MANIFEST","output","routesManifest","ROUTES_MANIFEST","rewrites","beforeFiles","hasInterceptionRouteRewrite","some","isInterceptionRouteRewrite","node","edge","renderOpts","previewProps","preview","nextExport","assetPrefix","replace","dev","basePath","canonicalBase","amp","ampSkipValidation","experimental","skipValidation","ampOptimizerConfig","optimizer","locales","locale","defaultLocale","domainLocales","domains","disableOptimizedLoading","supportsDynamicResponse","crossOrigin","optimizeCss","nextConfigOutput","nextScriptWorkers","largePageDataBytes","serverActions","serverComponents","cacheLifeProfiles","cacheLife","nextFontManifest","NEXT_FONT_MANIFEST","strictNextHead","deploymentId","clientTraceMetadata","expireTime","dynamicIO","clientSegmentCache","inlineCss","authInterrupts","streamingMetadata","htmlLimitedBots","reactMaxHeadersLength","publicRuntimeConfig","runtimeConfig","globalThis","__NEXT_DATA__","exportMap","exportPaths","map","path","denormalizePagePath","normalizePagePath","filteredPaths","route","fallbackEnabledPages","prerenderInfo","fallback","size","SSG_FALLBACK_EXPORT_ERROR","hasMiddleware","middlewareManifest","MIDDLEWARE_MANIFEST","middleware","yellow","bold","pagesDataDir","ampValidations","publicDir","CLIENT_PUBLIC_FILES_PATH","failedExportAttemptsByPage","minChunkSize","staticGenerationMinPagesPerWorker","numWorkers","Math","min","ceil","chunkSize","chunks","Array","from","_","i","slice","remainingPages","forEach","index","push","progress","createProgress","statusMessage","worker","createStaticWorker","results","Promise","all","paths","exportPages","parentSpanId","getId","cacheHandler","cacheMaxMemorySize","fetchCache","fetchCacheKeyPrefix","flat","hadValidationError","collector","byPath","byPage","ssgNotFoundPaths","turborepoAccessTraceResults","result","pageKey","turborepoAccessTraceResult","TurborepoAccessTraceResult","fromSerialized","validation","errors","get","revalidate","metadata","hasEmptyPrelude","hasPostponed","fetchMetrics","ssgNotFound","durations","durationsByPath","duration","ppr","srcRoute","appPageName","isAppPath","Boolean","isAppRouteHandler","isAppRouteRoute","notFoundRoutes","includes","pagePath","getPagePath","distPagesDir","split","orig","handlerSrc","handlerDest","dirname","copyFile","htmlDest","sep","ampHtmlDest","jsonDest","htmlSrc","jsonSrc","RSC_SUFFIX","console","log","formatAmpMessages","failedPages","sort","flush","end","nextExportSpan"],"mappings":"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"}
|
package/dist/server/config.js
CHANGED
|
@@ -256,7 +256,7 @@ function assignDefaults(dir, userConfig, silent) {
|
|
|
256
256
|
enumerable: false
|
|
257
257
|
});
|
|
258
258
|
}
|
|
259
|
-
if (!((_process_env___NEXT_VERSION = "15.2.0-canary.
|
|
259
|
+
if (!((_process_env___NEXT_VERSION = "15.2.0-canary.16") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV) {
|
|
260
260
|
var _result_experimental7, _result_experimental8, _result_experimental_turbo3, _result_experimental9;
|
|
261
261
|
// Prevents usage of certain experimental features outside of canary
|
|
262
262
|
if ((_result_experimental7 = result.experimental) == null ? void 0 : _result_experimental7.ppr) {
|
|
@@ -135,7 +135,7 @@ async function createHotReloaderTurbopack(opts, serverFields, distDir, resetFetc
|
|
|
135
135
|
}
|
|
136
136
|
const hasRewrites = opts.fsChecker.rewrites.afterFiles.length > 0 || opts.fsChecker.rewrites.beforeFiles.length > 0 || opts.fsChecker.rewrites.fallback.length > 0;
|
|
137
137
|
const hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
|
|
138
|
-
version: "15.2.0-canary.
|
|
138
|
+
version: "15.2.0-canary.16"
|
|
139
139
|
});
|
|
140
140
|
// Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
|
|
141
141
|
// of the current `next dev` invocation.
|
|
@@ -254,7 +254,7 @@ class HotReloaderWebpack {
|
|
|
254
254
|
this.previewProps = previewProps;
|
|
255
255
|
this.rewrites = rewrites;
|
|
256
256
|
this.hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
|
|
257
|
-
version: "15.2.0-canary.
|
|
257
|
+
version: "15.2.0-canary.16"
|
|
258
258
|
});
|
|
259
259
|
// Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
|
|
260
260
|
// of the current `next dev` invocation.
|