next 15.2.0-canary.70 → 15.2.0-canary.71

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.

Potentially problematic release.


This version of next might be problematic. Click here for more details.

Files changed (285) 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/utils.js +20 -12
  5. package/dist/build/utils.js.map +1 -1
  6. package/dist/build/webpack-config.js +2 -2
  7. package/dist/client/app-bootstrap.js +1 -1
  8. package/dist/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/dev-tools-indicator.d.ts +2 -2
  9. package/dist/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/dev-tools-indicator.js +8 -5
  10. package/dist/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/dev-tools-indicator.js.map +1 -1
  11. package/dist/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/next-logo.d.ts +1 -1
  12. package/dist/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/next-logo.js +2 -2
  13. package/dist/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/next-logo.js.map +1 -1
  14. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-bottom-stack/index.d.ts +3 -3
  15. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-bottom-stack/index.js +7 -18
  16. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-bottom-stack/index.js.map +1 -1
  17. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-layout/error-overlay-layout.js +1 -1
  18. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-layout/error-overlay-layout.js.map +1 -1
  19. package/dist/client/components/react-dev-overlay/ui/dev-overlay.d.ts +1 -1
  20. package/dist/client/components/react-dev-overlay/ui/dev-overlay.js.map +1 -1
  21. package/dist/client/index.js +1 -1
  22. package/dist/compiled/next-server/app-page-experimental.runtime.dev.js +2 -2
  23. package/dist/compiled/next-server/app-page-experimental.runtime.dev.js.map +1 -1
  24. package/dist/compiled/next-server/app-page.runtime.dev.js +2 -2
  25. package/dist/compiled/next-server/app-page.runtime.dev.js.map +1 -1
  26. package/dist/compiled/next-server/server.runtime.prod.js +2 -2
  27. package/dist/compiled/next-server/server.runtime.prod.js.map +1 -1
  28. package/dist/esm/build/index.js +2 -2
  29. package/dist/esm/build/swc/index.js +1 -1
  30. package/dist/esm/build/utils.js +20 -12
  31. package/dist/esm/build/utils.js.map +1 -1
  32. package/dist/esm/build/webpack-config.js +2 -2
  33. package/dist/esm/client/app-bootstrap.js +1 -1
  34. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/dev-tools-indicator.js +8 -5
  35. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/dev-tools-indicator.js.map +1 -1
  36. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/next-logo.js +2 -2
  37. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/next-logo.js.map +1 -1
  38. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-bottom-stack/index.js +7 -18
  39. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-bottom-stack/index.js.map +1 -1
  40. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-layout/error-overlay-layout.js +1 -1
  41. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-layout/error-overlay-layout.js.map +1 -1
  42. package/dist/esm/client/components/react-dev-overlay/ui/dev-overlay.js.map +1 -1
  43. package/dist/esm/client/index.js +1 -1
  44. package/dist/esm/export/index.js +4 -1
  45. package/dist/esm/export/index.js.map +1 -1
  46. package/dist/esm/export/worker.js +5 -2
  47. package/dist/esm/export/worker.js.map +1 -1
  48. package/dist/esm/server/base-server.js +11 -11
  49. package/dist/esm/server/base-server.js.map +1 -1
  50. package/dist/esm/server/config-shared.js +1 -1
  51. package/dist/esm/server/config-shared.js.map +1 -1
  52. package/dist/esm/server/config.js +1 -1
  53. package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
  54. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  55. package/dist/esm/server/lib/app-info-log.js +1 -1
  56. package/dist/esm/server/lib/start-server.js +1 -1
  57. package/dist/export/index.js +4 -1
  58. package/dist/export/index.js.map +1 -1
  59. package/dist/export/worker.js +5 -2
  60. package/dist/export/worker.js.map +1 -1
  61. package/dist/server/base-server.js +11 -11
  62. package/dist/server/base-server.js.map +1 -1
  63. package/dist/server/config-shared.js +1 -1
  64. package/dist/server/config-shared.js.map +1 -1
  65. package/dist/server/config.js +1 -1
  66. package/dist/server/dev/hot-reloader-turbopack.js +1 -1
  67. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  68. package/dist/server/lib/app-info-log.js +1 -1
  69. package/dist/server/lib/start-server.js +1 -1
  70. package/dist/telemetry/anonymous-meta.js +1 -1
  71. package/dist/telemetry/events/session-stopped.js +2 -2
  72. package/dist/telemetry/events/version.js +2 -2
  73. package/package.json +16 -16
  74. package/dist/build/analysis/get-page-static-info.test.d.ts +0 -1
  75. package/dist/build/normalize-catchall-routes.test.d.ts +0 -1
  76. package/dist/build/webpack/loaders/metadata/resolve-route-data.test.d.ts +0 -1
  77. package/dist/build/webpack/plugins/next-types-plugin/index.test.d.ts +0 -1
  78. package/dist/bundles/cssnano-simple/cssnano-preset-simple.test.d.ts +0 -1
  79. package/dist/client/components/is-next-router-error.test.d.ts +0 -1
  80. package/dist/client/components/navigation.test.d.ts +0 -1
  81. package/dist/client/components/promise-queue.test.d.ts +0 -1
  82. package/dist/client/components/react-dev-overlay/server/get-next-error-feedback-middleware.test.d.ts +0 -1
  83. package/dist/client/components/react-dev-overlay/ui/components/call-stack-frame/call-stack-frame.stories.d.ts +0 -7
  84. package/dist/client/components/react-dev-overlay/ui/components/call-stack-frame/call-stack-frame.stories.js +0 -83
  85. package/dist/client/components/react-dev-overlay/ui/components/call-stack-frame/call-stack-frame.stories.js.map +0 -1
  86. package/dist/client/components/react-dev-overlay/ui/components/code-frame/code-frame.stories.d.ts +0 -6
  87. package/dist/client/components/react-dev-overlay/ui/components/code-frame/code-frame.stories.js +0 -55
  88. package/dist/client/components/react-dev-overlay/ui/components/code-frame/code-frame.stories.js.map +0 -1
  89. package/dist/client/components/react-dev-overlay/ui/components/errors/call-stack/call-stack.stories.d.ts +0 -7
  90. package/dist/client/components/react-dev-overlay/ui/components/errors/call-stack/call-stack.stories.js +0 -106
  91. package/dist/client/components/react-dev-overlay/ui/components/errors/call-stack/call-stack.stories.js.map +0 -1
  92. package/dist/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/dev-tools-indicator.stories.d.ts +0 -9
  93. package/dist/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/dev-tools-indicator.stories.js +0 -135
  94. package/dist/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/dev-tools-indicator.stories.js.map +0 -1
  95. package/dist/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/next-logo.stories.d.ts +0 -13
  96. package/dist/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/next-logo.stories.js +0 -129
  97. package/dist/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/next-logo.stories.js.map +0 -1
  98. package/dist/client/components/react-dev-overlay/ui/components/errors/environment-name-label/environment-name-label.stories.d.ts +0 -8
  99. package/dist/client/components/react-dev-overlay/ui/components/errors/environment-name-label/environment-name-label.stories.js +0 -65
  100. package/dist/client/components/react-dev-overlay/ui/components/errors/environment-name-label/environment-name-label.stories.js.map +0 -1
  101. package/dist/client/components/react-dev-overlay/ui/components/errors/error-message/error-message.stories.d.ts +0 -9
  102. package/dist/client/components/react-dev-overlay/ui/components/errors/error-message/error-message.stories.js +0 -83
  103. package/dist/client/components/react-dev-overlay/ui/components/errors/error-message/error-message.stories.js.map +0 -1
  104. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-layout/error-overlay-layout.stories.d.ts +0 -10
  105. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-layout/error-overlay-layout.stories.js +0 -100
  106. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-layout/error-overlay-layout.stories.js.map +0 -1
  107. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-layout/error-overlay-layout.test.d.ts +0 -1
  108. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-nav/error-overlay-nav.stories.d.ts +0 -6
  109. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-nav/error-overlay-nav.stories.js +0 -88
  110. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-nav/error-overlay-nav.stories.js.map +0 -1
  111. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-pagination/error-overlay-pagination.stories.d.ts +0 -9
  112. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-pagination/error-overlay-pagination.stories.js +0 -119
  113. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-pagination/error-overlay-pagination.stories.js.map +0 -1
  114. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/copy-stack-trace-button.stories.d.ts +0 -7
  115. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/copy-stack-trace-button.stories.js +0 -58
  116. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/copy-stack-trace-button.stories.js.map +0 -1
  117. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/docs-link-button.stories.d.ts +0 -7
  118. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/docs-link-button.stories.js +0 -56
  119. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/docs-link-button.stories.js.map +0 -1
  120. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/error-overlay-toolbar.stories.d.ts +0 -7
  121. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/error-overlay-toolbar.stories.js +0 -60
  122. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/error-overlay-toolbar.stories.js.map +0 -1
  123. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/nodejs-inspector-button.stories.d.ts +0 -7
  124. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/nodejs-inspector-button.stories.js +0 -56
  125. package/dist/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/nodejs-inspector-button.stories.js.map +0 -1
  126. package/dist/client/components/react-dev-overlay/ui/components/errors/error-type-label/error-type-label.stories.d.ts +0 -10
  127. package/dist/client/components/react-dev-overlay/ui/components/errors/error-type-label/error-type-label.stories.js +0 -83
  128. package/dist/client/components/react-dev-overlay/ui/components/errors/error-type-label/error-type-label.stories.js.map +0 -1
  129. package/dist/client/components/react-dev-overlay/ui/components/terminal/terminal.stories.d.ts +0 -7
  130. package/dist/client/components/react-dev-overlay/ui/components/terminal/terminal.stories.js +0 -56
  131. package/dist/client/components/react-dev-overlay/ui/components/terminal/terminal.stories.js.map +0 -1
  132. package/dist/client/components/react-dev-overlay/ui/components/version-staleness-info/version-staleness-info.stories.d.ts +0 -12
  133. package/dist/client/components/react-dev-overlay/ui/components/version-staleness-info/version-staleness-info.stories.js +0 -137
  134. package/dist/client/components/react-dev-overlay/ui/components/version-staleness-info/version-staleness-info.stories.js.map +0 -1
  135. package/dist/client/components/react-dev-overlay/ui/container/build-error.stories.d.ts +0 -7
  136. package/dist/client/components/react-dev-overlay/ui/container/build-error.stories.js +0 -61
  137. package/dist/client/components/react-dev-overlay/ui/container/build-error.stories.js.map +0 -1
  138. package/dist/client/components/react-dev-overlay/ui/container/errors.stories.d.ts +0 -9
  139. package/dist/client/components/react-dev-overlay/ui/container/errors.stories.js +0 -258
  140. package/dist/client/components/react-dev-overlay/ui/container/errors.stories.js.map +0 -1
  141. package/dist/client/components/react-dev-overlay/ui/container/root-layout-missing-tags-error.stories.d.ts +0 -8
  142. package/dist/client/components/react-dev-overlay/ui/container/root-layout-missing-tags-error.stories.js +0 -79
  143. package/dist/client/components/react-dev-overlay/ui/container/root-layout-missing-tags-error.stories.js.map +0 -1
  144. package/dist/client/components/react-dev-overlay/ui/container/runtime-error/component-stack-pseudo-html.stories.d.ts +0 -8
  145. package/dist/client/components/react-dev-overlay/ui/container/runtime-error/component-stack-pseudo-html.stories.js +0 -72
  146. package/dist/client/components/react-dev-overlay/ui/container/runtime-error/component-stack-pseudo-html.stories.js.map +0 -1
  147. package/dist/client/components/react-dev-overlay/ui/dev-overlay.stories.d.ts +0 -6
  148. package/dist/client/components/react-dev-overlay/ui/dev-overlay.stories.js +0 -118
  149. package/dist/client/components/react-dev-overlay/ui/dev-overlay.stories.js.map +0 -1
  150. package/dist/client/components/react-dev-overlay/ui/utils/cx.test.d.ts +0 -1
  151. package/dist/client/components/react-dev-overlay/ui/utils/parse-url-from-text.test.d.ts +0 -1
  152. package/dist/client/components/react-dev-overlay/utils/css.test.d.ts +0 -1
  153. package/dist/client/components/react-dev-overlay/utils/webpack-module-path.test.d.ts +0 -1
  154. package/dist/client/components/redirect.test.d.ts +0 -1
  155. package/dist/client/components/router-reducer/apply-router-state-patch-to-tree.test.d.ts +0 -1
  156. package/dist/client/components/router-reducer/clear-cache-node-data-for-segment-path.test.d.ts +0 -1
  157. package/dist/client/components/router-reducer/compute-changed-path.test.d.ts +0 -1
  158. package/dist/client/components/router-reducer/create-href-from-url.test.d.ts +0 -1
  159. package/dist/client/components/router-reducer/create-initial-router-state.test.d.ts +0 -1
  160. package/dist/client/components/router-reducer/create-router-cache-key.test.d.ts +0 -1
  161. package/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.test.d.ts +0 -1
  162. package/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.test.d.ts +0 -1
  163. package/dist/client/components/router-reducer/get-segment-value.test.d.ts +0 -1
  164. package/dist/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.test.d.ts +0 -1
  165. package/dist/client/components/router-reducer/invalidate-cache-by-router-state.test.d.ts +0 -1
  166. package/dist/client/components/router-reducer/is-navigating-to-new-root-layout.test.d.ts +0 -1
  167. package/dist/client/components/router-reducer/reducers/find-head-in-cache.test.d.ts +0 -1
  168. package/dist/client/components/router-reducer/should-hard-navigate.test.d.ts +0 -1
  169. package/dist/diagnostics/build-diagnostics.test.d.ts +0 -1
  170. package/dist/esm/client/components/react-dev-overlay/ui/components/call-stack-frame/call-stack-frame.stories.js +0 -51
  171. package/dist/esm/client/components/react-dev-overlay/ui/components/call-stack-frame/call-stack-frame.stories.js.map +0 -1
  172. package/dist/esm/client/components/react-dev-overlay/ui/components/code-frame/code-frame.stories.js +0 -27
  173. package/dist/esm/client/components/react-dev-overlay/ui/components/code-frame/code-frame.stories.js.map +0 -1
  174. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/call-stack/call-stack.stories.js +0 -74
  175. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/call-stack/call-stack.stories.js.map +0 -1
  176. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/dev-tools-indicator.stories.js +0 -95
  177. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/dev-tools-indicator.stories.js.map +0 -1
  178. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/next-logo.stories.js +0 -73
  179. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/dev-tools-indicator/next-logo.stories.js.map +0 -1
  180. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/environment-name-label/environment-name-label.stories.js +0 -29
  181. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/environment-name-label/environment-name-label.stories.js.map +0 -1
  182. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-message/error-message.stories.js +0 -43
  183. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-message/error-message.stories.js.map +0 -1
  184. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-layout/error-overlay-layout.stories.js +0 -56
  185. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-layout/error-overlay-layout.stories.js.map +0 -1
  186. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-nav/error-overlay-nav.stories.js +0 -60
  187. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-nav/error-overlay-nav.stories.js.map +0 -1
  188. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-pagination/error-overlay-pagination.stories.js +0 -79
  189. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-pagination/error-overlay-pagination.stories.js.map +0 -1
  190. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/copy-stack-trace-button.stories.js +0 -26
  191. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/copy-stack-trace-button.stories.js.map +0 -1
  192. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/docs-link-button.stories.js +0 -24
  193. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/docs-link-button.stories.js.map +0 -1
  194. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/error-overlay-toolbar.stories.js +0 -28
  195. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/error-overlay-toolbar.stories.js.map +0 -1
  196. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/nodejs-inspector-button.stories.js +0 -24
  197. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-overlay-toolbar/nodejs-inspector-button.stories.js.map +0 -1
  198. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-type-label/error-type-label.stories.js +0 -39
  199. package/dist/esm/client/components/react-dev-overlay/ui/components/errors/error-type-label/error-type-label.stories.js.map +0 -1
  200. package/dist/esm/client/components/react-dev-overlay/ui/components/terminal/terminal.stories.js +0 -24
  201. package/dist/esm/client/components/react-dev-overlay/ui/components/terminal/terminal.stories.js.map +0 -1
  202. package/dist/esm/client/components/react-dev-overlay/ui/components/version-staleness-info/version-staleness-info.stories.js +0 -85
  203. package/dist/esm/client/components/react-dev-overlay/ui/components/version-staleness-info/version-staleness-info.stories.js.map +0 -1
  204. package/dist/esm/client/components/react-dev-overlay/ui/container/build-error.stories.js +0 -29
  205. package/dist/esm/client/components/react-dev-overlay/ui/container/build-error.stories.js.map +0 -1
  206. package/dist/esm/client/components/react-dev-overlay/ui/container/errors.stories.js +0 -218
  207. package/dist/esm/client/components/react-dev-overlay/ui/container/errors.stories.js.map +0 -1
  208. package/dist/esm/client/components/react-dev-overlay/ui/container/root-layout-missing-tags-error.stories.js +0 -43
  209. package/dist/esm/client/components/react-dev-overlay/ui/container/root-layout-missing-tags-error.stories.js.map +0 -1
  210. package/dist/esm/client/components/react-dev-overlay/ui/container/runtime-error/component-stack-pseudo-html.stories.js +0 -36
  211. package/dist/esm/client/components/react-dev-overlay/ui/container/runtime-error/component-stack-pseudo-html.stories.js.map +0 -1
  212. package/dist/esm/client/components/react-dev-overlay/ui/dev-overlay.stories.js +0 -90
  213. package/dist/esm/client/components/react-dev-overlay/ui/dev-overlay.stories.js.map +0 -1
  214. package/dist/experimental/testing/server/config-testing-utils.test.d.ts +0 -1
  215. package/dist/experimental/testing/server/middleware-testing-utils.test.d.ts +0 -1
  216. package/dist/lib/batcher.test.d.ts +0 -1
  217. package/dist/lib/find-config.test.d.ts +0 -1
  218. package/dist/lib/format-server-error.test.d.ts +0 -1
  219. package/dist/lib/load-custom-routes.test.d.ts +0 -1
  220. package/dist/lib/metadata/is-metadata-route.test.d.ts +0 -1
  221. package/dist/lib/metadata/resolve-metadata.test.d.ts +0 -1
  222. package/dist/lib/metadata/resolvers/resolve-opengraph.test.d.ts +0 -1
  223. package/dist/lib/metadata/resolvers/resolve-title.test.d.ts +0 -1
  224. package/dist/lib/metadata/resolvers/resolve-url.test.d.ts +0 -1
  225. package/dist/lib/typescript/writeConfigurationDefaults.test.d.ts +0 -1
  226. package/dist/server/after/after-context.test.d.ts +0 -1
  227. package/dist/server/after/awaiter.test.d.ts +0 -1
  228. package/dist/server/app-render/action-handler.test.d.ts +0 -1
  229. package/dist/server/app-render/csrf-protection.test.d.ts +0 -1
  230. package/dist/server/app-render/postponed-state.test.d.ts +0 -1
  231. package/dist/server/app-render/types.test.d.ts +0 -1
  232. package/dist/server/base-http/web.test.d.ts +0 -1
  233. package/dist/server/config.test.d.ts +0 -1
  234. package/dist/server/dev/log-requests.test.d.ts +0 -1
  235. package/dist/server/dev/parse-version-info.test.d.ts +0 -1
  236. package/dist/server/lib/experimental/create-env-definitions.test.d.ts +0 -1
  237. package/dist/server/lib/i18n-provider.test.d.ts +0 -1
  238. package/dist/server/lib/incremental-cache/shared-revalidate-timings.test.d.ts +0 -1
  239. package/dist/server/lib/interception-routes.test.d.ts +0 -1
  240. package/dist/server/lib/mock-request.test.d.ts +0 -1
  241. package/dist/server/lib/patch-fetch.test.d.ts +0 -1
  242. package/dist/server/lib/router-utils/build-data-route.test.d.ts +0 -1
  243. package/dist/server/lib/router-utils/build-prefetch-segment-data-route.test.d.ts +0 -1
  244. package/dist/server/lib/router-utils/decode-path-params.test.d.ts +0 -1
  245. package/dist/server/lib/to-route.test.d.ts +0 -1
  246. package/dist/server/lib/utils.test.d.ts +0 -1
  247. package/dist/server/load-manifest.test.d.ts +0 -1
  248. package/dist/server/node-polyfill-crypto.test.d.ts +0 -1
  249. package/dist/server/normalizers/absolute-filename-normalizer.test.d.ts +0 -1
  250. package/dist/server/normalizers/request/base-path.test.d.ts +0 -1
  251. package/dist/server/normalizers/request/next-data.test.d.ts +0 -1
  252. package/dist/server/normalizers/request/prefetch-rsc.test.d.ts +0 -1
  253. package/dist/server/normalizers/request/prefix.test.d.ts +0 -1
  254. package/dist/server/normalizers/request/segment-prefix-rsc.test.d.ts +0 -1
  255. package/dist/server/normalizers/request/suffix.test.d.ts +0 -1
  256. package/dist/server/resume-data-cache/resume-data-cache.test.d.ts +0 -1
  257. package/dist/server/route-matcher-managers/default-route-matcher-manager.test.d.ts +0 -1
  258. package/dist/server/route-matcher-providers/app-page-route-matcher-provider.test.d.ts +0 -1
  259. package/dist/server/route-matcher-providers/app-route-route-matcher-provider.test.d.ts +0 -1
  260. package/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.test.d.ts +0 -1
  261. package/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.test.d.ts +0 -1
  262. package/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.test.d.ts +0 -1
  263. package/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.test.d.ts +0 -1
  264. package/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.test.d.ts +0 -1
  265. package/dist/server/route-matcher-providers/pages-api-route-matcher-provider.test.d.ts +0 -1
  266. package/dist/server/route-matcher-providers/pages-route-matcher-provider.test.d.ts +0 -1
  267. package/dist/server/server-utils.test.d.ts +0 -1
  268. package/dist/server/web/spec-extension/adapters/headers.test.d.ts +0 -1
  269. package/dist/server/web/spec-extension/adapters/request-cookies.test.d.ts +0 -1
  270. package/dist/server/web/utils.test.d.ts +0 -1
  271. package/dist/server/web/web-on-close.test.d.ts +0 -1
  272. package/dist/shared/lib/deep-freeze.test.d.ts +0 -1
  273. package/dist/shared/lib/get-hostname.test.d.ts +0 -1
  274. package/dist/shared/lib/normalized-asset-prefix.test.d.ts +0 -1
  275. package/dist/shared/lib/page-path/normalize-page-path.test.d.ts +0 -1
  276. package/dist/shared/lib/router/adapters.test.d.ts +0 -1
  277. package/dist/shared/lib/router/utils/app-paths.test.d.ts +0 -1
  278. package/dist/shared/lib/router/utils/is-dynamic.test.d.ts +0 -1
  279. package/dist/shared/lib/router/utils/parse-relative-url.test.d.ts +0 -1
  280. package/dist/shared/lib/router/utils/prepare-destination.test.d.ts +0 -1
  281. package/dist/shared/lib/router/utils/route-regex.test.d.ts +0 -1
  282. package/dist/shared/lib/server-reference-info.test.d.ts +0 -1
  283. package/dist/telemetry/post-telemetry-payload.test.d.ts +0 -1
  284. package/dist/trace/report/index.test.d.ts +0 -1
  285. package/dist/trace/trace.test.d.ts +0 -1
