@semiont/frontend 0.3.2 → 0.3.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 (459) hide show
  1. package/package.json +1 -1
  2. package/standalone/apps/frontend/.next/BUILD_ID +1 -1
  3. package/standalone/apps/frontend/.next/app-path-routes-manifest.json +5 -5
  4. package/standalone/apps/frontend/.next/build-manifest.json +6 -6
  5. package/standalone/apps/frontend/.next/prerender-manifest.json +3 -3
  6. package/standalone/apps/frontend/.next/react-loadable-manifest.json +2 -2
  7. package/standalone/apps/frontend/.next/required-server-files.json +18 -6
  8. package/standalone/apps/frontend/.next/routes-manifest.json +1 -0
  9. package/standalone/apps/frontend/.next/server/app/[locale]/about/page.js +776 -516
  10. package/standalone/apps/frontend/.next/server/app/[locale]/about/page.js.nft.json +1 -1
  11. package/standalone/apps/frontend/.next/server/app/[locale]/about/page_client-reference-manifest.js +1 -1
  12. package/standalone/apps/frontend/.next/server/app/[locale]/admin/devops/page.js +1718 -1455
  13. package/standalone/apps/frontend/.next/server/app/[locale]/admin/devops/page.js.nft.json +1 -1
  14. package/standalone/apps/frontend/.next/server/app/[locale]/admin/devops/page_client-reference-manifest.js +1 -1
  15. package/standalone/apps/frontend/.next/server/app/[locale]/admin/exchange/page.js +724 -461
  16. package/standalone/apps/frontend/.next/server/app/[locale]/admin/exchange/page.js.nft.json +1 -1
  17. package/standalone/apps/frontend/.next/server/app/[locale]/admin/exchange/page_client-reference-manifest.js +1 -1
  18. package/standalone/apps/frontend/.next/server/app/[locale]/admin/page.js +370 -109
  19. package/standalone/apps/frontend/.next/server/app/[locale]/admin/page.js.nft.json +1 -1
  20. package/standalone/apps/frontend/.next/server/app/[locale]/admin/page_client-reference-manifest.js +1 -1
  21. package/standalone/apps/frontend/.next/server/app/[locale]/admin/security/page.js +581 -318
  22. package/standalone/apps/frontend/.next/server/app/[locale]/admin/security/page.js.nft.json +1 -1
  23. package/standalone/apps/frontend/.next/server/app/[locale]/admin/security/page_client-reference-manifest.js +1 -1
  24. package/standalone/apps/frontend/.next/server/app/[locale]/admin/users/page.js +449 -186
  25. package/standalone/apps/frontend/.next/server/app/[locale]/admin/users/page.js.nft.json +1 -1
  26. package/standalone/apps/frontend/.next/server/app/[locale]/admin/users/page_client-reference-manifest.js +1 -1
  27. package/standalone/apps/frontend/.next/server/app/[locale]/auth/error/page.js +430 -168
  28. package/standalone/apps/frontend/.next/server/app/[locale]/auth/error/page.js.nft.json +1 -1
  29. package/standalone/apps/frontend/.next/server/app/[locale]/auth/error/page_client-reference-manifest.js +1 -1
  30. package/standalone/apps/frontend/.next/server/app/[locale]/auth/mcp-setup/route.js +31 -16
  31. package/standalone/apps/frontend/.next/server/app/[locale]/auth/mcp-setup/route.js.nft.json +1 -1
  32. package/standalone/apps/frontend/.next/server/app/[locale]/auth/mcp-setup/route_client-reference-manifest.js +1 -1
  33. package/standalone/apps/frontend/.next/server/app/[locale]/auth/signin/page.js +388 -126
  34. package/standalone/apps/frontend/.next/server/app/[locale]/auth/signin/page.js.nft.json +1 -1
  35. package/standalone/apps/frontend/.next/server/app/[locale]/auth/signin/page_client-reference-manifest.js +1 -1
  36. package/standalone/apps/frontend/.next/server/app/[locale]/auth/signup/page.js +537 -275
  37. package/standalone/apps/frontend/.next/server/app/[locale]/auth/signup/page.js.nft.json +1 -1
  38. package/standalone/apps/frontend/.next/server/app/[locale]/auth/signup/page_client-reference-manifest.js +1 -1
  39. package/standalone/apps/frontend/.next/server/app/[locale]/auth/welcome/page.js +388 -126
  40. package/standalone/apps/frontend/.next/server/app/[locale]/auth/welcome/page.js.nft.json +1 -1
  41. package/standalone/apps/frontend/.next/server/app/[locale]/auth/welcome/page_client-reference-manifest.js +1 -1
  42. package/standalone/apps/frontend/.next/server/app/[locale]/know/compose/page.js +745 -482
  43. package/standalone/apps/frontend/.next/server/app/[locale]/know/compose/page.js.nft.json +1 -1
  44. package/standalone/apps/frontend/.next/server/app/[locale]/know/compose/page_client-reference-manifest.js +1 -1
  45. package/standalone/apps/frontend/.next/server/app/[locale]/know/discover/page.js +366 -103
  46. package/standalone/apps/frontend/.next/server/app/[locale]/know/discover/page.js.nft.json +1 -1
  47. package/standalone/apps/frontend/.next/server/app/[locale]/know/discover/page_client-reference-manifest.js +1 -1
  48. package/standalone/apps/frontend/.next/server/app/[locale]/know/page.js +600 -339
  49. package/standalone/apps/frontend/.next/server/app/[locale]/know/page.js.nft.json +1 -1
  50. package/standalone/apps/frontend/.next/server/app/[locale]/know/page_client-reference-manifest.js +1 -1
  51. package/standalone/apps/frontend/.next/server/app/[locale]/know/resource/[id]/page.js +956 -691
  52. package/standalone/apps/frontend/.next/server/app/[locale]/know/resource/[id]/page.js.nft.json +1 -1
  53. package/standalone/apps/frontend/.next/server/app/[locale]/know/resource/[id]/page_client-reference-manifest.js +1 -1
  54. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/entity-tags/page.js +1699 -1436
  55. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/entity-tags/page.js.nft.json +1 -1
  56. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/entity-tags/page_client-reference-manifest.js +1 -1
  57. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/linked-data/page.js +390 -127
  58. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/linked-data/page.js.nft.json +1 -1
  59. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/linked-data/page_client-reference-manifest.js +1 -1
  60. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/page.js +1779 -1518
  61. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/page.js.nft.json +1 -1
  62. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/page_client-reference-manifest.js +1 -1
  63. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/recent/page.js +1601 -1338
  64. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/recent/page.js.nft.json +1 -1
  65. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/recent/page_client-reference-manifest.js +1 -1
  66. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/tag-schemas/page.js +2048 -1785
  67. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/tag-schemas/page.js.nft.json +1 -1
  68. package/standalone/apps/frontend/.next/server/app/[locale]/moderate/tag-schemas/page_client-reference-manifest.js +1 -1
  69. package/standalone/apps/frontend/.next/server/app/[locale]/page.js +462 -204
  70. package/standalone/apps/frontend/.next/server/app/[locale]/page.js.nft.json +1 -1
  71. package/standalone/apps/frontend/.next/server/app/[locale]/page_client-reference-manifest.js +1 -1
  72. package/standalone/apps/frontend/.next/server/app/[locale]/privacy/page.js +476 -216
  73. package/standalone/apps/frontend/.next/server/app/[locale]/privacy/page.js.nft.json +1 -1
  74. package/standalone/apps/frontend/.next/server/app/[locale]/privacy/page_client-reference-manifest.js +1 -1
  75. package/standalone/apps/frontend/.next/server/app/[locale]/terms/page.js +489 -229
  76. package/standalone/apps/frontend/.next/server/app/[locale]/terms/page.js.nft.json +1 -1
  77. package/standalone/apps/frontend/.next/server/app/[locale]/terms/page_client-reference-manifest.js +1 -1
  78. package/standalone/apps/frontend/.next/server/app/_global-error/page.js +627 -240
  79. package/standalone/apps/frontend/.next/server/app/_global-error/page.js.nft.json +1 -1
  80. package/standalone/apps/frontend/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  81. package/standalone/apps/frontend/.next/server/app/_global-error.html +1 -2
  82. package/standalone/apps/frontend/.next/server/app/_global-error.rsc +13 -9
  83. package/standalone/apps/frontend/.next/server/app/_global-error.segments/_full.segment.rsc +13 -9
  84. package/standalone/apps/frontend/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  85. package/standalone/apps/frontend/.next/server/app/_global-error.segments/_global-error.segment.rsc +2 -1
  86. package/standalone/apps/frontend/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  87. package/standalone/apps/frontend/.next/server/app/_global-error.segments/_index.segment.rsc +2 -1
  88. package/standalone/apps/frontend/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  89. package/standalone/apps/frontend/.next/server/app/_not-found/page.js +814 -559
  90. package/standalone/apps/frontend/.next/server/app/_not-found/page.js.nft.json +1 -1
  91. package/standalone/apps/frontend/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  92. package/standalone/apps/frontend/.next/server/app/_not-found.html +1 -1
  93. package/standalone/apps/frontend/.next/server/app/_not-found.rsc +8 -6
  94. package/standalone/apps/frontend/.next/server/app/_not-found.segments/_full.segment.rsc +8 -6
  95. package/standalone/apps/frontend/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  96. package/standalone/apps/frontend/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  97. package/standalone/apps/frontend/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  98. package/standalone/apps/frontend/.next/server/app/_not-found.segments/_not-found.segment.rsc +2 -1
  99. package/standalone/apps/frontend/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  100. package/standalone/apps/frontend/.next/server/app/api/auth/[...nextauth]/route.js +54 -39
  101. package/standalone/apps/frontend/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
  102. package/standalone/apps/frontend/.next/server/app/api/auth/[...nextauth]/route_client-reference-manifest.js +1 -1
  103. package/standalone/apps/frontend/.next/server/app/api/cookies/consent/route.js +49 -34
  104. package/standalone/apps/frontend/.next/server/app/api/cookies/consent/route.js.nft.json +1 -1
  105. package/standalone/apps/frontend/.next/server/app/api/cookies/consent/route_client-reference-manifest.js +1 -1
  106. package/standalone/apps/frontend/.next/server/app/api/cookies/export/route.js +24 -9
  107. package/standalone/apps/frontend/.next/server/app/api/cookies/export/route.js.nft.json +1 -1
  108. package/standalone/apps/frontend/.next/server/app/api/cookies/export/route_client-reference-manifest.js +1 -1
  109. package/standalone/apps/frontend/.next/server/app/api/resources/[id]/route.js +24 -9
  110. package/standalone/apps/frontend/.next/server/app/api/resources/[id]/route.js.nft.json +1 -1
  111. package/standalone/apps/frontend/.next/server/app/api/resources/[id]/route_client-reference-manifest.js +1 -1
  112. package/standalone/apps/frontend/.next/server/app-paths-manifest.json +5 -5
  113. package/standalone/apps/frontend/.next/server/chunks/2617.js +43 -7
  114. package/standalone/apps/frontend/.next/server/chunks/3144.js +7 -3
  115. package/standalone/apps/frontend/.next/server/chunks/4741.js +60 -252
  116. package/standalone/apps/frontend/.next/server/chunks/730.js +1 -1
  117. package/standalone/apps/frontend/.next/server/chunks/7420.js +21 -288
  118. package/standalone/apps/frontend/.next/server/chunks/7873.js +24 -2
  119. package/standalone/apps/frontend/.next/server/chunks/{7246.js → 8569.js} +1169 -282
  120. package/standalone/apps/frontend/.next/server/chunks/{2628.js → 9927.js} +11422 -4290
  121. package/standalone/apps/frontend/.next/server/middleware-build-manifest.js +1 -1
  122. package/standalone/apps/frontend/.next/server/middleware-react-loadable-manifest.js +1 -1
  123. package/standalone/apps/frontend/.next/server/middleware.js +17991 -10692
  124. package/standalone/apps/frontend/.next/server/pages/404.html +1 -1
  125. package/standalone/apps/frontend/.next/server/pages/500.html +1 -2
  126. package/standalone/apps/frontend/.next/server/prefetch-hints.json +1 -0
  127. package/standalone/apps/frontend/.next/server/server-reference-manifest.json +1 -1
  128. package/standalone/apps/frontend/.next/static/I_XveRdyStDMqYJPcAAy5/_buildManifest.js +1 -0
  129. package/standalone/apps/frontend/.next/static/chunks/1315.3f76aa23520d903e.js +1 -0
  130. package/standalone/apps/frontend/.next/static/chunks/{432.4c1d971431c60454.js → 432.8cb455bfe72957a9.js} +1 -1
  131. package/standalone/apps/frontend/.next/static/chunks/87c73c54-e11922cda838f8cc.js +1 -0
  132. package/standalone/apps/frontend/.next/static/chunks/{891cff7f-c20ce667b1225aa7.js → 891cff7f-d7677a8f46c597cc.js} +1 -1
  133. package/standalone/apps/frontend/.next/static/chunks/app/[locale]/admin/{layout-4b67f7b5d5ba4728.js → layout-956ba0ffa1199bff.js} +1 -1
  134. package/standalone/apps/frontend/.next/static/chunks/app/[locale]/know/{layout-f76e1916749e66f6.js → layout-262d8dd6c6e33738.js} +1 -1
  135. package/standalone/apps/frontend/.next/static/chunks/app/[locale]/{layout-a403fd7a4877cc04.js → layout-c072ce8c7aeaa92e.js} +1 -1
  136. package/standalone/apps/frontend/.next/static/chunks/app/[locale]/moderate/{layout-2d4e9c2be4b4a4c7.js → layout-b60605082e447f42.js} +1 -1
  137. package/standalone/apps/frontend/.next/static/chunks/common-42653c14d34c8864.js +69 -0
  138. package/standalone/apps/frontend/.next/static/chunks/framework-b879567b90d34fb5.js +1 -0
  139. package/standalone/apps/frontend/.next/static/chunks/vendors-63213253c18580f4.js +40 -0
  140. package/standalone/apps/frontend/.next/static/chunks/{webpack-abf2ad17f175f867.js → webpack-a0284d55d288650f.js} +1 -1
  141. package/standalone/apps/frontend/package.json +5 -5
  142. package/standalone/apps/frontend/server.js +1 -1
  143. package/standalone/node_modules/@next/env/package.json +1 -1
  144. package/standalone/node_modules/next/dist/build/adapter/setup-node-env.external.js +15 -0
  145. package/standalone/node_modules/next/dist/build/analysis/extract-const-value.js +78 -63
  146. package/standalone/node_modules/next/dist/build/analysis/get-page-static-info.js +64 -40
  147. package/standalone/node_modules/next/dist/build/create-compiler-aliases.js +2 -0
  148. package/standalone/node_modules/next/dist/build/define-env.js +29 -11
  149. package/standalone/node_modules/next/dist/build/duration-to-string.js +1 -1
  150. package/standalone/node_modules/next/dist/build/entries.js +55 -295
  151. package/standalone/node_modules/next/dist/build/file-classifier.js +76 -0
  152. package/standalone/node_modules/next/dist/build/get-supported-browsers.js +38 -0
  153. package/standalone/node_modules/next/dist/build/load-jsconfig.js +7 -7
  154. package/standalone/node_modules/next/dist/build/lockfile.js +90 -9
  155. package/standalone/node_modules/next/dist/build/next-config-ts/transpile-config.js +128 -49
  156. package/standalone/node_modules/next/dist/build/print-build-errors.js +72 -0
  157. package/standalone/node_modules/next/dist/build/route-discovery.js +353 -0
  158. package/standalone/node_modules/next/dist/build/segment-config/app/app-segment-config.js +34 -17
  159. package/standalone/node_modules/next/dist/build/static-paths/app.js +68 -15
  160. package/standalone/node_modules/next/dist/build/static-paths/pages.js +3 -3
  161. package/standalone/node_modules/next/dist/build/swc/index.js +125 -48
  162. package/standalone/node_modules/next/dist/build/swc/loaderWorkerPool.js +40 -0
  163. package/standalone/node_modules/next/dist/build/swc/options.js +23 -6
  164. package/standalone/node_modules/next/dist/build/utils.js +48 -94
  165. package/standalone/node_modules/next/dist/build/webpack/config/blocks/css/index.js +14 -3
  166. package/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/global.js +4 -2
  167. package/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/modules.js +4 -2
  168. package/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/next-font.js +1 -0
  169. package/standalone/node_modules/next/dist/build/webpack/config/blocks/css/plugins.js +5 -5
  170. package/standalone/node_modules/next/dist/build/webpack/config/index.js +3 -2
  171. package/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js +2 -1
  172. package/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-url-parser.js +8 -1
  173. package/standalone/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/loader.js +13 -4
  174. package/standalone/node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js +3 -1
  175. package/standalone/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin-utils.js +2 -16
  176. package/standalone/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin.js +2 -2
  177. package/standalone/node_modules/next/dist/build/webpack/plugins/deferred-entries-plugin.js +106 -0
  178. package/standalone/node_modules/next/dist/build/webpack/plugins/flight-client-entry-plugin.js +16 -8
  179. package/standalone/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.js +24 -11
  180. package/standalone/node_modules/next/dist/build/webpack/plugins/middleware-plugin.js +21 -2
  181. package/standalone/node_modules/next/dist/build/webpack/plugins/next-types-plugin/index.js +6 -5
  182. package/standalone/node_modules/next/dist/build/webpack/plugins/nextjs-require-cache-hot-reloader.js +10 -14
  183. package/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js +18 -4
  184. package/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseScss.js +5 -4
  185. package/standalone/node_modules/next/dist/build/webpack-config.js +18 -8
  186. package/standalone/node_modules/next/dist/cli/next-test.js +4 -3
  187. package/standalone/node_modules/next/dist/client/app-find-source-map-url.js +2 -1
  188. package/standalone/node_modules/next/dist/client/components/app-router-headers.js +10 -0
  189. package/standalone/node_modules/next/dist/client/components/app-router-instance.js +82 -4
  190. package/standalone/node_modules/next/dist/client/components/app-router.js +39 -20
  191. package/standalone/node_modules/next/dist/client/components/builtin/app-error.js +29 -65
  192. package/standalone/node_modules/next/dist/client/components/builtin/error-styles.js +165 -0
  193. package/standalone/node_modules/next/dist/client/components/builtin/global-error.js +56 -38
  194. package/standalone/node_modules/next/dist/client/components/error-boundary.js +16 -6
  195. package/standalone/node_modules/next/dist/client/components/forbidden.js +1 -1
  196. package/standalone/node_modules/next/dist/client/components/handle-isr-error.js +3 -4
  197. package/standalone/node_modules/next/dist/client/components/links.js +7 -0
  198. package/standalone/node_modules/next/dist/client/components/navigation-untracked.js +2 -0
  199. package/standalone/node_modules/next/dist/client/components/navigation.js +27 -0
  200. package/standalone/node_modules/next/dist/client/components/navigation.react-server.js +5 -2
  201. package/standalone/node_modules/next/dist/client/components/not-found.js +1 -1
  202. package/standalone/node_modules/next/dist/client/components/redirect-boundary.js +1 -1
  203. package/standalone/node_modules/next/dist/client/components/redirect-error.js +0 -9
  204. package/standalone/node_modules/next/dist/client/components/redirect.js +2 -2
  205. package/standalone/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +73 -0
  206. package/standalone/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +102 -8
  207. package/standalone/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +165 -48
  208. package/standalone/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +19 -11
  209. package/standalone/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +669 -457
  210. package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/committed-state.js +49 -0
  211. package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +19 -20
  212. package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +5 -117
  213. package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +34 -19
  214. package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +16 -32
  215. package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +85 -57
  216. package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +12 -10
  217. package/standalone/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js +10 -1
  218. package/standalone/node_modules/next/dist/client/components/router-reducer/router-reducer.js +1 -1
  219. package/standalone/node_modules/next/dist/client/components/segment-cache/bfcache.js +128 -0
  220. package/standalone/node_modules/next/dist/client/components/segment-cache/cache.js +732 -231
  221. package/standalone/node_modules/next/dist/client/components/segment-cache/lru.js +13 -6
  222. package/standalone/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +194 -0
  223. package/standalone/node_modules/next/dist/client/components/segment-cache/navigation.js +388 -250
  224. package/standalone/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +543 -0
  225. package/standalone/node_modules/next/dist/client/components/segment-cache/scheduler.js +154 -55
  226. package/standalone/node_modules/next/dist/client/components/segment-cache/vary-path.js +63 -1
  227. package/standalone/node_modules/next/dist/client/components/unauthorized.js +1 -1
  228. package/standalone/node_modules/next/dist/client/components/use-action-queue.js +49 -3
  229. package/standalone/node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js +9 -1
  230. package/standalone/node_modules/next/dist/client/flight-data-helpers.js +42 -29
  231. package/standalone/node_modules/next/dist/client/lib/javascript-url.js +32 -0
  232. package/standalone/node_modules/next/dist/client/lib/promise.js +53 -0
  233. package/standalone/node_modules/next/dist/client/{app-build-id.js → navigation-build-id.js} +17 -13
  234. package/standalone/node_modules/next/dist/client/react-client-callbacks/on-recoverable-error.js +14 -0
  235. package/standalone/node_modules/next/dist/client/route-loader.js +9 -46
  236. package/standalone/node_modules/next/dist/client/router.js +1 -1
  237. package/standalone/node_modules/next/dist/compiled/@next/font/dist/google/font-data.json +74 -3
  238. package/standalone/node_modules/next/dist/compiled/babel/bundle.js +1 -1
  239. package/standalone/node_modules/next/dist/compiled/babel-packages/packages-bundle.js +4 -4
  240. package/standalone/node_modules/next/dist/compiled/browserslist/index.js +1 -1
  241. package/standalone/node_modules/next/dist/compiled/http-proxy/index.js +5 -5
  242. package/standalone/node_modules/next/dist/compiled/next-devtools/index.js +2209 -23
  243. package/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +42 -12
  244. package/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +42 -12
  245. package/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +42 -12
  246. package/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +42 -12
  247. package/standalone/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +2 -2
  248. package/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +10 -10
  249. package/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +10 -10
  250. package/standalone/node_modules/next/dist/compiled/react-is/package.json +1 -1
  251. package/standalone/node_modules/next/dist/compiled/tar/index.min.js +1 -0
  252. package/standalone/node_modules/next/dist/compiled/tar/package.json +1 -1
  253. package/standalone/node_modules/next/dist/compiled/unistore/unistore.js +1 -1
  254. package/standalone/node_modules/next/dist/lib/bundler.js +97 -0
  255. package/standalone/node_modules/next/dist/lib/constants.js +19 -4
  256. package/standalone/node_modules/next/dist/lib/download-swc.js +2 -2
  257. package/standalone/node_modules/next/dist/lib/find-root.js +11 -7
  258. package/standalone/node_modules/next/dist/lib/format-server-error.js +1 -0
  259. package/standalone/node_modules/next/dist/lib/generate-interception-routes-rewrites.js +3 -20
  260. package/standalone/node_modules/next/dist/lib/interop-default.js +1 -0
  261. package/standalone/node_modules/next/dist/lib/is-interception-route-rewrite.js +18 -0
  262. package/standalone/node_modules/next/dist/lib/load-custom-routes.js +49 -5
  263. package/standalone/node_modules/next/dist/lib/memory/trace.js +109 -0
  264. package/standalone/node_modules/next/dist/lib/metadata/get-metadata-route.js +11 -2
  265. package/standalone/node_modules/next/dist/lib/needs-experimental-react.js +2 -2
  266. package/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +5 -5
  267. package/standalone/node_modules/next/dist/lib/try-to-parse-path.js +1 -2
  268. package/standalone/node_modules/next/dist/lib/turbopack-warning.js +0 -1
  269. package/standalone/node_modules/next/dist/lib/typescript/diagnosticFormatter.js +6 -3
  270. package/standalone/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +1 -1
  271. package/standalone/node_modules/next/dist/lib/typescript/missingDependencyError.js +1 -1
  272. package/standalone/node_modules/next/dist/lib/typescript/runTypeCheck.js +6 -8
  273. package/standalone/node_modules/next/dist/lib/typescript/type-paths.js +7 -12
  274. package/standalone/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +17 -7
  275. package/standalone/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js +9 -12
  276. package/standalone/node_modules/next/dist/lib/verify-typescript-setup.js +66 -16
  277. package/standalone/node_modules/next/dist/next-devtools/server/shared.js +6 -10
  278. package/standalone/node_modules/next/dist/next-devtools/shared/webpack-module-path.js +4 -4
  279. package/standalone/node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js +22 -4
  280. package/standalone/node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js +7 -1
  281. package/standalone/node_modules/next/dist/next-devtools/userspace/app/forward-logs.js +18 -13
  282. package/standalone/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js +7 -4
  283. package/standalone/node_modules/next/dist/server/app-render/action-handler.js +83 -15
  284. package/standalone/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +0 -82
  285. package/standalone/node_modules/next/dist/server/app-render/app-render-render-utils.js +45 -81
  286. package/standalone/node_modules/next/dist/server/app-render/app-render.js +1746 -803
  287. package/standalone/node_modules/next/dist/server/app-render/create-component-tree.js +136 -50
  288. package/standalone/node_modules/next/dist/server/app-render/create-error-handler.js +6 -4
  289. package/standalone/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +52 -26
  290. package/standalone/node_modules/next/dist/server/app-render/csrf-protection.js +14 -3
  291. package/standalone/node_modules/next/dist/server/app-render/debug-channel-server.js +30 -0
  292. package/standalone/node_modules/next/dist/server/app-render/debug-channel-server.web.js +71 -0
  293. package/standalone/node_modules/next/dist/server/app-render/dynamic-rendering.js +353 -37
  294. package/standalone/node_modules/next/dist/server/app-render/get-asset-query-string.js +2 -2
  295. package/standalone/node_modules/next/dist/server/app-render/get-layer-assets.js +1 -1
  296. package/standalone/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js +13 -0
  297. package/standalone/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js +18 -0
  298. package/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-config.js +181 -0
  299. package/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-samples-client.js +128 -0
  300. package/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js +432 -0
  301. package/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js +33 -0
  302. package/standalone/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js +96 -0
  303. package/standalone/node_modules/next/dist/server/app-render/manifests-singleton.js +8 -1
  304. package/standalone/node_modules/next/dist/server/app-render/postponed-state.js +2 -1
  305. package/standalone/node_modules/next/dist/server/app-render/prospective-render-utils.js +1 -0
  306. package/standalone/node_modules/next/dist/server/app-render/segment-explorer-path.js +35 -10
  307. package/standalone/node_modules/next/dist/server/app-render/staged-rendering.js +142 -72
  308. package/standalone/node_modules/next/dist/server/app-render/stale-time.js +111 -0
  309. package/standalone/node_modules/next/dist/server/app-render/stream-ops.js +106 -0
  310. package/standalone/node_modules/next/dist/server/app-render/stream-ops.web.js +163 -0
  311. package/standalone/node_modules/next/dist/server/app-render/types.js +10 -4
  312. package/standalone/node_modules/next/dist/server/app-render/use-flight-response.js +3 -1
  313. package/standalone/node_modules/next/dist/server/app-render/vary-params.js +336 -0
  314. package/standalone/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +59 -12
  315. package/standalone/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +54 -26
  316. package/standalone/node_modules/next/dist/server/async-storage/request-store.js +4 -4
  317. package/standalone/node_modules/next/dist/server/async-storage/work-store.js +2 -5
  318. package/standalone/node_modules/next/dist/server/base-server.js +65 -53
  319. package/standalone/node_modules/next/dist/server/config-schema.js +93 -8
  320. package/standalone/node_modules/next/dist/server/config-shared.js +57 -7
  321. package/standalone/node_modules/next/dist/server/config.js +96 -25
  322. package/standalone/node_modules/next/dist/server/dev/browser-logs/file-logger.js +9 -6
  323. package/standalone/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +46 -0
  324. package/standalone/node_modules/next/dist/server/dev/browser-logs/source-map.js +1 -4
  325. package/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +264 -33
  326. package/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +8 -4
  327. package/standalone/node_modules/next/dist/server/dev/log-requests.js +10 -2
  328. package/standalone/node_modules/next/dist/server/dev/middleware-turbopack.js +20 -10
  329. package/standalone/node_modules/next/dist/server/dev/middleware-webpack.js +13 -3
  330. package/standalone/node_modules/next/dist/server/dev/next-dev-server.js +19 -6
  331. package/standalone/node_modules/next/dist/server/dev/on-demand-entry-handler.js +69 -0
  332. package/standalone/node_modules/next/dist/server/dev/require-cache.js +51 -21
  333. package/standalone/node_modules/next/dist/server/dev/server-action-logger.js +37 -0
  334. package/standalone/node_modules/next/dist/server/dev/static-paths-worker.js +1 -0
  335. package/standalone/node_modules/next/dist/server/dev/turbopack-utils.js +6 -15
  336. package/standalone/node_modules/next/dist/server/dynamic-rendering-utils.js +22 -0
  337. package/standalone/node_modules/next/dist/server/image-optimizer.js +157 -27
  338. package/standalone/node_modules/next/dist/server/lib/app-info-log.js +16 -38
  339. package/standalone/node_modules/next/dist/server/lib/cache-control.js +1 -1
  340. package/standalone/node_modules/next/dist/server/lib/clone-response.js +16 -16
  341. package/standalone/node_modules/next/dist/server/lib/cpu-profile.js +47 -16
  342. package/standalone/node_modules/next/dist/server/lib/dev-bundler-service.js +2 -2
  343. package/standalone/node_modules/next/dist/server/lib/disk-lru-cache.external.js +57 -0
  344. package/standalone/node_modules/next/dist/server/lib/find-page-file.js +27 -7
  345. package/standalone/node_modules/next/dist/server/lib/implicit-tags.js +3 -3
  346. package/standalone/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +5 -3
  347. package/standalone/node_modules/next/dist/server/lib/incremental-cache/index.js +32 -10
  348. package/standalone/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +18 -1
  349. package/standalone/node_modules/next/dist/server/lib/install-code-frame.js +22 -0
  350. package/standalone/node_modules/next/dist/server/lib/lru-cache.js +9 -1
  351. package/standalone/node_modules/next/dist/server/lib/patch-fetch.js +40 -7
  352. package/standalone/node_modules/next/dist/server/lib/postponed-request-body.js +64 -0
  353. package/standalone/node_modules/next/dist/server/lib/render-server.js +4 -1
  354. package/standalone/node_modules/next/dist/server/lib/router-server.js +24 -13
  355. package/standalone/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js +110 -0
  356. package/standalone/node_modules/next/dist/server/lib/router-utils/filesystem.js +16 -15
  357. package/standalone/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +32 -11
  358. package/standalone/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +3 -3
  359. package/standalone/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js +71 -71
  360. package/standalone/node_modules/next/dist/server/lib/router-utils/typegen.js +247 -2
  361. package/standalone/node_modules/next/dist/server/lib/server-ipc/utils.js +2 -1
  362. package/standalone/node_modules/next/dist/server/lib/start-server.js +73 -39
  363. package/standalone/node_modules/next/dist/server/lib/trace/tracer.js +11 -1
  364. package/standalone/node_modules/next/dist/server/lib/utils.js +40 -11
  365. package/standalone/node_modules/next/dist/server/load-components.js +2 -0
  366. package/standalone/node_modules/next/dist/server/load-manifest.external.js +37 -17
  367. package/standalone/node_modules/next/dist/server/mcp/tools/get-errors.js +11 -4
  368. package/standalone/node_modules/next/dist/server/mcp/tools/get-logs.js +9 -3
  369. package/standalone/node_modules/next/dist/server/mcp/tools/get-page-metadata.js +52 -44
  370. package/standalone/node_modules/next/dist/server/mcp/tools/get-project-metadata.js +6 -2
  371. package/standalone/node_modules/next/dist/server/mcp/tools/get-routes.js +44 -79
  372. package/standalone/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js +12 -4
  373. package/standalone/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +62 -72
  374. package/standalone/node_modules/next/dist/server/next-server.js +69 -99
  375. package/standalone/node_modules/next/dist/server/next.js +3 -0
  376. package/standalone/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +61 -6
  377. package/standalone/node_modules/next/dist/server/node-environment-extensions/date.js +4 -4
  378. package/standalone/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js +13 -6
  379. package/standalone/node_modules/next/dist/server/node-environment-extensions/{utils.js → io-utils.js} +14 -5
  380. package/standalone/node_modules/next/dist/server/node-environment-extensions/node-crypto.js +8 -8
  381. package/standalone/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js +91 -0
  382. package/standalone/node_modules/next/dist/server/node-environment-extensions/random.js +2 -2
  383. package/standalone/node_modules/next/dist/server/node-environment-extensions/{unhandled-rejection.js → unhandled-rejection.external.js} +23 -4
  384. package/standalone/node_modules/next/dist/server/node-environment-extensions/web-crypto.js +3 -3
  385. package/standalone/node_modules/next/dist/server/node-environment.js +1 -1
  386. package/standalone/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js +2 -1
  387. package/standalone/node_modules/next/dist/server/patch-error-inspect.js +37 -20
  388. package/standalone/node_modules/next/dist/server/render-result.js +9 -0
  389. package/standalone/node_modules/next/dist/server/render.js +27 -25
  390. package/standalone/node_modules/next/dist/server/require-hook.js +19 -8
  391. package/standalone/node_modules/next/dist/server/response-cache/utils.js +1 -0
  392. package/standalone/node_modules/next/dist/server/resume-data-cache/cache-store.js +35 -23
  393. package/standalone/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +16 -7
  394. package/standalone/node_modules/next/dist/server/revalidation-utils.js +12 -7
  395. package/standalone/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +2 -1
  396. package/standalone/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +4 -1
  397. package/standalone/node_modules/next/dist/server/route-modules/app-page/module.js +31 -1
  398. package/standalone/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js +25 -0
  399. package/standalone/node_modules/next/dist/server/route-modules/pages/pages-handler.js +31 -8
  400. package/standalone/node_modules/next/dist/server/route-modules/route-module.js +71 -18
  401. package/standalone/node_modules/next/dist/server/stream-utils/encoded-tags.js +8 -0
  402. package/standalone/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +239 -58
  403. package/standalone/node_modules/next/dist/server/stream-utils/uint8array-helpers.js +7 -2
  404. package/standalone/node_modules/next/dist/server/typescript/constant.js +1 -0
  405. package/standalone/node_modules/next/dist/server/typescript/rules/config.js +14 -3
  406. package/standalone/node_modules/next/dist/server/web/adapter.js +7 -3
  407. package/standalone/node_modules/next/dist/server/web/next-url.js +6 -2
  408. package/standalone/node_modules/next/dist/server/web/sandbox/sandbox.js +3 -0
  409. package/standalone/node_modules/next/dist/shared/lib/app-router-types.js +30 -11
  410. package/standalone/node_modules/next/dist/shared/lib/constants.js +7 -7
  411. package/standalone/node_modules/next/dist/shared/lib/deployment-id.js +37 -10
  412. package/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  413. package/standalone/node_modules/next/dist/shared/lib/errors/code-frame.js +20 -0
  414. package/standalone/node_modules/next/dist/shared/lib/format-webpack-messages.js +22 -2
  415. package/standalone/node_modules/next/dist/shared/lib/image-config.js +3 -1
  416. package/standalone/node_modules/next/dist/shared/lib/is-internal.js +2 -0
  417. package/standalone/node_modules/next/dist/shared/lib/magic-identifier.js +6 -6
  418. package/standalone/node_modules/next/dist/shared/lib/router/router.js +32 -0
  419. package/standalone/node_modules/next/dist/shared/lib/router/utils/app-paths.js +11 -0
  420. package/standalone/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +11 -4
  421. package/standalone/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js +3 -2
  422. package/standalone/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +9 -2
  423. package/standalone/node_modules/next/dist/shared/lib/router/utils/parse-url.js +8 -2
  424. package/standalone/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js +32 -0
  425. package/standalone/node_modules/next/dist/shared/lib/server-reference-info.js +4 -0
  426. package/standalone/node_modules/next/dist/shared/lib/size-limit.js +6 -1
  427. package/standalone/node_modules/next/dist/shared/lib/turbopack/compilation-events.js +47 -10
  428. package/standalone/node_modules/next/dist/shared/lib/turbopack/manifest-loader.js +90 -116
  429. package/standalone/node_modules/next/dist/shared/lib/turbopack/utils.js +14 -26
  430. package/standalone/node_modules/next/dist/shared/lib/utils/reflect-utils.js +69 -0
  431. package/standalone/node_modules/next/dist/shared/lib/utils.js +2 -2
  432. package/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  433. package/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  434. package/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  435. package/standalone/node_modules/next/dist/trace/index.js +4 -0
  436. package/standalone/node_modules/next/dist/trace/report/to-json-build.js +11 -108
  437. package/standalone/node_modules/next/dist/trace/report/to-json.js +52 -38
  438. package/standalone/node_modules/next/dist/trace/trace.js +15 -1
  439. package/standalone/node_modules/next/package.json +21 -23
  440. package/standalone/node_modules/react/cjs/react.development.js +1284 -0
  441. package/standalone/package.json +3 -3
  442. package/standalone/packages/core/package.json +1 -1
  443. package/standalone/apps/frontend/.next/static/chunks/1315.18c68981a2eab4fe.js +0 -1
  444. package/standalone/apps/frontend/.next/static/chunks/87c73c54-c5fda2db2a4bd732.js +0 -1
  445. package/standalone/apps/frontend/.next/static/chunks/common-d9b436492e46bb05.js +0 -69
  446. package/standalone/apps/frontend/.next/static/chunks/framework-86c2a58f458066a5.js +0 -1
  447. package/standalone/apps/frontend/.next/static/chunks/vendors-c7197feb11002a6e.js +0 -10
  448. package/standalone/apps/frontend/.next/static/kMwuefB4Z1_6Xta5NPqs1/_buildManifest.js +0 -1
  449. package/standalone/node_modules/next/dist/client/components/router-reducer/handle-mutable.js +0 -66
  450. package/standalone/node_modules/next/dist/compiled/babel/code-frame.js +0 -1
  451. package/standalone/node_modules/next/dist/compiled/babel-code-frame/index.js +0 -1
  452. package/standalone/node_modules/next/dist/compiled/babel-code-frame/package.json +0 -1
  453. package/standalone/node_modules/next/dist/compiled/tar/index.js +0 -1
  454. package/standalone/node_modules/next/dist/server/app-render/staged-validation.js +0 -32
  455. package/standalone/node_modules/next/dist/server/lib/router-utils/block-cross-site.js +0 -76
  456. package/standalone/node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js +0 -52
  457. package/standalone/node_modules/typescript/lib/typescript.js +0 -200276
  458. package/standalone/node_modules/typescript/package.json +0 -120
  459. /package/standalone/apps/frontend/.next/static/{kMwuefB4Z1_6Xta5NPqs1 → I_XveRdyStDMqYJPcAAy5}/_ssgManifest.js +0 -0
