next 16.1.1-canary.23 → 16.1.1-canary.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.build-commit +1 -1
- package/dist/bin/next +2 -2
- package/dist/build/index.js +3 -3
- package/dist/build/swc/index.js +1 -1
- package/dist/build/templates/app-page.js +8 -16
- package/dist/build/templates/app-page.js.map +1 -1
- package/dist/build/templates/app-route.js +1 -1
- package/dist/build/templates/app-route.js.map +1 -1
- package/dist/build/webpack-config.js +3 -3
- package/dist/bundle-analyzer/404.html +2 -2
- package/dist/bundle-analyzer/__next.__PAGE__.txt +1 -1
- package/dist/bundle-analyzer/__next._full.txt +1 -1
- package/dist/bundle-analyzer/__next._head.txt +1 -1
- package/dist/bundle-analyzer/__next._index.txt +1 -1
- package/dist/bundle-analyzer/__next._tree.txt +1 -1
- package/dist/bundle-analyzer/_not-found/__next._full.txt +1 -1
- package/dist/bundle-analyzer/_not-found/__next._head.txt +1 -1
- package/dist/bundle-analyzer/_not-found/__next._index.txt +1 -1
- package/dist/bundle-analyzer/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/bundle-analyzer/_not-found/__next._not-found.txt +1 -1
- package/dist/bundle-analyzer/_not-found/__next._tree.txt +1 -1
- package/dist/bundle-analyzer/_not-found.html +2 -2
- package/dist/bundle-analyzer/_not-found.txt +1 -1
- package/dist/bundle-analyzer/index.html +2 -2
- package/dist/bundle-analyzer/index.txt +1 -1
- package/dist/client/app-bootstrap.js +1 -1
- package/dist/client/index.js +1 -1
- package/dist/compiled/next-server/pages-api-turbo.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js.map +1 -1
- package/dist/compiled/next-server/pages-api.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/pages-api.runtime.prod.js.map +1 -1
- package/dist/compiled/next-server/pages-turbo.runtime.dev.js +2 -2
- package/dist/compiled/next-server/pages-turbo.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/pages-turbo.runtime.prod.js +8 -8
- package/dist/compiled/next-server/pages-turbo.runtime.prod.js.map +1 -1
- package/dist/compiled/next-server/pages.runtime.dev.js +2 -2
- package/dist/compiled/next-server/pages.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/pages.runtime.prod.js +8 -8
- package/dist/compiled/next-server/pages.runtime.prod.js.map +1 -1
- package/dist/compiled/next-server/server.runtime.prod.js +4 -4
- package/dist/compiled/next-server/server.runtime.prod.js.map +1 -1
- package/dist/esm/build/index.js +3 -3
- package/dist/esm/build/swc/index.js +1 -1
- package/dist/esm/build/templates/app-page.js +8 -16
- package/dist/esm/build/templates/app-page.js.map +1 -1
- package/dist/esm/build/templates/app-route.js +2 -2
- package/dist/esm/build/templates/app-route.js.map +1 -1
- package/dist/esm/build/webpack-config.js +3 -3
- package/dist/esm/client/app-bootstrap.js +1 -1
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/server/base-server.js +1 -3
- package/dist/esm/server/base-server.js.map +1 -1
- package/dist/esm/server/config-schema.js +0 -1
- package/dist/esm/server/config-schema.js.map +1 -1
- package/dist/esm/server/config-shared.js +0 -2
- package/dist/esm/server/config-shared.js.map +1 -1
- package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/esm/server/lib/app-info-log.js +1 -1
- package/dist/esm/server/lib/cache-control.js +4 -45
- package/dist/esm/server/lib/cache-control.js.map +1 -1
- package/dist/esm/server/lib/start-server.js +1 -1
- package/dist/esm/server/next-server.js +1 -2
- package/dist/esm/server/next-server.js.map +1 -1
- package/dist/esm/server/render.js +3 -3
- package/dist/esm/server/render.js.map +1 -1
- package/dist/esm/server/route-modules/pages/pages-handler.js +3 -4
- package/dist/esm/server/route-modules/pages/pages-handler.js.map +1 -1
- package/dist/esm/server/send-payload.js +3 -3
- package/dist/esm/server/send-payload.js.map +1 -1
- package/dist/esm/shared/lib/errors/canary-only-config-error.js +1 -1
- package/dist/server/base-server.d.ts +0 -1
- package/dist/server/base-server.js +1 -3
- package/dist/server/base-server.js.map +1 -1
- package/dist/server/config-schema.d.ts +0 -1
- package/dist/server/config-schema.js +0 -1
- package/dist/server/config-schema.js.map +1 -1
- package/dist/server/config-shared.d.ts +1 -8
- package/dist/server/config-shared.js +0 -2
- package/dist/server/config-shared.js.map +1 -1
- package/dist/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/server/lib/app-info-log.js +1 -1
- package/dist/server/lib/cache-control.d.ts +1 -28
- package/dist/server/lib/cache-control.js +7 -52
- package/dist/server/lib/cache-control.js.map +1 -1
- package/dist/server/lib/start-server.js +1 -1
- package/dist/server/next-server.d.ts +0 -1
- package/dist/server/next-server.js +1 -2
- package/dist/server/next-server.js.map +1 -1
- package/dist/server/render.d.ts +0 -1
- package/dist/server/render.js +2 -2
- package/dist/server/render.js.map +1 -1
- package/dist/server/route-modules/pages/pages-handler.js +2 -3
- package/dist/server/route-modules/pages/pages-handler.js.map +1 -1
- package/dist/server/send-payload.d.ts +1 -2
- package/dist/server/send-payload.js +2 -2
- package/dist/server/send-payload.js.map +1 -1
- package/dist/shared/lib/errors/canary-only-config-error.js +1 -1
- package/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/telemetry/events/session-stopped.js +2 -2
- package/dist/telemetry/events/version.js +2 -2
- package/package.json +15 -15
- /package/dist/bundle-analyzer/_next/static/{nbQP50dTiki8WHJ2QEq8j → TRyTnzVJfQWPDn0Frxod5}/_buildManifest.js +0 -0
- /package/dist/bundle-analyzer/_next/static/{nbQP50dTiki8WHJ2QEq8j → TRyTnzVJfQWPDn0Frxod5}/_clientMiddlewareManifest.json +0 -0
- /package/dist/bundle-analyzer/_next/static/{nbQP50dTiki8WHJ2QEq8j → TRyTnzVJfQWPDn0Frxod5}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/route-modules/pages/pages-handler.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'node:http'\nimport type { ParsedUrlQuery } from 'node:querystring'\nimport { RouteKind } from '../../route-kind'\nimport { BaseServerSpan } from '../../lib/trace/constants'\nimport { getTracer, SpanKind, type Span } from '../../lib/trace/tracer'\nimport { formatUrl } from '../../../shared/lib/router/utils/format-url'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../request-meta'\nimport { interopDefault } from '../../app-render/interop-default'\nimport { getRevalidateReason } from '../../instrumentation/utils'\nimport { normalizeDataPath } from '../../../shared/lib/page-path/normalize-data-path'\nimport {\n CachedRouteKind,\n type CachedPageValue,\n type CachedRedirectValue,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../response-cache'\n\nimport {\n setResponseCacheControlHeaders,\n type CacheControl,\n} from '../../lib/cache-control'\nimport { normalizeRepeatedSlashes } from '../../../shared/lib/utils'\nimport { getRedirectStatus } from '../../../lib/redirect-status'\nimport {\n CACHE_ONE_YEAR,\n HTML_CONTENT_TYPE_HEADER,\n JSON_CONTENT_TYPE_HEADER,\n} from '../../../lib/constants'\nimport path from 'path'\nimport { sendRenderResult } from '../../send-payload'\nimport RenderResult from '../../render-result'\nimport { toResponseCacheEntry } from '../../response-cache/utils'\nimport { NoFallbackError } from '../../../shared/lib/no-fallback-error.external'\nimport { RedirectStatusCode } from '../../../client/components/redirect-status-code'\nimport { isBot } from '../../../shared/lib/router/utils/is-bot'\nimport { addPathPrefix } from '../../../shared/lib/router/utils/add-path-prefix'\nimport { removeTrailingSlash } from '../../../shared/lib/router/utils/remove-trailing-slash'\nimport type { PagesRouteModule } from './module.compiled'\nimport type {\n GetServerSideProps,\n GetStaticPaths,\n GetStaticProps,\n} from '../../../types'\nimport { getDeploymentId } from '../../../shared/lib/deployment-id'\n\nexport const getHandler = ({\n srcPage: originalSrcPage,\n config,\n userland,\n routeModule,\n isFallbackError,\n getStaticPaths,\n getStaticProps,\n getServerSideProps,\n}: {\n srcPage: string\n config: Record<string, any> | undefined\n userland: any\n isFallbackError?: boolean\n routeModule: PagesRouteModule\n getStaticProps?: GetStaticProps\n getStaticPaths?: GetStaticPaths\n getServerSideProps?: GetServerSideProps\n}) => {\n return async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n ) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(\n req,\n 'devRequestTimingInternalsEnd',\n process.hrtime.bigint()\n )\n }\n let srcPage = originalSrcPage\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return\n }\n\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n }\n\n const {\n buildId,\n query,\n params,\n parsedUrl,\n originalQuery,\n originalPathname,\n buildManifest,\n fallbackBuildManifest,\n nextFontManifest,\n serverFilesManifest,\n reactLoadableManifest,\n prerenderManifest,\n isDraftMode,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n locale,\n locales,\n defaultLocale,\n routerServerContext,\n nextConfig,\n resolvedPathname,\n encodedResolvedPathname,\n } = prepareResult\n\n const isExperimentalCompile =\n serverFilesManifest?.config?.experimental?.isExperimentalCompile\n\n const hasServerProps = Boolean(getServerSideProps)\n const hasStaticProps = Boolean(getStaticProps)\n const hasStaticPaths = Boolean(getStaticPaths)\n const hasGetInitialProps = Boolean(\n (userland.default || userland).getInitialProps\n )\n let cacheKey: null | string = null\n let isIsrFallback = false\n let isNextDataRequest =\n prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps)\n\n const is404Page = srcPage === '/404'\n const is500Page = srcPage === '/500'\n const isErrorPage = srcPage === '/_error'\n\n if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n cacheKey = `${locale ? `/${locale}` : ''}${\n (srcPage === '/' || resolvedPathname === '/') && locale\n ? ''\n : resolvedPathname\n }`\n\n if (is404Page || is500Page || isErrorPage) {\n cacheKey = `${locale ? `/${locale}` : ''}${srcPage}`\n }\n\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n if (hasStaticPaths && !isDraftMode) {\n const decodedPathname = removeTrailingSlash(\n locale\n ? addPathPrefix(resolvedPathname, `/${locale}`)\n : resolvedPathname\n )\n const isPrerendered =\n Boolean(prerenderManifest.routes[decodedPathname]) ||\n prerenderManifest.notFoundRoutes.includes(decodedPathname)\n\n const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n\n if (\n typeof prerenderInfo.fallback === 'string' &&\n !isPrerendered &&\n !isNextDataRequest\n ) {\n isIsrFallback = true\n }\n }\n }\n\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (\n (isIsrFallback && isBot(req.headers['user-agent'] || '')) ||\n isMinimalMode\n ) {\n isIsrFallback = false\n }\n\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n\n try {\n const method = req.method || 'GET'\n\n const resolvedUrl = formatUrl({\n pathname: nextConfig.trailingSlash\n ? `${encodedResolvedPathname}${!encodedResolvedPathname.endsWith('/') && parsedUrl.pathname?.endsWith('/') ? '/' : ''}`\n : removeTrailingSlash(encodedResolvedPathname || '/'),\n // make sure to only add query values from original URL\n query: hasStaticProps ? {} : originalQuery,\n })\n\n const handleResponse = async (span?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n const doRender = async () => {\n try {\n return await routeModule\n .render(req, res, {\n query:\n hasStaticProps && !isExperimentalCompile\n ? ({\n ...params,\n } as ParsedUrlQuery)\n : {\n ...query,\n ...params,\n },\n params,\n page: srcPage,\n renderContext: {\n isDraftMode,\n isFallback: isIsrFallback,\n developmentNotFoundSourcePage: getRequestMeta(\n req,\n 'developmentNotFoundSourcePage'\n ),\n },\n sharedContext: {\n buildId,\n customServer:\n Boolean(routerServerContext?.isCustomServer) || undefined,\n deploymentId: getDeploymentId(),\n },\n renderOpts: {\n params,\n routeModule,\n page: srcPage,\n pageConfig: config || {},\n Component: interopDefault(userland),\n ComponentMod: userland,\n getStaticProps,\n getStaticPaths,\n getServerSideProps,\n supportsDynamicResponse: !hasStaticProps,\n buildManifest: isFallbackError\n ? fallbackBuildManifest\n : buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n\n assetPrefix: nextConfig.assetPrefix,\n previewProps: prerenderManifest.preview,\n images: nextConfig.images as any,\n nextConfigOutput: nextConfig.output,\n optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n nextScriptWorkers: Boolean(\n nextConfig.experimental.nextScriptWorkers\n ),\n domainLocales: nextConfig.i18n?.domains,\n crossOrigin: nextConfig.crossOrigin,\n\n multiZoneDraftMode,\n basePath: nextConfig.basePath,\n disableOptimizedLoading:\n nextConfig.experimental.disableOptimizedLoading,\n largePageDataBytes:\n nextConfig.experimental.largePageDataBytes,\n\n isExperimentalCompile,\n\n experimental: {\n clientTraceMetadata:\n nextConfig.experimental.clientTraceMetadata ||\n ([] as any),\n },\n\n locale,\n locales,\n defaultLocale,\n setIsrStatus: routerServerContext?.setIsrStatus,\n\n isNextDataRequest:\n isNextDataRequest && (hasServerProps || hasStaticProps),\n\n resolvedUrl,\n // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n // and not the resolved URL to prevent a hydration mismatch on\n // asPath\n resolvedAsPath:\n hasServerProps || hasGetInitialProps\n ? formatUrl({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: isNextDataRequest\n ? normalizeDataPath(originalPathname)\n : originalPathname,\n query: originalQuery,\n })\n : resolvedUrl,\n\n isOnDemandRevalidate,\n\n ErrorDebug: getRequestMeta(req, 'PagesErrorDebug'),\n err: getRequestMeta(req, 'invokeError'),\n dev: routeModule.isDev,\n\n // needed for experimental.optimizeCss feature\n distDir: path.join(\n /* turbopackIgnore: true */\n process.cwd(),\n routeModule.relativeProjectDir,\n routeModule.distDir\n ),\n },\n })\n .then((renderResult): ResponseCacheEntry => {\n const { metadata } = renderResult\n\n let cacheControl: CacheControl | undefined =\n metadata.cacheControl\n\n if ('isNotFound' in metadata && metadata.isNotFound) {\n return {\n value: null,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: CachedRouteKind.REDIRECT,\n props: metadata.pageData ?? metadata.flightData,\n } satisfies CachedRedirectValue,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n return {\n value: {\n kind: CachedRouteKind.PAGES,\n html: renderResult,\n pageData: renderResult.metadata.pageData,\n headers: renderResult.metadata.headers,\n status: renderResult.metadata.statusCode,\n },\n cacheControl,\n }\n })\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route')\n if (route) {\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n } else {\n span.updateName(`${method} ${srcPage}`)\n }\n })\n } catch (err: unknown) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: hasStaticProps,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n // if we've already generated this page we no longer\n // serve the fallback\n if (previousCacheEntry) {\n isIsrFallback = false\n }\n\n if (isIsrFallback) {\n const fallbackResponse = await routeModule\n .getResponseCache(req)\n .get(\n routeModule.isDev\n ? null\n : locale\n ? `/${locale}${srcPage}`\n : srcPage,\n async ({\n previousCacheEntry: previousFallbackCacheEntry = null,\n }) => {\n if (!routeModule.isDev) {\n return toResponseCacheEntry(previousFallbackCacheEntry)\n }\n return doRender()\n },\n {\n routeKind: RouteKind.PAGES,\n isFallback: true,\n isRoutePPREnabled: false,\n isOnDemandRevalidate: false,\n incrementalCache: await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ),\n waitUntil: ctx.waitUntil,\n }\n )\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl\n fallbackResponse.isMiss = true\n return fallbackResponse\n }\n }\n\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n if (\n isIsrFallback &&\n previousCacheEntry?.value?.kind === CachedRouteKind.PAGES\n ) {\n return {\n value: {\n kind: CachedRouteKind.PAGES,\n html: new RenderResult(\n Buffer.from(previousCacheEntry.value.html),\n {\n contentType: HTML_CONTENT_TYPE_HEADER,\n metadata: {\n statusCode: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers,\n },\n }\n ),\n pageData: {},\n status: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers,\n } satisfies CachedPageValue,\n cacheControl: { revalidate: 0, expire: undefined },\n } satisfies ResponseCacheEntry\n }\n return doRender()\n }\n\n const result = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: RouteKind.PAGES,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n waitUntil: ctx.waitUntil,\n responseGenerator: responseGenerator,\n prerenderManifest,\n isMinimalMode,\n })\n\n // if we got a cache hit this wasn't an ISR fallback\n // but it wasn't generated during build so isn't in the\n // prerender-manifest\n if (isIsrFallback && !result?.isMiss) {\n isIsrFallback = false\n }\n\n // response is finished is no cache entry\n if (!result) {\n return\n }\n\n if (hasStaticProps && !isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : result.isMiss\n ? 'MISS'\n : result.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n let cacheControl: CacheControl | undefined\n\n if (!hasStaticProps || isIsrFallback) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = { revalidate: 0, expire: undefined }\n }\n } else if (is404Page) {\n const notFoundRevalidate = getRequestMeta(req, 'notFoundRevalidate')\n\n cacheControl = {\n revalidate:\n typeof notFoundRevalidate === 'undefined'\n ? 0\n : notFoundRevalidate,\n expire: undefined,\n }\n } else if (is500Page) {\n cacheControl = { revalidate: 0, expire: undefined }\n } else if (result.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof result.cacheControl.revalidate === 'number') {\n if (result.cacheControl.revalidate < 1) {\n throw new Error(\n `Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`\n )\n }\n cacheControl = {\n revalidate: result.cacheControl.revalidate,\n expire: result.cacheControl?.expire ?? nextConfig.expireTime,\n }\n } else {\n // revalidate: false\n cacheControl = {\n revalidate: CACHE_ONE_YEAR,\n expire: undefined,\n }\n }\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n setResponseCacheControlHeaders(\n res,\n cacheControl,\n nextConfig.experimental.cdnCacheControlHeader\n )\n }\n\n // notFound: true case\n if (!result.value) {\n // add revalidate metadata before rendering 404 page\n // so that we can use this as source of truth for the\n // cache-control header instead of what the 404 page returns\n // for the revalidate value\n addRequestMeta(\n req,\n 'notFoundRevalidate',\n result.cacheControl?.revalidate\n )\n\n res.statusCode = 404\n\n if (isNextDataRequest) {\n res.end('{\"notFound\":true}')\n return\n }\n return await render404()\n }\n\n if (result.value.kind === CachedRouteKind.REDIRECT) {\n if (isNextDataRequest) {\n res.setHeader('content-type', JSON_CONTENT_TYPE_HEADER)\n res.end(JSON.stringify(result.value.props))\n return\n } else {\n const handleRedirect = (pageData: any) => {\n const redirect = {\n destination: pageData.pageProps.__N_REDIRECT,\n statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH,\n }\n const statusCode = getRedirectStatus(redirect)\n const { basePath } = nextConfig\n\n if (\n basePath &&\n redirect.basePath !== false &&\n redirect.destination.startsWith('/')\n ) {\n redirect.destination = `${basePath}${redirect.destination}`\n }\n\n if (redirect.destination.startsWith('/')) {\n redirect.destination = normalizeRepeatedSlashes(\n redirect.destination\n )\n }\n\n res.statusCode = statusCode\n res.setHeader('Location', redirect.destination)\n if (statusCode === RedirectStatusCode.PermanentRedirect) {\n res.setHeader('Refresh', `0;url=${redirect.destination}`)\n }\n res.end(redirect.destination)\n }\n await handleRedirect(result.value.props)\n return null\n }\n }\n\n if (result.value.kind !== CachedRouteKind.PAGES) {\n throw new Error(\n `Invariant: received non-pages cache entry in pages handler`\n )\n }\n\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader(\n 'Cache-Control',\n nextConfig.experimental.devCacheControlNoCache\n ? 'no-cache, must-revalidate'\n : 'no-store, must-revalidate'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n // when invoking _error before pages/500 we don't actually\n // send the _error response\n if (\n getRequestMeta(req, 'customErrorRender') ||\n (isErrorPage && isMinimalMode && res.statusCode === 500)\n ) {\n return null\n }\n\n await sendRenderResult({\n req,\n res,\n // If we are rendering the error page it's not a data request\n // anymore\n result:\n isNextDataRequest && !isErrorPage && !is500Page\n ? new RenderResult(\n Buffer.from(JSON.stringify(result.value.pageData)),\n {\n contentType: JSON_CONTENT_TYPE_HEADER,\n metadata: result.value.html.metadata,\n }\n )\n : result.value.html,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n cacheControl: routeModule.isDev ? undefined : cacheControl,\n cdnCacheControlHeader: nextConfig.experimental.cdnCacheControlHeader,\n })\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse()\n } else {\n await tracer.withPropagatedContext(req.headers, () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n )\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: hasStaticProps,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n throw err\n }\n }\n}\n"],"names":["getHandler","srcPage","originalSrcPage","config","userland","routeModule","isFallbackError","getStaticPaths","getStaticProps","getServerSideProps","handler","req","res","ctx","serverFilesManifest","requestMeta","setRequestMeta","isDev","addRequestMeta","process","hrtime","bigint","env","TURBOPACK","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","isMinimalMode","Boolean","getRequestMeta","render404","routerServerContext","parsedUrl","buildId","query","params","originalQuery","originalPathname","buildManifest","fallbackBuildManifest","nextFontManifest","reactLoadableManifest","prerenderManifest","isDraftMode","isOnDemandRevalidate","revalidateOnlyGenerated","locale","locales","defaultLocale","nextConfig","resolvedPathname","encodedResolvedPathname","isExperimentalCompile","experimental","hasServerProps","hasStaticProps","hasStaticPaths","hasGetInitialProps","default","getInitialProps","cacheKey","isIsrFallback","isNextDataRequest","is404Page","is500Page","isErrorPage","decodedPathname","removeTrailingSlash","addPathPrefix","isPrerendered","routes","notFoundRoutes","includes","prerenderInfo","dynamicRoutes","fallback","adapterPath","NoFallbackError","isBot","headers","tracer","getTracer","activeSpan","getActiveScopeSpan","method","resolvedUrl","formatUrl","pathname","trailingSlash","endsWith","handleResponse","span","responseGenerator","previousCacheEntry","doRender","render","page","renderContext","isFallback","developmentNotFoundSourcePage","sharedContext","customServer","isCustomServer","undefined","deploymentId","getDeploymentId","renderOpts","pageConfig","Component","interopDefault","ComponentMod","supportsDynamicResponse","assetPrefix","previewProps","preview","images","nextConfigOutput","output","optimizeCss","nextScriptWorkers","domainLocales","i18n","domains","crossOrigin","basePath","disableOptimizedLoading","largePageDataBytes","clientTraceMetadata","setIsrStatus","resolvedAsPath","normalizeDataPath","ErrorDebug","err","dev","distDir","path","join","cwd","relativeProjectDir","then","renderResult","metadata","cacheControl","isNotFound","value","isRedirect","kind","CachedRouteKind","REDIRECT","props","pageData","flightData","PAGES","html","status","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","BaseServerSpan","handleRequest","console","warn","route","name","updateName","isStale","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","getRevalidateReason","isStaticGeneration","fallbackResponse","getResponseCache","previousFallbackCacheEntry","toResponseCacheEntry","routeKind","RouteKind","isRoutePPREnabled","incrementalCache","getIncrementalCache","isMiss","setHeader","RenderResult","Buffer","from","contentType","HTML_CONTENT_TYPE_HEADER","revalidate","expire","result","getHeader","notFoundRevalidate","Error","expireTime","CACHE_ONE_YEAR","setResponseCacheControlHeaders","cdnCacheControlHeader","JSON_CONTENT_TYPE_HEADER","JSON","stringify","handleRedirect","redirect","destination","pageProps","__N_REDIRECT","__N_REDIRECT_STATUS","__N_REDIRECT_BASE_PATH","getRedirectStatus","startsWith","normalizeRepeatedSlashes","RedirectStatusCode","PermanentRedirect","devCacheControlNoCache","sendRenderResult","generateEtags","poweredByHeader","withPropagatedContext","trace","spanName","SpanKind","SERVER","attributes","url"],"mappings":"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","ignoreList":[0]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/server/route-modules/pages/pages-handler.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'node:http'\nimport type { ParsedUrlQuery } from 'node:querystring'\nimport { RouteKind } from '../../route-kind'\nimport { BaseServerSpan } from '../../lib/trace/constants'\nimport { getTracer, SpanKind, type Span } from '../../lib/trace/tracer'\nimport { formatUrl } from '../../../shared/lib/router/utils/format-url'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../request-meta'\nimport { interopDefault } from '../../app-render/interop-default'\nimport { getRevalidateReason } from '../../instrumentation/utils'\nimport { normalizeDataPath } from '../../../shared/lib/page-path/normalize-data-path'\nimport {\n CachedRouteKind,\n type CachedPageValue,\n type CachedRedirectValue,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../response-cache'\n\nimport {\n getCacheControlHeader,\n type CacheControl,\n} from '../../lib/cache-control'\nimport { normalizeRepeatedSlashes } from '../../../shared/lib/utils'\nimport { getRedirectStatus } from '../../../lib/redirect-status'\nimport {\n CACHE_ONE_YEAR,\n HTML_CONTENT_TYPE_HEADER,\n JSON_CONTENT_TYPE_HEADER,\n} from '../../../lib/constants'\nimport path from 'path'\nimport { sendRenderResult } from '../../send-payload'\nimport RenderResult from '../../render-result'\nimport { toResponseCacheEntry } from '../../response-cache/utils'\nimport { NoFallbackError } from '../../../shared/lib/no-fallback-error.external'\nimport { RedirectStatusCode } from '../../../client/components/redirect-status-code'\nimport { isBot } from '../../../shared/lib/router/utils/is-bot'\nimport { addPathPrefix } from '../../../shared/lib/router/utils/add-path-prefix'\nimport { removeTrailingSlash } from '../../../shared/lib/router/utils/remove-trailing-slash'\nimport type { PagesRouteModule } from './module.compiled'\nimport type {\n GetServerSideProps,\n GetStaticPaths,\n GetStaticProps,\n} from '../../../types'\nimport { getDeploymentId } from '../../../shared/lib/deployment-id'\n\nexport const getHandler = ({\n srcPage: originalSrcPage,\n config,\n userland,\n routeModule,\n isFallbackError,\n getStaticPaths,\n getStaticProps,\n getServerSideProps,\n}: {\n srcPage: string\n config: Record<string, any> | undefined\n userland: any\n isFallbackError?: boolean\n routeModule: PagesRouteModule\n getStaticProps?: GetStaticProps\n getStaticPaths?: GetStaticPaths\n getServerSideProps?: GetServerSideProps\n}) => {\n return async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n ) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(\n req,\n 'devRequestTimingInternalsEnd',\n process.hrtime.bigint()\n )\n }\n let srcPage = originalSrcPage\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return\n }\n\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n }\n\n const {\n buildId,\n query,\n params,\n parsedUrl,\n originalQuery,\n originalPathname,\n buildManifest,\n fallbackBuildManifest,\n nextFontManifest,\n serverFilesManifest,\n reactLoadableManifest,\n prerenderManifest,\n isDraftMode,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n locale,\n locales,\n defaultLocale,\n routerServerContext,\n nextConfig,\n resolvedPathname,\n encodedResolvedPathname,\n } = prepareResult\n\n const isExperimentalCompile =\n serverFilesManifest?.config?.experimental?.isExperimentalCompile\n\n const hasServerProps = Boolean(getServerSideProps)\n const hasStaticProps = Boolean(getStaticProps)\n const hasStaticPaths = Boolean(getStaticPaths)\n const hasGetInitialProps = Boolean(\n (userland.default || userland).getInitialProps\n )\n let cacheKey: null | string = null\n let isIsrFallback = false\n let isNextDataRequest =\n prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps)\n\n const is404Page = srcPage === '/404'\n const is500Page = srcPage === '/500'\n const isErrorPage = srcPage === '/_error'\n\n if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n cacheKey = `${locale ? `/${locale}` : ''}${\n (srcPage === '/' || resolvedPathname === '/') && locale\n ? ''\n : resolvedPathname\n }`\n\n if (is404Page || is500Page || isErrorPage) {\n cacheKey = `${locale ? `/${locale}` : ''}${srcPage}`\n }\n\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n if (hasStaticPaths && !isDraftMode) {\n const decodedPathname = removeTrailingSlash(\n locale\n ? addPathPrefix(resolvedPathname, `/${locale}`)\n : resolvedPathname\n )\n const isPrerendered =\n Boolean(prerenderManifest.routes[decodedPathname]) ||\n prerenderManifest.notFoundRoutes.includes(decodedPathname)\n\n const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n\n if (\n typeof prerenderInfo.fallback === 'string' &&\n !isPrerendered &&\n !isNextDataRequest\n ) {\n isIsrFallback = true\n }\n }\n }\n\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (\n (isIsrFallback && isBot(req.headers['user-agent'] || '')) ||\n isMinimalMode\n ) {\n isIsrFallback = false\n }\n\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n\n try {\n const method = req.method || 'GET'\n\n const resolvedUrl = formatUrl({\n pathname: nextConfig.trailingSlash\n ? `${encodedResolvedPathname}${!encodedResolvedPathname.endsWith('/') && parsedUrl.pathname?.endsWith('/') ? '/' : ''}`\n : removeTrailingSlash(encodedResolvedPathname || '/'),\n // make sure to only add query values from original URL\n query: hasStaticProps ? {} : originalQuery,\n })\n\n const handleResponse = async (span?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n const doRender = async () => {\n try {\n return await routeModule\n .render(req, res, {\n query:\n hasStaticProps && !isExperimentalCompile\n ? ({\n ...params,\n } as ParsedUrlQuery)\n : {\n ...query,\n ...params,\n },\n params,\n page: srcPage,\n renderContext: {\n isDraftMode,\n isFallback: isIsrFallback,\n developmentNotFoundSourcePage: getRequestMeta(\n req,\n 'developmentNotFoundSourcePage'\n ),\n },\n sharedContext: {\n buildId,\n customServer:\n Boolean(routerServerContext?.isCustomServer) || undefined,\n deploymentId: getDeploymentId(),\n },\n renderOpts: {\n params,\n routeModule,\n page: srcPage,\n pageConfig: config || {},\n Component: interopDefault(userland),\n ComponentMod: userland,\n getStaticProps,\n getStaticPaths,\n getServerSideProps,\n supportsDynamicResponse: !hasStaticProps,\n buildManifest: isFallbackError\n ? fallbackBuildManifest\n : buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n\n assetPrefix: nextConfig.assetPrefix,\n previewProps: prerenderManifest.preview,\n images: nextConfig.images as any,\n nextConfigOutput: nextConfig.output,\n optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n nextScriptWorkers: Boolean(\n nextConfig.experimental.nextScriptWorkers\n ),\n domainLocales: nextConfig.i18n?.domains,\n crossOrigin: nextConfig.crossOrigin,\n\n multiZoneDraftMode,\n basePath: nextConfig.basePath,\n disableOptimizedLoading:\n nextConfig.experimental.disableOptimizedLoading,\n largePageDataBytes:\n nextConfig.experimental.largePageDataBytes,\n\n isExperimentalCompile,\n\n experimental: {\n clientTraceMetadata:\n nextConfig.experimental.clientTraceMetadata ||\n ([] as any),\n },\n\n locale,\n locales,\n defaultLocale,\n setIsrStatus: routerServerContext?.setIsrStatus,\n\n isNextDataRequest:\n isNextDataRequest && (hasServerProps || hasStaticProps),\n\n resolvedUrl,\n // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n // and not the resolved URL to prevent a hydration mismatch on\n // asPath\n resolvedAsPath:\n hasServerProps || hasGetInitialProps\n ? formatUrl({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: isNextDataRequest\n ? normalizeDataPath(originalPathname)\n : originalPathname,\n query: originalQuery,\n })\n : resolvedUrl,\n\n isOnDemandRevalidate,\n\n ErrorDebug: getRequestMeta(req, 'PagesErrorDebug'),\n err: getRequestMeta(req, 'invokeError'),\n dev: routeModule.isDev,\n\n // needed for experimental.optimizeCss feature\n distDir: path.join(\n /* turbopackIgnore: true */\n process.cwd(),\n routeModule.relativeProjectDir,\n routeModule.distDir\n ),\n },\n })\n .then((renderResult): ResponseCacheEntry => {\n const { metadata } = renderResult\n\n let cacheControl: CacheControl | undefined =\n metadata.cacheControl\n\n if ('isNotFound' in metadata && metadata.isNotFound) {\n return {\n value: null,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: CachedRouteKind.REDIRECT,\n props: metadata.pageData ?? metadata.flightData,\n } satisfies CachedRedirectValue,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n return {\n value: {\n kind: CachedRouteKind.PAGES,\n html: renderResult,\n pageData: renderResult.metadata.pageData,\n headers: renderResult.metadata.headers,\n status: renderResult.metadata.statusCode,\n },\n cacheControl,\n }\n })\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route')\n if (route) {\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n } else {\n span.updateName(`${method} ${srcPage}`)\n }\n })\n } catch (err: unknown) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: hasStaticProps,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n // if we've already generated this page we no longer\n // serve the fallback\n if (previousCacheEntry) {\n isIsrFallback = false\n }\n\n if (isIsrFallback) {\n const fallbackResponse = await routeModule\n .getResponseCache(req)\n .get(\n routeModule.isDev\n ? null\n : locale\n ? `/${locale}${srcPage}`\n : srcPage,\n async ({\n previousCacheEntry: previousFallbackCacheEntry = null,\n }) => {\n if (!routeModule.isDev) {\n return toResponseCacheEntry(previousFallbackCacheEntry)\n }\n return doRender()\n },\n {\n routeKind: RouteKind.PAGES,\n isFallback: true,\n isRoutePPREnabled: false,\n isOnDemandRevalidate: false,\n incrementalCache: await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ),\n waitUntil: ctx.waitUntil,\n }\n )\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl\n fallbackResponse.isMiss = true\n return fallbackResponse\n }\n }\n\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n if (\n isIsrFallback &&\n previousCacheEntry?.value?.kind === CachedRouteKind.PAGES\n ) {\n return {\n value: {\n kind: CachedRouteKind.PAGES,\n html: new RenderResult(\n Buffer.from(previousCacheEntry.value.html),\n {\n contentType: HTML_CONTENT_TYPE_HEADER,\n metadata: {\n statusCode: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers,\n },\n }\n ),\n pageData: {},\n status: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers,\n } satisfies CachedPageValue,\n cacheControl: { revalidate: 0, expire: undefined },\n } satisfies ResponseCacheEntry\n }\n return doRender()\n }\n\n const result = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: RouteKind.PAGES,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n waitUntil: ctx.waitUntil,\n responseGenerator: responseGenerator,\n prerenderManifest,\n isMinimalMode,\n })\n\n // if we got a cache hit this wasn't an ISR fallback\n // but it wasn't generated during build so isn't in the\n // prerender-manifest\n if (isIsrFallback && !result?.isMiss) {\n isIsrFallback = false\n }\n\n // response is finished is no cache entry\n if (!result) {\n return\n }\n\n if (hasStaticProps && !isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : result.isMiss\n ? 'MISS'\n : result.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n let cacheControl: CacheControl | undefined\n\n if (!hasStaticProps || isIsrFallback) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = { revalidate: 0, expire: undefined }\n }\n } else if (is404Page) {\n const notFoundRevalidate = getRequestMeta(req, 'notFoundRevalidate')\n\n cacheControl = {\n revalidate:\n typeof notFoundRevalidate === 'undefined'\n ? 0\n : notFoundRevalidate,\n expire: undefined,\n }\n } else if (is500Page) {\n cacheControl = { revalidate: 0, expire: undefined }\n } else if (result.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof result.cacheControl.revalidate === 'number') {\n if (result.cacheControl.revalidate < 1) {\n throw new Error(\n `Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`\n )\n }\n cacheControl = {\n revalidate: result.cacheControl.revalidate,\n expire: result.cacheControl?.expire ?? nextConfig.expireTime,\n }\n } else {\n // revalidate: false\n cacheControl = {\n revalidate: CACHE_ONE_YEAR,\n expire: undefined,\n }\n }\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', getCacheControlHeader(cacheControl))\n }\n\n // notFound: true case\n if (!result.value) {\n // add revalidate metadata before rendering 404 page\n // so that we can use this as source of truth for the\n // cache-control header instead of what the 404 page returns\n // for the revalidate value\n addRequestMeta(\n req,\n 'notFoundRevalidate',\n result.cacheControl?.revalidate\n )\n\n res.statusCode = 404\n\n if (isNextDataRequest) {\n res.end('{\"notFound\":true}')\n return\n }\n return await render404()\n }\n\n if (result.value.kind === CachedRouteKind.REDIRECT) {\n if (isNextDataRequest) {\n res.setHeader('content-type', JSON_CONTENT_TYPE_HEADER)\n res.end(JSON.stringify(result.value.props))\n return\n } else {\n const handleRedirect = (pageData: any) => {\n const redirect = {\n destination: pageData.pageProps.__N_REDIRECT,\n statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH,\n }\n const statusCode = getRedirectStatus(redirect)\n const { basePath } = nextConfig\n\n if (\n basePath &&\n redirect.basePath !== false &&\n redirect.destination.startsWith('/')\n ) {\n redirect.destination = `${basePath}${redirect.destination}`\n }\n\n if (redirect.destination.startsWith('/')) {\n redirect.destination = normalizeRepeatedSlashes(\n redirect.destination\n )\n }\n\n res.statusCode = statusCode\n res.setHeader('Location', redirect.destination)\n if (statusCode === RedirectStatusCode.PermanentRedirect) {\n res.setHeader('Refresh', `0;url=${redirect.destination}`)\n }\n res.end(redirect.destination)\n }\n await handleRedirect(result.value.props)\n return null\n }\n }\n\n if (result.value.kind !== CachedRouteKind.PAGES) {\n throw new Error(\n `Invariant: received non-pages cache entry in pages handler`\n )\n }\n\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader(\n 'Cache-Control',\n nextConfig.experimental.devCacheControlNoCache\n ? 'no-cache, must-revalidate'\n : 'no-store, must-revalidate'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n // when invoking _error before pages/500 we don't actually\n // send the _error response\n if (\n getRequestMeta(req, 'customErrorRender') ||\n (isErrorPage && isMinimalMode && res.statusCode === 500)\n ) {\n return null\n }\n\n await sendRenderResult({\n req,\n res,\n // If we are rendering the error page it's not a data request\n // anymore\n result:\n isNextDataRequest && !isErrorPage && !is500Page\n ? new RenderResult(\n Buffer.from(JSON.stringify(result.value.pageData)),\n {\n contentType: JSON_CONTENT_TYPE_HEADER,\n metadata: result.value.html.metadata,\n }\n )\n : result.value.html,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n cacheControl: routeModule.isDev ? undefined : cacheControl,\n })\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse()\n } else {\n await tracer.withPropagatedContext(req.headers, () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n )\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: hasStaticProps,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n throw err\n }\n }\n}\n"],"names":["getHandler","srcPage","originalSrcPage","config","userland","routeModule","isFallbackError","getStaticPaths","getStaticProps","getServerSideProps","handler","req","res","ctx","serverFilesManifest","requestMeta","setRequestMeta","isDev","addRequestMeta","process","hrtime","bigint","env","TURBOPACK","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","isMinimalMode","Boolean","getRequestMeta","render404","routerServerContext","parsedUrl","buildId","query","params","originalQuery","originalPathname","buildManifest","fallbackBuildManifest","nextFontManifest","reactLoadableManifest","prerenderManifest","isDraftMode","isOnDemandRevalidate","revalidateOnlyGenerated","locale","locales","defaultLocale","nextConfig","resolvedPathname","encodedResolvedPathname","isExperimentalCompile","experimental","hasServerProps","hasStaticProps","hasStaticPaths","hasGetInitialProps","default","getInitialProps","cacheKey","isIsrFallback","isNextDataRequest","is404Page","is500Page","isErrorPage","decodedPathname","removeTrailingSlash","addPathPrefix","isPrerendered","routes","notFoundRoutes","includes","prerenderInfo","dynamicRoutes","fallback","adapterPath","NoFallbackError","isBot","headers","tracer","getTracer","activeSpan","getActiveScopeSpan","method","resolvedUrl","formatUrl","pathname","trailingSlash","endsWith","handleResponse","span","responseGenerator","previousCacheEntry","doRender","render","page","renderContext","isFallback","developmentNotFoundSourcePage","sharedContext","customServer","isCustomServer","undefined","deploymentId","getDeploymentId","renderOpts","pageConfig","Component","interopDefault","ComponentMod","supportsDynamicResponse","assetPrefix","previewProps","preview","images","nextConfigOutput","output","optimizeCss","nextScriptWorkers","domainLocales","i18n","domains","crossOrigin","basePath","disableOptimizedLoading","largePageDataBytes","clientTraceMetadata","setIsrStatus","resolvedAsPath","normalizeDataPath","ErrorDebug","err","dev","distDir","path","join","cwd","relativeProjectDir","then","renderResult","metadata","cacheControl","isNotFound","value","isRedirect","kind","CachedRouteKind","REDIRECT","props","pageData","flightData","PAGES","html","status","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","BaseServerSpan","handleRequest","console","warn","route","name","updateName","isStale","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","getRevalidateReason","isStaticGeneration","fallbackResponse","getResponseCache","previousFallbackCacheEntry","toResponseCacheEntry","routeKind","RouteKind","isRoutePPREnabled","incrementalCache","getIncrementalCache","isMiss","setHeader","RenderResult","Buffer","from","contentType","HTML_CONTENT_TYPE_HEADER","revalidate","expire","result","getHeader","notFoundRevalidate","Error","expireTime","CACHE_ONE_YEAR","getCacheControlHeader","JSON_CONTENT_TYPE_HEADER","JSON","stringify","handleRedirect","redirect","destination","pageProps","__N_REDIRECT","__N_REDIRECT_STATUS","__N_REDIRECT_BASE_PATH","getRedirectStatus","startsWith","normalizeRepeatedSlashes","RedirectStatusCode","PermanentRedirect","devCacheControlNoCache","sendRenderResult","generateEtags","poweredByHeader","withPropagatedContext","trace","spanName","SpanKind","SERVER","attributes","url"],"mappings":"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","ignoreList":[0]}
|
|
@@ -2,12 +2,11 @@ import type { IncomingMessage, ServerResponse } from 'http';
|
|
|
2
2
|
import type RenderResult from './render-result';
|
|
3
3
|
import type { CacheControl } from './lib/cache-control';
|
|
4
4
|
export declare function sendEtagResponse(req: IncomingMessage, res: ServerResponse, etag: string | undefined): boolean;
|
|
5
|
-
export declare function sendRenderResult({ req, res, result, generateEtags, poweredByHeader, cacheControl,
|
|
5
|
+
export declare function sendRenderResult({ req, res, result, generateEtags, poweredByHeader, cacheControl, }: {
|
|
6
6
|
req: IncomingMessage;
|
|
7
7
|
res: ServerResponse;
|
|
8
8
|
result: RenderResult;
|
|
9
9
|
generateEtags: boolean;
|
|
10
10
|
poweredByHeader: boolean;
|
|
11
11
|
cacheControl: CacheControl | undefined;
|
|
12
|
-
cdnCacheControlHeader?: string;
|
|
13
12
|
}): Promise<void>;
|
|
@@ -48,7 +48,7 @@ function sendEtagResponse(req, res, etag) {
|
|
|
48
48
|
}
|
|
49
49
|
return false;
|
|
50
50
|
}
|
|
51
|
-
async function sendRenderResult({ req, res, result, generateEtags, poweredByHeader, cacheControl
|
|
51
|
+
async function sendRenderResult({ req, res, result, generateEtags, poweredByHeader, cacheControl }) {
|
|
52
52
|
if ((0, _utils.isResSent)(res)) {
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
@@ -58,7 +58,7 @@ async function sendRenderResult({ req, res, result, generateEtags, poweredByHead
|
|
|
58
58
|
// If cache control is already set on the response we don't
|
|
59
59
|
// override it to allow users to customize it via next.config
|
|
60
60
|
if (cacheControl && !res.getHeader('Cache-Control')) {
|
|
61
|
-
(0, _cachecontrol.
|
|
61
|
+
res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl));
|
|
62
62
|
}
|
|
63
63
|
const payload = result.isDynamic ? null : result.toUnchunkedString();
|
|
64
64
|
if (generateEtags && payload !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/server/send-payload.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'http'\nimport type RenderResult from './render-result'\nimport type { CacheControl } from './lib/cache-control'\n\nimport { isResSent } from '../shared/lib/utils'\nimport { generateETag } from './lib/etag'\nimport fresh from 'next/dist/compiled/fresh'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/server/send-payload.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'http'\nimport type RenderResult from './render-result'\nimport type { CacheControl } from './lib/cache-control'\n\nimport { isResSent } from '../shared/lib/utils'\nimport { generateETag } from './lib/etag'\nimport fresh from 'next/dist/compiled/fresh'\nimport { getCacheControlHeader } from './lib/cache-control'\nimport { HTML_CONTENT_TYPE_HEADER } from '../lib/constants'\n\nexport function sendEtagResponse(\n req: IncomingMessage,\n res: ServerResponse,\n etag: string | undefined\n): boolean {\n if (etag) {\n /**\n * The server generating a 304 response MUST generate any of the\n * following header fields that would have been sent in a 200 (OK)\n * response to the same request: Cache-Control, Content-Location, Date,\n * ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1\n */\n res.setHeader('ETag', etag)\n }\n\n if (fresh(req.headers, { etag })) {\n res.statusCode = 304\n res.end()\n return true\n }\n\n return false\n}\n\nexport async function sendRenderResult({\n req,\n res,\n result,\n generateEtags,\n poweredByHeader,\n cacheControl,\n}: {\n req: IncomingMessage\n res: ServerResponse\n result: RenderResult\n generateEtags: boolean\n poweredByHeader: boolean\n cacheControl: CacheControl | undefined\n}): Promise<void> {\n if (isResSent(res)) {\n return\n }\n\n if (poweredByHeader && result.contentType === HTML_CONTENT_TYPE_HEADER) {\n res.setHeader('X-Powered-By', 'Next.js')\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', getCacheControlHeader(cacheControl))\n }\n\n const payload = result.isDynamic ? null : result.toUnchunkedString()\n\n if (generateEtags && payload !== null) {\n const etag = generateETag(payload)\n if (sendEtagResponse(req, res, etag)) {\n return\n }\n }\n\n if (!res.getHeader('Content-Type') && result.contentType) {\n res.setHeader('Content-Type', result.contentType)\n }\n\n if (payload) {\n res.setHeader('Content-Length', Buffer.byteLength(payload))\n }\n\n if (req.method === 'HEAD') {\n res.end(null)\n return\n }\n\n if (payload !== null) {\n res.end(payload)\n return\n }\n\n // Pipe the render result to the response after we get a writer for it.\n await result.pipeToNodeResponse(res)\n}\n"],"names":["sendEtagResponse","sendRenderResult","req","res","etag","setHeader","fresh","headers","statusCode","end","result","generateEtags","poweredByHeader","cacheControl","isResSent","contentType","HTML_CONTENT_TYPE_HEADER","getHeader","getCacheControlHeader","payload","isDynamic","toUnchunkedString","generateETag","Buffer","byteLength","method","pipeToNodeResponse"],"mappings":";;;;;;;;;;;;;;;IAUgBA,gBAAgB;eAAhBA;;IAwBMC,gBAAgB;eAAhBA;;;uBA9BI;sBACG;8DACX;8BACoB;2BACG;;;;;;AAElC,SAASD,iBACdE,GAAoB,EACpBC,GAAmB,EACnBC,IAAwB;IAExB,IAAIA,MAAM;QACR;;;;;KAKC,GACDD,IAAIE,SAAS,CAAC,QAAQD;IACxB;IAEA,IAAIE,IAAAA,cAAK,EAACJ,IAAIK,OAAO,EAAE;QAAEH;IAAK,IAAI;QAChCD,IAAIK,UAAU,GAAG;QACjBL,IAAIM,GAAG;QACP,OAAO;IACT;IAEA,OAAO;AACT;AAEO,eAAeR,iBAAiB,EACrCC,GAAG,EACHC,GAAG,EACHO,MAAM,EACNC,aAAa,EACbC,eAAe,EACfC,YAAY,EAQb;IACC,IAAIC,IAAAA,gBAAS,EAACX,MAAM;QAClB;IACF;IAEA,IAAIS,mBAAmBF,OAAOK,WAAW,KAAKC,mCAAwB,EAAE;QACtEb,IAAIE,SAAS,CAAC,gBAAgB;IAChC;IAEA,2DAA2D;IAC3D,6DAA6D;IAC7D,IAAIQ,gBAAgB,CAACV,IAAIc,SAAS,CAAC,kBAAkB;QACnDd,IAAIE,SAAS,CAAC,iBAAiBa,IAAAA,mCAAqB,EAACL;IACvD;IAEA,MAAMM,UAAUT,OAAOU,SAAS,GAAG,OAAOV,OAAOW,iBAAiB;IAElE,IAAIV,iBAAiBQ,YAAY,MAAM;QACrC,MAAMf,OAAOkB,IAAAA,kBAAY,EAACH;QAC1B,IAAInB,iBAAiBE,KAAKC,KAAKC,OAAO;YACpC;QACF;IACF;IAEA,IAAI,CAACD,IAAIc,SAAS,CAAC,mBAAmBP,OAAOK,WAAW,EAAE;QACxDZ,IAAIE,SAAS,CAAC,gBAAgBK,OAAOK,WAAW;IAClD;IAEA,IAAII,SAAS;QACXhB,IAAIE,SAAS,CAAC,kBAAkBkB,OAAOC,UAAU,CAACL;IACpD;IAEA,IAAIjB,IAAIuB,MAAM,KAAK,QAAQ;QACzBtB,IAAIM,GAAG,CAAC;QACR;IACF;IAEA,IAAIU,YAAY,MAAM;QACpBhB,IAAIM,GAAG,CAACU;QACR;IACF;IAEA,uEAAuE;IACvE,MAAMT,OAAOgB,kBAAkB,CAACvB;AAClC","ignoreList":[0]}
|
|
@@ -21,7 +21,7 @@ _export(exports, {
|
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
23
|
function isStableBuild() {
|
|
24
|
-
return !"16.1.1-canary.
|
|
24
|
+
return !"16.1.1-canary.25"?.includes('canary') && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
|
|
25
25
|
}
|
|
26
26
|
class CanaryOnlyConfigError extends Error {
|
|
27
27
|
constructor(arg){
|
|
@@ -11,11 +11,11 @@ Object.defineProperty(exports, "eventCliSessionStopped", {
|
|
|
11
11
|
const EVENT_VERSION = 'NEXT_CLI_SESSION_STOPPED';
|
|
12
12
|
function eventCliSessionStopped(event) {
|
|
13
13
|
// This should be an invariant, if it fails our build tooling is broken.
|
|
14
|
-
if (typeof "16.1.1-canary.
|
|
14
|
+
if (typeof "16.1.1-canary.25" !== 'string') {
|
|
15
15
|
return [];
|
|
16
16
|
}
|
|
17
17
|
const payload = {
|
|
18
|
-
nextVersion: "16.1.1-canary.
|
|
18
|
+
nextVersion: "16.1.1-canary.25",
|
|
19
19
|
nodeVersion: process.version,
|
|
20
20
|
cliCommand: event.cliCommand,
|
|
21
21
|
durationMilliseconds: event.durationMilliseconds,
|
|
@@ -12,12 +12,12 @@ const EVENT_VERSION = 'NEXT_CLI_SESSION_STARTED';
|
|
|
12
12
|
function eventCliSession(nextConfig, event) {
|
|
13
13
|
var _nextConfig_experimental_staleTimes, _nextConfig_experimental_staleTimes1, _nextConfig_reactCompiler, _nextConfig_reactCompiler1;
|
|
14
14
|
// This should be an invariant, if it fails our build tooling is broken.
|
|
15
|
-
if (typeof "16.1.1-canary.
|
|
15
|
+
if (typeof "16.1.1-canary.25" !== 'string') {
|
|
16
16
|
return [];
|
|
17
17
|
}
|
|
18
18
|
const { images, i18n } = nextConfig || {};
|
|
19
19
|
const payload = {
|
|
20
|
-
nextVersion: "16.1.1-canary.
|
|
20
|
+
nextVersion: "16.1.1-canary.25",
|
|
21
21
|
nodeVersion: process.version,
|
|
22
22
|
cliCommand: event.cliCommand,
|
|
23
23
|
isSrcDir: event.isSrcDir,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "next",
|
|
3
|
-
"version": "16.1.1-canary.
|
|
3
|
+
"version": "16.1.1-canary.25",
|
|
4
4
|
"description": "The React Framework",
|
|
5
5
|
"main": "./dist/server/next.js",
|
|
6
6
|
"license": "MIT",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
]
|
|
98
98
|
},
|
|
99
99
|
"dependencies": {
|
|
100
|
-
"@next/env": "16.1.1-canary.
|
|
100
|
+
"@next/env": "16.1.1-canary.25",
|
|
101
101
|
"@swc/helpers": "0.5.15",
|
|
102
102
|
"baseline-browser-mapping": "^2.8.3",
|
|
103
103
|
"caniuse-lite": "^1.0.30001579",
|
|
@@ -128,14 +128,14 @@
|
|
|
128
128
|
},
|
|
129
129
|
"optionalDependencies": {
|
|
130
130
|
"sharp": "^0.34.5",
|
|
131
|
-
"@next/swc-darwin-arm64": "16.1.1-canary.
|
|
132
|
-
"@next/swc-darwin-x64": "16.1.1-canary.
|
|
133
|
-
"@next/swc-linux-arm64-gnu": "16.1.1-canary.
|
|
134
|
-
"@next/swc-linux-arm64-musl": "16.1.1-canary.
|
|
135
|
-
"@next/swc-linux-x64-gnu": "16.1.1-canary.
|
|
136
|
-
"@next/swc-linux-x64-musl": "16.1.1-canary.
|
|
137
|
-
"@next/swc-win32-arm64-msvc": "16.1.1-canary.
|
|
138
|
-
"@next/swc-win32-x64-msvc": "16.1.1-canary.
|
|
131
|
+
"@next/swc-darwin-arm64": "16.1.1-canary.25",
|
|
132
|
+
"@next/swc-darwin-x64": "16.1.1-canary.25",
|
|
133
|
+
"@next/swc-linux-arm64-gnu": "16.1.1-canary.25",
|
|
134
|
+
"@next/swc-linux-arm64-musl": "16.1.1-canary.25",
|
|
135
|
+
"@next/swc-linux-x64-gnu": "16.1.1-canary.25",
|
|
136
|
+
"@next/swc-linux-x64-musl": "16.1.1-canary.25",
|
|
137
|
+
"@next/swc-win32-arm64-msvc": "16.1.1-canary.25",
|
|
138
|
+
"@next/swc-win32-x64-msvc": "16.1.1-canary.25"
|
|
139
139
|
},
|
|
140
140
|
"devDependencies": {
|
|
141
141
|
"@babel/code-frame": "7.26.2",
|
|
@@ -170,11 +170,11 @@
|
|
|
170
170
|
"@modelcontextprotocol/sdk": "1.18.1",
|
|
171
171
|
"@mswjs/interceptors": "0.23.0",
|
|
172
172
|
"@napi-rs/triples": "1.2.0",
|
|
173
|
-
"@next/font": "16.1.1-canary.
|
|
174
|
-
"@next/polyfill-module": "16.1.1-canary.
|
|
175
|
-
"@next/polyfill-nomodule": "16.1.1-canary.
|
|
176
|
-
"@next/react-refresh-utils": "16.1.1-canary.
|
|
177
|
-
"@next/swc": "16.1.1-canary.
|
|
173
|
+
"@next/font": "16.1.1-canary.25",
|
|
174
|
+
"@next/polyfill-module": "16.1.1-canary.25",
|
|
175
|
+
"@next/polyfill-nomodule": "16.1.1-canary.25",
|
|
176
|
+
"@next/react-refresh-utils": "16.1.1-canary.25",
|
|
177
|
+
"@next/swc": "16.1.1-canary.25",
|
|
178
178
|
"@opentelemetry/api": "1.6.0",
|
|
179
179
|
"@playwright/test": "1.51.1",
|
|
180
180
|
"@rspack/core": "1.6.7",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|