next 15.5.3 → 15.5.4

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 (52) 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/templates/app-page.js +1 -2
  5. package/dist/build/templates/app-page.js.map +1 -1
  6. package/dist/build/templates/app-route.js +1 -2
  7. package/dist/build/templates/app-route.js.map +1 -1
  8. package/dist/build/webpack/loaders/devtool/devtool-style-inject.js +31 -26
  9. package/dist/build/webpack/loaders/devtool/devtool-style-inject.js.map +1 -1
  10. package/dist/build/webpack-config.js +2 -2
  11. package/dist/client/app-bootstrap.js +1 -1
  12. package/dist/client/index.js +1 -1
  13. package/dist/compiled/next-devtools/index.js +2 -2
  14. package/dist/compiled/next-devtools/index.js.map +1 -1
  15. package/dist/compiled/next-server/pages-api-turbo.runtime.dev.js +1 -1
  16. package/dist/compiled/next-server/pages-api-turbo.runtime.dev.js.map +1 -1
  17. package/dist/compiled/next-server/pages-api.runtime.dev.js +1 -1
  18. package/dist/compiled/next-server/pages-api.runtime.dev.js.map +1 -1
  19. package/dist/compiled/next-server/pages-api.runtime.prod.js +1 -1
  20. package/dist/compiled/next-server/pages-api.runtime.prod.js.map +1 -1
  21. package/dist/compiled/next-server/pages-turbo.runtime.dev.js +1 -1
  22. package/dist/compiled/next-server/pages-turbo.runtime.dev.js.map +1 -1
  23. package/dist/compiled/next-server/pages.runtime.dev.js +1 -1
  24. package/dist/compiled/next-server/pages.runtime.dev.js.map +1 -1
  25. package/dist/compiled/next-server/pages.runtime.prod.js +1 -1
  26. package/dist/compiled/next-server/pages.runtime.prod.js.map +1 -1
  27. package/dist/esm/build/index.js +2 -2
  28. package/dist/esm/build/swc/index.js +1 -1
  29. package/dist/esm/build/templates/app-page.js +1 -2
  30. package/dist/esm/build/templates/app-page.js.map +1 -1
  31. package/dist/esm/build/templates/app-route.js +1 -2
  32. package/dist/esm/build/templates/app-route.js.map +1 -1
  33. package/dist/esm/build/webpack/loaders/devtool/devtool-style-inject.js +31 -26
  34. package/dist/esm/build/webpack/loaders/devtool/devtool-style-inject.js.map +1 -1
  35. package/dist/esm/build/webpack-config.js +2 -2
  36. package/dist/esm/client/app-bootstrap.js +1 -1
  37. package/dist/esm/client/index.js +1 -1
  38. package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
  39. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  40. package/dist/esm/server/lib/app-info-log.js +1 -1
  41. package/dist/esm/server/lib/start-server.js +1 -1
  42. package/dist/esm/shared/lib/canary-only.js +1 -1
  43. package/dist/next-devtools/dev-overlay/hooks/use-on-click-outside.d.ts +2 -1
  44. package/dist/server/dev/hot-reloader-turbopack.js +1 -1
  45. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  46. package/dist/server/lib/app-info-log.js +1 -1
  47. package/dist/server/lib/start-server.js +1 -1
  48. package/dist/shared/lib/canary-only.js +1 -1
  49. package/dist/telemetry/anonymous-meta.js +1 -1
  50. package/dist/telemetry/events/session-stopped.js +2 -2
  51. package/dist/telemetry/events/version.js +2 -2
  52. package/package.json +15 -15
@@ -67,35 +67,40 @@ function startObservingForPortal() {
67
67
  }
68
68
  // Set up MutationObserver to watch for the portal element
