next 15.4.0-canary.80 → 15.4.0-canary.81

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 (69) 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/webpack-config.js +2 -2
  5. package/dist/client/app-bootstrap.js +1 -1
  6. package/dist/client/index.js +1 -1
  7. package/dist/compiled/next-devtools/index.js +1 -1
  8. package/dist/compiled/next-devtools/index.js.map +1 -1
  9. package/dist/compiled/next-server/app-page-experimental.runtime.dev.js +2 -2
  10. package/dist/compiled/next-server/app-page-experimental.runtime.dev.js.map +1 -1
  11. package/dist/compiled/next-server/app-page-turbo.runtime.dev.js +2 -2
  12. package/dist/compiled/next-server/app-page-turbo.runtime.dev.js.map +1 -1
  13. package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js +1 -1
  14. package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js.map +1 -1
  15. package/dist/compiled/next-server/pages-api.runtime.dev.js +1 -1
  16. package/dist/compiled/next-server/pages-api.runtime.dev.js.map +1 -1
  17. package/dist/compiled/next-server/pages-api.runtime.prod.js +1 -1
  18. package/dist/compiled/next-server/pages-api.runtime.prod.js.map +1 -1
  19. package/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
  20. package/dist/compiled/next-server/pages-turbo.runtime.prod.js.map +1 -1
  21. package/dist/compiled/next-server/pages.runtime.dev.js +1 -1
  22. package/dist/compiled/next-server/pages.runtime.dev.js.map +1 -1
  23. package/dist/compiled/next-server/pages.runtime.prod.js +1 -1
  24. package/dist/compiled/next-server/pages.runtime.prod.js.map +1 -1
  25. package/dist/esm/build/index.js +2 -2
  26. package/dist/esm/build/swc/index.js +1 -1
  27. package/dist/esm/build/webpack-config.js +2 -2
  28. package/dist/esm/client/app-bootstrap.js +1 -1
  29. package/dist/esm/client/index.js +1 -1
  30. package/dist/esm/lib/find-root.js +1 -1
  31. package/dist/esm/lib/find-root.js.map +1 -1
  32. package/dist/esm/next-devtools/userspace/app/segment-explorer.js +18 -0
  33. package/dist/esm/next-devtools/userspace/app/segment-explorer.js.map +1 -0
  34. package/dist/esm/server/app-render/entry-base.js +1 -2
  35. package/dist/esm/server/app-render/entry-base.js.map +1 -1
  36. package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
  37. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  38. package/dist/esm/server/lib/app-info-log.js +1 -1
  39. package/dist/esm/server/lib/start-server.js +1 -1
  40. package/dist/esm/shared/lib/canary-only.js +1 -1
  41. package/dist/lib/find-root.js +1 -1
  42. package/dist/lib/find-root.js.map +1 -1
  43. package/dist/next-devtools/dev-overlay/components/overview/segment-explorer.d.ts +1 -1
  44. package/dist/{shared/lib/devtool/trie.d.ts → next-devtools/dev-overlay/segment-explorer.d.ts} +14 -6
  45. package/dist/next-devtools/dev-overlay.browser.d.ts +3 -0
  46. package/dist/next-devtools/userspace/app/segment-explorer.d.ts +6 -0
  47. package/dist/next-devtools/userspace/app/segment-explorer.js +34 -0
  48. package/dist/next-devtools/userspace/app/segment-explorer.js.map +1 -0
  49. package/dist/server/app-render/entry-base.d.ts +1 -1
  50. package/dist/server/app-render/entry-base.js +1 -2
  51. package/dist/server/app-render/entry-base.js.map +1 -1
  52. package/dist/server/dev/hot-reloader-turbopack.js +1 -1
  53. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  54. package/dist/server/lib/app-info-log.js +1 -1
  55. package/dist/server/lib/start-server.js +1 -1
  56. package/dist/shared/lib/canary-only.js +1 -1
  57. package/dist/telemetry/anonymous-meta.js +1 -1
  58. package/dist/telemetry/events/session-stopped.js +2 -2
  59. package/dist/telemetry/events/version.js +2 -2
  60. package/package.json +15 -15
  61. package/dist/esm/shared/lib/devtool/app-segment-tree.js +0 -67
  62. package/dist/esm/shared/lib/devtool/app-segment-tree.js.map +0 -1
  63. package/dist/esm/shared/lib/devtool/trie.js +0 -46
  64. package/dist/esm/shared/lib/devtool/trie.js.map +0 -1
  65. package/dist/shared/lib/devtool/app-segment-tree.d.ts +0 -21
  66. package/dist/shared/lib/devtool/app-segment-tree.js +0 -89
  67. package/dist/shared/lib/devtool/app-segment-tree.js.map +0 -1
  68. package/dist/shared/lib/devtool/trie.js +0 -56
  69. package/dist/shared/lib/devtool/trie.js.map +0 -1