@@ -67,6 +67,14 @@ module.exports = require("next/dist/compiled/next-server/app-page.runtime.prod.j
67
67
 
68
68
  /***/ }),
69
69
 
70
+ /***/ 17891:
71
+ /***/ ((module) => {
72
+
73
+ "use strict";
74
+ module.exports = require("next/dist/shared/lib/router/utils/get-segment-param");
75
+
76
+ /***/ }),
77
+
70
78
  /***/ 19121:
71
79
  /***/ ((module) => {
72
80
 
@@ -145,1451 +153,348 @@ module.exports = require("util");
145
153
 
146
154
  /***/ }),
147
155
 
148
- /***/ 28521:
149
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
156
+ /***/ 29294:
157
+ /***/ ((module) => {
150
158
 
151
159
  "use strict";
152
- __webpack_require__.r(__webpack_exports__);
153
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
154
- /* harmony export */ GlobalError: () => (/* reexport safe */ _home_runner_work_semiont_semiont_apps_frontend_src_app_global_error_tsx__WEBPACK_IMPORTED_MODULE_25__["default"]),
155
- /* harmony export */ __next_app__: () => (/* binding */ __next_app__),
156
- /* harmony export */ handler: () => (/* binding */ handler),
157
- /* harmony export */ routeModule: () => (/* binding */ routeModule)
158
- /* harmony export */ });
159
- /* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80666);
160
- /* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);
161
- /* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51421);
162
- /* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4675);
163
- /* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29796);
164
- /* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__);
165
- /* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54046);
166
- /* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__);
167
- /* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(74928);
168
- /* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__);
169
- /* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19727);
170
- /* harmony import */ var next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(24268);
171
- /* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(60402);
172
- /* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__);
173
- /* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(22040);
174
- /* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__);
175
- /* harmony import */ var next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27186);
176
- /* harmony import */ var next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__);
177
- /* harmony import */ var next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(49228);
178
- /* harmony import */ var next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11__);
179
- /* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(97485);
180
- /* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__);
181
- /* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(261);
182
- /* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__);
183
- /* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(80885);
184
- /* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__);
185
- /* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(7162);
186
- /* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__);
187
- /* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(26713);
188
- /* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__);
189
- /* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(70972);
190
- /* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__);
191
- /* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(57341);
192
- /* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__);
193
- /* harmony import */ var next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(95105);
194
- /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(38038);
195
- /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__);
196
- /* harmony import */ var next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(29898);
197
- /* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(98798);
198
- /* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__);
199
- /* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(86439);
200
- /* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23__);
201
- /* harmony import */ var next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(77068);
202
- /* harmony import */ var next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_24__);
203
- /* harmony import */ var _home_runner_work_semiont_semiont_apps_frontend_src_app_global_error_tsx__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(56357);
204
- /* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(35402);
205
- /* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__);
206
- /* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(29059);
207
- /* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27__);
208
- /* harmony import */ var next_dist_shared_lib_invariant_error__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(70722);
209
- /* harmony import */ var next_dist_shared_lib_invariant_error__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_invariant_error__WEBPACK_IMPORTED_MODULE_28__);
210
- /* harmony import */ var next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(31182);
211
- /* harmony import */ var next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_29__);
212
- /* harmony import */ var next_dist_shared_lib_router_utils_interception_routes__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(43954);
213
- /* harmony import */ var next_dist_shared_lib_router_utils_interception_routes__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_interception_routes__WEBPACK_IMPORTED_MODULE_30__);
214
- /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
215
- /* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__) if(["default","GlobalError","__next_app__","routeModule","handler"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__[__WEBPACK_IMPORT_KEY__]
216
- /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
217
- const module0 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 95235));
218
- const module1 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 25195));
219
- const module2 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
220
- const module3 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 72353));
221
- const module4 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 4253, 23));
222
- const module5 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 49184, 23));
223
- const module6 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 57149));
224
- const module7 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 28310));
225
- const module8 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 59406));
226
- const page9 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 61493));
227
-
160
+ module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
228
161
 
162
+ /***/ }),
229
163
 
164
+ /***/ 31039:
165
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
230
166
 
167
+ "use strict";
231
168
 
169
+ // EXPORTS
170
+ __webpack_require__.d(__webpack_exports__, {
171
+ As: () => (/* binding */ useAuth)
172
+ });
232
173
 
174
+ // UNUSED EXPORTS: usePermissions, useUserPreferences
233
175
 
176
+ // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
177
+ var react = __webpack_require__(62341);
178
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
179
+ var ssr_react = __webpack_require__(71277);
180
+ // EXTERNAL MODULE: ../../packages/api-client/dist/index.js
181
+ var dist = __webpack_require__(88887);
182
+ ;// __barrel_optimize__?names=JWTTokenSchema,validateData!=!../../packages/api-client/dist/index.js
234
183
 
235
184
 
185
+ ;// ./src/hooks/useAuth.ts
186
+ /* __next_internal_client_entry_do_not_use__ useAuth,useUserPreferences,usePermissions auto */
236
187
 
237
188
 
189
+ /**
190
+ * Enhanced authentication hook with validation and user information
191
+ */ function useAuth() {
192
+ const { data: session, status } = (0,react.useSession)();
193
+ const authInfo = (0,ssr_react.useMemo)(()=>{
194
+ const isLoading = status === 'loading';
195
+ const isAuthenticated = !!session?.user;
196
+ // Validate backend token if present
197
+ const hasValidBackendToken = session?.backendToken ? (0,dist/* validateData */.lv)(dist/* JWTTokenSchema */.k3, session.backendToken).success : false;
198
+ return {
199
+ // Session data
200
+ session,
201
+ user: session?.user,
202
+ backendUser: session?.backendUser,
203
+ // Status flags
204
+ isLoading,
205
+ isAuthenticated,
206
+ hasValidBackendToken,
207
+ // Computed properties
208
+ userDomain: session?.backendUser?.domain || session?.user?.email?.split('@')[1],
209
+ displayName: session?.user?.name || session?.user?.email?.split('@')[0] || 'User',
210
+ avatarUrl: session?.user?.image,
211
+ isAdmin: session?.backendUser?.isAdmin || false,
212
+ isModerator: session?.backendUser?.isModerator || false,
213
+ // Combined auth status
214
+ isFullyAuthenticated: isAuthenticated && hasValidBackendToken
215
+ };
216
+ }, [
217
+ session,
218
+ status
219
+ ]);
220
+ return authInfo;
221
+ }
222
+ /**
223
+ * Hook for getting user preferences and settings
224
+ */ function useUserPreferences() {
225
+ const { session } = useAuth();
226
+ return useMemo(()=>{
227
+ // In the future, this could fetch user preferences from backend
228
+ // For now, return defaults
229
+ return {
230
+ theme: 'system',
231
+ language: 'en',
232
+ timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
233
+ emailNotifications: true
234
+ };
235
+ }, [
236
+ session
237
+ ]);
238
+ }
239
+ /**
240
+ * Hook for checking user permissions (future expansion)
241
+ */ function usePermissions() {
242
+ const { backendUser, isFullyAuthenticated } = useAuth();
243
+ return useMemo(()=>{
244
+ if (!isFullyAuthenticated || !backendUser) {
245
+ return {
246
+ canRead: false,
247
+ canWrite: false,
248
+ canAdmin: false,
249
+ canManageUsers: false
250
+ };
251
+ }
252
+ // Basic permissions - in the future this would come from backend
253
+ return {
254
+ canRead: true,
255
+ canWrite: true,
256
+ canAdmin: false,
257
+ canManageUsers: false
258
+ };
259
+ }, [
260
+ backendUser,
261
+ isFullyAuthenticated
262
+ ]);
263
+ }
238
264
 
239
265
 
266
+ /***/ }),
240
267
 
268
+ /***/ 32037:
269
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
241
270
 
271
+ "use strict";
272
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
273
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
274
+ /* harmony export */ });
275
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
242
276
 
277
+ function ArrowsRightLeftIcon({ title, titleId, ...props }, svgRef) {
278
+ return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
279
+ xmlns: "http://www.w3.org/2000/svg",
280
+ fill: "none",
281
+ viewBox: "0 0 24 24",
282
+ strokeWidth: 1.5,
283
+ stroke: "currentColor",
284
+ "aria-hidden": "true",
285
+ "data-slot": "icon",
286
+ ref: svgRef,
287
+ "aria-labelledby": titleId
288
+ }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
289
+ id: titleId
290
+ }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
291
+ strokeLinecap: "round",
292
+ strokeLinejoin: "round",
293
+ d: "M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"
294
+ }));
295
+ }
296
+ const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ArrowsRightLeftIcon);
297
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
243
298
 
244
299
 
300
+ /***/ }),
245
301
 
302
+ /***/ 33135:
303
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
246
304
 
305
+ "use strict";
306
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
307
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
308
+ /* harmony export */ });
309
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
247
310
 
311
+ function ShieldCheckIcon({ title, titleId, ...props }, svgRef) {
312
+ return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
313
+ xmlns: "http://www.w3.org/2000/svg",
314
+ fill: "none",
315
+ viewBox: "0 0 24 24",
316
+ strokeWidth: 1.5,
317
+ stroke: "currentColor",
318
+ "aria-hidden": "true",
319
+ "data-slot": "icon",
320
+ ref: svgRef,
321
+ "aria-labelledby": titleId
322
+ }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
323
+ id: titleId
324
+ }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
325
+ strokeLinecap: "round",
326
+ strokeLinejoin: "round",
327
+ d: "M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z"
328
+ }));
329
+ }
330
+ const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ShieldCheckIcon);
331
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
248
332
 
