next 13.4.13-canary.8 → 13.4.13

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 (217) hide show
  1. package/dist/bin/next +2 -2
  2. package/dist/bin/next.map +1 -1
  3. package/dist/build/analysis/get-page-static-info.js +17 -4
  4. package/dist/build/analysis/get-page-static-info.js.map +1 -1
  5. package/dist/build/index.js +8 -3
  6. package/dist/build/index.js.map +1 -1
  7. package/dist/build/swc/index.d.ts +5 -1
  8. package/dist/build/swc/index.js +6 -4
  9. package/dist/build/swc/index.js.map +1 -1
  10. package/dist/build/swc/options.js +6 -3
  11. package/dist/build/swc/options.js.map +1 -1
  12. package/dist/build/webpack/loaders/next-route-loader/templates/app-page.d.ts +1 -2
  13. package/dist/build/webpack/loaders/next-route-loader/templates/app-page.js +42 -2
  14. package/dist/build/webpack/loaders/next-route-loader/templates/app-page.js.map +1 -1
  15. package/dist/build/webpack/loaders/next-route-loader/templates/app-route.d.ts +1 -2
  16. package/dist/build/webpack/loaders/next-route-loader/templates/app-route.js +3 -2
  17. package/dist/build/webpack/loaders/next-route-loader/templates/app-route.js.map +1 -1
  18. package/dist/build/webpack/loaders/next-route-loader/templates/pages-api.d.ts +1 -2
  19. package/dist/build/webpack/loaders/next-route-loader/templates/pages-api.js +4 -2
  20. package/dist/build/webpack/loaders/next-route-loader/templates/pages-api.js.map +1 -1
  21. package/dist/build/webpack/loaders/next-route-loader/templates/pages.d.ts +1 -2
  22. package/dist/build/webpack/loaders/next-route-loader/templates/pages.js +4 -2
  23. package/dist/build/webpack/loaders/next-route-loader/templates/pages.js.map +1 -1
  24. package/dist/build/webpack/plugins/middleware-plugin.js +3 -0
  25. package/dist/build/webpack/plugins/middleware-plugin.js.map +1 -1
  26. package/dist/build/webpack-config.js +17 -3
  27. package/dist/build/webpack-config.js.map +1 -1
  28. package/dist/cli/next-build.js +1 -1
  29. package/dist/cli/next-build.js.map +1 -1
  30. package/dist/cli/next-info.d.ts +5 -0
  31. package/dist/cli/next-info.js +392 -20
  32. package/dist/cli/next-info.js.map +1 -1
  33. package/dist/client/app-bootstrap.js +1 -1
  34. package/dist/client/components/app-router.js +6 -3
  35. package/dist/client/components/app-router.js.map +1 -1
  36. package/dist/client/index.js +1 -1
  37. package/dist/client/legacy/image.js.map +1 -1
  38. package/dist/client/remove-base-path.js +2 -0
  39. package/dist/client/remove-base-path.js.map +1 -1
  40. package/dist/client/route-loader.d.ts +1 -0
  41. package/dist/client/route-loader.js.map +1 -1
  42. package/dist/client/webpack.js +1 -0
  43. package/dist/client/webpack.js.map +1 -1
  44. package/dist/compiled/@next/font/dist/google/font-data.json +465 -45
  45. package/dist/compiled/@next/font/dist/google/index.d.ts +311 -47
  46. package/dist/compiled/babel-packages/packages-bundle.js +2 -2
  47. package/dist/compiled/micromatch/index.js +4 -4
  48. package/dist/compiled/minimal-next-server/next-server.js +1 -1
  49. package/dist/compiled/minimal-next-server/next-server.js.cache +0 -0
  50. package/dist/compiled/sass-loader/cjs.js +1 -1
  51. package/dist/compiled/webpack/bundle5.js +1 -1
  52. package/dist/esm/build/analysis/get-page-static-info.js +17 -4
  53. package/dist/esm/build/analysis/get-page-static-info.js.map +1 -1
  54. package/dist/esm/build/index.js +9 -4
  55. package/dist/esm/build/index.js.map +1 -1
  56. package/dist/esm/build/swc/index.js +2 -2
  57. package/dist/esm/build/swc/index.js.map +1 -1
  58. package/dist/esm/build/swc/options.js +6 -3
  59. package/dist/esm/build/swc/options.js.map +1 -1
  60. package/dist/esm/build/webpack/loaders/next-route-loader/templates/app-page.js +3 -1
  61. package/dist/esm/build/webpack/loaders/next-route-loader/templates/app-page.js.map +1 -1
  62. package/dist/esm/build/webpack/loaders/next-route-loader/templates/app-route.js +3 -1
  63. package/dist/esm/build/webpack/loaders/next-route-loader/templates/app-route.js.map +1 -1
  64. package/dist/esm/build/webpack/loaders/next-route-loader/templates/pages-api.js +3 -1
  65. package/dist/esm/build/webpack/loaders/next-route-loader/templates/pages-api.js.map +1 -1
  66. package/dist/esm/build/webpack/loaders/next-route-loader/templates/pages.js +3 -1
  67. package/dist/esm/build/webpack/loaders/next-route-loader/templates/pages.js.map +1 -1
  68. package/dist/esm/build/webpack/plugins/middleware-plugin.js +4 -1
  69. package/dist/esm/build/webpack/plugins/middleware-plugin.js.map +1 -1
  70. package/dist/esm/build/webpack-config.js +17 -3
  71. package/dist/esm/build/webpack-config.js.map +1 -1
  72. package/dist/esm/client/app-bootstrap.js +1 -1
  73. package/dist/esm/client/components/app-router.js +6 -3
  74. package/dist/esm/client/components/app-router.js.map +1 -1
  75. package/dist/esm/client/index.js +1 -1
  76. package/dist/esm/client/legacy/image.js.map +1 -1
  77. package/dist/esm/client/remove-base-path.js +2 -0
  78. package/dist/esm/client/remove-base-path.js.map +1 -1
  79. package/dist/esm/client/route-loader.js.map +1 -1
  80. package/dist/esm/client/webpack.js +1 -0
  81. package/dist/esm/client/webpack.js.map +1 -1
  82. package/dist/esm/lib/format-server-error.js +5 -2
  83. package/dist/esm/lib/format-server-error.js.map +1 -1
  84. package/dist/esm/lib/metadata/metadata.js +85 -56
  85. package/dist/esm/lib/metadata/metadata.js.map +1 -1
  86. package/dist/esm/lib/metadata/types/metadata-interface.js.map +1 -1
  87. package/dist/esm/server/app-render/app-render.js +89 -68
  88. package/dist/esm/server/app-render/app-render.js.map +1 -1
  89. package/dist/esm/server/async-storage/request-async-storage-wrapper.js +8 -3
  90. package/dist/esm/server/async-storage/request-async-storage-wrapper.js.map +1 -1
  91. package/dist/esm/server/base-server.js +17 -23
  92. package/dist/esm/server/base-server.js.map +1 -1
  93. package/dist/esm/server/config-utils.js +0 -4
  94. package/dist/esm/server/config-utils.js.map +1 -1
  95. package/dist/esm/server/config.js +16 -0
  96. package/dist/esm/server/config.js.map +1 -1
  97. package/dist/esm/server/dev/hot-reloader.js +1 -1
  98. package/dist/esm/server/dev/next-dev-server.js +1 -3
  99. package/dist/esm/server/dev/next-dev-server.js.map +1 -1
  100. package/dist/esm/server/future/route-matches/route-match.js +1 -25
  101. package/dist/esm/server/future/route-matches/route-match.js.map +1 -1
  102. package/dist/esm/server/future/route-modules/app-page/module.js +0 -3
  103. package/dist/esm/server/future/route-modules/app-page/module.js.map +1 -1
  104. package/dist/esm/server/future/route-modules/app-route/helpers/parsed-url-query-to-params.js +15 -0
  105. package/dist/esm/server/future/route-modules/app-route/helpers/parsed-url-query-to-params.js.map +1 -0
  106. package/dist/esm/server/future/route-modules/app-route/module.js +2 -1
  107. package/dist/esm/server/future/route-modules/app-route/module.js.map +1 -1
  108. package/dist/esm/server/future/route-modules/pages/module.js +0 -3
  109. package/dist/esm/server/future/route-modules/pages/module.js.map +1 -1
  110. package/dist/esm/server/future/route-modules/pages-api/module.js +0 -3
  111. package/dist/esm/server/future/route-modules/pages-api/module.js.map +1 -1
  112. package/dist/esm/server/future/route-modules/route-module.js.map +1 -1
  113. package/dist/esm/server/lib/incremental-cache/file-system-cache.js +4 -1
  114. package/dist/esm/server/lib/incremental-cache/file-system-cache.js.map +1 -1
  115. package/dist/esm/server/lib/patch-fetch.js +1 -1
  116. package/dist/esm/server/lib/patch-fetch.js.map +1 -1
  117. package/dist/esm/server/lib/router-server.js +4 -1
  118. package/dist/esm/server/lib/router-server.js.map +1 -1
  119. package/dist/esm/server/lib/router-utils/setup-dev.js +1 -1
  120. package/dist/esm/server/lib/router-utils/setup-dev.js.map +1 -1
  121. package/dist/esm/server/lib/start-server.js +2 -1
  122. package/dist/esm/server/lib/start-server.js.map +1 -1
  123. package/dist/esm/server/next-server.js +14 -1
  124. package/dist/esm/server/next-server.js.map +1 -1
  125. package/dist/esm/server/next.js +5 -5
  126. package/dist/esm/server/next.js.map +1 -1
  127. package/dist/esm/server/require-hook.js +3 -2
  128. package/dist/esm/server/require-hook.js.map +1 -1
  129. package/dist/esm/server/typescript/constant.js +3 -1
  130. package/dist/esm/server/typescript/constant.js.map +1 -1
  131. package/dist/esm/server/web/adapter.js +27 -1
  132. package/dist/esm/server/web/adapter.js.map +1 -1
  133. package/dist/esm/server/web/edge-route-module-wrapper.js +3 -2
  134. package/dist/esm/server/web/edge-route-module-wrapper.js.map +1 -1
  135. package/dist/esm/server/web/spec-extension/adapters/request-cookies.js +3 -3
  136. package/dist/esm/server/web/spec-extension/adapters/request-cookies.js.map +1 -1
  137. package/dist/esm/shared/lib/fnv1a.js +1 -1
  138. package/dist/esm/shared/lib/fnv1a.js.map +1 -1
  139. package/dist/lib/format-server-error.js +5 -2
  140. package/dist/lib/format-server-error.js.map +1 -1
  141. package/dist/lib/metadata/metadata.d.ts +2 -2
  142. package/dist/lib/metadata/metadata.js +81 -57
  143. package/dist/lib/metadata/metadata.js.map +1 -1
  144. package/dist/server/app-render/app-render.js +88 -67
  145. package/dist/server/app-render/app-render.js.map +1 -1
  146. package/dist/server/app-render/types.d.ts +1 -0
  147. package/dist/server/async-storage/request-async-storage-wrapper.js +8 -3
  148. package/dist/server/async-storage/request-async-storage-wrapper.js.map +1 -1
  149. package/dist/server/base-server.d.ts +0 -3
  150. package/dist/server/base-server.js +16 -22
  151. package/dist/server/base-server.js.map +1 -1
  152. package/dist/server/config-shared.d.ts +2 -2
  153. package/dist/server/config-utils.js +0 -4
  154. package/dist/server/config-utils.js.map +1 -1
  155. package/dist/server/config.js +16 -0
  156. package/dist/server/config.js.map +1 -1
  157. package/dist/server/dev/hot-reloader.js +1 -1
  158. package/dist/server/dev/next-dev-server.d.ts +0 -1
  159. package/dist/server/dev/next-dev-server.js +1 -3
  160. package/dist/server/dev/next-dev-server.js.map +1 -1
  161. package/dist/server/future/route-matches/route-match.d.ts +0 -20
  162. package/dist/server/future/route-matches/route-match.js +0 -29
  163. package/dist/server/future/route-matches/route-match.js.map +1 -1
  164. package/dist/server/future/route-modules/app-page/module.d.ts +0 -1
  165. package/dist/server/future/route-modules/app-page/module.js +0 -3
  166. package/dist/server/future/route-modules/app-page/module.js.map +1 -1
  167. package/dist/server/future/route-modules/app-route/helpers/parsed-url-query-to-params.d.ts +9 -0
  168. package/dist/server/future/route-modules/app-route/helpers/parsed-url-query-to-params.js +20 -0
  169. package/dist/server/future/route-modules/app-route/helpers/parsed-url-query-to-params.js.map +1 -0
  170. package/dist/server/future/route-modules/app-route/module.js +2 -1
  171. package/dist/server/future/route-modules/app-route/module.js.map +1 -1
  172. package/dist/server/future/route-modules/pages/module.d.ts +0 -1
  173. package/dist/server/future/route-modules/pages/module.js +0 -3
  174. package/dist/server/future/route-modules/pages/module.js.map +1 -1
  175. package/dist/server/future/route-modules/pages-api/module.d.ts +0 -1
  176. package/dist/server/future/route-modules/pages-api/module.js +0 -3
  177. package/dist/server/future/route-modules/pages-api/module.js.map +1 -1
  178. package/dist/server/future/route-modules/route-module.d.ts +1 -6
  179. package/dist/server/future/route-modules/route-module.js.map +1 -1
  180. package/dist/server/lib/incremental-cache/file-system-cache.js +4 -1
  181. package/dist/server/lib/incremental-cache/file-system-cache.js.map +1 -1
  182. package/dist/server/lib/patch-fetch.js +1 -1
  183. package/dist/server/lib/patch-fetch.js.map +1 -1
  184. package/dist/server/lib/router-server.js +4 -1
  185. package/dist/server/lib/router-server.js.map +1 -1
  186. package/dist/server/lib/router-utils/setup-dev.js +1 -1
  187. package/dist/server/lib/router-utils/setup-dev.js.map +1 -1
  188. package/dist/server/lib/start-server.js +2 -1
  189. package/dist/server/lib/start-server.js.map +1 -1
  190. package/dist/server/next-server.js +14 -1
  191. package/dist/server/next-server.js.map +1 -1
  192. package/dist/server/next.js +5 -5
  193. package/dist/server/next.js.map +1 -1
  194. package/dist/server/require-hook.d.ts +1 -1
  195. package/dist/server/require-hook.js +2 -2
  196. package/dist/server/require-hook.js.map +1 -1
  197. package/dist/server/typescript/constant.js +3 -1
  198. package/dist/server/typescript/constant.js.map +1 -1
  199. package/dist/server/web/adapter.js +27 -1
  200. package/dist/server/web/adapter.js.map +1 -1
  201. package/dist/server/web/edge-route-module-wrapper.d.ts +2 -3
  202. package/dist/server/web/edge-route-module-wrapper.js +3 -2
  203. package/dist/server/web/edge-route-module-wrapper.js.map +1 -1
  204. package/dist/server/web/spec-extension/adapters/request-cookies.d.ts +1 -4
  205. package/dist/server/web/spec-extension/adapters/request-cookies.js +3 -3
  206. package/dist/server/web/spec-extension/adapters/request-cookies.js.map +1 -1
  207. package/dist/shared/lib/fnv1a.js +1 -1
  208. package/dist/shared/lib/fnv1a.js.map +1 -1
  209. package/dist/telemetry/anonymous-meta.js +1 -1
  210. package/dist/telemetry/events/session-stopped.js +2 -2
  211. package/dist/telemetry/events/version.js +2 -2
  212. package/package.json +16 -22
  213. package/dist/esm/server/future/route-handler-managers/route-handler-manager.js +0 -18
  214. package/dist/esm/server/future/route-handler-managers/route-handler-manager.js.map +0 -1
  215. package/dist/server/future/route-handler-managers/route-handler-manager.d.ts +0 -13
  216. package/dist/server/future/route-handler-managers/route-handler-manager.js +0 -28
  217. package/dist/server/future/route-handler-managers/route-handler-manager.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client/route-loader.ts"],"names":["getAssetPathFromRoute","__unsafeCreateTrustedScriptURL","requestIdleCallback","MS_MAX_IDLE_DELAY","withFuture","key","map","generator","entry","get","future","Promise","resolve","resolver","prom","set","then","value","catch","err","delete","ASSET_LOAD_ERROR","Symbol","markAssetError","Object","defineProperty","isAssetError","hasPrefetch","link","document","createElement","window","MSInputMethodContext","documentMode","relList","supports","canPrefetch","getAssetQueryString","process","env","NEXT_DEPLOYMENT_ID","prefetchViaDom","href","as","reject","selector","querySelector","rel","crossOrigin","__NEXT_CROSS_ORIGIN","onload","onerror","Error","head","appendChild","appendScript","src","script","body","devBuildPromise","resolvePromiseWithTimeout","p","ms","cancelled","r","NODE_ENV","setTimeout","getClientBuildManifest","self","__BUILD_MANIFEST","onBuildManifest","cb","__BUILD_MANIFEST_CB","getFilesForRoute","assetPrefix","route","scriptUrl","encodeURI","scripts","css","manifest","allFiles","filter","v","endsWith","createRouteLoader","entrypoints","Map","loadedScripts","styleSheets","routes","maybeExecuteScript","toString","fetchStyleSheet","fetch","res","ok","text","content","whenEntrypoint","onEntrypoint","execute","exports","component","default","error","undefined","input","old","loadRoute","prefetch","devBuildPromiseResolve","all","has","entrypoint","styles","assign","finally","cn","navigator","connection","saveData","test","effectiveType","output"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/client/route-loader.ts"],"names":["getAssetPathFromRoute","__unsafeCreateTrustedScriptURL","requestIdleCallback","MS_MAX_IDLE_DELAY","withFuture","key","map","generator","entry","get","future","Promise","resolve","resolver","prom","set","then","value","catch","err","delete","ASSET_LOAD_ERROR","Symbol","markAssetError","Object","defineProperty","isAssetError","hasPrefetch","link","document","createElement","window","MSInputMethodContext","documentMode","relList","supports","canPrefetch","getAssetQueryString","process","env","NEXT_DEPLOYMENT_ID","prefetchViaDom","href","as","reject","selector","querySelector","rel","crossOrigin","__NEXT_CROSS_ORIGIN","onload","onerror","Error","head","appendChild","appendScript","src","script","body","devBuildPromise","resolvePromiseWithTimeout","p","ms","cancelled","r","NODE_ENV","setTimeout","getClientBuildManifest","self","__BUILD_MANIFEST","onBuildManifest","cb","__BUILD_MANIFEST_CB","getFilesForRoute","assetPrefix","route","scriptUrl","encodeURI","scripts","css","manifest","allFiles","filter","v","endsWith","createRouteLoader","entrypoints","Map","loadedScripts","styleSheets","routes","maybeExecuteScript","toString","fetchStyleSheet","fetch","res","ok","text","content","whenEntrypoint","onEntrypoint","execute","exports","component","default","error","undefined","input","old","loadRoute","prefetch","devBuildPromiseResolve","all","has","entrypoint","styles","assign","finally","cn","navigator","connection","saveData","test","effectiveType","output"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1
2
  const addChunkSuffix = (getOriginalChunk)=>(chunkId)=>{
2
3
  return getOriginalChunk(chunkId) + ("" + (process.env.NEXT_DEPLOYMENT_ID ? "?dpl=" + process.env.NEXT_DEPLOYMENT_ID : ""));
3
4
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client/webpack.ts"],"names":["addChunkSuffix","getOriginalChunk","chunkId","process","env","NEXT_DEPLOYMENT_ID","getChunkScriptFilename","__webpack_require__","u","getChunkCssFilename","k","getMiniCssFilename","miniCssF","self","__next_require__","__next_set_public_path__","path","__webpack_public_path__"],"mappings":"AAGA,MAAMA,iBACJ,CAACC,mBAA+C,CAACC,UAAiB;QAChE,OACED,iBAAiBC,WACjB,CAAA,AAAC,KACCC,CAAAA,QAAQC,GAAG,CAACC,kBAAkB,GAC1B,AAAC,UAAOF,QAAQC,GAAG,CAACC,kBAAkB,GACtC,EAAE,AAAD,CACN;IAEL;AAEF,6DAA6D;AAC7D,MAAMC,yBAAyBC,oBAAoBC,CAAC;AACpD,oCAAoC;AACpCD,oBAAoBC,CAAC,GAAGR,eAAeM;AAEvC,oCAAoC;AACpC,MAAMG,sBAAsBF,oBAAoBG,CAAC;AACjD,oCAAoC;AACpCH,oBAAoBG,CAAC,GAAGV,eAAeS;AAEvC,oCAAoC;AACpC,MAAME,qBAAqBJ,oBAAoBK,QAAQ;AACvD,oCAAoC;AACpCL,oBAAoBK,QAAQ,GAAGZ,eAAeW;AAI5CE,KAAaC,gBAAgB,GAAGP;AAChCM,KAAaE,wBAAwB,GAAG,CAACC,OAAiB;IAC1D,6DAA6D;IAC7DC,0BAA0BD;AAC5B;AApCA,WAsCS"}
1
+ {"version":3,"sources":["../../src/client/webpack.ts"],"names":["addChunkSuffix","getOriginalChunk","chunkId","process","env","NEXT_DEPLOYMENT_ID","getChunkScriptFilename","__webpack_require__","u","getChunkCssFilename","k","getMiniCssFilename","miniCssF","self","__next_require__","__next_set_public_path__","path","__webpack_public_path__"],"mappings":"AAAA,6DAA6D;AAK7D,MAAMA,iBACJ,CAACC,mBAA+C,CAACC,UAAiB;QAChE,OACED,iBAAiBC,WACjB,CAAA,AAAC,KACCC,CAAAA,QAAQC,GAAG,CAACC,kBAAkB,GAC1B,AAAC,UAAOF,QAAQC,GAAG,CAACC,kBAAkB,GACtC,EAAE,AAAD,CACN;IAEL;AAEF,6DAA6D;AAC7D,MAAMC,yBAAyBC,oBAAoBC,CAAC;AACpD,oCAAoC;AACpCD,oBAAoBC,CAAC,GAAGR,eAAeM;AAEvC,oCAAoC;AACpC,MAAMG,sBAAsBF,oBAAoBG,CAAC;AACjD,oCAAoC;AACpCH,oBAAoBG,CAAC,GAAGV,eAAeS;AAEvC,oCAAoC;AACpC,MAAME,qBAAqBJ,oBAAoBK,QAAQ;AACvD,oCAAoC;AACpCL,oBAAoBK,QAAQ,GAAGZ,eAAeW;AAI5CE,KAAaC,gBAAgB,GAAGP;AAChCM,KAAaE,wBAAwB,GAAG,CAACC,OAAiB;IAC1D,6DAA6D;IAC7DC,0BAA0BD;AAC5B;AArCA,WAuCS"}
@@ -8,7 +8,9 @@ const invalidServerComponentReactHooks = [
8
8
  "useRef",
9
9
  "useState",
10
10
  "useSyncExternalStore",
11
- "useTransition"
11
+ "useTransition",
12
+ "experimental_useOptimistic",
13
+ "useOptimistic"
12
14
  ];
13
15
  function setMessage(error, message) {
14
16
  error.message = message;
@@ -34,7 +36,8 @@ ${addedMessage}`);
34
36
  return;
35
37
  }
36
38
  for (const clientHook of invalidServerComponentReactHooks){
37
- if (error.message.includes(`${clientHook} is not a function`)) {
39
+ const regex = new RegExp(`\\b${clientHook}\\b.*is not a function`);
40
+ if (regex.test(error.message)) {
38
41
  setMessage(error, `${clientHook} only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component`);
39
42
  return;
40
43
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/format-server-error.ts"],"names":["invalidServerComponentReactHooks","setMessage","error","message","stack","lines","split","join","formatServerError","includes","addedMessage","clientHook"],"mappings":"AAAA,MAAMA,mCAAmC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,SAASC,WAAWC,KAAY,EAAEC,OAAe,EAAQ;IACvDD,MAAMC,OAAO,GAAGA;IAChB,IAAID,MAAME,KAAK,EAAE;QACf,MAAMC,QAAQH,MAAME,KAAK,CAACE,KAAK,CAAC;QAChCD,KAAK,CAAC,EAAE,GAAGF;QACXD,MAAME,KAAK,GAAGC,MAAME,IAAI,CAAC;IAC3B,CAAC;AACH;AAEA,OAAO,SAASC,kBAAkBN,KAAY,EAAQ;IACpD,IAAI,OAAOA,CAAAA,gBAAAA,KAAAA,IAAAA,MAAOC,OAAO,AAAD,MAAM,UAAU;IAExC,IACED,MAAMC,OAAO,CAACM,QAAQ,CACpB,+DAEF;QACA,MAAMC,eACJ;QAEF,qEAAqE;QACrE,IAAIR,MAAMC,OAAO,CAACM,QAAQ,CAACC,eAAe;QAE1CT,WACEC,OACA,CAAC,EAAEA,MAAMC,OAAO,CAAC;;AAEvB,EAAEO,aAAa,CAAC;QAEZ;IACF,CAAC;IAED,IAAIR,MAAMC,OAAO,CAACM,QAAQ,CAAC,oCAAoC;QAC7DR,WACEC,OACA;QAEF;IACF,CAAC;IAED,KAAK,MAAMS,cAAcX,iCAAkC;QACzD,IAAIE,MAAMC,OAAO,CAACM,QAAQ,CAAC,CAAC,EAAEE,WAAW,kBAAkB,CAAC,GAAG;YAC7DV,WACEC,OACA,CAAC,EAAES,WAAW,oLAAoL,CAAC;YAErM;QACF,CAAC;IACH;AACF,CAAC"}
1
+ {"version":3,"sources":["../../src/lib/format-server-error.ts"],"names":["invalidServerComponentReactHooks","setMessage","error","message","stack","lines","split","join","formatServerError","includes","addedMessage","clientHook","regex","RegExp","test"],"mappings":"AAAA,MAAMA,mCAAmC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,SAASC,WAAWC,KAAY,EAAEC,OAAe,EAAQ;IACvDD,MAAMC,OAAO,GAAGA;IAChB,IAAID,MAAME,KAAK,EAAE;QACf,MAAMC,QAAQH,MAAME,KAAK,CAACE,KAAK,CAAC;QAChCD,KAAK,CAAC,EAAE,GAAGF;QACXD,MAAME,KAAK,GAAGC,MAAME,IAAI,CAAC;IAC3B,CAAC;AACH;AAEA,OAAO,SAASC,kBAAkBN,KAAY,EAAQ;IACpD,IAAI,OAAOA,CAAAA,gBAAAA,KAAAA,IAAAA,MAAOC,OAAO,AAAD,MAAM,UAAU;IAExC,IACED,MAAMC,OAAO,CAACM,QAAQ,CACpB,+DAEF;QACA,MAAMC,eACJ;QAEF,qEAAqE;QACrE,IAAIR,MAAMC,OAAO,CAACM,QAAQ,CAACC,eAAe;QAE1CT,WACEC,OACA,CAAC,EAAEA,MAAMC,OAAO,CAAC;;AAEvB,EAAEO,aAAa,CAAC;QAEZ;IACF,CAAC;IAED,IAAIR,MAAMC,OAAO,CAACM,QAAQ,CAAC,oCAAoC;QAC7DR,WACEC,OACA;QAEF;IACF,CAAC;IAED,KAAK,MAAMS,cAAcX,iCAAkC;QACzD,MAAMY,QAAQ,IAAIC,OAAO,CAAC,GAAG,EAAEF,WAAW,sBAAsB,CAAC;QACjE,IAAIC,MAAME,IAAI,CAACZ,MAAMC,OAAO,GAAG;YAC7BF,WACEC,OACA,CAAC,EAAES,WAAW,oLAAoL,CAAC;YAErM;QACF,CAAC;IACH;AACF,CAAC"}
@@ -6,67 +6,96 @@ import { IconsMetadata } from "./generate/icons";
6
6
  import { accumulateMetadata, resolveMetadata } from "./resolve-metadata";
7
7
  import { MetaFilter } from "./generate/meta";
8
8
  import { createDefaultMetadata } from "./default-metadata";
9
- // Generate the actual React elements from the resolved metadata.
10
- export async function MetadataTree({ tree , pathname , searchParams , getDynamicParamFromSegment , appUsingSizeAdjust , errorType }) {
9
+ // Use a promise to share the status of the metadata resolving,
10
+ // returning two components `MetadataTree` and `MetadataOutlet`
11
+ // `MetadataTree` is the one that will be rendered at first in the content sequence for metadata tags.
12
+ // `MetadataOutlet` is the one that will be rendered under error boundaries for metadata resolving errors.
13
+ // In this way we can let the metadata tags always render successfully,
14
+ // and the error will be caught by the error boundary and trigger fallbacks.
15
+ export function createMetadataComponents({ tree , pathname , searchParams , getDynamicParamFromSegment , appUsingSizeAdjust , errorType }) {
11
16
  const metadataContext = {
12
17
  pathname
13
18
  };
14
- const resolvedMetadata = await resolveMetadata({
15
- tree,
16
- parentParams: {},
17
- metadataItems: [],
18
- searchParams,
19
- getDynamicParamFromSegment,
20
- errorConvention: errorType === "redirect" ? undefined : errorType
19
+ let resolve;
20
+ // Only use promise.resolve here to avoid unhandled rejections
21
+ const metadataErrorResolving = new Promise((res)=>{
22
+ resolve = res;
21
23
  });
22
- let metadata = undefined;
23
- const defaultMetadata = createDefaultMetadata();
24
- // Skip for redirect case as for the temporary redirect case we don't need the metadata on client
25
- if (errorType === "redirect") {
26
- metadata = defaultMetadata;
27
- } else {
28
- metadata = await accumulateMetadata(resolvedMetadata, metadataContext);
24
+ async function MetadataTree() {
25
+ const defaultMetadata = createDefaultMetadata();
26
+ let metadata = defaultMetadata;
27
+ try {
28
+ const resolvedMetadata = await resolveMetadata({
29
+ tree,
30
+ parentParams: {},
31
+ metadataItems: [],
32
+ searchParams,
33
+ getDynamicParamFromSegment,
34
+ errorConvention: errorType === "redirect" ? undefined : errorType
35
+ });
36
+ // Skip for redirect case as for the temporary redirect case we don't need the metadata on client
37
+ if (errorType === "redirect") {
38
+ metadata = defaultMetadata;
39
+ } else {
40
+ metadata = await accumulateMetadata(resolvedMetadata, metadataContext);
41
+ }
42
+ resolve(undefined);
43
+ } catch (error) {
44
+ resolve(error);
45
+ }
46
+ const elements = MetaFilter([
47
+ BasicMetadata({
48
+ metadata
49
+ }),
50
+ AlternatesMetadata({
51
+ alternates: metadata.alternates
52
+ }),
53
+ ItunesMeta({
54
+ itunes: metadata.itunes
55
+ }),
56
+ FormatDetectionMeta({
57
+ formatDetection: metadata.formatDetection
58
+ }),
59
+ VerificationMeta({
60
+ verification: metadata.verification
61
+ }),
62
+ AppleWebAppMeta({
63
+ appleWebApp: metadata.appleWebApp
64
+ }),
65
+ OpenGraphMetadata({
66
+ openGraph: metadata.openGraph
67
+ }),
68
+ TwitterMetadata({
69
+ twitter: metadata.twitter
70
+ }),
71
+ AppLinksMeta({
72
+ appLinks: metadata.appLinks
73
+ }),
74
+ IconsMetadata({
75
+ icons: metadata.icons
76
+ })
77
+ ]);
78
+ if (appUsingSizeAdjust) elements.push(/*#__PURE__*/ React.createElement("meta", {
79
+ name: "next-size-adjust"
80
+ }));
81
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, elements.map((el, index)=>{
82
+ return /*#__PURE__*/ React.cloneElement(el, {
83
+ key: index
84
+ });
85
+ }));
29
86
  }
30
- const elements = MetaFilter([
31
- BasicMetadata({
32
- metadata
33
- }),
34
- AlternatesMetadata({
35
- alternates: metadata.alternates
36
- }),
37
- ItunesMeta({
38
- itunes: metadata.itunes
39
- }),
40
- FormatDetectionMeta({
41
- formatDetection: metadata.formatDetection
42
- }),
43
- VerificationMeta({
44
- verification: metadata.verification
45
- }),
46
- AppleWebAppMeta({
47
- appleWebApp: metadata.appleWebApp
48
- }),
49
- OpenGraphMetadata({
50
- openGraph: metadata.openGraph
51
- }),
52
- TwitterMetadata({
53
- twitter: metadata.twitter
54
- }),
55
- AppLinksMeta({
56
- appLinks: metadata.appLinks
57
- }),
58
- IconsMetadata({
59
- icons: metadata.icons
60
- })
61
- ]);
62
- if (appUsingSizeAdjust) elements.push(/*#__PURE__*/ React.createElement("meta", {
63
- name: "next-size-adjust"
64
- }));
65
- return /*#__PURE__*/ React.createElement(React.Fragment, null, elements.map((el, index)=>{
66
- return /*#__PURE__*/ React.cloneElement(el, {
67
- key: index
68
- });
69
- }));
87
+ async function MetadataOutlet() {
88
+ const error = await metadataErrorResolving;
89
+ if (error) {
90
+ throw error;
91
+ }
92
+ return null;
93
+ }
94
+ // @ts-expect-error async server components
95
+ return [
96
+ MetadataTree,
97
+ MetadataOutlet
98
+ ];
70
99
  }
71
100
 
72
101
  //# sourceMappingURL=metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/metadata/metadata.tsx"],"names":["React","AppleWebAppMeta","FormatDetectionMeta","ItunesMeta","BasicMetadata","VerificationMeta","AlternatesMetadata","OpenGraphMetadata","TwitterMetadata","AppLinksMeta","IconsMetadata","accumulateMetadata","resolveMetadata","MetaFilter","createDefaultMetadata","MetadataTree","tree","pathname","searchParams","getDynamicParamFromSegment","appUsingSizeAdjust","errorType","metadataContext","resolvedMetadata","parentParams","metadataItems","errorConvention","undefined","metadata","defaultMetadata","elements","alternates","itunes","formatDetection","verification","appleWebApp","openGraph","twitter","appLinks","icons","push","meta","name","map","el","index","cloneElement","key"],"mappings":"AAGA,OAAOA,WAAW,QAAO;AACzB,SACEC,eAAe,EACfC,mBAAmB,EACnBC,UAAU,EACVC,aAAa,EACbC,gBAAgB,QACX,mBAAkB;AACzB,SAASC,kBAAkB,QAAQ,uBAAsB;AACzD,SACEC,iBAAiB,EACjBC,eAAe,EACfC,YAAY,QACP,uBAAsB;AAC7B,SAASC,aAAa,QAAQ,mBAAkB;AAChD,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,qBAAoB;AACxE,SAASC,UAAU,QAAQ,kBAAiB;AAE5C,SAASC,qBAAqB,QAAQ,qBAAoB;AAE1D,iEAAiE;AACjE,OAAO,eAAeC,aAAa,EACjCC,KAAI,EACJC,SAAQ,EACRC,aAAY,EACZC,2BAA0B,EAC1BC,mBAAkB,EAClBC,UAAS,EAQV,EAAE;IACD,MAAMC,kBAAkB;QACtBL;IACF;IAEA,MAAMM,mBAAmB,MAAMX,gBAAgB;QAC7CI;QACAQ,cAAc,CAAC;QACfC,eAAe,EAAE;QACjBP;QACAC;QACAO,iBAAiBL,cAAc,aAAaM,YAAYN,SAAS;IACnE;IACA,IAAIO,WAAyCD;IAE7C,MAAME,kBAAkBf;IACxB,iGAAiG;IACjG,IAAIO,cAAc,YAAY;QAC5BO,WAAWC;IACb,OAAO;QACLD,WAAW,MAAMjB,mBAAmBY,kBAAkBD;IACxD,CAAC;IAED,MAAMQ,WAAWjB,WAAW;QAC1BT,cAAc;YAAEwB;QAAS;QACzBtB,mBAAmB;YAAEyB,YAAYH,SAASG,UAAU;QAAC;QACrD5B,WAAW;YAAE6B,QAAQJ,SAASI,MAAM;QAAC;QACrC9B,oBAAoB;YAAE+B,iBAAiBL,SAASK,eAAe;QAAC;QAChE5B,iBAAiB;YAAE6B,cAAcN,SAASM,YAAY;QAAC;QACvDjC,gBAAgB;YAAEkC,aAAaP,SAASO,WAAW;QAAC;QACpD5B,kBAAkB;YAAE6B,WAAWR,SAASQ,SAAS;QAAC;QAClD5B,gBAAgB;YAAE6B,SAAST,SAASS,OAAO;QAAC;QAC5C5B,aAAa;YAAE6B,UAAUV,SAASU,QAAQ;QAAC;QAC3C5B,cAAc;YAAE6B,OAAOX,SAASW,KAAK;QAAC;KACvC;IAED,IAAInB,oBAAoBU,SAASU,IAAI,eAAC,oBAACC;QAAKC,MAAK;;IAEjD,qBACE,0CACGZ,SAASa,GAAG,CAAC,CAACC,IAAIC,QAAU;QAC3B,qBAAO7C,MAAM8C,YAAY,CAACF,IAA0B;YAAEG,KAAKF;QAAM;IACnE;AAGN,CAAC"}
1
+ {"version":3,"sources":["../../../src/lib/metadata/metadata.tsx"],"names":["React","AppleWebAppMeta","FormatDetectionMeta","ItunesMeta","BasicMetadata","VerificationMeta","AlternatesMetadata","OpenGraphMetadata","TwitterMetadata","AppLinksMeta","IconsMetadata","accumulateMetadata","resolveMetadata","MetaFilter","createDefaultMetadata","createMetadataComponents","tree","pathname","searchParams","getDynamicParamFromSegment","appUsingSizeAdjust","errorType","metadataContext","resolve","metadataErrorResolving","Promise","res","MetadataTree","defaultMetadata","metadata","resolvedMetadata","parentParams","metadataItems","errorConvention","undefined","error","elements","alternates","itunes","formatDetection","verification","appleWebApp","openGraph","twitter","appLinks","icons","push","meta","name","map","el","index","cloneElement","key","MetadataOutlet"],"mappings":"AAGA,OAAOA,WAAW,QAAO;AACzB,SACEC,eAAe,EACfC,mBAAmB,EACnBC,UAAU,EACVC,aAAa,EACbC,gBAAgB,QACX,mBAAkB;AACzB,SAASC,kBAAkB,QAAQ,uBAAsB;AACzD,SACEC,iBAAiB,EACjBC,eAAe,EACfC,YAAY,QACP,uBAAsB;AAC7B,SAASC,aAAa,QAAQ,mBAAkB;AAChD,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,qBAAoB;AACxE,SAASC,UAAU,QAAQ,kBAAiB;AAE5C,SAASC,qBAAqB,QAAQ,qBAAoB;AAE1D,+DAA+D;AAC/D,+DAA+D;AAC/D,sGAAsG;AACtG,0GAA0G;AAC1G,uEAAuE;AACvE,4EAA4E;AAC5E,OAAO,SAASC,yBAAyB,EACvCC,KAAI,EACJC,SAAQ,EACRC,aAAY,EACZC,2BAA0B,EAC1BC,mBAAkB,EAClBC,UAAS,EAQV,EAA8C;IAC7C,MAAMC,kBAAkB;QACtBL;IACF;IAEA,IAAIM;IACJ,8DAA8D;IAC9D,MAAMC,yBAAyB,IAAIC,QAA2B,CAACC,MAAQ;QACrEH,UAAUG;IACZ;IAEA,eAAeC,eAAe;QAC5B,MAAMC,kBAAkBd;QACxB,IAAIe,WAAyCD;QAC7C,IAAI;YACF,MAAME,mBAAmB,MAAMlB,gBAAgB;gBAC7CI;gBACAe,cAAc,CAAC;gBACfC,eAAe,EAAE;gBACjBd;gBACAC;gBACAc,iBAAiBZ,cAAc,aAAaa,YAAYb,SAAS;YACnE;YAEA,iGAAiG;YACjG,IAAIA,cAAc,YAAY;gBAC5BQ,WAAWD;YACb,OAAO;gBACLC,WAAW,MAAMlB,mBAAmBmB,kBAAkBR;YACxD,CAAC;YACDC,QAAQW;QACV,EAAE,OAAOC,OAAY;YACnBZ,QAAQY;QACV;QAEA,MAAMC,WAAWvB,WAAW;YAC1BT,cAAc;gBAAEyB;YAAS;YACzBvB,mBAAmB;gBAAE+B,YAAYR,SAASQ,UAAU;YAAC;YACrDlC,WAAW;gBAAEmC,QAAQT,SAASS,MAAM;YAAC;YACrCpC,oBAAoB;gBAAEqC,iBAAiBV,SAASU,eAAe;YAAC;YAChElC,iBAAiB;gBAAEmC,cAAcX,SAASW,YAAY;YAAC;YACvDvC,gBAAgB;gBAAEwC,aAAaZ,SAASY,WAAW;YAAC;YACpDlC,kBAAkB;gBAAEmC,WAAWb,SAASa,SAAS;YAAC;YAClDlC,gBAAgB;gBAAEmC,SAASd,SAASc,OAAO;YAAC;YAC5ClC,aAAa;gBAAEmC,UAAUf,SAASe,QAAQ;YAAC;YAC3ClC,cAAc;gBAAEmC,OAAOhB,SAASgB,KAAK;YAAC;SACvC;QAED,IAAIzB,oBAAoBgB,SAASU,IAAI,eAAC,oBAACC;YAAKC,MAAK;;QAEjD,qBACE,0CACGZ,SAASa,GAAG,CAAC,CAACC,IAAIC,QAAU;YAC3B,qBAAOnD,MAAMoD,YAAY,CAACF,IAA0B;gBAAEG,KAAKF;YAAM;QACnE;IAGN;IAEA,eAAeG,iBAAiB;QAC9B,MAAMnB,QAAQ,MAAMX;QACpB,IAAIW,OAAO;YACT,MAAMA,MAAK;QACb,CAAC;QACD,OAAO,IAAI;IACb;IAEA,2CAA2C;IAC3C,OAAO;QAACR;QAAc2B;KAAe;AACvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/metadata/types/metadata-interface.ts"],"names":[],"mappings":"AAAA,WAyjBuE"}
1
+ {"version":3,"sources":["../../../../src/lib/metadata/types/metadata-interface.ts"],"names":[],"mappings":"AAAA,WA0jBuE"}
@@ -6,7 +6,7 @@ import { renderToInitialStream, createBufferedTransformStream, continueFromIniti
6
6
  import { canSegmentBeOverridden, matchSegment } from "../../client/components/match-segments";
7
7
  import { stripInternalQueries } from "../internal-utils";
8
8
  import { NEXT_ROUTER_PREFETCH, NEXT_ROUTER_STATE_TREE, RSC } from "../../client/components/app-router-headers";
9
- import { MetadataTree } from "../../lib/metadata/metadata";
9
+ import { createMetadataComponents } from "../../lib/metadata/metadata";
10
10
  import { RequestAsyncStorageWrapper } from "../async-storage/request-async-storage-wrapper";
11
11
  import { StaticGenerationAsyncStorageWrapper } from "../async-storage/static-generation-async-storage-wrapper";
12
12
  import { isClientReference } from "../../lib/client-reference";
@@ -48,17 +48,17 @@ function createNotFoundLoaderTree(loaderTree) {
48
48
  ];
49
49
  }
50
50
  // Find the closest matched component in the loader tree for a given component type
51
- function findMatchedComponent(loaderTree, componentType, depth, result) {
52
- const [, parallelRoutes, components] = loaderTree;
51
+ function findMatchedComponent(loaderTree, componentType, result) {
52
+ const [segment, parallelRoutes, components] = loaderTree;
53
53
  const childKeys = Object.keys(parallelRoutes);
54
54
  result = components[componentType] || result;
55
55
  // reached the end of the tree
56
- if (depth <= 0 || childKeys.length === 0) {
56
+ if (segment === "__DEFAULT__" || segment === "__PAGE__") {
57
57
  return result;
58
58
  }
59
59
  for (const key of childKeys){
60
60
  const childTree = parallelRoutes[key];
61
- const matchedComponent = findMatchedComponent(childTree, componentType, depth - 1, result);
61
+ const matchedComponent = findMatchedComponent(childTree, componentType, result);
62
62
  if (matchedComponent) {
63
63
  return matchedComponent;
64
64
  }
@@ -105,6 +105,11 @@ function hasLoadingComponentInTree(tree) {
105
105
  export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts) {
106
106
  const isFlight = req.headers[RSC.toLowerCase()] !== undefined;
107
107
  const pathname = validateURL(req.url);
108
+ // A unique request timestamp used by development to ensure that it's
109
+ // consistent and won't change during this request. This is important to
110
+ // avoid that resources can be deduped by React Float if the same resource is
111
+ // rendered or preloaded multiple times: `<link href="a.css?v={Date.now()}"/>`.
112
+ const DEV_REQUEST_TS = Date.now();
108
113
  const { buildManifest , subresourceIntegrityManifest , serverActionsManifest , ComponentMod , dev , nextFontManifest , supportsDynamicHTML , nextConfigOutput , serverActionsBodySizeLimit } = renderOpts;
109
114
  const appUsingSizeAdjust = !!(nextFontManifest == null ? void 0 : nextFontManifest.appUsingSizeAdjust);
110
115
  const clientReferenceManifest = renderOpts.clientReferenceManifest;
@@ -259,7 +264,7 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
259
264
  const isDev = process.env.NODE_ENV === "development";
260
265
  let qs = "";
261
266
  if (isDev && addTimestamp) {
262
- qs += `?v=${Date.now()}`;
267
+ qs += `?v=${DEV_REQUEST_TS}`;
263
268
  }
264
269
  if (renderOpts.deploymentId) {
265
270
  qs += `${isDev ? "&" : "?"}dpl=${renderOpts.deploymentId}`;
@@ -364,7 +369,7 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
364
369
  };
365
370
  /**
366
371
  * Use the provided loader tree to create the React Component tree.
367
- */ const createComponentTree = async ({ createSegmentPath , loaderTree: tree , parentParams , firstItem , rootLayoutIncluded , injectedCSS , injectedFontPreloadTags , asNotFound })=>{
372
+ */ const createComponentTree = async ({ createSegmentPath , loaderTree: tree , parentParams , firstItem , rootLayoutIncluded , injectedCSS , injectedFontPreloadTags , asNotFound , metadataOutlet })=>{
368
373
  const { page , layoutOrPagePath , segment , components , parallelRoutes } = parseLoaderTree(tree);
369
374
  const { layout , template , error , loading , "not-found": notFound } = components;
370
375
  const injectedCSSWithCurrentLayout = new Set(injectedCSS);
@@ -405,7 +410,9 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
405
410
  filePath: notFound[1],
406
411
  getComponent: notFound[0],
407
412
  injectedCSS: injectedCSSWithCurrentLayout
408
- }) : [];
413
+ }) : [
414
+ rootLayoutIncluded ? undefined : DefaultNotFound
415
+ ];
409
416
  let dynamic = layoutOrPageMod == null ? void 0 : layoutOrPageMod.dynamic;
410
417
  if (nextConfigOutput === "export") {
411
418
  if (!dynamic || dynamic === "auto") {
@@ -538,7 +545,8 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
538
545
  rootLayoutIncluded: rootLayoutIncludedAtThisLevelOrAbove,
539
546
  injectedCSS: injectedCSSWithCurrentLayout,
540
547
  injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout,
541
- asNotFound
548
+ asNotFound,
549
+ metadataOutlet
542
550
  });
543
551
  const childProp = {
544
552
  current: /*#__PURE__*/ React.createElement(ChildComponent, null),
@@ -585,7 +593,7 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
585
593
  if (NotFound && asNotFound && // In development, it could hit the parallel-route-default not found, so we only need to check the segment.
586
594
  // Or if there's no parallel routes means it reaches the end.
587
595
  (segment === "__DEFAULT__" && !parallelRouteMap.length || // For production build the original pathname is /_not-found, always render not-found component.
588
- renderOpts.originalPathname === "/_not-found")) {
596
+ !renderOpts.dev && renderOpts.originalPathname === "/_not-found")) {
589
597
  notFoundComponent = {
590
598
  children: /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("meta", {
591
599
  name: "robots",
@@ -619,7 +627,7 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
619
627
  }
620
628
  return {
621
629
  Component: ()=>{
622
- return /*#__PURE__*/ React.createElement(React.Fragment, null, isPage && isClientComponent && isStaticGeneration ? /*#__PURE__*/ React.createElement(StaticGenerationSearchParamsBailoutProvider, {
630
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, isPage ? metadataOutlet : null, isPage && isClientComponent && isStaticGeneration ? /*#__PURE__*/ React.createElement(StaticGenerationSearchParamsBailoutProvider, {
623
631
  propsForComponent: props,
624
632
  Component: Component
625
633
  }) : /*#__PURE__*/ React.createElement(Component, props), null);
@@ -632,7 +640,7 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
632
640
  /**
633
641
  * Use router state to decide at what common layout to render the page.
634
642
  * This can either be the common layout between two pages or a specific place to start rendering from using the "refetch" marker in the tree.
635
- */ const walkTreeWithFlightRouterState = async ({ createSegmentPath , loaderTreeToFilter , parentParams , isFirst , flightRouterState , parentRendered , rscPayloadHead , injectedCSS , injectedFontPreloadTags , rootLayoutIncluded , asNotFound })=>{
643
+ */ const walkTreeWithFlightRouterState = async ({ createSegmentPath , loaderTreeToFilter , parentParams , isFirst , flightRouterState , parentRendered , rscPayloadHead , injectedCSS , injectedFontPreloadTags , rootLayoutIncluded , asNotFound , metadataOutlet })=>{
636
644
  const [segment, parallelRoutes, components] = loaderTreeToFilter;
637
645
  const parallelRoutesKeys = Object.keys(parallelRoutes);
638
646
  const { layout } = components;
@@ -677,7 +685,8 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
677
685
  injectedFontPreloadTags,
678
686
  // This is intentionally not "rootLayoutIncludedAtThisLevelOrAbove" as createComponentTree starts at the current level and does a check for "rootLayoutAtThisLevel" too.
679
687
  rootLayoutIncluded,
680
- asNotFound
688
+ asNotFound,
689
+ metadataOutlet
681
690
  });
682
691
  return /*#__PURE__*/ React.createElement(Component, null);
683
692
  }),
@@ -729,7 +738,8 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
729
738
  injectedCSS: injectedCSSWithCurrentLayout,
730
739
  injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout,
731
740
  rootLayoutIncluded: rootLayoutIncludedAtThisLevelOrAbove,
732
- asNotFound
741
+ asNotFound,
742
+ metadataOutlet
733
743
  });
734
744
  return path.map((item)=>{
735
745
  // we don't need to send over default routes in the flight data
@@ -748,27 +758,34 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
748
758
  };
749
759
  // Flight data that is going to be passed to the browser.
750
760
  // Currently a single item array but in the future multiple patches might be combined in a single request.
751
- const flightData = (options == null ? void 0 : options.skipFlight) ? null : (await walkTreeWithFlightRouterState({
752
- createSegmentPath: (child)=>child,
753
- loaderTreeToFilter: loaderTree,
754
- parentParams: {},
755
- flightRouterState: providedFlightRouterState,
756
- isFirst: true,
757
- // For flight, render metadata inside leaf page
758
- rscPayloadHead: /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(MetadataTree, {
759
- key: requestId,
761
+ let flightData = null;
762
+ if (!(options == null ? void 0 : options.skipFlight)) {
763
+ const [MetadataTree, MetadataOutlet] = createMetadataComponents({
760
764
  tree: loaderTree,
761
- pathname: pathname,
765
+ pathname,
762
766
  searchParams: providedSearchParams,
763
- getDynamicParamFromSegment: getDynamicParamFromSegment,
764
- appUsingSizeAdjust: appUsingSizeAdjust
765
- })),
766
- injectedCSS: new Set(),
767
- injectedFontPreloadTags: new Set(),
768
- rootLayoutIncluded: false,
769
- asNotFound: pagePath === "/404" || (options == null ? void 0 : options.asNotFound)
770
- })).map((path)=>path.slice(1)) // remove the '' (root) segment
771
- ;
767
+ getDynamicParamFromSegment,
768
+ appUsingSizeAdjust
769
+ });
770
+ flightData = (await walkTreeWithFlightRouterState({
771
+ createSegmentPath: (child)=>child,
772
+ loaderTreeToFilter: loaderTree,
773
+ parentParams: {},
774
+ flightRouterState: providedFlightRouterState,
775
+ isFirst: true,
776
+ // For flight, render metadata inside leaf page
777
+ rscPayloadHead: // Adding requestId as react key to make metadata remount for each render
778
+ /*#__PURE__*/ React.createElement(MetadataTree, {
779
+ key: requestId
780
+ }),
781
+ injectedCSS: new Set(),
782
+ injectedFontPreloadTags: new Set(),
783
+ rootLayoutIncluded: false,
784
+ asNotFound: pagePath === "/404" || (options == null ? void 0 : options.asNotFound),
785
+ metadataOutlet: /*#__PURE__*/ React.createElement(MetadataOutlet, null)
786
+ })).map((path)=>path.slice(1)) // remove the '' (root) segment
787
+ ;
788
+ }
772
789
  const buildIdFlightDataPair = [
773
790
  renderOpts.buildId,
774
791
  flightData
@@ -810,13 +827,8 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
810
827
  getTree: ()=>createFlightRouterStateFromLoaderTree(loaderTree, getDynamicParamFromSegment, query)
811
828
  }
812
829
  } : {};
813
- async function getNotFound(tree, injectedCSS, requestPathname) {
814
- // `depth` represents how many layers we need to search into the tree.
815
- // For instance:
816
- // pathname '/abc' will be 0 depth, means stop at the root level
817
- // pathname '/abc/def' will be 1 depth, means stop at the first level
818
- const depth = requestPathname.split("/").length - 2;
819
- const notFound = findMatchedComponent(tree, "not-found", depth);
830
+ async function getNotFound(tree, injectedCSS) {
831
+ const notFound = findMatchedComponent(tree, "not-found");
820
832
  const [NotFound, notFoundStyles] = notFound ? await createComponentAndStyles({
821
833
  filePath: notFound[1],
822
834
  getComponent: notFound[0],
@@ -849,6 +861,15 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
849
861
  // Create full component tree from root to leaf.
850
862
  const injectedCSS = new Set();
851
863
  const injectedFontPreloadTags = new Set();
864
+ const initialTree = createFlightRouterStateFromLoaderTree(loaderTreeToRender, getDynamicParamFromSegment, query);
865
+ const [MetadataTree, MetadataOutlet] = createMetadataComponents({
866
+ tree: loaderTreeToRender,
867
+ errorType: props.asNotFound ? "not-found" : undefined,
868
+ pathname: pathname,
869
+ searchParams: providedSearchParams,
870
+ getDynamicParamFromSegment: getDynamicParamFromSegment,
871
+ appUsingSizeAdjust: appUsingSizeAdjust
872
+ });
852
873
  const { Component: ComponentTree , styles } = await createComponentTree({
853
874
  createSegmentPath: (child)=>child,
854
875
  loaderTree: loaderTreeToRender,
@@ -857,26 +878,18 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
857
878
  injectedCSS,
858
879
  injectedFontPreloadTags,
859
880
  rootLayoutIncluded: false,
860
- asNotFound: props.asNotFound
881
+ asNotFound: props.asNotFound,
882
+ metadataOutlet: /*#__PURE__*/ React.createElement(MetadataOutlet, null)
861
883
  });
862
- const createMetadata = (errorType)=>// Adding key={requestId} to make metadata remount for each render
863
- // @ts-expect-error allow to use async server component
864
- /*#__PURE__*/ React.createElement(MetadataTree, {
865
- key: requestId,
866
- tree: loaderTreeToRender,
867
- errorType: errorType,
868
- pathname: pathname,
869
- searchParams: providedSearchParams,
870
- getDynamicParamFromSegment: getDynamicParamFromSegment,
871
- appUsingSizeAdjust: appUsingSizeAdjust
872
- });
873
- const initialTree = createFlightRouterStateFromLoaderTree(loaderTreeToRender, getDynamicParamFromSegment, query);
874
884
  return /*#__PURE__*/ React.createElement(React.Fragment, null, styles, /*#__PURE__*/ React.createElement(AppRouter, {
875
885
  buildId: renderOpts.buildId,
876
886
  assetPrefix: assetPrefix,
877
887
  initialCanonicalUrl: pathname,
878
888
  initialTree: initialTree,
879
- initialHead: createMetadata(props.asNotFound ? "not-found" : undefined),
889
+ initialHead: // Adding requestId as react key to make metadata remount for each render
890
+ /*#__PURE__*/ React.createElement(MetadataTree, {
891
+ key: requestId
892
+ }),
880
893
  globalErrorComponent: GlobalError
881
894
  }, /*#__PURE__*/ React.createElement(ComponentTree, null)));
882
895
  }, ComponentMod, serverComponentsRenderOpts, serverComponentsErrorHandler, nonce);
@@ -960,9 +973,15 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
960
973
  // Include hydration scripts in the HTML
961
974
  bootstrapScripts: [
962
975
  ...subresourceIntegrityManifest ? buildManifest.rootMainFiles.map((src)=>({
963
- src: `${assetPrefix}/_next/` + src + getAssetQueryString(false),
976
+ src: `${assetPrefix}/_next/` + src + // Always include the timestamp query in development
977
+ // as Safari caches them during the same session, no
978
+ // matter what cache headers are set.
979
+ getAssetQueryString(true),
964
980
  integrity: subresourceIntegrityManifest[src]
965
- })) : buildManifest.rootMainFiles.map((src)=>`${assetPrefix}/_next/` + src + getAssetQueryString(false))
981
+ })) : buildManifest.rootMainFiles.map((src)=>`${assetPrefix}/_next/` + src + // Always include the timestamp query in development
982
+ // as Safari caches them during the same session, no
983
+ // matter what cache headers are set.
984
+ getAssetQueryString(true))
966
985
  ]
967
986
  }
968
987
  });
@@ -1001,10 +1020,6 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
1001
1020
  res.setHeader("Location", getURLFromRedirectError(err));
1002
1021
  }
1003
1022
  const is404 = res.statusCode === 404;
1004
- const injectedCSS = new Set();
1005
- const injectedFontPreloadTags = new Set();
1006
- const [RootLayout, rootStyles] = await getRootLayout(tree, injectedCSS, injectedFontPreloadTags);
1007
- const [NotFound, notFoundStyles] = await getNotFound(tree, injectedCSS, pathname);
1008
1023
  // Preserve the existing RSC inline chunks from the page rendering.
1009
1024
  // For 404 errors: the metadata from layout can be skipped with the error page.
1010
1025
  // For other errors (such as redirection): it can still be re-thrown on client.
@@ -1022,22 +1037,28 @@ export async function renderToHTMLOrFlight(req, res, pagePath, query, renderOpts
1022
1037
  content: "not-found"
1023
1038
  }));
1024
1039
  const ErrorPage = createServerComponentRenderer(async ()=>{
1025
- const head = /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(MetadataTree, {
1026
- key: requestId,
1027
- tree: tree,
1028
- pathname: pathname,
1029
- errorType: errorType,
1040
+ const [MetadataTree, MetadataOutlet] = createMetadataComponents({
1041
+ tree,
1042
+ pathname,
1043
+ errorType,
1030
1044
  searchParams: providedSearchParams,
1031
- getDynamicParamFromSegment: getDynamicParamFromSegment,
1032
- appUsingSizeAdjust: appUsingSizeAdjust
1045
+ getDynamicParamFromSegment,
1046
+ appUsingSizeAdjust
1047
+ });
1048
+ const head = /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(MetadataTree, {
1049
+ key: requestId
1033
1050
  }), errorMeta);
1034
1051
  const notFoundLoaderTree = is404 ? createNotFoundLoaderTree(tree) : tree;
1035
1052
  const initialTree = createFlightRouterStateFromLoaderTree(notFoundLoaderTree, getDynamicParamFromSegment, query);
1053
+ const injectedCSS = new Set();
1054
+ const injectedFontPreloadTags = new Set();
1055
+ const [RootLayout, rootStyles] = await getRootLayout(tree, injectedCSS, injectedFontPreloadTags);
1056
+ const [NotFound, notFoundStyles] = await getNotFound(!renderOpts.dev && renderOpts.originalPathname === "/_not-found" ? notFoundLoaderTree : tree, injectedCSS);
1036
1057
  const GlobalNotFound = NotFound || DefaultNotFound;
1037
1058
  const ErrorLayout = RootLayout || ErrorHtml;
1038
1059
  const notFoundElement = /*#__PURE__*/ React.createElement(ErrorLayout, {
1039
1060
  params: {}
1040
- }, rootStyles, notFoundStyles, /*#__PURE__*/ React.createElement(GlobalNotFound, null));
1061
+ }, /*#__PURE__*/ React.createElement(MetadataOutlet, null), rootStyles, notFoundStyles, /*#__PURE__*/ React.createElement(GlobalNotFound, null));
1041
1062
  // For metadata notFound error there's no global not found boundary on top
1042
1063
  // so we create a not found page with AppRouter
1043
1064
  return /*#__PURE__*/ React.createElement(AppRouter, {