package/dist/bin/next CHANGED
@@ -79,7 +79,7 @@ const program = new NextRootCommand();
79
79
  program.name('next').description('The Next.js CLI allows you to develop, build, start your application, and more.').configureHelp({
80
80
  formatHelp: (cmd, helper)=>(0, _formatclihelpoutput.formatCliHelpOutput)(cmd, helper),
81
81
  subcommandTerm: (cmd)=>`${cmd.name()} ${cmd.usage()}`
82
- }).helpCommand(false).helpOption('-h, --help', 'Displays this message.').version(`Next.js v${"15.2.0-canary.70"}`, '-v, --version', 'Outputs the Next.js version.');
82
+ }).helpCommand(false).helpOption('-h, --help', 'Displays this message.').version(`Next.js v${"15.2.0-canary.71"}`, '-v, --version', 'Outputs the Next.js version.');
83
83
  program.command('build').description('Creates an optimized production build of your application. The output displays information about each route.').argument('[directory]', `A directory on which to build the application. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).option('-d, --debug', 'Enables a more verbose build output.').option('--no-lint', 'Disables linting.').option('--no-mangling', 'Disables mangling.').option('--profile', 'Enables production profiling for React.').option('--experimental-app-only', 'Builds only App Router routes.').addOption(new _commander.Option('--experimental-turbo').hideHelp()).addOption(new _commander.Option('--experimental-build-mode [mode]', 'Uses an experimental build mode.').choices([
84
84
  'compile',
85
85
  'generate'
@@ -364,7 +364,7 @@ async function build(dir, reactProductionProfiling = false, debugOutput = false,
364
364
  const nextBuildSpan = (0, _trace.trace)('next-build', undefined, {
365
365
  buildMode: experimentalBuildMode,
366
366
  isTurboBuild: String(turboNextBuild),
367
- version: "15.2.0-canary.70"
367
+ version: "15.2.0-canary.71"
368
368
  });
369
369
  _buildcontext.NextBuildContext.nextBuildSpan = nextBuildSpan;
370
370
  _buildcontext.NextBuildContext.dir = dir;
@@ -723,7 +723,7 @@ async function build(dir, reactProductionProfiling = false, debugOutput = false,
723
723
  // Files outside of the distDir can be "type": "module"
724
724
  await writeFileUtf8(_path.default.join(distDir, 'package.json'), '{"type": "commonjs"}');
725
725
  // These are written to distDir, so they need to come after creating and cleaning distDr.
726
- await (0, _builddiagnostics.recordFrameworkVersion)("15.2.0-canary.70");
726
+ await (0, _builddiagnostics.recordFrameworkVersion)("15.2.0-canary.71");
727
727
  await (0, _builddiagnostics.updateBuildDiagnostics)({
728
728
  buildStage: 'start'
729
729
  });
@@ -119,7 +119,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
119
119
  }
120
120
  return newObj;
121
121
  }
122
- const nextVersion = "15.2.0-canary.70";
122
+ const nextVersion = "15.2.0-canary.71";
123
123
  const ArchName = (0, _os.arch)();
124
124
  const PlatformName = (0, _os.platform)();
125
125
  function infoLog(...args) {
@@ -387,11 +387,13 @@ function collectRoutesUsingEdgeRuntime(input) {
387
387
  }
388
388
  async function printTreeView(lists, pageInfos, { distPath, buildId, pagesDir, pageExtensions, buildManifest, appBuildManifest, middlewareManifest, useStaticPages404, gzipSize = true }) {
389
389
  var _lists_app, _middlewareManifest_middleware;
390
- const getPrettySize = (_size)=>{
391
- const size = (0, _prettybytes.default)(_size);
392
- return (0, _picocolors.white)((0, _picocolors.bold)(size));
390
+ const getPrettySize = (_size, { strong } = {})=>{
391
+ const size = process.env.__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT ? 'N/A kB' : (0, _prettybytes.default)(_size);
392
+ return strong ? (0, _picocolors.white)((0, _picocolors.bold)(size)) : size;
393
393
  };
394
- const MIN_DURATION = 300;
394
+ // Can be overridden for test purposes to omit the build duration output.
395
+ const MIN_DURATION = process.env.__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT ? Infinity // Don't ever log build durations.
396
+ : 300;
395
397
  const getPrettyDuration = (_duration)=>{
396
398
  const duration = `${_duration} ms`;
397
399
  // green for 300-1000ms
@@ -458,8 +460,10 @@ async function printTreeView(lists, pageInfos, { distPath, buildId, pagesDir, pa
458
460
  if (pageInfo == null ? void 0 : pageInfo.initialRevalidateSeconds) usedSymbols.add('ISR');
459
461
  messages.push([
460
462
  `${border} ${symbol} ${(pageInfo == null ? void 0 : pageInfo.initialRevalidateSeconds) ? `${item} (ISR: ${pageInfo == null ? void 0 : pageInfo.initialRevalidateSeconds} Seconds)` : item}${totalDuration > MIN_DURATION ? ` (${getPrettyDuration(totalDuration)})` : ''}`,
461
- pageInfo ? ampFirst ? (0, _picocolors.cyan)('AMP') : pageInfo.size >= 0 ? (0, _prettybytes.default)(pageInfo.size) : '' : '',
462
- pageInfo ? ampFirst ? (0, _picocolors.cyan)('AMP') : pageInfo.size >= 0 ? getPrettySize(pageInfo.totalSize) : '' : ''
463
+ pageInfo ? ampFirst ? (0, _picocolors.cyan)('AMP') : pageInfo.size >= 0 ? getPrettySize(pageInfo.size) : '' : '',
464
+ pageInfo ? ampFirst ? (0, _picocolors.cyan)('AMP') : pageInfo.size >= 0 ? getPrettySize(pageInfo.totalSize, {
465
+ strong: true
466
+ }) : '' : ''
463
467
  ]);
464
468
  const uniqueCssFiles = ((_buildManifest_pages_item = buildManifest.pages[item]) == null ? void 0 : _buildManifest_pages_item.filter((file)=>{
465
469
  var _stats_router_routerType;
@@ -472,7 +476,7 @@ async function printTreeView(lists, pageInfos, { distPath, buildId, pagesDir, pa
472
476
  const size = stats.sizes.get(file);
473
477
  messages.push([
474
478
  `${contSymbol} ${innerSymbol} ${getCleanName(file)}`,
475
- typeof size === 'number' ? (0, _prettybytes.default)(size) : '',
479
+ typeof size === 'number' ? getPrettySize(size) : '',
476
480
  ''
477
481
  ]);
478
482
  });
@@ -525,10 +529,12 @@ async function printTreeView(lists, pageInfos, { distPath, buildId, pagesDir, pa
525
529
  }
526
530
  });
527
531
  const sharedFilesSize = (_stats_router_routerType = stats.router[routerType]) == null ? void 0 : _stats_router_routerType.common.size.total;
528
- const sharedFiles = ((_stats_router_routerType1 = stats.router[routerType]) == null ? void 0 : _stats_router_routerType1.common.files) ?? [];
532
+ const sharedFiles = process.env.__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT ? [] : ((_stats_router_routerType1 = stats.router[routerType]) == null ? void 0 : _stats_router_routerType1.common.files) ?? [];
529
533
  messages.push([
530
534
  '+ First Load JS shared by all',
531
- typeof sharedFilesSize === 'number' ? getPrettySize(sharedFilesSize) : '',
535
+ typeof sharedFilesSize === 'number' ? getPrettySize(sharedFilesSize, {
536
+ strong: true
537
+ }) : '',
532
538
  ''
533
539
  ]);
534
540
  const sharedCssFiles = [];
@@ -558,14 +564,14 @@ async function printTreeView(lists, pageInfos, { distPath, buildId, pagesDir, pa
558
564
  }
559
565
  messages.push([
560
566
  ` ${innerSymbol} ${cleanName}`,
561
- (0, _prettybytes.default)(size),
567
+ getPrettySize(size),
562
568
  ''
563
569
  ]);
564
570
  });
565
571
  if (restChunkCount > 0) {
566
572
  messages.push([
567
573
  ` └ other shared chunks (total)`,
568
- (0, _prettybytes.default)(restChunkSize),
574
+ getPrettySize(restChunkSize),
569
575
  ''
570
576
  ]);
571
577
  }
@@ -608,7 +614,9 @@ async function printTreeView(lists, pageInfos, { distPath, buildId, pagesDir, pa
608
614
  ]);
609
615
  messages.push([
610
616
  'ƒ Middleware',
611
- getPrettySize(sum(middlewareSizes)),
617
+ getPrettySize(sum(middlewareSizes), {
618
+ strong: true
619
+ }),
612
620
  ''
613
621
  ]);
614
622
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/build/utils.ts"],"sourcesContent":["import type { NextConfigComplete } from '../server/config-shared'\nimport type { ExperimentalPPRConfig } from '../server/lib/experimental/ppr'\nimport type { AppBuildManifest } from './webpack/plugins/app-build-manifest-plugin'\nimport type { AssetBinding } from './webpack/loaders/get-module-build-info'\nimport type { PageConfig, ServerRuntime } from '../types'\nimport type { BuildManifest } from '../server/get-page-files'\nimport type {\n Redirect,\n Rewrite,\n Header,\n CustomRoutes,\n} from '../lib/load-custom-routes'\nimport type {\n EdgeFunctionDefinition,\n MiddlewareManifest,\n} from './webpack/plugins/middleware-plugin'\nimport type { WebpackLayerName } from '../lib/constants'\nimport type { AppPageModule } from '../server/route-modules/app-page/module'\nimport type { RouteModule } from '../server/route-modules/route-module'\nimport type { NextComponentType } from '../shared/lib/utils'\n\nimport '../server/require-hook'\nimport '../server/node-polyfill-crypto'\nimport '../server/node-environment'\n\nimport {\n green,\n yellow,\n red,\n cyan,\n white,\n bold,\n underline,\n} from '../lib/picocolors'\nimport getGzipSize from 'next/dist/compiled/gzip-size'\nimport textTable from 'next/dist/compiled/text-table'\nimport path from 'path'\nimport { promises as fs } from 'fs'\nimport { isValidElementType } from 'next/dist/compiled/react-is'\nimport stripAnsi from 'next/dist/compiled/strip-ansi'\nimport browserslist from 'next/dist/compiled/browserslist'\nimport {\n SSG_GET_INITIAL_PROPS_CONFLICT,\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT,\n SERVER_PROPS_SSG_CONFLICT,\n MIDDLEWARE_FILENAME,\n INSTRUMENTATION_HOOK_FILENAME,\n WEBPACK_LAYERS,\n} from '../lib/constants'\nimport {\n MODERN_BROWSERSLIST_TARGET,\n UNDERSCORE_NOT_FOUND_ROUTE,\n} from '../shared/lib/constants'\nimport prettyBytes from '../lib/pretty-bytes'\nimport { isDynamicRoute } from '../shared/lib/router/utils/is-dynamic'\nimport { findPageFile } from '../server/lib/find-page-file'\nimport { isEdgeRuntime } from '../lib/is-edge-runtime'\nimport * as Log from './output/log'\nimport { loadComponents } from '../server/load-components'\nimport type { LoadComponentsReturnType } from '../server/load-components'\nimport { trace } from '../trace'\nimport { setHttpClientAndAgentOptions } from '../server/setup-http-agent-env'\nimport { Sema } from 'next/dist/compiled/async-sema'\nimport { denormalizePagePath } from '../shared/lib/page-path/denormalize-page-path'\nimport { normalizePagePath } from '../shared/lib/page-path/normalize-page-path'\nimport { getRuntimeContext } from '../server/web/sandbox'\nimport { isClientReference } from '../lib/client-and-server-references'\nimport { normalizeAppPath } from '../shared/lib/router/utils/app-paths'\nimport { denormalizeAppPagePath } from '../shared/lib/page-path/denormalize-app-path'\nimport { RouteKind } from '../server/route-kind'\nimport type { PageExtensions } from './page-extensions-type'\nimport { isInterceptionRouteAppPath } from '../server/lib/interception-routes'\nimport { checkIsRoutePPREnabled } from '../server/lib/experimental/ppr'\nimport type { FallbackMode } from '../lib/fallback'\nimport type { OutgoingHttpHeaders } from 'http'\nimport type { AppSegmentConfig } from './segment-config/app/app-segment-config'\nimport type { AppSegment } from './segment-config/app/app-segments'\nimport { collectSegments } from './segment-config/app/app-segments'\nimport { createIncrementalCache } from '../export/helpers/create-incremental-cache'\nimport { collectRootParamKeys } from './segment-config/app/collect-root-param-keys'\nimport { buildAppStaticPaths } from './static-paths/app'\nimport { buildPagesStaticPaths } from './static-paths/pages'\nimport type { PrerenderedRoute } from './static-paths/types'\n\nexport type ROUTER_TYPE = 'pages' | 'app'\n\n// Use `print()` for expected console output\nconst print = console.log\n\nconst RESERVED_PAGE = /^\\/(_app|_error|_document|api(\\/|$))/\nconst fileGzipStats: { [k: string]: Promise<number> | undefined } = {}\nconst fsStatGzip = (file: string) => {\n const cached = fileGzipStats[file]\n if (cached) return cached\n return (fileGzipStats[file] = getGzipSize.file(file))\n}\n\nconst fileSize = async (file: string) => (await fs.stat(file)).size\n\nconst fileStats: { [k: string]: Promise<number> | undefined } = {}\nconst fsStat = (file: string) => {\n const cached = fileStats[file]\n if (cached) return cached\n return (fileStats[file] = fileSize(file))\n}\n\nexport function unique<T>(main: ReadonlyArray<T>, sub: ReadonlyArray<T>): T[] {\n return [...new Set([...main, ...sub])]\n}\n\nexport function difference<T>(\n main: ReadonlyArray<T> | ReadonlySet<T>,\n sub: ReadonlyArray<T> | ReadonlySet<T>\n): T[] {\n const a = new Set(main)\n const b = new Set(sub)\n return [...a].filter((x) => !b.has(x))\n}\n\n/**\n * Return an array of the items shared by both arrays.\n */\nfunction intersect<T>(main: ReadonlyArray<T>, sub: ReadonlyArray<T>): T[] {\n const a = new Set(main)\n const b = new Set(sub)\n return [...new Set([...a].filter((x) => b.has(x)))]\n}\n\nfunction sum(a: ReadonlyArray<number>): number {\n return a.reduce((size, stat) => size + stat, 0)\n}\n\ntype ComputeFilesGroup = {\n files: ReadonlyArray<string>\n size: {\n total: number\n }\n}\n\ntype ComputeFilesManifest = {\n unique: ComputeFilesGroup\n common: ComputeFilesGroup\n}\n\ntype ComputeFilesManifestResult = {\n router: {\n pages: ComputeFilesManifest\n app?: ComputeFilesManifest\n }\n sizes: Map<string, number>\n}\n\nlet cachedBuildManifest: BuildManifest | undefined\nlet cachedAppBuildManifest: AppBuildManifest | undefined\n\nlet lastCompute: ComputeFilesManifestResult | undefined\nlet lastComputePageInfo: boolean | undefined\n\nexport async function computeFromManifest(\n manifests: {\n build: BuildManifest\n app?: AppBuildManifest\n },\n distPath: string,\n gzipSize: boolean = true,\n pageInfos?: Map<string, PageInfo>\n): Promise<ComputeFilesManifestResult> {\n if (\n Object.is(cachedBuildManifest, manifests.build) &&\n lastComputePageInfo === !!pageInfos &&\n Object.is(cachedAppBuildManifest, manifests.app)\n ) {\n return lastCompute!\n }\n\n // Determine the files that are in pages and app and count them, this will\n // tell us if they are unique or common.\n\n const countBuildFiles = (\n map: Map<string, number>,\n key: string,\n manifest: Record<string, ReadonlyArray<string>>\n ) => {\n for (const file of manifest[key]) {\n if (key === '/_app') {\n map.set(file, Infinity)\n } else if (map.has(file)) {\n map.set(file, map.get(file)! + 1)\n } else {\n map.set(file, 1)\n }\n }\n }\n\n const files: {\n pages: {\n each: Map<string, number>\n expected: number\n }\n app?: {\n each: Map<string, number>\n expected: number\n }\n } = {\n pages: { each: new Map(), expected: 0 },\n }\n\n for (const key in manifests.build.pages) {\n if (pageInfos) {\n const pageInfo = pageInfos.get(key)\n // don't include AMP pages since they don't rely on shared bundles\n // AMP First pages are not under the pageInfos key\n if (pageInfo?.isHybridAmp) {\n continue\n }\n }\n\n files.pages.expected++\n countBuildFiles(files.pages.each, key, manifests.build.pages)\n }\n\n // Collect the build files form the app manifest.\n if (manifests.app?.pages) {\n files.app = { each: new Map<string, number>(), expected: 0 }\n\n for (const key in manifests.app.pages) {\n files.app.expected++\n countBuildFiles(files.app.each, key, manifests.app.pages)\n }\n }\n\n const getSize = gzipSize ? fsStatGzip : fsStat\n const stats = new Map<string, number>()\n\n // For all of the files in the pages and app manifests, compute the file size\n // at once.\n\n await Promise.all(\n [\n ...new Set<string>([\n ...files.pages.each.keys(),\n ...(files.app?.each.keys() ?? []),\n ]),\n ].map(async (f) => {\n try {\n // Add the file size to the stats.\n stats.set(f, await getSize(path.join(distPath, f)))\n } catch {}\n })\n )\n\n const groupFiles = async (listing: {\n each: Map<string, number>\n expected: number\n }): Promise<ComputeFilesManifest> => {\n const entries = [...listing.each.entries()]\n\n const shapeGroup = (group: [string, number][]): ComputeFilesGroup =>\n group.reduce(\n (acc, [f]) => {\n acc.files.push(f)\n\n const size = stats.get(f)\n if (typeof size === 'number') {\n acc.size.total += size\n }\n\n return acc\n },\n {\n files: [] as string[],\n size: {\n total: 0,\n },\n }\n )\n\n return {\n unique: shapeGroup(entries.filter(([, len]) => len === 1)),\n common: shapeGroup(\n entries.filter(\n ([, len]) => len === listing.expected || len === Infinity\n )\n ),\n }\n }\n\n lastCompute = {\n router: {\n pages: await groupFiles(files.pages),\n app: files.app ? await groupFiles(files.app) : undefined,\n },\n sizes: stats,\n }\n\n cachedBuildManifest = manifests.build\n cachedAppBuildManifest = manifests.app\n lastComputePageInfo = !!pageInfos\n return lastCompute!\n}\n\nexport function isMiddlewareFilename(file?: string | null) {\n return file === MIDDLEWARE_FILENAME || file === `src/${MIDDLEWARE_FILENAME}`\n}\n\nexport function isInstrumentationHookFilename(file?: string | null) {\n return (\n file === INSTRUMENTATION_HOOK_FILENAME ||\n file === `src/${INSTRUMENTATION_HOOK_FILENAME}`\n )\n}\n\nconst filterAndSortList = (\n list: ReadonlyArray<string>,\n routeType: ROUTER_TYPE,\n hasCustomApp: boolean\n) => {\n let pages: string[]\n if (routeType === 'app') {\n // filter out static app route of /favicon.ico\n pages = list.filter((e) => e !== '/favicon.ico')\n } else {\n // filter built-in pages\n pages = list\n .slice()\n .filter(\n (e) =>\n !(\n e === '/_document' ||\n e === '/_error' ||\n (!hasCustomApp && e === '/_app')\n )\n )\n }\n return pages.sort((a, b) => a.localeCompare(b))\n}\n\nexport interface PageInfo {\n isHybridAmp?: boolean\n size: number\n totalSize: number\n isStatic: boolean\n isSSG: boolean\n /**\n * If true, it means that the route has partial prerendering enabled.\n */\n isRoutePPREnabled: boolean\n ssgPageRoutes: string[] | null\n initialRevalidateSeconds: number | false\n pageDuration: number | undefined\n ssgPageDurations: number[] | undefined\n runtime: ServerRuntime\n hasEmptyPrelude?: boolean\n hasPostponed?: boolean\n isDynamicAppRoute?: boolean\n}\n\nexport type PageInfos = Map<string, PageInfo>\n\nexport interface RoutesUsingEdgeRuntime {\n [route: string]: 0\n}\n\nexport function collectRoutesUsingEdgeRuntime(\n input: PageInfos\n): RoutesUsingEdgeRuntime {\n const routesUsingEdgeRuntime: RoutesUsingEdgeRuntime = {}\n for (const [route, info] of input.entries()) {\n if (isEdgeRuntime(info.runtime)) {\n routesUsingEdgeRuntime[route] = 0\n }\n }\n\n return routesUsingEdgeRuntime\n}\n\nexport async function printTreeView(\n lists: {\n pages: ReadonlyArray<string>\n app: ReadonlyArray<string> | undefined\n },\n pageInfos: Map<string, PageInfo>,\n {\n distPath,\n buildId,\n pagesDir,\n pageExtensions,\n buildManifest,\n appBuildManifest,\n middlewareManifest,\n useStaticPages404,\n gzipSize = true,\n }: {\n distPath: string\n buildId: string\n pagesDir?: string\n pageExtensions: PageExtensions\n buildManifest: BuildManifest\n appBuildManifest?: AppBuildManifest\n middlewareManifest: MiddlewareManifest\n useStaticPages404: boolean\n gzipSize?: boolean\n }\n) {\n const getPrettySize = (_size: number): string => {\n const size = prettyBytes(_size)\n return white(bold(size))\n }\n\n const MIN_DURATION = 300\n const getPrettyDuration = (_duration: number): string => {\n const duration = `${_duration} ms`\n // green for 300-1000ms\n if (_duration < 1000) return green(duration)\n // yellow for 1000-2000ms\n if (_duration < 2000) return yellow(duration)\n // red for >= 2000ms\n return red(bold(duration))\n }\n\n const getCleanName = (fileName: string) =>\n fileName\n // Trim off `static/`\n .replace(/^static\\//, '')\n // Re-add `static/` for root files\n .replace(/^<buildId>/, 'static')\n // Remove file hash\n .replace(/(?:^|[.-])([0-9a-z]{6})[0-9a-z]{14}(?=\\.)/, '.$1')\n\n // Check if we have a custom app.\n const hasCustomApp = !!(\n pagesDir && (await findPageFile(pagesDir, '/_app', pageExtensions, false))\n )\n\n // Collect all the symbols we use so we can print the icons out.\n const usedSymbols = new Set()\n\n const messages: [string, string, string][] = []\n\n const stats = await computeFromManifest(\n { build: buildManifest, app: appBuildManifest },\n distPath,\n gzipSize,\n pageInfos\n )\n\n const printFileTree = async ({\n list,\n routerType,\n }: {\n list: ReadonlyArray<string>\n routerType: ROUTER_TYPE\n }) => {\n const filteredPages = filterAndSortList(list, routerType, hasCustomApp)\n if (filteredPages.length === 0) {\n return\n }\n\n messages.push(\n [\n routerType === 'app' ? 'Route (app)' : 'Route (pages)',\n 'Size',\n 'First Load JS',\n ].map((entry) => underline(entry)) as [string, string, string]\n )\n\n filteredPages.forEach((item, i, arr) => {\n const border =\n i === 0\n ? arr.length === 1\n ? '─'\n : '┌'\n : i === arr.length - 1\n ? '└'\n : '├'\n\n const pageInfo = pageInfos.get(item)\n const ampFirst = buildManifest.ampFirstPages.includes(item)\n const totalDuration =\n (pageInfo?.pageDuration || 0) +\n (pageInfo?.ssgPageDurations?.reduce((a, b) => a + (b || 0), 0) || 0)\n\n let symbol: string\n\n if (item === '/_app' || item === '/_app.server') {\n symbol = ' '\n } else if (isEdgeRuntime(pageInfo?.runtime)) {\n symbol = 'ƒ'\n } else if (pageInfo?.isRoutePPREnabled) {\n if (\n // If the page has an empty prelude, then it's equivalent to a dynamic page\n pageInfo?.hasEmptyPrelude ||\n // ensure we don't mark dynamic paths that postponed as being dynamic\n // since in this case we're able to partially prerender it\n (pageInfo.isDynamicAppRoute && !pageInfo.hasPostponed)\n ) {\n symbol = 'ƒ'\n } else if (!pageInfo?.hasPostponed) {\n symbol = '○'\n } else {\n symbol = '◐'\n }\n } else if (pageInfo?.isStatic) {\n symbol = '○'\n } else if (pageInfo?.isSSG) {\n symbol = '●'\n } else {\n symbol = 'ƒ'\n }\n\n usedSymbols.add(symbol)\n\n if (pageInfo?.initialRevalidateSeconds) usedSymbols.add('ISR')\n\n messages.push([\n `${border} ${symbol} ${\n pageInfo?.initialRevalidateSeconds\n ? `${item} (ISR: ${pageInfo?.initialRevalidateSeconds} Seconds)`\n : item\n }${\n totalDuration > MIN_DURATION\n ? ` (${getPrettyDuration(totalDuration)})`\n : ''\n }`,\n pageInfo\n ? ampFirst\n ? cyan('AMP')\n : pageInfo.size >= 0\n ? prettyBytes(pageInfo.size)\n : ''\n : '',\n pageInfo\n ? ampFirst\n ? cyan('AMP')\n : pageInfo.size >= 0\n ? getPrettySize(pageInfo.totalSize)\n : ''\n : '',\n ])\n\n const uniqueCssFiles =\n buildManifest.pages[item]?.filter(\n (file) =>\n file.endsWith('.css') &&\n stats.router[routerType]?.unique.files.includes(file)\n ) || []\n\n if (uniqueCssFiles.length > 0) {\n const contSymbol = i === arr.length - 1 ? ' ' : '├'\n\n uniqueCssFiles.forEach((file, index, { length }) => {\n const innerSymbol = index === length - 1 ? '└' : '├'\n const size = stats.sizes.get(file)\n messages.push([\n `${contSymbol} ${innerSymbol} ${getCleanName(file)}`,\n typeof size === 'number' ? prettyBytes(size) : '',\n '',\n ])\n })\n }\n\n if (pageInfo?.ssgPageRoutes?.length) {\n const totalRoutes = pageInfo.ssgPageRoutes.length\n const contSymbol = i === arr.length - 1 ? ' ' : '├'\n\n let routes: { route: string; duration: number; avgDuration?: number }[]\n if (\n pageInfo.ssgPageDurations &&\n pageInfo.ssgPageDurations.some((d) => d > MIN_DURATION)\n ) {\n const previewPages = totalRoutes === 8 ? 8 : Math.min(totalRoutes, 7)\n const routesWithDuration = pageInfo.ssgPageRoutes\n .map((route, idx) => ({\n route,\n duration: pageInfo.ssgPageDurations![idx] || 0,\n }))\n .sort(({ duration: a }, { duration: b }) =>\n // Sort by duration\n // keep too small durations in original order at the end\n a <= MIN_DURATION && b <= MIN_DURATION ? 0 : b - a\n )\n routes = routesWithDuration.slice(0, previewPages)\n const remainingRoutes = routesWithDuration.slice(previewPages)\n if (remainingRoutes.length) {\n const remaining = remainingRoutes.length\n const avgDuration = Math.round(\n remainingRoutes.reduce(\n (total, { duration }) => total + duration,\n 0\n ) / remainingRoutes.length\n )\n routes.push({\n route: `[+${remaining} more paths]`,\n duration: 0,\n avgDuration,\n })\n }\n } else {\n const previewPages = totalRoutes === 4 ? 4 : Math.min(totalRoutes, 3)\n routes = pageInfo.ssgPageRoutes\n .slice(0, previewPages)\n .map((route) => ({ route, duration: 0 }))\n if (totalRoutes > previewPages) {\n const remaining = totalRoutes - previewPages\n routes.push({ route: `[+${remaining} more paths]`, duration: 0 })\n }\n }\n\n routes.forEach(\n ({ route, duration, avgDuration }, index, { length }) => {\n const innerSymbol = index === length - 1 ? '└' : '├'\n messages.push([\n `${contSymbol} ${innerSymbol} ${route}${\n duration > MIN_DURATION\n ? ` (${getPrettyDuration(duration)})`\n : ''\n }${\n avgDuration && avgDuration > MIN_DURATION\n ? ` (avg ${getPrettyDuration(avgDuration)})`\n : ''\n }`,\n '',\n '',\n ])\n }\n )\n }\n })\n\n const sharedFilesSize = stats.router[routerType]?.common.size.total\n const sharedFiles = stats.router[routerType]?.common.files ?? []\n\n messages.push([\n '+ First Load JS shared by all',\n typeof sharedFilesSize === 'number' ? getPrettySize(sharedFilesSize) : '',\n '',\n ])\n const sharedCssFiles: string[] = []\n const sharedJsChunks = [\n ...sharedFiles\n .filter((file) => {\n if (file.endsWith('.css')) {\n sharedCssFiles.push(file)\n return false\n }\n return true\n })\n .map((e) => e.replace(buildId, '<buildId>'))\n .sort(),\n ...sharedCssFiles.map((e) => e.replace(buildId, '<buildId>')).sort(),\n ]\n\n // if the some chunk are less than 10kb or we don't know the size, we only show the total size of the rest\n const tenKbLimit = 10 * 1000\n let restChunkSize = 0\n let restChunkCount = 0\n sharedJsChunks.forEach((fileName, index, { length }) => {\n const innerSymbol = index + restChunkCount === length - 1 ? '└' : '├'\n\n const originalName = fileName.replace('<buildId>', buildId)\n const cleanName = getCleanName(fileName)\n const size = stats.sizes.get(originalName)\n\n if (!size || size < tenKbLimit) {\n restChunkCount++\n restChunkSize += size || 0\n return\n }\n\n messages.push([` ${innerSymbol} ${cleanName}`, prettyBytes(size), ''])\n })\n\n if (restChunkCount > 0) {\n messages.push([\n ` └ other shared chunks (total)`,\n prettyBytes(restChunkSize),\n '',\n ])\n }\n }\n\n // If enabled, then print the tree for the app directory.\n if (lists.app && stats.router.app) {\n await printFileTree({\n routerType: 'app',\n list: lists.app,\n })\n\n messages.push(['', '', ''])\n }\n\n pageInfos.set('/404', {\n ...(pageInfos.get('/404') || pageInfos.get('/_error'))!,\n isStatic: useStaticPages404,\n })\n\n // If there's no app /_notFound page present, then the 404 is still using the pages/404\n if (\n !lists.pages.includes('/404') &&\n !lists.app?.includes(UNDERSCORE_NOT_FOUND_ROUTE)\n ) {\n lists.pages = [...lists.pages, '/404']\n }\n\n // Print the tree view for the pages directory.\n await printFileTree({\n routerType: 'pages',\n list: lists.pages,\n })\n\n const middlewareInfo = middlewareManifest.middleware?.['/']\n if (middlewareInfo?.files.length > 0) {\n const middlewareSizes = await Promise.all(\n middlewareInfo.files\n .map((dep) => `${distPath}/${dep}`)\n .map(gzipSize ? fsStatGzip : fsStat)\n )\n\n messages.push(['', '', ''])\n messages.push(['ƒ Middleware', getPrettySize(sum(middlewareSizes)), ''])\n }\n\n print(\n textTable(messages, {\n align: ['l', 'l', 'r'],\n stringLength: (str) => stripAnsi(str).length,\n })\n )\n\n const staticFunctionInfo =\n lists.app && stats.router.app ? 'generateStaticParams' : 'getStaticProps'\n print()\n print(\n textTable(\n [\n usedSymbols.has('○') && [\n '○',\n '(Static)',\n 'prerendered as static content',\n ],\n usedSymbols.has('●') && [\n '●',\n '(SSG)',\n `prerendered as static HTML (uses ${cyan(staticFunctionInfo)})`,\n ],\n usedSymbols.has('ISR') && [\n '',\n '(ISR)',\n `incremental static regeneration (uses revalidate in ${cyan(\n staticFunctionInfo\n )})`,\n ],\n usedSymbols.has('◐') && [\n '◐',\n '(Partial Prerender)',\n 'prerendered as static HTML with dynamic server-streamed content',\n ],\n usedSymbols.has('ƒ') && ['ƒ', '(Dynamic)', `server-rendered on demand`],\n ].filter((x) => x) as [string, string, string][],\n {\n align: ['l', 'l', 'l'],\n stringLength: (str) => stripAnsi(str).length,\n }\n )\n )\n\n print()\n}\n\nexport function printCustomRoutes({\n redirects,\n rewrites,\n headers,\n}: CustomRoutes) {\n const printRoutes = (\n routes: Redirect[] | Rewrite[] | Header[],\n type: 'Redirects' | 'Rewrites' | 'Headers'\n ) => {\n const isRedirects = type === 'Redirects'\n const isHeaders = type === 'Headers'\n print(underline(type))\n\n /*\n ┌ source\n ├ permanent/statusCode\n └ destination\n */\n const routesStr = (routes as any[])\n .map((route: { source: string }) => {\n let routeStr = `┌ source: ${route.source}\\n`\n\n if (!isHeaders) {\n const r = route as Rewrite\n routeStr += `${isRedirects ? '├' : '└'} destination: ${\n r.destination\n }\\n`\n }\n if (isRedirects) {\n const r = route as Redirect\n routeStr += `└ ${\n r.statusCode\n ? `status: ${r.statusCode}`\n : `permanent: ${r.permanent}`\n }\\n`\n }\n\n if (isHeaders) {\n const r = route as Header\n routeStr += `└ headers:\\n`\n\n for (let i = 0; i < r.headers.length; i++) {\n const header = r.headers[i]\n const last = i === headers.length - 1\n\n routeStr += ` ${last ? '└' : '├'} ${header.key}: ${header.value}\\n`\n }\n }\n\n return routeStr\n })\n .join('\\n')\n\n print(`${routesStr}\\n`)\n }\n\n print()\n if (redirects.length) {\n printRoutes(redirects, 'Redirects')\n }\n if (headers.length) {\n printRoutes(headers, 'Headers')\n }\n\n const combinedRewrites = [\n ...rewrites.beforeFiles,\n ...rewrites.afterFiles,\n ...rewrites.fallback,\n ]\n if (combinedRewrites.length) {\n printRoutes(combinedRewrites, 'Rewrites')\n }\n}\n\nexport async function getJsPageSizeInKb(\n routerType: ROUTER_TYPE,\n page: string,\n distPath: string,\n buildManifest: BuildManifest,\n appBuildManifest?: AppBuildManifest,\n gzipSize: boolean = true,\n cachedStats?: ComputeFilesManifestResult\n): Promise<[number, number]> {\n const pageManifest = routerType === 'pages' ? buildManifest : appBuildManifest\n if (!pageManifest) {\n throw new Error('expected appBuildManifest with an \"app\" pageType')\n }\n\n // Normalize appBuildManifest keys\n if (routerType === 'app') {\n pageManifest.pages = Object.entries(pageManifest.pages).reduce(\n (acc: Record<string, string[]>, [key, value]) => {\n const newKey = normalizeAppPath(key)\n acc[newKey] = value as string[]\n return acc\n },\n {}\n )\n }\n\n // If stats was not provided, then compute it again.\n const stats =\n cachedStats ??\n (await computeFromManifest(\n { build: buildManifest, app: appBuildManifest },\n distPath,\n gzipSize\n ))\n\n const pageData = stats.router[routerType]\n if (!pageData) {\n // This error shouldn't happen and represents an error in Next.js.\n throw new Error('expected \"app\" manifest data with an \"app\" pageType')\n }\n\n const pagePath =\n routerType === 'pages'\n ? denormalizePagePath(page)\n : denormalizeAppPagePath(page)\n\n const fnFilterJs = (entry: string) => entry.endsWith('.js')\n\n const pageFiles = (pageManifest.pages[pagePath] ?? []).filter(fnFilterJs)\n const appFiles = (pageManifest.pages['/_app'] ?? []).filter(fnFilterJs)\n\n const fnMapRealPath = (dep: string) => `${distPath}/${dep}`\n\n const allFilesReal = unique(pageFiles, appFiles).map(fnMapRealPath)\n const selfFilesReal = difference(\n // Find the files shared by the pages files and the unique files...\n intersect(pageFiles, pageData.unique.files),\n // but without the common files.\n pageData.common.files\n ).map(fnMapRealPath)\n\n const getSize = gzipSize ? fsStatGzip : fsStat\n\n // Try to get the file size from the page data if available, otherwise do a\n // raw compute.\n const getCachedSize = async (file: string) => {\n const key = file.slice(distPath.length + 1)\n const size: number | undefined = stats.sizes.get(key)\n\n // If the size wasn't in the stats bundle, then get it from the file\n // directly.\n if (typeof size !== 'number') {\n return getSize(file)\n }\n\n return size\n }\n\n try {\n // Doesn't use `Promise.all`, as we'd double compute duplicate files. This\n // function is memoized, so the second one will instantly resolve.\n const allFilesSize = sum(await Promise.all(allFilesReal.map(getCachedSize)))\n const selfFilesSize = sum(\n await Promise.all(selfFilesReal.map(getCachedSize))\n )\n\n return [selfFilesSize, allFilesSize]\n } catch {}\n return [-1, -1]\n}\n\ntype PageIsStaticResult = {\n isRoutePPREnabled?: boolean\n isStatic?: boolean\n isAmpOnly?: boolean\n isHybridAmp?: boolean\n hasServerProps?: boolean\n hasStaticProps?: boolean\n prerenderedRoutes: PrerenderedRoute[] | undefined\n prerenderFallbackMode: FallbackMode | undefined\n rootParamKeys: readonly string[] | undefined\n isNextImageImported?: boolean\n traceIncludes?: string[]\n traceExcludes?: string[]\n appConfig?: AppSegmentConfig\n}\n\nexport async function isPageStatic({\n dir,\n page,\n distDir,\n configFileName,\n runtimeEnvConfig,\n httpAgentOptions,\n locales,\n defaultLocale,\n parentId,\n pageRuntime,\n edgeInfo,\n pageType,\n dynamicIO,\n authInterrupts,\n originalAppPath,\n isrFlushToDisk,\n maxMemoryCacheSize,\n nextConfigOutput,\n cacheHandler,\n cacheHandlers,\n cacheLifeProfiles,\n pprConfig,\n buildId,\n sriEnabled,\n}: {\n dir: string\n page: string\n distDir: string\n dynamicIO: boolean\n authInterrupts: boolean\n configFileName: string\n runtimeEnvConfig: any\n httpAgentOptions: NextConfigComplete['httpAgentOptions']\n locales?: readonly string[]\n defaultLocale?: string\n parentId?: any\n edgeInfo?: any\n pageType?: 'pages' | 'app'\n pageRuntime?: ServerRuntime\n originalAppPath?: string\n isrFlushToDisk?: boolean\n maxMemoryCacheSize?: number\n cacheHandler?: string\n cacheHandlers?: Record<string, string | undefined>\n cacheLifeProfiles?: {\n [profile: string]: import('../server/use-cache/cache-life').CacheLife\n }\n nextConfigOutput: 'standalone' | 'export' | undefined\n pprConfig: ExperimentalPPRConfig | undefined\n buildId: string\n sriEnabled: boolean\n}): Promise<PageIsStaticResult> {\n await createIncrementalCache({\n cacheHandler,\n cacheHandlers,\n distDir,\n dir,\n flushToDisk: isrFlushToDisk,\n cacheMaxMemorySize: maxMemoryCacheSize,\n })\n\n const isPageStaticSpan = trace('is-page-static-utils', parentId)\n return isPageStaticSpan\n .traceAsyncFn(async (): Promise<PageIsStaticResult> => {\n require('../shared/lib/runtime-config.external').setConfig(\n runtimeEnvConfig\n )\n setHttpClientAndAgentOptions({\n httpAgentOptions,\n })\n\n let componentsResult: LoadComponentsReturnType\n let prerenderedRoutes: PrerenderedRoute[] | undefined\n let prerenderFallbackMode: FallbackMode | undefined\n let appConfig: AppSegmentConfig = {}\n let rootParamKeys: readonly string[] | undefined\n let isClientComponent: boolean = false\n const pathIsEdgeRuntime = isEdgeRuntime(pageRuntime)\n\n if (pathIsEdgeRuntime) {\n const runtime = await getRuntimeContext({\n paths: edgeInfo.files.map((file: string) => path.join(distDir, file)),\n edgeFunctionEntry: {\n ...edgeInfo,\n wasm: (edgeInfo.wasm ?? []).map((binding: AssetBinding) => ({\n ...binding,\n filePath: path.join(distDir, binding.filePath),\n })),\n },\n name: edgeInfo.name,\n useCache: true,\n distDir,\n })\n const mod = (\n await runtime.context._ENTRIES[`middleware_${edgeInfo.name}`]\n ).ComponentMod\n\n // This is not needed during require.\n const buildManifest = {} as BuildManifest\n\n isClientComponent = isClientReference(mod)\n componentsResult = {\n Component: mod.default,\n Document: mod.Document,\n App: mod.App,\n routeModule: mod.routeModule,\n page,\n ComponentMod: mod,\n pageConfig: mod.config || {},\n buildManifest,\n reactLoadableManifest: {},\n getServerSideProps: mod.getServerSideProps,\n getStaticPaths: mod.getStaticPaths,\n getStaticProps: mod.getStaticProps,\n }\n } else {\n componentsResult = await loadComponents({\n distDir,\n page: originalAppPath || page,\n isAppPath: pageType === 'app',\n isDev: false,\n sriEnabled,\n })\n }\n const Comp = componentsResult.Component as NextComponentType | undefined\n\n const routeModule: RouteModule = componentsResult.routeModule\n\n let isRoutePPREnabled: boolean = false\n\n if (pageType === 'app') {\n const ComponentMod: AppPageModule = componentsResult.ComponentMod\n\n isClientComponent = isClientReference(componentsResult.ComponentMod)\n\n let segments\n try {\n segments = await collectSegments(componentsResult)\n } catch (err) {\n throw new Error(`Failed to collect configuration for ${page}`, {\n cause: err,\n })\n }\n\n appConfig = reduceAppConfig(segments)\n\n if (appConfig.dynamic === 'force-static' && pathIsEdgeRuntime) {\n Log.warn(\n `Page \"${page}\" is using runtime = 'edge' which is currently incompatible with dynamic = 'force-static'. Please remove either \"runtime\" or \"force-static\" for correct behavior`\n )\n }\n\n rootParamKeys = collectRootParamKeys(componentsResult)\n\n // A page supports partial prerendering if it is an app page and either\n // the whole app has PPR enabled or this page has PPR enabled when we're\n // in incremental mode.\n isRoutePPREnabled =\n routeModule.definition.kind === RouteKind.APP_PAGE &&\n !isInterceptionRouteAppPath(page) &&\n checkIsRoutePPREnabled(pprConfig, appConfig)\n\n // If force dynamic was set and we don't have PPR enabled, then set the\n // revalidate to 0.\n // TODO: (PPR) remove this once PPR is enabled by default\n if (appConfig.dynamic === 'force-dynamic' && !isRoutePPREnabled) {\n appConfig.revalidate = 0\n }\n\n // If the page is dynamic and we're not in edge runtime, then we need to\n // build the static paths. The edge runtime doesn't support static\n // paths.\n if (isDynamicRoute(page) && !pathIsEdgeRuntime) {\n ;({ prerenderedRoutes, fallbackMode: prerenderFallbackMode } =\n await buildAppStaticPaths({\n dir,\n page,\n dynamicIO,\n authInterrupts,\n segments,\n distDir,\n requestHeaders: {},\n isrFlushToDisk,\n maxMemoryCacheSize,\n cacheHandler,\n cacheLifeProfiles,\n ComponentMod,\n nextConfigOutput,\n isRoutePPREnabled,\n buildId,\n rootParamKeys,\n }))\n }\n } else {\n if (!Comp || !isValidElementType(Comp) || typeof Comp === 'string') {\n throw new Error('INVALID_DEFAULT_EXPORT')\n }\n }\n\n const hasGetInitialProps = !!Comp?.getInitialProps\n const hasStaticProps = !!componentsResult.getStaticProps\n const hasStaticPaths = !!componentsResult.getStaticPaths\n const hasServerProps = !!componentsResult.getServerSideProps\n\n // A page cannot be prerendered _and_ define a data requirement. That's\n // contradictory!\n if (hasGetInitialProps && hasStaticProps) {\n throw new Error(SSG_GET_INITIAL_PROPS_CONFLICT)\n }\n\n if (hasGetInitialProps && hasServerProps) {\n throw new Error(SERVER_PROPS_GET_INIT_PROPS_CONFLICT)\n }\n\n if (hasStaticProps && hasServerProps) {\n throw new Error(SERVER_PROPS_SSG_CONFLICT)\n }\n\n const pageIsDynamic = isDynamicRoute(page)\n // A page cannot have static parameters if it is not a dynamic page.\n if (hasStaticProps && hasStaticPaths && !pageIsDynamic) {\n throw new Error(\n `getStaticPaths can only be used with dynamic pages, not '${page}'.` +\n `\\nLearn more: https://nextjs.org/docs/routing/dynamic-routes`\n )\n }\n\n if (hasStaticProps && pageIsDynamic && !hasStaticPaths) {\n throw new Error(\n `getStaticPaths is required for dynamic SSG pages and is missing for '${page}'.` +\n `\\nRead more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`\n )\n }\n\n if (hasStaticProps && hasStaticPaths) {\n ;({ prerenderedRoutes, fallbackMode: prerenderFallbackMode } =\n await buildPagesStaticPaths({\n page,\n locales,\n defaultLocale,\n configFileName,\n getStaticPaths: componentsResult.getStaticPaths!,\n }))\n }\n\n const isNextImageImported = (globalThis as any).__NEXT_IMAGE_IMPORTED\n const config: PageConfig = isClientComponent\n ? {}\n : componentsResult.pageConfig\n\n let isStatic = false\n if (!hasStaticProps && !hasGetInitialProps && !hasServerProps) {\n isStatic = true\n }\n\n // When PPR is enabled, any route may be completely static, so\n // mark this route as static.\n if (isRoutePPREnabled) {\n isStatic = true\n }\n\n return {\n isStatic,\n isRoutePPREnabled,\n isHybridAmp: config.amp === 'hybrid',\n isAmpOnly: config.amp === true,\n prerenderFallbackMode,\n prerenderedRoutes,\n rootParamKeys,\n hasStaticProps,\n hasServerProps,\n isNextImageImported,\n appConfig,\n }\n })\n .catch((err) => {\n if (err.message === 'INVALID_DEFAULT_EXPORT') {\n throw err\n }\n console.error(err)\n throw new Error(`Failed to collect page data for ${page}`)\n })\n}\n\ntype ReducedAppConfig = Pick<\n AppSegmentConfig,\n | 'revalidate'\n | 'dynamic'\n | 'fetchCache'\n | 'preferredRegion'\n | 'experimental_ppr'\n | 'runtime'\n | 'maxDuration'\n>\n\n/**\n * Collect the app config from the generate param segments. This only gets a\n * subset of the config options.\n *\n * @param segments the generate param segments\n * @returns the reduced app config\n */\nexport function reduceAppConfig(\n segments: Pick<AppSegment, 'config'>[]\n): ReducedAppConfig {\n const config: ReducedAppConfig = {}\n\n for (const segment of segments) {\n const {\n dynamic,\n fetchCache,\n preferredRegion,\n revalidate,\n experimental_ppr,\n runtime,\n maxDuration,\n } = segment.config || {}\n\n // TODO: should conflicting configs here throw an error\n // e.g. if layout defines one region but page defines another\n\n if (typeof preferredRegion !== 'undefined') {\n config.preferredRegion = preferredRegion\n }\n\n if (typeof dynamic !== 'undefined') {\n config.dynamic = dynamic\n }\n\n if (typeof fetchCache !== 'undefined') {\n config.fetchCache = fetchCache\n }\n\n if (typeof revalidate !== 'undefined') {\n config.revalidate = revalidate\n }\n\n // Any revalidate number overrides false, and shorter revalidate overrides\n // longer (initially).\n if (\n typeof revalidate === 'number' &&\n (typeof config.revalidate !== 'number' || revalidate < config.revalidate)\n ) {\n config.revalidate = revalidate\n }\n\n // If partial prerendering has been set, only override it if the current\n // value is provided as it's resolved from root layout to leaf page.\n if (typeof experimental_ppr !== 'undefined') {\n config.experimental_ppr = experimental_ppr\n }\n\n if (typeof runtime !== 'undefined') {\n config.runtime = runtime\n }\n\n if (typeof maxDuration !== 'undefined') {\n config.maxDuration = maxDuration\n }\n }\n\n return config\n}\n\nexport async function hasCustomGetInitialProps({\n page,\n distDir,\n runtimeEnvConfig,\n checkingApp,\n sriEnabled,\n}: {\n page: string\n distDir: string\n runtimeEnvConfig: any\n checkingApp: boolean\n sriEnabled: boolean\n}): Promise<boolean> {\n require('../shared/lib/runtime-config.external').setConfig(runtimeEnvConfig)\n\n const components = await loadComponents({\n distDir,\n page: page,\n isAppPath: false,\n isDev: false,\n sriEnabled,\n })\n let mod = components.ComponentMod\n\n if (checkingApp) {\n mod = (await mod._app) || mod.default || mod\n } else {\n mod = mod.default || mod\n }\n mod = await mod\n return mod.getInitialProps !== mod.origGetInitialProps\n}\n\nexport async function getDefinedNamedExports({\n page,\n distDir,\n runtimeEnvConfig,\n sriEnabled,\n}: {\n page: string\n distDir: string\n runtimeEnvConfig: any\n sriEnabled: boolean\n}): Promise<ReadonlyArray<string>> {\n require('../shared/lib/runtime-config.external').setConfig(runtimeEnvConfig)\n const components = await loadComponents({\n distDir,\n page: page,\n isAppPath: false,\n isDev: false,\n sriEnabled,\n })\n\n return Object.keys(components.ComponentMod).filter((key) => {\n return typeof components.ComponentMod[key] !== 'undefined'\n })\n}\n\nexport function detectConflictingPaths(\n combinedPages: string[],\n ssgPages: Set<string>,\n additionalGeneratedSSGPaths: Map<string, string[]>\n) {\n const conflictingPaths = new Map<\n string,\n Array<{\n path: string\n page: string\n }>\n >()\n\n const dynamicSsgPages = [...ssgPages].filter((page) => isDynamicRoute(page))\n const additionalSsgPathsByPath: {\n [page: string]: { [path: string]: string }\n } = {}\n\n additionalGeneratedSSGPaths.forEach((paths, pathsPage) => {\n additionalSsgPathsByPath[pathsPage] ||= {}\n paths.forEach((curPath) => {\n const currentPath = curPath.toLowerCase()\n additionalSsgPathsByPath[pathsPage][currentPath] = curPath\n })\n })\n\n additionalGeneratedSSGPaths.forEach((paths, pathsPage) => {\n paths.forEach((curPath) => {\n const lowerPath = curPath.toLowerCase()\n let conflictingPage = combinedPages.find(\n (page) => page.toLowerCase() === lowerPath\n )\n\n if (conflictingPage) {\n conflictingPaths.set(lowerPath, [\n { path: curPath, page: pathsPage },\n { path: conflictingPage, page: conflictingPage },\n ])\n } else {\n let conflictingPath: string | undefined\n\n conflictingPage = dynamicSsgPages.find((page) => {\n if (page === pathsPage) return false\n\n conflictingPath =\n additionalGeneratedSSGPaths.get(page) == null\n ? undefined\n : additionalSsgPathsByPath[page][lowerPath]\n return conflictingPath\n })\n\n if (conflictingPage && conflictingPath) {\n conflictingPaths.set(lowerPath, [\n { path: curPath, page: pathsPage },\n { path: conflictingPath, page: conflictingPage },\n ])\n }\n }\n })\n })\n\n if (conflictingPaths.size > 0) {\n let conflictingPathsOutput = ''\n\n conflictingPaths.forEach((pathItems) => {\n pathItems.forEach((pathItem, idx) => {\n const isDynamic = pathItem.page !== pathItem.path\n\n if (idx > 0) {\n conflictingPathsOutput += 'conflicts with '\n }\n\n conflictingPathsOutput += `path: \"${pathItem.path}\"${\n isDynamic ? ` from page: \"${pathItem.page}\" ` : ' '\n }`\n })\n conflictingPathsOutput += '\\n'\n })\n\n Log.error(\n 'Conflicting paths returned from getStaticPaths, paths must be unique per page.\\n' +\n 'See more info here: https://nextjs.org/docs/messages/conflicting-ssg-paths\\n\\n' +\n conflictingPathsOutput\n )\n process.exit(1)\n }\n}\n\nexport async function copyTracedFiles(\n dir: string,\n distDir: string,\n pageKeys: readonly string[],\n appPageKeys: readonly string[] | undefined,\n tracingRoot: string,\n serverConfig: NextConfigComplete,\n middlewareManifest: MiddlewareManifest,\n hasNodeMiddleware: boolean,\n hasInstrumentationHook: boolean,\n staticPages: Set<string>\n) {\n const outputPath = path.join(distDir, 'standalone')\n let moduleType = false\n const nextConfig = {\n ...serverConfig,\n distDir: `./${path.relative(dir, distDir)}`,\n }\n try {\n const packageJsonPath = path.join(distDir, '../package.json')\n const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf8'))\n moduleType = packageJson.type === 'module'\n } catch {}\n const copiedFiles = new Set()\n await fs.rm(outputPath, { recursive: true, force: true })\n\n async function handleTraceFiles(traceFilePath: string) {\n const traceData = JSON.parse(await fs.readFile(traceFilePath, 'utf8')) as {\n files: string[]\n }\n const copySema = new Sema(10, { capacity: traceData.files.length })\n const traceFileDir = path.dirname(traceFilePath)\n\n await Promise.all(\n traceData.files.map(async (relativeFile) => {\n await copySema.acquire()\n\n const tracedFilePath = path.join(traceFileDir, relativeFile)\n const fileOutputPath = path.join(\n outputPath,\n path.relative(tracingRoot, tracedFilePath)\n )\n\n if (!copiedFiles.has(fileOutputPath)) {\n copiedFiles.add(fileOutputPath)\n\n await fs.mkdir(path.dirname(fileOutputPath), { recursive: true })\n const symlink = await fs.readlink(tracedFilePath).catch(() => null)\n\n if (symlink) {\n try {\n await fs.symlink(symlink, fileOutputPath)\n } catch (e: any) {\n if (e.code !== 'EEXIST') {\n throw e\n }\n }\n } else {\n await fs.copyFile(tracedFilePath, fileOutputPath)\n }\n }\n\n await copySema.release()\n })\n )\n }\n\n async function handleEdgeFunction(page: EdgeFunctionDefinition) {\n async function handleFile(file: string) {\n const originalPath = path.join(distDir, file)\n const fileOutputPath = path.join(\n outputPath,\n path.relative(tracingRoot, distDir),\n file\n )\n await fs.mkdir(path.dirname(fileOutputPath), { recursive: true })\n await fs.copyFile(originalPath, fileOutputPath)\n }\n await Promise.all([\n page.files.map(handleFile),\n page.wasm?.map((file) => handleFile(file.filePath)),\n page.assets?.map((file) => handleFile(file.filePath)),\n ])\n }\n\n const edgeFunctionHandlers: Promise<any>[] = []\n\n for (const middleware of Object.values(middlewareManifest.middleware)) {\n if (isMiddlewareFilename(middleware.name)) {\n edgeFunctionHandlers.push(handleEdgeFunction(middleware))\n }\n }\n\n for (const page of Object.values(middlewareManifest.functions)) {\n edgeFunctionHandlers.push(handleEdgeFunction(page))\n }\n\n await Promise.all(edgeFunctionHandlers)\n\n for (const page of pageKeys) {\n if (middlewareManifest.functions.hasOwnProperty(page)) {\n continue\n }\n const route = normalizePagePath(page)\n\n if (staticPages.has(route)) {\n continue\n }\n\n const pageFile = path.join(\n distDir,\n 'server',\n 'pages',\n `${normalizePagePath(page)}.js`\n )\n const pageTraceFile = `${pageFile}.nft.json`\n await handleTraceFiles(pageTraceFile).catch((err) => {\n if (err.code !== 'ENOENT' || (page !== '/404' && page !== '/500')) {\n Log.warn(`Failed to copy traced files for ${pageFile}`, err)\n }\n })\n }\n\n if (hasNodeMiddleware) {\n const middlewareFile = path.join(distDir, 'server', 'middleware.js')\n const middlewareTrace = `${middlewareFile}.nft.json`\n await handleTraceFiles(middlewareTrace)\n }\n\n if (appPageKeys) {\n for (const page of appPageKeys) {\n if (middlewareManifest.functions.hasOwnProperty(page)) {\n continue\n }\n const pageFile = path.join(distDir, 'server', 'app', `${page}.js`)\n const pageTraceFile = `${pageFile}.nft.json`\n await handleTraceFiles(pageTraceFile).catch((err) => {\n Log.warn(`Failed to copy traced files for ${pageFile}`, err)\n })\n }\n }\n\n if (hasInstrumentationHook) {\n await handleTraceFiles(\n path.join(distDir, 'server', 'instrumentation.js.nft.json')\n )\n }\n\n await handleTraceFiles(path.join(distDir, 'next-server.js.nft.json'))\n const serverOutputPath = path.join(\n outputPath,\n path.relative(tracingRoot, dir),\n 'server.js'\n )\n await fs.mkdir(path.dirname(serverOutputPath), { recursive: true })\n\n await fs.writeFile(\n serverOutputPath,\n `${\n moduleType\n ? `performance.mark('next-start');\nimport path from 'path'\nimport { fileURLToPath } from 'url'\nimport module from 'module'\nconst require = module.createRequire(import.meta.url)\nconst __dirname = fileURLToPath(new URL('.', import.meta.url))\n`\n : `const path = require('path')`\n }\n\nconst dir = path.join(__dirname)\n\nprocess.env.NODE_ENV = 'production'\nprocess.chdir(__dirname)\n\nconst currentPort = parseInt(process.env.PORT, 10) || 3000\nconst hostname = process.env.HOSTNAME || '0.0.0.0'\n\nlet keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)\nconst nextConfig = ${JSON.stringify(nextConfig)}\n\nprocess.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)\n\nrequire('next')\nconst { startServer } = require('next/dist/server/lib/start-server')\n\nif (\n Number.isNaN(keepAliveTimeout) ||\n !Number.isFinite(keepAliveTimeout) ||\n keepAliveTimeout < 0\n) {\n keepAliveTimeout = undefined\n}\n\nstartServer({\n dir,\n isDev: false,\n config: nextConfig,\n hostname,\n port: currentPort,\n allowRetry: false,\n keepAliveTimeout,\n}).catch((err) => {\n console.error(err);\n process.exit(1);\n});`\n )\n}\n\nexport function isReservedPage(page: string) {\n return RESERVED_PAGE.test(page)\n}\n\nexport function isAppBuiltinNotFoundPage(page: string) {\n return /next[\\\\/]dist[\\\\/]client[\\\\/]components[\\\\/]not-found-error/.test(\n page\n )\n}\n\nexport function isCustomErrorPage(page: string) {\n return page === '/404' || page === '/500'\n}\n\nexport function isMiddlewareFile(file: string) {\n return (\n file === `/${MIDDLEWARE_FILENAME}` || file === `/src/${MIDDLEWARE_FILENAME}`\n )\n}\n\nexport function isInstrumentationHookFile(file: string) {\n return (\n file === `/${INSTRUMENTATION_HOOK_FILENAME}` ||\n file === `/src/${INSTRUMENTATION_HOOK_FILENAME}`\n )\n}\n\nexport function getPossibleInstrumentationHookFilenames(\n folder: string,\n extensions: string[]\n) {\n const files = []\n for (const extension of extensions) {\n files.push(\n path.join(folder, `${INSTRUMENTATION_HOOK_FILENAME}.${extension}`),\n path.join(folder, `src`, `${INSTRUMENTATION_HOOK_FILENAME}.${extension}`)\n )\n }\n\n return files\n}\n\nexport function getPossibleMiddlewareFilenames(\n folder: string,\n extensions: string[]\n) {\n return extensions.map((extension) =>\n path.join(folder, `${MIDDLEWARE_FILENAME}.${extension}`)\n )\n}\n\nexport class NestedMiddlewareError extends Error {\n constructor(\n nestedFileNames: string[],\n mainDir: string,\n pagesOrAppDir: string\n ) {\n super(\n `Nested Middleware is not allowed, found:\\n` +\n `${nestedFileNames.map((file) => `pages${file}`).join('\\n')}\\n` +\n `Please move your code to a single file at ${path.join(\n path.posix.sep,\n path.relative(mainDir, path.resolve(pagesOrAppDir, '..')),\n 'middleware'\n )} instead.\\n` +\n `Read More - https://nextjs.org/docs/messages/nested-middleware`\n )\n }\n}\n\nexport function getSupportedBrowsers(\n dir: string,\n isDevelopment: boolean\n): string[] {\n let browsers: any\n try {\n const browsersListConfig = browserslist.loadConfig({\n path: dir,\n env: isDevelopment ? 'development' : 'production',\n })\n // Running `browserslist` resolves `extends` and other config features into a list of browsers\n if (browsersListConfig && browsersListConfig.length > 0) {\n browsers = browserslist(browsersListConfig)\n }\n } catch {}\n\n // When user has browserslist use that target\n if (browsers && browsers.length > 0) {\n return browsers\n }\n\n // Uses modern browsers as the default.\n return MODERN_BROWSERSLIST_TARGET\n}\n\nexport function isWebpackServerOnlyLayer(\n layer: WebpackLayerName | null | undefined\n): boolean {\n return Boolean(\n layer && WEBPACK_LAYERS.GROUP.serverOnly.includes(layer as any)\n )\n}\n\nexport function isWebpackClientOnlyLayer(\n layer: WebpackLayerName | null | undefined\n): boolean {\n return Boolean(\n layer && WEBPACK_LAYERS.GROUP.clientOnly.includes(layer as any)\n )\n}\n\nexport function isWebpackDefaultLayer(\n layer: WebpackLayerName | null | undefined\n): boolean {\n return (\n layer === null ||\n layer === undefined ||\n layer === WEBPACK_LAYERS.pagesDirBrowser ||\n layer === WEBPACK_LAYERS.pagesDirEdge ||\n layer === WEBPACK_LAYERS.pagesDirNode\n )\n}\n\nexport function isWebpackBundledLayer(\n layer: WebpackLayerName | null | undefined\n): boolean {\n return Boolean(layer && WEBPACK_LAYERS.GROUP.bundled.includes(layer as any))\n}\n\nexport function isWebpackAppPagesLayer(\n layer: WebpackLayerName | null | undefined\n): boolean {\n return Boolean(layer && WEBPACK_LAYERS.GROUP.appPages.includes(layer as any))\n}\n\nexport function collectMeta({\n status,\n headers,\n}: {\n status?: number\n headers?: OutgoingHttpHeaders\n}): {\n status?: number\n headers?: Record<string, string>\n} {\n const meta: {\n status?: number\n headers?: Record<string, string>\n } = {}\n\n if (status !== 200) {\n meta.status = status\n }\n\n if (headers && Object.keys(headers).length) {\n meta.headers = {}\n\n // normalize header values as initialHeaders\n // must be Record<string, string>\n for (const key in headers) {\n // set-cookie is already handled - the middleware cookie setting case\n // isn't needed for the prerender manifest since it can't read cookies\n if (key === 'x-middleware-set-cookie') continue\n\n let value = headers[key]\n\n if (Array.isArray(value)) {\n if (key === 'set-cookie') {\n value = value.join(',')\n } else {\n value = value[value.length - 1]\n }\n }\n\n if (typeof value === 'string') {\n meta.headers[key] = value\n }\n }\n }\n\n return meta\n}\n"],"names":["NestedMiddlewareError","collectMeta","collectRoutesUsingEdgeRuntime","computeFromManifest","copyTracedFiles","detectConflictingPaths","difference","getDefinedNamedExports","getJsPageSizeInKb","getPossibleInstrumentationHookFilenames","getPossibleMiddlewareFilenames","getSupportedBrowsers","hasCustomGetInitialProps","isAppBuiltinNotFoundPage","isCustomErrorPage","isInstrumentationHookFile","isInstrumentationHookFilename","isMiddlewareFile","isMiddlewareFilename","isPageStatic","isReservedPage","isWebpackAppPagesLayer","isWebpackBundledLayer","isWebpackClientOnlyLayer","isWebpackDefaultLayer","isWebpackServerOnlyLayer","printCustomRoutes","printTreeView","reduceAppConfig","unique","print","console","log","RESERVED_PAGE","fileGzipStats","fsStatGzip","file","cached","getGzipSize","fileSize","fs","stat","size","fileStats","fsStat","main","sub","Set","a","b","filter","x","has","intersect","sum","reduce","cachedBuildManifest","cachedAppBuildManifest","lastCompute","lastComputePageInfo","manifests","distPath","gzipSize","pageInfos","files","Object","is","build","app","countBuildFiles","map","key","manifest","set","Infinity","get","pages","each","Map","expected","pageInfo","isHybridAmp","getSize","stats","Promise","all","keys","f","path","join","groupFiles","listing","entries","shapeGroup","group","acc","push","total","len","common","router","undefined","sizes","MIDDLEWARE_FILENAME","INSTRUMENTATION_HOOK_FILENAME","filterAndSortList","list","routeType","hasCustomApp","e","slice","sort","localeCompare","input","routesUsingEdgeRuntime","route","info","isEdgeRuntime","runtime","lists","buildId","pagesDir","pageExtensions","buildManifest","appBuildManifest","middlewareManifest","useStaticPages404","getPrettySize","_size","prettyBytes","white","bold","MIN_DURATION","getPrettyDuration","_duration","duration","green","yellow","red","getCleanName","fileName","replace","findPageFile","usedSymbols","messages","printFileTree","routerType","filteredPages","length","entry","underline","forEach","item","i","arr","border","ampFirst","ampFirstPages","includes","totalDuration","pageDuration","ssgPageDurations","symbol","isRoutePPREnabled","hasEmptyPrelude","isDynamicAppRoute","hasPostponed","isStatic","isSSG","add","initialRevalidateSeconds","cyan","totalSize","uniqueCssFiles","endsWith","contSymbol","index","innerSymbol","ssgPageRoutes","totalRoutes","routes","some","d","previewPages","Math","min","routesWithDuration","idx","remainingRoutes","remaining","avgDuration","round","sharedFilesSize","sharedFiles","sharedCssFiles","sharedJsChunks","tenKbLimit","restChunkSize","restChunkCount","originalName","cleanName","UNDERSCORE_NOT_FOUND_ROUTE","middlewareInfo","middleware","middlewareSizes","dep","textTable","align","stringLength","str","stripAnsi","staticFunctionInfo","redirects","rewrites","headers","printRoutes","type","isRedirects","isHeaders","routesStr","routeStr","source","r","destination","statusCode","permanent","header","last","value","combinedRewrites","beforeFiles","afterFiles","fallback","page","cachedStats","pageManifest","Error","newKey","normalizeAppPath","pageData","pagePath","denormalizePagePath","denormalizeAppPagePath","fnFilterJs","pageFiles","appFiles","fnMapRealPath","allFilesReal","selfFilesReal","getCachedSize","allFilesSize","selfFilesSize","dir","distDir","configFileName","runtimeEnvConfig","httpAgentOptions","locales","defaultLocale","parentId","pageRuntime","edgeInfo","pageType","dynamicIO","authInterrupts","originalAppPath","isrFlushToDisk","maxMemoryCacheSize","nextConfigOutput","cacheHandler","cacheHandlers","cacheLifeProfiles","pprConfig","sriEnabled","createIncrementalCache","flushToDisk","cacheMaxMemorySize","isPageStaticSpan","trace","traceAsyncFn","require","setConfig","setHttpClientAndAgentOptions","componentsResult","prerenderedRoutes","prerenderFallbackMode","appConfig","rootParamKeys","isClientComponent","pathIsEdgeRuntime","getRuntimeContext","paths","edgeFunctionEntry","wasm","binding","filePath","name","useCache","mod","context","_ENTRIES","ComponentMod","isClientReference","Component","default","Document","App","routeModule","pageConfig","config","reactLoadableManifest","getServerSideProps","getStaticPaths","getStaticProps","loadComponents","isAppPath","isDev","Comp","segments","collectSegments","err","cause","dynamic","Log","warn","collectRootParamKeys","definition","kind","RouteKind","APP_PAGE","isInterceptionRouteAppPath","checkIsRoutePPREnabled","revalidate","isDynamicRoute","fallbackMode","buildAppStaticPaths","requestHeaders","isValidElementType","hasGetInitialProps","getInitialProps","hasStaticProps","hasStaticPaths","hasServerProps","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","pageIsDynamic","buildPagesStaticPaths","isNextImageImported","globalThis","__NEXT_IMAGE_IMPORTED","amp","isAmpOnly","catch","message","error","segment","fetchCache","preferredRegion","experimental_ppr","maxDuration","checkingApp","components","_app","origGetInitialProps","combinedPages","ssgPages","additionalGeneratedSSGPaths","conflictingPaths","dynamicSsgPages","additionalSsgPathsByPath","pathsPage","curPath","currentPath","toLowerCase","lowerPath","conflictingPage","find","conflictingPath","conflictingPathsOutput","pathItems","pathItem","isDynamic","process","exit","pageKeys","appPageKeys","tracingRoot","serverConfig","hasNodeMiddleware","hasInstrumentationHook","staticPages","outputPath","moduleType","nextConfig","relative","packageJsonPath","packageJson","JSON","parse","readFile","copiedFiles","rm","recursive","force","handleTraceFiles","traceFilePath","traceData","copySema","Sema","capacity","traceFileDir","dirname","relativeFile","acquire","tracedFilePath","fileOutputPath","mkdir","symlink","readlink","code","copyFile","release","handleEdgeFunction","handleFile","originalPath","assets","edgeFunctionHandlers","values","functions","hasOwnProperty","normalizePagePath","pageFile","pageTraceFile","middlewareFile","middlewareTrace","serverOutputPath","writeFile","stringify","test","folder","extensions","extension","constructor","nestedFileNames","mainDir","pagesOrAppDir","posix","sep","resolve","isDevelopment","browsers","browsersListConfig","browserslist","loadConfig","env","MODERN_BROWSERSLIST_TARGET","layer","Boolean","WEBPACK_LAYERS","GROUP","serverOnly","clientOnly","pagesDirBrowser","pagesDirEdge","pagesDirNode","bundled","appPages","status","meta","Array","isArray"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/build/utils.ts"],"sourcesContent":["import type { NextConfigComplete } from '../server/config-shared'\nimport type { ExperimentalPPRConfig } from '../server/lib/experimental/ppr'\nimport type { AppBuildManifest } from './webpack/plugins/app-build-manifest-plugin'\nimport type { AssetBinding } from './webpack/loaders/get-module-build-info'\nimport type { PageConfig, ServerRuntime } from '../types'\nimport type { BuildManifest } from '../server/get-page-files'\nimport type {\n Redirect,\n Rewrite,\n Header,\n CustomRoutes,\n} from '../lib/load-custom-routes'\nimport type {\n EdgeFunctionDefinition,\n MiddlewareManifest,\n} from './webpack/plugins/middleware-plugin'\nimport type { WebpackLayerName } from '../lib/constants'\nimport type { AppPageModule } from '../server/route-modules/app-page/module'\nimport type { RouteModule } from '../server/route-modules/route-module'\nimport type { NextComponentType } from '../shared/lib/utils'\n\nimport '../server/require-hook'\nimport '../server/node-polyfill-crypto'\nimport '../server/node-environment'\n\nimport {\n green,\n yellow,\n red,\n cyan,\n white,\n bold,\n underline,\n} from '../lib/picocolors'\nimport getGzipSize from 'next/dist/compiled/gzip-size'\nimport textTable from 'next/dist/compiled/text-table'\nimport path from 'path'\nimport { promises as fs } from 'fs'\nimport { isValidElementType } from 'next/dist/compiled/react-is'\nimport stripAnsi from 'next/dist/compiled/strip-ansi'\nimport browserslist from 'next/dist/compiled/browserslist'\nimport {\n SSG_GET_INITIAL_PROPS_CONFLICT,\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT,\n SERVER_PROPS_SSG_CONFLICT,\n MIDDLEWARE_FILENAME,\n INSTRUMENTATION_HOOK_FILENAME,\n WEBPACK_LAYERS,\n} from '../lib/constants'\nimport {\n MODERN_BROWSERSLIST_TARGET,\n UNDERSCORE_NOT_FOUND_ROUTE,\n} from '../shared/lib/constants'\nimport prettyBytes from '../lib/pretty-bytes'\nimport { isDynamicRoute } from '../shared/lib/router/utils/is-dynamic'\nimport { findPageFile } from '../server/lib/find-page-file'\nimport { isEdgeRuntime } from '../lib/is-edge-runtime'\nimport * as Log from './output/log'\nimport { loadComponents } from '../server/load-components'\nimport type { LoadComponentsReturnType } from '../server/load-components'\nimport { trace } from '../trace'\nimport { setHttpClientAndAgentOptions } from '../server/setup-http-agent-env'\nimport { Sema } from 'next/dist/compiled/async-sema'\nimport { denormalizePagePath } from '../shared/lib/page-path/denormalize-page-path'\nimport { normalizePagePath } from '../shared/lib/page-path/normalize-page-path'\nimport { getRuntimeContext } from '../server/web/sandbox'\nimport { isClientReference } from '../lib/client-and-server-references'\nimport { normalizeAppPath } from '../shared/lib/router/utils/app-paths'\nimport { denormalizeAppPagePath } from '../shared/lib/page-path/denormalize-app-path'\nimport { RouteKind } from '../server/route-kind'\nimport type { PageExtensions } from './page-extensions-type'\nimport { isInterceptionRouteAppPath } from '../server/lib/interception-routes'\nimport { checkIsRoutePPREnabled } from '../server/lib/experimental/ppr'\nimport type { FallbackMode } from '../lib/fallback'\nimport type { OutgoingHttpHeaders } from 'http'\nimport type { AppSegmentConfig } from './segment-config/app/app-segment-config'\nimport type { AppSegment } from './segment-config/app/app-segments'\nimport { collectSegments } from './segment-config/app/app-segments'\nimport { createIncrementalCache } from '../export/helpers/create-incremental-cache'\nimport { collectRootParamKeys } from './segment-config/app/collect-root-param-keys'\nimport { buildAppStaticPaths } from './static-paths/app'\nimport { buildPagesStaticPaths } from './static-paths/pages'\nimport type { PrerenderedRoute } from './static-paths/types'\n\nexport type ROUTER_TYPE = 'pages' | 'app'\n\n// Use `print()` for expected console output\nconst print = console.log\n\nconst RESERVED_PAGE = /^\\/(_app|_error|_document|api(\\/|$))/\nconst fileGzipStats: { [k: string]: Promise<number> | undefined } = {}\nconst fsStatGzip = (file: string) => {\n const cached = fileGzipStats[file]\n if (cached) return cached\n return (fileGzipStats[file] = getGzipSize.file(file))\n}\n\nconst fileSize = async (file: string) => (await fs.stat(file)).size\n\nconst fileStats: { [k: string]: Promise<number> | undefined } = {}\nconst fsStat = (file: string) => {\n const cached = fileStats[file]\n if (cached) return cached\n return (fileStats[file] = fileSize(file))\n}\n\nexport function unique<T>(main: ReadonlyArray<T>, sub: ReadonlyArray<T>): T[] {\n return [...new Set([...main, ...sub])]\n}\n\nexport function difference<T>(\n main: ReadonlyArray<T> | ReadonlySet<T>,\n sub: ReadonlyArray<T> | ReadonlySet<T>\n): T[] {\n const a = new Set(main)\n const b = new Set(sub)\n return [...a].filter((x) => !b.has(x))\n}\n\n/**\n * Return an array of the items shared by both arrays.\n */\nfunction intersect<T>(main: ReadonlyArray<T>, sub: ReadonlyArray<T>): T[] {\n const a = new Set(main)\n const b = new Set(sub)\n return [...new Set([...a].filter((x) => b.has(x)))]\n}\n\nfunction sum(a: ReadonlyArray<number>): number {\n return a.reduce((size, stat) => size + stat, 0)\n}\n\ntype ComputeFilesGroup = {\n files: ReadonlyArray<string>\n size: {\n total: number\n }\n}\n\ntype ComputeFilesManifest = {\n unique: ComputeFilesGroup\n common: ComputeFilesGroup\n}\n\ntype ComputeFilesManifestResult = {\n router: {\n pages: ComputeFilesManifest\n app?: ComputeFilesManifest\n }\n sizes: Map<string, number>\n}\n\nlet cachedBuildManifest: BuildManifest | undefined\nlet cachedAppBuildManifest: AppBuildManifest | undefined\n\nlet lastCompute: ComputeFilesManifestResult | undefined\nlet lastComputePageInfo: boolean | undefined\n\nexport async function computeFromManifest(\n manifests: {\n build: BuildManifest\n app?: AppBuildManifest\n },\n distPath: string,\n gzipSize: boolean = true,\n pageInfos?: Map<string, PageInfo>\n): Promise<ComputeFilesManifestResult> {\n if (\n Object.is(cachedBuildManifest, manifests.build) &&\n lastComputePageInfo === !!pageInfos &&\n Object.is(cachedAppBuildManifest, manifests.app)\n ) {\n return lastCompute!\n }\n\n // Determine the files that are in pages and app and count them, this will\n // tell us if they are unique or common.\n\n const countBuildFiles = (\n map: Map<string, number>,\n key: string,\n manifest: Record<string, ReadonlyArray<string>>\n ) => {\n for (const file of manifest[key]) {\n if (key === '/_app') {\n map.set(file, Infinity)\n } else if (map.has(file)) {\n map.set(file, map.get(file)! + 1)\n } else {\n map.set(file, 1)\n }\n }\n }\n\n const files: {\n pages: {\n each: Map<string, number>\n expected: number\n }\n app?: {\n each: Map<string, number>\n expected: number\n }\n } = {\n pages: { each: new Map(), expected: 0 },\n }\n\n for (const key in manifests.build.pages) {\n if (pageInfos) {\n const pageInfo = pageInfos.get(key)\n // don't include AMP pages since they don't rely on shared bundles\n // AMP First pages are not under the pageInfos key\n if (pageInfo?.isHybridAmp) {\n continue\n }\n }\n\n files.pages.expected++\n countBuildFiles(files.pages.each, key, manifests.build.pages)\n }\n\n // Collect the build files form the app manifest.\n if (manifests.app?.pages) {\n files.app = { each: new Map<string, number>(), expected: 0 }\n\n for (const key in manifests.app.pages) {\n files.app.expected++\n countBuildFiles(files.app.each, key, manifests.app.pages)\n }\n }\n\n const getSize = gzipSize ? fsStatGzip : fsStat\n const stats = new Map<string, number>()\n\n // For all of the files in the pages and app manifests, compute the file size\n // at once.\n\n await Promise.all(\n [\n ...new Set<string>([\n ...files.pages.each.keys(),\n ...(files.app?.each.keys() ?? []),\n ]),\n ].map(async (f) => {\n try {\n // Add the file size to the stats.\n stats.set(f, await getSize(path.join(distPath, f)))\n } catch {}\n })\n )\n\n const groupFiles = async (listing: {\n each: Map<string, number>\n expected: number\n }): Promise<ComputeFilesManifest> => {\n const entries = [...listing.each.entries()]\n\n const shapeGroup = (group: [string, number][]): ComputeFilesGroup =>\n group.reduce(\n (acc, [f]) => {\n acc.files.push(f)\n\n const size = stats.get(f)\n if (typeof size === 'number') {\n acc.size.total += size\n }\n\n return acc\n },\n {\n files: [] as string[],\n size: {\n total: 0,\n },\n }\n )\n\n return {\n unique: shapeGroup(entries.filter(([, len]) => len === 1)),\n common: shapeGroup(\n entries.filter(\n ([, len]) => len === listing.expected || len === Infinity\n )\n ),\n }\n }\n\n lastCompute = {\n router: {\n pages: await groupFiles(files.pages),\n app: files.app ? await groupFiles(files.app) : undefined,\n },\n sizes: stats,\n }\n\n cachedBuildManifest = manifests.build\n cachedAppBuildManifest = manifests.app\n lastComputePageInfo = !!pageInfos\n return lastCompute!\n}\n\nexport function isMiddlewareFilename(file?: string | null) {\n return file === MIDDLEWARE_FILENAME || file === `src/${MIDDLEWARE_FILENAME}`\n}\n\nexport function isInstrumentationHookFilename(file?: string | null) {\n return (\n file === INSTRUMENTATION_HOOK_FILENAME ||\n file === `src/${INSTRUMENTATION_HOOK_FILENAME}`\n )\n}\n\nconst filterAndSortList = (\n list: ReadonlyArray<string>,\n routeType: ROUTER_TYPE,\n hasCustomApp: boolean\n) => {\n let pages: string[]\n if (routeType === 'app') {\n // filter out static app route of /favicon.ico\n pages = list.filter((e) => e !== '/favicon.ico')\n } else {\n // filter built-in pages\n pages = list\n .slice()\n .filter(\n (e) =>\n !(\n e === '/_document' ||\n e === '/_error' ||\n (!hasCustomApp && e === '/_app')\n )\n )\n }\n return pages.sort((a, b) => a.localeCompare(b))\n}\n\nexport interface PageInfo {\n isHybridAmp?: boolean\n size: number\n totalSize: number\n isStatic: boolean\n isSSG: boolean\n /**\n * If true, it means that the route has partial prerendering enabled.\n */\n isRoutePPREnabled: boolean\n ssgPageRoutes: string[] | null\n initialRevalidateSeconds: number | false\n pageDuration: number | undefined\n ssgPageDurations: number[] | undefined\n runtime: ServerRuntime\n hasEmptyPrelude?: boolean\n hasPostponed?: boolean\n isDynamicAppRoute?: boolean\n}\n\nexport type PageInfos = Map<string, PageInfo>\n\nexport interface RoutesUsingEdgeRuntime {\n [route: string]: 0\n}\n\nexport function collectRoutesUsingEdgeRuntime(\n input: PageInfos\n): RoutesUsingEdgeRuntime {\n const routesUsingEdgeRuntime: RoutesUsingEdgeRuntime = {}\n for (const [route, info] of input.entries()) {\n if (isEdgeRuntime(info.runtime)) {\n routesUsingEdgeRuntime[route] = 0\n }\n }\n\n return routesUsingEdgeRuntime\n}\n\nexport async function printTreeView(\n lists: {\n pages: ReadonlyArray<string>\n app: ReadonlyArray<string> | undefined\n },\n pageInfos: Map<string, PageInfo>,\n {\n distPath,\n buildId,\n pagesDir,\n pageExtensions,\n buildManifest,\n appBuildManifest,\n middlewareManifest,\n useStaticPages404,\n gzipSize = true,\n }: {\n distPath: string\n buildId: string\n pagesDir?: string\n pageExtensions: PageExtensions\n buildManifest: BuildManifest\n appBuildManifest?: AppBuildManifest\n middlewareManifest: MiddlewareManifest\n useStaticPages404: boolean\n gzipSize?: boolean\n }\n) {\n const getPrettySize = (\n _size: number,\n { strong }: { strong?: boolean } = {}\n ): string => {\n const size = process.env.__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT\n ? 'N/A kB'\n : prettyBytes(_size)\n\n return strong ? white(bold(size)) : size\n }\n\n // Can be overridden for test purposes to omit the build duration output.\n const MIN_DURATION = process.env.__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT\n ? Infinity // Don't ever log build durations.\n : 300\n\n const getPrettyDuration = (_duration: number): string => {\n const duration = `${_duration} ms`\n // green for 300-1000ms\n if (_duration < 1000) return green(duration)\n // yellow for 1000-2000ms\n if (_duration < 2000) return yellow(duration)\n // red for >= 2000ms\n return red(bold(duration))\n }\n\n const getCleanName = (fileName: string) =>\n fileName\n // Trim off `static/`\n .replace(/^static\\//, '')\n // Re-add `static/` for root files\n .replace(/^<buildId>/, 'static')\n // Remove file hash\n .replace(/(?:^|[.-])([0-9a-z]{6})[0-9a-z]{14}(?=\\.)/, '.$1')\n\n // Check if we have a custom app.\n const hasCustomApp = !!(\n pagesDir && (await findPageFile(pagesDir, '/_app', pageExtensions, false))\n )\n\n // Collect all the symbols we use so we can print the icons out.\n const usedSymbols = new Set()\n\n const messages: [string, string, string][] = []\n\n const stats = await computeFromManifest(\n { build: buildManifest, app: appBuildManifest },\n distPath,\n gzipSize,\n pageInfos\n )\n\n const printFileTree = async ({\n list,\n routerType,\n }: {\n list: ReadonlyArray<string>\n routerType: ROUTER_TYPE\n }) => {\n const filteredPages = filterAndSortList(list, routerType, hasCustomApp)\n if (filteredPages.length === 0) {\n return\n }\n\n messages.push(\n [\n routerType === 'app' ? 'Route (app)' : 'Route (pages)',\n 'Size',\n 'First Load JS',\n ].map((entry) => underline(entry)) as [string, string, string]\n )\n\n filteredPages.forEach((item, i, arr) => {\n const border =\n i === 0\n ? arr.length === 1\n ? '─'\n : '┌'\n : i === arr.length - 1\n ? '└'\n : '├'\n\n const pageInfo = pageInfos.get(item)\n const ampFirst = buildManifest.ampFirstPages.includes(item)\n const totalDuration =\n (pageInfo?.pageDuration || 0) +\n (pageInfo?.ssgPageDurations?.reduce((a, b) => a + (b || 0), 0) || 0)\n\n let symbol: string\n\n if (item === '/_app' || item === '/_app.server') {\n symbol = ' '\n } else if (isEdgeRuntime(pageInfo?.runtime)) {\n symbol = 'ƒ'\n } else if (pageInfo?.isRoutePPREnabled) {\n if (\n // If the page has an empty prelude, then it's equivalent to a dynamic page\n pageInfo?.hasEmptyPrelude ||\n // ensure we don't mark dynamic paths that postponed as being dynamic\n // since in this case we're able to partially prerender it\n (pageInfo.isDynamicAppRoute && !pageInfo.hasPostponed)\n ) {\n symbol = 'ƒ'\n } else if (!pageInfo?.hasPostponed) {\n symbol = '○'\n } else {\n symbol = '◐'\n }\n } else if (pageInfo?.isStatic) {\n symbol = '○'\n } else if (pageInfo?.isSSG) {\n symbol = '●'\n } else {\n symbol = 'ƒ'\n }\n\n usedSymbols.add(symbol)\n\n if (pageInfo?.initialRevalidateSeconds) usedSymbols.add('ISR')\n\n messages.push([\n `${border} ${symbol} ${\n pageInfo?.initialRevalidateSeconds\n ? `${item} (ISR: ${pageInfo?.initialRevalidateSeconds} Seconds)`\n : item\n }${\n totalDuration > MIN_DURATION\n ? ` (${getPrettyDuration(totalDuration)})`\n : ''\n }`,\n pageInfo\n ? ampFirst\n ? cyan('AMP')\n : pageInfo.size >= 0\n ? getPrettySize(pageInfo.size)\n : ''\n : '',\n pageInfo\n ? ampFirst\n ? cyan('AMP')\n : pageInfo.size >= 0\n ? getPrettySize(pageInfo.totalSize, { strong: true })\n : ''\n : '',\n ])\n\n const uniqueCssFiles =\n buildManifest.pages[item]?.filter(\n (file) =>\n file.endsWith('.css') &&\n stats.router[routerType]?.unique.files.includes(file)\n ) || []\n\n if (uniqueCssFiles.length > 0) {\n const contSymbol = i === arr.length - 1 ? ' ' : '├'\n\n uniqueCssFiles.forEach((file, index, { length }) => {\n const innerSymbol = index === length - 1 ? '└' : '├'\n const size = stats.sizes.get(file)\n messages.push([\n `${contSymbol} ${innerSymbol} ${getCleanName(file)}`,\n typeof size === 'number' ? getPrettySize(size) : '',\n '',\n ])\n })\n }\n\n if (pageInfo?.ssgPageRoutes?.length) {\n const totalRoutes = pageInfo.ssgPageRoutes.length\n const contSymbol = i === arr.length - 1 ? ' ' : '├'\n\n let routes: { route: string; duration: number; avgDuration?: number }[]\n if (\n pageInfo.ssgPageDurations &&\n pageInfo.ssgPageDurations.some((d) => d > MIN_DURATION)\n ) {\n const previewPages = totalRoutes === 8 ? 8 : Math.min(totalRoutes, 7)\n const routesWithDuration = pageInfo.ssgPageRoutes\n .map((route, idx) => ({\n route,\n duration: pageInfo.ssgPageDurations![idx] || 0,\n }))\n .sort(({ duration: a }, { duration: b }) =>\n // Sort by duration\n // keep too small durations in original order at the end\n a <= MIN_DURATION && b <= MIN_DURATION ? 0 : b - a\n )\n routes = routesWithDuration.slice(0, previewPages)\n const remainingRoutes = routesWithDuration.slice(previewPages)\n if (remainingRoutes.length) {\n const remaining = remainingRoutes.length\n const avgDuration = Math.round(\n remainingRoutes.reduce(\n (total, { duration }) => total + duration,\n 0\n ) / remainingRoutes.length\n )\n routes.push({\n route: `[+${remaining} more paths]`,\n duration: 0,\n avgDuration,\n })\n }\n } else {\n const previewPages = totalRoutes === 4 ? 4 : Math.min(totalRoutes, 3)\n routes = pageInfo.ssgPageRoutes\n .slice(0, previewPages)\n .map((route) => ({ route, duration: 0 }))\n if (totalRoutes > previewPages) {\n const remaining = totalRoutes - previewPages\n routes.push({ route: `[+${remaining} more paths]`, duration: 0 })\n }\n }\n\n routes.forEach(\n ({ route, duration, avgDuration }, index, { length }) => {\n const innerSymbol = index === length - 1 ? '└' : '├'\n messages.push([\n `${contSymbol} ${innerSymbol} ${route}${\n duration > MIN_DURATION\n ? ` (${getPrettyDuration(duration)})`\n : ''\n }${\n avgDuration && avgDuration > MIN_DURATION\n ? ` (avg ${getPrettyDuration(avgDuration)})`\n : ''\n }`,\n '',\n '',\n ])\n }\n )\n }\n })\n\n const sharedFilesSize = stats.router[routerType]?.common.size.total\n\n const sharedFiles = process.env.__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT\n ? []\n : stats.router[routerType]?.common.files ?? []\n\n messages.push([\n '+ First Load JS shared by all',\n typeof sharedFilesSize === 'number'\n ? getPrettySize(sharedFilesSize, { strong: true })\n : '',\n '',\n ])\n const sharedCssFiles: string[] = []\n const sharedJsChunks = [\n ...sharedFiles\n .filter((file) => {\n if (file.endsWith('.css')) {\n sharedCssFiles.push(file)\n return false\n }\n return true\n })\n .map((e) => e.replace(buildId, '<buildId>'))\n .sort(),\n ...sharedCssFiles.map((e) => e.replace(buildId, '<buildId>')).sort(),\n ]\n\n // if the some chunk are less than 10kb or we don't know the size, we only show the total size of the rest\n const tenKbLimit = 10 * 1000\n let restChunkSize = 0\n let restChunkCount = 0\n sharedJsChunks.forEach((fileName, index, { length }) => {\n const innerSymbol = index + restChunkCount === length - 1 ? '└' : '├'\n\n const originalName = fileName.replace('<buildId>', buildId)\n const cleanName = getCleanName(fileName)\n const size = stats.sizes.get(originalName)\n\n if (!size || size < tenKbLimit) {\n restChunkCount++\n restChunkSize += size || 0\n return\n }\n\n messages.push([` ${innerSymbol} ${cleanName}`, getPrettySize(size), ''])\n })\n\n if (restChunkCount > 0) {\n messages.push([\n ` └ other shared chunks (total)`,\n getPrettySize(restChunkSize),\n '',\n ])\n }\n }\n\n // If enabled, then print the tree for the app directory.\n if (lists.app && stats.router.app) {\n await printFileTree({\n routerType: 'app',\n list: lists.app,\n })\n\n messages.push(['', '', ''])\n }\n\n pageInfos.set('/404', {\n ...(pageInfos.get('/404') || pageInfos.get('/_error'))!,\n isStatic: useStaticPages404,\n })\n\n // If there's no app /_notFound page present, then the 404 is still using the pages/404\n if (\n !lists.pages.includes('/404') &&\n !lists.app?.includes(UNDERSCORE_NOT_FOUND_ROUTE)\n ) {\n lists.pages = [...lists.pages, '/404']\n }\n\n // Print the tree view for the pages directory.\n await printFileTree({\n routerType: 'pages',\n list: lists.pages,\n })\n\n const middlewareInfo = middlewareManifest.middleware?.['/']\n if (middlewareInfo?.files.length > 0) {\n const middlewareSizes = await Promise.all(\n middlewareInfo.files\n .map((dep) => `${distPath}/${dep}`)\n .map(gzipSize ? fsStatGzip : fsStat)\n )\n\n messages.push(['', '', ''])\n messages.push([\n 'ƒ Middleware',\n getPrettySize(sum(middlewareSizes), { strong: true }),\n '',\n ])\n }\n\n print(\n textTable(messages, {\n align: ['l', 'l', 'r'],\n stringLength: (str) => stripAnsi(str).length,\n })\n )\n\n const staticFunctionInfo =\n lists.app && stats.router.app ? 'generateStaticParams' : 'getStaticProps'\n print()\n print(\n textTable(\n [\n usedSymbols.has('○') && [\n '○',\n '(Static)',\n 'prerendered as static content',\n ],\n usedSymbols.has('●') && [\n '●',\n '(SSG)',\n `prerendered as static HTML (uses ${cyan(staticFunctionInfo)})`,\n ],\n usedSymbols.has('ISR') && [\n '',\n '(ISR)',\n `incremental static regeneration (uses revalidate in ${cyan(\n staticFunctionInfo\n )})`,\n ],\n usedSymbols.has('◐') && [\n '◐',\n '(Partial Prerender)',\n 'prerendered as static HTML with dynamic server-streamed content',\n ],\n usedSymbols.has('ƒ') && ['ƒ', '(Dynamic)', `server-rendered on demand`],\n ].filter((x) => x) as [string, string, string][],\n {\n align: ['l', 'l', 'l'],\n stringLength: (str) => stripAnsi(str).length,\n }\n )\n )\n\n print()\n}\n\nexport function printCustomRoutes({\n redirects,\n rewrites,\n headers,\n}: CustomRoutes) {\n const printRoutes = (\n routes: Redirect[] | Rewrite[] | Header[],\n type: 'Redirects' | 'Rewrites' | 'Headers'\n ) => {\n const isRedirects = type === 'Redirects'\n const isHeaders = type === 'Headers'\n print(underline(type))\n\n /*\n ┌ source\n ├ permanent/statusCode\n └ destination\n */\n const routesStr = (routes as any[])\n .map((route: { source: string }) => {\n let routeStr = `┌ source: ${route.source}\\n`\n\n if (!isHeaders) {\n const r = route as Rewrite\n routeStr += `${isRedirects ? '├' : '└'} destination: ${\n r.destination\n }\\n`\n }\n if (isRedirects) {\n const r = route as Redirect\n routeStr += `└ ${\n r.statusCode\n ? `status: ${r.statusCode}`\n : `permanent: ${r.permanent}`\n }\\n`\n }\n\n if (isHeaders) {\n const r = route as Header\n routeStr += `└ headers:\\n`\n\n for (let i = 0; i < r.headers.length; i++) {\n const header = r.headers[i]\n const last = i === headers.length - 1\n\n routeStr += ` ${last ? '└' : '├'} ${header.key}: ${header.value}\\n`\n }\n }\n\n return routeStr\n })\n .join('\\n')\n\n print(`${routesStr}\\n`)\n }\n\n print()\n if (redirects.length) {\n printRoutes(redirects, 'Redirects')\n }\n if (headers.length) {\n printRoutes(headers, 'Headers')\n }\n\n const combinedRewrites = [\n ...rewrites.beforeFiles,\n ...rewrites.afterFiles,\n ...rewrites.fallback,\n ]\n if (combinedRewrites.length) {\n printRoutes(combinedRewrites, 'Rewrites')\n }\n}\n\nexport async function getJsPageSizeInKb(\n routerType: ROUTER_TYPE,\n page: string,\n distPath: string,\n buildManifest: BuildManifest,\n appBuildManifest?: AppBuildManifest,\n gzipSize: boolean = true,\n cachedStats?: ComputeFilesManifestResult\n): Promise<[number, number]> {\n const pageManifest = routerType === 'pages' ? buildManifest : appBuildManifest\n if (!pageManifest) {\n throw new Error('expected appBuildManifest with an \"app\" pageType')\n }\n\n // Normalize appBuildManifest keys\n if (routerType === 'app') {\n pageManifest.pages = Object.entries(pageManifest.pages).reduce(\n (acc: Record<string, string[]>, [key, value]) => {\n const newKey = normalizeAppPath(key)\n acc[newKey] = value as string[]\n return acc\n },\n {}\n )\n }\n\n // If stats was not provided, then compute it again.\n const stats =\n cachedStats ??\n (await computeFromManifest(\n { build: buildManifest, app: appBuildManifest },\n distPath,\n gzipSize\n ))\n\n const pageData = stats.router[routerType]\n if (!pageData) {\n // This error shouldn't happen and represents an error in Next.js.\n throw new Error('expected \"app\" manifest data with an \"app\" pageType')\n }\n\n const pagePath =\n routerType === 'pages'\n ? denormalizePagePath(page)\n : denormalizeAppPagePath(page)\n\n const fnFilterJs = (entry: string) => entry.endsWith('.js')\n\n const pageFiles = (pageManifest.pages[pagePath] ?? []).filter(fnFilterJs)\n const appFiles = (pageManifest.pages['/_app'] ?? []).filter(fnFilterJs)\n\n const fnMapRealPath = (dep: string) => `${distPath}/${dep}`\n\n const allFilesReal = unique(pageFiles, appFiles).map(fnMapRealPath)\n const selfFilesReal = difference(\n // Find the files shared by the pages files and the unique files...\n intersect(pageFiles, pageData.unique.files),\n // but without the common files.\n pageData.common.files\n ).map(fnMapRealPath)\n\n const getSize = gzipSize ? fsStatGzip : fsStat\n\n // Try to get the file size from the page data if available, otherwise do a\n // raw compute.\n const getCachedSize = async (file: string) => {\n const key = file.slice(distPath.length + 1)\n const size: number | undefined = stats.sizes.get(key)\n\n // If the size wasn't in the stats bundle, then get it from the file\n // directly.\n if (typeof size !== 'number') {\n return getSize(file)\n }\n\n return size\n }\n\n try {\n // Doesn't use `Promise.all`, as we'd double compute duplicate files. This\n // function is memoized, so the second one will instantly resolve.\n const allFilesSize = sum(await Promise.all(allFilesReal.map(getCachedSize)))\n const selfFilesSize = sum(\n await Promise.all(selfFilesReal.map(getCachedSize))\n )\n\n return [selfFilesSize, allFilesSize]\n } catch {}\n return [-1, -1]\n}\n\ntype PageIsStaticResult = {\n isRoutePPREnabled?: boolean\n isStatic?: boolean\n isAmpOnly?: boolean\n isHybridAmp?: boolean\n hasServerProps?: boolean\n hasStaticProps?: boolean\n prerenderedRoutes: PrerenderedRoute[] | undefined\n prerenderFallbackMode: FallbackMode | undefined\n rootParamKeys: readonly string[] | undefined\n isNextImageImported?: boolean\n traceIncludes?: string[]\n traceExcludes?: string[]\n appConfig?: AppSegmentConfig\n}\n\nexport async function isPageStatic({\n dir,\n page,\n distDir,\n configFileName,\n runtimeEnvConfig,\n httpAgentOptions,\n locales,\n defaultLocale,\n parentId,\n pageRuntime,\n edgeInfo,\n pageType,\n dynamicIO,\n authInterrupts,\n originalAppPath,\n isrFlushToDisk,\n maxMemoryCacheSize,\n nextConfigOutput,\n cacheHandler,\n cacheHandlers,\n cacheLifeProfiles,\n pprConfig,\n buildId,\n sriEnabled,\n}: {\n dir: string\n page: string\n distDir: string\n dynamicIO: boolean\n authInterrupts: boolean\n configFileName: string\n runtimeEnvConfig: any\n httpAgentOptions: NextConfigComplete['httpAgentOptions']\n locales?: readonly string[]\n defaultLocale?: string\n parentId?: any\n edgeInfo?: any\n pageType?: 'pages' | 'app'\n pageRuntime?: ServerRuntime\n originalAppPath?: string\n isrFlushToDisk?: boolean\n maxMemoryCacheSize?: number\n cacheHandler?: string\n cacheHandlers?: Record<string, string | undefined>\n cacheLifeProfiles?: {\n [profile: string]: import('../server/use-cache/cache-life').CacheLife\n }\n nextConfigOutput: 'standalone' | 'export' | undefined\n pprConfig: ExperimentalPPRConfig | undefined\n buildId: string\n sriEnabled: boolean\n}): Promise<PageIsStaticResult> {\n await createIncrementalCache({\n cacheHandler,\n cacheHandlers,\n distDir,\n dir,\n flushToDisk: isrFlushToDisk,\n cacheMaxMemorySize: maxMemoryCacheSize,\n })\n\n const isPageStaticSpan = trace('is-page-static-utils', parentId)\n return isPageStaticSpan\n .traceAsyncFn(async (): Promise<PageIsStaticResult> => {\n require('../shared/lib/runtime-config.external').setConfig(\n runtimeEnvConfig\n )\n setHttpClientAndAgentOptions({\n httpAgentOptions,\n })\n\n let componentsResult: LoadComponentsReturnType\n let prerenderedRoutes: PrerenderedRoute[] | undefined\n let prerenderFallbackMode: FallbackMode | undefined\n let appConfig: AppSegmentConfig = {}\n let rootParamKeys: readonly string[] | undefined\n let isClientComponent: boolean = false\n const pathIsEdgeRuntime = isEdgeRuntime(pageRuntime)\n\n if (pathIsEdgeRuntime) {\n const runtime = await getRuntimeContext({\n paths: edgeInfo.files.map((file: string) => path.join(distDir, file)),\n edgeFunctionEntry: {\n ...edgeInfo,\n wasm: (edgeInfo.wasm ?? []).map((binding: AssetBinding) => ({\n ...binding,\n filePath: path.join(distDir, binding.filePath),\n })),\n },\n name: edgeInfo.name,\n useCache: true,\n distDir,\n })\n const mod = (\n await runtime.context._ENTRIES[`middleware_${edgeInfo.name}`]\n ).ComponentMod\n\n // This is not needed during require.\n const buildManifest = {} as BuildManifest\n\n isClientComponent = isClientReference(mod)\n componentsResult = {\n Component: mod.default,\n Document: mod.Document,\n App: mod.App,\n routeModule: mod.routeModule,\n page,\n ComponentMod: mod,\n pageConfig: mod.config || {},\n buildManifest,\n reactLoadableManifest: {},\n getServerSideProps: mod.getServerSideProps,\n getStaticPaths: mod.getStaticPaths,\n getStaticProps: mod.getStaticProps,\n }\n } else {\n componentsResult = await loadComponents({\n distDir,\n page: originalAppPath || page,\n isAppPath: pageType === 'app',\n isDev: false,\n sriEnabled,\n })\n }\n const Comp = componentsResult.Component as NextComponentType | undefined\n\n const routeModule: RouteModule = componentsResult.routeModule\n\n let isRoutePPREnabled: boolean = false\n\n if (pageType === 'app') {\n const ComponentMod: AppPageModule = componentsResult.ComponentMod\n\n isClientComponent = isClientReference(componentsResult.ComponentMod)\n\n let segments\n try {\n segments = await collectSegments(componentsResult)\n } catch (err) {\n throw new Error(`Failed to collect configuration for ${page}`, {\n cause: err,\n })\n }\n\n appConfig = reduceAppConfig(segments)\n\n if (appConfig.dynamic === 'force-static' && pathIsEdgeRuntime) {\n Log.warn(\n `Page \"${page}\" is using runtime = 'edge' which is currently incompatible with dynamic = 'force-static'. Please remove either \"runtime\" or \"force-static\" for correct behavior`\n )\n }\n\n rootParamKeys = collectRootParamKeys(componentsResult)\n\n // A page supports partial prerendering if it is an app page and either\n // the whole app has PPR enabled or this page has PPR enabled when we're\n // in incremental mode.\n isRoutePPREnabled =\n routeModule.definition.kind === RouteKind.APP_PAGE &&\n !isInterceptionRouteAppPath(page) &&\n checkIsRoutePPREnabled(pprConfig, appConfig)\n\n // If force dynamic was set and we don't have PPR enabled, then set the\n // revalidate to 0.\n // TODO: (PPR) remove this once PPR is enabled by default\n if (appConfig.dynamic === 'force-dynamic' && !isRoutePPREnabled) {\n appConfig.revalidate = 0\n }\n\n // If the page is dynamic and we're not in edge runtime, then we need to\n // build the static paths. The edge runtime doesn't support static\n // paths.\n if (isDynamicRoute(page) && !pathIsEdgeRuntime) {\n ;({ prerenderedRoutes, fallbackMode: prerenderFallbackMode } =\n await buildAppStaticPaths({\n dir,\n page,\n dynamicIO,\n authInterrupts,\n segments,\n distDir,\n requestHeaders: {},\n isrFlushToDisk,\n maxMemoryCacheSize,\n cacheHandler,\n cacheLifeProfiles,\n ComponentMod,\n nextConfigOutput,\n isRoutePPREnabled,\n buildId,\n rootParamKeys,\n }))\n }\n } else {\n if (!Comp || !isValidElementType(Comp) || typeof Comp === 'string') {\n throw new Error('INVALID_DEFAULT_EXPORT')\n }\n }\n\n const hasGetInitialProps = !!Comp?.getInitialProps\n const hasStaticProps = !!componentsResult.getStaticProps\n const hasStaticPaths = !!componentsResult.getStaticPaths\n const hasServerProps = !!componentsResult.getServerSideProps\n\n // A page cannot be prerendered _and_ define a data requirement. That's\n // contradictory!\n if (hasGetInitialProps && hasStaticProps) {\n throw new Error(SSG_GET_INITIAL_PROPS_CONFLICT)\n }\n\n if (hasGetInitialProps && hasServerProps) {\n throw new Error(SERVER_PROPS_GET_INIT_PROPS_CONFLICT)\n }\n\n if (hasStaticProps && hasServerProps) {\n throw new Error(SERVER_PROPS_SSG_CONFLICT)\n }\n\n const pageIsDynamic = isDynamicRoute(page)\n // A page cannot have static parameters if it is not a dynamic page.\n if (hasStaticProps && hasStaticPaths && !pageIsDynamic) {\n throw new Error(\n `getStaticPaths can only be used with dynamic pages, not '${page}'.` +\n `\\nLearn more: https://nextjs.org/docs/routing/dynamic-routes`\n )\n }\n\n if (hasStaticProps && pageIsDynamic && !hasStaticPaths) {\n throw new Error(\n `getStaticPaths is required for dynamic SSG pages and is missing for '${page}'.` +\n `\\nRead more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`\n )\n }\n\n if (hasStaticProps && hasStaticPaths) {\n ;({ prerenderedRoutes, fallbackMode: prerenderFallbackMode } =\n await buildPagesStaticPaths({\n page,\n locales,\n defaultLocale,\n configFileName,\n getStaticPaths: componentsResult.getStaticPaths!,\n }))\n }\n\n const isNextImageImported = (globalThis as any).__NEXT_IMAGE_IMPORTED\n const config: PageConfig = isClientComponent\n ? {}\n : componentsResult.pageConfig\n\n let isStatic = false\n if (!hasStaticProps && !hasGetInitialProps && !hasServerProps) {\n isStatic = true\n }\n\n // When PPR is enabled, any route may be completely static, so\n // mark this route as static.\n if (isRoutePPREnabled) {\n isStatic = true\n }\n\n return {\n isStatic,\n isRoutePPREnabled,\n isHybridAmp: config.amp === 'hybrid',\n isAmpOnly: config.amp === true,\n prerenderFallbackMode,\n prerenderedRoutes,\n rootParamKeys,\n hasStaticProps,\n hasServerProps,\n isNextImageImported,\n appConfig,\n }\n })\n .catch((err) => {\n if (err.message === 'INVALID_DEFAULT_EXPORT') {\n throw err\n }\n console.error(err)\n throw new Error(`Failed to collect page data for ${page}`)\n })\n}\n\ntype ReducedAppConfig = Pick<\n AppSegmentConfig,\n | 'revalidate'\n | 'dynamic'\n | 'fetchCache'\n | 'preferredRegion'\n | 'experimental_ppr'\n | 'runtime'\n | 'maxDuration'\n>\n\n/**\n * Collect the app config from the generate param segments. This only gets a\n * subset of the config options.\n *\n * @param segments the generate param segments\n * @returns the reduced app config\n */\nexport function reduceAppConfig(\n segments: Pick<AppSegment, 'config'>[]\n): ReducedAppConfig {\n const config: ReducedAppConfig = {}\n\n for (const segment of segments) {\n const {\n dynamic,\n fetchCache,\n preferredRegion,\n revalidate,\n experimental_ppr,\n runtime,\n maxDuration,\n } = segment.config || {}\n\n // TODO: should conflicting configs here throw an error\n // e.g. if layout defines one region but page defines another\n\n if (typeof preferredRegion !== 'undefined') {\n config.preferredRegion = preferredRegion\n }\n\n if (typeof dynamic !== 'undefined') {\n config.dynamic = dynamic\n }\n\n if (typeof fetchCache !== 'undefined') {\n config.fetchCache = fetchCache\n }\n\n if (typeof revalidate !== 'undefined') {\n config.revalidate = revalidate\n }\n\n // Any revalidate number overrides false, and shorter revalidate overrides\n // longer (initially).\n if (\n typeof revalidate === 'number' &&\n (typeof config.revalidate !== 'number' || revalidate < config.revalidate)\n ) {\n config.revalidate = revalidate\n }\n\n // If partial prerendering has been set, only override it if the current\n // value is provided as it's resolved from root layout to leaf page.\n if (typeof experimental_ppr !== 'undefined') {\n config.experimental_ppr = experimental_ppr\n }\n\n if (typeof runtime !== 'undefined') {\n config.runtime = runtime\n }\n\n if (typeof maxDuration !== 'undefined') {\n config.maxDuration = maxDuration\n }\n }\n\n return config\n}\n\nexport async function hasCustomGetInitialProps({\n page,\n distDir,\n runtimeEnvConfig,\n checkingApp,\n sriEnabled,\n}: {\n page: string\n distDir: string\n runtimeEnvConfig: any\n checkingApp: boolean\n sriEnabled: boolean\n}): Promise<boolean> {\n require('../shared/lib/runtime-config.external').setConfig(runtimeEnvConfig)\n\n const components = await loadComponents({\n distDir,\n page: page,\n isAppPath: false,\n isDev: false,\n sriEnabled,\n })\n let mod = components.ComponentMod\n\n if (checkingApp) {\n mod = (await mod._app) || mod.default || mod\n } else {\n mod = mod.default || mod\n }\n mod = await mod\n return mod.getInitialProps !== mod.origGetInitialProps\n}\n\nexport async function getDefinedNamedExports({\n page,\n distDir,\n runtimeEnvConfig,\n sriEnabled,\n}: {\n page: string\n distDir: string\n runtimeEnvConfig: any\n sriEnabled: boolean\n}): Promise<ReadonlyArray<string>> {\n require('../shared/lib/runtime-config.external').setConfig(runtimeEnvConfig)\n const components = await loadComponents({\n distDir,\n page: page,\n isAppPath: false,\n isDev: false,\n sriEnabled,\n })\n\n return Object.keys(components.ComponentMod).filter((key) => {\n return typeof components.ComponentMod[key] !== 'undefined'\n })\n}\n\nexport function detectConflictingPaths(\n combinedPages: string[],\n ssgPages: Set<string>,\n additionalGeneratedSSGPaths: Map<string, string[]>\n) {\n const conflictingPaths = new Map<\n string,\n Array<{\n path: string\n page: string\n }>\n >()\n\n const dynamicSsgPages = [...ssgPages].filter((page) => isDynamicRoute(page))\n const additionalSsgPathsByPath: {\n [page: string]: { [path: string]: string }\n } = {}\n\n additionalGeneratedSSGPaths.forEach((paths, pathsPage) => {\n additionalSsgPathsByPath[pathsPage] ||= {}\n paths.forEach((curPath) => {\n const currentPath = curPath.toLowerCase()\n additionalSsgPathsByPath[pathsPage][currentPath] = curPath\n })\n })\n\n additionalGeneratedSSGPaths.forEach((paths, pathsPage) => {\n paths.forEach((curPath) => {\n const lowerPath = curPath.toLowerCase()\n let conflictingPage = combinedPages.find(\n (page) => page.toLowerCase() === lowerPath\n )\n\n if (conflictingPage) {\n conflictingPaths.set(lowerPath, [\n { path: curPath, page: pathsPage },\n { path: conflictingPage, page: conflictingPage },\n ])\n } else {\n let conflictingPath: string | undefined\n\n conflictingPage = dynamicSsgPages.find((page) => {\n if (page === pathsPage) return false\n\n conflictingPath =\n additionalGeneratedSSGPaths.get(page) == null\n ? undefined\n : additionalSsgPathsByPath[page][lowerPath]\n return conflictingPath\n })\n\n if (conflictingPage && conflictingPath) {\n conflictingPaths.set(lowerPath, [\n { path: curPath, page: pathsPage },\n { path: conflictingPath, page: conflictingPage },\n ])\n }\n }\n })\n })\n\n if (conflictingPaths.size > 0) {\n let conflictingPathsOutput = ''\n\n conflictingPaths.forEach((pathItems) => {\n pathItems.forEach((pathItem, idx) => {\n const isDynamic = pathItem.page !== pathItem.path\n\n if (idx > 0) {\n conflictingPathsOutput += 'conflicts with '\n }\n\n conflictingPathsOutput += `path: \"${pathItem.path}\"${\n isDynamic ? ` from page: \"${pathItem.page}\" ` : ' '\n }`\n })\n conflictingPathsOutput += '\\n'\n })\n\n Log.error(\n 'Conflicting paths returned from getStaticPaths, paths must be unique per page.\\n' +\n 'See more info here: https://nextjs.org/docs/messages/conflicting-ssg-paths\\n\\n' +\n conflictingPathsOutput\n )\n process.exit(1)\n }\n}\n\nexport async function copyTracedFiles(\n dir: string,\n distDir: string,\n pageKeys: readonly string[],\n appPageKeys: readonly string[] | undefined,\n tracingRoot: string,\n serverConfig: NextConfigComplete,\n middlewareManifest: MiddlewareManifest,\n hasNodeMiddleware: boolean,\n hasInstrumentationHook: boolean,\n staticPages: Set<string>\n) {\n const outputPath = path.join(distDir, 'standalone')\n let moduleType = false\n const nextConfig = {\n ...serverConfig,\n distDir: `./${path.relative(dir, distDir)}`,\n }\n try {\n const packageJsonPath = path.join(distDir, '../package.json')\n const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf8'))\n moduleType = packageJson.type === 'module'\n } catch {}\n const copiedFiles = new Set()\n await fs.rm(outputPath, { recursive: true, force: true })\n\n async function handleTraceFiles(traceFilePath: string) {\n const traceData = JSON.parse(await fs.readFile(traceFilePath, 'utf8')) as {\n files: string[]\n }\n const copySema = new Sema(10, { capacity: traceData.files.length })\n const traceFileDir = path.dirname(traceFilePath)\n\n await Promise.all(\n traceData.files.map(async (relativeFile) => {\n await copySema.acquire()\n\n const tracedFilePath = path.join(traceFileDir, relativeFile)\n const fileOutputPath = path.join(\n outputPath,\n path.relative(tracingRoot, tracedFilePath)\n )\n\n if (!copiedFiles.has(fileOutputPath)) {\n copiedFiles.add(fileOutputPath)\n\n await fs.mkdir(path.dirname(fileOutputPath), { recursive: true })\n const symlink = await fs.readlink(tracedFilePath).catch(() => null)\n\n if (symlink) {\n try {\n await fs.symlink(symlink, fileOutputPath)\n } catch (e: any) {\n if (e.code !== 'EEXIST') {\n throw e\n }\n }\n } else {\n await fs.copyFile(tracedFilePath, fileOutputPath)\n }\n }\n\n await copySema.release()\n })\n )\n }\n\n async function handleEdgeFunction(page: EdgeFunctionDefinition) {\n async function handleFile(file: string) {\n const originalPath = path.join(distDir, file)\n const fileOutputPath = path.join(\n outputPath,\n path.relative(tracingRoot, distDir),\n file\n )\n await fs.mkdir(path.dirname(fileOutputPath), { recursive: true })\n await fs.copyFile(originalPath, fileOutputPath)\n }\n await Promise.all([\n page.files.map(handleFile),\n page.wasm?.map((file) => handleFile(file.filePath)),\n page.assets?.map((file) => handleFile(file.filePath)),\n ])\n }\n\n const edgeFunctionHandlers: Promise<any>[] = []\n\n for (const middleware of Object.values(middlewareManifest.middleware)) {\n if (isMiddlewareFilename(middleware.name)) {\n edgeFunctionHandlers.push(handleEdgeFunction(middleware))\n }\n }\n\n for (const page of Object.values(middlewareManifest.functions)) {\n edgeFunctionHandlers.push(handleEdgeFunction(page))\n }\n\n await Promise.all(edgeFunctionHandlers)\n\n for (const page of pageKeys) {\n if (middlewareManifest.functions.hasOwnProperty(page)) {\n continue\n }\n const route = normalizePagePath(page)\n\n if (staticPages.has(route)) {\n continue\n }\n\n const pageFile = path.join(\n distDir,\n 'server',\n 'pages',\n `${normalizePagePath(page)}.js`\n )\n const pageTraceFile = `${pageFile}.nft.json`\n await handleTraceFiles(pageTraceFile).catch((err) => {\n if (err.code !== 'ENOENT' || (page !== '/404' && page !== '/500')) {\n Log.warn(`Failed to copy traced files for ${pageFile}`, err)\n }\n })\n }\n\n if (hasNodeMiddleware) {\n const middlewareFile = path.join(distDir, 'server', 'middleware.js')\n const middlewareTrace = `${middlewareFile}.nft.json`\n await handleTraceFiles(middlewareTrace)\n }\n\n if (appPageKeys) {\n for (const page of appPageKeys) {\n if (middlewareManifest.functions.hasOwnProperty(page)) {\n continue\n }\n const pageFile = path.join(distDir, 'server', 'app', `${page}.js`)\n const pageTraceFile = `${pageFile}.nft.json`\n await handleTraceFiles(pageTraceFile).catch((err) => {\n Log.warn(`Failed to copy traced files for ${pageFile}`, err)\n })\n }\n }\n\n if (hasInstrumentationHook) {\n await handleTraceFiles(\n path.join(distDir, 'server', 'instrumentation.js.nft.json')\n )\n }\n\n await handleTraceFiles(path.join(distDir, 'next-server.js.nft.json'))\n const serverOutputPath = path.join(\n outputPath,\n path.relative(tracingRoot, dir),\n 'server.js'\n )\n await fs.mkdir(path.dirname(serverOutputPath), { recursive: true })\n\n await fs.writeFile(\n serverOutputPath,\n `${\n moduleType\n ? `performance.mark('next-start');\nimport path from 'path'\nimport { fileURLToPath } from 'url'\nimport module from 'module'\nconst require = module.createRequire(import.meta.url)\nconst __dirname = fileURLToPath(new URL('.', import.meta.url))\n`\n : `const path = require('path')`\n }\n\nconst dir = path.join(__dirname)\n\nprocess.env.NODE_ENV = 'production'\nprocess.chdir(__dirname)\n\nconst currentPort = parseInt(process.env.PORT, 10) || 3000\nconst hostname = process.env.HOSTNAME || '0.0.0.0'\n\nlet keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)\nconst nextConfig = ${JSON.stringify(nextConfig)}\n\nprocess.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)\n\nrequire('next')\nconst { startServer } = require('next/dist/server/lib/start-server')\n\nif (\n Number.isNaN(keepAliveTimeout) ||\n !Number.isFinite(keepAliveTimeout) ||\n keepAliveTimeout < 0\n) {\n keepAliveTimeout = undefined\n}\n\nstartServer({\n dir,\n isDev: false,\n config: nextConfig,\n hostname,\n port: currentPort,\n allowRetry: false,\n keepAliveTimeout,\n}).catch((err) => {\n console.error(err);\n process.exit(1);\n});`\n )\n}\n\nexport function isReservedPage(page: string) {\n return RESERVED_PAGE.test(page)\n}\n\nexport function isAppBuiltinNotFoundPage(page: string) {\n return /next[\\\\/]dist[\\\\/]client[\\\\/]components[\\\\/]not-found-error/.test(\n page\n )\n}\n\nexport function isCustomErrorPage(page: string) {\n return page === '/404' || page === '/500'\n}\n\nexport function isMiddlewareFile(file: string) {\n return (\n file === `/${MIDDLEWARE_FILENAME}` || file === `/src/${MIDDLEWARE_FILENAME}`\n )\n}\n\nexport function isInstrumentationHookFile(file: string) {\n return (\n file === `/${INSTRUMENTATION_HOOK_FILENAME}` ||\n file === `/src/${INSTRUMENTATION_HOOK_FILENAME}`\n )\n}\n\nexport function getPossibleInstrumentationHookFilenames(\n folder: string,\n extensions: string[]\n) {\n const files = []\n for (const extension of extensions) {\n files.push(\n path.join(folder, `${INSTRUMENTATION_HOOK_FILENAME}.${extension}`),\n path.join(folder, `src`, `${INSTRUMENTATION_HOOK_FILENAME}.${extension}`)\n )\n }\n\n return files\n}\n\nexport function getPossibleMiddlewareFilenames(\n folder: string,\n extensions: string[]\n) {\n return extensions.map((extension) =>\n path.join(folder, `${MIDDLEWARE_FILENAME}.${extension}`)\n )\n}\n\nexport class NestedMiddlewareError extends Error {\n constructor(\n nestedFileNames: string[],\n mainDir: string,\n pagesOrAppDir: string\n ) {\n super(\n `Nested Middleware is not allowed, found:\\n` +\n `${nestedFileNames.map((file) => `pages${file}`).join('\\n')}\\n` +\n `Please move your code to a single file at ${path.join(\n path.posix.sep,\n path.relative(mainDir, path.resolve(pagesOrAppDir, '..')),\n 'middleware'\n )} instead.\\n` +\n `Read More - https://nextjs.org/docs/messages/nested-middleware`\n )\n }\n}\n\nexport function getSupportedBrowsers(\n dir: string,\n isDevelopment: boolean\n): string[] {\n let browsers: any\n try {\n const browsersListConfig = browserslist.loadConfig({\n path: dir,\n env: isDevelopment ? 'development' : 'production',\n })\n // Running `browserslist` resolves `extends` and other config features into a list of browsers\n if (browsersListConfig && browsersListConfig.length > 0) {\n browsers = browserslist(browsersListConfig)\n }\n } catch {}\n\n // When user has browserslist use that target\n if (browsers && browsers.length > 0) {\n return browsers\n }\n\n // Uses modern browsers as the default.\n return MODERN_BROWSERSLIST_TARGET\n}\n\nexport function isWebpackServerOnlyLayer(\n layer: WebpackLayerName | null | undefined\n): boolean {\n return Boolean(\n layer && WEBPACK_LAYERS.GROUP.serverOnly.includes(layer as any)\n )\n}\n\nexport function isWebpackClientOnlyLayer(\n layer: WebpackLayerName | null | undefined\n): boolean {\n return Boolean(\n layer && WEBPACK_LAYERS.GROUP.clientOnly.includes(layer as any)\n )\n}\n\nexport function isWebpackDefaultLayer(\n layer: WebpackLayerName | null | undefined\n): boolean {\n return (\n layer === null ||\n layer === undefined ||\n layer === WEBPACK_LAYERS.pagesDirBrowser ||\n layer === WEBPACK_LAYERS.pagesDirEdge ||\n layer === WEBPACK_LAYERS.pagesDirNode\n )\n}\n\nexport function isWebpackBundledLayer(\n layer: WebpackLayerName | null | undefined\n): boolean {\n return Boolean(layer && WEBPACK_LAYERS.GROUP.bundled.includes(layer as any))\n}\n\nexport function isWebpackAppPagesLayer(\n layer: WebpackLayerName | null | undefined\n): boolean {\n return Boolean(layer && WEBPACK_LAYERS.GROUP.appPages.includes(layer as any))\n}\n\nexport function collectMeta({\n status,\n headers,\n}: {\n status?: number\n headers?: OutgoingHttpHeaders\n}): {\n status?: number\n headers?: Record<string, string>\n} {\n const meta: {\n status?: number\n headers?: Record<string, string>\n } = {}\n\n if (status !== 200) {\n meta.status = status\n }\n\n if (headers && Object.keys(headers).length) {\n meta.headers = {}\n\n // normalize header values as initialHeaders\n // must be Record<string, string>\n for (const key in headers) {\n // set-cookie is already handled - the middleware cookie setting case\n // isn't needed for the prerender manifest since it can't read cookies\n if (key === 'x-middleware-set-cookie') continue\n\n let value = headers[key]\n\n if (Array.isArray(value)) {\n if (key === 'set-cookie') {\n value = value.join(',')\n } else {\n value = value[value.length - 1]\n }\n }\n\n if (typeof value === 'string') {\n meta.headers[key] = value\n }\n }\n }\n\n return meta\n}\n"],"names":["NestedMiddlewareError","collectMeta","collectRoutesUsingEdgeRuntime","computeFromManifest","copyTracedFiles","detectConflictingPaths","difference","getDefinedNamedExports","getJsPageSizeInKb","getPossibleInstrumentationHookFilenames","getPossibleMiddlewareFilenames","getSupportedBrowsers","hasCustomGetInitialProps","isAppBuiltinNotFoundPage","isCustomErrorPage","isInstrumentationHookFile","isInstrumentationHookFilename","isMiddlewareFile","isMiddlewareFilename","isPageStatic","isReservedPage","isWebpackAppPagesLayer","isWebpackBundledLayer","isWebpackClientOnlyLayer","isWebpackDefaultLayer","isWebpackServerOnlyLayer","printCustomRoutes","printTreeView","reduceAppConfig","unique","print","console","log","RESERVED_PAGE","fileGzipStats","fsStatGzip","file","cached","getGzipSize","fileSize","fs","stat","size","fileStats","fsStat","main","sub","Set","a","b","filter","x","has","intersect","sum","reduce","cachedBuildManifest","cachedAppBuildManifest","lastCompute","lastComputePageInfo","manifests","distPath","gzipSize","pageInfos","files","Object","is","build","app","countBuildFiles","map","key","manifest","set","Infinity","get","pages","each","Map","expected","pageInfo","isHybridAmp","getSize","stats","Promise","all","keys","f","path","join","groupFiles","listing","entries","shapeGroup","group","acc","push","total","len","common","router","undefined","sizes","MIDDLEWARE_FILENAME","INSTRUMENTATION_HOOK_FILENAME","filterAndSortList","list","routeType","hasCustomApp","e","slice","sort","localeCompare","input","routesUsingEdgeRuntime","route","info","isEdgeRuntime","runtime","lists","buildId","pagesDir","pageExtensions","buildManifest","appBuildManifest","middlewareManifest","useStaticPages404","getPrettySize","_size","strong","process","env","__NEXT_PRIVATE_DETERMINISTIC_BUILD_OUTPUT","prettyBytes","white","bold","MIN_DURATION","getPrettyDuration","_duration","duration","green","yellow","red","getCleanName","fileName","replace","findPageFile","usedSymbols","messages","printFileTree","routerType","filteredPages","length","entry","underline","forEach","item","i","arr","border","ampFirst","ampFirstPages","includes","totalDuration","pageDuration","ssgPageDurations","symbol","isRoutePPREnabled","hasEmptyPrelude","isDynamicAppRoute","hasPostponed","isStatic","isSSG","add","initialRevalidateSeconds","cyan","totalSize","uniqueCssFiles","endsWith","contSymbol","index","innerSymbol","ssgPageRoutes","totalRoutes","routes","some","d","previewPages","Math","min","routesWithDuration","idx","remainingRoutes","remaining","avgDuration","round","sharedFilesSize","sharedFiles","sharedCssFiles","sharedJsChunks","tenKbLimit","restChunkSize","restChunkCount","originalName","cleanName","UNDERSCORE_NOT_FOUND_ROUTE","middlewareInfo","middleware","middlewareSizes","dep","textTable","align","stringLength","str","stripAnsi","staticFunctionInfo","redirects","rewrites","headers","printRoutes","type","isRedirects","isHeaders","routesStr","routeStr","source","r","destination","statusCode","permanent","header","last","value","combinedRewrites","beforeFiles","afterFiles","fallback","page","cachedStats","pageManifest","Error","newKey","normalizeAppPath","pageData","pagePath","denormalizePagePath","denormalizeAppPagePath","fnFilterJs","pageFiles","appFiles","fnMapRealPath","allFilesReal","selfFilesReal","getCachedSize","allFilesSize","selfFilesSize","dir","distDir","configFileName","runtimeEnvConfig","httpAgentOptions","locales","defaultLocale","parentId","pageRuntime","edgeInfo","pageType","dynamicIO","authInterrupts","originalAppPath","isrFlushToDisk","maxMemoryCacheSize","nextConfigOutput","cacheHandler","cacheHandlers","cacheLifeProfiles","pprConfig","sriEnabled","createIncrementalCache","flushToDisk","cacheMaxMemorySize","isPageStaticSpan","trace","traceAsyncFn","require","setConfig","setHttpClientAndAgentOptions","componentsResult","prerenderedRoutes","prerenderFallbackMode","appConfig","rootParamKeys","isClientComponent","pathIsEdgeRuntime","getRuntimeContext","paths","edgeFunctionEntry","wasm","binding","filePath","name","useCache","mod","context","_ENTRIES","ComponentMod","isClientReference","Component","default","Document","App","routeModule","pageConfig","config","reactLoadableManifest","getServerSideProps","getStaticPaths","getStaticProps","loadComponents","isAppPath","isDev","Comp","segments","collectSegments","err","cause","dynamic","Log","warn","collectRootParamKeys","definition","kind","RouteKind","APP_PAGE","isInterceptionRouteAppPath","checkIsRoutePPREnabled","revalidate","isDynamicRoute","fallbackMode","buildAppStaticPaths","requestHeaders","isValidElementType","hasGetInitialProps","getInitialProps","hasStaticProps","hasStaticPaths","hasServerProps","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","pageIsDynamic","buildPagesStaticPaths","isNextImageImported","globalThis","__NEXT_IMAGE_IMPORTED","amp","isAmpOnly","catch","message","error","segment","fetchCache","preferredRegion","experimental_ppr","maxDuration","checkingApp","components","_app","origGetInitialProps","combinedPages","ssgPages","additionalGeneratedSSGPaths","conflictingPaths","dynamicSsgPages","additionalSsgPathsByPath","pathsPage","curPath","currentPath","toLowerCase","lowerPath","conflictingPage","find","conflictingPath","conflictingPathsOutput","pathItems","pathItem","isDynamic","exit","pageKeys","appPageKeys","tracingRoot","serverConfig","hasNodeMiddleware","hasInstrumentationHook","staticPages","outputPath","moduleType","nextConfig","relative","packageJsonPath","packageJson","JSON","parse","readFile","copiedFiles","rm","recursive","force","handleTraceFiles","traceFilePath","traceData","copySema","Sema","capacity","traceFileDir","dirname","relativeFile","acquire","tracedFilePath","fileOutputPath","mkdir","symlink","readlink","code","copyFile","release","handleEdgeFunction","handleFile","originalPath","assets","edgeFunctionHandlers","values","functions","hasOwnProperty","normalizePagePath","pageFile","pageTraceFile","middlewareFile","middlewareTrace","serverOutputPath","writeFile","stringify","test","folder","extensions","extension","constructor","nestedFileNames","mainDir","pagesOrAppDir","posix","sep","resolve","isDevelopment","browsers","browsersListConfig","browserslist","loadConfig","MODERN_BROWSERSLIST_TARGET","layer","Boolean","WEBPACK_LAYERS","GROUP","serverOnly","clientOnly","pagesDirBrowser","pagesDirEdge","pagesDirNode","bundled","appPages","status","meta","Array","isArray"],"mappings":"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"}