249
333
 
334
+ /***/ }),
250
335
 
336
+ /***/ 33873:
337
+ /***/ ((module) => {
251
338
 
252
- // We inject the tree and pages here so that we can use them in the route
253
- // module.
254
- const tree = {
255
- children: [
256
- '',
257
- {
258
- children: [
259
- '[locale]',
260
- {
261
- children: [
262
- 'moderate',
263
- {
264
- children: ['__PAGE__', {}, {
265
- page: [page9, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/page.tsx"],
266
-
267
- }]
268
- },
269
- {
270
- 'layout': [module8, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/layout.tsx"],
271
-
272
- }
273
- ]
274
- },
275
- {
276
- 'layout': [module6, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/layout.tsx"],
277
- 'not-found': [module7, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/not-found.tsx"],
278
-
279
- }
280
- ]
281
- },
282
- {
283
- 'layout': [module0, "/home/runner/work/semiont/semiont/apps/frontend/src/app/layout.tsx"],
284
- 'error': [module1, "/home/runner/work/semiont/semiont/apps/frontend/src/app/error.tsx"],
285
- 'global-error': [module2, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
286
- 'not-found': [module3, "/home/runner/work/semiont/semiont/apps/frontend/src/app/not-found.tsx"],
287
- 'forbidden': [module4, "next/dist/client/components/builtin/forbidden.js"],
288
- 'unauthorized': [module5, "next/dist/client/components/builtin/unauthorized.js"],
289
-
290
- }
291
- ]
292
- }.children;
339
+ "use strict";
340
+ module.exports = require("path");
293
341
 
342
+ /***/ }),
294
343
 
295
- const __next_app_require__ = __webpack_require__
296
- const __next_app_load_chunk__ = () => Promise.resolve()
297
- const __next_app__ = {
298
- require: __next_app_require__,
299
- loadChunk: __next_app_load_chunk__
300
- };
344
+ /***/ 33898:
345
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
301
346
 
347
+ "use strict";
348
+ // ESM COMPAT FLAG
349
+ __webpack_require__.r(__webpack_exports__);
302
350
 
351
+ // EXPORTS
352
+ __webpack_require__.d(__webpack_exports__, {
353
+ "default": () => (/* binding */ ModerateLayout)
354
+ });
303
355
 
356
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js
357
+ var react_jsx_runtime = __webpack_require__(92692);
358
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
359
+ var react = __webpack_require__(71277);
360
+ // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
361
+ var react_client = __webpack_require__(56305);
362
+ // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
363
+ var next_auth_react = __webpack_require__(62341);
364
+ // EXTERNAL MODULE: __barrel_optimize__?names=ApiClientProvider,AuthTokenProvider,Footer,LeftSidebar!=!../../packages/react-ui/dist/index.mjs
365
+ var dist = __webpack_require__(25888);
366
+ // EXTERNAL MODULE: ./src/i18n/routing.ts
367
+ var routing = __webpack_require__(99704);
368
+ // EXTERNAL MODULE: __barrel_optimize__?names=SimpleNavigation,useEventSubscriptions!=!../../packages/react-ui/dist/index.mjs
369
+ var react_ui_dist = __webpack_require__(25197);
370
+ ;// ../../node_modules/@heroicons/react/24/outline/esm/ClockIcon.js
304
371
 
372
+ function ClockIcon({ title, titleId, ...props }, svgRef) {
373
+ return /*#__PURE__*/ react.createElement("svg", Object.assign({
374
+ xmlns: "http://www.w3.org/2000/svg",
375
+ fill: "none",
376
+ viewBox: "0 0 24 24",
377
+ strokeWidth: 1.5,
378
+ stroke: "currentColor",
379
+ "aria-hidden": "true",
380
+ "data-slot": "icon",
381
+ ref: svgRef,
382
+ "aria-labelledby": titleId
383
+ }, props), title ? /*#__PURE__*/ react.createElement("title", {
384
+ id: titleId
385
+ }, title) : null, /*#__PURE__*/ react.createElement("path", {
386
+ strokeLinecap: "round",
387
+ strokeLinejoin: "round",
388
+ d: "M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
389
+ }));
390
+ }
391
+ const ForwardRef = /*#__PURE__*/ react.forwardRef(ClockIcon);
392
+ /* harmony default export */ const esm_ClockIcon = (ForwardRef);
305
393
 
394
+ ;// ../../node_modules/@heroicons/react/24/outline/esm/TagIcon.js
306
395
 
307
- // Create and export the route module that will be consumed.
308
- const routeModule = new next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({
309
- definition: {
310
- kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,
311
- page: "/[locale]/moderate/page",
312
- pathname: "/[locale]/moderate",
313
- // The following aren't used in production.
314
- bundlePath: '',
315
- filename: '',
316
- appPaths: []
317
- },
318
- userland: {
319
- loaderTree: tree
320
- },
321
- distDir: ".next" || 0,
322
- relativeProjectDir: false || ''
323
- });
324
- async function handler(req, res, ctx) {
325
- var _this;
326
- if (routeModule.isDev) {
327
- (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());
328
- }
329
- const isMinimalMode = Boolean( false || (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'minimalMode'));
330
- let srcPage = "/[locale]/moderate/page";
331
- // turbopack doesn't normalize `/index` in the page name
332
- // so we need to to process dynamic routes properly
333
- // TODO: fix turbopack providing differing value from webpack
334
- if (false) {} else if (srcPage === '/index') {
335
- // we always normalize /index specifically
336
- srcPage = '/';
337
- }
338
- const multiZoneDraftMode = false;
339
- const prepareResult = await routeModule.prepare(req, res, {
340
- srcPage,
341
- multiZoneDraftMode
396
+ function TagIcon({ title, titleId, ...props }, svgRef) {
397
+ return /*#__PURE__*/ react.createElement("svg", Object.assign({
398
+ xmlns: "http://www.w3.org/2000/svg",
399
+ fill: "none",
400
+ viewBox: "0 0 24 24",
401
+ strokeWidth: 1.5,
402
+ stroke: "currentColor",
403
+ "aria-hidden": "true",
404
+ "data-slot": "icon",
405
+ ref: svgRef,
406
+ "aria-labelledby": titleId
407
+ }, props), title ? /*#__PURE__*/ react.createElement("title", {
408
+ id: titleId
409
+ }, title) : null, /*#__PURE__*/ react.createElement("path", {
410
+ strokeLinecap: "round",
411
+ strokeLinejoin: "round",
412
+ d: "M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z"
413
+ }), /*#__PURE__*/ react.createElement("path", {
414
+ strokeLinecap: "round",
415
+ strokeLinejoin: "round",
416
+ d: "M6 6h.008v.008H6V6Z"
417
+ }));
418
+ }
419
+ const TagIcon_ForwardRef = /*#__PURE__*/ react.forwardRef(TagIcon);
420
+ /* harmony default export */ const esm_TagIcon = (TagIcon_ForwardRef);
421
+
422
+ ;// ../../node_modules/@heroicons/react/24/outline/esm/BookOpenIcon.js
423
+
424
+ function BookOpenIcon({ title, titleId, ...props }, svgRef) {
425
+ return /*#__PURE__*/ react.createElement("svg", Object.assign({
426
+ xmlns: "http://www.w3.org/2000/svg",
427
+ fill: "none",
428
+ viewBox: "0 0 24 24",
429
+ strokeWidth: 1.5,
430
+ stroke: "currentColor",
431
+ "aria-hidden": "true",
432
+ "data-slot": "icon",
433
+ ref: svgRef,
434
+ "aria-labelledby": titleId
435
+ }, props), title ? /*#__PURE__*/ react.createElement("title", {
436
+ id: titleId
437
+ }, title) : null, /*#__PURE__*/ react.createElement("path", {
438
+ strokeLinecap: "round",
439
+ strokeLinejoin: "round",
440
+ d: "M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25"
441
+ }));
442
+ }
443
+ const BookOpenIcon_ForwardRef = /*#__PURE__*/ react.forwardRef(BookOpenIcon);
444
+ /* harmony default export */ const esm_BookOpenIcon = (BookOpenIcon_ForwardRef);
445
+
446
+ // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/ArrowsRightLeftIcon.js
447
+ var ArrowsRightLeftIcon = __webpack_require__(32037);
448
+ // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/ChevronLeftIcon.js
449
+ var ChevronLeftIcon = __webpack_require__(71062);
450
+ // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/Bars3Icon.js
451
+ var Bars3Icon = __webpack_require__(67255);
452
+ ;// ./src/components/moderation/ModerationNavigation.tsx
453
+ /* __next_internal_client_entry_do_not_use__ ModerationNavigation auto */
454
+
455
+
456
+
457
+
458
+
459
+
460
+ function ModerationNavigation({ isCollapsed, toggleCollapsed, navigationMenu }) {
461
+ const t = (0,react_client/* useTranslations */.c)('Moderation');
462
+ const tSidebar = (0,react_client/* useTranslations */.c)('Sidebar');
463
+ const pathname = (0,routing/* usePathname */.a8)();
464
+ // Handle sidebar toggle events
465
+ const handleSidebarToggle = (0,react.useCallback)(()=>{
466
+ toggleCollapsed();
467
+ }, [
468
+ toggleCollapsed
469
+ ]);
470
+ // Subscribe to sidebar toggle events
471
+ (0,react_ui_dist/* useEventSubscriptions */.C$z)({
472
+ 'browse:sidebar-toggle': handleSidebarToggle
342
473
  });
343
- if (!prepareResult) {
344
- res.statusCode = 400;
345
- res.end('Bad Request');
346
- ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
347
- return null;
348
- }
349
- const { buildId, query, params, pageIsDynamic, buildManifest, nextFontManifest, reactLoadableManifest, serverActionsManifest, clientReferenceManifest, subresourceIntegrityManifest, prerenderManifest, isDraftMode, resolvedPathname, revalidateOnlyGenerated, routerServerContext, nextConfig, parsedUrl, interceptionRoutePatterns, deploymentId } = prepareResult;
350
- const normalizedSrcPage = (0,next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__.normalizeAppPath)(srcPage);
351
- let { isOnDemandRevalidate } = prepareResult;
352
- // We use the resolvedPathname instead of the parsedUrl.pathname because it
353
- // is not rewritten as resolvedPathname is. This will ensure that the correct
354
- // prerender info is used instead of using the original pathname as the
355
- // source. If however PPR is enabled and cacheComponents is disabled, we
356
- // treat the pathname as dynamic. Currently, there's a bug in the PPR
357
- // implementation that incorrectly leaves %%drp placeholders in the output of
358
- // parallel routes. This is addressed with cacheComponents.
359
- const prerenderInfo = nextConfig.experimental.ppr && !nextConfig.cacheComponents && (0,next_dist_shared_lib_router_utils_interception_routes__WEBPACK_IMPORTED_MODULE_30__.isInterceptionRouteAppPath)(resolvedPathname) ? null : routeModule.match(resolvedPathname, prerenderManifest);
360
- const isPrerendered = !!prerenderManifest.routes[resolvedPathname];
361
- const userAgent = req.headers['user-agent'] || '';
362
- const botType = (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__.getBotType)(userAgent);
363
- const isHtmlBot = (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.isHtmlBotRequest)(req);
364
- /**
365
- * If true, this indicates that the request being made is for an app
366
- * prefetch request.
367
- */ const isPrefetchRSCRequest = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'isPrefetchRSCRequest') ?? req.headers[next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_ROUTER_PREFETCH_HEADER] === '1' // exclude runtime prefetches, which use '2'
368
- ;
369
- // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later
370
- const isRSCRequest = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'isRSCRequest') ?? Boolean(req.headers[next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.RSC_HEADER]);
371
- const isPossibleServerAction = (0,next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__.getIsPossibleServerAction)(req);
372
- /**
373
- * If the route being rendered is an app page, and the ppr feature has been
374
- * enabled, then the given route _could_ support PPR.
375
- */ const couldSupportPPR = (0,next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__.checkIsAppPPREnabled)(nextConfig.experimental.ppr);
376
- if (!(0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed') && couldSupportPPR && req.headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_RESUME_HEADER] === '1' && req.method === 'POST') {
377
- // Decode the postponed state from the request body, it will come as
378
- // an array of buffers, so collect them and then concat them to form
379
- // the string.
380
- const body = [];
381
- for await (const chunk of req){
382
- body.push(chunk);
383
- }
384
- const postponed = Buffer.concat(body).toString('utf8');
385
- (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'postponed', postponed);
386
- }
387
- // When enabled, this will allow the use of the `?__nextppronly` query to
388
- // enable debugging of the static shell.
389
- const hasDebugStaticShellQuery = false && 0;
390
- // When enabled, this will allow the use of the `?__nextppronly` query
391
- // to enable debugging of the fallback shell.
392
- const hasDebugFallbackShellQuery = hasDebugStaticShellQuery && query.__nextppronly === 'fallback';
393
- // This page supports PPR if it is marked as being `PARTIALLY_STATIC` in the
394
- // prerender manifest and this is an app page.
395
- const isRoutePPREnabled = couldSupportPPR && (((_this = prerenderManifest.routes[normalizedSrcPage] ?? prerenderManifest.dynamicRoutes[normalizedSrcPage]) == null ? void 0 : _this.renderingMode) === 'PARTIALLY_STATIC' || // Ideally we'd want to check the appConfig to see if this page has PPR
396
- // enabled or not, but that would require plumbing the appConfig through
397
- // to the server during development. We assume that the page supports it
398
- // but only during development.
399
- hasDebugStaticShellQuery && (routeModule.isDev === true || (routerServerContext == null ? void 0 : routerServerContext.experimentalTestProxy) === true));
400
- const isDebugStaticShell = hasDebugStaticShellQuery && isRoutePPREnabled;
401
- // We should enable debugging dynamic accesses when the static shell
402
- // debugging has been enabled and we're also in development mode.
403
- const isDebugDynamicAccesses = isDebugStaticShell && routeModule.isDev === true;
404
- const isDebugFallbackShell = hasDebugFallbackShellQuery && isRoutePPREnabled;
405
- // If we're in minimal mode, then try to get the postponed information from
406
- // the request metadata. If available, use it for resuming the postponed
407
- // render.
408
- const minimalPostponed = isRoutePPREnabled ? (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed') : undefined;
409
- // If PPR is enabled, and this is a RSC request (but not a prefetch), then
410
- // we can use this fact to only generate the flight data for the request
411
- // because we can't cache the HTML (as it's also dynamic).
412
- let isDynamicRSCRequest = isRoutePPREnabled && isRSCRequest && !isPrefetchRSCRequest;
413
- // During a PPR revalidation, the RSC request is not dynamic if we do not have the postponed data.
414
- // We only attach the postponed data during a resume. If there's no postponed data, then it must be a revalidation.
415
- // This is to ensure that we don't bypass the cache during a revalidation.
416
- if (isMinimalMode) {
417
- isDynamicRSCRequest = isDynamicRSCRequest && !!minimalPostponed;
418
- }
419
- // Need to read this before it's stripped by stripFlightHeaders. We don't
420
- // need to transfer it to the request meta because it's only read
421
- // within this function; the static segment data should have already been
422
- // generated, so we will always either return a static response or a 404.
423
- const segmentPrefetchHeader = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'segmentPrefetchRSCRequest');
424
- // TODO: investigate existing bug with shouldServeStreamingMetadata always
425
- // being true for a revalidate due to modifying the base-server this.renderOpts
426
- // when fixing this to correct logic it causes hydration issue since we set
427
- // serveStreamingMetadata to true during export
428
- const serveStreamingMetadata = isHtmlBot && isRoutePPREnabled ? false : !userAgent ? true : (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.shouldServeStreamingMetadata)(userAgent, nextConfig.htmlLimitedBots);
429
- const isSSG = Boolean((prerenderInfo || isPrerendered || prerenderManifest.routes[normalizedSrcPage]) && // If this is a html bot request and PPR is enabled, then we don't want
430
- // to serve a static response.
431
- !(isHtmlBot && isRoutePPREnabled));
432
- // When a page supports cacheComponents, we can support RDC for Navigations
433
- const supportsRDCForNavigations = isRoutePPREnabled && nextConfig.cacheComponents === true;
434
- // In development, we always want to generate dynamic HTML.
435
- const supportsDynamicResponse = // If we're in development, we always support dynamic HTML, unless it's
436
- // a data request, in which case we only produce static HTML.
437
- routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports
438
- // dynamic HTML.
439
- !isSSG || // If this request has provided postponed data, it supports dynamic
440
- // HTML.
441
- typeof minimalPostponed === 'string' || // If this handler supports onCacheEntryV2, then we can only support
442
- // dynamic responses if it's a dynamic RSC request and not in minimal mode. If it
443
- // doesn't support it we must fallback to the default behavior.
444
- (supportsRDCForNavigations && (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'onCacheEntryV2') ? // which will generate the RDC for the route. When resuming a Dynamic
445
- // RSC request, we'll pass the minimal postponed data to the render
446
- // which will trigger the `supportsDynamicResponse` to be true.
447
- isDynamicRSCRequest && !isMinimalMode : isDynamicRSCRequest);
448
- // When html bots request PPR page, perform the full dynamic rendering.
449
- const shouldWaitOnAllReady = isHtmlBot && isRoutePPREnabled;
450
- let ssgCacheKey = null;
451
- if (!isDraftMode && isSSG && !supportsDynamicResponse && !isPossibleServerAction && !minimalPostponed && !isDynamicRSCRequest) {
452
- ssgCacheKey = resolvedPathname;
453
- }
454
- // the staticPathKey differs from ssgCacheKey since
455
- // ssgCacheKey is null in dev since we're always in "dynamic"
456
- // mode in dev to bypass the cache, but we still need to honor
457
- // dynamicParams = false in dev mode
458
- let staticPathKey = ssgCacheKey;
459
- if (!staticPathKey && routeModule.isDev) {
460
- staticPathKey = resolvedPathname;
461
- }
462
- // If this is a request for an app path that should be statically generated
463
- // and we aren't in the edge runtime, strip the flight headers so it will
464
- // generate the static response.
465
- if (!routeModule.isDev && !isDraftMode && isSSG && isRSCRequest && !isDynamicRSCRequest) {
466
- (0,next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__/* .stripFlightHeaders */ .d)(req.headers);
467
- }
468
- const ComponentMod = {
469
- ...next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__,
470
- tree,
471
- GlobalError: _home_runner_work_semiont_semiont_apps_frontend_src_app_global_error_tsx__WEBPACK_IMPORTED_MODULE_25__["default"],
472
- handler,
473
- routeModule,
474
- __next_app__
475
- };
476
- // Before rendering (which initializes component tree modules), we have to
477
- // set the reference manifests to our global store so Server Action's
478
- // encryption util can access to them at the top level of the page module.
479
- if (serverActionsManifest && clientReferenceManifest) {
480
- (0,next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11__.setManifestsSingleton)({
481
- page: srcPage,
482
- clientReferenceManifest,
483
- serverActionsManifest
484
- });
485
- }
486
- const method = req.method || 'GET';
487
- const tracer = (0,next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.getTracer)();
488
- const activeSpan = tracer.getActiveScopeSpan();
489
- const render404 = async ()=>{
490
- // TODO: should route-module itself handle rendering the 404
491
- if (routerServerContext == null ? void 0 : routerServerContext.render404) {
492
- await routerServerContext.render404(req, res, parsedUrl, false);
493
- } else {
494
- res.end('This page could not be found');
495
- }
496
- return null;
497
- };
498
- try {
499
- const varyHeader = routeModule.getVaryHeader(resolvedPathname, interceptionRoutePatterns);
500
- res.setHeader('Vary', varyHeader);
501
- const invokeRouteModule = async (span, context)=>{
502
- const nextReq = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__.NodeNextRequest(req);
503
- const nextRes = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__.NodeNextResponse(res);
504
- return routeModule.render(nextReq, nextRes, context).finally(()=>{
505
- if (!span) return;
506
- span.setAttributes({
507
- 'http.status_code': res.statusCode,
508
- 'next.rsc': false
509
- });
510
- const rootSpanAttributes = tracer.getRootSpanAttributes();
511
- // We were unable to get attributes, probably OTEL is not enabled
512
- if (!rootSpanAttributes) {
513
- return;
514
- }
515
- if (rootSpanAttributes.get('next.span_type') !== next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest) {
516
- console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);
517
- return;
518
- }
519
- const route = rootSpanAttributes.get('next.route');
520
- if (route) {
521
- const name = `${method} ${route}`;
522
- span.setAttributes({
523
- 'next.route': route,
524
- 'http.route': route,
525
- 'next.span_name': name
526
- });
527
- span.updateName(name);
528
- } else {
529
- span.updateName(`${method} ${srcPage}`);
530
- }
531
- });
532
- };
533
- const incrementalCache = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'incrementalCache');
534
- const doRender = async ({ span, postponed, fallbackRouteParams, forceStaticRender })=>{
535
- const context = {
536
- query,
537
- params,
538
- page: normalizedSrcPage,
539
- sharedContext: {
540
- buildId
541
- },
542
- serverComponentsHmrCache: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'serverComponentsHmrCache'),
543
- fallbackRouteParams,
544
- renderOpts: {
545
- App: ()=>null,
546
- Document: ()=>null,
547
- pageConfig: {},
548
- ComponentMod,
549
- Component: (0,next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__/* .interopDefault */ .T)(ComponentMod),
550
- params,
551
- routeModule,
552
- page: srcPage,
553
- postponed,
554
- shouldWaitOnAllReady,
555
- serveStreamingMetadata,
556
- supportsDynamicResponse: typeof postponed === 'string' || supportsDynamicResponse,
557
- buildManifest,
558
- nextFontManifest,
559
- reactLoadableManifest,
560
- subresourceIntegrityManifest,
561
- setCacheStatus: routerServerContext == null ? void 0 : routerServerContext.setCacheStatus,
562
- setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus,
563
- setReactDebugChannel: routerServerContext == null ? void 0 : routerServerContext.setReactDebugChannel,
564
- sendErrorsToBrowser: routerServerContext == null ? void 0 : routerServerContext.sendErrorsToBrowser,
565
- dir: true ? (__webpack_require__(33873).join)(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir) : 0,
566
- isDraftMode,
567
- botType,
568
- isOnDemandRevalidate,
569
- isPossibleServerAction,
570
- assetPrefix: nextConfig.assetPrefix,
571
- nextConfigOutput: nextConfig.output,
572
- crossOrigin: nextConfig.crossOrigin,
573
- trailingSlash: nextConfig.trailingSlash,
574
- images: nextConfig.images,
575
- previewProps: prerenderManifest.preview,
576
- deploymentId: deploymentId,
577
- enableTainting: nextConfig.experimental.taint,
578
- htmlLimitedBots: nextConfig.htmlLimitedBots,
579
- reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,
580
- multiZoneDraftMode,
581
- incrementalCache,
582
- cacheLifeProfiles: nextConfig.cacheLife,
583
- basePath: nextConfig.basePath,
584
- serverActions: nextConfig.experimental.serverActions,
585
- ...isDebugStaticShell || isDebugDynamicAccesses || isDebugFallbackShell ? {
586
- nextExport: true,
587
- supportsDynamicResponse: false,
588
- isStaticGeneration: true,
589
- isDebugDynamicAccesses: isDebugDynamicAccesses
590
- } : {},
591
- cacheComponents: Boolean(nextConfig.cacheComponents),
592
- experimental: {
593
- isRoutePPREnabled,
594
- expireTime: nextConfig.expireTime,
595
- staleTimes: nextConfig.experimental.staleTimes,
596
- dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),
597
- inlineCss: Boolean(nextConfig.experimental.inlineCss),
598
- authInterrupts: Boolean(nextConfig.experimental.authInterrupts),
599
- clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || [],
600
- clientParamParsingOrigins: nextConfig.experimental.clientParamParsingOrigins,
601
- maxPostponedStateSizeBytes: (0,next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_24__.parseMaxPostponedStateSize)(nextConfig.experimental.maxPostponedStateSize)
602
- },
603
- waitUntil: ctx.waitUntil,
604
- onClose: (cb)=>{
605
- res.on('close', cb);
606
- },
607
- onAfterTaskError: ()=>{},
608
- onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext),
609
- err: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'invokeError'),
610
- dev: routeModule.isDev
611
- }
612
- };
613
- if (isDebugStaticShell || isDebugDynamicAccesses) {
614
- context.renderOpts.nextExport = true;
615
- context.renderOpts.supportsDynamicResponse = false;
616
- context.renderOpts.isDebugDynamicAccesses = isDebugDynamicAccesses;
617
- }
618
- // When we're revalidating in the background, we should not allow dynamic
619
- // responses.
620
- if (forceStaticRender) {
621
- context.renderOpts.supportsDynamicResponse = false;
622
- }
623
- const result = await invokeRouteModule(span, context);
624
- const { metadata } = result;
625
- const { cacheControl, headers = {}, // Add any fetch tags that were on the page to the response headers.
626
- fetchTags: cacheTags, fetchMetrics } = metadata;
627
- if (cacheTags) {
628
- headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER] = cacheTags;
629
- }
630
- // Pull any fetch metrics from the render onto the request.
631
- ;
632
- req.fetchMetrics = fetchMetrics;
633
- // we don't throw static to dynamic errors in dev as isSSG
634
- // is a best guess in dev since we don't have the prerender pass
635
- // to know whether the path is actually static or not
636
- if (isSSG && (cacheControl == null ? void 0 : cacheControl.revalidate) === 0 && !routeModule.isDev && !isRoutePPREnabled) {
637
- const staticBailoutInfo = metadata.staticBailoutInfo;
638
- const err = Object.defineProperty(new Error(`Page changed from static to dynamic at runtime ${resolvedPathname}${(staticBailoutInfo == null ? void 0 : staticBailoutInfo.description) ? `, reason: ${staticBailoutInfo.description}` : ``}` + `\nsee more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`), "__NEXT_ERROR_CODE", {
639
- value: "E132",
640
- enumerable: false,
641
- configurable: true
642
- });
643
- if (staticBailoutInfo == null ? void 0 : staticBailoutInfo.stack) {
644
- const stack = staticBailoutInfo.stack;
645
- err.stack = err.message + stack.substring(stack.indexOf('\n'));
646
- }
647
- throw err;
648
- }
649
- return {
650
- value: {
651
- kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE,
652
- html: result,
653
- headers,
654
- rscData: metadata.flightData,
655
- postponed: metadata.postponed,
656
- status: metadata.statusCode,
657
- segmentData: metadata.segmentData
658
- },
659
- cacheControl
660
- };
661
- };
662
- const responseGenerator = async ({ hasResolved, previousCacheEntry: previousIncrementalCacheEntry, isRevalidating, span, forceStaticRender = false })=>{
663
- const isProduction = routeModule.isDev === false;
664
- const didRespond = hasResolved || res.writableEnded;
665
- // skip on-demand revalidate if cache is not present and
666
- // revalidate-if-generated is set
667
- if (isOnDemandRevalidate && revalidateOnlyGenerated && !previousIncrementalCacheEntry && !isMinimalMode) {
668
- if (routerServerContext == null ? void 0 : routerServerContext.render404) {
669
- await routerServerContext.render404(req, res);
670
- } else {
671
- res.statusCode = 404;
672
- res.end('This page could not be found');
673
- }
674
- return null;
675
- }
676
- let fallbackMode;
677
- if (prerenderInfo) {
678
- fallbackMode = (0,next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.parseFallbackField)(prerenderInfo.fallback);
679
- }
680
- // When serving a HTML bot request, we want to serve a blocking render and
681
- // not the prerendered page. This ensures that the correct content is served
682
- // to the bot in the head.
683
- if (fallbackMode === next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.PRERENDER && (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__.isBot)(userAgent)) {
684
- if (!isRoutePPREnabled || isHtmlBot) {
685
- fallbackMode = next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.BLOCKING_STATIC_RENDER;
686
- }
687
- }
688
- if ((previousIncrementalCacheEntry == null ? void 0 : previousIncrementalCacheEntry.isStale) === -1) {
689
- isOnDemandRevalidate = true;
690
- }
691
- // TODO: adapt for PPR
692
- // only allow on-demand revalidate for fallback: true/blocking
693
- // or for prerendered fallback: false paths
694
- if (isOnDemandRevalidate && (fallbackMode !== next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.NOT_FOUND || previousIncrementalCacheEntry)) {
695
- fallbackMode = next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.BLOCKING_STATIC_RENDER;
696
- }
697
- if (!isMinimalMode && fallbackMode !== next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.BLOCKING_STATIC_RENDER && staticPathKey && !didRespond && !isDraftMode && pageIsDynamic && (isProduction || !isPrerendered)) {
698
- // if the page has dynamicParams: false and this pathname wasn't
699
- // prerendered trigger the no fallback handling
700
- if (// In development, fall through to render to handle missing
701
- // getStaticPaths.
702
- (isProduction || prerenderInfo) && // When fallback isn't present, abort this render so we 404
703
- fallbackMode === next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.NOT_FOUND) {
704
- if (nextConfig.experimental.adapterPath) {
705
- return await render404();
706
- }
707
- throw new next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23__.NoFallbackError();
708
- }
709
- // When cacheComponents is enabled, we can use the fallback
710
- // response if the request is not a dynamic RSC request because the
711
- // RSC data when this feature flag is enabled does not contain any
712
- // param references. Without this feature flag enabled, the RSC data
713
- // contains param references, and therefore we can't use the fallback.
714
- if (isRoutePPREnabled && (nextConfig.cacheComponents ? !isDynamicRSCRequest : !isRSCRequest)) {
715
- const cacheKey = isProduction && typeof (prerenderInfo == null ? void 0 : prerenderInfo.fallback) === 'string' ? prerenderInfo.fallback : normalizedSrcPage;
716
- const fallbackRouteParams = // If we're in production and we have fallback route params, then we
717
- // can use the manifest fallback route params.
718
- isProduction && (prerenderInfo == null ? void 0 : prerenderInfo.fallbackRouteParams) ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.createOpaqueFallbackRouteParams)(prerenderInfo.fallbackRouteParams) : // have to manually generate the fallback route params.
719
- isDebugFallbackShell ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.getFallbackRouteParams)(normalizedSrcPage, routeModule) : null;
720
- // We use the response cache here to handle the revalidation and
721
- // management of the fallback shell.
722
- const fallbackResponse = await routeModule.handleResponse({
723
- cacheKey,
724
- req,
725
- nextConfig,
726
- routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,
727
- isFallback: true,
728
- prerenderManifest,
729
- isRoutePPREnabled,
730
- responseGenerator: async ()=>doRender({
731
- span,
732
- // We pass `undefined` as rendering a fallback isn't resumed
733
- // here.
734
- postponed: undefined,
735
- fallbackRouteParams,
736
- forceStaticRender: false
737
- }),
738
- waitUntil: ctx.waitUntil,
739
- isMinimalMode
740
- });
741
- // If the fallback response was set to null, then we should return null.
742
- if (fallbackResponse === null) return null;
743
- // Otherwise, if we did get a fallback response, we should return it.
744
- if (fallbackResponse) {
745
- // Remove the cache control from the response to prevent it from being
746
- // used in the surrounding cache.
747
- delete fallbackResponse.cacheControl;
748
- return fallbackResponse;
749
- }
750
- }
751
- }
752
- // Only requests that aren't revalidating can be resumed. If we have the
753
- // minimal postponed data, then we should resume the render with it.
754
- let postponed = !isOnDemandRevalidate && !isRevalidating && minimalPostponed ? minimalPostponed : undefined;
755
- // If this is a dynamic RSC request, we should use the postponed data from
756
- // the static render (if available). This ensures that we can utilize the
757
- // resume data cache (RDC) from the static render to ensure that the data
758
- // is consistent between the static and dynamic renders.
759
- if (// Only enable RDC for Navigations if the feature is enabled.
760
- supportsRDCForNavigations && "nodejs" !== 'edge' && !isMinimalMode && incrementalCache && isDynamicRSCRequest && // We don't typically trigger an on-demand revalidation for dynamic RSC
761
- // requests, as we're typically revalidating the page in the background
762
- // instead. However, if the cache entry is stale, we should trigger a
763
- // background revalidation on dynamic RSC requests. This prevents us
764
- // from entering an infinite loop of revalidations.
765
- !forceStaticRender) {
766
- const incrementalCacheEntry = await incrementalCache.get(resolvedPathname, {
767
- kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.IncrementalCacheKind.APP_PAGE,
768
- isRoutePPREnabled: true,
769
- isFallback: false
770
- });
771
- // If the cache entry is found, we should use the postponed data from
772
- // the cache.
773
- if (incrementalCacheEntry && incrementalCacheEntry.value && incrementalCacheEntry.value.kind === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE) {
774
- // CRITICAL: we're assigning the postponed data from the cache entry
775
- // here as we're using the RDC to resume the render.
776
- postponed = incrementalCacheEntry.value.postponed;
777
- // If the cache entry is stale, we should trigger a background
778
- // revalidation so that subsequent requests will get a fresh response.
779
- if (incrementalCacheEntry && // We want to trigger this flow if the cache entry is stale and if
780
- // the requested revalidation flow is either foreground or
781
- // background.
782
- (incrementalCacheEntry.isStale === -1 || incrementalCacheEntry.isStale === true)) {
783
- // We want to schedule this on the next tick to ensure that the
784
- // render is not blocked on it.
785
- (0,next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_29__.scheduleOnNextTick)(async ()=>{
786
- const responseCache = routeModule.getResponseCache(req);
787
- try {
788
- await responseCache.revalidate(resolvedPathname, incrementalCache, isRoutePPREnabled, false, (c)=>responseGenerator({
789
- ...c,
790
- // CRITICAL: we need to set this to true as we're
791
- // revalidating in the background and typically this dynamic
792
- // RSC request is not treated as static.
793
- forceStaticRender: true
794
- }), // CRITICAL: we need to pass null here because passing the
795
- // previous cache entry here (which is stale) will switch on
796
- // isOnDemandRevalidate and break the prerendering.
797
- null, hasResolved, ctx.waitUntil);
798
- } catch (err) {
799
- console.error('Error revalidating the page in the background', err);
800
- }
801
- });
802
- }
803
- }
804
- }
805
- // When we're in minimal mode, if we're trying to debug the static shell,
806
- // we should just return nothing instead of resuming the dynamic render.
807
- if ((isDebugStaticShell || isDebugDynamicAccesses) && typeof postponed !== 'undefined') {
808
- return {
809
- cacheControl: {
810
- revalidate: 1,
811
- expire: undefined
812
- },
813
- value: {
814
- kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.PAGES,
815
- html: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__["default"].EMPTY,
816
- pageData: {},
817
- headers: undefined,
818
- status: undefined
819
- }
820
- };
821
- }
822
- const fallbackRouteParams = // If we're in production and we have fallback route params, then we
823
- // can use the manifest fallback route params if we need to render the
824
- // fallback shell.
825
- isProduction && (prerenderInfo == null ? void 0 : prerenderInfo.fallbackRouteParams) && (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'renderFallbackShell') ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.createOpaqueFallbackRouteParams)(prerenderInfo.fallbackRouteParams) : // manually generate the fallback route params.
826
- isDebugFallbackShell ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.getFallbackRouteParams)(normalizedSrcPage, routeModule) : null;
827
- // Perform the render.
828
- return doRender({
829
- span,
830
- postponed,
831
- fallbackRouteParams,
832
- forceStaticRender
833
- });
834
- };
835
- const handleResponse = async (span)=>{
836
- var _cacheEntry_value, _cachedData_headers;
837
- const cacheEntry = await routeModule.handleResponse({
838
- cacheKey: ssgCacheKey,
839
- responseGenerator: (c)=>responseGenerator({
840
- span,
841
- ...c
842
- }),
843
- routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,
844
- isOnDemandRevalidate,
845
- isRoutePPREnabled,
846
- req,
847
- nextConfig,
848
- prerenderManifest,
849
- waitUntil: ctx.waitUntil,
850
- isMinimalMode
851
- });
852
- if (isDraftMode) {
853
- res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');
854
- }
855
- // In dev, we should not cache pages for any reason.
856
- if (routeModule.isDev) {
857
- res.setHeader('Cache-Control', 'no-store, must-revalidate');
858
- }
859
- if (!cacheEntry) {
860
- if (ssgCacheKey) {
861
- // A cache entry might not be generated if a response is written
862
- // in `getInitialProps` or `getServerSideProps`, but those shouldn't
863
- // have a cache key. If we do have a cache key but we don't end up
864
- // with a cache entry, then either Next.js or the application has a
865
- // bug that needs fixing.
866
- throw Object.defineProperty(new Error('invariant: cache entry required but not generated'), "__NEXT_ERROR_CODE", {
867
- value: "E62",
868
- enumerable: false,
869
- configurable: true
870
- });
871
- }
872
- return null;
873
- }
874
- if (((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE) {
875
- var _cacheEntry_value1;
876
- throw Object.defineProperty(new Error(`Invariant app-page handler received invalid cache entry ${(_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), "__NEXT_ERROR_CODE", {
877
- value: "E707",
878
- enumerable: false,
879
- configurable: true
880
- });
881
- }
882
- const didPostpone = typeof cacheEntry.value.postponed === 'string';
883
- if (isSSG && // We don't want to send a cache header for requests that contain dynamic
884
- // data. If this is a Dynamic RSC request or wasn't a Prefetch RSC
885
- // request, then we should set the cache header.
886
- !isDynamicRSCRequest && (!didPostpone || isPrefetchRSCRequest)) {
887
- if (!isMinimalMode) {
888
- // set x-nextjs-cache header to match the header
889
- // we set for the image-optimizer
890
- res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');
891
- }
892
- // Set a header used by the client router to signal the response is static
893
- // and should respect the `static` cache staleTime value.
894
- res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_IS_PRERENDER_HEADER, '1');
895
- }
896
- const { value: cachedData } = cacheEntry;
897
- // Coerce the cache control parameter from the render.
898
- let cacheControl;
899
- // If this is a resume request in minimal mode it is streamed with dynamic
900
- // content and should not be cached.
901
- if (minimalPostponed) {
902
- cacheControl = {
903
- revalidate: 0,
904
- expire: undefined
905
- };
906
- } else if (isDynamicRSCRequest) {
907
- cacheControl = {
908
- revalidate: 0,
909
- expire: undefined
910
- };
911
- } else if (!routeModule.isDev) {
912
- // If this is a preview mode request, we shouldn't cache it
913
- if (isDraftMode) {
914
- cacheControl = {
915
- revalidate: 0,
916
- expire: undefined
917
- };
918
- } else if (!isSSG) {
919
- if (!res.getHeader('Cache-Control')) {
920
- cacheControl = {
921
- revalidate: 0,
922
- expire: undefined
923
- };
924
- }
925
- } else if (cacheEntry.cacheControl) {
926
- // If the cache entry has a cache control with a revalidate value that's
927
- // a number, use it.
928
- if (typeof cacheEntry.cacheControl.revalidate === 'number') {
929
- var _cacheEntry_cacheControl;
930
- if (cacheEntry.cacheControl.revalidate < 1) {
931
- throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${cacheEntry.cacheControl.revalidate} < 1`), "__NEXT_ERROR_CODE", {
932
- value: "E22",
933
- enumerable: false,
934
- configurable: true
935
- });
936
- }
937
- cacheControl = {
938
- revalidate: cacheEntry.cacheControl.revalidate,
939
- expire: ((_cacheEntry_cacheControl = cacheEntry.cacheControl) == null ? void 0 : _cacheEntry_cacheControl.expire) ?? nextConfig.expireTime
940
- };
941
- } else {
942
- cacheControl = {
943
- revalidate: next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.CACHE_ONE_YEAR,
944
- expire: undefined
945
- };
946
- }
947
- }
948
- }
949
- cacheEntry.cacheControl = cacheControl;
950
- if (typeof segmentPrefetchHeader === 'string' && (cachedData == null ? void 0 : cachedData.kind) === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE && cachedData.segmentData) {
951
- var _cachedData_headers1;
952
- // This is a prefetch request issued by the client Segment Cache. These
953
- // should never reach the application layer (lambda). We should either
954
- // respond from the cache (HIT) or respond with 204 No Content (MISS).
955
- // Set a header to indicate that PPR is enabled for this route. This
956
- // lets the client distinguish between a regular cache miss and a cache
957
- // miss due to PPR being disabled. In other contexts this header is used
958
- // to indicate that the response contains dynamic data, but here we're
959
- // only using it to indicate that the feature is enabled — the segment
960
- // response itself contains whether the data is dynamic.
961
- res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_DID_POSTPONE_HEADER, '2');
962
- // Add the cache tags header to the response if it exists and we're in
963
- // minimal mode while rendering a static page.
964
- const tags = (_cachedData_headers1 = cachedData.headers) == null ? void 0 : _cachedData_headers1[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER];
965
- if (isMinimalMode && isSSG && tags && typeof tags === 'string') {
966
- res.setHeader(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER, tags);
967
- }
968
- const matchedSegment = cachedData.segmentData.get(segmentPrefetchHeader);
969
- if (matchedSegment !== undefined) {
970
- // Cache hit
971
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
972
- req,
973
- res,
974
- generateEtags: nextConfig.generateEtags,
975
- poweredByHeader: nextConfig.poweredByHeader,
976
- result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__["default"].fromStatic(matchedSegment, next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.RSC_CONTENT_TYPE_HEADER),
977
- cacheControl: cacheEntry.cacheControl
978
- });
979
- }
980
- // Cache miss. Either a cache entry for this route has not been generated
981
- // (which technically should not be possible when PPR is enabled, because
982
- // at a minimum there should always be a fallback entry) or there's no
983
- // match for the requested segment. Respond with a 204 No Content. We
984
- // don't bother to respond with 404, because these requests are only
985
- // issued as part of a prefetch.
986
- res.statusCode = 204;
987
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
988
- req,
989
- res,
990
- generateEtags: nextConfig.generateEtags,
991
- poweredByHeader: nextConfig.poweredByHeader,
992
- result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__["default"].EMPTY,
993
- cacheControl: cacheEntry.cacheControl
994
- });
995
- }
996
- // If there's a callback for `onCacheEntry`, call it with the cache entry
997
- // and the revalidate options. If we support RDC for Navigations, we
998
- // prefer the `onCacheEntryV2` callback. Once RDC for Navigations is the
999
- // default, we can remove the fallback to `onCacheEntry` as
1000
- // `onCacheEntryV2` is now fully supported.
1001
- const onCacheEntry = supportsRDCForNavigations ? (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'onCacheEntryV2') ?? (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'onCacheEntry') : (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'onCacheEntry');
1002
- if (onCacheEntry) {
1003
- const finished = await onCacheEntry(cacheEntry, {
1004
- url: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'initURL') ?? req.url
1005
- });
1006
- if (finished) return null;
1007
- }
1008
- if (cachedData.headers) {
1009
- const headers = {
1010
- ...cachedData.headers
1011
- };
1012
- if (!isMinimalMode || !isSSG) {
1013
- delete headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER];
1014
- }
1015
- for (let [key, value] of Object.entries(headers)){
1016
- if (typeof value === 'undefined') continue;
1017
- if (Array.isArray(value)) {
1018
- for (const v of value){
1019
- res.appendHeader(key, v);
1020
- }
1021
- } else if (typeof value === 'number') {
1022
- value = value.toString();
1023
- res.appendHeader(key, value);
1024
- } else {
1025
- res.appendHeader(key, value);
1026
- }
1027
- }
1028
- }
1029
- // Add the cache tags header to the response if it exists and we're in
1030
- // minimal mode while rendering a static page.
1031
- const tags = (_cachedData_headers = cachedData.headers) == null ? void 0 : _cachedData_headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER];
1032
- if (isMinimalMode && isSSG && tags && typeof tags === 'string') {
1033
- res.setHeader(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER, tags);
1034
- }
1035
- // If the request is a data request, then we shouldn't set the status code
1036
- // from the response because it should always be 200. This should be gated
1037
- // behind the experimental PPR flag.
1038
- if (cachedData.status && (!isRSCRequest || !isRoutePPREnabled)) {
1039
- res.statusCode = cachedData.status;
1040
- }
1041
- // Redirect information is encoded in RSC payload, so we don't need to use redirect status codes
1042
- if (!isMinimalMode && cachedData.status && next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27__.RedirectStatusCode[cachedData.status] && isRSCRequest) {
1043
- res.statusCode = 200;
1044
- }
1045
- // Mark that the request did postpone.
1046
- if (didPostpone && !isDynamicRSCRequest) {
1047
- res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_DID_POSTPONE_HEADER, '1');
1048
- }
1049
- // we don't go through this block when preview mode is true
1050
- // as preview mode is a dynamic request (bypasses cache) and doesn't
1051
- // generate both HTML and payloads in the same request so continue to just
1052
- // return the generated payload
1053
- if (isRSCRequest && !isDraftMode) {
1054
- // If this is a dynamic RSC request, then stream the response.
1055
- if (typeof cachedData.rscData === 'undefined') {
1056
- // If the response is not an RSC response, then we can't serve it.
1057
- if (cachedData.html.contentType !== next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.RSC_CONTENT_TYPE_HEADER) {
1058
- if (nextConfig.cacheComponents) {
1059
- res.statusCode = 404;
1060
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1061
- req,
1062
- res,
1063
- generateEtags: nextConfig.generateEtags,
1064
- poweredByHeader: nextConfig.poweredByHeader,
1065
- result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__["default"].EMPTY,
1066
- cacheControl: cacheEntry.cacheControl
1067
- });
1068
- } else {
1069
- // Otherwise this case is not expected.
1070
- throw Object.defineProperty(new next_dist_shared_lib_invariant_error__WEBPACK_IMPORTED_MODULE_28__.InvariantError(`Expected RSC response, got ${cachedData.html.contentType}`), "__NEXT_ERROR_CODE", {
1071
- value: "E789",
1072
- enumerable: false,
1073
- configurable: true
1074
- });
1075
- }
1076
- }
1077
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1078
- req,
1079
- res,
1080
- generateEtags: nextConfig.generateEtags,
1081
- poweredByHeader: nextConfig.poweredByHeader,
1082
- result: cachedData.html,
1083
- cacheControl: cacheEntry.cacheControl
1084
- });
1085
- }
1086
- // As this isn't a prefetch request, we should serve the static flight
1087
- // data.
1088
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1089
- req,
1090
- res,
1091
- generateEtags: nextConfig.generateEtags,
1092
- poweredByHeader: nextConfig.poweredByHeader,
1093
- result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__["default"].fromStatic(cachedData.rscData, next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.RSC_CONTENT_TYPE_HEADER),
1094
- cacheControl: cacheEntry.cacheControl
1095
- });
1096
- }
1097
- // This is a request for HTML data.
1098
- const body = cachedData.html;
1099
- // If there's no postponed state, we should just serve the HTML. This
1100
- // should also be the case for a resume request because it's completed
1101
- // as a server render (rather than a static render).
1102
- if (!didPostpone || isMinimalMode || isRSCRequest) {
1103
- // If we're in test mode, we should add a sentinel chunk to the response
1104
- // that's between the static and dynamic parts so we can compare the
1105
- // chunks and add assertions.
1106
- if (false) {}
1107
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1108
- req,
1109
- res,
1110
- generateEtags: nextConfig.generateEtags,
1111
- poweredByHeader: nextConfig.poweredByHeader,
1112
- result: body,
1113
- cacheControl: cacheEntry.cacheControl
1114
- });
1115
- }
1116
- // If we're debugging the static shell or the dynamic API accesses, we
1117
- // should just serve the HTML without resuming the render. The returned
1118
- // HTML will be the static shell so all the Dynamic API's will be used
1119
- // during static generation.
1120
- if (isDebugStaticShell || isDebugDynamicAccesses) {
1121
- // Since we're not resuming the render, we need to at least add the
1122
- // closing body and html tags to create valid HTML.
1123
- body.push(new ReadableStream({
1124
- start (controller) {
1125
- controller.enqueue(next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_21__.ENCODED_TAGS.CLOSED.BODY_AND_HTML);
1126
- controller.close();
1127
- }
1128
- }));
1129
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1130
- req,
1131
- res,
1132
- generateEtags: nextConfig.generateEtags,
1133
- poweredByHeader: nextConfig.poweredByHeader,
1134
- result: body,
1135
- cacheControl: {
1136
- revalidate: 0,
1137
- expire: undefined
1138
- }
1139
- });
1140
- }
1141
- // If we're in test mode, we should add a sentinel chunk to the response
1142
- // that's between the static and dynamic parts so we can compare the
1143
- // chunks and add assertions.
1144
- if (false) {}
1145
- // This request has postponed, so let's create a new transformer that the
1146
- // dynamic data can pipe to that will attach the dynamic data to the end
1147
- // of the response.
1148
- const transformer = new TransformStream();
1149
- body.push(transformer.readable);
1150
- // Perform the render again, but this time, provide the postponed state.
1151
- // We don't await because we want the result to start streaming now, and
1152
- // we've already chained the transformer's readable to the render result.
1153
- doRender({
1154
- span,
1155
- postponed: cachedData.postponed,
1156
- // This is a resume render, not a fallback render, so we don't need to
1157
- // set this.
1158
- fallbackRouteParams: null,
1159
- forceStaticRender: false
1160
- }).then(async (result)=>{
1161
- var _result_value;
1162
- if (!result) {
1163
- throw Object.defineProperty(new Error('Invariant: expected a result to be returned'), "__NEXT_ERROR_CODE", {
1164
- value: "E463",
1165
- enumerable: false,
1166
- configurable: true
1167
- });
1168
- }
1169
- if (((_result_value = result.value) == null ? void 0 : _result_value.kind) !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE) {
1170
- var _result_value1;
1171
- throw Object.defineProperty(new Error(`Invariant: expected a page response, got ${(_result_value1 = result.value) == null ? void 0 : _result_value1.kind}`), "__NEXT_ERROR_CODE", {
1172
- value: "E305",
1173
- enumerable: false,
1174
- configurable: true
1175
- });
1176
- }
1177
- // Pipe the resume result to the transformer.
1178
- await result.value.html.pipeTo(transformer.writable);
1179
- }).catch((err)=>{
1180
- // An error occurred during piping or preparing the render, abort
1181
- // the transformers writer so we can terminate the stream.
1182
- transformer.writable.abort(err).catch((e)=>{
1183
- console.error("couldn't abort transformer", e);
1184
- });
1185
- });
1186
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1187
- req,
1188
- res,
1189
- generateEtags: nextConfig.generateEtags,
1190
- poweredByHeader: nextConfig.poweredByHeader,
1191
- result: body,
1192
- // We don't want to cache the response if it has postponed data because
1193
- // the response being sent to the client it's dynamic parts are streamed
1194
- // to the client on the same request.
1195
- cacheControl: {
1196
- revalidate: 0,
1197
- expire: undefined
1198
- }
1199
- });
1200
- };
1201
- // TODO: activeSpan code path is for when wrapped by
1202
- // next-server can be removed when this is no longer used
1203
- if (activeSpan) {
1204
- await handleResponse(activeSpan);
1205
- } else {
1206
- return await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest, {
1207
- spanName: `${method} ${srcPage}`,
1208
- kind: next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.SpanKind.SERVER,
1209
- attributes: {
1210
- 'http.method': method,
1211
- 'http.target': req.url
1212
- }
1213
- }, handleResponse));
1214
- }
1215
- } catch (err) {
1216
- if (!(err instanceof next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23__.NoFallbackError)) {
1217
- const silenceLog = false;
1218
- await routeModule.onRequestError(req, err, {
1219
- routerKind: 'App Router',
1220
- routePath: srcPage,
1221
- routeType: 'render',
1222
- revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__/* .getRevalidateReason */ .c)({
1223
- isStaticGeneration: isSSG,
1224
- isOnDemandRevalidate
1225
- })
1226
- }, silenceLog, routerServerContext);
1227
- }
1228
- // rethrow so that we can handle serving error page
1229
- throw err;
1230
- }
1231
- }
1232
- // TODO: omit this from production builds, only test builds should include it
1233
- /**
1234
- * Creates a readable stream that emits a PPR boundary sentinel.
1235
- *
1236
- * @returns A readable stream that emits a PPR boundary sentinel.
1237
- */ function createPPRBoundarySentinel() {
1238
- return new ReadableStream({
1239
- start (controller) {
1240
- controller.enqueue(new TextEncoder().encode('<!-- PPR_BOUNDARY_SENTINEL -->'));
1241
- controller.close();
1242
- }
1243
- });
1244
- }
1245
-
1246
- //# sourceMappingURL=app-page.js.map
1247
-
1248
-
1249
- /***/ }),
1250
-
1251
- /***/ 29294:
1252
- /***/ ((module) => {
1253
-
1254
- "use strict";
1255
- module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
1256
-
1257
- /***/ }),
1258
-
1259
- /***/ 31039:
1260
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1261
-
1262
- "use strict";
1263
-
1264
- // EXPORTS
1265
- __webpack_require__.d(__webpack_exports__, {
1266
- As: () => (/* binding */ useAuth)
1267
- });
1268
-
1269
- // UNUSED EXPORTS: usePermissions, useUserPreferences
1270
-
1271
- // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
1272
- var react = __webpack_require__(62341);
1273
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
1274
- var ssr_react = __webpack_require__(71277);
1275
- // EXTERNAL MODULE: ../../packages/api-client/dist/index.js
1276
- var dist = __webpack_require__(88887);
1277
- ;// __barrel_optimize__?names=JWTTokenSchema,validateData!=!../../packages/api-client/dist/index.js
1278
-
1279
-
1280
- ;// ./src/hooks/useAuth.ts
1281
- /* __next_internal_client_entry_do_not_use__ useAuth,useUserPreferences,usePermissions auto */
1282
-
1283
-
1284
- /**
1285
- * Enhanced authentication hook with validation and user information
1286
- */ function useAuth() {
1287
- const { data: session, status } = (0,react.useSession)();
1288
- const authInfo = (0,ssr_react.useMemo)(()=>{
1289
- const isLoading = status === 'loading';
1290
- const isAuthenticated = !!session?.user;
1291
- // Validate backend token if present
1292
- const hasValidBackendToken = session?.backendToken ? (0,dist/* validateData */.lv)(dist/* JWTTokenSchema */.k3, session.backendToken).success : false;
1293
- return {
1294
- // Session data
1295
- session,
1296
- user: session?.user,
1297
- backendUser: session?.backendUser,
1298
- // Status flags
1299
- isLoading,
1300
- isAuthenticated,
1301
- hasValidBackendToken,
1302
- // Computed properties
1303
- userDomain: session?.backendUser?.domain || session?.user?.email?.split('@')[1],
1304
- displayName: session?.user?.name || session?.user?.email?.split('@')[0] || 'User',
1305
- avatarUrl: session?.user?.image,
1306
- isAdmin: session?.backendUser?.isAdmin || false,
1307
- isModerator: session?.backendUser?.isModerator || false,
1308
- // Combined auth status
1309
- isFullyAuthenticated: isAuthenticated && hasValidBackendToken
1310
- };
1311
- }, [
1312
- session,
1313
- status
1314
- ]);
1315
- return authInfo;
1316
- }
1317
- /**
1318
- * Hook for getting user preferences and settings
1319
- */ function useUserPreferences() {
1320
- const { session } = useAuth();
1321
- return useMemo(()=>{
1322
- // In the future, this could fetch user preferences from backend
1323
- // For now, return defaults
1324
- return {
1325
- theme: 'system',
1326
- language: 'en',
1327
- timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
1328
- emailNotifications: true
1329
- };
1330
- }, [
1331
- session
1332
- ]);
1333
- }
1334
- /**
1335
- * Hook for checking user permissions (future expansion)
1336
- */ function usePermissions() {
1337
- const { backendUser, isFullyAuthenticated } = useAuth();
1338
- return useMemo(()=>{
1339
- if (!isFullyAuthenticated || !backendUser) {
1340
- return {
1341
- canRead: false,
1342
- canWrite: false,
1343
- canAdmin: false,
1344
- canManageUsers: false
1345
- };
1346
- }
1347
- // Basic permissions - in the future this would come from backend
1348
- return {
1349
- canRead: true,
1350
- canWrite: true,
1351
- canAdmin: false,
1352
- canManageUsers: false
1353
- };
1354
- }, [
1355
- backendUser,
1356
- isFullyAuthenticated
1357
- ]);
1358
- }
1359
-
1360
-
1361
- /***/ }),
1362
-
1363
- /***/ 32037:
1364
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1365
-
1366
- "use strict";
1367
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1368
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
1369
- /* harmony export */ });
1370
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
1371
-
1372
- function ArrowsRightLeftIcon({ title, titleId, ...props }, svgRef) {
1373
- return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
1374
- xmlns: "http://www.w3.org/2000/svg",
1375
- fill: "none",
1376
- viewBox: "0 0 24 24",
1377
- strokeWidth: 1.5,
1378
- stroke: "currentColor",
1379
- "aria-hidden": "true",
1380
- "data-slot": "icon",
1381
- ref: svgRef,
1382
- "aria-labelledby": titleId
1383
- }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
1384
- id: titleId
1385
- }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
1386
- strokeLinecap: "round",
1387
- strokeLinejoin: "round",
1388
- d: "M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"
1389
- }));
1390
- }
1391
- const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ArrowsRightLeftIcon);
1392
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
1393
-
1394
-
1395
- /***/ }),
1396
-
1397
- /***/ 33135:
1398
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1399
-
1400
- "use strict";
1401
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1402
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
1403
- /* harmony export */ });
1404
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
1405
-
1406
- function ShieldCheckIcon({ title, titleId, ...props }, svgRef) {
1407
- return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
1408
- xmlns: "http://www.w3.org/2000/svg",
1409
- fill: "none",
1410
- viewBox: "0 0 24 24",
1411
- strokeWidth: 1.5,
1412
- stroke: "currentColor",
1413
- "aria-hidden": "true",
1414
- "data-slot": "icon",
1415
- ref: svgRef,
1416
- "aria-labelledby": titleId
1417
- }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
1418
- id: titleId
1419
- }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
1420
- strokeLinecap: "round",
1421
- strokeLinejoin: "round",
1422
- d: "M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z"
1423
- }));
1424
- }
1425
- const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ShieldCheckIcon);
1426
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
1427
-
1428
-
1429
- /***/ }),
1430
-
1431
- /***/ 33873:
1432
- /***/ ((module) => {
1433
-
1434
- "use strict";
1435
- module.exports = require("path");
1436
-
1437
- /***/ }),
1438
-
1439
- /***/ 33898:
1440
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1441
-
1442
- "use strict";
1443
- // ESM COMPAT FLAG
1444
- __webpack_require__.r(__webpack_exports__);
1445
-
1446
- // EXPORTS
1447
- __webpack_require__.d(__webpack_exports__, {
1448
- "default": () => (/* binding */ ModerateLayout)
1449
- });
1450
-
1451
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js
1452
- var react_jsx_runtime = __webpack_require__(92692);
1453
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
1454
- var react = __webpack_require__(71277);
1455
- // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
1456
- var react_client = __webpack_require__(56305);
1457
- // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
1458
- var next_auth_react = __webpack_require__(62341);
1459
- // EXTERNAL MODULE: __barrel_optimize__?names=ApiClientProvider,AuthTokenProvider,Footer,LeftSidebar!=!../../packages/react-ui/dist/index.mjs
1460
- var dist = __webpack_require__(25888);
1461
- // EXTERNAL MODULE: ./src/i18n/routing.ts
1462
- var routing = __webpack_require__(99704);
1463
- // EXTERNAL MODULE: __barrel_optimize__?names=SimpleNavigation,useEventSubscriptions!=!../../packages/react-ui/dist/index.mjs
1464
- var react_ui_dist = __webpack_require__(25197);
1465
- ;// ../../node_modules/@heroicons/react/24/outline/esm/ClockIcon.js
1466
-
1467
- function ClockIcon({ title, titleId, ...props }, svgRef) {
1468
- return /*#__PURE__*/ react.createElement("svg", Object.assign({
1469
- xmlns: "http://www.w3.org/2000/svg",
1470
- fill: "none",
1471
- viewBox: "0 0 24 24",
1472
- strokeWidth: 1.5,
1473
- stroke: "currentColor",
1474
- "aria-hidden": "true",
1475
- "data-slot": "icon",
1476
- ref: svgRef,
1477
- "aria-labelledby": titleId
1478
- }, props), title ? /*#__PURE__*/ react.createElement("title", {
1479
- id: titleId
1480
- }, title) : null, /*#__PURE__*/ react.createElement("path", {
1481
- strokeLinecap: "round",
1482
- strokeLinejoin: "round",
1483
- d: "M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
1484
- }));
1485
- }
1486
- const ForwardRef = /*#__PURE__*/ react.forwardRef(ClockIcon);
1487
- /* harmony default export */ const esm_ClockIcon = (ForwardRef);
1488
-
1489
- ;// ../../node_modules/@heroicons/react/24/outline/esm/TagIcon.js
1490
-
1491
- function TagIcon({ title, titleId, ...props }, svgRef) {
1492
- return /*#__PURE__*/ react.createElement("svg", Object.assign({
1493
- xmlns: "http://www.w3.org/2000/svg",
1494
- fill: "none",
1495
- viewBox: "0 0 24 24",
1496
- strokeWidth: 1.5,
1497
- stroke: "currentColor",
1498
- "aria-hidden": "true",
1499
- "data-slot": "icon",
1500
- ref: svgRef,
1501
- "aria-labelledby": titleId
1502
- }, props), title ? /*#__PURE__*/ react.createElement("title", {
1503
- id: titleId
1504
- }, title) : null, /*#__PURE__*/ react.createElement("path", {
1505
- strokeLinecap: "round",
1506
- strokeLinejoin: "round",
1507
- d: "M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z"
1508
- }), /*#__PURE__*/ react.createElement("path", {
1509
- strokeLinecap: "round",
1510
- strokeLinejoin: "round",
1511
- d: "M6 6h.008v.008H6V6Z"
1512
- }));
1513
- }
1514
- const TagIcon_ForwardRef = /*#__PURE__*/ react.forwardRef(TagIcon);
1515
- /* harmony default export */ const esm_TagIcon = (TagIcon_ForwardRef);
1516
-
1517
- ;// ../../node_modules/@heroicons/react/24/outline/esm/BookOpenIcon.js
1518
-
1519
- function BookOpenIcon({ title, titleId, ...props }, svgRef) {
1520
- return /*#__PURE__*/ react.createElement("svg", Object.assign({
1521
- xmlns: "http://www.w3.org/2000/svg",
1522
- fill: "none",
1523
- viewBox: "0 0 24 24",
1524
- strokeWidth: 1.5,
1525
- stroke: "currentColor",
1526
- "aria-hidden": "true",
1527
- "data-slot": "icon",
1528
- ref: svgRef,
1529
- "aria-labelledby": titleId
1530
- }, props), title ? /*#__PURE__*/ react.createElement("title", {
1531
- id: titleId
1532
- }, title) : null, /*#__PURE__*/ react.createElement("path", {
1533
- strokeLinecap: "round",
1534
- strokeLinejoin: "round",
1535
- d: "M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25"
1536
- }));
1537
- }
1538
- const BookOpenIcon_ForwardRef = /*#__PURE__*/ react.forwardRef(BookOpenIcon);
1539
- /* harmony default export */ const esm_BookOpenIcon = (BookOpenIcon_ForwardRef);
1540
-
1541
- // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/ArrowsRightLeftIcon.js
1542
- var ArrowsRightLeftIcon = __webpack_require__(32037);
1543
- // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/ChevronLeftIcon.js
1544
- var ChevronLeftIcon = __webpack_require__(71062);
1545
- // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/Bars3Icon.js
1546
- var Bars3Icon = __webpack_require__(67255);
1547
- ;// ./src/components/moderation/ModerationNavigation.tsx
1548
- /* __next_internal_client_entry_do_not_use__ ModerationNavigation auto */
1549
-
1550
-
1551
-
1552
-
1553
-
1554
-
1555
- function ModerationNavigation({ isCollapsed, toggleCollapsed, navigationMenu }) {
1556
- const t = (0,react_client/* useTranslations */.c)('Moderation');
1557
- const tSidebar = (0,react_client/* useTranslations */.c)('Sidebar');
1558
- const pathname = (0,routing/* usePathname */.a8)();
1559
- // Handle sidebar toggle events
1560
- const handleSidebarToggle = (0,react.useCallback)(()=>{
1561
- toggleCollapsed();
1562
- }, [
1563
- toggleCollapsed
1564
- ]);
1565
- // Subscribe to sidebar toggle events
1566
- (0,react_ui_dist/* useEventSubscriptions */.C$z)({
1567
- 'browse:sidebar-toggle': handleSidebarToggle
1568
- });
1569
- const navigation = [
1570
- {
1571
- name: t('recentResources'),
1572
- href: '/moderate/recent',
1573
- icon: esm_ClockIcon,
1574
- description: t('recentResourcesDescription')
1575
- },
1576
- {
1577
- name: t('entityTags'),
1578
- href: '/moderate/entity-tags',
1579
- icon: esm_TagIcon,
1580
- description: t('entityTagsDescription')
1581
- },
1582
- {
1583
- name: t('tagSchemas'),
1584
- href: '/moderate/tag-schemas',
1585
- icon: esm_BookOpenIcon,
1586
- description: t('tagSchemasDescription')
1587
- },
1588
- {
1589
- name: t('linkedData'),
1590
- href: '/moderate/linked-data',
1591
- icon: ArrowsRightLeftIcon/* default */.A,
1592
- description: t('linkedDataDescription')
474
+ const navigation = [
475
+ {
476
+ name: t('recentResources'),
477
+ href: '/moderate/recent',
478
+ icon: esm_ClockIcon,
479
+ description: t('recentResourcesDescription')
480
+ },
481
+ {
482
+ name: t('entityTags'),
483
+ href: '/moderate/entity-tags',
484
+ icon: esm_TagIcon,
485
+ description: t('entityTagsDescription')
486
+ },
487
+ {
488
+ name: t('tagSchemas'),
489
+ href: '/moderate/tag-schemas',
490
+ icon: esm_BookOpenIcon,
491
+ description: t('tagSchemasDescription')
492
+ },
493
+ {
494
+ name: t('linkedData'),
495
+ href: '/moderate/linked-data',
496
+ icon: ArrowsRightLeftIcon/* default */.A,
497
+ description: t('linkedDataDescription')
1593
498
  }
1594
499
  ];
1595
500
  return /*#__PURE__*/ (0,react_jsx_runtime.jsx)(react_ui_dist/* SimpleNavigation */.TbX, {
@@ -1901,122 +806,1478 @@ const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(C
1901
806
  "use strict";
1902
807
  module.exports = require("next/dist/shared/lib/size-limit");
1903
808
 
1904
- /***/ }),
809
+ /***/ }),
810
+
811
+ /***/ 79551:
812
+ /***/ ((module) => {
813
+
814
+ "use strict";
815
+ module.exports = require("url");
816
+
817
+ /***/ }),
818
+
819
+ /***/ 84071:
820
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
821
+
822
+ "use strict";
823
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
824
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
825
+ /* harmony export */ });
826
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
827
+
828
+ function CogIcon({ title, titleId, ...props }, svgRef) {
829
+ return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
830
+ xmlns: "http://www.w3.org/2000/svg",
831
+ fill: "none",
832
+ viewBox: "0 0 24 24",
833
+ strokeWidth: 1.5,
834
+ stroke: "currentColor",
835
+ "aria-hidden": "true",
836
+ "data-slot": "icon",
837
+ ref: svgRef,
838
+ "aria-labelledby": titleId
839
+ }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
840
+ id: titleId
841
+ }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
842
+ strokeLinecap: "round",
843
+ strokeLinejoin: "round",
844
+ d: "M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"
845
+ }));
846
+ }
847
+ const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(CogIcon);
848
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
849
+
850
+
851
+ /***/ }),
852
+
853
+ /***/ 86439:
854
+ /***/ ((module) => {
855
+
856
+ "use strict";
857
+ module.exports = require("next/dist/shared/lib/no-fallback-error.external");
858
+
859
+ /***/ }),
860
+
861
+ /***/ 93889:
862
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
863
+
864
+ "use strict";
865
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
866
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
867
+ /* harmony export */ });
868
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
869
+
870
+ function XMarkIcon({ title, titleId, ...props }, svgRef) {
871
+ return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
872
+ xmlns: "http://www.w3.org/2000/svg",
873
+ fill: "none",
874
+ viewBox: "0 0 24 24",
875
+ strokeWidth: 1.5,
876
+ stroke: "currentColor",
877
+ "aria-hidden": "true",
878
+ "data-slot": "icon",
879
+ ref: svgRef,
880
+ "aria-labelledby": titleId
881
+ }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
882
+ id: titleId
883
+ }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
884
+ strokeLinecap: "round",
885
+ strokeLinejoin: "round",
886
+ d: "M6 18 18 6M6 6l12 12"
887
+ }));
888
+ }
889
+ const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(XMarkIcon);
890
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
891
+
892
+
893
+ /***/ }),
894
+
895
+ /***/ 93977:
896
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
897
+
898
+ "use strict";
899
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
900
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
901
+ /* harmony export */ });
902
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
903
+
904
+ function ArrowDownTrayIcon({ title, titleId, ...props }, svgRef) {
905
+ return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
906
+ xmlns: "http://www.w3.org/2000/svg",
907
+ fill: "none",
908
+ viewBox: "0 0 24 24",
909
+ strokeWidth: 1.5,
910
+ stroke: "currentColor",
911
+ "aria-hidden": "true",
912
+ "data-slot": "icon",
913
+ ref: svgRef,
914
+ "aria-labelledby": titleId
915
+ }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
916
+ id: titleId
917
+ }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
918
+ strokeLinecap: "round",
919
+ strokeLinejoin: "round",
920
+ d: "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"
921
+ }));
922
+ }
923
+ const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ArrowDownTrayIcon);
924
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
925
+
926
+
927
+ /***/ }),
928
+
929
+ /***/ 96727:
930
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
931
+
932
+ "use strict";
933
+ __webpack_require__.r(__webpack_exports__);
934
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
935
+ /* harmony export */ __next_app__: () => (/* binding */ __next_app__),
936
+ /* harmony export */ handler: () => (/* binding */ handler),
937
+ /* harmony export */ routeModule: () => (/* binding */ routeModule)
938
+ /* harmony export */ });
939
+ /* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80666);
940
+ /* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);
941
+ /* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51421);
942
+ /* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4675);
943
+ /* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29796);
944
+ /* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__);
945
+ /* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54046);
946
+ /* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__);
947
+ /* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(74928);
948
+ /* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__);
949
+ /* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19727);
950
+ /* harmony import */ var next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(24268);
951
+ /* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(60402);
952
+ /* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__);
953
+ /* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(22040);
954
+ /* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__);
955
+ /* harmony import */ var next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27186);
956
+ /* harmony import */ var next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__);
957
+ /* harmony import */ var next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(49228);
958
+ /* harmony import */ var next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11__);
959
+ /* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(97485);
960
+ /* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__);
961
+ /* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(261);
962
+ /* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__);
963
+ /* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(80885);
964
+ /* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__);
965
+ /* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(7162);
966
+ /* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__);
967
+ /* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(26713);
968
+ /* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__);
969
+ /* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(70972);
970
+ /* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__);
971
+ /* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(57341);
972
+ /* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__);
973
+ /* harmony import */ var next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(95105);
974
+ /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(38038);
975
+ /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__);
976
+ /* harmony import */ var next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(29898);
977
+ /* harmony import */ var next_dist_server_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(62918);
978
+ /* harmony import */ var next_dist_server_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_22__);
979
+ /* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(98798);
980
+ /* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__);
981
+ /* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(86439);
982
+ /* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__);
983
+ /* harmony import */ var next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(77068);
984
+ /* harmony import */ var next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_25__);
985
+ /* harmony import */ var next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(31214);
986
+ /* harmony import */ var next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__);
987
+ /* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(35402);
988
+ /* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_27__);
989
+ /* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(29059);
990
+ /* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_28__);
991
+ /* harmony import */ var next_dist_shared_lib_invariant_error__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(70722);
992
+ /* harmony import */ var next_dist_shared_lib_invariant_error__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_invariant_error__WEBPACK_IMPORTED_MODULE_29__);
993
+ /* harmony import */ var next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(31182);
994
+ /* harmony import */ var next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30__);
995
+ /* harmony import */ var next_dist_shared_lib_router_utils_interception_routes__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(43954);
996
+ /* harmony import */ var next_dist_shared_lib_router_utils_interception_routes__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_interception_routes__WEBPACK_IMPORTED_MODULE_31__);
997
+ /* harmony import */ var next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(17891);
998
+ /* harmony import */ var next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__);
999
+ /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
1000
+ /* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_27__) if(["default","__next_app__","routeModule","handler"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_27__[__WEBPACK_IMPORT_KEY__]
1001
+ /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
1002
+ const module0 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 95235));
1003
+ const module1 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 25195));
1004
+ const module2 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
1005
+ const module3 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 72353));
1006
+ const module4 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 4253, 23));
1007
+ const module5 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 49184, 23));
1008
+ const module6 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 57149));
1009
+ const module7 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
1010
+ const module8 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 28310));
1011
+ const module9 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 59406));
1012
+ const module10 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
1013
+ const page11 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 61493));
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+
1020
+
1021
+
1022
+
1023
+
1024
+
1025
+
1026
+
1027
+
1028
+
1029
+
1030
+
1031
+
1032
+
1033
+
1034
+
1035
+
1036
+
1037
+
1038
+
1039
+
1040
+
1041
+ // We inject the tree and pages here so that we can use them in the route
1042
+ // module.
1043
+ const tree = {
1044
+ children: [
1045
+ '',
1046
+ {
1047
+ children: [
1048
+ '[locale]',
1049
+ {
1050
+ children: [
1051
+ 'moderate',
1052
+ {
1053
+ children: ['__PAGE__', {}, {
1054
+ page: [page11, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/page.tsx"],
1055
+
1056
+ }]
1057
+ },
1058
+ {
1059
+ 'layout': [module9, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/layout.tsx"],
1060
+ 'global-error': [module10, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
1061
+
1062
+ },
1063
+ []
1064
+ ]
1065
+ },
1066
+ {
1067
+ 'layout': [module6, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/layout.tsx"],
1068
+ 'global-error': [module7, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
1069
+ 'not-found': [module8, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/not-found.tsx"],
1070
+
1071
+ },
1072
+ ["_not-found","_global-error","api"]
1073
+ ]
1074
+ },
1075
+ {
1076
+ 'layout': [module0, "/home/runner/work/semiont/semiont/apps/frontend/src/app/layout.tsx"],
1077
+ 'error': [module1, "/home/runner/work/semiont/semiont/apps/frontend/src/app/error.tsx"],
1078
+ 'global-error': [module2, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
1079
+ 'not-found': [module3, "/home/runner/work/semiont/semiont/apps/frontend/src/app/not-found.tsx"],
1080
+ 'forbidden': [module4, "next/dist/client/components/builtin/forbidden.js"],
1081
+ 'unauthorized': [module5, "next/dist/client/components/builtin/unauthorized.js"],
1082
+
1083
+ },
1084
+ []
1085
+ ]
1086
+ }.children;
1087
+ const __next_app_require__ = __webpack_require__
1088
+ const __next_app_load_chunk__ = () => Promise.resolve()
1089
+ const __next_app__ = {
1090
+ require: __next_app_require__,
1091
+ loadChunk: __next_app_load_chunk__
1092
+ };
1093
+
1905
1094
 
1906
- /***/ 79551:
1907
- /***/ ((module) => {
1908
1095
 
1909
- "use strict";
1910
- module.exports = require("url");
1911
1096
 
1912
- /***/ }),
1913
1097
 
