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