{"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 { 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 {\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(): Promise<{\n  duration: number\n  buildTraceContext: undefined\n  shutdownPromise: Promise<void>\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  const sharedTurboOptions = {\n    memoryLimit: config.experimental?.turbopackMemoryLimit,\n    dependencyTracking: persistentCaching || hasDeferredEntries,\n    isCi: isCI,\n    isShortSession: true,\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    printBuildErrors(entrypoints, dev)\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    }\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    } = await turbopackBuild()\n    shutdownPromise = resultShutdownPromise\n    return {\n      buildTraceContext,\n      duration,\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","NextBuildContext","createDefineEnv","getBindingsSync","installBindings","handleRouteType","rawEntrypointsToEntrypoints","TurbopackManifestLoader","promises","fs","PHASE_PRODUCTION_BUILD","loadConfig","hasCustomExportOutput","Telemetry","setGlobal","trace","initializeTraceState","getTraceEvents","isCI","backgroundLogCompilationEvents","getSupportedBrowsers","printBuildErrors","normalizePath","Bundler","turbopackBuild","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","sharedTurboOptions","memoryLimit","turbopackMemoryLimit","dependencyTracking","isCi","isShortSession","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","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","err","workerMain","workerData","Object","assign","buildContext","traceState","telemetry","useWasmBinary","resultShutdownPromise","flush","waitForShutdown","debugTraceEvents"],"mappings":"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","ignoreList":[0]}