@semiont/frontend 0.4.3 → 0.4.5

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