next 15.4.0-canary.41 → 15.4.0-canary.42

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.
Files changed (40) hide show
  1. package/dist/bin/next +1 -1
  2. package/dist/build/index.js +2 -2
  3. package/dist/build/swc/index.js +1 -1
  4. package/dist/build/turbopack-build/impl.js +50 -0
  5. package/dist/build/turbopack-build/impl.js.map +1 -1
  6. package/dist/build/webpack-config.js +2 -2
  7. package/dist/client/app-bootstrap.js +1 -1
  8. package/dist/client/index.js +1 -1
  9. package/dist/compiled/next-server/app-page-experimental.runtime.dev.js +2 -2
  10. package/dist/compiled/next-server/pages-turbo.runtime.dev.js +2 -2
  11. package/dist/compiled/next-server/pages-turbo.runtime.dev.js.map +1 -1
  12. package/dist/compiled/next-server/pages.runtime.dev.js +2 -2
  13. package/dist/compiled/next-server/pages.runtime.dev.js.map +1 -1
  14. package/dist/compiled/next-server/server.runtime.prod.js +1 -1
  15. package/dist/compiled/next-server/server.runtime.prod.js.map +1 -1
  16. package/dist/esm/build/index.js +2 -2
  17. package/dist/esm/build/swc/index.js +1 -1
  18. package/dist/esm/build/turbopack-build/impl.js +9 -0
  19. package/dist/esm/build/turbopack-build/impl.js.map +1 -1
  20. package/dist/esm/build/webpack-config.js +2 -2
  21. package/dist/esm/client/app-bootstrap.js +1 -1
  22. package/dist/esm/client/index.js +1 -1
  23. package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
  24. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  25. package/dist/esm/server/lib/app-info-log.js +1 -1
  26. package/dist/esm/server/lib/incremental-cache/index.js +4 -2
  27. package/dist/esm/server/lib/incremental-cache/index.js.map +1 -1
  28. package/dist/esm/server/lib/start-server.js +1 -1
  29. package/dist/esm/shared/lib/canary-only.js +1 -1
  30. package/dist/server/dev/hot-reloader-turbopack.js +1 -1
  31. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  32. package/dist/server/lib/app-info-log.js +1 -1
  33. package/dist/server/lib/incremental-cache/index.js +4 -2
  34. package/dist/server/lib/incremental-cache/index.js.map +1 -1
  35. package/dist/server/lib/start-server.js +1 -1
  36. package/dist/shared/lib/canary-only.js +1 -1
  37. package/dist/telemetry/anonymous-meta.js +1 -1
  38. package/dist/telemetry/events/session-stopped.js +2 -2
  39. package/dist/telemetry/events/version.js +2 -2
  40. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/server/lib/incremental-cache/index.ts"],"sourcesContent":["import type { CacheFs } from '../../../shared/lib/utils'\nimport type { PrerenderManifest } from '../../../build'\nimport {\n type IncrementalCacheValue,\n type IncrementalCacheEntry,\n type IncrementalCache as IncrementalCacheType,\n IncrementalCacheKind,\n CachedRouteKind,\n type IncrementalResponseCacheEntry,\n type IncrementalFetchCacheEntry,\n type GetIncrementalFetchCacheContext,\n type GetIncrementalResponseCacheContext,\n type CachedFetchValue,\n type SetIncrementalFetchCacheContext,\n type SetIncrementalResponseCacheContext,\n} from '../../response-cache'\nimport type { DeepReadonly } from '../../../shared/lib/deep-readonly'\n\nimport FileSystemCache from './file-system-cache'\nimport { normalizePagePath } from '../../../shared/lib/page-path/normalize-page-path'\n\nimport {\n CACHE_ONE_YEAR,\n PRERENDER_REVALIDATE_HEADER,\n} from '../../../lib/constants'\nimport { toRoute } from '../to-route'\nimport { SharedCacheControls } from './shared-cache-controls'\nimport {\n getPrerenderResumeDataCache,\n getRenderResumeDataCache,\n workUnitAsyncStorage,\n} from '../../app-render/work-unit-async-storage.external'\nimport { InvariantError } from '../../../shared/lib/invariant-error'\nimport type { Revalidate } from '../cache-control'\nimport { getPreviouslyRevalidatedTags } from '../../server-utils'\nimport { workAsyncStorage } from '../../app-render/work-async-storage.external'\n\nexport interface CacheHandlerContext {\n fs?: CacheFs\n dev?: boolean\n flushToDisk?: boolean\n serverDistDir?: string\n maxMemoryCacheSize?: number\n fetchCacheKeyPrefix?: string\n prerenderManifest?: PrerenderManifest\n revalidatedTags: string[]\n _requestHeaders: IncrementalCache['requestHeaders']\n}\n\nexport interface CacheHandlerValue {\n lastModified?: number\n age?: number\n cacheState?: string\n value: IncrementalCacheValue | null\n}\n\nexport class CacheHandler {\n // eslint-disable-next-line\n constructor(_ctx: CacheHandlerContext) {}\n\n public async get(\n _cacheKey: string,\n _ctx: GetIncrementalFetchCacheContext | GetIncrementalResponseCacheContext\n ): Promise<CacheHandlerValue | null> {\n return {} as any\n }\n\n public async set(\n _cacheKey: string,\n _data: IncrementalCacheValue | null,\n _ctx: SetIncrementalFetchCacheContext | SetIncrementalResponseCacheContext\n ): Promise<void> {}\n\n public async revalidateTag(\n ..._args: Parameters<IncrementalCache['revalidateTag']>\n ): Promise<void> {}\n\n public resetRequestCache(): void {}\n}\n\nexport class IncrementalCache implements IncrementalCacheType {\n readonly dev?: boolean\n readonly disableForTestmode?: boolean\n readonly cacheHandler?: CacheHandler\n readonly hasCustomCacheHandler: boolean\n readonly prerenderManifest: DeepReadonly<PrerenderManifest>\n readonly requestHeaders: Record<string, undefined | string | string[]>\n readonly requestProtocol?: 'http' | 'https'\n readonly allowedRevalidateHeaderKeys?: string[]\n readonly minimalMode?: boolean\n readonly fetchCacheKeyPrefix?: string\n readonly revalidatedTags?: string[]\n readonly isOnDemandRevalidate?: boolean\n\n private readonly locks = new Map<string, Promise<void>>()\n\n /**\n * The cache controls for routes. This will source the values from the\n * prerender manifest until the in-memory cache is updated with new values.\n */\n private readonly cacheControls: SharedCacheControls\n\n constructor({\n fs,\n dev,\n flushToDisk,\n minimalMode,\n serverDistDir,\n requestHeaders,\n requestProtocol,\n maxMemoryCacheSize,\n getPrerenderManifest,\n fetchCacheKeyPrefix,\n CurCacheHandler,\n allowedRevalidateHeaderKeys,\n }: {\n fs?: CacheFs\n dev: boolean\n minimalMode?: boolean\n serverDistDir?: string\n flushToDisk?: boolean\n requestProtocol?: 'http' | 'https'\n allowedRevalidateHeaderKeys?: string[]\n requestHeaders: IncrementalCache['requestHeaders']\n maxMemoryCacheSize?: number\n getPrerenderManifest: () => DeepReadonly<PrerenderManifest>\n fetchCacheKeyPrefix?: string\n CurCacheHandler?: typeof CacheHandler\n }) {\n const debug = !!process.env.NEXT_PRIVATE_DEBUG_CACHE\n this.hasCustomCacheHandler = Boolean(CurCacheHandler)\n\n const cacheHandlersSymbol = Symbol.for('@next/cache-handlers')\n const _globalThis: typeof globalThis & {\n [cacheHandlersSymbol]?: {\n FetchCache?: typeof CacheHandler\n }\n } = globalThis\n\n if (!CurCacheHandler) {\n // if we have a global cache handler available leverage it\n const globalCacheHandler = _globalThis[cacheHandlersSymbol]\n\n if (globalCacheHandler?.FetchCache) {\n CurCacheHandler = globalCacheHandler.FetchCache\n } else {\n if (fs && serverDistDir) {\n if (debug) {\n console.log('using filesystem cache handler')\n }\n CurCacheHandler = FileSystemCache\n }\n }\n } else if (debug) {\n console.log('using custom cache handler', CurCacheHandler.name)\n }\n\n if (process.env.__NEXT_TEST_MAX_ISR_CACHE) {\n // Allow cache size to be overridden for testing purposes\n maxMemoryCacheSize = parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE, 10)\n }\n this.dev = dev\n this.disableForTestmode = process.env.NEXT_PRIVATE_TEST_PROXY === 'true'\n // this is a hack to avoid Webpack knowing this is equal to this.minimalMode\n // because we replace this.minimalMode to true in production bundles.\n const minimalModeKey = 'minimalMode'\n this[minimalModeKey] = minimalMode\n this.requestHeaders = requestHeaders\n this.requestProtocol = requestProtocol\n this.allowedRevalidateHeaderKeys = allowedRevalidateHeaderKeys\n this.prerenderManifest = getPrerenderManifest()\n this.cacheControls = new SharedCacheControls(this.prerenderManifest)\n this.fetchCacheKeyPrefix = fetchCacheKeyPrefix\n let revalidatedTags: string[] = []\n\n if (\n requestHeaders[PRERENDER_REVALIDATE_HEADER] ===\n this.prerenderManifest?.preview?.previewModeId\n ) {\n this.isOnDemandRevalidate = true\n }\n\n if (minimalMode) {\n revalidatedTags = getPreviouslyRevalidatedTags(\n requestHeaders,\n this.prerenderManifest?.preview?.previewModeId\n )\n }\n\n if (CurCacheHandler) {\n this.cacheHandler = new CurCacheHandler({\n dev,\n fs,\n flushToDisk,\n serverDistDir,\n revalidatedTags,\n maxMemoryCacheSize,\n _requestHeaders: requestHeaders,\n fetchCacheKeyPrefix,\n })\n }\n }\n\n private calculateRevalidate(\n pathname: string,\n fromTime: number,\n dev: boolean,\n isFallback: boolean | undefined\n ): Revalidate {\n // in development we don't have a prerender-manifest\n // and default to always revalidating to allow easier debugging\n if (dev)\n return Math.floor(performance.timeOrigin + performance.now() - 1000)\n\n const cacheControl = this.cacheControls.get(toRoute(pathname))\n\n // if an entry isn't present in routes we fallback to a default\n // of revalidating after 1 second unless it's a fallback request.\n const initialRevalidateSeconds = cacheControl\n ? cacheControl.revalidate\n : isFallback\n ? false\n : 1\n\n const revalidateAfter =\n typeof initialRevalidateSeconds === 'number'\n ? initialRevalidateSeconds * 1000 + fromTime\n : initialRevalidateSeconds\n\n return revalidateAfter\n }\n\n _getPathname(pathname: string, fetchCache?: boolean) {\n return fetchCache ? pathname : normalizePagePath(pathname)\n }\n\n resetRequestCache() {\n this.cacheHandler?.resetRequestCache?.()\n }\n\n async lock(cacheKey: string) {\n let unlockNext: () => Promise<void> = () => Promise.resolve()\n const existingLock = this.locks.get(cacheKey)\n\n if (existingLock) {\n await existingLock\n }\n\n const newLock = new Promise<void>((resolve) => {\n unlockNext = async () => {\n resolve()\n this.locks.delete(cacheKey) // Remove the lock upon release\n }\n })\n\n this.locks.set(cacheKey, newLock)\n return unlockNext\n }\n\n async revalidateTag(tags: string | string[]): Promise<void> {\n return this.cacheHandler?.revalidateTag(tags)\n }\n\n // x-ref: https://github.com/facebook/react/blob/2655c9354d8e1c54ba888444220f63e836925caa/packages/react/src/ReactFetch.js#L23\n async generateCacheKey(\n url: string,\n init: RequestInit | Request = {}\n ): Promise<string> {\n // this should be bumped anytime a fix is made to cache entries\n // that should bust the cache\n const MAIN_KEY_PREFIX = 'v3'\n\n const bodyChunks: string[] = []\n\n const encoder = new TextEncoder()\n const decoder = new TextDecoder()\n\n if (init.body) {\n // handle ReadableStream body\n if (typeof (init.body as any).getReader === 'function') {\n const readableBody = init.body as ReadableStream<Uint8Array | string>\n\n const chunks: Uint8Array[] = []\n\n try {\n await readableBody.pipeTo(\n new WritableStream({\n write(chunk) {\n if (typeof chunk === 'string') {\n chunks.push(encoder.encode(chunk))\n bodyChunks.push(chunk)\n } else {\n chunks.push(chunk)\n bodyChunks.push(decoder.decode(chunk, { stream: true }))\n }\n },\n })\n )\n\n // Flush the decoder.\n bodyChunks.push(decoder.decode())\n\n // Create a new buffer with all the chunks.\n const length = chunks.reduce((total, arr) => total + arr.length, 0)\n const arrayBuffer = new Uint8Array(length)\n\n // Push each of the chunks into the new array buffer.\n let offset = 0\n for (const chunk of chunks) {\n arrayBuffer.set(chunk, offset)\n offset += chunk.length\n }\n\n ;(init as any)._ogBody = arrayBuffer\n } catch (err) {\n console.error('Problem reading body', err)\n }\n } // handle FormData or URLSearchParams bodies\n else if (typeof (init.body as any).keys === 'function') {\n const formData = init.body as FormData\n ;(init as any)._ogBody = init.body\n for (const key of new Set([...formData.keys()])) {\n const values = formData.getAll(key)\n bodyChunks.push(\n `${key}=${(\n await Promise.all(\n values.map(async (val) => {\n if (typeof val === 'string') {\n return val\n } else {\n return await val.text()\n }\n })\n )\n ).join(',')}`\n )\n }\n // handle blob body\n } else if (typeof (init.body as any).arrayBuffer === 'function') {\n const blob = init.body as Blob\n const arrayBuffer = await blob.arrayBuffer()\n bodyChunks.push(await blob.text())\n ;(init as any)._ogBody = new Blob([arrayBuffer], { type: blob.type })\n } else if (typeof init.body === 'string') {\n bodyChunks.push(init.body)\n ;(init as any)._ogBody = init.body\n }\n }\n\n const headers =\n typeof (init.headers || {}).keys === 'function'\n ? Object.fromEntries(init.headers as Headers)\n : Object.assign({}, init.headers)\n\n // w3c trace context headers can break request caching and deduplication\n // so we remove them from the cache key\n if ('traceparent' in headers) delete headers['traceparent']\n if ('tracestate' in headers) delete headers['tracestate']\n\n const cacheString = JSON.stringify([\n MAIN_KEY_PREFIX,\n this.fetchCacheKeyPrefix || '',\n url,\n init.method,\n headers,\n init.mode,\n init.redirect,\n init.credentials,\n init.referrer,\n init.referrerPolicy,\n init.integrity,\n init.cache,\n bodyChunks,\n ])\n\n if (process.env.NEXT_RUNTIME === 'edge') {\n function bufferToHex(buffer: ArrayBuffer): string {\n return Array.prototype.map\n .call(new Uint8Array(buffer), (b) => b.toString(16).padStart(2, '0'))\n .join('')\n }\n const buffer = encoder.encode(cacheString)\n return bufferToHex(await crypto.subtle.digest('SHA-256', buffer))\n } else {\n const crypto = require('crypto') as typeof import('crypto')\n return crypto.createHash('sha256').update(cacheString).digest('hex')\n }\n }\n\n async get(\n cacheKey: string,\n ctx: GetIncrementalFetchCacheContext\n ): Promise<IncrementalFetchCacheEntry | null>\n async get(\n cacheKey: string,\n ctx: GetIncrementalResponseCacheContext\n ): Promise<IncrementalResponseCacheEntry | null>\n async get(\n cacheKey: string,\n ctx: GetIncrementalFetchCacheContext | GetIncrementalResponseCacheContext\n ): Promise<IncrementalCacheEntry | null> {\n // Unlike other caches if we have a resume data cache, we use it even if\n // testmode would normally disable it or if requestHeaders say 'no-cache'.\n if (ctx.kind === IncrementalCacheKind.FETCH) {\n const workUnitStore = workUnitAsyncStorage.getStore()\n const resumeDataCache = workUnitStore\n ? getRenderResumeDataCache(workUnitStore)\n : null\n if (resumeDataCache) {\n const memoryCacheData = resumeDataCache.fetch.get(cacheKey)\n if (memoryCacheData?.kind === CachedRouteKind.FETCH) {\n return { isStale: false, value: memoryCacheData }\n }\n }\n }\n\n // we don't leverage the prerender cache in dev mode\n // so that getStaticProps is always called for easier debugging\n if (\n this.disableForTestmode ||\n (this.dev &&\n (ctx.kind !== IncrementalCacheKind.FETCH ||\n this.requestHeaders['cache-control'] === 'no-cache'))\n ) {\n return null\n }\n\n cacheKey = this._getPathname(\n cacheKey,\n ctx.kind === IncrementalCacheKind.FETCH\n )\n\n const cacheData = await this.cacheHandler?.get(cacheKey, ctx)\n\n if (ctx.kind === IncrementalCacheKind.FETCH) {\n if (!cacheData) {\n return null\n }\n\n if (cacheData.value?.kind !== CachedRouteKind.FETCH) {\n throw new InvariantError(\n `Expected cached value for cache key ${JSON.stringify(cacheKey)} to be a \"FETCH\" kind, got ${JSON.stringify(cacheData.value?.kind)} instead.`\n )\n }\n\n const workStore = workAsyncStorage.getStore()\n const combinedTags = [...(ctx.tags || []), ...(ctx.softTags || [])]\n // if a tag was revalidated we don't return stale data\n if (\n combinedTags.some(\n (tag) =>\n this.revalidatedTags?.includes(tag) ||\n workStore?.pendingRevalidatedTags?.includes(tag)\n )\n ) {\n return null\n }\n\n const revalidate = ctx.revalidate || cacheData.value.revalidate\n const age =\n (performance.timeOrigin +\n performance.now() -\n (cacheData.lastModified || 0)) /\n 1000\n\n const isStale = age > revalidate\n const data = cacheData.value.data\n\n return {\n isStale,\n value: { kind: CachedRouteKind.FETCH, data, revalidate },\n }\n } else if (cacheData?.value?.kind === CachedRouteKind.FETCH) {\n throw new InvariantError(\n `Expected cached value for cache key ${JSON.stringify(cacheKey)} not to be a ${JSON.stringify(ctx.kind)} kind, got \"FETCH\" instead.`\n )\n }\n\n let entry: IncrementalResponseCacheEntry | null = null\n const cacheControl = this.cacheControls.get(toRoute(cacheKey))\n\n let isStale: boolean | -1 | undefined\n let revalidateAfter: Revalidate\n\n if (cacheData?.lastModified === -1) {\n isStale = -1\n revalidateAfter = -1 * CACHE_ONE_YEAR\n } else {\n revalidateAfter = this.calculateRevalidate(\n cacheKey,\n cacheData?.lastModified || performance.timeOrigin + performance.now(),\n this.dev ?? false,\n ctx.isFallback\n )\n isStale =\n revalidateAfter !== false &&\n revalidateAfter < performance.timeOrigin + performance.now()\n ? true\n : undefined\n }\n\n if (cacheData) {\n entry = {\n isStale,\n cacheControl,\n revalidateAfter,\n value: cacheData.value,\n }\n }\n\n if (\n !cacheData &&\n this.prerenderManifest.notFoundRoutes.includes(cacheKey)\n ) {\n // for the first hit after starting the server the cache\n // may not have a way to save notFound: true so if\n // the prerender-manifest marks this as notFound then we\n // return that entry and trigger a cache set to give it a\n // chance to update in-memory entries\n entry = {\n isStale,\n value: null,\n cacheControl,\n revalidateAfter,\n }\n this.set(cacheKey, entry.value, { ...ctx, cacheControl })\n }\n return entry\n }\n\n async set(\n pathname: string,\n data: CachedFetchValue | null,\n ctx: SetIncrementalFetchCacheContext\n ): Promise<void>\n async set(\n pathname: string,\n data: Exclude<IncrementalCacheValue, CachedFetchValue> | null,\n ctx: SetIncrementalResponseCacheContext\n ): Promise<void>\n async set(\n pathname: string,\n data: IncrementalCacheValue | null,\n ctx: SetIncrementalFetchCacheContext | SetIncrementalResponseCacheContext\n ): Promise<void> {\n // Even if we otherwise disable caching for testMode or if no fetchCache is\n // configured we still always stash results in the resume data cache if one\n // exists. This is because this is a transient in memory cache that\n // populates caches ahead of a dynamic render in dev mode to allow the RSC\n // debug info to have the right environment associated to it.\n if (data?.kind === CachedRouteKind.FETCH) {\n const workUnitStore = workUnitAsyncStorage.getStore()\n const prerenderResumeDataCache = workUnitStore\n ? getPrerenderResumeDataCache(workUnitStore)\n : null\n if (prerenderResumeDataCache) {\n prerenderResumeDataCache.fetch.set(pathname, data)\n }\n }\n\n if (this.disableForTestmode || (this.dev && !ctx.fetchCache)) return\n\n pathname = this._getPathname(pathname, ctx.fetchCache)\n\n // FetchCache has upper limit of 2MB per-entry currently\n const itemSize = JSON.stringify(data).length\n if (\n ctx.fetchCache &&\n // we don't show this error/warning when a custom cache handler is being used\n // as it might not have this limit\n !this.hasCustomCacheHandler &&\n itemSize > 2 * 1024 * 1024\n ) {\n if (this.dev) {\n throw new Error(\n `Failed to set Next.js data cache, items over 2MB can not be cached (${itemSize} bytes)`\n )\n }\n return\n }\n\n try {\n if (!ctx.fetchCache && ctx.cacheControl) {\n this.cacheControls.set(toRoute(pathname), ctx.cacheControl)\n }\n\n await this.cacheHandler?.set(pathname, data, ctx)\n } catch (error) {\n console.warn('Failed to update prerender cache for', pathname, error)\n }\n }\n}\n"],"names":["CacheHandler","IncrementalCache","constructor","_ctx","get","_cacheKey","set","_data","revalidateTag","_args","resetRequestCache","fs","dev","flushToDisk","minimalMode","serverDistDir","requestHeaders","requestProtocol","maxMemoryCacheSize","getPrerenderManifest","fetchCacheKeyPrefix","CurCacheHandler","allowedRevalidateHeaderKeys","locks","Map","debug","process","env","NEXT_PRIVATE_DEBUG_CACHE","hasCustomCacheHandler","Boolean","cacheHandlersSymbol","Symbol","for","_globalThis","globalThis","globalCacheHandler","FetchCache","console","log","FileSystemCache","name","__NEXT_TEST_MAX_ISR_CACHE","parseInt","disableForTestmode","NEXT_PRIVATE_TEST_PROXY","minimalModeKey","prerenderManifest","cacheControls","SharedCacheControls","revalidatedTags","PRERENDER_REVALIDATE_HEADER","preview","previewModeId","isOnDemandRevalidate","getPreviouslyRevalidatedTags","cacheHandler","_requestHeaders","calculateRevalidate","pathname","fromTime","isFallback","Math","floor","performance","timeOrigin","now","cacheControl","toRoute","initialRevalidateSeconds","revalidate","revalidateAfter","_getPathname","fetchCache","normalizePagePath","lock","cacheKey","unlockNext","Promise","resolve","existingLock","newLock","delete","tags","generateCacheKey","url","init","MAIN_KEY_PREFIX","bodyChunks","encoder","TextEncoder","decoder","TextDecoder","body","getReader","readableBody","chunks","pipeTo","WritableStream","write","chunk","push","encode","decode","stream","length","reduce","total","arr","arrayBuffer","Uint8Array","offset","_ogBody","err","error","keys","formData","key","Set","values","getAll","all","map","val","text","join","blob","Blob","type","headers","Object","fromEntries","assign","cacheString","JSON","stringify","method","mode","redirect","credentials","referrer","referrerPolicy","integrity","cache","NEXT_RUNTIME","bufferToHex","buffer","Array","prototype","call","b","toString","padStart","crypto","subtle","digest","require","createHash","update","ctx","cacheData","kind","IncrementalCacheKind","FETCH","workUnitStore","workUnitAsyncStorage","getStore","resumeDataCache","getRenderResumeDataCache","memoryCacheData","fetch","CachedRouteKind","isStale","value","InvariantError","workStore","workAsyncStorage","combinedTags","softTags","some","tag","includes","pendingRevalidatedTags","age","lastModified","data","entry","CACHE_ONE_YEAR","undefined","notFoundRoutes","prerenderResumeDataCache","getPrerenderResumeDataCache","itemSize","Error","warn"],"mappings":"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","ignoreList":[0]}
1
+ {"version":3,"sources":["../../../../src/server/lib/incremental-cache/index.ts"],"sourcesContent":["import type { CacheFs } from '../../../shared/lib/utils'\nimport type { PrerenderManifest } from '../../../build'\nimport {\n type IncrementalCacheValue,\n type IncrementalCacheEntry,\n type IncrementalCache as IncrementalCacheType,\n IncrementalCacheKind,\n CachedRouteKind,\n type IncrementalResponseCacheEntry,\n type IncrementalFetchCacheEntry,\n type GetIncrementalFetchCacheContext,\n type GetIncrementalResponseCacheContext,\n type CachedFetchValue,\n type SetIncrementalFetchCacheContext,\n type SetIncrementalResponseCacheContext,\n} from '../../response-cache'\nimport type { DeepReadonly } from '../../../shared/lib/deep-readonly'\n\nimport FileSystemCache from './file-system-cache'\nimport { normalizePagePath } from '../../../shared/lib/page-path/normalize-page-path'\n\nimport {\n CACHE_ONE_YEAR,\n PRERENDER_REVALIDATE_HEADER,\n} from '../../../lib/constants'\nimport { toRoute } from '../to-route'\nimport { SharedCacheControls } from './shared-cache-controls'\nimport {\n getPrerenderResumeDataCache,\n getRenderResumeDataCache,\n workUnitAsyncStorage,\n} from '../../app-render/work-unit-async-storage.external'\nimport { InvariantError } from '../../../shared/lib/invariant-error'\nimport type { Revalidate } from '../cache-control'\nimport { getPreviouslyRevalidatedTags } from '../../server-utils'\nimport { workAsyncStorage } from '../../app-render/work-async-storage.external'\n\nexport interface CacheHandlerContext {\n fs?: CacheFs\n dev?: boolean\n flushToDisk?: boolean\n serverDistDir?: string\n maxMemoryCacheSize?: number\n fetchCacheKeyPrefix?: string\n prerenderManifest?: PrerenderManifest\n revalidatedTags: string[]\n _requestHeaders: IncrementalCache['requestHeaders']\n}\n\nexport interface CacheHandlerValue {\n lastModified?: number\n age?: number\n cacheState?: string\n value: IncrementalCacheValue | null\n}\n\nexport class CacheHandler {\n // eslint-disable-next-line\n constructor(_ctx: CacheHandlerContext) {}\n\n public async get(\n _cacheKey: string,\n _ctx: GetIncrementalFetchCacheContext | GetIncrementalResponseCacheContext\n ): Promise<CacheHandlerValue | null> {\n return {} as any\n }\n\n public async set(\n _cacheKey: string,\n _data: IncrementalCacheValue | null,\n _ctx: SetIncrementalFetchCacheContext | SetIncrementalResponseCacheContext\n ): Promise<void> {}\n\n public async revalidateTag(\n ..._args: Parameters<IncrementalCache['revalidateTag']>\n ): Promise<void> {}\n\n public resetRequestCache(): void {}\n}\n\nexport class IncrementalCache implements IncrementalCacheType {\n readonly dev?: boolean\n readonly disableForTestmode?: boolean\n readonly cacheHandler?: CacheHandler\n readonly hasCustomCacheHandler: boolean\n readonly prerenderManifest: DeepReadonly<PrerenderManifest>\n readonly requestHeaders: Record<string, undefined | string | string[]>\n readonly requestProtocol?: 'http' | 'https'\n readonly allowedRevalidateHeaderKeys?: string[]\n readonly minimalMode?: boolean\n readonly fetchCacheKeyPrefix?: string\n readonly revalidatedTags?: string[]\n readonly isOnDemandRevalidate?: boolean\n\n private readonly locks = new Map<string, Promise<void>>()\n\n /**\n * The cache controls for routes. This will source the values from the\n * prerender manifest until the in-memory cache is updated with new values.\n */\n private readonly cacheControls: SharedCacheControls\n\n constructor({\n fs,\n dev,\n flushToDisk,\n minimalMode,\n serverDistDir,\n requestHeaders,\n requestProtocol,\n maxMemoryCacheSize,\n getPrerenderManifest,\n fetchCacheKeyPrefix,\n CurCacheHandler,\n allowedRevalidateHeaderKeys,\n }: {\n fs?: CacheFs\n dev: boolean\n minimalMode?: boolean\n serverDistDir?: string\n flushToDisk?: boolean\n requestProtocol?: 'http' | 'https'\n allowedRevalidateHeaderKeys?: string[]\n requestHeaders: IncrementalCache['requestHeaders']\n maxMemoryCacheSize?: number\n getPrerenderManifest: () => DeepReadonly<PrerenderManifest>\n fetchCacheKeyPrefix?: string\n CurCacheHandler?: typeof CacheHandler\n }) {\n const debug = !!process.env.NEXT_PRIVATE_DEBUG_CACHE\n this.hasCustomCacheHandler = Boolean(CurCacheHandler)\n\n const cacheHandlersSymbol = Symbol.for('@next/cache-handlers')\n const _globalThis: typeof globalThis & {\n [cacheHandlersSymbol]?: {\n FetchCache?: typeof CacheHandler\n }\n } = globalThis\n\n if (!CurCacheHandler) {\n // if we have a global cache handler available leverage it\n const globalCacheHandler = _globalThis[cacheHandlersSymbol]\n\n if (globalCacheHandler?.FetchCache) {\n CurCacheHandler = globalCacheHandler.FetchCache\n } else {\n if (fs && serverDistDir) {\n if (debug) {\n console.log('using filesystem cache handler')\n }\n CurCacheHandler = FileSystemCache\n }\n }\n } else if (debug) {\n console.log('using custom cache handler', CurCacheHandler.name)\n }\n\n if (process.env.__NEXT_TEST_MAX_ISR_CACHE) {\n // Allow cache size to be overridden for testing purposes\n maxMemoryCacheSize = parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE, 10)\n }\n this.dev = dev\n this.disableForTestmode = process.env.NEXT_PRIVATE_TEST_PROXY === 'true'\n // this is a hack to avoid Webpack knowing this is equal to this.minimalMode\n // because we replace this.minimalMode to true in production bundles.\n const minimalModeKey = 'minimalMode'\n this[minimalModeKey] = minimalMode\n this.requestHeaders = requestHeaders\n this.requestProtocol = requestProtocol\n this.allowedRevalidateHeaderKeys = allowedRevalidateHeaderKeys\n this.prerenderManifest = getPrerenderManifest()\n this.cacheControls = new SharedCacheControls(this.prerenderManifest)\n this.fetchCacheKeyPrefix = fetchCacheKeyPrefix\n let revalidatedTags: string[] = []\n\n if (\n requestHeaders[PRERENDER_REVALIDATE_HEADER] ===\n this.prerenderManifest?.preview?.previewModeId\n ) {\n this.isOnDemandRevalidate = true\n }\n\n if (minimalMode) {\n revalidatedTags = getPreviouslyRevalidatedTags(\n requestHeaders,\n this.prerenderManifest?.preview?.previewModeId\n )\n }\n\n if (CurCacheHandler) {\n this.cacheHandler = new CurCacheHandler({\n dev,\n fs,\n flushToDisk,\n serverDistDir,\n revalidatedTags,\n maxMemoryCacheSize,\n _requestHeaders: requestHeaders,\n fetchCacheKeyPrefix,\n })\n }\n }\n\n private calculateRevalidate(\n pathname: string,\n fromTime: number,\n dev: boolean,\n isFallback: boolean | undefined\n ): Revalidate {\n // in development we don't have a prerender-manifest\n // and default to always revalidating to allow easier debugging\n if (dev)\n return Math.floor(performance.timeOrigin + performance.now() - 1000)\n\n const cacheControl = this.cacheControls.get(toRoute(pathname))\n\n // if an entry isn't present in routes we fallback to a default\n // of revalidating after 1 second unless it's a fallback request.\n const initialRevalidateSeconds = cacheControl\n ? cacheControl.revalidate\n : isFallback\n ? false\n : 1\n\n const revalidateAfter =\n typeof initialRevalidateSeconds === 'number'\n ? initialRevalidateSeconds * 1000 + fromTime\n : initialRevalidateSeconds\n\n return revalidateAfter\n }\n\n _getPathname(pathname: string, fetchCache?: boolean) {\n return fetchCache ? pathname : normalizePagePath(pathname)\n }\n\n resetRequestCache() {\n this.cacheHandler?.resetRequestCache?.()\n }\n\n async lock(cacheKey: string) {\n let unlockNext: () => Promise<void> = () => Promise.resolve()\n const existingLock = this.locks.get(cacheKey)\n\n if (existingLock) {\n await existingLock\n }\n\n const newLock = new Promise<void>((resolve) => {\n unlockNext = async () => {\n resolve()\n this.locks.delete(cacheKey) // Remove the lock upon release\n }\n })\n\n this.locks.set(cacheKey, newLock)\n return unlockNext\n }\n\n async revalidateTag(tags: string | string[]): Promise<void> {\n return this.cacheHandler?.revalidateTag(tags)\n }\n\n // x-ref: https://github.com/facebook/react/blob/2655c9354d8e1c54ba888444220f63e836925caa/packages/react/src/ReactFetch.js#L23\n async generateCacheKey(\n url: string,\n init: RequestInit | Request = {}\n ): Promise<string> {\n // this should be bumped anytime a fix is made to cache entries\n // that should bust the cache\n const MAIN_KEY_PREFIX = 'v3'\n\n const bodyChunks: string[] = []\n\n const encoder = new TextEncoder()\n const decoder = new TextDecoder()\n\n if (init.body) {\n // handle ReadableStream body\n if (typeof (init.body as any).getReader === 'function') {\n const readableBody = init.body as ReadableStream<Uint8Array | string>\n\n const chunks: Uint8Array[] = []\n\n try {\n await readableBody.pipeTo(\n new WritableStream({\n write(chunk) {\n if (typeof chunk === 'string') {\n chunks.push(encoder.encode(chunk))\n bodyChunks.push(chunk)\n } else {\n chunks.push(chunk)\n bodyChunks.push(decoder.decode(chunk, { stream: true }))\n }\n },\n })\n )\n\n // Flush the decoder.\n bodyChunks.push(decoder.decode())\n\n // Create a new buffer with all the chunks.\n const length = chunks.reduce((total, arr) => total + arr.length, 0)\n const arrayBuffer = new Uint8Array(length)\n\n // Push each of the chunks into the new array buffer.\n let offset = 0\n for (const chunk of chunks) {\n arrayBuffer.set(chunk, offset)\n offset += chunk.length\n }\n\n ;(init as any)._ogBody = arrayBuffer\n } catch (err) {\n console.error('Problem reading body', err)\n }\n } // handle FormData or URLSearchParams bodies\n else if (typeof (init.body as any).keys === 'function') {\n const formData = init.body as FormData\n ;(init as any)._ogBody = init.body\n for (const key of new Set([...formData.keys()])) {\n const values = formData.getAll(key)\n bodyChunks.push(\n `${key}=${(\n await Promise.all(\n values.map(async (val) => {\n if (typeof val === 'string') {\n return val\n } else {\n return await val.text()\n }\n })\n )\n ).join(',')}`\n )\n }\n // handle blob body\n } else if (typeof (init.body as any).arrayBuffer === 'function') {\n const blob = init.body as Blob\n const arrayBuffer = await blob.arrayBuffer()\n bodyChunks.push(await blob.text())\n ;(init as any)._ogBody = new Blob([arrayBuffer], { type: blob.type })\n } else if (typeof init.body === 'string') {\n bodyChunks.push(init.body)\n ;(init as any)._ogBody = init.body\n }\n }\n\n const headers =\n typeof (init.headers || {}).keys === 'function'\n ? Object.fromEntries(init.headers as Headers)\n : Object.assign({}, init.headers)\n\n // w3c trace context headers can break request caching and deduplication\n // so we remove them from the cache key\n if ('traceparent' in headers) delete headers['traceparent']\n if ('tracestate' in headers) delete headers['tracestate']\n\n const cacheString = JSON.stringify([\n MAIN_KEY_PREFIX,\n this.fetchCacheKeyPrefix || '',\n url,\n init.method,\n headers,\n init.mode,\n init.redirect,\n init.credentials,\n init.referrer,\n init.referrerPolicy,\n init.integrity,\n init.cache,\n bodyChunks,\n ])\n\n if (process.env.NEXT_RUNTIME === 'edge') {\n function bufferToHex(buffer: ArrayBuffer): string {\n return Array.prototype.map\n .call(new Uint8Array(buffer), (b) => b.toString(16).padStart(2, '0'))\n .join('')\n }\n const buffer = encoder.encode(cacheString)\n return bufferToHex(await crypto.subtle.digest('SHA-256', buffer))\n } else {\n const crypto = require('crypto') as typeof import('crypto')\n return crypto.createHash('sha256').update(cacheString).digest('hex')\n }\n }\n\n async get(\n cacheKey: string,\n ctx: GetIncrementalFetchCacheContext\n ): Promise<IncrementalFetchCacheEntry | null>\n async get(\n cacheKey: string,\n ctx: GetIncrementalResponseCacheContext\n ): Promise<IncrementalResponseCacheEntry | null>\n async get(\n cacheKey: string,\n ctx: GetIncrementalFetchCacheContext | GetIncrementalResponseCacheContext\n ): Promise<IncrementalCacheEntry | null> {\n // Unlike other caches if we have a resume data cache, we use it even if\n // testmode would normally disable it or if requestHeaders say 'no-cache'.\n if (ctx.kind === IncrementalCacheKind.FETCH) {\n const workUnitStore = workUnitAsyncStorage.getStore()\n const resumeDataCache = workUnitStore\n ? getRenderResumeDataCache(workUnitStore)\n : null\n if (resumeDataCache) {\n const memoryCacheData = resumeDataCache.fetch.get(cacheKey)\n if (memoryCacheData?.kind === CachedRouteKind.FETCH) {\n return { isStale: false, value: memoryCacheData }\n }\n }\n }\n\n // we don't leverage the prerender cache in dev mode\n // so that getStaticProps is always called for easier debugging\n if (\n this.disableForTestmode ||\n (this.dev &&\n (ctx.kind !== IncrementalCacheKind.FETCH ||\n this.requestHeaders['cache-control'] === 'no-cache'))\n ) {\n return null\n }\n\n cacheKey = this._getPathname(\n cacheKey,\n ctx.kind === IncrementalCacheKind.FETCH\n )\n\n const cacheData = await this.cacheHandler?.get(cacheKey, ctx)\n\n if (ctx.kind === IncrementalCacheKind.FETCH) {\n if (!cacheData) {\n return null\n }\n\n if (cacheData.value?.kind !== CachedRouteKind.FETCH) {\n throw new InvariantError(\n `Expected cached value for cache key ${JSON.stringify(cacheKey)} to be a \"FETCH\" kind, got ${JSON.stringify(cacheData.value?.kind)} instead.`\n )\n }\n\n const workStore = workAsyncStorage.getStore()\n const combinedTags = [...(ctx.tags || []), ...(ctx.softTags || [])]\n // if a tag was revalidated we don't return stale data\n if (\n combinedTags.some(\n (tag) =>\n this.revalidatedTags?.includes(tag) ||\n workStore?.pendingRevalidatedTags?.includes(tag)\n )\n ) {\n return null\n }\n\n const revalidate = ctx.revalidate || cacheData.value.revalidate\n const age =\n (performance.timeOrigin +\n performance.now() -\n (cacheData.lastModified || 0)) /\n 1000\n\n const isStale = age > revalidate\n const data = cacheData.value.data\n\n return {\n isStale,\n value: { kind: CachedRouteKind.FETCH, data, revalidate },\n }\n } else if (cacheData?.value?.kind === CachedRouteKind.FETCH) {\n throw new InvariantError(\n `Expected cached value for cache key ${JSON.stringify(cacheKey)} not to be a ${JSON.stringify(ctx.kind)} kind, got \"FETCH\" instead.`\n )\n }\n\n let entry: IncrementalResponseCacheEntry | null = null\n const cacheControl = this.cacheControls.get(toRoute(cacheKey))\n\n let isStale: boolean | -1 | undefined\n let revalidateAfter: Revalidate\n\n if (cacheData?.lastModified === -1) {\n isStale = -1\n revalidateAfter = -1 * CACHE_ONE_YEAR\n } else {\n revalidateAfter = this.calculateRevalidate(\n cacheKey,\n cacheData?.lastModified || performance.timeOrigin + performance.now(),\n this.dev ?? false,\n ctx.isFallback\n )\n isStale =\n revalidateAfter !== false &&\n revalidateAfter < performance.timeOrigin + performance.now()\n ? true\n : undefined\n }\n\n if (cacheData) {\n entry = {\n isStale,\n cacheControl,\n revalidateAfter,\n value: cacheData.value,\n }\n }\n\n if (\n !cacheData &&\n this.prerenderManifest.notFoundRoutes.includes(cacheKey)\n ) {\n // for the first hit after starting the server the cache\n // may not have a way to save notFound: true so if\n // the prerender-manifest marks this as notFound then we\n // return that entry and trigger a cache set to give it a\n // chance to update in-memory entries\n entry = {\n isStale,\n value: null,\n cacheControl,\n revalidateAfter,\n }\n this.set(cacheKey, entry.value, { ...ctx, cacheControl })\n }\n return entry\n }\n\n async set(\n pathname: string,\n data: CachedFetchValue | null,\n ctx: SetIncrementalFetchCacheContext\n ): Promise<void>\n async set(\n pathname: string,\n data: Exclude<IncrementalCacheValue, CachedFetchValue> | null,\n ctx: SetIncrementalResponseCacheContext\n ): Promise<void>\n async set(\n pathname: string,\n data: IncrementalCacheValue | null,\n ctx: SetIncrementalFetchCacheContext | SetIncrementalResponseCacheContext\n ): Promise<void> {\n // Even if we otherwise disable caching for testMode or if no fetchCache is\n // configured we still always stash results in the resume data cache if one\n // exists. This is because this is a transient in memory cache that\n // populates caches ahead of a dynamic render in dev mode to allow the RSC\n // debug info to have the right environment associated to it.\n if (data?.kind === CachedRouteKind.FETCH) {\n const workUnitStore = workUnitAsyncStorage.getStore()\n const prerenderResumeDataCache = workUnitStore\n ? getPrerenderResumeDataCache(workUnitStore)\n : null\n if (prerenderResumeDataCache) {\n prerenderResumeDataCache.fetch.set(pathname, data)\n }\n }\n\n if (this.disableForTestmode || (this.dev && !ctx.fetchCache)) return\n\n pathname = this._getPathname(pathname, ctx.fetchCache)\n\n // FetchCache has upper limit of 2MB per-entry currently\n const itemSize = JSON.stringify(data).length\n if (\n ctx.fetchCache &&\n // we don't show this error/warning when a custom cache handler is being used\n // as it might not have this limit\n !this.hasCustomCacheHandler &&\n itemSize > 2 * 1024 * 1024\n ) {\n const warningText = `Failed to set Next.js data cache for ${ctx.fetchUrl || pathname}, items over 2MB can not be cached (${itemSize} bytes)`\n\n if (this.dev) {\n throw new Error(warningText)\n }\n console.warn(warningText)\n return\n }\n\n try {\n if (!ctx.fetchCache && ctx.cacheControl) {\n this.cacheControls.set(toRoute(pathname), ctx.cacheControl)\n }\n\n await this.cacheHandler?.set(pathname, data, ctx)\n } catch (error) {\n console.warn('Failed to update prerender cache for', pathname, error)\n }\n }\n}\n"],"names":["CacheHandler","IncrementalCache","constructor","_ctx","get","_cacheKey","set","_data","revalidateTag","_args","resetRequestCache","fs","dev","flushToDisk","minimalMode","serverDistDir","requestHeaders","requestProtocol","maxMemoryCacheSize","getPrerenderManifest","fetchCacheKeyPrefix","CurCacheHandler","allowedRevalidateHeaderKeys","locks","Map","debug","process","env","NEXT_PRIVATE_DEBUG_CACHE","hasCustomCacheHandler","Boolean","cacheHandlersSymbol","Symbol","for","_globalThis","globalThis","globalCacheHandler","FetchCache","console","log","FileSystemCache","name","__NEXT_TEST_MAX_ISR_CACHE","parseInt","disableForTestmode","NEXT_PRIVATE_TEST_PROXY","minimalModeKey","prerenderManifest","cacheControls","SharedCacheControls","revalidatedTags","PRERENDER_REVALIDATE_HEADER","preview","previewModeId","isOnDemandRevalidate","getPreviouslyRevalidatedTags","cacheHandler","_requestHeaders","calculateRevalidate","pathname","fromTime","isFallback","Math","floor","performance","timeOrigin","now","cacheControl","toRoute","initialRevalidateSeconds","revalidate","revalidateAfter","_getPathname","fetchCache","normalizePagePath","lock","cacheKey","unlockNext","Promise","resolve","existingLock","newLock","delete","tags","generateCacheKey","url","init","MAIN_KEY_PREFIX","bodyChunks","encoder","TextEncoder","decoder","TextDecoder","body","getReader","readableBody","chunks","pipeTo","WritableStream","write","chunk","push","encode","decode","stream","length","reduce","total","arr","arrayBuffer","Uint8Array","offset","_ogBody","err","error","keys","formData","key","Set","values","getAll","all","map","val","text","join","blob","Blob","type","headers","Object","fromEntries","assign","cacheString","JSON","stringify","method","mode","redirect","credentials","referrer","referrerPolicy","integrity","cache","NEXT_RUNTIME","bufferToHex","buffer","Array","prototype","call","b","toString","padStart","crypto","subtle","digest","require","createHash","update","ctx","cacheData","kind","IncrementalCacheKind","FETCH","workUnitStore","workUnitAsyncStorage","getStore","resumeDataCache","getRenderResumeDataCache","memoryCacheData","fetch","CachedRouteKind","isStale","value","InvariantError","workStore","workAsyncStorage","combinedTags","softTags","some","tag","includes","pendingRevalidatedTags","age","lastModified","data","entry","CACHE_ONE_YEAR","undefined","notFoundRoutes","prerenderResumeDataCache","getPrerenderResumeDataCache","itemSize","warningText","fetchUrl","Error","warn"],"mappings":"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","ignoreList":[0]}
@@ -110,7 +110,7 @@ async function getRequestHandlers({ dir, port, isDev, onDevServerCleanup, server
110
110
  async function startServer(serverOptions) {
111
111
  const { dir, isDev, hostname, minimalMode, allowRetry, keepAliveTimeout, selfSignedCertificate } = serverOptions;
112
112
  let { port } = serverOptions;
113
- process.title = `next-server (v${"15.4.0-canary.41"})`;
113
+ process.title = `next-server (v${"15.4.0-canary.42"})`;
114
114
  let handlersReady = ()=>{};
115
115
  let handlersError = ()=>{};
116
116
  let handlersPromise = new Promise((resolve, reject)=>{
@@ -22,7 +22,7 @@ _export(exports, {
22
22
  });
23
23
  function isStableBuild() {
24
24
  var _process_env___NEXT_VERSION;
25
- return !((_process_env___NEXT_VERSION = "15.4.0-canary.41") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
25
+ return !((_process_env___NEXT_VERSION = "15.4.0-canary.42") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
26
26
  }
27
27
  class CanaryOnlyError extends Error {
28
28
  constructor(arg){
@@ -81,7 +81,7 @@ function getAnonymousMeta() {
81
81
  isWsl: _iswsl.default,
82
82
  isCI: _ciinfo.isCI,
83
83
  ciName: _ciinfo.isCI && _ciinfo.name || null,
84
- nextVersion: "15.4.0-canary.41"
84
+ nextVersion: "15.4.0-canary.42"
85
85
  };
86
86
  return traits;
87
87
  }
@@ -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 "15.4.0-canary.41" !== 'string') {
14
+ if (typeof "15.4.0-canary.42" !== 'string') {
15
15
  return [];
16
16
  }
17
17
  const payload = {
18
- nextVersion: "15.4.0-canary.41",
18
+ nextVersion: "15.4.0-canary.42",
19
19
  nodeVersion: process.version,
20
20
  cliCommand: event.cliCommand,
21
21
  durationMilliseconds: event.durationMilliseconds,
@@ -36,12 +36,12 @@ function hasBabelConfig(dir) {
36
36
  function eventCliSession(dir, nextConfig, event) {
37
37
  var _nextConfig_experimental_staleTimes, _nextConfig_experimental_staleTimes1, _nextConfig_experimental_reactCompiler, _nextConfig_experimental_reactCompiler1;
38
38
  // This should be an invariant, if it fails our build tooling is broken.
39
- if (typeof "15.4.0-canary.41" !== 'string') {
39
+ if (typeof "15.4.0-canary.42" !== 'string') {
40
40
  return [];
41
41
  }
42
42
  const { images, i18n } = nextConfig || {};
43
43
  const payload = {
44
- nextVersion: "15.4.0-canary.41",
44
+ nextVersion: "15.4.0-canary.42",
45
45
  nodeVersion: process.version,
46
46
  cliCommand: event.cliCommand,
47
47
  isSrcDir: event.isSrcDir,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next",
3
- "version": "15.4.0-canary.41",
3
+ "version": "15.4.0-canary.42",
4
4
  "description": "The React Framework",
5
5
  "main": "./dist/server/next.js",
6
6
  "license": "MIT",
@@ -100,7 +100,7 @@
100
100
  ]
101
101
  },
102
102
  "dependencies": {
103
- "@next/env": "15.4.0-canary.41",
103
+ "@next/env": "15.4.0-canary.42",
104
104
  "@swc/helpers": "0.5.15",
105
105
  "caniuse-lite": "^1.0.30001579",
106
106
  "postcss": "8.4.31",
@@ -130,14 +130,14 @@
130
130
  },
131
131
  "optionalDependencies": {
132
132
  "sharp": "^0.34.1",
133
- "@next/swc-darwin-arm64": "15.4.0-canary.41",
134
- "@next/swc-darwin-x64": "15.4.0-canary.41",
135
- "@next/swc-linux-arm64-gnu": "15.4.0-canary.41",
136
- "@next/swc-linux-arm64-musl": "15.4.0-canary.41",
137
- "@next/swc-linux-x64-gnu": "15.4.0-canary.41",
138
- "@next/swc-linux-x64-musl": "15.4.0-canary.41",
139
- "@next/swc-win32-arm64-msvc": "15.4.0-canary.41",
140
- "@next/swc-win32-x64-msvc": "15.4.0-canary.41"
133
+ "@next/swc-darwin-arm64": "15.4.0-canary.42",
134
+ "@next/swc-darwin-x64": "15.4.0-canary.42",
135
+ "@next/swc-linux-arm64-gnu": "15.4.0-canary.42",
136
+ "@next/swc-linux-arm64-musl": "15.4.0-canary.42",
137
+ "@next/swc-linux-x64-gnu": "15.4.0-canary.42",
138
+ "@next/swc-linux-x64-musl": "15.4.0-canary.42",
139
+ "@next/swc-win32-arm64-msvc": "15.4.0-canary.42",
140
+ "@next/swc-win32-x64-msvc": "15.4.0-canary.42"
141
141
  },
142
142
  "devDependencies": {
143
143
  "@ampproject/toolbox-optimizer": "2.8.3",
@@ -170,11 +170,11 @@
170
170
  "@jest/types": "29.5.0",
171
171
  "@mswjs/interceptors": "0.23.0",
172
172
  "@napi-rs/triples": "1.2.0",
173
- "@next/font": "15.4.0-canary.41",
174
- "@next/polyfill-module": "15.4.0-canary.41",
175
- "@next/polyfill-nomodule": "15.4.0-canary.41",
176
- "@next/react-refresh-utils": "15.4.0-canary.41",
177
- "@next/swc": "15.4.0-canary.41",
173
+ "@next/font": "15.4.0-canary.42",
174
+ "@next/polyfill-module": "15.4.0-canary.42",
175
+ "@next/polyfill-nomodule": "15.4.0-canary.42",
176
+ "@next/react-refresh-utils": "15.4.0-canary.42",
177
+ "@next/swc": "15.4.0-canary.42",
178
178
  "@opentelemetry/api": "1.6.0",
179
179
  "@playwright/test": "1.41.2",
180
180
  "@rspack/core": "1.3.9",