{"version":3,"sources":["../../../../src/build/turbopack-build/impl.ts"],"sourcesContent":["// Import cpu-profile first to start profiling early if enabled\nimport { saveCpuProfile } from '../../server/lib/cpu-profile'\nimport path from 'path'\nimport { validateTurboNextConfig } from '../../lib/turbopack-warning'\nimport { seedTurbopackCacheIfNeeded } from '../../lib/turbopack-cache-seed'\nimport { NextBuildContext } from '../build-context'\nimport { createDefineEnv, getBindingsSync } from '../swc'\nimport { installBindings } from '../swc/install-bindings'\nimport {\n  handleRouteType,\n  rawEntrypointsToEntrypoints,\n} from '../handle-entrypoints'\nimport { TurbopackManifestLoader } from '../../shared/lib/turbopack/manifest-loader'\nimport { promises as fs } from 'fs'\nimport { PHASE_PRODUCTION_BUILD } from '../../shared/lib/constants'\nimport loadConfig from '../../server/config'\nimport { hasCustomExportOutput } from '../../export/utils'\nimport { Telemetry } from '../../telemetry/storage'\nimport { eventBuildFeatureUsageFromTurbopack } from '../../telemetry/events/build'\nimport {\n  setGlobal,\n  trace,\n  initializeTraceState,\n  getTraceEvents,\n} from '../../trace'\nimport type { TraceState } from '../../trace'\nimport { isCI } from '../../server/ci-info'\nimport { backgroundLogCompilationEvents } from '../../shared/lib/turbopack/compilation-events'\nimport { getSupportedBrowsers } from '../get-supported-browsers'\nimport { printBuildErrors } from '../print-build-errors'\nimport { normalizePath } from '../../lib/normalize-path'\nimport type {\n  ProjectOptions,\n  RawEntrypoints,\n  TurbopackResult,\n} from '../swc/types'\nimport { Bundler } from '../../lib/bundler'\n\nexport async function turbopackBuild(telemetry: Telemetry): Promise<{\n  duration: number\n  buildTraceContext: undefined\n  shutdownPromise: Promise<void>\n  warnings: string[]\n}> {\n  await validateTurboNextConfig({\n    dir: NextBuildContext.dir!,\n    configPhase: PHASE_PRODUCTION_BUILD,\n  })\n\n  const config = NextBuildContext.config!\n  const dir = NextBuildContext.dir!\n  const distDir = NextBuildContext.distDir!\n  const buildId = NextBuildContext.buildId!\n  const encryptionKey = NextBuildContext.encryptionKey!\n  const previewProps = NextBuildContext.previewProps!\n  const hasRewrites = NextBuildContext.hasRewrites!\n  const rewrites = NextBuildContext.rewrites!\n  const noMangling = NextBuildContext.noMangling!\n  const currentNodeJsVersion = process.versions.node\n\n  const startTime = process.hrtime()\n  const bindings = getBindingsSync() // our caller should have already loaded these\n\n  if (bindings.isWasm) {\n    throw new Error(\n      `Turbopack is not supported on this platform (${process.platform}/${process.arch}) because native bindings are not available. ` +\n        `Only WebAssembly (WASM) bindings were loaded, and Turbopack requires native bindings.\\n\\n` +\n        `To build on this platform, use Webpack instead:\\n` +\n        `  next build --webpack\\n\\n` +\n        `For more information, see: https://nextjs.org/docs/app/api-reference/turbopack#supported-platforms`\n    )\n  }\n\n  const dev = false\n\n  const supportedBrowsers = getSupportedBrowsers(dir, dev)\n\n  const hasDeferredEntries =\n    (config.experimental.deferredEntries?.length ?? 0) > 0\n\n  const persistentCaching =\n    config.experimental?.turbopackFileSystemCacheForBuild || false\n  const rootPath = config.turbopack?.root || config.outputFileTracingRoot || dir\n\n  // Shared options for createProject calls\n  const sharedProjectOptions: Omit<ProjectOptions, 'debugBuildPaths'> = {\n    rootPath,\n    projectPath: normalizePath(path.relative(rootPath, dir) || '.'),\n    distDir,\n    nextConfig: config,\n    watch: {\n      enable: false,\n    },\n    dev,\n    env: process.env as Record<string, string>,\n    defineEnv: createDefineEnv({\n      isTurbopack: true,\n      clientRouterFilters: NextBuildContext.clientRouterFilters!,\n      config,\n      dev,\n      distDir,\n      projectPath: dir,\n      fetchCacheKeyPrefix: config.experimental.fetchCacheKeyPrefix,\n      hasRewrites,\n      // Implemented separately in Turbopack, doesn't have to be passed here.\n      middlewareMatchers: undefined,\n      rewrites,\n    }),\n    buildId,\n    encryptionKey,\n    previewProps,\n    browserslistQuery: supportedBrowsers.join(', '),\n    noMangling,\n    writeRoutesHashesManifest:\n      !!process.env.NEXT_TURBOPACK_WRITE_ROUTES_HASHES_MANIFEST,\n    currentNodeJsVersion,\n    isPersistentCachingEnabled: persistentCaching,\n    deferredEntries: config.experimental.deferredEntries,\n    nextVersion: process.env.__NEXT_VERSION as string,\n  }\n\n  if (config.experimental.turbopackSeedCacheFromWorktree) {\n    seedTurbopackCacheIfNeeded({\n      projectDir: dir,\n      distDir,\n    })\n  }\n\n  const sharedTurboOptions = {\n    turbopackMemoryEviction: config.experimental.turbopackMemoryEvictionMode,\n    dependencyTracking: persistentCaching || hasDeferredEntries,\n    isCi: isCI,\n    isShortSession: true,\n    skipCompaction: process.env.NEXT_USE_POST_BUILD === '1',\n  }\n\n  const sriEnabled = Boolean(config.experimental.sri?.algorithm)\n\n  const project = await bindings.turbo.createProject(\n    {\n      ...sharedProjectOptions,\n      debugBuildPaths: NextBuildContext.debugBuildPaths,\n    },\n    sharedTurboOptions,\n    hasDeferredEntries && config.experimental.onBeforeDeferredEntries\n      ? {\n          onBeforeDeferredEntries: async () => {\n            const workerConfig = await loadConfig(PHASE_PRODUCTION_BUILD, dir, {\n              debugPrerender: NextBuildContext.debugPrerender,\n              reactProductionProfiling:\n                NextBuildContext.reactProductionProfiling,\n              bundler: Bundler.Turbopack,\n            })\n\n            await workerConfig.experimental.onBeforeDeferredEntries?.()\n          },\n        }\n      : undefined\n  )\n  const buildEventsSpan = trace('turbopack-build-events')\n  // Stop immediately: this span is only used as a parent for\n  // manualTraceChild calls which carry their own timestamps.\n  buildEventsSpan.stop()\n  const shutdownController = new AbortController()\n  const compilationEvents = backgroundLogCompilationEvents(project, {\n    parentSpan: buildEventsSpan,\n    signal: shutdownController.signal,\n  })\n\n  try {\n    // Write an empty file in a known location to signal this was built with Turbopack\n    await fs.writeFile(path.join(distDir, 'turbopack'), '')\n\n    await fs.mkdir(path.join(distDir, 'server'), { recursive: true })\n    await fs.mkdir(path.join(distDir, 'static', buildId), {\n      recursive: true,\n    })\n    await fs.writeFile(\n      path.join(distDir, 'package.json'),\n      '{\"type\": \"commonjs\"}'\n    )\n\n    let appDirOnly = NextBuildContext.appDirOnly!\n\n    const entrypoints = await project.writeAllEntrypointsToDisk(appDirOnly)\n    // Defer warnings so the caller can print them after static generation,\n    // keeping SSG errors more prominent than compile warnings.\n    const { warnings } = printBuildErrors(entrypoints, dev, {\n      deferWarnings: true,\n    })\n\n    // Skip when telemetry is fully off — featureUsage() isn't free.\n    if (telemetry.isEnabled || process.env.NEXT_TELEMETRY_DEBUG) {\n      try {\n        const featureUsage = await project.featureUsage()\n        const events = eventBuildFeatureUsageFromTurbopack(featureUsage)\n        if (events.length > 0) {\n          telemetry.record(events)\n        }\n      } catch (err) {\n        // Telemetry must never break a build.\n        console.warn('Failed to record Turbopack feature telemetry:', err)\n      }\n    }\n\n    const routes = entrypoints.routes\n    if (!routes) {\n      // This should never ever happen, there should be an error issue, or the bindings call should\n      // have thrown.\n      throw new Error(`Turbopack build failed`)\n    }\n\n    const hasPagesEntries = Array.from(routes.values()).some((route) => {\n      if (route.type === 'page' || route.type === 'page-api') {\n        return true\n      }\n      return false\n    })\n    // If there's no pages entries, then we are in app-dir-only mode\n    if (!hasPagesEntries) {\n      appDirOnly = true\n    }\n\n    const manifestLoader = new TurbopackManifestLoader({\n      buildId,\n      distDir,\n      encryptionKey,\n      dev: false,\n      sriEnabled,\n    })\n\n    const currentEntrypoints = await rawEntrypointsToEntrypoints(\n      entrypoints as TurbopackResult<RawEntrypoints>\n    )\n\n    const promises: Promise<void>[] = []\n\n    if (!appDirOnly) {\n      for (const [page, route] of currentEntrypoints.page) {\n        promises.push(\n          handleRouteType({\n            page,\n            route,\n            manifestLoader,\n          })\n        )\n      }\n    }\n\n    for (const [page, route] of currentEntrypoints.app) {\n      promises.push(\n        handleRouteType({\n          page,\n          route,\n          manifestLoader,\n        })\n      )\n    }\n\n    await Promise.all(promises)\n\n    await Promise.all([\n      // Only load pages router manifests if not app-only\n      ...(!appDirOnly\n        ? [\n            manifestLoader.loadBuildManifest('_app'),\n            manifestLoader.loadPagesManifest('_app'),\n            manifestLoader.loadFontManifest('_app'),\n            manifestLoader.loadPagesManifest('_document'),\n            manifestLoader.loadClientBuildManifest('_error'),\n            manifestLoader.loadBuildManifest('_error'),\n            manifestLoader.loadPagesManifest('_error'),\n            manifestLoader.loadFontManifest('_error'),\n          ]\n        : []),\n      entrypoints.instrumentation &&\n        manifestLoader.loadMiddlewareManifest(\n          'instrumentation',\n          'instrumentation'\n        ),\n      entrypoints.middleware &&\n        (await manifestLoader.loadMiddlewareManifest(\n          'middleware',\n          'middleware'\n        )),\n    ])\n\n    manifestLoader.writeManifests({\n      devRewrites: undefined,\n      productionRewrites: rewrites,\n      entrypoints: currentEntrypoints,\n    })\n\n    if (NextBuildContext.analyze) {\n      await project.writeAnalyzeData(appDirOnly)\n    }\n\n    // Shutdown may trigger final compilation events (e.g. persistence,\n    // compaction trace spans).  This is the last chance to capture them.\n    // After shutdown resolves we abort the signal to close the iterator\n    // and drain any remaining buffered events.\n    const shutdownPromise = project.shutdown().then(() => {\n      shutdownController.abort()\n      return compilationEvents.catch(() => {})\n    })\n\n    const time = process.hrtime(startTime)\n    return {\n      duration: time[0] + time[1] / 1e9,\n      buildTraceContext: undefined,\n      shutdownPromise,\n      warnings,\n    }\n  } catch (err) {\n    await project.shutdown()\n    shutdownController.abort()\n    await compilationEvents.catch(() => {})\n    throw err\n  }\n}\n\nlet shutdownPromise: Promise<void> | undefined\nexport async function workerMain(workerData: {\n  buildContext: typeof NextBuildContext\n  traceState: TraceState & { shouldSaveTraceEvents: boolean }\n}): Promise<\n  Omit<Awaited<ReturnType<typeof turbopackBuild>>, 'shutdownPromise'>\n> {\n  // setup new build context from the serialized data passed from the parent\n  Object.assign(NextBuildContext, workerData.buildContext)\n  initializeTraceState(workerData.traceState)\n\n  /// load the config because it's not serializable\n  const config = await loadConfig(\n    PHASE_PRODUCTION_BUILD,\n    NextBuildContext.dir!,\n    {\n      debugPrerender: NextBuildContext.debugPrerender,\n      reactProductionProfiling: NextBuildContext.reactProductionProfiling,\n      bundler: Bundler.Turbopack,\n    }\n  )\n  NextBuildContext.config = config\n  // Matches handling in build/index.ts\n  // https://github.com/vercel/next.js/blob/84f347fc86f4efc4ec9f13615c215e4b9fb6f8f0/packages/next/src/build/index.ts#L815-L818\n  // Ensures the `config.distDir` option is matched.\n  if (hasCustomExportOutput(NextBuildContext.config)) {\n    NextBuildContext.config.distDir = '.next'\n  }\n\n  // Clone the telemetry for worker\n  const telemetry = new Telemetry({\n    distDir: NextBuildContext.config.distDir,\n  })\n  setGlobal('telemetry', telemetry)\n  // Install bindings early so we can access synchronously later\n  await installBindings(config.experimental?.useWasmBinary)\n\n  try {\n    const {\n      shutdownPromise: resultShutdownPromise,\n      buildTraceContext,\n      duration,\n      warnings,\n    } = await turbopackBuild(telemetry)\n    shutdownPromise = resultShutdownPromise\n    return {\n      buildTraceContext,\n      duration,\n      warnings,\n    }\n  } finally {\n    // Always flush telemetry before worker exits (waits for async operations like setTimeout in debug mode)\n    await telemetry.flush()\n    // Save CPU profile before worker exits\n    await saveCpuProfile()\n  }\n}\n\nexport async function waitForShutdown(): Promise<{\n  debugTraceEvents?: ReturnType<typeof getTraceEvents>\n}> {\n  if (shutdownPromise) {\n    await shutdownPromise\n  }\n  // Collect trace events after shutdown completes so that all compilation\n  // events (e.g. persistence trace spans) have been processed.\n  return { debugTraceEvents: getTraceEvents() }\n}\n"],"names":["saveCpuProfile","path","validateTurboNextConfig","seedTurbopackCacheIfNeeded","NextBuildContext","createDefineEnv","getBindingsSync","installBindings","handleRouteType","rawEntrypointsToEntrypoints","TurbopackManifestLoader","promises","fs","PHASE_PRODUCTION_BUILD","loadConfig","hasCustomExportOutput","Telemetry","eventBuildFeatureUsageFromTurbopack","setGlobal","trace","initializeTraceState","getTraceEvents","isCI","backgroundLogCompilationEvents","getSupportedBrowsers","printBuildErrors","normalizePath","Bundler","turbopackBuild","telemetry","config","dir","configPhase","distDir","buildId","encryptionKey","previewProps","hasRewrites","rewrites","noMangling","currentNodeJsVersion","process","versions","node","startTime","hrtime","bindings","isWasm","Error","platform","arch","dev","supportedBrowsers","hasDeferredEntries","experimental","deferredEntries","length","persistentCaching","turbopackFileSystemCacheForBuild","rootPath","turbopack","root","outputFileTracingRoot","sharedProjectOptions","projectPath","relative","nextConfig","watch","enable","env","defineEnv","isTurbopack","clientRouterFilters","fetchCacheKeyPrefix","middlewareMatchers","undefined","browserslistQuery","join","writeRoutesHashesManifest","NEXT_TURBOPACK_WRITE_ROUTES_HASHES_MANIFEST","isPersistentCachingEnabled","nextVersion","__NEXT_VERSION","turbopackSeedCacheFromWorktree","projectDir","sharedTurboOptions","turbopackMemoryEviction","turbopackMemoryEvictionMode","dependencyTracking","isCi","isShortSession","skipCompaction","NEXT_USE_POST_BUILD","sriEnabled","Boolean","sri","algorithm","project","turbo","createProject","debugBuildPaths","onBeforeDeferredEntries","workerConfig","debugPrerender","reactProductionProfiling","bundler","Turbopack","buildEventsSpan","stop","shutdownController","AbortController","compilationEvents","parentSpan","signal","writeFile","mkdir","recursive","appDirOnly","entrypoints","writeAllEntrypointsToDisk","warnings","deferWarnings","isEnabled","NEXT_TELEMETRY_DEBUG","featureUsage","events","record","err","console","warn","routes","hasPagesEntries","Array","from","values","some","route","type","manifestLoader","currentEntrypoints","page","push","app","Promise","all","loadBuildManifest","loadPagesManifest","loadFontManifest","loadClientBuildManifest","instrumentation","loadMiddlewareManifest","middleware","writeManifests","devRewrites","productionRewrites","analyze","writeAnalyzeData","shutdownPromise","shutdown","then","abort","catch","time","duration","buildTraceContext","workerMain","workerData","Object","assign","buildContext","traceState","useWasmBinary","resultShutdownPromise","flush","waitForShutdown","debugTraceEvents"],"mappings":"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","ignoreList":[0]}