@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
@@ -28,1229 +28,359 @@ module.exports = require("next/dist/compiled/next-server/app-page.runtime.prod.j
28
28
 
29
29
  /***/ }),
30
30
 
31
- /***/ 17891:
32
- /***/ ((module) => {
33
-
34
- "use strict";
35
- module.exports = require("next/dist/shared/lib/router/utils/get-segment-param");
36
-
37
- /***/ }),
38
-
39
- /***/ 19121:
40
- /***/ ((module) => {
41
-
42
- "use strict";
43
- module.exports = require("next/dist/server/app-render/action-async-storage.external.js");
44
-
45
- /***/ }),
46
-
47
- /***/ 19771:
48
- /***/ ((module) => {
49
-
50
- "use strict";
51
- module.exports = require("process");
52
-
53
- /***/ }),
54
-
55
- /***/ 20400:
56
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
57
-
58
- Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 33898));
59
-
60
-
61
- /***/ }),
62
-
63
- /***/ 24490:
31
+ /***/ 13849:
64
32
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
65
33
 
66
34
  "use strict";
67
35
  __webpack_require__.r(__webpack_exports__);
68
36
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
69
- /* harmony export */ "default": () => (/* binding */ LinkedDataPage)
37
+ /* harmony export */ __next_app__: () => (/* binding */ __next_app__),
38
+ /* harmony export */ handler: () => (/* binding */ handler),
39
+ /* harmony export */ routeModule: () => (/* binding */ routeModule)
70
40
  /* harmony export */ });
71
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2474);
72
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
73
- /* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32974);
74
-
75
-
76
- // Authentication is handled by middleware (proxy.ts)
77
- // Only authenticated moderators/admins can reach this page
78
- function LinkedDataPage() {
79
- return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_client__WEBPACK_IMPORTED_MODULE_1__["default"], {});
80
- }
81
-
41
+ /* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80666);
42
+ /* 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__);
43
+ /* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51421);
44
+ /* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4675);
45
+ /* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29796);
46
+ /* 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__);
47
+ /* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54046);
48
+ /* 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__);
49
+ /* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(74928);
50
+ /* 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__);
51
+ /* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19727);
52
+ /* harmony import */ var next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(24268);
53
+ /* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(60402);
54
+ /* 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__);
55
+ /* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(22040);
56
+ /* 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__);
57
+ /* harmony import */ var next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27186);
58
+ /* 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__);
59
+ /* harmony import */ var next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(49228);
60
+ /* 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__);
61
+ /* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(97485);
62
+ /* 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__);
63
+ /* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(261);
64
+ /* 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__);
65
+ /* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(80885);
66
+ /* 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__);
67
+ /* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(7162);
68
+ /* 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__);
69
+ /* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(26713);
70
+ /* 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__);
71
+ /* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(70972);
72
+ /* 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__);
73
+ /* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(57341);
74
+ /* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__);
75
+ /* harmony import */ var next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(95105);
76
+ /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(38038);
77
+ /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__);
78
+ /* harmony import */ var next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(29898);
79
+ /* harmony import */ var next_dist_server_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(62918);
80
+ /* 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__);
81
+ /* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(98798);
82
+ /* 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__);
83
+ /* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(86439);
84
+ /* 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__);
85
+ /* harmony import */ var next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(77068);
86
+ /* 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__);
87
+ /* harmony import */ var next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(31214);
88
+ /* 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__);
89
+ /* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(35402);
90
+ /* 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__);
91
+ /* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(29059);
92
+ /* 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__);
93
+ /* harmony import */ var next_dist_shared_lib_invariant_error__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(70722);
94
+ /* 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__);
95
+ /* harmony import */ var next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(31182);
96
+ /* harmony import */ var next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30__);
97
+ /* harmony import */ var next_dist_shared_lib_router_utils_interception_routes__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(43954);
98
+ /* 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__);
99
+ /* harmony import */ var next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(17891);
100
+ /* 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__);
101
+ /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
102
+ /* 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__]
103
+ /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
104
+ const module0 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 95235));
105
+ const module1 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 25195));
106
+ const module2 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
107
+ const module3 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 72353));
108
+ const module4 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 4253, 23));
109
+ const module5 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 49184, 23));
110
+ const module6 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 57149));
111
+ const module7 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
112
+ const module8 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 28310));
113
+ const module9 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 59406));
114
+ const module10 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
115
+ const module11 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
116
+ const page12 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 24490));
82
117
 
83
- /***/ }),
84
118
 
85
- /***/ 25197:
86
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
87
119
 
88
- "use strict";
89
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
90
- /* harmony export */ C$z: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useEventSubscriptions),
91
- /* harmony export */ TbX: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.SimpleNavigation)
92
- /* harmony export */ });
93
- /* harmony import */ var _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69792);
94
120
 
95
121
 
96
122
 
97
- /***/ }),
98
123
 
99
- /***/ 25888:
100
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
101
124
 
102
- "use strict";
103
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
104
- /* harmony export */ Ef3: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.LeftSidebar),
105
- /* harmony export */ ffs: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.AuthTokenProvider),
106
- /* harmony export */ pqI: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.ApiClientProvider),
107
- /* harmony export */ wi6: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.Footer)
108
- /* harmony export */ });
109
- /* harmony import */ var _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69792);
110
125
 
111
126
 
112
127
 
113
- /***/ }),
114
128
 
115
- /***/ 26713:
116
- /***/ ((module) => {
117
129
 
118
- "use strict";
119
- module.exports = require("next/dist/shared/lib/router/utils/is-bot");
120
130
 
121
- /***/ }),
122
131
 
123
- /***/ 28354:
124
- /***/ ((module) => {
125
132
 
126
- "use strict";
127
- module.exports = require("util");
128
133
 
129
- /***/ }),
130
134
 
131
- /***/ 29294:
132
- /***/ ((module) => {
133
135
 
134
- "use strict";
135
- module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
136
136
 
137
- /***/ }),
138
137
 
139
- /***/ 31039:
140
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
141
138
 
142
- "use strict";
143
139
 
144
- // EXPORTS
145
- __webpack_require__.d(__webpack_exports__, {
146
- As: () => (/* binding */ useAuth)
147
- });
148
140
 
149
- // UNUSED EXPORTS: usePermissions, useUserPreferences
150
141
 
151
- // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
152
- var react = __webpack_require__(62341);
153
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
154
- var ssr_react = __webpack_require__(71277);
155
- // EXTERNAL MODULE: ../../packages/api-client/dist/index.js
156
- var dist = __webpack_require__(88887);
157
- ;// __barrel_optimize__?names=JWTTokenSchema,validateData!=!../../packages/api-client/dist/index.js
158
142
 
159
143
 
