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