diff --git a/packages/next/src/server/after/after.ts b/packages/next/src/server/after/after.ts index f0c23c743a573..ced3dae2167aa 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 '../../client/components/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../../server/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/app-render/action-handler.ts b/packages/next/src/server/app-render/action-handler.ts index de472e0b54dd5..59b5fd5e5768b 100644 --- a/packages/next/src/server/app-render/action-handler.ts +++ b/packages/next/src/server/app-render/action-handler.ts @@ -1,6 +1,6 @@ import type { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http' import type { SizeLimit } from '../../types' -import type { RequestStore } from '../../client/components/work-unit-async-storage.external' +import type { RequestStore } from '../../server/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 { BaseNextRequest, BaseNextResponse } from '../base-http' diff --git a/packages/next/src/server/app-render/app-render.tsx b/packages/next/src/server/app-render/app-render.tsx index 3c6046804b816..b28838091ab98 100644 --- a/packages/next/src/server/app-render/app-render.tsx +++ b/packages/next/src/server/app-render/app-render.tsx @@ -12,7 +12,7 @@ import type { InitialRSCPayload, } from './types' import type { WorkStore } from '../../client/components/work-async-storage.external' -import type { RequestStore } from '../../client/components/work-unit-async-storage.external' +import type { RequestStore } from '../../server/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' @@ -151,7 +151,7 @@ import { waitAtLeastOneReactRenderTask } from '../../lib/scheduler' import { workUnitAsyncStorage, type PrerenderStore, -} from '../../client/components/work-unit-async-storage.external' +} from './work-unit-async-storage.external' import { CacheSignal } from './cache-signal' import { getTracedMetadata } from '../lib/trace/utils' diff --git a/packages/next/src/server/app-render/create-component-tree.tsx b/packages/next/src/server/app-render/create-component-tree.tsx index 9eac86ec9cff4..b6714cccc9d91 100644 --- a/packages/next/src/server/app-render/create-component-tree.tsx +++ b/packages/next/src/server/app-render/create-component-tree.tsx @@ -20,7 +20,7 @@ import { NextNodeServerSpan } from '../lib/trace/constants' import { StaticGenBailoutError } from '../../client/components/static-generation-bailout' import type { LoadingModuleData } from '../../shared/lib/app-router-context.shared-runtime' import type { Params } from '../request/params' -import { workUnitAsyncStorage } from '../../client/components/work-unit-async-storage.external' +import { workUnitAsyncStorage } from './work-unit-async-storage.external' /** * Use the provided loader tree to create the React Component tree. diff --git a/packages/next/src/server/app-render/dynamic-rendering.ts b/packages/next/src/server/app-render/dynamic-rendering.ts index 8dfd192232a68..70439603fb56f 100644 --- a/packages/next/src/server/app-render/dynamic-rendering.ts +++ b/packages/next/src/server/app-render/dynamic-rendering.ts @@ -21,7 +21,7 @@ */ import type { WorkStore } from '../../client/components/work-async-storage.external' -import type { WorkUnitStore } from '../../client/components/work-unit-async-storage.external' +import type { WorkUnitStore } from '../../server/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' @@ -32,7 +32,7 @@ import { workUnitAsyncStorage, type PrerenderStoreLegacy, type PrerenderStoreModern, -} from '../../client/components/work-unit-async-storage.external' +} from './work-unit-async-storage.external' import { workAsyncStorage } from '../../client/components/work-async-storage.external' import { makeHangingPromise } from '../dynamic-rendering-utils' import { diff --git a/packages/next/src/server/app-render/entry-base.ts b/packages/next/src/server/app-render/entry-base.ts index 0ccfe1355afb7..21e4a1c2857c1 100644 --- a/packages/next/src/server/app-render/entry-base.ts +++ b/packages/next/src/server/app-render/entry-base.ts @@ -12,7 +12,7 @@ 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 { workUnitAsyncStorage } from '../../client/components/work-unit-async-storage.external' +import { workUnitAsyncStorage } from './work-unit-async-storage.external' import { actionAsyncStorage } from '../../client/components/action-async-storage.external' import { ClientPageRoot } from '../../client/components/client-page' import { ClientSegmentRoot } from '../../client/components/client-segment' diff --git a/packages/next/src/client/components/work-unit-async-storage-instance.ts b/packages/next/src/server/app-render/work-unit-async-storage-instance.ts similarity index 65% rename from packages/next/src/client/components/work-unit-async-storage-instance.ts rename to packages/next/src/server/app-render/work-unit-async-storage-instance.ts index 53a429ec14fc3..f7d9a22361d1b 100644 --- a/packages/next/src/client/components/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 './async-local-storage' +import { createAsyncLocalStorage } from '../../client/components/async-local-storage' import type { WorkUnitAsyncStorage } from './work-unit-async-storage.external' export const workUnitAsyncStorage: WorkUnitAsyncStorage = diff --git a/packages/next/src/client/components/work-unit-async-storage.external.ts b/packages/next/src/server/app-render/work-unit-async-storage.external.ts similarity index 97% rename from packages/next/src/client/components/work-unit-async-storage.external.ts rename to packages/next/src/server/app-render/work-unit-async-storage.external.ts index 361ec17e8ff0b..c2e99b50d1312 100644 --- a/packages/next/src/client/components/work-unit-async-storage.external.ts +++ b/packages/next/src/server/app-render/work-unit-async-storage.external.ts @@ -3,8 +3,8 @@ import type { DraftModeProvider } from '../../server/async-storage/draft-mode-pr 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 { CacheSignal } from '../../server/app-render/cache-signal' -import type { DynamicTrackingState } from '../../server/app-render/dynamic-rendering' +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' } 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 c718abad2110d..5b5ddf733428c 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 '../../client/components/work-unit-async-storage.external' +} from '../../server/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/lib/patch-fetch.test.ts b/packages/next/src/server/lib/patch-fetch.test.ts index 241018dcf3bff..c684594ba5a5c 100644 --- a/packages/next/src/server/lib/patch-fetch.test.ts +++ b/packages/next/src/server/lib/patch-fetch.test.ts @@ -1,5 +1,5 @@ import { AsyncLocalStorage } from 'node:async_hooks' -import type { WorkUnitStore } from '../../client/components/work-unit-async-storage.external' +import type { WorkUnitStore } from '../../server/app-render/work-unit-async-storage.external' import type { WorkStore } from '../../client/components/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 c977ad29157f4..35060f2e8ab7d 100644 --- a/packages/next/src/server/lib/patch-fetch.ts +++ b/packages/next/src/server/lib/patch-fetch.ts @@ -19,7 +19,7 @@ import type { WorkUnitAsyncStorage, WorkUnitStore, RequestStore, -} from '../../client/components/work-unit-async-storage.external' +} from '../../server/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 cfebb2d38c403..a8b0c3ecbb5f9 100644 --- a/packages/next/src/server/node-environment-extensions/utils.tsx +++ b/packages/next/src/server/node-environment-extensions/utils.tsx @@ -1,5 +1,5 @@ import { workAsyncStorage } from '../../client/components/work-async-storage.external' -import { workUnitAsyncStorage } from '../../client/components/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external' import { abortOnSynchronousDynamicDataAccess } from '../app-render/dynamic-rendering' export function io(expression: string) { diff --git a/packages/next/src/server/request/connection.ts b/packages/next/src/server/request/connection.ts index 4f497e233d48e..e73be01382286 100644 --- a/packages/next/src/server/request/connection.ts +++ b/packages/next/src/server/request/connection.ts @@ -1,5 +1,5 @@ import { workAsyncStorage } from '../../client/components/work-async-storage.external' -import { workUnitAsyncStorage } from '../../client/components/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external' import { postponeWithTracking, throwToInterruptStaticGeneration, diff --git a/packages/next/src/server/request/cookies.ts b/packages/next/src/server/request/cookies.ts index 703e88f13aa1b..dc33cc9c35720 100644 --- a/packages/next/src/server/request/cookies.ts +++ b/packages/next/src/server/request/cookies.ts @@ -8,14 +8,14 @@ import { workAsyncStorage } from '../../client/components/work-async-storage.ext import { workUnitAsyncStorage, type PrerenderStoreModern, -} from '../../client/components/work-unit-async-storage.external' +} from '../app-render/work-unit-async-storage.external' import { postponeWithTracking, abortAndThrowOnSynchronousDynamicDataAccess, throwToInterruptStaticGeneration, trackDynamicDataInDynamicRender, } from '../../server/app-render/dynamic-rendering' -import { getExpectedRequestStore } from '../../client/components/work-unit-async-storage.external' +import { getExpectedRequestStore } from '../../server/app-render/work-unit-async-storage.external' import { actionAsyncStorage } from '../../client/components/action-async-storage.external' import { StaticGenBailoutError } from '../../client/components/static-generation-bailout' import { makeResolvedReactPromise } from './utils' diff --git a/packages/next/src/server/request/draft-mode.ts b/packages/next/src/server/request/draft-mode.ts index 865b4c48d1cf3..71a42be7a3eb1 100644 --- a/packages/next/src/server/request/draft-mode.ts +++ b/packages/next/src/server/request/draft-mode.ts @@ -1,9 +1,9 @@ -import { getExpectedRequestStore } from '../../client/components/work-unit-async-storage.external' +import { getExpectedRequestStore } from '../../server/app-render/work-unit-async-storage.external' import type { DraftModeProvider } from '../../server/async-storage/draft-mode-provider' import { workAsyncStorage } from '../../client/components/work-async-storage.external' -import { workUnitAsyncStorage } from '../../client/components/work-unit-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 e04f65f46ab8e..8bd8ade55da6c 100644 --- a/packages/next/src/server/request/headers.ts +++ b/packages/next/src/server/request/headers.ts @@ -3,11 +3,11 @@ import { type ReadonlyHeaders, } from '../../server/web/spec-extension/adapters/headers' import { workAsyncStorage } from '../../client/components/work-async-storage.external' -import { getExpectedRequestStore } from '../../client/components/work-unit-async-storage.external' +import { getExpectedRequestStore } from '../app-render/work-unit-async-storage.external' import { workUnitAsyncStorage, type PrerenderStoreModern, -} from '../../client/components/work-unit-async-storage.external' +} from '../app-render/work-unit-async-storage.external' import { postponeWithTracking, abortAndThrowOnSynchronousDynamicDataAccess, diff --git a/packages/next/src/server/request/params.ts b/packages/next/src/server/request/params.ts index 9318d6ebe5d1c..fa20cd2cf55a0 100644 --- a/packages/next/src/server/request/params.ts +++ b/packages/next/src/server/request/params.ts @@ -13,7 +13,7 @@ import { type PrerenderStorePPR, type PrerenderStoreLegacy, type PrerenderStoreModern, -} from '../../client/components/work-unit-async-storage.external' +} from '../app-render/work-unit-async-storage.external' import { InvariantError } from '../../shared/lib/invariant-error' import { makeResolvedReactPromise, describeStringPropertyAccess } from './utils' import { makeHangingPromise } from '../dynamic-rendering-utils' diff --git a/packages/next/src/server/request/search-params.ts b/packages/next/src/server/request/search-params.ts index 12dc98da502cc..395d611887915 100644 --- a/packages/next/src/server/request/search-params.ts +++ b/packages/next/src/server/request/search-params.ts @@ -14,7 +14,7 @@ import { type PrerenderStoreLegacy, type PrerenderStorePPR, type PrerenderStoreModern, -} from '../../client/components/work-unit-async-storage.external' +} from '../app-render/work-unit-async-storage.external' import { InvariantError } from '../../shared/lib/invariant-error' import { makeHangingPromise } from '../dynamic-rendering-utils' import { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-loger' 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 40653168b6b41..1d621e9f9ba77 100644 --- a/packages/next/src/server/route-modules/app-route/module.ts +++ b/packages/next/src/server/route-modules/app-route/module.ts @@ -45,7 +45,7 @@ import { workUnitAsyncStorage, type WorkUnitStore, type PrerenderStore, -} from '../../../client/components/work-unit-async-storage.external' +} from '../../app-render/work-unit-async-storage.external' import { actionAsyncStorage, type ActionStore, 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 b567645d3bb7e..f487692db4634 100644 --- a/packages/next/src/server/use-cache/use-cache-wrapper.ts +++ b/packages/next/src/server/use-cache/use-cache-wrapper.ts @@ -14,8 +14,8 @@ import { import type { WorkStore } from '../../client/components/work-async-storage.external' import { workAsyncStorage } from '../../client/components/work-async-storage.external' -import type { UseCacheStore } from '../../client/components/work-unit-async-storage.external' -import { workUnitAsyncStorage } from '../../client/components/work-unit-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' import type { ClientReferenceManifest } from '../../build/webpack/plugins/flight-manifest-plugin' diff --git a/packages/next/src/server/web/adapter.ts b/packages/next/src/server/web/adapter.ts index 425742f3bae84..b0a4ce59e6b8a 100644 --- a/packages/next/src/server/web/adapter.ts +++ b/packages/next/src/server/web/adapter.ts @@ -13,7 +13,7 @@ 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 '../../client/components/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../../server/app-render/work-unit-async-storage.external' import { withWorkStore, type WorkStoreContext, diff --git a/packages/next/src/server/web/spec-extension/revalidate.ts b/packages/next/src/server/web/spec-extension/revalidate.ts index 876270533fc4e..f87bcffc91b76 100644 --- a/packages/next/src/server/web/spec-extension/revalidate.ts +++ b/packages/next/src/server/web/spec-extension/revalidate.ts @@ -5,7 +5,7 @@ import { NEXT_CACHE_SOFT_TAG_MAX_LENGTH, } from '../../../lib/constants' import { workAsyncStorage } from '../../../client/components/work-async-storage.external' -import { workUnitAsyncStorage } from '../../../client/components/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../../../server/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 4d8202bdc0fa1..0db7dd2ac0d8d 100644 --- a/packages/next/src/server/web/spec-extension/unstable-cache.ts +++ b/packages/next/src/server/web/spec-extension/unstable-cache.ts @@ -7,13 +7,13 @@ import { validateTags, } from '../../lib/patch-fetch' import { workAsyncStorage } from '../../../client/components/work-async-storage.external' -import { workUnitAsyncStorage } from '../../../client/components/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../../app-render/work-unit-async-storage.external' import { CachedRouteKind, IncrementalCacheKind, type CachedFetchData, } from '../../response-cache' -import type { UnstableCacheStore } from '../../../client/components/work-unit-async-storage.external' +import type { UnstableCacheStore } from '../../app-render/work-unit-async-storage.external' type Callback = (...args: any[]) => Promise 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 51df60c10aa6a..16fcab1080d32 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 '../../../client/components/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../../../server/app-render/work-unit-async-storage.external' import { markCurrentScopeAsDynamic } from '../../app-render/dynamic-rendering' /** diff --git a/test/e2e/app-dir/app-external/app/async-storage/page.js b/test/e2e/app-dir/app-external/app/async-storage/page.js index 351a90273c08a..d04c7f04faacb 100644 --- a/test/e2e/app-dir/app-external/app/async-storage/page.js +++ b/test/e2e/app-dir/app-external/app/async-storage/page.js @@ -1,4 +1,4 @@ -import { workUnitAsyncStorage } from 'next/dist/client/components/work-unit-async-storage.external' +import { workUnitAsyncStorage } from 'next/dist/server/app-render/work-unit-async-storage.external' export default async function Page() { // cookies is undefined if not set