1914
- /***/ 84071:
1915
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1916
1098
 
1917
- "use strict";
1918
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1919
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
1920
- /* harmony export */ });
1921
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
1922
1099
 
1923
- function CogIcon({ title, titleId, ...props }, svgRef) {
1924
- return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
1925
- xmlns: "http://www.w3.org/2000/svg",
1926
- fill: "none",
1927
- viewBox: "0 0 24 24",
1928
- strokeWidth: 1.5,
1929
- stroke: "currentColor",
1930
- "aria-hidden": "true",
1931
- "data-slot": "icon",
1932
- ref: svgRef,
1933
- "aria-labelledby": titleId
1934
- }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
1935
- id: titleId
1936
- }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
1937
- strokeLinecap: "round",
1938
- strokeLinejoin: "round",
1939
- d: "M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"
1940
- }));
1100
+ // Create and export the route module that will be consumed.
1101
+ const routeModule = new next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({
1102
+ definition: {
1103
+ kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,
1104
+ page: "/[locale]/moderate/page",
1105
+ pathname: "/[locale]/moderate",
1106
+ // The following aren't used in production.
1107
+ bundlePath: '',
1108
+ filename: '',
1109
+ appPaths: []
1110
+ },
1111
+ userland: {
1112
+ loaderTree: tree
1113
+ },
1114
+ distDir: ".next" || 0,
1115
+ relativeProjectDir: false || ''
1116
+ });
1117
+ function buildDynamicSegmentPlaceholder(param) {
1118
+ const { repeat, optional } = (0,next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__.getParamProperties)(param.paramType);
1119
+ if (optional) {
1120
+ return `[[...${param.paramName}]]`;
1121
+ }
1122
+ if (repeat) {
1123
+ return `[...${param.paramName}]`;
1124
+ }
1125
+ return `[${param.paramName}]`;
1126
+ }
1127
+ /**
1128
+ * Builds the cache key for the most complete prerenderable shell we can derive
1129
+ * from the shell that matched this request. Only params that can still be
1130
+ * filled by `generateStaticParams` are substituted; fully dynamic params stay
1131
+ * as placeholders so a request like `/c/foo` can complete `/[one]/[two]` into
1132
+ * `/c/[two]` rather than `/c/foo`.
1133
+ */ function buildCompletedShellCacheKey(fallbackPathname, remainingPrerenderableParams, params) {
1134
+ const prerenderableParamsByName = new Map(remainingPrerenderableParams.map((param)=>[
1135
+ param.paramName,
1136
+ param
1137
+ ]));
1138
+ return fallbackPathname.split('/').map((segment)=>{
1139
+ const segmentParam = (0,next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__.getSegmentParam)(segment);
1140
+ if (!segmentParam) {
1141
+ return segment;
1142
+ }
1143
+ const remainingParam = prerenderableParamsByName.get(segmentParam.paramName);
1144
+ if (!remainingParam) {
1145
+ return segment;
1146
+ }
1147
+ const value = params == null ? void 0 : params[remainingParam.paramName];
1148
+ if (!value) {
1149
+ return segment;
1150
+ }
1151
+ const encodedValue = Array.isArray(value) ? value.map((item)=>encodeURIComponent(item)).join('/') : encodeURIComponent(value);
1152
+ return segment.replace(buildDynamicSegmentPlaceholder(remainingParam), encodedValue);
1153
+ }).join('/') || '/';
1154
+ }
1155
+ async function handler(req, res, ctx) {
1156
+ var _this, _prerenderManifest_routes_resolvedPathname, _prerenderInfo_fallbackRootParams, _prerenderInfo_fallbackRouteParams;
1157
+ if (ctx.requestMeta) {
1158
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.setRequestMeta)(req, ctx.requestMeta);
1159
+ }
1160
+ if (routeModule.isDev) {
1161
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());
1162
+ }
1163
+ const isMinimalMode = Boolean((0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'minimalMode'));
1164
+ let srcPage = "/[locale]/moderate/page";
1165
+ // turbopack doesn't normalize `/index` in the page name
1166
+ // so we need to to process dynamic routes properly
1167
+ // TODO: fix turbopack providing differing value from webpack
1168
+ if (false) {} else if (srcPage === '/index') {
1169
+ // we always normalize /index specifically
1170
+ srcPage = '/';
1171
+ }
1172
+ const multiZoneDraftMode = false;
1173
+ const prepareResult = await routeModule.prepare(req, res, {
1174
+ srcPage,
1175
+ multiZoneDraftMode
1176
+ });
1177
+ if (!prepareResult) {
1178
+ res.statusCode = 400;
1179
+ res.end('Bad Request');
1180
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
1181
+ return null;
1182
+ }
1183
+ const { buildId, query, params, pageIsDynamic, buildManifest, nextFontManifest, reactLoadableManifest, serverActionsManifest, clientReferenceManifest, subresourceIntegrityManifest, prerenderManifest, isDraftMode, resolvedPathname, revalidateOnlyGenerated, routerServerContext, nextConfig, parsedUrl, interceptionRoutePatterns, deploymentId, clientAssetToken } = prepareResult;
1184
+ const normalizedSrcPage = (0,next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__.normalizeAppPath)(srcPage);
1185
+ let { isOnDemandRevalidate } = prepareResult;
1186
+ // We use the resolvedPathname instead of the parsedUrl.pathname because it
1187
+ // is not rewritten as resolvedPathname is. This will ensure that the correct
1188
+ // prerender info is used instead of using the original pathname as the
1189
+ // source. If however PPR is enabled and cacheComponents is disabled, we
1190
+ // treat the pathname as dynamic. Currently, there's a bug in the PPR
1191
+ // implementation that incorrectly leaves %%drp placeholders in the output of
1192
+ // parallel routes. This is addressed with cacheComponents.
1193
+ const prerenderMatch = nextConfig.experimental.ppr && !nextConfig.cacheComponents && (0,next_dist_shared_lib_router_utils_interception_routes__WEBPACK_IMPORTED_MODULE_31__.isInterceptionRouteAppPath)(resolvedPathname) ? null : routeModule.match(resolvedPathname, prerenderManifest);
1194
+ const prerenderInfo = (prerenderMatch == null ? void 0 : prerenderMatch.route) ?? null;
1195
+ const isPrerendered = !!prerenderManifest.routes[resolvedPathname];
1196
+ const userAgent = req.headers['user-agent'] || '';
1197
+ const botType = (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__.getBotType)(userAgent);
1198
+ const isHtmlBot = (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.isHtmlBotRequest)(req);
1199
+ /**
1200
+ * If true, this indicates that the request being made is for an app
1201
+ * prefetch request.
1202
+ */ const isPrefetchRSCRequest = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'isPrefetchRSCRequest') ?? req.headers[next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_ROUTER_PREFETCH_HEADER] === '1' // exclude runtime prefetches, which use '2'
1203
+ ;
1204
+ // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later
1205
+ const isRSCRequest = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'isRSCRequest') ?? Boolean(req.headers[next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.RSC_HEADER]);
1206
+ const isPossibleServerAction = (0,next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__.getIsPossibleServerAction)(req);
1207
+ /**
1208
+ * If the route being rendered is an app page, and the ppr feature has been
1209
+ * enabled, then the given route _could_ support PPR.
1210
+ */ const couldSupportPPR = (0,next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__.checkIsAppPPREnabled)(nextConfig.experimental.ppr);
1211
+ // Stash postponed state for server actions when in minimal mode.
1212
+ // We extract it here so the RDC is available for the re-render after the action completes.
1213
+ const resumeStateLengthHeader = req.headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_RESUME_STATE_LENGTH_HEADER];
1214
+ if (!(0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed') && isMinimalMode && couldSupportPPR && isPossibleServerAction && resumeStateLengthHeader && typeof resumeStateLengthHeader === 'string') {
1215
+ const stateLength = parseInt(resumeStateLengthHeader, 10);
1216
+ const { maxPostponedStateSize, maxPostponedStateSizeBytes } = (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getMaxPostponedStateSize)(nextConfig.experimental.maxPostponedStateSize);
1217
+ if (!isNaN(stateLength) && stateLength > 0) {
1218
+ var _nextConfig_experimental_serverActions;
1219
+ if (stateLength > maxPostponedStateSizeBytes) {
1220
+ res.statusCode = 413;
1221
+ res.end((0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getPostponedStateExceededErrorMessage)(maxPostponedStateSize));
1222
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
1223
+ return null;
1224
+ }
1225
+ // Calculate max total body size to prevent buffering excessively large
1226
+ // payloads before the action handler checks. We use stateLength (not
1227
+ // maxPostponedStateSizeBytes) so the postponed state doesn't eat into
1228
+ // the action body budget - it's already validated above.
1229
+ const defaultActionBodySizeLimit = '1 MB';
1230
+ const actionBodySizeLimit = ((_nextConfig_experimental_serverActions = nextConfig.experimental.serverActions) == null ? void 0 : _nextConfig_experimental_serverActions.bodySizeLimit) ?? defaultActionBodySizeLimit;
1231
+ const actionBodySizeLimitBytes = actionBodySizeLimit !== defaultActionBodySizeLimit ? (__webpack_require__(32683).parse)(actionBodySizeLimit) : 1024 * 1024 // 1 MB
1232
+ ;
1233
+ const maxTotalBodySize = stateLength + actionBodySizeLimitBytes;
1234
+ const fullBody = await (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.readBodyWithSizeLimit)(req, maxTotalBodySize);
1235
+ if (fullBody === null) {
1236
+ res.statusCode = 413;
1237
+ res.end(`Request body exceeded limit. ` + `To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit`);
1238
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
1239
+ return null;
1240
+ }
1241
+ if (fullBody.length >= stateLength) {
1242
+ // Extract postponed state from the beginning
1243
+ const postponedState = fullBody.subarray(0, stateLength).toString('utf8');
1244
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'postponed', postponedState);
1245
+ // Store the remaining action body for the action handler
1246
+ const actionBody = fullBody.subarray(stateLength);
1247
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'actionBody', actionBody);
1248
+ } else {
1249
+ throw Object.defineProperty(new Error(`invariant: expected ${stateLength} bytes of postponed state but only received ${fullBody.length} bytes`), "__NEXT_ERROR_CODE", {
1250
+ value: "E979",
1251
+ enumerable: false,
1252
+ configurable: true
1253
+ });
1254
+ }
1255
+ }
1256
+ }
1257
+ if (!(0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed') && couldSupportPPR && req.headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_RESUME_HEADER] === '1' && req.method === 'POST') {
1258
+ const { maxPostponedStateSize, maxPostponedStateSizeBytes } = (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getMaxPostponedStateSize)(nextConfig.experimental.maxPostponedStateSize);
1259
+ // Decode the postponed state from the request body, it will come as
1260
+ // an array of buffers, so collect them and then concat them to form
1261
+ // the string.
1262
+ const body = await (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.readBodyWithSizeLimit)(req, maxPostponedStateSizeBytes);
1263
+ if (body === null) {
1264
+ res.statusCode = 413;
1265
+ res.end((0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getPostponedStateExceededErrorMessage)(maxPostponedStateSize));
1266
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
1267
+ return null;
1268
+ }
1269
+ const postponed = body.toString('utf8');
1270
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'postponed', postponed);
1271
+ }
1272
+ // When enabled, this will allow the use of the `?__nextppronly` query to
1273
+ // enable debugging of the static shell.
1274
+ const hasDebugStaticShellQuery = false && 0;
1275
+ // When enabled, this will allow the use of the `?__nextppronly` query
1276
+ // to enable debugging of the fallback shell.
1277
+ const hasDebugFallbackShellQuery = hasDebugStaticShellQuery && query.__nextppronly === 'fallback';
1278
+ // Whether the testing API is exposed (dev mode or explicit flag)
1279
+ const exposeTestingApi = routeModule.isDev === true || nextConfig.experimental.exposeTestingApiInProductionBuild === true;
1280
+ // Enable the Instant Navigation Testing API. Renders only the prefetched
1281
+ // portion of the page, excluding dynamic content. This allows tests to
1282
+ // assert on the prefetched UI state deterministically.
1283
+ // - Header: Used for client-side navigations where we can set request headers
1284
+ // - Cookie: Used for MPA navigations (page reload, full page load) where we
1285
+ // can't set request headers. Only applies to document requests (no RSC
1286
+ // header) - RSC requests should proceed normally even during a locked scope,
1287
+ // with blocking happening on the client side.
1288
+ const isInstantNavigationTest = exposeTestingApi && (req.headers[next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_INSTANT_PREFETCH_HEADER] === '1' || req.headers[next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.RSC_HEADER] === undefined && typeof req.headers.cookie === 'string' && req.headers.cookie.includes(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_INSTANT_TEST_COOKIE + '='));
1289
+ // This page supports PPR if it is marked as being `PARTIALLY_STATIC` in the
1290
+ // prerender manifest and this is an app page.
1291
+ const isRoutePPREnabled = // When the instant navigation testing API is active, enable the PPR
1292
+ // prerender path even without Cache Components. In dev mode without CC,
1293
+ // static pages need this path to produce buffered segment data (the
1294
+ // legacy prerender path hangs in dev mode).
1295
+ (couldSupportPPR || isInstantNavigationTest) && (((_this = prerenderManifest.routes[normalizedSrcPage] ?? prerenderManifest.dynamicRoutes[normalizedSrcPage]) == null ? void 0 : _this.renderingMode) === 'PARTIALLY_STATIC' || // Ideally we'd want to check the appConfig to see if this page has PPR
1296
+ // enabled or not, but that would require plumbing the appConfig through
1297
+ // to the server during development. We assume that the page supports it
1298
+ // but only during development or when the testing API is exposed.
1299
+ (hasDebugStaticShellQuery || isInstantNavigationTest) && (exposeTestingApi || (routerServerContext == null ? void 0 : routerServerContext.experimentalTestProxy) === true));
1300
+ const isDebugStaticShell = (hasDebugStaticShellQuery || isInstantNavigationTest) && isRoutePPREnabled;
1301
+ // We should enable debugging dynamic accesses when the static shell
1302
+ // debugging has been enabled and we're also in development mode.
1303
+ const isDebugDynamicAccesses = isDebugStaticShell && routeModule.isDev === true;
1304
+ const isDebugFallbackShell = hasDebugFallbackShellQuery && isRoutePPREnabled;
1305
+ // If we're in minimal mode, then try to get the postponed information from
1306
+ // the request metadata. If available, use it for resuming the postponed
1307
+ // render.
1308
+ const minimalPostponed = isRoutePPREnabled ? (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed') : undefined;
1309
+ // If PPR is enabled, and this is a RSC request (but not a prefetch), then
1310
+ // we can use this fact to only generate the flight data for the request
1311
+ // because we can't cache the HTML (as it's also dynamic).
1312
+ const staticPrefetchDataRoute = (_prerenderManifest_routes_resolvedPathname = prerenderManifest.routes[resolvedPathname]) == null ? void 0 : _prerenderManifest_routes_resolvedPathname.prefetchDataRoute;
1313
+ let isDynamicRSCRequest = isRoutePPREnabled && isRSCRequest && !isPrefetchRSCRequest && // If generated at build time, treat the RSC request as static
1314
+ // so we can serve the prebuilt .rsc without a dynamic render.
1315
+ // Only do this for routes that have a concrete prefetchDataRoute.
1316
+ !staticPrefetchDataRoute;
1317
+ // During a PPR revalidation, the RSC request is not dynamic if we do not have the postponed data.
1318
+ // We only attach the postponed data during a resume. If there's no postponed data, then it must be a revalidation.
1319
+ // This is to ensure that we don't bypass the cache during a revalidation.
1320
+ if (isMinimalMode) {
1321
+ isDynamicRSCRequest = isDynamicRSCRequest && !!minimalPostponed;
1322
+ }
1323
+ // Need to read this before it's stripped by stripFlightHeaders. We don't
1324
+ // need to transfer it to the request meta because it's only read
1325
+ // within this function; the static segment data should have already been
1326
+ // generated, so we will always either return a static response or a 404.
1327
+ const segmentPrefetchHeader = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'segmentPrefetchRSCRequest');
1328
+ // TODO: investigate existing bug with shouldServeStreamingMetadata always
1329
+ // being true for a revalidate due to modifying the base-server this.renderOpts
1330
+ // when fixing this to correct logic it causes hydration issue since we set
1331
+ // serveStreamingMetadata to true during export
1332
+ const serveStreamingMetadata = botType && isRoutePPREnabled ? false : !userAgent ? true : (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.shouldServeStreamingMetadata)(userAgent, nextConfig.htmlLimitedBots);
1333
+ const isSSG = Boolean((prerenderInfo || isPrerendered || prerenderManifest.routes[normalizedSrcPage]) && // If this is a bot request and PPR is enabled, then we don't want
1334
+ // to serve a static response. This applies to both DOM bots (like Googlebot)
1335
+ // and HTML-limited bots.
1336
+ !(botType && isRoutePPREnabled));
1337
+ // When a page supports cacheComponents, we can support RDC for Navigations
1338
+ const supportsRDCForNavigations = isRoutePPREnabled && nextConfig.cacheComponents === true;
1339
+ // In development, we always want to generate dynamic HTML.
1340
+ const supportsDynamicResponse = // If we're in development, we always support dynamic HTML, unless it's
1341
+ // a data request, in which case we only produce static HTML.
1342
+ routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports
1343
+ // dynamic HTML.
1344
+ !isSSG || // If this request has provided postponed data, it supports dynamic
1345
+ // HTML.
1346
+ typeof minimalPostponed === 'string' || // If this handler supports onCacheEntryV2, then we can only support
1347
+ // dynamic responses if it's a dynamic RSC request and not in minimal mode. If it
1348
+ // doesn't support it we must fallback to the default behavior.
1349
+ (supportsRDCForNavigations && (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'onCacheEntryV2') ? // which will generate the RDC for the route. When resuming a Dynamic
1350
+ // RSC request, we'll pass the minimal postponed data to the render
1351
+ // which will trigger the `supportsDynamicResponse` to be true.
1352
+ isDynamicRSCRequest && !isMinimalMode : isDynamicRSCRequest);
1353
+ // When bots request PPR page, perform the full dynamic rendering.
1354
+ // This applies to both DOM bots (like Googlebot) and HTML-limited bots.
1355
+ const shouldWaitOnAllReady = Boolean(botType) && isRoutePPREnabled;
1356
+ const remainingPrerenderableParams = (prerenderInfo == null ? void 0 : prerenderInfo.remainingPrerenderableParams) ?? [];
1357
+ const hasUnresolvedRootFallbackParams = (prerenderInfo == null ? void 0 : prerenderInfo.fallback) === null && (((_prerenderInfo_fallbackRootParams = prerenderInfo.fallbackRootParams) == null ? void 0 : _prerenderInfo_fallbackRootParams.length) ?? 0) > 0;
1358
+ let ssgCacheKey = null;
1359
+ if (!isDraftMode && isSSG && !supportsDynamicResponse && !isPossibleServerAction && !minimalPostponed && !isDynamicRSCRequest) {
1360
+ // For normal SSG routes we cache by the fully resolved pathname. For
1361
+ // partial fallbacks we instead derive the cache key from the shell
1362
+ // that matched this request so `/prefix/[one]/[two]` can specialize into
1363
+ // `/prefix/c/[two]` without promoting all the way to `/prefix/c/foo`.
1364
+ const fallbackPathname = prerenderMatch ? typeof (prerenderInfo == null ? void 0 : prerenderInfo.fallback) === 'string' ? prerenderInfo.fallback : prerenderMatch.source : null;
1365
+ if (nextConfig.experimental.partialFallbacks === true && fallbackPathname && (prerenderInfo == null ? void 0 : prerenderInfo.fallbackRouteParams) && !hasUnresolvedRootFallbackParams) {
1366
+ if (remainingPrerenderableParams.length > 0) {
1367
+ const completedShellCacheKey = buildCompletedShellCacheKey(fallbackPathname, remainingPrerenderableParams, params);
1368
+ // If applying the current request params doesn't make the shell any
1369
+ // more complete, then this shell is already at its most complete
1370
+ // form and should remain shared rather than creating a new cache entry.
1371
+ ssgCacheKey = completedShellCacheKey !== fallbackPathname ? completedShellCacheKey : null;
1372
+ }
1373
+ } else {
1374
+ ssgCacheKey = resolvedPathname;
1375
+ }
1376
+ }
1377
+ // the staticPathKey differs from ssgCacheKey since
1378
+ // ssgCacheKey is null in dev since we're always in "dynamic"
1379
+ // mode in dev to bypass the cache. It can also be null for partial
1380
+ // fallback shells that should remain shared and must not create a
1381
+ // param-specific ISR entry, but we still need to honor fallback handling.
1382
+ let staticPathKey = ssgCacheKey;
1383
+ if (!staticPathKey && (routeModule.isDev || isSSG && pageIsDynamic && (prerenderInfo == null ? void 0 : prerenderInfo.fallbackRouteParams))) {
1384
+ staticPathKey = resolvedPathname;
1385
+ }
1386
+ // If this is a request for an app path that should be statically generated
1387
+ // and we aren't in the edge runtime, strip the flight headers so it will
1388
+ // generate the static response.
1389
+ if (!routeModule.isDev && !isDraftMode && isSSG && isRSCRequest && !isDynamicRSCRequest) {
1390
+ (0,next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__/* .stripFlightHeaders */ .d)(req.headers);
1391
+ }
1392
+ const ComponentMod = {
1393
+ ...next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_27__,
1394
+ tree,
1395
+ handler,
1396
+ routeModule,
1397
+ __next_app__
1398
+ };
1399
+ // Before rendering (which initializes component tree modules), we have to
1400
+ // set the reference manifests to our global store so Server Action's
1401
+ // encryption util can access to them at the top level of the page module.
1402
+ if (serverActionsManifest && clientReferenceManifest) {
1403
+ (0,next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11__.setManifestsSingleton)({
1404
+ page: srcPage,
1405
+ clientReferenceManifest,
1406
+ serverActionsManifest
1407
+ });
1408
+ }
1409
+ const method = req.method || 'GET';
1410
+ const tracer = (0,next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.getTracer)();
1411
+ const activeSpan = tracer.getActiveScopeSpan();
1412
+ const isWrappedByNextServer = Boolean(routerServerContext == null ? void 0 : routerServerContext.isWrappedByNextServer);
1413
+ const remainingFallbackRouteParams = nextConfig.experimental.partialFallbacks === true && remainingPrerenderableParams.length > 0 ? (prerenderInfo == null ? void 0 : (_prerenderInfo_fallbackRouteParams = prerenderInfo.fallbackRouteParams) == null ? void 0 : _prerenderInfo_fallbackRouteParams.filter((param)=>!remainingPrerenderableParams.some((prerenderableParam)=>prerenderableParam.paramName === param.paramName))) ?? [] : [];
1414
+ const render404 = async ()=>{
1415
+ // TODO: should route-module itself handle rendering the 404
1416
+ if (routerServerContext == null ? void 0 : routerServerContext.render404) {
1417
+ await routerServerContext.render404(req, res, parsedUrl, false);
1418
+ } else {
1419
+ res.end('This page could not be found');
1420
+ }
1421
+ return null;
1422
+ };
1423
+ try {
1424
+ const varyHeader = routeModule.getVaryHeader(resolvedPathname, interceptionRoutePatterns);
1425
+ res.setHeader('Vary', varyHeader);
1426
+ let parentSpan;
1427
+ const invokeRouteModule = async (span, context)=>{
1428
+ const nextReq = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__.NodeNextRequest(req);
1429
+ const nextRes = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__.NodeNextResponse(res);
1430
+ return routeModule.render(nextReq, nextRes, context).finally(()=>{
1431
+ if (!span) return;
1432
+ span.setAttributes({
1433
+ 'http.status_code': res.statusCode,
1434
+ 'next.rsc': false
1435
+ });
1436
+ const rootSpanAttributes = tracer.getRootSpanAttributes();
1437
+ // We were unable to get attributes, probably OTEL is not enabled
1438
+ if (!rootSpanAttributes) {
1439
+ return;
1440
+ }
1441
+ if (rootSpanAttributes.get('next.span_type') !== next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest) {
1442
+ console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);
1443
+ return;
1444
+ }
1445
+ const route = rootSpanAttributes.get('next.route');
1446
+ if (route) {
1447
+ const name = `${method} ${route}`;
1448
+ span.setAttributes({
1449
+ 'next.route': route,
1450
+ 'http.route': route,
1451
+ 'next.span_name': name
1452
+ });
1453
+ span.updateName(name);
1454
+ // Propagate http.route to the parent span if one exists (e.g.
1455
+ // a platform-created HTTP span in adapter deployments).
1456
+ if (parentSpan && parentSpan !== span) {
1457
+ parentSpan.setAttribute('http.route', route);
1458
+ parentSpan.updateName(name);
1459
+ }
1460
+ } else {
1461
+ span.updateName(`${method} ${srcPage}`);
1462
+ }
1463
+ });
1464
+ };
1465
+ const incrementalCache = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'incrementalCache') || await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest, isMinimalMode);
1466
+ incrementalCache == null ? void 0 : incrementalCache.resetRequestCache();
1467
+ globalThis.__incrementalCache = incrementalCache;
1468
+ const doRender = async ({ span, postponed, fallbackRouteParams, forceStaticRender })=>{
1469
+ const context = {
1470
+ query,
1471
+ params,
1472
+ page: normalizedSrcPage,
1473
+ sharedContext: {
1474
+ buildId,
1475
+ deploymentId,
1476
+ clientAssetToken
1477
+ },
1478
+ serverComponentsHmrCache: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'serverComponentsHmrCache'),
1479
+ fallbackRouteParams,
1480
+ renderOpts: {
1481
+ App: ()=>null,
1482
+ Document: ()=>null,
1483
+ pageConfig: {},
1484
+ ComponentMod,
1485
+ Component: (0,next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__/* .interopDefault */ .T)(ComponentMod),
1486
+ params,
1487
+ routeModule,
1488
+ page: srcPage,
1489
+ postponed,
1490
+ shouldWaitOnAllReady,
1491
+ serveStreamingMetadata,
1492
+ supportsDynamicResponse: typeof postponed === 'string' || supportsDynamicResponse,
1493
+ buildManifest,
1494
+ nextFontManifest,
1495
+ reactLoadableManifest,
1496
+ subresourceIntegrityManifest,
1497
+ setCacheStatus: routerServerContext == null ? void 0 : routerServerContext.setCacheStatus,
1498
+ setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus,
1499
+ setReactDebugChannel: routerServerContext == null ? void 0 : routerServerContext.setReactDebugChannel,
1500
+ sendErrorsToBrowser: routerServerContext == null ? void 0 : routerServerContext.sendErrorsToBrowser,
1501
+ dir: true ? (__webpack_require__(33873).join)(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir) : 0,
1502
+ isDraftMode,
1503
+ botType,
1504
+ isOnDemandRevalidate,
1505
+ isPossibleServerAction,
1506
+ assetPrefix: nextConfig.assetPrefix,
1507
+ nextConfigOutput: nextConfig.output,
1508
+ crossOrigin: nextConfig.crossOrigin,
1509
+ trailingSlash: nextConfig.trailingSlash,
1510
+ images: nextConfig.images,
1511
+ previewProps: prerenderManifest.preview,
1512
+ enableTainting: nextConfig.experimental.taint,
1513
+ htmlLimitedBots: nextConfig.htmlLimitedBots,
1514
+ reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,
1515
+ multiZoneDraftMode,
1516
+ incrementalCache,
1517
+ cacheLifeProfiles: nextConfig.cacheLife,
1518
+ basePath: nextConfig.basePath,
1519
+ serverActions: nextConfig.experimental.serverActions,
1520
+ logServerFunctions: typeof nextConfig.logging === 'object' && Boolean(nextConfig.logging.serverFunctions),
1521
+ ...isDebugStaticShell || isDebugDynamicAccesses || isDebugFallbackShell ? {
1522
+ isBuildTimePrerendering: true,
1523
+ supportsDynamicResponse: false,
1524
+ isStaticGeneration: true,
1525
+ isDebugDynamicAccesses: isDebugDynamicAccesses
1526
+ } : {},
1527
+ cacheComponents: Boolean(nextConfig.cacheComponents),
1528
+ experimental: {
1529
+ isRoutePPREnabled,
1530
+ expireTime: nextConfig.expireTime,
1531
+ staleTimes: nextConfig.experimental.staleTimes,
1532
+ dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),
1533
+ optimisticRouting: Boolean(nextConfig.experimental.optimisticRouting),
1534
+ inlineCss: Boolean(nextConfig.experimental.inlineCss),
1535
+ prefetchInlining: nextConfig.experimental.prefetchInlining ?? false,
1536
+ authInterrupts: Boolean(nextConfig.experimental.authInterrupts),
1537
+ cachedNavigations: Boolean(nextConfig.experimental.cachedNavigations),
1538
+ clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || [],
1539
+ clientParamParsingOrigins: nextConfig.experimental.clientParamParsingOrigins,
1540
+ maxPostponedStateSizeBytes: (0,next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_25__.parseMaxPostponedStateSize)(nextConfig.experimental.maxPostponedStateSize)
1541
+ },
1542
+ waitUntil: ctx.waitUntil,
1543
+ onClose: (cb)=>{
1544
+ res.on('close', cb);
1545
+ },
1546
+ onAfterTaskError: ()=>{},
1547
+ onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext),
1548
+ err: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'invokeError')
1549
+ }
1550
+ };
1551
+ // When we're revalidating in the background, we should not allow dynamic
1552
+ // responses.
1553
+ if (forceStaticRender) {
1554
+ context.renderOpts.supportsDynamicResponse = false;
1555
+ }
1556
+ const result = await invokeRouteModule(span, context);
1557
+ const { metadata } = result;
1558
+ const { cacheControl, headers = {}, // Add any fetch tags that were on the page to the response headers.
1559
+ fetchTags: cacheTags, fetchMetrics } = metadata;
1560
+ if (cacheTags) {
1561
+ headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER] = cacheTags;
1562
+ }
1563
+ // Pull any fetch metrics from the render onto the request.
1564
+ ;
1565
+ req.fetchMetrics = fetchMetrics;
1566
+ // we don't throw static to dynamic errors in dev as isSSG
1567
+ // is a best guess in dev since we don't have the prerender pass
1568
+ // to know whether the path is actually static or not
1569
+ if (isSSG && (cacheControl == null ? void 0 : cacheControl.revalidate) === 0 && !routeModule.isDev && !isRoutePPREnabled) {
1570
+ const staticBailoutInfo = metadata.staticBailoutInfo;
1571
+ const err = Object.defineProperty(new Error(`Page changed from static to dynamic at runtime ${resolvedPathname}${(staticBailoutInfo == null ? void 0 : staticBailoutInfo.description) ? `, reason: ${staticBailoutInfo.description}` : ``}` + `\nsee more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`), "__NEXT_ERROR_CODE", {
1572
+ value: "E132",
1573
+ enumerable: false,
1574
+ configurable: true
1575
+ });
1576
+ if (staticBailoutInfo == null ? void 0 : staticBailoutInfo.stack) {
1577
+ const stack = staticBailoutInfo.stack;
1578
+ err.stack = err.message + stack.substring(stack.indexOf('\n'));
1579
+ }
1580
+ throw err;
1581
+ }
1582
+ return {
1583
+ value: {
1584
+ kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE,
1585
+ html: result,
1586
+ headers,
1587
+ rscData: metadata.flightData,
1588
+ postponed: metadata.postponed,
1589
+ status: metadata.statusCode,
1590
+ segmentData: metadata.segmentData
1591
+ },
1592
+ cacheControl
1593
+ };
1594
+ };
1595
+ const responseGenerator = async ({ hasResolved, previousCacheEntry: previousIncrementalCacheEntry, isRevalidating, span, forceStaticRender = false })=>{
1596
+ const isProduction = routeModule.isDev === false;
1597
+ const didRespond = hasResolved || res.writableEnded;
1598
+ // skip on-demand revalidate if cache is not present and
1599
+ // revalidate-if-generated is set
1600
+ if (isOnDemandRevalidate && revalidateOnlyGenerated && !previousIncrementalCacheEntry && !isMinimalMode) {
1601
+ if (routerServerContext == null ? void 0 : routerServerContext.render404) {
1602
+ await routerServerContext.render404(req, res);
1603
+ } else {
1604
+ res.statusCode = 404;
1605
+ res.end('This page could not be found');
1606
+ }
1607
+ return null;
1608
+ }
1609
+ let fallbackMode;
1610
+ if (prerenderInfo) {
1611
+ fallbackMode = (0,next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.parseFallbackField)(prerenderInfo.fallback);
1612
+ }
1613
+ if (nextConfig.experimental.partialFallbacks === true && (prerenderInfo == null ? void 0 : prerenderInfo.fallback) === null && !hasUnresolvedRootFallbackParams && remainingPrerenderableParams.length > 0) {
1614
+ // Generic source shells without unresolved root params don't have a
1615
+ // concrete fallback file of their own, so they're marked as blocking.
1616
+ // When we can complete the shell into a more specific
1617
+ // prerendered shell for this request, treat it like a prerender
1618
+ // fallback so we can serve that shell instead of blocking on the full
1619
+ // route. Root-param shells stay blocking, since unknown root branches
1620
+ // should not inherit a shell from another generated branch.
1621
+ fallbackMode = next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.PRERENDER;
1622
+ }
1623
+ // When serving a HTML bot request, we want to serve a blocking render and
1624
+ // not the prerendered page. This ensures that the correct content is served
1625
+ // to the bot in the head.
1626
+ if (fallbackMode === next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.PRERENDER && (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__.isBot)(userAgent)) {
1627
+ if (!isRoutePPREnabled || isHtmlBot) {
1628
+ fallbackMode = next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.BLOCKING_STATIC_RENDER;
1629
+ }
1630
+ }
1631
+ if ((previousIncrementalCacheEntry == null ? void 0 : previousIncrementalCacheEntry.isStale) === -1) {
1632
+ isOnDemandRevalidate = true;
1633
+ }
1634
+ // TODO: adapt for PPR
1635
+ // only allow on-demand revalidate for fallback: true/blocking
1636
+ // or for prerendered fallback: false paths
1637
+ if (isOnDemandRevalidate && (fallbackMode !== next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.NOT_FOUND || previousIncrementalCacheEntry)) {
1638
+ fallbackMode = next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.BLOCKING_STATIC_RENDER;
1639
+ }
1640
+ if (!isMinimalMode && fallbackMode !== next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.BLOCKING_STATIC_RENDER && staticPathKey && !didRespond && !isDraftMode && pageIsDynamic && (isProduction || !isPrerendered)) {
1641
+ // if the page has dynamicParams: false and this pathname wasn't
1642
+ // prerendered trigger the no fallback handling
1643
+ if (// In development, fall through to render to handle missing
1644
+ // getStaticPaths.
1645
+ (isProduction || prerenderInfo) && // When fallback isn't present, abort this render so we 404
1646
+ fallbackMode === next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.NOT_FOUND) {
1647
+ if (nextConfig.adapterPath) {
1648
+ return await render404();
1649
+ }
1650
+ throw new next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__.NoFallbackError();
1651
+ }
1652
+ // When cacheComponents is enabled, we can use the fallback
1653
+ // response if the request is not a dynamic RSC request because the
1654
+ // RSC data when this feature flag is enabled does not contain any
1655
+ // param references. Without this feature flag enabled, the RSC data
1656
+ // contains param references, and therefore we can't use the fallback.
1657
+ if (isRoutePPREnabled && (nextConfig.cacheComponents ? !isDynamicRSCRequest : !isRSCRequest)) {
1658
+ const cacheKey = isProduction && typeof (prerenderInfo == null ? void 0 : prerenderInfo.fallback) === 'string' ? prerenderInfo.fallback : normalizedSrcPage;
1659
+ const fallbackRouteParams = // In production or when debugging the static shell (e.g. instant
1660
+ // navigation testing), use the prerender manifest's fallback
1661
+ // route params which correctly identifies which params are
1662
+ // unknown. Note: in dev, this block is only entered for
1663
+ // non-prerendered URLs (guarded by the outer condition).
1664
+ (isProduction || isDebugStaticShell) && (prerenderInfo == null ? void 0 : prerenderInfo.fallbackRouteParams) ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.createOpaqueFallbackRouteParams)(prerenderInfo.fallbackRouteParams) : // fallback (simulating the worst-case shell).
1665
+ isDebugFallbackShell ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.getFallbackRouteParams)(normalizedSrcPage, routeModule) : null;
1666
+ // When rendering a debug static shell, override the fallback
1667
+ // params on the request so that the staged rendering correctly
1668
+ // defers params that are not statically known.
1669
+ if (isDebugStaticShell && fallbackRouteParams) {
1670
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'fallbackParams', fallbackRouteParams);
1671
+ }
1672
+ // We use the response cache here to handle the revalidation and
1673
+ // management of the fallback shell.
1674
+ const fallbackResponse = await routeModule.handleResponse({
1675
+ cacheKey,
1676
+ req,
1677
+ nextConfig,
1678
+ routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,
1679
+ isFallback: true,
1680
+ prerenderManifest,
1681
+ isRoutePPREnabled,
1682
+ responseGenerator: async ()=>doRender({
1683
+ span,
1684
+ // We pass `undefined` as rendering a fallback isn't resumed
1685
+ // here.
1686
+ postponed: undefined,
1687
+ // Always serve the shell that matched this request
1688
+ // immediately. If there are still prerenderable params left,
1689
+ // the background path below will complete the shell into a
1690
+ // more specific cache entry for later requests.
1691
+ fallbackRouteParams,
1692
+ forceStaticRender: true
1693
+ }),
1694
+ waitUntil: ctx.waitUntil,
1695
+ isMinimalMode
1696
+ });
1697
+ // If the fallback response was set to null, then we should return null.
1698
+ if (fallbackResponse === null) return null;
1699
+ // Otherwise, if we did get a fallback response, we should return it.
1700
+ if (fallbackResponse) {
1701
+ if (!isMinimalMode && isRoutePPREnabled && // Match the build-time contract: only fallback shells that can
1702
+ // still be completed with prerenderable params should upgrade.
1703
+ remainingPrerenderableParams.length > 0 && nextConfig.experimental.partialFallbacks === true && ssgCacheKey && incrementalCache && !isOnDemandRevalidate && !isDebugFallbackShell && // The testing API relies on deterministic shell behavior, so
1704
+ // don't upgrade fallback shells in the background when it's
1705
+ // exposed.
1706
+ !exposeTestingApi && // Instant Navigation Testing API requests intentionally keep
1707
+ // the route in shell mode; don't upgrade these in background.
1708
+ !isInstantNavigationTest && // Avoid background revalidate during prefetches; this can trigger
1709
+ // static prerender errors that surface as 500s for the prefetch
1710
+ // request itself.
1711
+ !isPrefetchRSCRequest) {
1712
+ (0,next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30__.scheduleOnNextTick)(async ()=>{
1713
+ const responseCache = routeModule.getResponseCache(req);
1714
+ try {
1715
+ // Only the params that were just specialized should be
1716
+ // removed from the fallback render. Any remaining fallback
1717
+ // params stay deferred so the revalidated result is a more
1718
+ // specific shell (e.g. `/prefix/c/[two]`), not a fully
1719
+ // concrete route (`/prefix/c/foo`).
1720
+ await responseCache.revalidate(ssgCacheKey, incrementalCache, isRoutePPREnabled, false, (c)=>{
1721
+ return doRender({
1722
+ span: c.span,
1723
+ postponed: undefined,
1724
+ fallbackRouteParams: remainingFallbackRouteParams.length > 0 ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.createOpaqueFallbackRouteParams)(remainingFallbackRouteParams) : null,
1725
+ forceStaticRender: true
1726
+ });
1727
+ }, // We don't have a prior entry for this param-specific shell.
1728
+ null, hasResolved, ctx.waitUntil);
1729
+ } catch (err) {
1730
+ console.error('Error revalidating the page in the background', err);
1731
+ }
1732
+ });
1733
+ }
1734
+ // Remove the cache control from the response to prevent it from being
1735
+ // used in the surrounding cache.
1736
+ delete fallbackResponse.cacheControl;
1737
+ return fallbackResponse;
1738
+ }
1739
+ }
1740
+ }
1741
+ // Only requests that aren't revalidating can be resumed. If we have the
1742
+ // minimal postponed data, then we should resume the render with it.
1743
+ let postponed = !isOnDemandRevalidate && !isRevalidating && minimalPostponed ? minimalPostponed : undefined;
1744
+ // If this is a dynamic RSC request or a server action request, we should
1745
+ // use the postponed data from the static render (if available). This
1746
+ // ensures that we can utilize the resume data cache (RDC) from the static
1747
+ // render to ensure that the data is consistent between the static and
1748
+ // dynamic renders (for navigations) or when re-rendering after a server
1749
+ // action.
1750
+ if (// Only enable RDC for Navigations if the feature is enabled.
1751
+ supportsRDCForNavigations && "nodejs" !== 'edge' && !isMinimalMode && incrementalCache && // Include both dynamic RSC requests (navigations) and server actions
1752
+ (isDynamicRSCRequest || isPossibleServerAction) && // We don't typically trigger an on-demand revalidation for dynamic RSC
1753
+ // requests, as we're typically revalidating the page in the background
1754
+ // instead. However, if the cache entry is stale, we should trigger a
1755
+ // background revalidation on dynamic RSC requests. This prevents us
1756
+ // from entering an infinite loop of revalidations.
1757
+ !forceStaticRender) {
1758
+ const incrementalCacheEntry = await incrementalCache.get(resolvedPathname, {
1759
+ kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.IncrementalCacheKind.APP_PAGE,
1760
+ isRoutePPREnabled: true,
1761
+ isFallback: false
1762
+ });
1763
+ // If the cache entry is found, we should use the postponed data from
1764
+ // the cache.
1765
+ if (incrementalCacheEntry && incrementalCacheEntry.value && incrementalCacheEntry.value.kind === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE) {
1766
+ // CRITICAL: we're assigning the postponed data from the cache entry
1767
+ // here as we're using the RDC to resume the render.
1768
+ postponed = incrementalCacheEntry.value.postponed;
1769
+ // If the cache entry is stale, we should trigger a background
1770
+ // revalidation so that subsequent requests will get a fresh response.
1771
+ if (incrementalCacheEntry && // We want to trigger this flow if the cache entry is stale and if
1772
+ // the requested revalidation flow is either foreground or
1773
+ // background.
1774
+ (incrementalCacheEntry.isStale === -1 || incrementalCacheEntry.isStale === true)) {
1775
+ // We want to schedule this on the next tick to ensure that the
1776
+ // render is not blocked on it.
1777
+ (0,next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30__.scheduleOnNextTick)(async ()=>{
1778
+ const responseCache = routeModule.getResponseCache(req);
1779
+ try {
1780
+ await responseCache.revalidate(resolvedPathname, incrementalCache, isRoutePPREnabled, false, (c)=>responseGenerator({
1781
+ ...c,
1782
+ // CRITICAL: we need to set this to true as we're
1783
+ // revalidating in the background and typically this dynamic
1784
+ // RSC request is not treated as static.
1785
+ forceStaticRender: true
1786
+ }), // CRITICAL: we need to pass null here because passing the
1787
+ // previous cache entry here (which is stale) will switch on
1788
+ // isOnDemandRevalidate and break the prerendering.
1789
+ null, hasResolved, ctx.waitUntil);
1790
+ } catch (err) {
1791
+ console.error('Error revalidating the page in the background', err);
1792
+ }
1793
+ });
1794
+ }
1795
+ }
1796
+ }
1797
+ // When we're in minimal mode, if we're trying to debug the static shell,
1798
+ // we should just return nothing instead of resuming the dynamic render.
1799
+ if ((isDebugStaticShell || isDebugDynamicAccesses) && typeof postponed !== 'undefined') {
1800
+ return {
1801
+ cacheControl: {
1802
+ revalidate: 1,
1803
+ expire: undefined
1804
+ },
1805
+ value: {
1806
+ kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.PAGES,
1807
+ html: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__["default"].EMPTY,
1808
+ pageData: {},
1809
+ headers: undefined,
1810
+ status: undefined
1811
+ }
1812
+ };
1813
+ }
1814
+ const fallbackRouteParams = // In production or when debugging the static shell for a
1815
+ // non-prerendered URL, use the prerender manifest's fallback route
1816
+ // params which correctly identifies which params are unknown.
1817
+ (isProduction && (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'renderFallbackShell') || isDebugStaticShell && !isPrerendered) && (prerenderInfo == null ? void 0 : prerenderInfo.fallbackRouteParams) ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.createOpaqueFallbackRouteParams)(prerenderInfo.fallbackRouteParams) : isDebugFallbackShell ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.getFallbackRouteParams)(normalizedSrcPage, routeModule) : null;
1818
+ // For staged dynamic rendering (Cached Navigations) and debug static
1819
+ // shell rendering, pass the fallback params via request meta so the
1820
+ // RequestStore knows which params to defer. We don't pass them as
1821
+ // fallbackRouteParams because that would replace actual param values
1822
+ // with opaque placeholders during segment resolution.
1823
+ if ((isProduction || isDebugStaticShell) && nextConfig.cacheComponents && !isPrerendered && (prerenderInfo == null ? void 0 : prerenderInfo.fallbackRouteParams)) {
1824
+ const fallbackParams = (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.createOpaqueFallbackRouteParams)(prerenderInfo.fallbackRouteParams);
1825
+ if (fallbackParams) {
1826
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'fallbackParams', fallbackParams);
1827
+ }
1828
+ }
1829
+ // Perform the render.
1830
+ return doRender({
1831
+ span,
1832
+ postponed,
1833
+ fallbackRouteParams,
1834
+ forceStaticRender
1835
+ });
1836
+ };
1837
+ const handleResponse = async (span)=>{
1838
+ var _cacheEntry_value, _cachedData_headers;
1839
+ const cacheEntry = await routeModule.handleResponse({
1840
+ cacheKey: ssgCacheKey,
1841
+ responseGenerator: (c)=>responseGenerator({
1842
+ span,
1843
+ ...c
1844
+ }),
1845
+ routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,
1846
+ isOnDemandRevalidate,
1847
+ isRoutePPREnabled,
1848
+ req,
1849
+ nextConfig,
1850
+ prerenderManifest,
1851
+ waitUntil: ctx.waitUntil,
1852
+ isMinimalMode
1853
+ });
1854
+ if (isDraftMode) {
1855
+ res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');
1856
+ }
1857
+ // In dev, we should not cache pages for any reason.
1858
+ if (routeModule.isDev) {
1859
+ res.setHeader('Cache-Control', 'no-cache, must-revalidate');
1860
+ }
1861
+ if (!cacheEntry) {
1862
+ if (ssgCacheKey) {
1863
+ // A cache entry might not be generated if a response is written
1864
+ // in `getInitialProps` or `getServerSideProps`, but those shouldn't
1865
+ // have a cache key. If we do have a cache key but we don't end up
1866
+ // with a cache entry, then either Next.js or the application has a
1867
+ // bug that needs fixing.
1868
+ throw Object.defineProperty(new Error('invariant: cache entry required but not generated'), "__NEXT_ERROR_CODE", {
1869
+ value: "E62",
1870
+ enumerable: false,
1871
+ configurable: true
1872
+ });
1873
+ }
1874
+ return null;
1875
+ }
1876
+ if (((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE) {
1877
+ var _cacheEntry_value1;
1878
+ throw Object.defineProperty(new Error(`Invariant app-page handler received invalid cache entry ${(_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), "__NEXT_ERROR_CODE", {
1879
+ value: "E707",
1880
+ enumerable: false,
1881
+ configurable: true
1882
+ });
1883
+ }
1884
+ const didPostpone = typeof cacheEntry.value.postponed === 'string';
1885
+ // Set the build ID header for RSC navigation requests when deploymentId is configured. This
1886
+ // corresponds with maybeAppendBuildIdToRSCPayload in app-render.tsx which omits the build ID
1887
+ // from the RSC payload when deploymentId is set (relying on this header instead). Server
1888
+ // actions are excluded here because action redirect responses get the deployment ID header
1889
+ // from the pre-fetched redirect target (via createRedirectRenderResult in action-handler.ts
1890
+ // which copies headers from the internal RSC fetch).
1891
+ // For static prerenders served from CDN, routes-manifest.json adds a header.
1892
+ if (isRSCRequest && !isPossibleServerAction && deploymentId) {
1893
+ res.setHeader(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId);
1894
+ }
1895
+ if (isSSG && // We don't want to send a cache header for requests that contain dynamic
1896
+ // data. If this is a Dynamic RSC request or wasn't a Prefetch RSC
1897
+ // request, then we should set the cache header.
1898
+ !isDynamicRSCRequest && (!didPostpone || isPrefetchRSCRequest)) {
1899
+ if (!isMinimalMode) {
1900
+ // set x-nextjs-cache header to match the header
1901
+ // we set for the image-optimizer
1902
+ res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');
1903
+ }
1904
+ // Set a header used by the client router to signal the response is static
1905
+ // and should respect the `static` cache staleTime value.
1906
+ res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_IS_PRERENDER_HEADER, '1');
1907
+ }
1908
+ const { value: cachedData } = cacheEntry;
1909
+ // Coerce the cache control parameter from the render.
1910
+ let cacheControl;
1911
+ // If this is a resume request in minimal mode it is streamed with dynamic
1912
+ // content and should not be cached.
1913
+ if (minimalPostponed) {
1914
+ cacheControl = {
1915
+ revalidate: 0,
1916
+ expire: undefined
1917
+ };
1918
+ } else if (isDynamicRSCRequest) {
1919
+ cacheControl = {
1920
+ revalidate: 0,
1921
+ expire: undefined
1922
+ };
1923
+ } else if (!routeModule.isDev) {
1924
+ // If this is a preview mode request, we shouldn't cache it
1925
+ if (isDraftMode) {
1926
+ cacheControl = {
1927
+ revalidate: 0,
1928
+ expire: undefined
1929
+ };
1930
+ } else if (!isSSG) {
1931
+ if (!res.getHeader('Cache-Control')) {
1932
+ cacheControl = {
1933
+ revalidate: 0,
1934
+ expire: undefined
1935
+ };
1936
+ }
1937
+ } else if (cacheEntry.cacheControl) {
1938
+ // If the cache entry has a cache control with a revalidate value that's
1939
+ // a number, use it.
1940
+ if (typeof cacheEntry.cacheControl.revalidate === 'number') {
1941
+ var _cacheEntry_cacheControl;
1942
+ if (cacheEntry.cacheControl.revalidate < 1) {
1943
+ throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${cacheEntry.cacheControl.revalidate} < 1`), "__NEXT_ERROR_CODE", {
1944
+ value: "E22",
1945
+ enumerable: false,
1946
+ configurable: true
1947
+ });
1948
+ }
1949
+ cacheControl = {
1950
+ revalidate: cacheEntry.cacheControl.revalidate,
1951
+ expire: ((_cacheEntry_cacheControl = cacheEntry.cacheControl) == null ? void 0 : _cacheEntry_cacheControl.expire) ?? nextConfig.expireTime
1952
+ };
1953
+ } else {
1954
+ cacheControl = {
1955
+ revalidate: next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.CACHE_ONE_YEAR_SECONDS,
1956
+ expire: undefined
1957
+ };
1958
+ }
1959
+ }
1960
+ }
1961
+ cacheEntry.cacheControl = cacheControl;
1962
+ if (typeof segmentPrefetchHeader === 'string' && (cachedData == null ? void 0 : cachedData.kind) === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE && cachedData.segmentData) {
1963
+ var _cachedData_headers1;
1964
+ // This is a prefetch request issued by the client Segment Cache. These
1965
+ // should never reach the application layer (lambda). We should either
1966
+ // respond from the cache (HIT) or respond with 204 No Content (MISS).
1967
+ // Set a header to indicate that PPR is enabled for this route. This
1968
+ // lets the client distinguish between a regular cache miss and a cache
1969
+ // miss due to PPR being disabled. In other contexts this header is used
1970
+ // to indicate that the response contains dynamic data, but here we're
1971
+ // only using it to indicate that the feature is enabled — the segment
1972
+ // response itself contains whether the data is dynamic.
1973
+ res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_DID_POSTPONE_HEADER, '2');
1974
+ // Add the cache tags header to the response if it exists and we're in
1975
+ // minimal mode while rendering a static page.
1976
+ const tags = (_cachedData_headers1 = cachedData.headers) == null ? void 0 : _cachedData_headers1[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER];
1977
+ if (isMinimalMode && isSSG && tags && typeof tags === 'string') {
1978
+ res.setHeader(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER, tags);
1979
+ }
1980
+ const matchedSegment = cachedData.segmentData.get(segmentPrefetchHeader);
1981
+ if (matchedSegment !== undefined) {
1982
+ // Cache hit
1983
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
1984
+ req,
1985
+ res,
1986
+ generateEtags: nextConfig.generateEtags,
1987
+ poweredByHeader: nextConfig.poweredByHeader,
1988
+ result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__["default"].fromStatic(matchedSegment, next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.RSC_CONTENT_TYPE_HEADER),
1989
+ cacheControl: cacheEntry.cacheControl
1990
+ });
1991
+ }
1992
+ // Cache miss. Either a cache entry for this route has not been generated
1993
+ // (which technically should not be possible when PPR is enabled, because
1994
+ // at a minimum there should always be a fallback entry) or there's no
1995
+ // match for the requested segment. Respond with a 204 No Content. We
1996
+ // don't bother to respond with 404, because these requests are only
1997
+ // issued as part of a prefetch.
1998
+ res.statusCode = 204;
1999
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
2000
+ req,
2001
+ res,
2002
+ generateEtags: nextConfig.generateEtags,
2003
+ poweredByHeader: nextConfig.poweredByHeader,
2004
+ result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__["default"].EMPTY,
2005
+ cacheControl: cacheEntry.cacheControl
2006
+ });
2007
+ }
2008
+ // If there's a callback for `onCacheEntry`, call it with the cache entry
2009
+ // and the revalidate options. If we support RDC for Navigations, we
2010
+ // prefer the `onCacheEntryV2` callback. Once RDC for Navigations is the
2011
+ // default, we can remove the fallback to `onCacheEntry` as
2012
+ // `onCacheEntryV2` is now fully supported.
2013
+ const onCacheEntry = supportsRDCForNavigations ? (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'onCacheEntryV2') ?? (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'onCacheEntry') : (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'onCacheEntry');
2014
+ if (onCacheEntry) {
2015
+ const finished = await onCacheEntry(cacheEntry, {
2016
+ url: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'initURL') ?? req.url
2017
+ });
2018
+ if (finished) return null;
2019
+ }
2020
+ if (cachedData.headers) {
2021
+ const headers = {
2022
+ ...cachedData.headers
2023
+ };
2024
+ if (!isMinimalMode || !isSSG) {
2025
+ delete headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER];
2026
+ }
2027
+ for (let [key, value] of Object.entries(headers)){
2028
+ if (typeof value === 'undefined') continue;
2029
+ if (Array.isArray(value)) {
2030
+ for (const v of value){
2031
+ res.appendHeader(key, v);
2032
+ }
2033
+ } else if (typeof value === 'number') {
2034
+ value = value.toString();
2035
+ res.appendHeader(key, value);
2036
+ } else {
2037
+ res.appendHeader(key, value);
2038
+ }
2039
+ }
2040
+ }
2041
+ // Add the cache tags header to the response if it exists and we're in
2042
+ // minimal mode while rendering a static page.
2043
+ const tags = (_cachedData_headers = cachedData.headers) == null ? void 0 : _cachedData_headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER];
2044
+ if (isMinimalMode && isSSG && tags && typeof tags === 'string') {
2045
+ res.setHeader(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER, tags);
2046
+ }
2047
+ // If the request is a data request, then we shouldn't set the status code
2048
+ // from the response because it should always be 200. This should be gated
2049
+ // behind the experimental PPR flag.
2050
+ if (cachedData.status && (!isRSCRequest || !isRoutePPREnabled)) {
2051
+ res.statusCode = cachedData.status;
2052
+ }
2053
+ // Redirect information is encoded in RSC payload, so we don't need to use redirect status codes
2054
+ if (!isMinimalMode && cachedData.status && next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_28__.RedirectStatusCode[cachedData.status] && isRSCRequest) {
2055
+ res.statusCode = 200;
2056
+ }
2057
+ // Mark that the request did postpone.
2058
+ if (didPostpone && !isDynamicRSCRequest) {
2059
+ res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_DID_POSTPONE_HEADER, '1');
2060
+ }
2061
+ // we don't go through this block when preview mode is true
2062
+ // as preview mode is a dynamic request (bypasses cache) and doesn't
2063
+ // generate both HTML and payloads in the same request so continue to just
2064
+ // return the generated payload
2065
+ if (isRSCRequest && !isDraftMode) {
2066
+ // If this is a dynamic RSC request, then stream the response.
2067
+ if (typeof cachedData.rscData === 'undefined') {
2068
+ // If the response is not an RSC response, then we can't serve it.
2069
+ if (cachedData.html.contentType !== next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.RSC_CONTENT_TYPE_HEADER) {
2070
+ if (nextConfig.cacheComponents) {
2071
+ res.statusCode = 404;
2072
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
2073
+ req,
2074
+ res,
2075
+ generateEtags: nextConfig.generateEtags,
2076
+ poweredByHeader: nextConfig.poweredByHeader,
2077
+ result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__["default"].EMPTY,
2078
+ cacheControl: cacheEntry.cacheControl
2079
+ });
2080
+ } else {
2081
+ // Otherwise this case is not expected.
2082
+ throw Object.defineProperty(new next_dist_shared_lib_invariant_error__WEBPACK_IMPORTED_MODULE_29__.InvariantError(`Expected RSC response, got ${cachedData.html.contentType}`), "__NEXT_ERROR_CODE", {
2083
+ value: "E789",
2084
+ enumerable: false,
2085
+ configurable: true
2086
+ });
2087
+ }
2088
+ }
2089
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
2090
+ req,
2091
+ res,
2092
+ generateEtags: nextConfig.generateEtags,
2093
+ poweredByHeader: nextConfig.poweredByHeader,
2094
+ result: cachedData.html,
2095
+ cacheControl: cacheEntry.cacheControl
2096
+ });
2097
+ }
2098
+ // As this isn't a prefetch request, we should serve the static flight
2099
+ // data.
2100
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
2101
+ req,
2102
+ res,
2103
+ generateEtags: nextConfig.generateEtags,
2104
+ poweredByHeader: nextConfig.poweredByHeader,
2105
+ result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__["default"].fromStatic(cachedData.rscData, next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.RSC_CONTENT_TYPE_HEADER),
2106
+ cacheControl: cacheEntry.cacheControl
2107
+ });
2108
+ }
2109
+ // This is a request for HTML data.
2110
+ const body = cachedData.html;
2111
+ // Instant Navigation Testing API: serve the static shell with an
2112
+ // injected script that sets self.__next_instant_test and kicks off a
2113
+ // static RSC fetch for hydration. The transform stream also appends
2114
+ // closing </body></html> tags so the browser can parse the full document.
2115
+ // In dev mode, also inject self.__next_r so the HMR WebSocket and
2116
+ // debug channel can initialize.
2117
+ if (isInstantNavigationTest && isDebugStaticShell) {
2118
+ const instantTestRequestId = routeModule.isDev === true ? crypto.randomUUID() : null;
2119
+ body.pipeThrough((0,next_dist_server_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_22__.createInstantTestScriptInsertionTransformStream)(instantTestRequestId));
2120
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
2121
+ req,
2122
+ res,
2123
+ generateEtags: nextConfig.generateEtags,
2124
+ poweredByHeader: nextConfig.poweredByHeader,
2125
+ result: body,
2126
+ cacheControl: {
2127
+ revalidate: 0,
2128
+ expire: undefined
2129
+ }
2130
+ });
2131
+ }
2132
+ // If there's no postponed state, we should just serve the HTML. This
2133
+ // should also be the case for a resume request because it's completed
2134
+ // as a server render (rather than a static render).
2135
+ if (!didPostpone || isMinimalMode || isRSCRequest) {
2136
+ // If we're in test mode, we should add a sentinel chunk to the response
2137
+ // that's between the static and dynamic parts so we can compare the
2138
+ // chunks and add assertions.
2139
+ if (false) {}
2140
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
2141
+ req,
2142
+ res,
2143
+ generateEtags: nextConfig.generateEtags,
2144
+ poweredByHeader: nextConfig.poweredByHeader,
2145
+ result: body,
2146
+ cacheControl: cacheEntry.cacheControl
2147
+ });
2148
+ }
2149
+ // If we're debugging the static shell or the dynamic API accesses, we
2150
+ // should just serve the HTML without resuming the render. The returned
2151
+ // HTML will be the static shell so all the Dynamic API's will be used
2152
+ // during static generation.
2153
+ if (isDebugStaticShell || isDebugDynamicAccesses) {
2154
+ // Since we're not resuming the render, we need to at least add the
2155
+ // closing body and html tags to create valid HTML.
2156
+ body.push(new ReadableStream({
2157
+ start (controller) {
2158
+ controller.enqueue(next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_21__.ENCODED_TAGS.CLOSED.BODY_AND_HTML);
2159
+ controller.close();
2160
+ }
2161
+ }));
2162
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
2163
+ req,
2164
+ res,
2165
+ generateEtags: nextConfig.generateEtags,
2166
+ poweredByHeader: nextConfig.poweredByHeader,
2167
+ result: body,
2168
+ cacheControl: {
2169
+ revalidate: 0,
2170
+ expire: undefined
2171
+ }
2172
+ });
2173
+ }
2174
+ // If we're in test mode, we should add a sentinel chunk to the response
2175
+ // that's between the static and dynamic parts so we can compare the
2176
+ // chunks and add assertions.
2177
+ if (false) {}
2178
+ // This request has postponed, so let's create a new transformer that the
2179
+ // dynamic data can pipe to that will attach the dynamic data to the end
2180
+ // of the response.
2181
+ const transformer = new TransformStream();
2182
+ body.push(transformer.readable);
2183
+ // Perform the render again, but this time, provide the postponed state.
2184
+ // We don't await because we want the result to start streaming now, and
2185
+ // we've already chained the transformer's readable to the render result.
2186
+ doRender({
2187
+ span,
2188
+ postponed: cachedData.postponed,
2189
+ // This is a resume render, not a fallback render, so we don't need to
2190
+ // set this.
2191
+ fallbackRouteParams: null,
2192
+ forceStaticRender: false
2193
+ }).then(async (result)=>{
2194
+ var _result_value;
2195
+ if (!result) {
2196
+ throw Object.defineProperty(new Error('Invariant: expected a result to be returned'), "__NEXT_ERROR_CODE", {
2197
+ value: "E463",
2198
+ enumerable: false,
2199
+ configurable: true
2200
+ });
2201
+ }
2202
+ if (((_result_value = result.value) == null ? void 0 : _result_value.kind) !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE) {
2203
+ var _result_value1;
2204
+ throw Object.defineProperty(new Error(`Invariant: expected a page response, got ${(_result_value1 = result.value) == null ? void 0 : _result_value1.kind}`), "__NEXT_ERROR_CODE", {
2205
+ value: "E305",
2206
+ enumerable: false,
2207
+ configurable: true
2208
+ });
2209
+ }
2210
+ // Pipe the resume result to the transformer.
2211
+ await result.value.html.pipeTo(transformer.writable);
2212
+ }).catch((err)=>{
2213
+ // An error occurred during piping or preparing the render, abort
2214
+ // the transformers writer so we can terminate the stream.
2215
+ transformer.writable.abort(err).catch((e)=>{
2216
+ console.error("couldn't abort transformer", e);
2217
+ });
2218
+ });
2219
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
2220
+ req,
2221
+ res,
2222
+ generateEtags: nextConfig.generateEtags,
2223
+ poweredByHeader: nextConfig.poweredByHeader,
2224
+ result: body,
2225
+ // We don't want to cache the response if it has postponed data because
2226
+ // the response being sent to the client it's dynamic parts are streamed
2227
+ // to the client on the same request.
2228
+ cacheControl: {
2229
+ revalidate: 0,
2230
+ expire: undefined
2231
+ }
2232
+ });
2233
+ };
2234
+ // TODO: activeSpan code path is for when wrapped by
2235
+ // next-server can be removed when this is no longer used
2236
+ if (isWrappedByNextServer && activeSpan) {
2237
+ await handleResponse(activeSpan);
2238
+ } else {
2239
+ parentSpan = tracer.getActiveScopeSpan();
2240
+ return await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest, {
2241
+ spanName: `${method} ${srcPage}`,
2242
+ kind: next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.SpanKind.SERVER,
2243
+ attributes: {
2244
+ 'http.method': method,
2245
+ 'http.target': req.url
2246
+ }
2247
+ }, handleResponse), undefined, !isWrappedByNextServer);
2248
+ }
2249
+ } catch (err) {
2250
+ if (!(err instanceof next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__.NoFallbackError)) {
2251
+ const silenceLog = false;
2252
+ await routeModule.onRequestError(req, err, {
2253
+ routerKind: 'App Router',
2254
+ routePath: srcPage,
2255
+ routeType: 'render',
2256
+ revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__/* .getRevalidateReason */ .c)({
2257
+ isStaticGeneration: isSSG,
2258
+ isOnDemandRevalidate
2259
+ })
2260
+ }, silenceLog, routerServerContext);
2261
+ }
2262
+ // rethrow so that we can handle serving error page
2263
+ throw err;
2264
+ }
1941
2265
  }
