Rocky_Mountain_Vending/.pnpm-store/v10/files/a2/3c64251dfa6f8ec486b9959948c5b0c22fb2de4911a512d26b4ef3c9a218c32c6d79345122a9a610380ef89f7bd9732d7e188a8c3ece2bbaf939beaacc4539
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

1 line
No EOL
66 KiB
Text

{"version":3,"sources":["../../../../src/build/webpack/plugins/flight-client-entry-plugin.ts"],"sourcesContent":["import type {\n CssImports,\n ClientComponentImports,\n} from '../loaders/next-flight-client-entry-loader'\n\nimport { webpack } from 'next/dist/compiled/webpack/webpack'\nimport { parse, stringify } from 'querystring'\nimport path from 'path'\nimport { sources } from 'next/dist/compiled/webpack/webpack'\nimport {\n getInvalidator,\n getEntries,\n EntryTypes,\n getEntryKey,\n} from '../../../server/dev/on-demand-entry-handler'\nimport {\n WEBPACK_LAYERS,\n WEBPACK_RESOURCE_QUERIES,\n} from '../../../lib/constants'\nimport {\n APP_CLIENT_INTERNALS,\n BARREL_OPTIMIZATION_PREFIX,\n COMPILER_NAMES,\n DEFAULT_RUNTIME_WEBPACK,\n EDGE_RUNTIME_WEBPACK,\n SERVER_REFERENCE_MANIFEST,\n} from '../../../shared/lib/constants'\nimport {\n UNDERSCORE_NOT_FOUND_ROUTE_ENTRY,\n UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY,\n} from '../../../shared/lib/entry-constants'\nimport {\n isClientComponentEntryModule,\n isCSSMod,\n regexCSS,\n} from '../loaders/utils'\nimport {\n traverseModules,\n forEachEntryModule,\n formatBarrelOptimizedResource,\n getModuleReferencesInOrder,\n} from '../utils'\nimport { normalizePathSep } from '../../../shared/lib/page-path/normalize-path-sep'\nimport { getProxiedPluginState } from '../../build-context'\nimport { PAGE_TYPES } from '../../../lib/page-types'\nimport { getModuleBuildInfo } from '../loaders/get-module-build-info'\nimport { getAssumedSourceType } from '../loaders/next-flight-loader'\nimport { isAppRouteRoute } from '../../../lib/is-app-route-route'\nimport {\n DEFAULT_METADATA_ROUTE_EXTENSIONS,\n isMetadataRouteFile,\n} from '../../../lib/metadata/is-metadata-route'\nimport type { MetadataRouteLoaderOptions } from '../loaders/next-metadata-route-loader'\nimport type { FlightActionEntryLoaderActions } from '../loaders/next-flight-action-entry-loader'\nimport getWebpackBundler from '../../../shared/lib/get-webpack-bundler'\nimport { isAppBuiltinPage } from '../../utils'\n\ninterface Options {\n dev: boolean\n appDir: string\n isEdgeServer: boolean\n encryptionKey: string\n}\n\nconst PLUGIN_NAME = 'FlightClientEntryPlugin'\n\ntype Actions = {\n [actionId: string]: {\n exportedName?: string\n filename?: string\n workers: {\n [name: string]: {\n moduleId: string | number\n async: boolean\n }\n }\n // Record which layer the action is in (rsc or sc_action), in the specific entry.\n layer: {\n [name: string]: string\n }\n }\n}\n\ntype ActionIdNamePair = { id: string; exportedName?: string; filename?: string }\n\nexport type ActionManifest = {\n // Assign a unique encryption key during production build.\n encryptionKey: string\n node: Actions\n edge: Actions\n}\n\nexport interface ModuleInfo {\n moduleId: string | number\n async: boolean\n}\n\nconst pluginState = getProxiedPluginState({\n // A map to track \"action\" -> \"list of bundles\".\n serverActions: {} as ActionManifest['node'],\n edgeServerActions: {} as ActionManifest['edge'],\n\n serverActionModules: {} as {\n [workerName: string]: {\n server?: ModuleInfo\n client?: ModuleInfo\n }\n },\n\n edgeServerActionModules: {} as {\n [workerName: string]: {\n server?: ModuleInfo\n client?: ModuleInfo\n }\n },\n\n ssrModules: {} as { [ssrModuleId: string]: ModuleInfo },\n edgeSsrModules: {} as { [ssrModuleId: string]: ModuleInfo },\n\n rscModules: {} as { [rscModuleId: string]: ModuleInfo },\n edgeRscModules: {} as { [rscModuleId: string]: ModuleInfo },\n\n injectedClientEntries: {} as Record<string, string>,\n})\n\nconst POSSIBLE_SHARED_CONVENTIONS = ['template', 'layout']\nconst STANDALONE_BUNDLE_CONVENTION = 'global-not-found'\n\nfunction deduplicateCSSImportsForEntry(mergedCSSimports: CssImports) {\n // If multiple entry module connections are having the same CSS import,\n // we only need to have one module to keep track of that CSS import.\n // It is based on the fact that if a page or a layout is rendered in the\n // given entry, all its parent layouts are always rendered too.\n // This can avoid duplicate CSS imports in the generated CSS manifest,\n // for example, if a page and its parent layout are both using the same\n // CSS import, we only need to have the layout to keep track of that CSS\n // import.\n // To achieve this, we need to first collect all the CSS imports from\n // every connection, and deduplicate them in the order of layers from\n // top to bottom. The implementation can be generally described as:\n // - Sort by number of `/` in the request path (the more `/`, the deeper)\n // - When in the same depth, sort by the filename (template < layout < page and others)\n\n // Sort the connections as described above.\n const sortedCSSImports = Object.entries(mergedCSSimports).sort((a, b) => {\n const [aPath] = a\n const [bPath] = b\n\n const aDepth = aPath.split('/').length\n const bDepth = bPath.split('/').length\n\n if (aDepth !== bDepth) {\n return aDepth - bDepth\n }\n\n const aName = path.parse(aPath).name\n const bName = path.parse(bPath).name\n\n const indexA = POSSIBLE_SHARED_CONVENTIONS.indexOf(aName)\n const indexB = POSSIBLE_SHARED_CONVENTIONS.indexOf(bName)\n\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n })\n\n const dedupedCSSImports: CssImports = {}\n const trackedCSSImports = new Set<string>()\n\n for (const [entryFilePath, cssImports] of sortedCSSImports) {\n const entryConventionName = path.parse(entryFilePath).name\n\n for (const cssImport of cssImports) {\n // If the CSS import is already tracked, we can skip it.\n // Or if it's any standalone entry such as `global-not-found`, it won't share any resources with other entry, skip it.\n if (\n trackedCSSImports.has(cssImport) &&\n STANDALONE_BUNDLE_CONVENTION !== entryConventionName\n ) {\n continue\n }\n\n // Only track CSS imports that are in files that can inherit CSS.\n if (POSSIBLE_SHARED_CONVENTIONS.includes(entryConventionName)) {\n trackedCSSImports.add(cssImport)\n }\n\n if (!dedupedCSSImports[entryFilePath]) {\n dedupedCSSImports[entryFilePath] = []\n }\n dedupedCSSImports[entryFilePath].push(cssImport)\n }\n }\n\n return dedupedCSSImports\n}\n\nexport class FlightClientEntryPlugin {\n dev: boolean\n appDir: string\n projectDir: string\n encryptionKey: string\n isEdgeServer: boolean\n assetPrefix: string\n webpackRuntime: string\n\n constructor(options: Options) {\n this.dev = options.dev\n this.appDir = options.appDir\n this.projectDir = path.join(options.appDir, '..')\n this.isEdgeServer = options.isEdgeServer\n this.assetPrefix = !this.dev && !this.isEdgeServer ? '../' : ''\n this.encryptionKey = options.encryptionKey\n this.webpackRuntime = this.isEdgeServer\n ? EDGE_RUNTIME_WEBPACK\n : DEFAULT_RUNTIME_WEBPACK\n }\n\n apply(compiler: webpack.Compiler) {\n compiler.hooks.finishMake.tapPromise(PLUGIN_NAME, (compilation) =>\n this.createClientEntries(compiler, compilation)\n )\n\n compiler.hooks.afterCompile.tap(PLUGIN_NAME, (compilation) => {\n const recordModule = (modId: string, mod: any) => {\n // Match Resource is undefined unless an import is using the inline match resource syntax\n // https://webpack.js.org/api/loaders/#inline-matchresource\n const modPath = mod.matchResource || mod.resourceResolveData?.path\n const modQuery = mod.resourceResolveData?.query || ''\n // query is already part of mod.resource\n // so it's only necessary to add it for matchResource or mod.resourceResolveData\n const modResource = modPath\n ? modPath.startsWith(BARREL_OPTIMIZATION_PREFIX)\n ? formatBarrelOptimizedResource(mod.resource, modPath)\n : modPath + modQuery\n : mod.resource\n\n if (typeof modId !== 'undefined' && modResource) {\n if (mod.layer === WEBPACK_LAYERS.reactServerComponents) {\n const key = path\n .relative(compiler.context, modResource)\n .replace(/\\/next\\/dist\\/esm\\//, '/next/dist/')\n\n const moduleInfo: ModuleInfo = {\n moduleId: modId,\n async: compilation.moduleGraph.isAsync(mod),\n }\n\n if (this.isEdgeServer) {\n pluginState.edgeRscModules[key] = moduleInfo\n } else {\n pluginState.rscModules[key] = moduleInfo\n }\n }\n }\n\n if (mod.layer !== WEBPACK_LAYERS.serverSideRendering) {\n return\n }\n\n // Check mod resource to exclude the empty resource module like virtual module created by next-flight-client-entry-loader\n if (typeof modId !== 'undefined' && modResource) {\n // Note that this isn't that reliable as webpack is still possible to assign\n // additional queries to make sure there's no conflict even using the `named`\n // module ID strategy.\n let ssrNamedModuleId = path.relative(compiler.context, modResource)\n\n if (!ssrNamedModuleId.startsWith('.')) {\n // TODO use getModuleId instead\n ssrNamedModuleId = `./${normalizePathSep(ssrNamedModuleId)}`\n }\n\n const moduleInfo: ModuleInfo = {\n moduleId: modId,\n async: compilation.moduleGraph.isAsync(mod),\n }\n\n if (this.isEdgeServer) {\n pluginState.edgeSsrModules[\n ssrNamedModuleId.replace(/\\/next\\/dist\\/esm\\//, '/next/dist/')\n ] = moduleInfo\n } else {\n pluginState.ssrModules[ssrNamedModuleId] = moduleInfo\n }\n }\n }\n\n traverseModules(compilation, (mod, _chunk, _chunkGroup, modId) => {\n if (modId) recordModule(modId, mod)\n })\n })\n\n compiler.hooks.make.tap(PLUGIN_NAME, (compilation) => {\n compilation.hooks.processAssets.tapPromise(\n {\n name: PLUGIN_NAME,\n stage: webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_HASH,\n },\n () => this.createActionAssets(compilation)\n )\n })\n }\n\n async createClientEntries(\n compiler: webpack.Compiler,\n compilation: webpack.Compilation\n ) {\n const addClientEntryAndSSRModulesList: Array<\n ReturnType<typeof this.injectClientEntryAndSSRModules>\n > = []\n const createdSSRDependenciesForEntry: Record<\n string,\n ReturnType<typeof this.injectClientEntryAndSSRModules>[3][]\n > = {}\n\n const addActionEntryList: Array<ReturnType<typeof this.injectActionEntry>> =\n []\n const actionMapsPerEntry: Record<\n string,\n Map<string, ActionIdNamePair[]>\n > = {}\n const createdActionIds = new Set<string>()\n\n // For each SC server compilation entry, we need to create its corresponding\n // client component entry.\n forEachEntryModule(compilation, ({ name, entryModule }) => {\n const internalClientComponentEntryImports: ClientComponentImports = {}\n const actionEntryImports = new Map<string, ActionIdNamePair[]>()\n const clientEntriesToInject = []\n const mergedCSSimports: CssImports = {}\n\n const moduleReferences = getModuleReferencesInOrder(\n entryModule,\n compilation.moduleGraph\n )\n for (const connection of moduleReferences) {\n // Entry can be any user defined entry files such as layout, page, error, loading, etc.\n let entryRequest = (\n connection.dependency as unknown as webpack.NormalModule\n ).request\n\n if (entryRequest.endsWith(WEBPACK_RESOURCE_QUERIES.metadataRoute)) {\n const { filePath, isDynamicRouteExtension } =\n getMetadataRouteResource(entryRequest)\n\n if (isDynamicRouteExtension === '1') {\n entryRequest = filePath\n }\n }\n\n const { clientComponentImports, actionImports, cssImports } =\n this.collectComponentInfoFromServerEntryDependency({\n entryRequest,\n compilation,\n resolvedModule: connection.resolvedModule,\n })\n\n actionImports.forEach(([dep, actions]) =>\n actionEntryImports.set(dep, actions)\n )\n\n const isAbsoluteRequest = path.isAbsolute(entryRequest)\n const isAppRouterBuiltinPage = isAppBuiltinPage(entryRequest)\n\n // Next.js internals are put into a separate entry.\n if (!isAbsoluteRequest) {\n Object.keys(clientComponentImports).forEach(\n (value) => (internalClientComponentEntryImports[value] = new Set())\n )\n if (!isAppRouterBuiltinPage) {\n continue\n }\n }\n\n // TODO-APP: Enable these lines. This ensures no entrypoint is created for layout/page when there are no client components.\n // Currently disabled because it causes test failures in CI.\n // if (clientImports.length === 0 && actionImports.length === 0) {\n // continue\n // }\n\n const relativeRequest =\n isAbsoluteRequest && !isAppRouterBuiltinPage\n ? path.relative(compilation.options.context!, entryRequest)\n : entryRequest\n\n // Replace file suffix as `.js` will be added.\n // bundlePath will have app/ prefix but not src/.\n // e.g. src/app/foo/page.js -> app/foo/page\n let bundlePath = normalizePathSep(\n relativeRequest.replace(/\\.[^.\\\\/]+$/, '').replace(/^src[\\\\/]/, '')\n )\n\n // For metadata routes, the entry name can be used as the bundle path,\n // as it has been normalized already.\n // e.g.\n // When `relativeRequest` is 'src/app/sitemap.js',\n // `appDirRelativeRequest` will be '/sitemap.js'\n // then `isMetadataEntryFile` will be `true`\n const appDirRelativeRequest = relativeRequest\n .replace(/^src[\\\\/]/, '')\n .replace(/^app[\\\\/]/, '/')\n const isMetadataEntryFile = isMetadataRouteFile(\n appDirRelativeRequest,\n DEFAULT_METADATA_ROUTE_EXTENSIONS,\n true\n )\n if (isMetadataEntryFile) {\n bundlePath = name\n }\n\n Object.assign(mergedCSSimports, cssImports)\n clientEntriesToInject.push({\n compiler,\n compilation,\n entryName: name,\n clientComponentImports,\n bundlePath,\n absolutePagePath: entryRequest,\n })\n\n // The webpack implementation of writing the client reference manifest relies on all entrypoints writing a page.js even when there is no client components in the page.\n // It needs the file in order to write the reference manifest for the path in the `.next/server` folder.\n // TODO-APP: This could be better handled, however Turbopack does not have the same problem as we resolve client components in a single graph.\n if (\n name === `app${UNDERSCORE_NOT_FOUND_ROUTE_ENTRY}` &&\n bundlePath === 'app/not-found'\n ) {\n clientEntriesToInject.push({\n compiler,\n compilation,\n entryName: name,\n clientComponentImports: {},\n bundlePath: `app${UNDERSCORE_NOT_FOUND_ROUTE_ENTRY}`,\n absolutePagePath: entryRequest,\n })\n }\n\n if (\n name === `app${UNDERSCORE_NOT_FOUND_ROUTE_ENTRY}` &&\n bundlePath === 'app/global-not-found'\n ) {\n clientEntriesToInject.push({\n compiler,\n compilation,\n entryName: name,\n clientComponentImports,\n bundlePath: `app${UNDERSCORE_NOT_FOUND_ROUTE_ENTRY}`,\n absolutePagePath: entryRequest,\n })\n }\n\n if (name === `app${UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY}`) {\n clientEntriesToInject.push({\n compiler,\n compilation,\n entryName: name,\n clientComponentImports,\n bundlePath: `app${UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY}`,\n absolutePagePath: entryRequest,\n })\n }\n }\n\n // Make sure CSS imports are deduplicated before injecting the client entry\n // and SSR modules.\n const dedupedCSSImports = deduplicateCSSImportsForEntry(mergedCSSimports)\n for (const clientEntryToInject of clientEntriesToInject) {\n const injected = this.injectClientEntryAndSSRModules({\n ...clientEntryToInject,\n clientImports: {\n ...clientEntryToInject.clientComponentImports,\n ...(\n dedupedCSSImports[clientEntryToInject.absolutePagePath] || []\n ).reduce<ClientComponentImports>((res, curr) => {\n res[curr] = new Set()\n return res\n }, {}),\n },\n })\n\n // Track all created SSR dependencies for each entry from the server layer.\n if (!createdSSRDependenciesForEntry[clientEntryToInject.entryName]) {\n createdSSRDependenciesForEntry[clientEntryToInject.entryName] = []\n }\n createdSSRDependenciesForEntry[clientEntryToInject.entryName].push(\n injected[3]\n )\n\n addClientEntryAndSSRModulesList.push(injected)\n }\n\n if (!isAppRouteRoute(name)) {\n // Create internal app\n addClientEntryAndSSRModulesList.push(\n this.injectClientEntryAndSSRModules({\n compiler,\n compilation,\n entryName: name,\n clientImports: { ...internalClientComponentEntryImports },\n bundlePath: APP_CLIENT_INTERNALS,\n })\n )\n }\n\n if (actionEntryImports.size > 0) {\n if (!actionMapsPerEntry[name]) {\n actionMapsPerEntry[name] = new Map()\n }\n actionMapsPerEntry[name] = new Map([\n ...actionMapsPerEntry[name],\n ...actionEntryImports,\n ])\n }\n })\n\n for (const [name, actionEntryImports] of Object.entries(\n actionMapsPerEntry\n )) {\n addActionEntryList.push(\n this.injectActionEntry({\n compiler,\n compilation,\n actions: actionEntryImports,\n entryName: name,\n bundlePath: name,\n createdActionIds,\n })\n )\n }\n\n // Invalidate in development to trigger recompilation\n const invalidator = getInvalidator(compiler.outputPath)\n // Check if any of the entry injections need an invalidation\n if (\n invalidator &&\n addClientEntryAndSSRModulesList.some(\n ([shouldInvalidate]) => shouldInvalidate === true\n )\n ) {\n invalidator.invalidate([COMPILER_NAMES.client])\n }\n\n // Client compiler is invalidated before awaiting the compilation of the SSR\n // and RSC client component entries so that the client compiler is running\n // in parallel to the server compiler.\n await Promise.all(\n addClientEntryAndSSRModulesList.flatMap((addClientEntryAndSSRModules) => [\n addClientEntryAndSSRModules[1],\n addClientEntryAndSSRModules[2],\n ])\n )\n\n // Wait for action entries to be added.\n await Promise.all(addActionEntryList)\n\n const addedClientActionEntryList: Promise<any>[] = []\n const actionMapsPerClientEntry: Record<\n string,\n Map<string, ActionIdNamePair[]>\n > = {}\n\n // We need to create extra action entries that are created from the\n // client layer.\n // Start from each entry's created SSR dependency from our previous step.\n for (const [name, ssrEntryDependencies] of Object.entries(\n createdSSRDependenciesForEntry\n )) {\n // Collect from all entries, e.g. layout.js, page.js, loading.js, ...\n // add aggregate them.\n const actionEntryImports = this.collectClientActionsFromDependencies({\n compilation,\n dependencies: ssrEntryDependencies,\n })\n\n if (actionEntryImports.size > 0) {\n if (!actionMapsPerClientEntry[name]) {\n actionMapsPerClientEntry[name] = new Map()\n }\n actionMapsPerClientEntry[name] = new Map([\n ...actionMapsPerClientEntry[name],\n ...actionEntryImports,\n ])\n }\n }\n\n for (const [entryName, actionEntryImports] of Object.entries(\n actionMapsPerClientEntry\n )) {\n // If an action method is already created in the server layer, we don't\n // need to create it again in the action layer.\n // This is to avoid duplicate action instances and make sure the module\n // state is shared.\n let remainingClientImportedActions = false\n const remainingActionEntryImports = new Map<string, ActionIdNamePair[]>()\n for (const [dep, actions] of actionEntryImports) {\n const remainingActionNames = []\n for (const action of actions) {\n if (!createdActionIds.has(entryName + '@' + action.id)) {\n remainingActionNames.push(action)\n }\n }\n if (remainingActionNames.length > 0) {\n remainingActionEntryImports.set(dep, remainingActionNames)\n remainingClientImportedActions = true\n }\n }\n\n if (remainingClientImportedActions) {\n addedClientActionEntryList.push(\n this.injectActionEntry({\n compiler,\n compilation,\n actions: remainingActionEntryImports,\n entryName,\n bundlePath: entryName,\n fromClient: true,\n createdActionIds,\n })\n )\n }\n }\n\n await Promise.all(addedClientActionEntryList)\n }\n\n collectClientActionsFromDependencies({\n compilation,\n dependencies,\n }: {\n compilation: webpack.Compilation\n dependencies: ReturnType<typeof webpack.EntryPlugin.createDependency>[]\n }) {\n // action file path -> action names\n const collectedActions = new Map<string, ActionIdNamePair[]>()\n\n // Keep track of checked modules to avoid infinite loops with recursive imports.\n const visitedModule = new Set<string>()\n const visitedEntry = new Set<string>()\n\n const collectActions = ({\n entryRequest,\n resolvedModule,\n }: {\n entryRequest: string\n resolvedModule: any\n }) => {\n const collectActionsInDep = (mod: webpack.NormalModule): void => {\n if (!mod) return\n\n const modResource = getModuleResource(mod)\n\n if (!modResource) return\n\n if (visitedModule.has(modResource)) return\n visitedModule.add(modResource)\n\n const actionIds = getModuleBuildInfo(mod).rsc?.actionIds\n if (actionIds) {\n collectedActions.set(\n modResource,\n Object.entries(actionIds).map(([id, exportedName]) => ({\n id,\n exportedName,\n filename: path.posix.relative(this.projectDir, modResource),\n }))\n )\n }\n\n // Collect used exported actions transversely.\n getModuleReferencesInOrder(mod, compilation.moduleGraph).forEach(\n (connection: any) => {\n collectActionsInDep(\n connection.resolvedModule as webpack.NormalModule\n )\n }\n )\n }\n\n // Don't traverse the module graph anymore once hitting the action layer.\n if (\n entryRequest &&\n !entryRequest.includes('next-flight-action-entry-loader')\n ) {\n // Traverse the module graph to find all client components.\n collectActionsInDep(resolvedModule)\n }\n }\n\n for (const entryDependency of dependencies) {\n const ssrEntryModule =\n compilation.moduleGraph.getResolvedModule(entryDependency)!\n for (const connection of getModuleReferencesInOrder(\n ssrEntryModule,\n compilation.moduleGraph\n )) {\n const depModule = connection.dependency\n const request = (depModule as unknown as webpack.NormalModule).request\n\n // It is possible that the same entry is added multiple times in the\n // connection graph. We can just skip these to speed up the process.\n if (visitedEntry.has(request)) continue\n visitedEntry.add(request)\n\n collectActions({\n entryRequest: request,\n resolvedModule: connection.resolvedModule,\n })\n }\n }\n\n return collectedActions\n }\n\n collectComponentInfoFromServerEntryDependency({\n entryRequest,\n compilation,\n resolvedModule,\n }: {\n entryRequest: string\n compilation: webpack.Compilation\n resolvedModule: any /* Dependency */\n }): {\n cssImports: CssImports\n clientComponentImports: ClientComponentImports\n actionImports: [string, ActionIdNamePair[]][]\n } {\n // Keep track of checked modules to avoid infinite loops with recursive imports.\n const visitedOfClientComponentsTraverse = new Set()\n\n // Info to collect.\n const clientComponentImports: ClientComponentImports = {}\n const actionImports: [string, ActionIdNamePair[]][] = []\n const CSSImports = new Set<string>()\n\n const filterClientComponents = (\n mod: webpack.NormalModule,\n importedIdentifiers: string[]\n ): void => {\n if (!mod) return\n\n const modResource = getModuleResource(mod)\n\n if (!modResource) return\n if (visitedOfClientComponentsTraverse.has(modResource)) {\n if (clientComponentImports[modResource]) {\n addClientImport(\n mod,\n modResource,\n clientComponentImports,\n importedIdentifiers,\n false\n )\n }\n return\n }\n visitedOfClientComponentsTraverse.add(modResource)\n\n const actionIds = getModuleBuildInfo(mod).rsc?.actionIds\n if (actionIds) {\n actionImports.push([\n modResource,\n Object.entries(actionIds).map(([id, exportedName]) => ({\n id,\n exportedName,\n filename: path.posix.relative(this.projectDir, modResource),\n })),\n ])\n }\n\n if (isCSSMod(mod)) {\n const sideEffectFree =\n mod.factoryMeta && (mod.factoryMeta as any).sideEffectFree\n\n if (sideEffectFree) {\n const unused = !compilation.moduleGraph\n .getExportsInfo(mod)\n .isModuleUsed(this.webpackRuntime)\n\n if (unused) return\n }\n\n CSSImports.add(modResource)\n } else if (isClientComponentEntryModule(mod)) {\n if (!clientComponentImports[modResource]) {\n clientComponentImports[modResource] = new Set()\n }\n addClientImport(\n mod,\n modResource,\n clientComponentImports,\n importedIdentifiers,\n true\n )\n\n return\n }\n\n getModuleReferencesInOrder(mod, compilation.moduleGraph).forEach(\n (connection: any) => {\n let dependencyIds: string[] = []\n\n // `ids` are the identifiers that are imported from the dependency,\n // if it's present, it's an array of strings.\n if (connection.dependency?.ids) {\n dependencyIds.push(...connection.dependency.ids)\n } else {\n dependencyIds = ['*']\n }\n\n filterClientComponents(connection.resolvedModule, dependencyIds)\n }\n )\n }\n\n // Traverse the module graph to find all client components.\n filterClientComponents(resolvedModule, [])\n\n return {\n clientComponentImports,\n cssImports: CSSImports.size\n ? {\n [entryRequest]: Array.from(CSSImports),\n }\n : {},\n actionImports,\n }\n }\n\n injectClientEntryAndSSRModules({\n compiler,\n compilation,\n entryName,\n clientImports,\n bundlePath,\n absolutePagePath,\n }: {\n compiler: webpack.Compiler\n compilation: webpack.Compilation\n entryName: string\n clientImports: ClientComponentImports\n bundlePath: string\n absolutePagePath?: string\n }): [\n shouldInvalidate: boolean,\n addSSREntryPromise: Promise<void>,\n addRSCEntryPromise: Promise<void>,\n ssrDep: ReturnType<typeof webpack.EntryPlugin.createDependency>,\n ] {\n const bundler = getWebpackBundler()\n let shouldInvalidate = false\n\n const modules = Object.keys(clientImports)\n .sort((a, b) => (regexCSS.test(b) ? 1 : a.localeCompare(b)))\n .map((clientImportPath) => ({\n request: clientImportPath,\n ids: [...clientImports[clientImportPath]],\n }))\n\n // For the client entry, we always use the CJS build of Next.js. If the\n // server is using the ESM build (when using the Edge runtime), we need to\n // replace them.\n const clientBrowserLoader = `next-flight-client-entry-loader?${stringify({\n modules: (this.isEdgeServer\n ? modules.map(({ request, ids }) => ({\n request: request.replace(\n /[\\\\/]next[\\\\/]dist[\\\\/]esm[\\\\/]/,\n '/next/dist/'.replace(/\\//g, path.sep)\n ),\n ids,\n }))\n : modules\n ).map((x) => JSON.stringify(x)),\n server: false,\n })}!`\n\n const clientServerLoader = `next-flight-client-entry-loader?${stringify({\n modules: modules.map((x) => JSON.stringify(x)),\n server: true,\n })}!`\n\n // Add for the client compilation\n // Inject the entry to the client compiler.\n if (this.dev) {\n const entries = getEntries(compiler.outputPath)\n const pageKey = getEntryKey(\n COMPILER_NAMES.client,\n PAGE_TYPES.APP,\n bundlePath\n )\n\n if (!entries[pageKey]) {\n entries[pageKey] = {\n type: EntryTypes.CHILD_ENTRY,\n parentEntries: new Set([entryName]),\n absoluteEntryFilePath: absolutePagePath,\n bundlePath,\n request: clientBrowserLoader,\n dispose: false,\n lastActiveTime: Date.now(),\n }\n shouldInvalidate = true\n } else {\n const entryData = entries[pageKey]\n // New version of the client loader\n if (entryData.request !== clientBrowserLoader) {\n entryData.request = clientBrowserLoader\n shouldInvalidate = true\n }\n if (entryData.type === EntryTypes.CHILD_ENTRY) {\n entryData.parentEntries.add(entryName)\n }\n entryData.dispose = false\n entryData.lastActiveTime = Date.now()\n }\n } else {\n pluginState.injectedClientEntries[bundlePath] = clientBrowserLoader\n }\n\n const clientComponentSSREntryDep = bundler.EntryPlugin.createDependency(\n clientServerLoader,\n { name: bundlePath }\n )\n\n const clientComponentRSCEntryDep = bundler.EntryPlugin.createDependency(\n clientServerLoader,\n { name: bundlePath }\n )\n\n return [\n shouldInvalidate,\n // Add the entries to the server compiler for the SSR and RSC layers. The\n // promises are awaited later using `Promise.all` in order to parallelize\n // adding the entries.\n this.addEntry(compilation, compiler.context, clientComponentSSREntryDep, {\n name: entryName,\n layer: WEBPACK_LAYERS.serverSideRendering,\n }),\n this.addEntry(compilation, compiler.context, clientComponentRSCEntryDep, {\n name: entryName,\n layer: WEBPACK_LAYERS.reactServerComponents,\n }),\n clientComponentSSREntryDep,\n ]\n }\n\n injectActionEntry({\n compiler,\n compilation,\n actions,\n entryName,\n bundlePath,\n fromClient,\n createdActionIds,\n }: {\n compiler: webpack.Compiler\n compilation: webpack.Compilation\n actions: Map<string, ActionIdNamePair[]>\n entryName: string\n bundlePath: string\n createdActionIds: Set<string>\n fromClient?: boolean\n }) {\n const bundler = getWebpackBundler()\n const actionsArray = Array.from(actions.entries())\n for (const [, actionsFromModule] of actions) {\n for (const { id } of actionsFromModule) {\n createdActionIds.add(entryName + '@' + id)\n }\n }\n\n if (actionsArray.length === 0) {\n return Promise.resolve()\n }\n\n const actionLoader = `next-flight-action-entry-loader?${stringify({\n actions: JSON.stringify(\n actionsArray satisfies FlightActionEntryLoaderActions\n ),\n __client_imported__: fromClient,\n })}!`\n\n const currentCompilerServerActions = this.isEdgeServer\n ? pluginState.edgeServerActions\n : pluginState.serverActions\n\n for (const [, actionsFromModule] of actionsArray) {\n for (const { id, exportedName, filename } of actionsFromModule) {\n if (typeof currentCompilerServerActions[id] === 'undefined') {\n currentCompilerServerActions[id] = {\n workers: {},\n layer: {},\n filename,\n exportedName,\n }\n }\n currentCompilerServerActions[id].workers[bundlePath] = {\n moduleId: '', // TODO: What's the meaning of this?\n async: false,\n }\n\n currentCompilerServerActions[id].layer[bundlePath] = fromClient\n ? WEBPACK_LAYERS.actionBrowser\n : WEBPACK_LAYERS.reactServerComponents\n }\n }\n\n // Inject the entry to the server compiler\n const actionEntryDep = bundler.EntryPlugin.createDependency(actionLoader, {\n name: bundlePath,\n })\n\n return this.addEntry(\n compilation,\n // Reuse compilation context.\n compiler.context,\n actionEntryDep,\n {\n name: entryName,\n layer: fromClient\n ? WEBPACK_LAYERS.actionBrowser\n : WEBPACK_LAYERS.reactServerComponents,\n }\n )\n }\n\n addEntry(\n compilation: webpack.Compilation,\n context: string,\n dependency: webpack.Dependency,\n options: webpack.EntryOptions\n ): Promise<any> /* Promise<module> */ {\n return new Promise((resolve, reject) => {\n if ('rspack' in compilation.compiler) {\n compilation.addInclude(context, dependency, options, (err, module) => {\n if (err) {\n return reject(err)\n }\n\n compilation.moduleGraph\n .getExportsInfo(module!)\n .setUsedInUnknownWay(\n this.isEdgeServer ? EDGE_RUNTIME_WEBPACK : DEFAULT_RUNTIME_WEBPACK\n )\n return resolve(module)\n })\n } else {\n const entry = compilation.entries.get(options.name!)!\n entry.includeDependencies.push(dependency)\n compilation.hooks.addEntry.call(entry as any, options)\n compilation.addModuleTree(\n {\n context,\n dependency,\n contextInfo: { issuerLayer: options.layer },\n },\n (err: any, module: any) => {\n if (err) {\n compilation.hooks.failedEntry.call(dependency, options, err)\n return reject(err)\n }\n\n compilation.hooks.succeedEntry.call(dependency, options, module)\n\n compilation.moduleGraph\n .getExportsInfo(module)\n .setUsedInUnknownWay(\n this.isEdgeServer\n ? EDGE_RUNTIME_WEBPACK\n : DEFAULT_RUNTIME_WEBPACK\n )\n\n return resolve(module)\n }\n )\n }\n })\n }\n\n async createActionAssets(compilation: webpack.Compilation) {\n const serverActions: ActionManifest['node'] = {}\n const edgeServerActions: ActionManifest['edge'] = {}\n\n traverseModules(compilation, (mod, _chunk, chunkGroup, modId) => {\n // Go through all action entries and record the module ID for each entry.\n if (\n chunkGroup.name &&\n mod.request &&\n modId &&\n /next-flight-action-entry-loader/.test(mod.request)\n ) {\n const fromClient = /&__client_imported__=true/.test(mod.request)\n\n const mapping = this.isEdgeServer\n ? pluginState.edgeServerActionModules\n : pluginState.serverActionModules\n\n if (!mapping[chunkGroup.name]) {\n mapping[chunkGroup.name] = {}\n }\n\n mapping[chunkGroup.name][fromClient ? 'client' : 'server'] = {\n moduleId: modId,\n async: compilation.moduleGraph.isAsync(mod),\n }\n }\n })\n\n for (let id in pluginState.serverActions) {\n const action = pluginState.serverActions[id]\n for (let name in action.workers) {\n const modId =\n pluginState.serverActionModules[name][\n action.layer[name] === WEBPACK_LAYERS.actionBrowser\n ? 'client'\n : 'server'\n ]\n action.workers[name] = modId!\n }\n serverActions[id] = action\n }\n\n for (let id in pluginState.edgeServerActions) {\n const action = pluginState.edgeServerActions[id]\n for (let name in action.workers) {\n const modId =\n pluginState.edgeServerActionModules[name][\n action.layer[name] === WEBPACK_LAYERS.actionBrowser\n ? 'client'\n : 'server'\n ]\n action.workers[name] = modId!\n }\n edgeServerActions[id] = action\n }\n\n const serverManifest = {\n node: serverActions,\n edge: edgeServerActions,\n encryptionKey: this.encryptionKey,\n }\n const edgeServerManifest = {\n ...serverManifest,\n encryptionKey: 'process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY',\n }\n\n const json = JSON.stringify(serverManifest, null, this.dev ? 2 : undefined)\n const edgeJson = JSON.stringify(\n edgeServerManifest,\n null,\n this.dev ? 2 : undefined\n )\n\n compilation.emitAsset(\n `${this.assetPrefix}${SERVER_REFERENCE_MANIFEST}.js`,\n new sources.RawSource(\n `self.__RSC_SERVER_MANIFEST=${JSON.stringify(edgeJson)}`\n ) as unknown as webpack.sources.RawSource\n )\n compilation.emitAsset(\n `${this.assetPrefix}${SERVER_REFERENCE_MANIFEST}.json`,\n new sources.RawSource(json) as unknown as webpack.sources.RawSource\n )\n }\n}\n\nfunction addClientImport(\n mod: webpack.NormalModule,\n modRequest: string,\n clientComponentImports: ClientComponentImports,\n importedIdentifiers: string[],\n isFirstVisitModule: boolean\n) {\n const clientEntryType = getModuleBuildInfo(mod).rsc?.clientEntryType\n const isCjsModule = clientEntryType === 'cjs'\n const assumedSourceType = getAssumedSourceType(\n mod,\n isCjsModule ? 'commonjs' : 'auto'\n )\n\n const clientImportsSet = clientComponentImports[modRequest]\n\n if (importedIdentifiers[0] === '*') {\n // If there's collected import path with named import identifiers,\n // or there's nothing in collected imports are empty.\n // we should include the whole module.\n if (!isFirstVisitModule && [...clientImportsSet][0] !== '*') {\n clientComponentImports[modRequest] = new Set(['*'])\n }\n } else {\n const isAutoModuleSourceType = assumedSourceType === 'auto'\n if (isAutoModuleSourceType) {\n clientComponentImports[modRequest] = new Set(['*'])\n } else {\n // If it's not analyzed as named ESM exports, e.g. if it's mixing `export *` with named exports,\n // We'll include all modules since it's not able to do tree-shaking.\n for (const name of importedIdentifiers) {\n // For cjs module default import, we include the whole module since\n const isCjsDefaultImport = isCjsModule && name === 'default'\n\n // Always include __esModule along with cjs module default export,\n // to make sure it work with client module proxy from React.\n if (isCjsDefaultImport) {\n clientComponentImports[modRequest].add('__esModule')\n }\n\n clientComponentImports[modRequest].add(name)\n }\n }\n }\n}\n\nfunction getModuleResource(mod: webpack.NormalModule): string {\n const modPath: string = mod.resourceResolveData?.path || ''\n const modQuery = mod.resourceResolveData?.query || ''\n // We have to always use the resolved request here to make sure the\n // server and client are using the same module path (required by RSC), as\n // the server compiler and client compiler have different resolve configs.\n let modResource: string = modPath + modQuery\n\n // Context modules don't have a resource path, we use the identifier instead.\n if (mod.constructor.name === 'ContextModule') {\n modResource = mod.identifier()\n }\n\n // For the barrel optimization, we need to use the match resource instead\n // because there will be 2 modules for the same file (same resource path)\n // but they're different modules and can't be deduped via `visitedModule`.\n // The first module is a virtual re-export module created by the loader.\n if (mod.matchResource?.startsWith(BARREL_OPTIMIZATION_PREFIX)) {\n modResource = mod.matchResource + ':' + modResource\n }\n\n if (mod.resource === `?${WEBPACK_RESOURCE_QUERIES.metadataRoute}`) {\n return getMetadataRouteResource(mod.rawRequest).filePath\n }\n\n return modResource\n}\n\nfunction getMetadataRouteResource(request: string): MetadataRouteLoaderOptions {\n // e.g. next-metadata-route-loader?filePath=<some-url-encoded-path>&isDynamicRouteExtension=1!?__next_metadata_route__\n const query = request.split('!')[0].split('next-metadata-route-loader?')[1]\n\n return parse(query) as MetadataRouteLoaderOptions\n}\n"],"names":["webpack","parse","stringify","path","sources","getInvalidator","getEntries","EntryTypes","getEntryKey","WEBPACK_LAYERS","WEBPACK_RESOURCE_QUERIES","APP_CLIENT_INTERNALS","BARREL_OPTIMIZATION_PREFIX","COMPILER_NAMES","DEFAULT_RUNTIME_WEBPACK","EDGE_RUNTIME_WEBPACK","SERVER_REFERENCE_MANIFEST","UNDERSCORE_NOT_FOUND_ROUTE_ENTRY","UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY","isClientComponentEntryModule","isCSSMod","regexCSS","traverseModules","forEachEntryModule","formatBarrelOptimizedResource","getModuleReferencesInOrder","normalizePathSep","getProxiedPluginState","PAGE_TYPES","getModuleBuildInfo","getAssumedSourceType","isAppRouteRoute","DEFAULT_METADATA_ROUTE_EXTENSIONS","isMetadataRouteFile","getWebpackBundler","isAppBuiltinPage","PLUGIN_NAME","pluginState","serverActions","edgeServerActions","serverActionModules","edgeServerActionModules","ssrModules","edgeSsrModules","rscModules","edgeRscModules","injectedClientEntries","POSSIBLE_SHARED_CONVENTIONS","STANDALONE_BUNDLE_CONVENTION","deduplicateCSSImportsForEntry","mergedCSSimports","sortedCSSImports","Object","entries","sort","a","b","aPath","bPath","aDepth","split","length","bDepth","aName","name","bName","indexA","indexOf","indexB","dedupedCSSImports","trackedCSSImports","Set","entryFilePath","cssImports","entryConventionName","cssImport","has","includes","add","push","FlightClientEntryPlugin","constructor","options","dev","appDir","projectDir","join","isEdgeServer","assetPrefix","encryptionKey","webpackRuntime","apply","compiler","hooks","finishMake","tapPromise","compilation","createClientEntries","afterCompile","tap","recordModule","modId","mod","modPath","matchResource","resourceResolveData","modQuery","query","modResource","startsWith","resource","layer","reactServerComponents","key","relative","context","replace","moduleInfo","moduleId","async","moduleGraph","isAsync","serverSideRendering","ssrNamedModuleId","_chunk","_chunkGroup","make","processAssets","stage","Compilation","PROCESS_ASSETS_STAGE_OPTIMIZE_HASH","createActionAssets","addClientEntryAndSSRModulesList","createdSSRDependenciesForEntry","addActionEntryList","actionMapsPerEntry","createdActionIds","entryModule","internalClientComponentEntryImports","actionEntryImports","Map","clientEntriesToInject","moduleReferences","connection","entryRequest","dependency","request","endsWith","metadataRoute","filePath","isDynamicRouteExtension","getMetadataRouteResource","clientComponentImports","actionImports","collectComponentInfoFromServerEntryDependency","resolvedModule","forEach","dep","actions","set","isAbsoluteRequest","isAbsolute","isAppRouterBuiltinPage","keys","value","relativeRequest","bundlePath","appDirRelativeRequest","isMetadataEntryFile","assign","entryName","absolutePagePath","clientEntryToInject","injected","injectClientEntryAndSSRModules","clientImports","reduce","res","curr","size","injectActionEntry","invalidator","outputPath","some","shouldInvalidate","invalidate","client","Promise","all","flatMap","addClientEntryAndSSRModules","addedClientActionEntryList","actionMapsPerClientEntry","ssrEntryDependencies","collectClientActionsFromDependencies","dependencies","remainingClientImportedActions","remainingActionEntryImports","remainingActionNames","action","id","fromClient","collectedActions","visitedModule","visitedEntry","collectActions","collectActionsInDep","getModuleResource","actionIds","rsc","map","exportedName","filename","posix","entryDependency","ssrEntryModule","getResolvedModule","depModule","visitedOfClientComponentsTraverse","CSSImports","filterClientComponents","importedIdentifiers","addClientImport","sideEffectFree","factoryMeta","unused","getExportsInfo","isModuleUsed","dependencyIds","ids","Array","from","bundler","modules","test","localeCompare","clientImportPath","clientBrowserLoader","sep","x","JSON","server","clientServerLoader","pageKey","APP","type","CHILD_ENTRY","parentEntries","absoluteEntryFilePath","dispose","lastActiveTime","Date","now","entryData","clientComponentSSREntryDep","EntryPlugin","createDependency","clientComponentRSCEntryDep","addEntry","actionsArray","actionsFromModule","resolve","actionLoader","__client_imported__","currentCompilerServerActions","workers","actionBrowser","actionEntryDep","reject","addInclude","err","module","setUsedInUnknownWay","entry","get","includeDependencies","call","addModuleTree","contextInfo","issuerLayer","failedEntry","succeedEntry","chunkGroup","mapping","serverManifest","node","edge","edgeServerManifest","json","undefined","edgeJson","emitAsset","RawSource","modRequest","isFirstVisitModule","clientEntryType","isCjsModule","assumedSourceType","clientImportsSet","isAutoModuleSourceType","isCjsDefaultImport","identifier","rawRequest"],"mappings":"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","ignoreList":[0]}