160
- ;// ./src/hooks/useAuth.ts
161
- /* __next_internal_client_entry_do_not_use__ useAuth,useUserPreferences,usePermissions auto */
144
+ // We inject the tree and pages here so that we can use them in the route
145
+ // module.
146
+ const tree = {
147
+ children: [
148
+ '',
149
+ {
150
+ children: [
151
+ '[locale]',
152
+ {
153
+ children: [
154
+ 'moderate',
155
+ {
156
+ children: [
157
+ 'linked-data',
158
+ {
159
+ children: ['__PAGE__', {}, {
160
+ page: [page12, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/linked-data/page.tsx"],
161
+
162
+ }]
163
+ },
164
+ {
165
+ 'global-error': [module11, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
166
+
167
+ },
168
+ []
169
+ ]
170
+ },
171
+ {
172
+ 'layout': [module9, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/layout.tsx"],
173
+ 'global-error': [module10, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
174
+
175
+ },
176
+ []
177
+ ]
178
+ },
179
+ {
180
+ 'layout': [module6, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/layout.tsx"],
181
+ 'global-error': [module7, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
182
+ 'not-found': [module8, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/not-found.tsx"],
183
+
184
+ },
185
+ ["_not-found","_global-error","api"]
186
+ ]
187
+ },
188
+ {
189
+ 'layout': [module0, "/home/runner/work/semiont/semiont/apps/frontend/src/app/layout.tsx"],
190
+ 'error': [module1, "/home/runner/work/semiont/semiont/apps/frontend/src/app/error.tsx"],
191
+ 'global-error': [module2, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
192
+ 'not-found': [module3, "/home/runner/work/semiont/semiont/apps/frontend/src/app/not-found.tsx"],
193
+ 'forbidden': [module4, "next/dist/client/components/builtin/forbidden.js"],
194
+ 'unauthorized': [module5, "next/dist/client/components/builtin/unauthorized.js"],
195
+
196
+ },
197
+ []
198
+ ]
199
+ }.children;
200
+ const __next_app_require__ = __webpack_require__
201
+ const __next_app_load_chunk__ = () => Promise.resolve()
202
+ const __next_app__ = {
203
+ require: __next_app_require__,
204
+ loadChunk: __next_app_load_chunk__
205
+ };
162
206
 
163
207
 
164
- /**
165
- * Enhanced authentication hook with validation and user information
166
- */ function useAuth() {
167
- const { data: session, status } = (0,react.useSession)();
168
- const authInfo = (0,ssr_react.useMemo)(()=>{
169
- const isLoading = status === 'loading';
170
- const isAuthenticated = !!session?.user;
171
- // Validate backend token if present
172
- const hasValidBackendToken = session?.backendToken ? (0,dist/* validateData */.lv)(dist/* JWTTokenSchema */.k3, session.backendToken).success : false;
173
- return {
174
- // Session data
175
- session,
176
- user: session?.user,
177
- backendUser: session?.backendUser,
178
- // Status flags
179
- isLoading,
180
- isAuthenticated,
181
- hasValidBackendToken,
182
- // Computed properties
183
- userDomain: session?.backendUser?.domain || session?.user?.email?.split('@')[1],
184
- displayName: session?.user?.name || session?.user?.email?.split('@')[0] || 'User',
185
- avatarUrl: session?.user?.image,
186
- isAdmin: session?.backendUser?.isAdmin || false,
187
- isModerator: session?.backendUser?.isModerator || false,
188
- // Combined auth status
189
- isFullyAuthenticated: isAuthenticated && hasValidBackendToken
190
- };
191
- }, [
192
- session,
193
- status
194
- ]);
195
- return authInfo;
196
- }
197
- /**
198
- * Hook for getting user preferences and settings
199
- */ function useUserPreferences() {
200
- const { session } = useAuth();
201
- return useMemo(()=>{
202
- // In the future, this could fetch user preferences from backend
203
- // For now, return defaults
204
- return {
205
- theme: 'system',
206
- language: 'en',
207
- timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
208
- emailNotifications: true
209
- };
210
- }, [
211
- session
212
- ]);
213
- }
214
- /**
215
- * Hook for checking user permissions (future expansion)
216
- */ function usePermissions() {
217
- const { backendUser, isFullyAuthenticated } = useAuth();
218
- return useMemo(()=>{
219
- if (!isFullyAuthenticated || !backendUser) {
220
- return {
221
- canRead: false,
222
- canWrite: false,
223
- canAdmin: false,
224
- canManageUsers: false
225
- };
226
- }
227
- // Basic permissions - in the future this would come from backend
228
- return {
229
- canRead: true,
230
- canWrite: true,
231
- canAdmin: false,
232
- canManageUsers: false
233
- };
234
- }, [
235
- backendUser,
236
- isFullyAuthenticated
237
- ]);
238
- }
239
208
 
240
209
 
241
- /***/ }),
242
210
 
243
- /***/ 32037:
244
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
245
211
 
246
- "use strict";
247
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
248
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
249
- /* harmony export */ });
250
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
251
212
 
252
- function ArrowsRightLeftIcon({ title, titleId, ...props }, svgRef) {
253
- return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
254
- xmlns: "http://www.w3.org/2000/svg",
255
- fill: "none",
256
- viewBox: "0 0 24 24",
257
- strokeWidth: 1.5,
258
- stroke: "currentColor",
259
- "aria-hidden": "true",
260
- "data-slot": "icon",
261
- ref: svgRef,
262
- "aria-labelledby": titleId
263
- }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
264
- id: titleId
265
- }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
266
- strokeLinecap: "round",
267
- strokeLinejoin: "round",
268
- d: "M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"
269
- }));
270
- }
271
- const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ArrowsRightLeftIcon);
272
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
273
-
274
-
275
- /***/ }),
276
-
277
- /***/ 32974:
278
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
279
-
280
- "use strict";
281
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
282
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
283
- /* harmony export */ });
284
- /* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30274);
285
- /* 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__);
286
- // This file is generated by the Webpack next-flight-loader.
287
-
288
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
289
- function() { throw new Error("Attempted to call the default export of \"/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/linked-data/client.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."); },
290
- "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/linked-data/client.tsx",
291
- "default",
292
- ));
293
-
294
-
295
- /***/ }),
296
-
297
- /***/ 33873:
298
- /***/ ((module) => {
299
-
300
- "use strict";
301
- module.exports = require("path");
302
-
303
- /***/ }),
304
-
305
- /***/ 33898:
306
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
307
-
308
- "use strict";
309
- // ESM COMPAT FLAG
310
- __webpack_require__.r(__webpack_exports__);
311
-
312
- // EXPORTS
313
- __webpack_require__.d(__webpack_exports__, {
314
- "default": () => (/* binding */ ModerateLayout)
213
+ // Create and export the route module that will be consumed.
214
+ const routeModule = new next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({
215
+ definition: {
216
+ kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,
217
+ page: "/[locale]/moderate/linked-data/page",
218
+ pathname: "/[locale]/moderate/linked-data",
219
+ // The following aren't used in production.
220
+ bundlePath: '',
221
+ filename: '',
222
+ appPaths: []
223
+ },
224
+ userland: {
225
+ loaderTree: tree
226
+ },
227
+ distDir: ".next" || 0,
228
+ relativeProjectDir: false || ''
315
229
  });
316
-
317
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js
318
- var react_jsx_runtime = __webpack_require__(92692);
319
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
320
- var react = __webpack_require__(71277);
321
- // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
322
- var react_client = __webpack_require__(56305);
323
- // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
324
- var next_auth_react = __webpack_require__(62341);
325
- // EXTERNAL MODULE: __barrel_optimize__?names=ApiClientProvider,AuthTokenProvider,Footer,LeftSidebar!=!../../packages/react-ui/dist/index.mjs
326
- var dist = __webpack_require__(25888);
327
- // EXTERNAL MODULE: ./src/i18n/routing.ts
328
- var routing = __webpack_require__(99704);
329
- // EXTERNAL MODULE: __barrel_optimize__?names=SimpleNavigation,useEventSubscriptions!=!../../packages/react-ui/dist/index.mjs
330
- var react_ui_dist = __webpack_require__(25197);
331
- ;// ../../node_modules/@heroicons/react/24/outline/esm/ClockIcon.js
332
-
333
- function ClockIcon({ title, titleId, ...props }, svgRef) {
334
- return /*#__PURE__*/ react.createElement("svg", Object.assign({
335
- xmlns: "http://www.w3.org/2000/svg",
336
- fill: "none",
337
- viewBox: "0 0 24 24",
338
- strokeWidth: 1.5,
339
- stroke: "currentColor",
340
- "aria-hidden": "true",
341
- "data-slot": "icon",
342
- ref: svgRef,
343
- "aria-labelledby": titleId
344
- }, props), title ? /*#__PURE__*/ react.createElement("title", {
345
- id: titleId
346
- }, title) : null, /*#__PURE__*/ react.createElement("path", {
347
- strokeLinecap: "round",
348
- strokeLinejoin: "round",
349
- d: "M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
350
- }));
351
- }
352
- const ForwardRef = /*#__PURE__*/ react.forwardRef(ClockIcon);
353
- /* harmony default export */ const esm_ClockIcon = (ForwardRef);
354
-
355
- ;// ../../node_modules/@heroicons/react/24/outline/esm/TagIcon.js
356
-
357
- function TagIcon({ title, titleId, ...props }, svgRef) {
358
- return /*#__PURE__*/ react.createElement("svg", Object.assign({
359
- xmlns: "http://www.w3.org/2000/svg",
360
- fill: "none",
361
- viewBox: "0 0 24 24",
362
- strokeWidth: 1.5,
363
- stroke: "currentColor",
364
- "aria-hidden": "true",
365
- "data-slot": "icon",
366
- ref: svgRef,
367
- "aria-labelledby": titleId
368
- }, props), title ? /*#__PURE__*/ react.createElement("title", {
369
- id: titleId
370
- }, title) : null, /*#__PURE__*/ react.createElement("path", {
371
- strokeLinecap: "round",
372
- strokeLinejoin: "round",
373
- 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"
374
- }), /*#__PURE__*/ react.createElement("path", {
375
- strokeLinecap: "round",
376
- strokeLinejoin: "round",
377
- d: "M6 6h.008v.008H6V6Z"
378
- }));
230
+ function buildDynamicSegmentPlaceholder(param) {
231
+ const { repeat, optional } = (0,next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__.getParamProperties)(param.paramType);
232
+ if (optional) {
233
+ return `[[...${param.paramName}]]`;
234
+ }
235
+ if (repeat) {
236
+ return `[...${param.paramName}]`;
237
+ }
238
+ return `[${param.paramName}]`;
379
239
  }
380
- const TagIcon_ForwardRef = /*#__PURE__*/ react.forwardRef(TagIcon);
381
- /* harmony default export */ const esm_TagIcon = (TagIcon_ForwardRef);
382
-
383
- ;// ../../node_modules/@heroicons/react/24/outline/esm/BookOpenIcon.js
384
-
385
- function BookOpenIcon({ title, titleId, ...props }, svgRef) {
386
- return /*#__PURE__*/ react.createElement("svg", Object.assign({
387
- xmlns: "http://www.w3.org/2000/svg",
388
- fill: "none",
389
- viewBox: "0 0 24 24",
390
- strokeWidth: 1.5,
391
- stroke: "currentColor",
392
- "aria-hidden": "true",
393
- "data-slot": "icon",
394
- ref: svgRef,
395
- "aria-labelledby": titleId
396
- }, props), title ? /*#__PURE__*/ react.createElement("title", {
397
- id: titleId
398
- }, title) : null, /*#__PURE__*/ react.createElement("path", {
399
- strokeLinecap: "round",
400
- strokeLinejoin: "round",
401
- 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"
402
- }));
240
+ /**
241
+ * Builds the cache key for the most complete prerenderable shell we can derive
242
+ * from the shell that matched this request. Only params that can still be
243
+ * filled by `generateStaticParams` are substituted; fully dynamic params stay
244
+ * as placeholders so a request like `/c/foo` can complete `/[one]/[two]` into
245
+ * `/c/[two]` rather than `/c/foo`.
246
+ */ function buildCompletedShellCacheKey(fallbackPathname, remainingPrerenderableParams, params) {
247
+ const prerenderableParamsByName = new Map(remainingPrerenderableParams.map((param)=>[
248
+ param.paramName,
249
+ param
250
+ ]));
251
+ return fallbackPathname.split('/').map((segment)=>{
252
+ const segmentParam = (0,next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__.getSegmentParam)(segment);
253
+ if (!segmentParam) {
254
+ return segment;
255
+ }
256
+ const remainingParam = prerenderableParamsByName.get(segmentParam.paramName);
257
+ if (!remainingParam) {
258
+ return segment;
259
+ }
260
+ const value = params == null ? void 0 : params[remainingParam.paramName];
261
+ if (!value) {
262
+ return segment;
263
+ }
264
+ const encodedValue = Array.isArray(value) ? value.map((item)=>encodeURIComponent(item)).join('/') : encodeURIComponent(value);
265
+ return segment.replace(buildDynamicSegmentPlaceholder(remainingParam), encodedValue);
266
+ }).join('/') || '/';
403
267
  }
404
- const BookOpenIcon_ForwardRef = /*#__PURE__*/ react.forwardRef(BookOpenIcon);
405
- /* harmony default export */ const esm_BookOpenIcon = (BookOpenIcon_ForwardRef);
406
-
407
- // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/ArrowsRightLeftIcon.js
408
- var ArrowsRightLeftIcon = __webpack_require__(32037);
409
- // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/ChevronLeftIcon.js
410
- var ChevronLeftIcon = __webpack_require__(71062);
411
- // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/Bars3Icon.js
412
- var Bars3Icon = __webpack_require__(67255);
413
- ;// ./src/components/moderation/ModerationNavigation.tsx
414
- /* __next_internal_client_entry_do_not_use__ ModerationNavigation auto */
415
-
416
-
417
-
418
-
419
-
420
-
421
- function ModerationNavigation({ isCollapsed, toggleCollapsed, navigationMenu }) {
422
- const t = (0,react_client/* useTranslations */.c)('Moderation');
423
- const tSidebar = (0,react_client/* useTranslations */.c)('Sidebar');
424
- const pathname = (0,routing/* usePathname */.a8)();
425
- // Handle sidebar toggle events
426
- const handleSidebarToggle = (0,react.useCallback)(()=>{
427
- toggleCollapsed();
428
- }, [
429
- toggleCollapsed
430
- ]);
431
- // Subscribe to sidebar toggle events
432
- (0,react_ui_dist/* useEventSubscriptions */.C$z)({
433
- 'browse:sidebar-toggle': handleSidebarToggle
268
+ async function handler(req, res, ctx) {
269
+ var _this, _prerenderManifest_routes_resolvedPathname, _prerenderInfo_fallbackRootParams, _prerenderInfo_fallbackRouteParams;
270
+ if (ctx.requestMeta) {
271
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.setRequestMeta)(req, ctx.requestMeta);
272
+ }
273
+ if (routeModule.isDev) {
274
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());
275
+ }
276
+ const isMinimalMode = Boolean((0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'minimalMode'));
277
+ let srcPage = "/[locale]/moderate/linked-data/page";
278
+ // turbopack doesn't normalize `/index` in the page name
279
+ // so we need to to process dynamic routes properly
280
+ // TODO: fix turbopack providing differing value from webpack
281
+ if (false) {} else if (srcPage === '/index') {
282
+ // we always normalize /index specifically
283
+ srcPage = '/';
284
+ }
285
+ const multiZoneDraftMode = false;
286
+ const prepareResult = await routeModule.prepare(req, res, {
287
+ srcPage,
288
+ multiZoneDraftMode
434
289
  });
435
- const navigation = [
436
- {
437
- name: t('recentResources'),
438
- href: '/moderate/recent',
439
- icon: esm_ClockIcon,
440
- description: t('recentResourcesDescription')
441
- },
442
- {
443
- name: t('entityTags'),
444
- href: '/moderate/entity-tags',
445
- icon: esm_TagIcon,
446
- description: t('entityTagsDescription')
447
- },
448
- {
449
- name: t('tagSchemas'),
450
- href: '/moderate/tag-schemas',
451
- icon: esm_BookOpenIcon,
452
- description: t('tagSchemasDescription')
453
- },
454
- {
455
- name: t('linkedData'),
456
- href: '/moderate/linked-data',
457
- icon: ArrowsRightLeftIcon/* default */.A,
458
- description: t('linkedDataDescription')
459
- }
460
- ];
461
- return /*#__PURE__*/ (0,react_jsx_runtime.jsx)(react_ui_dist/* SimpleNavigation */.TbX, {
462
- title: t('title'),
463
- items: navigation,
464
- currentPath: pathname,
465
- LinkComponent: routing/* Link */.N_,
466
- ...navigationMenu && {
467
- dropdownContent: navigationMenu
468
- },
469
- isCollapsed: isCollapsed,
470
- icons: {
471
- chevronLeft: ChevronLeftIcon/* default */.A,
472
- bars: Bars3Icon/* default */.A
473
- },
474
- collapseSidebarLabel: tSidebar('collapseSidebar'),
475
- expandSidebarLabel: tSidebar('expandSidebar')
476
- });
477
- }
478
-
479
- // EXTERNAL MODULE: ./src/components/CookiePreferences.tsx
480
- var CookiePreferences = __webpack_require__(80386);
481
- // EXTERNAL MODULE: ./src/contexts/KeyboardShortcutsContext.tsx + 3 modules
482
- var KeyboardShortcutsContext = __webpack_require__(40953);
483
- // EXTERNAL MODULE: ./src/lib/routing.ts
484
- var lib_routing = __webpack_require__(46391);
485
- // EXTERNAL MODULE: ./src/hooks/useAuth.ts + 1 modules
486
- var useAuth = __webpack_require__(31039);
487
- ;// ./src/app/[locale]/moderate/layout.tsx
488
- /* __next_internal_client_entry_do_not_use__ default auto */
489
-
490
-
491
-
492
-
493
-
494
-
495
-
496
-
497
-
498
- // Note: Authentication is handled by middleware.ts for all moderate routes
499
- // This ensures centralized security and returns 404 for unauthorized users
500
- function ModerateLayout({ children }) {
501
- const t = (0,react_client/* useTranslations */.c)('Footer');
502
- const tNav = (0,react_client/* useTranslations */.c)('Navigation');
503
- const tHome = (0,react_client/* useTranslations */.c)('Home');
504
- const keyboardContext = (0,react.useContext)(KeyboardShortcutsContext/* KeyboardShortcutsContext */.GZ);
505
- const { isAuthenticated, isAdmin, isModerator } = (0,useAuth/* useAuth */.As)();
506
- const { data: session } = (0,next_auth_react.useSession)();
507
- // Extract auth token from session
508
- const authToken = session?.backendToken || null;
509
- // Middleware has already verified moderator/admin access
510
- return /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* AuthTokenProvider */.ffs, {
511
- token: authToken,
512
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* ApiClientProvider */.pqI, {
513
- baseUrl: "",
514
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
515
- className: "min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col",
516
- children: [
517
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
518
- className: "flex flex-1",
519
- children: [
520
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* LeftSidebar */.Ef3, {
521
- Link: lib_routing/* Link */.N,
522
- routes: lib_routing/* routes */.J,
523
- t: tNav,
524
- tHome: tHome,
525
- brandingLink: "/",
526
- collapsible: true,
527
- storageKey: "moderation-sidebar-collapsed",
528
- isAuthenticated: isAuthenticated,
529
- isAdmin: isAdmin,
530
- isModerator: isModerator,
531
- children: (isCollapsed, toggleCollapsed, navigationMenu)=>/*#__PURE__*/ (0,react_jsx_runtime.jsx)(ModerationNavigation, {
532
- isCollapsed: isCollapsed,
533
- toggleCollapsed: toggleCollapsed,
534
- navigationMenu: navigationMenu
535
- })
536
- }),
537
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("main", {
538
- className: "flex-1 p-6 flex flex-col",
539
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
540
- className: "max-w-7xl mx-auto flex-1 flex flex-col w-full",
541
- children: children
542
- })
543
- })
544
- ]
545
- }),
546
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* Footer */.wi6, {
547
- Link: lib_routing/* Link */.N,
548
- routes: lib_routing/* routes */.J,
549
- t: t,
550
- CookiePreferences: CookiePreferences/* CookiePreferences */.f,
551
- ...keyboardContext?.openKeyboardHelp && {
552
- onOpenKeyboardHelp: keyboardContext.openKeyboardHelp
553
- }
554
- })
555
- ]
556
- })
557
- })
558
- });
559
- }
560
-
561
-
562
- /***/ }),
563
-
564
- /***/ 41025:
565
- /***/ ((module) => {
566
-
567
- "use strict";
568
- module.exports = require("next/dist/server/app-render/dynamic-access-async-storage.external.js");
569
-
570
- /***/ }),
571
-
572
- /***/ 43954:
573
- /***/ ((module) => {
574
-
575
- "use strict";
576
- module.exports = require("next/dist/shared/lib/router/utils/interception-routes");
577
-
578
- /***/ }),
579
-
580
- /***/ 50436:
581
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
582
-
583
- "use strict";
584
-
585
- // EXPORTS
586
- __webpack_require__.d(__webpack_exports__, {
587
- t: () => (/* binding */ ToolbarPanels)
588
- });
589
-
590
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js
591
- var react_jsx_runtime = __webpack_require__(92692);
592
- // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
593
- var react = __webpack_require__(71277);
594
- // EXTERNAL MODULE: ../../packages/react-ui/dist/index.mjs + 26 modules
595
- var dist = __webpack_require__(69792);
596
- ;// __barrel_optimize__?names=ResizeHandle,SettingsPanel,useEventSubscriptions,usePanelWidth!=!../../packages/react-ui/dist/index.mjs
597
-
598
-
599
- // EXTERNAL MODULE: ../../node_modules/next-auth/react/index.js
600
- var next_auth_react = __webpack_require__(62341);
601
- // EXTERNAL MODULE: ../../node_modules/next/dist/api/image.js
602
- var api_image = __webpack_require__(93523);
603
- // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
604
- var react_client = __webpack_require__(56305);
605
- ;// __barrel_optimize__?names=formatTime,sanitizeImageURL,useSessionExpiry!=!../../packages/react-ui/dist/index.mjs
606
-
607
-
608
- // EXTERNAL MODULE: ./src/hooks/useAuth.ts + 1 modules
609
- var useAuth = __webpack_require__(31039);
610
- ;// ./src/components/UserPanel.tsx
611
- /* __next_internal_client_entry_do_not_use__ UserPanel auto */
612
-
613
-
614
-
615
-
616
-
617
-
618
- // Fallback avatar when image fails to load or is invalid
619
- const FALLBACK_AVATAR = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiM2QjcyODAiLz4KPHBhdGggZD0iTTE2IDE2QzE4LjIwOTEgMTYgMjAgMTQuMjA5MSAyMCAxMkMyMCA5Ljc5MDg2IDE4LjIwOTEgOCAxNiA4QzEzLjc5MDkgOCAxMiA5Ljc5MDg2IDEyIDEyQzEyIDE0LjIwOTEgMTMuNzkwOSAxNiAxNiAxNloiIGZpbGw9IiNFNUU3RUIiLz4KPHBhdGggZD0iTTI0IDI1QzI0IDIxLjY4NjMgMjAuNDE4MyAxOSAxNiAxOUMxMS41ODE3IDE5IDggMjEuNjg2MyA4IDI1IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==';
620
- function UserPanel() {
621
- const t = (0,react_client/* useTranslations */.c)('UserPanel');
622
- const { displayName, avatarUrl, userDomain, isAdmin, isModerator } = (0,useAuth/* useAuth */.As)();
623
- const [imageError, setImageError] = (0,react.useState)(false);
624
- const { timeRemaining } = (0,dist.useSessionExpiry)();
625
- const sessionTimeFormatted = (0,dist.formatTime)(timeRemaining) ?? 'Unknown';
626
- // Sanitize and validate the profile image URL
627
- const profileImageUrl = (()=>{
628
- if (!avatarUrl || imageError) {
629
- return FALLBACK_AVATAR;
630
- }
631
- const sanitized = (0,dist.sanitizeImageURL)(avatarUrl);
632
- if (!sanitized) {
633
- console.warn('Invalid profile image URL detected, using fallback');
634
- return FALLBACK_AVATAR;
290
+ if (!prepareResult) {
291
+ res.statusCode = 400;
292
+ res.end('Bad Request');
293
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
294
+ return null;
295
+ }
296
+ const { buildId, query, params, pageIsDynamic, buildManifest, nextFontManifest, reactLoadableManifest, serverActionsManifest, clientReferenceManifest, subresourceIntegrityManifest, prerenderManifest, isDraftMode, resolvedPathname, revalidateOnlyGenerated, routerServerContext, nextConfig, parsedUrl, interceptionRoutePatterns, deploymentId, clientAssetToken } = prepareResult;
297
+ const normalizedSrcPage = (0,next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__.normalizeAppPath)(srcPage);
298
+ let { isOnDemandRevalidate } = prepareResult;
299
+ // We use the resolvedPathname instead of the parsedUrl.pathname because it
300
+ // is not rewritten as resolvedPathname is. This will ensure that the correct
301
+ // prerender info is used instead of using the original pathname as the
302
+ // source. If however PPR is enabled and cacheComponents is disabled, we
303
+ // treat the pathname as dynamic. Currently, there's a bug in the PPR
304
+ // implementation that incorrectly leaves %%drp placeholders in the output of
305
+ // parallel routes. This is addressed with cacheComponents.
306
+ 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);
307
+ const prerenderInfo = (prerenderMatch == null ? void 0 : prerenderMatch.route) ?? null;
308
+ const isPrerendered = !!prerenderManifest.routes[resolvedPathname];
309
+ const userAgent = req.headers['user-agent'] || '';
310
+ const botType = (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__.getBotType)(userAgent);
311
+ const isHtmlBot = (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.isHtmlBotRequest)(req);
312
+ /**
313
+ * If true, this indicates that the request being made is for an app
314
+ * prefetch request.
315
+ */ 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'
316
+ ;
317
+ // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later
318
+ 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]);
319
+ const isPossibleServerAction = (0,next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__.getIsPossibleServerAction)(req);
320
+ /**
321
+ * If the route being rendered is an app page, and the ppr feature has been
322
+ * enabled, then the given route _could_ support PPR.
323
+ */ const couldSupportPPR = (0,next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__.checkIsAppPPREnabled)(nextConfig.experimental.ppr);
324
+ // Stash postponed state for server actions when in minimal mode.
325
+ // We extract it here so the RDC is available for the re-render after the action completes.
326
+ const resumeStateLengthHeader = req.headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_RESUME_STATE_LENGTH_HEADER];
327
+ if (!(0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed') && isMinimalMode && couldSupportPPR && isPossibleServerAction && resumeStateLengthHeader && typeof resumeStateLengthHeader === 'string') {
328
+ const stateLength = parseInt(resumeStateLengthHeader, 10);
329
+ const { maxPostponedStateSize, maxPostponedStateSizeBytes } = (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getMaxPostponedStateSize)(nextConfig.experimental.maxPostponedStateSize);
330
+ if (!isNaN(stateLength) && stateLength > 0) {
331
+ var _nextConfig_experimental_serverActions;
332
+ if (stateLength > maxPostponedStateSizeBytes) {
333
+ res.statusCode = 413;
334
+ res.end((0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getPostponedStateExceededErrorMessage)(maxPostponedStateSize));
335
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
336
+ return null;
337
+ }
338
+ // Calculate max total body size to prevent buffering excessively large
339
+ // payloads before the action handler checks. We use stateLength (not
340
+ // maxPostponedStateSizeBytes) so the postponed state doesn't eat into
341
+ // the action body budget - it's already validated above.
342
+ const defaultActionBodySizeLimit = '1 MB';
343
+ const actionBodySizeLimit = ((_nextConfig_experimental_serverActions = nextConfig.experimental.serverActions) == null ? void 0 : _nextConfig_experimental_serverActions.bodySizeLimit) ?? defaultActionBodySizeLimit;
344
+ const actionBodySizeLimitBytes = actionBodySizeLimit !== defaultActionBodySizeLimit ? (__webpack_require__(32683).parse)(actionBodySizeLimit) : 1024 * 1024 // 1 MB
345
+ ;
346
+ const maxTotalBodySize = stateLength + actionBodySizeLimitBytes;
347
+ const fullBody = await (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.readBodyWithSizeLimit)(req, maxTotalBodySize);
348
+ if (fullBody === null) {
349
+ res.statusCode = 413;
350
+ 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`);
351
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
352
+ return null;
353
+ }
354
+ if (fullBody.length >= stateLength) {
355
+ // Extract postponed state from the beginning
356
+ const postponedState = fullBody.subarray(0, stateLength).toString('utf8');
357
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'postponed', postponedState);
358
+ // Store the remaining action body for the action handler
359
+ const actionBody = fullBody.subarray(stateLength);
360
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'actionBody', actionBody);
361
+ } else {
362
+ throw Object.defineProperty(new Error(`invariant: expected ${stateLength} bytes of postponed state but only received ${fullBody.length} bytes`), "__NEXT_ERROR_CODE", {
363
+ value: "E979",
364
+ enumerable: false,
365
+ configurable: true
366
+ });
367
+ }
635
368
  }
636
- return sanitized;
637
- })();
638
- const handleSignOut = async ()=>{
639
- await (0,next_auth_react.signOut)({
640
- callbackUrl: '/'
641
- });
642
- };
643
- return /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
644
- className: "semiont-user-panel",
645
- children: [
646
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("h3", {
647
- className: "semiont-user-panel__title",
648
- children: t('account')
649
- }),
650
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
651
- className: "space-y-4",
652
- children: [
653
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
654
- className: "flex items-center gap-3",
655
- children: [
656
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)(api_image["default"], {
657
- src: profileImageUrl,
658
- alt: t('profileAlt', {
659
- name: displayName || t('user')
660
- }),
661
- width: 48,
662
- height: 48,
663
- className: "w-12 h-12 rounded-full object-cover",
664
- onError: ()=>setImageError(true),
665
- unoptimized: profileImageUrl === FALLBACK_AVATAR,
666
- sizes: "48px",
667
- quality: 85
668
- }),
669
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
670
- className: "flex-1 min-w-0",
671
- children: [
672
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
673
- className: "semiont-panel-text",
674
- children: displayName || t('user')
675
- }),
676
- userDomain && /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
677
- className: "semiont-panel-text-secondary",
678
- children: [
679
- "@",
680
- userDomain
681
- ]
682
- })
683
- ]
684
- })
685
- ]
686
- }),
687
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
688
- children: [
689
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("label", {
690
- className: "semiont-panel-label",
691
- children: t('session')
692
- }),
693
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
694
- className: "semiont-session-box",
695
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
696
- className: "semiont-panel-hint",
697
- children: t('expiresIn', {
698
- time: sessionTimeFormatted
699
- })
700
- })
701
- })
702
- ]
703
- }),
704
- (isAdmin || isModerator) && /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
705
- children: [
706
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("label", {
707
- className: "semiont-panel-label",
708
- children: t('privileges')
709
- }),
710
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
711
- className: "space-y-1",
712
- children: [
713
- isAdmin && /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
714
- className: "semiont-privilege-badge semiont-privilege-badge--admin",
715
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("span", {
716
- className: "semiont-privilege-text",
717
- children: t('administrator')
718
- })
719
- }),
720
- isModerator && /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
721
- className: "semiont-privilege-badge semiont-privilege-badge--moderator",
722
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("span", {
723
- className: "semiont-privilege-text",
724
- children: t('moderator')
725
- })
726
- })
727
- ]
728
- })
729
- ]
730
- }),
731
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
732
- className: "semiont-panel-divider",
733
- children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("button", {
734
- onClick: handleSignOut,
735
- className: "semiont-signout-button",
736
- children: t('signOut')
737
- })
738
- })
739
- ]
740
- })
741
- ]
742
- });
743
- }
744
-
745
- // EXTERNAL MODULE: ../../node_modules/use-intl/dist/esm/production/react.js + 18 modules
746
- var production_react = __webpack_require__(23211);
747
- // EXTERNAL MODULE: ./src/i18n/routing.ts
748
- var routing = __webpack_require__(99704);
749
- ;// __barrel_optimize__?names=COMMON_PANELS!=!../../packages/react-ui/dist/index.mjs
750
-
751
-
752
- ;// ./src/components/toolbar/ToolbarPanels.tsx
753
- /* __next_internal_client_entry_do_not_use__ ToolbarPanels auto */
754
-
755
-
756
-
757
-
758
-
759
-
760
- /**
761
- * Renders the toolbar panel container with common panels (user, settings)
762
- * and any context-specific panels passed as children.
763
- *
764
- * Settings changes are handled via GlobalSettingsEventBus - no callbacks needed.
765
- *
766
- * @example
767
- * // Simple context (compose, discover, moderate, admin pages)
768
- * <ToolbarPanels
769
- * activePanel={activePanel}
770
- * theme={theme}
771
- * showLineNumbers={showLineNumbers}
772
- * />
773
- *
774
- * @example
775
- * // Document context with custom panels
776
- * <ToolbarPanels
777
- * activePanel={activePanel}
778
- * theme={theme}
779
- * showLineNumbers={showLineNumbers}
780
- * >
781
- * {activePanel === 'annotations' && <UnifiedAnnotationsPanel ... />}
782
- * {activePanel === 'history' && <AnnotationHistory ... />}
783
- * {activePanel === 'info' && <ResourceInfoPanel ... />}
784
- * {activePanel === 'collaboration' && <CollaborationPanel ... />}
785
- * {activePanel === 'jsonld' && <JsonLdPanel ... />}
786
- * </ToolbarPanels>
787
- */ function ToolbarPanels({ activePanel, theme, showLineNumbers, hoverDelayMs, children }) {
788
- const locale = (0,production_react/* useLocale */.Ym)();
789
- const router = (0,routing/* useRouter */.rd)();
790
- const pathname = (0,routing/* usePathname */.a8)();
791
- const [isPending, startTransition] = (0,react.useTransition)();
792
- // Panel width management with localStorage persistence
793
- const { width, setWidth, minWidth, maxWidth } = (0,dist.usePanelWidth)();
794
- // Handle locale change events
795
- const handleLocaleChanged = (0,react.useCallback)(({ locale: newLocale })=>{
796
- if (!pathname) return;
797
- startTransition(()=>{
798
- // The router from @/i18n/routing is locale-aware and will handle the locale prefix
799
- router.replace(pathname, {
800
- locale: newLocale
801
- });
802
- });
803
- }, [
804
- pathname,
805
- router,
806
- startTransition
807
- ]);
808
- // Subscribe to locale change events
809
- (0,dist.useEventSubscriptions)({
810
- 'settings:locale-changed': handleLocaleChanged
811
- });
812
- // Don't render container if no panel is active
813
- if (!activePanel) {
814
- return null;
815
369
  }
816
- // In simple context (no children), only user and settings panels are valid.
817
- // If a resource-specific panel is still active from a previous route, hide the container.
818
- if (!children && !dist.COMMON_PANELS.includes(activePanel)) {
819
- return null;
820
- }
821
- return /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
822
- className: "semiont-toolbar-panels",
823
- style: {
824
- width: `${width}px`,
825
- position: 'relative'
826
- },
827
- children: [
828
- /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist.ResizeHandle, {
829
- onResize: setWidth,
830
- minWidth: minWidth,
831
- maxWidth: maxWidth,
832
- position: "left",
833
- ariaLabel: "Resize right panel"
834
- }),
835
- /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
836
- className: "semiont-toolbar-panels__content",
837
- children: [
838
- children,
839
- activePanel === 'user' && /*#__PURE__*/ (0,react_jsx_runtime.jsx)(UserPanel, {}),
840
- activePanel === 'settings' && /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist.SettingsPanel, {
841
- showLineNumbers: showLineNumbers,
842
- theme: theme,
843
- hoverDelayMs: hoverDelayMs,
844
- locale: locale,
845
- isPendingLocaleChange: isPending
846
- })
847
- ]
848
- })
849
- ]
850
- });
851
- }
852
-
853
-
854
- /***/ }),
855
-
856
- /***/ 55511:
857
- /***/ ((module) => {
858
-
859
- "use strict";
860
- module.exports = require("crypto");
861
-
862
- /***/ }),
863
-
864
- /***/ 56677:
865
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
866
-
867
- "use strict";
868
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
869
- /* harmony export */ C$z: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useEventSubscriptions),
870
- /* harmony export */ DPo: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useTheme),
871
- /* harmony export */ cvF: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useLineNumbers),
872
- /* harmony export */ ySJ: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.usePanelBrowse)
873
- /* harmony export */ });
874
- /* harmony import */ var _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69792);
875
-
876
-
877
-
878
- /***/ }),
879
-
880
- /***/ 59406:
881
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
882
-
883
- "use strict";
884
- __webpack_require__.r(__webpack_exports__);
885
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
886
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
887
- /* harmony export */ });
888
- /* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30274);
889
- /* 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__);
890
- // This file is generated by the Webpack next-flight-loader.
891
-
892
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
893
- 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."); },
894
- "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/layout.tsx",
895
- "default",
896
- ));
897
-
898
-
899
- /***/ }),
900
-
901
- /***/ 60187:
902
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
903
-
904
- "use strict";
905
- __webpack_require__.r(__webpack_exports__);
906
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
907
- /* harmony export */ __next_app__: () => (/* binding */ __next_app__),
908
- /* harmony export */ handler: () => (/* binding */ handler),
909
- /* harmony export */ routeModule: () => (/* binding */ routeModule)
910
- /* harmony export */ });
911
- /* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80666);
912
- /* 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__);
913
- /* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51421);
914
- /* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4675);
915
- /* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29796);
916
- /* 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__);
917
- /* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54046);
918
- /* 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__);
919
- /* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(74928);
920
- /* 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__);
921
- /* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19727);
922
- /* harmony import */ var next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(24268);
923
- /* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(60402);
924
- /* 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__);
925
- /* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(22040);
926
- /* 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__);
927
- /* harmony import */ var next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27186);
928
- /* 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__);
929
- /* harmony import */ var next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(49228);
930
- /* 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__);
931
- /* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(97485);
932
- /* 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__);
933
- /* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(261);
934
- /* 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__);
935
- /* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(80885);
936
- /* 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__);
937
- /* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(7162);
938
- /* 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__);
939
- /* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(26713);
940
- /* 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__);
941
- /* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(70972);
942
- /* 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__);
943
- /* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(57341);
944
- /* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__);
945
- /* harmony import */ var next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(95105);
946
- /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(38038);
947
- /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__);
948
- /* harmony import */ var next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(29898);
949
- /* harmony import */ var next_dist_server_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(62918);
950
- /* 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__);
951
- /* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(98798);
952
- /* 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__);
953
- /* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(86439);
954
- /* 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__);
955
- /* harmony import */ var next_dist_shared_lib_size_limit__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(77068);
956
- /* 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__);
957
- /* harmony import */ var next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(31214);
958
- /* 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__);
959
- /* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(35402);
960
- /* 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__);
961
- /* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(29059);
962
- /* 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__);
963
- /* harmony import */ var next_dist_shared_lib_invariant_error__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(70722);
964
- /* 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__);
965
- /* harmony import */ var next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(31182);
966
- /* harmony import */ var next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_scheduler__WEBPACK_IMPORTED_MODULE_30__);
967
- /* harmony import */ var next_dist_shared_lib_router_utils_interception_routes__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(43954);
968
- /* 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__);
969
- /* harmony import */ var next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(17891);
970
- /* 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__);
971
- /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
972
- /* 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__]
973
- /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
974
- const module0 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 95235));
975
- const module1 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 25195));
976
- const module2 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
977
- const module3 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 72353));
978
- const module4 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 4253, 23));
979
- const module5 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 49184, 23));
980
- const module6 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 57149));
981
- const module7 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
982
- const module8 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 28310));
983
- const module9 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 59406));
984
- const module10 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
985
- const module11 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 56357));
986
- const page12 = () => Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 24490));
987
-
988
-
989
-
990
-
991
-
992
-
993
-
994
-
995
-
996
-
997
-
998
-
999
-
1000
-
1001
-
1002
-
1003
-
1004
-
1005
-
1006
-
1007
-
1008
-
1009
-
1010
-
1011
-
1012
-
1013
-
1014
- // We inject the tree and pages here so that we can use them in the route
1015
- // module.
1016
- const tree = {
1017
- children: [
1018
- '',
1019
- {
1020
- children: [
1021
- '[locale]',
1022
- {
1023
- children: [
1024
- 'moderate',
1025
- {
1026
- children: [
1027
- 'linked-data',
1028
- {
1029
- children: ['__PAGE__', {}, {
1030
- page: [page12, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/linked-data/page.tsx"],
1031
-
1032
- }]
1033
- },
1034
- {
1035
- 'global-error': [module11, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
1036
-
1037
- },
1038
- []
1039
- ]
1040
- },
1041
- {
1042
- 'layout': [module9, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/layout.tsx"],
1043
- 'global-error': [module10, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
1044
-
1045
- },
1046
- []
1047
- ]
1048
- },
1049
- {
1050
- 'layout': [module6, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/layout.tsx"],
1051
- 'global-error': [module7, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
1052
- 'not-found': [module8, "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/not-found.tsx"],
1053
-
1054
- },
1055
- ["_not-found","_global-error","api"]
1056
- ]
1057
- },
1058
- {
1059
- 'layout': [module0, "/home/runner/work/semiont/semiont/apps/frontend/src/app/layout.tsx"],
1060
- 'error': [module1, "/home/runner/work/semiont/semiont/apps/frontend/src/app/error.tsx"],
1061
- 'global-error': [module2, "/home/runner/work/semiont/semiont/apps/frontend/src/app/global-error.tsx"],
1062
- 'not-found': [module3, "/home/runner/work/semiont/semiont/apps/frontend/src/app/not-found.tsx"],
1063
- 'forbidden': [module4, "next/dist/client/components/builtin/forbidden.js"],
1064
- 'unauthorized': [module5, "next/dist/client/components/builtin/unauthorized.js"],
1065
-
1066
- },
1067
- []
1068
- ]
1069
- }.children;
1070
- const __next_app_require__ = __webpack_require__
1071
- const __next_app_load_chunk__ = () => Promise.resolve()
1072
- const __next_app__ = {
1073
- require: __next_app_require__,
1074
- loadChunk: __next_app_load_chunk__
1075
- };
1076
-
1077
-
1078
-
1079
-
1080
-
1081
-
1082
-
1083
- // Create and export the route module that will be consumed.
1084
- const routeModule = new next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({
1085
- definition: {
1086
- kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,
1087
- page: "/[locale]/moderate/linked-data/page",
1088
- pathname: "/[locale]/moderate/linked-data",
1089
- // The following aren't used in production.
1090
- bundlePath: '',
1091
- filename: '',
1092
- appPaths: []
1093
- },
1094
- userland: {
1095
- loaderTree: tree
1096
- },
1097
- distDir: ".next" || 0,
1098
- relativeProjectDir: false || ''
1099
- });
1100
- function buildDynamicSegmentPlaceholder(param) {
1101
- const { repeat, optional } = (0,next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__.getParamProperties)(param.paramType);
1102
- if (optional) {
1103
- return `[[...${param.paramName}]]`;
1104
- }
1105
- if (repeat) {
1106
- return `[...${param.paramName}]`;
1107
- }
1108
- return `[${param.paramName}]`;
1109
- }
1110
- /**
1111
- * Builds the cache key for the most complete prerenderable shell we can derive
1112
- * from the shell that matched this request. Only params that can still be
1113
- * filled by `generateStaticParams` are substituted; fully dynamic params stay
1114
- * as placeholders so a request like `/c/foo` can complete `/[one]/[two]` into
1115
- * `/c/[two]` rather than `/c/foo`.
1116
- */ function buildCompletedShellCacheKey(fallbackPathname, remainingPrerenderableParams, params) {
1117
- const prerenderableParamsByName = new Map(remainingPrerenderableParams.map((param)=>[
1118
- param.paramName,
1119
- param
1120
- ]));
1121
- return fallbackPathname.split('/').map((segment)=>{
1122
- const segmentParam = (0,next_dist_shared_lib_router_utils_get_segment_param__WEBPACK_IMPORTED_MODULE_32__.getSegmentParam)(segment);
1123
- if (!segmentParam) {
1124
- return segment;
1125
- }
1126
- const remainingParam = prerenderableParamsByName.get(segmentParam.paramName);
1127
- if (!remainingParam) {
1128
- return segment;
1129
- }
1130
- const value = params == null ? void 0 : params[remainingParam.paramName];
1131
- if (!value) {
1132
- return segment;
1133
- }
1134
- const encodedValue = Array.isArray(value) ? value.map((item)=>encodeURIComponent(item)).join('/') : encodeURIComponent(value);
1135
- return segment.replace(buildDynamicSegmentPlaceholder(remainingParam), encodedValue);
1136
- }).join('/') || '/';
1137
- }
1138
- async function handler(req, res, ctx) {
1139
- var _this, _prerenderManifest_routes_resolvedPathname, _prerenderInfo_fallbackRootParams, _prerenderInfo_fallbackRouteParams;
1140
- if (ctx.requestMeta) {
1141
- (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.setRequestMeta)(req, ctx.requestMeta);
1142
- }
1143
- if (routeModule.isDev) {
1144
- (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());
1145
- }
1146
- const isMinimalMode = Boolean((0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'minimalMode'));
1147
- let srcPage = "/[locale]/moderate/linked-data/page";
1148
- // turbopack doesn't normalize `/index` in the page name
1149
- // so we need to to process dynamic routes properly
1150
- // TODO: fix turbopack providing differing value from webpack
1151
- if (false) {} else if (srcPage === '/index') {
1152
- // we always normalize /index specifically
1153
- srcPage = '/';
1154
- }
1155
- const multiZoneDraftMode = false;
1156
- const prepareResult = await routeModule.prepare(req, res, {
1157
- srcPage,
1158
- multiZoneDraftMode
1159
- });
1160
- if (!prepareResult) {
1161
- res.statusCode = 400;
1162
- res.end('Bad Request');
1163
- ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
1164
- return null;
1165
- }
1166
- const { buildId, query, params, pageIsDynamic, buildManifest, nextFontManifest, reactLoadableManifest, serverActionsManifest, clientReferenceManifest, subresourceIntegrityManifest, prerenderManifest, isDraftMode, resolvedPathname, revalidateOnlyGenerated, routerServerContext, nextConfig, parsedUrl, interceptionRoutePatterns, deploymentId, clientAssetToken } = prepareResult;
1167
- const normalizedSrcPage = (0,next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__.normalizeAppPath)(srcPage);
1168
- let { isOnDemandRevalidate } = prepareResult;
1169
- // We use the resolvedPathname instead of the parsedUrl.pathname because it
1170
- // is not rewritten as resolvedPathname is. This will ensure that the correct
1171
- // prerender info is used instead of using the original pathname as the
1172
- // source. If however PPR is enabled and cacheComponents is disabled, we
1173
- // treat the pathname as dynamic. Currently, there's a bug in the PPR
1174
- // implementation that incorrectly leaves %%drp placeholders in the output of
1175
- // parallel routes. This is addressed with cacheComponents.
1176
- 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);
1177
- const prerenderInfo = (prerenderMatch == null ? void 0 : prerenderMatch.route) ?? null;
1178
- const isPrerendered = !!prerenderManifest.routes[resolvedPathname];
1179
- const userAgent = req.headers['user-agent'] || '';
1180
- const botType = (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__.getBotType)(userAgent);
1181
- const isHtmlBot = (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.isHtmlBotRequest)(req);
1182
- /**
1183
- * If true, this indicates that the request being made is for an app
1184
- * prefetch request.
1185
- */ 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'
1186
- ;
1187
- // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later
1188
- 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]);
1189
- const isPossibleServerAction = (0,next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__.getIsPossibleServerAction)(req);
1190
- /**
1191
- * If the route being rendered is an app page, and the ppr feature has been
1192
- * enabled, then the given route _could_ support PPR.
1193
- */ const couldSupportPPR = (0,next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__.checkIsAppPPREnabled)(nextConfig.experimental.ppr);
1194
- // Stash postponed state for server actions when in minimal mode.
1195
- // We extract it here so the RDC is available for the re-render after the action completes.
1196
- const resumeStateLengthHeader = req.headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_RESUME_STATE_LENGTH_HEADER];
1197
- if (!(0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed') && isMinimalMode && couldSupportPPR && isPossibleServerAction && resumeStateLengthHeader && typeof resumeStateLengthHeader === 'string') {
1198
- const stateLength = parseInt(resumeStateLengthHeader, 10);
1199
- const { maxPostponedStateSize, maxPostponedStateSizeBytes } = (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getMaxPostponedStateSize)(nextConfig.experimental.maxPostponedStateSize);
1200
- if (!isNaN(stateLength) && stateLength > 0) {
1201
- var _nextConfig_experimental_serverActions;
1202
- if (stateLength > maxPostponedStateSizeBytes) {
1203
- res.statusCode = 413;
1204
- res.end((0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getPostponedStateExceededErrorMessage)(maxPostponedStateSize));
1205
- ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
1206
- return null;
1207
- }
1208
- // Calculate max total body size to prevent buffering excessively large
1209
- // payloads before the action handler checks. We use stateLength (not
1210
- // maxPostponedStateSizeBytes) so the postponed state doesn't eat into
1211
- // the action body budget - it's already validated above.
1212
- const defaultActionBodySizeLimit = '1 MB';
1213
- const actionBodySizeLimit = ((_nextConfig_experimental_serverActions = nextConfig.experimental.serverActions) == null ? void 0 : _nextConfig_experimental_serverActions.bodySizeLimit) ?? defaultActionBodySizeLimit;
1214
- const actionBodySizeLimitBytes = actionBodySizeLimit !== defaultActionBodySizeLimit ? (__webpack_require__(32683).parse)(actionBodySizeLimit) : 1024 * 1024 // 1 MB
1215
- ;
1216
- const maxTotalBodySize = stateLength + actionBodySizeLimitBytes;
1217
- const fullBody = await (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.readBodyWithSizeLimit)(req, maxTotalBodySize);
1218
- if (fullBody === null) {
1219
- res.statusCode = 413;
1220
- 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`);
1221
- ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
1222
- return null;
1223
- }
1224
- if (fullBody.length >= stateLength) {
1225
- // Extract postponed state from the beginning
1226
- const postponedState = fullBody.subarray(0, stateLength).toString('utf8');
1227
- (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'postponed', postponedState);
1228
- // Store the remaining action body for the action handler
1229
- const actionBody = fullBody.subarray(stateLength);
1230
- (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'actionBody', actionBody);
1231
- } else {
1232
- throw Object.defineProperty(new Error(`invariant: expected ${stateLength} bytes of postponed state but only received ${fullBody.length} bytes`), "__NEXT_ERROR_CODE", {
1233
- value: "E979",
1234
- enumerable: false,
1235
- configurable: true
1236
- });
1237
- }
1238
- }
1239
- }
1240
- 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') {
1241
- const { maxPostponedStateSize, maxPostponedStateSizeBytes } = (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getMaxPostponedStateSize)(nextConfig.experimental.maxPostponedStateSize);
1242
- // Decode the postponed state from the request body, it will come as
1243
- // an array of buffers, so collect them and then concat them to form
1244
- // the string.
1245
- const body = await (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.readBodyWithSizeLimit)(req, maxPostponedStateSizeBytes);
1246
- if (body === null) {
1247
- res.statusCode = 413;
1248
- res.end((0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getPostponedStateExceededErrorMessage)(maxPostponedStateSize));
1249
- ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
1250
- return null;
1251
- }
1252
- const postponed = body.toString('utf8');
1253
- (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'postponed', postponed);
370
+ 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') {
371
+ const { maxPostponedStateSize, maxPostponedStateSizeBytes } = (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getMaxPostponedStateSize)(nextConfig.experimental.maxPostponedStateSize);
372
+ // Decode the postponed state from the request body, it will come as
373
+ // an array of buffers, so collect them and then concat them to form
374
+ // the string.
375
+ const body = await (0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.readBodyWithSizeLimit)(req, maxPostponedStateSizeBytes);
376
+ if (body === null) {
377
+ res.statusCode = 413;
378
+ res.end((0,next_dist_server_lib_postponed_request_body__WEBPACK_IMPORTED_MODULE_26__.getPostponedStateExceededErrorMessage)(maxPostponedStateSize));
379
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
380
+ return null;
381
+ }
382
+ const postponed = body.toString('utf8');
383
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.addRequestMeta)(req, 'postponed', postponed);
1254
384
  }
