Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

relocate dynamic APIs #70300

Merged
merged 1 commit into from
Sep 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/next/headers.d.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from './dist/client/components/headers'
export * from './dist/server/request/headers'
2 changes: 1 addition & 1 deletion packages/next/headers.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
module.exports = require('./dist/client/components/headers')
module.exports = require('./dist/server/request/headers')
2 changes: 1 addition & 1 deletion packages/next/src/api/headers.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from '../client/components/headers'
export * from '../server/request/headers'
4 changes: 2 additions & 2 deletions packages/next/src/build/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,13 +89,13 @@ import type { PageExtensions } from './page-extensions-type'
import { formatDynamicImportPath } from '../lib/format-dynamic-import-path'
import { isInterceptionRouteAppPath } from '../server/lib/interception-routes'
import { checkIsRoutePPREnabled } from '../server/lib/experimental/ppr'
import type { Params } from '../client/components/params'
import type { Params } from '../server/request/params'
import { FallbackMode } from '../lib/fallback'
import {
fallbackModeToStaticPathsResult,
parseStaticPathsResult,
} from '../lib/fallback'
import { getParamKeys } from '../client/components/fallback-params'
import { getParamKeys } from '../server/request/fallback-params'
import type { OutgoingHttpHeaders } from 'http'

export type ROUTER_TYPE = 'pages' | 'app'
Expand Down
4 changes: 2 additions & 2 deletions packages/next/src/client/components/client-page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ export function ClientPageRoot({
}) {
if (typeof window === 'undefined') {
const { createDynamicallyTrackedParams } =
require('./fallback-params') as typeof import('./fallback-params')
require('../../server/request/fallback-params') as typeof import('../../server/request/fallback-params')
const { createDynamicallyTrackedSearchParams } =
require('./search-params') as typeof import('./search-params')
require('../../server/request/search-params') as typeof import('../../server/request/search-params')

// We expect to be passed searchParams but even if we aren't we can construct one from
// an empty object. We only do this if we are in a static generation as a performance
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/client/components/navigation.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { FlightRouterState } from '../../server/app-render/types'
import type { Params } from './params'
import type { Params } from '../../server/request/params'

import { useContext, useMemo } from 'react'
import {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type {
Segment,
} from '../../../server/app-render/types'
import { INTERCEPTION_ROUTE_MARKERS } from '../../../server/lib/interception-routes'
import type { Params } from '../params'
import type { Params } from '../../../server/request/params'
import {
isGroupSegment,
DEFAULT_SEGMENT_KEY,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type { IncrementalCache } from '../../server/lib/incremental-cache'
import type { DynamicServerError } from './hooks-server-context'
import type { FetchMetrics } from '../../server/base-http'
import type { Revalidate } from '../../server/lib/revalidate'
import type { FallbackRouteParams } from './fallback-params'
import type { FallbackRouteParams } from '../../server/request/fallback-params'

// Share the instance module in the next-shared layer
import { staticGenerationAsyncStorage } from './static-generation-async-storage-instance' with { 'turbopack-transition': 'next-shared' }
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/export/routes/app-page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ 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 { StaticGenerationStore } from '../../client/components/static-generation-async-storage.external'
import type { FallbackRouteParams } from '../../client/components/fallback-params'
import type { FallbackRouteParams } from '../../server/request/fallback-params'

export const enum ExportedAppPageFiles {
HTML = 'HTML',
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/export/routes/app-route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import { isStaticGenEnabled } from '../../server/route-modules/app-route/helpers
import type { ExperimentalConfig } from '../../server/config-shared'
import { isMetadataRouteFile } from '../../lib/metadata/is-metadata-route'
import { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'
import type { Params } from '../../client/components/params'
import type { Params } from '../../server/request/params'

export const enum ExportedAppRouteFiles {
BODY = 'BODY',
Expand Down
4 changes: 2 additions & 2 deletions packages/next/src/export/worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ import {
turborepoTraceAccess,
TurborepoAccessTraceResult,
} from '../build/turborepo-access-trace'
import type { Params } from '../client/components/params'
import type { Params } from '../server/request/params'
import {
getFallbackRouteParams,
type FallbackRouteParams,
} from '../client/components/fallback-params'
} from '../server/request/fallback-params'
import { needsExperimentalReact } from '../lib/needs-experimental-react'

const envConfig = require('../shared/lib/runtime-config.external')
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/lib/metadata/metadata.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import type {
} from './types/metadata-interface'
import { isNotFoundError } from '../../client/components/not-found'
import type { MetadataContext } from './types/resolvers'
import type { CreateDynamicallyTrackedParams } from '../../client/components/fallback-params'
import type { CreateDynamicallyTrackedParams } from '../../server/request/fallback-params'
import type { StaticGenerationStore } from '../../client/components/static-generation-async-storage.external'
import { trackFallbackParamAccessed } from '../../server/app-render/dynamic-rendering'

Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/lib/metadata/resolve-metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,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 { CreateDynamicallyTrackedParams } from '../../client/components/fallback-params'
import type { CreateDynamicallyTrackedParams } from '../../server/request/fallback-params'

type StaticIcons = Pick<ResolvedIcons, 'icon' | 'apple'>

Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/server/app-render/app-render.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ import { createInitialRouterState } from '../../client/components/router-reducer
import { createMutableActionQueue } from '../../shared/lib/router/action-queue'
import { getRevalidateReason } from '../instrumentation/utils'
import { PAGE_SEGMENT_KEY } from '../../shared/lib/segment'
import type { FallbackRouteParams } from '../../client/components/fallback-params'
import type { FallbackRouteParams } from '../request/fallback-params'
import { DynamicServerError } from '../../client/components/hooks-server-context'
import {
type ReactServerPrerenderResolveToType,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import { getTracer } from '../lib/trace/tracer'
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 '../../client/components/params'
import type { Params } from '../request/params'

/**
* Use the provided loader tree to create the React Component tree.
Expand Down
14 changes: 5 additions & 9 deletions packages/next/src/server/app-render/entry-base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,17 @@ import { ClientPageRoot } from '../../client/components/client-page'
import {
createUntrackedSearchParams,
createDynamicallyTrackedSearchParams,
} from '../../client/components/search-params'
import { createDynamicallyTrackedParams } from '../../client/components/fallback-params'
} from '../request/search-params'
import { createDynamicallyTrackedParams } from '../request/fallback-params'
import * as serverHooks from '../../client/components/hooks-server-context'
import { NotFoundBoundary } from '../../client/components/not-found-boundary'
import { patchFetch as _patchFetch } from '../lib/patch-fetch'
// not being used but needs to be included in the client manifest for /_not-found
import '../../client/components/error-boundary'

import {
preloadStyle,
preloadFont,
preconnect,
} from '../../server/app-render/rsc/preloads'
import { Postpone } from '../../server/app-render/rsc/postpone'
import { taintObjectReference } from '../../server/app-render/rsc/taint'
import { preloadStyle, preloadFont, preconnect } from './rsc/preloads'
import { Postpone } from './rsc/postpone'
import { taintObjectReference } from './rsc/taint'

// patchFetch makes use of APIs such as `React.unstable_postpone` which are only available
// in the experimental channel of React, so export it from here so that it comes from the bundled runtime
Expand Down
4 changes: 2 additions & 2 deletions packages/next/src/server/app-render/postponed-state.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { FallbackRouteParams } from '../../client/components/fallback-params'
import type { Params } from '../../client/components/params'
import type { FallbackRouteParams } from '../../server/request/fallback-params'
import type { Params } from '../request/params'

export enum DynamicState {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import type { IncrementalCache } from '../lib/incremental-cache'
import type { RenderOptsPartial } from '../app-render/types'
import type { FetchMetric } from '../base-http'
import type { RequestLifecycleOpts } from '../base-server'
import type { FallbackRouteParams } from '../../client/components/fallback-params'
import type { FallbackRouteParams } from '../../server/request/fallback-params'

import { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'

Expand Down
4 changes: 2 additions & 2 deletions packages/next/src/server/base-server.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import type { __ApiPreviewProps } from './api-utils'
import type { LoadComponentsReturnType } from './load-components'
import type { MiddlewareRouteMatch } from '../shared/lib/router/utils/middleware-route-matcher'
import type { Params } from '../client/components/params'
import type { Params } from '../server/request/params'
import {
type FallbackRouteParams,
getFallbackRouteParams,
} from '../client/components/fallback-params'
} from './request/fallback-params'
import type { NextConfig, NextConfigComplete } from './config-shared'
import type {
NextParsedUrlQuery,
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/server/dev/next-dev-server.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { FindComponentsResult, NodeRequestHandler } from '../next-server'
import type { LoadComponentsReturnType } from '../load-components'
import type { Options as ServerOptions } from '../next-server'
import type { Params } from '../../client/components/params'
import type { Params } from '../request/params'
import type { ParsedUrl } from '../../shared/lib/router/utils/parse-url'
import type { ParsedUrlQuery } from 'querystring'
import type { UrlWithParsedQuery } from 'url'
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/server/next-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import type { FetchEventResult } from './web/types'
import type { PrerenderManifest } from '../build'
import type { PagesManifest } from '../build/webpack/plugins/pages-manifest-plugin'
import type { NextParsedUrlQuery, NextUrlWithParsedQuery } from './request-meta'
import type { Params } from '../client/components/params'
import type { Params } from './request/params'
import type { MiddlewareRouteMatch } from '../shared/lib/router/utils/middleware-route-matcher'
import type { RouteMatch } from './route-matches/route-match'
import type { IncomingMessage, ServerResponse } from 'http'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { DraftModeProvider } from '../../server/async-storage/draft-mode-provider'
import type { DraftModeProvider } from '../async-storage/draft-mode-provider'

import { staticGenerationAsyncStorage } from './static-generation-async-storage.external'
import { trackDynamicDataAccessed } from '../../server/app-render/dynamic-rendering'
import { staticGenerationAsyncStorage } from '../../client/components/static-generation-async-storage.external'
import { trackDynamicDataAccessed } from '../app-render/dynamic-rendering'

export class DraftMode {
/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { trackFallbackParamAccessed } from '../../server/app-render/dynamic-rendering'
import { ReflectAdapter } from '../../server/web/spec-extension/adapters/reflect'
import { trackFallbackParamAccessed } from '../app-render/dynamic-rendering'
import { ReflectAdapter } from '../web/spec-extension/adapters/reflect'
import { getRouteMatcher } from '../../shared/lib/router/utils/route-matcher'
import { getRouteRegex } from '../../shared/lib/router/utils/route-regex'
import type { Params } from './params'
import { staticGenerationAsyncStorage } from './static-generation-async-storage.external'
import { staticGenerationAsyncStorage } from '../../client/components/static-generation-async-storage.external'

export type FallbackRouteParams = ReadonlyMap<string, string>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import {
type ReadonlyRequestCookies,
RequestCookiesAdapter,
} from '../../server/web/spec-extension/adapters/request-cookies'
import { HeadersAdapter } from '../../server/web/spec-extension/adapters/headers'
import { RequestCookies } from '../../server/web/spec-extension/cookies'
import { actionAsyncStorage } from './action-async-storage.external'
} from '../web/spec-extension/adapters/request-cookies'
import { HeadersAdapter } from '../web/spec-extension/adapters/headers'
import { RequestCookies } from '../web/spec-extension/cookies'
import { actionAsyncStorage } from '../../client/components/action-async-storage.external'
import { DraftMode } from './draft-mode'
import { trackDynamicDataAccessed } from '../../server/app-render/dynamic-rendering'
import { staticGenerationAsyncStorage } from './static-generation-async-storage.external'
import { getExpectedRequestStore } from './request-async-storage.external'
import { trackDynamicDataAccessed } from '../app-render/dynamic-rendering'
import { staticGenerationAsyncStorage } from '../../client/components/static-generation-async-storage.external'
import { getExpectedRequestStore } from '../../client/components/request-async-storage.external'

/**
* This function allows you to read the HTTP incoming request headers in
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { ParsedUrlQuery } from 'querystring'

import { staticGenerationAsyncStorage } from './static-generation-async-storage.external'
import { trackDynamicDataAccessed } from '../../server/app-render/dynamic-rendering'
import { ReflectAdapter } from '../../server/web/spec-extension/adapters/reflect'
import { staticGenerationAsyncStorage } from '../../client/components/static-generation-async-storage.external'
import { trackDynamicDataAccessed } from '../app-render/dynamic-rendering'
import { ReflectAdapter } from '../web/spec-extension/adapters/reflect'

/**
* Takes a ParsedUrlQuery object and either returns it unmodified or returns an empty object
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/server/route-matchers/route-matcher.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { RouteMatch } from '../route-matches/route-match'
import type { RouteDefinition } from '../route-definitions/route-definition'
import type { Params } from '../../client/components/params'
import type { Params } from '../request/params'

import { isDynamicRoute } from '../../shared/lib/router/utils'
import {
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/server/route-matches/route-match.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Params } from '../../client/components/params'
import type { Params } from '../request/params'
import type { RouteDefinition } from '../route-definitions/route-definition'

/**
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/server/route-modules/app-page/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
import * as vendoredContexts from './vendored/contexts/entrypoints'
import type { BaseNextRequest, BaseNextResponse } from '../../base-http'
import type { ServerComponentsHmrCache } from '../../response-cache'
import type { FallbackRouteParams } from '../../../client/components/fallback-params'
import type { FallbackRouteParams } from '../../request/fallback-params'

let vendoredReactRSC
let vendoredReactSSR
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/server/web-server.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { WebNextRequest, WebNextResponse } from './base-http/web'
import type RenderResult from './render-result'
import type { NextParsedUrlQuery, NextUrlWithParsedQuery } from './request-meta'
import type { Params } from '../client/components/params'
import type { Params } from './request/params'
import type { LoadComponentsReturnType } from './load-components'
import type {
LoadedRenderOpts,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use client'

import { createContext } from 'react'
import type { Params } from '../../client/components/params'
import type { Params } from '../../server/request/params'

export const SearchParamsContext = createContext<URLSearchParams | null>(null)
export const PathnameContext = createContext<string | null>(null)
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/shared/lib/router/adapters.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { AppRouterInstance } from '../app-router-context.shared-runtime'
import type { Params } from '../../../client/components/params'
import type { Params } from '../../../server/request/params'
import type { NextRouter } from './router'

import React, { useMemo, useRef } from 'react'
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/shared/lib/router/router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ import { isBot } from './utils/is-bot'
import { omit } from './utils/omit'
import { interpolateAs } from './utils/interpolate-as'
import { handleSmoothScroll } from './utils/handle-smooth-scroll'
import type { Params } from '../../../client/components/params'
import type { Params } from '../../../server/request/params'

declare global {
interface Window {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { BaseNextRequest } from '../../../../server/base-http'
import type { MiddlewareMatcher } from '../../../../build/analysis/get-page-static-info'
import type { Params } from '../../../../client/components/params'
import type { Params } from '../../../../server/request/params'
import { matchHas } from './prepare-destination'

export interface MiddlewareRouteMatch {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
} from '../../../../server/lib/interception-routes'
import { NEXT_RSC_UNION_QUERY } from '../../../../client/components/app-router-headers'
import { getCookieParser } from '../../../../server/api-utils/get-cookie-parser'
import type { Params } from '../../../../client/components/params'
import type { Params } from '../../../../server/request/params'

/**
* Ensure only a-zA-Z are used for param names for proper interpolating
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/shared/lib/router/utils/route-matcher.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { RouteRegex } from './route-regex'
import { DecodeError } from '../../utils'
import type { Params } from '../../../../client/components/params'
import type { Params } from '../../../../server/request/params'

export interface RouteMatchFn {
(pathname: string | null | undefined): false | Params
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/app-dir/actions/app/redirect-target/page.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { cookies } from 'next/dist/client/components/headers'
import { cookies } from 'next/dist/server/request/headers'

export default function Page() {
const redirectCookie = cookies().get('redirect')
Expand Down
Loading