diff --git a/packages/next/src/server/app-render/work-unit-async-storage-instance.ts b/packages/next/src/client/components/work-unit-async-storage-instance.ts similarity index 65% rename from packages/next/src/server/app-render/work-unit-async-storage-instance.ts rename to packages/next/src/client/components/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/client/components/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/client/components/work-unit-async-storage.external.ts similarity index 96% rename from packages/next/src/server/app-render/work-unit-async-storage.external.ts rename to packages/next/src/client/components/work-unit-async-storage.external.ts index 2657b474447b4..f91f03f556a60 100644 --- a/packages/next/src/server/app-render/work-unit-async-storage.external.ts +++ b/packages/next/src/client/components/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 './cache-signal' -import type { DynamicTrackingState } from './dynamic-rendering' +import type { CacheSignal } from '../../server/app-render/cache-signal' +import type { DynamicTrackingState } from '../../server/app-render/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/after/after.ts b/packages/next/src/server/after/after.ts index ced3dae2167aa..f0c23c743a573 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 { workUnitAsyncStorage } from '../../client/components/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 59b5fd5e5768b..de472e0b54dd5 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 '../../server/app-render/work-unit-async-storage.external' +import type { RequestStore } from '../../client/components/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 bb86e19a8d82a..a4166ee486e96 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 '../../server/app-render/work-unit-async-storage.external' +import type { RequestStore } from '../../client/components/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' @@ -152,7 +152,7 @@ import { waitAtLeastOneReactRenderTask } from '../../lib/scheduler' import { workUnitAsyncStorage, type PrerenderStore, -} from './work-unit-async-storage.external' +} from '../../client/components/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/dynamic-rendering.ts b/packages/next/src/server/app-render/dynamic-rendering.ts index 24755e67cd131..fd578628b6492 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 '../../server/app-render/work-unit-async-storage.external' +import type { WorkUnitStore } from '../../client/components/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 './work-unit-async-storage.external' +} from '../../client/components/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 21e4a1c2857c1..0ccfe1355afb7 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 './work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../../client/components/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/server/async-storage/with-request-store.ts b/packages/next/src/server/async-storage/with-request-store.ts index 5b5ddf733428c..c718abad2110d 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 '../../client/components/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 c684594ba5a5c..241018dcf3bff 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 '../../server/app-render/work-unit-async-storage.external' +import type { WorkUnitStore } from '../../client/components/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 8ca7a97b6562c..acc2c1301c65d 100644 --- a/packages/next/src/server/lib/patch-fetch.ts +++ b/packages/next/src/server/lib/patch-fetch.ts @@ -18,7 +18,7 @@ import type { WorkUnitAsyncStorage, WorkUnitStore, RequestStore, -} from '../../server/app-render/work-unit-async-storage.external' +} from '../../client/components/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..cfebb2d38c403 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 '../app-render/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../../client/components/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 e73be01382286..4f497e233d48e 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 '../app-render/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../../client/components/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 dc33cc9c35720..703e88f13aa1b 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 '../app-render/work-unit-async-storage.external' +} from '../../client/components/work-unit-async-storage.external' import { postponeWithTracking, abortAndThrowOnSynchronousDynamicDataAccess, throwToInterruptStaticGeneration, trackDynamicDataInDynamicRender, } from '../../server/app-render/dynamic-rendering' -import { getExpectedRequestStore } from '../../server/app-render/work-unit-async-storage.external' +import { getExpectedRequestStore } from '../../client/components/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 71a42be7a3eb1..865b4c48d1cf3 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 '../../server/app-render/work-unit-async-storage.external' +import { getExpectedRequestStore } from '../../client/components/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 '../app-render/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../../client/components/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..e04f65f46ab8e 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 '../app-render/work-unit-async-storage.external' +import { getExpectedRequestStore } from '../../client/components/work-unit-async-storage.external' import { workUnitAsyncStorage, type PrerenderStoreModern, -} from '../app-render/work-unit-async-storage.external' +} from '../../client/components/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 fa20cd2cf55a0..9318d6ebe5d1c 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 '../app-render/work-unit-async-storage.external' +} from '../../client/components/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 395d611887915..12dc98da502cc 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 '../app-render/work-unit-async-storage.external' +} from '../../client/components/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 5afa5b338124d..0eefb7d217565 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 '../../app-render/work-unit-async-storage.external' +} from '../../../client/components/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 1e6e564bc4031..39cda4e98036c 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 '../app-render/work-unit-async-storage.external' -import { workUnitAsyncStorage } from '../app-render/work-unit-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 { 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 b0a4ce59e6b8a..425742f3bae84 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 '../../server/app-render/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../../client/components/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 f87bcffc91b76..876270533fc4e 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 '../../../server/app-render/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../../../client/components/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 c75ff9fb4d97e..890e2ee57b032 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 '../../app-render/work-unit-async-storage.external' +import { workUnitAsyncStorage } from '../../../client/components/work-unit-async-storage.external' import { CachedRouteKind, IncrementalCacheKind, type CachedFetchData, } from '../../response-cache' -import type { UnstableCacheStore } from '../../app-render/work-unit-async-storage.external' +import type { UnstableCacheStore } from '../../../client/components/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 16fcab1080d32..51df60c10aa6a 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 { workUnitAsyncStorage } from '../../../client/components/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 d04c7f04faacb..351a90273c08a 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/server/app-render/work-unit-async-storage.external' +import { workUnitAsyncStorage } from 'next/dist/client/components/work-unit-async-storage.external' export default async function Page() { // cookies is undefined if not set