1255
385
  // When enabled, this will allow the use of the `?__nextppronly` query to
1256
386
  // enable debugging of the static shell.
@@ -2229,63 +1359,834 @@ async function handler(req, res, ctx) {
2229
1359
  }
2230
1360
  }, handleResponse), undefined, !isWrappedByNextServer);
2231
1361
  }
2232
- } catch (err) {
2233
- if (!(err instanceof next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__.NoFallbackError)) {
2234
- const silenceLog = false;
2235
- await routeModule.onRequestError(req, err, {
2236
- routerKind: 'App Router',
2237
- routePath: srcPage,
2238
- routeType: 'render',
2239
- revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__/* .getRevalidateReason */ .c)({
2240
- isStaticGeneration: isSSG,
2241
- isOnDemandRevalidate
2242
- })
2243
- }, silenceLog, routerServerContext);
1362
+ } catch (err) {
1363
+ if (!(err instanceof next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__.NoFallbackError)) {
1364
+ const silenceLog = false;
1365
+ await routeModule.onRequestError(req, err, {
1366
+ routerKind: 'App Router',
1367
+ routePath: srcPage,
1368
+ routeType: 'render',
1369
+ revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__/* .getRevalidateReason */ .c)({
1370
+ isStaticGeneration: isSSG,
1371
+ isOnDemandRevalidate
1372
+ })
1373
+ }, silenceLog, routerServerContext);
1374
+ }
1375
+ // rethrow so that we can handle serving error page
1376
+ throw err;
1377
+ }
1378
+ }
1379
+ // TODO: omit this from production builds, only test builds should include it
1380
+ /**
1381
+ * Creates a readable stream that emits a PPR boundary sentinel.
1382
+ *
1383
+ * @returns A readable stream that emits a PPR boundary sentinel.
1384
+ */ function createPPRBoundarySentinel() {
1385
+ return new ReadableStream({
1386
+ start (controller) {
1387
+ controller.enqueue(new TextEncoder().encode('<!-- PPR_BOUNDARY_SENTINEL -->'));
1388
+ controller.close();
1389
+ }
1390
+ });
1391
+ }
1392
+
1393
+ //# sourceMappingURL=app-page.js.map
1394
+
1395
+
1396
+ /***/ }),
1397
+
1398
+ /***/ 17891:
1399
+ /***/ ((module) => {
1400
+
1401
+ "use strict";
1402
+ module.exports = require("next/dist/shared/lib/router/utils/get-segment-param");
1403
+
1404
+ /***/ }),
1405
+
1406
+ /***/ 19121:
1407
+ /***/ ((module) => {
1408
+
1409
+ "use strict";
1410
+ module.exports = require("next/dist/server/app-render/action-async-storage.external.js");
1411
+
1412
+ /***/ }),
1413
+
1414
+ /***/ 19771:
1415
+ /***/ ((module) => {
1416
+
1417
+ "use strict";
1418
+ module.exports = require("process");
1419
+
1420
+ /***/ }),
1421
+
1422
+ /***/ 20400:
1423
+ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
1424
+
1425
+ Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 33898));
1426
+
1427
+
1428
+ /***/ }),
1429
+
1430
+ /***/ 24490:
1431
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1432
+
1433
+ "use strict";
1434
+ __webpack_require__.r(__webpack_exports__);
1435
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1436
+ /* harmony export */ "default": () => (/* binding */ LinkedDataPage)
1437
+ /* harmony export */ });
1438
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2474);
1439
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
1440
+ /* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32974);
1441
+
1442
+
1443
+ // Authentication is handled by middleware (proxy.ts)
1444
+ // Only authenticated moderators/admins can reach this page
1445
+ function LinkedDataPage() {
1446
+ return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_client__WEBPACK_IMPORTED_MODULE_1__["default"], {});
1447
+ }
1448
+
1449
+
1450
+ /***/ }),
1451
+
1452
+ /***/ 25197:
1453
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1454
+
1455
+ "use strict";
1456
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1457
+ /* harmony export */ C$z: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useEventSubscriptions),
1458
+ /* harmony export */ TbX: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.SimpleNavigation)
1459
+ /* harmony export */ });
1460
+ /* harmony import */ var _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41513);
1461
+
1462
+
1463
+
1464
+ /***/ }),
1465
+
1466
+ /***/ 25888:
1467
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1468
+
1469
+ "use strict";
1470
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1471
+ /* harmony export */ Ef3: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.LeftSidebar),
1472
+ /* harmony export */ ffs: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.AuthTokenProvider),
1473
+ /* harmony export */ pqI: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.ApiClientProvider),
1474
+ /* harmony export */ wi6: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.Footer)
1475
+ /* harmony export */ });
1476
+ /* harmony import */ var _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41513);
1477
+
1478
+
1479
+
1480
+ /***/ }),
1481
+
1482
+ /***/ 26713:
1483
+ /***/ ((module) => {
1484
+
1485
+ "use strict";
1486
+ module.exports = require("next/dist/shared/lib/router/utils/is-bot");
1487
+
1488
+ /***/ }),
1489
+
1490
+ /***/ 28354:
1491
+ /***/ ((module) => {
1492
+
1493
+ "use strict";
1494
+ module.exports = require("util");
1495
+
1496
+ /***/ }),
1497
+
1498
+ /***/ 29294:
1499
+ /***/ ((module) => {
1500
+
1501
+ "use strict";
1502
+ module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
1503
+
1504
+ /***/ }),
1505
+
1506
+ /***/ 32037:
1507
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1508
+
1509
+ "use strict";
1510
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1511
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
1512
+ /* harmony export */ });
1513
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71277);
1514
+
1515
+ function ArrowsRightLeftIcon({ title, titleId, ...props }, svgRef) {
1516
+ return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({
1517
+ xmlns: "http://www.w3.org/2000/svg",
1518
+ fill: "none",
1519
+ viewBox: "0 0 24 24",
1520
+ strokeWidth: 1.5,
1521
+ stroke: "currentColor",
1522
+ "aria-hidden": "true",
1523
+ "data-slot": "icon",
1524
+ ref: svgRef,
1525
+ "aria-labelledby": titleId
1526
+ }, props), title ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("title", {
1527
+ id: titleId
1528
+ }, title) : null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
1529
+ strokeLinecap: "round",
1530
+ strokeLinejoin: "round",
1531
+ d: "M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"
1532
+ }));
1533
+ }
1534
+ const ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ArrowsRightLeftIcon);
1535
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ForwardRef);
1536
+
1537
+
1538
+ /***/ }),
1539
+
1540
+ /***/ 32974:
1541
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1542
+
1543
+ "use strict";
1544
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1545
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1546
+ /* harmony export */ });
1547
+ /* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30274);
1548
+ /* 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__);
1549
+ // This file is generated by the Webpack next-flight-loader.
1550
+
1551
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
1552
+ function() { throw new Error("Attempted to call the default export of \"/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/linked-data/client.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."); },
1553
+ "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/linked-data/client.tsx",
1554
+ "default",
1555
+ ));
1556
+
1557
+
1558
+ /***/ }),
1559
+
1560
+ /***/ 33873:
1561
+ /***/ ((module) => {
1562
+
1563
+ "use strict";
1564
+ module.exports = require("path");
1565
+
1566
+ /***/ }),
1567
+
1568
+ /***/ 33898:
1569
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1570
+
1571
+ "use strict";
1572
+ // ESM COMPAT FLAG
1573
+ __webpack_require__.r(__webpack_exports__);
1574
+
1575
+ // EXPORTS
1576
+ __webpack_require__.d(__webpack_exports__, {
1577
+ "default": () => (/* binding */ ModerateLayout)
1578
+ });
1579
+
1580
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js
1581
+ var react_jsx_runtime = __webpack_require__(92692);
1582
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
1583
+ var react = __webpack_require__(71277);
1584
+ // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
1585
+ var react_client = __webpack_require__(56305);
1586
+ // EXTERNAL MODULE: __barrel_optimize__?names=ApiClientProvider,AuthTokenProvider,Footer,LeftSidebar!=!../../packages/react-ui/dist/index.mjs
1587
+ var dist = __webpack_require__(25888);
1588
+ // EXTERNAL MODULE: ./src/i18n/routing.ts
1589
+ var routing = __webpack_require__(99704);
1590
+ // EXTERNAL MODULE: __barrel_optimize__?names=SimpleNavigation,useEventSubscriptions!=!../../packages/react-ui/dist/index.mjs
1591
+ var react_ui_dist = __webpack_require__(25197);
1592
+ ;// ../../node_modules/@heroicons/react/24/outline/esm/ClockIcon.js
1593
+
1594
+ function ClockIcon({ title, titleId, ...props }, svgRef) {
1595
+ return /*#__PURE__*/ react.createElement("svg", Object.assign({
1596
+ xmlns: "http://www.w3.org/2000/svg",
1597
+ fill: "none",
1598
+ viewBox: "0 0 24 24",
1599
+ strokeWidth: 1.5,
1600
+ stroke: "currentColor",
1601
+ "aria-hidden": "true",
1602
+ "data-slot": "icon",
1603
+ ref: svgRef,
1604
+ "aria-labelledby": titleId
1605
+ }, props), title ? /*#__PURE__*/ react.createElement("title", {
1606
+ id: titleId
1607
+ }, title) : null, /*#__PURE__*/ react.createElement("path", {
1608
+ strokeLinecap: "round",
1609
+ strokeLinejoin: "round",
1610
+ d: "M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
1611
+ }));
1612
+ }
1613
+ const ForwardRef = /*#__PURE__*/ react.forwardRef(ClockIcon);
1614
+ /* harmony default export */ const esm_ClockIcon = (ForwardRef);
1615
+
1616
+ ;// ../../node_modules/@heroicons/react/24/outline/esm/TagIcon.js
1617
+
1618
+ function TagIcon({ title, titleId, ...props }, svgRef) {
1619
+ return /*#__PURE__*/ react.createElement("svg", Object.assign({
1620
+ xmlns: "http://www.w3.org/2000/svg",
1621
+ fill: "none",
1622
+ viewBox: "0 0 24 24",
1623
+ strokeWidth: 1.5,
1624
+ stroke: "currentColor",
1625
+ "aria-hidden": "true",
1626
+ "data-slot": "icon",
1627
+ ref: svgRef,
1628
+ "aria-labelledby": titleId
1629
+ }, props), title ? /*#__PURE__*/ react.createElement("title", {
1630
+ id: titleId
1631
+ }, title) : null, /*#__PURE__*/ react.createElement("path", {
1632
+ strokeLinecap: "round",
1633
+ strokeLinejoin: "round",
1634
+ 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"
1635
+ }), /*#__PURE__*/ react.createElement("path", {
1636
+ strokeLinecap: "round",
1637
+ strokeLinejoin: "round",
1638
+ d: "M6 6h.008v.008H6V6Z"
1639
+ }));
1640
+ }
1641
+ const TagIcon_ForwardRef = /*#__PURE__*/ react.forwardRef(TagIcon);
1642
+ /* harmony default export */ const esm_TagIcon = (TagIcon_ForwardRef);
1643
+
1644
+ ;// ../../node_modules/@heroicons/react/24/outline/esm/BookOpenIcon.js
1645
+
1646
+ function BookOpenIcon({ title, titleId, ...props }, svgRef) {
1647
+ return /*#__PURE__*/ react.createElement("svg", Object.assign({
1648
+ xmlns: "http://www.w3.org/2000/svg",
1649
+ fill: "none",
1650
+ viewBox: "0 0 24 24",
1651
+ strokeWidth: 1.5,
1652
+ stroke: "currentColor",
1653
+ "aria-hidden": "true",
1654
+ "data-slot": "icon",
1655
+ ref: svgRef,
1656
+ "aria-labelledby": titleId
1657
+ }, props), title ? /*#__PURE__*/ react.createElement("title", {
1658
+ id: titleId
1659
+ }, title) : null, /*#__PURE__*/ react.createElement("path", {
1660
+ strokeLinecap: "round",
1661
+ strokeLinejoin: "round",
1662
+ 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"
1663
+ }));
1664
+ }
1665
+ const BookOpenIcon_ForwardRef = /*#__PURE__*/ react.forwardRef(BookOpenIcon);
1666
+ /* harmony default export */ const esm_BookOpenIcon = (BookOpenIcon_ForwardRef);
1667
+
1668
+ // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/ArrowsRightLeftIcon.js
1669
+ var ArrowsRightLeftIcon = __webpack_require__(32037);
1670
+ // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/ChevronLeftIcon.js
1671
+ var ChevronLeftIcon = __webpack_require__(71062);
1672
+ // EXTERNAL MODULE: ../../node_modules/@heroicons/react/24/outline/esm/Bars3Icon.js
1673
+ var Bars3Icon = __webpack_require__(67255);
1674
+ ;// ./src/components/moderation/ModerationNavigation.tsx
1675
+ /* __next_internal_client_entry_do_not_use__ ModerationNavigation auto */
1676
+
1677
+
1678
+
1679
+
1680
+
1681
+
1682
+ function ModerationNavigation({ isCollapsed, toggleCollapsed, navigationMenu }) {
1683
+ const t = (0,react_client/* useTranslations */.c)('Moderation');
1684
+ const tSidebar = (0,react_client/* useTranslations */.c)('Sidebar');
1685
+ const pathname = (0,routing/* usePathname */.a8)();
1686
+ // Handle sidebar toggle events
1687
+ const handleSidebarToggle = (0,react.useCallback)(()=>{
1688
+ toggleCollapsed();
1689
+ }, [
1690
+ toggleCollapsed
1691
+ ]);
1692
+ // Subscribe to sidebar toggle events
1693
+ (0,react_ui_dist/* useEventSubscriptions */.C$z)({
1694
+ 'browse:sidebar-toggle': handleSidebarToggle
1695
+ });
1696
+ const navigation = [
1697
+ {
1698
+ name: t('recentResources'),
1699
+ href: '/moderate/recent',
1700
+ icon: esm_ClockIcon,
1701
+ description: t('recentResourcesDescription')
1702
+ },
1703
+ {
1704
+ name: t('entityTags'),
1705
+ href: '/moderate/entity-tags',
1706
+ icon: esm_TagIcon,
1707
+ description: t('entityTagsDescription')
1708
+ },
1709
+ {
1710
+ name: t('tagSchemas'),
1711
+ href: '/moderate/tag-schemas',
1712
+ icon: esm_BookOpenIcon,
1713
+ description: t('tagSchemasDescription')
1714
+ },
1715
+ {
1716
+ name: t('linkedData'),
1717
+ href: '/moderate/linked-data',
1718
+ icon: ArrowsRightLeftIcon/* default */.A,
1719
+ description: t('linkedDataDescription')
1720
+ }
1721
+ ];
1722
+ return /*#__PURE__*/ (0,react_jsx_runtime.jsx)(react_ui_dist/* SimpleNavigation */.TbX, {
1723
+ title: t('title'),
1724
+ items: navigation,
1725
+ currentPath: pathname,
1726
+ LinkComponent: routing/* Link */.N_,
1727
+ ...navigationMenu && {
1728
+ dropdownContent: navigationMenu
1729
+ },
1730
+ isCollapsed: isCollapsed,
1731
+ icons: {
1732
+ chevronLeft: ChevronLeftIcon/* default */.A,
1733
+ bars: Bars3Icon/* default */.A
1734
+ },
1735
+ collapseSidebarLabel: tSidebar('collapseSidebar'),
1736
+ expandSidebarLabel: tSidebar('expandSidebar')
1737
+ });
1738
+ }
1739
+
1740
+ // EXTERNAL MODULE: ./src/components/CookiePreferences.tsx
1741
+ var CookiePreferences = __webpack_require__(80386);
1742
+ // EXTERNAL MODULE: ./src/contexts/KeyboardShortcutsContext.tsx + 3 modules
1743
+ var KeyboardShortcutsContext = __webpack_require__(40953);
1744
+ // EXTERNAL MODULE: ./src/lib/routing.ts
1745
+ var lib_routing = __webpack_require__(46391);
1746
+ // EXTERNAL MODULE: ./src/hooks/useAuth.ts
1747
+ var useAuth = __webpack_require__(65159);
1748
+ // EXTERNAL MODULE: ./src/lib/env.ts
1749
+ var env = __webpack_require__(23318);
1750
+ ;// ./src/app/[locale]/moderate/layout.tsx
1751
+ /* __next_internal_client_entry_do_not_use__ default auto */
1752
+
1753
+
1754
+
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+
1761
+ // Note: Authentication is handled by middleware.ts for all moderate routes
1762
+ // This ensures centralized security and returns 404 for unauthorized users
1763
+ function ModerateLayout({ children }) {
1764
+ const t = (0,react_client/* useTranslations */.c)('Footer');
1765
+ const tNav = (0,react_client/* useTranslations */.c)('Navigation');
1766
+ const tHome = (0,react_client/* useTranslations */.c)('Home');
1767
+ const keyboardContext = (0,react.useContext)(KeyboardShortcutsContext/* KeyboardShortcutsContext */.GZ);
1768
+ const { isAuthenticated, isAdmin, isModerator, token: authToken } = (0,useAuth/* useAuth */.As)();
1769
+ // Middleware has already verified moderator/admin access
1770
+ return /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* AuthTokenProvider */.ffs, {
1771
+ token: authToken,
1772
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* ApiClientProvider */.pqI, {
1773
+ baseUrl: env/* NEXT_PUBLIC_BACKEND_URL */.xg,
1774
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
1775
+ className: "min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col",
1776
+ children: [
1777
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
1778
+ className: "flex flex-1",
1779
+ children: [
1780
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* LeftSidebar */.Ef3, {
1781
+ Link: lib_routing/* Link */.N,
1782
+ routes: lib_routing/* routes */.J,
1783
+ t: tNav,
1784
+ tHome: tHome,
1785
+ brandingLink: "/",
1786
+ collapsible: true,
1787
+ storageKey: "moderation-sidebar-collapsed",
1788
+ isAuthenticated: isAuthenticated,
1789
+ isAdmin: isAdmin,
1790
+ isModerator: isModerator,
1791
+ children: (isCollapsed, toggleCollapsed, navigationMenu)=>/*#__PURE__*/ (0,react_jsx_runtime.jsx)(ModerationNavigation, {
1792
+ isCollapsed: isCollapsed,
1793
+ toggleCollapsed: toggleCollapsed,
1794
+ navigationMenu: navigationMenu
1795
+ })
1796
+ }),
1797
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("main", {
1798
+ className: "flex-1 p-6 flex flex-col",
1799
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
1800
+ className: "max-w-7xl mx-auto flex-1 flex flex-col w-full",
1801
+ children: children
1802
+ })
1803
+ })
1804
+ ]
1805
+ }),
1806
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist/* Footer */.wi6, {
1807
+ Link: lib_routing/* Link */.N,
1808
+ routes: lib_routing/* routes */.J,
1809
+ t: t,
1810
+ CookiePreferences: CookiePreferences/* CookiePreferences */.f,
1811
+ ...keyboardContext?.openKeyboardHelp && {
1812
+ onOpenKeyboardHelp: keyboardContext.openKeyboardHelp
1813
+ }
1814
+ })
1815
+ ]
1816
+ })
1817
+ })
1818
+ });
1819
+ }
1820
+
1821
+
1822
+ /***/ }),
1823
+
1824
+ /***/ 41025:
1825
+ /***/ ((module) => {
1826
+
1827
+ "use strict";
1828
+ module.exports = require("next/dist/server/app-render/dynamic-access-async-storage.external.js");
1829
+
1830
+ /***/ }),
1831
+
1832
+ /***/ 43954:
1833
+ /***/ ((module) => {
1834
+
1835
+ "use strict";
1836
+ module.exports = require("next/dist/shared/lib/router/utils/interception-routes");
1837
+
1838
+ /***/ }),
1839
+
1840
+ /***/ 55511:
1841
+ /***/ ((module) => {
1842
+
1843
+ "use strict";
1844
+ module.exports = require("crypto");
1845
+
1846
+ /***/ }),
1847
+
1848
+ /***/ 56677:
1849
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1850
+
1851
+ "use strict";
1852
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1853
+ /* harmony export */ C$z: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useEventSubscriptions),
1854
+ /* harmony export */ DPo: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useTheme),
1855
+ /* harmony export */ cvF: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.useLineNumbers),
1856
+ /* harmony export */ ySJ: () => (/* reexport safe */ _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.usePanelBrowse)
1857
+ /* harmony export */ });
1858
+ /* harmony import */ var _home_runner_work_semiont_semiont_packages_react_ui_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41513);
1859
+
1860
+
1861
+
1862
+ /***/ }),
1863
+
1864
+ /***/ 59406:
1865
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1866
+
1867
+ "use strict";
1868
+ __webpack_require__.r(__webpack_exports__);
1869
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1870
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1871
+ /* harmony export */ });
1872
+ /* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30274);
1873
+ /* 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__);
1874
+ // This file is generated by the Webpack next-flight-loader.
1875
+
1876
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
1877
+ 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."); },
1878
+ "/home/runner/work/semiont/semiont/apps/frontend/src/app/[locale]/moderate/layout.tsx",
1879
+ "default",
1880
+ ));
1881
+
1882
+
1883
+ /***/ }),
1884
+
1885
+ /***/ 62256:
1886
+ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
1887
+
1888
+ Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 59406));
1889
+
1890
+
1891
+ /***/ }),
1892
+
1893
+ /***/ 63033:
1894
+ /***/ ((module) => {
1895
+
1896
+ "use strict";
1897
+ module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js");
1898
+
1899
+ /***/ }),
1900
+
1901
+ /***/ 70722:
1902
+ /***/ ((module) => {
1903
+
1904
+ "use strict";
1905
+ module.exports = require("next/dist/shared/lib/invariant-error");
1906
+
1907
+ /***/ }),
1908
+
1909
+ /***/ 76238:
1910
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1911
+
1912
+ "use strict";
1913
+
1914
+ // EXPORTS
1915
+ __webpack_require__.d(__webpack_exports__, {
1916
+ t: () => (/* binding */ ToolbarPanels)
1917
+ });
1918
+
1919
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js
1920
+ var react_jsx_runtime = __webpack_require__(92692);
1921
+ // EXTERNAL MODULE: ../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js
1922
+ var react = __webpack_require__(71277);
1923
+ // EXTERNAL MODULE: ../../packages/react-ui/dist/index.mjs + 26 modules
1924
+ var dist = __webpack_require__(41513);
1925
+ ;// __barrel_optimize__?names=ResizeHandle,SettingsPanel,useEventSubscriptions,usePanelWidth!=!../../packages/react-ui/dist/index.mjs
1926
+
1927
+
1928
+ // EXTERNAL MODULE: ../../node_modules/next/dist/api/image.js
1929
+ var api_image = __webpack_require__(93523);
1930
+ // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
1931
+ var react_client = __webpack_require__(56305);
1932
+ ;// __barrel_optimize__?names=formatTime,sanitizeImageURL,useApiClient,useSessionExpiry!=!../../packages/react-ui/dist/index.mjs
1933
+
1934
+
1935
+ // EXTERNAL MODULE: ./src/hooks/useAuth.ts
1936
+ var useAuth = __webpack_require__(65159);
1937
+ // EXTERNAL MODULE: ./src/contexts/AuthContext.tsx
1938
+ var AuthContext = __webpack_require__(73769);
1939
+ // EXTERNAL MODULE: ./src/i18n/routing.ts
1940
+ var routing = __webpack_require__(99704);
1941
+ ;// ./src/components/UserPanel.tsx
1942
+ /* __next_internal_client_entry_do_not_use__ UserPanel auto */
1943
+
1944
+
1945
+
1946
+
1947
+
1948
+
1949
+
1950
+ // Fallback avatar when image fails to load or is invalid
1951
+ const FALLBACK_AVATAR = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiM2QjcyODAiLz4KPHBhdGggZD0iTTE2IDE2QzE4LjIwOTEgMTYgMjAgMTQuMjA5MSAyMCAxMkMyMCA5Ljc5MDg2IDE4LjIwOTEgOCAxNiA4QzEzLjc5MDkgOCAxMiA5Ljc5MDg2IDEyIDEyQzEyIDE0LjIwOTEgMTMuNzkwOSAxNiAxNiAxNloiIGZpbGw9IiNFNUU3RUIiLz4KPHBhdGggZD0iTTI0IDI1QzI0IDIxLjY4NjMgMjAuNDE4MyAxOSAxNiAxOUMxMS41ODE3IDE5IDggMjEuNjg2MyA4IDI1IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==';
1952
+ function UserPanel() {
1953
+ const t = (0,react_client/* useTranslations */.c)('UserPanel');
1954
+ const { displayName, avatarUrl, userDomain, isAdmin, isModerator } = (0,useAuth/* useAuth */.As)();
1955
+ const { clearSession } = (0,AuthContext/* useAuthContext */.Z)();
1956
+ const apiClient = (0,dist.useApiClient)();
1957
+ const router = (0,routing/* useRouter */.rd)();
1958
+ const [imageError, setImageError] = (0,react.useState)(false);
1959
+ const { timeRemaining } = (0,dist.useSessionExpiry)();
1960
+ const sessionTimeFormatted = (0,dist.formatTime)(timeRemaining) ?? 'Unknown';
1961
+ // Sanitize and validate the profile image URL
1962
+ const profileImageUrl = (()=>{
1963
+ if (!avatarUrl || imageError) {
1964
+ return FALLBACK_AVATAR;
1965
+ }
1966
+ const sanitized = (0,dist.sanitizeImageURL)(avatarUrl);
1967
+ if (!sanitized) {
1968
+ console.warn('Invalid profile image URL detected, using fallback');
1969
+ return FALLBACK_AVATAR;
2244
1970
  }
2245
- // rethrow so that we can handle serving error page
2246
- throw err;
2247
- }
2248
- }
2249
- // TODO: omit this from production builds, only test builds should include it
2250
- /**
2251
- * Creates a readable stream that emits a PPR boundary sentinel.
2252
- *
2253
- * @returns A readable stream that emits a PPR boundary sentinel.
2254
- */ function createPPRBoundarySentinel() {
2255
- return new ReadableStream({
2256
- start (controller) {
2257
- controller.enqueue(new TextEncoder().encode('<!-- PPR_BOUNDARY_SENTINEL -->'));
2258
- controller.close();
1971
+ return sanitized;
1972
+ })();
1973
+ const handleSignOut = async ()=>{
1974
+ try {
1975
+ await apiClient.logout();
1976
+ } catch {
1977
+ // best-effort cookie already cleared server-side
2259
1978
  }
1979
+ clearSession();
1980
+ router.push('/');
1981
+ };
1982
+ return /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
1983
+ className: "semiont-user-panel",
1984
+ children: [
1985
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("h3", {
1986
+ className: "semiont-user-panel__title",
1987
+ children: t('account')
1988
+ }),
1989
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
1990
+ className: "space-y-4",
1991
+ children: [
1992
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
1993
+ className: "flex items-center gap-3",
1994
+ children: [
1995
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)(api_image["default"], {
1996
+ src: profileImageUrl,
1997
+ alt: t('profileAlt', {
1998
+ name: displayName || t('user')
1999
+ }),
2000
+ width: 48,
2001
+ height: 48,
2002
+ className: "w-12 h-12 rounded-full object-cover",
2003
+ onError: ()=>setImageError(true),
2004
+ unoptimized: profileImageUrl === FALLBACK_AVATAR,
2005
+ sizes: "48px",
2006
+ quality: 85
2007
+ }),
2008
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2009
+ className: "flex-1 min-w-0",
2010
+ children: [
2011
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2012
+ className: "semiont-panel-text",
2013
+ children: displayName || t('user')
2014
+ }),
2015
+ userDomain && /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2016
+ className: "semiont-panel-text-secondary",
2017
+ children: [
2018
+ "@",
2019
+ userDomain
2020
+ ]
2021
+ })
2022
+ ]
2023
+ })
2024
+ ]
2025
+ }),
2026
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2027
+ children: [
2028
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("label", {
2029
+ className: "semiont-panel-label",
2030
+ children: t('session')
2031
+ }),
2032
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2033
+ className: "semiont-session-box",
2034
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2035
+ className: "semiont-panel-hint",
2036
+ children: t('expiresIn', {
2037
+ time: sessionTimeFormatted
2038
+ })
2039
+ })
2040
+ })
2041
+ ]
2042
+ }),
2043
+ (isAdmin || isModerator) && /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2044
+ children: [
2045
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("label", {
2046
+ className: "semiont-panel-label",
2047
+ children: t('privileges')
2048
+ }),
2049
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2050
+ className: "space-y-1",
2051
+ children: [
2052
+ isAdmin && /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2053
+ className: "semiont-privilege-badge semiont-privilege-badge--admin",
2054
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("span", {
2055
+ className: "semiont-privilege-text",
2056
+ children: t('administrator')
2057
+ })
2058
+ }),
2059
+ isModerator && /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2060
+ className: "semiont-privilege-badge semiont-privilege-badge--moderator",
2061
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("span", {
2062
+ className: "semiont-privilege-text",
2063
+ children: t('moderator')
2064
+ })
2065
+ })
2066
+ ]
2067
+ })
2068
+ ]
2069
+ }),
2070
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)("div", {
2071
+ className: "semiont-panel-divider",
2072
+ children: /*#__PURE__*/ (0,react_jsx_runtime.jsx)("button", {
2073
+ onClick: handleSignOut,
2074
+ className: "semiont-signout-button",
2075
+ children: t('signOut')
2076
+ })
2077
+ })
2078
+ ]
2079
+ })
2080
+ ]
2260
2081
  });
