next 15.6.0-canary.37 → 15.6.0-canary.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/bin/next +3 -3
  2. package/dist/bin/next.map +1 -1
  3. package/dist/build/index.d.ts +1 -2
  4. package/dist/build/index.js +25 -35
  5. package/dist/build/index.js.map +1 -1
  6. package/dist/build/swc/index.js +1 -1
  7. package/dist/build/webpack-config.js +2 -2
  8. package/dist/cli/next-build.d.ts +0 -1
  9. package/dist/cli/next-build.js +5 -3
  10. package/dist/cli/next-build.js.map +1 -1
  11. package/dist/cli/next-dev.d.ts +0 -1
  12. package/dist/cli/next-dev.js +13 -13
  13. package/dist/cli/next-dev.js.map +1 -1
  14. package/dist/client/app-bootstrap.js +1 -1
  15. package/dist/client/index.js +1 -1
  16. package/dist/compiled/next-server/pages-api.runtime.dev.js +1 -1
  17. package/dist/compiled/next-server/pages-api.runtime.dev.js.map +1 -1
  18. package/dist/compiled/next-server/pages.runtime.dev.js +1 -1
  19. package/dist/compiled/next-server/pages.runtime.dev.js.map +1 -1
  20. package/dist/esm/build/index.js +25 -35
  21. package/dist/esm/build/index.js.map +1 -1
  22. package/dist/esm/build/swc/index.js +1 -1
  23. package/dist/esm/build/webpack-config.js +2 -2
  24. package/dist/esm/client/app-bootstrap.js +1 -1
  25. package/dist/esm/client/index.js +1 -1
  26. package/dist/esm/lib/turbopack-warning.js +7 -19
  27. package/dist/esm/lib/turbopack-warning.js.map +1 -1
  28. package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
  29. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  30. package/dist/esm/server/lib/app-info-log.js +1 -1
  31. package/dist/esm/server/lib/start-server.js +1 -1
  32. package/dist/esm/server/next.js +1 -2
  33. package/dist/esm/server/next.js.map +1 -1
  34. package/dist/esm/shared/lib/canary-only.js +1 -1
  35. package/dist/lib/turbopack-warning.d.ts +2 -3
  36. package/dist/lib/turbopack-warning.js +6 -18
  37. package/dist/lib/turbopack-warning.js.map +1 -1
  38. package/dist/server/dev/hot-reloader-turbopack.js +1 -1
  39. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  40. package/dist/server/lib/app-info-log.js +1 -1
  41. package/dist/server/lib/start-server.js +1 -1
  42. package/dist/server/next.js +1 -2
  43. package/dist/server/next.js.map +1 -1
  44. package/dist/shared/lib/canary-only.js +1 -1
  45. package/dist/telemetry/anonymous-meta.js +1 -1
  46. package/dist/telemetry/events/session-stopped.js +2 -2
  47. package/dist/telemetry/events/version.js +2 -2
  48. package/package.json +15 -15
  49. package/dist/esm/lib/bundler.js +0 -81
  50. package/dist/esm/lib/bundler.js.map +0 -1
  51. package/dist/lib/bundler.d.ts +0 -25
  52. package/dist/lib/bundler.js +0 -95
  53. package/dist/lib/bundler.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/server/next.ts"],"sourcesContent":["import type { Options as DevServerOptions } from './dev/next-dev-server'\nimport type {\n NodeRequestHandler,\n Options as ServerOptions,\n} from './next-server'\nimport type { UrlWithParsedQuery } from 'url'\nimport type { IncomingMessage, ServerResponse } from 'http'\nimport type { Duplex } from 'stream'\nimport type { NextUrlWithParsedQuery, RequestMeta } from './request-meta'\n\nimport './require-hook'\nimport './node-polyfill-crypto'\n\nimport type { default as NextNodeServer } from './next-server'\nimport * as log from '../build/output/log'\nimport loadConfig from './config'\nimport path from 'path'\nimport { NON_STANDARD_NODE_ENV } from '../lib/constants'\nimport {\n PHASE_DEVELOPMENT_SERVER,\n SERVER_FILES_MANIFEST,\n} from '../shared/lib/constants'\nimport { PHASE_PRODUCTION_SERVER } from '../shared/lib/constants'\nimport { getTracer } from './lib/trace/tracer'\nimport { NextServerSpan } from './lib/trace/constants'\nimport { formatUrl } from '../shared/lib/router/utils/format-url'\nimport type { ServerFields } from './lib/router-utils/setup-dev-bundler'\nimport type { ServerInitResult } from './lib/render-server'\nimport { AsyncCallbackSet } from './lib/async-callback-set'\nimport {\n RouterServerContextSymbol,\n routerServerGlobal,\n} from './lib/router-utils/router-server-context'\n\nlet ServerImpl: typeof NextNodeServer\n\nconst getServerImpl = async () => {\n if (ServerImpl === undefined) {\n ServerImpl = (\n await Promise.resolve(\n require('./next-server') as typeof import('./next-server')\n )\n ).default\n }\n return ServerImpl\n}\n\nexport type NextServerOptions = Omit<\n ServerOptions | DevServerOptions,\n // This is assigned in this server abstraction.\n 'conf'\n> &\n Partial<Pick<ServerOptions | DevServerOptions, 'conf'>>\n\nexport type RequestHandler = (\n req: IncomingMessage,\n res: ServerResponse,\n parsedUrl?: NextUrlWithParsedQuery | undefined\n) => Promise<void>\n\nexport type UpgradeHandler = (\n req: IncomingMessage,\n socket: Duplex,\n head: Buffer\n) => Promise<void>\n\nconst SYMBOL_LOAD_CONFIG = Symbol('next.load_config')\n\ninterface NextWrapperServer {\n // NOTE: the methods/properties here are the public API for custom servers.\n // Consider backwards compatibilty when changing something here!\n\n options: NextServerOptions\n hostname: string | undefined\n port: number | undefined\n\n getRequestHandler(): RequestHandler\n prepare(serverFields?: ServerFields): Promise<void>\n setAssetPrefix(assetPrefix: string): void\n close(): Promise<void>\n\n // used internally\n getUpgradeHandler(): UpgradeHandler\n\n // legacy methods that we left exposed in the past\n\n logError(...args: Parameters<NextNodeServer['logError']>): void\n\n revalidate(\n ...args: Parameters<NextNodeServer['revalidate']>\n ): ReturnType<NextNodeServer['revalidate']>\n\n logErrorWithOriginalStack(err: unknown, type: string): void\n\n render(\n ...args: Parameters<NextNodeServer['render']>\n ): ReturnType<NextNodeServer['render']>\n\n renderToHTML(\n ...args: Parameters<NextNodeServer['renderToHTML']>\n ): ReturnType<NextNodeServer['renderToHTML']>\n\n renderError(\n ...args: Parameters<NextNodeServer['renderError']>\n ): ReturnType<NextNodeServer['renderError']>\n\n renderErrorToHTML(\n ...args: Parameters<NextNodeServer['renderErrorToHTML']>\n ): ReturnType<NextNodeServer['renderErrorToHTML']>\n\n render404(\n ...args: Parameters<NextNodeServer['render404']>\n ): ReturnType<NextNodeServer['render404']>\n}\n\n/** The wrapper server used by `next start` */\nexport class NextServer implements NextWrapperServer {\n private serverPromise?: Promise<NextNodeServer>\n private server?: NextNodeServer\n private reqHandler?: NodeRequestHandler\n private reqHandlerPromise?: Promise<NodeRequestHandler>\n private preparedAssetPrefix?: string\n\n public options: NextServerOptions\n\n constructor(options: NextServerOptions) {\n this.options = options\n }\n\n get hostname() {\n return this.options.hostname\n }\n\n get port() {\n return this.options.port\n }\n\n getRequestHandler(): RequestHandler {\n return async (\n req: IncomingMessage,\n res: ServerResponse,\n parsedUrl?: UrlWithParsedQuery\n ) => {\n return getTracer().trace(NextServerSpan.getRequestHandler, async () => {\n const requestHandler = await this.getServerRequestHandler()\n return requestHandler(req, res, parsedUrl)\n })\n }\n }\n\n /**\n * @internal - this method is internal to Next.js and should not be used\n * directly by end-users, only used in testing\n */\n getRequestHandlerWithMetadata(meta: RequestMeta): RequestHandler {\n return async (\n req: IncomingMessage,\n res: ServerResponse,\n parsedUrl?: UrlWithParsedQuery\n ) => {\n return getTracer().trace(\n NextServerSpan.getRequestHandlerWithMetadata,\n async () => {\n const server = await this.getServer()\n const handler = server.getRequestHandlerWithMetadata(meta)\n return handler(req, res, parsedUrl)\n }\n )\n }\n }\n\n getUpgradeHandler(): UpgradeHandler {\n return async (req: IncomingMessage, socket: any, head: any) => {\n const server = await this.getServer()\n // @ts-expect-error we mark this as protected so it\n // causes an error here\n return server.handleUpgrade.apply(server, [req, socket, head])\n }\n }\n\n setAssetPrefix(assetPrefix: string) {\n if (this.server) {\n this.server.setAssetPrefix(assetPrefix)\n } else {\n this.preparedAssetPrefix = assetPrefix\n }\n }\n\n logError(...args: Parameters<NextWrapperServer['logError']>) {\n if (this.server) {\n this.server.logError(...args)\n }\n }\n\n async logErrorWithOriginalStack(err: unknown, type: string) {\n const server = await this.getServer()\n // this is only available on dev server\n if ((server as any).logErrorWithOriginalStack) {\n return (server as any).logErrorWithOriginalStack(err, type)\n }\n }\n\n async revalidate(...args: Parameters<NextWrapperServer['revalidate']>) {\n const server = await this.getServer()\n return server.revalidate(...args)\n }\n\n async render(...args: Parameters<NextWrapperServer['render']>) {\n const server = await this.getServer()\n return server.render(...args)\n }\n\n async renderToHTML(...args: Parameters<NextWrapperServer['renderToHTML']>) {\n const server = await this.getServer()\n return server.renderToHTML(...args)\n }\n\n async renderError(...args: Parameters<NextWrapperServer['renderError']>) {\n const server = await this.getServer()\n return server.renderError(...args)\n }\n\n async renderErrorToHTML(\n ...args: Parameters<NextWrapperServer['renderErrorToHTML']>\n ) {\n const server = await this.getServer()\n return server.renderErrorToHTML(...args)\n }\n\n async render404(...args: Parameters<NextWrapperServer['render404']>) {\n const server = await this.getServer()\n return server.render404(...args)\n }\n\n async prepare(serverFields?: ServerFields) {\n const server = await this.getServer()\n\n if (serverFields) {\n Object.assign(server, serverFields)\n }\n // We shouldn't prepare the server in production,\n // because this code won't be executed when deployed\n if (this.options.dev) {\n await server.prepare()\n }\n }\n\n async close() {\n if (this.server) {\n await this.server.close()\n }\n }\n\n private async createServer(\n options: ServerOptions | DevServerOptions\n ): Promise<NextNodeServer> {\n let ServerImplementation: typeof NextNodeServer\n if (options.dev) {\n ServerImplementation = (\n require('./dev/next-dev-server') as typeof import('./dev/next-dev-server')\n ).default as typeof import('./dev/next-dev-server').default\n } else {\n ServerImplementation = await getServerImpl()\n }\n const server = new ServerImplementation(options)\n\n return server\n }\n\n private async [SYMBOL_LOAD_CONFIG]() {\n const dir = path.resolve(\n /* turbopackIgnore: true */ this.options.dir || '.'\n )\n\n const config = await loadConfig(\n this.options.dev ? PHASE_DEVELOPMENT_SERVER : PHASE_PRODUCTION_SERVER,\n dir,\n {\n customConfig: this.options.conf,\n silent: true,\n }\n )\n\n // check serialized build config when available\n if (!this.options.dev) {\n try {\n const serializedConfig = require(\n /* turbopackIgnore: true */\n path.join(\n /* turbopackIgnore: true */ dir,\n config.distDir,\n SERVER_FILES_MANIFEST\n )\n ).config\n\n config.experimental.isExperimentalCompile =\n serializedConfig.experimental.isExperimentalCompile\n } catch (_) {\n // if distDir is customized we don't know until we\n // load the config so fallback to loading the config\n // from next.config.js\n }\n }\n\n return config\n }\n\n private async getServer() {\n if (!this.serverPromise) {\n this.serverPromise = this[SYMBOL_LOAD_CONFIG]().then(async (conf) => {\n if (!this.options.dev) {\n if (conf.output === 'standalone') {\n if (!process.env.__NEXT_PRIVATE_STANDALONE_CONFIG) {\n log.warn(\n `\"next start\" does not work with \"output: standalone\" configuration. Use \"node .next/standalone/server.js\" instead.`\n )\n }\n } else if (conf.output === 'export') {\n throw new Error(\n `\"next start\" does not work with \"output: export\" configuration. Use \"npx serve@latest out\" instead.`\n )\n }\n }\n\n this.server = await this.createServer({\n ...this.options,\n conf,\n })\n if (this.preparedAssetPrefix) {\n this.server.setAssetPrefix(this.preparedAssetPrefix)\n }\n return this.server\n })\n }\n return this.serverPromise\n }\n\n private async getServerRequestHandler() {\n if (this.reqHandler) return this.reqHandler\n\n // Memoize request handler creation\n if (!this.reqHandlerPromise) {\n this.reqHandlerPromise = this.getServer().then((server) => {\n this.reqHandler = getTracer().wrap(\n NextServerSpan.getServerRequestHandler,\n server.getRequestHandler().bind(server)\n )\n delete this.reqHandlerPromise\n return this.reqHandler\n })\n }\n return this.reqHandlerPromise\n }\n}\n\n/** The wrapper server used for `import next from \"next\" (in a custom server)` */\nclass NextCustomServer implements NextWrapperServer {\n private didWebSocketSetup: boolean = false\n protected cleanupListeners?: AsyncCallbackSet\n\n protected init?: ServerInitResult\n\n public options: NextServerOptions\n\n constructor(options: NextServerOptions) {\n this.options = options\n }\n\n protected getInit() {\n if (!this.init) {\n throw new Error(\n 'prepare() must be called before performing this operation'\n )\n }\n return this.init\n }\n\n protected get requestHandler() {\n return this.getInit().requestHandler\n }\n protected get upgradeHandler() {\n return this.getInit().upgradeHandler\n }\n protected get server() {\n return this.getInit().server\n }\n\n get hostname() {\n return this.options.hostname\n }\n\n get port() {\n return this.options.port\n }\n\n async prepare() {\n const { getRequestHandlers } =\n require('./lib/start-server') as typeof import('./lib/start-server')\n\n let onDevServerCleanup: AsyncCallbackSet['add'] | undefined\n if (this.options.dev) {\n this.cleanupListeners = new AsyncCallbackSet()\n onDevServerCleanup = this.cleanupListeners.add.bind(this.cleanupListeners)\n }\n\n const initResult = await getRequestHandlers({\n dir: this.options.dir!,\n port: this.options.port || 3000,\n isDev: !!this.options.dev,\n onDevServerCleanup,\n hostname: this.options.hostname || 'localhost',\n minimalMode: this.options.minimalMode,\n quiet: this.options.quiet,\n })\n this.init = initResult\n }\n\n private setupWebSocketHandler(\n customServer?: import('http').Server,\n _req?: IncomingMessage\n ) {\n if (!this.didWebSocketSetup) {\n this.didWebSocketSetup = true\n customServer = customServer || (_req?.socket as any)?.server\n\n if (customServer) {\n customServer.on('upgrade', async (req, socket, head) => {\n this.upgradeHandler(req, socket, head)\n })\n }\n }\n }\n\n getRequestHandler(): RequestHandler {\n return async (\n req: IncomingMessage,\n res: ServerResponse,\n parsedUrl?: UrlWithParsedQuery\n ) => {\n this.setupWebSocketHandler(this.options.httpServer, req)\n\n if (parsedUrl) {\n req.url = formatUrl(parsedUrl)\n }\n\n return this.requestHandler(req, res)\n }\n }\n\n async render(...args: Parameters<NextWrapperServer['render']>) {\n let [req, res, pathname, query, parsedUrl] = args\n this.setupWebSocketHandler(this.options.httpServer, req as IncomingMessage)\n\n if (!pathname.startsWith('/')) {\n console.error(`Cannot render page with path \"${pathname}\"`)\n pathname = `/${pathname}`\n }\n pathname = pathname === '/index' ? '/' : pathname\n\n req.url = formatUrl({\n ...parsedUrl,\n pathname,\n query,\n })\n\n await this.requestHandler(req as IncomingMessage, res as ServerResponse)\n return\n }\n\n setAssetPrefix(assetPrefix: string): void {\n this.server.setAssetPrefix(assetPrefix)\n\n // update the router-server nextConfig instance as\n // this is the source of truth for \"handler\" in serverful\n const relativeProjectDir = path.relative(\n process.cwd(),\n this.options.dir || ''\n )\n\n if (\n routerServerGlobal[RouterServerContextSymbol]?.[relativeProjectDir]\n ?.nextConfig\n ) {\n routerServerGlobal[RouterServerContextSymbol][\n relativeProjectDir\n ].nextConfig.assetPrefix = assetPrefix\n }\n }\n\n getUpgradeHandler(): UpgradeHandler {\n return this.server.getUpgradeHandler()\n }\n\n logError(...args: Parameters<NextWrapperServer['logError']>) {\n this.server.logError(...args)\n }\n\n logErrorWithOriginalStack(err: unknown, type: string) {\n return this.server.logErrorWithOriginalStack(err, type)\n }\n\n async revalidate(...args: Parameters<NextWrapperServer['revalidate']>) {\n return this.server.revalidate(...args)\n }\n\n async renderToHTML(...args: Parameters<NextWrapperServer['renderToHTML']>) {\n return this.server.renderToHTML(...args)\n }\n\n async renderError(...args: Parameters<NextWrapperServer['renderError']>) {\n return this.server.renderError(...args)\n }\n\n async renderErrorToHTML(\n ...args: Parameters<NextWrapperServer['renderErrorToHTML']>\n ) {\n return this.server.renderErrorToHTML(...args)\n }\n\n async render404(...args: Parameters<NextWrapperServer['render404']>) {\n return this.server.render404(...args)\n }\n\n async close() {\n await Promise.allSettled([\n this.init?.server.close(),\n this.cleanupListeners?.runAll(),\n ])\n }\n}\n\n// This file is used for when users run `require('next')`\nfunction createServer(\n options: NextServerOptions & {\n turbo?: boolean\n turbopack?: boolean\n }\n): NextWrapperServer {\n if (\n options &&\n (options.turbo || options.turbopack || process.env.IS_TURBOPACK_TEST)\n ) {\n // Configure TURBOPACK if it isn't already set\n process.env.TURBOPACK ??= '1'\n }\n // The package is used as a TypeScript plugin.\n if (\n options &&\n 'typescript' in options &&\n 'version' in (options as any).typescript\n ) {\n const pluginMod: typeof import('./next-typescript') =\n require('./next-typescript') as typeof import('./next-typescript')\n return pluginMod.createTSPlugin(\n options as any\n ) as unknown as NextWrapperServer\n }\n\n if (options == null) {\n throw new Error(\n 'The server has not been instantiated properly. https://nextjs.org/docs/messages/invalid-server-options'\n )\n }\n\n if (\n !('isNextDevCommand' in options) &&\n process.env.NODE_ENV &&\n !['production', 'development', 'test'].includes(process.env.NODE_ENV)\n ) {\n log.warn(NON_STANDARD_NODE_ENV)\n }\n\n if (options.dev && typeof options.dev !== 'boolean') {\n console.warn(\n \"Warning: 'dev' is not a boolean which could introduce unexpected behavior. https://nextjs.org/docs/messages/invalid-server-options\"\n )\n }\n\n // When the caller is a custom server (using next()).\n if (options.customServer !== false) {\n const dir = path.resolve(/* turbopackIgnore: true */ options.dir || '.')\n\n return new NextCustomServer({\n ...options,\n dir,\n })\n }\n\n // When the caller is Next.js internals (i.e. render worker, start server, etc)\n return new NextServer(options)\n}\n\n// Support commonjs `require('next')`\nmodule.exports = createServer\n// exports = module.exports\n\n// Support `import next from 'next'`\nexport default createServer\n"],"names":["NextServer","ServerImpl","getServerImpl","undefined","Promise","resolve","require","default","SYMBOL_LOAD_CONFIG","Symbol","constructor","options","hostname","port","getRequestHandler","req","res","parsedUrl","getTracer","trace","NextServerSpan","requestHandler","getServerRequestHandler","getRequestHandlerWithMetadata","meta","server","getServer","handler","getUpgradeHandler","socket","head","handleUpgrade","apply","setAssetPrefix","assetPrefix","preparedAssetPrefix","logError","args","logErrorWithOriginalStack","err","type","revalidate","render","renderToHTML","renderError","renderErrorToHTML","render404","prepare","serverFields","Object","assign","dev","close","createServer","ServerImplementation","dir","path","config","loadConfig","PHASE_DEVELOPMENT_SERVER","PHASE_PRODUCTION_SERVER","customConfig","conf","silent","serializedConfig","join","distDir","SERVER_FILES_MANIFEST","experimental","isExperimentalCompile","_","serverPromise","then","output","process","env","__NEXT_PRIVATE_STANDALONE_CONFIG","log","warn","Error","reqHandler","reqHandlerPromise","wrap","bind","NextCustomServer","didWebSocketSetup","getInit","init","upgradeHandler","getRequestHandlers","onDevServerCleanup","cleanupListeners","AsyncCallbackSet","add","initResult","isDev","minimalMode","quiet","setupWebSocketHandler","customServer","_req","on","httpServer","url","formatUrl","pathname","query","startsWith","console","error","routerServerGlobal","relativeProjectDir","relative","cwd","RouterServerContextSymbol","nextConfig","allSettled","runAll","turbo","turbopack","IS_TURBOPACK_TEST","TURBOPACK","typescript","pluginMod","createTSPlugin","NODE_ENV","includes","NON_STANDARD_NODE_ENV","module","exports"],"mappings":"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","ignoreList":[0]}
