@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
@@ -41,1417 +41,565 @@ function() { throw new Error("Attempted to call the default export of \"/home/ru
41
41
 
42
42
  /***/ }),
43
43
 
44
- /***/ 10846:
45
- /***/ ((module) => {
46
-
47
- "use strict";
48
- module.exports = require("next/dist/compiled/next-server/app-page.runtime.prod.js");
49
-
50
- /***/ }),
51
-
52
- /***/ 19121:
53
- /***/ ((module) => {
44
+ /***/ 9055:
45
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
54
46
 
55
47
  "use strict";
56
- module.exports = require("next/dist/server/app-render/action-async-storage.external.js");
57
-
58
- /***/ }),
59
-
60
- /***/ 19771:
61
- /***/ ((module) => {
48
+ __webpack_require__.r(__webpack_exports__);
49
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
50
+ /* harmony export */ __next_app__: () => (/* binding */ __next_app__),
51
+ /* harmony export */ handler: () => (/* binding */ handler),
52
+ /* harmony export */ routeModule: () => (/* binding */ routeModule)
53
+ /* harmony export */ });
54
+ /* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80666);
55
+ /* 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__);
56
+ /* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51421);
57
+ /* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4675);
58
+ /* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29796);
59
+ /* 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__);
60
+ /* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54046);
61
+ /* 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__);
62
+ /* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(74928);
63
+ /* 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__);
64
+ /* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19727);
65
+ /* harmony import */ var next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(24268);
66
+ /* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(60402);
67
+ /* 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__);
68
+ /* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(22040);
69
+ /* 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__);
70
+ /* harmony import */ var next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27186);
71
+ /* 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__);
72
+ /* harmony import */ var next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(49228);
73
+ /* 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__);
74
+ /* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(97485);
75
+ /* 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__);
76
+ /* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(261);
77
+ /* 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__);
78
+ /* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(80885);
79
+ /* 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__);
80
+ /* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(7162);
81
+ /* 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__);
82
+ /* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(26713);
83
+ /* 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__);
84
+ /* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(70972);
85
+ /* 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__);
86
+ /* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(57341);
87
+ /* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__);
88
+ /* harmony import */ var next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(95105);
89
+ /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(38038);
90
+ /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__);
91
+ /* harmony import */ var next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(29898);
92
+ /* harmony import */ var next_dist_server_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(62918);
93
+ /* 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__);
94
+ /* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(98798);
95
+ /* 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__);
96
+ /* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(86439);
97
+ /* 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__);
98
+ /* harmony import */ var next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(77068);
99
+ /* 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__);
100
+ /* harmony import */ var next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(31214);
101
+ /* 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__);
102
+ /* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(35402);
103
+ /* 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__);
104
+ /* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(29059);
105
+ /* 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__);
106
+ /* harmony import */ var next_dist_shared_lib_invariant_error__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(70722);
107
+ /* 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__);
108
+ /* harmony import */ var next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(31182);
109
+ /* harmony import */ var next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30__);
110
+ /* harmony import */ var next_dist_shared_lib_router_utils_interception_routes__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(43954);
111
+ /* 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__);
112
+ /* harmony import */ var next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(17891);
113
+ /* 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__);
114
+ /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
115
+ /* 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__]
116
+ /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
117
+ const module0 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 95235));
118
+ const module1 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 25195));
119
+ const module2 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
120
+ const module3 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 72353));
121
+ const module4 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 4253, 23));
122
+ const module5 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 49184, 23));
123
+ const module6 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 57149));
124
+ const module7 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
125
+ const module8 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 28310));
126
+ const module9 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 59406));
127
+ const module10 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
128
+ const module11 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
129
+ const page12 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3805));
62
130
 
63
- "use strict";
64
- module.exports = require("process");
65
131
 
66
- /***/ }),
67
132
 
68
- /***/ 20400:
69
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
70
133
 
71
- Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 33898));
72
134
 
73
135
 
74
- /***/ }),
75
136
 
76
- /***/ 25197:
77
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
78
137
 
79
- "use strict";
80
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
81
- /* harmony export */ C$z: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useEventSubscriptions),
82
- /* harmony export */ TbX: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.SimpleNavigation)
83
- /* harmony export */ });
84
- /* harmony import */ var _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76552);
85
138
 
86
139
 
87
140
 
88
- /***/ }),
89
141
 
90
- /***/ 25888:
91
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
92
142
 
93
- "use strict";
94
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
95
- /* harmony export */ Ef3: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.LeftSidebar),
96
- /* harmony export */ ffs: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.AuthTokenProvider),
97
- /* harmony export */ pqI: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.ApiClientProvider),
98
- /* harmony export */ wi6: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.Footer)
99
- /* harmony export */ });
100
- /* harmony import */ var _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76552);
101
143
 
102
144
 
103
145
 
104
- /***/ }),
105
146
 
106
- /***/ 26713:
107
- /***/ ((module) => {
108
147
 
109
- "use strict";
110
- module.exports = require("next/dist/shared/lib/router/utils/is-bot");
111
148
 
112
- /***/ }),
113
149
 
114
- /***/ 28354:
115
- /***/ ((module) => {
116
150
 
117
- "use strict";
118
- module.exports = require("util");
119
151
 
120
- /***/ }),
121
152
 
122
- /***/ 29294:
123
- /***/ ((module) => {
124
153
 
125
- "use strict";
126
- module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
127
154
 
128
- /***/ }),
129
155
 
130
- /***/ 31039:
131
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
132
156
 