69
69
  const observer = new MutationObserver((mutations)=>{
70
- if (mutations.length === 0 || mutations[0].addedNodes.length === 0) {
70
+ if (mutations.length === 0) {
71
71
  return;
72
72
  }
73
- // Check if mutation is script[data-nextjs-dev-overlay] tag, which is the
74
- // parent of the nextjs-portal element
75
- const mutationNode = mutations[0].addedNodes[0];
76
- let portalNode = null;
77
- if (// app router: body > script[data-nextjs-dev-overlay] > nextjs-portal
78
- mutationNode.tagName === 'SCRIPT' && mutationNode.getAttribute('data-nextjs-dev-overlay')) {
79
- portalNode = mutationNode.firstChild;
80
- } else if (// pages router: body > nextjs-portal
81
- mutationNode.tagName === 'NEXTJS-PORTAL') {
82
- portalNode = mutationNode;
83
- }
84
- if (!portalNode) {
85
- return;
86
- }
87
- // Wait until shadow root is available
88
- const checkShadowRoot = ()=>{
89
- if (getShadowRoot()) {
90
- flushCachedElements();
91
- observer.disconnect();
92
- cache.isObserving = false;
93
- } else {
94
- // Try again after a short delay
95
- setTimeout(checkShadowRoot, 20);
73
+ // Check all mutations and all added nodes
74
+ for (const mutation of mutations){
75
+ if (mutation.addedNodes.length === 0) continue;
76
+ for (const addedNode of mutation.addedNodes){
77
+ if (addedNode.nodeType !== Node.ELEMENT_NODE) continue;
78
+ const mutationNode = addedNode;
79
+ let portalNode = null;
80
+ if (// app router: body > script[data-nextjs-dev-overlay] > nextjs-portal
81
+ mutationNode.tagName === 'SCRIPT' && mutationNode.getAttribute('data-nextjs-dev-overlay')) {
82
+ portalNode = mutationNode.firstChild;
83
+ } else if (// pages router: body > nextjs-portal
84
+ mutationNode.tagName === 'NEXTJS-PORTAL') {
85
+ portalNode = mutationNode;
86
+ }
87
+ if (portalNode) {
88
+ // Wait until shadow root is available
89
+ const checkShadowRoot = ()=>{
90
+ if (getShadowRoot()) {
91
+ flushCachedElements();
92
+ observer.disconnect();
93
+ cache.isObserving = false;
94
+ } else {
95
+ // Try again after a short delay
96
+ setTimeout(checkShadowRoot, 20);
97
+ }
98
+ };
99
+ checkShadowRoot();
100
+ return; // Exit early once we find a portal
101
+ }
96
102
  }
97
- };
98
- checkShadowRoot();
103
+ }
99
104
  });
100
105
  observer.observe(document.body, {
101
106
  childList: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/build/webpack/loaders/devtool/devtool-style-inject.js"],"sourcesContent":["/* @ts-check */\n/**\n * Style injection mechanism for Next.js devtools with shadow DOM support\n * Handles caching of style elements when the nextjs-portal shadow root is not available\n */\n\n// Global cache for style elements when shadow root is not available\nif (typeof window !== 'undefined') {\n window._nextjsDevtoolsStyleCache = window._nextjsDevtoolsStyleCache || {\n pendingElements: [],\n isObserving: false,\n lastInsertedElement: null,\n cachedShadowRoot: null, // Cache the shadow root once found\n }\n}\n\n/**\n * @returns {ShadowRoot | null}\n */\nfunction getShadowRoot() {\n const cache = window._nextjsDevtoolsStyleCache\n\n // Return cached shadow root if available\n if (cache.cachedShadowRoot) {\n return cache.cachedShadowRoot\n }\n\n // Query the DOM and cache the result if found\n const portal = document.querySelector('nextjs-portal')\n const shadowRoot = portal?.shadowRoot || null\n\n if (shadowRoot) {\n cache.cachedShadowRoot = shadowRoot\n }\n\n return shadowRoot\n}\n\n/**\n * @param {HTMLElement} element\n * @param {ShadowRoot} shadowRoot\n */\nfunction insertElementIntoShadowRoot(element, shadowRoot) {\n const cache = window._nextjsDevtoolsStyleCache\n\n if (!cache.lastInsertedElement) {\n shadowRoot.insertBefore(element, shadowRoot.firstChild)\n } else if (cache.lastInsertedElement.nextSibling) {\n shadowRoot.insertBefore(element, cache.lastInsertedElement.nextSibling)\n } else {\n shadowRoot.appendChild(element)\n }\n\n cache.lastInsertedElement = element\n}\n\nfunction flushCachedElements() {\n const cache = window._nextjsDevtoolsStyleCache\n const shadowRoot = getShadowRoot()\n\n if (!shadowRoot) {\n return\n }\n\n cache.pendingElements.forEach((element) => {\n insertElementIntoShadowRoot(element, shadowRoot)\n })\n cache.pendingElements = []\n}\n\nfunction startObservingForPortal() {\n const cache = window._nextjsDevtoolsStyleCache\n\n if (cache.isObserving) {\n return\n }\n cache.isObserving = true\n\n // First check if the portal already exists\n const shadowRoot = getShadowRoot() // This will cache it if found\n if (shadowRoot) {\n flushCachedElements()\n return\n }\n\n // Set up MutationObserver to watch for the portal element\n const observer = new MutationObserver((mutations) => {\n if (mutations.length === 0 || mutations[0].addedNodes.length === 0) {\n return\n }\n\n // Check if mutation is script[data-nextjs-dev-overlay] tag, which is the\n // parent of the nextjs-portal element\n const mutationNode = mutations[0].addedNodes[0]\n let portalNode = null\n if (\n // app router: body > script[data-nextjs-dev-overlay] > nextjs-portal\n mutationNode.tagName === 'SCRIPT' &&\n mutationNode.getAttribute('data-nextjs-dev-overlay')\n ) {\n portalNode = mutationNode.firstChild\n } else if (\n // pages router: body > nextjs-portal\n mutationNode.tagName === 'NEXTJS-PORTAL'\n ) {\n portalNode = mutationNode\n }\n if (!portalNode) {\n return\n }\n\n // Wait until shadow root is available\n const checkShadowRoot = () => {\n if (getShadowRoot()) {\n flushCachedElements()\n observer.disconnect()\n cache.isObserving = false\n } else {\n // Try again after a short delay\n setTimeout(checkShadowRoot, 20)\n }\n }\n checkShadowRoot()\n })\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n })\n}\n\n/**\n * @param {HTMLElement} element\n */\nfunction insertAtTop(element) {\n // Add special recognizable data prop to element\n element.setAttribute('data-nextjs-dev-tool-style', 'true')\n\n const shadowRoot = getShadowRoot()\n if (shadowRoot) {\n // Shadow root is available, insert directly\n insertElementIntoShadowRoot(element, shadowRoot)\n } else {\n // Shadow root not available, cache the element\n const cache = window._nextjsDevtoolsStyleCache\n cache.pendingElements.push(element)\n\n // Start observing for the portal if not already observing\n startObservingForPortal()\n }\n}\n\nmodule.exports = insertAtTop\n"],"names":["window","_nextjsDevtoolsStyleCache","pendingElements","isObserving","lastInsertedElement","cachedShadowRoot","getShadowRoot","cache","portal","document","querySelector","shadowRoot","insertElementIntoShadowRoot","element","insertBefore","firstChild","nextSibling","appendChild","flushCachedElements","forEach","startObservingForPortal","observer","MutationObserver","mutations","length","addedNodes","mutationNode","portalNode","tagName","getAttribute","checkShadowRoot","disconnect","setTimeout","observe","body","childList","subtree","insertAtTop","setAttribute","push","module","exports"],"mappings":"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","ignoreList":[0]}
1
+ {"version":3,"sources":["../../../../../src/build/webpack/loaders/devtool/devtool-style-inject.js"],"sourcesContent":["/* @ts-check */\n/**\n * Style injection mechanism for Next.js devtools with shadow DOM support\n * Handles caching of style elements when the nextjs-portal shadow root is not available\n */\n\n// Global cache for style elements when shadow root is not available\nif (typeof window !== 'undefined') {\n window._nextjsDevtoolsStyleCache = window._nextjsDevtoolsStyleCache || {\n pendingElements: [],\n isObserving: false,\n lastInsertedElement: null,\n cachedShadowRoot: null, // Cache the shadow root once found\n }\n}\n\n/**\n * @returns {ShadowRoot | null}\n */\nfunction getShadowRoot() {\n const cache = window._nextjsDevtoolsStyleCache\n\n // Return cached shadow root if available\n if (cache.cachedShadowRoot) {\n return cache.cachedShadowRoot\n }\n\n // Query the DOM and cache the result if found\n const portal = document.querySelector('nextjs-portal')\n const shadowRoot = portal?.shadowRoot || null\n\n if (shadowRoot) {\n cache.cachedShadowRoot = shadowRoot\n }\n\n return shadowRoot\n}\n\n/**\n * @param {HTMLElement} element\n * @param {ShadowRoot} shadowRoot\n */\nfunction insertElementIntoShadowRoot(element, shadowRoot) {\n const cache = window._nextjsDevtoolsStyleCache\n\n if (!cache.lastInsertedElement) {\n shadowRoot.insertBefore(element, shadowRoot.firstChild)\n } else if (cache.lastInsertedElement.nextSibling) {\n shadowRoot.insertBefore(element, cache.lastInsertedElement.nextSibling)\n } else {\n shadowRoot.appendChild(element)\n }\n\n cache.lastInsertedElement = element\n}\n\nfunction flushCachedElements() {\n const cache = window._nextjsDevtoolsStyleCache\n const shadowRoot = getShadowRoot()\n\n if (!shadowRoot) {\n return\n }\n\n cache.pendingElements.forEach((element) => {\n insertElementIntoShadowRoot(element, shadowRoot)\n })\n cache.pendingElements = []\n}\n\nfunction startObservingForPortal() {\n const cache = window._nextjsDevtoolsStyleCache\n\n if (cache.isObserving) {\n return\n }\n cache.isObserving = true\n\n // First check if the portal already exists\n const shadowRoot = getShadowRoot() // This will cache it if found\n if (shadowRoot) {\n flushCachedElements()\n return\n }\n\n // Set up MutationObserver to watch for the portal element\n const observer = new MutationObserver((mutations) => {\n if (mutations.length === 0) {\n return\n }\n\n // Check all mutations and all added nodes\n for (const mutation of mutations) {\n if (mutation.addedNodes.length === 0) continue\n\n for (const addedNode of mutation.addedNodes) {\n if (addedNode.nodeType !== Node.ELEMENT_NODE) continue\n\n const mutationNode = addedNode\n\n let portalNode = null\n if (\n // app router: body > script[data-nextjs-dev-overlay] > nextjs-portal\n mutationNode.tagName === 'SCRIPT' &&\n mutationNode.getAttribute('data-nextjs-dev-overlay')\n ) {\n portalNode = mutationNode.firstChild\n } else if (\n // pages router: body > nextjs-portal\n mutationNode.tagName === 'NEXTJS-PORTAL'\n ) {\n portalNode = mutationNode\n }\n\n if (portalNode) {\n // Wait until shadow root is available\n const checkShadowRoot = () => {\n if (getShadowRoot()) {\n flushCachedElements()\n observer.disconnect()\n cache.isObserving = false\n } else {\n // Try again after a short delay\n setTimeout(checkShadowRoot, 20)\n }\n }\n checkShadowRoot()\n return // Exit early once we find a portal\n }\n }\n }\n })\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n })\n}\n\n/**\n * @param {HTMLElement} element\n */\nfunction insertAtTop(element) {\n // Add special recognizable data prop to element\n element.setAttribute('data-nextjs-dev-tool-style', 'true')\n\n const shadowRoot = getShadowRoot()\n if (shadowRoot) {\n // Shadow root is available, insert directly\n insertElementIntoShadowRoot(element, shadowRoot)\n } else {\n // Shadow root not available, cache the element\n const cache = window._nextjsDevtoolsStyleCache\n cache.pendingElements.push(element)\n\n // Start observing for the portal if not already observing\n startObservingForPortal()\n }\n}\n\nmodule.exports = insertAtTop\n"],"names":["window","_nextjsDevtoolsStyleCache","pendingElements","isObserving","lastInsertedElement","cachedShadowRoot","getShadowRoot","cache","portal","document","querySelector","shadowRoot","insertElementIntoShadowRoot","element","insertBefore","firstChild","nextSibling","appendChild","flushCachedElements","forEach","startObservingForPortal","observer","MutationObserver","mutations","length","mutation","addedNodes","addedNode","nodeType","Node","ELEMENT_NODE","mutationNode","portalNode","tagName","getAttribute","checkShadowRoot","disconnect","setTimeout","observe","body","childList","subtree","insertAtTop","setAttribute","push","module","exports"],"mappings":"AAAA,aAAa,GACb;;;CAGC,GAED,oEAAoE;;AACpE,IAAI,OAAOA,WAAW,aAAa;IACjCA,OAAOC,yBAAyB,GAAGD,OAAOC,yBAAyB,IAAI;QACrEC,iBAAiB,EAAE;QACnBC,aAAa;QACbC,qBAAqB;QACrBC,kBAAkB;IACpB;AACF;AAEA;;CAEC,GACD,SAASC;IACP,MAAMC,QAAQP,OAAOC,yBAAyB;IAE9C,yCAAyC;IACzC,IAAIM,MAAMF,gBAAgB,EAAE;QAC1B,OAAOE,MAAMF,gBAAgB;IAC/B;IAEA,8CAA8C;IAC9C,MAAMG,SAASC,SAASC,aAAa,CAAC;IACtC,MAAMC,aAAaH,CAAAA,0BAAAA,OAAQG,UAAU,KAAI;IAEzC,IAAIA,YAAY;QACdJ,MAAMF,gBAAgB,GAAGM;IAC3B;IAEA,OAAOA;AACT;AAEA;;;CAGC,GACD,SAASC,4BAA4BC,OAAO,EAAEF,UAAU;IACtD,MAAMJ,QAAQP,OAAOC,yBAAyB;IAE9C,IAAI,CAACM,MAAMH,mBAAmB,EAAE;QAC9BO,WAAWG,YAAY,CAACD,SAASF,WAAWI,UAAU;IACxD,OAAO,IAAIR,MAAMH,mBAAmB,CAACY,WAAW,EAAE;QAChDL,WAAWG,YAAY,CAACD,SAASN,MAAMH,mBAAmB,CAACY,WAAW;IACxE,OAAO;QACLL,WAAWM,WAAW,CAACJ;IACzB;IAEAN,MAAMH,mBAAmB,GAAGS;AAC9B;AAEA,SAASK;IACP,MAAMX,QAAQP,OAAOC,yBAAyB;IAC9C,MAAMU,aAAaL;IAEnB,IAAI,CAACK,YAAY;QACf;IACF;IAEAJ,MAAML,eAAe,CAACiB,OAAO,CAAC,CAACN;QAC7BD,4BAA4BC,SAASF;IACvC;IACAJ,MAAML,eAAe,GAAG,EAAE;AAC5B;AAEA,SAASkB;IACP,MAAMb,QAAQP,OAAOC,yBAAyB;IAE9C,IAAIM,MAAMJ,WAAW,EAAE;QACrB;IACF;IACAI,MAAMJ,WAAW,GAAG;IAEpB,2CAA2C;IAC3C,MAAMQ,aAAaL,gBAAgB,8BAA8B;;IACjE,IAAIK,YAAY;QACdO;QACA;IACF;IAEA,0DAA0D;IAC1D,MAAMG,WAAW,IAAIC,iBAAiB,CAACC;QACrC,IAAIA,UAAUC,MAAM,KAAK,GAAG;YAC1B;QACF;QAEA,0CAA0C;QAC1C,KAAK,MAAMC,YAAYF,UAAW;YAChC,IAAIE,SAASC,UAAU,CAACF,MAAM,KAAK,GAAG;YAEtC,KAAK,MAAMG,aAAaF,SAASC,UAAU,CAAE;gBAC3C,IAAIC,UAAUC,QAAQ,KAAKC,KAAKC,YAAY,EAAE;gBAE9C,MAAMC,eAAeJ;gBAErB,IAAIK,aAAa;gBACjB,IACE,qEAAqE;gBACrED,aAAaE,OAAO,KAAK,YACzBF,aAAaG,YAAY,CAAC,4BAC1B;oBACAF,aAAaD,aAAahB,UAAU;gBACtC,OAAO,IACL,qCAAqC;gBACrCgB,aAAaE,OAAO,KAAK,iBACzB;oBACAD,aAAaD;gBACf;gBAEA,IAAIC,YAAY;oBACd,sCAAsC;oBACtC,MAAMG,kBAAkB;wBACtB,IAAI7B,iBAAiB;4BACnBY;4BACAG,SAASe,UAAU;4BACnB7B,MAAMJ,WAAW,GAAG;wBACtB,OAAO;4BACL,gCAAgC;4BAChCkC,WAAWF,iBAAiB;wBAC9B;oBACF;oBACAA;oBACA,QAAO,mCAAmC;gBAC5C;YACF;QACF;IACF;IAEAd,SAASiB,OAAO,CAAC7B,SAAS8B,IAAI,EAAE;QAC9BC,WAAW;QACXC,SAAS;IACX;AACF;AAEA;;CAEC,GACD,SAASC,YAAY7B,OAAO;IAC1B,gDAAgD;IAChDA,QAAQ8B,YAAY,CAAC,8BAA8B;IAEnD,MAAMhC,aAAaL;IACnB,IAAIK,YAAY;QACd,4CAA4C;QAC5CC,4BAA4BC,SAASF;IACvC,OAAO;QACL,+CAA+C;QAC/C,MAAMJ,QAAQP,OAAOC,yBAAyB;QAC9CM,MAAML,eAAe,CAAC0C,IAAI,CAAC/B;QAE3B,0DAA0D;QAC1DO;IACF;AACF;AAEAyB,OAAOC,OAAO,GAAGJ","ignoreList":[0]}
@@ -1711,7 +1711,7 @@ async function getBaseWebpackConfig(dir, { buildId, encryptionKey, config, compi
1711
1711
  isClient && new _copyfileplugin.CopyFilePlugin({
1712
1712
  // file path to build output of `@next/polyfill-nomodule`
1713
1713
  filePath: require.resolve('./polyfills/polyfill-nomodule'),
1714
- cacheKey: "15.5.3",
1714
+ cacheKey: "15.5.4",
1715
1715
  name: `static/chunks/polyfills${dev ? '' : '-[hash]'}.js`,
1716
1716
  minimize: false,
1717
1717
  info: {
@@ -1889,7 +1889,7 @@ async function getBaseWebpackConfig(dir, { buildId, encryptionKey, config, compi
1889
1889
  // - Next.js location on disk (some loaders use absolute paths and some resolve options depend on absolute paths)
1890
1890
  // - Next.js version
1891
1891
  // - next.config.js keys that affect compilation
1892
- version: `${__dirname}|${"15.5.3"}|${configVars}`,
1892
+ version: `${__dirname}|${"15.5.4"}|${configVars}`,
1893
1893
  cacheDirectory: _path.default.join(distDir, 'cache', 'webpack'),
1894
1894
  // For production builds, it's more efficient to compress all cache files together instead of compression each one individually.
1895
1895
  // So we disable compression here and allow the build runner to take care of compressing the cache as a whole.
@@ -14,7 +14,7 @@ Object.defineProperty(exports, "appBootstrap", {
14
14
  }
15
15
  });
16
16
  const _setattributesfromprops = require("./set-attributes-from-props");
17
- const version = "15.5.3";
17
+ const version = "15.5.4";
18
18
  window.next = {
19
19
  version,
20
20
  appDir: true
@@ -61,7 +61,7 @@ const _hooksclientcontextsharedruntime = require("../shared/lib/hooks-client-con
61
61
  const _onrecoverableerror = require("./react-client-callbacks/on-recoverable-error");
62
62
  const _tracer = /*#__PURE__*/ _interop_require_default._(require("./tracing/tracer"));
63
63
  const _isnextroutererror = require("./components/is-next-router-error");
64
- const version = "15.5.3";
64
+ const version = "15.5.4";
65
65
  let router;
66
66
  const emitter = (0, _mitt.default)();
67
67
  const looseToArray = (input)=>[].slice.call(input);