1
+ {"version":3,"sources":["../../src/server/next.ts"],"sourcesContent":["import type { Options as DevServerOptions } from './dev/next-dev-server'\nimport type {\n NodeRequestHandler,\n Options as ServerOptions,\n} from './next-server'\nimport type { UrlWithParsedQuery } from 'url'\nimport type { IncomingMessage, ServerResponse } from 'http'\nimport type { Duplex } from 'stream'\nimport type { NextUrlWithParsedQuery, RequestMeta } from './request-meta'\n\nimport './require-hook'\nimport './node-polyfill-crypto'\n\nimport type { default as NextNodeServer } from './next-server'\nimport * as log from '../build/output/log'\nimport loadConfig from './config'\nimport path from 'path'\nimport { NON_STANDARD_NODE_ENV } from '../lib/constants'\nimport {\n PHASE_DEVELOPMENT_SERVER,\n SERVER_FILES_MANIFEST,\n} from '../shared/lib/constants'\nimport { PHASE_PRODUCTION_SERVER } from '../shared/lib/constants'\nimport { getTracer } from './lib/trace/tracer'\nimport { NextServerSpan } from './lib/trace/constants'\nimport { formatUrl } from '../shared/lib/router/utils/format-url'\nimport type { ServerFields } from './lib/router-utils/setup-dev-bundler'\nimport type { ServerInitResult } from './lib/render-server'\nimport { AsyncCallbackSet } from './lib/async-callback-set'\nimport {\n RouterServerContextSymbol,\n routerServerGlobal,\n} from './lib/router-utils/router-server-context'\n\nlet ServerImpl: typeof NextNodeServer\n\nconst getServerImpl = async () => {\n if (ServerImpl === undefined) {\n ServerImpl = (\n await Promise.resolve(\n require('./next-server') as typeof import('./next-server')\n )\n ).default\n }\n return ServerImpl\n}\n\nexport type NextServerOptions = Omit<\n ServerOptions | DevServerOptions,\n // This is assigned in this server abstraction.\n 'conf'\n> &\n Partial<Pick<ServerOptions | DevServerOptions, 'conf'>>\n\nexport type RequestHandler = (\n req: IncomingMessage,\n res: ServerResponse,\n parsedUrl?: NextUrlWithParsedQuery | undefined\n) => Promise<void>\n\nexport type UpgradeHandler = (\n req: IncomingMessage,\n socket: Duplex,\n head: Buffer\n) => Promise<void>\n\nconst SYMBOL_LOAD_CONFIG = Symbol('next.load_config')\n\ninterface NextWrapperServer {\n // NOTE: the methods/properties here are the public API for custom servers.\n // Consider backwards compatibilty when changing something here!\n\n options: NextServerOptions\n hostname: string | undefined\n port: number | undefined\n\n getRequestHandler(): RequestHandler\n prepare(serverFields?: ServerFields): Promise<void>\n setAssetPrefix(assetPrefix: string): void\n close(): Promise<void>\n\n // used internally\n getUpgradeHandler(): UpgradeHandler\n\n // legacy methods that we left exposed in the past\n\n logError(...args: Parameters<NextNodeServer['logError']>): void\n\n revalidate(\n ...args: Parameters<NextNodeServer['revalidate']>\n ): ReturnType<NextNodeServer['revalidate']>\n\n logErrorWithOriginalStack(err: unknown, type: string): void\n\n render(\n ...args: Parameters<NextNodeServer['render']>\n ): ReturnType<NextNodeServer['render']>\n\n renderToHTML(\n ...args: Parameters<NextNodeServer['renderToHTML']>\n ): ReturnType<NextNodeServer['renderToHTML']>\n\n renderError(\n ...args: Parameters<NextNodeServer['renderError']>\n ): ReturnType<NextNodeServer['renderError']>\n\n renderErrorToHTML(\n ...args: Parameters<NextNodeServer['renderErrorToHTML']>\n ): ReturnType<NextNodeServer['renderErrorToHTML']>\n\n render404(\n ...args: Parameters<NextNodeServer['render404']>\n ): ReturnType<NextNodeServer['render404']>\n}\n\n/** The wrapper server used by `next start` */\nexport class NextServer implements NextWrapperServer {\n private serverPromise?: Promise<NextNodeServer>\n private server?: NextNodeServer\n private reqHandler?: NodeRequestHandler\n private reqHandlerPromise?: Promise<NodeRequestHandler>\n private preparedAssetPrefix?: string\n\n public options: NextServerOptions\n\n constructor(options: NextServerOptions) {\n this.options = options\n }\n\n get hostname() {\n return this.options.hostname\n }\n\n get port() {\n return this.options.port\n }\n\n getRequestHandler(): RequestHandler {\n return async (\n req: IncomingMessage,\n res: ServerResponse,\n parsedUrl?: UrlWithParsedQuery\n ) => {\n return getTracer().trace(NextServerSpan.getRequestHandler, async () => {\n const requestHandler = await this.getServerRequestHandler()\n return requestHandler(req, res, parsedUrl)\n })\n }\n }\n\n /**\n * @internal - this method is internal to Next.js and should not be used\n * directly by end-users, only used in testing\n */\n getRequestHandlerWithMetadata(meta: RequestMeta): RequestHandler {\n return async (\n req: IncomingMessage,\n res: ServerResponse,\n parsedUrl?: UrlWithParsedQuery\n ) => {\n return getTracer().trace(\n NextServerSpan.getRequestHandlerWithMetadata,\n async () => {\n const server = await this.getServer()\n const handler = server.getRequestHandlerWithMetadata(meta)\n return handler(req, res, parsedUrl)\n }\n )\n }\n }\n\n getUpgradeHandler(): UpgradeHandler {\n return async (req: IncomingMessage, socket: any, head: any) => {\n const server = await this.getServer()\n // @ts-expect-error we mark this as protected so it\n // causes an error here\n return server.handleUpgrade.apply(server, [req, socket, head])\n }\n }\n\n setAssetPrefix(assetPrefix: string) {\n if (this.server) {\n this.server.setAssetPrefix(assetPrefix)\n } else {\n this.preparedAssetPrefix = assetPrefix\n }\n }\n\n logError(...args: Parameters<NextWrapperServer['logError']>) {\n if (this.server) {\n this.server.logError(...args)\n }\n }\n\n async logErrorWithOriginalStack(err: unknown, type: string) {\n const server = await this.getServer()\n // this is only available on dev server\n if ((server as any).logErrorWithOriginalStack) {\n return (server as any).logErrorWithOriginalStack(err, type)\n }\n }\n\n async revalidate(...args: Parameters<NextWrapperServer['revalidate']>) {\n const server = await this.getServer()\n return server.revalidate(...args)\n }\n\n async render(...args: Parameters<NextWrapperServer['render']>) {\n const server = await this.getServer()\n return server.render(...args)\n }\n\n async renderToHTML(...args: Parameters<NextWrapperServer['renderToHTML']>) {\n const server = await this.getServer()\n return server.renderToHTML(...args)\n }\n\n async renderError(...args: Parameters<NextWrapperServer['renderError']>) {\n const server = await this.getServer()\n return server.renderError(...args)\n }\n\n async renderErrorToHTML(\n ...args: Parameters<NextWrapperServer['renderErrorToHTML']>\n ) {\n const server = await this.getServer()\n return server.renderErrorToHTML(...args)\n }\n\n async render404(...args: Parameters<NextWrapperServer['render404']>) {\n const server = await this.getServer()\n return server.render404(...args)\n }\n\n async prepare(serverFields?: ServerFields) {\n const server = await this.getServer()\n\n if (serverFields) {\n Object.assign(server, serverFields)\n }\n // We shouldn't prepare the server in production,\n // because this code won't be executed when deployed\n if (this.options.dev) {\n await server.prepare()\n }\n }\n\n async close() {\n if (this.server) {\n await this.server.close()\n }\n }\n\n private async createServer(\n options: ServerOptions | DevServerOptions\n ): Promise<NextNodeServer> {\n let ServerImplementation: typeof NextNodeServer\n if (options.dev) {\n ServerImplementation = (\n require('./dev/next-dev-server') as typeof import('./dev/next-dev-server')\n ).default as typeof import('./dev/next-dev-server').default\n } else {\n ServerImplementation = await getServerImpl()\n }\n const server = new ServerImplementation(options)\n\n return server\n }\n\n private async [SYMBOL_LOAD_CONFIG]() {\n const dir = path.resolve(\n /* turbopackIgnore: true */ this.options.dir || '.'\n )\n\n const config = await loadConfig(\n this.options.dev ? PHASE_DEVELOPMENT_SERVER : PHASE_PRODUCTION_SERVER,\n dir,\n {\n customConfig: this.options.conf,\n silent: true,\n }\n )\n\n // check serialized build config when available\n if (!this.options.dev) {\n try {\n const serializedConfig = require(\n /* turbopackIgnore: true */\n path.join(\n /* turbopackIgnore: true */ dir,\n config.distDir,\n SERVER_FILES_MANIFEST\n )\n ).config\n\n config.experimental.isExperimentalCompile =\n serializedConfig.experimental.isExperimentalCompile\n } catch (_) {\n // if distDir is customized we don't know until we\n // load the config so fallback to loading the config\n // from next.config.js\n }\n }\n\n return config\n }\n\n private async getServer() {\n if (!this.serverPromise) {\n this.serverPromise = this[SYMBOL_LOAD_CONFIG]().then(async (conf) => {\n if (!this.options.dev) {\n if (conf.output === 'standalone') {\n if (!process.env.__NEXT_PRIVATE_STANDALONE_CONFIG) {\n log.warn(\n `\"next start\" does not work with \"output: standalone\" configuration. Use \"node .next/standalone/server.js\" instead.`\n )\n }\n } else if (conf.output === 'export') {\n throw new Error(\n `\"next start\" does not work with \"output: export\" configuration. Use \"npx serve@latest out\" instead.`\n )\n }\n }\n\n this.server = await this.createServer({\n ...this.options,\n conf,\n })\n if (this.preparedAssetPrefix) {\n this.server.setAssetPrefix(this.preparedAssetPrefix)\n }\n return this.server\n })\n }\n return this.serverPromise\n }\n\n private async getServerRequestHandler() {\n if (this.reqHandler) return this.reqHandler\n\n // Memoize request handler creation\n if (!this.reqHandlerPromise) {\n this.reqHandlerPromise = this.getServer().then((server) => {\n this.reqHandler = getTracer().wrap(\n NextServerSpan.getServerRequestHandler,\n server.getRequestHandler().bind(server)\n )\n delete this.reqHandlerPromise\n return this.reqHandler\n })\n }\n return this.reqHandlerPromise\n }\n}\n\n/** The wrapper server used for `import next from \"next\" (in a custom server)` */\nclass NextCustomServer implements NextWrapperServer {\n private didWebSocketSetup: boolean = false\n protected cleanupListeners?: AsyncCallbackSet\n\n protected init?: ServerInitResult\n\n public options: NextServerOptions\n\n constructor(options: NextServerOptions) {\n this.options = options\n }\n\n protected getInit() {\n if (!this.init) {\n throw new Error(\n 'prepare() must be called before performing this operation'\n )\n }\n return this.init\n }\n\n protected get requestHandler() {\n return this.getInit().requestHandler\n }\n protected get upgradeHandler() {\n return this.getInit().upgradeHandler\n }\n protected get server() {\n return this.getInit().server\n }\n\n get hostname() {\n return this.options.hostname\n }\n\n get port() {\n return this.options.port\n }\n\n async prepare() {\n const { getRequestHandlers } =\n require('./lib/start-server') as typeof import('./lib/start-server')\n\n let onDevServerCleanup: AsyncCallbackSet['add'] | undefined\n if (this.options.dev) {\n this.cleanupListeners = new AsyncCallbackSet()\n onDevServerCleanup = this.cleanupListeners.add.bind(this.cleanupListeners)\n }\n\n const initResult = await getRequestHandlers({\n dir: this.options.dir!,\n port: this.options.port || 3000,\n isDev: !!this.options.dev,\n onDevServerCleanup,\n hostname: this.options.hostname || 'localhost',\n minimalMode: this.options.minimalMode,\n quiet: this.options.quiet,\n })\n this.init = initResult\n }\n\n private setupWebSocketHandler(\n customServer?: import('http').Server,\n _req?: IncomingMessage\n ) {\n if (!this.didWebSocketSetup) {\n this.didWebSocketSetup = true\n customServer = customServer || (_req?.socket as any)?.server\n\n if (customServer) {\n customServer.on('upgrade', async (req, socket, head) => {\n this.upgradeHandler(req, socket, head)\n })\n }\n }\n }\n\n getRequestHandler(): RequestHandler {\n return async (\n req: IncomingMessage,\n res: ServerResponse,\n parsedUrl?: UrlWithParsedQuery\n ) => {\n this.setupWebSocketHandler(this.options.httpServer, req)\n\n if (parsedUrl) {\n req.url = formatUrl(parsedUrl)\n }\n\n return this.requestHandler(req, res)\n }\n }\n\n async render(...args: Parameters<NextWrapperServer['render']>) {\n let [req, res, pathname, query, parsedUrl] = args\n this.setupWebSocketHandler(this.options.httpServer, req as IncomingMessage)\n\n if (!pathname.startsWith('/')) {\n console.error(`Cannot render page with path \"${pathname}\"`)\n pathname = `/${pathname}`\n }\n pathname = pathname === '/index' ? '/' : pathname\n\n req.url = formatUrl({\n ...parsedUrl,\n pathname,\n query,\n })\n\n await this.requestHandler(req as IncomingMessage, res as ServerResponse)\n return\n }\n\n setAssetPrefix(assetPrefix: string): void {\n this.server.setAssetPrefix(assetPrefix)\n\n // update the router-server nextConfig instance as\n // this is the source of truth for \"handler\" in serverful\n const relativeProjectDir = path.relative(\n process.cwd(),\n this.options.dir || ''\n )\n\n if (\n routerServerGlobal[RouterServerContextSymbol]?.[relativeProjectDir]\n ?.nextConfig\n ) {\n routerServerGlobal[RouterServerContextSymbol][\n relativeProjectDir\n ].nextConfig.assetPrefix = assetPrefix\n }\n }\n\n getUpgradeHandler(): UpgradeHandler {\n return this.server.getUpgradeHandler()\n }\n\n logError(...args: Parameters<NextWrapperServer['logError']>) {\n this.server.logError(...args)\n }\n\n logErrorWithOriginalStack(err: unknown, type: string) {\n return this.server.logErrorWithOriginalStack(err, type)\n }\n\n async revalidate(...args: Parameters<NextWrapperServer['revalidate']>) {\n return this.server.revalidate(...args)\n }\n\n async renderToHTML(...args: Parameters<NextWrapperServer['renderToHTML']>) {\n return this.server.renderToHTML(...args)\n }\n\n async renderError(...args: Parameters<NextWrapperServer['renderError']>) {\n return this.server.renderError(...args)\n }\n\n async renderErrorToHTML(\n ...args: Parameters<NextWrapperServer['renderErrorToHTML']>\n ) {\n return this.server.renderErrorToHTML(...args)\n }\n\n async render404(...args: Parameters<NextWrapperServer['render404']>) {\n return this.server.render404(...args)\n }\n\n async close() {\n await Promise.allSettled([\n this.init?.server.close(),\n this.cleanupListeners?.runAll(),\n ])\n }\n}\n\n// This file is used for when users run `require('next')`\nfunction createServer(\n options: NextServerOptions & {\n turbo?: boolean\n turbopack?: boolean\n }\n): NextWrapperServer {\n if (\n options &&\n (options.turbo || options.turbopack || process.env.IS_TURBOPACK_TEST)\n ) {\n process.env.TURBOPACK = '1'\n }\n // The package is used as a TypeScript plugin.\n if (\n options &&\n 'typescript' in options &&\n 'version' in (options as any).typescript\n ) {\n const pluginMod: typeof import('./next-typescript') =\n require('./next-typescript') as typeof import('./next-typescript')\n return pluginMod.createTSPlugin(\n options as any\n ) as unknown as NextWrapperServer\n }\n\n if (options == null) {\n throw new Error(\n 'The server has not been instantiated properly. https://nextjs.org/docs/messages/invalid-server-options'\n )\n }\n\n if (\n !('isNextDevCommand' in options) &&\n process.env.NODE_ENV &&\n !['production', 'development', 'test'].includes(process.env.NODE_ENV)\n ) {\n log.warn(NON_STANDARD_NODE_ENV)\n }\n\n if (options.dev && typeof options.dev !== 'boolean') {\n console.warn(\n \"Warning: 'dev' is not a boolean which could introduce unexpected behavior. https://nextjs.org/docs/messages/invalid-server-options\"\n )\n }\n\n // When the caller is a custom server (using next()).\n if (options.customServer !== false) {\n const dir = path.resolve(/* turbopackIgnore: true */ options.dir || '.')\n\n return new NextCustomServer({\n ...options,\n dir,\n })\n }\n\n // When the caller is Next.js internals (i.e. render worker, start server, etc)\n return new NextServer(options)\n}\n\n// Support commonjs `require('next')`\nmodule.exports = createServer\n// exports = module.exports\n\n// Support `import next from 'next'`\nexport default createServer\n"],"names":["NextServer","ServerImpl","getServerImpl","undefined","Promise","resolve","require","default","SYMBOL_LOAD_CONFIG","Symbol","constructor","options","hostname","port","getRequestHandler","req","res","parsedUrl","getTracer","trace","NextServerSpan","requestHandler","getServerRequestHandler","getRequestHandlerWithMetadata","meta","server","getServer","handler","getUpgradeHandler","socket","head","handleUpgrade","apply","setAssetPrefix","assetPrefix","preparedAssetPrefix","logError","args","logErrorWithOriginalStack","err","type","revalidate","render","renderToHTML","renderError","renderErrorToHTML","render404","prepare","serverFields","Object","assign","dev","close","createServer","ServerImplementation","dir","path","config","loadConfig","PHASE_DEVELOPMENT_SERVER","PHASE_PRODUCTION_SERVER","customConfig","conf","silent","serializedConfig","join","distDir","SERVER_FILES_MANIFEST","experimental","isExperimentalCompile","_","serverPromise","then","output","process","env","__NEXT_PRIVATE_STANDALONE_CONFIG","log","warn","Error","reqHandler","reqHandlerPromise","wrap","bind","NextCustomServer","didWebSocketSetup","getInit","init","upgradeHandler","getRequestHandlers","onDevServerCleanup","cleanupListeners","AsyncCallbackSet","add","initResult","isDev","minimalMode","quiet","setupWebSocketHandler","customServer","_req","on","httpServer","url","formatUrl","pathname","query","startsWith","console","error","routerServerGlobal","relativeProjectDir","relative","cwd","RouterServerContextSymbol","nextConfig","allSettled","runAll","turbo","turbopack","IS_TURBOPACK_TEST","TURBOPACK","typescript","pluginMod","createTSPlugin","NODE_ENV","includes","NON_STANDARD_NODE_ENV","module","exports"],"mappings":"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","ignoreList":[0]}
@@ -22,7 +22,7 @@ _export(exports, {
22
22
  });