133
- "use strict";
157
+ // We inject the tree and pages here so that we can use them in the route
158
+ // module.
159
+ const tree = {
160
+ children: [
161
+ '',
162
+ {
163
+ children: [
164
+ '[locale]',
165
+ {
166
+ children: [
167
+ 'moderate',
168
+ {
169
+ children: [
170
+ 'entity-tags',
171
+ {
172
+ children: ['__PAGE__', {}, {
173
+ page: [page12, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/entity-tags/page.tsx"],
174
+
175
+ }]
176
+ },
177
+ {
178
+ 'global-error': [module11, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
179
+
180
+ },
181
+ []
182
+ ]
183
+ },
184
+ {
185
+ 'layout': [module9, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/layout.tsx"],
186
+ 'global-error': [module10, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
187
+
188
+ },
189
+ []
190
+ ]
191
+ },
192
+ {
193
+ 'layout': [module6, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/layout.tsx"],
194
+ 'global-error': [module7, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
195
+ 'not-found': [module8, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/not-found.tsx"],
196
+
197
+ },
198
+ ["_not-found","_global-error","api"]
199
+ ]
200
+ },
201
+ {
202
+ 'layout': [module0, "/home/runner/work/semiont/semiont/apps/frontend/src/app/layout.tsx"],
203
+ 'error': [module1, "/home/runner/work/semiont/semiont/apps/frontend/src/app/error.tsx"],
204
+ 'global-error': [module2, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
205
+ 'not-found': [module3, "/home/runner/work/semiont/semiont/apps/frontend/src/app/not-found.tsx"],
206
+ 'forbidden': [module4, "next/dist/client/components/builtin/forbidden.js"],
207
+ 'unauthorized': [module5, "next/dist/client/components/builtin/unauthorized.js"],
208
+
209
+ },
210
+ []
211
+ ]
212
+ }.children;
213
+ const __next_app_require__ = __webpack_require__
214
+ const __next_app_load_chunk__ = () => Promise.resolve()
215
+ const __next_app__ = {
216
+ require: __next_app_require__,
217
+ loadChunk: __next_app_load_chunk__
218
+ };
134
219
 
135
- // EXPORTS
136
- __webpack_require__.d(__webpack_exports__, {
137
- As: () => (/* binding */ useAuth)
138
- });
139
220
 
140
- // UNUSED EXPORTS: usePermissions, useUserPreferences
141
221
 
142
- // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
143
- var react = __webpack_require__(62341);
144
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
145
- var ssr_react = __webpack_require__(71277);
146
- // EXTERNAL MODULE: ../../packages/api-client/dist/index.js
147
- var dist = __webpack_require__(88887);
148
- ;// __barrel_optimize__?names=JWTTokenSchema,validateData!=!../../packages/api-client/dist/index.js
149
222
 
150
223
 
151
- ;// ./src/hooks/useAuth.ts
152
- /* __next_internal_client_entry_do_not_use__ useAuth,useUserPreferences,usePermissions auto */
153
224
 
154
225
 
155
- /**
156
- * Enhanced authentication hook with validation and user information
157
- */ function useAuth() {
158
- const { data: session, status } = (0,react.useSession)();
159
- const authInfo = (0,ssr_react.useMemo)(()=>{
160
- const isLoading = status === 'loading';
161
- const isAuthenticated = !!session?.user;
162
- // Validate backend token if present
163
- const hasValidBackendToken = session?.backendToken ? (0,dist/* validateData */.lv)(dist/* JWTTokenSchema */.k3, session.backendToken).success : false;
164
- return {
165
- // Session data
166
- session,
167
- user: session?.user,
168
- backendUser: session?.backendUser,
169
- // Status flags
170
- isLoading,
171
- isAuthenticated,
172
- hasValidBackendToken,
173
- // Computed properties
174
- userDomain: session?.backendUser?.domain || session?.user?.email?.split('@')[1],
175
- displayName: session?.user?.name || session?.user?.email?.split('@')[0] || 'User',
176
- avatarUrl: session?.user?.image,
177
- isAdmin: session?.backendUser?.isAdmin || false,
178
- isModerator: session?.backendUser?.isModerator || false,
179
- // Combined auth status
180
- isFullyAuthenticated: isAuthenticated && hasValidBackendToken
181
- };
182
- }, [
183
- session,
184
- status
185
- ]);
186
- return authInfo;
226
+ // Create and export the route module that will be consumed.
227
+ const routeModule = new next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({
228
+ definition: {
229
+ kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,
230
+ page: "/[locale]/moderate/entity-tags/page",
231
+ pathname: "/[locale]/moderate/entity-tags",
232
+ // The following aren't used in production.
233
+ bundlePath: '',
234
+ filename: '',
235
+ appPaths: []
236
+ },
237
+ userland: {
238
+ loaderTree: tree
239
+ },
240
+ distDir: ".next" || 0,
241
+ relativeProjectDir: false || ''
242
+ });
243
+ function buildDynamicSegmentPlaceholder(param) {
244
+ const { repeat, optional } = (0,next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__.getParamProperties)(param.paramType);
245
+ if (optional) {
246
+ return `[[...${param.paramName}]]`;
247
+ }
248
+ if (repeat) {
249
+ return `[...${param.paramName}]`;
250
+ }
251
+ return `[${param.paramName}]`;
187
252
  }
188
253
  /**
189
- * Hook for getting user preferences and settings
190
- */ function useUserPreferences() {
191
- const { session } = useAuth();
192
- return useMemo(()=>{
193
- // In the future, this could fetch user preferences from backend
194
- // For now, return defaults
195
- return {
196
- theme: 'system',
197
- language: 'en',
198
- timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
199
- emailNotifications: true
200
- };
201
- }, [
202
- session
203
- ]);
254
+ * Builds the cache key for the most complete prerenderable shell we can derive
255
+ * from the shell that matched this request. Only params that can still be
256
+ * filled by `generateStaticParams` are substituted; fully dynamic params stay
257
+ * as placeholders so a request like `/c/foo` can complete `/[one]/[two]` into
258
+ * `/c/[two]` rather than `/c/foo`.
259
+ */ function buildCompletedShellCacheKey(fallbackPathname, remainingPrerenderableParams, params) {
260
+ const prerenderableParamsByName = new Map(remainingPrerenderableParams.map((param)=>[
261
+ param.paramName,
262
+ param
263
+ ]));
264
+ return fallbackPathname.split('/').map((segment)=>{
265
+ const segmentParam = (0,next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__.getSegmentParam)(segment);
266
+ if (!segmentParam) {
267
+ return segment;
268
+ }
269
+ const remainingParam = prerenderableParamsByName.get(segmentParam.paramName);
270
+ if (!remainingParam) {
271
+ return segment;
272
+ }
273
+ const value = params == null ? void 0 : params[remainingParam.paramName];
274
+ if (!value) {
275
+ return segment;
276
+ }
277
+ const encodedValue = Array.isArray(value) ? value.map((item)=>encodeURIComponent(item)).join('/') : encodeURIComponent(value);
278
+ return segment.replace(buildDynamicSegmentPlaceholder(remainingParam), encodedValue);
279
+ }).join('/') || '/';
204
280
  }
205
- /**
206
- * Hook for checking user permissions (future expansion)
207
- */ function usePermissions() {
208
- const { backendUser, isFullyAuthenticated } = useAuth();
209
- return useMemo(()=>{
210
- if (!isFullyAuthenticated || !backendUser) {
211
- return {
212
- canRead: false,
213
- canWrite: false,
214
- canAdmin: false,
215
- canManageUsers: false
216
- };
217
- }
218
- // Basic permissions - in the future this would come from backend
219
- return {
220
- canRead: true,
221
- canWrite: true,
222
- canAdmin: false,
223
- canManageUsers: false
224
- };
225
- }, [
226
- backendUser,
227
- isFullyAuthenticated
228
- ]);
229
- }
230
-
231
-
232
- /***/ }),
233
-
234
- /***/ 31378:
235
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
236
-
237
- "use strict";
238
- // ESM COMPAT FLAG
239
- __webpack_require__.r(__webpack_exports__);
240
-
241
- // EXPORTS
242
- __webpack_require__.d(__webpack_exports__, {
243
- "default": () => (/* binding */ EntityTagsPageWrapper)
244
- });
245
-
246
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js
247
- var react_jsx_runtime = __webpack_require__(92692);
248
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
249
- var react = __webpack_require__(71277);
250
- // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
251
- var react_client = __webpack_require__(56305);
252
- // EXTERNAL MODULE: ../../packages/react-ui/dist/index.mjs + 27 modules
253
- var dist = __webpack_require__(76552);
254
- ;// __barrel_optimize__?names=Toolbar,useEntityTypes!=!../../packages/react-ui/dist/index.mjs
255
-
256
-
257
- // EXTERNAL MODULE: ../../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js
258
- var QueryClientProvider = __webpack_require__(53970);
259
- // EXTERNAL MODULE: ./src/components/toolbar/ToolbarPanels.tsx + 4 modules
260
- var ToolbarPanels = __webpack_require__(50436);
261
- // EXTERNAL MODULE: __barrel_optimize__?names=useEventSubscriptions,useLineNumbers,usePanelBrowse,useTheme!=!../../packages/react-ui/dist/index.mjs
262
- var react_ui_dist = __webpack_require__(56677);
263
- ;// __barrel_optimize__?names=EntityTagsPage!=!../../packages/react-ui/dist/index.mjs
264
-
265
-
266
- ;// ./src/app/[locale]/moderate/entity-tags/page.tsx
267
- /* __next_internal_client_entry_do_not_use__ default auto */
268
- /**
269
- * Entity Tags Page - Thin Next.js wrapper
270
- *
271
- * This page handles Next.js-specific concerns (translations, API calls)
272
- * and delegates rendering to the pure React EntityTagsPage component.
273
- */
274
-
275
-
276
-
277
-
278
-
279
-
280
- // Authentication is handled by middleware (proxy.ts)
281
- // Only authenticated moderators/admins can reach this page
282
- function EntityTagsPageWrapper() {
283
- const t = (0,react_client/* useTranslations */.c)('ModerateEntityTags');
284
- const [newTag, setNewTag] = (0,react.useState)('');
285
- const [error, setError] = (0,react.useState)('');
286
- const queryClient = (0,QueryClientProvider/* useQueryClient */.jE)();
287
- // Toolbar and settings state
288
- const { activePanel } = (0,react_ui_dist/* usePanelBrowse */.ySJ)();
289
- const { theme, setTheme } = (0,react_ui_dist/* useTheme */.DPo)();
290
- const { showLineNumbers, toggleLineNumbers } = (0,react_ui_dist/* useLineNumbers */.cvF)();
291
- const handleThemeChanged = (0,react.useCallback)(({ theme })=>{
292
- setTheme(theme);
293
- }, [
294
- setTheme
295
- ]);
296
- const handleLineNumbersToggled = (0,react.useCallback)(()=>{
297
- toggleLineNumbers();
298
- }, [
299
- toggleLineNumbers
300
- ]);
301
- (0,react_ui_dist/* useEventSubscriptions */.C$z)({
302
- 'settings:theme-changed': handleThemeChanged,
303
- 'settings:line-numbers-toggled': handleLineNumbersToggled
304
- });
305
- // API hooks
306
- const entityTypesAPI = (0,dist.useEntityTypes)();
307
- // Query entity types with auto-refetch for cross-browser updates
308
- const { data: entityTypesData, isLoading } = entityTypesAPI.list.useQuery({
309
- refetchInterval: 30000,
310
- refetchIntervalInBackground: true
281
+ async function handler(req, res, ctx) {
282
+ var _this, _prerenderManifest_routes_resolvedPathname, _prerenderInfo_fallbackRootParams, _prerenderInfo_fallbackRouteParams;
283
+ if (ctx.requestMeta) {
284
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.setRequestMeta)(req, ctx.requestMeta);
285
+ }
286
+ if (routeModule.isDev) {
287
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());
288
+ }
289
+ const isMinimalMode = Boolean((0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'minimalMode'));
290
+ let srcPage = "/[locale]/moderate/entity-tags/page";
291
+ // turbopack doesn't normalize `/index` in the page name
292
+ // so we need to to process dynamic routes properly
293
+ // TODO: fix turbopack providing differing value from webpack
294
+ if (false) {} else if (srcPage === '/index') {
295
+ // we always normalize /index specifically
296
+ srcPage = '/';
297
+ }
298
+ const multiZoneDraftMode = false;
299
+ const prepareResult = await routeModule.prepare(req, res, {
300
+ srcPage,
301
+ multiZoneDraftMode
311
302
  });
312
- const entityTypes = entityTypesData?.entityTypes || [];
313
- // Mutation for creating new entity type
314
- const createEntityTypeMutation = entityTypesAPI.add.useMutation();
315
- const handleAddTag = async ()=>{
316
- if (!newTag.trim()) return;
317
- setError('');
318
- try {
319
- await createEntityTypeMutation.mutateAsync(newTag.trim());
320
- queryClient.invalidateQueries({
321
- queryKey: [
322
- '/api/entity-types'
323
- ]
324
- });
325
- setNewTag('');
326
- } catch (err) {
327
- setError(err instanceof Error ? err.message : t('errorFailedToAdd'));
303
+ if (!prepareResult) {
304
+ res.statusCode = 400;
305
+ res.end('Bad Request');
306
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
307
+ return null;
308
+ }
309
+ const { buildId, query, params, pageIsDynamic, buildManifest, nextFontManifest, reactLoadableManifest, serverActionsManifest, clientReferenceManifest, subresourceIntegrityManifest, prerenderManifest, isDraftMode, resolvedPathname, revalidateOnlyGenerated, routerServerContext, nextConfig, parsedUrl, interceptionRoutePatterns, deploymentId, clientAssetToken } = prepareResult;
310
+ const normalizedSrcPage = (0,next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__.normalizeAppPath)(srcPage);
311
+ let { isOnDemandRevalidate } = prepareResult;
312
+ // We use the resolvedPathname instead of the parsedUrl.pathname because it
313
+ // is not rewritten as resolvedPathname is. This will ensure that the correct
314
+ // prerender info is used instead of using the original pathname as the
315
+ // source. If however PPR is enabled and cacheComponents is disabled, we
316
+ // treat the pathname as dynamic. Currently, there's a bug in the PPR
317
+ // implementation that incorrectly leaves %%drp placeholders in the output of
318
+ // parallel routes. This is addressed with cacheComponents.
319
+ 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);
320
+ const prerenderInfo = (prerenderMatch == null ? void 0 : prerenderMatch.route) ?? null;
321
+ const isPrerendered = !!prerenderManifest.routes[resolvedPathname];
322
+ const userAgent = req.headers['user-agent'] || '';
323
+ const botType = (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__.getBotType)(userAgent);
324
+ const isHtmlBot = (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.isHtmlBotRequest)(req);
325
+ /**
326
+ * If true, this indicates that the request being made is for an app
327
+ * prefetch request.
328
+ */ 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'
329
+ ;
330
+ // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later
331
+ 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]);
332
+ const isPossibleServerAction = (0,next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__.getIsPossibleServerAction)(req);
333
+ /**
334
+ * If the route being rendered is an app page, and the ppr feature has been
335
+ * enabled, then the given route _could_ support PPR.
336
+ */ const couldSupportPPR = (0,next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__.checkIsAppPPREnabled)(nextConfig.experimental.ppr);
337
+ // Stash postponed state for server actions when in minimal mode.
338
+ // We extract it here so the RDC is available for the re-render after the action completes.
339
+ const resumeStateLengthHeader = req.headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_RESUME_STATE_LENGTH_HEADER];
340
+ if (!(0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed') && isMinimalMode && couldSupportPPR && isPossibleServerAction && resumeStateLengthHeader && typeof resumeStateLengthHeader === 'string') {
341
+ const stateLength = parseInt(resumeStateLengthHeader, 10);
342
+ const { maxPostponedStateSize, maxPostponedStateSizeBytes } = (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getMaxPostponedStateSize)(nextConfig.experimental.maxPostponedStateSize);
343
+ if (!isNaN(stateLength) && stateLength > 0) {
344
+ var _nextConfig_experimental_serverActions;
345
+ if (stateLength > maxPostponedStateSizeBytes) {
346
+ res.statusCode = 413;
347
+ res.end((0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getPostponedStateExceededErrorMessage)(maxPostponedStateSize));
348
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
349
+ return null;
350
+ }
351
+ // Calculate max total body size to prevent buffering excessively large
352
+ // payloads before the action handler checks. We use stateLength (not
353
+ // maxPostponedStateSizeBytes) so the postponed state doesn't eat into
354
+ // the action body budget - it's already validated above.
355
+ const defaultActionBodySizeLimit = '1 MB';
356
+ const actionBodySizeLimit = ((_nextConfig_experimental_serverActions = nextConfig.experimental.serverActions) == null ? void 0 : _nextConfig_experimental_serverActions.bodySizeLimit) ?? defaultActionBodySizeLimit;
357
+ const actionBodySizeLimitBytes = actionBodySizeLimit !== defaultActionBodySizeLimit ? (__webpack_require__(32683).parse)(actionBodySizeLimit) : 1024 * 1024 // 1 MB
358
+ ;
359
+ const maxTotalBodySize = stateLength + actionBodySizeLimitBytes;
360
+ const fullBody = await (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.readBodyWithSizeLimit)(req, maxTotalBodySize);
361
+ if (fullBody === null) {
362
+ res.statusCode = 413;
363
+ 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`);
364
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
365
+ return null;
366
+ }
367
+ if (fullBody.length >= stateLength) {
368
+ // Extract postponed state from the beginning
369
+ const postponedState = fullBody.subarray(0, stateLength).toString('utf8');
370
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'postponed', postponedState);
371
+ // Store the remaining action body for the action handler
372
+ const actionBody = fullBody.subarray(stateLength);
373
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'actionBody', actionBody);
374
+ } else {
375
+ throw Object.defineProperty(new Error(`invariant: expected ${stateLength} bytes of postponed state but only received ${fullBody.length} bytes`), "__NEXT_ERROR_CODE", {
376
+ value: "E979",
377
+ enumerable: false,
378
+ configurable: true
379
+ });
380
+ }
328
381
  }
329
- };
330
- if (isLoading) {
331
- return /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
332
- className: "flex items-center justify-center py-20",
333
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("p", {
334
- className: "text-gray-600 dark:text-gray-300",
335
- children: t('loading')
336
- })
337
- });
338
382
  }
339
- return /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist.EntityTagsPage, {
340
- entityTypes: entityTypes,
341
- isLoading: isLoading,
342
- error: error,
343
- newTag: newTag,
344
- onNewTagChange: setNewTag,
345
- onAddTag: handleAddTag,
346
- isAddingTag: createEntityTypeMutation.isPending,
347
- theme: theme,
348
- showLineNumbers: showLineNumbers,
349
- activePanel: activePanel,
350
- translations: {
351
- pageTitle: t('pageTitle'),
352
- pageDescription: t('pageDescription'),
353
- sectionTitle: t('sectionTitle'),
354
- sectionDescription: t('sectionDescription'),
355
- inputPlaceholder: t('inputPlaceholder'),
356
- addTag: t('addTag'),
357
- adding: t('adding')
358
- },
359
- ToolbarPanels: ToolbarPanels/* ToolbarPanels */.t,
360
- Toolbar: dist.Toolbar
361
- });
362
- }
363
-
364
-
365
- /***/ }),
366
-
367
- /***/ 32037:
368
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
369
-
370
- "use strict";
371
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
372
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
373
- /* harmony export */ });
374
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
375
-
376
- function ArrowsRightLeftIcon({ title, titleId, ...props }, svgRef) {
377
- return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
378
- xmlns: "http://www.w3.org/2000/svg",
379
- fill: "none",
380
- viewBox: "0 0 24 24",
381
- strokeWidth: 1.5,
382
- stroke: "currentColor",
383
- "aria-hidden": "true",
384
- "data-slot": "icon",
385
- ref: svgRef,
386
- "aria-labelledby": titleId
387
- }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
388
- id: titleId
389
- }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
390
- strokeLinecap: "round",
391
- strokeLinejoin: "round",
392
- d: "M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"
393
- }));
394
- }
395
- const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ArrowsRightLeftIcon);
396
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
397
-
398
-
399
- /***/ }),
400
-
401
- /***/ 33873:
402
- /***/ ((module) => {
403
-
404
- "use strict";
405
- module.exports = require("path");
406
-
407
- /***/ }),
408
-
409
- /***/ 33898:
410
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
411
-
412
- "use strict";
413
- // ESM COMPAT FLAG
414
- __webpack_require__.r(__webpack_exports__);
415
-
416
- // EXPORTS
417
- __webpack_require__.d(__webpack_exports__, {
418
- "default": () => (/* binding */ ModerateLayout)
419
- });
420
-
421
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js
422
- var react_jsx_runtime = __webpack_require__(92692);
423
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
424
- var react = __webpack_require__(71277);
425
- // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
426
- var react_client = __webpack_require__(56305);
427
- // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
428
- var next_auth_react = __webpack_require__(62341);
429
- // EXTERNAL MODULE: __barrel_optimize__?names=ApiClientProvider,AuthTokenProvider,Footer,LeftSidebar!=!../../packages/react-ui/dist/index.mjs
430
- var dist = __webpack_require__(25888);
431
- // EXTERNAL MODULE: ./src/i18n/routing.ts
432
- var routing = __webpack_require__(99704);
433
- // EXTERNAL MODULE: __barrel_optimize__?names=SimpleNavigation,useEventSubscriptions!=!../../packages/react-ui/dist/index.mjs
434
- var react_ui_dist = __webpack_require__(25197);
435
- ;// ../../node_modules/@heroicons/react/24/outline/esm/ClockIcon.js
436
-
437
- function ClockIcon({ title, titleId, ...props }, svgRef) {
438
- return /*#__PURE__*/ react.createElement("svg", Object.assign({
439
- xmlns: "http://www.w3.org/2000/svg",
440
- fill: "none",
441
- viewBox: "0 0 24 24",
442
- strokeWidth: 1.5,
443
- stroke: "currentColor",
444
- "aria-hidden": "true",
445
- "data-slot": "icon",
446
- ref: svgRef,
447
- "aria-labelledby": titleId
448
- }, props), title ? /*#__PURE__*/ react.createElement("title", {
449
- id: titleId
450
- }, title) : null, /*#__PURE__*/ react.createElement("path", {
451
- strokeLinecap: "round",
452
- strokeLinejoin: "round",
453
- d: "M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
454
- }));
455
- }
456
- const ForwardRef = /*#__PURE__*/ react.forwardRef(ClockIcon);
457
- /* harmony default export */ const esm_ClockIcon = (ForwardRef);
458
-
459
- ;// ../../node_modules/@heroicons/react/24/outline/esm/TagIcon.js
460
-
461
- function TagIcon({ title, titleId, ...props }, svgRef) {
462
- return /*#__PURE__*/ react.createElement("svg", Object.assign({
463
- xmlns: "http://www.w3.org/2000/svg",
464
- fill: "none",
465
- viewBox: "0 0 24 24",
466
- strokeWidth: 1.5,
467
- stroke: "currentColor",
468
- "aria-hidden": "true",
469
- "data-slot": "icon",
470
- ref: svgRef,
471
- "aria-labelledby": titleId
472
- }, props), title ? /*#__PURE__*/ react.createElement("title", {
473
- id: titleId
474
- }, title) : null, /*#__PURE__*/ react.createElement("path", {
475
- strokeLinecap: "round",
476
- strokeLinejoin: "round",
477
- 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"
478
- }), /*#__PURE__*/ react.createElement("path", {
479
- strokeLinecap: "round",
480
- strokeLinejoin: "round",
481
- d: "M6 6h.008v.008H6V6Z"
482
- }));
483
- }
484
- const TagIcon_ForwardRef = /*#__PURE__*/ react.forwardRef(TagIcon);
485
- /* harmony default export */ const esm_TagIcon = (TagIcon_ForwardRef);
486
-
487
- ;// ../../node_modules/@heroicons/react/24/outline/esm/BookOpenIcon.js
488
-
489
- function BookOpenIcon({ title, titleId, ...props }, svgRef) {
490
- return /*#__PURE__*/ react.createElement("svg", Object.assign({
491
- xmlns: "http://www.w3.org/2000/svg",
492
- fill: "none",
493
- viewBox: "0 0 24 24",
494
- strokeWidth: 1.5,
495
- stroke: "currentColor",
496
- "aria-hidden": "true",
497
- "data-slot": "icon",
498
- ref: svgRef,
499
- "aria-labelledby": titleId
500
- }, props), title ? /*#__PURE__*/ react.createElement("title", {
501
- id: titleId
502
- }, title) : null, /*#__PURE__*/ react.createElement("path", {
503
- strokeLinecap: "round",
504
- strokeLinejoin: "round",
505
- 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"
506
- }));
507
- }
508
- const BookOpenIcon_ForwardRef = /*#__PURE__*/ react.forwardRef(BookOpenIcon);
509
- /* harmony default export */ const esm_BookOpenIcon = (BookOpenIcon_ForwardRef);
510
-
511
- // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/ArrowsRightLeftIcon.js
512
- var ArrowsRightLeftIcon = __webpack_require__(32037);
513
- // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/ChevronLeftIcon.js
514
- var ChevronLeftIcon = __webpack_require__(71062);
515
- // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/Bars3Icon.js
516
- var Bars3Icon = __webpack_require__(67255);
517
- ;// ./src/components/moderation/ModerationNavigation.tsx
518
- /* __next_internal_client_entry_do_not_use__ ModerationNavigation auto */
519
-
520
-
521
-
522
-
523
-
524
-
525
- function ModerationNavigation({ isCollapsed, toggleCollapsed, navigationMenu }) {
526
- const t = (0,react_client/* useTranslations */.c)('Moderation');
527
- const tSidebar = (0,react_client/* useTranslations */.c)('Sidebar');
528
- const pathname = (0,routing/* usePathname */.a8)();
529
- // Handle sidebar toggle events
530
- const handleSidebarToggle = (0,react.useCallback)(()=>{
531
- toggleCollapsed();
532
- }, [
533
- toggleCollapsed
534
- ]);
535
- // Subscribe to sidebar toggle events
536
- (0,react_ui_dist/* useEventSubscriptions */.C$z)({
537
- 'browse:sidebar-toggle': handleSidebarToggle
538
- });
539
- const navigation = [
540
- {
541
- name: t('recentResources'),
542
- href: '/moderate/recent',
543
- icon: esm_ClockIcon,
544
- description: t('recentResourcesDescription')
545
- },
546
- {
547
- name: t('entityTags'),
548
- href: '/moderate/entity-tags',
549
- icon: esm_TagIcon,
550
- description: t('entityTagsDescription')
551
- },
552
- {
553
- name: t('tagSchemas'),
554
- href: '/moderate/tag-schemas',
555
- icon: esm_BookOpenIcon,
556
- description: t('tagSchemasDescription')
557
- },
558
- {
559
- name: t('linkedData'),
560
- href: '/moderate/linked-data',
561
- icon: ArrowsRightLeftIcon/* default */.A,
562
- description: t('linkedDataDescription')
383
+ 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') {
384
+ const { maxPostponedStateSize, maxPostponedStateSizeBytes } = (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getMaxPostponedStateSize)(nextConfig.experimental.maxPostponedStateSize);
385
+ // Decode the postponed state from the request body, it will come as
386
+ // an array of buffers, so collect them and then concat them to form
387
+ // the string.
388
+ const body = await (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.readBodyWithSizeLimit)(req, maxPostponedStateSizeBytes);
389
+ if (body === null) {
390
+ res.statusCode = 413;
391
+ res.end((0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getPostponedStateExceededErrorMessage)(maxPostponedStateSize));
392
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
393
+ return null;
563
394
  }
564
- ];
565
- return /*#__PURE__*/ (0,react_jsx_runtime.jsx)(react_ui_dist/* SimpleNavigation */.TbX, {
566
- title: t('title'),
567
- items: navigation,
568
- currentPath: pathname,
569
- LinkComponent: routing/* Link */.N_,
570
- ...navigationMenu && {
571
- dropdownContent: navigationMenu
572
- },
573
- isCollapsed: isCollapsed,
574
- icons: {
575
- chevronLeft: ChevronLeftIcon/* default */.A,
576
- bars: Bars3Icon/* default */.A
577
- },
578
- collapseSidebarLabel: tSidebar('collapseSidebar'),
579
- expandSidebarLabel: tSidebar('expandSidebar')
580
- });
581
- }
582
-
583
- // EXTERNAL MODULE: ./src/components/CookiePreferences.tsx
584
- var CookiePreferences = __webpack_require__(80386);
585
- // EXTERNAL MODULE: ./src/contexts/KeyboardShortcutsContext.tsx + 3 modules
586
- var KeyboardShortcutsContext = __webpack_require__(40953);
587
- // EXTERNAL MODULE: ./src/lib/routing.ts
588
- var lib_routing = __webpack_require__(46391);
589
- // EXTERNAL MODULE: ./src/hooks/useAuth.ts + 1 modules
590
- var useAuth = __webpack_require__(31039);
591
- ;// ./src/app/[locale]/moderate/layout.tsx
592
- /* __next_internal_client_entry_do_not_use__ default auto */
593
-
594
-
595
-
596
-
597
-
598
-
599
-
600
-
601
-
602
- // Note: Authentication is handled by middleware.ts for all moderate routes
603
- // This ensures centralized security and returns 404 for unauthorized users
604
- function ModerateLayout({ children }) {
605
- const t = (0,react_client/* useTranslations */.c)('Footer');
606
- const tNav = (0,react_client/* useTranslations */.c)('Navigation');
607
- const tHome = (0,react_client/* useTranslations */.c)('Home');
608
- const keyboardContext = (0,react.useContext)(KeyboardShortcutsContext/* KeyboardShortcutsContext */.GZ);
609
- const { isAuthenticated, isAdmin, isModerator } = (0,useAuth/* useAuth */.As)();
610
- const { data: session } = (0,next_auth_react.useSession)();
611
- // Extract auth token from session
612
- const authToken = session?.backendToken || null;
613
- // Middleware has already verified moderator/admin access
614
- return /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* AuthTokenProvider */.ffs, {
615
- token: authToken,
616
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* ApiClientProvider */.pqI, {
617
- baseUrl: "",
618
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
619
- className: "min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col",
620
- children: [
621
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
622
- className: "flex flex-1",
623
- children: [
624
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* LeftSidebar */.Ef3, {
625
- Link: lib_routing/* Link */.N,
626
- routes: lib_routing/* routes */.J,
627
- t: tNav,
628
- tHome: tHome,
629
- brandingLink: "/",
630
- collapsible: true,
631
- storageKey: "moderation-sidebar-collapsed",
632
- isAuthenticated: isAuthenticated,
633
- isAdmin: isAdmin,
634
- isModerator: isModerator,
635
- children: (isCollapsed, toggleCollapsed, navigationMenu)=>/*#__PURE__*/ (0,react_jsx_runtime.jsx)(ModerationNavigation, {
636
- isCollapsed: isCollapsed,
637
- toggleCollapsed: toggleCollapsed,
638
- navigationMenu: navigationMenu
639
- })
640
- }),
641
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("main", {
642
- className: "flex-1 p-6 flex flex-col",
643
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
644
- className: "max-w-7xl mx-auto flex-1 flex flex-col w-full",
645
- children: children
646
- })
647
- })
648
- ]
649
- }),
650
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* Footer */.wi6, {
651
- Link: lib_routing/* Link */.N,
652
- routes: lib_routing/* routes */.J,
653
- t: t,
654
- CookiePreferences: CookiePreferences/* CookiePreferences */.f,
655
- ...keyboardContext?.openKeyboardHelp && {
656
- onOpenKeyboardHelp: keyboardContext.openKeyboardHelp
657
- }
658
- })
659
- ]
660
- })
661
- })
662
- });
663
- }
664
-
665
-
666
- /***/ }),
667
-
668
- /***/ 41025:
669
- /***/ ((module) => {
670
-
671
- "use strict";
672
- module.exports = require("next/dist/server/app-render/dynamic-access-async-storage.external.js");
673
-
674
- /***/ }),
675
-
676
- /***/ 41857:
677
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
678
-
679
- Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3805));
680
-
681
-
682
- /***/ }),
683
-
684
- /***/ 43954:
685
- /***/ ((module) => {
686
-
687
- "use strict";
688
- module.exports = require("next/dist/shared/lib/router/utils/interception-routes");
689
-
690
- /***/ }),
691
-
692
- /***/ 50436:
693
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
694
-
695
- "use strict";
696
-
697
- // EXPORTS
698
- __webpack_require__.d(__webpack_exports__, {
699
- t: () => (/* binding */ ToolbarPanels)
700
- });
701
-
702
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js
703
- var react_jsx_runtime = __webpack_require__(92692);
704
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
705
- var react = __webpack_require__(71277);
706
- // EXTERNAL MODULE: ../../packages/react-ui/dist/index.mjs + 27 modules
707
- var dist = __webpack_require__(76552);
708
- ;// __barrel_optimize__?names=ResizeHandle,SettingsPanel,useEventSubscriptions,usePanelWidth!=!../../packages/react-ui/dist/index.mjs
709
-
710
-
711
- // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
712
- var next_auth_react = __webpack_require__(62341);
713
- // EXTERNAL MODULE: ../../node_modules/next/dist/api/image.js
714
- var api_image = __webpack_require__(93523);
715
- // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
716
- var react_client = __webpack_require__(56305);
717
- ;// __barrel_optimize__?names=formatTime,sanitizeImageURL,useSessionExpiry!=!../../packages/react-ui/dist/index.mjs
718
-
719
-
720
- // EXTERNAL MODULE: ./src/hooks/useAuth.ts + 1 modules
721
- var useAuth = __webpack_require__(31039);
722
- ;// ./src/components/UserPanel.tsx
723
- /* __next_internal_client_entry_do_not_use__ UserPanel auto */
724
-
725
-
726
-
727
-
728
-
729
-
730
- // Fallback avatar when image fails to load or is invalid
731
- const FALLBACK_AVATAR = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiM2QjcyODAiLz4KPHBhdGggZD0iTTE2IDE2QzE4LjIwOTEgMTYgMjAgMTQuMjA5MSAyMCAxMkMyMCA5Ljc5MDg2IDE4LjIwOTEgOCAxNiA4QzEzLjc5MDkgOCAxMiA5Ljc5MDg2IDEyIDEyQzEyIDE0LjIwOTEgMTMuNzkwOSAxNiAxNiAxNloiIGZpbGw9IiNFNUU3RUIiLz4KPHBhdGggZD0iTTI0IDI1QzI0IDIxLjY4NjMgMjAuNDE4MyAxOSAxNiAxOUMxMS41ODE3IDE5IDggMjEuNjg2MyA4IDI1IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==';
732
- function UserPanel() {
733
- const t = (0,react_client/* useTranslations */.c)('UserPanel');
734
- const { displayName, avatarUrl, userDomain, isAdmin, isModerator } = (0,useAuth/* useAuth */.As)();
735
- const [imageError, setImageError] = (0,react.useState)(false);
736
- const { timeRemaining } = (0,dist.useSessionExpiry)();
737
- const sessionTimeFormatted = (0,dist.formatTime)(timeRemaining) ?? 'Unknown';
738
- // Sanitize and validate the profile image URL
739
- const profileImageUrl = (()=>{
740
- if (!avatarUrl || imageError) {
741
- return FALLBACK_AVATAR;
742
- }
743
- const sanitized = (0,dist.sanitizeImageURL)(avatarUrl);
744
- if (!sanitized) {
745
- console.warn('Invalid profile image URL detected, using fallback');
746
- return FALLBACK_AVATAR;
395
+ const postponed = body.toString('utf8');
396
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'postponed', postponed);
397
+ }
398
+ // When enabled, this will allow the use of the `?__nextppronly` query to
399
+ // enable debugging of the static shell.
400
+ const hasDebugStaticShellQuery = false && 0;
401
+ // When enabled, this will allow the use of the `?__nextppronly` query
402
+ // to enable debugging of the fallback shell.
403
+ const hasDebugFallbackShellQuery = hasDebugStaticShellQuery && query.__nextppronly === 'fallback';
404
+ // Whether the testing API is exposed (dev mode or explicit flag)
405
+ const exposeTestingApi = routeModule.isDev === true || nextConfig.experimental.exposeTestingApiInProductionBuild === true;
406
+ // Enable the Instant Navigation Testing API. Renders only the prefetched
407
+ // portion of the page, excluding dynamic content. This allows tests to
408
+ // assert on the prefetched UI state deterministically.
409
+ // - Header: Used for client-side navigations where we can set request headers
410
+ // - Cookie: Used for MPA navigations (page reload, full page load) where we
411
+ // can't set request headers. Only applies to document requests (no RSC
412
+ // header) - RSC requests should proceed normally even during a locked scope,
413
+ // with blocking happening on the client side.
414
+ 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 + '='));
415
+ // This page supports PPR if it is marked as being `PARTIALLY_STATIC` in the
416
+ // prerender manifest and this is an app page.
417
+ const isRoutePPREnabled = // When the instant navigation testing API is active, enable the PPR
418
+ // prerender path even without Cache Components. In dev mode without CC,
419
+ // static pages need this path to produce buffered segment data (the
420
+ // legacy prerender path hangs in dev mode).
421
+ (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
422
+ // enabled or not, but that would require plumbing the appConfig through
423
+ // to the server during development. We assume that the page supports it
424
+ // but only during development or when the testing API is exposed.
425
+ (hasDebugStaticShellQuery || isInstantNavigationTest) && (exposeTestingApi || (routerServerContext == null ? void 0 : routerServerContext.experimentalTestProxy) === true));
426
+ const isDebugStaticShell = (hasDebugStaticShellQuery || isInstantNavigationTest) && isRoutePPREnabled;
427
+ // We should enable debugging dynamic accesses when the static shell
428
+ // debugging has been enabled and we're also in development mode.
429
+ const isDebugDynamicAccesses = isDebugStaticShell && routeModule.isDev === true;
430
+ const isDebugFallbackShell = hasDebugFallbackShellQuery && isRoutePPREnabled;
431
+ // If we're in minimal mode, then try to get the postponed information from
432
+ // the request metadata. If available, use it for resuming the postponed
433
+ // render.
434
+ const minimalPostponed = isRoutePPREnabled ? (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed') : undefined;
435
+ // If PPR is enabled, and this is a RSC request (but not a prefetch), then
436
+ // we can use this fact to only generate the flight data for the request
437
+ // because we can't cache the HTML (as it's also dynamic).
438
+ const staticPrefetchDataRoute = (_prerenderManifest_routes_resolvedPathname = prerenderManifest.routes[resolvedPathname]) == null ? void 0 : _prerenderManifest_routes_resolvedPathname.prefetchDataRoute;
439
+ let isDynamicRSCRequest = isRoutePPREnabled && isRSCRequest && !isPrefetchRSCRequest && // If generated at build time, treat the RSC request as static
440
+ // so we can serve the prebuilt .rsc without a dynamic render.
441
+ // Only do this for routes that have a concrete prefetchDataRoute.
442
+ !staticPrefetchDataRoute;
443
+ // During a PPR revalidation, the RSC request is not dynamic if we do not have the postponed data.
444
+ // We only attach the postponed data during a resume. If there's no postponed data, then it must be a revalidation.
445
+ // This is to ensure that we don't bypass the cache during a revalidation.
446
+ if (isMinimalMode) {
447
+ isDynamicRSCRequest = isDynamicRSCRequest && !!minimalPostponed;
448
+ }
449
+ // Need to read this before it's stripped by stripFlightHeaders. We don't
450
+ // need to transfer it to the request meta because it's only read
451
+ // within this function; the static segment data should have already been
452
+ // generated, so we will always either return a static response or a 404.
453
+ const segmentPrefetchHeader = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'segmentPrefetchRSCRequest');
454
+ // TODO: investigate existing bug with shouldServeStreamingMetadata always
455
+ // being true for a revalidate due to modifying the base-server this.renderOpts
456
+ // when fixing this to correct logic it causes hydration issue since we set
457
+ // serveStreamingMetadata to true during export
458
+ const serveStreamingMetadata = botType && isRoutePPREnabled ? false : !userAgent ? true : (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.shouldServeStreamingMetadata)(userAgent, nextConfig.htmlLimitedBots);
459
+ const isSSG = Boolean((prerenderInfo || isPrerendered || prerenderManifest.routes[normalizedSrcPage]) && // If this is a bot request and PPR is enabled, then we don't want
460
+ // to serve a static response. This applies to both DOM bots (like Googlebot)
461
+ // and HTML-limited bots.
462
+ !(botType && isRoutePPREnabled));
463
+ // When a page supports cacheComponents, we can support RDC for Navigations
464
+ const supportsRDCForNavigations = isRoutePPREnabled && nextConfig.cacheComponents === true;
465
+ // In development, we always want to generate dynamic HTML.
466
+ const supportsDynamicResponse = // If we're in development, we always support dynamic HTML, unless it's
467
+ // a data request, in which case we only produce static HTML.
468
+ routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports
469
+ // dynamic HTML.
470
+ !isSSG || // If this request has provided postponed data, it supports dynamic
471
+ // HTML.
472
+ typeof minimalPostponed === 'string' || // If this handler supports onCacheEntryV2, then we can only support
473
+ // dynamic responses if it's a dynamic RSC request and not in minimal mode. If it
474
+ // doesn't support it we must fallback to the default behavior.
475
+ (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
476
+ // RSC request, we'll pass the minimal postponed data to the render
477
+ // which will trigger the `supportsDynamicResponse` to be true.
478
+ isDynamicRSCRequest && !isMinimalMode : isDynamicRSCRequest);
479
+ // When bots request PPR page, perform the full dynamic rendering.
480
+ // This applies to both DOM bots (like Googlebot) and HTML-limited bots.
481
+ const shouldWaitOnAllReady = Boolean(botType) && isRoutePPREnabled;
482
+ const remainingPrerenderableParams = (prerenderInfo == null ? void 0 : prerenderInfo.remainingPrerenderableParams) ?? [];
483
+ const hasUnresolvedRootFallbackParams = (prerenderInfo == null ? void 0 : prerenderInfo.fallback) === null && (((_prerenderInfo_fallbackRootParams = prerenderInfo.fallbackRootParams) == null ? void 0 : _prerenderInfo_fallbackRootParams.length) ?? 0) > 0;
484
+ let ssgCacheKey = null;
485
+ if (!isDraftMode && isSSG && !supportsDynamicResponse && !isPossibleServerAction && !minimalPostponed && !isDynamicRSCRequest) {
486
+ // For normal SSG routes we cache by the fully resolved pathname. For
487
+ // partial fallbacks we instead derive the cache key from the shell
488
+ // that matched this request so `/prefix/[one]/[two]` can specialize into
489
+ // `/prefix/c/[two]` without promoting all the way to `/prefix/c/foo`.
490
+ const fallbackPathname = prerenderMatch ? typeof (prerenderInfo == null ? void 0 : prerenderInfo.fallback) === 'string' ? prerenderInfo.fallback : prerenderMatch.source : null;
491
+ if (nextConfig.experimental.partialFallbacks === true && fallbackPathname && (prerenderInfo == null ? void 0 : prerenderInfo.fallbackRouteParams) && !hasUnresolvedRootFallbackParams) {
492
+ if (remainingPrerenderableParams.length > 0) {
493
+ const completedShellCacheKey = buildCompletedShellCacheKey(fallbackPathname, remainingPrerenderableParams, params);
494
+ // If applying the current request params doesn't make the shell any
495
+ // more complete, then this shell is already at its most complete
496
+ // form and should remain shared rather than creating a new cache entry.
497
+ ssgCacheKey = completedShellCacheKey !== fallbackPathname ? completedShellCacheKey : null;
498
+ }
499
+ } else {
500
+ ssgCacheKey = resolvedPathname;
747
501
  }
748
- return sanitized;
749
- })();
750
- const handleSignOut = async ()=>{
751
- await (0,next_auth_react.signOut)({
752
- callbackUrl: '/'
502
+ }
503
+ // the staticPathKey differs from ssgCacheKey since
504
+ // ssgCacheKey is null in dev since we're always in "dynamic"
505
+ // mode in dev to bypass the cache. It can also be null for partial
506
+ // fallback shells that should remain shared and must not create a
507
+ // param-specific ISR entry, but we still need to honor fallback handling.
508
+ let staticPathKey = ssgCacheKey;
509
+ if (!staticPathKey && (routeModule.isDev || isSSG && pageIsDynamic && (prerenderInfo == null ? void 0 : prerenderInfo.fallbackRouteParams))) {
510
+ staticPathKey = resolvedPathname;
511
+ }
512
+ // If this is a request for an app path that should be statically generated
513
+ // and we aren't in the edge runtime, strip the flight headers so it will
514
+ // generate the static response.
515
+ if (!routeModule.isDev && !isDraftMode && isSSG && isRSCRequest && !isDynamicRSCRequest) {
516
+ (0,next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__/* .stripFlightHeaders */ .d)(req.headers);
517
+ }
518
+ const ComponentMod = {
519
+ ...next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_27__,
520
+ tree,
521
+ handler,
522
+ routeModule,
523
+ __next_app__
524
+ };
525
+ // Before rendering (which initializes component tree modules), we have to
526
+ // set the reference manifests to our global store so Server Action's
527
+ // encryption util can access to them at the top level of the page module.
528
+ if (serverActionsManifest && clientReferenceManifest) {
529
+ (0,next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11__.setManifestsSingleton)({
530
+ page: srcPage,
531
+ clientReferenceManifest,
532
+ serverActionsManifest
753
533
  });
534
+ }
535
+ const method = req.method || 'GET';
536
+ const tracer = (0,next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.getTracer)();
537
+ const activeSpan = tracer.getActiveScopeSpan();
538
+ const isWrappedByNextServer = Boolean(routerServerContext == null ? void 0 : routerServerContext.isWrappedByNextServer);
539
+ 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))) ?? [] : [];
540
+ const render404 = async ()=>{
541
+ // TODO: should route-module itself handle rendering the 404
542
+ if (routerServerContext == null ? void 0 : routerServerContext.render404) {
543
+ await routerServerContext.render404(req, res, parsedUrl, false);
544
+ } else {
545
+ res.end('This page could not be found');
546
+ }
547
+ return null;
754
548
  };
755
- return /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
756
- className: "semiont-user-panel",
757
- children: [
758
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("h3", {
759
- className: "semiont-user-panel__title",
760
- children: t('account')
761
- }),
762
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
763
- className: "space-y-4",
764
- children: [
765
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
766
- className: "flex items-center gap-3",
767
- children: [
768
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)(api_image["default"], {
769
- src: profileImageUrl,
770
- alt: t('profileAlt', {
771
- name: displayName || t('user')
772
- }),
773
- width: 48,
774
- height: 48,
775
- className: "w-12 h-12 rounded-full object-cover",
776
- onError: ()=>setImageError(true),
777
- unoptimized: profileImageUrl === FALLBACK_AVATAR,
778
- sizes: "48px",
779
- quality: 85
780
- }),
781
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
782
- className: "flex-1 min-w-0",
783
- children: [
784
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
785
- className: "semiont-panel-text",
786
- children: displayName || t('user')
787
- }),
788
- userDomain && /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
789
- className: "semiont-panel-text-secondary",
790
- children: [
791
- "@",
792
- userDomain
793
- ]
794
- })
795
- ]
796
- })
797
- ]
798
- }),
799
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
800
- children: [
801
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("label", {
802
- className: "semiont-panel-label",
803
- children: t('session')
804
- }),
805
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
806
- className: "semiont-session-box",
807
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
808
- className: "semiont-panel-hint",
809
- children: t('expiresIn', {
810
- time: sessionTimeFormatted
811
- })
812
- })
813
- })
814
- ]
815
- }),
816
- (isAdmin || isModerator) && /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
817
- children: [
818
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("label", {
819
- className: "semiont-panel-label",
820
- children: t('privileges')
821
- }),
822
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
823
- className: "space-y-1",
824
- children: [
825
- isAdmin && /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
826
- className: "semiont-privilege-badge semiont-privilege-badge--admin",
827
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("span", {
828
- className: "semiont-privilege-text",
829
- children: t('administrator')
830
- })
831
- }),
832
- isModerator && /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
833
- className: "semiont-privilege-badge semiont-privilege-badge--moderator",
834
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("span", {
835
- className: "semiont-privilege-text",
836
- children: t('moderator')
837
- })
838
- })
839
- ]
840
- })
841
- ]
842
- }),
843
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
844
- className: "semiont-panel-divider",
845
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("button", {
846
- onClick: handleSignOut,
847
- className: "semiont-signout-button",
848
- children: t('signOut')
849
- })
850
- })
851
- ]
852
- })
853
- ]
854
- });
855
- }
856
-
857
- // EXTERNAL MODULE: ../../node_modules/use-intl/dist/esm/production/react.js + 18 modules
858
- var production_react = __webpack_require__(23211);
859
- // EXTERNAL MODULE: ./src/i18n/routing.ts
860
- var routing = __webpack_require__(99704);
861
- ;// __barrel_optimize__?names=COMMON_PANELS!=!../../packages/react-ui/dist/index.mjs
862
-
863
-
864
- ;// ./src/components/toolbar/ToolbarPanels.tsx
865
- /* __next_internal_client_entry_do_not_use__ ToolbarPanels auto */
866
-
867
-
868
-
869
-
870
-
871
-
872
- /**
873
- * Renders the toolbar panel container with common panels (user, settings)
874
- * and any context-specific panels passed as children.
875
- *
876
- * Settings changes are handled via GlobalSettingsEventBus - no callbacks needed.
877
- *
878
- * @example
879
- * // Simple context (compose, discover, moderate, admin pages)
880
- * <ToolbarPanels
881
- * activePanel={activePanel}
882
- * theme={theme}
883
- * showLineNumbers={showLineNumbers}
884
- * />
885
- *
886
- * @example
887
- * // Document context with custom panels
888
- * <ToolbarPanels
889
- * activePanel={activePanel}
890
- * theme={theme}
891
- * showLineNumbers={showLineNumbers}
892
- * >
893
- * {activePanel === 'annotations' && <UnifiedAnnotationsPanel ... />}
894
- * {activePanel === 'history' && <AnnotationHistory ... />}
895
- * {activePanel === 'info' && <ResourceInfoPanel ... />}
896
- * {activePanel === 'collaboration' && <CollaborationPanel ... />}
897
- * {activePanel === 'jsonld' && <JsonLdPanel ... />}
898
- * </ToolbarPanels>
899
- */ function ToolbarPanels({ activePanel, theme, showLineNumbers, hoverDelayMs, children }) {
900
- const locale = (0,production_react/* useLocale */.Ym)();
901
- const router = (0,routing/* useRouter */.rd)();
902
- const pathname = (0,routing/* usePathname */.a8)();
903
- const [isPending, startTransition] = (0,react.useTransition)();
904
- // Panel width management with localStorage persistence
905
- const { width, setWidth, minWidth, maxWidth } = (0,dist.usePanelWidth)();
906
- // Handle locale change events
907
- const handleLocaleChanged = (0,react.useCallback)(({ locale: newLocale })=>{
908
- if (!pathname) return;
909
- startTransition(()=>{
910
- // The router from @/i18n/routing is locale-aware and will handle the locale prefix
911
- router.replace(pathname, {
912
- locale: newLocale
913
- });
914
- });
915
- }, [
916
- pathname,
917
- router,
918
- startTransition
919
- ]);
920
- // Subscribe to locale change events
921
- (0,dist.useEventSubscriptions)({
922
- 'settings:locale-changed': handleLocaleChanged
923
- });
924
- // Don't render container if no panel is active
925
- if (!activePanel) {
926
- return null;
927
- }
928
- // In simple context (no children), only user and settings panels are valid.
929
- // If a resource-specific panel is still active from a previous route, hide the container.
930
- if (!children && !dist.COMMON_PANELS.includes(activePanel)) {
931
- return null;
932
- }
933
- return /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
934
- className: "semiont-toolbar-panels",
935
- style: {
936
- width: `${width}px`,
937
- position: 'relative'
938
- },
939
- children: [
940
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist.ResizeHandle, {
941
- onResize: setWidth,
942
- minWidth: minWidth,
943
- maxWidth: maxWidth,
944
- position: "left",
945
- ariaLabel: "Resize right panel"
946
- }),
947
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
948
- className: "semiont-toolbar-panels__content",
949
- children: [
950
- children,
951
- activePanel === 'user' && /*#__PURE__*/ (0,react_jsx_runtime.jsx)(UserPanel, {}),
952
- activePanel === 'settings' && /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist.SettingsPanel, {
953
- showLineNumbers: showLineNumbers,
954
- theme: theme,
955
- hoverDelayMs: hoverDelayMs,
956
- locale: locale,
957
- isPendingLocaleChange: isPending
958
- })
959
- ]
960
- })
961
- ]
962
- });
963
- }
964
-
965
-
966
- /***/ }),
967
-
968
- /***/ 55511:
969
- /***/ ((module) => {
970
-
971
- "use strict";
972
- module.exports = require("crypto");
973
-
974
- /***/ }),
975
-
976
- /***/ 56677:
977
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
978
-
979
- "use strict";
980
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
981
- /* harmony export */ C$z: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useEventSubscriptions),
982
- /* harmony export */ DPo: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useTheme),
983
- /* harmony export */ cvF: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useLineNumbers),
984
- /* harmony export */ ySJ: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.usePanelBrowse)
985
- /* harmony export */ });
986
- /* harmony import */ var _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76552);
987
-
988
-
989
-
990
- /***/ }),
991
-
992
- /***/ 59406:
993
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
994
-
995
- "use strict";
996
- __webpack_require__.r(__webpack_exports__);
997
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
998
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
999
- /* harmony export */ });
1000
- /* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30274);
1001
- /* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__);
1002
- // This file is generated by the Webpack next-flight-loader.
1003
-
1004
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
1005
- function() { throw new Error("Attempted to call the default export of \"/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/layout.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component."); },
1006
- "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/layout.tsx",
1007
- "default",
1008
- ));
1009
-
1010
-
1011
- /***/ }),
1012
-
1013
- /***/ 62256:
1014
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
1015
-
1016
- Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 59406));
1017
-
1018
-
1019
- /***/ }),
1020
-
1021
- /***/ 63033:
1022
- /***/ ((module) => {
1023
-
1024
- "use strict";
1025
- module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js");
1026
-
1027
- /***/ }),
1028
-
1029
- /***/ 70722:
1030
- /***/ ((module) => {
1031
-
1032
- "use strict";
1033
- module.exports = require("next/dist/shared/lib/invariant-error");
1034
-
1035
- /***/ }),
1036
-
1037
- /***/ 77068:
1038
- /***/ ((module) => {
1039
-
1040
- "use strict";
1041
- module.exports = require("next/dist/shared/lib/size-limit");
1042
-
1043
- /***/ }),
1044
-
1045
- /***/ 78305:
1046
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
1047
-
1048
- Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 31378));
1049
-
1050
-
1051
- /***/ }),
1052
-
1053
- /***/ 79377:
1054
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1055
-
1056
- "use strict";
1057
- __webpack_require__.r(__webpack_exports__);
1058
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1059
- /* harmony export */ GlobalError: () => (/* reexport safe */ _home_runner_work_semiont_semiont_apps_frontend_src_app_global_error_tsx__WEBPACK_IMPORTED_MODULE_25__["default"]),
1060
- /* harmony export */ __next_app__: () => (/* binding */ __next_app__),
1061
- /* harmony export */ handler: () => (/* binding */ handler),
1062
- /* harmony export */ routeModule: () => (/* binding */ routeModule)
1063
- /* harmony export */ });
1064
- /* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80666);
1065
- /* 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__);
1066
- /* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51421);
1067
- /* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4675);
1068
- /* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29796);
1069
- /* 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__);
1070
- /* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54046);
1071
- /* 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__);
1072
- /* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(74928);
1073
- /* 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__);
1074
- /* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19727);
1075
- /* harmony import */ var next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(24268);
1076
- /* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(60402);
1077
- /* 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__);
1078
- /* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(22040);
1079
- /* 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__);
1080
- /* harmony import */ var next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27186);
1081
- /* 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__);
1082
- /* harmony import */ var next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(49228);
1083
- /* 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__);
1084
- /* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(97485);
1085
- /* 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__);
1086
- /* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(261);
1087
- /* 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__);
1088
- /* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(80885);
1089
- /* 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__);
1090
- /* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(7162);
1091
- /* 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__);
1092
- /* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(26713);
1093
- /* 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__);
1094
- /* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(70972);
1095
- /* 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__);
1096
- /* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(57341);
1097
- /* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__);
1098
- /* harmony import */ var next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(95105);
1099
- /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(38038);
1100
- /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__);
1101
- /* harmony import */ var next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(29898);
1102
- /* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(98798);
1103
- /* 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__);
1104
- /* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(86439);
1105
- /* 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__);
1106
- /* harmony import */ var next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(77068);
1107
- /* 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__);
1108
- /* harmony import */ var _home_runner_work_semiont_semiont_apps_frontend_src_app_global_error_tsx__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(56357);
1109
- /* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(35402);
1110
- /* 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__);
1111
- /* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(29059);
1112
- /* 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__);
1113
- /* harmony import */ var next_dist_shared_lib_invariant_error__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(70722);
1114
- /* 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__);
1115
- /* harmony import */ var next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(31182);
1116
- /* harmony import */ var next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_29__);
1117
- /* harmony import */ var next_dist_shared_lib_router_utils_interception_routes__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(43954);
1118
- /* 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__);
1119
- /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
1120
- /* 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__]
1121
- /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
1122
- const module0 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 95235));
1123
- const module1 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 25195));
1124
- const module2 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
1125
- const module3 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 72353));
1126
- const module4 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 4253, 23));
1127
- const module5 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 49184, 23));
1128
- const module6 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 57149));
1129
- const module7 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 28310));
1130
- const module8 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 59406));
1131
- const page9 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3805));
1132
-
1133
-
1134
-
1135
-
1136
-
1137
-
1138
-
1139
-
1140
-
1141
-
1142
-
1143
-
1144
-
1145
-
1146
-
1147
-
1148
-
1149
-
1150
-
1151
-
1152
-
1153
-
1154
-
1155
-
1156
-
1157
- // We inject the tree and pages here so that we can use them in the route
1158
- // module.
1159
- const tree = {
1160
- children: [
1161
- '',
1162
- {
1163
- children: [
1164
- '[locale]',
1165
- {
1166
- children: [
1167
- 'moderate',
1168
- {
1169
- children: [
1170
- 'entity-tags',
1171
- {
1172
- children: ['__PAGE__', {}, {
1173
- page: [page9, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/entity-tags/page.tsx"],
1174
-
1175
- }]
1176
- },
1177
- {
1178
-
1179
-
1180
- }
1181
- ]
1182
- },
1183
- {
1184
- 'layout': [module8, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/layout.tsx"],
1185
-
1186
- }
1187
- ]
1188
- },
1189
- {
1190
- 'layout': [module6, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/layout.tsx"],
1191
- 'not-found': [module7, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/not-found.tsx"],
1192
-
1193
- }
1194
- ]
1195
- },
1196
- {
1197
- 'layout': [module0, "/home/runner/work/semiont/semiont/apps/frontend/src/app/layout.tsx"],
1198
- 'error': [module1, "/home/runner/work/semiont/semiont/apps/frontend/src/app/error.tsx"],
1199
- 'global-error': [module2, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
1200
- 'not-found': [module3, "/home/runner/work/semiont/semiont/apps/frontend/src/app/not-found.tsx"],
1201
- 'forbidden': [module4, "next/dist/client/components/builtin/forbidden.js"],
1202
- 'unauthorized': [module5, "next/dist/client/components/builtin/unauthorized.js"],
1203
-
1204
- }
1205
- ]
1206
- }.children;
1207
-
1208
-
1209
- const __next_app_require__ = __webpack_require__
1210
- const __next_app_load_chunk__ = () => Promise.resolve()
1211
- const __next_app__ = {
1212
- require: __next_app_require__,
1213
- loadChunk: __next_app_load_chunk__
1214
- };
1215
-
1216
-
1217
-
1218
-
1219
-
1220
-
1221
- // Create and export the route module that will be consumed.
1222
- const routeModule = new next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({
1223
- definition: {
1224
- kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,
1225
- page: "/[locale]/moderate/entity-tags/page",
1226
- pathname: "/[locale]/moderate/entity-tags",
1227
- // The following aren't used in production.
1228
- bundlePath: '',
1229
- filename: '',
1230
- appPaths: []
1231
- },
1232
- userland: {
1233
- loaderTree: tree
1234
- },
1235
- distDir: ".next" || 0,
1236
- relativeProjectDir: false || ''
1237
- });
1238
- async function handler(req, res, ctx) {
1239
- var _this;
1240
- if (routeModule.isDev) {
1241
- (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());
1242
- }
1243
- const isMinimalMode = Boolean( false || (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'minimalMode'));
1244
- let srcPage = "/[locale]/moderate/entity-tags/page";
1245
- // turbopack doesn't normalize `/index` in the page name
1246
- // so we need to to process dynamic routes properly
1247
- // TODO: fix turbopack providing differing value from webpack
1248
- if (false) {} else if (srcPage === '/index') {
1249
- // we always normalize /index specifically
1250
- srcPage = '/';
1251
- }
1252
- const multiZoneDraftMode = false;
1253
- const prepareResult = await routeModule.prepare(req, res, {
1254
- srcPage,
1255
- multiZoneDraftMode
1256
- });
1257
- if (!prepareResult) {
1258
- res.statusCode = 400;
1259
- res.end('Bad Request');
1260
- ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
1261
- return null;
1262
- }
1263
- const { buildId, query, params, pageIsDynamic, buildManifest, nextFontManifest, reactLoadableManifest, serverActionsManifest, clientReferenceManifest, subresourceIntegrityManifest, prerenderManifest, isDraftMode, resolvedPathname, revalidateOnlyGenerated, routerServerContext, nextConfig, parsedUrl, interceptionRoutePatterns, deploymentId } = prepareResult;
1264
- const normalizedSrcPage = (0,next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__.normalizeAppPath)(srcPage);
1265
- let { isOnDemandRevalidate } = prepareResult;
1266
- // We use the resolvedPathname instead of the parsedUrl.pathname because it
1267
- // is not rewritten as resolvedPathname is. This will ensure that the correct
1268
- // prerender info is used instead of using the original pathname as the
1269
- // source. If however PPR is enabled and cacheComponents is disabled, we
1270
- // treat the pathname as dynamic. Currently, there's a bug in the PPR
1271
- // implementation that incorrectly leaves %%drp placeholders in the output of
1272
- // parallel routes. This is addressed with cacheComponents.
1273
- 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);
1274
- const isPrerendered = !!prerenderManifest.routes[resolvedPathname];
1275
- const userAgent = req.headers['user-agent'] || '';
1276
- const botType = (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__.getBotType)(userAgent);
1277
- const isHtmlBot = (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.isHtmlBotRequest)(req);
1278
- /**
1279
- * If true, this indicates that the request being made is for an app
1280
- * prefetch request.
1281
- */ 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'
1282
- ;
1283
- // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later
1284
- 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]);
1285
- const isPossibleServerAction = (0,next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__.getIsPossibleServerAction)(req);
1286
- /**
1287
- * If the route being rendered is an app page, and the ppr feature has been
1288
- * enabled, then the given route _could_ support PPR.
1289
- */ const couldSupportPPR = (0,next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__.checkIsAppPPREnabled)(nextConfig.experimental.ppr);
1290
- 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') {
1291
- // Decode the postponed state from the request body, it will come as
1292
- // an array of buffers, so collect them and then concat them to form
1293
- // the string.
1294
- const body = [];
1295
- for await (const chunk of req){
1296
- body.push(chunk);
1297
- }
1298
- const postponed = Buffer.concat(body).toString('utf8');
1299
- (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'postponed', postponed);
1300
- }
1301
- // When enabled, this will allow the use of the `?__nextppronly` query to
1302
- // enable debugging of the static shell.
1303
- const hasDebugStaticShellQuery = false && 0;
1304
- // When enabled, this will allow the use of the `?__nextppronly` query
1305
- // to enable debugging of the fallback shell.
1306
- const hasDebugFallbackShellQuery = hasDebugStaticShellQuery && query.__nextppronly === 'fallback';
1307
- // This page supports PPR if it is marked as being `PARTIALLY_STATIC` in the
1308
- // prerender manifest and this is an app page.
1309
- 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
1310
- // enabled or not, but that would require plumbing the appConfig through
1311
- // to the server during development. We assume that the page supports it
1312
- // but only during development.
1313
- hasDebugStaticShellQuery && (routeModule.isDev === true || (routerServerContext == null ? void 0 : routerServerContext.experimentalTestProxy) === true));
1314
- const isDebugStaticShell = hasDebugStaticShellQuery && isRoutePPREnabled;
1315
- // We should enable debugging dynamic accesses when the static shell
1316
- // debugging has been enabled and we're also in development mode.
1317
- const isDebugDynamicAccesses = isDebugStaticShell && routeModule.isDev === true;
1318
- const isDebugFallbackShell = hasDebugFallbackShellQuery && isRoutePPREnabled;
1319
- // If we're in minimal mode, then try to get the postponed information from
1320
- // the request metadata. If available, use it for resuming the postponed
1321
- // render.
1322
- const minimalPostponed = isRoutePPREnabled ? (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed') : undefined;
1323
- // If PPR is enabled, and this is a RSC request (but not a prefetch), then
1324
- // we can use this fact to only generate the flight data for the request
1325
- // because we can't cache the HTML (as it's also dynamic).
1326
- let isDynamicRSCRequest = isRoutePPREnabled && isRSCRequest && !isPrefetchRSCRequest;
1327
- // During a PPR revalidation, the RSC request is not dynamic if we do not have the postponed data.
1328
- // We only attach the postponed data during a resume. If there's no postponed data, then it must be a revalidation.
1329
- // This is to ensure that we don't bypass the cache during a revalidation.
1330
- if (isMinimalMode) {
1331
- isDynamicRSCRequest = isDynamicRSCRequest && !!minimalPostponed;
1332
- }
1333
- // Need to read this before it's stripped by stripFlightHeaders. We don't
1334
- // need to transfer it to the request meta because it's only read
1335
- // within this function; the static segment data should have already been
1336
- // generated, so we will always either return a static response or a 404.
1337
- const segmentPrefetchHeader = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'segmentPrefetchRSCRequest');
1338
- // TODO: investigate existing bug with shouldServeStreamingMetadata always
1339
- // being true for a revalidate due to modifying the base-server this.renderOpts
1340
- // when fixing this to correct logic it causes hydration issue since we set
1341
- // serveStreamingMetadata to true during export
1342
- const serveStreamingMetadata = isHtmlBot && isRoutePPREnabled ? false : !userAgent ? true : (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.shouldServeStreamingMetadata)(userAgent, nextConfig.htmlLimitedBots);
1343
- const isSSG = Boolean((prerenderInfo || isPrerendered || prerenderManifest.routes[normalizedSrcPage]) && // If this is a html bot request and PPR is enabled, then we don't want
1344
- // to serve a static response.
1345
- !(isHtmlBot && isRoutePPREnabled));
1346
- // When a page supports cacheComponents, we can support RDC for Navigations
1347
- const supportsRDCForNavigations = isRoutePPREnabled && nextConfig.cacheComponents === true;
1348
- // In development, we always want to generate dynamic HTML.
1349
- const supportsDynamicResponse = // If we're in development, we always support dynamic HTML, unless it's
1350
- // a data request, in which case we only produce static HTML.
1351
- routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports
1352
- // dynamic HTML.
1353
- !isSSG || // If this request has provided postponed data, it supports dynamic
1354
- // HTML.
1355
- typeof minimalPostponed === 'string' || // If this handler supports onCacheEntryV2, then we can only support
1356
- // dynamic responses if it's a dynamic RSC request and not in minimal mode. If it
1357
- // doesn't support it we must fallback to the default behavior.
1358
- (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
1359
- // RSC request, we'll pass the minimal postponed data to the render
1360
- // which will trigger the `supportsDynamicResponse` to be true.
1361
- isDynamicRSCRequest && !isMinimalMode : isDynamicRSCRequest);
1362
- // When html bots request PPR page, perform the full dynamic rendering.
1363
- const shouldWaitOnAllReady = isHtmlBot && isRoutePPREnabled;
1364
- let ssgCacheKey = null;
1365
- if (!isDraftMode && isSSG && !supportsDynamicResponse && !isPossibleServerAction && !minimalPostponed && !isDynamicRSCRequest) {
1366
- ssgCacheKey = resolvedPathname;
1367
- }
1368
- // the staticPathKey differs from ssgCacheKey since
1369
- // ssgCacheKey is null in dev since we're always in "dynamic"
1370
- // mode in dev to bypass the cache, but we still need to honor
1371
- // dynamicParams = false in dev mode
1372
- let staticPathKey = ssgCacheKey;
1373
- if (!staticPathKey && routeModule.isDev) {
1374
- staticPathKey = resolvedPathname;
1375
- }
1376
- // If this is a request for an app path that should be statically generated
1377
- // and we aren't in the edge runtime, strip the flight headers so it will
1378
- // generate the static response.
1379
- if (!routeModule.isDev && !isDraftMode && isSSG && isRSCRequest && !isDynamicRSCRequest) {
1380
- (0,next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__/* .stripFlightHeaders */ .d)(req.headers);
1381
- }
1382
- const ComponentMod = {
1383
- ...next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__,
1384
- tree,
1385
- GlobalError: _home_runner_work_semiont_semiont_apps_frontend_src_app_global_error_tsx__WEBPACK_IMPORTED_MODULE_25__["default"],
1386
- handler,
1387
- routeModule,
1388
- __next_app__
1389
- };
1390
- // Before rendering (which initializes component tree modules), we have to
1391
- // set the reference manifests to our global store so Server Action's
1392
- // encryption util can access to them at the top level of the page module.
1393
- if (serverActionsManifest && clientReferenceManifest) {
1394
- (0,next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11__.setManifestsSingleton)({
1395
- page: srcPage,
1396
- clientReferenceManifest,
1397
- serverActionsManifest
1398
- });
1399
- }
1400
- const method = req.method || 'GET';
1401
- const tracer = (0,next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.getTracer)();
1402
- const activeSpan = tracer.getActiveScopeSpan();
1403
- const render404 = async ()=>{
1404
- // TODO: should route-module itself handle rendering the 404
1405
- if (routerServerContext == null ? void 0 : routerServerContext.render404) {
1406
- await routerServerContext.render404(req, res, parsedUrl, false);
1407
- } else {
1408
- res.end('This page could not be found');
1409
- }
1410
- return null;
1411
- };
1412
- try {
1413
- const varyHeader = routeModule.getVaryHeader(resolvedPathname, interceptionRoutePatterns);
1414
- res.setHeader('Vary', varyHeader);
1415
- const invokeRouteModule = async (span, context)=>{
1416
- const nextReq = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__.NodeNextRequest(req);
1417
- const nextRes = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__.NodeNextResponse(res);
1418
- return routeModule.render(nextReq, nextRes, context).finally(()=>{
1419
- if (!span) return;
1420
- span.setAttributes({
1421
- 'http.status_code': res.statusCode,
1422
- 'next.rsc': false
1423
- });
1424
- const rootSpanAttributes = tracer.getRootSpanAttributes();
1425
- // We were unable to get attributes, probably OTEL is not enabled
1426
- if (!rootSpanAttributes) {
1427
- return;
1428
- }
1429
- if (rootSpanAttributes.get('next.span_type') !== next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest) {
1430
- console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);
1431
- return;
1432
- }
1433
- const route = rootSpanAttributes.get('next.route');
1434
- if (route) {
1435
- const name = `${method} ${route}`;
1436
- span.setAttributes({
1437
- 'next.route': route,
1438
- 'http.route': route,
1439
- 'next.span_name': name
1440
- });
1441
- span.updateName(name);
1442
- } else {
1443
- span.updateName(`${method} ${srcPage}`);
1444
- }
549
+ try {
550
+ const varyHeader = routeModule.getVaryHeader(resolvedPathname, interceptionRoutePatterns);
551
+ res.setHeader('Vary', varyHeader);
552
+ let parentSpan;
553
+ const invokeRouteModule = async (span, context)=>{
554
+ const nextReq = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__.NodeNextRequest(req);
555
+ const nextRes = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__.NodeNextResponse(res);
556
+ return routeModule.render(nextReq, nextRes, context).finally(()=>{
557
+ if (!span) return;
558
+ span.setAttributes({
559
+ 'http.status_code': res.statusCode,
560
+ 'next.rsc': false
561
+ });
562
+ const rootSpanAttributes = tracer.getRootSpanAttributes();
563
+ // We were unable to get attributes, probably OTEL is not enabled
564
+ if (!rootSpanAttributes) {
565
+ return;
566
+ }
567
+ if (rootSpanAttributes.get('next.span_type') !== next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest) {
568
+ console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);
569
+ return;
570
+ }
571
+ const route = rootSpanAttributes.get('next.route');
572
+ if (route) {
573
+ const name = `${method} ${route}`;
574
+ span.setAttributes({
575
+ 'next.route': route,
576
+ 'http.route': route,
577
+ 'next.span_name': name
578
+ });
579
+ span.updateName(name);
580
+ // Propagate http.route to the parent span if one exists (e.g.
581
+ // a platform-created HTTP span in adapter deployments).
582
+ if (parentSpan && parentSpan !== span) {
583
+ parentSpan.setAttribute('http.route', route);
584
+ parentSpan.updateName(name);
585
+ }
586
+ } else {
587
+ span.updateName(`${method} ${srcPage}`);
588
+ }
1445
589
  });
1446
590
  };
1447
- const incrementalCache = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'incrementalCache');
591
+ const incrementalCache = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'incrementalCache') || await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest, isMinimalMode);
592
+ incrementalCache == null ? void 0 : incrementalCache.resetRequestCache();
593
+ globalThis.__incrementalCache = incrementalCache;
1448
594
  const doRender = async ({ span, postponed, fallbackRouteParams, forceStaticRender })=>{
1449
595
  const context = {
1450
596
  query,
1451
597
  params,
1452
598
  page: normalizedSrcPage,
1453
599
  sharedContext: {
1454
- buildId
600
+ buildId,
601
+ deploymentId,
602
+ clientAssetToken
1455
603
  },
1456
604
  serverComponentsHmrCache: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'serverComponentsHmrCache'),
1457
605
  fallbackRouteParams,
@@ -1487,7 +635,6 @@ async function handler(req, res, ctx) {
1487
635
  trailingSlash: nextConfig.trailingSlash,
1488
636
  images: nextConfig.images,
1489
637
  previewProps: prerenderManifest.preview,
1490
- deploymentId: deploymentId,
1491
638
  enableTainting: nextConfig.experimental.taint,
1492
639
  htmlLimitedBots: nextConfig.htmlLimitedBots,
1493
640
  reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,
@@ -1496,8 +643,9 @@ async function handler(req, res, ctx) {
1496
643
  cacheLifeProfiles: nextConfig.cacheLife,
1497
644
  basePath: nextConfig.basePath,
1498
645
  serverActions: nextConfig.experimental.serverActions,
646
+ logServerFunctions: typeof nextConfig.logging === 'object' && Boolean(nextConfig.logging.serverFunctions),
1499
647
  ...isDebugStaticShell || isDebugDynamicAccesses || isDebugFallbackShell ? {
1500
- nextExport: true,
648
+ isBuildTimePrerendering: true,
1501
649
  supportsDynamicResponse: false,
1502
650
  isStaticGeneration: true,
1503
651
  isDebugDynamicAccesses: isDebugDynamicAccesses
@@ -1508,11 +656,14 @@ async function handler(req, res, ctx) {
1508
656
  expireTime: nextConfig.expireTime,
1509
657
  staleTimes: nextConfig.experimental.staleTimes,
1510
658
  dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),
659
+ optimisticRouting: Boolean(nextConfig.experimental.optimisticRouting),
1511
660
  inlineCss: Boolean(nextConfig.experimental.inlineCss),
661
+ prefetchInlining: nextConfig.experimental.prefetchInlining ?? false,
1512
662
  authInterrupts: Boolean(nextConfig.experimental.authInterrupts),
663
+ cachedNavigations: Boolean(nextConfig.experimental.cachedNavigations),
1513
664
  clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || [],
1514
665
  clientParamParsingOrigins: nextConfig.experimental.clientParamParsingOrigins,
1515
- maxPostponedStateSizeBytes: (0,next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_24__.parseMaxPostponedStateSize)(nextConfig.experimental.maxPostponedStateSize)
666
+ maxPostponedStateSizeBytes: (0,next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_25__.parseMaxPostponedStateSize)(nextConfig.experimental.maxPostponedStateSize)
1516
667
  },
1517
668
  waitUntil: ctx.waitUntil,
1518
669
  onClose: (cb)=>{
@@ -1520,15 +671,9 @@ async function handler(req, res, ctx) {
1520
671
  },
1521
672
  onAfterTaskError: ()=>{},
1522
673
  onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext),
1523
- err: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'invokeError'),
1524
- dev: routeModule.isDev
674
+ err: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'invokeError')
1525
675
  }
1526
676
  };
1527
- if (isDebugStaticShell || isDebugDynamicAccesses) {
1528
- context.renderOpts.nextExport = true;
1529
- context.renderOpts.supportsDynamicResponse = false;
1530
- context.renderOpts.isDebugDynamicAccesses = isDebugDynamicAccesses;
1531
- }
1532
677
  // When we're revalidating in the background, we should not allow dynamic
1533
678
  // responses.
1534
679
  if (forceStaticRender) {
@@ -1591,6 +736,16 @@ async function handler(req, res, ctx) {
1591
736
  if (prerenderInfo) {
1592
737
  fallbackMode = (0,next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.parseFallbackField)(prerenderInfo.fallback);
1593
738
  }
739
+ if (nextConfig.experimental.partialFallbacks === true && (prerenderInfo == null ? void 0 : prerenderInfo.fallback) === null && !hasUnresolvedRootFallbackParams && remainingPrerenderableParams.length > 0) {
740
+ // Generic source shells without unresolved root params don't have a
741
+ // concrete fallback file of their own, so they're marked as blocking.
742
+ // When we can complete the shell into a more specific
743
+ // prerendered shell for this request, treat it like a prerender
744
+ // fallback so we can serve that shell instead of blocking on the full
745
+ // route. Root-param shells stay blocking, since unknown root branches
746
+ // should not inherit a shell from another generated branch.
747
+ fallbackMode = next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.PRERENDER;
748
+ }
1594
749
  // When serving a HTML bot request, we want to serve a blocking render and
1595
750
  // not the prerendered page. This ensures that the correct content is served
1596
751
  // to the bot in the head.
@@ -1615,10 +770,10 @@ async function handler(req, res, ctx) {
1615
770
  // getStaticPaths.
1616
771
  (isProduction || prerenderInfo) && // When fallback isn't present, abort this render so we 404
1617
772
  fallbackMode === next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.NOT_FOUND) {
1618
- if (nextConfig.experimental.adapterPath) {
773
+ if (nextConfig.adapterPath) {
1619
774
  return await render404();
1620
775
  }
1621
- throw new next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23__.NoFallbackError();
776
+ throw new next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__.NoFallbackError();
1622
777
  }
1623
778
  // When cacheComponents is enabled, we can use the fallback
1624
779
  // response if the request is not a dynamic RSC request because the
@@ -1627,10 +782,19 @@ async function handler(req, res, ctx) {
1627
782
  // contains param references, and therefore we can't use the fallback.
1628
783
  if (isRoutePPREnabled && (nextConfig.cacheComponents ? !isDynamicRSCRequest : !isRSCRequest)) {
1629
784
  const cacheKey = isProduction && typeof (prerenderInfo == null ? void 0 : prerenderInfo.fallback) === 'string' ? prerenderInfo.fallback : normalizedSrcPage;
1630
- const fallbackRouteParams = // If we're in production and we have fallback route params, then we
1631
- // can use the manifest fallback route params.
1632
- 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.
785
+ const fallbackRouteParams = // In production or when debugging the static shell (e.g. instant
786
+ // navigation testing), use the prerender manifest's fallback
787
+ // route params which correctly identifies which params are
788
+ // unknown. Note: in dev, this block is only entered for
789
+ // non-prerendered URLs (guarded by the outer condition).
790
+ (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).
1633
791
  isDebugFallbackShell ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.getFallbackRouteParams)(normalizedSrcPage, routeModule) : null;
792
+ // When rendering a debug static shell, override the fallback
793
+ // params on the request so that the staged rendering correctly
794
+ // defers params that are not statically known.
795
+ if (isDebugStaticShell && fallbackRouteParams) {
796
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'fallbackParams', fallbackRouteParams);
797
+ }
1634
798
  // We use the response cache here to handle the revalidation and
1635
799
  // management of the fallback shell.
1636
800
  const fallbackResponse = await routeModule.handleResponse({
@@ -1646,8 +810,12 @@ async function handler(req, res, ctx) {
1646
810
  // We pass `undefined` as rendering a fallback isn't resumed
1647
811
  // here.
1648
812
  postponed: undefined,
813
+ // Always serve the shell that matched this request
814
+ // immediately. If there are still prerenderable params left,
815
+ // the background path below will complete the shell into a
816
+ // more specific cache entry for later requests.
1649
817
  fallbackRouteParams,
1650
- forceStaticRender: false
818
+ forceStaticRender: true
1651
819
  }),
1652
820
  waitUntil: ctx.waitUntil,
1653
821
  isMinimalMode
@@ -1656,6 +824,39 @@ async function handler(req, res, ctx) {
1656
824
  if (fallbackResponse === null) return null;
1657
825
  // Otherwise, if we did get a fallback response, we should return it.
1658
826
  if (fallbackResponse) {
827
+ if (!isMinimalMode && isRoutePPREnabled && // Match the build-time contract: only fallback shells that can
828
+ // still be completed with prerenderable params should upgrade.
829
+ remainingPrerenderableParams.length > 0 && nextConfig.experimental.partialFallbacks === true && ssgCacheKey && incrementalCache && !isOnDemandRevalidate && !isDebugFallbackShell && // The testing API relies on deterministic shell behavior, so
830
+ // don't upgrade fallback shells in the background when it's
831
+ // exposed.
832
+ !exposeTestingApi && // Instant Navigation Testing API requests intentionally keep
833
+ // the route in shell mode; don't upgrade these in background.
834
+ !isInstantNavigationTest && // Avoid background revalidate during prefetches; this can trigger
835
+ // static prerender errors that surface as 500s for the prefetch
836
+ // request itself.
837
+ !isPrefetchRSCRequest) {
838
+ (0,next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30__.scheduleOnNextTick)(async ()=>{
839
+ const responseCache = routeModule.getResponseCache(req);
840
+ try {
841
+ // Only the params that were just specialized should be
842
+ // removed from the fallback render. Any remaining fallback
843
+ // params stay deferred so the revalidated result is a more
844
+ // specific shell (e.g. `/prefix/c/[two]`), not a fully
845
+ // concrete route (`/prefix/c/foo`).
846
+ await responseCache.revalidate(ssgCacheKey, incrementalCache, isRoutePPREnabled, false, (c)=>{
847
+ return doRender({
848
+ span: c.span,
849
+ postponed: undefined,
850
+ fallbackRouteParams: remainingFallbackRouteParams.length > 0 ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.createOpaqueFallbackRouteParams)(remainingFallbackRouteParams) : null,
851
+ forceStaticRender: true
852
+ });
853
+ }, // We don't have a prior entry for this param-specific shell.
854
+ null, hasResolved, ctx.waitUntil);
855
+ } catch (err) {
856
+ console.error('Error revalidating the page in the background', err);
857
+ }
858
+ });
859
+ }
1659
860
  // Remove the cache control from the response to prevent it from being
1660
861
  // used in the surrounding cache.
1661
862
  delete fallbackResponse.cacheControl;
@@ -1666,12 +867,15 @@ async function handler(req, res, ctx) {
1666
867
  // Only requests that aren't revalidating can be resumed. If we have the
1667
868
  // minimal postponed data, then we should resume the render with it.
1668
869
  let postponed = !isOnDemandRevalidate && !isRevalidating && minimalPostponed ? minimalPostponed : undefined;
1669
- // If this is a dynamic RSC request, we should use the postponed data from
1670
- // the static render (if available). This ensures that we can utilize the
1671
- // resume data cache (RDC) from the static render to ensure that the data
1672
- // is consistent between the static and dynamic renders.
870
+ // If this is a dynamic RSC request or a server action request, we should
871
+ // use the postponed data from the static render (if available). This
872
+ // ensures that we can utilize the resume data cache (RDC) from the static
873
+ // render to ensure that the data is consistent between the static and
874
+ // dynamic renders (for navigations) or when re-rendering after a server
875
+ // action.
1673
876
  if (// Only enable RDC for Navigations if the feature is enabled.
1674
- supportsRDCForNavigations && "nodejs" !== 'edge' && !isMinimalMode && incrementalCache && isDynamicRSCRequest && // We don't typically trigger an on-demand revalidation for dynamic RSC
877
+ supportsRDCForNavigations && "nodejs" !== 'edge' && !isMinimalMode && incrementalCache && // Include both dynamic RSC requests (navigations) and server actions
878
+ (isDynamicRSCRequest || isPossibleServerAction) && // We don't typically trigger an on-demand revalidation for dynamic RSC
1675
879
  // requests, as we're typically revalidating the page in the background
1676
880
  // instead. However, if the cache entry is stale, we should trigger a
1677
881
  // background revalidation on dynamic RSC requests. This prevents us
@@ -1696,7 +900,7 @@ async function handler(req, res, ctx) {
1696
900
  (incrementalCacheEntry.isStale === -1 || incrementalCacheEntry.isStale === true)) {
1697
901
  // We want to schedule this on the next tick to ensure that the
1698
902
  // render is not blocked on it.
1699
- (0,next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_29__.scheduleOnNextTick)(async ()=>{
903
+ (0,next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30__.scheduleOnNextTick)(async ()=>{
1700
904
  const responseCache = routeModule.getResponseCache(req);
1701
905
  try {
1702
906
  await responseCache.revalidate(resolvedPathname, incrementalCache, isRoutePPREnabled, false, (c)=>responseGenerator({
@@ -1733,11 +937,21 @@ async function handler(req, res, ctx) {
1733
937
  }
1734
938
  };
1735
939
  }
1736
- const fallbackRouteParams = // If we're in production and we have fallback route params, then we
1737
- // can use the manifest fallback route params if we need to render the
1738
- // fallback shell.
1739
- 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.
1740
- isDebugFallbackShell ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.getFallbackRouteParams)(normalizedSrcPage, routeModule) : null;
940
+ const fallbackRouteParams = // In production or when debugging the static shell for a
941
+ // non-prerendered URL, use the prerender manifest's fallback route
942
+ // params which correctly identifies which params are unknown.
943
+ (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;
944
+ // For staged dynamic rendering (Cached Navigations) and debug static
945
+ // shell rendering, pass the fallback params via request meta so the
946
+ // RequestStore knows which params to defer. We don't pass them as
947
+ // fallbackRouteParams because that would replace actual param values
948
+ // with opaque placeholders during segment resolution.
949
+ if ((isProduction || isDebugStaticShell) && nextConfig.cacheComponents && !isPrerendered && (prerenderInfo == null ? void 0 : prerenderInfo.fallbackRouteParams)) {
950
+ const fallbackParams = (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.createOpaqueFallbackRouteParams)(prerenderInfo.fallbackRouteParams);
951
+ if (fallbackParams) {
952
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'fallbackParams', fallbackParams);
953
+ }
954
+ }
1741
955
  // Perform the render.
1742
956
  return doRender({
1743
957
  span,
@@ -1768,7 +982,7 @@ async function handler(req, res, ctx) {
1768
982
  }
1769
983
  // In dev, we should not cache pages for any reason.
1770
984
  if (routeModule.isDev) {
1771
- res.setHeader('Cache-Control', 'no-store, must-revalidate');
985
+ res.setHeader('Cache-Control', 'no-cache, must-revalidate');
1772
986
  }
1773
987
  if (!cacheEntry) {
1774
988
  if (ssgCacheKey) {
@@ -1794,6 +1008,16 @@ async function handler(req, res, ctx) {
1794
1008
  });
1795
1009
  }
1796
1010
  const didPostpone = typeof cacheEntry.value.postponed === 'string';
1011
+ // Set the build ID header for RSC navigation requests when deploymentId is configured. This
1012
+ // corresponds with maybeAppendBuildIdToRSCPayload in app-render.tsx which omits the build ID
1013
+ // from the RSC payload when deploymentId is set (relying on this header instead). Server
1014
+ // actions are excluded here because action redirect responses get the deployment ID header
1015
+ // from the pre-fetched redirect target (via createRedirectRenderResult in action-handler.ts
1016
+ // which copies headers from the internal RSC fetch).
1017
+ // For static prerenders served from CDN, routes-manifest.json adds a header.
1018
+ if (isRSCRequest && !isPossibleServerAction && deploymentId) {
1019
+ res.setHeader(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId);
1020
+ }
1797
1021
  if (isSSG && // We don't want to send a cache header for requests that contain dynamic
1798
1022
  // data. If this is a Dynamic RSC request or wasn't a Prefetch RSC
1799
1023
  // request, then we should set the cache header.
@@ -1854,7 +1078,7 @@ async function handler(req, res, ctx) {
1854
1078
  };
1855
1079
  } else {
1856
1080
  cacheControl = {
1857
- revalidate: next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.CACHE_ONE_YEAR,
1081
+ revalidate: next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.CACHE_ONE_YEAR_SECONDS,
1858
1082
  expire: undefined
1859
1083
  };
1860
1084
  }
@@ -1882,7 +1106,7 @@ async function handler(req, res, ctx) {
1882
1106
  const matchedSegment = cachedData.segmentData.get(segmentPrefetchHeader);
1883
1107
  if (matchedSegment !== undefined) {
1884
1108
  // Cache hit
1885
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1109
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
1886
1110
  req,
1887
1111
  res,
1888
1112
  generateEtags: nextConfig.generateEtags,
@@ -1898,7 +1122,7 @@ async function handler(req, res, ctx) {
1898
1122
  // don't bother to respond with 404, because these requests are only
1899
1123
  // issued as part of a prefetch.
1900
1124
  res.statusCode = 204;
1901
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1125
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
1902
1126
  req,
1903
1127
  res,
1904
1128
  generateEtags: nextConfig.generateEtags,
@@ -1953,7 +1177,7 @@ async function handler(req, res, ctx) {
1953
1177
  res.statusCode = cachedData.status;
1954
1178
  }
1955
1179
  // Redirect information is encoded in RSC payload, so we don't need to use redirect status codes
1956
- if (!isMinimalMode && cachedData.status && next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27__.RedirectStatusCode[cachedData.status] && isRSCRequest) {
1180
+ if (!isMinimalMode && cachedData.status && next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_28__.RedirectStatusCode[cachedData.status] && isRSCRequest) {
1957
1181
  res.statusCode = 200;
1958
1182
  }
1959
1183
  // Mark that the request did postpone.
@@ -1971,7 +1195,7 @@ async function handler(req, res, ctx) {
1971
1195
  if (cachedData.html.contentType !== next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.RSC_CONTENT_TYPE_HEADER) {
1972
1196
  if (nextConfig.cacheComponents) {
1973
1197
  res.statusCode = 404;
1974
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1198
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
1975
1199
  req,
1976
1200
  res,
1977
1201
  generateEtags: nextConfig.generateEtags,
@@ -1981,14 +1205,14 @@ async function handler(req, res, ctx) {
1981
1205
  });
1982
1206
  } else {
1983
1207
  // Otherwise this case is not expected.
1984
- 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", {
1208
+ 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", {
1985
1209
  value: "E789",
1986
1210
  enumerable: false,
1987
1211
  configurable: true
1988
1212
  });
1989
1213
  }
1990
1214
  }
1991
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1215
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
1992
1216
  req,
1993
1217
  res,
1994
1218
  generateEtags: nextConfig.generateEtags,
@@ -1999,7 +1223,7 @@ async function handler(req, res, ctx) {
1999
1223
  }
2000
1224
  // As this isn't a prefetch request, we should serve the static flight
2001
1225
  // data.
2002
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1226
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
2003
1227
  req,
2004
1228
  res,
2005
1229
  generateEtags: nextConfig.generateEtags,
@@ -2010,6 +1234,27 @@ async function handler(req, res, ctx) {
2010
1234
  }
2011
1235
  // This is a request for HTML data.
2012
1236
  const body = cachedData.html;
1237
+ // Instant Navigation Testing API: serve the static shell with an
1238
+ // injected script that sets self.__next_instant_test and kicks off a
1239
+ // static RSC fetch for hydration. The transform stream also appends
1240
+ // closing </body></html> tags so the browser can parse the full document.
1241
+ // In dev mode, also inject self.__next_r so the HMR WebSocket and
1242
+ // debug channel can initialize.
1243
+ if (isInstantNavigationTest && isDebugStaticShell) {
1244
+ const instantTestRequestId = routeModule.isDev === true ? crypto.randomUUID() : null;
1245
+ body.pipeThrough((0,next_dist_server_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_22__.createInstantTestScriptInsertionTransformStream)(instantTestRequestId));
1246
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
1247
+ req,
1248
+ res,
1249
+ generateEtags: nextConfig.generateEtags,
1250
+ poweredByHeader: nextConfig.poweredByHeader,
1251
+ result: body,
1252
+ cacheControl: {
1253
+ revalidate: 0,
1254
+ expire: undefined
1255
+ }
1256
+ });
1257
+ }
2013
1258
  // If there's no postponed state, we should just serve the HTML. This
2014
1259
  // should also be the case for a resume request because it's completed
2015
1260
  // as a server render (rather than a static render).
@@ -2018,7 +1263,7 @@ async function handler(req, res, ctx) {
2018
1263
  // that's between the static and dynamic parts so we can compare the
2019
1264
  // chunks and add assertions.
2020
1265
  if (false) {}
2021
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1266
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
2022
1267
  req,
2023
1268
  res,
2024
1269
  generateEtags: nextConfig.generateEtags,
@@ -2040,7 +1285,7 @@ async function handler(req, res, ctx) {
2040
1285
  controller.close();
2041
1286
  }
2042
1287
  }));
2043
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1288
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
2044
1289
  req,
2045
1290
  res,
2046
1291
  generateEtags: nextConfig.generateEtags,
@@ -2097,7 +1342,7 @@ async function handler(req, res, ctx) {
2097
1342
  console.error("couldn't abort transformer", e);
2098
1343
  });
2099
1344
  });
2100
- return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({
1345
+ return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({
2101
1346
  req,
2102
1347
  res,
2103
1348
  generateEtags: nextConfig.generateEtags,
@@ -2111,53 +1356,1071 @@ async function handler(req, res, ctx) {
2111
1356
  expire: undefined
2112
1357
  }
2113
1358
  });
2114
- };
2115
- // TODO: activeSpan code path is for when wrapped by
2116
- // next-server can be removed when this is no longer used
2117
- if (activeSpan) {
2118
- await handleResponse(activeSpan);
2119
- } else {
2120
- return await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest, {
2121
- spanName: `${method} ${srcPage}`,
2122
- kind: next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.SpanKind.SERVER,
2123
- attributes: {
2124
- 'http.method': method,
2125
- 'http.target': req.url
2126
- }
2127
- }, handleResponse));
1359
+ };
1360
+ // TODO: activeSpan code path is for when wrapped by
1361
+ // next-server can be removed when this is no longer used
1362
+ if (isWrappedByNextServer && activeSpan) {
1363
+ await handleResponse(activeSpan);
1364
+ } else {
1365
+ parentSpan = tracer.getActiveScopeSpan();
1366
+ return await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest, {
1367
+ spanName: `${method} ${srcPage}`,
1368
+ kind: next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.SpanKind.SERVER,
1369
+ attributes: {
1370
+ 'http.method': method,
1371
+ 'http.target': req.url
1372
+ }
1373
+ }, handleResponse), undefined, !isWrappedByNextServer);
1374
+ }
1375
+ } catch (err) {
1376
+ if (!(err instanceof next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__.NoFallbackError)) {
1377
+ const silenceLog = false;
1378
+ await routeModule.onRequestError(req, err, {
1379
+ routerKind: 'App Router',
1380
+ routePath: srcPage,
1381
+ routeType: 'render',
1382
+ revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__/* .getRevalidateReason */ .c)({
1383
+ isStaticGeneration: isSSG,
1384
+ isOnDemandRevalidate
1385
+ })
1386
+ }, silenceLog, routerServerContext);
1387
+ }
1388
+ // rethrow so that we can handle serving error page
1389
+ throw err;
1390
+ }
1391
+ }
1392
+ // TODO: omit this from production builds, only test builds should include it
1393
+ /**
1394
+ * Creates a readable stream that emits a PPR boundary sentinel.
1395
+ *
1396
+ * @returns A readable stream that emits a PPR boundary sentinel.
1397
+ */ function createPPRBoundarySentinel() {
1398
+ return new ReadableStream({
1399
+ start (controller) {
1400
+ controller.enqueue(new TextEncoder().encode('<!-- PPR_BOUNDARY_SENTINEL -->'));
1401
+ controller.close();
1402
+ }
1403
+ });
1404
+ }
1405
+
1406
+ //# sourceMappingURL=app-page.js.map
1407
+
1408
+
1409
+ /***/ }),
1410
+
1411
+ /***/ 10846:
1412
+ /***/ ((module) => {
1413
+
1414
+ "use strict";
1415
+ module.exports = require("next/dist/compiled/next-server/app-page.runtime.prod.js");
1416
+
1417
+ /***/ }),
1418
+
1419
+ /***/ 17891:
1420
+ /***/ ((module) => {
1421
+
1422
+ "use strict";
1423
+ module.exports = require("next/dist/shared/lib/router/utils/get-segment-param");
1424
+
1425
+ /***/ }),
1426
+
1427
+ /***/ 19121:
1428
+ /***/ ((module) => {
1429
+
1430
+ "use strict";
1431
+ module.exports = require("next/dist/server/app-render/action-async-storage.external.js");
1432
+
1433
+ /***/ }),
1434
+
1435
+ /***/ 19771:
1436
+ /***/ ((module) => {
1437
+
1438
+ "use strict";
1439
+ module.exports = require("process");
1440
+
1441
+ /***/ }),
1442
+
1443
+ /***/ 20400:
1444
+ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
1445
+
1446
+ Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 33898));
1447
+
1448
+
1449
+ /***/ }),
1450
+
1451
+ /***/ 25197:
1452
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1453
+
1454
+ "use strict";
1455
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1456
+ /* harmony export */ C$z: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useEventSubscriptions),
1457
+ /* harmony export */ TbX: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.SimpleNavigation)
1458
+ /* harmony export */ });
1459
+ /* harmony import */ var _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76552);
1460
+
1461
+
1462
+
1463
+ /***/ }),
1464
+
1465
+ /***/ 25888:
1466
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1467
+
1468
+ "use strict";
1469
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1470
+ /* harmony export */ Ef3: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.LeftSidebar),
1471
+ /* harmony export */ ffs: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.AuthTokenProvider),
1472
+ /* harmony export */ pqI: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.ApiClientProvider),
1473
+ /* harmony export */ wi6: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.Footer)
1474
+ /* harmony export */ });
1475
+ /* harmony import */ var _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76552);
1476
+
1477
+
1478
+
1479
+ /***/ }),
1480
+
1481
+ /***/ 26713:
1482
+ /***/ ((module) => {
1483
+
1484
+ "use strict";
1485
+ module.exports = require("next/dist/shared/lib/router/utils/is-bot");
1486
+
1487
+ /***/ }),
1488
+
1489
+ /***/ 28354:
1490
+ /***/ ((module) => {
1491
+
1492
+ "use strict";
1493
+ module.exports = require("util");
1494
+
1495
+ /***/ }),
1496
+
1497
+ /***/ 29294:
1498
+ /***/ ((module) => {
1499
+
1500
+ "use strict";
1501
+ module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
1502
+
1503
+ /***/ }),
1504
+
1505
+ /***/ 31039:
1506
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1507
+
1508
+ "use strict";
1509
+
1510
+ // EXPORTS
1511
+ __webpack_require__.d(__webpack_exports__, {
1512
+ As: () => (/* binding */ useAuth)
1513
+ });
1514
+
1515
+ // UNUSED EXPORTS: usePermissions, useUserPreferences
1516
+
1517
+ // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
1518
+ var react = __webpack_require__(62341);
1519
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
1520
+ var ssr_react = __webpack_require__(71277);
1521
+ // EXTERNAL MODULE: ../../packages/api-client/dist/index.js
1522
+ var dist = __webpack_require__(88887);
1523
+ ;// __barrel_optimize__?names=JWTTokenSchema,validateData!=!../../packages/api-client/dist/index.js
1524
+
1525
+
1526
+ ;// ./src/hooks/useAuth.ts
1527
+ /* __next_internal_client_entry_do_not_use__ useAuth,useUserPreferences,usePermissions auto */
1528
+
1529
+
1530
+ /**
1531
+ * Enhanced authentication hook with validation and user information
1532
+ */ function useAuth() {
1533
+ const { data: session, status } = (0,react.useSession)();
1534
+ const authInfo = (0,ssr_react.useMemo)(()=>{
1535
+ const isLoading = status === 'loading';
1536
+ const isAuthenticated = !!session?.user;
1537
+ // Validate backend token if present
1538
+ const hasValidBackendToken = session?.backendToken ? (0,dist/* validateData */.lv)(dist/* JWTTokenSchema */.k3, session.backendToken).success : false;
1539
+ return {
1540
+ // Session data
1541
+ session,
1542
+ user: session?.user,
1543
+ backendUser: session?.backendUser,
1544
+ // Status flags
1545
+ isLoading,
1546
+ isAuthenticated,
1547
+ hasValidBackendToken,
1548
+ // Computed properties
1549
+ userDomain: session?.backendUser?.domain || session?.user?.email?.split('@')[1],
1550
+ displayName: session?.user?.name || session?.user?.email?.split('@')[0] || 'User',
1551
+ avatarUrl: session?.user?.image,
1552
+ isAdmin: session?.backendUser?.isAdmin || false,
1553
+ isModerator: session?.backendUser?.isModerator || false,
1554
+ // Combined auth status
1555
+ isFullyAuthenticated: isAuthenticated && hasValidBackendToken
1556
+ };
1557
+ }, [
1558
+ session,
1559
+ status
1560
+ ]);
1561
+ return authInfo;
1562
+ }
1563
+ /**
1564
+ * Hook for getting user preferences and settings
1565
+ */ function useUserPreferences() {
1566
+ const { session } = useAuth();
1567
+ return useMemo(()=>{
1568
+ // In the future, this could fetch user preferences from backend
1569
+ // For now, return defaults
1570
+ return {
1571
+ theme: 'system',
1572
+ language: 'en',
1573
+ timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
1574
+ emailNotifications: true
1575
+ };
1576
+ }, [
1577
+ session
1578
+ ]);
1579
+ }
1580
+ /**
1581
+ * Hook for checking user permissions (future expansion)
1582
+ */ function usePermissions() {
1583
+ const { backendUser, isFullyAuthenticated } = useAuth();
1584
+ return useMemo(()=>{
1585
+ if (!isFullyAuthenticated || !backendUser) {
1586
+ return {
1587
+ canRead: false,
1588
+ canWrite: false,
1589
+ canAdmin: false,
1590
+ canManageUsers: false
1591
+ };
1592
+ }
1593
+ // Basic permissions - in the future this would come from backend
1594
+ return {
1595
+ canRead: true,
1596
+ canWrite: true,
1597
+ canAdmin: false,
1598
+ canManageUsers: false
1599
+ };
1600
+ }, [
1601
+ backendUser,
1602
+ isFullyAuthenticated
1603
+ ]);
1604
+ }
1605
+
1606
+
1607
+ /***/ }),
1608
+
1609
+ /***/ 31378:
1610
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1611
+
1612
+ "use strict";
1613
+ // ESM COMPAT FLAG
1614
+ __webpack_require__.r(__webpack_exports__);
1615
+
1616
+ // EXPORTS
1617
+ __webpack_require__.d(__webpack_exports__, {
1618
+ "default": () => (/* binding */ EntityTagsPageWrapper)
1619
+ });
1620
+
1621
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js
1622
+ var react_jsx_runtime = __webpack_require__(92692);
1623
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
1624
+ var react = __webpack_require__(71277);
1625
+ // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
1626
+ var react_client = __webpack_require__(56305);
1627
+ // EXTERNAL MODULE: ../../packages/react-ui/dist/index.mjs + 27 modules
1628
+ var dist = __webpack_require__(76552);
1629
+ ;// __barrel_optimize__?names=Toolbar,useEntityTypes!=!../../packages/react-ui/dist/index.mjs
1630
+
1631
+
1632
+ // EXTERNAL MODULE: ../../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js
1633
+ var QueryClientProvider = __webpack_require__(53970);
1634
+ // EXTERNAL MODULE: ./src/components/toolbar/ToolbarPanels.tsx + 4 modules
1635
+ var ToolbarPanels = __webpack_require__(50436);
1636
+ // EXTERNAL MODULE: __barrel_optimize__?names=useEventSubscriptions,useLineNumbers,usePanelBrowse,useTheme!=!../../packages/react-ui/dist/index.mjs
1637
+ var react_ui_dist = __webpack_require__(56677);
1638
+ ;// __barrel_optimize__?names=EntityTagsPage!=!../../packages/react-ui/dist/index.mjs
1639
+
1640
+
1641
+ ;// ./src/app/[locale]/moderate/entity-tags/page.tsx
1642
+ /* __next_internal_client_entry_do_not_use__ default auto */
1643
+ /**
1644
+ * Entity Tags Page - Thin Next.js wrapper
1645
+ *
1646
+ * This page handles Next.js-specific concerns (translations, API calls)
1647
+ * and delegates rendering to the pure React EntityTagsPage component.
1648
+ */
1649
+
1650
+
1651
+
1652
+
1653
+
1654
+
1655
+ // Authentication is handled by middleware (proxy.ts)
1656
+ // Only authenticated moderators/admins can reach this page
1657
+ function EntityTagsPageWrapper() {
1658
+ const t = (0,react_client/* useTranslations */.c)('ModerateEntityTags');
1659
+ const [newTag, setNewTag] = (0,react.useState)('');
1660
+ const [error, setError] = (0,react.useState)('');
1661
+ const queryClient = (0,QueryClientProvider/* useQueryClient */.jE)();
1662
+ // Toolbar and settings state
1663
+ const { activePanel } = (0,react_ui_dist/* usePanelBrowse */.ySJ)();
1664
+ const { theme, setTheme } = (0,react_ui_dist/* useTheme */.DPo)();
1665
+ const { showLineNumbers, toggleLineNumbers } = (0,react_ui_dist/* useLineNumbers */.cvF)();
1666
+ const handleThemeChanged = (0,react.useCallback)(({ theme })=>{
1667
+ setTheme(theme);
1668
+ }, [
1669
+ setTheme
1670
+ ]);
1671
+ const handleLineNumbersToggled = (0,react.useCallback)(()=>{
1672
+ toggleLineNumbers();
1673
+ }, [
1674
+ toggleLineNumbers
1675
+ ]);
1676
+ (0,react_ui_dist/* useEventSubscriptions */.C$z)({
1677
+ 'settings:theme-changed': handleThemeChanged,
1678
+ 'settings:line-numbers-toggled': handleLineNumbersToggled
1679
+ });
1680
+ // API hooks
1681
+ const entityTypesAPI = (0,dist.useEntityTypes)();
1682
+ // Query entity types with auto-refetch for cross-browser updates
1683
+ const { data: entityTypesData, isLoading } = entityTypesAPI.list.useQuery({
1684
+ refetchInterval: 30000,
1685
+ refetchIntervalInBackground: true
1686
+ });
1687
+ const entityTypes = entityTypesData?.entityTypes || [];
1688
+ // Mutation for creating new entity type
1689
+ const createEntityTypeMutation = entityTypesAPI.add.useMutation();
1690
+ const handleAddTag = async ()=>{
1691
+ if (!newTag.trim()) return;
1692
+ setError('');
1693
+ try {
1694
+ await createEntityTypeMutation.mutateAsync(newTag.trim());
1695
+ queryClient.invalidateQueries({
1696
+ queryKey: [
1697
+ '/api/entity-types'
1698
+ ]
1699
+ });
1700
+ setNewTag('');
1701
+ } catch (err) {
1702
+ setError(err instanceof Error ? err.message : t('errorFailedToAdd'));
1703
+ }
1704
+ };
1705
+ if (isLoading) {
1706
+ return /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
1707
+ className: "flex items-center justify-center py-20",
1708
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("p", {
1709
+ className: "text-gray-600 dark:text-gray-300",
1710
+ children: t('loading')
1711
+ })
1712
+ });
1713
+ }
1714
+ return /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist.EntityTagsPage, {
1715
+ entityTypes: entityTypes,
1716
+ isLoading: isLoading,
1717
+ error: error,
1718
+ newTag: newTag,
1719
+ onNewTagChange: setNewTag,
1720
+ onAddTag: handleAddTag,
1721
+ isAddingTag: createEntityTypeMutation.isPending,
1722
+ theme: theme,
1723
+ showLineNumbers: showLineNumbers,
1724
+ activePanel: activePanel,
1725
+ translations: {
1726
+ pageTitle: t('pageTitle'),
1727
+ pageDescription: t('pageDescription'),
1728
+ sectionTitle: t('sectionTitle'),
1729
+ sectionDescription: t('sectionDescription'),
1730
+ inputPlaceholder: t('inputPlaceholder'),
1731
+ addTag: t('addTag'),
1732
+ adding: t('adding')
1733
+ },
1734
+ ToolbarPanels: ToolbarPanels/* ToolbarPanels */.t,
1735
+ Toolbar: dist.Toolbar
1736
+ });
1737
+ }
1738
+
1739
+
1740
+ /***/ }),
1741
+
1742
+ /***/ 32037:
1743
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1744
+
1745
+ "use strict";
1746
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1747
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
1748
+ /* harmony export */ });
1749
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
1750
+
1751
+ function ArrowsRightLeftIcon({ title, titleId, ...props }, svgRef) {
1752
+ return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
1753
+ xmlns: "http://www.w3.org/2000/svg",
1754
+ fill: "none",
1755
+ viewBox: "0 0 24 24",
1756
+ strokeWidth: 1.5,
1757
+ stroke: "currentColor",
1758
+ "aria-hidden": "true",
1759
+ "data-slot": "icon",
1760
+ ref: svgRef,
1761
+ "aria-labelledby": titleId
1762
+ }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
1763
+ id: titleId
1764
+ }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
1765
+ strokeLinecap: "round",
1766
+ strokeLinejoin: "round",
1767
+ d: "M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"
1768
+ }));
1769
+ }
1770
+ const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ArrowsRightLeftIcon);
1771
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
1772
+
1773
+
1774
+ /***/ }),
1775
+
1776
+ /***/ 33873:
1777
+ /***/ ((module) => {
1778
+
1779
+ "use strict";
1780
+ module.exports = require("path");
1781
+
1782
+ /***/ }),
1783
+
1784
+ /***/ 33898:
1785
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1786
+
1787
+ "use strict";
1788
+ // ESM COMPAT FLAG
1789
+ __webpack_require__.r(__webpack_exports__);
1790
+
1791
+ // EXPORTS
1792
+ __webpack_require__.d(__webpack_exports__, {
1793
+ "default": () => (/* binding */ ModerateLayout)
1794
+ });
1795
+
1796
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js
1797
+ var react_jsx_runtime = __webpack_require__(92692);
1798
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
1799
+ var react = __webpack_require__(71277);
1800
+ // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
1801
+ var react_client = __webpack_require__(56305);
1802
+ // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
1803
+ var next_auth_react = __webpack_require__(62341);
1804
+ // EXTERNAL MODULE: __barrel_optimize__?names=ApiClientProvider,AuthTokenProvider,Footer,LeftSidebar!=!../../packages/react-ui/dist/index.mjs
1805
+ var dist = __webpack_require__(25888);
1806
+ // EXTERNAL MODULE: ./src/i18n/routing.ts
1807
+ var routing = __webpack_require__(99704);
1808
+ // EXTERNAL MODULE: __barrel_optimize__?names=SimpleNavigation,useEventSubscriptions!=!../../packages/react-ui/dist/index.mjs
1809
+ var react_ui_dist = __webpack_require__(25197);
1810
+ ;// ../../node_modules/@heroicons/react/24/outline/esm/ClockIcon.js
1811
+
1812
+ function ClockIcon({ title, titleId, ...props }, svgRef) {
1813
+ return /*#__PURE__*/ react.createElement("svg", Object.assign({
1814
+ xmlns: "http://www.w3.org/2000/svg",
1815
+ fill: "none",
1816
+ viewBox: "0 0 24 24",
1817
+ strokeWidth: 1.5,
1818
+ stroke: "currentColor",
1819
+ "aria-hidden": "true",
1820
+ "data-slot": "icon",
1821
+ ref: svgRef,
1822
+ "aria-labelledby": titleId
1823
+ }, props), title ? /*#__PURE__*/ react.createElement("title", {
1824
+ id: titleId
1825
+ }, title) : null, /*#__PURE__*/ react.createElement("path", {
1826
+ strokeLinecap: "round",
1827
+ strokeLinejoin: "round",
1828
+ d: "M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
1829
+ }));
1830
+ }
1831
+ const ForwardRef = /*#__PURE__*/ react.forwardRef(ClockIcon);
1832
+ /* harmony default export */ const esm_ClockIcon = (ForwardRef);
1833
+
1834
+ ;// ../../node_modules/@heroicons/react/24/outline/esm/TagIcon.js
1835
+
1836
+ function TagIcon({ title, titleId, ...props }, svgRef) {
1837
+ return /*#__PURE__*/ react.createElement("svg", Object.assign({
1838
+ xmlns: "http://www.w3.org/2000/svg",
1839
+ fill: "none",
1840
+ viewBox: "0 0 24 24",
1841
+ strokeWidth: 1.5,
1842
+ stroke: "currentColor",
1843
+ "aria-hidden": "true",
1844
+ "data-slot": "icon",
1845
+ ref: svgRef,
1846
+ "aria-labelledby": titleId
1847
+ }, props), title ? /*#__PURE__*/ react.createElement("title", {
1848
+ id: titleId
1849
+ }, title) : null, /*#__PURE__*/ react.createElement("path", {
1850
+ strokeLinecap: "round",
1851
+ strokeLinejoin: "round",
1852
+ 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"
1853
+ }), /*#__PURE__*/ react.createElement("path", {
1854
+ strokeLinecap: "round",
1855
+ strokeLinejoin: "round",
1856
+ d: "M6 6h.008v.008H6V6Z"
1857
+ }));
1858
+ }
1859
+ const TagIcon_ForwardRef = /*#__PURE__*/ react.forwardRef(TagIcon);
1860
+ /* harmony default export */ const esm_TagIcon = (TagIcon_ForwardRef);
1861
+
1862
+ ;// ../../node_modules/@heroicons/react/24/outline/esm/BookOpenIcon.js
1863
+
1864
+ function BookOpenIcon({ title, titleId, ...props }, svgRef) {
1865
+ return /*#__PURE__*/ react.createElement("svg", Object.assign({
1866
+ xmlns: "http://www.w3.org/2000/svg",
1867
+ fill: "none",
1868
+ viewBox: "0 0 24 24",
1869
+ strokeWidth: 1.5,
1870
+ stroke: "currentColor",
1871
+ "aria-hidden": "true",
1872
+ "data-slot": "icon",
1873
+ ref: svgRef,
1874
+ "aria-labelledby": titleId
1875
+ }, props), title ? /*#__PURE__*/ react.createElement("title", {
1876
+ id: titleId
1877
+ }, title) : null, /*#__PURE__*/ react.createElement("path", {
1878
+ strokeLinecap: "round",
1879
+ strokeLinejoin: "round",
1880
+ 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"
1881
+ }));
1882
+ }
1883
+ const BookOpenIcon_ForwardRef = /*#__PURE__*/ react.forwardRef(BookOpenIcon);
1884
+ /* harmony default export */ const esm_BookOpenIcon = (BookOpenIcon_ForwardRef);
1885
+
1886
+ // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/ArrowsRightLeftIcon.js
1887
+ var ArrowsRightLeftIcon = __webpack_require__(32037);
1888
+ // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/ChevronLeftIcon.js
1889
+ var ChevronLeftIcon = __webpack_require__(71062);
1890
+ // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/Bars3Icon.js
1891
+ var Bars3Icon = __webpack_require__(67255);
1892
+ ;// ./src/components/moderation/ModerationNavigation.tsx
1893
+ /* __next_internal_client_entry_do_not_use__ ModerationNavigation auto */
1894
+
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+ function ModerationNavigation({ isCollapsed, toggleCollapsed, navigationMenu }) {
1901
+ const t = (0,react_client/* useTranslations */.c)('Moderation');
1902
+ const tSidebar = (0,react_client/* useTranslations */.c)('Sidebar');
1903
+ const pathname = (0,routing/* usePathname */.a8)();
1904
+ // Handle sidebar toggle events
1905
+ const handleSidebarToggle = (0,react.useCallback)(()=>{
1906
+ toggleCollapsed();
1907
+ }, [
1908
+ toggleCollapsed
1909
+ ]);
1910
+ // Subscribe to sidebar toggle events
1911
+ (0,react_ui_dist/* useEventSubscriptions */.C$z)({
1912
+ 'browse:sidebar-toggle': handleSidebarToggle
1913
+ });
1914
+ const navigation = [
1915
+ {
1916
+ name: t('recentResources'),
1917
+ href: '/moderate/recent',
1918
+ icon: esm_ClockIcon,
1919
+ description: t('recentResourcesDescription')
1920
+ },
1921
+ {
1922
+ name: t('entityTags'),
1923
+ href: '/moderate/entity-tags',
1924
+ icon: esm_TagIcon,
1925
+ description: t('entityTagsDescription')
1926
+ },
1927
+ {
1928
+ name: t('tagSchemas'),
1929
+ href: '/moderate/tag-schemas',
1930
+ icon: esm_BookOpenIcon,
1931
+ description: t('tagSchemasDescription')
1932
+ },
1933
+ {
1934
+ name: t('linkedData'),
1935
+ href: '/moderate/linked-data',
1936
+ icon: ArrowsRightLeftIcon/* default */.A,
1937
+ description: t('linkedDataDescription')
2128
1938
  }
2129
- } catch (err) {
2130
- if (!(err instanceof next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23__.NoFallbackError)) {
2131
- const silenceLog = false;
2132
- await routeModule.onRequestError(req, err, {
2133
- routerKind: 'App Router',
2134
- routePath: srcPage,
2135
- routeType: 'render',
2136
- revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__/* .getRevalidateReason */ .c)({
2137
- isStaticGeneration: isSSG,
2138
- isOnDemandRevalidate
2139
- })
2140
- }, silenceLog, routerServerContext);
1939
+ ];
1940
+ return /*#__PURE__*/ (0,react_jsx_runtime.jsx)(react_ui_dist/* SimpleNavigation */.TbX, {
1941
+ title: t('title'),
1942
+ items: navigation,
1943
+ currentPath: pathname,
1944
+ LinkComponent: routing/* Link */.N_,
1945
+ ...navigationMenu && {
1946
+ dropdownContent: navigationMenu
1947
+ },
1948
+ isCollapsed: isCollapsed,
1949
+ icons: {
1950
+ chevronLeft: ChevronLeftIcon/* default */.A,
1951
+ bars: Bars3Icon/* default */.A
1952
+ },
1953
+ collapseSidebarLabel: tSidebar('collapseSidebar'),
1954
+ expandSidebarLabel: tSidebar('expandSidebar')
1955
+ });
1956
+ }
1957
+
1958
+ // EXTERNAL MODULE: ./src/components/CookiePreferences.tsx
1959
+ var CookiePreferences = __webpack_require__(80386);
1960
+ // EXTERNAL MODULE: ./src/contexts/KeyboardShortcutsContext.tsx + 3 modules
1961
+ var KeyboardShortcutsContext = __webpack_require__(40953);
1962
+ // EXTERNAL MODULE: ./src/lib/routing.ts
1963
+ var lib_routing = __webpack_require__(46391);
1964
+ // EXTERNAL MODULE: ./src/hooks/useAuth.ts + 1 modules
1965
+ var useAuth = __webpack_require__(31039);
1966
+ ;// ./src/app/[locale]/moderate/layout.tsx
1967
+ /* __next_internal_client_entry_do_not_use__ default auto */
1968
+
1969
+
1970
+
1971
+
1972
+
1973
+
1974
+
1975
+
1976
+
1977
+ // Note: Authentication is handled by middleware.ts for all moderate routes
1978
+ // This ensures centralized security and returns 404 for unauthorized users
1979
+ function ModerateLayout({ children }) {
1980
+ const t = (0,react_client/* useTranslations */.c)('Footer');
1981
+ const tNav = (0,react_client/* useTranslations */.c)('Navigation');
1982
+ const tHome = (0,react_client/* useTranslations */.c)('Home');
1983
+ const keyboardContext = (0,react.useContext)(KeyboardShortcutsContext/* KeyboardShortcutsContext */.GZ);
1984
+ const { isAuthenticated, isAdmin, isModerator } = (0,useAuth/* useAuth */.As)();
1985
+ const { data: session } = (0,next_auth_react.useSession)();
1986
+ // Extract auth token from session
1987
+ const authToken = session?.backendToken || null;
1988
+ // Middleware has already verified moderator/admin access
1989
+ return /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* AuthTokenProvider */.ffs, {
1990
+ token: authToken,
1991
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* ApiClientProvider */.pqI, {
1992
+ baseUrl: "",
1993
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
1994
+ className: "min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col",
1995
+ children: [
1996
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
1997
+ className: "flex flex-1",
1998
+ children: [
1999
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* LeftSidebar */.Ef3, {
2000
+ Link: lib_routing/* Link */.N,
2001
+ routes: lib_routing/* routes */.J,
2002
+ t: tNav,
2003
+ tHome: tHome,
2004
+ brandingLink: "/",
2005
+ collapsible: true,
2006
+ storageKey: "moderation-sidebar-collapsed",
2007
+ isAuthenticated: isAuthenticated,
2008
+ isAdmin: isAdmin,
2009
+ isModerator: isModerator,
2010
+ children: (isCollapsed, toggleCollapsed, navigationMenu)=>/*#__PURE__*/ (0,react_jsx_runtime.jsx)(ModerationNavigation, {
2011
+ isCollapsed: isCollapsed,
2012
+ toggleCollapsed: toggleCollapsed,
2013
+ navigationMenu: navigationMenu
2014
+ })
2015
+ }),
2016
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("main", {
2017
+ className: "flex-1 p-6 flex flex-col",
2018
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2019
+ className: "max-w-7xl mx-auto flex-1 flex flex-col w-full",
2020
+ children: children
2021
+ })
2022
+ })
2023
+ ]
2024
+ }),
2025
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* Footer */.wi6, {
2026
+ Link: lib_routing/* Link */.N,
2027
+ routes: lib_routing/* routes */.J,
2028
+ t: t,
2029
+ CookiePreferences: CookiePreferences/* CookiePreferences */.f,
2030
+ ...keyboardContext?.openKeyboardHelp && {
2031
+ onOpenKeyboardHelp: keyboardContext.openKeyboardHelp
2032
+ }
2033
+ })
2034
+ ]
2035
+ })
2036
+ })
2037
+ });
2038
+ }
2039
+
2040
+
2041
+ /***/ }),
2042
+
2043
+ /***/ 41025:
2044
+ /***/ ((module) => {
2045
+
2046
+ "use strict";
2047
+ module.exports = require("next/dist/server/app-render/dynamic-access-async-storage.external.js");
2048
+
2049
+ /***/ }),
2050
+
2051
+ /***/ 41857:
2052
+ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
2053
+
2054
+ Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3805));
2055
+
2056
+
2057
+ /***/ }),
2058
+
2059
+ /***/ 43954:
2060
+ /***/ ((module) => {
2061
+
2062
+ "use strict";
2063
+ module.exports = require("next/dist/shared/lib/router/utils/interception-routes");
2064
+
2065
+ /***/ }),
2066
+
2067
+ /***/ 50436:
2068
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2069
+
2070
+ "use strict";
2071
+
2072
+ // EXPORTS
2073
+ __webpack_require__.d(__webpack_exports__, {
2074
+ t: () => (/* binding */ ToolbarPanels)
2075
+ });
2076
+
2077
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js
2078
+ var react_jsx_runtime = __webpack_require__(92692);
2079
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
2080
+ var react = __webpack_require__(71277);
2081
+ // EXTERNAL MODULE: ../../packages/react-ui/dist/index.mjs + 27 modules
2082
+ var dist = __webpack_require__(76552);
2083
+ ;// __barrel_optimize__?names=ResizeHandle,SettingsPanel,useEventSubscriptions,usePanelWidth!=!../../packages/react-ui/dist/index.mjs
2084
+
2085
+
2086
+ // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
2087
+ var next_auth_react = __webpack_require__(62341);
2088
+ // EXTERNAL MODULE: ../../node_modules/next/dist/api/image.js
2089
+ var api_image = __webpack_require__(93523);
2090
+ // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
2091
+ var react_client = __webpack_require__(56305);
2092
+ ;// __barrel_optimize__?names=formatTime,sanitizeImageURL,useSessionExpiry!=!../../packages/react-ui/dist/index.mjs
2093
+
2094
+
2095
+ // EXTERNAL MODULE: ./src/hooks/useAuth.ts + 1 modules
2096
+ var useAuth = __webpack_require__(31039);
2097
+ ;// ./src/components/UserPanel.tsx
2098
+ /* __next_internal_client_entry_do_not_use__ UserPanel auto */
2099
+
2100
+
2101
+
2102
+
2103
+
2104
+
2105
+ // Fallback avatar when image fails to load or is invalid
2106
+ const FALLBACK_AVATAR = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiM2QjcyODAiLz4KPHBhdGggZD0iTTE2IDE2QzE4LjIwOTEgMTYgMjAgMTQuMjA5MSAyMCAxMkMyMCA5Ljc5MDg2IDE4LjIwOTEgOCAxNiA4QzEzLjc5MDkgOCAxMiA5Ljc5MDg2IDEyIDEyQzEyIDE0LjIwOTEgMTMuNzkwOSAxNiAxNiAxNloiIGZpbGw9IiNFNUU3RUIiLz4KPHBhdGggZD0iTTI0IDI1QzI0IDIxLjY4NjMgMjAuNDE4MyAxOSAxNiAxOUMxMS41ODE3IDE5IDggMjEuNjg2MyA4IDI1IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==';
2107
+ function UserPanel() {
2108
+ const t = (0,react_client/* useTranslations */.c)('UserPanel');
2109
+ const { displayName, avatarUrl, userDomain, isAdmin, isModerator } = (0,useAuth/* useAuth */.As)();
2110
+ const [imageError, setImageError] = (0,react.useState)(false);
2111
+ const { timeRemaining } = (0,dist.useSessionExpiry)();
2112
+ const sessionTimeFormatted = (0,dist.formatTime)(timeRemaining) ?? 'Unknown';
2113
+ // Sanitize and validate the profile image URL
2114
+ const profileImageUrl = (()=>{
2115
+ if (!avatarUrl || imageError) {
2116
+ return FALLBACK_AVATAR;
2141
2117
  }
2142
- // rethrow so that we can handle serving error page
2143
- throw err;
2144
- }
2118
+ const sanitized = (0,dist.sanitizeImageURL)(avatarUrl);
2119
+ if (!sanitized) {
2120
+ console.warn('Invalid profile image URL detected, using fallback');
2121
+ return FALLBACK_AVATAR;
2122
+ }
2123
+ return sanitized;
2124
+ })();
2125
+ const handleSignOut = async ()=>{
2126
+ await (0,next_auth_react.signOut)({
2127
+ callbackUrl: '/'
2128
+ });
2129
+ };
2130
+ return /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2131
+ className: "semiont-user-panel",
2132
+ children: [
2133
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("h3", {
2134
+ className: "semiont-user-panel__title",
2135
+ children: t('account')
2136
+ }),
2137
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2138
+ className: "space-y-4",
2139
+ children: [
2140
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2141
+ className: "flex items-center gap-3",
2142
+ children: [
2143
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)(api_image["default"], {
2144
+ src: profileImageUrl,
2145
+ alt: t('profileAlt', {
2146
+ name: displayName || t('user')
2147
+ }),
2148
+ width: 48,
2149
+ height: 48,
2150
+ className: "w-12 h-12 rounded-full object-cover",
2151
+ onError: ()=>setImageError(true),
2152
+ unoptimized: profileImageUrl === FALLBACK_AVATAR,
2153
+ sizes: "48px",
2154
+ quality: 85
2155
+ }),
2156
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2157
+ className: "flex-1 min-w-0",
2158
+ children: [
2159
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2160
+ className: "semiont-panel-text",
2161
+ children: displayName || t('user')
2162
+ }),
2163
+ userDomain && /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2164
+ className: "semiont-panel-text-secondary",
2165
+ children: [
2166
+ "@",
2167
+ userDomain
2168
+ ]
2169
+ })
2170
+ ]
2171
+ })
2172
+ ]
2173
+ }),
2174
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2175
+ children: [
2176
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("label", {
2177
+ className: "semiont-panel-label",
2178
+ children: t('session')
2179
+ }),
2180
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2181
+ className: "semiont-session-box",
2182
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2183
+ className: "semiont-panel-hint",
2184
+ children: t('expiresIn', {
2185
+ time: sessionTimeFormatted
2186
+ })
2187
+ })
2188
+ })
2189
+ ]
2190
+ }),
2191
+ (isAdmin || isModerator) && /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2192
+ children: [
2193
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("label", {
2194
+ className: "semiont-panel-label",
2195
+ children: t('privileges')
2196
+ }),
2197
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2198
+ className: "space-y-1",
2199
+ children: [
2200
+ isAdmin && /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2201
+ className: "semiont-privilege-badge semiont-privilege-badge--admin",
2202
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("span", {
2203
+ className: "semiont-privilege-text",
2204
+ children: t('administrator')
2205
+ })
2206
+ }),
2207
+ isModerator && /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2208
+ className: "semiont-privilege-badge semiont-privilege-badge--moderator",
2209
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("span", {
2210
+ className: "semiont-privilege-text",
2211
+ children: t('moderator')
2212
+ })
2213
+ })
2214
+ ]
2215
+ })
2216
+ ]
2217
+ }),
2218
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2219
+ className: "semiont-panel-divider",
2220
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("button", {
2221
+ onClick: handleSignOut,
2222
+ className: "semiont-signout-button",
2223
+ children: t('signOut')
2224
+ })
2225
+ })
2226
+ ]
2227
+ })
2228
+ ]
2229
+ });
2145
2230
  }
2146
- // TODO: omit this from production builds, only test builds should include it
2231
+
2232
+ // EXTERNAL MODULE: ../../node_modules/use-intl/dist/esm/production/react.js + 18 modules
2233
+ var production_react = __webpack_require__(23211);
2234
+ // EXTERNAL MODULE: ./src/i18n/routing.ts
2235
+ var routing = __webpack_require__(99704);
2236
+ ;// __barrel_optimize__?names=COMMON_PANELS!=!../../packages/react-ui/dist/index.mjs
2237
+
2238
+
2239
+ ;// ./src/components/toolbar/ToolbarPanels.tsx
2240
+ /* __next_internal_client_entry_do_not_use__ ToolbarPanels auto */
2241
+
2242
+
2243
+
2244
+
2245
+
2246
+
2147
2247
  /**
2148
- * Creates a readable stream that emits a PPR boundary sentinel.
2248
+ * Renders the toolbar panel container with common panels (user, settings)
2249
+ * and any context-specific panels passed as children.
2149
2250
  *
2150
- * @returns A readable stream that emits a PPR boundary sentinel.
2151
- */ function createPPRBoundarySentinel() {
2152
- return new ReadableStream({
2153
- start (controller) {
2154
- controller.enqueue(new TextEncoder().encode('<!-- PPR_BOUNDARY_SENTINEL -->'));
2155
- controller.close();
2156
- }
2251
+ * Settings changes are handled via GlobalSettingsEventBus - no callbacks needed.
2252
+ *
2253
+ * @example
2254
+ * // Simple context (compose, discover, moderate, admin pages)
2255
+ * <ToolbarPanels
2256
+ * activePanel={activePanel}
2257
+ * theme={theme}
2258
+ * showLineNumbers={showLineNumbers}
2259
+ * />
2260
+ *
2261
+ * @example
2262
+ * // Document context with custom panels
2263
+ * <ToolbarPanels
2264
+ * activePanel={activePanel}
2265
+ * theme={theme}
2266
+ * showLineNumbers={showLineNumbers}
2267
+ * >
2268
+ * {activePanel === 'annotations' && <UnifiedAnnotationsPanel ... />}
2269
+ * {activePanel === 'history' && <AnnotationHistory ... />}
2270
+ * {activePanel === 'info' && <ResourceInfoPanel ... />}
2271
+ * {activePanel === 'collaboration' && <CollaborationPanel ... />}
2272
+ * {activePanel === 'jsonld' && <JsonLdPanel ... />}
2273
+ * </ToolbarPanels>
2274
+ */ function ToolbarPanels({ activePanel, theme, showLineNumbers, hoverDelayMs, children }) {
2275
+ const locale = (0,production_react/* useLocale */.Ym)();
2276
+ const router = (0,routing/* useRouter */.rd)();
2277
+ const pathname = (0,routing/* usePathname */.a8)();
2278
+ const [isPending, startTransition] = (0,react.useTransition)();
2279
+ // Panel width management with localStorage persistence
2280
+ const { width, setWidth, minWidth, maxWidth } = (0,dist.usePanelWidth)();
2281
+ // Handle locale change events
2282
+ const handleLocaleChanged = (0,react.useCallback)(({ locale: newLocale })=>{
2283
+ if (!pathname) return;
2284
+ startTransition(()=>{
2285
+ // The router from @/i18n/routing is locale-aware and will handle the locale prefix
2286
+ router.replace(pathname, {
2287
+ locale: newLocale
2288
+ });
2289
+ });
2290
+ }, [
2291
+ pathname,
2292
+ router,
2293
+ startTransition
2294
+ ]);
2295
+ // Subscribe to locale change events
2296
+ (0,dist.useEventSubscriptions)({
2297
+ 'settings:locale-changed': handleLocaleChanged
2298
+ });
2299
+ // Don't render container if no panel is active
2300
+ if (!activePanel) {
2301
+ return null;
2302
+ }
2303
+ // In simple context (no children), only user and settings panels are valid.
2304
+ // If a resource-specific panel is still active from a previous route, hide the container.
2305
+ if (!children && !dist.COMMON_PANELS.includes(activePanel)) {
2306
+ return null;
2307
+ }
2308
+ return /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2309
+ className: "semiont-toolbar-panels",
2310
+ style: {
2311
+ width: `${width}px`,
2312
+ position: 'relative'
2313
+ },
2314
+ children: [
2315
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist.ResizeHandle, {
2316
+ onResize: setWidth,
2317
+ minWidth: minWidth,
2318
+ maxWidth: maxWidth,
2319
+ position: "left",
2320
+ ariaLabel: "Resize right panel"
2321
+ }),
2322
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2323
+ className: "semiont-toolbar-panels__content",
2324
+ children: [
2325
+ children,
2326
+ activePanel === 'user' && /*#__PURE__*/ (0,react_jsx_runtime.jsx)(UserPanel, {}),
2327
+ activePanel === 'settings' && /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist.SettingsPanel, {
2328
+ showLineNumbers: showLineNumbers,
2329
+ theme: theme,
2330
+ hoverDelayMs: hoverDelayMs,
2331
+ locale: locale,
2332
+ isPendingLocaleChange: isPending
2333
+ })
2334
+ ]
2335
+ })
2336
+ ]
2157
2337
  });
2158
2338
  }
2159
2339
 
2160
- //# sourceMappingURL=app-page.js.map
2340
+
2341
+ /***/ }),
2342
+
2343
+ /***/ 55511:
2344
+ /***/ ((module) => {
2345
+
2346
+ "use strict";
2347
+ module.exports = require("crypto");
2348
+
2349
+ /***/ }),
2350
+
2351
+ /***/ 56677:
2352
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2353
+
2354
+ "use strict";
2355
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2356
+ /* harmony export */ C$z: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useEventSubscriptions),
2357
+ /* harmony export */ DPo: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useTheme),
2358
+ /* harmony export */ cvF: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useLineNumbers),
2359
+ /* harmony export */ ySJ: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.usePanelBrowse)
2360
+ /* harmony export */ });
2361
+ /* harmony import */ var _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76552);
2362
+
2363
+
2364
+
2365
+ /***/ }),
2366
+
2367
+ /***/ 59406:
2368
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2369
+
2370
+ "use strict";
2371
+ __webpack_require__.r(__webpack_exports__);
2372
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2373
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2374
+ /* harmony export */ });
2375
+ /* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30274);
2376
+ /* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__);
2377
+ // This file is generated by the Webpack next-flight-loader.
2378
+
2379
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
2380
+ function() { throw new Error("Attempted to call the default export of \"/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/layout.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component."); },
2381
+ "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/layout.tsx",
2382
+ "default",
2383
+ ));
2384
+
2385
+
2386
+ /***/ }),
2387
+
2388
+ /***/ 62256:
2389
+ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
2390
+
2391
+ Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 59406));
2392
+
2393
+
2394
+ /***/ }),
2395
+
2396
+ /***/ 63033:
2397
+ /***/ ((module) => {
2398
+
2399
+ "use strict";
2400
+ module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js");
2401
+
2402
+ /***/ }),
2403
+
2404
+ /***/ 70722:
2405
+ /***/ ((module) => {
2406
+
2407
+ "use strict";
2408
+ module.exports = require("next/dist/shared/lib/invariant-error");
2409
+
2410
+ /***/ }),
2411
+
2412
+ /***/ 77068:
2413
+ /***/ ((module) => {
2414
+
2415
+ "use strict";
2416
+ module.exports = require("next/dist/shared/lib/size-limit");
2417
+
2418
+ /***/ }),
2419
+
2420
+ /***/ 78305:
2421
+ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
2422
+
2423
+ Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 31378));
2161
2424
 
2162
2425
 
2163
2426
  /***/ }),
@@ -2185,7 +2448,7 @@ module.exports = require("next/dist/shared/lib/no-fallback-error.external");
2185
2448
  var __webpack_require__ = require("../../../../webpack-runtime.js");
2186
2449
  __webpack_require__.C(exports);
2187
2450
  var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
2188
- var __webpack_exports__ = __webpack_require__.X(0, [7246,4741,2628,7420,2617,3144,8255,9988], () => (__webpack_exec__(79377)));
2451
+ var __webpack_exports__ = __webpack_require__.X(0, [8569,4741,9927,7420,2617,3144,8255,9988], () => (__webpack_exec__(9055)));
2189
2452
  module.exports = __webpack_exports__;
2190
2453
 
2191
2454
  })();