1942
- const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(CogIcon);
1943
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
1944
-
1945
-
1946
- /***/ }),
1947
-
1948
- /***/ 86439:
1949
- /***/ ((module) => {
1950
-
1951
- "use strict";
1952
- module.exports = require("next/dist/shared/lib/no-fallback-error.external");
1953
-
1954
- /***/ }),
1955
-
1956
- /***/ 93889:
1957
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1958
-
1959
- "use strict";
1960
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1961
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
1962
- /* harmony export */ });
1963
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
1964
-
1965
- function XMarkIcon({ title, titleId, ...props }, svgRef) {
1966
- return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
1967
- xmlns: "http://www.w3.org/2000/svg",
1968
- fill: "none",
1969
- viewBox: "0 0 24 24",
1970
- strokeWidth: 1.5,
1971
- stroke: "currentColor",
1972
- "aria-hidden": "true",
1973
- "data-slot": "icon",
1974
- ref: svgRef,
1975
- "aria-labelledby": titleId
1976
- }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
1977
- id: titleId
1978
- }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
1979
- strokeLinecap: "round",
1980
- strokeLinejoin: "round",
1981
- d: "M6 18 18 6M6 6l12 12"
1982
- }));
2266
+ // TODO: omit this from production builds, only test builds should include it
2267
+ /**
2268
+ * Creates a readable stream that emits a PPR boundary sentinel.
2269
+ *
2270
+ * @returns A readable stream that emits a PPR boundary sentinel.
2271
+ */ function createPPRBoundarySentinel() {
2272
+ return new ReadableStream({
2273
+ start (controller) {
2274
+ controller.enqueue(new TextEncoder().encode('<!-- PPR_BOUNDARY_SENTINEL -->'));
2275
+ controller.close();
2276
+ }
2277
+ });
1983
2278
  }