23
23
  function isStableBuild() {
24
24
  var _process_env___NEXT_VERSION;
25
- return !((_process_env___NEXT_VERSION = "15.6.0-canary.37") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
25
+ return !((_process_env___NEXT_VERSION = "15.6.0-canary.38") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
26
26
  }
27
27
  class CanaryOnlyError extends Error {
28
28
  constructor(arg){
@@ -81,7 +81,7 @@ function getAnonymousMeta() {
81
81
  isWsl: _iswsl.default,
82
82
  isCI: _ciinfo.isCI,
83
83
  ciName: _ciinfo.isCI && _ciinfo.name || null,
84
- nextVersion: "15.6.0-canary.37"
84
+ nextVersion: "15.6.0-canary.38"
85
85
  };
86
86
  return traits;
87
87
  }
@@ -11,11 +11,11 @@ Object.defineProperty(exports, "eventCliSessionStopped", {
11
11
  const EVENT_VERSION = 'NEXT_CLI_SESSION_STOPPED';
12
12
  function eventCliSessionStopped(event) {
13
13
  // This should be an invariant, if it fails our build tooling is broken.
14
- if (typeof "15.6.0-canary.37" !== 'string') {
14
+ if (typeof "15.6.0-canary.38" !== 'string') {
15
15
  return [];
16
16
  }
17
17
  const payload = {
18
- nextVersion: "15.6.0-canary.37",
18
+ nextVersion: "15.6.0-canary.38",
19
19
  nodeVersion: process.version,
20
20
  cliCommand: event.cliCommand,
21
21
  durationMilliseconds: event.durationMilliseconds,
@@ -12,12 +12,12 @@ const EVENT_VERSION = 'NEXT_CLI_SESSION_STARTED';
12
12
  function eventCliSession(nextConfig, event) {
13
13
  var _nextConfig_experimental_staleTimes, _nextConfig_experimental_staleTimes1, _nextConfig_reactCompiler, _nextConfig_reactCompiler1;
14
14
  // This should be an invariant, if it fails our build tooling is broken.
15
- if (typeof "15.6.0-canary.37" !== 'string') {
15
+ if (typeof "15.6.0-canary.38" !== 'string') {
16
16
  return [];
17
17
  }
18
18
  const { images, i18n } = nextConfig || {};
19
19
  const payload = {
20
- nextVersion: "15.6.0-canary.37",
20
+ nextVersion: "15.6.0-canary.38",
21
21
  nodeVersion: process.version,
22
22
  cliCommand: event.cliCommand,
23
23
  isSrcDir: event.isSrcDir,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next",
3
- "version": "15.6.0-canary.37",
3
+ "version": "15.6.0-canary.38",
4
4
  "description": "The React Framework",
5
5
  "main": "./dist/server/next.js",
6
6
  "license": "MIT",
@@ -100,7 +100,7 @@
100
100
  ]
101
101
  },
102
102
  "dependencies": {
103
- "@next/env": "15.6.0-canary.37",
103
+ "@next/env": "15.6.0-canary.38",
104
104
  "@swc/helpers": "0.5.15",
105
105
  "caniuse-lite": "^1.0.30001579",
106
106
  "postcss": "8.4.31",
@@ -130,14 +130,14 @@
130
130
  },
131
131
  "optionalDependencies": {
132
132
  "sharp": "^0.34.4",
133
- "@next/swc-darwin-arm64": "15.6.0-canary.37",
134
- "@next/swc-darwin-x64": "15.6.0-canary.37",
135
- "@next/swc-linux-arm64-gnu": "15.6.0-canary.37",
136
- "@next/swc-linux-arm64-musl": "15.6.0-canary.37",
137
- "@next/swc-linux-x64-gnu": "15.6.0-canary.37",
138
- "@next/swc-linux-x64-musl": "15.6.0-canary.37",
139
- "@next/swc-win32-arm64-msvc": "15.6.0-canary.37",
140
- "@next/swc-win32-x64-msvc": "15.6.0-canary.37"
133
+ "@next/swc-darwin-arm64": "15.6.0-canary.38",
134
+ "@next/swc-darwin-x64": "15.6.0-canary.38",
135
+ "@next/swc-linux-arm64-gnu": "15.6.0-canary.38",
136
+ "@next/swc-linux-arm64-musl": "15.6.0-canary.38",
137
+ "@next/swc-linux-x64-gnu": "15.6.0-canary.38",
138
+ "@next/swc-linux-x64-musl": "15.6.0-canary.38",
139
+ "@next/swc-win32-arm64-msvc": "15.6.0-canary.38",
140
+ "@next/swc-win32-x64-msvc": "15.6.0-canary.38"
141
141
  },
142
142
  "devDependencies": {
143
143
  "@babel/code-frame": "7.26.2",
@@ -172,11 +172,11 @@
172
172
  "@modelcontextprotocol/sdk": "1.18.1",
173
173
  "@mswjs/interceptors": "0.23.0",
174
174
  "@napi-rs/triples": "1.2.0",
175
- "@next/font": "15.6.0-canary.37",
176
- "@next/polyfill-module": "15.6.0-canary.37",
177
- "@next/polyfill-nomodule": "15.6.0-canary.37",
178
- "@next/react-refresh-utils": "15.6.0-canary.37",
179
- "@next/swc": "15.6.0-canary.37",
175
+ "@next/font": "15.6.0-canary.38",
176
+ "@next/polyfill-module": "15.6.0-canary.38",
177
+ "@next/polyfill-nomodule": "15.6.0-canary.38",
178
+ "@next/react-refresh-utils": "15.6.0-canary.38",
179
+ "@next/swc": "15.6.0-canary.38",
180
180
  "@opentelemetry/api": "1.6.0",
181
181
  "@playwright/test": "1.51.1",
182
182
  "@rspack/core": "1.5.0",
@@ -1,81 +0,0 @@
1
- /// Utilties for configuring the bundler to use.
2
- export var Bundler = /*#__PURE__*/ function(Bundler) {
3
- Bundler[Bundler["Turbopack"] = 0] = "Turbopack";
4
- Bundler[Bundler["Webpack"] = 1] = "Webpack";
5
- Bundler[Bundler["Rspack"] = 2] = "Rspack";
6
- return Bundler;
7
- }({});
8
- /**
9
- * Parse the bundler arguments and potentially sets the `TURBOPACK` environment variable.
10
- *
11
- * NOTE: rspack is configured via next config which is chaotic so it is possible for this to be overridden later.
12
- *
13
- * @param options The options to parse.
14
- * @returns The bundler that was configured
15
- */ export function parseBundlerArgs(options) {
16
- const bundlerFlags = new Map();
17
- const setBundlerFlag = (bundler, flag)=>{
18
- bundlerFlags.set(bundler, (bundlerFlags.get(bundler) ?? []).concat(flag));
19
- };
20
- // What turbo flag was set? We allow multiple to be set, which is silly but not ambiguous, just pick the most relevant one.
21
- if (options.turbopack) {
22
- setBundlerFlag(0, '--turbopack');
23
- }
24
- if (options.turbo) {
25
- setBundlerFlag(0, '--turbo');
26
- } else if (process.env.TURBOPACK) {
27
- // We don't really want to support this but it is trivial and not really confusing.
28
- // If we don't support it and someone sets it, we would have inconsistent behavior
29
- // since some parts of next would read the return value of this function and other
30
- // parts will read the env variable.
31
- setBundlerFlag(0, `TURBOPACK=${process.env.TURBOPACK}`);
32
- } else if (process.env.IS_TURBOPACK_TEST) {
33
- setBundlerFlag(0, `IS_TURBOPACK_TEST=${process.env.IS_TURBOPACK_TEST}`);
34
- }
35
- if (options.webpack) {
36
- setBundlerFlag(1, '--webpack');
37
- }
38
- if (process.env.IS_WEBPACK_TEST) {
39
- setBundlerFlag(1, `IS_WEBPACK_TEST=${process.env.IS_WEBPACK_TEST}`);
40
- }
41
- // Mostly this is set via the NextConfig but it can also be set via the command line which is
42
- // common for testing.
43
- if (process.env.NEXT_RSPACK) {
44
- setBundlerFlag(2, `NEXT_RSPACK=${process.env.NEXT_RSPACK}`);
45
- }
46
- if (process.env.NEXT_TEST_USE_RSPACK) {
47
- setBundlerFlag(2, `NEXT_TEST_USE_RSPACK=${process.env.NEXT_TEST_USE_RSPACK}`);
48
- }
49
- if (bundlerFlags.size > 1) {
50
- console.error(`Multiple bundler flags set: ${Array.from(bundlerFlags.values()).flat().join(', ')}. Configure exactly one bundler.`);
51
- process.exit(1);
52
- }
53
- // The default is turbopack when nothing is configured.
54
- if (bundlerFlags.size === 0) {
55
- process.env.TURBOPACK = 'auto';
56
- return 0;
57
- }
58
- if (bundlerFlags.has(0)) {
59
- // Only conditionally assign to the environment variable, preserving already set values.
60
- // If it was set to 'auto' because no flag was set and this function is called a second time we
61
- // would upgrade to '1' but we don't really want that.
62
- process.env.TURBOPACK ??= '1';
63
- return 0;
64
- }
65
- // Otherwise it is one of rspack or webpack. At this point there must be exactly one key in the map.
66
- return bundlerFlags.keys().next().value;
67
- }
68
- /**
69
- * Finalize the bundler based on the config.
70
- *
71
- * Rspack is configured via next config by setting an environment variable (yay, side effects)
72
- * so this should only be called after parsing the config.
73
- */ export function finalizeBundlerFromConfig(fromOptions) {
74
- // Reading the next config can set NEXT_RSPACK environment variables.
75
- if (process.env.NEXT_RSPACK) {
76
- return 2;
77
- }
78
- return fromOptions;
79
- }
80
-
81
- //# sourceMappingURL=bundler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/bundler.ts"],"sourcesContent":["/// Utilties for configuring the bundler to use.\nexport enum Bundler {\n Turbopack,\n Webpack,\n Rspack,\n}\n/**\n * Parse the bundler arguments and potentially sets the `TURBOPACK` environment variable.\n *\n * NOTE: rspack is configured via next config which is chaotic so it is possible for this to be overridden later.\n *\n * @param options The options to parse.\n * @returns The bundler that was configured\n */\nexport function parseBundlerArgs(options: {\n turbo?: boolean\n turbopack?: boolean\n webpack?: boolean\n}): Bundler {\n const bundlerFlags = new Map<Bundler, string[]>()\n const setBundlerFlag = (bundler: Bundler, flag: string) => {\n bundlerFlags.set(bundler, (bundlerFlags.get(bundler) ?? []).concat(flag))\n }\n // What turbo flag was set? We allow multiple to be set, which is silly but not ambiguous, just pick the most relevant one.\n if (options.turbopack) {\n setBundlerFlag(Bundler.Turbopack, '--turbopack')\n }\n if (options.turbo) {\n setBundlerFlag(Bundler.Turbopack, '--turbo')\n } else if (process.env.TURBOPACK) {\n // We don't really want to support this but it is trivial and not really confusing.\n // If we don't support it and someone sets it, we would have inconsistent behavior\n // since some parts of next would read the return value of this function and other\n // parts will read the env variable.\n setBundlerFlag(Bundler.Turbopack, `TURBOPACK=${process.env.TURBOPACK}`)\n } else if (process.env.IS_TURBOPACK_TEST) {\n setBundlerFlag(\n Bundler.Turbopack,\n `IS_TURBOPACK_TEST=${process.env.IS_TURBOPACK_TEST}`\n )\n }\n if (options.webpack) {\n setBundlerFlag(Bundler.Webpack, '--webpack')\n }\n\n if (process.env.IS_WEBPACK_TEST) {\n setBundlerFlag(\n Bundler.Webpack,\n `IS_WEBPACK_TEST=${process.env.IS_WEBPACK_TEST}`\n )\n }\n\n // Mostly this is set via the NextConfig but it can also be set via the command line which is\n // common for testing.\n if (process.env.NEXT_RSPACK) {\n setBundlerFlag(Bundler.Rspack, `NEXT_RSPACK=${process.env.NEXT_RSPACK}`)\n }\n if (process.env.NEXT_TEST_USE_RSPACK) {\n setBundlerFlag(\n Bundler.Rspack,\n `NEXT_TEST_USE_RSPACK=${process.env.NEXT_TEST_USE_RSPACK}`\n )\n }\n\n if (bundlerFlags.size > 1) {\n console.error(\n `Multiple bundler flags set: ${Array.from(bundlerFlags.values()).flat().join(', ')}. Configure exactly one bundler.`\n )\n process.exit(1)\n }\n // The default is turbopack when nothing is configured.\n if (bundlerFlags.size === 0) {\n process.env.TURBOPACK = 'auto'\n return Bundler.Turbopack\n }\n if (bundlerFlags.has(Bundler.Turbopack)) {\n // Only conditionally assign to the environment variable, preserving already set values.\n // If it was set to 'auto' because no flag was set and this function is called a second time we\n // would upgrade to '1' but we don't really want that.\n process.env.TURBOPACK ??= '1'\n return Bundler.Turbopack\n }\n // Otherwise it is one of rspack or webpack. At this point there must be exactly one key in the map.\n return bundlerFlags.keys().next().value!\n}\n\n/**\n * Finalize the bundler based on the config.\n *\n * Rspack is configured via next config by setting an environment variable (yay, side effects)\n * so this should only be called after parsing the config.\n */\nexport function finalizeBundlerFromConfig(fromOptions: Bundler) {\n // Reading the next config can set NEXT_RSPACK environment variables.\n if (process.env.NEXT_RSPACK) {\n return Bundler.Rspack\n }\n return fromOptions\n}\n"],"names":["Bundler","parseBundlerArgs","options","bundlerFlags","Map","setBundlerFlag","bundler","flag","set","get","concat","turbopack","turbo","process","env","TURBOPACK","IS_TURBOPACK_TEST","webpack","IS_WEBPACK_TEST","NEXT_RSPACK","NEXT_TEST_USE_RSPACK","size","console","error","Array","from","values","flat","join","exit","has","keys","next","value","finalizeBundlerFromConfig","fromOptions"],"mappings":"AAAA,gDAAgD;AAChD,OAAO,IAAA,AAAKA,iCAAAA;;;;WAAAA;MAIX;AACD;;;;;;;CAOC,GACD,OAAO,SAASC,iBAAiBC,OAIhC;IACC,MAAMC,eAAe,IAAIC;IACzB,MAAMC,iBAAiB,CAACC,SAAkBC;QACxCJ,aAAaK,GAAG,CAACF,SAAS,AAACH,CAAAA,aAAaM,GAAG,CAACH,YAAY,EAAE,AAAD,EAAGI,MAAM,CAACH;IACrE;IACA,2HAA2H;IAC3H,IAAIL,QAAQS,SAAS,EAAE;QACrBN,kBAAkC;IACpC;IACA,IAAIH,QAAQU,KAAK,EAAE;QACjBP,kBAAkC;IACpC,OAAO,IAAIQ,QAAQC,GAAG,CAACC,SAAS,EAAE;QAChC,mFAAmF;QACnF,kFAAkF;QAClF,kFAAkF;QAClF,oCAAoC;QACpCV,kBAAkC,CAAC,UAAU,EAAEQ,QAAQC,GAAG,CAACC,SAAS,EAAE;IACxE,OAAO,IAAIF,QAAQC,GAAG,CAACE,iBAAiB,EAAE;QACxCX,kBAEE,CAAC,kBAAkB,EAAEQ,QAAQC,GAAG,CAACE,iBAAiB,EAAE;IAExD;IACA,IAAId,QAAQe,OAAO,EAAE;QACnBZ,kBAAgC;IAClC;IAEA,IAAIQ,QAAQC,GAAG,CAACI,eAAe,EAAE;QAC/Bb,kBAEE,CAAC,gBAAgB,EAAEQ,QAAQC,GAAG,CAACI,eAAe,EAAE;IAEpD;IAEA,6FAA6F;IAC7F,sBAAsB;IACtB,IAAIL,QAAQC,GAAG,CAACK,WAAW,EAAE;QAC3Bd,kBAA+B,CAAC,YAAY,EAAEQ,QAAQC,GAAG,CAACK,WAAW,EAAE;IACzE;IACA,IAAIN,QAAQC,GAAG,CAACM,oBAAoB,EAAE;QACpCf,kBAEE,CAAC,qBAAqB,EAAEQ,QAAQC,GAAG,CAACM,oBAAoB,EAAE;IAE9D;IAEA,IAAIjB,aAAakB,IAAI,GAAG,GAAG;QACzBC,QAAQC,KAAK,CACX,CAAC,4BAA4B,EAAEC,MAAMC,IAAI,CAACtB,aAAauB,MAAM,IAAIC,IAAI,GAAGC,IAAI,CAAC,MAAM,gCAAgC,CAAC;QAEtHf,QAAQgB,IAAI,CAAC;IACf;IACA,uDAAuD;IACvD,IAAI1B,aAAakB,IAAI,KAAK,GAAG;QAC3BR,QAAQC,GAAG,CAACC,SAAS,GAAG;QACxB;IACF;IACA,IAAIZ,aAAa2B,GAAG,KAAqB;QACvC,wFAAwF;QACxF,+FAA+F;QAC/F,sDAAsD;QACtDjB,QAAQC,GAAG,CAACC,SAAS,KAAK;QAC1B;IACF;IACA,oGAAoG;IACpG,OAAOZ,aAAa4B,IAAI,GAAGC,IAAI,GAAGC,KAAK;AACzC;AAEA;;;;;CAKC,GACD,OAAO,SAASC,0BAA0BC,WAAoB;IAC5D,qEAAqE;IACrE,IAAItB,QAAQC,GAAG,CAACK,WAAW,EAAE;QAC3B;IACF;IACA,OAAOgB;AACT","ignoreList":[0]}
@@ -1,25 +0,0 @@
1
- export declare enum Bundler {
2
- Turbopack = 0,
3
- Webpack = 1,
4
- Rspack = 2
5
- }
6
- /**
7
- * Parse the bundler arguments and potentially sets the `TURBOPACK` environment variable.
8
- *
9
- * NOTE: rspack is configured via next config which is chaotic so it is possible for this to be overridden later.
10
- *
11
- * @param options The options to parse.
12
- * @returns The bundler that was configured
13
- */
14
- export declare function parseBundlerArgs(options: {
15
- turbo?: boolean;
16
- turbopack?: boolean;
17
- webpack?: boolean;
18
- }): Bundler;
19
- /**
20
- * Finalize the bundler based on the config.
21
- *
22
- * Rspack is configured via next config by setting an environment variable (yay, side effects)
23
- * so this should only be called after parsing the config.
24
- */
25
- export declare function finalizeBundlerFromConfig(fromOptions: Bundler): Bundler;
@@ -1,95 +0,0 @@
1
- /// Utilties for configuring the bundler to use.
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- 0 && (module.exports = {
7
- Bundler: null,
8
- finalizeBundlerFromConfig: null,
9
- parseBundlerArgs: null
10
- });
11
- function _export(target, all) {
12
- for(var name in all)Object.defineProperty(target, name, {
13
- enumerable: true,
14
- get: all[name]
15
- });
16
- }
17
- _export(exports, {
18
- Bundler: function() {
19
- return Bundler;
20
- },
21
- finalizeBundlerFromConfig: function() {
22
- return finalizeBundlerFromConfig;
23
- },
24
- parseBundlerArgs: function() {
25
- return parseBundlerArgs;
26
- }
27
- });
28
- var Bundler = /*#__PURE__*/ function(Bundler) {
29
- Bundler[Bundler["Turbopack"] = 0] = "Turbopack";
30
- Bundler[Bundler["Webpack"] = 1] = "Webpack";
31
- Bundler[Bundler["Rspack"] = 2] = "Rspack";
32
- return Bundler;
33
- }({});
34
- function parseBundlerArgs(options) {
35
- const bundlerFlags = new Map();
36
- const setBundlerFlag = (bundler, flag)=>{
37
- bundlerFlags.set(bundler, (bundlerFlags.get(bundler) ?? []).concat(flag));
38
- };
39
- // What turbo flag was set? We allow multiple to be set, which is silly but not ambiguous, just pick the most relevant one.
40
- if (options.turbopack) {
41
- setBundlerFlag(0, '--turbopack');
42
- }
43
- if (options.turbo) {
44
- setBundlerFlag(0, '--turbo');
45
- } else if (process.env.TURBOPACK) {
46
- // We don't really want to support this but it is trivial and not really confusing.
47
- // If we don't support it and someone sets it, we would have inconsistent behavior
48
- // since some parts of next would read the return value of this function and other
49
- // parts will read the env variable.
50
- setBundlerFlag(0, `TURBOPACK=${process.env.TURBOPACK}`);
51
- } else if (process.env.IS_TURBOPACK_TEST) {
52
- setBundlerFlag(0, `IS_TURBOPACK_TEST=${process.env.IS_TURBOPACK_TEST}`);
53
- }
54
- if (options.webpack) {
55
- setBundlerFlag(1, '--webpack');
56
- }
57
- if (process.env.IS_WEBPACK_TEST) {
58
- setBundlerFlag(1, `IS_WEBPACK_TEST=${process.env.IS_WEBPACK_TEST}`);
59
- }
60
- // Mostly this is set via the NextConfig but it can also be set via the command line which is
61
- // common for testing.
62
- if (process.env.NEXT_RSPACK) {
63
- setBundlerFlag(2, `NEXT_RSPACK=${process.env.NEXT_RSPACK}`);
64
- }
65
- if (process.env.NEXT_TEST_USE_RSPACK) {
66
- setBundlerFlag(2, `NEXT_TEST_USE_RSPACK=${process.env.NEXT_TEST_USE_RSPACK}`);
67
- }
68
- if (bundlerFlags.size > 1) {
69
- console.error(`Multiple bundler flags set: ${Array.from(bundlerFlags.values()).flat().join(', ')}. Configure exactly one bundler.`);
70
- process.exit(1);
71
- }
72
- // The default is turbopack when nothing is configured.
73
- if (bundlerFlags.size === 0) {
74
- process.env.TURBOPACK = 'auto';
75
- return 0;
76
- }
77
- if (bundlerFlags.has(0)) {
78
- // Only conditionally assign to the environment variable, preserving already set values.
79
- // If it was set to 'auto' because no flag was set and this function is called a second time we
80
- // would upgrade to '1' but we don't really want that.
81
- process.env.TURBOPACK ??= '1';
82
- return 0;
83
- }
84
- // Otherwise it is one of rspack or webpack. At this point there must be exactly one key in the map.
85
- return bundlerFlags.keys().next().value;
86
- }
87
- function finalizeBundlerFromConfig(fromOptions) {
88
- // Reading the next config can set NEXT_RSPACK environment variables.
89
- if (process.env.NEXT_RSPACK) {
90
- return 2;
91
- }
92
- return fromOptions;
93
- }
94
-
95
- //# sourceMappingURL=bundler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/bundler.ts"],"sourcesContent":["/// Utilties for configuring the bundler to use.\nexport enum Bundler {\n Turbopack,\n Webpack,\n Rspack,\n}\n/**\n * Parse the bundler arguments and potentially sets the `TURBOPACK` environment variable.\n *\n * NOTE: rspack is configured via next config which is chaotic so it is possible for this to be overridden later.\n *\n * @param options The options to parse.\n * @returns The bundler that was configured\n */\nexport function parseBundlerArgs(options: {\n turbo?: boolean\n turbopack?: boolean\n webpack?: boolean\n}): Bundler {\n const bundlerFlags = new Map<Bundler, string[]>()\n const setBundlerFlag = (bundler: Bundler, flag: string) => {\n bundlerFlags.set(bundler, (bundlerFlags.get(bundler) ?? []).concat(flag))\n }\n // What turbo flag was set? We allow multiple to be set, which is silly but not ambiguous, just pick the most relevant one.\n if (options.turbopack) {\n setBundlerFlag(Bundler.Turbopack, '--turbopack')\n }\n if (options.turbo) {\n setBundlerFlag(Bundler.Turbopack, '--turbo')\n } else if (process.env.TURBOPACK) {\n // We don't really want to support this but it is trivial and not really confusing.\n // If we don't support it and someone sets it, we would have inconsistent behavior\n // since some parts of next would read the return value of this function and other\n // parts will read the env variable.\n setBundlerFlag(Bundler.Turbopack, `TURBOPACK=${process.env.TURBOPACK}`)\n } else if (process.env.IS_TURBOPACK_TEST) {\n setBundlerFlag(\n Bundler.Turbopack,\n `IS_TURBOPACK_TEST=${process.env.IS_TURBOPACK_TEST}`\n )\n }\n if (options.webpack) {\n setBundlerFlag(Bundler.Webpack, '--webpack')\n }\n\n if (process.env.IS_WEBPACK_TEST) {\n setBundlerFlag(\n Bundler.Webpack,\n `IS_WEBPACK_TEST=${process.env.IS_WEBPACK_TEST}`\n )\n }\n\n // Mostly this is set via the NextConfig but it can also be set via the command line which is\n // common for testing.\n if (process.env.NEXT_RSPACK) {\n setBundlerFlag(Bundler.Rspack, `NEXT_RSPACK=${process.env.NEXT_RSPACK}`)\n }\n if (process.env.NEXT_TEST_USE_RSPACK) {\n setBundlerFlag(\n Bundler.Rspack,\n `NEXT_TEST_USE_RSPACK=${process.env.NEXT_TEST_USE_RSPACK}`\n )\n }\n\n if (bundlerFlags.size > 1) {\n console.error(\n `Multiple bundler flags set: ${Array.from(bundlerFlags.values()).flat().join(', ')}. Configure exactly one bundler.`\n )\n process.exit(1)\n }\n // The default is turbopack when nothing is configured.\n if (bundlerFlags.size === 0) {\n process.env.TURBOPACK = 'auto'\n return Bundler.Turbopack\n }\n if (bundlerFlags.has(Bundler.Turbopack)) {\n // Only conditionally assign to the environment variable, preserving already set values.\n // If it was set to 'auto' because no flag was set and this function is called a second time we\n // would upgrade to '1' but we don't really want that.\n process.env.TURBOPACK ??= '1'\n return Bundler.Turbopack\n }\n // Otherwise it is one of rspack or webpack. At this point there must be exactly one key in the map.\n return bundlerFlags.keys().next().value!\n}\n\n/**\n * Finalize the bundler based on the config.\n *\n * Rspack is configured via next config by setting an environment variable (yay, side effects)\n * so this should only be called after parsing the config.\n */\nexport function finalizeBundlerFromConfig(fromOptions: Bundler) {\n // Reading the next config can set NEXT_RSPACK environment variables.\n if (process.env.NEXT_RSPACK) {\n return Bundler.Rspack\n }\n return fromOptions\n}\n"],"names":["Bundler","finalizeBundlerFromConfig","parseBundlerArgs","options","bundlerFlags","Map","setBundlerFlag","bundler","flag","set","get","concat","turbopack","turbo","process","env","TURBOPACK","IS_TURBOPACK_TEST","webpack","IS_WEBPACK_TEST","NEXT_RSPACK","NEXT_TEST_USE_RSPACK","size","console","error","Array","from","values","flat","join","exit","has","keys","next","value","fromOptions"],"mappings":"AAAA,gDAAgD;;;;;;;;;;;;;;;;;IACpCA,OAAO;eAAPA;;IA2FIC,yBAAyB;eAAzBA;;IA9EAC,gBAAgB;eAAhBA;;;AAbT,IAAA,AAAKF,iCAAAA;;;;WAAAA;;AAaL,SAASE,iBAAiBC,OAIhC;IACC,MAAMC,eAAe,IAAIC;IACzB,MAAMC,iBAAiB,CAACC,SAAkBC;QACxCJ,aAAaK,GAAG,CAACF,SAAS,AAACH,CAAAA,aAAaM,GAAG,CAACH,YAAY,EAAE,AAAD,EAAGI,MAAM,CAACH;IACrE;IACA,2HAA2H;IAC3H,IAAIL,QAAQS,SAAS,EAAE;QACrBN,kBAAkC;IACpC;IACA,IAAIH,QAAQU,KAAK,EAAE;QACjBP,kBAAkC;IACpC,OAAO,IAAIQ,QAAQC,GAAG,CAACC,SAAS,EAAE;QAChC,mFAAmF;QACnF,kFAAkF;QAClF,kFAAkF;QAClF,oCAAoC;QACpCV,kBAAkC,CAAC,UAAU,EAAEQ,QAAQC,GAAG,CAACC,SAAS,EAAE;IACxE,OAAO,IAAIF,QAAQC,GAAG,CAACE,iBAAiB,EAAE;QACxCX,kBAEE,CAAC,kBAAkB,EAAEQ,QAAQC,GAAG,CAACE,iBAAiB,EAAE;IAExD;IACA,IAAId,QAAQe,OAAO,EAAE;QACnBZ,kBAAgC;IAClC;IAEA,IAAIQ,QAAQC,GAAG,CAACI,eAAe,EAAE;QAC/Bb,kBAEE,CAAC,gBAAgB,EAAEQ,QAAQC,GAAG,CAACI,eAAe,EAAE;IAEpD;IAEA,6FAA6F;IAC7F,sBAAsB;IACtB,IAAIL,QAAQC,GAAG,CAACK,WAAW,EAAE;QAC3Bd,kBAA+B,CAAC,YAAY,EAAEQ,QAAQC,GAAG,CAACK,WAAW,EAAE;IACzE;IACA,IAAIN,QAAQC,GAAG,CAACM,oBAAoB,EAAE;QACpCf,kBAEE,CAAC,qBAAqB,EAAEQ,QAAQC,GAAG,CAACM,oBAAoB,EAAE;IAE9D;IAEA,IAAIjB,aAAakB,IAAI,GAAG,GAAG;QACzBC,QAAQC,KAAK,CACX,CAAC,4BAA4B,EAAEC,MAAMC,IAAI,CAACtB,aAAauB,MAAM,IAAIC,IAAI,GAAGC,IAAI,CAAC,MAAM,gCAAgC,CAAC;QAEtHf,QAAQgB,IAAI,CAAC;IACf;IACA,uDAAuD;IACvD,IAAI1B,aAAakB,IAAI,KAAK,GAAG;QAC3BR,QAAQC,GAAG,CAACC,SAAS,GAAG;QACxB;IACF;IACA,IAAIZ,aAAa2B,GAAG,KAAqB;QACvC,wFAAwF;QACxF,+FAA+F;QAC/F,sDAAsD;QACtDjB,QAAQC,GAAG,CAACC,SAAS,KAAK;QAC1B;IACF;IACA,oGAAoG;IACpG,OAAOZ,aAAa4B,IAAI,GAAGC,IAAI,GAAGC,KAAK;AACzC;AAQO,SAASjC,0BAA0BkC,WAAoB;IAC5D,qEAAqE;IACrE,IAAIrB,QAAQC,GAAG,CAACK,WAAW,EAAE;QAC3B;IACF;IACA,OAAOe;AACT","ignoreList":[0]}