@@ -295,7 +295,7 @@ export default async function build(dir, reactProductionProfiling = false, debug
295
295
  const nextBuildSpan = trace('next-build', undefined, {
296
296
  buildMode: experimentalBuildMode,
297
297
  isTurboBuild: String(isTurbopack),
298
- version: "15.4.0-canary.80"
298
+ version: "15.4.0-canary.81"
299
299
  });
300
300
  NextBuildContext.nextBuildSpan = nextBuildSpan;
301
301
  NextBuildContext.dir = dir;
@@ -676,7 +676,7 @@ export default async function build(dir, reactProductionProfiling = false, debug
676
676
  // Files outside of the distDir can be "type": "module"
677
677
  await writeFileUtf8(path.join(distDir, 'package.json'), '{"type": "commonjs"}');
678
678
  // These are written to distDir, so they need to come after creating and cleaning distDr.
679
- await recordFrameworkVersion("15.4.0-canary.80");
679
+ await recordFrameworkVersion("15.4.0-canary.81");
680
680
  await updateBuildDiagnostics({
681
681
  buildStage: 'start'
682
682
  });
@@ -11,7 +11,7 @@ import { isDeepStrictEqual } from 'util';
11
11
  import { getDefineEnv } from '../define-env';
12
12
  import { getReactCompilerLoader } from '../get-babel-loader-config';
13
13
  import { TurbopackInternalError } from '../../shared/lib/turbopack/utils';
14
- const nextVersion = "15.4.0-canary.80";
14
+ const nextVersion = "15.4.0-canary.81";
15
15
  const ArchName = arch();
16
16
  const PlatformName = platform();
17
17
  function infoLog(...args) {
@@ -1575,7 +1575,7 @@ export default async function getBaseWebpackConfig(dir, { buildId, encryptionKey
1575
1575
  isClient && new CopyFilePlugin({
1576
1576
  // file path to build output of `@next/polyfill-nomodule`
1577
1577
  filePath: require.resolve('./polyfills/polyfill-nomodule'),
1578
- cacheKey: "15.4.0-canary.80",
1578
+ cacheKey: "15.4.0-canary.81",
1579
1579
  name: `static/chunks/polyfills${dev ? '' : '-[hash]'}.js`,
1580
1580
  minimize: false,
1581
1581
  info: {
@@ -1755,7 +1755,7 @@ export default async function getBaseWebpackConfig(dir, { buildId, encryptionKey
1755
1755
  // - Next.js location on disk (some loaders use absolute paths and some resolve options depend on absolute paths)
1756
1756
  // - Next.js version
1757
1757
  // - next.config.js keys that affect compilation
1758
- version: `${__dirname}|${"15.4.0-canary.80"}|${configVars}`,
1758
+ version: `${__dirname}|${"15.4.0-canary.81"}|${configVars}`,
1759
1759
  cacheDirectory: path.join(distDir, 'cache', 'webpack'),
1760
1760
  // For production builds, it's more efficient to compress all cache files together instead of compression each one individually.
1761
1761
  // So we disable compression here and allow the build runner to take care of compressing the cache as a whole.
@@ -3,7 +3,7 @@
3
3
  * sure the following scripts are executed in the correct order:
4
4
  * - Polyfills
5
5
  * - next/script with `beforeInteractive` strategy
6
- */ const version = "15.4.0-canary.80";
6
+ */ const version = "15.4.0-canary.81";
7
7
  window.next = {
8
8
  version,
9
9
  appDir: true
@@ -26,7 +26,7 @@ import { SearchParamsContext, PathParamsContext } from '../shared/lib/hooks-clie
26
26
  import { onRecoverableError } from './react-client-callbacks/on-recoverable-error';
27
27
  import tracer from './tracing/tracer';
28
28
  import { isNextRouterError } from './components/is-next-router-error';
29
- export const version = "15.4.0-canary.80";
29
+ export const version = "15.4.0-canary.81";
30
30
  export let router;
31
31
  export const emitter = mitt();
32
32
  const looseToArray = (input)=>[].slice.call(input);
@@ -29,7 +29,7 @@ export function findRootDir(cwd) {
29
29
  }
30
30
  // Only warn if not in a build worker to avoid duplicate warnings
31
31
  if (typeof process.send !== 'function' && lockFiles.length > 1) {
32
- Log.warnOnce(`Warning: Found multiple lockfiles. Consider removing the lockfiles at ${lockFiles.slice(0, lockFiles.length - 1).map((str)=>'\n * ' + str).join('')}\n`);
32
+ Log.warnOnce(`Warning: Found multiple lockfiles. Selecting ${lockFiles[lockFiles.length - 1]}.\n Consider removing the lockfiles at:${lockFiles.slice(0, -1).map((str)=>'\n * ' + str).join('')}\n`);
33
33
  }
34
34
  return dirname(lockFile);
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/find-root.ts"],"sourcesContent":["import { dirname } from 'path'\nimport findUp from 'next/dist/compiled/find-up'\nimport * as Log from '../build/output/log'\n\nexport function findRootLockFile(cwd: string) {\n return findUp.sync(\n [\n 'pnpm-lock.yaml',\n 'package-lock.json',\n 'yarn.lock',\n 'bun.lock',\n 'bun.lockb',\n ],\n {\n cwd,\n }\n )\n}\n\nexport function findRootDir(cwd: string) {\n const lockFile = findRootLockFile(cwd)\n if (!lockFile) return undefined\n\n const lockFiles = [lockFile]\n while (true) {\n const nextDir = dirname(dirname(lockFiles[lockFiles.length - 1]))\n const newLockFile = findRootLockFile(nextDir)\n\n if (newLockFile) {\n lockFiles.push(newLockFile)\n } else {\n break\n }\n }\n\n // Only warn if not in a build worker to avoid duplicate warnings\n if (typeof process.send !== 'function' && lockFiles.length > 1) {\n Log.warnOnce(\n `Warning: Found multiple lockfiles. Consider removing the lockfiles at ${lockFiles\n .slice(0, lockFiles.length - 1)\n .map((str) => '\\n * ' + str)\n .join('')}\\n`\n )\n }\n\n return dirname(lockFile)\n}\n"],"names":["dirname","findUp","Log","findRootLockFile","cwd","sync","findRootDir","lockFile","undefined","lockFiles","nextDir","length","newLockFile","push","process","send","warnOnce","slice","map","str","join"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAM;AAC9B,OAAOC,YAAY,6BAA4B;AAC/C,YAAYC,SAAS,sBAAqB;AAE1C,OAAO,SAASC,iBAAiBC,GAAW;IAC1C,OAAOH,OAAOI,IAAI,CAChB;QACE;QACA;QACA;QACA;QACA;KACD,EACD;QACED;IACF;AAEJ;AAEA,OAAO,SAASE,YAAYF,GAAW;IACrC,MAAMG,WAAWJ,iBAAiBC;IAClC,IAAI,CAACG,UAAU,OAAOC;IAEtB,MAAMC,YAAY;QAACF;KAAS;IAC5B,MAAO,KAAM;QACX,MAAMG,UAAUV,QAAQA,QAAQS,SAAS,CAACA,UAAUE,MAAM,GAAG,EAAE;QAC/D,MAAMC,cAAcT,iBAAiBO;QAErC,IAAIE,aAAa;YACfH,UAAUI,IAAI,CAACD;QACjB,OAAO;YACL;QACF;IACF;IAEA,iEAAiE;IACjE,IAAI,OAAOE,QAAQC,IAAI,KAAK,cAAcN,UAAUE,MAAM,GAAG,GAAG;QAC9DT,IAAIc,QAAQ,CACV,CAAC,sEAAsE,EAAEP,UACtEQ,KAAK,CAAC,GAAGR,UAAUE,MAAM,GAAG,GAC5BO,GAAG,CAAC,CAACC,MAAQ,YAAYA,KACzBC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEnB;IAEA,OAAOpB,QAAQO;AACjB","ignoreList":[0]}
1
+ {"version":3,"sources":["../../src/lib/find-root.ts"],"sourcesContent":["import { dirname } from 'path'\nimport findUp from 'next/dist/compiled/find-up'\nimport * as Log from '../build/output/log'\n\nexport function findRootLockFile(cwd: string) {\n return findUp.sync(\n [\n 'pnpm-lock.yaml',\n 'package-lock.json',\n 'yarn.lock',\n 'bun.lock',\n 'bun.lockb',\n ],\n {\n cwd,\n }\n )\n}\n\nexport function findRootDir(cwd: string) {\n const lockFile = findRootLockFile(cwd)\n if (!lockFile) return undefined\n\n const lockFiles = [lockFile]\n while (true) {\n const nextDir = dirname(dirname(lockFiles[lockFiles.length - 1]))\n const newLockFile = findRootLockFile(nextDir)\n\n if (newLockFile) {\n lockFiles.push(newLockFile)\n } else {\n break\n }\n }\n\n // Only warn if not in a build worker to avoid duplicate warnings\n if (typeof process.send !== 'function' && lockFiles.length > 1) {\n Log.warnOnce(\n `Warning: Found multiple lockfiles. Selecting ${lockFiles[lockFiles.length - 1]}.\\n Consider removing the lockfiles at:${lockFiles\n .slice(0, -1)\n .map((str) => '\\n * ' + str)\n .join('')}\\n`\n )\n }\n\n return dirname(lockFile)\n}\n"],"names":["dirname","findUp","Log","findRootLockFile","cwd","sync","findRootDir","lockFile","undefined","lockFiles","nextDir","length","newLockFile","push","process","send","warnOnce","slice","map","str","join"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAM;AAC9B,OAAOC,YAAY,6BAA4B;AAC/C,YAAYC,SAAS,sBAAqB;AAE1C,OAAO,SAASC,iBAAiBC,GAAW;IAC1C,OAAOH,OAAOI,IAAI,CAChB;QACE;QACA;QACA;QACA;QACA;KACD,EACD;QACED;IACF;AAEJ;AAEA,OAAO,SAASE,YAAYF,GAAW;IACrC,MAAMG,WAAWJ,iBAAiBC;IAClC,IAAI,CAACG,UAAU,OAAOC;IAEtB,MAAMC,YAAY;QAACF;KAAS;IAC5B,MAAO,KAAM;QACX,MAAMG,UAAUV,QAAQA,QAAQS,SAAS,CAACA,UAAUE,MAAM,GAAG,EAAE;QAC/D,MAAMC,cAAcT,iBAAiBO;QAErC,IAAIE,aAAa;YACfH,UAAUI,IAAI,CAACD;QACjB,OAAO;YACL;QACF;IACF;IAEA,iEAAiE;IACjE,IAAI,OAAOE,QAAQC,IAAI,KAAK,cAAcN,UAAUE,MAAM,GAAG,GAAG;QAC9DT,IAAIc,QAAQ,CACV,CAAC,6CAA6C,EAAEP,SAAS,CAACA,UAAUE,MAAM,GAAG,EAAE,CAAC,yCAAyC,EAAEF,UACxHQ,KAAK,CAAC,GAAG,CAAC,GACVC,GAAG,CAAC,CAACC,MAAQ,YAAYA,KACzBC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEnB;IAEA,OAAOpB,QAAQO;AACjB","ignoreList":[0]}
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { useEffect } from 'react';
3
+ import { dispatcher } from 'next/dist/compiled/next-devtools';
4
+ export function SegmentViewNode(param) {
5
+ let { type, pagePath, children } = param;
6
+ useEffect(()=>{
7
+ dispatcher.segmentExplorerNodeAdd(type, pagePath);
8
+ return ()=>{
9
+ dispatcher.segmentExplorerNodeRemove(type, pagePath);
10
+ };
11
+ }, [
12
+ type,
13
+ pagePath
14
+ ]);
15
+ return children;
16
+ }
17
+
18
+ //# sourceMappingURL=segment-explorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/next-devtools/userspace/app/segment-explorer.ts"],"sourcesContent":["'use client'\nimport type { ReactNode } from 'react'\nimport { useEffect } from 'react'\nimport { dispatcher } from 'next/dist/compiled/next-devtools'\n\nexport function SegmentViewNode({\n type,\n pagePath,\n children,\n}: {\n type: string\n pagePath: string\n children: ReactNode\n}) {\n useEffect(() => {\n dispatcher.segmentExplorerNodeAdd(type, pagePath)\n return () => {\n dispatcher.segmentExplorerNodeRemove(type, pagePath)\n }\n }, [type, pagePath])\n\n return children\n}\n"],"names":["useEffect","dispatcher","SegmentViewNode","type","pagePath","children","segmentExplorerNodeAdd","segmentExplorerNodeRemove"],"mappings":"AAAA;AAEA,SAASA,SAAS,QAAQ,QAAO;AACjC,SAASC,UAAU,QAAQ,mCAAkC;AAE7D,OAAO,SAASC,gBAAgB,KAQ/B;IAR+B,IAAA,EAC9BC,IAAI,EACJC,QAAQ,EACRC,QAAQ,EAKT,GAR+B;IAS9BL,UAAU;QACRC,WAAWK,sBAAsB,CAACH,MAAMC;QACxC,OAAO;YACLH,WAAWM,yBAAyB,CAACJ,MAAMC;QAC7C;IACF,GAAG;QAACD;QAAMC;KAAS;IAEnB,OAAOC;AACT","ignoreList":[0]}
@@ -27,8 +27,7 @@ import { taintObjectReference } from './rsc/taint';
27
27
  export { collectSegmentData } from './collect-segment-data';
28
28
  let SegmentViewNode = ()=>null;
29
29
  if (process.env.NODE_ENV === 'development') {
30
- const appSegmentTree = require('../../shared/lib/devtool/app-segment-tree');
31
- SegmentViewNode = appSegmentTree.SegmentViewNode;
30
+ SegmentViewNode = require('../../next-devtools/userspace/app/segment-explorer').SegmentViewNode;
32
31
  }
33
32
  // patchFetch makes use of APIs such as `React.unstable_postpone` which are only available
34
33
  // in the experimental channel of React, so export it from here so that it comes from the bundled runtime
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/app-render/entry-base.ts"],"sourcesContent":["// eslint-disable-next-line import/no-extraneous-dependencies\nexport {\n createTemporaryReferenceSet,\n renderToReadableStream,\n decodeReply,\n decodeAction,\n decodeFormState,\n} from 'react-server-dom-webpack/server.edge'\n\n// eslint-disable-next-line import/no-extraneous-dependencies\nexport { unstable_prerender as prerender } from 'react-server-dom-webpack/static.edge'\n\nimport LayoutRouter from '../../client/components/layout-router'\nimport RenderFromTemplateContext from '../../client/components/render-from-template-context'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { workUnitAsyncStorage } from './work-unit-async-storage.external'\nimport { actionAsyncStorage } from '../app-render/action-async-storage.external'\nimport { ClientPageRoot } from '../../client/components/client-page'\nimport { ClientSegmentRoot } from '../../client/components/client-segment'\nimport {\n createServerSearchParamsForServerPage,\n createPrerenderSearchParamsForClientPage,\n} from '../request/search-params'\nimport {\n createServerParamsForServerSegment,\n createPrerenderParamsForClientSegment,\n} from '../request/params'\nimport * as serverHooks from '../../client/components/hooks-server-context'\nimport { HTTPAccessFallbackBoundary } from '../../client/components/http-access-fallback/error-boundary'\nimport { createMetadataComponents } from '../../lib/metadata/metadata'\nimport { patchFetch as _patchFetch } from '../lib/patch-fetch'\n// Not being directly used but should be included in the client manifest for /_not-found\n// * ErrorBoundary -> client/components/error-boundary\n// * GlobalError -> client/components/global-error\nimport '../../client/components/error-boundary'\nimport '../../client/components/global-error'\nimport {\n MetadataBoundary,\n ViewportBoundary,\n OutletBoundary,\n} from '../../client/components/metadata/metadata-boundary'\n\nimport { preloadStyle, preloadFont, preconnect } from './rsc/preloads'\nimport { Postpone } from './rsc/postpone'\nimport { taintObjectReference } from './rsc/taint'\nexport { collectSegmentData } from './collect-segment-data'\n\nlet SegmentViewNode: typeof import('../../shared/lib/devtool/app-segment-tree').SegmentViewNode =\n () => null\nif (process.env.NODE_ENV === 'development') {\n const appSegmentTree: typeof import('../../shared/lib/devtool/app-segment-tree') =\n require('../../shared/lib/devtool/app-segment-tree') as typeof import('../../shared/lib/devtool/app-segment-tree')\n SegmentViewNode = appSegmentTree.SegmentViewNode\n}\n\n// patchFetch makes use of APIs such as `React.unstable_postpone` which are only available\n// in the experimental channel of React, so export it from here so that it comes from the bundled runtime\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n LayoutRouter,\n RenderFromTemplateContext,\n workAsyncStorage,\n workUnitAsyncStorage,\n actionAsyncStorage,\n createServerSearchParamsForServerPage,\n createPrerenderSearchParamsForClientPage,\n createServerParamsForServerSegment,\n createPrerenderParamsForClientSegment,\n serverHooks,\n preloadStyle,\n preloadFont,\n preconnect,\n Postpone,\n MetadataBoundary,\n ViewportBoundary,\n OutletBoundary,\n taintObjectReference,\n ClientPageRoot,\n ClientSegmentRoot,\n HTTPAccessFallbackBoundary,\n patchFetch,\n createMetadataComponents,\n // Development only\n SegmentViewNode,\n}\n"],"names":["createTemporaryReferenceSet","renderToReadableStream","decodeReply","decodeAction","decodeFormState","unstable_prerender","prerender","LayoutRouter","RenderFromTemplateContext","workAsyncStorage","workUnitAsyncStorage","actionAsyncStorage","ClientPageRoot","ClientSegmentRoot","createServerSearchParamsForServerPage","createPrerenderSearchParamsForClientPage","createServerParamsForServerSegment","createPrerenderParamsForClientSegment","serverHooks","HTTPAccessFallbackBoundary","createMetadataComponents","patchFetch","_patchFetch","MetadataBoundary","ViewportBoundary","OutletBoundary","preloadStyle","preloadFont","preconnect","Postpone","taintObjectReference","collectSegmentData","SegmentViewNode","process","env","NODE_ENV","appSegmentTree","require"],"mappings":"AAAA,6DAA6D;AAC7D,SACEA,2BAA2B,EAC3BC,sBAAsB,EACtBC,WAAW,EACXC,YAAY,EACZC,eAAe,QACV,uCAAsC;AAE7C,6DAA6D;AAC7D,SAASC,sBAAsBC,SAAS,QAAQ,uCAAsC;AAEtF,OAAOC,kBAAkB,wCAAuC;AAChE,OAAOC,+BAA+B,uDAAsD;AAC5F,SAASC,gBAAgB,QAAQ,4CAA2C;AAC5E,SAASC,oBAAoB,QAAQ,qCAAoC;AACzE,SAASC,kBAAkB,QAAQ,8CAA6C;AAChF,SAASC,cAAc,QAAQ,sCAAqC;AACpE,SAASC,iBAAiB,QAAQ,yCAAwC;AAC1E,SACEC,qCAAqC,EACrCC,wCAAwC,QACnC,2BAA0B;AACjC,SACEC,kCAAkC,EAClCC,qCAAqC,QAChC,oBAAmB;AAC1B,YAAYC,iBAAiB,+CAA8C;AAC3E,SAASC,0BAA0B,QAAQ,8DAA6D;AACxG,SAASC,wBAAwB,QAAQ,8BAA6B;AACtE,SAASC,cAAcC,WAAW,QAAQ,qBAAoB;AAC9D,wFAAwF;AACxF,sDAAsD;AACtD,kDAAkD;AAClD,OAAO,yCAAwC;AAC/C,OAAO,uCAAsC;AAC7C,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,QACT,qDAAoD;AAE3D,SAASC,YAAY,EAAEC,WAAW,EAAEC,UAAU,QAAQ,iBAAgB;AACtE,SAASC,QAAQ,QAAQ,iBAAgB;AACzC,SAASC,oBAAoB,QAAQ,cAAa;AAClD,SAASC,kBAAkB,QAAQ,yBAAwB;AAE3D,IAAIC,kBACF,IAAM;AACR,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;IAC1C,MAAMC,iBACJC,QAAQ;IACVL,kBAAkBI,eAAeJ,eAAe;AAClD;AAEA,0FAA0F;AAC1F,yGAAyG;AACzG,SAASX;IACP,OAAOC,YAAY;QACjBb;QACAC;IACF;AACF;AAEA,SACEH,YAAY,EACZC,yBAAyB,EACzBC,gBAAgB,EAChBC,oBAAoB,EACpBC,kBAAkB,EAClBG,qCAAqC,EACrCC,wCAAwC,EACxCC,kCAAkC,EAClCC,qCAAqC,EACrCC,WAAW,EACXQ,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,QAAQ,EACRN,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,EACdK,oBAAoB,EACpBlB,cAAc,EACdC,iBAAiB,EACjBM,0BAA0B,EAC1BE,UAAU,EACVD,wBAAwB,EACxB,mBAAmB;AACnBY,eAAe,KAChB","ignoreList":[0]}
1
+ {"version":3,"sources":["../../../src/server/app-render/entry-base.ts"],"sourcesContent":["// eslint-disable-next-line import/no-extraneous-dependencies\nexport {\n createTemporaryReferenceSet,\n renderToReadableStream,\n decodeReply,\n decodeAction,\n decodeFormState,\n} from 'react-server-dom-webpack/server.edge'\n\n// eslint-disable-next-line import/no-extraneous-dependencies\nexport { unstable_prerender as prerender } from 'react-server-dom-webpack/static.edge'\n\nimport LayoutRouter from '../../client/components/layout-router'\nimport RenderFromTemplateContext from '../../client/components/render-from-template-context'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { workUnitAsyncStorage } from './work-unit-async-storage.external'\nimport { actionAsyncStorage } from '../app-render/action-async-storage.external'\nimport { ClientPageRoot } from '../../client/components/client-page'\nimport { ClientSegmentRoot } from '../../client/components/client-segment'\nimport {\n createServerSearchParamsForServerPage,\n createPrerenderSearchParamsForClientPage,\n} from '../request/search-params'\nimport {\n createServerParamsForServerSegment,\n createPrerenderParamsForClientSegment,\n} from '../request/params'\nimport * as serverHooks from '../../client/components/hooks-server-context'\nimport { HTTPAccessFallbackBoundary } from '../../client/components/http-access-fallback/error-boundary'\nimport { createMetadataComponents } from '../../lib/metadata/metadata'\nimport { patchFetch as _patchFetch } from '../lib/patch-fetch'\n// Not being directly used but should be included in the client manifest for /_not-found\n// * ErrorBoundary -> client/components/error-boundary\n// * GlobalError -> client/components/global-error\nimport '../../client/components/error-boundary'\nimport '../../client/components/global-error'\nimport {\n MetadataBoundary,\n ViewportBoundary,\n OutletBoundary,\n} from '../../client/components/metadata/metadata-boundary'\n\nimport { preloadStyle, preloadFont, preconnect } from './rsc/preloads'\nimport { Postpone } from './rsc/postpone'\nimport { taintObjectReference } from './rsc/taint'\nexport { collectSegmentData } from './collect-segment-data'\n\nlet SegmentViewNode: typeof import('../../next-devtools/userspace/app/segment-explorer').SegmentViewNode =\n () => null\nif (process.env.NODE_ENV === 'development') {\n SegmentViewNode = (\n require('../../next-devtools/userspace/app/segment-explorer') as typeof import('../../next-devtools/userspace/app/segment-explorer')\n ).SegmentViewNode\n}\n\n// patchFetch makes use of APIs such as `React.unstable_postpone` which are only available\n// in the experimental channel of React, so export it from here so that it comes from the bundled runtime\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n LayoutRouter,\n RenderFromTemplateContext,\n workAsyncStorage,\n workUnitAsyncStorage,\n actionAsyncStorage,\n createServerSearchParamsForServerPage,\n createPrerenderSearchParamsForClientPage,\n createServerParamsForServerSegment,\n createPrerenderParamsForClientSegment,\n serverHooks,\n preloadStyle,\n preloadFont,\n preconnect,\n Postpone,\n MetadataBoundary,\n ViewportBoundary,\n OutletBoundary,\n taintObjectReference,\n ClientPageRoot,\n ClientSegmentRoot,\n HTTPAccessFallbackBoundary,\n patchFetch,\n createMetadataComponents,\n // Development only\n SegmentViewNode,\n}\n"],"names":["createTemporaryReferenceSet","renderToReadableStream","decodeReply","decodeAction","decodeFormState","unstable_prerender","prerender","LayoutRouter","RenderFromTemplateContext","workAsyncStorage","workUnitAsyncStorage","actionAsyncStorage","ClientPageRoot","ClientSegmentRoot","createServerSearchParamsForServerPage","createPrerenderSearchParamsForClientPage","createServerParamsForServerSegment","createPrerenderParamsForClientSegment","serverHooks","HTTPAccessFallbackBoundary","createMetadataComponents","patchFetch","_patchFetch","MetadataBoundary","ViewportBoundary","OutletBoundary","preloadStyle","preloadFont","preconnect","Postpone","taintObjectReference","collectSegmentData","SegmentViewNode","process","env","NODE_ENV","require"],"mappings":"AAAA,6DAA6D;AAC7D,SACEA,2BAA2B,EAC3BC,sBAAsB,EACtBC,WAAW,EACXC,YAAY,EACZC,eAAe,QACV,uCAAsC;AAE7C,6DAA6D;AAC7D,SAASC,sBAAsBC,SAAS,QAAQ,uCAAsC;AAEtF,OAAOC,kBAAkB,wCAAuC;AAChE,OAAOC,+BAA+B,uDAAsD;AAC5F,SAASC,gBAAgB,QAAQ,4CAA2C;AAC5E,SAASC,oBAAoB,QAAQ,qCAAoC;AACzE,SAASC,kBAAkB,QAAQ,8CAA6C;AAChF,SAASC,cAAc,QAAQ,sCAAqC;AACpE,SAASC,iBAAiB,QAAQ,yCAAwC;AAC1E,SACEC,qCAAqC,EACrCC,wCAAwC,QACnC,2BAA0B;AACjC,SACEC,kCAAkC,EAClCC,qCAAqC,QAChC,oBAAmB;AAC1B,YAAYC,iBAAiB,+CAA8C;AAC3E,SAASC,0BAA0B,QAAQ,8DAA6D;AACxG,SAASC,wBAAwB,QAAQ,8BAA6B;AACtE,SAASC,cAAcC,WAAW,QAAQ,qBAAoB;AAC9D,wFAAwF;AACxF,sDAAsD;AACtD,kDAAkD;AAClD,OAAO,yCAAwC;AAC/C,OAAO,uCAAsC;AAC7C,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,QACT,qDAAoD;AAE3D,SAASC,YAAY,EAAEC,WAAW,EAAEC,UAAU,QAAQ,iBAAgB;AACtE,SAASC,QAAQ,QAAQ,iBAAgB;AACzC,SAASC,oBAAoB,QAAQ,cAAa;AAClD,SAASC,kBAAkB,QAAQ,yBAAwB;AAE3D,IAAIC,kBACF,IAAM;AACR,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;IAC1CH,kBAAkB,AAChBI,QAAQ,sDACRJ,eAAe;AACnB;AAEA,0FAA0F;AAC1F,yGAAyG;AACzG,SAASX;IACP,OAAOC,YAAY;QACjBb;QACAC;IACF;AACF;AAEA,SACEH,YAAY,EACZC,yBAAyB,EACzBC,gBAAgB,EAChBC,oBAAoB,EACpBC,kBAAkB,EAClBG,qCAAqC,EACrCC,wCAAwC,EACxCC,kCAAkC,EAClCC,qCAAqC,EACrCC,WAAW,EACXQ,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,QAAQ,EACRN,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,EACdK,oBAAoB,EACpBlB,cAAc,EACdC,iBAAiB,EACjBM,0BAA0B,EAC1BE,UAAU,EACVD,wBAAwB,EACxB,mBAAmB;AACnBY,eAAe,KAChB","ignoreList":[0]}
@@ -85,7 +85,7 @@ export async function createHotReloaderTurbopack(opts, serverFields, distDir, re
85
85
  }
86
86
  const hasRewrites = opts.fsChecker.rewrites.afterFiles.length > 0 || opts.fsChecker.rewrites.beforeFiles.length > 0 || opts.fsChecker.rewrites.fallback.length > 0;
87
87
  const hotReloaderSpan = trace('hot-reloader', undefined, {
88
- version: "15.4.0-canary.80"
88
+ version: "15.4.0-canary.81"
89
89
  });
90
90
  // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
91
91
  // of the current `next dev` invocation.
@@ -182,7 +182,7 @@ export default class HotReloaderWebpack {
182
182
  this.previewProps = previewProps;
183
183
  this.rewrites = rewrites;
184
184
  this.hotReloaderSpan = trace('hot-reloader', undefined, {
185
- version: "15.4.0-canary.80"
185
+ version: "15.4.0-canary.81"
186
186
  });
187
187
  // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
188
188
  // of the current `next dev` invocation.
@@ -12,7 +12,7 @@ export function logStartInfo({ networkUrl, appUrl, envInfo, experimentalFeatures
12
12
  } else {
13
13
  bundlerSuffix = '';
14
14
  }
15
- Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"15.4.0-canary.80"}`))}${bundlerSuffix}`);
15
+ Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"15.4.0-canary.81"}`))}${bundlerSuffix}`);
16
16
  if (appUrl) {
17
17
  Log.bootstrap(`- Local: ${appUrl}`);
18
18
  }
@@ -42,7 +42,7 @@ export async function getRequestHandlers({ dir, port, isDev, onDevServerCleanup,
42
42
  export async function startServer(serverOptions) {
43
43
  const { dir, isDev, hostname, minimalMode, allowRetry, keepAliveTimeout, selfSignedCertificate } = serverOptions;
44
44
  let { port } = serverOptions;
45
- process.title = `next-server (v${"15.4.0-canary.80"})`;
45
+ process.title = `next-server (v${"15.4.0-canary.81"})`;
46
46
  let handlersReady = ()=>{};
47
47
  let handlersError = ()=>{};
48
48
  let handlersPromise = new Promise((resolve, reject)=>{
@@ -1,6 +1,6 @@
1
1
  export function isStableBuild() {
2
2
  var _process_env___NEXT_VERSION;
3
- return !((_process_env___NEXT_VERSION = "15.4.0-canary.80") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
3
+ return !((_process_env___NEXT_VERSION = "15.4.0-canary.81") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
4
4
  }
5
5
  export class CanaryOnlyError extends Error {
6
6
  constructor(arg){
@@ -97,7 +97,7 @@ function findRootDir(cwd) {
97
97
  }
98
98
  // Only warn if not in a build worker to avoid duplicate warnings
99
99
  if (typeof process.send !== 'function' && lockFiles.length > 1) {
100
- _log.warnOnce(`Warning: Found multiple lockfiles. Consider removing the lockfiles at ${lockFiles.slice(0, lockFiles.length - 1).map((str)=>'\n * ' + str).join('')}\n`);
100
+ _log.warnOnce(`Warning: Found multiple lockfiles. Selecting ${lockFiles[lockFiles.length - 1]}.\n Consider removing the lockfiles at:${lockFiles.slice(0, -1).map((str)=>'\n * ' + str).join('')}\n`);
101
101
  }
102
102
  return (0, _path.dirname)(lockFile);
103
103
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/find-root.ts"],"sourcesContent":["import { dirname } from 'path'\nimport findUp from 'next/dist/compiled/find-up'\nimport * as Log from '../build/output/log'\n\nexport function findRootLockFile(cwd: string) {\n return findUp.sync(\n [\n 'pnpm-lock.yaml',\n 'package-lock.json',\n 'yarn.lock',\n 'bun.lock',\n 'bun.lockb',\n ],\n {\n cwd,\n }\n )\n}\n\nexport function findRootDir(cwd: string) {\n const lockFile = findRootLockFile(cwd)\n if (!lockFile) return undefined\n\n const lockFiles = [lockFile]\n while (true) {\n const nextDir = dirname(dirname(lockFiles[lockFiles.length - 1]))\n const newLockFile = findRootLockFile(nextDir)\n\n if (newLockFile) {\n lockFiles.push(newLockFile)\n } else {\n break\n }\n }\n\n // Only warn if not in a build worker to avoid duplicate warnings\n if (typeof process.send !== 'function' && lockFiles.length > 1) {\n Log.warnOnce(\n `Warning: Found multiple lockfiles. Consider removing the lockfiles at ${lockFiles\n .slice(0, lockFiles.length - 1)\n .map((str) => '\\n * ' + str)\n .join('')}\\n`\n )\n }\n\n return dirname(lockFile)\n}\n"],"names":["findRootDir","findRootLockFile","cwd","findUp","sync","lockFile","undefined","lockFiles","nextDir","dirname","length","newLockFile","push","process","send","Log","warnOnce","slice","map","str","join"],"mappings":";;;;;;;;;;;;;;;IAmBgBA,WAAW;eAAXA;;IAfAC,gBAAgB;eAAhBA;;;sBAJQ;+DACL;6DACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEd,SAASA,iBAAiBC,GAAW;IAC1C,OAAOC,eAAM,CAACC,IAAI,CAChB;QACE;QACA;QACA;QACA;QACA;KACD,EACD;QACEF;IACF;AAEJ;AAEO,SAASF,YAAYE,GAAW;IACrC,MAAMG,WAAWJ,iBAAiBC;IAClC,IAAI,CAACG,UAAU,OAAOC;IAEtB,MAAMC,YAAY;QAACF;KAAS;IAC5B,MAAO,KAAM;QACX,MAAMG,UAAUC,IAAAA,aAAO,EAACA,IAAAA,aAAO,EAACF,SAAS,CAACA,UAAUG,MAAM,GAAG,EAAE;QAC/D,MAAMC,cAAcV,iBAAiBO;QAErC,IAAIG,aAAa;YACfJ,UAAUK,IAAI,CAACD;QACjB,OAAO;YACL;QACF;IACF;IAEA,iEAAiE;IACjE,IAAI,OAAOE,QAAQC,IAAI,KAAK,cAAcP,UAAUG,MAAM,GAAG,GAAG;QAC9DK,KAAIC,QAAQ,CACV,CAAC,sEAAsE,EAAET,UACtEU,KAAK,CAAC,GAAGV,UAAUG,MAAM,GAAG,GAC5BQ,GAAG,CAAC,CAACC,MAAQ,YAAYA,KACzBC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEnB;IAEA,OAAOX,IAAAA,aAAO,EAACJ;AACjB","ignoreList":[0]}
1
+ {"version":3,"sources":["../../src/lib/find-root.ts"],"sourcesContent":["import { dirname } from 'path'\nimport findUp from 'next/dist/compiled/find-up'\nimport * as Log from '../build/output/log'\n\nexport function findRootLockFile(cwd: string) {\n return findUp.sync(\n [\n 'pnpm-lock.yaml',\n 'package-lock.json',\n 'yarn.lock',\n 'bun.lock',\n 'bun.lockb',\n ],\n {\n cwd,\n }\n )\n}\n\nexport function findRootDir(cwd: string) {\n const lockFile = findRootLockFile(cwd)\n if (!lockFile) return undefined\n\n const lockFiles = [lockFile]\n while (true) {\n const nextDir = dirname(dirname(lockFiles[lockFiles.length - 1]))\n const newLockFile = findRootLockFile(nextDir)\n\n if (newLockFile) {\n lockFiles.push(newLockFile)\n } else {\n break\n }\n }\n\n // Only warn if not in a build worker to avoid duplicate warnings\n if (typeof process.send !== 'function' && lockFiles.length > 1) {\n Log.warnOnce(\n `Warning: Found multiple lockfiles. Selecting ${lockFiles[lockFiles.length - 1]}.\\n Consider removing the lockfiles at:${lockFiles\n .slice(0, -1)\n .map((str) => '\\n * ' + str)\n .join('')}\\n`\n )\n }\n\n return dirname(lockFile)\n}\n"],"names":["findRootDir","findRootLockFile","cwd","findUp","sync","lockFile","undefined","lockFiles","nextDir","dirname","length","newLockFile","push","process","send","Log","warnOnce","slice","map","str","join"],"mappings":";;;;;;;;;;;;;;;IAmBgBA,WAAW;eAAXA;;IAfAC,gBAAgB;eAAhBA;;;sBAJQ;+DACL;6DACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEd,SAASA,iBAAiBC,GAAW;IAC1C,OAAOC,eAAM,CAACC,IAAI,CAChB;QACE;QACA;QACA;QACA;QACA;KACD,EACD;QACEF;IACF;AAEJ;AAEO,SAASF,YAAYE,GAAW;IACrC,MAAMG,WAAWJ,iBAAiBC;IAClC,IAAI,CAACG,UAAU,OAAOC;IAEtB,MAAMC,YAAY;QAACF;KAAS;IAC5B,MAAO,KAAM;QACX,MAAMG,UAAUC,IAAAA,aAAO,EAACA,IAAAA,aAAO,EAACF,SAAS,CAACA,UAAUG,MAAM,GAAG,EAAE;QAC/D,MAAMC,cAAcV,iBAAiBO;QAErC,IAAIG,aAAa;YACfJ,UAAUK,IAAI,CAACD;QACjB,OAAO;YACL;QACF;IACF;IAEA,iEAAiE;IACjE,IAAI,OAAOE,QAAQC,IAAI,KAAK,cAAcP,UAAUG,MAAM,GAAG,GAAG;QAC9DK,KAAIC,QAAQ,CACV,CAAC,6CAA6C,EAAET,SAAS,CAACA,UAAUG,MAAM,GAAG,EAAE,CAAC,yCAAyC,EAAEH,UACxHU,KAAK,CAAC,GAAG,CAAC,GACVC,GAAG,CAAC,CAACC,MAAQ,YAAYA,KACzBC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEnB;IAEA,OAAOX,IAAAA,aAAO,EAACJ;AACjB","ignoreList":[0]}
@@ -1,4 +1,4 @@
1
1
  import type { HTMLProps } from 'react';
2
2
  import type { DevToolsInfoPropsCore } from '../errors/dev-tools-indicator/dev-tools-info/dev-tools-info';
3
- export declare function SegmentsExplorer(props: DevToolsInfoPropsCore & HTMLProps<HTMLDivElement>): import("react/jsx-runtime").JSX.Element | null;
3
+ export declare function SegmentsExplorer(props: DevToolsInfoPropsCore & HTMLProps<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
4
4
  export declare const DEV_TOOLS_INFO_RENDER_FILES_STYLES: string;
@@ -14,16 +14,24 @@
14
14
  * ├── layout.js
15
15
  * ├── page.js
16
16
  **/
17
- export type TrieNode<Value = string> = {
18
- value?: Value;
17
+ type TrieNode<Value = string> = {
18
+ value: Value | undefined;
19
19
  children: {
20
20
  [key: string]: TrieNode<Value> | undefined;
21
21
  };
22
22
  };
23
- export type Trie<Value = string> = {
23
+ type Trie<Value = string> = {
24
24
  insert: (value: Value) => void;
25
+ remove: (value: Value) => void;
25
26
  getRoot: () => TrieNode<Value>;
26
27
  };
27
- export declare function createTrie<Value = string>({ getKey, }: {
28
- getKey: (k: Value) => string;
29
- }): Trie<Value>;
28
+ export type SegmentNode = {
29
+ type: string;
30
+ pagePath: string;
31
+ };
32
+ export type SegmentTrie = Trie<SegmentNode>;
33
+ export type SegmentTrieNode = TrieNode<SegmentNode>;
34
+ export declare const insertSegmentNode: (value: SegmentNode) => void;
35
+ export declare const removeSegmentNode: (value: SegmentNode) => void;
36
+ export declare function useSegmentTree(): SegmentTrieNode;
37
+ export {};
@@ -2,6 +2,7 @@ import type { HydrationErrorState } from './shared/hydration-error';
2
2
  import type { DebugInfo } from './shared/types';
3
3
  import type { DevIndicatorServerState } from '../server/dev/dev-indicator-server-state';
4
4
  import type { VersionInfo } from '../server/dev/parse-version-info';
5
+ import { type SegmentNode } from './dev-overlay/segment-explorer';
5
6
  export interface Dispatcher {
6
7
  onBuildOk(): void;
7
8
  onBuildError(message: string): void;
@@ -20,6 +21,8 @@ export interface Dispatcher {
20
21
  buildingIndicatorShow(): void;
21
22
  renderingIndicatorHide(): void;
22
23
  renderingIndicatorShow(): void;
24
+ segmentExplorerNodeAdd(nodeType: SegmentNode['type'], pagePath: SegmentNode['pagePath']): void;
25
+ segmentExplorerNodeRemove(nodeType: SegmentNode['type'], pagePath: SegmentNode['pagePath']): void;
23
26
  }
24
27
  export declare const dispatcher: Dispatcher;
25
28
  export declare function renderAppDevOverlay(getComponentStack: (error: Error) => string | undefined, getOwnerStack: (error: Error) => string | null | undefined, isRecoverableError: (error: Error) => boolean): void;
@@ -0,0 +1,6 @@
1
+ import type { ReactNode } from 'react';
2
+ export declare function SegmentViewNode({ type, pagePath, children, }: {
3
+ type: string;
4
+ pagePath: string;
5
+ children: ReactNode;
6
+ }): ReactNode;
@@ -0,0 +1,34 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "SegmentViewNode", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return SegmentViewNode;
10
+ }
11
+ });
12
+ const _react = require("react");
13
+ const _nextdevtools = require("next/dist/compiled/next-devtools");
14
+ function SegmentViewNode(param) {
15
+ let { type, pagePath, children } = param;
16
+ (0, _react.useEffect)(()=>{
17
+ _nextdevtools.dispatcher.segmentExplorerNodeAdd(type, pagePath);
18
+ return ()=>{
19
+ _nextdevtools.dispatcher.segmentExplorerNodeRemove(type, pagePath);
20
+ };
21
+ }, [
22
+ type,
23
+ pagePath
24
+ ]);
25
+ return children;
26
+ }
27
+
28
+ if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
29
+ Object.defineProperty(exports.default, '__esModule', { value: true });
30
+ Object.assign(exports.default, exports);
31
+ module.exports = exports.default;
32
+ }
33
+
34
+ //# sourceMappingURL=segment-explorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/next-devtools/userspace/app/segment-explorer.ts"],"sourcesContent":["'use client'\nimport type { ReactNode } from 'react'\nimport { useEffect } from 'react'\nimport { dispatcher } from 'next/dist/compiled/next-devtools'\n\nexport function SegmentViewNode({\n type,\n pagePath,\n children,\n}: {\n type: string\n pagePath: string\n children: ReactNode\n}) {\n useEffect(() => {\n dispatcher.segmentExplorerNodeAdd(type, pagePath)\n return () => {\n dispatcher.segmentExplorerNodeRemove(type, pagePath)\n }\n }, [type, pagePath])\n\n return children\n}\n"],"names":["SegmentViewNode","type","pagePath","children","useEffect","dispatcher","segmentExplorerNodeAdd","segmentExplorerNodeRemove"],"mappings":"AAAA;;;;;+BAKgBA;;;eAAAA;;;uBAHU;8BACC;AAEpB,SAASA,gBAAgB,KAQ/B;IAR+B,IAAA,EAC9BC,IAAI,EACJC,QAAQ,EACRC,QAAQ,EAKT,GAR+B;IAS9BC,IAAAA,gBAAS,EAAC;QACRC,wBAAU,CAACC,sBAAsB,CAACL,MAAMC;QACxC,OAAO;YACLG,wBAAU,CAACE,yBAAyB,CAACN,MAAMC;QAC7C;IACF,GAAG;QAACD;QAAMC;KAAS;IAEnB,OAAOC;AACT","ignoreList":[0]}
@@ -19,6 +19,6 @@ import { preloadStyle, preloadFont, preconnect } from './rsc/preloads';
19
19
  import { Postpone } from './rsc/postpone';
20
20
  import { taintObjectReference } from './rsc/taint';
21
21
  export { collectSegmentData } from './collect-segment-data';
22
- declare let SegmentViewNode: typeof import('../../shared/lib/devtool/app-segment-tree').SegmentViewNode;
22
+ declare let SegmentViewNode: typeof import('../../next-devtools/userspace/app/segment-explorer').SegmentViewNode;
23
23
  declare function patchFetch(): void;
24
24
  export { LayoutRouter, RenderFromTemplateContext, workAsyncStorage, workUnitAsyncStorage, actionAsyncStorage, createServerSearchParamsForServerPage, createPrerenderSearchParamsForClientPage, createServerParamsForServerSegment, createPrerenderParamsForClientSegment, serverHooks, preloadStyle, preloadFont, preconnect, Postpone, MetadataBoundary, ViewportBoundary, OutletBoundary, taintObjectReference, ClientPageRoot, ClientSegmentRoot, HTTPAccessFallbackBoundary, patchFetch, createMetadataComponents, SegmentViewNode, };
@@ -208,8 +208,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
208
208
  }
209
209
  let SegmentViewNode = ()=>null;
210
210
  if (process.env.NODE_ENV === 'development') {
211
- const appSegmentTree = require('../../shared/lib/devtool/app-segment-tree');
212
- SegmentViewNode = appSegmentTree.SegmentViewNode;
211
+ SegmentViewNode = require('../../next-devtools/userspace/app/segment-explorer').SegmentViewNode;
213
212
  }
214
213
  // patchFetch makes use of APIs such as `React.unstable_postpone` which are only available
215
214
  // in the experimental channel of React, so export it from here so that it comes from the bundled runtime
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/app-render/entry-base.ts"],"sourcesContent":["// eslint-disable-next-line import/no-extraneous-dependencies\nexport {\n createTemporaryReferenceSet,\n renderToReadableStream,\n decodeReply,\n decodeAction,\n decodeFormState,\n} from 'react-server-dom-webpack/server.edge'\n\n// eslint-disable-next-line import/no-extraneous-dependencies\nexport { unstable_prerender as prerender } from 'react-server-dom-webpack/static.edge'\n\nimport LayoutRouter from '../../client/components/layout-router'\nimport RenderFromTemplateContext from '../../client/components/render-from-template-context'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { workUnitAsyncStorage } from './work-unit-async-storage.external'\nimport { actionAsyncStorage } from '../app-render/action-async-storage.external'\nimport { ClientPageRoot } from '../../client/components/client-page'\nimport { ClientSegmentRoot } from '../../client/components/client-segment'\nimport {\n createServerSearchParamsForServerPage,\n createPrerenderSearchParamsForClientPage,\n} from '../request/search-params'\nimport {\n createServerParamsForServerSegment,\n createPrerenderParamsForClientSegment,\n} from '../request/params'\nimport * as serverHooks from '../../client/components/hooks-server-context'\nimport { HTTPAccessFallbackBoundary } from '../../client/components/http-access-fallback/error-boundary'\nimport { createMetadataComponents } from '../../lib/metadata/metadata'\nimport { patchFetch as _patchFetch } from '../lib/patch-fetch'\n// Not being directly used but should be included in the client manifest for /_not-found\n// * ErrorBoundary -> client/components/error-boundary\n// * GlobalError -> client/components/global-error\nimport '../../client/components/error-boundary'\nimport '../../client/components/global-error'\nimport {\n MetadataBoundary,\n ViewportBoundary,\n OutletBoundary,\n} from '../../client/components/metadata/metadata-boundary'\n\nimport { preloadStyle, preloadFont, preconnect } from './rsc/preloads'\nimport { Postpone } from './rsc/postpone'\nimport { taintObjectReference } from './rsc/taint'\nexport { collectSegmentData } from './collect-segment-data'\n\nlet SegmentViewNode: typeof import('../../shared/lib/devtool/app-segment-tree').SegmentViewNode =\n () => null\nif (process.env.NODE_ENV === 'development') {\n const appSegmentTree: typeof import('../../shared/lib/devtool/app-segment-tree') =\n require('../../shared/lib/devtool/app-segment-tree') as typeof import('../../shared/lib/devtool/app-segment-tree')\n SegmentViewNode = appSegmentTree.SegmentViewNode\n}\n\n// patchFetch makes use of APIs such as `React.unstable_postpone` which are only available\n// in the experimental channel of React, so export it from here so that it comes from the bundled runtime\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n LayoutRouter,\n RenderFromTemplateContext,\n workAsyncStorage,\n workUnitAsyncStorage,\n actionAsyncStorage,\n createServerSearchParamsForServerPage,\n createPrerenderSearchParamsForClientPage,\n createServerParamsForServerSegment,\n createPrerenderParamsForClientSegment,\n serverHooks,\n preloadStyle,\n preloadFont,\n preconnect,\n Postpone,\n MetadataBoundary,\n ViewportBoundary,\n OutletBoundary,\n taintObjectReference,\n ClientPageRoot,\n ClientSegmentRoot,\n HTTPAccessFallbackBoundary,\n patchFetch,\n createMetadataComponents,\n // Development only\n SegmentViewNode,\n}\n"],"names":["ClientPageRoot","ClientSegmentRoot","HTTPAccessFallbackBoundary","LayoutRouter","MetadataBoundary","OutletBoundary","Postpone","RenderFromTemplateContext","SegmentViewNode","ViewportBoundary","actionAsyncStorage","collectSegmentData","createMetadataComponents","createPrerenderParamsForClientSegment","createPrerenderSearchParamsForClientPage","createServerParamsForServerSegment","createServerSearchParamsForServerPage","createTemporaryReferenceSet","decodeAction","decodeFormState","decodeReply","patchFetch","preconnect","preloadFont","preloadStyle","prerender","unstable_prerender","renderToReadableStream","serverHooks","taintObjectReference","workAsyncStorage","workUnitAsyncStorage","process","env","NODE_ENV","appSegmentTree","require","_patchFetch"],"mappings":"AAAA,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmF3DA,cAAc;eAAdA,0BAAc;;IACdC,iBAAiB;eAAjBA,gCAAiB;;IACjBC,0BAA0B;eAA1BA,yCAA0B;;IApB1BC,YAAY;eAAZA,qBAAY;;IAcZC,gBAAgB;eAAhBA,kCAAgB;;IAEhBC,cAAc;eAAdA,gCAAc;;IAHdC,QAAQ;eAARA,kBAAQ;;IAZRC,yBAAyB;eAAzBA,kCAAyB;;IAsBzB,mBAAmB;IACnBC,eAAe;eAAfA;;IATAC,gBAAgB;eAAhBA,kCAAgB;;IAXhBC,kBAAkB;eAAlBA,8CAAkB;;IAxBXC,kBAAkB;eAAlBA,sCAAkB;;IA0CzBC,wBAAwB;eAAxBA,kCAAwB;;IAdxBC,qCAAqC;eAArCA,6CAAqC;;IAFrCC,wCAAwC;eAAxCA,sDAAwC;;IACxCC,kCAAkC;eAAlCA,0CAAkC;;IAFlCC,qCAAqC;eAArCA,mDAAqC;;IApErCC,2BAA2B;eAA3BA,uCAA2B;;IAG3BC,YAAY;eAAZA,wBAAY;;IACZC,eAAe;eAAfA,2BAAe;;IAFfC,WAAW;eAAXA,uBAAW;;IAkFXC,UAAU;eAAVA;;IATAC,UAAU;eAAVA,oBAAU;;IADVC,WAAW;eAAXA,qBAAW;;IADXC,YAAY;eAAZA,sBAAY;;IAjEiBC,SAAS;eAA/BC,8BAAkB;;IAPzBC,sBAAsB;eAAtBA,kCAAsB;;IAuEtBC,WAAW;eAAXA;;IAQAC,oBAAoB;eAApBA,2BAAoB;;IAfpBC,gBAAgB;eAAhBA,0CAAgB;;IAChBC,oBAAoB;eAApBA,kDAAoB;;;4BA7Df;4BAGyC;qEAEvB;kFACa;0CACL;8CACI;4CACF;4BACJ;+BACG;8BAI3B;wBAIA;4EACsB;+BACc;0BACF;4BACC;QAInC;QACA;kCAKA;0BAE+C;0BAC7B;uBACY;oCACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEnC,IAAIvB,kBACF,IAAM;AACR,IAAIwB,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;IAC1C,MAAMC,iBACJC,QAAQ;IACV5B,kBAAkB2B,eAAe3B,eAAe;AAClD;AAEA,0FAA0F;AAC1F,yGAAyG;AACzG,SAASa;IACP,OAAOgB,IAAAA,sBAAW,EAAC;QACjBP,kBAAAA,0CAAgB;QAChBC,sBAAAA,kDAAoB;IACtB;AACF","ignoreList":[0]}
1
+ {"version":3,"sources":["../../../src/server/app-render/entry-base.ts"],"sourcesContent":["// eslint-disable-next-line import/no-extraneous-dependencies\nexport {\n createTemporaryReferenceSet,\n renderToReadableStream,\n decodeReply,\n decodeAction,\n decodeFormState,\n} from 'react-server-dom-webpack/server.edge'\n\n// eslint-disable-next-line import/no-extraneous-dependencies\nexport { unstable_prerender as prerender } from 'react-server-dom-webpack/static.edge'\n\nimport LayoutRouter from '../../client/components/layout-router'\nimport RenderFromTemplateContext from '../../client/components/render-from-template-context'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { workUnitAsyncStorage } from './work-unit-async-storage.external'\nimport { actionAsyncStorage } from '../app-render/action-async-storage.external'\nimport { ClientPageRoot } from '../../client/components/client-page'\nimport { ClientSegmentRoot } from '../../client/components/client-segment'\nimport {\n createServerSearchParamsForServerPage,\n createPrerenderSearchParamsForClientPage,\n} from '../request/search-params'\nimport {\n createServerParamsForServerSegment,\n createPrerenderParamsForClientSegment,\n} from '../request/params'\nimport * as serverHooks from '../../client/components/hooks-server-context'\nimport { HTTPAccessFallbackBoundary } from '../../client/components/http-access-fallback/error-boundary'\nimport { createMetadataComponents } from '../../lib/metadata/metadata'\nimport { patchFetch as _patchFetch } from '../lib/patch-fetch'\n// Not being directly used but should be included in the client manifest for /_not-found\n// * ErrorBoundary -> client/components/error-boundary\n// * GlobalError -> client/components/global-error\nimport '../../client/components/error-boundary'\nimport '../../client/components/global-error'\nimport {\n MetadataBoundary,\n ViewportBoundary,\n OutletBoundary,\n} from '../../client/components/metadata/metadata-boundary'\n\nimport { preloadStyle, preloadFont, preconnect } from './rsc/preloads'\nimport { Postpone } from './rsc/postpone'\nimport { taintObjectReference } from './rsc/taint'\nexport { collectSegmentData } from './collect-segment-data'\n\nlet SegmentViewNode: typeof import('../../next-devtools/userspace/app/segment-explorer').SegmentViewNode =\n () => null\nif (process.env.NODE_ENV === 'development') {\n SegmentViewNode = (\n require('../../next-devtools/userspace/app/segment-explorer') as typeof import('../../next-devtools/userspace/app/segment-explorer')\n ).SegmentViewNode\n}\n\n// patchFetch makes use of APIs such as `React.unstable_postpone` which are only available\n// in the experimental channel of React, so export it from here so that it comes from the bundled runtime\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n LayoutRouter,\n RenderFromTemplateContext,\n workAsyncStorage,\n workUnitAsyncStorage,\n actionAsyncStorage,\n createServerSearchParamsForServerPage,\n createPrerenderSearchParamsForClientPage,\n createServerParamsForServerSegment,\n createPrerenderParamsForClientSegment,\n serverHooks,\n preloadStyle,\n preloadFont,\n preconnect,\n Postpone,\n MetadataBoundary,\n ViewportBoundary,\n OutletBoundary,\n taintObjectReference,\n ClientPageRoot,\n ClientSegmentRoot,\n HTTPAccessFallbackBoundary,\n patchFetch,\n createMetadataComponents,\n // Development only\n SegmentViewNode,\n}\n"],"names":["ClientPageRoot","ClientSegmentRoot","HTTPAccessFallbackBoundary","LayoutRouter","MetadataBoundary","OutletBoundary","Postpone","RenderFromTemplateContext","SegmentViewNode","ViewportBoundary","actionAsyncStorage","collectSegmentData","createMetadataComponents","createPrerenderParamsForClientSegment","createPrerenderSearchParamsForClientPage","createServerParamsForServerSegment","createServerSearchParamsForServerPage","createTemporaryReferenceSet","decodeAction","decodeFormState","decodeReply","patchFetch","preconnect","preloadFont","preloadStyle","prerender","unstable_prerender","renderToReadableStream","serverHooks","taintObjectReference","workAsyncStorage","workUnitAsyncStorage","process","env","NODE_ENV","require","_patchFetch"],"mappings":"AAAA,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmF3DA,cAAc;eAAdA,0BAAc;;IACdC,iBAAiB;eAAjBA,gCAAiB;;IACjBC,0BAA0B;eAA1BA,yCAA0B;;IApB1BC,YAAY;eAAZA,qBAAY;;IAcZC,gBAAgB;eAAhBA,kCAAgB;;IAEhBC,cAAc;eAAdA,gCAAc;;IAHdC,QAAQ;eAARA,kBAAQ;;IAZRC,yBAAyB;eAAzBA,kCAAyB;;IAsBzB,mBAAmB;IACnBC,eAAe;eAAfA;;IATAC,gBAAgB;eAAhBA,kCAAgB;;IAXhBC,kBAAkB;eAAlBA,8CAAkB;;IAxBXC,kBAAkB;eAAlBA,sCAAkB;;IA0CzBC,wBAAwB;eAAxBA,kCAAwB;;IAdxBC,qCAAqC;eAArCA,6CAAqC;;IAFrCC,wCAAwC;eAAxCA,sDAAwC;;IACxCC,kCAAkC;eAAlCA,0CAAkC;;IAFlCC,qCAAqC;eAArCA,mDAAqC;;IApErCC,2BAA2B;eAA3BA,uCAA2B;;IAG3BC,YAAY;eAAZA,wBAAY;;IACZC,eAAe;eAAfA,2BAAe;;IAFfC,WAAW;eAAXA,uBAAW;;IAkFXC,UAAU;eAAVA;;IATAC,UAAU;eAAVA,oBAAU;;IADVC,WAAW;eAAXA,qBAAW;;IADXC,YAAY;eAAZA,sBAAY;;IAjEiBC,SAAS;eAA/BC,8BAAkB;;IAPzBC,sBAAsB;eAAtBA,kCAAsB;;IAuEtBC,WAAW;eAAXA;;IAQAC,oBAAoB;eAApBA,2BAAoB;;IAfpBC,gBAAgB;eAAhBA,0CAAgB;;IAChBC,oBAAoB;eAApBA,kDAAoB;;;4BA7Df;4BAGyC;qEAEvB;kFACa;0CACL;8CACI;4CACF;4BACJ;+BACG;8BAI3B;wBAIA;4EACsB;+BACc;0BACF;4BACC;QAInC;QACA;kCAKA;0BAE+C;0BAC7B;uBACY;oCACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEnC,IAAIvB,kBACF,IAAM;AACR,IAAIwB,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;IAC1C1B,kBAAkB,AAChB2B,QAAQ,sDACR3B,eAAe;AACnB;AAEA,0FAA0F;AAC1F,yGAAyG;AACzG,SAASa;IACP,OAAOe,IAAAA,sBAAW,EAAC;QACjBN,kBAAAA,0CAAgB;QAChBC,sBAAAA,kDAAoB;IACtB;AACF","ignoreList":[0]}
@@ -141,7 +141,7 @@ async function createHotReloaderTurbopack(opts, serverFields, distDir, resetFetc
141
141
  }
142
142
  const hasRewrites = opts.fsChecker.rewrites.afterFiles.length > 0 || opts.fsChecker.rewrites.beforeFiles.length > 0 || opts.fsChecker.rewrites.fallback.length > 0;
143
143
  const hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
144
- version: "15.4.0-canary.80"
144
+ version: "15.4.0-canary.81"
145
145
  });
146
146
  // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
147
147
  // of the current `next dev` invocation.
@@ -258,7 +258,7 @@ class HotReloaderWebpack {
258
258
  this.previewProps = previewProps;
259
259
  this.rewrites = rewrites;
260
260
  this.hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
261
- version: "15.4.0-canary.80"
261
+ version: "15.4.0-canary.81"
262
262
  });
263
263
  // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
264
264
  // of the current `next dev` invocation.
@@ -75,7 +75,7 @@ function logStartInfo({ networkUrl, appUrl, envInfo, experimentalFeatures, maxEx
75
75
  } else {
76
76
  bundlerSuffix = '';
77
77
  }
78
- _log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"15.4.0-canary.80"}`))}${bundlerSuffix}`);
78
+ _log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"15.4.0-canary.81"}`))}${bundlerSuffix}`);
79
79
  if (appUrl) {
80
80
  _log.bootstrap(`- Local: ${appUrl}`);
81
81
  }
@@ -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.80"})`;
113
+ process.title = `next-server (v${"15.4.0-canary.81"})`;
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.80") == 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.81") == 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.80"
84
+ nextVersion: "15.4.0-canary.81"
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.80" !== 'string') {
14
+ if (typeof "15.4.0-canary.81" !== 'string') {
15
15
  return [];
16
16
  }
17
17
  const payload = {
18
- nextVersion: "15.4.0-canary.80",
18
+ nextVersion: "15.4.0-canary.81",
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.80" !== 'string') {
39
+ if (typeof "15.4.0-canary.81" !== 'string') {
40
40
  return [];
41
41
  }
42
42
  const { images, i18n } = nextConfig || {};
43
43
  const payload = {
44
- nextVersion: "15.4.0-canary.80",
44
+ nextVersion: "15.4.0-canary.81",
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.80",
3
+ "version": "15.4.0-canary.81",
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.80",
103
+ "@next/env": "15.4.0-canary.81",
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.80",
134
- "@next/swc-darwin-x64": "15.4.0-canary.80",
135
- "@next/swc-linux-arm64-gnu": "15.4.0-canary.80",
136
- "@next/swc-linux-arm64-musl": "15.4.0-canary.80",
137
- "@next/swc-linux-x64-gnu": "15.4.0-canary.80",
138
- "@next/swc-linux-x64-musl": "15.4.0-canary.80",
139
- "@next/swc-win32-arm64-msvc": "15.4.0-canary.80",
140
- "@next/swc-win32-x64-msvc": "15.4.0-canary.80"
133
+ "@next/swc-darwin-arm64": "15.4.0-canary.81",
134
+ "@next/swc-darwin-x64": "15.4.0-canary.81",
135
+ "@next/swc-linux-arm64-gnu": "15.4.0-canary.81",
136
+ "@next/swc-linux-arm64-musl": "15.4.0-canary.81",
137
+ "@next/swc-linux-x64-gnu": "15.4.0-canary.81",
138
+ "@next/swc-linux-x64-musl": "15.4.0-canary.81",
139
+ "@next/swc-win32-arm64-msvc": "15.4.0-canary.81",
140
+ "@next/swc-win32-x64-msvc": "15.4.0-canary.81"
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.80",
174
- "@next/polyfill-module": "15.4.0-canary.80",
175
- "@next/polyfill-nomodule": "15.4.0-canary.80",
176
- "@next/react-refresh-utils": "15.4.0-canary.80",
177
- "@next/swc": "15.4.0-canary.80",
173
+ "@next/font": "15.4.0-canary.81",
174
+ "@next/polyfill-module": "15.4.0-canary.81",
175
+ "@next/polyfill-nomodule": "15.4.0-canary.81",
176
+ "@next/react-refresh-utils": "15.4.0-canary.81",
177
+ "@next/swc": "15.4.0-canary.81",
178
178
  "@opentelemetry/api": "1.6.0",
179
179
  "@playwright/test": "1.51.1",
180
180
  "@rspack/core": "1.3.12",