From 7838ba3832e4344b0986bddd5dd5df08099585d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Markb=C3=A5ge?= Date: Wed, 9 Oct 2024 21:14:49 -0400 Subject: [PATCH] Move WorkStore and ActionStore to /server/app-render (#70934) These are only for the server and really primarily just for the RSC layer. So it never made much sense why these lived in the `/client/components/` folder. While we're add it, I'm just moving these over to join the other ones already there. --------- Co-authored-by: Janka Uryga --- packages/next/src/build/webpack-config.ts | 2 +- .../client/components/bailout-to-client-rendering.ts | 2 +- packages/next/src/client/components/client-page.tsx | 2 +- .../next/src/client/components/client-segment.tsx | 2 +- .../next/src/client/components/error-boundary.tsx | 2 +- .../src/client/components/navigation-untracked.ts | 2 +- packages/next/src/client/components/redirect.ts | 2 +- packages/next/src/export/routes/app-page.ts | 2 +- packages/next/src/lib/metadata/metadata-context.tsx | 2 +- packages/next/src/lib/metadata/metadata.tsx | 2 +- packages/next/src/lib/metadata/resolve-metadata.ts | 2 +- packages/next/src/server/after/after-context.test.ts | 9 +++------ packages/next/src/server/after/after-context.ts | 4 ++-- packages/next/src/server/after/after.ts | 4 ++-- packages/next/src/server/after/revalidation-utils.ts | 2 +- .../app-render}/action-async-storage-instance.ts | 0 .../app-render}/action-async-storage.external.ts | 0 .../next/src/server/app-render/action-handler.ts | 6 +++--- packages/next/src/server/app-render/app-render.tsx | 4 ++-- .../app-render}/async-local-storage.ts | 0 .../app-render/clean-async-snapshot-instance.ts | 2 +- .../next/src/server/app-render/dynamic-rendering.ts | 6 +++--- packages/next/src/server/app-render/entry-base.ts | 4 ++-- .../app-render}/work-async-storage-instance.ts | 0 .../app-render}/work-async-storage.external.ts | 10 +++++----- .../app-render/work-unit-async-storage-instance.ts | 2 +- .../app-render/work-unit-async-storage.external.ts | 10 +++++----- .../next/src/server/async-storage/cache-scope.ts | 2 +- .../src/server/async-storage/with-request-store.ts | 2 +- .../next/src/server/async-storage/with-work-store.ts | 2 +- packages/next/src/server/lib/patch-fetch.test.ts | 4 ++-- packages/next/src/server/lib/patch-fetch.ts | 4 ++-- .../src/server/node-environment-extensions/utils.tsx | 2 +- packages/next/src/server/request/connection.ts | 2 +- packages/next/src/server/request/cookies.ts | 12 ++++++------ packages/next/src/server/request/draft-mode.ts | 6 +++--- packages/next/src/server/request/headers.ts | 4 ++-- packages/next/src/server/request/params.ts | 2 +- packages/next/src/server/request/search-params.ts | 2 +- .../src/server/route-modules/app-route/module.ts | 4 ++-- .../next/src/server/use-cache/use-cache-wrapper.ts | 4 ++-- packages/next/src/server/web/adapter.ts | 4 ++-- .../web/spec-extension/adapters/request-cookies.ts | 2 +- .../next/src/server/web/spec-extension/revalidate.ts | 4 ++-- .../src/server/web/spec-extension/unstable-cache.ts | 2 +- .../server/web/spec-extension/unstable-no-store.ts | 4 ++-- .../src/shared/lib/lazy-dynamic/preload-chunks.tsx | 2 +- 47 files changed, 76 insertions(+), 79 deletions(-) rename packages/next/src/{client/components => server/app-render}/action-async-storage-instance.ts (100%) rename packages/next/src/{client/components => server/app-render}/action-async-storage.external.ts (100%) rename packages/next/src/{client/components => server/app-render}/async-local-storage.ts (100%) rename packages/next/src/{client/components => server/app-render}/work-async-storage-instance.ts (100%) rename packages/next/src/{client/components => server/app-render}/work-async-storage.external.ts (85%) diff --git a/packages/next/src/build/webpack-config.ts b/packages/next/src/build/webpack-config.ts index e737f0d817f87..bd5ff59f5eafc 100644 --- a/packages/next/src/build/webpack-config.ts +++ b/packages/next/src/build/webpack-config.ts @@ -131,7 +131,7 @@ const browserNonTranspileModules = [ const precompileRegex = /[\\/]next[\\/]dist[\\/]compiled[\\/]/ const asyncStoragesRegex = - /next[\\/]dist[\\/](esm[\\/])?(client[\\/]components|server[\\/]app-render|)[\\/](work-async-storage|action-async-storage|work-unit-async-storage)/ + /next[\\/]dist[\\/](esm[\\/])?server[\\/]app-render[\\/](work-async-storage|action-async-storage|work-unit-async-storage)/ // Support for NODE_PATH const nodePathList = (process.env.NODE_PATH || '') diff --git a/packages/next/src/client/components/bailout-to-client-rendering.ts b/packages/next/src/client/components/bailout-to-client-rendering.ts index fc8826bc8a67a..f9baad6d8d373 100644 --- a/packages/next/src/client/components/bailout-to-client-rendering.ts +++ b/packages/next/src/client/components/bailout-to-client-rendering.ts @@ -1,5 +1,5 @@ import { BailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr' -import { workAsyncStorage } from './work-async-storage.external' +import { workAsyncStorage } from '../../server/app-render/work-async-storage.external' export function bailoutToClientRendering(reason: string): void | never { const workStore = workAsyncStorage.getStore() diff --git a/packages/next/src/client/components/client-page.tsx b/packages/next/src/client/components/client-page.tsx index 69537f78695c9..cb41e4163d5ea 100644 --- a/packages/next/src/client/components/client-page.tsx +++ b/packages/next/src/client/components/client-page.tsx @@ -27,7 +27,7 @@ export function ClientPageRoot({ }) { if (typeof window === 'undefined') { const { workAsyncStorage } = - require('./work-async-storage.external') as typeof import('./work-async-storage.external') + require('../../server/app-render/work-async-storage.external') as typeof import('../../server/app-render/work-async-storage.external') let clientSearchParams: Promise let clientParams: Promise diff --git a/packages/next/src/client/components/client-segment.tsx b/packages/next/src/client/components/client-segment.tsx index 46b5199b99eaf..8a92b16c9675e 100644 --- a/packages/next/src/client/components/client-segment.tsx +++ b/packages/next/src/client/components/client-segment.tsx @@ -26,7 +26,7 @@ export function ClientSegmentRoot({ }) { if (typeof window === 'undefined') { const { workAsyncStorage } = - require('./work-async-storage.external') as typeof import('./work-async-storage.external') + require('../../server/app-render/work-async-storage.external') as typeof import('../../server/app-render/work-async-storage.external') let clientParams: Promise // We are going to instrument the searchParams prop with tracking for the diff --git a/packages/next/src/client/components/error-boundary.tsx b/packages/next/src/client/components/error-boundary.tsx index 112a71b6a35c2..4e04ba0b07a25 100644 --- a/packages/next/src/client/components/error-boundary.tsx +++ b/packages/next/src/client/components/error-boundary.tsx @@ -4,7 +4,7 @@ import React, { type JSX } from 'react' import { useUntrackedPathname } from './navigation-untracked' import { isNextRouterError } from './is-next-router-error' import { handleHardNavError } from './nav-failure-handler' -import { workAsyncStorage } from './work-async-storage.external' +import { workAsyncStorage } from '../../server/app-render/work-async-storage.external' const styles = { error: { diff --git a/packages/next/src/client/components/navigation-untracked.ts b/packages/next/src/client/components/navigation-untracked.ts index 5c1a92ae33a9f..4d8db4198439a 100644 --- a/packages/next/src/client/components/navigation-untracked.ts +++ b/packages/next/src/client/components/navigation-untracked.ts @@ -11,7 +11,7 @@ function hasFallbackRouteParams() { if (typeof window === 'undefined') { // AsyncLocalStorage should not be included in the client bundle. const { workAsyncStorage } = - require('./work-async-storage.external') as typeof import('./work-async-storage.external') + require('../../server/app-render/work-async-storage.external') as typeof import('../../server/app-render/work-async-storage.external') const workStore = workAsyncStorage.getStore() if (!workStore) return false diff --git a/packages/next/src/client/components/redirect.ts b/packages/next/src/client/components/redirect.ts index 280ed1d2a763c..00946a27e6d69 100644 --- a/packages/next/src/client/components/redirect.ts +++ b/packages/next/src/client/components/redirect.ts @@ -1,4 +1,4 @@ -import { actionAsyncStorage } from './action-async-storage.external' +import { actionAsyncStorage } from '../../server/app-render/action-async-storage.external' import { RedirectStatusCode } from './redirect-status-code' const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT' diff --git a/packages/next/src/export/routes/app-page.ts b/packages/next/src/export/routes/app-page.ts index 05b35cba45d65..d8ce8ed29a815 100644 --- a/packages/next/src/export/routes/app-page.ts +++ b/packages/next/src/export/routes/app-page.ts @@ -21,7 +21,7 @@ import { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-cs import { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node' import { NEXT_IS_PRERENDER_HEADER } from '../../client/components/app-router-headers' import type { FetchMetrics } from '../../server/base-http' -import type { WorkStore } from '../../client/components/work-async-storage.external' +import type { WorkStore } from '../../server/app-render/work-async-storage.external' import type { FallbackRouteParams } from '../../server/request/fallback-params' export const enum ExportedAppPageFiles { diff --git a/packages/next/src/lib/metadata/metadata-context.tsx b/packages/next/src/lib/metadata/metadata-context.tsx index cecce428f6305..fbbfd38881aaf 100644 --- a/packages/next/src/lib/metadata/metadata-context.tsx +++ b/packages/next/src/lib/metadata/metadata-context.tsx @@ -1,6 +1,6 @@ import type { AppRenderContext } from '../../server/app-render/app-render' import type { MetadataContext } from './types/resolvers' -import type { WorkStore } from '../../client/components/work-async-storage.external' +import type { WorkStore } from '../../server/app-render/work-async-storage.external' import { trackFallbackParamAccessed } from '../../server/app-render/dynamic-rendering' export function createMetadataContext( diff --git a/packages/next/src/lib/metadata/metadata.tsx b/packages/next/src/lib/metadata/metadata.tsx index fd998daf1651c..91f6f7875b589 100644 --- a/packages/next/src/lib/metadata/metadata.tsx +++ b/packages/next/src/lib/metadata/metadata.tsx @@ -32,7 +32,7 @@ import type { } from './types/metadata-interface' import { isNotFoundError } from '../../client/components/not-found' import type { MetadataContext } from './types/resolvers' -import type { WorkStore } from '../../client/components/work-async-storage.external' +import type { WorkStore } from '../../server/app-render/work-async-storage.external' // Use a promise to share the status of the metadata resolving, // returning two components `MetadataTree` and `MetadataOutlet` diff --git a/packages/next/src/lib/metadata/resolve-metadata.ts b/packages/next/src/lib/metadata/resolve-metadata.ts index 2d9af13106b9b..534152721c31c 100644 --- a/packages/next/src/lib/metadata/resolve-metadata.ts +++ b/packages/next/src/lib/metadata/resolve-metadata.ts @@ -52,7 +52,7 @@ import { getTracer } from '../../server/lib/trace/tracer' import { ResolveMetadataSpan } from '../../server/lib/trace/constants' import { PAGE_SEGMENT_KEY } from '../../shared/lib/segment' import * as Log from '../../build/output/log' -import type { WorkStore } from '../../client/components/work-async-storage.external' +import type { WorkStore } from '../../server/app-render/work-async-storage.external' import type { Params, CreateServerParamsForMetadata, diff --git a/packages/next/src/server/after/after-context.test.ts b/packages/next/src/server/after/after-context.test.ts index da6d024b0f405..0f0eaee8c0a98 100644 --- a/packages/next/src/server/after/after-context.test.ts +++ b/packages/next/src/server/after/after-context.test.ts @@ -1,14 +1,13 @@ import { DetachedPromise } from '../../lib/detached-promise' import { AsyncLocalStorage } from 'async_hooks' -import type { WorkStore } from '../../client/components/work-async-storage.external' +import type { WorkStore } from '../app-render/work-async-storage.external' import type { AfterContext } from './after-context' describe('AfterContext', () => { // 'async-local-storage.ts' needs `AsyncLocalStorage` on `globalThis` at import time, // so we have to do some contortions here to set it up before running anything else - type WASMod = - typeof import('../../client/components/work-async-storage.external') + type WASMod = typeof import('../app-render/work-async-storage.external') type AfterMod = typeof import('./after') type AfterContextMod = typeof import('./after-context') @@ -20,9 +19,7 @@ describe('AfterContext', () => { // @ts-expect-error globalThis.AsyncLocalStorage = AsyncLocalStorage - const WASMod = await import( - '../../client/components/work-async-storage.external' - ) + const WASMod = await import('../app-render/work-async-storage.external') workAsyncStorage = WASMod.workAsyncStorage const AfterContextMod = await import('./after-context') diff --git a/packages/next/src/server/after/after-context.ts b/packages/next/src/server/after/after-context.ts index 39cc107b06a31..b908fd9e89676 100644 --- a/packages/next/src/server/after/after-context.ts +++ b/packages/next/src/server/after/after-context.ts @@ -3,9 +3,9 @@ import type { RequestLifecycleOpts } from '../base-server' import type { AfterCallback, AfterTask } from './after' import { InvariantError } from '../../shared/lib/invariant-error' import { isThenable } from '../../shared/lib/is-thenable' -import { workAsyncStorage } from '../../client/components/work-async-storage.external' +import { workAsyncStorage } from '../app-render/work-async-storage.external' import { withExecuteRevalidates } from './revalidation-utils' -import { bindSnapshot } from '../../client/components/async-local-storage' +import { bindSnapshot } from '../app-render/async-local-storage' export type AfterContextOpts = { waitUntil: RequestLifecycleOpts['waitUntil'] | undefined diff --git a/packages/next/src/server/after/after.ts b/packages/next/src/server/after/after.ts index ced3dae2167aa..38381dd96b6a8 100644 --- a/packages/next/src/server/after/after.ts +++ b/packages/next/src/server/after/after.ts @@ -1,5 +1,5 @@ -import { workAsyncStorage } from '../../client/components/work-async-storage.external' -import { workUnitAsyncStorage } from '../../server/app-render/work-unit-async-storage.external' +import { workAsyncStorage } from '../app-render/work-async-storage.external' +import { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external' import { StaticGenBailoutError } from '../../client/components/static-generation-bailout' import { markCurrentScopeAsDynamic } from '../app-render/dynamic-rendering' diff --git a/packages/next/src/server/after/revalidation-utils.ts b/packages/next/src/server/after/revalidation-utils.ts index d36878587a81e..9b0093766c8a1 100644 --- a/packages/next/src/server/after/revalidation-utils.ts +++ b/packages/next/src/server/after/revalidation-utils.ts @@ -1,4 +1,4 @@ -import type { WorkStore } from '../../client/components/work-async-storage.external' +import type { WorkStore } from '../app-render/work-async-storage.external' /** Run a callback, and execute any *new* revalidations added during its runtime. */ export async function withExecuteRevalidates( diff --git a/packages/next/src/client/components/action-async-storage-instance.ts b/packages/next/src/server/app-render/action-async-storage-instance.ts similarity index 100% rename from packages/next/src/client/components/action-async-storage-instance.ts rename to packages/next/src/server/app-render/action-async-storage-instance.ts diff --git a/packages/next/src/client/components/action-async-storage.external.ts b/packages/next/src/server/app-render/action-async-storage.external.ts similarity index 100% rename from packages/next/src/client/components/action-async-storage.external.ts rename to packages/next/src/server/app-render/action-async-storage.external.ts diff --git a/packages/next/src/server/app-render/action-handler.ts b/packages/next/src/server/app-render/action-handler.ts index 59b5fd5e5768b..975cf777f225d 100644 --- a/packages/next/src/server/app-render/action-handler.ts +++ b/packages/next/src/server/app-render/action-handler.ts @@ -1,8 +1,8 @@ import type { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http' import type { SizeLimit } from '../../types' -import type { RequestStore } from '../../server/app-render/work-unit-async-storage.external' +import type { RequestStore } from '../app-render/work-unit-async-storage.external' import type { AppRenderContext, GenerateFlight } from './app-render' -import type { AppPageModule } from '../../server/route-modules/app-page/module' +import type { AppPageModule } from '../route-modules/app-page/module' import type { BaseNextRequest, BaseNextResponse } from '../base-http' import { @@ -19,7 +19,7 @@ import { type RedirectType, } from '../../client/components/redirect' import RenderResult from '../render-result' -import type { WorkStore } from '../../client/components/work-async-storage.external' +import type { WorkStore } from '../app-render/work-async-storage.external' import { FlightRenderResult } from './flight-render-result' import { filterReqHeaders, diff --git a/packages/next/src/server/app-render/app-render.tsx b/packages/next/src/server/app-render/app-render.tsx index b28838091ab98..a0512787fe6af 100644 --- a/packages/next/src/server/app-render/app-render.tsx +++ b/packages/next/src/server/app-render/app-render.tsx @@ -11,8 +11,8 @@ import type { FlightData, InitialRSCPayload, } from './types' -import type { WorkStore } from '../../client/components/work-async-storage.external' -import type { RequestStore } from '../../server/app-render/work-unit-async-storage.external' +import type { WorkStore } from '../app-render/work-async-storage.external' +import type { RequestStore } from '../app-render/work-unit-async-storage.external' import type { NextParsedUrlQuery } from '../request-meta' import type { LoaderTree } from '../lib/app-dir-module' import type { AppPageModule } from '../route-modules/app-page/module' diff --git a/packages/next/src/client/components/async-local-storage.ts b/packages/next/src/server/app-render/async-local-storage.ts similarity index 100% rename from packages/next/src/client/components/async-local-storage.ts rename to packages/next/src/server/app-render/async-local-storage.ts diff --git a/packages/next/src/server/app-render/clean-async-snapshot-instance.ts b/packages/next/src/server/app-render/clean-async-snapshot-instance.ts index 27ff09044ce27..c37bc4227a84a 100644 --- a/packages/next/src/server/app-render/clean-async-snapshot-instance.ts +++ b/packages/next/src/server/app-render/clean-async-snapshot-instance.ts @@ -1,4 +1,4 @@ -import { createSnapshot } from '../../client/components/async-local-storage' +import { createSnapshot } from '../app-render/async-local-storage' export const runInCleanSnapshot: ( fn: (...args: TArgs) => R, diff --git a/packages/next/src/server/app-render/dynamic-rendering.ts b/packages/next/src/server/app-render/dynamic-rendering.ts index 70439603fb56f..1fd02475e1a50 100644 --- a/packages/next/src/server/app-render/dynamic-rendering.ts +++ b/packages/next/src/server/app-render/dynamic-rendering.ts @@ -20,8 +20,8 @@ * read that data outside the cache and pass it in as an argument to the cached function. */ -import type { WorkStore } from '../../client/components/work-async-storage.external' -import type { WorkUnitStore } from '../../server/app-render/work-unit-async-storage.external' +import type { WorkStore } from '../app-render/work-async-storage.external' +import type { WorkUnitStore } from '../app-render/work-unit-async-storage.external' // Once postpone is in stable we should switch to importing the postpone export directly import React from 'react' @@ -33,7 +33,7 @@ import { type PrerenderStoreLegacy, type PrerenderStoreModern, } from './work-unit-async-storage.external' -import { workAsyncStorage } from '../../client/components/work-async-storage.external' +import { workAsyncStorage } from '../app-render/work-async-storage.external' import { makeHangingPromise } from '../dynamic-rendering-utils' import { METADATA_BOUNDARY_NAME, diff --git a/packages/next/src/server/app-render/entry-base.ts b/packages/next/src/server/app-render/entry-base.ts index 21e4a1c2857c1..261cb94813187 100644 --- a/packages/next/src/server/app-render/entry-base.ts +++ b/packages/next/src/server/app-render/entry-base.ts @@ -11,9 +11,9 @@ export { prerender } from 'react-server-dom-webpack/static.edge' import LayoutRouter from '../../client/components/layout-router' import RenderFromTemplateContext from '../../client/components/render-from-template-context' -import { workAsyncStorage } from '../../client/components/work-async-storage.external' +import { workAsyncStorage } from '../app-render/work-async-storage.external' import { workUnitAsyncStorage } from './work-unit-async-storage.external' -import { actionAsyncStorage } from '../../client/components/action-async-storage.external' +import { actionAsyncStorage } from '../app-render/action-async-storage.external' import { ClientPageRoot } from '../../client/components/client-page' import { ClientSegmentRoot } from '../../client/components/client-segment' import { diff --git a/packages/next/src/client/components/work-async-storage-instance.ts b/packages/next/src/server/app-render/work-async-storage-instance.ts similarity index 100% rename from packages/next/src/client/components/work-async-storage-instance.ts rename to packages/next/src/server/app-render/work-async-storage-instance.ts diff --git a/packages/next/src/client/components/work-async-storage.external.ts b/packages/next/src/server/app-render/work-async-storage.external.ts similarity index 85% rename from packages/next/src/client/components/work-async-storage.external.ts rename to packages/next/src/server/app-render/work-async-storage.external.ts index 039302bdbfeac..5fea5d17bf2be 100644 --- a/packages/next/src/client/components/work-async-storage.external.ts +++ b/packages/next/src/server/app-render/work-async-storage.external.ts @@ -1,11 +1,11 @@ import type { AsyncLocalStorage } from 'async_hooks' -import type { IncrementalCache } from '../../server/lib/incremental-cache' -import type { DynamicServerError } from './hooks-server-context' -import type { FetchMetrics } from '../../server/base-http' -import type { FallbackRouteParams } from '../../server/request/fallback-params' +import type { IncrementalCache } from '../lib/incremental-cache' +import type { DynamicServerError } from '../../client/components/hooks-server-context' +import type { FetchMetrics } from '../base-http' +import type { FallbackRouteParams } from '../request/fallback-params' import type { DeepReadonly } from '../../shared/lib/deep-readonly' import type { AppSegmentConfig } from '../../build/segment-config/app/app-segment-config' -import type { AfterContext } from '../../server/after/after-context' +import type { AfterContext } from '../after/after-context' // Share the instance module in the next-shared layer import { workAsyncStorage } from './work-async-storage-instance' with { 'turbopack-transition': 'next-shared' } diff --git a/packages/next/src/server/app-render/work-unit-async-storage-instance.ts b/packages/next/src/server/app-render/work-unit-async-storage-instance.ts index f7d9a22361d1b..53a429ec14fc3 100644 --- a/packages/next/src/server/app-render/work-unit-async-storage-instance.ts +++ b/packages/next/src/server/app-render/work-unit-async-storage-instance.ts @@ -1,4 +1,4 @@ -import { createAsyncLocalStorage } from '../../client/components/async-local-storage' +import { createAsyncLocalStorage } from './async-local-storage' import type { WorkUnitAsyncStorage } from './work-unit-async-storage.external' export const workUnitAsyncStorage: WorkUnitAsyncStorage = diff --git a/packages/next/src/server/app-render/work-unit-async-storage.external.ts b/packages/next/src/server/app-render/work-unit-async-storage.external.ts index c2e99b50d1312..2ffee7c093e14 100644 --- a/packages/next/src/server/app-render/work-unit-async-storage.external.ts +++ b/packages/next/src/server/app-render/work-unit-async-storage.external.ts @@ -1,14 +1,14 @@ import type { AsyncLocalStorage } from 'async_hooks' -import type { DraftModeProvider } from '../../server/async-storage/draft-mode-provider' -import type { ResponseCookies } from '../../server/web/spec-extension/cookies' -import type { ReadonlyHeaders } from '../../server/web/spec-extension/adapters/headers' -import type { ReadonlyRequestCookies } from '../../server/web/spec-extension/adapters/request-cookies' +import type { DraftModeProvider } from '../async-storage/draft-mode-provider' +import type { ResponseCookies } from '../web/spec-extension/cookies' +import type { ReadonlyHeaders } from '../web/spec-extension/adapters/headers' +import type { ReadonlyRequestCookies } from '../web/spec-extension/adapters/request-cookies' import type { CacheSignal } from './cache-signal' import type { DynamicTrackingState } from './dynamic-rendering' // Share the instance module in the next-shared layer import { workUnitAsyncStorage } from './work-unit-async-storage-instance' with { 'turbopack-transition': 'next-shared' } -import type { ServerComponentsHmrCache } from '../../server/response-cache' +import type { ServerComponentsHmrCache } from '../response-cache' export type RequestStore = { type: 'request' diff --git a/packages/next/src/server/async-storage/cache-scope.ts b/packages/next/src/server/async-storage/cache-scope.ts index 763bcc1a792c3..8aa6927ce2103 100644 --- a/packages/next/src/server/async-storage/cache-scope.ts +++ b/packages/next/src/server/async-storage/cache-scope.ts @@ -1,4 +1,4 @@ -import { createAsyncLocalStorage } from '../../client/components/async-local-storage' +import { createAsyncLocalStorage } from '../app-render/async-local-storage' export interface CacheScopeStore { cache?: Map diff --git a/packages/next/src/server/async-storage/with-request-store.ts b/packages/next/src/server/async-storage/with-request-store.ts index 5b5ddf733428c..4bbe2e89bf7e3 100644 --- a/packages/next/src/server/async-storage/with-request-store.ts +++ b/packages/next/src/server/async-storage/with-request-store.ts @@ -4,7 +4,7 @@ import type { AsyncLocalStorage } from 'async_hooks' import type { RequestStore, WorkUnitStore, -} from '../../server/app-render/work-unit-async-storage.external' +} from '../app-render/work-unit-async-storage.external' import type { RenderOpts } from '../app-render/types' import type { WithStore } from './with-store' import type { NextRequest } from '../web/spec-extension/request' diff --git a/packages/next/src/server/async-storage/with-work-store.ts b/packages/next/src/server/async-storage/with-work-store.ts index 7ae5c9f9b28cc..7d49f40369351 100644 --- a/packages/next/src/server/async-storage/with-work-store.ts +++ b/packages/next/src/server/async-storage/with-work-store.ts @@ -1,5 +1,5 @@ import type { WithStore } from './with-store' -import type { WorkStore } from '../../client/components/work-async-storage.external' +import type { WorkStore } from '../app-render/work-async-storage.external' import type { AsyncLocalStorage } from 'async_hooks' import type { IncrementalCache } from '../lib/incremental-cache' import type { RenderOpts } from '../app-render/types' diff --git a/packages/next/src/server/lib/patch-fetch.test.ts b/packages/next/src/server/lib/patch-fetch.test.ts index c684594ba5a5c..4652937e33392 100644 --- a/packages/next/src/server/lib/patch-fetch.test.ts +++ b/packages/next/src/server/lib/patch-fetch.test.ts @@ -1,6 +1,6 @@ import { AsyncLocalStorage } from 'node:async_hooks' -import type { WorkUnitStore } from '../../server/app-render/work-unit-async-storage.external' -import type { WorkStore } from '../../client/components/work-async-storage.external' +import type { WorkUnitStore } from '../app-render/work-unit-async-storage.external' +import type { WorkStore } from '../app-render/work-async-storage.external' import type { IncrementalCache } from './incremental-cache' import { createPatchedFetcher } from './patch-fetch' diff --git a/packages/next/src/server/lib/patch-fetch.ts b/packages/next/src/server/lib/patch-fetch.ts index 35060f2e8ab7d..fd998f73fbe19 100644 --- a/packages/next/src/server/lib/patch-fetch.ts +++ b/packages/next/src/server/lib/patch-fetch.ts @@ -1,7 +1,7 @@ import type { WorkAsyncStorage, WorkStore, -} from '../../client/components/work-async-storage.external' +} from '../app-render/work-async-storage.external' import { AppRenderSpan, NextNodeServerSpan } from './trace/constants' import { getTracer, SpanKind } from './trace/tracer' @@ -19,7 +19,7 @@ import type { WorkUnitAsyncStorage, WorkUnitStore, RequestStore, -} from '../../server/app-render/work-unit-async-storage.external' +} from '../app-render/work-unit-async-storage.external' import { CachedRouteKind, IncrementalCacheKind, diff --git a/packages/next/src/server/node-environment-extensions/utils.tsx b/packages/next/src/server/node-environment-extensions/utils.tsx index a8b0c3ecbb5f9..477210938c2d5 100644 --- a/packages/next/src/server/node-environment-extensions/utils.tsx +++ b/packages/next/src/server/node-environment-extensions/utils.tsx @@ -1,4 +1,4 @@ -import { workAsyncStorage } from '../../client/components/work-async-storage.external' +import { workAsyncStorage } from '../app-render/work-async-storage.external' import { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external' import { abortOnSynchronousDynamicDataAccess } from '../app-render/dynamic-rendering' diff --git a/packages/next/src/server/request/connection.ts b/packages/next/src/server/request/connection.ts index e73be01382286..ddfa1e9401424 100644 --- a/packages/next/src/server/request/connection.ts +++ b/packages/next/src/server/request/connection.ts @@ -1,4 +1,4 @@ -import { workAsyncStorage } from '../../client/components/work-async-storage.external' +import { workAsyncStorage } from '../app-render/work-async-storage.external' import { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external' import { postponeWithTracking, diff --git a/packages/next/src/server/request/cookies.ts b/packages/next/src/server/request/cookies.ts index dc33cc9c35720..f7d3804da30ac 100644 --- a/packages/next/src/server/request/cookies.ts +++ b/packages/next/src/server/request/cookies.ts @@ -2,9 +2,9 @@ import { type ReadonlyRequestCookies, type ResponseCookies, RequestCookiesAdapter, -} from '../../server/web/spec-extension/adapters/request-cookies' -import { RequestCookies } from '../../server/web/spec-extension/cookies' -import { workAsyncStorage } from '../../client/components/work-async-storage.external' +} from '../web/spec-extension/adapters/request-cookies' +import { RequestCookies } from '../web/spec-extension/cookies' +import { workAsyncStorage } from '../app-render/work-async-storage.external' import { workUnitAsyncStorage, type PrerenderStoreModern, @@ -14,9 +14,9 @@ import { abortAndThrowOnSynchronousDynamicDataAccess, throwToInterruptStaticGeneration, trackDynamicDataInDynamicRender, -} from '../../server/app-render/dynamic-rendering' -import { getExpectedRequestStore } from '../../server/app-render/work-unit-async-storage.external' -import { actionAsyncStorage } from '../../client/components/action-async-storage.external' +} from '../app-render/dynamic-rendering' +import { getExpectedRequestStore } from '../app-render/work-unit-async-storage.external' +import { actionAsyncStorage } from '../app-render/action-async-storage.external' import { StaticGenBailoutError } from '../../client/components/static-generation-bailout' import { makeResolvedReactPromise } from './utils' import { makeHangingPromise } from '../dynamic-rendering-utils' diff --git a/packages/next/src/server/request/draft-mode.ts b/packages/next/src/server/request/draft-mode.ts index 71a42be7a3eb1..0e2e1b3128cd2 100644 --- a/packages/next/src/server/request/draft-mode.ts +++ b/packages/next/src/server/request/draft-mode.ts @@ -1,8 +1,8 @@ -import { getExpectedRequestStore } from '../../server/app-render/work-unit-async-storage.external' +import { getExpectedRequestStore } from '../app-render/work-unit-async-storage.external' -import type { DraftModeProvider } from '../../server/async-storage/draft-mode-provider' +import type { DraftModeProvider } from '../async-storage/draft-mode-provider' -import { workAsyncStorage } from '../../client/components/work-async-storage.external' +import { workAsyncStorage } from '../app-render/work-async-storage.external' import { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external' import { trackDynamicDataAccessed } from '../app-render/dynamic-rendering' import { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-loger' diff --git a/packages/next/src/server/request/headers.ts b/packages/next/src/server/request/headers.ts index 8bd8ade55da6c..862fe8b47173e 100644 --- a/packages/next/src/server/request/headers.ts +++ b/packages/next/src/server/request/headers.ts @@ -1,8 +1,8 @@ import { HeadersAdapter, type ReadonlyHeaders, -} from '../../server/web/spec-extension/adapters/headers' -import { workAsyncStorage } from '../../client/components/work-async-storage.external' +} from '../web/spec-extension/adapters/headers' +import { workAsyncStorage } from '../app-render/work-async-storage.external' import { getExpectedRequestStore } from '../app-render/work-unit-async-storage.external' import { workUnitAsyncStorage, diff --git a/packages/next/src/server/request/params.ts b/packages/next/src/server/request/params.ts index fa20cd2cf55a0..b6b3fe1bb13a5 100644 --- a/packages/next/src/server/request/params.ts +++ b/packages/next/src/server/request/params.ts @@ -1,4 +1,4 @@ -import type { WorkStore } from '../../client/components/work-async-storage.external' +import type { WorkStore } from '../app-render/work-async-storage.external' import type { FallbackRouteParams } from './fallback-params' import { ReflectAdapter } from '../web/spec-extension/adapters/reflect' diff --git a/packages/next/src/server/request/search-params.ts b/packages/next/src/server/request/search-params.ts index 395d611887915..ecabd44a96b41 100644 --- a/packages/next/src/server/request/search-params.ts +++ b/packages/next/src/server/request/search-params.ts @@ -1,4 +1,4 @@ -import type { WorkStore } from '../../client/components/work-async-storage.external' +import type { WorkStore } from '../app-render/work-async-storage.external' import { ReflectAdapter } from '../web/spec-extension/adapters/reflect' import { diff --git a/packages/next/src/server/route-modules/app-route/module.ts b/packages/next/src/server/route-modules/app-route/module.ts index 1d621e9f9ba77..f99f1572cfd8f 100644 --- a/packages/next/src/server/route-modules/app-route/module.ts +++ b/packages/next/src/server/route-modules/app-route/module.ts @@ -40,7 +40,7 @@ import { DynamicServerError } from '../../../client/components/hooks-server-cont import { workAsyncStorage, type WorkStore, -} from '../../../client/components/work-async-storage.external' +} from '../../app-render/work-async-storage.external' import { workUnitAsyncStorage, type WorkUnitStore, @@ -49,7 +49,7 @@ import { import { actionAsyncStorage, type ActionStore, -} from '../../../client/components/action-async-storage.external' +} from '../../app-render/action-async-storage.external' import * as sharedModules from './shared-modules' import { getIsServerAction } from '../../lib/server-action-request-meta' import { RequestCookies } from 'next/dist/compiled/@edge-runtime/cookies' diff --git a/packages/next/src/server/use-cache/use-cache-wrapper.ts b/packages/next/src/server/use-cache/use-cache-wrapper.ts index f487692db4634..cf615270c750e 100644 --- a/packages/next/src/server/use-cache/use-cache-wrapper.ts +++ b/packages/next/src/server/use-cache/use-cache-wrapper.ts @@ -12,8 +12,8 @@ import { createTemporaryReferenceSet as createClientTemporaryReferenceSet, } from 'react-server-dom-webpack/client.edge' -import type { WorkStore } from '../../client/components/work-async-storage.external' -import { workAsyncStorage } from '../../client/components/work-async-storage.external' +import type { WorkStore } from '../app-render/work-async-storage.external' +import { workAsyncStorage } from '../app-render/work-async-storage.external' import type { UseCacheStore } from '../app-render/work-unit-async-storage.external' import { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external' import { runInCleanSnapshot } from '../app-render/clean-async-snapshot.external' diff --git a/packages/next/src/server/web/adapter.ts b/packages/next/src/server/web/adapter.ts index b0a4ce59e6b8a..a8704eec22b76 100644 --- a/packages/next/src/server/web/adapter.ts +++ b/packages/next/src/server/web/adapter.ts @@ -13,12 +13,12 @@ import { normalizeRscURL } from '../../shared/lib/router/utils/app-paths' import { FLIGHT_HEADERS } from '../../client/components/app-router-headers' import { ensureInstrumentationRegistered } from './globals' import { withRequestStore } from '../async-storage/with-request-store' -import { workUnitAsyncStorage } from '../../server/app-render/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external' import { withWorkStore, type WorkStoreContext, } from '../async-storage/with-work-store' -import { workAsyncStorage } from '../../client/components/work-async-storage.external' +import { workAsyncStorage } from '../app-render/work-async-storage.external' import { NEXT_ROUTER_PREFETCH_HEADER } from '../../client/components/app-router-headers' import { getTracer } from '../lib/trace/tracer' import type { TextMapGetter } from 'next/dist/compiled/@opentelemetry/api' diff --git a/packages/next/src/server/web/spec-extension/adapters/request-cookies.ts b/packages/next/src/server/web/spec-extension/adapters/request-cookies.ts index e6aaa298b4c93..fea02788828d1 100644 --- a/packages/next/src/server/web/spec-extension/adapters/request-cookies.ts +++ b/packages/next/src/server/web/spec-extension/adapters/request-cookies.ts @@ -2,7 +2,7 @@ import type { RequestCookies } from '../cookies' import { ResponseCookies } from '../cookies' import { ReflectAdapter } from './reflect' -import { workAsyncStorage } from '../../../../client/components/work-async-storage.external' +import { workAsyncStorage } from '../../../app-render/work-async-storage.external' /** * @internal diff --git a/packages/next/src/server/web/spec-extension/revalidate.ts b/packages/next/src/server/web/spec-extension/revalidate.ts index f87bcffc91b76..d3802b2420b25 100644 --- a/packages/next/src/server/web/spec-extension/revalidate.ts +++ b/packages/next/src/server/web/spec-extension/revalidate.ts @@ -4,8 +4,8 @@ import { NEXT_CACHE_IMPLICIT_TAG_ID, NEXT_CACHE_SOFT_TAG_MAX_LENGTH, } from '../../../lib/constants' -import { workAsyncStorage } from '../../../client/components/work-async-storage.external' -import { workUnitAsyncStorage } from '../../../server/app-render/work-unit-async-storage.external' +import { workAsyncStorage } from '../../app-render/work-async-storage.external' +import { workUnitAsyncStorage } from '../../app-render/work-unit-async-storage.external' /** * This function allows you to purge [cached data](https://nextjs.org/docs/app/building-your-application/caching) on-demand for a specific cache tag. diff --git a/packages/next/src/server/web/spec-extension/unstable-cache.ts b/packages/next/src/server/web/spec-extension/unstable-cache.ts index 0db7dd2ac0d8d..58575e350efaf 100644 --- a/packages/next/src/server/web/spec-extension/unstable-cache.ts +++ b/packages/next/src/server/web/spec-extension/unstable-cache.ts @@ -6,7 +6,7 @@ import { validateRevalidate, validateTags, } from '../../lib/patch-fetch' -import { workAsyncStorage } from '../../../client/components/work-async-storage.external' +import { workAsyncStorage } from '../../app-render/work-async-storage.external' import { workUnitAsyncStorage } from '../../app-render/work-unit-async-storage.external' import { CachedRouteKind, diff --git a/packages/next/src/server/web/spec-extension/unstable-no-store.ts b/packages/next/src/server/web/spec-extension/unstable-no-store.ts index 16fcab1080d32..3e93033e4e63d 100644 --- a/packages/next/src/server/web/spec-extension/unstable-no-store.ts +++ b/packages/next/src/server/web/spec-extension/unstable-no-store.ts @@ -1,5 +1,5 @@ -import { workAsyncStorage } from '../../../client/components/work-async-storage.external' -import { workUnitAsyncStorage } from '../../../server/app-render/work-unit-async-storage.external' +import { workAsyncStorage } from '../../app-render/work-async-storage.external' +import { workUnitAsyncStorage } from '../../app-render/work-unit-async-storage.external' import { markCurrentScopeAsDynamic } from '../../app-render/dynamic-rendering' /** diff --git a/packages/next/src/shared/lib/lazy-dynamic/preload-chunks.tsx b/packages/next/src/shared/lib/lazy-dynamic/preload-chunks.tsx index 5c6dd47e21359..630e9b4ab8522 100644 --- a/packages/next/src/shared/lib/lazy-dynamic/preload-chunks.tsx +++ b/packages/next/src/shared/lib/lazy-dynamic/preload-chunks.tsx @@ -2,7 +2,7 @@ import { preload } from 'react-dom' -import { workAsyncStorage } from '../../../client/components/work-async-storage.external' +import { workAsyncStorage } from '../../../server/app-render/work-async-storage.external' import { encodeURIPath } from '../encode-uri-path' export function PreloadChunks({