2261
2082
  }
2262
2083
 
2263
- //# sourceMappingURL=app-page.js.map
2264
-
2265
-
2266
- /***/ }),
2084
+ // EXTERNAL MODULE: ../../node_modules/use-intl/dist/esm/production/react.js + 18 modules
2085
+ var production_react = __webpack_require__(23211);
2086
+ ;// __barrel_optimize__?names=COMMON_PANELS!=!../../packages/react-ui/dist/index.mjs
2267
2087
 
2268
- /***/ 62256:
2269
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
2270
2088
 
2271
- Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 59406));
2089
+ ;// ./src/components/toolbar/ToolbarPanels.tsx
2090
+ /* __next_internal_client_entry_do_not_use__ ToolbarPanels auto */
2272
2091
 
2273
2092
 
2274
- /***/ }),
2275
2093
 
2276
- /***/ 63033:
2277
- /***/ ((module) => {
2278
2094
 
2279
- "use strict";
2280
- module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js");
2281
2095
 
2282
- /***/ }),
2283
2096
 
2284
- /***/ 70722:
2285
- /***/ ((module) => {
2097
+ /**
2098
+ * Renders the toolbar panel container with common panels (user, settings)
2099
+ * and any context-specific panels passed as children.
2100
+ *
2101
+ * Settings changes are handled via GlobalSettingsEventBus - no callbacks needed.
2102
+ *
2103
+ * @example
2104
+ * // Simple context (compose, discover, moderate, admin pages)
2105
+ * <ToolbarPanels
2106
+ * activePanel={activePanel}
2107
+ * theme={theme}
2108
+ * showLineNumbers={showLineNumbers}
2109
+ * />
2110
+ *
2111
+ * @example
2112
+ * // Document context with custom panels
2113
+ * <ToolbarPanels
2114
+ * activePanel={activePanel}
2115
+ * theme={theme}
2116
+ * showLineNumbers={showLineNumbers}
2117
+ * >
2118
+ * {activePanel === 'annotations' && <UnifiedAnnotationsPanel ... />}
2119
+ * {activePanel === 'history' && <AnnotationHistory ... />}
2120
+ * {activePanel === 'info' && <ResourceInfoPanel ... />}
2121
+ * {activePanel === 'collaboration' && <CollaborationPanel ... />}
2122
+ * {activePanel === 'jsonld' && <JsonLdPanel ... />}
2123
+ * </ToolbarPanels>
2124
+ */ function ToolbarPanels({ activePanel, theme, showLineNumbers, hoverDelayMs, children }) {
2125
+ const locale = (0,production_react/* useLocale */.Ym)();
2126
+ const router = (0,routing/* useRouter */.rd)();
2127
+ const pathname = (0,routing/* usePathname */.a8)();
2128
+ const [isPending, startTransition] = (0,react.useTransition)();
2129
+ // Panel width management with localStorage persistence
2130
+ const { width, setWidth, minWidth, maxWidth } = (0,dist.usePanelWidth)();
2131
+ // Handle locale change events
2132
+ const handleLocaleChanged = (0,react.useCallback)(({ locale: newLocale })=>{
2133
+ if (!pathname) return;
2134
+ startTransition(()=>{
2135
+ // The router from @/i18n/routing is locale-aware and will handle the locale prefix
2136
+ router.replace(pathname, {
2137
+ locale: newLocale
2138
+ });
2139
+ });
2140
+ }, [
2141
+ pathname,
2142
+ router,
2143
+ startTransition
2144
+ ]);
2145
+ // Subscribe to locale change events
2146
+ (0,dist.useEventSubscriptions)({
2147
+ 'settings:locale-changed': handleLocaleChanged
2148
+ });
2149
+ // Don't render container if no panel is active
2150
+ if (!activePanel) {
2151
+ return null;
2152
+ }
2153
+ // In simple context (no children), only user and settings panels are valid.
2154
+ // If a resource-specific panel is still active from a previous route, hide the container.
2155
+ if (!children && !dist.COMMON_PANELS.includes(activePanel)) {
2156
+ return null;
2157
+ }
2158
+ return /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2159
+ className: "semiont-toolbar-panels",
2160
+ style: {
2161
+ width: `${width}px`,
2162
+ position: 'relative'
2163
+ },
2164
+ children: [
2165
+ /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist.ResizeHandle, {
2166
+ onResize: setWidth,
2167
+ minWidth: minWidth,
2168
+ maxWidth: maxWidth,
2169
+ position: "left",
2170
+ ariaLabel: "Resize right panel"
2171
+ }),
2172
+ /*#__PURE__*/ (0,react_jsx_runtime.jsxs)("div", {
2173
+ className: "semiont-toolbar-panels__content",
2174
+ children: [
2175
+ children,
2176
+ activePanel === 'user' && /*#__PURE__*/ (0,react_jsx_runtime.jsx)(UserPanel, {}),
2177
+ activePanel === 'settings' && /*#__PURE__*/ (0,react_jsx_runtime.jsx)(dist.SettingsPanel, {
2178
+ showLineNumbers: showLineNumbers,
2179
+ theme: theme,
2180
+ hoverDelayMs: hoverDelayMs,
2181
+ locale: locale,
2182
+ isPendingLocaleChange: isPending
2183
+ })
2184
+ ]
2185
+ })
2186
+ ]
2187
+ });
2188
+ }
2286
2189
 
