next 16.0.2-canary.11 → 16.0.2-canary.12

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 (116) hide show
  1. package/dist/bin/next +1 -1
  2. package/dist/build/babel/loader/get-config.js +5 -0
  3. package/dist/build/babel/loader/get-config.js.map +1 -1
  4. package/dist/build/index.js +7 -4
  5. package/dist/build/index.js.map +1 -1
  6. package/dist/build/jest/jest.js +2 -1
  7. package/dist/build/jest/jest.js.map +1 -1
  8. package/dist/build/load-entrypoint.js +1 -2
  9. package/dist/build/load-entrypoint.js.map +1 -1
  10. package/dist/build/lockfile.d.ts +1 -1
  11. package/dist/build/lockfile.js +5 -9
  12. package/dist/build/lockfile.js.map +1 -1
  13. package/dist/build/next-config-ts/transpile-config.js +13 -3
  14. package/dist/build/next-config-ts/transpile-config.js.map +1 -1
  15. package/dist/build/swc/index.d.ts +4 -2
  16. package/dist/build/swc/index.js +54 -51
  17. package/dist/build/swc/index.js.map +1 -1
  18. package/dist/build/swc/install-bindings.d.ts +15 -0
  19. package/dist/build/swc/install-bindings.js +30 -0
  20. package/dist/build/swc/install-bindings.js.map +1 -0
  21. package/dist/build/turbopack-build/impl.js +9 -4
  22. package/dist/build/turbopack-build/impl.js.map +1 -1
  23. package/dist/build/webpack/loaders/lightningcss-loader/src/loader.js +7 -2
  24. package/dist/build/webpack/loaders/lightningcss-loader/src/loader.js.map +1 -1
  25. package/dist/build/webpack/loaders/lightningcss-loader/src/minify.js +2 -2
  26. package/dist/build/webpack/loaders/lightningcss-loader/src/minify.js.map +1 -1
  27. package/dist/build/webpack/loaders/next-app-loader/index.js +6 -0
  28. package/dist/build/webpack/loaders/next-app-loader/index.js.map +1 -1
  29. package/dist/build/webpack/loaders/next-barrel-loader.js +5 -0
  30. package/dist/build/webpack/loaders/next-barrel-loader.js.map +1 -1
  31. package/dist/build/webpack/loaders/next-metadata-image-loader.js +5 -0
  32. package/dist/build/webpack/loaders/next-metadata-image-loader.js.map +1 -1
  33. package/dist/build/webpack/loaders/next-metadata-route-loader.js +5 -0
  34. package/dist/build/webpack/loaders/next-metadata-route-loader.js.map +1 -1
  35. package/dist/build/webpack/loaders/next-swc-loader.js +10 -6
  36. package/dist/build/webpack/loaders/next-swc-loader.js.map +1 -1
  37. package/dist/build/webpack-build/impl.js +4 -1
  38. package/dist/build/webpack-build/impl.js.map +1 -1
  39. package/dist/build/webpack-config.js +2 -7
  40. package/dist/build/webpack-config.js.map +1 -1
  41. package/dist/cli/next-typegen.js +3 -0
  42. package/dist/cli/next-typegen.js.map +1 -1
  43. package/dist/client/app-bootstrap.js +1 -1
  44. package/dist/client/index.js +1 -1
  45. package/dist/compiled/next-server/pages-api-turbo.runtime.dev.js +1 -1
  46. package/dist/compiled/next-server/pages-api-turbo.runtime.dev.js.map +1 -1
  47. package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js +1 -1
  48. package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js.map +1 -1
  49. package/dist/compiled/next-server/pages-api.runtime.dev.js +1 -1
  50. package/dist/compiled/next-server/pages-api.runtime.dev.js.map +1 -1
  51. package/dist/compiled/next-server/pages-turbo.runtime.dev.js +1 -1
  52. package/dist/compiled/next-server/pages-turbo.runtime.dev.js.map +1 -1
  53. package/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
  54. package/dist/compiled/next-server/pages-turbo.runtime.prod.js.map +1 -1
  55. package/dist/compiled/next-server/pages.runtime.dev.js +1 -1
  56. package/dist/compiled/next-server/pages.runtime.dev.js.map +1 -1
  57. package/dist/esm/build/babel/loader/get-config.js +5 -0
  58. package/dist/esm/build/babel/loader/get-config.js.map +1 -1
  59. package/dist/esm/build/index.js +7 -4
  60. package/dist/esm/build/index.js.map +1 -1
  61. package/dist/esm/build/load-entrypoint.js +2 -3
  62. package/dist/esm/build/load-entrypoint.js.map +1 -1
  63. package/dist/esm/build/lockfile.js +5 -9
  64. package/dist/esm/build/lockfile.js.map +1 -1
  65. package/dist/esm/build/next-config-ts/transpile-config.js +13 -3
  66. package/dist/esm/build/next-config-ts/transpile-config.js.map +1 -1
  67. package/dist/esm/build/swc/index.js +52 -49
  68. package/dist/esm/build/swc/index.js.map +1 -1
  69. package/dist/esm/build/swc/install-bindings.js +20 -0
  70. package/dist/esm/build/swc/install-bindings.js.map +1 -0
  71. package/dist/esm/build/turbopack-build/impl.js +10 -5
  72. package/dist/esm/build/turbopack-build/impl.js.map +1 -1
  73. package/dist/esm/build/webpack/loaders/lightningcss-loader/src/loader.js +7 -2
  74. package/dist/esm/build/webpack/loaders/lightningcss-loader/src/loader.js.map +1 -1
  75. package/dist/esm/build/webpack/loaders/lightningcss-loader/src/minify.js +2 -2
  76. package/dist/esm/build/webpack/loaders/lightningcss-loader/src/minify.js.map +1 -1
  77. package/dist/esm/build/webpack/loaders/next-app-loader/index.js +6 -0
  78. package/dist/esm/build/webpack/loaders/next-app-loader/index.js.map +1 -1
  79. package/dist/esm/build/webpack/loaders/next-barrel-loader.js +5 -0
  80. package/dist/esm/build/webpack/loaders/next-barrel-loader.js.map +1 -1
  81. package/dist/esm/build/webpack/loaders/next-metadata-image-loader.js +5 -0
  82. package/dist/esm/build/webpack/loaders/next-metadata-image-loader.js.map +1 -1
  83. package/dist/esm/build/webpack/loaders/next-metadata-route-loader.js +5 -0
  84. package/dist/esm/build/webpack/loaders/next-metadata-route-loader.js.map +1 -1
  85. package/dist/esm/build/webpack/loaders/next-swc-loader.js +11 -7
  86. package/dist/esm/build/webpack/loaders/next-swc-loader.js.map +1 -1
  87. package/dist/esm/build/webpack-build/impl.js +4 -1
  88. package/dist/esm/build/webpack-build/impl.js.map +1 -1
  89. package/dist/esm/build/webpack-config.js +2 -7
  90. package/dist/esm/build/webpack-config.js.map +1 -1
  91. package/dist/esm/client/app-bootstrap.js +1 -1
  92. package/dist/esm/client/index.js +1 -1
  93. package/dist/esm/server/config.js +2 -2
  94. package/dist/esm/server/config.js.map +1 -1
  95. package/dist/esm/server/dev/hot-reloader-turbopack.js +3 -4
  96. package/dist/esm/server/dev/hot-reloader-turbopack.js.map +1 -1
  97. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  98. package/dist/esm/server/lib/app-info-log.js +1 -1
  99. package/dist/esm/server/lib/router-utils/setup-dev-bundler.js +3 -0
  100. package/dist/esm/server/lib/router-utils/setup-dev-bundler.js.map +1 -1
  101. package/dist/esm/server/lib/start-server.js +1 -1
  102. package/dist/esm/shared/lib/errors/canary-only-config-error.js +1 -1
  103. package/dist/server/config.js +2 -2
  104. package/dist/server/config.js.map +1 -1
  105. package/dist/server/dev/hot-reloader-turbopack.js +2 -3
  106. package/dist/server/dev/hot-reloader-turbopack.js.map +1 -1
  107. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  108. package/dist/server/lib/app-info-log.js +1 -1
  109. package/dist/server/lib/router-utils/setup-dev-bundler.js +3 -0
  110. package/dist/server/lib/router-utils/setup-dev-bundler.js.map +1 -1
  111. package/dist/server/lib/start-server.js +1 -1
  112. package/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  113. package/dist/telemetry/anonymous-meta.js +1 -1
  114. package/dist/telemetry/events/session-stopped.js +2 -2
  115. package/dist/telemetry/events/version.js +2 -2
  116. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/build/turbopack-build/impl.ts"],"sourcesContent":["import path from 'path'\nimport { validateTurboNextConfig } from '../../lib/turbopack-warning'\nimport { isFileSystemCacheEnabledForBuild } from '../../shared/lib/turbopack/utils'\nimport { NextBuildContext } from '../build-context'\nimport { createDefineEnv, loadBindings } from '../swc'\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 { setGlobal } from '../../trace'\nimport { isCI } from '../../server/ci-info'\nimport { backgroundLogCompilationEvents } from '../../shared/lib/turbopack/compilation-events'\nimport { getSupportedBrowsers, printBuildErrors } from '../utils'\nimport { normalizePath } from '../../lib/normalize-path'\nimport type { RawEntrypoints, TurbopackResult } from '../swc/types'\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 isDev: false,\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 = await loadBindings(config?.experimental?.useWasmBinary)\n const dev = false\n\n const supportedBrowsers = getSupportedBrowsers(dir, dev)\n\n const persistentCaching = isFileSystemCacheEnabledForBuild(config)\n const rootPath = config.turbopack?.root || config.outputFileTracingRoot || dir\n const project = await bindings.turbo.createProject(\n {\n rootPath: config.turbopack?.root || config.outputFileTracingRoot || dir,\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 currentNodeJsVersion,\n },\n {\n persistentCaching,\n memoryLimit: config.experimental?.turbopackMemoryLimit,\n dependencyTracking: persistentCaching,\n isCi: isCI,\n isShortSession: true,\n }\n )\n try {\n backgroundLogCompilationEvents(project)\n\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 const entrypoints = await project.writeAllEntrypointsToDisk(appDirOnly)\n printBuildErrors(entrypoints, dev)\n\n let 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 })\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 const shutdownPromise = project.shutdown()\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 throw err\n }\n}\n\nlet shutdownPromise: Promise<void> | undefined\nexport async function workerMain(workerData: {\n buildContext: typeof NextBuildContext\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\n /// load the config because it's not serializable\n NextBuildContext.config = await loadConfig(\n PHASE_PRODUCTION_BUILD,\n NextBuildContext.dir!,\n {\n debugPrerender: NextBuildContext.debugPrerender,\n reactProductionProfiling: NextBuildContext.reactProductionProfiling,\n }\n )\n\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\n const {\n shutdownPromise: resultShutdownPromise,\n buildTraceContext,\n duration,\n } = await turbopackBuild()\n shutdownPromise = resultShutdownPromise\n return {\n buildTraceContext,\n duration,\n }\n}\n\nexport async function waitForShutdown(): Promise<void> {\n if (shutdownPromise) {\n await shutdownPromise\n }\n}\n"],"names":["turbopackBuild","waitForShutdown","workerMain","config","validateTurboNextConfig","dir","NextBuildContext","isDev","distDir","buildId","encryptionKey","previewProps","hasRewrites","rewrites","noMangling","currentNodeJsVersion","process","versions","node","startTime","hrtime","bindings","loadBindings","experimental","useWasmBinary","dev","supportedBrowsers","getSupportedBrowsers","persistentCaching","isFileSystemCacheEnabledForBuild","rootPath","turbopack","root","outputFileTracingRoot","project","turbo","createProject","projectPath","normalizePath","path","relative","nextConfig","watch","enable","env","defineEnv","createDefineEnv","isTurbopack","clientRouterFilters","fetchCacheKeyPrefix","middlewareMatchers","undefined","browserslistQuery","join","memoryLimit","turbopackMemoryLimit","dependencyTracking","isCi","isCI","isShortSession","backgroundLogCompilationEvents","fs","writeFile","mkdir","recursive","appDirOnly","entrypoints","writeAllEntrypointsToDisk","printBuildErrors","routes","Error","hasPagesEntries","Array","from","values","some","route","type","manifestLoader","TurbopackManifestLoader","currentEntrypoints","rawEntrypointsToEntrypoints","promises","page","push","handleRouteType","app","Promise","all","loadBuildManifest","loadPagesManifest","loadFontManifest","loadClientBuildManifest","instrumentation","loadMiddlewareManifest","middleware","writeManifests","devRewrites","productionRewrites","analyze","writeAnalyzeData","shutdownPromise","shutdown","time","duration","buildTraceContext","err","workerData","Object","assign","buildContext","loadConfig","PHASE_PRODUCTION_BUILD","debugPrerender","reactProductionProfiling","hasCustomExportOutput","telemetry","Telemetry","setGlobal","resultShutdownPromise"],"mappings":"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","ignoreList":[0]}
1
+ {"version":3,"sources":["../../../src/build/turbopack-build/impl.ts"],"sourcesContent":["import path from 'path'\nimport { validateTurboNextConfig } from '../../lib/turbopack-warning'\nimport { isFileSystemCacheEnabledForBuild } from '../../shared/lib/turbopack/utils'\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 { setGlobal } from '../../trace'\nimport { isCI } from '../../server/ci-info'\nimport { backgroundLogCompilationEvents } from '../../shared/lib/turbopack/compilation-events'\nimport { getSupportedBrowsers, printBuildErrors } from '../utils'\nimport { normalizePath } from '../../lib/normalize-path'\nimport type { RawEntrypoints, TurbopackResult } from '../swc/types'\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 isDev: false,\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 const dev = false\n\n const supportedBrowsers = getSupportedBrowsers(dir, dev)\n\n const persistentCaching = isFileSystemCacheEnabledForBuild(config)\n const rootPath = config.turbopack?.root || config.outputFileTracingRoot || dir\n const project = await bindings.turbo.createProject(\n {\n rootPath: config.turbopack?.root || config.outputFileTracingRoot || dir,\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 currentNodeJsVersion,\n },\n {\n persistentCaching,\n memoryLimit: config.experimental?.turbopackMemoryLimit,\n dependencyTracking: persistentCaching,\n isCi: isCI,\n isShortSession: true,\n }\n )\n try {\n backgroundLogCompilationEvents(project)\n\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 const entrypoints = await project.writeAllEntrypointsToDisk(appDirOnly)\n printBuildErrors(entrypoints, dev)\n\n let 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 })\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 const shutdownPromise = project.shutdown()\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 throw err\n }\n}\n\nlet shutdownPromise: Promise<void> | undefined\nexport async function workerMain(workerData: {\n buildContext: typeof NextBuildContext\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\n /// load the config because it's not serializable\n const config = (NextBuildContext.config = await loadConfig(\n PHASE_PRODUCTION_BUILD,\n NextBuildContext.dir!,\n {\n debugPrerender: NextBuildContext.debugPrerender,\n reactProductionProfiling: NextBuildContext.reactProductionProfiling,\n }\n ))\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 const {\n shutdownPromise: resultShutdownPromise,\n buildTraceContext,\n duration,\n } = await turbopackBuild()\n shutdownPromise = resultShutdownPromise\n return {\n buildTraceContext,\n duration,\n }\n}\n\nexport async function waitForShutdown(): Promise<void> {\n if (shutdownPromise) {\n await shutdownPromise\n }\n}\n"],"names":["turbopackBuild","waitForShutdown","workerMain","config","validateTurboNextConfig","dir","NextBuildContext","isDev","distDir","buildId","encryptionKey","previewProps","hasRewrites","rewrites","noMangling","currentNodeJsVersion","process","versions","node","startTime","hrtime","bindings","getBindingsSync","dev","supportedBrowsers","getSupportedBrowsers","persistentCaching","isFileSystemCacheEnabledForBuild","rootPath","turbopack","root","outputFileTracingRoot","project","turbo","createProject","projectPath","normalizePath","path","relative","nextConfig","watch","enable","env","defineEnv","createDefineEnv","isTurbopack","clientRouterFilters","fetchCacheKeyPrefix","experimental","middlewareMatchers","undefined","browserslistQuery","join","memoryLimit","turbopackMemoryLimit","dependencyTracking","isCi","isCI","isShortSession","backgroundLogCompilationEvents","fs","writeFile","mkdir","recursive","appDirOnly","entrypoints","writeAllEntrypointsToDisk","printBuildErrors","routes","Error","hasPagesEntries","Array","from","values","some","route","type","manifestLoader","TurbopackManifestLoader","currentEntrypoints","rawEntrypointsToEntrypoints","promises","page","push","handleRouteType","app","Promise","all","loadBuildManifest","loadPagesManifest","loadFontManifest","loadClientBuildManifest","instrumentation","loadMiddlewareManifest","middleware","writeManifests","devRewrites","productionRewrites","analyze","writeAnalyzeData","shutdownPromise","shutdown","time","duration","buildTraceContext","err","workerData","Object","assign","buildContext","loadConfig","PHASE_PRODUCTION_BUILD","debugPrerender","reactProductionProfiling","hasCustomExportOutput","telemetry","Telemetry","setGlobal","installBindings","useWasmBinary","resultShutdownPromise"],"mappings":"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","ignoreList":[0]}
@@ -25,6 +25,8 @@ const _codegen = require("./codegen");
25
25
  const _utils1 = require("../../css-loader/src/utils");
26
26
  const _stringifyrequest = require("../../../stringify-request");
27
27
  const _interface = require("./interface");
28
+ const _swc = require("../../../../../build/swc");
29
+ const _installbindings = require("../../../../../build/swc/install-bindings");
28
30
  const encoder = new TextEncoder();
29
31
  function createUrlAndImportVisitor(visitorOptions, apis, imports, replacements, replacedUrls, replacedImportUrls) {
30
32
  const importUrlToNameMap = new Map();
@@ -222,6 +224,10 @@ async function LightningCssLoader(source, prevMap) {
222
224
  var _options_modules;
223
225
  const done = this.async();
224
226
  const options = this.getOptions();
227
+ // Install bindings early so they are definitely available to the loader.
228
+ // When run by webpack in next this is already done with correct configuration so this is a no-op.
229
+ // In turbopack loaders are run in a subprocess so it may or may not be done.
230
+ await (0, _installbindings.installBindings)();
225
231
  const { implementation, targets: userTargets, ...opts } = options;
226
232
  options.modules ??= {};
227
233
  if (implementation && typeof implementation.transformCss !== 'function') {
@@ -255,8 +261,7 @@ async function LightningCssLoader(source, prevMap) {
255
261
  url: (0, _stringifyrequest.stringifyRequest)(this, require.resolve('../../css-loader/src/runtime/api'))
256
262
  });
257
263
  }
258
- const { loadBindings } = require('../../../../../build/swc');
259
- const transform = (implementation == null ? void 0 : implementation.transformCss) ?? (await loadBindings()).css.lightning.transform;
264
+ const transform = (implementation == null ? void 0 : implementation.transformCss) ?? (0, _swc.getBindingsSync)().css.lightning.transform;
260
265
  const replacedUrls = new Map();
261
266
  const icssReplacedUrls = new Map();
262
267
  const replacedImportUrls = new Map();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/build/webpack/loaders/lightningcss-loader/src/loader.ts"],"sourcesContent":["import type { LoaderContext } from 'webpack'\nimport { getTargets } from './utils'\nimport {\n getImportCode,\n type ApiParam,\n type ApiReplacement,\n type CssExport,\n type CssImport,\n getModuleCode,\n getExportCode,\n} from './codegen'\nimport {\n getFilter,\n getPreRequester,\n isDataUrl,\n isUrlRequestable,\n requestify,\n resolveRequests,\n} from '../../css-loader/src/utils'\nimport { stringifyRequest } from '../../../stringify-request'\nimport { ECacheKey } from './interface'\n\nconst encoder = new TextEncoder()\n\nfunction createUrlAndImportVisitor(\n visitorOptions: any,\n apis: ApiParam[],\n imports: CssImport[],\n replacements: ApiReplacement[],\n replacedUrls: Map<number, string>,\n replacedImportUrls: Map<number, string>\n) {\n const importUrlToNameMap = new Map<string, string>()\n\n let hasUrlImportHelper = false\n const urlToNameMap = new Map()\n const urlToReplacementMap = new Map()\n let urlIndex = -1\n let importUrlIndex = -1\n\n function handleUrl(u: { url: string; loc: unknown }): unknown {\n let url = u.url\n const needKeep = visitorOptions.urlFilter(url)\n\n if (!needKeep) {\n return u\n }\n\n if (isDataUrl(url)) {\n return u\n }\n\n urlIndex++\n\n replacedUrls.set(urlIndex, url)\n url = `__NEXT_LIGHTNINGCSS_LOADER_URL_REPLACE_${urlIndex}__`\n\n const [, query, hashOrQuery] = url.split(/(\\?)?#/, 3)\n\n const queryParts = url.split('!')\n let prefix: string | undefined\n\n if (queryParts.length > 1) {\n url = queryParts.pop()!\n prefix = queryParts.join('!')\n }\n\n let hash = query ? '?' : ''\n hash += hashOrQuery ? `#${hashOrQuery}` : ''\n\n if (!hasUrlImportHelper) {\n imports.push({\n type: 'get_url_import',\n importName: '___CSS_LOADER_GET_URL_IMPORT___',\n url: JSON.stringify(\n require.resolve('../../css-loader/src/runtime/getUrl.js')\n ),\n index: -1,\n })\n\n hasUrlImportHelper = true\n }\n\n const newUrl = prefix ? `${prefix}!${url}` : url\n let importName = urlToNameMap.get(newUrl)\n\n if (!importName) {\n importName = `___CSS_LOADER_URL_IMPORT_${urlToNameMap.size}___`\n urlToNameMap.set(newUrl, importName)\n\n imports.push({\n type: 'url',\n importName,\n url: JSON.stringify(newUrl),\n index: urlIndex,\n })\n }\n // This should be true for string-urls in image-set\n const needQuotes = false\n\n const replacementKey = JSON.stringify({ newUrl, hash, needQuotes })\n let replacementName = urlToReplacementMap.get(replacementKey)\n\n if (!replacementName) {\n replacementName = `___CSS_LOADER_URL_REPLACEMENT_${urlToReplacementMap.size}___`\n urlToReplacementMap.set(replacementKey, replacementName)\n\n replacements.push({\n replacementName,\n importName,\n hash,\n needQuotes,\n })\n }\n\n return {\n loc: u.loc,\n url: replacementName,\n }\n }\n\n return {\n Rule: {\n import(node: any) {\n if (visitorOptions.importFilter) {\n const needKeep = visitorOptions.importFilter(\n node.value.url,\n node.value.media\n )\n\n if (!needKeep) {\n return node\n }\n }\n let url = node.value.url\n\n importUrlIndex++\n\n replacedImportUrls.set(importUrlIndex, url)\n url = `__NEXT_LIGHTNINGCSS_LOADER_IMPORT_URL_REPLACE_${importUrlIndex}__`\n\n // TODO: Use identical logic as valueParser.stringify()\n const media = node.value.media.mediaQueries.length\n ? JSON.stringify(node.value.media.mediaQueries)\n : undefined\n const isRequestable = isUrlRequestable(url)\n let prefix: string | undefined\n if (isRequestable) {\n const queryParts = url.split('!')\n if (queryParts.length > 1) {\n url = queryParts.pop()!\n prefix = queryParts.join('!')\n }\n }\n if (!isRequestable) {\n apis.push({ url, media })\n // Bug of lightningcss\n return { type: 'ignored', value: '' }\n }\n const newUrl = prefix ? `${prefix}!${url}` : url\n let importName = importUrlToNameMap.get(newUrl)\n if (!importName) {\n importName = `___CSS_LOADER_AT_RULE_IMPORT_${importUrlToNameMap.size}___`\n importUrlToNameMap.set(newUrl, importName)\n\n const importUrl = visitorOptions.urlHandler(newUrl)\n imports.push({\n type: 'rule_import',\n importName,\n url: importUrl,\n })\n }\n apis.push({ importName, media })\n // Bug of lightningcss\n return { type: 'ignored', value: '' }\n },\n },\n Url(node: any) {\n return handleUrl(node)\n },\n }\n}\n\nfunction createIcssVisitor({\n apis,\n imports,\n replacements,\n replacedUrls,\n urlHandler,\n}: {\n apis: ApiParam[]\n imports: CssImport[]\n replacements: ApiReplacement[]\n replacedUrls: Map<number, string>\n urlHandler: (url: any) => string\n}) {\n let index = -1\n let replacementIndex = -1\n\n return {\n Declaration: {\n composes(node: any) {\n if (node.property === 'unparsed') {\n return\n }\n\n const specifier = node.value.from\n\n if (specifier?.type !== 'file') {\n return\n }\n\n let url = specifier.value\n if (!url) {\n return\n }\n\n index++\n\n replacedUrls.set(index, url)\n url = `__NEXT_LIGHTNINGCSS_LOADER_ICSS_URL_REPLACE_${index}__`\n\n const importName = `___CSS_LOADER_ICSS_IMPORT_${imports.length}___`\n imports.push({\n type: 'icss_import',\n importName,\n icss: true,\n url: urlHandler(url),\n index,\n })\n\n apis.push({ importName, dedupe: true, index })\n\n const newNames: string[] = []\n\n for (const localName of node.value.names) {\n replacementIndex++\n const replacementName = `___CSS_LOADER_ICSS_IMPORT_${index}_REPLACEMENT_${replacementIndex}___`\n\n replacements.push({\n replacementName,\n importName,\n localName,\n })\n newNames.push(replacementName)\n }\n\n return {\n property: 'composes',\n value: {\n loc: node.value.loc,\n names: newNames,\n from: specifier,\n },\n }\n },\n },\n }\n}\n\nconst LOADER_NAME = `lightningcss-loader`\nexport async function LightningCssLoader(\n this: LoaderContext<any>,\n source: string,\n prevMap?: Record<string, any>\n): Promise<void> {\n const done = this.async()\n const options = this.getOptions()\n const { implementation, targets: userTargets, ...opts } = options\n\n options.modules ??= {}\n\n if (implementation && typeof implementation.transformCss !== 'function') {\n done(\n new TypeError(\n `[${LOADER_NAME}]: options.implementation.transformCss must be an 'lightningcss' transform function. Received ${typeof implementation.transformCss}`\n )\n )\n return\n }\n\n if (options.postcss) {\n const { postcssWithPlugins } = await options.postcss()\n\n if (postcssWithPlugins?.plugins?.length > 0) {\n throw new Error(\n `[${LOADER_NAME}]: experimental.useLightningcss does not work with postcss plugins. Please remove 'useLightningcss: true' from your configuration.`\n )\n }\n }\n\n const exports: CssExport[] = []\n const imports: CssImport[] = []\n const icssImports: CssImport[] = []\n const apis: ApiParam[] = []\n const replacements: ApiReplacement[] = []\n\n if (options.modules?.exportOnlyLocals !== true) {\n imports.unshift({\n type: 'api_import',\n importName: '___CSS_LOADER_API_IMPORT___',\n url: stringifyRequest(\n this,\n require.resolve('../../css-loader/src/runtime/api')\n ),\n })\n }\n const { loadBindings } =\n require('../../../../../build/swc') as typeof import('../../../../../build/swc')\n\n const transform =\n implementation?.transformCss ??\n (await loadBindings()).css.lightning.transform\n\n const replacedUrls = new Map<number, string>()\n const icssReplacedUrls = new Map<number, string>()\n const replacedImportUrls = new Map<number, string>()\n\n const urlImportVisitor = createUrlAndImportVisitor(\n {\n urlHandler: (url: any) =>\n stringifyRequest(\n this,\n getPreRequester(this)(options.importLoaders ?? 0) + url\n ),\n urlFilter: getFilter(options.url, this.resourcePath),\n importFilter: getFilter(options.import, this.resourcePath),\n\n context: this.context,\n },\n apis,\n imports,\n replacements,\n replacedUrls,\n replacedImportUrls\n )\n\n const icssVisitor = createIcssVisitor({\n apis,\n imports: icssImports,\n replacements,\n replacedUrls: icssReplacedUrls,\n urlHandler: (url: string) =>\n stringifyRequest(\n this,\n getPreRequester(this)(options.importLoaders) + url\n ),\n })\n\n // This works by returned visitors are not conflicting.\n // naive workaround for composeVisitors, as we do not directly depends on lightningcss's npm pkg\n // but next-swc provides bindings\n const visitor = {\n ...urlImportVisitor,\n ...icssVisitor,\n }\n\n try {\n const {\n code,\n map,\n exports: moduleExports,\n } = transform({\n ...opts,\n visitor,\n cssModules: options.modules\n ? {\n pattern: process.env.__NEXT_TEST_MODE\n ? '[name]__[local]'\n : '[name]__[hash]__[local]',\n }\n : undefined,\n filename: this.resourcePath,\n code: encoder.encode(source),\n sourceMap: this.sourceMap,\n targets: getTargets({ targets: userTargets, key: ECacheKey.loader }),\n inputSourceMap:\n this.sourceMap && prevMap ? JSON.stringify(prevMap) : undefined,\n include: 1, // Features.Nesting\n })\n let cssCodeAsString = code.toString()\n\n if (moduleExports) {\n for (const name in moduleExports) {\n if (Object.prototype.hasOwnProperty.call(moduleExports, name)) {\n const v = moduleExports[name]\n let value = v.name\n for (const compose of v.composes) {\n value += ` ${compose.name}`\n }\n\n exports.push({\n name,\n value,\n })\n }\n }\n }\n\n if (replacedUrls.size !== 0) {\n const urlResolver = this.getResolve({\n conditionNames: ['asset'],\n mainFields: ['asset'],\n mainFiles: [],\n extensions: [],\n })\n\n for (const [index, url] of replacedUrls.entries()) {\n const [pathname, ,] = url.split(/(\\?)?#/, 3)\n\n const request = requestify(pathname, this.rootContext)\n const resolvedUrl = await resolveRequests(urlResolver, this.context, [\n ...new Set([request, url]),\n ])\n\n for (const importItem of imports) {\n importItem.url = importItem.url.replace(\n `__NEXT_LIGHTNINGCSS_LOADER_URL_REPLACE_${index}__`,\n resolvedUrl ?? url\n )\n }\n }\n }\n\n if (replacedImportUrls.size !== 0) {\n const importResolver = this.getResolve({\n conditionNames: ['style'],\n extensions: ['.css'],\n mainFields: ['css', 'style', 'main', '...'],\n mainFiles: ['index', '...'],\n restrictions: [/\\.css$/i],\n })\n\n for (const [index, url] of replacedImportUrls.entries()) {\n const [pathname, ,] = url.split(/(\\?)?#/, 3)\n\n const request = requestify(pathname, this.rootContext)\n const resolvedUrl = await resolveRequests(\n importResolver,\n this.context,\n [...new Set([request, url])]\n )\n\n for (const importItem of imports) {\n importItem.url = importItem.url.replace(\n `__NEXT_LIGHTNINGCSS_LOADER_IMPORT_URL_REPLACE_${index}__`,\n resolvedUrl ?? url\n )\n }\n }\n }\n if (icssReplacedUrls.size !== 0) {\n const icssResolver = this.getResolve({\n conditionNames: ['style'],\n extensions: [],\n mainFields: ['css', 'style', 'main', '...'],\n mainFiles: ['index', '...'],\n })\n\n for (const [index, url] of icssReplacedUrls.entries()) {\n const [pathname, ,] = url.split(/(\\?)?#/, 3)\n\n const request = requestify(pathname, this.rootContext)\n const resolvedUrl = await resolveRequests(icssResolver, this.context, [\n ...new Set([url, request]),\n ])\n\n for (const importItem of icssImports) {\n importItem.url = importItem.url.replace(\n `__NEXT_LIGHTNINGCSS_LOADER_ICSS_URL_REPLACE_${index}__`,\n resolvedUrl ?? url\n )\n }\n }\n }\n\n imports.push(...icssImports)\n\n const importCode = getImportCode(imports, options)\n const moduleCode = getModuleCode(\n { css: cssCodeAsString, map },\n apis,\n replacements,\n options,\n this\n )\n const exportCode = getExportCode(exports, replacements, options)\n\n const esCode = `${importCode}${moduleCode}${exportCode}`\n\n done(null, esCode, map && JSON.parse(map.toString()))\n } catch (error: unknown) {\n console.error('lightningcss-loader error', error)\n done(error as Error)\n }\n}\n\nexport const raw = true\n"],"names":["LightningCssLoader","raw","encoder","TextEncoder","createUrlAndImportVisitor","visitorOptions","apis","imports","replacements","replacedUrls","replacedImportUrls","importUrlToNameMap","Map","hasUrlImportHelper","urlToNameMap","urlToReplacementMap","urlIndex","importUrlIndex","handleUrl","u","url","needKeep","urlFilter","isDataUrl","set","query","hashOrQuery","split","queryParts","prefix","length","pop","join","hash","push","type","importName","JSON","stringify","require","resolve","index","newUrl","get","size","needQuotes","replacementKey","replacementName","loc","Rule","import","node","importFilter","value","media","mediaQueries","undefined","isRequestable","isUrlRequestable","importUrl","urlHandler","Url","createIcssVisitor","replacementIndex","Declaration","composes","property","specifier","from","icss","dedupe","newNames","localName","names","LOADER_NAME","source","prevMap","options","done","async","getOptions","implementation","targets","userTargets","opts","modules","transformCss","TypeError","postcss","postcssWithPlugins","plugins","Error","exports","icssImports","exportOnlyLocals","unshift","stringifyRequest","loadBindings","transform","css","lightning","icssReplacedUrls","urlImportVisitor","getPreRequester","importLoaders","getFilter","resourcePath","context","icssVisitor","visitor","code","map","moduleExports","cssModules","pattern","process","env","__NEXT_TEST_MODE","filename","encode","sourceMap","getTargets","key","ECacheKey","loader","inputSourceMap","include","cssCodeAsString","toString","name","Object","prototype","hasOwnProperty","call","v","compose","urlResolver","getResolve","conditionNames","mainFields","mainFiles","extensions","entries","pathname","request","requestify","rootContext","resolvedUrl","resolveRequests","Set","importItem","replace","importResolver","restrictions","icssResolver","importCode","getImportCode","moduleCode","getModuleCode","exportCode","getExportCode","esCode","parse","error","console"],"mappings":"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","ignoreList":[0]}
1
+ {"version":3,"sources":["../../../../../../src/build/webpack/loaders/lightningcss-loader/src/loader.ts"],"sourcesContent":["import type { LoaderContext } from 'webpack'\nimport { getTargets } from './utils'\nimport {\n getImportCode,\n type ApiParam,\n type ApiReplacement,\n type CssExport,\n type CssImport,\n getModuleCode,\n getExportCode,\n} from './codegen'\nimport {\n getFilter,\n getPreRequester,\n isDataUrl,\n isUrlRequestable,\n requestify,\n resolveRequests,\n} from '../../css-loader/src/utils'\nimport { stringifyRequest } from '../../../stringify-request'\nimport { ECacheKey } from './interface'\nimport { getBindingsSync } from '../../../../../build/swc'\nimport { installBindings } from '../../../../../build/swc/install-bindings'\n\nconst encoder = new TextEncoder()\n\nfunction createUrlAndImportVisitor(\n visitorOptions: any,\n apis: ApiParam[],\n imports: CssImport[],\n replacements: ApiReplacement[],\n replacedUrls: Map<number, string>,\n replacedImportUrls: Map<number, string>\n) {\n const importUrlToNameMap = new Map<string, string>()\n\n let hasUrlImportHelper = false\n const urlToNameMap = new Map()\n const urlToReplacementMap = new Map()\n let urlIndex = -1\n let importUrlIndex = -1\n\n function handleUrl(u: { url: string; loc: unknown }): unknown {\n let url = u.url\n const needKeep = visitorOptions.urlFilter(url)\n\n if (!needKeep) {\n return u\n }\n\n if (isDataUrl(url)) {\n return u\n }\n\n urlIndex++\n\n replacedUrls.set(urlIndex, url)\n url = `__NEXT_LIGHTNINGCSS_LOADER_URL_REPLACE_${urlIndex}__`\n\n const [, query, hashOrQuery] = url.split(/(\\?)?#/, 3)\n\n const queryParts = url.split('!')\n let prefix: string | undefined\n\n if (queryParts.length > 1) {\n url = queryParts.pop()!\n prefix = queryParts.join('!')\n }\n\n let hash = query ? '?' : ''\n hash += hashOrQuery ? `#${hashOrQuery}` : ''\n\n if (!hasUrlImportHelper) {\n imports.push({\n type: 'get_url_import',\n importName: '___CSS_LOADER_GET_URL_IMPORT___',\n url: JSON.stringify(\n require.resolve('../../css-loader/src/runtime/getUrl.js')\n ),\n index: -1,\n })\n\n hasUrlImportHelper = true\n }\n\n const newUrl = prefix ? `${prefix}!${url}` : url\n let importName = urlToNameMap.get(newUrl)\n\n if (!importName) {\n importName = `___CSS_LOADER_URL_IMPORT_${urlToNameMap.size}___`\n urlToNameMap.set(newUrl, importName)\n\n imports.push({\n type: 'url',\n importName,\n url: JSON.stringify(newUrl),\n index: urlIndex,\n })\n }\n // This should be true for string-urls in image-set\n const needQuotes = false\n\n const replacementKey = JSON.stringify({ newUrl, hash, needQuotes })\n let replacementName = urlToReplacementMap.get(replacementKey)\n\n if (!replacementName) {\n replacementName = `___CSS_LOADER_URL_REPLACEMENT_${urlToReplacementMap.size}___`\n urlToReplacementMap.set(replacementKey, replacementName)\n\n replacements.push({\n replacementName,\n importName,\n hash,\n needQuotes,\n })\n }\n\n return {\n loc: u.loc,\n url: replacementName,\n }\n }\n\n return {\n Rule: {\n import(node: any) {\n if (visitorOptions.importFilter) {\n const needKeep = visitorOptions.importFilter(\n node.value.url,\n node.value.media\n )\n\n if (!needKeep) {\n return node\n }\n }\n let url = node.value.url\n\n importUrlIndex++\n\n replacedImportUrls.set(importUrlIndex, url)\n url = `__NEXT_LIGHTNINGCSS_LOADER_IMPORT_URL_REPLACE_${importUrlIndex}__`\n\n // TODO: Use identical logic as valueParser.stringify()\n const media = node.value.media.mediaQueries.length\n ? JSON.stringify(node.value.media.mediaQueries)\n : undefined\n const isRequestable = isUrlRequestable(url)\n let prefix: string | undefined\n if (isRequestable) {\n const queryParts = url.split('!')\n if (queryParts.length > 1) {\n url = queryParts.pop()!\n prefix = queryParts.join('!')\n }\n }\n if (!isRequestable) {\n apis.push({ url, media })\n // Bug of lightningcss\n return { type: 'ignored', value: '' }\n }\n const newUrl = prefix ? `${prefix}!${url}` : url\n let importName = importUrlToNameMap.get(newUrl)\n if (!importName) {\n importName = `___CSS_LOADER_AT_RULE_IMPORT_${importUrlToNameMap.size}___`\n importUrlToNameMap.set(newUrl, importName)\n\n const importUrl = visitorOptions.urlHandler(newUrl)\n imports.push({\n type: 'rule_import',\n importName,\n url: importUrl,\n })\n }\n apis.push({ importName, media })\n // Bug of lightningcss\n return { type: 'ignored', value: '' }\n },\n },\n Url(node: any) {\n return handleUrl(node)\n },\n }\n}\n\nfunction createIcssVisitor({\n apis,\n imports,\n replacements,\n replacedUrls,\n urlHandler,\n}: {\n apis: ApiParam[]\n imports: CssImport[]\n replacements: ApiReplacement[]\n replacedUrls: Map<number, string>\n urlHandler: (url: any) => string\n}) {\n let index = -1\n let replacementIndex = -1\n\n return {\n Declaration: {\n composes(node: any) {\n if (node.property === 'unparsed') {\n return\n }\n\n const specifier = node.value.from\n\n if (specifier?.type !== 'file') {\n return\n }\n\n let url = specifier.value\n if (!url) {\n return\n }\n\n index++\n\n replacedUrls.set(index, url)\n url = `__NEXT_LIGHTNINGCSS_LOADER_ICSS_URL_REPLACE_${index}__`\n\n const importName = `___CSS_LOADER_ICSS_IMPORT_${imports.length}___`\n imports.push({\n type: 'icss_import',\n importName,\n icss: true,\n url: urlHandler(url),\n index,\n })\n\n apis.push({ importName, dedupe: true, index })\n\n const newNames: string[] = []\n\n for (const localName of node.value.names) {\n replacementIndex++\n const replacementName = `___CSS_LOADER_ICSS_IMPORT_${index}_REPLACEMENT_${replacementIndex}___`\n\n replacements.push({\n replacementName,\n importName,\n localName,\n })\n newNames.push(replacementName)\n }\n\n return {\n property: 'composes',\n value: {\n loc: node.value.loc,\n names: newNames,\n from: specifier,\n },\n }\n },\n },\n }\n}\n\nconst LOADER_NAME = `lightningcss-loader`\nexport async function LightningCssLoader(\n this: LoaderContext<any>,\n source: string,\n prevMap?: Record<string, any>\n): Promise<void> {\n const done = this.async()\n const options = this.getOptions()\n // Install bindings early so they are definitely available to the loader.\n // When run by webpack in next this is already done with correct configuration so this is a no-op.\n // In turbopack loaders are run in a subprocess so it may or may not be done.\n await installBindings()\n const { implementation, targets: userTargets, ...opts } = options\n\n options.modules ??= {}\n\n if (implementation && typeof implementation.transformCss !== 'function') {\n done(\n new TypeError(\n `[${LOADER_NAME}]: options.implementation.transformCss must be an 'lightningcss' transform function. Received ${typeof implementation.transformCss}`\n )\n )\n return\n }\n\n if (options.postcss) {\n const { postcssWithPlugins } = await options.postcss()\n\n if (postcssWithPlugins?.plugins?.length > 0) {\n throw new Error(\n `[${LOADER_NAME}]: experimental.useLightningcss does not work with postcss plugins. Please remove 'useLightningcss: true' from your configuration.`\n )\n }\n }\n\n const exports: CssExport[] = []\n const imports: CssImport[] = []\n const icssImports: CssImport[] = []\n const apis: ApiParam[] = []\n const replacements: ApiReplacement[] = []\n\n if (options.modules?.exportOnlyLocals !== true) {\n imports.unshift({\n type: 'api_import',\n importName: '___CSS_LOADER_API_IMPORT___',\n url: stringifyRequest(\n this,\n require.resolve('../../css-loader/src/runtime/api')\n ),\n })\n }\n const transform =\n implementation?.transformCss ?? getBindingsSync().css.lightning.transform\n\n const replacedUrls = new Map<number, string>()\n const icssReplacedUrls = new Map<number, string>()\n const replacedImportUrls = new Map<number, string>()\n\n const urlImportVisitor = createUrlAndImportVisitor(\n {\n urlHandler: (url: any) =>\n stringifyRequest(\n this,\n getPreRequester(this)(options.importLoaders ?? 0) + url\n ),\n urlFilter: getFilter(options.url, this.resourcePath),\n importFilter: getFilter(options.import, this.resourcePath),\n\n context: this.context,\n },\n apis,\n imports,\n replacements,\n replacedUrls,\n replacedImportUrls\n )\n\n const icssVisitor = createIcssVisitor({\n apis,\n imports: icssImports,\n replacements,\n replacedUrls: icssReplacedUrls,\n urlHandler: (url: string) =>\n stringifyRequest(\n this,\n getPreRequester(this)(options.importLoaders) + url\n ),\n })\n\n // This works by returned visitors are not conflicting.\n // naive workaround for composeVisitors, as we do not directly depends on lightningcss's npm pkg\n // but next-swc provides bindings\n const visitor = {\n ...urlImportVisitor,\n ...icssVisitor,\n }\n\n try {\n const {\n code,\n map,\n exports: moduleExports,\n } = transform({\n ...opts,\n visitor,\n cssModules: options.modules\n ? {\n pattern: process.env.__NEXT_TEST_MODE\n ? '[name]__[local]'\n : '[name]__[hash]__[local]',\n }\n : undefined,\n filename: this.resourcePath,\n code: encoder.encode(source),\n sourceMap: this.sourceMap,\n targets: getTargets({ targets: userTargets, key: ECacheKey.loader }),\n inputSourceMap:\n this.sourceMap && prevMap ? JSON.stringify(prevMap) : undefined,\n include: 1, // Features.Nesting\n })\n let cssCodeAsString = code.toString()\n\n if (moduleExports) {\n for (const name in moduleExports) {\n if (Object.prototype.hasOwnProperty.call(moduleExports, name)) {\n const v = moduleExports[name]\n let value = v.name\n for (const compose of v.composes) {\n value += ` ${compose.name}`\n }\n\n exports.push({\n name,\n value,\n })\n }\n }\n }\n\n if (replacedUrls.size !== 0) {\n const urlResolver = this.getResolve({\n conditionNames: ['asset'],\n mainFields: ['asset'],\n mainFiles: [],\n extensions: [],\n })\n\n for (const [index, url] of replacedUrls.entries()) {\n const [pathname, ,] = url.split(/(\\?)?#/, 3)\n\n const request = requestify(pathname, this.rootContext)\n const resolvedUrl = await resolveRequests(urlResolver, this.context, [\n ...new Set([request, url]),\n ])\n\n for (const importItem of imports) {\n importItem.url = importItem.url.replace(\n `__NEXT_LIGHTNINGCSS_LOADER_URL_REPLACE_${index}__`,\n resolvedUrl ?? url\n )\n }\n }\n }\n\n if (replacedImportUrls.size !== 0) {\n const importResolver = this.getResolve({\n conditionNames: ['style'],\n extensions: ['.css'],\n mainFields: ['css', 'style', 'main', '...'],\n mainFiles: ['index', '...'],\n restrictions: [/\\.css$/i],\n })\n\n for (const [index, url] of replacedImportUrls.entries()) {\n const [pathname, ,] = url.split(/(\\?)?#/, 3)\n\n const request = requestify(pathname, this.rootContext)\n const resolvedUrl = await resolveRequests(\n importResolver,\n this.context,\n [...new Set([request, url])]\n )\n\n for (const importItem of imports) {\n importItem.url = importItem.url.replace(\n `__NEXT_LIGHTNINGCSS_LOADER_IMPORT_URL_REPLACE_${index}__`,\n resolvedUrl ?? url\n )\n }\n }\n }\n if (icssReplacedUrls.size !== 0) {\n const icssResolver = this.getResolve({\n conditionNames: ['style'],\n extensions: [],\n mainFields: ['css', 'style', 'main', '...'],\n mainFiles: ['index', '...'],\n })\n\n for (const [index, url] of icssReplacedUrls.entries()) {\n const [pathname, ,] = url.split(/(\\?)?#/, 3)\n\n const request = requestify(pathname, this.rootContext)\n const resolvedUrl = await resolveRequests(icssResolver, this.context, [\n ...new Set([url, request]),\n ])\n\n for (const importItem of icssImports) {\n importItem.url = importItem.url.replace(\n `__NEXT_LIGHTNINGCSS_LOADER_ICSS_URL_REPLACE_${index}__`,\n resolvedUrl ?? url\n )\n }\n }\n }\n\n imports.push(...icssImports)\n\n const importCode = getImportCode(imports, options)\n const moduleCode = getModuleCode(\n { css: cssCodeAsString, map },\n apis,\n replacements,\n options,\n this\n )\n const exportCode = getExportCode(exports, replacements, options)\n\n const esCode = `${importCode}${moduleCode}${exportCode}`\n\n done(null, esCode, map && JSON.parse(map.toString()))\n } catch (error: unknown) {\n console.error('lightningcss-loader error', error)\n done(error as Error)\n }\n}\n\nexport const raw = true\n"],"names":["LightningCssLoader","raw","encoder","TextEncoder","createUrlAndImportVisitor","visitorOptions","apis","imports","replacements","replacedUrls","replacedImportUrls","importUrlToNameMap","Map","hasUrlImportHelper","urlToNameMap","urlToReplacementMap","urlIndex","importUrlIndex","handleUrl","u","url","needKeep","urlFilter","isDataUrl","set","query","hashOrQuery","split","queryParts","prefix","length","pop","join","hash","push","type","importName","JSON","stringify","require","resolve","index","newUrl","get","size","needQuotes","replacementKey","replacementName","loc","Rule","import","node","importFilter","value","media","mediaQueries","undefined","isRequestable","isUrlRequestable","importUrl","urlHandler","Url","createIcssVisitor","replacementIndex","Declaration","composes","property","specifier","from","icss","dedupe","newNames","localName","names","LOADER_NAME","source","prevMap","options","done","async","getOptions","installBindings","implementation","targets","userTargets","opts","modules","transformCss","TypeError","postcss","postcssWithPlugins","plugins","Error","exports","icssImports","exportOnlyLocals","unshift","stringifyRequest","transform","getBindingsSync","css","lightning","icssReplacedUrls","urlImportVisitor","getPreRequester","importLoaders","getFilter","resourcePath","context","icssVisitor","visitor","code","map","moduleExports","cssModules","pattern","process","env","__NEXT_TEST_MODE","filename","encode","sourceMap","getTargets","key","ECacheKey","loader","inputSourceMap","include","cssCodeAsString","toString","name","Object","prototype","hasOwnProperty","call","v","compose","urlResolver","getResolve","conditionNames","mainFields","mainFiles","extensions","entries","pathname","request","requestify","rootContext","resolvedUrl","resolveRequests","Set","importItem","replace","importResolver","restrictions","icssResolver","importCode","getImportCode","moduleCode","getModuleCode","exportCode","getExportCode","esCode","parse","error","console"],"mappings":"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","ignoreList":[0]}
@@ -14,6 +14,7 @@ const _webpacksources3 = require("next/dist/compiled/webpack-sources3");
14
14
  const _interface = require("./interface");
15
15
  const _utils = require("./utils");
16
16
  const _buffer = require("buffer");
17
+ const _swc = require("../../../../../build/swc");
17
18
  const PLUGIN_NAME = 'lightning-css-minify';
18
19
  const CSS_FILE_REG = /\.css(?:\?.*)?$/i;
19
20
  class LightningCssMinifyPlugin {
@@ -54,8 +55,7 @@ class LightningCssMinifyPlugin {
54
55
  async transformAssets(compilation) {
55
56
  const { options: { devtool } } = compilation.compiler;
56
57
  if (!this.transform) {
57
- const { loadBindings } = require('../../../../../build/swc');
58
- this.transform = (await loadBindings()).css.lightning.transform;
58
+ this.transform = (0, _swc.getBindingsSync)().css.lightning.transform;
59
59
  }
60
60
  const sourcemap = this.options.sourceMap === undefined ? devtool && devtool.includes('source-map') : this.options.sourceMap;
61
61
  const { include, exclude, test: testRegExp, targets: userTargets, ...transformOptions } = this.options;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/build/webpack/loaders/lightningcss-loader/src/minify.ts"],"sourcesContent":["// @ts-ignore\nimport { ModuleFilenameHelpers } from 'next/dist/compiled/webpack/webpack'\nimport { webpack } from 'next/dist/compiled/webpack/webpack'\n// @ts-ignore\nimport { RawSource, SourceMapSource } from 'next/dist/compiled/webpack-sources3'\nimport { ECacheKey } from './interface'\nimport type { Compilation, Compiler } from 'webpack'\nimport { getTargets } from './utils'\nimport { Buffer } from 'buffer'\n\nconst PLUGIN_NAME = 'lightning-css-minify'\nconst CSS_FILE_REG = /\\.css(?:\\?.*)?$/i\n\nexport class LightningCssMinifyPlugin {\n private readonly options: any\n private transform: any | undefined\n\n constructor(opts: any = {}) {\n const { implementation, ...otherOpts } = opts\n if (implementation && typeof implementation.transformCss !== 'function') {\n throw new TypeError(\n `[LightningCssMinifyPlugin]: implementation.transformCss must be an 'lightningcss' transform function. Received ${typeof implementation.transformCss}`\n )\n }\n\n this.transform = implementation?.transformCss\n this.options = otherOpts\n }\n\n apply(compiler: Compiler) {\n const meta = JSON.stringify({\n name: '@next/lightningcss-loader',\n version: '0.0.0',\n options: this.options,\n })\n\n compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {\n compilation.hooks.chunkHash.tap(PLUGIN_NAME, (_, hash) =>\n hash.update(meta)\n )\n\n compilation.hooks.processAssets.tapPromise(\n {\n name: PLUGIN_NAME,\n stage: webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE,\n additionalAssets: true,\n },\n async () => await this.transformAssets(compilation)\n )\n\n compilation.hooks.statsPrinter.tap(PLUGIN_NAME, (statsPrinter) => {\n statsPrinter.hooks.print\n .for('asset.info.minimized')\n // @ts-ignore\n .tap(PLUGIN_NAME, (minimized, { green, formatFlag }) => {\n // @ts-ignore\n return minimized ? green(formatFlag('minimized')) : undefined\n })\n })\n })\n }\n\n private async transformAssets(compilation: Compilation): Promise<void> {\n const {\n options: { devtool },\n } = compilation.compiler\n\n if (!this.transform) {\n const { loadBindings } =\n require('../../../../../build/swc') as typeof import('../../../../../build/swc')\n this.transform = (await loadBindings()).css.lightning.transform\n }\n\n const sourcemap =\n this.options.sourceMap === undefined\n ? ((devtool && (devtool as string).includes('source-map')) as boolean)\n : this.options.sourceMap\n\n const {\n include,\n exclude,\n test: testRegExp,\n targets: userTargets,\n ...transformOptions\n } = this.options\n\n const assets = compilation.getAssets().filter(\n (asset) =>\n // Filter out already minimized\n !asset.info.minimized &&\n // Filter out by file type\n (testRegExp || CSS_FILE_REG).test(asset.name) &&\n ModuleFilenameHelpers.matchObject({ include, exclude }, asset.name)\n )\n\n await Promise.all(\n assets.map(async (asset) => {\n const { source, map } = asset.source.sourceAndMap()\n const sourceAsString = source.toString()\n const code = typeof source === 'string' ? Buffer.from(source) : source\n const targets = getTargets({\n targets: userTargets,\n key: ECacheKey.minify,\n })\n\n const result = await this.transform!({\n filename: asset.name,\n code,\n minify: true,\n sourceMap: sourcemap,\n targets,\n ...transformOptions,\n })\n const codeString = result.code.toString()\n\n compilation.updateAsset(\n asset.name,\n // @ts-ignore\n sourcemap\n ? new SourceMapSource(\n codeString,\n asset.name,\n JSON.parse(result.map!.toString()),\n sourceAsString,\n map as any,\n true\n )\n : new RawSource(codeString),\n {\n ...asset.info,\n minimized: true,\n }\n )\n })\n )\n }\n}\n"],"names":["LightningCssMinifyPlugin","PLUGIN_NAME","CSS_FILE_REG","constructor","opts","implementation","otherOpts","transformCss","TypeError","transform","options","apply","compiler","meta","JSON","stringify","name","version","hooks","compilation","tap","chunkHash","_","hash","update","processAssets","tapPromise","stage","webpack","Compilation","PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE","additionalAssets","transformAssets","statsPrinter","print","for","minimized","green","formatFlag","undefined","devtool","loadBindings","require","css","lightning","sourcemap","sourceMap","includes","include","exclude","test","testRegExp","targets","userTargets","transformOptions","assets","getAssets","filter","asset","info","ModuleFilenameHelpers","matchObject","Promise","all","map","source","sourceAndMap","sourceAsString","toString","code","Buffer","from","getTargets","key","ECacheKey","minify","result","filename","codeString","updateAsset","SourceMapSource","parse","RawSource"],"mappings":"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","ignoreList":[0]}
1
+ {"version":3,"sources":["../../../../../../src/build/webpack/loaders/lightningcss-loader/src/minify.ts"],"sourcesContent":["// @ts-ignore\nimport { ModuleFilenameHelpers } from 'next/dist/compiled/webpack/webpack'\nimport { webpack } from 'next/dist/compiled/webpack/webpack'\n// @ts-ignore\nimport { RawSource, SourceMapSource } from 'next/dist/compiled/webpack-sources3'\nimport { ECacheKey } from './interface'\nimport type { Compilation, Compiler } from 'webpack'\nimport { getTargets } from './utils'\nimport { Buffer } from 'buffer'\nimport { getBindingsSync } from '../../../../../build/swc'\n\nconst PLUGIN_NAME = 'lightning-css-minify'\nconst CSS_FILE_REG = /\\.css(?:\\?.*)?$/i\n\nexport class LightningCssMinifyPlugin {\n private readonly options: any\n private transform: any | undefined\n\n constructor(opts: any = {}) {\n const { implementation, ...otherOpts } = opts\n if (implementation && typeof implementation.transformCss !== 'function') {\n throw new TypeError(\n `[LightningCssMinifyPlugin]: implementation.transformCss must be an 'lightningcss' transform function. Received ${typeof implementation.transformCss}`\n )\n }\n\n this.transform = implementation?.transformCss\n this.options = otherOpts\n }\n\n apply(compiler: Compiler) {\n const meta = JSON.stringify({\n name: '@next/lightningcss-loader',\n version: '0.0.0',\n options: this.options,\n })\n\n compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {\n compilation.hooks.chunkHash.tap(PLUGIN_NAME, (_, hash) =>\n hash.update(meta)\n )\n\n compilation.hooks.processAssets.tapPromise(\n {\n name: PLUGIN_NAME,\n stage: webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE,\n additionalAssets: true,\n },\n async () => await this.transformAssets(compilation)\n )\n\n compilation.hooks.statsPrinter.tap(PLUGIN_NAME, (statsPrinter) => {\n statsPrinter.hooks.print\n .for('asset.info.minimized')\n // @ts-ignore\n .tap(PLUGIN_NAME, (minimized, { green, formatFlag }) => {\n // @ts-ignore\n return minimized ? green(formatFlag('minimized')) : undefined\n })\n })\n })\n }\n\n private async transformAssets(compilation: Compilation): Promise<void> {\n const {\n options: { devtool },\n } = compilation.compiler\n\n if (!this.transform) {\n this.transform = getBindingsSync().css.lightning.transform\n }\n\n const sourcemap =\n this.options.sourceMap === undefined\n ? ((devtool && (devtool as string).includes('source-map')) as boolean)\n : this.options.sourceMap\n\n const {\n include,\n exclude,\n test: testRegExp,\n targets: userTargets,\n ...transformOptions\n } = this.options\n\n const assets = compilation.getAssets().filter(\n (asset) =>\n // Filter out already minimized\n !asset.info.minimized &&\n // Filter out by file type\n (testRegExp || CSS_FILE_REG).test(asset.name) &&\n ModuleFilenameHelpers.matchObject({ include, exclude }, asset.name)\n )\n\n await Promise.all(\n assets.map(async (asset) => {\n const { source, map } = asset.source.sourceAndMap()\n const sourceAsString = source.toString()\n const code = typeof source === 'string' ? Buffer.from(source) : source\n const targets = getTargets({\n targets: userTargets,\n key: ECacheKey.minify,\n })\n\n const result = await this.transform!({\n filename: asset.name,\n code,\n minify: true,\n sourceMap: sourcemap,\n targets,\n ...transformOptions,\n })\n const codeString = result.code.toString()\n\n compilation.updateAsset(\n asset.name,\n // @ts-ignore\n sourcemap\n ? new SourceMapSource(\n codeString,\n asset.name,\n JSON.parse(result.map!.toString()),\n sourceAsString,\n map as any,\n true\n )\n : new RawSource(codeString),\n {\n ...asset.info,\n minimized: true,\n }\n )\n })\n )\n }\n}\n"],"names":["LightningCssMinifyPlugin","PLUGIN_NAME","CSS_FILE_REG","constructor","opts","implementation","otherOpts","transformCss","TypeError","transform","options","apply","compiler","meta","JSON","stringify","name","version","hooks","compilation","tap","chunkHash","_","hash","update","processAssets","tapPromise","stage","webpack","Compilation","PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE","additionalAssets","transformAssets","statsPrinter","print","for","minimized","green","formatFlag","undefined","devtool","getBindingsSync","css","lightning","sourcemap","sourceMap","includes","include","exclude","test","testRegExp","targets","userTargets","transformOptions","assets","getAssets","filter","asset","info","ModuleFilenameHelpers","matchObject","Promise","all","map","source","sourceAndMap","sourceAsString","toString","code","Buffer","from","getTargets","key","ECacheKey","minify","result","filename","codeString","updateAsset","SourceMapSource","parse","RawSource"],"mappings":"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","ignoreList":[0]}
@@ -28,6 +28,7 @@ const _default = require("../../../../client/components/builtin/default");
28
28
  const _createapproutecode = require("./create-app-route-code");
29
29
  const _missingdefaultparallelrouteerror = require("../../../../shared/lib/errors/missing-default-parallel-route-error");
30
30
  const _normalizepathsep = require("../../../../shared/lib/page-path/normalize-path-sep");
31
+ const _installbindings = require("../../../swc/install-bindings");
31
32
  function _interop_require_default(obj) {
32
33
  return obj && obj.__esModule ? obj : {
33
34
  default: obj
@@ -475,6 +476,11 @@ function createAbsolutePath(appDir, pathToTurnAbsolute) {
475
476
  }
476
477
  const filesInDirMapMap = new WeakMap();
477
478
  const nextAppLoader = async function nextAppLoader() {
479
+ // install native bindings early so they are always available.
480
+ // When run by webpack, next will have already done this, so this will be fast,
481
+ // but if run by turbopack in a subprocess it is required. In that case we cannot pass the
482
+ // `useWasmBinary` flag, but that is ok since turbopack doesn't currently support wasm.
483
+ await (0, _installbindings.installBindings)();
478
484
  const loaderOptions = this.getOptions();
479
485
  const { name, appDir, appPaths, pagePath, pageExtensions, rootDir, tsconfigPath, isDev, nextConfigOutput, preferredRegion, basePath, middlewareConfig: middlewareConfigBase64 } = loaderOptions;
480
486
  const isGlobalNotFoundEnabled = !!loaderOptions.isGlobalNotFoundEnabled;