1984
- const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(XMarkIcon);
1985
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
1986
-
1987
-
1988
- /***/ }),
1989
-
1990
- /***/ 93977:
1991
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1992
-
1993
- "use strict";
1994
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1995
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
1996
- /* harmony export */ });
1997
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
1998
2279
 
1999
- function ArrowDownTrayIcon({ title, titleId, ...props }, svgRef) {
2000
- return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
2001
- xmlns: "http://www.w3.org/2000/svg",
2002
- fill: "none",
2003
- viewBox: "0 0 24 24",
2004
- strokeWidth: 1.5,
2005
- stroke: "currentColor",
2006
- "aria-hidden": "true",
2007
- "data-slot": "icon",
2008
- ref: svgRef,
2009
- "aria-labelledby": titleId
2010
- }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
2011
- id: titleId
2012
- }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
2013
- strokeLinecap: "round",
2014
- strokeLinejoin: "round",
2015
- d: "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"
2016
- }));
2017
- }
2018
- const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ArrowDownTrayIcon);
2019
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
2280
+ //# sourceMappingURL=app-page.js.map
2020
2281
 
2021
2282
 
2022
2283
  /***/ })
@@ -2028,7 +2289,7 @@ const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(A
2028
2289
  var __webpack_require__ = require("../../../webpack-runtime.js");
2029
2290
  __webpack_require__.C(exports);
2030
2291
  var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
2031
- var __webpack_exports__ = __webpack_require__.X(0, [7246,4741,2628,7420,3144,8255,9988], () => (__webpack_exec__(28521)));
2292
+ var __webpack_exports__ = __webpack_require__.X(0, [8569,4741,9927,7420,3144,8255,9988], () => (__webpack_exec__(96727)));
2032
2293
  module.exports = __webpack_exports__;
2033
2294
 
2034
2295
  })();