@aeolus-fleet/gateway 0.28.1 → 0.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (584) hide show
  1. package/README.md +13 -6
  2. package/dist/adapters/crypto/account-sign-in-seals.d.ts +7 -0
  3. package/dist/adapters/crypto/account-sign-in-seals.js +21 -0
  4. package/dist/adapters/crypto/account-sign-in-seals.js.map +1 -0
  5. package/dist/adapters/crypto/sign-in-seals.d.ts +1 -1
  6. package/dist/adapters/crypto/sign-in-seals.js +3 -6
  7. package/dist/adapters/crypto/sign-in-seals.js.map +1 -1
  8. package/dist/adapters/fleet/core-version.d.ts +1 -1
  9. package/dist/adapters/fleet/core-version.js +1 -1
  10. package/dist/adapters/fleet/fleet-ships.d.ts +6 -0
  11. package/dist/adapters/fleet/fleet-ships.js +23 -0
  12. package/dist/adapters/fleet/fleet-ships.js.map +1 -0
  13. package/dist/adapters/fleet/proxy-ship-reads.d.ts +2 -2
  14. package/dist/adapters/fleet/proxy-ship-reads.js +6 -3
  15. package/dist/adapters/fleet/proxy-ship-reads.js.map +1 -1
  16. package/dist/adapters/fleet/rest-fleet-door.d.ts +2 -1
  17. package/dist/adapters/fleet/rest-fleet-door.js +34 -14
  18. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  19. package/dist/adapters/http/account-sign-in-routes.d.ts +19 -0
  20. package/dist/adapters/http/account-sign-in-routes.js +61 -0
  21. package/dist/adapters/http/account-sign-in-routes.js.map +1 -0
  22. package/dist/adapters/http/forms.d.ts +9 -0
  23. package/dist/adapters/http/forms.js +23 -0
  24. package/dist/adapters/http/forms.js.map +1 -0
  25. package/dist/adapters/http/front-door.d.ts +11 -4
  26. package/dist/adapters/http/front-door.js +48 -8
  27. package/dist/adapters/http/front-door.js.map +1 -1
  28. package/dist/adapters/http/live.d.ts +2 -12
  29. package/dist/adapters/http/live.js +4 -65
  30. package/dist/adapters/http/live.js.map +1 -1
  31. package/dist/adapters/http/oauth-routes.d.ts +14 -16
  32. package/dist/adapters/http/oauth-routes.js +23 -139
  33. package/dist/adapters/http/oauth-routes.js.map +1 -1
  34. package/dist/adapters/http/person-tools.d.ts +9 -4
  35. package/dist/adapters/http/person-tools.js +49 -5
  36. package/dist/adapters/http/person-tools.js.map +1 -1
  37. package/dist/adapters/pagasae/shared-sign-in.d.ts +11 -0
  38. package/dist/adapters/pagasae/shared-sign-in.js +123 -0
  39. package/dist/adapters/pagasae/shared-sign-in.js.map +1 -0
  40. package/dist/adapters/prisma/generated/browser.d.ts +1 -1
  41. package/dist/adapters/prisma/generated/client.d.ts +1 -1
  42. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  43. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  44. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +1 -0
  45. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +1 -0
  46. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  47. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +1 -0
  48. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +1 -0
  49. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  50. package/dist/adapters/prisma/generated/models/OpenedDelivery.d.ts +30 -2
  51. package/dist/adapters/prisma/opened-deliveries.js +18 -12
  52. package/dist/adapters/prisma/opened-deliveries.js.map +1 -1
  53. package/dist/adapters/trpc/router.d.ts +143 -4
  54. package/dist/adapters/trpc/router.js +151 -5
  55. package/dist/adapters/trpc/router.js.map +1 -1
  56. package/dist/adapters/web/next-web-app.d.ts +10 -0
  57. package/dist/adapters/web/next-web-app.js +27 -0
  58. package/dist/adapters/web/next-web-app.js.map +1 -0
  59. package/dist/app.d.ts +9 -1
  60. package/dist/app.js +53 -29
  61. package/dist/app.js.map +1 -1
  62. package/dist/bin/aeolus-gateway.js +12 -1
  63. package/dist/bin/aeolus-gateway.js.map +1 -1
  64. package/dist/config.d.ts +18 -0
  65. package/dist/config.js +16 -1
  66. package/dist/config.js.map +1 -1
  67. package/dist/core/account-sign-in/account-in-view.d.ts +43 -0
  68. package/dist/core/account-sign-in/account-in-view.js +52 -0
  69. package/dist/core/account-sign-in/account-in-view.js.map +1 -0
  70. package/dist/core/account-sign-in/account-of-sign-in.d.ts +23 -0
  71. package/dist/core/account-sign-in/account-of-sign-in.js +41 -0
  72. package/dist/core/account-sign-in/account-of-sign-in.js.map +1 -0
  73. package/dist/core/account-sign-in/complete-account-sign-in.d.ts +37 -0
  74. package/dist/core/account-sign-in/complete-account-sign-in.js +25 -0
  75. package/dist/core/account-sign-in/complete-account-sign-in.js.map +1 -0
  76. package/dist/core/account-sign-in/ports.d.ts +92 -0
  77. package/dist/core/account-sign-in/ports.js +3 -0
  78. package/dist/core/account-sign-in/ports.js.map +1 -0
  79. package/dist/core/account-sign-in/sign-out-account.d.ts +15 -0
  80. package/dist/core/account-sign-in/sign-out-account.js +12 -0
  81. package/dist/core/account-sign-in/sign-out-account.js.map +1 -0
  82. package/dist/core/account-sign-in/start-account-sign-in.d.ts +25 -0
  83. package/dist/core/account-sign-in/start-account-sign-in.js +26 -0
  84. package/dist/core/account-sign-in/start-account-sign-in.js.map +1 -0
  85. package/dist/core/actors/authenticate-actor.d.ts +14 -15
  86. package/dist/core/actors/authenticate-actor.js +10 -12
  87. package/dist/core/actors/authenticate-actor.js.map +1 -1
  88. package/dist/core/actors/credential-of.d.ts +4 -6
  89. package/dist/core/actors/credential-of.js +4 -8
  90. package/dist/core/actors/credential-of.js.map +1 -1
  91. package/dist/core/connection/answer-pings.d.ts +19 -0
  92. package/dist/core/connection/answer-pings.js +34 -0
  93. package/dist/core/connection/answer-pings.js.map +1 -0
  94. package/dist/core/connection/ports.d.ts +18 -1
  95. package/dist/core/operator/authenticate-operator.d.ts +4 -3
  96. package/dist/core/operator/authenticate-operator.js +4 -2
  97. package/dist/core/operator/authenticate-operator.js.map +1 -1
  98. package/dist/core/parties/list-owner-choices.d.ts +24 -0
  99. package/dist/core/parties/list-owner-choices.js +25 -0
  100. package/dist/core/parties/list-owner-choices.js.map +1 -0
  101. package/dist/core/parties/list-parties.js +1 -1
  102. package/dist/core/parties/list-parties.js.map +1 -1
  103. package/dist/core/parties/ports.d.ts +14 -5
  104. package/dist/core/parties/shown-party.d.ts +8 -2
  105. package/dist/core/parties/shown-party.js.map +1 -1
  106. package/dist/core/people/crew-person-ship.d.ts +3 -5
  107. package/dist/core/people/crew-person-ship.js +6 -5
  108. package/dist/core/people/crew-person-ship.js.map +1 -1
  109. package/dist/core/people/inbox-entry.d.ts +2 -1
  110. package/dist/core/people/inbox-entry.js +3 -0
  111. package/dist/core/people/inbox-entry.js.map +1 -1
  112. package/dist/core/people/list-ships.d.ts +17 -0
  113. package/dist/core/people/list-ships.js +20 -0
  114. package/dist/core/people/list-ships.js.map +1 -0
  115. package/dist/core/people/open-delivery.d.ts +14 -9
  116. package/dist/core/people/open-delivery.js +24 -4
  117. package/dist/core/people/open-delivery.js.map +1 -1
  118. package/dist/core/people/person-crew.d.ts +13 -1
  119. package/dist/core/people/person-crew.js.map +1 -1
  120. package/dist/core/people/ports.d.ts +42 -3
  121. package/dist/core/people/read-inbox.d.ts +15 -9
  122. package/dist/core/people/read-inbox.js +17 -6
  123. package/dist/core/people/read-inbox.js.map +1 -1
  124. package/dist/core/people/send-message.d.ts +32 -0
  125. package/dist/core/people/send-message.js +22 -0
  126. package/dist/core/people/send-message.js.map +1 -0
  127. package/dist/core/requests/ask-for-server.d.ts +2 -2
  128. package/dist/core/requests/watch-waiting.d.ts +2 -1
  129. package/dist/core/requests/watch-waiting.js +2 -2
  130. package/dist/core/requests/watch-waiting.js.map +1 -1
  131. package/dist/core/sign-in/complete-sign-in.d.ts +4 -11
  132. package/dist/core/sign-in/complete-sign-in.js +1 -23
  133. package/dist/core/sign-in/complete-sign-in.js.map +1 -1
  134. package/dist/core/sign-in/own-page.d.ts +10 -0
  135. package/dist/core/sign-in/own-page.js +35 -0
  136. package/dist/core/sign-in/own-page.js.map +1 -0
  137. package/dist/core/sign-in/ports.d.ts +3 -24
  138. package/dist/ping-worker.d.ts +20 -0
  139. package/dist/ping-worker.js +33 -0
  140. package/dist/ping-worker.js.map +1 -0
  141. package/package.json +23 -5
  142. package/src/adapters/prisma/migrations/20261021120000_opened_deliveries_sent_at/migration.sql +4 -0
  143. package/src/adapters/prisma/schema.prisma +2 -1
  144. package/web/.next/BUILD_ID +1 -0
  145. package/web/.next/app-path-routes-manifest.json +17 -0
  146. package/web/.next/build/chunks/[root-of-the-server]__17pn3jjqv9c44._.js +192 -0
  147. package/web/.next/build/chunks/[root-of-the-server]__17pn3jjqv9c44._.js.map +8 -0
  148. package/web/.next/build/chunks/[root-of-the-server]__1ehkf7gbe4e6q._.js +502 -0
  149. package/web/.next/build/chunks/[root-of-the-server]__1ehkf7gbe4e6q._.js.map +11 -0
  150. package/web/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1t6pazwwggn3s._.js +13 -0
  151. package/web/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1t6pazwwggn3s._.js.map +5 -0
  152. package/web/.next/build/chunks/[turbopack]_runtime.js +1056 -0
  153. package/web/.next/build/chunks/[turbopack]_runtime.js.map +11 -0
  154. package/web/.next/build/chunks/node_modules_0ds4fgws35qq2._.js +7337 -0
  155. package/web/.next/build/chunks/node_modules_0ds4fgws35qq2._.js.map +47 -0
  156. package/web/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_1inl-dyesk97a._.js +6 -0
  157. package/web/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_1inl-dyesk97a._.js.map +5 -0
  158. package/web/.next/build/package.json +1 -0
  159. package/web/.next/build-manifest.json +194 -0
  160. package/web/.next/diagnostics/build-diagnostics.json +6 -0
  161. package/web/.next/diagnostics/framework.json +1 -0
  162. package/web/.next/diagnostics/route-bundle-stats.json +195 -0
  163. package/web/.next/export-marker.json +6 -0
  164. package/web/.next/fallback-build-manifest.json +15 -0
  165. package/web/.next/images-manifest.json +68 -0
  166. package/web/.next/next-minimal-server.js.nft.json +1 -0
  167. package/web/.next/next-server.js.nft.json +1 -0
  168. package/web/.next/package.json +1 -0
  169. package/web/.next/prerender-manifest.json +40 -0
  170. package/web/.next/required-server-files.js +367 -0
  171. package/web/.next/required-server-files.json +367 -0
  172. package/web/.next/routes-manifest.json +144 -0
  173. package/web/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  174. package/web/.next/server/app/_global-error/page/build-manifest.json +23 -0
  175. package/web/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  176. package/web/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  177. package/web/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  178. package/web/.next/server/app/_global-error/page.js +12 -0
  179. package/web/.next/server/app/_global-error/page.js.map +5 -0
  180. package/web/.next/server/app/_global-error/page.js.nft.json +1 -0
  181. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
  182. package/web/.next/server/app/_global-error.html +1 -0
  183. package/web/.next/server/app/_global-error.meta +30 -0
  184. package/web/.next/server/app/_global-error.rsc +18 -0
  185. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +23 -0
  186. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +18 -0
  187. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -0
  188. package/web/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  189. package/web/.next/server/app/_not-found/page/build-manifest.json +23 -0
  190. package/web/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
  191. package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  192. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +15 -0
  193. package/web/.next/server/app/_not-found/page.js +17 -0
  194. package/web/.next/server/app/_not-found/page.js.map +5 -0
  195. package/web/.next/server/app/_not-found/page.js.nft.json +1 -0
  196. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
  197. package/web/.next/server/app/authorize/failed/page/app-paths-manifest.json +3 -0
  198. package/web/.next/server/app/authorize/failed/page/build-manifest.json +23 -0
  199. package/web/.next/server/app/authorize/failed/page/next-font-manifest.json +11 -0
  200. package/web/.next/server/app/authorize/failed/page/react-loadable-manifest.json +1 -0
  201. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +15 -0
  202. package/web/.next/server/app/authorize/failed/page.js +18 -0
  203. package/web/.next/server/app/authorize/failed/page.js.map +5 -0
  204. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -0
  205. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +3 -0
  206. package/web/.next/server/app/authorize/pick/page/app-paths-manifest.json +3 -0
  207. package/web/.next/server/app/authorize/pick/page/build-manifest.json +23 -0
  208. package/web/.next/server/app/authorize/pick/page/next-font-manifest.json +11 -0
  209. package/web/.next/server/app/authorize/pick/page/react-loadable-manifest.json +1 -0
  210. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +15 -0
  211. package/web/.next/server/app/authorize/pick/page.js +19 -0
  212. package/web/.next/server/app/authorize/pick/page.js.map +5 -0
  213. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -0
  214. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +3 -0
  215. package/web/.next/server/app/authorize/waiting/approval/page/app-paths-manifest.json +3 -0
  216. package/web/.next/server/app/authorize/waiting/approval/page/build-manifest.json +23 -0
  217. package/web/.next/server/app/authorize/waiting/approval/page/next-font-manifest.json +11 -0
  218. package/web/.next/server/app/authorize/waiting/approval/page/react-loadable-manifest.json +1 -0
  219. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +15 -0
  220. package/web/.next/server/app/authorize/waiting/approval/page.js +19 -0
  221. package/web/.next/server/app/authorize/waiting/approval/page.js.map +5 -0
  222. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -0
  223. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +3 -0
  224. package/web/.next/server/app/outside-parties/[name]/change/page/app-paths-manifest.json +3 -0
  225. package/web/.next/server/app/outside-parties/[name]/change/page/build-manifest.json +23 -0
  226. package/web/.next/server/app/outside-parties/[name]/change/page/next-font-manifest.json +11 -0
  227. package/web/.next/server/app/outside-parties/[name]/change/page/react-loadable-manifest.json +1 -0
  228. package/web/.next/server/app/outside-parties/[name]/change/page/server-reference-manifest.json +35 -0
  229. package/web/.next/server/app/outside-parties/[name]/change/page.js +22 -0
  230. package/web/.next/server/app/outside-parties/[name]/change/page.js.map +5 -0
  231. package/web/.next/server/app/outside-parties/[name]/change/page.js.nft.json +1 -0
  232. package/web/.next/server/app/outside-parties/[name]/change/page_client-reference-manifest.js +3 -0
  233. package/web/.next/server/app/outside-parties/[name]/page/app-paths-manifest.json +3 -0
  234. package/web/.next/server/app/outside-parties/[name]/page/build-manifest.json +23 -0
  235. package/web/.next/server/app/outside-parties/[name]/page/next-font-manifest.json +11 -0
  236. package/web/.next/server/app/outside-parties/[name]/page/react-loadable-manifest.json +1 -0
  237. package/web/.next/server/app/outside-parties/[name]/page/server-reference-manifest.json +15 -0
  238. package/web/.next/server/app/outside-parties/[name]/page.js +20 -0
  239. package/web/.next/server/app/outside-parties/[name]/page.js.map +5 -0
  240. package/web/.next/server/app/outside-parties/[name]/page.js.nft.json +1 -0
  241. package/web/.next/server/app/outside-parties/[name]/page_client-reference-manifest.js +3 -0
  242. package/web/.next/server/app/outside-parties/[name]/retire/page/app-paths-manifest.json +3 -0
  243. package/web/.next/server/app/outside-parties/[name]/retire/page/build-manifest.json +23 -0
  244. package/web/.next/server/app/outside-parties/[name]/retire/page/next-font-manifest.json +11 -0
  245. package/web/.next/server/app/outside-parties/[name]/retire/page/react-loadable-manifest.json +1 -0
  246. package/web/.next/server/app/outside-parties/[name]/retire/page/server-reference-manifest.json +35 -0
  247. package/web/.next/server/app/outside-parties/[name]/retire/page.js +21 -0
  248. package/web/.next/server/app/outside-parties/[name]/retire/page.js.map +5 -0
  249. package/web/.next/server/app/outside-parties/[name]/retire/page.js.nft.json +1 -0
  250. package/web/.next/server/app/outside-parties/[name]/retire/page_client-reference-manifest.js +3 -0
  251. package/web/.next/server/app/outside-parties/add/page/app-paths-manifest.json +3 -0
  252. package/web/.next/server/app/outside-parties/add/page/build-manifest.json +23 -0
  253. package/web/.next/server/app/outside-parties/add/page/next-font-manifest.json +11 -0
  254. package/web/.next/server/app/outside-parties/add/page/react-loadable-manifest.json +1 -0
  255. package/web/.next/server/app/outside-parties/add/page/server-reference-manifest.json +35 -0
  256. package/web/.next/server/app/outside-parties/add/page.js +19 -0
  257. package/web/.next/server/app/outside-parties/add/page.js.map +5 -0
  258. package/web/.next/server/app/outside-parties/add/page.js.nft.json +1 -0
  259. package/web/.next/server/app/outside-parties/add/page_client-reference-manifest.js +3 -0
  260. package/web/.next/server/app/outside-parties/page/app-paths-manifest.json +3 -0
  261. package/web/.next/server/app/outside-parties/page/build-manifest.json +23 -0
  262. package/web/.next/server/app/outside-parties/page/next-font-manifest.json +11 -0
  263. package/web/.next/server/app/outside-parties/page/react-loadable-manifest.json +1 -0
  264. package/web/.next/server/app/outside-parties/page/server-reference-manifest.json +25 -0
  265. package/web/.next/server/app/outside-parties/page.js +20 -0
  266. package/web/.next/server/app/outside-parties/page.js.map +5 -0
  267. package/web/.next/server/app/outside-parties/page.js.nft.json +1 -0
  268. package/web/.next/server/app/outside-parties/page_client-reference-manifest.js +3 -0
  269. package/web/.next/server/app/overview/changes/route/app-paths-manifest.json +3 -0
  270. package/web/.next/server/app/overview/changes/route/build-manifest.json +12 -0
  271. package/web/.next/server/app/overview/changes/route/server-reference-manifest.json +4 -0
  272. package/web/.next/server/app/overview/changes/route.js +6 -0
  273. package/web/.next/server/app/overview/changes/route.js.map +5 -0
  274. package/web/.next/server/app/overview/changes/route.js.nft.json +1 -0
  275. package/web/.next/server/app/overview/changes/route_client-reference-manifest.js +3 -0
  276. package/web/.next/server/app/overview/page/app-paths-manifest.json +3 -0
  277. package/web/.next/server/app/overview/page/build-manifest.json +23 -0
  278. package/web/.next/server/app/overview/page/next-font-manifest.json +11 -0
  279. package/web/.next/server/app/overview/page/react-loadable-manifest.json +1 -0
  280. package/web/.next/server/app/overview/page/server-reference-manifest.json +45 -0
  281. package/web/.next/server/app/overview/page.js +24 -0
  282. package/web/.next/server/app/overview/page.js.map +5 -0
  283. package/web/.next/server/app/overview/page.js.nft.json +1 -0
  284. package/web/.next/server/app/overview/page_client-reference-manifest.js +3 -0
  285. package/web/.next/server/app/overview/requests/[requestId]/page/app-paths-manifest.json +3 -0
  286. package/web/.next/server/app/overview/requests/[requestId]/page/build-manifest.json +23 -0
  287. package/web/.next/server/app/overview/requests/[requestId]/page/next-font-manifest.json +11 -0
  288. package/web/.next/server/app/overview/requests/[requestId]/page/react-loadable-manifest.json +1 -0
  289. package/web/.next/server/app/overview/requests/[requestId]/page/server-reference-manifest.json +25 -0
  290. package/web/.next/server/app/overview/requests/[requestId]/page.js +24 -0
  291. package/web/.next/server/app/overview/requests/[requestId]/page.js.map +5 -0
  292. package/web/.next/server/app/overview/requests/[requestId]/page.js.nft.json +1 -0
  293. package/web/.next/server/app/overview/requests/[requestId]/page_client-reference-manifest.js +3 -0
  294. package/web/.next/server/app/parties/page/app-paths-manifest.json +3 -0
  295. package/web/.next/server/app/parties/page/build-manifest.json +23 -0
  296. package/web/.next/server/app/parties/page/next-font-manifest.json +11 -0
  297. package/web/.next/server/app/parties/page/react-loadable-manifest.json +1 -0
  298. package/web/.next/server/app/parties/page/server-reference-manifest.json +55 -0
  299. package/web/.next/server/app/parties/page.js +22 -0
  300. package/web/.next/server/app/parties/page.js.map +5 -0
  301. package/web/.next/server/app/parties/page.js.nft.json +1 -0
  302. package/web/.next/server/app/parties/page_client-reference-manifest.js +3 -0
  303. package/web/.next/server/app/sign-in/failed/page/app-paths-manifest.json +3 -0
  304. package/web/.next/server/app/sign-in/failed/page/build-manifest.json +23 -0
  305. package/web/.next/server/app/sign-in/failed/page/next-font-manifest.json +11 -0
  306. package/web/.next/server/app/sign-in/failed/page/react-loadable-manifest.json +1 -0
  307. package/web/.next/server/app/sign-in/failed/page/server-reference-manifest.json +15 -0
  308. package/web/.next/server/app/sign-in/failed/page.js +18 -0
  309. package/web/.next/server/app/sign-in/failed/page.js.map +5 -0
  310. package/web/.next/server/app/sign-in/failed/page.js.nft.json +1 -0
  311. package/web/.next/server/app/sign-in/failed/page_client-reference-manifest.js +3 -0
  312. package/web/.next/server/app-paths-manifest.json +17 -0
  313. package/web/.next/server/chunks/[externals]__12s2uxrv8n30f._.js +3 -0
  314. package/web/.next/server/chunks/[externals]__12s2uxrv8n30f._.js.map +1 -0
  315. package/web/.next/server/chunks/[root-of-the-server]__00bbah0fbuex2._.js +369 -0
  316. package/web/.next/server/chunks/[root-of-the-server]__00bbah0fbuex2._.js.map +1 -0
  317. package/web/.next/server/chunks/[turbopack]_runtime.js +937 -0
  318. package/web/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
  319. package/web/.next/server/chunks/ssr/0vkm_server_app_overview_requests_[requestId]_page_actions_08cpboirhdm8t.js +3 -0
  320. package/web/.next/server/chunks/ssr/0vkm_server_app_overview_requests_[requestId]_page_actions_08cpboirhdm8t.js.map +1 -0
  321. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js +4 -0
  322. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js.map +1 -0
  323. package/web/.next/server/chunks/ssr/[root-of-the-server]__04_bc8g0oe4jt._.js +3 -0
  324. package/web/.next/server/chunks/ssr/[root-of-the-server]__04_bc8g0oe4jt._.js.map +1 -0
  325. package/web/.next/server/chunks/ssr/[root-of-the-server]__0dywrno7zb0r_._.js +3 -0
  326. package/web/.next/server/chunks/ssr/[root-of-the-server]__0dywrno7zb0r_._.js.map +1 -0
  327. package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js +3 -0
  328. package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js.map +1 -0
  329. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ntyo9p3x-w6a._.js +3 -0
  330. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ntyo9p3x-w6a._.js.map +1 -0
  331. package/web/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js +3 -0
  332. package/web/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js.map +1 -0
  333. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rzvf7wb60m05._.js +3 -0
  334. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rzvf7wb60m05._.js.map +1 -0
  335. package/web/.next/server/chunks/ssr/[root-of-the-server]__10rfwy-punm8_._.js +3 -0
  336. package/web/.next/server/chunks/ssr/[root-of-the-server]__10rfwy-punm8_._.js.map +1 -0
  337. package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js +3 -0
  338. package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js.map +1 -0
  339. package/web/.next/server/chunks/ssr/[root-of-the-server]__11e7zi5yg_f_4._.js +4 -0
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__11e7zi5yg_f_4._.js.map +1 -0
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__14w0fxvc_of17._.js +3 -0
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__14w0fxvc_of17._.js.map +1 -0
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__160zc0ja_jjnu._.js +3 -0
  344. package/web/.next/server/chunks/ssr/[root-of-the-server]__160zc0ja_jjnu._.js.map +1 -0
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__197il4swfpq1a._.js +3 -0
  346. package/web/.next/server/chunks/ssr/[root-of-the-server]__197il4swfpq1a._.js.map +1 -0
  347. package/web/.next/server/chunks/ssr/[root-of-the-server]__1afrhvkbp010p._.js +3 -0
  348. package/web/.next/server/chunks/ssr/[root-of-the-server]__1afrhvkbp010p._.js.map +1 -0
  349. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpk1uw97id0a._.js +4 -0
  350. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpk1uw97id0a._.js.map +1 -0
  351. package/web/.next/server/chunks/ssr/[root-of-the-server]__1vkw2kvzx6fpw._.js +3 -0
  352. package/web/.next/server/chunks/ssr/[root-of-the-server]__1vkw2kvzx6fpw._.js.map +1 -0
  353. package/web/.next/server/chunks/ssr/[root-of-the-server]__1wl0vw-n8lbkn._.js +14 -0
  354. package/web/.next/server/chunks/ssr/[root-of-the-server]__1wl0vw-n8lbkn._.js.map +1 -0
  355. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js +4 -0
  356. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js.map +1 -0
  357. package/web/.next/server/chunks/ssr/[root-of-the-server]__216xd8otb96uo._.js +3 -0
  358. package/web/.next/server/chunks/ssr/[root-of-the-server]__216xd8otb96uo._.js.map +1 -0
  359. package/web/.next/server/chunks/ssr/[turbopack]_runtime.js +937 -0
  360. package/web/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
  361. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +4 -0
  362. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -0
  363. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +57 -0
  364. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -0
  365. package/web/.next/server/chunks/ssr/_03xm-6l-r6ko0._.js +4 -0
  366. package/web/.next/server/chunks/ssr/_03xm-6l-r6ko0._.js.map +1 -0
  367. package/web/.next/server/chunks/ssr/_04iwj3w0divwb._.js +4 -0
  368. package/web/.next/server/chunks/ssr/_04iwj3w0divwb._.js.map +1 -0
  369. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +4 -0
  370. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -0
  371. package/web/.next/server/chunks/ssr/_13qzwpag13tvy._.js +4 -0
  372. package/web/.next/server/chunks/ssr/_13qzwpag13tvy._.js.map +1 -0
  373. package/web/.next/server/chunks/ssr/_1bfq0g9c1iw__._.js +4 -0
  374. package/web/.next/server/chunks/ssr/_1bfq0g9c1iw__._.js.map +1 -0
  375. package/web/.next/server/chunks/ssr/_1jfy4064jcghi._.js +3 -0
  376. package/web/.next/server/chunks/ssr/_1jfy4064jcghi._.js.map +1 -0
  377. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +4 -0
  378. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -0
  379. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +4 -0
  380. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -0
  381. package/web/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js +33 -0
  382. package/web/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js.map +1 -0
  383. package/web/.next/server/chunks/ssr/node_modules_0h91jdk0pr40d._.js +33 -0
  384. package/web/.next/server/chunks/ssr/node_modules_0h91jdk0pr40d._.js.map +1 -0
  385. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js +3 -0
  386. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js.map +1 -0
  387. package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js +17 -0
  388. package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js.map +1 -0
  389. package/web/.next/server/chunks/ssr/node_modules_next_164yuq6c86vw2._.js +291 -0
  390. package/web/.next/server/chunks/ssr/node_modules_next_164yuq6c86vw2._.js.map +1 -0
  391. package/web/.next/server/chunks/ssr/node_modules_next_17rgm9-6qzdn5._.js +313 -0
  392. package/web/.next/server/chunks/ssr/node_modules_next_17rgm9-6qzdn5._.js.map +1 -0
  393. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +6 -0
  394. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js.map +1 -0
  395. package/web/.next/server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js +3 -0
  396. package/web/.next/server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js.map +1 -0
  397. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_0p8s4lhdi0ir6._.js +3 -0
  398. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_0p8s4lhdi0ir6._.js.map +1 -0
  399. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js +3 -0
  400. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js.map +1 -0
  401. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js +3 -0
  402. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js.map +1 -0
  403. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@edge-runtime_cookies_index_1kiz_an963mbg.js +3 -0
  404. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@edge-runtime_cookies_index_1kiz_an963mbg.js.map +1 -0
  405. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js +3 -0
  406. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js.map +1 -0
  407. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03zgfhccdkaiy.js +3 -0
  408. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03zgfhccdkaiy.js.map +1 -0
  409. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fj-1791_p39n.js +3 -0
  410. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fj-1791_p39n.js.map +1 -0
  411. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pq59x3iko2ai.js +3 -0
  412. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pq59x3iko2ai.js.map +1 -0
  413. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0svltk31-r84e.js +3 -0
  414. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0svltk31-r84e.js.map +1 -0
  415. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ytc4y16h581t.js +3 -0
  416. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ytc4y16h581t.js.map +1 -0
  417. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15hcath_cy93j.js +3 -0
  418. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15hcath_cy93j.js.map +1 -0
  419. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18gq8l27vkevg.js +3 -0
  420. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18gq8l27vkevg.js.map +1 -0
  421. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z4y02i7.js +3 -0
  422. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z4y02i7.js.map +1 -0
  423. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ej-pov8ir4hb.js +3 -0
  424. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ej-pov8ir4hb.js.map +1 -0
  425. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1emdm3ck_2g9k.js +3 -0
  426. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1emdm3ck_2g9k.js.map +1 -0
  427. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mvwdrj8rcdc5.js +3 -0
  428. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mvwdrj8rcdc5.js.map +1 -0
  429. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uc-ufaepnlh_.js +3 -0
  430. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uc-ufaepnlh_.js.map +1 -0
  431. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ymh04086158y.js +3 -0
  432. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ymh04086158y.js.map +1 -0
  433. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z9khw-ht54ev.js +3 -0
  434. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z9khw-ht54ev.js.map +1 -0
  435. package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js +3 -0
  436. package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js.map +1 -0
  437. package/web/.next/server/chunks/ssr/web_0vot73dagfg_x._.js +3 -0
  438. package/web/.next/server/chunks/ssr/web_0vot73dagfg_x._.js.map +1 -0
  439. package/web/.next/server/chunks/ssr/web_17c7_dhsf-sjp._.js +3 -0
  440. package/web/.next/server/chunks/ssr/web_17c7_dhsf-sjp._.js.map +1 -0
  441. package/web/.next/server/chunks/ssr/web_1j5yjwqkgyeve._.js +3 -0
  442. package/web/.next/server/chunks/ssr/web_1j5yjwqkgyeve._.js.map +1 -0
  443. package/web/.next/server/chunks/ssr/web_1nqu01kfi0u66._.js +3 -0
  444. package/web/.next/server/chunks/ssr/web_1nqu01kfi0u66._.js.map +1 -0
  445. package/web/.next/server/chunks/ssr/web_1zd285_dq60z5._.js +3 -0
  446. package/web/.next/server/chunks/ssr/web_1zd285_dq60z5._.js.map +1 -0
  447. package/web/.next/server/chunks/ssr/web_207u8paamz3z-._.js +10 -0
  448. package/web/.next/server/chunks/ssr/web_207u8paamz3z-._.js.map +1 -0
  449. package/web/.next/server/chunks/ssr/web__next-internal_server_app__global-error_page_actions_0crg1npwvbfn5.js +3 -0
  450. package/web/.next/server/chunks/ssr/web__next-internal_server_app__global-error_page_actions_0crg1npwvbfn5.js.map +1 -0
  451. package/web/.next/server/chunks/ssr/web__next-internal_server_app_outside-parties_add_page_actions_0wclx47vjdhe6.js +3 -0
  452. package/web/.next/server/chunks/ssr/web__next-internal_server_app_outside-parties_add_page_actions_0wclx47vjdhe6.js.map +1 -0
  453. package/web/.next/server/chunks/ssr/web__next-internal_server_app_overview_page_actions_0hxu14a57nlf2.js +3 -0
  454. package/web/.next/server/chunks/ssr/web__next-internal_server_app_overview_page_actions_0hxu14a57nlf2.js.map +1 -0
  455. package/web/.next/server/chunks/ssr/web_app_not-found_tsx_1miwllm8xrp2a._.js +3 -0
  456. package/web/.next/server/chunks/ssr/web_app_not-found_tsx_1miwllm8xrp2a._.js.map +1 -0
  457. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_change_page_tsx_0kfjh3f55us56._.js +3 -0
  458. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_change_page_tsx_0kfjh3f55us56._.js.map +1 -0
  459. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_retire_page_tsx_0qhcnjpjipu_2._.js +3 -0
  460. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_retire_page_tsx_0qhcnjpjipu_2._.js.map +1 -0
  461. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_0qlcwxupzw726._.js +3 -0
  462. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_0qlcwxupzw726._.js.map +1 -0
  463. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_17_cklg40kzxe._.js +3 -0
  464. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_17_cklg40kzxe._.js.map +1 -0
  465. package/web/.next/server/chunks/ssr/web_app_parties_page_tsx_1lilxm339jj89._.js +3 -0
  466. package/web/.next/server/chunks/ssr/web_app_parties_page_tsx_1lilxm339jj89._.js.map +1 -0
  467. package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js +3 -0
  468. package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js.map +1 -0
  469. package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js +3 -0
  470. package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js.map +1 -0
  471. package/web/.next/server/chunks/ssr/web_features_0h0ueu8_-_z5k._.js +3 -0
  472. package/web/.next/server/chunks/ssr/web_features_0h0ueu8_-_z5k._.js.map +1 -0
  473. package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js +3 -0
  474. package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js.map +1 -0
  475. package/web/.next/server/chunks/ssr/web_features_0vq1wjkuh6dmr._.js +3 -0
  476. package/web/.next/server/chunks/ssr/web_features_0vq1wjkuh6dmr._.js.map +1 -0
  477. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +3 -0
  478. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -0
  479. package/web/.next/server/chunks/ssr/web_features_authorize_ui_waiting-for-approval_tsx_00iwjvj4orq9g._.js +3 -0
  480. package/web/.next/server/chunks/ssr/web_features_authorize_ui_waiting-for-approval_tsx_00iwjvj4orq9g._.js.map +1 -0
  481. package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js +3 -0
  482. package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js.map +1 -0
  483. package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js +3 -0
  484. package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js.map +1 -0
  485. package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js +3 -0
  486. package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js.map +1 -0
  487. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +3 -0
  488. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -0
  489. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +3 -0
  490. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js.map +1 -0
  491. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js +3 -0
  492. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js.map +1 -0
  493. package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js +3 -0
  494. package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js.map +1 -0
  495. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +3 -0
  496. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js.map +1 -0
  497. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +3 -0
  498. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +1 -0
  499. package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js +3 -0
  500. package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js.map +1 -0
  501. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +3 -0
  502. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js.map +1 -0
  503. package/web/.next/server/chunks/web__next-internal_server_app_overview_changes_route_actions_16jqwsctr1pzg.js +3 -0
  504. package/web/.next/server/chunks/web__next-internal_server_app_overview_changes_route_actions_16jqwsctr1pzg.js.map +1 -0
  505. package/web/.next/server/functions-config-manifest.json +4 -0
  506. package/web/.next/server/interception-route-rewrite-manifest.js +1 -0
  507. package/web/.next/server/middleware-build-manifest.js +194 -0
  508. package/web/.next/server/middleware-manifest.json +6 -0
  509. package/web/.next/server/next-font-manifest.js +1 -0
  510. package/web/.next/server/next-font-manifest.json +59 -0
  511. package/web/.next/server/pages/500.html +1 -0
  512. package/web/.next/server/pages-manifest.json +3 -0
  513. package/web/.next/server/prefetch-hints.json +11 -0
  514. package/web/.next/server/preview-props.json +5 -0
  515. package/web/.next/server/server-reference-manifest.js +1 -0
  516. package/web/.next/server/server-reference-manifest.json +202 -0
  517. package/web/.next/static/MLIzjhz2u5r5gyyuciHvf/_buildManifest.js +11 -0
  518. package/web/.next/static/MLIzjhz2u5r5gyyuciHvf/_clientMiddlewareManifest.js +1 -0
  519. package/web/.next/static/MLIzjhz2u5r5gyyuciHvf/_ssgManifest.js +1 -0
  520. package/web/.next/static/chunks/0214opd1iq3ld.js +1 -0
  521. package/web/.next/static/chunks/0a1vw3r93lh06.js +1 -0
  522. package/web/.next/static/chunks/0cz1d0mv5g_q7.js +1 -0
  523. package/web/.next/static/chunks/0hobzrlhklo3e.js +1 -0
  524. package/web/.next/static/chunks/0lzisjsmhlhjf.js +1 -0
  525. package/web/.next/static/chunks/0umf92h1sb77c.js +1 -0
  526. package/web/.next/static/chunks/1ma7v1viiz247.js +1 -0
  527. package/web/.next/static/chunks/1sgi4p93eayf4.js +1 -0
  528. package/web/.next/static/chunks/22u81hd6kxqsx.js +1 -0
  529. package/web/.next/static/chunks/2ewacyhp73due.js +1 -0
  530. package/web/.next/static/chunks/2hz8yws_wswjz.js +31 -0
  531. package/web/.next/static/chunks/2qpupho1jn-iy.js +1 -0
  532. package/web/.next/static/chunks/2rap-vrom5-zw.css +3 -0
  533. package/web/.next/static/chunks/3jr0srcv_-pfa.js +1 -0
  534. package/web/.next/static/chunks/3knqujtrdi225.js +1 -0
  535. package/web/.next/static/chunks/3l_1gcuoe8bfn.js +1 -0
  536. package/web/.next/static/chunks/3sv0_hjr9t4cp.js +1 -0
  537. package/web/.next/static/chunks/41rcj9-d-7p_4.js +22 -0
  538. package/web/.next/static/chunks/turbopack-3-ry682tkyiqk.js +1 -0
  539. package/web/.next/static/media/geist_mono_variable-s.p.3ms9vq719j3f8.woff2 +0 -0
  540. package/web/.next/static/media/geist_variable-s.p.0mrjj4bg00-he.woff2 +0 -0
  541. package/web/.next/trace +1 -0
  542. package/web/.next/trace-build +1 -0
  543. package/web/.next/turbopack +0 -0
  544. package/web/.next/types/cache-life.d.ts +114 -0
  545. package/web/.next/types/root-params.d.ts +3 -0
  546. package/web/.next/types/routes.d.ts +85 -0
  547. package/web/.next/types/validator.ts +288 -0
  548. package/web/next.config.ts +9 -0
  549. package/dist/adapters/crypto/page-sessions.d.ts +0 -15
  550. package/dist/adapters/crypto/page-sessions.js +0 -40
  551. package/dist/adapters/crypto/page-sessions.js.map +0 -1
  552. package/dist/adapters/http/add-server-page.d.ts +0 -7
  553. package/dist/adapters/http/add-server-page.js +0 -175
  554. package/dist/adapters/http/add-server-page.js.map +0 -1
  555. package/dist/adapters/http/delivery-page.d.ts +0 -24
  556. package/dist/adapters/http/delivery-page.js +0 -115
  557. package/dist/adapters/http/delivery-page.js.map +0 -1
  558. package/dist/adapters/http/html.d.ts +0 -15
  559. package/dist/adapters/http/html.js +0 -53
  560. package/dist/adapters/http/html.js.map +0 -1
  561. package/dist/adapters/http/outside-parties-page.d.ts +0 -33
  562. package/dist/adapters/http/outside-parties-page.js +0 -153
  563. package/dist/adapters/http/outside-parties-page.js.map +0 -1
  564. package/dist/adapters/http/outside-party-page.d.ts +0 -7
  565. package/dist/adapters/http/outside-party-page.js +0 -212
  566. package/dist/adapters/http/outside-party-page.js.map +0 -1
  567. package/dist/adapters/http/overview-page.d.ts +0 -17
  568. package/dist/adapters/http/overview-page.js +0 -298
  569. package/dist/adapters/http/overview-page.js.map +0 -1
  570. package/dist/adapters/http/parties-page.d.ts +0 -7
  571. package/dist/adapters/http/parties-page.js +0 -139
  572. package/dist/adapters/http/parties-page.js.map +0 -1
  573. package/dist/adapters/http/scope-rows.d.ts +0 -10
  574. package/dist/adapters/http/scope-rows.js +0 -30
  575. package/dist/adapters/http/scope-rows.js.map +0 -1
  576. package/dist/adapters/http/signal.d.ts +0 -61
  577. package/dist/adapters/http/signal.js +0 -263
  578. package/dist/adapters/http/signal.js.map +0 -1
  579. package/dist/core/sign-in/sign-out.d.ts +0 -10
  580. package/dist/core/sign-in/sign-out.js +0 -9
  581. package/dist/core/sign-in/sign-out.js.map +0 -1
  582. package/dist/core/sign-in/start-page-sign-in.d.ts +0 -25
  583. package/dist/core/sign-in/start-page-sign-in.js +0 -30
  584. package/dist/core/sign-in/start-page-sign-in.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../node_modules/next/src/client/components/hooks-server-context.ts","../../../../../node_modules/next/src/client/components/static-generation-bailout.ts","../../../../../node_modules/next/src/lib/framework/boundary-constants.tsx","../../../../../node_modules/next/src/lib/scheduler.ts","../../../../../node_modules/next/src/server/app-render/blocking-route-messages.ts","../../../../../node_modules/next/src/server/app-render/dynamic-rendering.ts","../../../../../node_modules/next/src/server/app-render/instant-validation/boundary-constants.ts","../../../../../node_modules/next/src/server/app-render/instant-validation/boundary-tracking.tsx","../../../../../node_modules/next/src/server/app-render/segment-config/ensure-static.ts","../../../../../node_modules/next/src/server/app-render/staged-rendering.ts","../../../../../node_modules/next/src/server/create-deduped-by-callsite-server-error-logger.ts","../../../../../node_modules/next/src/server/dynamic-rendering-utils.ts","../../../../../node_modules/next/src/server/lib/app-dir-module.ts","../../../../../node_modules/next/src/server/request/cookies.ts","../../../../../node_modules/next/src/server/request/draft-mode.ts","../../../../../node_modules/next/src/server/request/headers.ts","../../../../../node_modules/next/src/server/request/utils.ts","../../../../../node_modules/next/src/server/use-cache/use-cache-messages.ts","../../../../../node_modules/next/src/server/web/spec-extension/adapters/headers.ts","../../../../../node_modules/next/src/server/web/spec-extension/adapters/reflect.ts","../../../../../node_modules/next/src/server/web/spec-extension/adapters/request-cookies.ts","../../../../../node_modules/next/src/server/web/spec-extension/cookies.ts","../../../../../node_modules/next/src/shared/lib/action-revalidation-kind.ts","../../../../../node_modules/next/src/shared/lib/instant-messages.ts","../../../../../node_modules/next/src/shared/lib/invariant-error.ts","../../../../../node_modules/next/src/shared/lib/lazy-dynamic/react-browser-bailout.ts","../../../../../node_modules/next/src/shared/lib/promise-with-resolvers.ts","../../../../../node_modules/next/src/shared/lib/router/utils/parse-loader-tree.ts","../../../../../node_modules/next/src/shared/lib/segment.ts","../../../../../node_modules/next/headers.js"],"sourcesContent":["const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'\n\nexport class DynamicServerError extends Error {\n digest: typeof DYNAMIC_ERROR_CODE = DYNAMIC_ERROR_CODE\n\n constructor(public readonly description: string) {\n super(`Dynamic server usage: ${description}`)\n }\n}\n\nexport function isDynamicServerError(err: unknown): err is DynamicServerError {\n if (\n typeof err !== 'object' ||\n err === null ||\n !('digest' in err) ||\n typeof err.digest !== 'string'\n ) {\n return false\n }\n\n return err.digest === DYNAMIC_ERROR_CODE\n}\n","const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'\n\nexport class StaticGenBailoutError extends Error {\n public readonly code = NEXT_STATIC_GEN_BAILOUT\n}\n\nexport function isStaticGenBailoutError(\n error: unknown\n): error is StaticGenBailoutError {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false\n }\n\n return error.code === NEXT_STATIC_GEN_BAILOUT\n}\n","export const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__'\nexport const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__'\nexport const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__'\nexport const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'\n","export type ScheduledFn<T = void> = () => T | PromiseLike<T>\nexport type SchedulerFn<T = void> = (cb: ScheduledFn<T>) => void\n\n/**\n * Schedules a function to be called on the next tick after the other promises\n * have been resolved.\n *\n * @param cb the function to schedule\n */\nexport const scheduleOnNextTick = (cb: ScheduledFn<void>) => {\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(() => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n process.nextTick(cb)\n }\n })\n}\n\n/**\n * Schedules a function to be called using `setImmediate` or `setTimeout` if\n * `setImmediate` is not available (like in the Edge runtime).\n *\n * @param cb the function to schedule\n */\nexport const scheduleImmediate = (cb: ScheduledFn<void>): void => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n setImmediate(cb)\n }\n}\n\n/**\n * returns a promise than resolves in a future task. There is no guarantee that the task it resolves in\n * will be the next task but if you await it you can at least be sure that the current task is over and\n * most usefully that the entire microtask queue of the current task has been emptied.\n */\nexport function atLeastOneTask() {\n return new Promise<void>((resolve) => scheduleImmediate(resolve))\n}\n\n/**\n * This utility function is extracted to make it easier to find places where we are doing\n * specific timing tricks to try to schedule work after React has rendered. This is especially\n * important at the moment because Next.js uses the edge builds of React which use setTimeout to\n * schedule work when you might expect that something like setImmediate would do the trick.\n *\n * Long term we should switch to the node versions of React rendering when possible and then\n * update this to use setImmediate rather than setTimeout\n */\nexport function waitAtLeastOneReactRenderTask(): Promise<void> {\n if (process.env.NEXT_RUNTIME === 'edge') {\n return new Promise((r) => setTimeout(r, 0))\n } else {\n return new Promise((r) => setImmediate(r))\n }\n}\n","export function createRuntimeBodyError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered runtime data during prerendering.\\n\\n` +\n `\\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` accessed outside of \\`<Suspense>\\` prevents the route from being prerendered, blocking the page load and leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [stream] Provide a placeholder with \\`<Suspense fallback={...}>\\` around the data access\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-runtime`\n )\n}\n\nexport function createDynamicBodyError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached data during prerendering.\\n\\n` +\n `\\`fetch(...)\\` or \\`connection()\\` accessed outside of \\`<Suspense>\\` prevents the route from being prerendered, blocking the page load and leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [stream] Provide a placeholder with \\`<Suspense fallback={...}>\\` around the data access\\n` +\n ` - [cache] Cache the data access with \\`\"use cache\"\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-dynamic`\n )\n}\n\nexport function createRuntimeBodyErrorInNavigation(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered runtime data during prerendering or a navigation.\\n\\n` +\n `\\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` accessed outside of \\`<Suspense>\\` prevents the route from being prerendered or the navigation from being instant, leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [stream] Provide a placeholder with \\`<Suspense fallback={...}>\\` around the data access\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-runtime`\n )\n}\n\nexport function createLinkBodyErrorInNavigation(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered URL data during prerendering or a navigation.\\n\\n` +\n `\\`params\\` or \\`searchParams\\` accessed outside of \\`<Suspense>\\` may prevent the navigation from being instant, leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [stream] Provide a placeholder with \\`<Suspense fallback={...}>\\` around the data access\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/instant-shell-url-data`\n )\n}\n\nexport function createNavigationBodyErrorInNavigation(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered \\`navigation()\\` during prerendering or a navigation.\\n\\n` +\n `\\`navigation()\\` called outside of \\`<Suspense>\\` may prevent the navigation from being instant, leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [stream] Provide a placeholder with \\`<Suspense fallback={...}>\\` around the component that calls \\`navigation()\\`\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/instant-navigation-stage`\n )\n}\n\nexport function createPrefetchBodyErrorInNavigation(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered \\`prefetch()\\` during prerendering or a navigation.\\n\\n` +\n `\\`prefetch()\\` called outside of \\`<Suspense>\\` may prevent the navigation from being instant, leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [stream] Provide a placeholder with \\`<Suspense fallback={...}>\\` around the component that calls \\`prefetch()\\`\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/instant-navigation-stage`\n )\n}\n\nexport function createDynamicBodyErrorInNavigation(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached data during prerendering or a navigation.\\n\\n` +\n `\\`fetch(...)\\` or \\`connection()\\` accessed outside of \\`<Suspense>\\` prevents the route from being prerendered or the navigation from being instant, leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [stream] Provide a placeholder with \\`<Suspense fallback={...}>\\` around the data access\\n` +\n ` - [cache] Cache the data access with \\`\"use cache\"\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-dynamic`\n )\n}\n\n/**\n * NOTE: Prefer `createRuntimeBodyError` or `createDynamicBodyError`.\n * Only use this in situations like build-time static validation, where\n * we can't pinpoint a more specific reason.\n */\nexport function createDynamicOrRuntimeBodyError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached or runtime data during prerendering.\\n\\n` +\n `\\`fetch(...)\\`, \\`cookies()\\`, \\`headers()\\`, \\`params\\`, \\`searchParams\\`, or \\`connection()\\` accessed outside of \\`<Suspense>\\` prevents the route from being prerendered, blocking the page load and leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [stream] Provide a placeholder with \\`<Suspense fallback={...}>\\` around the data access\\n` +\n ` - [cache] For uncached data (\\`fetch\\`, database calls): cache the access with \\`\"use cache\"\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-dynamic`\n )\n}\n\nexport function createLinkMetadataError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered URL data in \\`generateMetadata()\\`.\\n\\n` +\n `This route's metadata is blocked, but the rest of its content can be prefetched. \\`params\\` or \\`searchParams\\` accessed in \\`generateMetadata()\\` prevent it from being prefetched.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [static] Use a static metadata export instead of \\`generateMetadata()\\`\\n` +\n ` - [dynamic] Render a marker component that calls \\`await connection()\\` inside \\`<Suspense>\\` on the page\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-runtime`\n )\n}\n\nexport function createRuntimeMetadataError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered runtime data in \\`generateMetadata()\\`.\\n\\n` +\n `This route's metadata is blocked, but the rest of its content can be prerendered. \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` accessed in \\`generateMetadata()\\` cause it to run dynamically.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [static] Use a static metadata export instead of \\`generateMetadata()\\`\\n` +\n ` - [dynamic] Render a marker component that calls \\`await connection()\\` inside \\`<Suspense>\\` on the page\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-runtime`\n )\n}\n\nexport function createNavigationMetadataError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered \\`navigation()\\` in \\`generateMetadata()\\`.\\n\\n` +\n `Metadata can already stream without blocking the route's UI, so delaying it until navigation may be unintentional.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [remove] Remove \\`navigation()\\` from \\`generateMetadata()\\`\\n` +\n ` - [mark] Render a marker component that calls \\`await navigation()\\` inside \\`<Suspense>\\` on the page\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/instant-navigation-stage-metadata`\n )\n}\n\nexport function createPrefetchMetadataError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered \\`prefetch()\\` in \\`generateMetadata()\\`.\\n\\n` +\n `Metadata can already stream without blocking the route's UI, so delaying it until a per-link prefetch or navigation may be unintentional.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [remove] Remove \\`prefetch()\\` from \\`generateMetadata()\\`\\n` +\n ` - [mark] Render a marker component that calls \\`await prefetch()\\` inside \\`<Suspense>\\` on the page\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/instant-navigation-stage-metadata`\n )\n}\n\nexport function createDynamicMetadataError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached data in \\`generateMetadata()\\`.\\n\\n` +\n `This route's metadata is blocked, but the rest of its content can be prerendered. \\`fetch(...)\\` or \\`connection()\\` accessed in \\`generateMetadata()\\` cause it to run dynamically.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [cache] Cache the metadata with \\`\"use cache\"\\` in \\`generateMetadata()\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [dynamic] Render a marker component that calls \\`await connection()\\` inside \\`<Suspense>\\` on the page\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-dynamic`\n )\n}\n\nexport function createLinkViewportError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered URL data in \\`generateViewport()\\`.\\n\\n` +\n `\\`params\\` or \\`searchParams\\` in \\`generateViewport()\\` prevents the page from being prerendered, leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [static] Use a static viewport export instead of \\`generateViewport()\\`\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-viewport-runtime`\n )\n}\n\nexport function createRuntimeViewportError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered runtime data in \\`generateViewport()\\`.\\n\\n` +\n `\\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` in \\`generateViewport()\\` prevents the page from being prerendered, leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [static] Use a static viewport export instead of \\`generateViewport()\\`\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-viewport-runtime`\n )\n}\n\nexport function createNavigationViewportError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered \\`navigation()\\` in \\`generateViewport()\\`.\\n\\n` +\n `This prevents Next.js from creating the App Shell, leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [remove] Remove \\`navigation()\\` from \\`generateViewport()\\`\\n` +\n ` - [ignore] Set \\`export const instant = false\\` to disable validation for this segment\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/instant-navigation-stage-viewport`\n )\n}\n\nexport function createPrefetchViewportError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered \\`prefetch()\\` in \\`generateViewport()\\`.\\n\\n` +\n `This prevents Next.js from creating the App Shell, leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [remove] Remove \\`prefetch()\\` from \\`generateViewport()\\`\\n` +\n ` - [ignore] Set \\`export const instant = false\\` to disable validation for this segment\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/instant-navigation-stage-viewport`\n )\n}\n\nexport function createDynamicViewportError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached data in \\`generateViewport()\\`.\\n\\n` +\n `\\`fetch(...)\\` or \\`connection()\\` in \\`generateViewport()\\` prevents the page from being prerendered, leading to a slower user experience.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [cache] Cache the viewport data with \\`\"use cache\"\\` in \\`generateViewport()\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-viewport-dynamic`\n )\n}\n\n/**\n * NOTE: Prefer `createRuntimeViewportError` or `createDynamicViewportError`.\n * Only use this in situations like build-time static validation, where\n * we can't pinpoint a more specific reason.\n */\nexport function createDynamicOrRuntimeViewportError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached or runtime data in \\`generateViewport()\\`.\\n\\n` +\n `This prevents the page from being prerendered, leading to a slower user experience. Unlike metadata, viewport cannot be streamed behind \\`<Suspense>\\` because it affects the initial page load.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [static] Use a static viewport export instead of \\`generateViewport()\\`\\n` +\n ` - [cache] For uncached data (\\`fetch\\`, database calls): cache the viewport with \\`\"use cache\"\\` in \\`generateViewport()\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-viewport-runtime`\n )\n}\n\n/**\n * NOTE: Prefer `createRuntimeMetadataError` or `createDynamicMetadataError`.\n * Only use this in situations like build-time static validation, where\n * we can't pinpoint a more specific reason.\n */\nexport function createDynamicOrRuntimeMetadataError(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached or runtime data in \\`generateMetadata()\\`.\\n\\n` +\n `This route's metadata is blocked, but the rest of its content can be prerendered.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [static] Use a static metadata export instead of \\`generateMetadata()\\`\\n` +\n ` - [cache] Cache the metadata with \\`\"use cache\"\\` in \\`generateMetadata()\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [dynamic] Render a marker component that calls \\`await connection()\\` inside \\`<Suspense>\\` on the page\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-runtime`\n )\n}\n\n//====================================================\n// Static routes (with `ensureStatic = \"navigation\"`)\n//====================================================\n\nexport function createRuntimeBodyErrorInStaticRoute(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered runtime data on a route that must be fully static.\\n\\n` +\n `This route is configured to be fully static, but runtime data from \\`cookies()\\`, \\`headers()\\`, \\`params\\`, \\`searchParams\\`, or a short-lived cache requires rendering at request time.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [remove] Remove the data access\\n` +\n ` - [client] Read the data on the client\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/static-route-runtime`\n )\n}\n\nexport function createDynamicBodyErrorInStaticRoute(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached data on a route that must be fully static.\\n\\n` +\n `This route is configured to be fully static, but an uncached \\`fetch(...)\\`, database call, or \\`connection()\\` requires rendering at request time.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [cache] Cache the data access with \\`\"use cache\"\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [remove] Remove the data access\\n` +\n ` - [client] Read the data on the client\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/static-route-dynamic`\n )\n}\n\nexport function createNonPrerenderableBodyErrorInStaticRoute(\n route: string\n): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached or runtime data on a route that must be fully static.\\n\\n` +\n `This route is configured to be fully static, but some data requires rendering at request time.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [cache] For uncached data (\\`fetch\\`, database calls): cache the access with \\`\"use cache\"\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [remove] Remove the data access\\n` +\n ` - [client] Read the data on the client\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/static-route-dynamic`\n )\n}\n\nexport function createRuntimeMetadataErrorInStaticRoute(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered runtime data in \\`generateMetadata()\\` on a route that must be fully static.\\n\\n` +\n `This route is configured to be fully static, but runtime data from \\`cookies()\\`, \\`headers()\\`, \\`params\\`, \\`searchParams\\`, or a short-lived cache requires rendering at request time.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [static] Replace the dynamic data used by \\`generateMetadata()\\` with static data\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/static-metadata-runtime`\n )\n}\n\nexport function createDynamicMetadataErrorInStaticRoute(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached data in \\`generateMetadata()\\` on a route that must be fully static.\\n\\n` +\n `This route is configured to be fully static, but an uncached \\`fetch(...)\\`, database call, or \\`connection()\\` requires rendering at request time.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [cache] Cache the data used by \\`generateMetadata()\\` with \\`\"use cache\"\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [static] Replace the dynamic data used by \\`generateMetadata()\\` with static data\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/static-metadata-dynamic`\n )\n}\n\nexport function createNonPrerenderableMetadataErrorInStaticRoute(\n route: string\n): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached or runtime data in \\`generateMetadata()\\` on a route that must be fully static.\\n\\n` +\n `This route is configured to be fully static, but some data requires rendering at request time.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [cache] For uncached data: cache the data used by \\`generateMetadata()\\` with \\`\"use cache\"\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [static] Replace the dynamic data used by \\`generateMetadata()\\` with static data\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/static-metadata-dynamic`\n )\n}\n\nexport function createRuntimeViewportErrorInStaticRoute(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered runtime data in \\`generateViewport()\\` on a route that must be fully static.\\n\\n` +\n `This route is configured to be fully static, but runtime data from \\`cookies()\\`, \\`headers()\\`, \\`params\\`, \\`searchParams\\`, or a short-lived cache requires rendering at request time.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [static] Replace the dynamic data used by \\`generateViewport()\\` with static data\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/static-viewport-runtime`\n )\n}\n\nexport function createDynamicViewportErrorInStaticRoute(route: string): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached data in \\`generateViewport()\\` on a route that must be fully static.\\n\\n` +\n `This route is configured to be fully static, but an uncached \\`fetch(...)\\`, database call, or \\`connection()\\` requires rendering at request time.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [cache] Cache the data used by \\`generateViewport()\\` with \\`\"use cache\"\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [static] Replace the dynamic data used by \\`generateViewport()\\` with static data\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/static-viewport-dynamic`\n )\n}\n\nexport function createNonPrerenderableViewportErrorInStaticRoute(\n route: string\n): Error {\n return new Error(\n `Route \"${route}\": Next.js encountered uncached or runtime data in \\`generateViewport()\\` on a route that must be fully static.\\n\\n` +\n `This route is configured to be fully static, but some data requires rendering at request time.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [cache] For uncached data: cache the data used by \\`generateViewport()\\` with \\`\"use cache\"\\` (does not apply to \\`connection()\\`)\\n` +\n ` - [static] Replace the dynamic data used by \\`generateViewport()\\` with static data\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/static-viewport-dynamic`\n )\n}\n\nexport function logBuildDebugHint(route: string): void {\n if (process.env.NODE_ENV !== 'development') {\n console.error(\n `To get a more detailed stack trace and pinpoint the issue, try one of the following:\\n` +\n ` - Start the app in development mode by running \\`next dev\\`, then open \"${route}\" in your browser to investigate the error.\\n` +\n ` - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`\n )\n } else if (!process.env.__NEXT_DEV_SERVER) {\n console.error(\n `To debug the issue, start the app in development mode by running \\`next dev\\`, then open \"${route}\" in your browser to investigate the error.`\n )\n }\n}\n","/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */\n\nimport type { WorkStore } from './work-async-storage.external'\nimport type {\n RequestStore,\n WorkUnitStore,\n PrerenderStoreLegacy,\n PrerenderStoreModern,\n ValidationStoreClient,\n PrerenderStoreModernServer,\n} from './work-unit-async-storage.external'\n\n// Once postpone is in stable we should switch to importing the postpone export directly\nimport React from 'react'\n\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { getStagedRenderingController } from './work-unit-async-storage.external'\nimport { isClientHookDynamicError } from '../dynamic-rendering-utils'\nimport {\n METADATA_BOUNDARY_NAME,\n VIEWPORT_BOUNDARY_NAME,\n OUTLET_BOUNDARY_NAME,\n ROOT_LAYOUT_BOUNDARY_NAME,\n} from '../../lib/framework/boundary-constants'\nimport { scheduleOnNextTick } from '../../lib/scheduler'\nimport {\n createRuntimeBodyError,\n createDynamicBodyError,\n createRuntimeBodyErrorInNavigation,\n createNavigationBodyErrorInNavigation,\n createPrefetchBodyErrorInNavigation,\n createDynamicBodyErrorInNavigation,\n createDynamicOrRuntimeBodyError,\n createRuntimeMetadataError,\n createDynamicMetadataError,\n createRuntimeViewportError,\n createNavigationViewportError,\n createPrefetchViewportError,\n createDynamicViewportError,\n createDynamicOrRuntimeViewportError,\n createDynamicOrRuntimeMetadataError,\n logBuildDebugHint,\n createLinkBodyErrorInNavigation,\n createLinkMetadataError,\n createLinkViewportError,\n createNavigationMetadataError,\n createPrefetchMetadataError,\n createNonPrerenderableMetadataErrorInStaticRoute,\n createNonPrerenderableViewportErrorInStaticRoute,\n createNonPrerenderableBodyErrorInStaticRoute,\n createRuntimeBodyErrorInStaticRoute,\n createDynamicBodyErrorInStaticRoute,\n createRuntimeMetadataErrorInStaticRoute,\n createDynamicMetadataErrorInStaticRoute,\n createRuntimeViewportErrorInStaticRoute,\n createDynamicViewportErrorInStaticRoute,\n} from './blocking-route-messages'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport {\n INSTANT_VALIDATION_BOUNDARY_NAME,\n INSTANT_SLOT_MARKER_PREFIX,\n INSTANT_SLOT_MARKER_SUFFIX,\n} from './instant-validation/boundary-constants'\nimport {\n type ValidationBoundaryTracking,\n allRequiredBoundariesRendered,\n} from './instant-validation/boundary-tracking'\nimport type { InstantValidationSampleTracking } from './instant-validation/instant-samples'\nimport { createUnrenderedSegmentError } from '../../shared/lib/instant-messages'\nimport { getReactBrowserBailoutReason } from '../../shared/lib/lazy-dynamic/react-browser-bailout'\n\nexport type DynamicAccess = {\n /**\n * If debugging, this will contain the stack trace of where the dynamic access\n * occurred. This is used to provide more information to the user about why\n * their page is being rendered dynamically.\n */\n stack?: string\n\n /**\n * The expression that was accessed dynamically.\n */\n expression: string\n}\n\n// Stores dynamic reasons used during an RSC render.\nexport type DynamicTrackingState = {\n /**\n * When true, stack information will also be tracked during dynamic access.\n */\n readonly isDebugDynamicAccesses: boolean | undefined\n\n /**\n * The dynamic accesses that occurred during the render.\n */\n readonly dynamicAccesses: Array<DynamicAccess>\n\n syncDynamicErrorWithStack: null | Error\n syncDynamicErrorWithStackPostMicrotask: boolean\n}\n\n// Stores dynamic reasons used during an SSR render.\nexport type DynamicValidationState = {\n hasSuspenseAboveBody: boolean\n hasDynamicMetadata: boolean\n dynamicMetadata: null | Error\n hasDynamicViewport: boolean\n hasAllowedDynamic: boolean\n dynamicErrors: Array<Error>\n}\n\nexport function createDynamicTrackingState(\n isDebugDynamicAccesses: boolean | undefined\n): DynamicTrackingState {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null,\n syncDynamicErrorWithStackPostMicrotask: false,\n }\n}\n\nexport function createDynamicValidationState(): DynamicValidationState {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n dynamicMetadata: null,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: [],\n }\n}\n\nfunction getPendingClientSyncDynamicError(\n clientDynamic: DynamicTrackingState\n): null | Error {\n return clientDynamic.syncDynamicErrorWithStackPostMicrotask\n ? null\n : clientDynamic.syncDynamicErrorWithStack\n}\n\nexport function getFirstDynamicReason(\n trackingState: DynamicTrackingState\n): undefined | string {\n return trackingState.dynamicAccesses[0]?.expression\n}\n\n/**\n * This function communicates that the current scope should be treated as dynamic.\n *\n * In most cases this function is a no-op but if called during\n * a PPR prerender it will postpone the current sub-tree and calling\n * it during a normal prerender will cause the entire prerender to abort\n */\nexport function markCurrentScopeAsDynamic(\n store: WorkStore,\n workUnitStore: undefined | Exclude<WorkUnitStore, PrerenderStoreModern>,\n expression: string\n): void {\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender-legacy':\n case 'request':\n case 'build-time-generator':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return\n\n if (store.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-legacy':\n workUnitStore.revalidate = 0\n\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n case 'request':\n markRequestStoreAsDynamic(workUnitStore)\n break\n case 'build-time-generator':\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\n/**\n * This function is meant to be used when prerendering without cacheComponents or PPR.\n * When called during a build it will cause Next.js to consider the route as dynamic.\n *\n * @internal\n */\nexport function throwToInterruptStaticGeneration(\n expression: string,\n store: WorkStore,\n prerenderStore: PrerenderStoreLegacy\n): never {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n\n prerenderStore.revalidate = 0\n\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n}\n\n/**\n * This function should be used to track whether something dynamic happened even when\n * we are in a dynamic render. This is useful for Dev where all renders are dynamic but\n * we still track whether dynamic APIs were accessed for helpful messaging\n *\n * @internal\n */\nexport function trackDynamicDataInDynamicRender(workUnitStore: WorkUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-client':\n case 'validation-client':\n case 'build-time-generator':\n break\n case 'request':\n markRequestStoreAsDynamic(workUnitStore)\n break\n default:\n workUnitStore satisfies never\n }\n}\n\nfunction markRequestStoreAsDynamic(requestStore: RequestStore): void {\n if (process.env.__NEXT_DEV_SERVER && requestStore.phase === 'render') {\n requestStore.usedDynamic = true\n }\n}\n\nfunction abortOnSynchronousDynamicDataAccess(\n route: string,\n expression: string,\n prerenderStore: PrerenderStoreModern\n): void {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n\n const error = createPrerenderInterruptedError(reason)\n\n prerenderStore.controller.abort(error)\n\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function abortOnSynchronousPlatformIOAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): void {\n const dynamicTracking = prerenderStore.dynamicTracking\n\n if (dynamicTracking && dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n // React completes the task that is currently rendering before scheduled\n // abort cleanup. Client tracking can attribute the sync IO only during\n // that current task; server tracking keeps the error regardless.\n queueMicrotask(() => {\n dynamicTracking.syncDynamicErrorWithStackPostMicrotask = true\n })\n }\n\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n}\n\n/**\n * use this function when prerendering with cacheComponents. If we are doing a\n * prospective prerender we don't actually abort because we want to discover\n * all caches for the shell. If this is the actual prerender we do abort.\n *\n * This function accepts a prerenderStore but the caller should ensure we're\n * actually running in cacheComponents mode.\n *\n * @internal\n */\nexport function abortAndThrowOnSynchronousRequestDataAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): never {\n const prerenderSignal = prerenderStore.controller.signal\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // Preserve the exact server-side dynamic access for final validation after\n // interrupting this render.\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n }\n throw createPrerenderInterruptedError(\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n )\n}\n\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED'\n\nfunction createPrerenderInterruptedError(message: string): Error {\n const error = new Error(message)\n ;(error as any).digest = NEXT_PRERENDER_INTERRUPTED\n return error\n}\n\ntype DigestError = Error & {\n digest: string\n}\n\nexport function isPrerenderInterruptedError(\n error: unknown\n): error is DigestError {\n return (\n typeof error === 'object' &&\n error !== null &&\n (error as any).digest === NEXT_PRERENDER_INTERRUPTED &&\n 'name' in error &&\n 'message' in error &&\n error instanceof Error\n )\n}\n\nexport function accessedDynamicData(\n dynamicAccesses: Array<DynamicAccess>\n): boolean {\n return dynamicAccesses.length > 0\n}\n\nexport function consumeDynamicAccess(\n serverDynamic: DynamicTrackingState,\n clientDynamic: DynamicTrackingState\n): DynamicTrackingState['dynamicAccesses'] {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses)\n return serverDynamic.dynamicAccesses\n}\n\nexport function formatDynamicAPIAccesses(\n dynamicAccesses: Array<DynamicAccess>\n): string[] {\n return dynamicAccesses\n .filter(\n (access): access is Required<DynamicAccess> =>\n typeof access.stack === 'string' && access.stack.length > 0\n )\n .map(({ expression, stack }) => {\n stack = stack\n .split('\\n')\n // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4)\n .filter((line) => {\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false\n }\n\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' (<anonymous>)')) {\n return false\n }\n\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false\n }\n\n return true\n })\n .join('\\n')\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`\n })\n}\n\n/**\n * In a prerender, we may end up with hanging Promises as inputs due them\n * stalling on connection() or because they're loading dynamic data. In that\n * case we need to abort the encoding of arguments since they'll never complete.\n */\nexport function createHangingInputAbortSignal(\n workUnitStore: PrerenderStoreModernServer\n): AbortSignal\nexport function createHangingInputAbortSignal(\n workUnitStore: WorkUnitStore\n): AbortSignal | undefined\nexport function createHangingInputAbortSignal(\n workUnitStore: WorkUnitStore\n): AbortSignal | undefined {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController()\n\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(() => {\n controller.abort()\n })\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the final stage.\n // if an input didn't resolve at that point, then we can assume it never will.\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n\n const stagedRendering = getStagedRenderingController(workUnitStore)\n if (stagedRendering && stagedRendering.finalStage !== null) {\n stagedRendering\n .waitForStage(stagedRendering.finalStage)\n .then(() => scheduleOnNextTick(() => controller.abort()), noop)\n } else {\n scheduleOnNextTick(() => controller.abort())\n }\n }\n\n return controller.signal\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'build-time-generator':\n return undefined\n default:\n workUnitStore satisfies never\n }\n}\n\nfunction noop() {}\n\nexport function annotateDynamicAccess(\n expression: string,\n prerenderStore: PrerenderStoreModern | ValidationStoreClient\n) {\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/\n\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags =\n 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6'\n\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense (<anonymous>)\n// at SomeComponent (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(\n `\\\\n\\\\s+at Suspense \\\\(<anonymous>\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(<anonymous>\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`\n)\n\nconst hasMetadataRegex = new RegExp(\n `\\\\n\\\\s+at ${METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasViewportRegex = new RegExp(\n `\\\\n\\\\s+at ${VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`)\n\nconst hasInstantValidationBoundaryRegex = new RegExp(\n `\\\\n\\\\s+at ${INSTANT_VALIDATION_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst slotMarkerRegex = new RegExp(\n `\\\\n\\\\s+at ${INSTANT_SLOT_MARKER_PREFIX}(\\\\d+)${INSTANT_SLOT_MARKER_SUFFIX}[\\\\n\\\\s]`\n)\n\n/** Look up the config factory for the slot this error belongs to.\n * Checks the component stack for a slot marker (__next_instant_slot_N__)\n * and returns the config at that index. Falls back to index 0 (root\n * config) when no slot marker is found or the slot has no config. */\nfunction resolveInstantStack(\n componentStack: string,\n dynamicValidation: InstantValidationState\n): (() => Error) | null {\n const { slotStacks } = dynamicValidation\n if (slotStacks.length > 1) {\n const match = slotMarkerRegex.exec(componentStack)\n if (match) {\n // Slot markers are 0-indexed in the component name but\n // slotStacks is 1-indexed (index 0 is the root config).\n const slotIndex = parseInt(match[1], 10) + 1\n const slotStack = slotStacks[slotIndex]\n if (slotStack != null) {\n return slotStack\n }\n }\n }\n // Fall back to root config (index 0)\n return slotStacks[0] ?? null\n}\n\n/**\n * Inspects the component stack of an outlet boundary to discover whether the\n * user placed a Suspense boundary above the document body, and records the\n * opt-in on `dynamicValidation.hasSuspenseAboveBody` if so.\n *\n * The outlet itself isn't a meaningful source of dynamic — it only resolves\n * when metadata/viewport are dynamic, which we track via their own boundaries.\n * However, the outlet renders alongside the page content, so its stack passes\n * through the user's layout chain (typically reaching into `<body>` via the\n * root layout). That makes the outlet stack our best opportunity to spot a\n * Suspense boundary above the body, even when no real body content is dynamic.\n * Without this, a route whose only dynamic source is `generateViewport()` would\n * miss the Suspense-above-body opt-in, because the viewport's stack lives in\n * the head and never sees the user's root layout.\n *\n * We deliberately only set `hasSuspenseAboveBody`, not `hasAllowedDynamic`. The\n * latter tracks whether the body has dynamic content that's been wrapped in\n * Suspense (i.e., the page is partially dynamic). The outlet rendering tells us\n * about the structural opt-in for an empty shell, not about the body being\n * partially dynamic. The distinction matters because dynamic metadata is only\n * acceptable when the page is partially dynamic (via real body holes), and we\n * don't want this outlet-based detection to mask that case.\n */\nfunction trackOutletSuspenseAboveBody(\n componentStack: string,\n dynamicValidation: DynamicValidationState\n): void {\n if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n dynamicValidation.hasSuspenseAboveBody = true\n }\n}\n\nexport function trackDynamicAccessInStaticRoute(\n dynamicReason: unknown,\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState,\n isServerPartial: boolean,\n kind: StaticValidationHoleKind\n) {\n const syncDynamicError = getPendingClientSyncDynamicError(clientDynamic)\n\n if (hasOutletRegex.test(componentStack)) {\n trackOutletSuspenseAboveBody(componentStack, dynamicValidation)\n return\n }\n if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.dynamicErrors.push(\n addErrorContext(\n createMetadataErrorInStaticRoute(kind, workStore.route),\n componentStack,\n null\n )\n )\n return\n }\n if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.dynamicErrors.push(\n addErrorContext(\n createViewportErrorInStaticRoute(kind, workStore.route),\n componentStack,\n null\n )\n )\n return\n }\n\n let hasSuspense = false\n if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // this error had a Suspense boundary above it, and it's above the body as well.\n dynamicValidation.hasSuspenseAboveBody = true\n hasSuspense = true\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it.\n hasSuspense = true\n }\n\n if (hasSuspense) {\n if (!isServerPartial) {\n // If we don't have holes caused by server data, then any holes must be caused\n // by client-only code, which is allowed.\n dynamicValidation.hasAllowedDynamic = true\n return\n }\n\n // We have holes that may be caused by server data.\n if (syncDynamicError || isClientHookDynamicError(dynamicReason)) {\n // We know this hole wasn't caused by server data, so it's allowed\n // (because it's wrapped in a Suspense)\n dynamicValidation.hasAllowedDynamic = true\n return\n }\n\n // Any remaining hole may be caused by a server hole.\n // These are not allowed even with Suspense.\n // (NOTE: this may misreport valid client dynamic holes as server holes)\n dynamicValidation.dynamicErrors.push(\n addErrorContext(\n createBodyErrorInStaticRoute(kind, workStore.route),\n componentStack,\n null\n )\n )\n return\n }\n\n if (syncDynamicError) {\n dynamicValidation.dynamicErrors.push(syncDynamicError)\n return\n }\n\n if (isClientHookDynamicError(dynamicReason)) {\n dynamicValidation.dynamicErrors.push(\n addErrorContext(dynamicReason, componentStack, null)\n )\n return\n }\n\n const error = addErrorContext(\n isServerPartial\n ? // This hole may be caused by server data.\n // (NOTE: this may misreport client dynamic holes as server holes)\n createBodyErrorInStaticRoute(kind, workStore.route)\n : // TODO(ensure-static): this could be something client-specific because we know\n // that server data is complete\n createBodyError(kind, workStore.route),\n componentStack,\n null\n )\n dynamicValidation.dynamicErrors.push(error)\n}\n\nexport function trackAllowedDynamicAccess(\n dynamicReason: unknown,\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n const dynamicHoleKind = DynamicHoleKind.RuntimeOrDynamic\n\n const syncDynamicError = getPendingClientSyncDynamicError(clientDynamic)\n\n if (hasOutletRegex.test(componentStack)) {\n trackOutletSuspenseAboveBody(componentStack, dynamicValidation)\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true\n return\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (syncDynamicError) {\n dynamicValidation.dynamicErrors.push(syncDynamicError)\n return\n }\n\n if (isClientHookDynamicError(dynamicReason)) {\n dynamicValidation.dynamicErrors.push(\n addErrorContext(dynamicReason, componentStack, null)\n )\n return\n }\n\n const error = addErrorContext(\n createBodyError(dynamicHoleKind, workStore.route),\n componentStack,\n null\n )\n dynamicValidation.dynamicErrors.push(error)\n return\n}\n\nexport enum DynamicHoleKind {\n /** We know that this hole is caused by runtime data. */\n Runtime = 1,\n /** We know that this hole is caused by link data. */\n Link = 2,\n /** We know that this hole is caused by navigation(). */\n Navigation = 3,\n /** We know that this hole is caused by prefetch(). */\n Prefetch = 4,\n /** We know that this hole is caused by dynamic data. */\n Dynamic = 5,\n /** We know that this hole is caused by runtime or dynamic data, but don't know which. */\n RuntimeOrDynamic = 6,\n}\n\n// In Instant Validation we can always discriminate between runtime and dynamic.\nexport type InstantValidationHoleKind = Exclude<\n DynamicHoleKind,\n DynamicHoleKind.RuntimeOrDynamic\n>\n\nexport type StaticValidationHoleKind =\n // During dev-time static validation we can discriminate runtime and dynamic.\n | DynamicHoleKind.Runtime\n | DynamicHoleKind.Dynamic\n // During build-time static validation we can't discriminate runtime and dynamic.\n | DynamicHoleKind.RuntimeOrDynamic\n\n/** Stores dynamic reasons used during an SSR render in instant validation. */\nexport type InstantValidationState = {\n hasDynamicMetadata: boolean\n hasAllowedClientDynamicAboveBoundary: boolean\n dynamicMetadata: null | Error\n hasDynamicViewport: boolean\n hasAllowedDynamic: boolean\n dynamicErrors: Array<Error>\n validationPreventingErrors: Array<Error>\n thrownErrorsOutsideBoundary: Array<unknown>\n /** Per-slot config factories. Index 0 is the root config (fallback).\n * Indices 1+ correspond to slot marker components in the tree. */\n slotStacks: Array<(() => Error) | null>\n}\n\nexport function createInstantValidationState(\n slotStacks: Array<(() => Error) | null>\n): InstantValidationState {\n return {\n hasDynamicMetadata: false,\n hasAllowedClientDynamicAboveBoundary: false,\n dynamicMetadata: null,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: [],\n validationPreventingErrors: [],\n thrownErrorsOutsideBoundary: [],\n slotStacks,\n }\n}\n\nexport function trackDynamicHoleInNavigation(\n dynamicReason: unknown,\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: InstantValidationState,\n clientDynamic: DynamicTrackingState,\n kind: InstantValidationHoleKind,\n boundaryState: ValidationBoundaryTracking\n) {\n const syncDynamicError = getPendingClientSyncDynamicError(clientDynamic)\n\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n }\n // Resolve the config stack for this specific error. If the error\n // is inside a slot marker, use that slot's config. Otherwise fall\n // back to the default.\n const effectiveCreateInstantStack = resolveInstantStack(\n componentStack,\n dynamicValidation\n )\n\n if (hasMetadataRegex.test(componentStack)) {\n const error = addErrorContext(\n createMetadataError(kind, workStore.route),\n componentStack,\n effectiveCreateInstantStack\n )\n dynamicValidation.dynamicMetadata = error\n return\n }\n if (hasViewportRegex.test(componentStack)) {\n const error = addErrorContext(\n createViewportError(kind, workStore.route),\n componentStack,\n effectiveCreateInstantStack\n )\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n\n const boundaryLocation =\n hasInstantValidationBoundaryRegex.exec(componentStack)\n if (!boundaryLocation) {\n // We don't see the validation boundary in the component stack,\n // so this hole must be coming from a shared parent.\n // Shared parents are fully resolved and don't have RSC holes,\n // but they can still suspend in a client component during SSR.\n\n // If we managed to render all the validation boundaries, that means\n // that the client holes aren't blocking validation and we can disregard them.\n // Note that we don't even care whether they have suspense or not.\n if (allRequiredBoundariesRendered(boundaryState)) {\n dynamicValidation.hasAllowedClientDynamicAboveBoundary = true\n dynamicValidation.hasAllowedDynamic = true // Holes outside the boundary contribute to allowing dynamic metadata\n return\n } else {\n // TODO(instant-validation) TODO(NAR-787)\n // If shared parents blocked us from validating, we should only log\n // the errors from the innermost (segments), i.e. omit layouts whose\n // slots managed to render (because clearly they didn't block validation)\n const message = `Route \"${workStore.route}\": Could not validate \\`instant\\` because a Client Component in a parent segment prevented the page from rendering.`\n const error = addErrorContext(\n new Error(message),\n componentStack,\n effectiveCreateInstantStack\n )\n dynamicValidation.validationPreventingErrors.push(error)\n return\n }\n } else {\n // The hole originates inside the validation boundary.\n //\n // Check if we have a Suspense above the hole, but below the validation boundary.\n // If we do, then this dynamic usage wouldn't block a navigation to this subtree.\n // Conversely, if the nearest suspense is above the validation boundary, then this subtree would block.\n //\n // Note that in the component stack, children come before parents.\n //\n // Valid:\n // ...\n // at Suspense\n // ...\n // at __next_prefetch_validation_boundary__\n //\n // Invalid:\n // ...\n // at __next_prefetch_validation_boundary__\n // ...\n // at Suspense\n //\n const suspenseLocation = hasSuspenseRegex.exec(componentStack)\n if (suspenseLocation) {\n if (suspenseLocation.index < boundaryLocation.index) {\n dynamicValidation.hasAllowedDynamic = true\n return\n } else {\n // invalid - fallthrough\n }\n }\n }\n\n if (syncDynamicError) {\n if (\n effectiveCreateInstantStack !== null &&\n syncDynamicError.cause === undefined\n ) {\n syncDynamicError.cause = effectiveCreateInstantStack()\n }\n dynamicValidation.dynamicErrors.push(syncDynamicError)\n return\n }\n\n if (isClientHookDynamicError(dynamicReason)) {\n dynamicValidation.dynamicErrors.push(\n addErrorContext(\n dynamicReason,\n componentStack,\n effectiveCreateInstantStack\n )\n )\n return\n }\n\n const error = addErrorContext(\n createBodyErrorInNavigation(kind, workStore.route),\n componentStack,\n effectiveCreateInstantStack\n )\n dynamicValidation.dynamicErrors.push(error)\n return\n}\n\nfunction createBodyError(kind: StaticValidationHoleKind, route: string): Error {\n switch (kind) {\n case DynamicHoleKind.Runtime:\n return createRuntimeBodyError(route)\n case DynamicHoleKind.Dynamic:\n return createDynamicBodyError(route)\n case DynamicHoleKind.RuntimeOrDynamic:\n return createDynamicOrRuntimeBodyError(route)\n }\n}\n\nfunction createBodyErrorInNavigation(\n kind: InstantValidationHoleKind,\n route: string\n): Error {\n switch (kind) {\n case DynamicHoleKind.Runtime:\n return createRuntimeBodyErrorInNavigation(route)\n case DynamicHoleKind.Link:\n return createLinkBodyErrorInNavigation(route)\n case DynamicHoleKind.Navigation:\n return createNavigationBodyErrorInNavigation(route)\n case DynamicHoleKind.Prefetch:\n return createPrefetchBodyErrorInNavigation(route)\n case DynamicHoleKind.Dynamic:\n return createDynamicBodyErrorInNavigation(route)\n }\n}\n\nfunction createMetadataError(kind: DynamicHoleKind, route: string): Error {\n switch (kind) {\n case DynamicHoleKind.Runtime:\n return createRuntimeMetadataError(route)\n case DynamicHoleKind.Link:\n return createLinkMetadataError(route)\n case DynamicHoleKind.Navigation:\n return createNavigationMetadataError(route)\n case DynamicHoleKind.Prefetch:\n return createPrefetchMetadataError(route)\n case DynamicHoleKind.Dynamic:\n return createDynamicMetadataError(route)\n case DynamicHoleKind.RuntimeOrDynamic:\n return createDynamicOrRuntimeMetadataError(route)\n }\n}\n\nfunction createViewportError(kind: DynamicHoleKind, route: string): Error {\n switch (kind) {\n case DynamicHoleKind.Runtime:\n return createRuntimeViewportError(route)\n case DynamicHoleKind.Link:\n return createLinkViewportError(route)\n case DynamicHoleKind.Navigation:\n return createNavigationViewportError(route)\n case DynamicHoleKind.Prefetch:\n return createPrefetchViewportError(route)\n case DynamicHoleKind.Dynamic:\n return createDynamicViewportError(route)\n case DynamicHoleKind.RuntimeOrDynamic:\n return createDynamicOrRuntimeViewportError(route)\n }\n}\n\nfunction createBodyErrorInStaticRoute(\n kind: StaticValidationHoleKind,\n route: string\n): Error {\n switch (kind) {\n case DynamicHoleKind.Runtime:\n return createRuntimeBodyErrorInStaticRoute(route)\n case DynamicHoleKind.Dynamic:\n return createDynamicBodyErrorInStaticRoute(route)\n case DynamicHoleKind.RuntimeOrDynamic:\n return createNonPrerenderableBodyErrorInStaticRoute(route)\n }\n}\n\nfunction createMetadataErrorInStaticRoute(\n kind: StaticValidationHoleKind,\n route: string\n) {\n switch (kind) {\n case DynamicHoleKind.Runtime:\n return createRuntimeMetadataErrorInStaticRoute(route)\n case DynamicHoleKind.Dynamic:\n return createDynamicMetadataErrorInStaticRoute(route)\n case DynamicHoleKind.RuntimeOrDynamic:\n return createNonPrerenderableMetadataErrorInStaticRoute(route)\n }\n}\n\nfunction createViewportErrorInStaticRoute(\n kind: StaticValidationHoleKind,\n route: string\n) {\n switch (kind) {\n case DynamicHoleKind.Runtime:\n return createRuntimeViewportErrorInStaticRoute(route)\n case DynamicHoleKind.Dynamic:\n return createDynamicViewportErrorInStaticRoute(route)\n case DynamicHoleKind.RuntimeOrDynamic:\n return createNonPrerenderableViewportErrorInStaticRoute(route)\n }\n}\n\nexport function trackThrownErrorInNavigation(\n workStore: WorkStore,\n dynamicValidation: InstantValidationState,\n thrownValue: unknown,\n componentStack: string,\n reactBrowserBailout: boolean\n) {\n const boundaryLocation =\n hasInstantValidationBoundaryRegex.exec(componentStack)\n if (!boundaryLocation) {\n // There's no validation boundary on the component stack.\n // This error may have blocked a boundary from rendering.\n\n // Wrap the error to provide component context.\n // This helps for errors from node_modules which would otherwise\n // have no useful stack information due to ignore-listing,\n // e.g. next/dynamic with `ssr: false`.\n if (reactBrowserBailout) {\n // React preserves Next's branded bailout reason as the error cause.\n // Replace the internal wrapper before storing the user-facing diagnostic.\n const browserBailoutReason = getReactBrowserBailoutReason(thrownValue)\n if (browserBailoutReason !== undefined) {\n const browserBailoutError = thrownValue as Error\n browserBailoutError.cause = browserBailoutReason\n }\n }\n\n const error = addErrorContext(\n new Error(\n 'An error occurred while attempting to validate instant UI. This error may be preventing the validation from completing.',\n { cause: thrownValue }\n ),\n componentStack,\n null\n )\n dynamicValidation.thrownErrorsOutsideBoundary.push(error)\n } else {\n // There's validation boundary on the component stack,\n // so we know this error didn't block a validation boundary from rendering.\n // However, this error might be hiding be hiding dynamic content that would\n // cause validation to fail.\n const suspenseLocation = hasSuspenseRegex.exec(componentStack)\n if (suspenseLocation) {\n if (suspenseLocation.index < boundaryLocation.index) {\n // There's a Suspense below the validation boundary but above this error's location.\n // This subtree can't fail instant validation because any potential\n // dynamic holes would be guarded by the Suspense anyway,\n // so we can allow this.\n return\n } else {\n // invalid - fallthrough\n }\n }\n if (reactBrowserBailout) {\n // React preserves Next's branded bailout reason as the error cause.\n // Replace the internal wrapper before storing the user-facing diagnostic.\n const browserBailoutReason = getReactBrowserBailoutReason(thrownValue)\n if (browserBailoutReason !== undefined) {\n const browserBailoutError = thrownValue as Error\n browserBailoutError.cause = browserBailoutReason\n }\n }\n\n const message = `Route \"${workStore.route}\": Could not validate \\`instant\\` because an error prevented the target segment from rendering.`\n const error = addErrorContext(\n new Error(message, { cause: thrownValue }),\n componentStack,\n null // TODO(instant-validation-build): conflicting use of cause\n )\n dynamicValidation.validationPreventingErrors.push(error)\n }\n}\n\nexport function trackDynamicHoleInStaticShell(\n dynamicReason: unknown,\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState,\n kind: DynamicHoleKind.Runtime | DynamicHoleKind.Dynamic\n) {\n const syncDynamicError = getPendingClientSyncDynamicError(clientDynamic)\n\n if (hasOutletRegex.test(componentStack)) {\n trackOutletSuspenseAboveBody(componentStack, dynamicValidation)\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n const error = addErrorContext(\n createMetadataError(kind, workStore.route),\n componentStack,\n null\n )\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n const error = addErrorContext(\n createViewportError(kind, workStore.route),\n componentStack,\n null\n )\n dynamicValidation.dynamicErrors.push(error)\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (syncDynamicError) {\n dynamicValidation.dynamicErrors.push(syncDynamicError)\n return\n }\n\n if (isClientHookDynamicError(dynamicReason)) {\n dynamicValidation.dynamicErrors.push(\n addErrorContext(dynamicReason, componentStack, null)\n )\n return\n }\n\n const error = addErrorContext(\n kind === DynamicHoleKind.Runtime\n ? createRuntimeBodyError(workStore.route)\n : createDynamicBodyError(workStore.route),\n componentStack,\n null\n )\n dynamicValidation.dynamicErrors.push(error)\n return\n}\n\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */\nfunction addErrorContext(\n error: Error,\n componentStack: string,\n createInstantStack: (() => Error) | null\n) {\n const ownerStack =\n process.env.NODE_ENV !== 'production' && React.captureOwnerStack\n ? React.captureOwnerStack()\n : null\n\n if (createInstantStack !== null) {\n error.cause = createInstantStack()\n }\n // TODO go back to owner stack here if available. This is temporarily using componentStack to get the right\n //\n error.stack =\n error.name + ': ' + error.message + (ownerStack || componentStack)\n return error\n}\n\nexport enum PreludeState {\n Full = 0,\n Empty = 1,\n Errored = 2,\n}\n\nexport function logDisallowedDynamicError(\n workStore: WorkStore,\n error: Error\n): void {\n console.error(error)\n logBuildDebugHint(workStore.route)\n}\n\nexport function throwIfSyncIOUsed(\n workStore: WorkStore,\n serverDynamic: DynamicTrackingState\n) {\n if (serverDynamic.syncDynamicErrorWithStack) {\n logDisallowedDynamicError(\n workStore,\n serverDynamic.syncDynamicErrorWithStack\n )\n throw new StaticGenBailoutError()\n }\n}\n\nexport function throwIfDisallowedDynamic(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n serverDynamic: DynamicTrackingState,\n allowEmptyStaticShell: boolean\n): void {\n const dynamicHoleKind = DynamicHoleKind.RuntimeOrDynamic\n\n throwIfSyncIOUsed(workStore, serverDynamic)\n\n // The dynamic metadata error is a mistake-detection signal. It fires when the\n // rest of the shell is otherwise fully static apart from metadata, suggesting\n // the dynamic data access in `generateMetadata` was probably unintentional.\n // That condition is independent of whether the user or build phase accepted\n // an empty shell, so we surface it before any opt-in bypass.\n if (\n prelude === PreludeState.Full &&\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.hasDynamicMetadata\n ) {\n console.error(createMetadataError(dynamicHoleKind, workStore.route).message)\n throw new StaticGenBailoutError()\n }\n\n // Either flag expresses \"this shell is allowed to be empty/blocking\":\n // - `allowEmptyStaticShell` covers `instant = false` (user opt-in)\n // and the build-phase fallback-shell case.\n // - `hasSuspenseAboveBody` is the structural opt-in inside the user's root\n // layout.\n // Treat them as synonyms for the purpose of bypassing shell-failure errors.\n if (allowEmptyStaticShell || dynamicValidation.hasSuspenseAboveBody) {\n return\n }\n\n if (prelude !== PreludeState.Full) {\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n for (let i = 0; i < dynamicErrors.length; i++) {\n logDisallowedDynamicError(workStore, dynamicErrors[i])\n }\n\n throw new StaticGenBailoutError()\n }\n\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(\n createViewportError(dynamicHoleKind, workStore.route).message\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`\n )\n throw new StaticGenBailoutError()\n }\n }\n}\n\nexport function throwIfDisallowedDynamicInStaticRoute(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n serverDynamic: DynamicTrackingState,\n isFallbackShell: boolean,\n allowEmptyStaticShell: boolean,\n isServerPartial: boolean\n): void {\n const reasons = getDisallowedReasonsInStaticRoute(\n workStore,\n prelude,\n dynamicValidation,\n serverDynamic,\n isFallbackShell,\n allowEmptyStaticShell,\n isServerPartial\n )\n if (reasons.length > 0) {\n for (const reason of reasons) {\n logDisallowedDynamicError(workStore, reason)\n }\n throw new StaticGenBailoutError()\n }\n}\n\nexport function getDisallowedReasonsInStaticRoute(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n serverDynamic: DynamicTrackingState | null,\n isFallbackShell: boolean,\n allowEmptyStaticShell: boolean,\n isServerPartial: boolean\n): Error[] {\n if (serverDynamic && serverDynamic.syncDynamicErrorWithStack) {\n return [serverDynamic.syncDynamicErrorWithStack]\n }\n\n // We do a fallback shell prerender, but it's not meant to be validated --\n // we just need it to create the relevant prerender outputs.\n if (isFallbackShell) {\n return []\n }\n\n // Suspense-above-body and `instant = false` bypass reporting\n // that the shell is blocked. However, if we have non-prerenderable server\n // data, we still have to error, regardless of those two.\n if (\n !isServerPartial &&\n (allowEmptyStaticShell || dynamicValidation.hasSuspenseAboveBody)\n ) {\n return []\n }\n\n const { dynamicErrors } = dynamicValidation\n if (dynamicErrors.length > 0) {\n return dynamicErrors\n }\n\n // Dynamic data may have been passed into a client component without calling `use()`,\n // in which case we wouldn't see it during the prerender, but still need to error.\n // Fall back to a generic error message.\n if (isServerPartial) {\n return [\n new Error(\n `Route \"${workStore.route}\": Next.js encountered data that is not available during a static prerender, but is unable to provide a location.`\n ),\n ]\n }\n\n if (prelude === PreludeState.Empty || prelude === PreludeState.Errored) {\n // We've somehow ended up with an empty prelude but no dynamic errors.\n // We must've messed up the tracking somehow.\n return [\n new InvariantError(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason.`\n ),\n ]\n }\n return []\n}\n\nexport function getStaticShellDisallowedDynamicReasons(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n allowEmptyStaticShell: boolean\n): Array<Error> {\n // The dynamic metadata error is a mistake-detection signal. It fires when the\n // rest of the shell is otherwise fully static apart from metadata, suggesting\n // the dynamic data access in `generateMetadata` was probably unintentional.\n // That condition is independent of whether the user or build phase accepted\n // an empty shell, so we surface it before any opt-in bypass.\n if (\n prelude === PreludeState.Full &&\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.dynamicErrors.length === 0 &&\n dynamicValidation.dynamicMetadata\n ) {\n return [dynamicValidation.dynamicMetadata]\n }\n\n // Either flag expresses \"this shell is allowed to be empty/blocking\":\n // - `allowEmptyStaticShell` covers `instant = false` (user opt-in)\n // and the build-phase fallback-shell case.\n // - `hasSuspenseAboveBody` is the structural opt-in inside the user's root\n // layout.\n // Treat them as synonyms for the purpose of bypassing shell-failure errors.\n if (allowEmptyStaticShell || dynamicValidation.hasSuspenseAboveBody) {\n return []\n }\n\n if (prelude !== PreludeState.Full) {\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n return dynamicErrors\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n return [\n new InvariantError(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason.`\n ),\n ]\n }\n }\n // We had a non-empty prelude and there are no dynamic holes\n return []\n}\n\n/**\n * `errors` are validation failures that should be surfaced immediately.\n * `deferredFallback` carries a missing-boundary explanation that the caller\n * should hold back until *every* validation depth has been tried — a missing\n * boundary often just means a parent layout intentionally omitted a slot, and\n * a different depth's validation may surface a more meaningful error.\n */\nexport type NavigationValidationResult =\n // instances that block instant navigation\n | Array<Error>\n // validation was blocked with zero or more reasons\n | Error\n | AggregateError\n\nexport function getNavigationDisallowedDynamicReasons(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: InstantValidationState,\n validationSampleTracking: InstantValidationSampleTracking | null,\n boundaryState: ValidationBoundaryTracking,\n devRenderDidError: boolean\n): NavigationValidationResult {\n // If we have errors related to missing samples, those should take precedence over everything else.\n if (validationSampleTracking) {\n const { missingSampleErrors } = validationSampleTracking\n if (missingSampleErrors.length > 0) {\n return missingSampleErrors\n }\n }\n\n const { validationPreventingErrors } = dynamicValidation\n if (validationPreventingErrors.length > 0) {\n if (process.env.__NEXT_DEV_SERVER && devRenderDidError) {\n // The dev render already surfaced server errors to the user.\n // The same errors likely caused validation to be inconclusive,\n // so reporting them again as validation failures would be noisy.\n return []\n }\n return validationPreventingErrors\n }\n\n // NOTE: We don't care about Suspense above body here,\n // we're only concerned with the validation boundary\n if (prelude !== PreludeState.Full) {\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n return dynamicErrors\n }\n\n if (\n prelude === PreludeState.Empty &&\n !dynamicValidation.hasAllowedClientDynamicAboveBoundary &&\n allRequiredBoundariesRendered(boundaryState)\n ) {\n // If we ever get this far then we messed up the tracking of invalid\n // dynamic. (When boundaries are missing the deferred fallback below\n // will surface a more useful error.)\n return new InvariantError(\n `Route \"${workStore.route}\" failed to render during instant validation and Next.js was unable to determine a reason.`\n )\n }\n } else {\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n return dynamicErrors\n }\n\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.dynamicMetadata\n ) {\n return [dynamicValidation.dynamicMetadata]\n }\n }\n\n // Missing boundaries on their own aren't a strong signal — a parent\n // layout may legitimately omit a slot. Defer this so the caller can\n // try shallower validation depths first; if every depth comes up\n // empty we still want to surface this so the user is made aware that\n // validation didn't complete. When we add a markers API, the\n // marker-based variant of this check can become strict again.\n if (!allRequiredBoundariesRendered(boundaryState)) {\n const { thrownErrorsOutsideBoundary } = dynamicValidation\n const rootInstantStack = dynamicValidation.slotStacks[0]\n if (thrownErrorsOutsideBoundary.length === 0) {\n const missingFiles: string[] = []\n for (const [id, filePaths] of boundaryState.requiredIds) {\n if (!boundaryState.renderedIds.has(id)) {\n for (const filePath of filePaths) {\n let normalized = filePath\n .replace(/^\\[project\\][\\\\/]?/, '')\n .replace(process.cwd() + '/', '')\n .replace(process.cwd() + '\\\\', '')\n missingFiles.push(normalized)\n }\n }\n }\n missingFiles.sort()\n return createUnrenderedSegmentError(workStore.route, missingFiles)\n } else if (process.env.__NEXT_DEV_SERVER && devRenderDidError) {\n // Errors outside the boundary likely blocked it from rendering,\n // but they're already being reported to the user via the dev\n // render. Suppress the validation failure to avoid noise.\n return []\n } else if (thrownErrorsOutsideBoundary.length === 1) {\n const message = `Route \"${workStore.route}\": Could not validate \\`instant\\` because the target segment was prevented from rendering, likely due to the following error.`\n const error = rootInstantStack !== null ? rootInstantStack() : new Error()\n error.name = 'Error'\n error.message = message\n return new AggregateError([\n error,\n thrownErrorsOutsideBoundary[0] as Error,\n ])\n } else {\n const message = `Route \"${workStore.route}\": Could not validate \\`instant\\` because the target segment was prevented from rendering, likely due to one of the following errors.`\n const error = rootInstantStack !== null ? rootInstantStack() : new Error()\n error.name = 'Error'\n error.message = message\n return new AggregateError([\n error,\n ...(thrownErrorsOutsideBoundary as Error[]),\n ])\n }\n }\n\n // We had a non-empty prelude and there are no dynamic holes\n return []\n}\n","export const INSTANT_VALIDATION_BOUNDARY_NAME =\n '__next_instant_validation_boundary__'\n\nexport const INSTANT_SLOT_MARKER_PREFIX = '__next_instant_slot_'\nexport const INSTANT_SLOT_MARKER_SUFFIX = '__'\n","export type ValidationBoundaryTracking = {\n /**\n * Map from boundary id (the SegmentPath where a validation boundary is\n * placed) to the file paths of modules inside that boundary's subtree.\n * When the boundary spans multiple parallel slots, each slot contributes\n * its own first-found module path so all unrendered segments can be\n * reported together.\n */\n requiredIds: Map<string, string[]>\n renderedIds: Set<string>\n}\n\nexport function createValidationBoundaryTracking(\n /** Pass if the render is expected to render the same IDs as a previous one. */\n matchPrevious?: ValidationBoundaryTracking\n): ValidationBoundaryTracking {\n return {\n requiredIds: matchPrevious ? new Map(matchPrevious.requiredIds) : new Map(),\n renderedIds: new Set(),\n }\n}\n\nexport function allRequiredBoundariesRendered(\n state: ValidationBoundaryTracking\n): boolean {\n for (const id of state.requiredIds.keys()) {\n if (!state.renderedIds.has(id)) {\n return false\n }\n }\n return true\n}\n","import type {\n AppSegmentConfig,\n EnsureStatic,\n} from '../../../build/segment-config/app/app-segment-config'\nimport { parseLoaderTree } from '../../../shared/lib/router/utils/parse-loader-tree'\nimport {\n getLayoutOrPageModule,\n type LoaderTree,\n} from '../../lib/app-dir-module'\n\n/**\n * The outcome of resolving a route's `ensureStatic` config.\n * The ordering is intentional -- higher values indicate a\n * more constrained route that forces more request kinds to be static.\n *\n * A constraint also implies all its predecessors:\n * - `Prefetch` implies `Shell`, i.e. if prefetches are static, so are shells.\n * - `Navigation` implies `Prefetch` and `Shell`, i.e. if the whole page is static,\n * then so are its shells and prefetches.\n *\n * Note that this flattens `\"auto\"` and `false` into `None`.\n * This is because rendering code does not need to distinguish them --\n * both indicate that the route follows normal Partial Prefetching semantics\n * and does not force anything to be static.\n * However, it is only correct to collapse them into one *after* resolving the\n * config for the entire route, because they have different interactions with\n * configs from other segments on the same route.\n */\nexport enum EnsureStaticLevel {\n /** The route follows standard Partial Prefetching semantics. */\n None = 0,\n /** The route requires that app shells must be statically prerendered. */\n Shell = 1,\n /** The route requires that app shells and prefetches must be statically prerendered. */\n Prefetch = 2,\n /** The route requires that app shells, prefetches, and the whole page must be statically prerendered. */\n Navigation = 3,\n}\n\nfunction getEnsureStaticLevel(ensureStatic: EnsureStatic) {\n switch (ensureStatic) {\n case 'auto':\n case false: {\n return EnsureStaticLevel.None\n }\n case 'shell': {\n return EnsureStaticLevel.Shell\n }\n case 'prefetch': {\n return EnsureStaticLevel.Prefetch\n }\n case 'navigation': {\n return EnsureStaticLevel.Navigation\n }\n }\n}\n\nexport async function resolveEnsureStaticLevel(\n tree: LoaderTree,\n partialPrefetching: boolean\n): Promise<EnsureStaticLevel> {\n return getEnsureStaticLevel(\n await resolveEnsureStaticConfig(tree, partialPrefetching)\n )\n}\n\nexport async function resolveEnsureStaticConfig(\n tree: LoaderTree,\n partialPrefetching: boolean\n): Promise<Exclude<EnsureStatic, false>> {\n let { config, filePath } = await resolveEnsureStaticConfigImpl(tree)\n\n if (!partialPrefetching) {\n // If Partial Prefetching is not enabled for this route, we only support\n // a subset of `ensureStatic` values.\n // (We error in `getAppPageStaticInfo` if `ensureStatic` is used without enabling\n // Cache Components, so we don't have to assert that here)\n switch (config) {\n case 'auto': {\n // Default to the equivalent of Cache Components prefetching behavior.\n config = 'prefetch'\n break\n }\n case false:\n case 'shell': {\n // Not meaningful in Cache Components without Partial Prefetching\n const originalConfig = config\n config = 'prefetch'\n console.warn(\n `${formatEnsureStaticExport(originalConfig)} has no effect unless the route is using Partial Prefetching.` +\n `\\n (from: ${filePath})`\n )\n break\n }\n case 'prefetch':\n // Equivalent to regular Cache Components behavior, so we allow it\n // without warning to avoid noise when doing gradual opt-in\n break\n case 'navigation':\n // Meaningful in Cache Components, even without Partial Prefetching\n break\n default:\n config satisfies never\n }\n }\n\n if (config === false) {\n // `false` and \"auto\" are equivalent once resolved.\n return 'auto'\n } else {\n return config\n }\n}\n\ntype EnsureStaticWithSource = {\n config: EnsureStatic\n filePath: string | null\n}\n\nasync function resolveEnsureStaticConfigImpl(\n tree: LoaderTree\n): Promise<EnsureStaticWithSource> {\n const { mod: layoutOrPageMod, filePath } = await getLayoutOrPageModule(tree)\n\n const config = getEnsureStaticConfigForModule(layoutOrPageMod)\n\n const parentResult: EnsureStaticWithSource = {\n config,\n filePath: filePath ?? null,\n }\n\n // Walk the slots if any and validate that they don't have incompatible configs\n // with each other. If compatible, pick the most constrained value from the slots.\n let slotsResult: EnsureStaticWithSource | null = null\n let slotResultKey: string | null = null\n const { parallelRoutes } = parseLoaderTree(tree)\n for (const parallelRouteKey in parallelRoutes) {\n const parallelRoute = parallelRoutes[parallelRouteKey]\n const childResult = await resolveEnsureStaticConfigImpl(parallelRoute)\n if (!slotsResult) {\n slotsResult = childResult\n slotResultKey = parallelRouteKey\n } else {\n // Check if the child is compatible with the current result for the slots.\n switch (compareEnsureStatic(childResult.config, slotsResult.config)) {\n case Comparison.Compatible: {\n // 'auto' is compatible with anything, but if the current result is 'auto' and the new one isn't,\n // we want to use the more specific result.\n if (slotsResult.config === 'auto' && childResult.config !== 'auto') {\n slotsResult = childResult\n slotResultKey = parallelRouteKey\n }\n break\n }\n case Comparison.Incompatible:\n case Comparison.LessConstrained:\n case Comparison.MoreConstrained: {\n throw new Error(\n `Parallel slots cannot have incompatible \\`ensureStatic\\`.` +\n `\\n ${formatParallelSlot(slotResultKey!)}: ` +\n `\\n ${formatEnsureStaticExport(slotsResult.config)}` +\n `\\n (from: ${slotsResult.filePath})` +\n `\\n` +\n `\\n ${formatParallelSlot(parallelRouteKey)}: ` +\n `\\n ${formatEnsureStaticExport(childResult.config)}` +\n `\\n (from: ${childResult.filePath})` +\n `\\n` +\n `\\n Possible fixes:` +\n `\\n - Remove one of the \\`ensureStatic\\` exports` +\n `\\n - Change one of the \\`ensureStatic\\` exports to match the other`\n )\n }\n }\n }\n }\n\n // Child segments can override the config from the parent with a more constrained value,\n // but they cannot have a less constrained value.\n if (!slotsResult) {\n return parentResult\n } else {\n const comparison = compareEnsureStatic(\n slotsResult.config,\n parentResult.config\n )\n switch (comparison) {\n case Comparison.Compatible: {\n // 'auto' is compatible with anything, but if the parent result is 'auto' and the slots one isn't,\n // we want to use the more constrained result.\n if (parentResult.config === 'auto' && slotsResult.config !== 'auto') {\n return slotsResult\n } else {\n return parentResult\n }\n }\n case Comparison.MoreConstrained: {\n return slotsResult\n }\n case Comparison.LessConstrained:\n case Comparison.Incompatible: {\n throw new Error(\n (comparison === Comparison.LessConstrained\n ? `A child segment cannot override a parent segment with a less-constrained \\`ensureStatic\\`.`\n : `A child segment cannot override a parent segment with an incompatible \\`ensureStatic\\`.`) +\n `\\n Parent has: ` +\n `\\n ${formatEnsureStaticExport(parentResult.config)}` +\n `\\n (from: ${parentResult.filePath})` +\n `\\n Child has: ` +\n `\\n ${formatEnsureStaticExport(slotsResult.config)}` +\n `\\n (from: ${slotsResult.filePath})` +\n `\\n` +\n `\\n Possible fixes:` +\n `\\n - Remove one of the \\`ensureStatic\\` exports` +\n `\\n - Change one of the \\`ensureStatic\\` exports to match the other`\n )\n }\n }\n }\n}\n\nfunction formatParallelSlot(slot: string) {\n return slot === 'children' ? slot : `@${slot}`\n}\n\nfunction formatEnsureStaticExport(config: EnsureStatic) {\n return `export const ensureStatic = ${JSON.stringify(config)}`\n}\n\nenum Comparison {\n LessConstrained = 1,\n Compatible = 2,\n MoreConstrained = 3,\n Incompatible = 4,\n}\n\nconst ENSURE_STATIC_ORDER: Exclude<EnsureStatic, 'auto' | false>[] = [\n 'shell',\n 'prefetch',\n 'navigation',\n]\n\nfunction compareEnsureStatic(\n left: EnsureStatic,\n right: EnsureStatic\n): Comparison {\n // 'auto' is compatible with everything.\n if (left === 'auto' || right === 'auto') {\n return Comparison.Compatible\n }\n\n // `false` is compatible with false.\n if (left === false && right === false) {\n return Comparison.Compatible\n }\n // If only one of the values is `false` (we know it's not both), it's incompatible.\n if (left === false || right === false) {\n return Comparison.Incompatible\n }\n\n const leftSort = ENSURE_STATIC_ORDER.indexOf(left)\n const rightSort = ENSURE_STATIC_ORDER.indexOf(right)\n return leftSort < rightSort\n ? Comparison.LessConstrained\n : leftSort === rightSort\n ? Comparison.Compatible\n : Comparison.MoreConstrained\n}\n\nfunction getEnsureStaticConfigForModule(\n mod: Record<string, any> | undefined\n): EnsureStatic {\n return (mod ? (mod as AppSegmentConfig).ensureStatic : undefined) ?? 'auto'\n}\n","import { InvariantError } from '../../shared/lib/invariant-error'\nimport { createPromiseWithResolvers } from '../../shared/lib/promise-with-resolvers'\n\nexport enum RenderStage {\n Before = 1,\n //\n ShellStatic = 10,\n /** Discrimination-only stage: `prefetch()` in validation renders (static) */\n PrefetchStatic_prefetchApi = 11,\n PrefetchStatic = 12,\n NavigationStatic = 13,\n Static = 14,\n //\n ShellRuntime = 20,\n /** Discrimination-only stage: `prefetch()` in validation renders (runtime) */\n PrefetchRuntime_prefetchApi = 21,\n PrefetchRuntime = 22,\n NavigationRuntime = 23,\n //\n Dynamic = 30,\n Abandoned = 40,\n}\n\nexport type AdvanceableRenderStage = Exclude<\n RenderStage,\n RenderStage.Before | RenderStage.Abandoned\n>\n\nexport const RENDER_STAGE_ADVANCE_ORDER: AdvanceableRenderStage[] = [\n RenderStage.ShellStatic,\n RenderStage.PrefetchStatic_prefetchApi,\n RenderStage.PrefetchStatic,\n RenderStage.NavigationStatic,\n RenderStage.Static,\n //\n RenderStage.ShellRuntime,\n RenderStage.PrefetchRuntime_prefetchApi,\n RenderStage.PrefetchRuntime,\n RenderStage.NavigationRuntime,\n //\n RenderStage.Dynamic,\n]\n\nexport function getNextStage(\n stage: Exclude<AdvanceableRenderStage, RenderStage.Dynamic>\n) {\n return RENDER_STAGE_ADVANCE_ORDER[\n RENDER_STAGE_ADVANCE_ORDER.indexOf(stage) + 1\n ]\n}\n\nexport function isAdvanceableRenderStage(\n stage: RenderStage\n): stage is AdvanceableRenderStage {\n return RenderStage.Before < stage && stage <= RenderStage.Dynamic\n}\n\nexport enum SyncIOMode {\n /** Sync IO does not error in any stage. */\n Untracked = 1,\n /** Before `partialPrefetching`: Sync IO errors in static stages, and is allowed otherwise. */\n AllowedInRuntimeOrDynamic = 2,\n /** After `partialPrefetching`: Sync IO errors in all stages other than dynamic. */\n AllowedInDynamic = 3,\n}\n\nexport class StagedRenderingController {\n private abortSignal: AbortSignal | null\n private abandonController: AbortController | null\n private syncIOMode: SyncIOMode\n public readonly finalStage: AdvanceableRenderStage | null\n\n currentStage: RenderStage = RenderStage.Before\n\n syncInterruptReason: Error | null = null\n\n triggers: Record<AdvanceableRenderStage, StageTrigger> =\n createAdvanceableStageTriggers()\n\n constructor({\n abortSignal,\n abandonController,\n syncIO,\n finalStage,\n }: {\n abortSignal: AbortSignal | null\n abandonController: AbortController | null\n syncIO: SyncIOMode\n finalStage: AdvanceableRenderStage | null\n }) {\n this.abortSignal = abortSignal\n this.abandonController = abandonController\n this.syncIOMode = syncIO\n this.finalStage = finalStage\n\n if (abortSignal) {\n abortSignal.addEventListener(\n 'abort',\n () => {\n // Reject all stage promises that haven't already been resolved.\n // `cancelStageTrigger` is a noop if the trigger already resolved.\n const { reason } = abortSignal\n for (const trigger of Object.values(this.triggers)) {\n cancelStageTrigger(trigger, reason)\n }\n },\n { once: true }\n )\n }\n\n if (abandonController) {\n abandonController.signal.addEventListener(\n 'abort',\n () => {\n this.abandonRender()\n },\n { once: true }\n )\n }\n }\n\n /**\n * Schedules a callback that will execute synchronously when the controller is advanced\n * to `stage` or past it, before any promises for that stage are resolved.\n * If the controller is already past `stage`, the callback is executed immediately.\n * */\n onStage(stage: AdvanceableRenderStage, callback: () => void) {\n addSyncTriggerListener(this.triggers[stage], callback)\n }\n\n shouldTrackSyncInterrupt(): boolean {\n const { syncIOMode, currentStage } = this\n switch (syncIOMode) {\n case SyncIOMode.Untracked: {\n return false\n }\n case SyncIOMode.AllowedInRuntimeOrDynamic: {\n // Legacy: track Sync IO only in static stages.\n // Do not track it before the render, or in runtime/dynamic stages.\n return (\n currentStage > RenderStage.Before &&\n currentStage <= RenderStage.Static\n )\n }\n case SyncIOMode.AllowedInDynamic: {\n // Track sync IO in all cacheable stages.\n // This means all stages except:\n // - before the render\n // - in the dynamic stage\n return (\n currentStage > RenderStage.Before &&\n currentStage < RenderStage.Dynamic\n )\n }\n }\n }\n\n /** Note: only call this if `shouldTrackSyncInterrupt()` returned true */\n syncInterruptCurrentStageWithReason(reason: Error) {\n const { currentStage } = this\n if (\n currentStage === RenderStage.Before ||\n currentStage === RenderStage.Dynamic ||\n currentStage === RenderStage.Abandoned\n ) {\n // Not interruptible. Defensive noop.\n return\n }\n\n // If Sync IO occurs during an abandonable render, we trigger the abandon.\n // The abandon listener will call abandonRender which advances through\n // stages to let caches fill before marking as Abandoned.\n if (this.abandonController) {\n this.abandonController.abort()\n return\n }\n\n if (this.abortSignal) {\n // If this is an abortable render, we capture the interruption reason and stop advancing.\n // We don't release any more promises.\n // The caller is expected to abort the signal.\n this.syncInterruptReason = reason\n this.currentStage = RenderStage.Abandoned\n return\n }\n\n // If we're in a non-abandonable & non-abortable render,\n // we need to advance to the Dynamic stage and capture the interruption reason.\n // (in dev, this will be the restarted render)\n this.syncInterruptReason = reason\n this.advanceStage(RenderStage.Dynamic)\n }\n\n getSyncInterruptReason() {\n return this.syncInterruptReason\n }\n\n getStageEndTime(stage: Exclude<AdvanceableRenderStage, RenderStage.Dynamic>) {\n return this.triggers[getNextStage(stage)].triggeredAt ?? Infinity\n }\n\n private abandonRender() {\n // In staged rendering, only the initial render is abandonable.\n // We can abandon the initial render if\n // 1. We notice a cache miss, and need to wait for caches to fill\n // 2. A sync IO error occurs, and the render should be interrupted\n // (this might be a lazy intitialization of a module,\n // so we still want to restart in this case and see if it still occurs)\n // In either case, we'll be doing another render after this one,\n // so we only want to unblock the next stage, not Dynamic, because\n // unblocking the dynamic stage would likely lead to wasted (uncached) IO.\n\n const { currentStage } = this\n\n if (currentStage === RenderStage.Before) {\n throw new InvariantError(\n \"A render that hasn't started yet cannot be abandoned\"\n )\n }\n if (\n currentStage === RenderStage.Dynamic ||\n currentStage === RenderStage.Abandoned\n ) {\n // We shouldn't ever trigger an abandon in these. Defensive noop.\n return\n }\n\n // Resolve all stages after the current one, up to runtime (excluding dynamic)\n const nextStageIx = RENDER_STAGE_ADVANCE_ORDER.indexOf(currentStage) + 1\n const dynamicStageIx = RENDER_STAGE_ADVANCE_ORDER.indexOf(\n RenderStage.Dynamic\n )\n for (let i = nextStageIx; i < dynamicStageIx; i++) {\n this.resolveStage(RENDER_STAGE_ADVANCE_ORDER[i])\n }\n\n this.currentStage = RenderStage.Abandoned\n }\n\n advanceStage(targetStage: AdvanceableRenderStage) {\n if (this.finalStage !== null && targetStage > this.finalStage) {\n throw new InvariantError(\n `Attempted to advance to stage ${RenderStage[targetStage]} but the render is limited to ${RenderStage[this.finalStage]}`\n )\n }\n const { currentStage } = this\n\n if (\n currentStage === RenderStage.Dynamic ||\n currentStage === RenderStage.Abandoned\n ) {\n // Terminal stages, nowhere left to advance.\n return\n }\n\n // If we're already at the target stage or beyond, do nothing.\n if (targetStage <= currentStage) {\n return\n }\n\n this.currentStage = targetStage\n\n // Resolve all stages between the current stage and the target.\n const nextStageIx =\n currentStage === RenderStage.Before\n ? 0\n : RENDER_STAGE_ADVANCE_ORDER.indexOf(currentStage) + 1\n const targetStageIx = RENDER_STAGE_ADVANCE_ORDER.indexOf(targetStage)\n for (let i = nextStageIx; i <= targetStageIx; i++) {\n this.resolveStage(RENDER_STAGE_ADVANCE_ORDER[i])\n }\n }\n\n private resolveStage(stage: AdvanceableRenderStage) {\n fireStageTrigger(this.triggers[stage])\n }\n\n private getStagePromise(stage: AdvanceableRenderStage): Promise<void> {\n return this.triggers[stage].promise\n }\n\n waitForStage(stage: AdvanceableRenderStage) {\n return this.getStagePromise(stage)\n }\n\n delayUntilStage<T>(\n stage: AdvanceableRenderStage,\n displayName: string | undefined,\n resolvedValue: T\n ): Promise<T> {\n const stagePromise = this.getStagePromise(stage)\n\n const promise =\n process.env.NODE_ENV === 'development'\n ? makeDevtoolsIOPromiseFromIOTrigger(\n stagePromise,\n displayName,\n resolvedValue\n )\n : stagePromise.then(() => resolvedValue)\n\n // Analogously to `makeDynamicHangingPromise`, we might reject this promise if the signal is invoked.\n // (e.g. in the case where we don't want want the render to proceed to the dynamic stage and abort it).\n // We shouldn't consider this an unhandled rejection, so we attach a noop catch handler here to suppress this warning.\n if (this.abortSignal) {\n promise.catch(ignoreReject)\n }\n return promise\n }\n}\n\nfunction createAdvanceableStageTriggers(): Record<\n AdvanceableRenderStage,\n StageTrigger\n> {\n const triggers: Partial<Record<AdvanceableRenderStage, StageTrigger>> = {}\n for (const stage of RENDER_STAGE_ADVANCE_ORDER) {\n triggers[stage] = createStageTrigger()\n }\n return triggers as Record<AdvanceableRenderStage, StageTrigger>\n}\n\nfunction ignoreReject() {}\n\n// TODO(restart-on-cache-miss): the layering of `delayUntilStage`,\n// `makeDevtoolsIOPromiseFromIOTrigger` and and `makeDevtoolsIOAwarePromise`\n// is confusing, we should clean it up.\nfunction makeDevtoolsIOPromiseFromIOTrigger<T>(\n ioTrigger: Promise<any>,\n displayName: string | undefined,\n resolvedValue: T\n): Promise<T> {\n // If we create a `new Promise` and give it a displayName\n // (with no userspace code above us in the stack)\n // React Devtools will use it as the IO cause when determining \"suspended by\".\n // In particular, it should shadow any inner IO that resolved/rejected the promise\n // (in case of staged rendering, this will be the `setTimeout` that triggers the relevant stage)\n const promise = new Promise<T>((resolve, reject) => {\n ioTrigger.then(resolve.bind(null, resolvedValue), reject)\n })\n if (displayName !== undefined) {\n // @ts-expect-error\n promise.displayName = displayName\n }\n return promise\n}\n\ntype StageTrigger = {\n state: 'pending' | 'triggered' | 'cancelled'\n triggeredAt: number | null\n promise: Promise<void>\n _listeners: Array<() => void>\n _resolvePromise: () => void\n _rejectPromise: (reason: unknown) => void\n}\n\nfunction addSyncTriggerListener(trigger: StageTrigger, listener: () => void) {\n if (trigger.state === 'pending') {\n trigger._listeners.push(listener)\n } else {\n listener()\n }\n}\n\nfunction createStageTrigger(): StageTrigger {\n const { promise, resolve, reject } = createPromiseWithResolvers<void>()\n return {\n state: 'pending',\n triggeredAt: null,\n promise,\n _listeners: [],\n _resolvePromise: resolve,\n _rejectPromise: reject,\n }\n}\n\nfunction fireStageTrigger(trigger: StageTrigger) {\n if (trigger.state !== 'pending') {\n return\n }\n trigger.state = 'triggered'\n trigger.triggeredAt = performance.now() + performance.timeOrigin\n try {\n const { _listeners: listeners } = trigger\n for (let i = 0; i < listeners.length; i++) {\n listeners[i]()\n }\n listeners.length = 0\n } finally {\n trigger._resolvePromise()\n }\n}\n\nfunction cancelStageTrigger(trigger: StageTrigger, reason: unknown) {\n if (trigger.state !== 'pending') {\n return\n }\n trigger.state = 'cancelled'\n // we didn't trigger, so don't save `triggeredAt`.\n\n // We're not gonna fire the listeners, we may as well free them.\n trigger._listeners.length = 0\n\n // Suppress unhandled rejection warnings for promises that no one is awaiting.\n trigger.promise.catch(ignoreReject)\n trigger._rejectPromise(reason)\n}\n","import * as React from 'react'\n\nconst errorRef: { current: null | Error } = { current: null }\n\n// React.cache is currently only available in canary/experimental React channels.\nconst cache =\n typeof React.cache === 'function'\n ? React.cache\n : (fn: (key: unknown) => void) => fn\n\n// When Cache Components is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = process.env.__NEXT_CACHE_COMPONENTS\n ? console.error\n : console.warn\n\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n (key: unknown) => {\n try {\n logErrorOrWarn(errorRef.current)\n } finally {\n errorRef.current = null\n }\n }\n)\n\n/**\n * Creates a function that logs an error message that is deduped by the userland\n * callsite.\n * This requires no indirection between the call of this function and the userland\n * callsite i.e. there's only a single library frame above this.\n * Do not use on the Client where sourcemaps and ignore listing might be enabled.\n * Only use that for warnings need a fix independent of the callstack.\n *\n * @param getMessage\n * @returns\n */\nexport function createDedupedByCallsiteServerErrorLoggerDev<Args extends any[]>(\n getMessage: (...args: Args) => Error\n) {\n return function logDedupedError(...args: Args) {\n const message = getMessage(...args)\n\n if (process.env.NODE_ENV !== 'production') {\n const callStackFrames = new Error().stack?.split('\\n')\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message)\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // <userland callsite>\n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4]\n errorRef.current = message\n flushCurrentErrorIfNew(key)\n }\n } else {\n logErrorOrWarn(message)\n }\n }\n}\n","import { InvariantError } from '../shared/lib/invariant-error'\nimport { createPromiseWithResolvers } from '../shared/lib/promise-with-resolvers'\nimport { EnsureStaticLevel } from './app-render/segment-config/ensure-static'\nimport {\n RenderStage,\n type StagedRenderingController,\n type AdvanceableRenderStage,\n} from './app-render/staged-rendering'\nimport { workAsyncStorage } from './app-render/work-async-storage.external'\nimport type {\n RequestStore,\n WorkUnitStore,\n} from './app-render/work-unit-async-storage.external'\nimport { workUnitAsyncStorage } from './app-render/work-unit-async-storage.external'\nimport { getServerReact, getClientReact } from './runtime-reacts.external'\n\nexport function isHangingPromiseRejectionError(\n err: unknown\n): err is HangingPromiseRejectionError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === HANGING_PROMISE_REJECTION\n}\n\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION'\n\nclass HangingPromiseRejectionError extends Error {\n public readonly digest = HANGING_PROMISE_REJECTION\n\n constructor(\n public readonly route: string,\n public readonly expression: string\n ) {\n super(\n `During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`\n )\n }\n}\n\nconst CLIENT_HOOK_DYNAMIC = 'CLIENT_HOOK_DYNAMIC'\n\nexport class ClientHookDynamicError extends Error {\n public readonly digest = CLIENT_HOOK_DYNAMIC\n\n constructor(route: string, expression: string) {\n super(\n `Route \"${route}\": Next.js encountered URL data \\`${expression}\\` in a Client Component outside of \\`<Suspense>\\`.\\n\\n` +\n `This blocks prerendering because the value is only available at runtime.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [stream] Wrap the component in \\`<Suspense fallback={...}>\\` so the hook value streams in after prerendering\\n` +\n ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook`\n )\n }\n}\n\nexport function isClientHookDynamicError(\n err: unknown\n): err is ClientHookDynamicError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === CLIENT_HOOK_DYNAMIC\n}\n\ntype AbortListeners = Array<() => void>\nconst abortListenersBySignal = new WeakMap<AbortSignal, AbortListeners>()\n\n/**\n * Constructs a promise that never resolves, standing in for *dynamic* data:\n * data that is only available during a real dynamic request and hangs in\n * every kind of prerender — `io()`, `connection()`, uncached `fetch()`.\n *\n * This is primarily useful for cacheComponents where we use promise\n * resolution timing to determine which parts of a render can be included in a\n * prerender.\n *\n * Records nothing on the prerender store: the promise's holes are only ever\n * filled by a real dynamic request, so a runtime prefetch response would have\n * the same holes as the static one. If the data source would resolve during a\n * runtime prerender, use `makeRuntimeHangingPromise` instead.\n */\nexport function makeDynamicHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string\n): Promise<T> {\n return makeHangingPromiseWithError(\n signal,\n new HangingPromiseRejectionError(route, expression)\n )\n}\n\nexport function makeUntrackedHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string\n): Promise<T> {\n return makeHangingPromiseWithError(\n signal,\n new HangingPromiseRejectionError(route, expression)\n )\n}\n\n/**\n * Constructs a promise that never resolves, standing in for session data\n * (which a runtime shell can access).\n * Examples: cookies, headers\n *\n * Awaiting one of these during a static prerender records on the prerender\n * store that a runtime shell would produce more content than the static\n * static shell, which the segment prefetch encoding uses\n * to tell the client whether a runtime request could be skipped.\n *\n * When unsure whether data is dynamic or runtime, prefer this method — the\n * cost of over-recording is a redundant runtime prefetch request; the cost of\n * under-recording is a permanently missing one.\n *\n * For fallback-param data — data a concrete (ISR-upgraded) prerender would\n * resolve — use `makeFallbackParamsHangingPromise` instead, so the access\n * is recorded with the right effect on the static-prefetch hint.\n */\nexport function makeSessionDataHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string,\n workUnitStore: WorkUnitStore\n): Promise<T> {\n const promise = makeHangingPromiseWithError<T>(\n signal,\n new HangingPromiseRejectionError(route, expression)\n )\n return trackPromiseUsed(\n promise,\n trackSessionDataAccessed.bind(null, workUnitStore, expression)\n )\n}\n\n/**\n * Constructs a promise that never resolves, standing in for URL data,\n * which can be accessed in a runtime prefetch (but not a runtime shell).\n * Examples: fallback params, searchParams\n *\n * Awaiting one of these during a static prerender records on the prerender\n * store that a runtime prefetch would produce more content than the static\n * response, which the segment prefetch encoding uses\n * to tell the client whether a runtime prefetch request could be skipped.\n *\n * When unsure whether data is dynamic or runtime, prefer this method — the\n * cost of over-recording is a redundant runtime prefetch request; the cost of\n * under-recording is a permanently missing one.\n *\n * `workUnitStore` may be null ONLY when the caller tracks the access itself.\n * Such a caller MUST call `trackURLDataAccessed` from every path that\n * observes the promise (e.g. the proxy traps for `then`/`status`),\n * against the work unit store active at access time.\n *\n * For fallback-param data — data a concrete (ISR-upgraded) prerender would\n * resolve — use `makeFallbackParamsHangingPromise` instead, so the access\n * is recorded with the right effect on the static-prefetch hint.\n */\nexport function makeURLDataHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string,\n workUnitStore: WorkUnitStore | null\n): Promise<T> {\n const promise = makeHangingPromiseWithError<T>(\n signal,\n new HangingPromiseRejectionError(route, expression)\n )\n if (workUnitStore === null) {\n return promise\n }\n return trackPromiseUsed(\n promise,\n trackURLDataAccessed.bind(null, workUnitStore, expression)\n )\n}\n\n/**\n * Creates a promise that stands in for a result that will either be session data\n * or URL data, but we don't know which.\n */\nexport function makeUnknownRuntimeDataHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string,\n workUnitStore: WorkUnitStore\n): Promise<T> {\n // We don't know if this is session or URL data, i.e. if it should affect the shell\n // or only the prefetch. Track it conservatively as affecting both.\n return makeSessionDataHangingPromise(signal, route, expression, workUnitStore)\n}\n\n/**\n * Constructs a promise that never resolves, standing in for data that is only\n * accessible in the prefetch, but not in the shell, e.g. `prefetch()`.\n * This usage does *not* indicate that a runtime request is needed,\n * only that the data is not available in a shell.\n *\n * @internal\n */\nexport function makePrefetchHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string\n): Promise<T> {\n return makeUntrackedHangingPromise(signal, route, expression)\n}\n\n/**\n * Variant of `makeRuntimeHangingPromise` for *fallback-param* data: fallback\n * route params and values derived solely from them (`params`, `rootParams`,\n * `pathname` during a fallback prerender). Like every runtime data access,\n * awaiting it records the access on the prerender store's response-level flag,\n * but its effect on the build-time static-prefetch hint differs — on a\n * fallback-upgradeable route the access is transient (a concrete prerender\n * resolves it), so it leaves the hint intact. See `trackFallbackParamsAccessed`.\n *\n * As with `makeRuntimeHangingPromise`, `workUnitStore` may be null ONLY when\n * the caller tracks the access itself by calling `trackFallbackParamsAccessed`\n * from every path that observes the promise.\n */\nexport function makeFallbackParamsHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string,\n workUnitStore: WorkUnitStore | null\n): Promise<T> {\n const promise = makeHangingPromiseWithError<T>(\n signal,\n new HangingPromiseRejectionError(route, expression)\n )\n if (workUnitStore === null) {\n return promise\n }\n return trackPromiseUsed(\n promise,\n trackFallbackParamsAccessed.bind(null, workUnitStore, expression)\n )\n}\n\nexport type PrerenderDataTracking = {\n /**\n * Records when the render has accessed a request data source\n * that hangs during a static prerender but would resolve during a runtime\n * prerender — cookies, headers, fallback params, searchParams, and cache\n * entries excluded only from static prerenders.\n *\n * The client uses this promise as the actual source of truth for whether a segment\n * needs a runtime request. Prefetch hints can become stale after a revalidation,\n * so if a hint says a static request should be enough but `runtimeDataAccessed`\n * resolves to `true`, a follow-up runtime request will be issued.\n * This applies to both shells and prefetches.\n *\n * The promise is embedded in the RSC payload (`InitialRSCPayload['u']`),\n * and is meant to be rewindable. This means that the shell might not have\n * any runtime data accesses, even when the prefetch does.\n * (this has some subtleties; see `markRuntimeDataAccessWhenStageReached`\n * for more)\n *\n * After the prerender, the promise is consumed by `collectSegmentData` and each\n * static prefetch will contain it (`PrefetchFlightResponse['u']`).\n * However, all the segments for a route will use the same promise (because we're\n * only tracking this on the page level) so if one segment needs runtime data, then\n * all segments will be marked as such.\n * However, on the client `isPartial` takes precedence over `runtimeDataAccessed`,\n * so complete segments will not end up being deopted.\n */\n readonly runtimeDataAccessed: PromiseWithResolvers<boolean>\n\n /** Corresponds to `PrefetchHint.ShouldAttemptStaticShell`. */\n shouldAttemptStaticShell: boolean\n /** Corresponds to `PrefetchHint.ShouldAttemptStaticPrefetch`. */\n shouldAttemptStaticPrefetch: boolean\n}\n\nexport function createPrerenderDataTracking(): PrerenderDataTracking {\n return {\n runtimeDataAccessed: createPromiseWithResolvers(),\n shouldAttemptStaticShell: true,\n shouldAttemptStaticPrefetch: true,\n }\n}\n\nexport function finishPrerenderDataTracking(\n prerenderDataTracking: PrerenderDataTracking\n) {\n // If a runtime data access already resolved this promise, this is a no-op.\n prerenderDataTracking.runtimeDataAccessed.resolve(false)\n}\n\n/**\n * Records on a static prerender store that the render accessed a data source\n * which would have resolved in a runtime shell (or runtime prefetch).\n * No-op for all other store types.\n *\n * Prefer `makeRuntimeHangingPromise`. Use this function only when implementing\n * similar tracking and that one is not enough.\n */\nfunction trackSessionDataAccessed(\n workUnitStore: WorkUnitStore,\n expression: string\n): void {\n trackRuntimeDataAccessed(\n workUnitStore,\n PrerenderDataKind.SessionData,\n expression\n )\n}\n\n/**\n * Records on a static prerender store that the render accessed a data source\n * which would have resolved in a runtime prefetch (but NOT in a runtime shell)\n * No-op for all other store types.\n *\n * Prefer `makeRuntimeHangingPromise`. Use this function only when implementing\n * similar tracking and that one is not enough.\n *\n * For fallback-param data, use `trackFallbackParamsAccessed` instead. When\n * unsure, this is the conservative choice.\n */\nexport function trackURLDataAccessed(\n workUnitStore: WorkUnitStore,\n expression: string\n): void {\n trackRuntimeDataAccessed(workUnitStore, PrerenderDataKind.UrlData, expression)\n}\n\n/**\n * Fallback-param variant of `trackRuntimeDataAccessed`, for accesses of\n * fallback route params and values derived solely from them. It records the\n * response-level flag all the same, but only clears the build-time\n * static-prefetch hint when the route is not fallback-upgradeable — on an\n * upgradeable route the access is transient, since ISR later produces a\n * concrete prerender that resolves it.\n */\nexport function trackFallbackParamsAccessed(\n workUnitStore: WorkUnitStore,\n expression: string\n): void {\n trackRuntimeDataAccessed(\n workUnitStore,\n PrerenderDataKind.FallbackParams,\n expression\n )\n}\n\nconst enum PrerenderDataKind {\n SessionData = 1,\n UrlData = 2,\n FallbackParams = 3,\n}\n\nfunction trackRuntimeDataAccessed(\n workUnitStore: WorkUnitStore,\n dataKind: PrerenderDataKind,\n expression: string\n): void {\n switch (workUnitStore.type) {\n case 'prerender': {\n const { prerenderDataTracking, stagedRendering } = workUnitStore\n if (!prerenderDataTracking || !stagedRendering) {\n return\n }\n const { currentStage } = stagedRendering\n if (currentStage === RenderStage.Before) {\n console.error(\n new InvariantError(\n 'Unexpected trackRuntimeDataAccessed in the Before stage.'\n )\n )\n return\n }\n if (currentStage >= RenderStage.NavigationStatic) {\n // Ignore any accesses that happen after `navigation()` resolves.\n // The purpose of this tracking is to judge whether a runtime prefetch\n // would give us a more complete result than a static one.\n // But `navigation()` wouldn't have resolved in a runtime prefetch,\n // so e.g. `await navigation(); await cookies()` wouldn't have more content\n // in those, and we shouldn't count it.\n return\n }\n\n const ensureStaticLevel =\n workUnitStore.ensureStaticLevel ?? EnsureStaticLevel.None\n\n // NOTE: In general, we keep hints in sync with `needsRuntimeRequest`, but they\n // don't have to always match. The client re-uses hints for the entire route,\n // while `needsRuntimeRequest` can vary across individual prerendered param values\n // (e.g. if cookies are accessed depending on a param value).\n // Hints can also become outdated if a route only starts using runtime data\n // after a revalidation, so we have to expect this and be resilient to it.\n // Also see the upgradeable fallback params case below, which deliberately\n // puts them out of sync.\n\n switch (dataKind) {\n case PrerenderDataKind.SessionData: {\n // Potentially deopt both the shell and the prefetch,\n // because if the shell accessed runtime data, so does the prefetch.\n // However, if we're already past the shell stage, the shell is not affected.\n // (which makes e.g. `await prefetch(); await cookies()` only affect the prefetch)\n let firstAffectedStage:\n | RenderStage.ShellStatic\n | RenderStage.PrefetchStatic\n | null = null\n\n if (\n currentStage <= RenderStage.ShellStatic &&\n // Only track if we're not forcing the shell to be static.\n ensureStaticLevel < EnsureStaticLevel.Shell\n ) {\n prerenderDataTracking.shouldAttemptStaticShell = false\n firstAffectedStage ??= RenderStage.ShellStatic\n logRuntimeDeopt?.(expression, 'shell')\n }\n\n if (\n currentStage <= RenderStage.PrefetchStatic &&\n // Only track if we're not forcing the prefetch to be static.\n ensureStaticLevel < EnsureStaticLevel.Prefetch\n ) {\n prerenderDataTracking.shouldAttemptStaticPrefetch = false\n // NOTE: if the shell is affected, don't override it.\n firstAffectedStage ??= RenderStage.PrefetchStatic\n logRuntimeDeopt?.(expression, 'prefetch')\n }\n\n if (firstAffectedStage !== null) {\n markRuntimeDataAccessWhenStageReached(\n prerenderDataTracking,\n stagedRendering,\n firstAffectedStage\n )\n }\n break\n }\n case PrerenderDataKind.FallbackParams: {\n if (workUnitStore.isFallbackUpgradeable) {\n // An fallback-param access is transient when the route is\n // fallback-upgradeable (i.e. ISR later produces the concrete prerender a\n // static prefetch would hit) so it does not indicate the need for a runtime\n // request and thus does not affect the static hints.\n //\n // If runtime prefetches are not disallowed by `ensureStatic`, then we still\n // set `runtimeDataAccessed` (while keeping the hints static). This means that\n // if the concrete prerender isn't ready yet and we served the fallback, then\n // the client knows it can use a *runtime* prefetch for speculative links --\n // a runtime prefetch can provide the same content (or more) as the concrete\n // prerender would.\n if (ensureStaticLevel < EnsureStaticLevel.Prefetch) {\n markRuntimeDataAccessWhenStageReached(\n prerenderDataTracking,\n stagedRendering,\n // `params` are URL data, so they only affect the prefetch\n RenderStage.PrefetchStatic\n )\n logRuntimeUpgradeableFallback?.()\n }\n break\n }\n // not an upgradeable fallback param access, so we treat it as URL data.\n // intentional fallthrough\n }\n case PrerenderDataKind.UrlData: {\n // Only deopt the prefetch, not the shell, which cannot access URL data anyway.\n if (\n currentStage <= RenderStage.PrefetchStatic &&\n ensureStaticLevel < EnsureStaticLevel.Prefetch\n ) {\n prerenderDataTracking.shouldAttemptStaticPrefetch = false\n logRuntimeDeopt?.(expression, 'prefetch')\n\n markRuntimeDataAccessWhenStageReached(\n prerenderDataTracking,\n stagedRendering,\n RenderStage.PrefetchStatic\n )\n }\n break\n }\n }\n\n break\n }\n case 'prerender-client':\n case 'prerender-legacy':\n case 'prerender-runtime':\n case 'validation-client':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'build-time-generator':\n // Only the modern server prerender tracks this; see the field docs on\n // PrerenderStoreModernServer.\n break\n default:\n workUnitStore satisfies never\n }\n}\n\n/**\n * Tracks a runtime data access on the `runtimeDataAccessed` promise,\n * but with a delay until `targetStage`.\n *\n * When we encounter a URL data access like `await params`, we need to mark the\n * *prefetch* as needing runtime data, but the *shell* should remain unaffected\n * (because it cannot access params anyway).\n *\n * However, the shell and the prefetch share one `runtimeDataAccessed` promise,\n * and it needs to be accurately rewindable by the client\n * In other words, we need to make sure that it reads as `false` when rewound\n * to a shell, but as `true` in the final response (the prefetch).\n *\n * This means that if the `await params` is encountered during the shell stage, we\n * cannot resolve `runtimeDataAccessed` immediately.\n * Instead, we delay the resolution until the PrefetchStatic stage, so the promise\n * will remain unresolved when rewound to the shell stage (which reads as `false`).\n */\nfunction markRuntimeDataAccessWhenStageReached(\n prerenderDataTracking: PrerenderDataTracking,\n stageController: StagedRenderingController,\n targetStage: AdvanceableRenderStage\n) {\n const { runtimeDataAccessed } = prerenderDataTracking\n // NOTE: If we're already in or past the target stage, we can avoid allocating a closure,\n // because `onStage` would've executed the callback immediately anyway.\n if (stageController.currentStage >= targetStage) {\n runtimeDataAccessed.resolve(true)\n } else {\n stageController.onStage(\n targetStage,\n runtimeDataAccessed.resolve.bind(null, true)\n )\n }\n}\n\nconst logRuntimeDeopt = process.env.NEXT_PRIVATE_DEBUG_RUNTIME_DATA\n ? (expression: string, kind: 'shell' | 'prefetch') => {\n const { route } = workAsyncStorage.getStore()!\n console.log(\n `Route '${route}': deopting to a runtime ${kind} because it used ${expression}`\n )\n }\n : undefined\n\nconst logRuntimeUpgradeableFallback = process.env\n .NEXT_PRIVATE_DEBUG_RUNTIME_DATA\n ? () => {\n const { route } = workAsyncStorage.getStore()!\n console.log(\n `Route '${route}': marking upgradeable fallback as runtime prefetchable`\n )\n }\n : undefined\n\n/**\n * Signals that we cannot recover both a runtime shell and a static (PPR) shell\n * from the same render. Use this whenever the stage of a promise varies on\n * `RequestStore.needsRuntimeShell`.\n * */\nexport function trackIncompatibleShellContent(\n workUnitStore: RequestStore,\n reason: string\n) {\n const { stagedRendering } = workUnitStore\n if (!stagedRendering) {\n return\n }\n\n // TODO(app-shells): optimize this to only consider stages that are relevant for validation.\n // We should only track incompatible content when it can affect them.\n // For now, we simply exclude everything that happens in the dynamic stage.\n // (Note that we also need to account for cache misses that move things to a\n // different stage -- those should also preemptively set `hasIncompatibleShellContent`\n // because there's a chance that a render with warm caches would set it)\n const { currentStage } = stagedRendering\n if (\n currentStage === RenderStage.Dynamic ||\n currentStage === RenderStage.Abandoned\n ) {\n return\n }\n if (process.env.NEXT_PRIVATE_DEBUG_VALIDATION) {\n const workStore = workAsyncStorage.getStore()!\n console.log(\n `Route ${workStore.route}: Incompatible shell content: ${reason}`\n )\n }\n workUnitStore.hasIncompatibleShellContent = true\n}\n\nexport function makeClientHookHangingPromise<T>(\n signal: AbortSignal,\n error: ClientHookDynamicError\n): Promise<T> {\n return makeHangingPromiseWithError(signal, error)\n}\n\nfunction makeHangingPromiseWithError<T>(\n signal: AbortSignal,\n error: Error\n): Promise<T> {\n if (signal.aborted) {\n return Promise.reject(error)\n } else {\n const hangingPromise = new Promise<T>((_, reject) => {\n const boundRejection = reject.bind(null, error)\n let currentListeners = abortListenersBySignal.get(signal)\n if (currentListeners) {\n currentListeners.push(boundRejection)\n } else {\n const listeners = [boundRejection]\n abortListenersBySignal.set(signal, listeners)\n signal.addEventListener(\n 'abort',\n () => {\n for (let i = 0; i < listeners.length; i++) {\n listeners[i]()\n }\n },\n { once: true }\n )\n }\n })\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject)\n return hangingPromise\n }\n}\n\nfunction ignoreReject() {}\n\n/**\n * Creates a promise that will be triggered when another promise resolves.\n * It will not emit unhandled rejections, which is important if the trigger\n * is a promise that might itself get rejected (e.g. when a prerender/render\n * are aborted due to sync IO)\n */\nexport function makePromiseFromTrigger<T>(\n trigger: Promise<any>,\n value: T\n): Promise<T> {\n const promise = trigger.then(() => value)\n promise.catch(ignoreReject)\n return promise\n}\n\nexport function makeDevtoolsIOAwarePromise<T>(\n underlying: T,\n requestStore: RequestStore,\n stage: AdvanceableRenderStage\n): Promise<T> {\n if (requestStore.stagedRendering) {\n // We resolve each stage in a timeout, so React DevTools will pick this up as IO.\n return requestStore.stagedRendering.delayUntilStage(\n stage,\n undefined,\n underlying\n )\n }\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise<T>((resolve) => {\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(() => {\n resolve(underlying)\n }, 0)\n })\n}\n\n/**\n * Invokes `onUse` whenever `then()/catch()/finally()` are called on the promise\n * or when the promise is awaited. */\nexport function trackPromiseUsed<T>(\n promise: Promise<T>,\n onUse: () => void\n): Promise<T> {\n // We can instrument `.then()/.catch()/.finally()` in one go by using a Promise subclass\n // that implements a custom `.then()`, because `catch` and `finally` delegate to it.\n //\n // Alternative implementation ideas that were tried and rejected:\n //\n // 1. Patching the methods directly via `promise.then = (..args) => { ... }`:\n // doesn't work, because Node does not call the monkeypatched methods for native `await`:\n // > Native Promise [...]: The promise is directly used and awaited natively, without calling `then()`.\n // > https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await#description\n //\n // 2. Wrapping in a proxy that returns a custom `then/catch/finally`:\n // breaks async stacks in React's IO tracking (stack becomes `Promise.then`)\n return TrackedPromise.from<T>(promise, onUse)\n}\n\nclass TrackedPromise<T> extends Promise<T> {\n #onUse: (() => void) | null = null\n\n // We don't need derived promises to also be a TrackedPromise.\n // We only care about the first level of `.then()`.\n static get [Symbol.species]() {\n return Promise\n }\n\n static from<T>(promise: Promise<T>, onUse: () => void): TrackedPromise<T> {\n // Whenever the promise we're tracking resolves/rejects, we should follow.\n const tracked = new TrackedPromise<T>(promise.then.bind(promise))\n\n tracked.#onUse = onUse\n\n // Hanging promises catch rejections when created. Tracked promises are generally derived\n // from promises that may hang & reject, so we need to do the same.\n // However, we have to bypass the tracking we do in `TrackedPromise.then`.\n // (we're using `then` directly, because `catch` ends up delegating `TrackedPromise.then`)\n Promise.prototype.then.call(tracked, undefined, ignoreReject)\n\n return tracked\n }\n\n then<TResult1, TResult2>(\n onFulfilled?: (value: T) => TResult1 | PromiseLike<TResult1>,\n onRejected?: (reason: unknown) => TResult2 | PromiseLike<TResult2>\n ): Promise<TResult1 | TResult2> {\n const onUse = this.#onUse\n if (onUse) {\n try {\n onUse()\n } catch (err) {\n // We don't want to break the method even if our tracking errored.\n console.error(err)\n }\n }\n\n return Promise.prototype.then.call(\n this,\n onFulfilled,\n onRejected\n ) as Promise<TResult1 | TResult2>\n }\n}\n\nexport const RENDER_STAGES_BY_DATA_KIND = {\n sessionData: RenderStage.ShellRuntime as const,\n /**\n * Statically-prerenderable URL data, like static `params`.\n * It may need to be pushed to a runtime stage in a runtime prerender,\n * but it's semantically distinct from `runtimeUrlData` like `searchParams`,\n * which is always excluded from static prerenders.\n * */\n staticUrlData: {\n /**\n * From that app's point of view, `prefetch()` is semantically the same as\n * `staticUrlData`, because it does not resolve in a shell but resolves in\n * a prefetch (even a static one).\n * We handle it separately to provide a specialized error in validation renders.\n */\n prefetchApi: {\n static: RenderStage.PrefetchStatic_prefetchApi as const,\n runtime: RenderStage.PrefetchRuntime_prefetchApi as const,\n },\n static: RenderStage.PrefetchStatic as const,\n runtime: RenderStage.PrefetchRuntime as const,\n },\n /**\n * URL data that is never statically-prerenderable, like static `searchParams`.\n * */\n runtimeUrlData: RenderStage.PrefetchRuntime as const,\n}\n\nexport function applyOwnerStack(error: Error): Error {\n if (process.env.NODE_ENV !== 'production') {\n let ownerStack: string | undefined | null\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n // captureOwnerStack() returns the owner stack for the current React\n // rendering context. Inside a cache scope this only includes the inner\n // component tree. The outer owner stack (captured before entering the\n // cache boundary in use-cache-wrapper.ts) is stored on the cache store.\n // We concatenate both to get the full component tree.\n const innerOwnerStack =\n getClientReact()?.captureOwnerStack?.() ??\n getServerReact()?.captureOwnerStack?.()\n\n switch (workUnitStore?.type) {\n case 'cache':\n case 'private-cache':\n ownerStack =\n (innerOwnerStack || '') + (workUnitStore.outerOwnerStack || '') ||\n undefined\n break\n case 'unstable-cache':\n case 'request':\n case 'prerender':\n case 'prerender-legacy':\n case 'prerender-runtime':\n case 'prerender-client':\n case 'validation-client':\n case 'build-time-generator':\n case undefined:\n ownerStack = innerOwnerStack\n break\n default:\n workUnitStore satisfies never\n }\n\n if (ownerStack) {\n let stack = ownerStack\n\n if (error.stack) {\n const frames: string[] = []\n\n for (const frame of error.stack.split('\\n').slice(1)) {\n if (frame.includes('react_stack_bottom_frame')) {\n break\n }\n\n frames.push(frame)\n }\n\n stack = '\\n' + frames.join('\\n') + stack\n }\n\n error.stack = error.name + ': ' + error.message + stack\n }\n }\n\n return error\n}\n","import type { AppDirModules } from '../../build/webpack/loaders/next-app-loader'\nimport { DEFAULT_SEGMENT_KEY } from '../../shared/lib/segment'\n\n/**\n * LoaderTree is generated in next-app-loader.\n */\nexport type LoaderTree = [\n segment: string,\n parallelRoutes: { [parallelRouterKey: string]: LoaderTree },\n modules: AppDirModules,\n /**\n * At build time, for each dynamic segment, we compute the list of static\n * sibling segments that exist at the same URL path level. This is used by\n * the client router to determine if a prefetch can be reused.\n *\n * For example, given the following file structure:\n * /app/(group1)/products/sale/page.tsx -> /products/sale\n * /app/(group2)/products/[id]/page.tsx -> /products/[id]\n *\n * The [id] segment would have staticSiblings: ['sale']\n *\n * This accounts for route groups, which may place sibling routes in\n * different parts of the file system tree but at the same URL level.\n *\n * A value of `null` means the static siblings are unknown (e.g., in webpack\n * dev mode where routes are compiled on-demand).\n */\n staticSiblings: readonly string[] | null,\n]\n\nexport async function getLayoutOrPageModule(loaderTree: LoaderTree) {\n const { layout, page, defaultPage } = loaderTree[2]\n const isLayout = typeof layout !== 'undefined'\n const isPage = typeof page !== 'undefined'\n const isDefaultPage =\n typeof defaultPage !== 'undefined' && loaderTree[0] === DEFAULT_SEGMENT_KEY\n\n let mod = undefined\n let modType: 'layout' | 'page' | undefined = undefined\n let filePath = undefined\n\n if (isLayout) {\n mod = await layout[0]()\n modType = 'layout'\n filePath = layout[1]\n } else if (isPage) {\n mod = await page[0]()\n modType = 'page'\n filePath = page[1]\n } else if (isDefaultPage) {\n mod = await defaultPage[0]()\n modType = 'page'\n filePath = defaultPage[1]\n }\n\n return { mod, modType, filePath }\n}\n\nexport async function getComponentTypeModule(\n loaderTree: LoaderTree,\n moduleType: 'layout' | 'not-found' | 'forbidden' | 'unauthorized'\n) {\n const { [moduleType]: module } = loaderTree[2]\n if (typeof module !== 'undefined') {\n return await module[0]()\n }\n return undefined\n}\n","import {\n type ReadonlyRequestCookies,\n areCookiesMutableInCurrentPhase,\n RequestCookiesAdapter,\n} from '../web/spec-extension/adapters/request-cookies'\nimport { RequestCookies } from '../web/spec-extension/cookies'\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport {\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n type PrerenderStoreModern,\n type RequestStore,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n makeDevtoolsIOAwarePromise,\n makeSessionDataHangingPromise,\n RENDER_STAGES_BY_DATA_KIND,\n} from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { isRequestApiAllowedInCurrentPhase } from './utils'\nimport { applyOwnerStack } from '../dynamic-rendering-utils'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport {\n createCookiesInUseCacheError,\n createCookiesInUnstableCacheError,\n} from '../use-cache/use-cache-messages'\n\nexport function cookies(): Promise<ReadonlyRequestCookies> {\n const callingExpression = 'cookies'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n if (workUnitStore && !isRequestApiAllowedInCurrentPhase(workUnitStore)) {\n throw new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside \\`after()\\` while rendering. This is not supported. If you need this data inside an \\`after()\\` callback, use \\`cookies()\\` outside of the callback. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`\n )\n }\n\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // cookies object without tracking\n const underlyingCookies = createEmptyCookies()\n return makeUntrackedCookies(underlyingCookies)\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`cookies()\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n const error = createCookiesInUseCacheError(workStore.route)\n Error.captureStackTrace(error, cookies)\n applyOwnerStack(error)\n workStore.invalidDynamicUsageError ??= error\n throw error\n case 'unstable-cache':\n throw createCookiesInUnstableCacheError(workStore.route)\n case 'build-time-generator':\n throw new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside \\`${workUnitStore.functionName}\\`. This is not supported because \\`${workUnitStore.functionName}\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n case 'prerender':\n return makeHangingCookies(workStore, workUnitStore)\n case 'prerender-client':\n case 'validation-client':\n const exportName = '`cookies`'\n throw new InvariantError(\n `${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`\n )\n case 'prerender-legacy':\n // We track dynamic access here so we don't need to wrap the cookies\n // in individual property access tracking.\n return throwToInterruptStaticGeneration(\n callingExpression,\n workStore,\n workUnitStore\n )\n case 'prerender-runtime': {\n const { stagedRendering } = workUnitStore\n if (stagedRendering) {\n return stagedRendering.delayUntilStage(\n RENDER_STAGES_BY_DATA_KIND.sessionData,\n 'cookies',\n workUnitStore.cookies\n )\n } else {\n return makeUntrackedCookies(workUnitStore.cookies)\n }\n }\n case 'private-cache':\n // Private caches are delayed until the runtime stage in use-cache-wrapper,\n // so we don't need an additional delay here.\n return makeUntrackedCookies(workUnitStore.cookies)\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n\n let underlyingCookies: ReadonlyRequestCookies\n\n if (areCookiesMutableInCurrentPhase(workUnitStore)) {\n // We can't conditionally return different types here based on the context.\n // To avoid confusion, we always return the readonly type here.\n underlyingCookies =\n workUnitStore.userspaceMutableCookies as unknown as ReadonlyRequestCookies\n } else {\n underlyingCookies = workUnitStore.cookies\n }\n\n if (process.env.NODE_ENV === 'development') {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n return makeUntrackedCookiesWithDevWarnings(\n workUnitStore,\n underlyingCookies,\n workStore?.route\n )\n } else if (workUnitStore.asyncApiPromises) {\n if (underlyingCookies === workUnitStore.mutableCookies) {\n return workUnitStore.asyncApiPromises.mutableCookies\n } else {\n return workUnitStore.asyncApiPromises.cookies\n }\n } else {\n return makeUntrackedCookies(underlyingCookies)\n }\n default:\n workUnitStore satisfies never\n }\n }\n }\n\n // If we end up here, there was no work store or work unit store present.\n throwForMissingRequestStore(callingExpression)\n}\n\nfunction createEmptyCookies(): ReadonlyRequestCookies {\n return RequestCookiesAdapter.seal(new RequestCookies(new Headers({})))\n}\n\ninterface CacheLifetime {}\nconst CachedCookies = new WeakMap<\n CacheLifetime,\n Promise<ReadonlyRequestCookies>\n>()\n\nfunction makeHangingCookies(\n workStore: WorkStore,\n prerenderStore: PrerenderStoreModern\n): Promise<ReadonlyRequestCookies> {\n const cachedPromise = CachedCookies.get(prerenderStore)\n if (cachedPromise) {\n return cachedPromise\n }\n\n const promise = makeSessionDataHangingPromise<ReadonlyRequestCookies>(\n prerenderStore.renderSignal,\n workStore.route,\n '`cookies()`',\n prerenderStore\n )\n CachedCookies.set(prerenderStore, promise)\n\n return promise\n}\n\nfunction makeUntrackedCookies(\n underlyingCookies: ReadonlyRequestCookies\n): Promise<ReadonlyRequestCookies> {\n const cachedCookies = CachedCookies.get(underlyingCookies)\n if (cachedCookies) {\n return cachedCookies\n }\n\n const promise = Promise.resolve(underlyingCookies)\n CachedCookies.set(underlyingCookies, promise)\n\n return promise\n}\n\nfunction makeUntrackedCookiesWithDevWarnings(\n requestStore: RequestStore,\n underlyingCookies: ReadonlyRequestCookies,\n route?: string\n): Promise<ReadonlyRequestCookies> {\n if (requestStore.asyncApiPromises) {\n let promise: Promise<ReadonlyRequestCookies>\n if (underlyingCookies === requestStore.mutableCookies) {\n promise = requestStore.asyncApiPromises.mutableCookies\n } else if (underlyingCookies === requestStore.cookies) {\n promise = requestStore.asyncApiPromises.cookies\n } else {\n throw new InvariantError(\n 'Received an underlying cookies object that does not match either `cookies` or `mutableCookies`'\n )\n }\n return instrumentCookiesPromiseWithDevWarnings(promise, route)\n }\n\n const cachedCookies = CachedCookies.get(underlyingCookies)\n if (cachedCookies) {\n return cachedCookies\n }\n\n const promise = makeDevtoolsIOAwarePromise(\n underlyingCookies,\n requestStore,\n RENDER_STAGES_BY_DATA_KIND.sessionData\n )\n\n const proxiedPromise = instrumentCookiesPromiseWithDevWarnings(promise, route)\n\n CachedCookies.set(underlyingCookies, proxiedPromise)\n\n return proxiedPromise\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createCookiesAccessError\n)\n\nfunction instrumentCookiesPromiseWithDevWarnings(\n promise: Promise<ReadonlyRequestCookies>,\n route: string | undefined\n) {\n Object.defineProperties(promise, {\n [Symbol.iterator]: replaceableWarningDescriptorForSymbolIterator(\n promise,\n route\n ),\n size: replaceableWarningDescriptor(promise, 'size', route),\n get: replaceableWarningDescriptor(promise, 'get', route),\n getAll: replaceableWarningDescriptor(promise, 'getAll', route),\n has: replaceableWarningDescriptor(promise, 'has', route),\n set: replaceableWarningDescriptor(promise, 'set', route),\n delete: replaceableWarningDescriptor(promise, 'delete', route),\n clear: replaceableWarningDescriptor(promise, 'clear', route),\n toString: replaceableWarningDescriptor(promise, 'toString', route),\n })\n return promise\n}\n\nfunction replaceableWarningDescriptor(\n target: unknown,\n prop: string,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, `\\`cookies().${prop}\\``)\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction replaceableWarningDescriptorForSymbolIterator(\n target: unknown,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, '`...cookies()` or similar iteration')\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, Symbol.iterator, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction createCookiesAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`cookies()\\` returns a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n","import {\n getDraftModeProviderForCacheScope,\n throwForMissingRequestStore,\n} from '../app-render/work-unit-async-storage.external'\n\nimport type { DraftModeProvider } from '../async-storage/draft-mode-provider'\n\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external'\nimport {\n abortAndThrowOnSynchronousRequestDataAccess,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport {\n createDraftModeMutationInUseCacheError,\n createDraftModeMutationInUnstableCacheError,\n} from '../use-cache/use-cache-messages'\nimport { ReflectAdapter } from '../web/spec-extension/adapters/reflect'\nimport {\n applyOwnerStack,\n RENDER_STAGES_BY_DATA_KIND,\n} from '../dynamic-rendering-utils'\n\nexport function draftMode(): Promise<DraftMode> {\n const callingExpression = 'draftMode'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore || !workUnitStore) {\n throwForMissingRequestStore(callingExpression)\n }\n\n switch (workUnitStore.type) {\n case 'prerender-runtime': {\n // TODO(runtime-ppr): does it make sense to delay this? normally it's always microtasky\n const { stagedRendering } = workUnitStore\n if (stagedRendering) {\n return stagedRendering.delayUntilStage(\n RENDER_STAGES_BY_DATA_KIND.sessionData,\n 'draftMode',\n new DraftMode(workUnitStore.draftMode)\n )\n } else {\n return createOrGetCachedDraftMode(workUnitStore.draftMode, workStore)\n }\n }\n case 'request':\n return createOrGetCachedDraftMode(workUnitStore.draftMode, workStore)\n\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n // Inside of `\"use cache\"` or `unstable_cache`, draft mode is available if\n // the outmost work unit store is a request store (or a runtime prerender),\n // and if draft mode is enabled.\n const draftModeProvider = getDraftModeProviderForCacheScope(\n workStore,\n workUnitStore\n )\n\n if (draftModeProvider) {\n return createOrGetCachedDraftMode(draftModeProvider, workStore)\n }\n\n // Otherwise, we fall through to providing an empty draft mode.\n // eslint-disable-next-line no-fallthrough\n case 'prerender':\n case 'prerender-legacy':\n // Return empty draft mode\n return createOrGetCachedDraftMode(null, workStore)\n case 'prerender-client':\n case 'validation-client': {\n const exportName = '`draftMode`'\n throw new InvariantError(\n `${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`\n )\n }\n case 'build-time-generator':\n throw new Error(\n `Route ${workStore.route} used \\`${callingExpression}()\\` inside \\`${workUnitStore.functionName}\\`. This is not supported because \\`${workUnitStore.functionName}\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n\n default:\n return workUnitStore satisfies never\n }\n}\n\nfunction createOrGetCachedDraftMode(\n draftModeProvider: DraftModeProvider | null,\n workStore: WorkStore | undefined\n): Promise<DraftMode> {\n const cacheKey = draftModeProvider ?? NullDraftMode\n const cachedDraftMode = CachedDraftModes.get(cacheKey)\n\n if (cachedDraftMode) {\n return cachedDraftMode\n }\n\n if (process.env.NODE_ENV === 'development' && !workStore?.isPrefetchRequest) {\n const route = workStore?.route\n return createDraftModeWithDevWarnings(draftModeProvider, route)\n } else {\n return Promise.resolve(new DraftMode(draftModeProvider))\n }\n}\n\ninterface CacheLifetime {}\nconst NullDraftMode = {}\nconst CachedDraftModes = new WeakMap<CacheLifetime, Promise<DraftMode>>()\n\nfunction createDraftModeWithDevWarnings(\n underlyingProvider: null | DraftModeProvider,\n route: undefined | string\n): Promise<DraftMode> {\n const instance = new DraftMode(underlyingProvider)\n const promise = Promise.resolve(instance)\n\n const proxiedPromise = new Proxy(promise, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'isEnabled':\n warnForSyncAccess(route, `\\`draftMode().${prop}\\``)\n break\n case 'enable':\n case 'disable': {\n warnForSyncAccess(route, `\\`draftMode().${prop}()\\``)\n break\n }\n default: {\n // We only warn for well-defined properties of the draftMode object.\n }\n }\n\n return ReflectAdapter.get(target, prop, receiver)\n },\n })\n\n return proxiedPromise\n}\n\nclass DraftMode {\n /**\n * @internal - this declaration is stripped via `tsc --stripInternal`\n */\n private readonly _provider: null | DraftModeProvider\n\n constructor(provider: null | DraftModeProvider) {\n this._provider = provider\n }\n get isEnabled() {\n if (this._provider !== null) {\n return this._provider.isEnabled\n }\n return false\n }\n public enable() {\n // We have a store we want to track dynamic data access to ensure we\n // don't statically generate routes that manipulate draft mode.\n trackDynamicDraftMode('draftMode().enable()', this.enable)\n if (this._provider !== null) {\n this._provider.enable()\n }\n }\n public disable() {\n trackDynamicDraftMode('draftMode().disable()', this.disable)\n if (this._provider !== null) {\n this._provider.disable()\n }\n }\n}\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createDraftModeAccessError\n)\n\nfunction createDraftModeAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`draftMode()\\` returns a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\nfunction trackDynamicDraftMode(expression: string, constructorOpt: Function) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n // We have a store we want to track dynamic data access to ensure we\n // don't statically generate routes that manipulate draft mode.\n if (workUnitStore?.phase === 'after') {\n throw new Error(\n `Route ${workStore.route} used \"${expression}\" inside \\`after()\\`. The enabled status of \\`draftMode()\\` can be read inside \\`after()\\` but you cannot enable or disable \\`draftMode()\\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`\n )\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache': {\n const error = createDraftModeMutationInUseCacheError(\n workStore.route,\n expression\n )\n Error.captureStackTrace(error, constructorOpt)\n applyOwnerStack(error)\n workStore.invalidDynamicUsageError ??= error\n throw error\n }\n case 'unstable-cache':\n throw createDraftModeMutationInUnstableCacheError(\n workStore.route,\n expression\n )\n\n case 'prerender':\n case 'prerender-runtime': {\n const error = new Error(\n `Route ${workStore.route} used ${expression} without first calling \\`await connection()\\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`\n )\n return abortAndThrowOnSynchronousRequestDataAccess(\n workStore.route,\n expression,\n error,\n workUnitStore\n )\n }\n case 'prerender-client':\n case 'validation-client':\n const exportName = '`draftMode`'\n throw new InvariantError(\n `${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`\n )\n case 'prerender-legacy':\n workUnitStore.revalidate = 0\n\n const err = new DynamicServerError(\n `Route ${workStore.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n workStore.dynamicUsageDescription = expression\n workStore.dynamicUsageStack = err.stack\n\n throw err\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n break\n case 'build-time-generator':\n throw new Error(\n `Route ${workStore.route} used \\`${expression}\\` inside \\`${workUnitStore.functionName}\\`. This is not supported because \\`${workUnitStore.functionName}\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n default:\n workUnitStore satisfies never\n }\n }\n }\n}\n","import {\n HeadersAdapter,\n type ReadonlyHeaders,\n} from '../web/spec-extension/adapters/headers'\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport {\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n type PrerenderStoreModern,\n type RequestStore,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n makeDevtoolsIOAwarePromise,\n makeSessionDataHangingPromise,\n RENDER_STAGES_BY_DATA_KIND,\n} from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { isRequestApiAllowedInCurrentPhase } from './utils'\nimport { applyOwnerStack } from '../dynamic-rendering-utils'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport {\n createHeadersInUseCacheError,\n createHeadersInUnstableCacheError,\n} from '../use-cache/use-cache-messages'\n\n/**\n * This function allows you to read the HTTP incoming request headers in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers) and\n * [Middleware](https://nextjs.org/docs/app/building-your-application/routing/middleware).\n *\n * Read more: [Next.js Docs: `headers`](https://nextjs.org/docs/app/api-reference/functions/headers)\n */\nexport function headers(): Promise<ReadonlyHeaders> {\n const callingExpression = 'headers'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n if (workUnitStore && !isRequestApiAllowedInCurrentPhase(workUnitStore)) {\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \\`after()\\` while rendering. This is not supported. If you need this data inside an \\`after()\\` callback, use \\`headers()\\` outside of the callback. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`\n )\n }\n\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // headers object without tracking\n const underlyingHeaders = HeadersAdapter.seal(new Headers({}))\n return makeUntrackedHeaders(underlyingHeaders)\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache': {\n const error = createHeadersInUseCacheError(workStore.route)\n Error.captureStackTrace(error, headers)\n applyOwnerStack(error)\n workStore.invalidDynamicUsageError ??= error\n throw error\n }\n case 'unstable-cache':\n throw createHeadersInUnstableCacheError(workStore.route)\n case 'build-time-generator':\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \\`${workUnitStore.functionName}\\`. This is not supported because \\`${workUnitStore.functionName}\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n case 'prerender':\n case 'prerender-client':\n case 'validation-client':\n case 'private-cache':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'request':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`headers()\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n return makeHangingHeaders(workStore, workUnitStore)\n case 'prerender-client':\n case 'validation-client':\n const exportName = '`headers`'\n throw new InvariantError(\n `${exportName} must not be used within a client component. Next.js should be preventing ${exportName} from being included in client components statically, but did not in this case.`\n )\n case 'prerender-legacy':\n // Legacy Prerender\n // We are in a legacy static generation mode while prerendering\n // We track dynamic access here so we don't need to wrap the headers in\n // individual property access tracking.\n return throwToInterruptStaticGeneration(\n callingExpression,\n workStore,\n workUnitStore\n )\n case 'prerender-runtime': {\n const { stagedRendering } = workUnitStore\n if (stagedRendering) {\n return stagedRendering.delayUntilStage(\n RENDER_STAGES_BY_DATA_KIND.sessionData,\n 'headers',\n workUnitStore.headers\n )\n } else {\n return makeUntrackedHeaders(workUnitStore.headers)\n }\n }\n case 'private-cache':\n // Private caches are delayed until the runtime stage in use-cache-wrapper,\n // so we don't need an additional delay here.\n return makeUntrackedHeaders(workUnitStore.headers)\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n\n if (process.env.NODE_ENV === 'development') {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n return makeUntrackedHeadersWithDevWarnings(\n workUnitStore.headers,\n workStore?.route,\n workUnitStore\n )\n } else if (workUnitStore.asyncApiPromises) {\n return workUnitStore.asyncApiPromises.headers\n } else {\n return makeUntrackedHeaders(workUnitStore.headers)\n }\n break\n default:\n workUnitStore satisfies never\n }\n }\n }\n\n // If we end up here, there was no work store or work unit store present.\n throwForMissingRequestStore(callingExpression)\n}\n\ninterface CacheLifetime {}\nconst CachedHeaders = new WeakMap<CacheLifetime, Promise<ReadonlyHeaders>>()\n\nfunction makeHangingHeaders(\n workStore: WorkStore,\n prerenderStore: PrerenderStoreModern\n): Promise<ReadonlyHeaders> {\n const cachedHeaders = CachedHeaders.get(prerenderStore)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = makeSessionDataHangingPromise<ReadonlyHeaders>(\n prerenderStore.renderSignal,\n workStore.route,\n '`headers()`',\n prerenderStore\n )\n CachedHeaders.set(prerenderStore, promise)\n\n return promise\n}\n\nfunction makeUntrackedHeaders(\n underlyingHeaders: ReadonlyHeaders\n): Promise<ReadonlyHeaders> {\n const cachedHeaders = CachedHeaders.get(underlyingHeaders)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = Promise.resolve(underlyingHeaders)\n CachedHeaders.set(underlyingHeaders, promise)\n\n return promise\n}\n\nfunction makeUntrackedHeadersWithDevWarnings(\n underlyingHeaders: ReadonlyHeaders,\n route: string | undefined,\n requestStore: RequestStore\n): Promise<ReadonlyHeaders> {\n if (requestStore.asyncApiPromises) {\n return instrumentHeadersPromiseWithDevWarnings(\n requestStore.asyncApiPromises.headers,\n route\n )\n }\n\n const cachedHeaders = CachedHeaders.get(underlyingHeaders)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = makeDevtoolsIOAwarePromise(\n underlyingHeaders,\n requestStore,\n RENDER_STAGES_BY_DATA_KIND.sessionData\n )\n\n const proxiedPromise = instrumentHeadersPromiseWithDevWarnings(promise, route)\n\n CachedHeaders.set(underlyingHeaders, proxiedPromise)\n\n return proxiedPromise\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createHeadersAccessError\n)\n\nfunction instrumentHeadersPromiseWithDevWarnings(\n promise: Promise<ReadonlyHeaders>,\n route: string | undefined\n) {\n Object.defineProperties(promise, {\n [Symbol.iterator]: replaceableWarningDescriptorForSymbolIterator(\n promise,\n route\n ),\n append: replaceableWarningDescriptor(promise, 'append', route),\n delete: replaceableWarningDescriptor(promise, 'delete', route),\n get: replaceableWarningDescriptor(promise, 'get', route),\n has: replaceableWarningDescriptor(promise, 'has', route),\n set: replaceableWarningDescriptor(promise, 'set', route),\n getSetCookie: replaceableWarningDescriptor(promise, 'getSetCookie', route),\n forEach: replaceableWarningDescriptor(promise, 'forEach', route),\n keys: replaceableWarningDescriptor(promise, 'keys', route),\n values: replaceableWarningDescriptor(promise, 'values', route),\n entries: replaceableWarningDescriptor(promise, 'entries', route),\n })\n return promise\n}\n\nfunction replaceableWarningDescriptor(\n target: unknown,\n prop: string,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, `\\`headers().${prop}\\``)\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction replaceableWarningDescriptorForSymbolIterator(\n target: unknown,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, '`...headers()` or similar iteration')\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, Symbol.iterator, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction createHeadersAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`headers()\\` returns a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n","import { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { actionAsyncStorage } from '../app-render/action-async-storage.external'\nimport { afterTaskAsyncStorage } from '../app-render/after-task-async-storage.external'\nimport type { WorkStore } from '../app-render/work-async-storage.external'\nimport { createSearchParamsInUseCacheError } from '../use-cache/use-cache-messages'\nimport type { WorkUnitStore } from '../app-render/work-unit-async-storage.external'\n\nexport function throwWithStaticGenerationBailoutErrorWithDynamicError(\n route: string,\n expression: string\n): never {\n throw new StaticGenBailoutError(\n `Route ${route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n}\n\nexport function throwForSearchParamsAccessInUseCache(\n workStore: WorkStore,\n constructorOpt: Function\n): never {\n const error = createSearchParamsInUseCacheError(workStore.route)\n\n Error.captureStackTrace(error, constructorOpt)\n workStore.invalidDynamicUsageError ??= error\n\n throw error\n}\n\nexport function isRequestApiAllowedInCurrentPhase(\n workUnitStore: WorkUnitStore\n): boolean {\n switch (workUnitStore.phase) {\n case 'action':\n case 'render': {\n // The request is still in progress. The API may be disallowed for other reasons,\n // but not because of phase.\n return true\n }\n case 'after': {\n // The request has finished.\n\n // If we're in a Route Handler or a Server Action,\n // request APIs can be called everywhere, even in after().\n const actionStore = actionAsyncStorage.getStore()\n if (actionStore && (actionStore.isAppRoute || actionStore.isAction)) {\n return true\n }\n\n const afterTaskStore = afterTaskAsyncStorage.getStore()\n if (afterTaskStore) {\n // We're in an `after` callback. Request APIs are callable if\n // the `after()` call happened in an action phase:\n // - in a Route Handler\n // - in a Server Action's body (but not the render after)\n //\n // TODO(after): Is it even possible to have `phase === 'action'` but no `actionStore`?\n // We should revisit this setup and simplify this.\n return afterTaskStore.rootTaskSpawnPhase === 'action'\n }\n\n // Otherwise, we must be in a page, in the `after` phase.\n // We don't allow calling request APIs here because we'd miss\n // them during prerendering and wouldn't know that the page is dynamic.\n return false\n }\n }\n}\n","/**\n * Centralized error factories for cached function and revalidation misuse.\n * State the scope and constraint, explain non-obvious boundaries, give the\n * immediate fix, then link to the relevant docs.\n */\n\nimport type { BuildTimeGeneratorName } from '../app-render/work-unit-async-storage.external'\n\nconst NEXT_REQUEST_IN_USE_CACHE =\n 'https://nextjs.org/docs/messages/next-request-in-use-cache'\n\nconst UNSTABLE_CACHE_API_DOCS =\n 'https://nextjs.org/docs/app/api-reference/functions/unstable_cache'\n\nconst USE_CACHE_PRIVATE_API_DOCS =\n 'https://nextjs.org/docs/app/api-reference/directives/use-cache-private'\n\nconst CACHE_TAG_OUTSIDE_USE_CACHE =\n 'https://nextjs.org/docs/messages/cache-tag-outside-use-cache'\n\nconst CACHE_LIFE_OUTSIDE_USE_CACHE =\n 'https://nextjs.org/docs/messages/cache-life-outside-use-cache'\n\nconst USE_CACHE_PRIVATE_COMPOSITION =\n 'https://nextjs.org/docs/messages/use-cache-private-composition'\n\nconst REVALIDATE_IN_USE_CACHE =\n 'https://nextjs.org/docs/messages/revalidate-in-use-cache'\n\nconst NESTED_USE_CACHE_NO_EXPLICIT_CACHELIFE =\n 'https://nextjs.org/docs/messages/nested-use-cache-no-explicit-cachelife'\n\n// Request data accessed in caches\n\nexport function createCookiesInUseCacheError(route: string): Error {\n return new Error(\n `Route \"${route}\": \\`cookies()\\` can't be read inside \\`\"use cache\"\\`. Read it outside the cached function and pass what you need as an argument.\\nLearn more: ${NEXT_REQUEST_IN_USE_CACHE}`\n )\n}\n\nexport function createCookiesInUnstableCacheError(route: string): Error {\n return new Error(\n `Route \"${route}\": \\`cookies()\\` can't be read inside \\`unstable_cache()\\`. Read it outside the cached function and pass what you need as an argument.\\nLearn more: ${UNSTABLE_CACHE_API_DOCS}`\n )\n}\n\nexport function createHeadersInUseCacheError(route: string): Error {\n return new Error(\n `Route \"${route}\": \\`headers()\\` can't be read inside \\`\"use cache\"\\`. Read it outside the cached function and pass what you need as an argument.\\nLearn more: ${NEXT_REQUEST_IN_USE_CACHE}`\n )\n}\n\nexport function createHeadersInUnstableCacheError(route: string): Error {\n return new Error(\n `Route \"${route}\": \\`headers()\\` can't be read inside \\`unstable_cache()\\`. Read it outside the cached function and pass what you need as an argument.\\nLearn more: ${UNSTABLE_CACHE_API_DOCS}`\n )\n}\n\nexport function createSearchParamsInUseCacheError(route: string): Error {\n return new Error(\n `Route \"${route}\": \\`searchParams\\` can't be read inside \\`\"use cache\"\\`. Await it outside the cached function and pass what you need as an argument.\\nLearn more: ${NEXT_REQUEST_IN_USE_CACHE}`\n )\n}\n\nexport function createConnectionInPublicUseCacheError(route: string): Error {\n return new Error(\n `Route \"${route}\": \\`connection()\\` can't be called inside \\`\"use cache\"\\` because cached functions may run during prerendering, without an incoming request. Call it outside the cached function.\\nLearn more: ${NEXT_REQUEST_IN_USE_CACHE}`\n )\n}\n\nexport function createConnectionInPrivateUseCacheError(route: string): Error {\n return new Error(\n `Route \"${route}\": \\`connection()\\` can't be called inside \\`\"use cache: private\"\\` because private cached functions may run during prefetching, without a navigation request. Call it outside the cached function.\\nLearn more: ${USE_CACHE_PRIVATE_API_DOCS}`\n )\n}\n\nexport function createConnectionInUnstableCacheError(route: string): Error {\n return new Error(\n `Route \"${route}\": \\`connection()\\` can't be called inside \\`unstable_cache()\\` because cached functions may run during prerendering, without an incoming request. Call it outside the cached function.\\nLearn more: ${UNSTABLE_CACHE_API_DOCS}`\n )\n}\n\nexport function createRouteHandlerRequestInUseCacheError(\n route: string,\n expression: string\n): Error {\n return new Error(\n `Route \"${route}\": \\`${expression}\\` can't be read inside \\`\"use cache\"\\`. Read it outside the cached function and pass what you need as an argument.\\nLearn more: ${NEXT_REQUEST_IN_USE_CACHE}`\n )\n}\n\nexport function createRouteHandlerRequestInUnstableCacheError(\n route: string,\n expression: string\n): Error {\n return new Error(\n `Route \"${route}\": \\`${expression}\\` can't be read inside \\`unstable_cache()\\`. Read it outside the cached function and pass what you need as an argument.\\nLearn more: ${UNSTABLE_CACHE_API_DOCS}`\n )\n}\n\n// Mutations inside caches and render\n\n/**\n * Used when `draftMode().enable()` or `.disable()` is called inside\n * `\"use cache\"` or `\"use cache: private\"`. Reading `draftMode()` is fine\n * inside a cached function, but toggling it is not.\n */\nexport function createDraftModeMutationInUseCacheError(\n route: string,\n expression: string\n): Error {\n return new Error(\n `Route \"${route}\": \\`${expression}\\` can't be called inside \\`\"use cache\"\\`. Draft mode can be read inside a cached function, but enabling or disabling it must happen outside.\\nLearn more: ${NEXT_REQUEST_IN_USE_CACHE}`\n )\n}\n\nexport function createDraftModeMutationInUnstableCacheError(\n route: string,\n expression: string\n): Error {\n return new Error(\n `Route \"${route}\": \\`${expression}\\` can't be called inside \\`unstable_cache()\\`. Draft mode can be read inside a cached function, but enabling or disabling it must happen outside.\\nLearn more: ${UNSTABLE_CACHE_API_DOCS}`\n )\n}\n\nexport function createRevalidateDuringRenderError(\n route: string,\n expression: string\n): Error {\n return new Error(\n `Route \"${route}\": \\`${expression}\\` can't be called during render. Call it from a Server Action or Route Handler instead.\\nLearn more: ${REVALIDATE_IN_USE_CACHE}`\n )\n}\n\nexport function createRevalidateInCachedFunctionError(\n route: string,\n expression: string\n): Error {\n return new Error(\n `Route \"${route}\": \\`${expression}\\` can't be called inside a cached function. Call it from a Server Action or Route Handler instead.\\nLearn more: ${REVALIDATE_IN_USE_CACHE}`\n )\n}\n\nexport function createRevalidateInBuildTimeGeneratorError(\n route: string,\n expression: string,\n generatorName: BuildTimeGeneratorName\n): Error {\n return new Error(\n `Route \"${route}\": \\`${expression}\\` can't be called inside \\`${generatorName}\\`. Call it from a Server Action or Route Handler instead.\\nLearn more: ${REVALIDATE_IN_USE_CACHE}`\n )\n}\n\n// Cache configuration and nesting\n\nfunction routePrefix(route: string | undefined): string {\n return route === undefined ? '' : `Route \"${route}\": `\n}\n\nexport function createCacheTagOutsideUseCacheError(\n route: string | undefined\n): Error {\n return new Error(\n `${routePrefix(route)}\\`cacheTag()\\` can only be called inside a \\`\"use cache\"\\` or \\`\"use cache: private\"\\` function.\\nLearn more: ${CACHE_TAG_OUTSIDE_USE_CACHE}`\n )\n}\n\nexport function createCacheLifeOutsideUseCacheError(\n route: string | undefined\n): Error {\n return new Error(\n `${routePrefix(route)}\\`cacheLife()\\` can only be called inside a \\`\"use cache\"\\` or \\`\"use cache: private\"\\` function.\\nLearn more: ${CACHE_LIFE_OUTSIDE_USE_CACHE}`\n )\n}\n\nexport function createNestedCacheZeroRevalidateError(\n route: string,\n cause: Error | undefined\n): Error {\n return new Error(\n `Route \"${route}\": A nested \\`\"use cache\"\\` with \\`revalidate: 0\\` is inside an outer \\`\"use cache\"\\` that has no \\`cacheLife()\\`. Add \\`cacheLife()\\` to the outer one to choose whether to prerender it with a non-zero \\`revalidate\\` or keep it dynamic with \\`revalidate: 0\\`.\\nLearn more: ${NESTED_USE_CACHE_NO_EXPLICIT_CACHELIFE}`,\n { cause }\n )\n}\n\nexport function createNestedCacheShortExpireError(\n route: string,\n cause: Error | undefined\n): Error {\n return new Error(\n `Route \"${route}\": A nested \\`\"use cache\"\\` with a short \\`expire\\` (under 5 minutes) is inside an outer \\`\"use cache\"\\` that has no \\`cacheLife()\\`. Add \\`cacheLife()\\` to the outer one to choose whether to prerender it with a longer \\`expire\\` or keep it dynamic with a short \\`expire\\`.\\nLearn more: ${NESTED_USE_CACHE_NO_EXPLICIT_CACHELIFE}`,\n { cause }\n )\n}\n\n// Private cache composition and request context\n\nexport function createUseCachePrivateInsidePublicUseCacheError(\n route: string\n): Error {\n return new Error(\n `Route \"${route}\": \\`\"use cache: private\"\\` can't be nested inside \\`\"use cache\"\\` because a shared cached function can't depend on private request data. Nest it only inside another \\`\"use cache: private\"\\`.\\nLearn more: ${USE_CACHE_PRIVATE_COMPOSITION}`\n )\n}\n\nexport function createUseCachePrivateInsideUnstableCacheError(\n route: string\n): Error {\n return new Error(\n `Route \"${route}\": \\`\"use cache: private\"\\` can't be used inside \\`unstable_cache()\\` because \\`unstable_cache()\\` uses a shared cache that can't contain private request data. Call the private cached function outside \\`unstable_cache()\\`.\\nLearn more: ${USE_CACHE_PRIVATE_COMPOSITION}`\n )\n}\n\nexport function createUseCachePrivateOutsideRequestContextError(\n route: string,\n functionName: string\n): Error {\n return new Error(\n `Route \"${route}\": \\`\"use cache: private\"\\` needs an active request, so it can't be used during \\`${functionName}\\` or other build-time contexts. Move it to a request-time component or function.\\nLearn more: ${USE_CACHE_PRIVATE_COMPOSITION}`\n )\n}\n","import type { IncomingHttpHeaders } from 'http'\n\nimport { ReflectAdapter } from './reflect'\n\n/**\n * @internal\n */\nexport class ReadonlyHeadersError extends Error {\n constructor() {\n super(\n 'Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers'\n )\n }\n\n public static callable() {\n throw new ReadonlyHeadersError()\n }\n}\n\nexport type ReadonlyHeaders = Headers & {\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n append(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n set(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n delete(...args: any[]): void\n}\n\n/**\n * The read methods that a sealed view provides itself instead of forwarding to\n * the underlying `Headers`. Deriving the type from `Headers` keeps the\n * implementations in step with the platform signatures.\n */\ntype SealedHeaderMethods = Pick<\n Headers,\n | 'get'\n | 'has'\n | 'getSetCookie'\n | 'keys'\n | 'values'\n | 'entries'\n | 'forEach'\n | typeof Symbol.iterator\n>\n\n/**\n * Builds the read methods for a sealed view that exposes all of `target`.\n */\nfunction createPassThroughMethods(\n target: Headers,\n sealed: ReadonlyHeaders\n): SealedHeaderMethods {\n return {\n get: target.get.bind(target),\n has: target.has.bind(target),\n getSetCookie: target.getSetCookie.bind(target),\n keys: target.keys.bind(target),\n values: target.values.bind(target),\n entries: target.entries.bind(target),\n [Symbol.iterator]: target[Symbol.iterator].bind(target),\n // The native method passes the unsealed target as the callback's `parent`\n // argument. That is a mutable handle on the underlying headers. Pass the\n // sealed view instead.\n forEach(callbackfn, thisArg) {\n for (const [name, value] of target.entries()) {\n callbackfn.call(thisArg, value, name, sealed)\n }\n },\n }\n}\n\n/**\n * Builds the read methods for a sealed view that omits the header names matched\n * by `isHidden`.\n */\nfunction createHidingMethods(\n target: Headers,\n sealed: ReadonlyHeaders,\n isHidden: (name: string) => boolean\n): SealedHeaderMethods {\n function* entries(): HeadersIterator<[string, string]> {\n for (const entry of target.entries()) {\n if (!isHidden(entry[0])) {\n yield entry\n }\n }\n }\n\n return {\n entries,\n [Symbol.iterator]: entries,\n get: (name) => (isHidden(name) ? null : target.get(name)),\n has: (name) => (isHidden(name) ? false : target.has(name)),\n getSetCookie: () => (isHidden('set-cookie') ? [] : target.getSetCookie()),\n *keys(): HeadersIterator<string> {\n for (const name of target.keys()) {\n if (!isHidden(name)) {\n yield name\n }\n }\n },\n *values(): HeadersIterator<string> {\n for (const [, value] of entries()) {\n yield value\n }\n },\n // The native method passes the unsealed target as the callback's `parent`\n // argument. That is a mutable handle on the underlying headers. Pass the\n // sealed view instead.\n forEach(callbackfn, thisArg) {\n for (const [name, value] of entries()) {\n callbackfn.call(thisArg, value, name, sealed)\n }\n },\n }\n}\n\nexport class HeadersAdapter extends Headers {\n private readonly headers: IncomingHttpHeaders\n\n constructor(headers: IncomingHttpHeaders) {\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super()\n\n this.headers = new Proxy(headers, {\n get(target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === 'symbol') {\n return ReflectAdapter.get(target, prop, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return undefined.\n if (typeof original === 'undefined') return\n\n // If the original casing exists, return the value.\n return ReflectAdapter.get(target, original, receiver)\n },\n set(target, prop, value, receiver) {\n if (typeof prop === 'symbol') {\n return ReflectAdapter.set(target, prop, value, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, use the prop as the key.\n return ReflectAdapter.set(target, original ?? prop, value, receiver)\n },\n has(target, prop) {\n if (typeof prop === 'symbol') return ReflectAdapter.has(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return false.\n if (typeof original === 'undefined') return false\n\n // If the original casing exists, return true.\n return ReflectAdapter.has(target, original)\n },\n deleteProperty(target, prop) {\n if (typeof prop === 'symbol')\n return ReflectAdapter.deleteProperty(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return true.\n if (typeof original === 'undefined') return true\n\n // If the original casing exists, delete the property.\n return ReflectAdapter.deleteProperty(target, original)\n },\n })\n }\n\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n *\n * The sealed view stays live. Later writes to `headers` remain visible\n * through it.\n *\n * `hidden` omits the given header names from every read operation (`get`,\n * `has`, `getSetCookie`, `forEach`, and iteration). The names must be\n * lowercase. The underlying headers are neither copied nor mutated, so hidden\n * headers remain available to the framework.\n */\n public static seal(\n headers: Headers,\n hidden?: ReadonlySet<string>\n ): ReadonlyHeaders {\n const isHidden =\n hidden && hidden.size > 0\n ? (name: string): boolean => hidden.has(name.toLowerCase())\n : null\n\n // The methods are built once per sealed view and reused, so repeated access\n // returns the same function instead of a fresh closure. They are assigned\n // after the proxy exists because `forEach` hands the proxy to its callback.\n // Creating the proxy runs no trap, so nothing can read them before then.\n let methods: SealedHeaderMethods\n\n const sealed: ReadonlyHeaders = new Proxy<ReadonlyHeaders>(headers, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'append':\n case 'delete':\n case 'set':\n return ReadonlyHeadersError.callable\n case Symbol.iterator:\n return methods[Symbol.iterator]\n case 'get':\n case 'has':\n case 'getSetCookie':\n case 'keys':\n case 'values':\n case 'entries':\n case 'forEach':\n return methods[prop]\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n\n methods = isHidden\n ? createHidingMethods(headers, sealed, isHidden)\n : createPassThroughMethods(headers, sealed)\n\n return sealed\n }\n\n /**\n * @param headers\n * @returns A fresh object identity backed by the original value\n */\n public static fresh(headers: ReadonlyHeaders): ReadonlyHeaders {\n return new Proxy<ReadonlyHeaders>(headers, {\n get(target, prop, receiver) {\n return ReflectAdapter.get(target, prop, receiver)\n },\n })\n }\n\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */\n private merge(value: string | string[]): string {\n if (Array.isArray(value)) return value.join(', ')\n\n return value\n }\n\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */\n public static from(headers: IncomingHttpHeaders | Headers): Headers {\n if (headers instanceof Headers) return headers\n\n return new HeadersAdapter(headers)\n }\n\n public append(name: string, value: string): void {\n const existing = this.headers[name]\n if (typeof existing === 'string') {\n this.headers[name] = [existing, value]\n } else if (Array.isArray(existing)) {\n existing.push(value)\n } else {\n this.headers[name] = value\n }\n }\n\n public delete(name: string): void {\n delete this.headers[name]\n }\n\n public get(name: string): string | null {\n const value = this.headers[name]\n if (typeof value !== 'undefined') return this.merge(value)\n\n return null\n }\n\n public has(name: string): boolean {\n return typeof this.headers[name] !== 'undefined'\n }\n\n public set(name: string, value: string): void {\n this.headers[name] = value\n }\n\n public forEach(\n callbackfn: (value: string, name: string, parent: Headers) => void,\n thisArg?: any\n ): void {\n for (const [name, value] of this.entries()) {\n callbackfn.call(thisArg, value, name, this)\n }\n }\n\n public *entries(): HeadersIterator<[string, string]> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name) as string\n\n yield [name, value] as [string, string]\n }\n }\n\n public *keys(): HeadersIterator<string> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n yield name\n }\n }\n\n public *values(): HeadersIterator<string> {\n for (const key of Object.keys(this.headers)) {\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key) as string\n\n yield value\n }\n }\n\n public [Symbol.iterator](): HeadersIterator<[string, string]> {\n return this.entries()\n }\n}\n","export class ReflectAdapter {\n static get<T extends object>(\n target: T,\n prop: string | symbol,\n receiver: unknown\n ): any {\n const value = Reflect.get(target, prop, receiver)\n if (typeof value === 'function') {\n return value.bind(target)\n }\n\n return value\n }\n\n static set<T extends object>(\n target: T,\n prop: string | symbol,\n value: any,\n receiver: any\n ): boolean {\n return Reflect.set(target, prop, value, receiver)\n }\n\n static has<T extends object>(target: T, prop: string | symbol): boolean {\n return Reflect.has(target, prop)\n }\n\n static deleteProperty<T extends object>(\n target: T,\n prop: string | symbol\n ): boolean {\n return Reflect.deleteProperty(target, prop)\n }\n}\n","import { RequestCookies } from '../cookies'\n\nimport { ResponseCookies } from '../cookies'\nimport { ReflectAdapter } from './reflect'\nimport { workAsyncStorage } from '../../../app-render/work-async-storage.external'\nimport type { RequestStore } from '../../../app-render/work-unit-async-storage.external'\nimport { ActionDidRevalidateStaticAndDynamic } from '../../../../shared/lib/action-revalidation-kind'\n\n/**\n * @internal\n */\nexport class ReadonlyRequestCookiesError extends Error {\n constructor() {\n super(\n 'Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options'\n )\n }\n\n public static callable() {\n throw new ReadonlyRequestCookiesError()\n }\n}\n\n// We use this to type some APIs but we don't construct instances directly\nexport type { ResponseCookies }\n\n// The `cookies()` API is a mix of request and response cookies. For `.get()` methods,\n// we want to return the request cookie if it exists. For mutative methods like `.set()`,\n// we want to return the response cookie.\nexport type ReadonlyRequestCookies = Omit<\n RequestCookies,\n 'set' | 'clear' | 'delete'\n> &\n Pick<ResponseCookies, 'set' | 'delete'>\n\nexport class RequestCookiesAdapter {\n public static seal(cookies: RequestCookies): ReadonlyRequestCookies {\n return new Proxy(cookies as any, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'clear':\n case 'delete':\n case 'set':\n return ReadonlyRequestCookiesError.callable\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n }\n\n /**\n * @param cookies\n * @returns A fresh object identity backed by the original value\n */\n public static fresh(cookies: ReadonlyRequestCookies): ReadonlyRequestCookies {\n return new Proxy(cookies, {\n get(target, prop, receiver) {\n return ReflectAdapter.get(target, prop, receiver)\n },\n })\n }\n}\n\nconst SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for('next.mutated.cookies')\n\nexport function getModifiedCookieValues(\n cookies: ResponseCookies\n): ResponseCookie[] {\n const modified: ResponseCookie[] | undefined = (cookies as unknown as any)[\n SYMBOL_MODIFY_COOKIE_VALUES\n ]\n if (!modified || !Array.isArray(modified) || modified.length === 0) {\n return []\n }\n\n return modified\n}\n\ntype SetCookieArgs =\n | [key: string, value: string, cookie?: Partial<ResponseCookie>]\n | [options: ResponseCookie]\n\nexport function appendMutableCookies(\n headers: Headers,\n mutableCookies: ResponseCookies\n): boolean {\n const modifiedCookieValues = getModifiedCookieValues(mutableCookies)\n if (modifiedCookieValues.length === 0) {\n return false\n }\n\n // Return a new response that extends the response with\n // the modified cookies as fallbacks. `res` cookies\n // will still take precedence.\n const resCookies = new ResponseCookies(headers)\n const returnedCookies = resCookies.getAll()\n\n // Set the modified cookies as fallbacks.\n for (const cookie of modifiedCookieValues) {\n resCookies.set(cookie)\n }\n\n // Set the original cookies as the final values.\n for (const cookie of returnedCookies) {\n resCookies.set(cookie)\n }\n\n return true\n}\n\ntype ResponseCookie = NonNullable<\n ReturnType<InstanceType<typeof ResponseCookies>['get']>\n>\n\nexport class MutableRequestCookiesAdapter {\n public static wrap(\n cookies: RequestCookies,\n onUpdateCookies?: (cookies: string[]) => void\n ): ResponseCookies {\n const responseCookies = new ResponseCookies(new Headers())\n for (const cookie of cookies.getAll()) {\n responseCookies.set(cookie)\n }\n\n let modifiedValues: ResponseCookie[] = []\n const modifiedCookies = new Set<string>()\n const updateResponseCookies = () => {\n // TODO-APP: change method of getting workStore\n const workStore = workAsyncStorage.getStore()\n if (workStore) {\n workStore.pathWasRevalidated = ActionDidRevalidateStaticAndDynamic\n }\n\n const allCookies = responseCookies.getAll()\n modifiedValues = allCookies.filter((c) => modifiedCookies.has(c.name))\n if (onUpdateCookies) {\n const serializedCookies: string[] = []\n for (const cookie of modifiedValues) {\n const tempCookies = new ResponseCookies(new Headers())\n tempCookies.set(cookie)\n serializedCookies.push(tempCookies.toString())\n }\n\n onUpdateCookies(serializedCookies)\n }\n }\n\n const wrappedCookies = new Proxy(responseCookies, {\n get(target, prop, receiver) {\n switch (prop) {\n // A special symbol to get the modified cookie values\n case SYMBOL_MODIFY_COOKIE_VALUES:\n return modifiedValues\n\n // TODO: Throw error if trying to set a cookie after the response\n // headers have been set.\n case 'delete':\n return function (...args: [string] | [ResponseCookie]) {\n modifiedCookies.add(\n typeof args[0] === 'string' ? args[0] : args[0].name\n )\n try {\n target.delete(...args)\n return wrappedCookies\n } finally {\n updateResponseCookies()\n }\n }\n case 'set':\n return function (...args: SetCookieArgs) {\n modifiedCookies.add(\n typeof args[0] === 'string' ? args[0] : args[0].name\n )\n try {\n target.set(...args)\n return wrappedCookies\n } finally {\n updateResponseCookies()\n }\n }\n\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n\n return wrappedCookies\n }\n}\n\nexport function createCookiesWithMutableAccessCheck(\n requestStore: RequestStore\n): ResponseCookies {\n const wrappedCookies = new Proxy(requestStore.mutableCookies, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'delete':\n return function (...args: [string] | [ResponseCookie]) {\n ensureCookiesAreStillMutable(requestStore, 'cookies().delete')\n target.delete(...args)\n return wrappedCookies\n }\n case 'set':\n return function (...args: SetCookieArgs) {\n ensureCookiesAreStillMutable(requestStore, 'cookies().set')\n target.set(...args)\n return wrappedCookies\n }\n\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n return wrappedCookies\n}\n\nexport function areCookiesMutableInCurrentPhase(requestStore: RequestStore) {\n return requestStore.phase === 'action'\n}\n\n/** Ensure that cookies() starts throwing on mutation\n * if we changed phases and can no longer mutate.\n *\n * This can happen when going:\n * 'render' -> 'after'\n * 'action' -> 'render'\n * */\nfunction ensureCookiesAreStillMutable(\n requestStore: RequestStore,\n _callingExpression: string\n) {\n if (!areCookiesMutableInCurrentPhase(requestStore)) {\n // TODO: maybe we can give a more precise error message based on callingExpression?\n throw new ReadonlyRequestCookiesError()\n }\n}\n\nexport function responseCookiesToRequestCookies(\n responseCookies: ResponseCookies\n): RequestCookies {\n const requestCookies = new RequestCookies(new Headers())\n for (const cookie of responseCookies.getAll()) {\n requestCookies.set(cookie)\n }\n return requestCookies\n}\n","export {\n RequestCookies,\n ResponseCookies,\n stringifyCookie,\n} from 'next/dist/compiled/@edge-runtime/cookies'\n","export type ActionRevalidationKind = 0 | 1 | 2\n\nexport const ActionDidNotRevalidate = 0\nexport const ActionDidRevalidateStaticAndDynamic = 1\nexport const ActionDidRevalidateDynamicOnly = 2\n","export function createUnrenderedSegmentError(\n route: string,\n missingFiles: readonly string[]\n): Error {\n let message = `Route \"${route}\": Could not validate that a segment in your UI has instant navigation.`\n if (missingFiles.length > 0) {\n const label =\n missingFiles.length === 1 ? 'Dropped segment' : 'Dropped segments'\n message +=\n `\\n\\nThis segment was dropped from rendering. Issues that would prevent instant navigation will go undetected.` +\n `\\n\\n${label}:\\n${missingFiles.map((p) => ` ${p}`).join('\\n')}` +\n `\\n\\nWays to fix this:` +\n `\\n - [render] Render the dropped segment` +\n `\\n - [ignore] Set \\`export const instant = false\\` to opt the dropped segment out of instant-navigation validation` +\n `\\n\\nLearn more: https://nextjs.org/docs/messages/instant-unrendered-segment`\n }\n return new Error(message)\n}\n\nexport function createLinkPrefetchPartialError(pathname: string): Error {\n return new Error(\n `Next.js encountered dynamic data during prefetching for \"${pathname}\".\\n\\n` +\n `This will lead to slower, more expensive prefetches.\\n\\n` +\n `Ways to fix this:\\n` +\n ` - [upgrade] Opt into Partial Prefetching by exporting \\`const prefetch = 'partial'\\` from the page or layout, or by setting \\`partialPrefetching: true\\` in next.config to opt the whole app in\\n` +\n ` - [disable] Remove \\`prefetch={true}\\` from the <Link> to use the default prefetch\\n` +\n ` - [ignore] Set \\`export const instant = false\\` to opt the route out of instant-navigation validation\\n\\n` +\n `Learn more: https://nextjs.org/docs/messages/instant-link-prefetch-partial`\n )\n}\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","// This module is bundled separately into user code and the precompiled App\n// Router runtime. Use the global symbol registry so both copies recognize the\n// same browser bailout reason.\nconst REACT_BROWSER_BAILOUT_REASON = Symbol.for('next.browser-bailout-reason')\n\ntype ReactBrowserBailoutReason = {\n $$typeof: symbol\n reason: string\n}\n\nexport function createReactBrowserBailoutReason(\n reason: string\n): ReactBrowserBailoutReason {\n return {\n $$typeof: REACT_BROWSER_BAILOUT_REASON,\n reason,\n }\n}\n\nexport function getReactBrowserBailoutReason(\n error: unknown\n): string | undefined {\n const cause = (error as Error)?.cause as ReactBrowserBailoutReason | undefined\n\n return cause?.$$typeof === REACT_BROWSER_BAILOUT_REASON\n ? cause.reason\n : undefined\n}\n\nexport function isNextBrowserBailoutError(error: unknown): boolean {\n return getReactBrowserBailoutReason(error) !== undefined\n}\n","export function createPromiseWithResolvers<T>(): PromiseWithResolvers<T> {\n // Shim of Stage 4 Promise.withResolvers proposal\n let resolve: (value: T | PromiseLike<T>) => void\n let reject: (reason: any) => void\n const promise = new Promise<T>((res, rej) => {\n resolve = res\n reject = rej\n })\n return { resolve: resolve!, reject: reject!, promise }\n}\n","import { DEFAULT_SEGMENT_KEY } from '../../segment'\nimport type { LoaderTree } from '../../../../server/lib/app-dir-module'\n\nexport function parseLoaderTree(tree: LoaderTree) {\n const [segment, parallelRoutes, modules, staticSiblings] = tree\n const { layout, template } = modules\n let { page } = modules\n // a __DEFAULT__ segment means that this route didn't match any of the\n // segments in the route, so we should use the default page\n page = segment === DEFAULT_SEGMENT_KEY ? modules.defaultPage : page\n\n const conventionPath = layout?.[1] || template?.[1] || page?.[1]\n\n return {\n page,\n segment,\n modules,\n /* it can be either layout / template / page */\n conventionPath,\n parallelRoutes,\n staticSiblings,\n }\n}\n","import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue === PAGE_SEGMENT_KEY) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\nexport const NOT_FOUND_SEGMENT_KEY = '/_not-found'\n","module.exports.cookies = require('./dist/server/request/cookies').cookies\nmodule.exports.headers = require('./dist/server/request/headers').headers\nmodule.exports.draftMode = require('./dist/server/request/draft-mode').draftMode\n"],"names":["DynamicServerError","isDynamicServerError","DYNAMIC_ERROR_CODE","Error","constructor","description","digest","err","StaticGenBailoutError","isStaticGenBailoutError","NEXT_STATIC_GEN_BAILOUT","code","error","METADATA_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME","ROOT_LAYOUT_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME","atLeastOneTask","scheduleImmediate","scheduleOnNextTick","waitAtLeastOneReactRenderTask","cb","Promise","resolve","then","process","env","NEXT_RUNTIME","setTimeout","nextTick","setImmediate","r","createDynamicBodyError","createDynamicBodyErrorInNavigation","createDynamicBodyErrorInStaticRoute","createDynamicMetadataError","createDynamicMetadataErrorInStaticRoute","createDynamicOrRuntimeBodyError","createDynamicOrRuntimeMetadataError","createDynamicOrRuntimeViewportError","createDynamicViewportError","createDynamicViewportErrorInStaticRoute","createLinkBodyErrorInNavigation","createLinkMetadataError","createLinkViewportError","createNavigationBodyErrorInNavigation","createNavigationMetadataError","createNavigationViewportError","createNonPrerenderableBodyErrorInStaticRoute","createNonPrerenderableMetadataErrorInStaticRoute","createNonPrerenderableViewportErrorInStaticRoute","createPrefetchBodyErrorInNavigation","createPrefetchMetadataError","createPrefetchViewportError","createRuntimeBodyError","createRuntimeBodyErrorInNavigation","createRuntimeBodyErrorInStaticRoute","createRuntimeMetadataError","createRuntimeMetadataErrorInStaticRoute","createRuntimeViewportError","createRuntimeViewportErrorInStaticRoute","logBuildDebugHint","route","NODE_ENV","console","__NEXT_DEV_SERVER","DynamicHoleKind","PreludeState","abortAndThrowOnSynchronousRequestDataAccess","abortOnSynchronousPlatformIOAccess","accessedDynamicData","annotateDynamicAccess","consumeDynamicAccess","createDynamicTrackingState","createDynamicValidationState","createHangingInputAbortSignal","createInstantValidationState","formatDynamicAPIAccesses","getDisallowedReasonsInStaticRoute","getFirstDynamicReason","getNavigationDisallowedDynamicReasons","getStaticShellDisallowedDynamicReasons","isPrerenderInterruptedError","logDisallowedDynamicError","markCurrentScopeAsDynamic","throwIfDisallowedDynamic","throwIfDisallowedDynamicInStaticRoute","throwIfSyncIOUsed","throwToInterruptStaticGeneration","trackAllowedDynamicAccess","trackDynamicAccessInStaticRoute","trackDynamicDataInDynamicRender","trackDynamicHoleInNavigation","trackDynamicHoleInStaticShell","trackThrownErrorInNavigation","isDebugDynamicAccesses","dynamicAccesses","syncDynamicErrorWithStack","syncDynamicErrorWithStackPostMicrotask","hasSuspenseAboveBody","hasDynamicMetadata","dynamicMetadata","hasDynamicViewport","hasAllowedDynamic","dynamicErrors","getPendingClientSyncDynamicError","clientDynamic","trackingState","expression","store","workUnitStore","type","forceDynamic","forceStatic","dynamicShouldError","revalidate","dynamicUsageDescription","dynamicUsageStack","stack","markRequestStoreAsDynamic","prerenderStore","requestStore","phase","usedDynamic","abortOnSynchronousDynamicDataAccess","reason","createPrerenderInterruptedError","controller","abort","dynamicTracking","push","undefined","errorWithStack","queueMicrotask","prerenderSignal","signal","aborted","NEXT_PRERENDER_INTERRUPTED","message","length","serverDynamic","filter","access","map","split","slice","line","includes","join","AbortController","cacheSignal","inputReady","stagedRendering","getStagedRenderingController","finalStage","waitForStage","noop","hasSuspenseRegex","bodyAndImplicitTags","hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex","RegExp","hasMetadataRegex","hasViewportRegex","hasOutletRegex","hasInstantValidationBoundaryRegex","INSTANT_VALIDATION_BOUNDARY_NAME","slotMarkerRegex","INSTANT_SLOT_MARKER_PREFIX","INSTANT_SLOT_MARKER_SUFFIX","resolveInstantStack","componentStack","dynamicValidation","slotStacks","match","exec","slotIndex","parseInt","slotStack","trackOutletSuspenseAboveBody","test","dynamicReason","workStore","isServerPartial","kind","syncDynamicError","addErrorContext","createMetadataErrorInStaticRoute","createViewportErrorInStaticRoute","hasSuspense","isClientHookDynamicError","createBodyErrorInStaticRoute","createBodyError","dynamicHoleKind","hasAllowedClientDynamicAboveBoundary","validationPreventingErrors","thrownErrorsOutsideBoundary","boundaryState","effectiveCreateInstantStack","createMetadataError","createViewportError","boundaryLocation","allRequiredBoundariesRendered","suspenseLocation","index","cause","createBodyErrorInNavigation","thrownValue","reactBrowserBailout","browserBailoutReason","getReactBrowserBailoutReason","browserBailoutError","createInstantStack","ownerStack","React","captureOwnerStack","name","prelude","allowEmptyStaticShell","i","isFallbackShell","reasons","InvariantError","validationSampleTracking","devRenderDidError","missingSampleErrors","rootInstantStack","missingFiles","id","filePaths","requiredIds","renderedIds","has","filePath","normalized","replace","cwd","sort","createUnrenderedSegmentError","AggregateError","createValidationBoundaryTracking","matchPrevious","Map","Set","state","keys","EnsureStaticLevel","resolveEnsureStaticConfig","resolveEnsureStaticLevel","getEnsureStaticLevel","ensureStatic","tree","partialPrefetching","config","resolveEnsureStaticConfigImpl","originalConfig","warn","formatEnsureStaticExport","mod","layoutOrPageMod","getLayoutOrPageModule","getEnsureStaticConfigForModule","parentResult","slotsResult","slotResultKey","parallelRoutes","parseLoaderTree","parallelRouteKey","parallelRoute","childResult","compareEnsureStatic","formatParallelSlot","comparison","slot","JSON","stringify","Comparison","ENSURE_STATIC_ORDER","left","right","leftSort","indexOf","rightSort","RENDER_STAGE_ADVANCE_ORDER","RenderStage","StagedRenderingController","SyncIOMode","getNextStage","isAdvanceableRenderStage","stage","abortSignal","abandonController","syncIO","currentStage","syncInterruptReason","triggers","createAdvanceableStageTriggers","syncIOMode","addEventListener","trigger","Object","values","cancelStageTrigger","once","abandonRender","onStage","callback","addSyncTriggerListener","shouldTrackSyncInterrupt","syncInterruptCurrentStageWithReason","advanceStage","getSyncInterruptReason","getStageEndTime","triggeredAt","Infinity","nextStageIx","dynamicStageIx","resolveStage","targetStage","targetStageIx","fireStageTrigger","getStagePromise","promise","delayUntilStage","displayName","resolvedValue","stagePromise","makeDevtoolsIOPromiseFromIOTrigger","catch","ignoreReject","createStageTrigger","ioTrigger","reject","bind","listener","_listeners","createPromiseWithResolvers","_resolvePromise","_rejectPromise","performance","now","timeOrigin","listeners","createDedupedByCallsiteServerErrorLoggerDev","errorRef","current","cache","fn","logErrorOrWarn","__NEXT_CACHE_COMPONENTS","flushCurrentErrorIfNew","key","getMessage","logDedupedError","args","callStackFrames","ClientHookDynamicError","RENDER_STAGES_BY_DATA_KIND","applyOwnerStack","createPrerenderDataTracking","finishPrerenderDataTracking","isHangingPromiseRejectionError","makeClientHookHangingPromise","makeDevtoolsIOAwarePromise","makeDynamicHangingPromise","makeFallbackParamsHangingPromise","makePrefetchHangingPromise","makePromiseFromTrigger","makeSessionDataHangingPromise","makeURLDataHangingPromise","makeUnknownRuntimeDataHangingPromise","makeUntrackedHangingPromise","trackFallbackParamsAccessed","trackIncompatibleShellContent","trackPromiseUsed","trackURLDataAccessed","HANGING_PROMISE_REJECTION","HangingPromiseRejectionError","CLIENT_HOOK_DYNAMIC","abortListenersBySignal","WeakMap","makeHangingPromiseWithError","trackSessionDataAccessed","runtimeDataAccessed","shouldAttemptStaticShell","shouldAttemptStaticPrefetch","prerenderDataTracking","trackRuntimeDataAccessed","dataKind","Before","NavigationStatic","ensureStaticLevel","None","firstAffectedStage","ShellStatic","Shell","logRuntimeDeopt","PrefetchStatic","Prefetch","markRuntimeDataAccessWhenStageReached","isFallbackUpgradeable","logRuntimeUpgradeableFallback","stageController","NEXT_PRIVATE_DEBUG_RUNTIME_DATA","workAsyncStorage","getStore","log","Dynamic","Abandoned","NEXT_PRIVATE_DEBUG_VALIDATION","hasIncompatibleShellContent","hangingPromise","_","boundRejection","currentListeners","get","set","value","underlying","onUse","TrackedPromise","from","Symbol","species","tracked","prototype","call","onFulfilled","onRejected","sessionData","ShellRuntime","staticUrlData","prefetchApi","static","PrefetchStatic_prefetchApi","runtime","PrefetchRuntime_prefetchApi","PrefetchRuntime","runtimeUrlData","getClientReact","getServerReact","workUnitAsyncStorage","innerOwnerStack","outerOwnerStack","frames","frame","getComponentTypeModule","loaderTree","layout","page","defaultPage","isLayout","isPage","isDefaultPage","DEFAULT_SEGMENT_KEY","modType","moduleType","module","cookies","callingExpression","isRequestApiAllowedInCurrentPhase","underlyingCookies","createEmptyCookies","makeUntrackedCookies","createCookiesInUseCacheError","captureStackTrace","invalidDynamicUsageError","createCookiesInUnstableCacheError","functionName","makeHangingCookies","exportName","areCookiesMutableInCurrentPhase","userspaceMutableCookies","makeUntrackedCookiesWithDevWarnings","asyncApiPromises","mutableCookies","throwForMissingRequestStore","RequestCookiesAdapter","seal","RequestCookies","Headers","CachedCookies","cachedPromise","renderSignal","cachedCookies","instrumentCookiesPromiseWithDevWarnings","proxiedPromise","warnForSyncAccess","createCookiesAccessError","defineProperties","iterator","replaceableWarningDescriptorForSymbolIterator","size","replaceableWarningDescriptor","getAll","delete","clear","toString","target","prop","enumerable","defineProperty","writable","configurable","prefix","draftMode","DraftMode","createOrGetCachedDraftMode","draftModeProvider","getDraftModeProviderForCacheScope","cacheKey","NullDraftMode","cachedDraftMode","CachedDraftModes","isPrefetchRequest","createDraftModeWithDevWarnings","underlyingProvider","instance","Proxy","receiver","ReflectAdapter","provider","_provider","isEnabled","enable","trackDynamicDraftMode","disable","createDraftModeAccessError","constructorOpt","createDraftModeMutationInUseCacheError","createDraftModeMutationInUnstableCacheError","headers","underlyingHeaders","HeadersAdapter","makeUntrackedHeaders","createHeadersInUseCacheError","createHeadersInUnstableCacheError","makeHangingHeaders","makeUntrackedHeadersWithDevWarnings","CachedHeaders","cachedHeaders","instrumentHeadersPromiseWithDevWarnings","createHeadersAccessError","append","getSetCookie","forEach","entries","throwForSearchParamsAccessInUseCache","throwWithStaticGenerationBailoutErrorWithDynamicError","createSearchParamsInUseCacheError","actionStore","actionAsyncStorage","isAppRoute","isAction","afterTaskStore","afterTaskAsyncStorage","rootTaskSpawnPhase","createCacheLifeOutsideUseCacheError","createCacheTagOutsideUseCacheError","createConnectionInPrivateUseCacheError","createConnectionInPublicUseCacheError","createConnectionInUnstableCacheError","createNestedCacheShortExpireError","createNestedCacheZeroRevalidateError","createRevalidateDuringRenderError","createRevalidateInBuildTimeGeneratorError","createRevalidateInCachedFunctionError","createRouteHandlerRequestInUnstableCacheError","createRouteHandlerRequestInUseCacheError","createUseCachePrivateInsidePublicUseCacheError","createUseCachePrivateInsideUnstableCacheError","createUseCachePrivateOutsideRequestContextError","NEXT_REQUEST_IN_USE_CACHE","UNSTABLE_CACHE_API_DOCS","USE_CACHE_PRIVATE_API_DOCS","CACHE_TAG_OUTSIDE_USE_CACHE","CACHE_LIFE_OUTSIDE_USE_CACHE","USE_CACHE_PRIVATE_COMPOSITION","REVALIDATE_IN_USE_CACHE","NESTED_USE_CACHE_NO_EXPLICIT_CACHELIFE","generatorName","routePrefix","ReadonlyHeadersError","callable","createPassThroughMethods","sealed","callbackfn","thisArg","createHidingMethods","isHidden","entry","lowercased","toLowerCase","original","find","o","deleteProperty","hidden","methods","fresh","merge","Array","isArray","existing","Reflect","MutableRequestCookiesAdapter","ReadonlyRequestCookiesError","appendMutableCookies","createCookiesWithMutableAccessCheck","getModifiedCookieValues","responseCookiesToRequestCookies","SYMBOL_MODIFY_COOKIE_VALUES","for","modified","modifiedCookieValues","resCookies","ResponseCookies","returnedCookies","cookie","wrap","onUpdateCookies","responseCookies","modifiedValues","modifiedCookies","updateResponseCookies","pathWasRevalidated","ActionDidRevalidateStaticAndDynamic","allCookies","c","serializedCookies","tempCookies","wrappedCookies","add","ensureCookiesAreStillMutable","_callingExpression","requestCookies","stringifyCookie","ActionDidNotRevalidate","ActionDidRevalidateDynamicOnly","createLinkPrefetchPartialError","label","p","pathname","options","endsWith","createReactBrowserBailoutReason","isNextBrowserBailoutError","REACT_BROWSER_BAILOUT_REASON","$$typeof","res","rej","segment","modules","staticSiblings","template","conventionPath","NOT_FOUND_SEGMENT_KEY","PAGE_SEGMENT_KEY","computeSelectedLayoutSegment","getSegmentValue","getSelectedLayoutSegmentPath","isGroupSegment","isParallelRouteSegment","startsWith","segments","rawSegment","first","segmentPath","node","children","segmentValue","exports"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]}