@hirra/vibemeter 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +7 -1
  3. package/.next/build-manifest.json +7 -8
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/prerender-manifest.json +16 -12
  6. package/.next/required-server-files.js +5 -4
  7. package/.next/required-server-files.json +5 -4
  8. package/.next/routes-manifest.json +36 -0
  9. package/.next/server/app/_global-error/page/build-manifest.json +4 -5
  10. package/.next/server/app/_global-error/page.js +4 -4
  11. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  12. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/_global-error.html +1 -1
  14. package/.next/server/app/_global-error.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  19. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/_not-found/page/build-manifest.json +4 -5
  21. package/.next/server/app/_not-found/page.js +5 -4
  22. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  23. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/admin/page/build-manifest.json +4 -5
  25. package/.next/server/app/admin/page.js +7 -5
  26. package/.next/server/app/admin/page.js.nft.json +1 -1
  27. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/codex-accounts/route.js +1 -1
  29. package/.next/server/app/api/codex-accounts/route.js.nft.json +1 -1
  30. package/.next/server/app/api/float/route/app-paths-manifest.json +3 -0
  31. package/.next/server/app/api/float/route/build-manifest.json +9 -0
  32. package/.next/server/app/api/float/route/server-reference-manifest.json +4 -0
  33. package/.next/server/app/api/float/route.js +8 -0
  34. package/.next/server/app/api/float/route.js.map +5 -0
  35. package/.next/server/app/api/float/route.js.nft.json +1 -0
  36. package/.next/server/app/api/float/route_client-reference-manifest.js +3 -0
  37. package/.next/server/app/api/import-sessions/route.js.nft.json +1 -1
  38. package/.next/server/app/api/sessions/[id]/tags/route.js +1 -1
  39. package/.next/server/app/api/sessions/[id]/tags/route.js.nft.json +1 -1
  40. package/.next/server/app/api/sessions/route.js +1 -1
  41. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  42. package/.next/server/app/api/settings/alerts/route/app-paths-manifest.json +3 -0
  43. package/.next/server/app/api/settings/alerts/route/build-manifest.json +9 -0
  44. package/.next/server/app/api/settings/alerts/route/server-reference-manifest.json +4 -0
  45. package/.next/server/app/api/settings/alerts/route.js +9 -0
  46. package/.next/server/app/api/settings/alerts/route.js.map +5 -0
  47. package/.next/server/app/api/settings/alerts/route.js.nft.json +1 -0
  48. package/.next/server/app/api/settings/alerts/route_client-reference-manifest.js +3 -0
  49. package/.next/server/app/api/settings/notify/route/app-paths-manifest.json +3 -0
  50. package/.next/server/app/api/settings/notify/route/build-manifest.json +9 -0
  51. package/.next/server/app/api/settings/notify/route/server-reference-manifest.json +4 -0
  52. package/.next/server/app/api/settings/notify/route.js +7 -0
  53. package/.next/server/app/api/settings/notify/route.js.map +5 -0
  54. package/.next/server/app/api/settings/notify/route.js.nft.json +1 -0
  55. package/.next/server/app/api/settings/notify/route_client-reference-manifest.js +3 -0
  56. package/.next/server/app/api/usage/route.js +1 -1
  57. package/.next/server/app/api/usage/route.js.nft.json +1 -1
  58. package/.next/server/app/float/page/app-paths-manifest.json +3 -0
  59. package/.next/server/app/float/page/build-manifest.json +16 -0
  60. package/.next/server/app/float/page/next-font-manifest.json +11 -0
  61. package/.next/server/app/float/page/react-loadable-manifest.json +1 -0
  62. package/.next/server/app/float/page/server-reference-manifest.json +4 -0
  63. package/.next/server/app/float/page.js +15 -0
  64. package/.next/server/app/float/page.js.map +5 -0
  65. package/.next/server/app/float/page.js.nft.json +1 -0
  66. package/.next/server/app/float/page_client-reference-manifest.js +3 -0
  67. package/.next/server/app/install.sh/route/app-paths-manifest.json +3 -0
  68. package/.next/server/app/install.sh/route/build-manifest.json +9 -0
  69. package/.next/server/app/install.sh/route/server-reference-manifest.json +4 -0
  70. package/.next/server/app/install.sh/route.js +6 -0
  71. package/.next/server/app/install.sh/route.js.map +5 -0
  72. package/.next/server/app/install.sh/route.js.nft.json +1 -0
  73. package/.next/server/app/install.sh/route_client-reference-manifest.js +3 -0
  74. package/.next/server/app/install.sh.body +108 -0
  75. package/.next/server/app/install.sh.meta +1 -0
  76. package/.next/server/app/page/build-manifest.json +4 -5
  77. package/.next/server/app/page.js +8 -5
  78. package/.next/server/app/page.js.nft.json +1 -1
  79. package/.next/server/app/page_client-reference-manifest.js +1 -1
  80. package/.next/server/app/settings/page/app-paths-manifest.json +3 -0
  81. package/.next/server/app/settings/page/build-manifest.json +16 -0
  82. package/.next/server/app/settings/page/next-font-manifest.json +11 -0
  83. package/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
  84. package/.next/server/app/settings/page/server-reference-manifest.json +4 -0
  85. package/.next/server/app/settings/page.js +17 -0
  86. package/.next/server/app/settings/page.js.map +5 -0
  87. package/.next/server/app/settings/page.js.nft.json +1 -0
  88. package/.next/server/app/settings/page_client-reference-manifest.js +3 -0
  89. package/.next/server/app-paths-manifest.json +7 -1
  90. package/.next/server/chunks/[externals]__0_i~3ox._.js +3 -0
  91. package/.next/server/chunks/[externals]__0_i~3ox._.js.map +1 -0
  92. package/.next/server/chunks/[externals]__13p_1zh._.js +3 -0
  93. package/.next/server/chunks/[externals]__13p_1zh._.js.map +1 -0
  94. package/.next/server/chunks/[root-of-the-server]__01t2c3w._.js +38 -0
  95. package/.next/server/chunks/[root-of-the-server]__01t2c3w._.js.map +1 -0
  96. package/.next/server/chunks/{[root-of-the-server]__0g0u0lm._.js → [root-of-the-server]__024yzee._.js} +2 -2
  97. package/.next/server/chunks/{[root-of-the-server]__00q0o~z._.js → [root-of-the-server]__082iwfa._.js} +2 -2
  98. package/.next/server/chunks/[root-of-the-server]__0chedn~._.js +1 -1
  99. package/.next/server/chunks/[root-of-the-server]__0mwf0bn._.js +38 -0
  100. package/.next/server/chunks/[root-of-the-server]__0mwf0bn._.js.map +1 -0
  101. package/.next/server/chunks/{[root-of-the-server]__0-74syk._.js → [root-of-the-server]__0ru3_it._.js} +2 -2
  102. package/.next/server/chunks/[root-of-the-server]__0u6y_k1._.js +111 -0
  103. package/.next/server/chunks/[root-of-the-server]__0u6y_k1._.js.map +1 -0
  104. package/.next/server/chunks/{[root-of-the-server]__0866q87._.js → [root-of-the-server]__0xa4dzi._.js} +2 -2
  105. package/.next/server/chunks/[root-of-the-server]__13415c6._.js +96 -0
  106. package/.next/server/chunks/[root-of-the-server]__13415c6._.js.map +1 -0
  107. package/.next/server/chunks/[root-of-the-server]__13j_28o._.js +96 -0
  108. package/.next/server/chunks/[root-of-the-server]__13j_28o._.js.map +1 -0
  109. package/.next/server/chunks/_next-internal_server_app_api_float_route_actions_012j~jr.js +3 -0
  110. package/.next/server/chunks/_next-internal_server_app_api_float_route_actions_012j~jr.js.map +1 -0
  111. package/.next/server/chunks/_next-internal_server_app_api_settings_alerts_route_actions_0ydcyko.js +3 -0
  112. package/.next/server/chunks/_next-internal_server_app_api_settings_alerts_route_actions_0ydcyko.js.map +1 -0
  113. package/.next/server/chunks/_next-internal_server_app_api_settings_notify_route_actions_0-j35mb.js +3 -0
  114. package/.next/server/chunks/_next-internal_server_app_api_settings_notify_route_actions_0-j35mb.js.map +1 -0
  115. package/.next/server/chunks/_next-internal_server_app_install_sh_route_actions_0cj-6me.js +3 -0
  116. package/.next/server/chunks/_next-internal_server_app_install_sh_route_actions_0cj-6me.js.map +1 -0
  117. package/.next/server/chunks/node_modules_next_06f88ko._.js +19 -0
  118. package/.next/server/chunks/node_modules_next_06f88ko._.js.map +1 -0
  119. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_03jj5jj.js +18 -0
  120. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_03jj5jj.js.map +1 -0
  121. package/.next/server/chunks/src_12i1qk5._.js +3 -0
  122. package/.next/server/chunks/src_12i1qk5._.js.map +1 -0
  123. package/.next/server/chunks/src_lib_alerts_ticker_ts_0n6oy1d._.js +169 -0
  124. package/.next/server/chunks/src_lib_alerts_ticker_ts_0n6oy1d._.js.map +1 -0
  125. package/.next/server/chunks/ssr/[root-of-the-server]__03mt8o0._.js +3 -0
  126. package/.next/server/chunks/ssr/[root-of-the-server]__03mt8o0._.js.map +1 -0
  127. package/.next/server/chunks/ssr/{[root-of-the-server]__098zro9._.js → [root-of-the-server]__090jxzh._.js} +2 -2
  128. package/.next/server/chunks/ssr/[root-of-the-server]__090jxzh._.js.map +1 -0
  129. package/.next/server/chunks/ssr/{[root-of-the-server]__09hgk-7._.js → [root-of-the-server]__0c3j40u._.js} +2 -2
  130. package/.next/server/chunks/ssr/[root-of-the-server]__0c3j40u._.js.map +1 -0
  131. package/.next/server/chunks/ssr/[root-of-the-server]__0ot4nev._.js +3 -0
  132. package/.next/server/chunks/ssr/[root-of-the-server]__0ot4nev._.js.map +1 -0
  133. package/.next/server/chunks/ssr/[root-of-the-server]__0q_~l2m._.js +90 -0
  134. package/.next/server/chunks/ssr/[root-of-the-server]__0q_~l2m._.js.map +1 -0
  135. package/.next/server/chunks/ssr/{[root-of-the-server]__0cqes87._.js → [root-of-the-server]__0qt26ty._.js} +2 -2
  136. package/.next/server/chunks/ssr/[root-of-the-server]__0qt26ty._.js.map +1 -0
  137. package/.next/server/chunks/ssr/[root-of-the-server]__0s5.uhg._.js +55 -0
  138. package/.next/server/chunks/ssr/[root-of-the-server]__0s5.uhg._.js.map +1 -0
  139. package/.next/server/chunks/ssr/[root-of-the-server]__0x~-phx._.js +3 -0
  140. package/.next/server/chunks/ssr/[root-of-the-server]__0x~-phx._.js.map +1 -0
  141. package/.next/server/chunks/ssr/[root-of-the-server]__0y_zq8k._.js +3 -0
  142. package/.next/server/chunks/ssr/[root-of-the-server]__0y_zq8k._.js.map +1 -0
  143. package/.next/server/chunks/ssr/{[root-of-the-server]__08qr2ji._.js → [root-of-the-server]__0~953ob._.js} +2 -2
  144. package/.next/server/chunks/ssr/[root-of-the-server]__0~953ob._.js.map +1 -0
  145. package/.next/server/chunks/ssr/_0-9j34y._.js +70 -0
  146. package/.next/server/chunks/ssr/_0-9j34y._.js.map +1 -0
  147. package/.next/server/chunks/ssr/_0jxmm9h._.js +6 -0
  148. package/.next/server/chunks/ssr/_0jxmm9h._.js.map +1 -0
  149. package/.next/server/chunks/ssr/_0lfe3wr._.js +3 -0
  150. package/.next/server/chunks/ssr/_0lfe3wr._.js.map +1 -0
  151. package/.next/server/chunks/ssr/{node_modules_0i2xw~e._.js → _0nvprxh._.js} +5 -2
  152. package/.next/server/chunks/ssr/_0nvprxh._.js.map +1 -0
  153. package/.next/server/chunks/ssr/_0pugb10._.js +6 -0
  154. package/.next/server/chunks/ssr/_0pugb10._.js.map +1 -0
  155. package/.next/server/chunks/ssr/_next-internal_server_app_float_page_actions_0x6hm4p.js +3 -0
  156. package/.next/server/chunks/ssr/_next-internal_server_app_float_page_actions_0x6hm4p.js.map +1 -0
  157. package/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_0mr68ai.js +3 -0
  158. package/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_0mr68ai.js.map +1 -0
  159. package/.next/server/chunks/ssr/node_modules_@swc_helpers_cjs__interop_require_default_cjs_11~q6fv._.js +3 -0
  160. package/.next/server/chunks/ssr/node_modules_@swc_helpers_cjs__interop_require_default_cjs_11~q6fv._.js.map +1 -0
  161. package/.next/server/chunks/ssr/node_modules_next_dist_09jzzl8._.js +3 -0
  162. package/.next/server/chunks/ssr/node_modules_next_dist_09jzzl8._.js.map +1 -0
  163. package/.next/server/chunks/ssr/{node_modules_next_dist_0e1izl_._.js → node_modules_next_dist_0h9llsw._.js} +2 -2
  164. package/.next/server/chunks/ssr/node_modules_next_dist_0h9llsw._.js.map +1 -0
  165. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06b_a87.js +4 -0
  166. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06b_a87.js.map +1 -0
  167. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0p_u4px.js +4 -0
  168. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0p_u4px.js.map +1 -0
  169. package/.next/server/chunks/ssr/src_0urkups._.js +3 -0
  170. package/.next/server/chunks/ssr/src_0urkups._.js.map +1 -0
  171. package/.next/server/chunks/ssr/src_components_0ox9d~w._.js +3 -0
  172. package/.next/server/chunks/ssr/src_components_0ox9d~w._.js.map +1 -0
  173. package/.next/server/chunks/ssr/src_components_CodexAccountsPanel_tsx_0n9xjzi._.js +1 -1
  174. package/.next/server/chunks/ssr/src_components_CodexAccountsPanel_tsx_0n9xjzi._.js.map +1 -1
  175. package/.next/server/chunks/ssr/src_components_FloatingWidget_tsx_089.6oo._.js +3 -0
  176. package/.next/server/chunks/ssr/src_components_FloatingWidget_tsx_089.6oo._.js.map +1 -0
  177. package/.next/server/chunks/ssr/src_lib_i18n_client_tsx_07pysgz._.js +3 -0
  178. package/.next/server/chunks/ssr/src_lib_i18n_client_tsx_07pysgz._.js.map +1 -0
  179. package/.next/server/edge/chunks/_0-m5tdn._.js +3 -0
  180. package/.next/server/edge/chunks/_0-m5tdn._.js.map +1 -0
  181. package/.next/server/edge/chunks/node_modules_next_dist_esm_build_templates_edge-wrapper_0mz-5sp.js.map +1 -0
  182. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_0mz-5sp.js +3 -0
  183. package/.next/server/functions-config-manifest.json +4 -1
  184. package/.next/server/instrumentation/middleware-manifest.json +12 -0
  185. package/.next/server/instrumentation.js +4 -0
  186. package/.next/server/instrumentation.js.map +5 -0
  187. package/.next/server/instrumentation.js.nft.json +1 -0
  188. package/.next/server/middleware-build-manifest.js +7 -8
  189. package/.next/server/next-font-manifest.js +1 -1
  190. package/.next/server/next-font-manifest.json +8 -0
  191. package/.next/server/pages/500.html +1 -1
  192. package/.next/server/pages-manifest.json +0 -1
  193. package/.next/server/server-reference-manifest.js +1 -1
  194. package/.next/server/server-reference-manifest.json +1 -1
  195. package/.next/static/chunks/0bymg5d-lqs0o.js +5 -0
  196. package/.next/static/chunks/0ebdqsutnp8y4.js +1 -0
  197. package/.next/static/chunks/0i3~mnai-l497.js +1 -0
  198. package/.next/static/chunks/0idj4tdmyr934.js +1 -0
  199. package/.next/static/chunks/10eoi4q2wk80z.js +1 -0
  200. package/.next/static/chunks/10refkmyp9rbl.css +3 -0
  201. package/.next/static/chunks/{07lhk_q6pmm3r.js → 10u3y4bw1ayzs.js} +1 -1
  202. package/.next/static/chunks/{00gq-v0e07i1q.js → 115dplafwys-z.js} +1 -1
  203. package/.next/static/chunks/12-9memveha-v.js +1 -0
  204. package/.next/static/chunks/163s8y.j70104.js +4 -0
  205. package/.next/static/chunks/turbopack-0k9twle9a8sh6.js +1 -0
  206. package/.next/types/routes.d.ts +8 -2
  207. package/.next/types/validator.ts +54 -0
  208. package/README.md +57 -17
  209. package/bin/vibemeter-float.swift +970 -0
  210. package/bin/vibemeter-notify.sh +172 -0
  211. package/bin/vibemeter.mjs +385 -7
  212. package/package.json +2 -1
  213. package/public/demo1.png +0 -0
  214. package/public/float-ball.png +0 -0
  215. package/public/float-collapsed.png +0 -0
  216. package/public/float-expanded.png +0 -0
  217. package/public/pay-alipay.jpg +0 -0
  218. package/.next/server/app/_not-found.html +0 -1
  219. package/.next/server/app/_not-found.meta +0 -16
  220. package/.next/server/app/_not-found.rsc +0 -16
  221. package/.next/server/app/_not-found.segments/_full.segment.rsc +0 -16
  222. package/.next/server/app/_not-found.segments/_head.segment.rsc +0 -6
  223. package/.next/server/app/_not-found.segments/_index.segment.rsc +0 -5
  224. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +0 -5
  225. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +0 -5
  226. package/.next/server/app/_not-found.segments/_tree.segment.rsc +0 -2
  227. package/.next/server/chunks/[root-of-the-server]__0y68a5d._.js +0 -96
  228. package/.next/server/chunks/[root-of-the-server]__0y68a5d._.js.map +0 -1
  229. package/.next/server/chunks/ssr/[root-of-the-server]__054lv8d._.js +0 -3
  230. package/.next/server/chunks/ssr/[root-of-the-server]__054lv8d._.js.map +0 -1
  231. package/.next/server/chunks/ssr/[root-of-the-server]__08qr2ji._.js.map +0 -1
  232. package/.next/server/chunks/ssr/[root-of-the-server]__098zro9._.js.map +0 -1
  233. package/.next/server/chunks/ssr/[root-of-the-server]__09hgk-7._.js.map +0 -1
  234. package/.next/server/chunks/ssr/[root-of-the-server]__0cqes87._.js.map +0 -1
  235. package/.next/server/chunks/ssr/[root-of-the-server]__0l.drdn._.js +0 -3
  236. package/.next/server/chunks/ssr/[root-of-the-server]__0l.drdn._.js.map +0 -1
  237. package/.next/server/chunks/ssr/[root-of-the-server]__0v1zqf~._.js +0 -120
  238. package/.next/server/chunks/ssr/[root-of-the-server]__0v1zqf~._.js.map +0 -1
  239. package/.next/server/chunks/ssr/[root-of-the-server]__0v73tbn._.js +0 -3
  240. package/.next/server/chunks/ssr/[root-of-the-server]__0v73tbn._.js.map +0 -1
  241. package/.next/server/chunks/ssr/_0ye~8el._.js +0 -7
  242. package/.next/server/chunks/ssr/_0ye~8el._.js.map +0 -1
  243. package/.next/server/chunks/ssr/node_modules_0ck2~9g._.js +0 -3
  244. package/.next/server/chunks/ssr/node_modules_0ck2~9g._.js.map +0 -1
  245. package/.next/server/chunks/ssr/node_modules_0i2xw~e._.js.map +0 -1
  246. package/.next/server/chunks/ssr/node_modules_next_dist_0e1izl_._.js.map +0 -1
  247. package/.next/server/chunks/ssr/node_modules_next_dist_0gsjr7_._.js +0 -3
  248. package/.next/server/chunks/ssr/node_modules_next_dist_0gsjr7_._.js.map +0 -1
  249. package/.next/server/pages/404.html +0 -1
  250. package/.next/static/chunks/002~6040mndie.css +0 -3
  251. package/.next/static/chunks/02g3221oh~3le.js +0 -2
  252. package/.next/static/chunks/0ljfidstam_7k.js +0 -1
  253. package/.next/static/chunks/0pqt~8bl3ukh4.js +0 -4
  254. package/.next/static/chunks/0yz9oprcns4nm.js +0 -2
  255. package/.next/static/chunks/turbopack-14vio.b1b9i4l.js +0 -1
  256. /package/.next/server/chunks/{[root-of-the-server]__0g0u0lm._.js.map → [root-of-the-server]__024yzee._.js.map} +0 -0
  257. /package/.next/server/chunks/{[root-of-the-server]__00q0o~z._.js.map → [root-of-the-server]__082iwfa._.js.map} +0 -0
  258. /package/.next/server/chunks/{[root-of-the-server]__0-74syk._.js.map → [root-of-the-server]__0ru3_it._.js.map} +0 -0
  259. /package/.next/server/chunks/{[root-of-the-server]__0866q87._.js.map → [root-of-the-server]__0xa4dzi._.js.map} +0 -0
  260. /package/.next/static/{DcqlVrgh4gM8jlqrnOCpT → _Y03MiN6NI16Ms86q6vCJ}/_buildManifest.js +0 -0
  261. /package/.next/static/{DcqlVrgh4gM8jlqrnOCpT → _Y03MiN6NI16Ms86q6vCJ}/_clientMiddlewareManifest.js +0 -0
  262. /package/.next/static/{DcqlVrgh4gM8jlqrnOCpT → _Y03MiN6NI16Ms86q6vCJ}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../node_modules/next/src/server/web/spec-extension/cookies.ts","../../../../node_modules/next/src/server/web/spec-extension/adapters/reflect.ts","../../../../node_modules/next/src/shared/lib/action-revalidation-kind.ts","../../../../node_modules/next/src/server/web/spec-extension/adapters/request-cookies.ts","../../../../node_modules/next/src/client/components/hooks-server-context.ts","../../../../node_modules/next/src/client/components/static-generation-bailout.ts","../../../../node_modules/next/src/shared/lib/promise-with-resolvers.ts","../../../../node_modules/next/src/server/app-render/staged-rendering.ts","../../../../node_modules/next/src/server/dynamic-rendering-utils.ts","../../../../node_modules/next/src/lib/framework/boundary-constants.tsx","../../../../node_modules/next/src/lib/scheduler.ts","../../../../node_modules/next/src/shared/lib/lazy-dynamic/bailout-to-csr.ts","../../../../node_modules/next/src/server/app-render/instant-validation/boundary-constants.ts","../../../../node_modules/next/src/server/app-render/dynamic-rendering.ts","../../../../node_modules/next/src/server/create-deduped-by-callsite-server-error-logger.ts","../../../../node_modules/next/src/server/request/utils.ts","../../../../node_modules/next/src/server/request/cookies.ts","../../../../node_modules/next/src/server/web/spec-extension/adapters/headers.ts","../../../../node_modules/next/src/server/request/headers.ts","../../../../node_modules/next/src/server/request/draft-mode.ts","../../../../node_modules/next/headers.js","../../../../src/lib/i18n/server.ts","../../../../src/lib/i18n/types.ts"],"sourcesContent":["export {\n RequestCookies,\n ResponseCookies,\n stringifyCookie,\n} from 'next/dist/compiled/@edge-runtime/cookies'\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","export type ActionRevalidationKind = 0 | 1 | 2\n\nexport const ActionDidNotRevalidate = 0\nexport const ActionDidRevalidateStaticAndDynamic = 1\nexport const ActionDidRevalidateDynamicOnly = 2\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\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","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 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 { InvariantError } from '../../shared/lib/invariant-error'\nimport { createPromiseWithResolvers } from '../../shared/lib/promise-with-resolvers'\n\nexport enum RenderStage {\n Before = 1,\n EarlyStatic = 2,\n Static = 3,\n EarlyRuntime = 4,\n Runtime = 5,\n Dynamic = 6,\n Abandoned = 7,\n}\n\nexport type AdvanceableRenderStage =\n | RenderStage.Static\n | RenderStage.EarlyRuntime\n | RenderStage.Runtime\n | RenderStage.Dynamic\n\nexport class StagedRenderingController {\n currentStage: RenderStage = RenderStage.Before\n\n syncInterruptReason: Error | null = null\n staticStageEndTime: number = Infinity\n runtimeStageEndTime: number = Infinity\n\n private staticStageListeners: Array<() => void> = []\n private earlyRuntimeStageListeners: Array<() => void> = []\n private runtimeStageListeners: Array<() => void> = []\n private dynamicStageListeners: Array<() => void> = []\n\n private staticStagePromise = createPromiseWithResolvers<void>()\n private earlyRuntimeStagePromise = createPromiseWithResolvers<void>()\n private runtimeStagePromise = createPromiseWithResolvers<void>()\n private dynamicStagePromise = createPromiseWithResolvers<void>()\n\n constructor(\n private abortSignal: AbortSignal | null,\n private abandonController: AbortController | null,\n private shouldTrackSyncIO: boolean\n ) {\n if (abortSignal) {\n abortSignal.addEventListener(\n 'abort',\n () => {\n // Reject all stage promises that haven't already been resolved.\n // If a promise was already resolved via advanceStage, the reject\n // is a no-op. The ignoreReject handler suppresses unhandled\n // rejection warnings for promises that no one is awaiting.\n const { reason } = abortSignal\n this.staticStagePromise.promise.catch(ignoreReject)\n this.staticStagePromise.reject(reason)\n this.earlyRuntimeStagePromise.promise.catch(ignoreReject)\n this.earlyRuntimeStagePromise.reject(reason)\n this.runtimeStagePromise.promise.catch(ignoreReject)\n this.runtimeStagePromise.reject(reason)\n this.dynamicStagePromise.promise.catch(ignoreReject)\n this.dynamicStagePromise.reject(reason)\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 onStage(stage: AdvanceableRenderStage, callback: () => void) {\n if (this.currentStage >= stage) {\n callback()\n } else if (stage === RenderStage.Static) {\n this.staticStageListeners.push(callback)\n } else if (stage === RenderStage.EarlyRuntime) {\n this.earlyRuntimeStageListeners.push(callback)\n } else if (stage === RenderStage.Runtime) {\n this.runtimeStageListeners.push(callback)\n } else if (stage === RenderStage.Dynamic) {\n this.dynamicStageListeners.push(callback)\n } else {\n // This should never happen\n throw new InvariantError(`Invalid render stage: ${stage}`)\n }\n }\n\n shouldTrackSyncInterrupt(): boolean {\n if (!this.shouldTrackSyncIO) {\n return false\n }\n\n switch (this.currentStage) {\n case RenderStage.Before:\n // If we haven't started the render yet, it can't be interrupted.\n return false\n case RenderStage.EarlyStatic:\n case RenderStage.Static:\n return true\n case RenderStage.EarlyRuntime:\n // EarlyRuntime is for runtime-prefetchable segments. Sync IO\n // should error because it would abort a runtime prefetch.\n return true\n case RenderStage.Runtime:\n // Runtime is for non-prefetchable segments. Sync IO is fine there\n // because in practice this segment will never be runtime prefetched\n return false\n case RenderStage.Dynamic:\n case RenderStage.Abandoned:\n return false\n default:\n return false\n }\n }\n\n syncInterruptCurrentStageWithReason(reason: Error) {\n if (this.currentStage === RenderStage.Before) {\n return\n }\n\n // If the render has already been abandoned, there's nothing to interrupt.\n if (this.currentStage === RenderStage.Abandoned) {\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 switch (this.currentStage) {\n case RenderStage.EarlyStatic:\n case RenderStage.Static:\n case RenderStage.EarlyRuntime: {\n // EarlyRuntime is for runtime-prefetchable segments. Sync IO here\n // means the prefetch would be aborted too early.\n this.syncInterruptReason = reason\n this.advanceStage(RenderStage.Dynamic)\n return\n }\n case RenderStage.Runtime: {\n // canSyncInterrupt returns false for Runtime, so we should\n // never get here. Defensive no-op.\n return\n }\n case RenderStage.Dynamic:\n default:\n }\n }\n\n getSyncInterruptReason() {\n return this.syncInterruptReason\n }\n\n getStaticStageEndTime() {\n return this.staticStageEndTime\n }\n\n getRuntimeStageEndTime() {\n return this.runtimeStageEndTime\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 const { currentStage } = this\n switch (currentStage) {\n case RenderStage.EarlyStatic: {\n this.resolveStaticStage()\n }\n // intentional fallthrough\n case RenderStage.Static: {\n this.resolveEarlyRuntimeStage()\n }\n // intentional fallthrough\n case RenderStage.EarlyRuntime: {\n this.resolveRuntimeStage()\n }\n // intentional fallthrough\n case RenderStage.Runtime: {\n this.currentStage = RenderStage.Abandoned\n return\n }\n case RenderStage.Dynamic:\n case RenderStage.Before:\n case RenderStage.Abandoned:\n break\n default: {\n currentStage satisfies never\n }\n }\n }\n\n advanceStage(\n stage:\n | RenderStage.EarlyStatic\n | RenderStage.Static\n | RenderStage.EarlyRuntime\n | RenderStage.Runtime\n | RenderStage.Dynamic\n ) {\n // If we're already at the target stage or beyond, do nothing.\n // (this can happen e.g. if sync IO advanced us to the dynamic stage)\n if (stage <= this.currentStage) {\n return\n }\n\n let currentStage = this.currentStage\n this.currentStage = stage\n\n if (currentStage < RenderStage.Static && stage >= RenderStage.Static) {\n this.resolveStaticStage()\n }\n if (\n currentStage < RenderStage.EarlyRuntime &&\n stage >= RenderStage.EarlyRuntime\n ) {\n this.resolveEarlyRuntimeStage()\n }\n if (currentStage < RenderStage.Runtime && stage >= RenderStage.Runtime) {\n this.staticStageEndTime = performance.now() + performance.timeOrigin\n this.resolveRuntimeStage()\n }\n if (currentStage < RenderStage.Dynamic && stage >= RenderStage.Dynamic) {\n this.runtimeStageEndTime = performance.now() + performance.timeOrigin\n this.resolveDynamicStage()\n return\n }\n }\n\n /** Fire the `onStage` listeners for the static stage and unblock any promises waiting for it. */\n private resolveStaticStage() {\n const staticListeners = this.staticStageListeners\n for (let i = 0; i < staticListeners.length; i++) {\n staticListeners[i]()\n }\n staticListeners.length = 0\n this.staticStagePromise.resolve()\n }\n\n /** Fire the `onStage` listeners for the early runtime stage and unblock any promises waiting for it. */\n private resolveEarlyRuntimeStage() {\n const earlyRuntimeListeners = this.earlyRuntimeStageListeners\n for (let i = 0; i < earlyRuntimeListeners.length; i++) {\n earlyRuntimeListeners[i]()\n }\n earlyRuntimeListeners.length = 0\n this.earlyRuntimeStagePromise.resolve()\n }\n\n /** Fire the `onStage` listeners for the runtime stage and unblock any promises waiting for it. */\n private resolveRuntimeStage() {\n const runtimeListeners = this.runtimeStageListeners\n for (let i = 0; i < runtimeListeners.length; i++) {\n runtimeListeners[i]()\n }\n runtimeListeners.length = 0\n this.runtimeStagePromise.resolve()\n }\n\n /** Fire the `onStage` listeners for the dynamic stage and unblock any promises waiting for it. */\n private resolveDynamicStage() {\n const dynamicListeners = this.dynamicStageListeners\n for (let i = 0; i < dynamicListeners.length; i++) {\n dynamicListeners[i]()\n }\n dynamicListeners.length = 0\n this.dynamicStagePromise.resolve()\n }\n\n private getStagePromise(stage: AdvanceableRenderStage): Promise<void> {\n switch (stage) {\n case RenderStage.Static: {\n return this.staticStagePromise.promise\n }\n case RenderStage.EarlyRuntime: {\n return this.earlyRuntimeStagePromise.promise\n }\n case RenderStage.Runtime: {\n return this.runtimeStagePromise.promise\n }\n case RenderStage.Dynamic: {\n return this.dynamicStagePromise.promise\n }\n default: {\n stage satisfies never\n throw new InvariantError(`Invalid render stage: ${stage}`)\n }\n }\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 ) {\n const ioTriggerPromise = this.getStagePromise(stage)\n\n const promise = makeDevtoolsIOPromiseFromIOTrigger(\n ioTriggerPromise,\n displayName,\n resolvedValue\n )\n\n // Analogously to `makeHangingPromise`, 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 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","import {\n RenderStage,\n type AdvanceableRenderStage,\n type StagedRenderingController,\n} from './app-render/staged-rendering'\nimport type {\n PrerenderStoreModernRuntime,\n RequestStore,\n} from './app-render/work-unit-async-storage.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\ntype AbortListeners = Array<(err: unknown) => void>\nconst abortListenersBySignal = new WeakMap<AbortSignal, AbortListeners>()\n\n/**\n * This function constructs a promise that will never resolve. This is primarily\n * useful for cacheComponents where we use promise resolution timing to determine which\n * parts of a render can be included in a prerender.\n *\n * @internal\n */\nexport function makeHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string\n): Promise<T> {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(route, expression))\n } else {\n const hangingPromise = new Promise<T>((_, reject) => {\n const boundRejection = reject.bind(\n null,\n new HangingPromiseRejectionError(route, expression)\n )\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\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 * Returns the appropriate runtime stage for the current point in the render.\n * Runtime-prefetchable segments render in the early stages and should wait\n * for EarlyRuntime. Non-prefetchable segments render in the later stages\n * and should wait for Runtime.\n */\nexport function getRuntimeStage(\n stagedRendering: StagedRenderingController\n): RenderStage.EarlyRuntime | RenderStage.Runtime {\n if (\n stagedRendering.currentStage === RenderStage.EarlyStatic ||\n stagedRendering.currentStage === RenderStage.EarlyRuntime\n ) {\n return RenderStage.EarlyRuntime\n }\n return RenderStage.Runtime\n}\n\n/**\n * Delays until the appropriate runtime stage based on the current stage of\n * the rendering pipeline:\n *\n * - Early stages → wait for EarlyRuntime\n * (for runtime-prefetchable segments)\n * - Later stages → wait for Runtime\n * (for segments not using runtime prefetch)\n *\n * This ensures that cookies()/headers()/etc. resolve at the right time for\n * each segment type.\n */\nexport function delayUntilRuntimeStage<T>(\n prerenderStore: PrerenderStoreModernRuntime,\n result: Promise<T>\n): Promise<T> {\n const { stagedRendering } = prerenderStore\n if (!stagedRendering) {\n return result\n }\n return stagedRendering\n .waitForStage(getRuntimeStage(stagedRendering))\n .then(() => result)\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","// This has to be a shared module which is shared between client component error boundary and dynamic component\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'\n\n/** An error that should be thrown when we want to bail out to client-side rendering. */\nexport class BailoutToCSRError extends Error {\n public readonly digest = BAILOUT_TO_CSR\n\n constructor(public readonly reason: string) {\n super(`Bail out to client-side rendering: ${reason}`)\n }\n}\n\n/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */\nexport function isBailoutToCSRError(err: unknown): err is BailoutToCSRError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === BAILOUT_TO_CSR\n}\n","export const INSTANT_VALIDATION_BOUNDARY_NAME =\n '__next_instant_validation_boundary__'\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 '../app-render/work-async-storage.external'\nimport type {\n WorkUnitStore,\n PrerenderStoreLegacy,\n PrerenderStoreModern,\n ValidationStoreClient,\n} from '../app-render/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 {\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n} from './work-unit-async-storage.external'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { makeHangingPromise, getRuntimeStage } 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 { BailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { INSTANT_VALIDATION_BOUNDARY_NAME } from './instant-validation/boundary-constants'\nimport type { ValidationBoundaryTracking } from './instant-validation/boundary-tracking'\nimport type { InstantValidationSampleTracking } from './instant-validation/instant-samples'\n\nconst hasPostpone = typeof React.unstable_postpone === 'function'\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}\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 }\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\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 'prerender-ppr':\n case 'request':\n case 'generate-static-params':\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-ppr':\n return postponeWithTracking(\n store.route,\n expression,\n workUnitStore.dynamicTracking\n )\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 if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n case 'generate-static-params':\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-ppr':\n case 'prerender-client':\n case 'validation-client':\n case 'generate-static-params':\n break\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\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 abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\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 // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\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\n/**\n * This component will call `React.postpone` that throws the postponed error.\n */\ntype PostponeProps = {\n reason: string\n route: string\n}\nexport function Postpone({ reason, route }: PostponeProps): never {\n const prerenderStore = workUnitAsyncStorage.getStore()\n const dynamicTracking =\n prerenderStore && prerenderStore.type === 'prerender-ppr'\n ? prerenderStore.dynamicTracking\n : null\n postponeWithTracking(route, reason, dynamicTracking)\n}\n\nexport function postponeWithTracking(\n route: string,\n expression: string,\n dynamicTracking: null | DynamicTrackingState\n): never {\n assertPostpone()\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 React.unstable_postpone(createPostponeReason(route, expression))\n}\n\nfunction createPostponeReason(route: string, expression: string) {\n return (\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` +\n `React throws this special object to indicate where. It should not be caught by ` +\n `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`\n )\n}\n\nexport function isDynamicPostpone(err: unknown) {\n if (\n typeof err === 'object' &&\n err !== null &&\n typeof (err as any).message === 'string'\n ) {\n return isDynamicPostponeReason((err as any).message)\n }\n return false\n}\n\nfunction isDynamicPostponeReason(reason: string) {\n return (\n reason.includes(\n 'needs to bail out of prerendering at this point because it used'\n ) &&\n reason.includes(\n 'Learn more: https://nextjs.org/docs/messages/ppr-caught-error'\n )\n )\n}\n\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw new Error(\n 'Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'\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\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw new Error(\n `Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`\n )\n }\n}\n\n/**\n * This is a bit of a hack to allow us to abort a render using a Postpone instance instead of an Error which changes React's\n * abort semantics slightly.\n */\nexport function createRenderInBrowserAbortSignal(): AbortSignal {\n const controller = new AbortController()\n controller.abort(new BailoutToCSRError('Render in Browser'))\n return controller.signal\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: 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 runtime stage,\n // at which point all runtime inputs will be resolved.\n // (otherwise, a runtime prerender might consider `cookies()` hanging\n // even though they'd resolve in the next task.)\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 if (\n // eslint-disable-next-line no-restricted-syntax -- We are discriminating between two different refined types and don't need an addition exhaustive switch here\n workUnitStore.type === 'prerender-runtime' &&\n workUnitStore.stagedRendering\n ) {\n const { stagedRendering } = workUnitStore\n stagedRendering\n .waitForStage(getRuntimeStage(stagedRendering))\n .then(() => scheduleOnNextTick(() => controller.abort()))\n } else {\n scheduleOnNextTick(() => controller.abort())\n }\n }\n\n return controller.signal\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'generate-static-params':\n return undefined\n default:\n workUnitStore satisfies never\n }\n}\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\nexport function useDynamicRouteParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workStore && workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-client':\n case 'prerender': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n\n if (fallbackParams && fallbackParams.size > 0) {\n // We are in a prerender with cacheComponents semantics. We are going to\n // hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole.\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n }\n break\n }\n case 'prerender-ppr': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n if (fallbackParams && fallbackParams.size > 0) {\n return postponeWithTracking(\n workStore.route,\n expression,\n workUnitStore.dynamicTracking\n )\n }\n break\n }\n case 'validation-client': {\n // Don't check fallbackRouteParams here. We handle params that weren't\n // provided in the samples using a proxy that throws when accessed.\n break\n }\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'generate-static-params':\n throw new InvariantError(\n `\\`${expression}\\` was called in \\`generateStaticParams\\`. Next.js should be preventing ${expression} from being included in server component files statically, but did not in this case.`\n )\n case 'prerender-legacy':\n case 'request':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\nexport function useDynamicSearchParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore) {\n // We assume pages router context and just return\n return\n }\n\n if (!workUnitStore) {\n throwForMissingRequestStore(expression)\n }\n\n switch (workUnitStore.type) {\n case 'validation-client':\n // During instant validation we try to behave as close to client as possible,\n // so this shouldn't hang during SSR.\n return\n case 'prerender-client': {\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n break\n }\n case 'prerender-legacy':\n case 'prerender-ppr': {\n if (workStore.forceStatic) {\n return\n }\n throw new BailoutToCSRError(expression)\n }\n case 'prerender':\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'unstable-cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'generate-static-params':\n throw new InvariantError(\n `\\`${expression}\\` was called in \\`generateStaticParams\\`. Next.js should be preventing ${expression} from being included in server component files statically, but did not in this case.`\n )\n case 'request':\n return\n default:\n workUnitStore satisfies never\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)\n\nexport function trackAllowedDynamicAccess(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\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 } 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 (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message =\n `Route \"${workStore.route}\": Uncached data was accessed outside of ` +\n '<Suspense>. This delays the entire page from rendering, resulting in a ' +\n 'slow user experience. Learn more: ' +\n 'https://nextjs.org/docs/messages/blocking-route'\n const error = addErrorContext(new Error(message), componentStack, null)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\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 dynamic data. */\n Dynamic = 2,\n}\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 createInstantStack: (() => Error) | null\n}\n\nexport function createInstantValidationState(\n createInstantStack: (() => 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 createInstantStack,\n }\n}\n\nexport function trackDynamicHoleInNavigation(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: InstantValidationState,\n clientDynamic: DynamicTrackingState,\n kind: DynamicHoleKind,\n boundaryState: ValidationBoundaryTracking\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 if (hasMetadataRegex.test(componentStack)) {\n const usageDescription =\n kind === DynamicHoleKind.Runtime\n ? `Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateMetadata\\` or you have file-based metadata such as icons that depend on dynamic params segments.`\n : `Uncached data or \\`connection()\\` was accessed inside \\`generateMetadata\\`.`\n const message = `Route \"${workStore.route}\": ${usageDescription} Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = addErrorContext(\n new Error(message),\n componentStack,\n dynamicValidation.createInstantStack\n )\n dynamicValidation.dynamicMetadata = error\n return\n }\n if (hasViewportRegex.test(componentStack)) {\n const usageDescription =\n kind === DynamicHoleKind.Runtime\n ? `Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateViewport\\`.`\n : `Uncached data or \\`connection()\\` was accessed inside \\`generateViewport\\`.`\n const message = `Route \"${workStore.route}\": ${usageDescription} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = addErrorContext(\n new Error(message),\n componentStack,\n dynamicValidation.createInstantStack\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 (boundaryState.expectedIds.size === boundaryState.renderedIds.size) {\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 \\`unstable_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 dynamicValidation.createInstantStack\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 (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n const syncError = clientDynamic.syncDynamicErrorWithStack\n if (\n dynamicValidation.createInstantStack !== null &&\n syncError.cause === undefined\n ) {\n syncError.cause = dynamicValidation.createInstantStack()\n }\n dynamicValidation.dynamicErrors.push(syncError)\n return\n }\n\n const usageDescription =\n kind === DynamicHoleKind.Runtime\n ? `Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed outside of \\`<Suspense>\\`.`\n : `Uncached data or \\`connection()\\` was accessed outside of \\`<Suspense>\\`.`\n const message = `Route \"${workStore.route}\": ${usageDescription} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = addErrorContext(\n new Error(message),\n componentStack,\n dynamicValidation.createInstantStack\n )\n dynamicValidation.dynamicErrors.push(error)\n return\n}\n\nexport function trackThrownErrorInNavigation(\n workStore: WorkStore,\n dynamicValidation: InstantValidationState,\n thrownValue: unknown,\n componentStack: string\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 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 const message = `Route \"${workStore.route}\": Could not validate \\`unstable_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 trackDynamicHoleInRuntimeShell(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\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 } else if (hasMetadataRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed inside \\`generateMetadata\\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = addErrorContext(new Error(message), componentStack, null)\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n // TODO(instant-validation): If the page only has holes caused by runtime data,\n // we won't find out if there's a suspense-above-body and error for dynamic viewport\n // even if there is in fact a suspense-above-body\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed inside \\`generateViewport\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = addErrorContext(new Error(message), componentStack, null)\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 (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n }\n\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed outside of \\`<Suspense>\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = addErrorContext(new Error(message), componentStack, null)\n dynamicValidation.dynamicErrors.push(error)\n return\n}\n\nexport function trackDynamicHoleInStaticShell(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\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 } else if (hasMetadataRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateMetadata\\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = addErrorContext(new Error(message), componentStack, null)\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateViewport\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = addErrorContext(new Error(message), componentStack, null)\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 (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed outside of \\`<Suspense>\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = addErrorContext(new Error(message), componentStack, null)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n *\n * Accepts an already-created Error so the SWC error-code plugin can see the\n * `new Error(...)` call at each call site and auto-assign error codes.\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\n if (process.env.NODE_ENV !== 'development') {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`)\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 \"${workStore.route}\" in your browser to investigate the error.`\n )\n }\n}\n\nexport function throwIfDisallowedDynamic(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n serverDynamic: DynamicTrackingState\n): void {\n if (serverDynamic.syncDynamicErrorWithStack) {\n logDisallowedDynamicError(\n workStore,\n serverDynamic.syncDynamicErrorWithStack\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude !== PreludeState.Full) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return\n }\n\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 `Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\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 } else {\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.hasDynamicMetadata\n ) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n )\n throw new StaticGenBailoutError()\n }\n }\n}\n\nexport function getStaticShellDisallowedDynamicReasons(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n configAllowsBlocking: boolean\n): Array<Error> {\n if (configAllowsBlocking || dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\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 } else {\n // We have a prelude but we might still have dynamic metadata without any other dynamic access\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.dynamicErrors.length === 0 &&\n dynamicValidation.dynamicMetadata\n ) {\n return [dynamicValidation.dynamicMetadata]\n }\n }\n // We had a non-empty prelude and there are no dynamic holes\n return []\n}\n\nexport function getNavigationDisallowedDynamicReasons(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: InstantValidationState,\n validationSampleTracking: InstantValidationSampleTracking | null,\n boundaryState: ValidationBoundaryTracking\n): Array<Error> {\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 return validationPreventingErrors\n }\n\n if (boundaryState.renderedIds.size < boundaryState.expectedIds.size) {\n const { thrownErrorsOutsideBoundary, createInstantStack } =\n dynamicValidation\n if (thrownErrorsOutsideBoundary.length === 0) {\n const message = `Route \"${workStore.route}\": Could not validate \\`unstable_instant\\` because the target segment was prevented from rendering for an unknown reason.`\n const error =\n createInstantStack !== null ? createInstantStack() : new Error()\n error.name = 'Error'\n error.message = message\n return [error]\n } else if (thrownErrorsOutsideBoundary.length === 1) {\n const message = `Route \"${workStore.route}\": Could not validate \\`unstable_instant\\` because the target segment was prevented from rendering, likely due to the following error.`\n const error =\n createInstantStack !== null ? createInstantStack() : new Error()\n error.name = 'Error'\n error.message = message\n return [error, thrownErrorsOutsideBoundary[0] as Error]\n } else {\n const message = `Route \"${workStore.route}\": Could not validate \\`unstable_instant\\` because the target segment was prevented from rendering, likely due to one of the following errors.`\n const error =\n createInstantStack !== null ? createInstantStack() : new Error()\n error.name = 'Error'\n error.message = message\n return [error, ...(thrownErrorsOutsideBoundary as Error[])]\n }\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 (prelude === PreludeState.Empty) {\n // If a client component suspended prevented us from rendering a shell\n // but didn't block validation, we don't require a prelude.\n if (dynamicValidation.hasAllowedClientDynamicAboveBoundary) {\n return []\n }\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n return [\n new InvariantError(\n `Route \"${workStore.route}\" failed to render during instant validation and Next.js was unable to determine a reason.`\n ),\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 // We had a non-empty prelude and there are no dynamic holes\n return []\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 { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { afterTaskAsyncStorage } from '../app-render/after-task-async-storage.external'\nimport type { WorkStore } from '../app-render/work-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 = new Error(\n `Route ${workStore.route} used \\`searchParams\\` inside \"use cache\". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \\`searchParams\\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n\n Error.captureStackTrace(error, constructorOpt)\n workStore.invalidDynamicUsageError ??= error\n\n throw error\n}\n\nexport function isRequestAPICallableInsideAfter() {\n const afterTaskStore = afterTaskAsyncStorage.getStore()\n return afterTaskStore?.rootTaskSpawnPhase === 'action'\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 isInEarlyRenderStage,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n postponeWithTracking,\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n delayUntilRuntimeStage,\n makeDevtoolsIOAwarePromise,\n makeHangingPromise,\n} from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { isRequestAPICallableInsideAfter } from './utils'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { RenderStage } from '../app-render/staged-rendering'\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 (\n workUnitStore &&\n workUnitStore.phase === 'after' &&\n !isRequestAPICallableInsideAfter()\n ) {\n throw new Error(\n // TODO(after): clarify that this only applies to pages?\n `Route ${workStore.route} used \\`cookies()\\` inside \\`after()\\`. 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/canary/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 = new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`cookies()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, cookies)\n workStore.invalidDynamicUsageError ??= error\n throw error\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside a function cached with \\`unstable_cache()\\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`cookies()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n case 'generate-static-params':\n throw new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` 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-ppr':\n // We need track dynamic access here eagerly to keep continuity with\n // how cookies has worked in PPR without cacheComponents.\n return postponeWithTracking(\n workStore.route,\n callingExpression,\n workUnitStore.dynamicTracking\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 return delayUntilRuntimeStage(\n workUnitStore,\n makeUntrackedCookies(workUnitStore.cookies)\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 const early = isInEarlyRenderStage(workUnitStore)\n if (underlyingCookies === workUnitStore.mutableCookies) {\n return early\n ? workUnitStore.asyncApiPromises.earlyMutableCookies\n : workUnitStore.asyncApiPromises.mutableCookies\n } else {\n return early\n ? workUnitStore.asyncApiPromises.earlyCookies\n : 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 = makeHangingPromise<ReadonlyRequestCookies>(\n prerenderStore.renderSignal,\n workStore.route,\n '`cookies()`'\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 const early = isInEarlyRenderStage(requestStore)\n let promise: Promise<ReadonlyRequestCookies>\n if (underlyingCookies === requestStore.mutableCookies) {\n promise = early\n ? requestStore.asyncApiPromises.earlyMutableCookies\n : requestStore.asyncApiPromises.mutableCookies\n } else if (underlyingCookies === requestStore.cookies) {\n promise = early\n ? requestStore.asyncApiPromises.earlyCookies\n : 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 RenderStage.Runtime\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 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}\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 public static seal(headers: Headers): ReadonlyHeaders {\n return 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 default:\n return ReflectAdapter.get(target, prop, receiver)\n }\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","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 isInEarlyRenderStage,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n postponeWithTracking,\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n delayUntilRuntimeStage,\n makeDevtoolsIOAwarePromise,\n makeHangingPromise,\n} from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { isRequestAPICallableInsideAfter } from './utils'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { RenderStage } from '../app-render/staged-rendering'\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 (\n workUnitStore &&\n workUnitStore.phase === 'after' &&\n !isRequestAPICallableInsideAfter()\n ) {\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \\`after()\\`. 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/canary/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 = new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`headers()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, headers)\n workStore.invalidDynamicUsageError ??= error\n throw error\n }\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside a function cached with \\`unstable_cache()\\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`headers()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n case 'generate-static-params':\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` 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-ppr':\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-ppr':\n // PPR Prerender (no cacheComponents)\n // We are prerendering with PPR. We need track dynamic access here eagerly\n // to keep continuity with how headers has worked in PPR without cacheComponents.\n // TODO consider switching the semantic to throw on property access instead\n return postponeWithTracking(\n workStore.route,\n callingExpression,\n workUnitStore.dynamicTracking\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 return delayUntilRuntimeStage(\n workUnitStore,\n makeUntrackedHeaders(workUnitStore.headers)\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 isInEarlyRenderStage(workUnitStore)\n ? workUnitStore.asyncApiPromises.earlyHeaders\n : 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 = makeHangingPromise<ReadonlyHeaders>(\n prerenderStore.renderSignal,\n workStore.route,\n '`headers()`'\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 const promise = isInEarlyRenderStage(requestStore)\n ? requestStore.asyncApiPromises.earlyHeaders\n : requestStore.asyncApiPromises.headers\n return instrumentHeadersPromiseWithDevWarnings(promise, route)\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 RenderStage.Runtime\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 {\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 postponeWithTracking,\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 { delayUntilRuntimeStage } from '../dynamic-rendering-utils'\nimport { ReflectAdapter } from '../web/spec-extension/adapters/reflect'\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 return delayUntilRuntimeStage(\n workUnitStore,\n createOrGetCachedDraftMode(workUnitStore.draftMode, workStore)\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-ppr':\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 'generate-static-params':\n throw new Error(\n `Route ${workStore.route} used \\`${callingExpression}()\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` 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 = new Error(\n `Route ${workStore.route} used \"${expression}\" inside \"use cache\". The enabled status of \\`draftMode()\\` can be read in caches but you must not enable or disable \\`draftMode()\\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, constructorOpt)\n workStore.invalidDynamicUsageError ??= error\n throw error\n }\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \"${expression}\" inside a function cached with \\`unstable_cache()\\`. The enabled status of \\`draftMode()\\` can be read in caches but you must not enable or disable \\`draftMode()\\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\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-ppr':\n return postponeWithTracking(\n workStore.route,\n expression,\n workUnitStore.dynamicTracking\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 'generate-static-params':\n throw new Error(\n `Route ${workStore.route} used \\`${expression}\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` 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","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","// Server-only helper. Reads the locale cookie inside RSC / route handlers.\n\nimport 'server-only';\nimport { cookies } from 'next/headers';\nimport { LOCALE_COOKIE, normalizeLocale, type Locale } from './types';\n\nexport async function getServerLocale(): Promise<Locale> {\n const store = await cookies();\n return normalizeLocale(store.get(LOCALE_COOKIE)?.value);\n}\n","// Locale types + constants. Default Chinese — toggle via cookie + header switcher.\n\nexport type Locale = 'zh' | 'en';\nexport const LOCALES: readonly Locale[] = ['zh', 'en'] as const;\nexport const DEFAULT_LOCALE: Locale = 'zh';\nexport const LOCALE_COOKIE = 'vibemeter_locale';\n\nexport function isLocale(v: unknown): v is Locale {\n return v === 'zh' || v === 'en';\n}\n\nexport function normalizeLocale(v: unknown): Locale {\n return isLocale(v) ? v : DEFAULT_LOCALE;\n}\n"],"names":["RequestCookies","ResponseCookies","stringifyCookie","ReflectAdapter","get","target","prop","receiver","value","Reflect","bind","set","has","deleteProperty","ActionDidNotRevalidate","ActionDidRevalidateDynamicOnly","ActionDidRevalidateStaticAndDynamic","MutableRequestCookiesAdapter","ReadonlyRequestCookiesError","RequestCookiesAdapter","appendMutableCookies","areCookiesMutableInCurrentPhase","createCookiesWithMutableAccessCheck","getModifiedCookieValues","responseCookiesToRequestCookies","Error","constructor","callable","seal","cookies","Proxy","SYMBOL_MODIFY_COOKIE_VALUES","Symbol","for","modified","Array","isArray","length","headers","mutableCookies","modifiedCookieValues","resCookies","returnedCookies","getAll","cookie","wrap","onUpdateCookies","responseCookies","Headers","modifiedValues","modifiedCookies","Set","updateResponseCookies","workStore","workAsyncStorage","getStore","pathWasRevalidated","allCookies","filter","c","name","serializedCookies","tempCookies","push","toString","wrappedCookies","args","add","delete","requestStore","ensureCookiesAreStillMutable","phase","_callingExpression","requestCookies","DynamicServerError","isDynamicServerError","DYNAMIC_ERROR_CODE","description","digest","err","StaticGenBailoutError","isStaticGenBailoutError","NEXT_STATIC_GEN_BAILOUT","code","error","createPromiseWithResolvers","resolve","reject","promise","Promise","res","rej","RenderStage","StagedRenderingController","abortSignal","abandonController","shouldTrackSyncIO","currentStage","syncInterruptReason","staticStageEndTime","Infinity","runtimeStageEndTime","staticStageListeners","earlyRuntimeStageListeners","runtimeStageListeners","dynamicStageListeners","staticStagePromise","earlyRuntimeStagePromise","runtimeStagePromise","dynamicStagePromise","addEventListener","reason","catch","ignoreReject","once","signal","abandonRender","onStage","stage","callback","InvariantError","shouldTrackSyncInterrupt","syncInterruptCurrentStageWithReason","abort","advanceStage","getSyncInterruptReason","getStaticStageEndTime","getRuntimeStageEndTime","resolveStaticStage","resolveEarlyRuntimeStage","resolveRuntimeStage","performance","now","timeOrigin","resolveDynamicStage","staticListeners","i","earlyRuntimeListeners","runtimeListeners","dynamicListeners","getStagePromise","waitForStage","delayUntilStage","displayName","resolvedValue","ioTriggerPromise","makeDevtoolsIOPromiseFromIOTrigger","ioTrigger","then","undefined","delayUntilRuntimeStage","getRuntimeStage","isHangingPromiseRejectionError","makeDevtoolsIOAwarePromise","makeHangingPromise","HANGING_PROMISE_REJECTION","HangingPromiseRejectionError","route","expression","abortListenersBySignal","WeakMap","aborted","hangingPromise","_","boundRejection","currentListeners","listeners","underlying","stagedRendering","setTimeout","EarlyStatic","EarlyRuntime","Runtime","prerenderStore","result","METADATA_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME","ROOT_LAYOUT_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME","atLeastOneTask","scheduleImmediate","scheduleOnNextTick","waitAtLeastOneReactRenderTask","cb","process","env","NEXT_RUNTIME","nextTick","setImmediate","r","BailoutToCSRError","isBailoutToCSRError","BAILOUT_TO_CSR","INSTANT_VALIDATION_BOUNDARY_NAME","DynamicHoleKind","Postpone","PreludeState","abortAndThrowOnSynchronousRequestDataAccess","abortOnSynchronousPlatformIOAccess","accessedDynamicData","annotateDynamicAccess","consumeDynamicAccess","createDynamicTrackingState","createDynamicValidationState","createHangingInputAbortSignal","createInstantValidationState","createRenderInBrowserAbortSignal","formatDynamicAPIAccesses","getFirstDynamicReason","getNavigationDisallowedDynamicReasons","getStaticShellDisallowedDynamicReasons","isDynamicPostpone","isPrerenderInterruptedError","logDisallowedDynamicError","markCurrentScopeAsDynamic","postponeWithTracking","throwIfDisallowedDynamic","throwToInterruptStaticGeneration","trackAllowedDynamicAccess","trackDynamicDataInDynamicRender","trackDynamicHoleInNavigation","trackDynamicHoleInRuntimeShell","trackDynamicHoleInStaticShell","trackThrownErrorInNavigation","useDynamicRouteParams","useDynamicSearchParams","hasPostpone","React","unstable_postpone","isDebugDynamicAccesses","dynamicAccesses","syncDynamicErrorWithStack","hasSuspenseAboveBody","hasDynamicMetadata","dynamicMetadata","hasDynamicViewport","hasAllowedDynamic","dynamicErrors","trackingState","store","workUnitStore","type","forceDynamic","forceStatic","dynamicShouldError","dynamicTracking","revalidate","dynamicUsageDescription","dynamicUsageStack","stack","NODE_ENV","usedDynamic","abortOnSynchronousDynamicDataAccess","createPrerenderInterruptedError","controller","errorWithStack","prerenderSignal","workUnitAsyncStorage","assertPostpone","createPostponeReason","message","isDynamicPostponeReason","includes","NEXT_PRERENDER_INTERRUPTED","serverDynamic","clientDynamic","access","map","split","slice","line","join","AbortController","cacheSignal","inputReady","fallbackParams","fallbackRouteParams","size","use","renderSignal","throwForMissingRequestStore","hasSuspenseRegex","bodyAndImplicitTags","hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex","RegExp","hasMetadataRegex","hasViewportRegex","hasOutletRegex","hasInstantValidationBoundaryRegex","componentStack","dynamicValidation","test","addErrorContext","createInstantStack","hasAllowedClientDynamicAboveBoundary","validationPreventingErrors","thrownErrorsOutsideBoundary","kind","boundaryState","usageDescription","boundaryLocation","exec","expectedIds","renderedIds","suspenseLocation","index","syncError","cause","thrownValue","ownerStack","captureOwnerStack","console","__NEXT_DEV_SERVER","prelude","configAllowsBlocking","validationSampleTracking","missingSampleErrors","createDedupedByCallsiteServerErrorLoggerDev","errorRef","current","cache","fn","logErrorOrWarn","__NEXT_CACHE_COMPONENTS","warn","flushCurrentErrorIfNew","key","getMessage","logDedupedError","callStackFrames","isRequestAPICallableInsideAfter","throwForSearchParamsAccessInUseCache","throwWithStaticGenerationBailoutErrorWithDynamicError","constructorOpt","captureStackTrace","invalidDynamicUsageError","afterTaskStore","afterTaskAsyncStorage","rootTaskSpawnPhase","callingExpression","underlyingCookies","createEmptyCookies","makeUntrackedCookies","makeHangingCookies","exportName","userspaceMutableCookies","makeUntrackedCookiesWithDevWarnings","asyncApiPromises","early","isInEarlyRenderStage","earlyMutableCookies","earlyCookies","CachedCookies","cachedPromise","cachedCookies","instrumentCookiesPromiseWithDevWarnings","proxiedPromise","warnForSyncAccess","createCookiesAccessError","Object","defineProperties","iterator","replaceableWarningDescriptorForSymbolIterator","replaceableWarningDescriptor","clear","enumerable","defineProperty","writable","configurable","prefix","HeadersAdapter","ReadonlyHeadersError","lowercased","toLowerCase","original","keys","find","o","merge","from","append","existing","forEach","callbackfn","thisArg","entries","call","values","underlyingHeaders","makeUntrackedHeaders","makeHangingHeaders","makeUntrackedHeadersWithDevWarnings","earlyHeaders","CachedHeaders","cachedHeaders","instrumentHeadersPromiseWithDevWarnings","createHeadersAccessError","getSetCookie","draftMode","createOrGetCachedDraftMode","draftModeProvider","getDraftModeProviderForCacheScope","cacheKey","NullDraftMode","cachedDraftMode","CachedDraftModes","isPrefetchRequest","createDraftModeWithDevWarnings","DraftMode","underlyingProvider","instance","provider","_provider","isEnabled","enable","trackDynamicDraftMode","disable","createDraftModeAccessError","module","exports","LOCALES","DEFAULT_LOCALE","LOCALE_COOKIE","isLocale","v","normalizeLocale"],"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]}
@@ -0,0 +1,3 @@
1
+ module.exports=[60236,a=>{"use strict";a.s([])}];
2
+
3
+ //# sourceMappingURL=_next-internal_server_app_float_page_actions_0x6hm4p.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ module.exports=[76120,a=>{"use strict";a.s([])}];
2
+
3
+ //# sourceMappingURL=_next-internal_server_app_settings_page_actions_0mr68ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ module.exports=[33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}}];
2
+
3
+ //# sourceMappingURL=node_modules_%40swc_helpers_cjs__interop_require_default_cjs_11~q6fv._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../node_modules/%40swc/helpers/cjs/_interop_require_default.cjs"],"sourcesContent":["\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n"],"names":["_interop_require_default","obj","__esModule","default","exports","_"],"mappings":"6CAKAI,EAAQC,CAAC,CAHT,EAGYL,OAHHA,AAAyBC,CAAG,EACjC,OAAOA,GAAOA,EAAIC,UAAU,CAAGD,EAAM,CAAEE,QAASF,CAAI,CACxD","ignoreList":[0]}