2287
- "use strict";
2288
- module.exports = require("next/dist/shared/lib/invariant-error");
2289
2190
 
2290
2191
  /***/ }),
2291
2192
 
@@ -2346,12 +2247,12 @@ var react = __webpack_require__(71277);
2346
2247
  // EXTERNAL MODULE: ../../node_modules/next-intl/dist/esm/production/react-client/index.js
2347
2248
  var react_client = __webpack_require__(56305);
2348
2249
  // EXTERNAL MODULE: ../../packages/react-ui/dist/index.mjs + 26 modules
2349
- var dist = __webpack_require__(69792);
2250
+ var dist = __webpack_require__(41513);
2350
2251
  ;// __barrel_optimize__?names=Toolbar,useModeration!=!../../packages/react-ui/dist/index.mjs
2351
2252
 
2352
2253
 
2353
2254
  // EXTERNAL MODULE: ./src/components/toolbar/ToolbarPanels.tsx + 4 modules
2354
- var ToolbarPanels = __webpack_require__(50436);
2255
+ var ToolbarPanels = __webpack_require__(76238);
2355
2256
  // EXTERNAL MODULE: __barrel_optimize__?names=useEventSubscriptions,useLineNumbers,usePanelBrowse,useTheme!=!../../packages/react-ui/dist/index.mjs
2356
2257
  var react_ui_dist = __webpack_require__(56677);
2357
2258
  ;// __barrel_optimize__?names=LinkedDataPage!=!../../packages/react-ui/dist/index.mjs
@@ -2510,7 +2411,7 @@ function LinkedDataClient() {
2510
2411
  var __webpack_require__ = require("../../../../webpack-runtime.js");
2511
2412
  __webpack_require__.C(exports);
2512
2413
  var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
2513
- var __webpack_exports__ = __webpack_require__.X(0, [8569,5866,9927,7420,2617,5440,8255,9988], () => (__webpack_exec__(60187)));
2414
+ var __webpack_exports__ = __webpack_require__.X(0, [8103,9927,1515,2617,8255,9988], () => (__webpack_exec__(13849)));
2514
2415
  module.exports = __webpack_exports__;
2515
2416
 
2516
2417
  })();