@minecraft-docker/mcctl-console 1.15.5 → 2.1.1
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/.next/standalone/package.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/BUILD_ID +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/app-build-manifest.json +190 -134
- package/.next/standalone/platform/services/mcctl-console/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/build-manifest.json +4 -4
- package/.next/standalone/platform/services/mcctl-console/.next/prerender-manifest.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/routes-manifest.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page.js +5 -5
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page.js.nft.json +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page_client-reference-manifest.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/admin/users/page.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/admin/users/page.js.nft.json +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/admin/users/page_client-reference-manifest.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/admin/users.html +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/admin/users.meta +5 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/admin/users.rsc +12 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/audit-logs/[id]/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/audit-logs/export/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/audit-logs/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/audit-logs/stats/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/audit-logs/stream/route.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/auth/[...all]/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/history/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/restore/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/ban/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/kick/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/op/[player]/route.js +57 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/op/[player]/route.js.nft.json +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/op/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/whitelist/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/router/status/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/[action]/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/config/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/exec/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/world/reset/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/user-servers/[id]/route.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/user-servers/route.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/users/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/[name]/[action]/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/[name]/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/route.js +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.rsc +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.rsc +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/settings.html +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/settings.meta +5 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/settings.rsc +18 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.rsc +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app-paths-manifest.json +17 -14
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/1645.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/2793.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/3029.js +5 -5
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/3048.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/354.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/4282.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/5019.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/6088.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/609.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/613.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/6231.js +74 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/7057.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/7453.js +54 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8165.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8389.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8402.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8849.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8872.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/9250.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/platform/services/mcctl-console/.next/server/next-font-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/next-font-manifest.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/pages/404.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/pages/500.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1189-60aed59c0e82a63d.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1544-d2d1404bef00d038.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1658-1c16e5a05aaa11ee.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1668-c41281dc3163e1c2.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1721-2758853c661770ff.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/190-9ecdd3c2ad7fadef.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/3489-b8c5f08aa4922197.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/4416-2385e5784dc036d6.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/4474-b7d88543d50f7f58.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5375-a2d3a8fb915a3971.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5381-4e3aac97e0617278.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5386-a568e84580b1d208.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/563-d87300cc5ef5920c.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6357-a9d3501984c53429.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6479-82b21daf8e380c4d.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6571-0d9e629a91d9f630.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6727-e25ea0d10f0fea68.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6758-d0a2d1008691eff1.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/680-61e3cda59bad5959.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6857-5b9c04069853bfc4.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6909-9750e61adcf6f5e5.js +1 -0
- package/.next/{static/chunks/4840-5802e869ffd1d2a9.js → standalone/platform/services/mcctl-console/.next/static/chunks/7073-46594e6380fdda11.js} +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7436-44378c85b24787cc.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7782-0f287c9ab0566879.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/787-91c6946656342fe4.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8625-b235421f69a178fb.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/880-be7151cc9c502be6.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/9760-3b9261fc2cfda017.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/9810-e8bf0b092d80a553.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/audit-logs/{page-7a5d1441bb2811cf.js → page-b879c927081e59a2.js} +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/backups/{page-cc46681d519753dd.js → page-7a59c9269da2d63e.js} +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/dashboard/{page-b548fe2aac951e5b.js → page-d2d8cd0c7a0a54ec.js} +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/layout-bc7b020e80bc6d8d.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/players/page-724151791dd69b93.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/routing/page-909690ecbe76f31c.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/console/{page-ca0344337ef5da93.js → page-617a1ab914c8d828.js} +1 -1
- package/.next/{static/chunks/app/(main)/servers/[name]/page-55fee1f878b51fb8.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/page-96518534b90deb1c.js} +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/page-c35bb5a99e6ff107.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/settings/page-a805f639e14a10b0.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/worlds/page-704a3dafb5b8ec15.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/admin/users/page-f45f3cd30725a718.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/login/page-073a17485ca81f18.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/page-06fbf91c6bf684a9.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/signup/page-bfb822f4c5c7ce99.js +1 -0
- package/.next/{static/chunks/main-43f98b458d773ca0.js → standalone/platform/services/mcctl-console/.next/static/chunks/main-d86dc43481acf07f.js} +1 -1
- package/.next/standalone/platform/services/mcctl-console/package.json +1 -1
- package/.next/static/chunks/1189-60aed59c0e82a63d.js +1 -0
- package/.next/static/chunks/1544-d2d1404bef00d038.js +1 -0
- package/.next/static/chunks/1658-1c16e5a05aaa11ee.js +1 -0
- package/.next/static/chunks/1668-c41281dc3163e1c2.js +1 -0
- package/.next/static/chunks/1721-2758853c661770ff.js +1 -0
- package/.next/static/chunks/190-9ecdd3c2ad7fadef.js +1 -0
- package/.next/static/chunks/3489-b8c5f08aa4922197.js +1 -0
- package/.next/static/chunks/4416-2385e5784dc036d6.js +1 -0
- package/.next/static/chunks/4474-b7d88543d50f7f58.js +1 -0
- package/.next/static/chunks/5375-a2d3a8fb915a3971.js +1 -0
- package/.next/static/chunks/5381-4e3aac97e0617278.js +1 -0
- package/.next/static/chunks/5386-a568e84580b1d208.js +1 -0
- package/.next/static/chunks/563-d87300cc5ef5920c.js +1 -0
- package/.next/static/chunks/6357-a9d3501984c53429.js +1 -0
- package/.next/static/chunks/6479-82b21daf8e380c4d.js +1 -0
- package/.next/static/chunks/6571-0d9e629a91d9f630.js +1 -0
- package/.next/static/chunks/6727-e25ea0d10f0fea68.js +1 -0
- package/.next/static/chunks/6758-d0a2d1008691eff1.js +1 -0
- package/.next/static/chunks/680-61e3cda59bad5959.js +1 -0
- package/.next/static/chunks/6857-5b9c04069853bfc4.js +1 -0
- package/.next/static/chunks/6909-9750e61adcf6f5e5.js +1 -0
- package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/4840-5802e869ffd1d2a9.js → static/chunks/7073-46594e6380fdda11.js} +1 -1
- package/.next/static/chunks/7436-44378c85b24787cc.js +1 -0
- package/.next/static/chunks/7782-0f287c9ab0566879.js +1 -0
- package/.next/static/chunks/787-91c6946656342fe4.js +1 -0
- package/.next/static/chunks/8625-b235421f69a178fb.js +1 -0
- package/.next/static/chunks/880-be7151cc9c502be6.js +1 -0
- package/.next/static/chunks/9760-3b9261fc2cfda017.js +1 -0
- package/.next/static/chunks/9810-e8bf0b092d80a553.js +1 -0
- package/.next/static/chunks/app/(main)/audit-logs/{page-7a5d1441bb2811cf.js → page-b879c927081e59a2.js} +1 -1
- package/.next/static/chunks/app/(main)/backups/{page-cc46681d519753dd.js → page-7a59c9269da2d63e.js} +1 -1
- package/.next/static/chunks/app/(main)/dashboard/{page-b548fe2aac951e5b.js → page-d2d8cd0c7a0a54ec.js} +1 -1
- package/.next/static/chunks/app/(main)/layout-bc7b020e80bc6d8d.js +1 -0
- package/.next/static/chunks/app/(main)/players/page-724151791dd69b93.js +1 -0
- package/.next/static/chunks/app/(main)/routing/page-909690ecbe76f31c.js +1 -0
- package/.next/static/chunks/app/(main)/servers/[name]/console/{page-ca0344337ef5da93.js → page-617a1ab914c8d828.js} +1 -1
- package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/page-55fee1f878b51fb8.js → static/chunks/app/(main)/servers/[name]/page-96518534b90deb1c.js} +1 -1
- package/.next/static/chunks/app/(main)/servers/page-c35bb5a99e6ff107.js +1 -0
- package/.next/static/chunks/app/(main)/settings/page-a805f639e14a10b0.js +1 -0
- package/.next/static/chunks/app/(main)/worlds/page-704a3dafb5b8ec15.js +1 -0
- package/.next/static/chunks/app/admin/users/page-f45f3cd30725a718.js +1 -0
- package/.next/static/chunks/app/login/page-073a17485ca81f18.js +1 -0
- package/.next/static/chunks/app/page-06fbf91c6bf684a9.js +1 -0
- package/.next/static/chunks/app/signup/page-bfb822f4c5c7ce99.js +1 -0
- package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/main-43f98b458d773ca0.js → static/chunks/main-d86dc43481acf07f.js} +1 -1
- package/package.json +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/1399.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/2365.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/3076.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/3100.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/4972.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/5244.js +0 -74
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/5256.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/6010.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8024.js +0 -54
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8243.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/9157.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/959.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1476-a0570078fdf78fae.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2022-6da2f9a847a5d61c.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2093-bceea213e32f6b5f.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2149-ba1bdd1d726ab70c.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/310-72d3b802b3cefa99.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/315-509f963f6c69d0a8.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/3543-1ec838cbe59f6baa.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/406-64ea09489141e436.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/4278-9a6acf769f296866.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/4538-a0d2c88024f1288a.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5511-7a419d84918a8d64.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6189-d8557db379604b3e.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6594-e49e36eb5a5d1bef.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6645-68b73fe1df8dba93.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6655-81288236c1babc44.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7220-4d1d72de4109ad9b.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7294-ffa0013d4b0fa40a.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7413-419718450fadde21.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8006-219c9bbc650b079e.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8322-8ae826d4c9b38acc.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8657-f28db4e9df8cc7b0.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8696-8adf1e9b1a84f5c0.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/9030-1dcbf06ed6e20e24.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/9887-bff2aa500d1d1995.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/layout-692cb1da92b73287.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/players/page-706f5e796129df33.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/routing/page-14f40cfd98e60a77.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/page-efa5f11aa2956719.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/worlds/page-3de10e94b77f6e45.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/login/page-d6a5da720238e5cf.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/page-8b5b6cb30448bcc5.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/signup/page-6e5550bc9fffa4bc.js +0 -1
- package/.next/static/chunks/1476-a0570078fdf78fae.js +0 -1
- package/.next/static/chunks/2022-6da2f9a847a5d61c.js +0 -1
- package/.next/static/chunks/2093-bceea213e32f6b5f.js +0 -1
- package/.next/static/chunks/2149-ba1bdd1d726ab70c.js +0 -1
- package/.next/static/chunks/310-72d3b802b3cefa99.js +0 -1
- package/.next/static/chunks/315-509f963f6c69d0a8.js +0 -1
- package/.next/static/chunks/3543-1ec838cbe59f6baa.js +0 -1
- package/.next/static/chunks/406-64ea09489141e436.js +0 -1
- package/.next/static/chunks/4278-9a6acf769f296866.js +0 -1
- package/.next/static/chunks/4538-a0d2c88024f1288a.js +0 -1
- package/.next/static/chunks/5511-7a419d84918a8d64.js +0 -1
- package/.next/static/chunks/6189-d8557db379604b3e.js +0 -1
- package/.next/static/chunks/6594-e49e36eb5a5d1bef.js +0 -1
- package/.next/static/chunks/6645-68b73fe1df8dba93.js +0 -1
- package/.next/static/chunks/6655-81288236c1babc44.js +0 -1
- package/.next/static/chunks/7220-4d1d72de4109ad9b.js +0 -1
- package/.next/static/chunks/7294-ffa0013d4b0fa40a.js +0 -1
- package/.next/static/chunks/7413-419718450fadde21.js +0 -1
- package/.next/static/chunks/8006-219c9bbc650b079e.js +0 -1
- package/.next/static/chunks/8322-8ae826d4c9b38acc.js +0 -1
- package/.next/static/chunks/8657-f28db4e9df8cc7b0.js +0 -1
- package/.next/static/chunks/8696-8adf1e9b1a84f5c0.js +0 -1
- package/.next/static/chunks/9030-1dcbf06ed6e20e24.js +0 -1
- package/.next/static/chunks/9887-bff2aa500d1d1995.js +0 -1
- package/.next/static/chunks/app/(main)/layout-692cb1da92b73287.js +0 -1
- package/.next/static/chunks/app/(main)/players/page-706f5e796129df33.js +0 -1
- package/.next/static/chunks/app/(main)/routing/page-14f40cfd98e60a77.js +0 -1
- package/.next/static/chunks/app/(main)/servers/page-efa5f11aa2956719.js +0 -1
- package/.next/static/chunks/app/(main)/worlds/page-3de10e94b77f6e45.js +0 -1
- package/.next/static/chunks/app/login/page-d6a5da720238e5cf.js +0 -1
- package/.next/static/chunks/app/page-8b5b6cb30448bcc5.js +0 -1
- package/.next/static/chunks/app/signup/page-6e5550bc9fffa4bc.js +0 -1
- /package/.next/standalone/platform/services/mcctl-console/.next/static/{J1RLwJBlYRYnOUdff_T8I → lF2Ag_PdEMco5HscTAFVZ}/_buildManifest.js +0 -0
- /package/.next/standalone/platform/services/mcctl-console/.next/static/{J1RLwJBlYRYnOUdff_T8I → lF2Ag_PdEMco5HscTAFVZ}/_ssgManifest.js +0 -0
- /package/.next/static/{J1RLwJBlYRYnOUdff_T8I → lF2Ag_PdEMco5HscTAFVZ}/_buildManifest.js +0 -0
- /package/.next/static/{J1RLwJBlYRYnOUdff_T8I → lF2Ag_PdEMco5HscTAFVZ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9810],{628:function(e,t,o){o.d(t,{Z:function(){return y}});var r=o(81500),n=o(32324),i=o(35106),a=o(70316),s=o(65951),p=o(34519),l=o(28057),c=o(69899),f=o(11379),u=o(9049);function d(e){return(0,u.ZP)("MuiCard",e)}(0,f.Z)("MuiCard",["root"]);var m=o(94655);let h=["className","raised"],v=e=>{let{classes:t}=e;return(0,s.Z)({root:["root"]},d,t)},g=(0,p.ZP)(c.Z,{name:"MuiCard",slot:"Root",overridesResolver:(e,t)=>t.root})(()=>({overflow:"hidden"}));var y=i.forwardRef(function(e,t){let o=(0,l.i)({props:e,name:"MuiCard"}),{className:i,raised:s=!1}=o,p=(0,n.Z)(o,h),c=(0,r.Z)({},o,{raised:s}),f=v(c);return(0,m.jsx)(g,(0,r.Z)({className:(0,a.Z)(f.root,i),elevation:s?8:void 0,ref:t,ownerState:c},p))})},41565:function(e,t,o){o.d(t,{Z:function(){return g}});var r=o(81500),n=o(32324),i=o(35106),a=o(70316),s=o(65951),p=o(34519),l=o(28057),c=o(11379),f=o(9049);function u(e){return(0,f.ZP)("MuiCardContent",e)}(0,c.Z)("MuiCardContent",["root"]);var d=o(94655);let m=["className","component"],h=e=>{let{classes:t}=e;return(0,s.Z)({root:["root"]},u,t)},v=(0,p.ZP)("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(e,t)=>t.root})(()=>({padding:16,"&:last-child":{paddingBottom:24}}));var g=i.forwardRef(function(e,t){let o=(0,l.i)({props:e,name:"MuiCardContent"}),{className:i,component:s="div"}=o,p=(0,n.Z)(o,m),c=(0,r.Z)({},o,{component:s}),f=h(c);return(0,d.jsx)(v,(0,r.Z)({as:s,className:(0,a.Z)(f.root,i),ownerState:c,ref:t},p))})},10612:function(e,t,o){o.d(t,{Z:function(){return eS}});var r,n,i,a,s,p=o(81500),l=o(32324),c=o(22103),f=o(35106),u=o(22429),d=o(93207),m=o(98072);function h(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function v(e){var t=h(e).Element;return e instanceof t||e instanceof Element}function g(e){var t=h(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function y(e){if("undefined"==typeof ShadowRoot)return!1;var t=h(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}var b=Math.max,w=Math.min,x=Math.round;function O(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Z(){return!/^((?!chrome|android).)*safari/i.test(O())}function P(e,t,o){void 0===t&&(t=!1),void 0===o&&(o=!1);var r=e.getBoundingClientRect(),n=1,i=1;t&&g(e)&&(n=e.offsetWidth>0&&x(r.width)/e.offsetWidth||1,i=e.offsetHeight>0&&x(r.height)/e.offsetHeight||1);var a=(v(e)?h(e):window).visualViewport,s=!Z()&&o,p=(r.left+(s&&a?a.offsetLeft:0))/n,l=(r.top+(s&&a?a.offsetTop:0))/i,c=r.width/n,f=r.height/i;return{width:c,height:f,top:l,right:p+c,bottom:l+f,left:p,x:p,y:l}}function R(e){var t=h(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function M(e){return e?(e.nodeName||"").toLowerCase():null}function E(e){return((v(e)?e.ownerDocument:e.document)||window.document).documentElement}function j(e){return P(E(e)).left+R(e).scrollLeft}function T(e){return h(e).getComputedStyle(e)}function k(e){var t=T(e),o=t.overflow,r=t.overflowX,n=t.overflowY;return/auto|scroll|overlay|hidden/.test(o+n+r)}function C(e){var t=P(e),o=e.offsetWidth,r=e.offsetHeight;return 1>=Math.abs(t.width-o)&&(o=t.width),1>=Math.abs(t.height-r)&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:o,height:r}}function A(e){return"html"===M(e)?e:e.assignedSlot||e.parentNode||(y(e)?e.host:null)||E(e)}function D(e,t){void 0===t&&(t=[]);var o,r=function e(t){return["html","body","#document"].indexOf(M(t))>=0?t.ownerDocument.body:g(t)&&k(t)?t:e(A(t))}(e),n=r===(null==(o=e.ownerDocument)?void 0:o.body),i=h(r),a=n?[i].concat(i.visualViewport||[],k(r)?r:[]):r,s=t.concat(a);return n?s:s.concat(D(A(a)))}function L(e){return g(e)&&"fixed"!==T(e).position?e.offsetParent:null}function S(e){for(var t=h(e),o=L(e);o&&["table","td","th"].indexOf(M(o))>=0&&"static"===T(o).position;)o=L(o);return o&&("html"===M(o)||"body"===M(o)&&"static"===T(o).position)?t:o||function(e){var t=/firefox/i.test(O());if(/Trident/i.test(O())&&g(e)&&"fixed"===T(e).position)return null;var o=A(e);for(y(o)&&(o=o.host);g(o)&&0>["html","body"].indexOf(M(o));){var r=T(o);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return o;o=o.parentNode}return null}(e)||t}var W="bottom",B="right",N="left",H="auto",F=["top",W,B,N],I="start",V="viewport",_="popper",q=F.reduce(function(e,t){return e.concat([t+"-"+I,t+"-end"])},[]),U=[].concat(F,[H]).reduce(function(e,t){return e.concat([t,t+"-"+I,t+"-end"])},[]),z=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"],X={placement:"bottom",modifiers:[],strategy:"absolute"};function Y(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return!t.some(function(e){return!(e&&"function"==typeof e.getBoundingClientRect)})}var G={passive:!0};function J(e){return e.split("-")[0]}function K(e){return e.split("-")[1]}function Q(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function $(e){var t,o=e.reference,r=e.element,n=e.placement,i=n?J(n):null,a=n?K(n):null,s=o.x+o.width/2-r.width/2,p=o.y+o.height/2-r.height/2;switch(i){case"top":t={x:s,y:o.y-r.height};break;case W:t={x:s,y:o.y+o.height};break;case B:t={x:o.x+o.width,y:p};break;case N:t={x:o.x-r.width,y:p};break;default:t={x:o.x,y:o.y}}var l=i?Q(i):null;if(null!=l){var c="y"===l?"height":"width";switch(a){case I:t[l]=t[l]-(o[c]/2-r[c]/2);break;case"end":t[l]=t[l]+(o[c]/2-r[c]/2)}}return t}var ee={top:"auto",right:"auto",bottom:"auto",left:"auto"};function et(e){var t,o,r,n,i,a,s,p=e.popper,l=e.popperRect,c=e.placement,f=e.variation,u=e.offsets,d=e.position,m=e.gpuAcceleration,v=e.adaptive,g=e.roundOffsets,y=e.isFixed,b=u.x,w=void 0===b?0:b,O=u.y,Z=void 0===O?0:O,P="function"==typeof g?g({x:w,y:Z}):{x:w,y:Z};w=P.x,Z=P.y;var R=u.hasOwnProperty("x"),M=u.hasOwnProperty("y"),j=N,k="top",C=window;if(v){var A=S(p),D="clientHeight",L="clientWidth";A===h(p)&&"static"!==T(A=E(p)).position&&"absolute"===d&&(D="scrollHeight",L="scrollWidth"),("top"===c||(c===N||c===B)&&"end"===f)&&(k=W,Z-=(y&&A===C&&C.visualViewport?C.visualViewport.height:A[D])-l.height,Z*=m?1:-1),(c===N||("top"===c||c===W)&&"end"===f)&&(j=B,w-=(y&&A===C&&C.visualViewport?C.visualViewport.width:A[L])-l.width,w*=m?1:-1)}var H=Object.assign({position:d},v&&ee),F=!0===g?(t={x:w,y:Z},o=h(p),r=t.x,n=t.y,{x:x(r*(i=o.devicePixelRatio||1))/i||0,y:x(n*i)/i||0}):{x:w,y:Z};return(w=F.x,Z=F.y,m)?Object.assign({},H,((s={})[k]=M?"0":"",s[j]=R?"0":"",s.transform=1>=(C.devicePixelRatio||1)?"translate("+w+"px, "+Z+"px)":"translate3d("+w+"px, "+Z+"px, 0)",s)):Object.assign({},H,((a={})[k]=M?Z+"px":"",a[j]=R?w+"px":"",a.transform="",a))}var eo={left:"right",right:"left",bottom:"top",top:"bottom"};function er(e){return e.replace(/left|right|bottom|top/g,function(e){return eo[e]})}var en={start:"end",end:"start"};function ei(e){return e.replace(/start|end/g,function(e){return en[e]})}function ea(e,t){var o=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(o&&y(o)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function es(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ep(e,t,o){var r,n,i,a,s,p,l,c,f,u;return t===V?es(function(e,t){var o=h(e),r=E(e),n=o.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,p=0;if(n){i=n.width,a=n.height;var l=Z();(l||!l&&"fixed"===t)&&(s=n.offsetLeft,p=n.offsetTop)}return{width:i,height:a,x:s+j(e),y:p}}(e,o)):v(t)?((r=P(t,!1,"fixed"===o)).top=r.top+t.clientTop,r.left=r.left+t.clientLeft,r.bottom=r.top+t.clientHeight,r.right=r.left+t.clientWidth,r.width=t.clientWidth,r.height=t.clientHeight,r.x=r.left,r.y=r.top,r):es((n=E(e),a=E(n),s=R(n),p=null==(i=n.ownerDocument)?void 0:i.body,l=b(a.scrollWidth,a.clientWidth,p?p.scrollWidth:0,p?p.clientWidth:0),c=b(a.scrollHeight,a.clientHeight,p?p.scrollHeight:0,p?p.clientHeight:0),f=-s.scrollLeft+j(n),u=-s.scrollTop,"rtl"===T(p||a).direction&&(f+=b(a.clientWidth,p?p.clientWidth:0)-l),{width:l,height:c,x:f,y:u}))}function el(){return{top:0,right:0,bottom:0,left:0}}function ec(e){return Object.assign({},el(),e)}function ef(e,t){return t.reduce(function(t,o){return t[o]=e,t},{})}function eu(e,t){void 0===t&&(t={});var o,r,n,i,a,s,p,l,c=t,f=c.placement,u=void 0===f?e.placement:f,d=c.strategy,m=void 0===d?e.strategy:d,h=c.boundary,y=c.rootBoundary,x=c.elementContext,O=void 0===x?_:x,Z=c.altBoundary,R=c.padding,j=void 0===R?0:R,k=ec("number"!=typeof j?j:ef(j,F)),C=e.rects.popper,L=e.elements[void 0!==Z&&Z?O===_?"reference":_:O],N=(o=v(L)?L:L.contextElement||E(e.elements.popper),r=void 0===h?"clippingParents":h,n=void 0===y?V:y,p=(s=[].concat("clippingParents"===r?(i=D(A(o)),v(a=["absolute","fixed"].indexOf(T(o).position)>=0&&g(o)?S(o):o)?i.filter(function(e){return v(e)&&ea(e,a)&&"body"!==M(e)}):[]):[].concat(r),[n]))[0],(l=s.reduce(function(e,t){var r=ep(o,t,m);return e.top=b(r.top,e.top),e.right=w(r.right,e.right),e.bottom=w(r.bottom,e.bottom),e.left=b(r.left,e.left),e},ep(o,p,m))).width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l),H=P(e.elements.reference),I=$({reference:H,element:C,strategy:"absolute",placement:u}),q=es(Object.assign({},C,I)),U=O===_?q:H,z={top:N.top-U.top+k.top,bottom:U.bottom-N.bottom+k.bottom,left:N.left-U.left+k.left,right:U.right-N.right+k.right},X=e.modifiersData.offset;if(O===_&&X){var Y=X[u];Object.keys(z).forEach(function(e){var t=[B,W].indexOf(e)>=0?1:-1,o=["top",W].indexOf(e)>=0?"y":"x";z[e]+=Y[o]*t})}return z}function ed(e,t,o){return b(e,w(t,o))}function em(e,t,o){return void 0===o&&(o={x:0,y:0}),{top:e.top-t.height-o.y,right:e.right-t.width+o.x,bottom:e.bottom-t.height+o.y,left:e.left-t.width-o.x}}function eh(e){return["top",B,W,N].some(function(t){return e[t]>=0})}var ev=(i=void 0===(n=(r={defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,o=e.instance,r=e.options,n=r.scroll,i=void 0===n||n,a=r.resize,s=void 0===a||a,p=h(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&l.forEach(function(e){e.addEventListener("scroll",o.update,G)}),s&&p.addEventListener("resize",o.update,G),function(){i&&l.forEach(function(e){e.removeEventListener("scroll",o.update,G)}),s&&p.removeEventListener("resize",o.update,G)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,o=e.name;t.modifiersData[o]=$({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,o=e.options,r=o.gpuAcceleration,n=o.adaptive,i=o.roundOffsets,a=void 0===i||i,s={placement:J(t.placement),variation:K(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:void 0===r||r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,et(Object.assign({},s,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:void 0===n||n,roundOffsets:a})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,et(Object.assign({},s,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:a})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var o=t.styles[e]||{},r=t.attributes[e]||{},n=t.elements[e];g(n)&&M(n)&&(Object.assign(n.style,o),Object.keys(r).forEach(function(e){var t=r[e];!1===t?n.removeAttribute(e):n.setAttribute(e,!0===t?"":t)}))})},effect:function(e){var t=e.state,o={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,o.popper),t.styles=o,t.elements.arrow&&Object.assign(t.elements.arrow.style,o.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],n=t.attributes[e]||{},i=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:o[e]).reduce(function(e,t){return e[t]="",e},{});g(r)&&M(r)&&(Object.assign(r.style,i),Object.keys(n).forEach(function(e){r.removeAttribute(e)}))})}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,o=e.options,r=e.name,n=o.offset,i=void 0===n?[0,0]:n,a=U.reduce(function(e,o){var r,n,a,s,p,l;return e[o]=(r=t.rects,a=[N,"top"].indexOf(n=J(o))>=0?-1:1,p=(s="function"==typeof i?i(Object.assign({},r,{placement:o})):i)[0],l=s[1],p=p||0,l=(l||0)*a,[N,B].indexOf(n)>=0?{x:l,y:p}:{x:p,y:l}),e},{}),s=a[t.placement],p=s.x,l=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=p,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=a}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,o=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var n=o.mainAxis,i=void 0===n||n,a=o.altAxis,s=void 0===a||a,p=o.fallbackPlacements,l=o.padding,c=o.boundary,f=o.rootBoundary,u=o.altBoundary,d=o.flipVariations,m=void 0===d||d,h=o.allowedAutoPlacements,v=t.options.placement,g=J(v)===v,y=p||(g||!m?[er(v)]:function(e){if(J(e)===H)return[];var t=er(e);return[ei(e),t,ei(t)]}(v)),b=[v].concat(y).reduce(function(e,o){var r,n,i,a,s,p,u,d,v,g,y,b;return e.concat(J(o)===H?(n=(r={placement:o,boundary:c,rootBoundary:f,padding:l,flipVariations:m,allowedAutoPlacements:h}).placement,i=r.boundary,a=r.rootBoundary,s=r.padding,p=r.flipVariations,d=void 0===(u=r.allowedAutoPlacements)?U:u,0===(y=(g=(v=K(n))?p?q:q.filter(function(e){return K(e)===v}):F).filter(function(e){return d.indexOf(e)>=0})).length&&(y=g),Object.keys(b=y.reduce(function(e,o){return e[o]=eu(t,{placement:o,boundary:i,rootBoundary:a,padding:s})[J(o)],e},{})).sort(function(e,t){return b[e]-b[t]})):o)},[]),w=t.rects.reference,x=t.rects.popper,O=new Map,Z=!0,P=b[0],R=0;R<b.length;R++){var M=b[R],E=J(M),j=K(M)===I,T=["top",W].indexOf(E)>=0,k=T?"width":"height",C=eu(t,{placement:M,boundary:c,rootBoundary:f,altBoundary:u,padding:l}),A=T?j?B:N:j?W:"top";w[k]>x[k]&&(A=er(A));var D=er(A),L=[];if(i&&L.push(C[E]<=0),s&&L.push(C[A]<=0,C[D]<=0),L.every(function(e){return e})){P=M,Z=!1;break}O.set(M,L)}if(Z)for(var S=m?3:1,V=function(e){var t=b.find(function(t){var o=O.get(t);if(o)return o.slice(0,e).every(function(e){return e})});if(t)return P=t,"break"},_=S;_>0&&"break"!==V(_);_--);t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,o=e.options,r=e.name,n=o.mainAxis,i=o.altAxis,a=o.boundary,s=o.rootBoundary,p=o.altBoundary,l=o.padding,c=o.tether,f=void 0===c||c,u=o.tetherOffset,d=void 0===u?0:u,m=eu(t,{boundary:a,rootBoundary:s,padding:l,altBoundary:p}),h=J(t.placement),v=K(t.placement),g=!v,y=Q(h),x="x"===y?"y":"x",O=t.modifiersData.popperOffsets,Z=t.rects.reference,P=t.rects.popper,R="function"==typeof d?d(Object.assign({},t.rects,{placement:t.placement})):d,M="number"==typeof R?{mainAxis:R,altAxis:R}:Object.assign({mainAxis:0,altAxis:0},R),E=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,j={x:0,y:0};if(O){if(void 0===n||n){var T,k="y"===y?"top":N,A="y"===y?W:B,D="y"===y?"height":"width",L=O[y],H=L+m[k],F=L-m[A],V=f?-P[D]/2:0,_=v===I?Z[D]:P[D],q=v===I?-P[D]:-Z[D],U=t.elements.arrow,z=f&&U?C(U):{width:0,height:0},X=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:el(),Y=X[k],G=X[A],$=ed(0,Z[D],z[D]),ee=g?Z[D]/2-V-$-Y-M.mainAxis:_-$-Y-M.mainAxis,et=g?-Z[D]/2+V+$+G+M.mainAxis:q+$+G+M.mainAxis,eo=t.elements.arrow&&S(t.elements.arrow),er=eo?"y"===y?eo.clientTop||0:eo.clientLeft||0:0,en=null!=(T=null==E?void 0:E[y])?T:0,ei=ed(f?w(H,L+ee-en-er):H,L,f?b(F,L+et-en):F);O[y]=ei,j[y]=ei-L}if(void 0!==i&&i){var ea,es,ep="x"===y?"top":N,ec="x"===y?W:B,ef=O[x],em="y"===x?"height":"width",eh=ef+m[ep],ev=ef-m[ec],eg=-1!==["top",N].indexOf(h),ey=null!=(es=null==E?void 0:E[x])?es:0,eb=eg?eh:ef-Z[em]-P[em]-ey+M.altAxis,ew=eg?ef+Z[em]+P[em]-ey-M.altAxis:ev,ex=f&&eg?(ea=ed(eb,ef,ew))>ew?ew:ea:ed(f?eb:eh,ef,f?ew:ev);O[x]=ex,j[x]=ex-ef}t.modifiersData[r]=j}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,o,r=e.state,n=e.name,i=e.options,a=r.elements.arrow,s=r.modifiersData.popperOffsets,p=J(r.placement),l=Q(p),c=[N,B].indexOf(p)>=0?"height":"width";if(a&&s){var f=ec("number"!=typeof(t="function"==typeof(t=i.padding)?t(Object.assign({},r.rects,{placement:r.placement})):t)?t:ef(t,F)),u=C(a),d="y"===l?"top":N,m="y"===l?W:B,h=r.rects.reference[c]+r.rects.reference[l]-s[l]-r.rects.popper[c],v=s[l]-r.rects.reference[l],g=S(a),y=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=f[d],w=y-u[c]-f[m],x=y/2-u[c]/2+(h/2-v/2),O=ed(b,x,w);r.modifiersData[n]=((o={})[l]=O,o.centerOffset=O-x,o)}},effect:function(e){var t=e.state,o=e.options.element,r=void 0===o?"[data-popper-arrow]":o;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&ea(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,o=e.name,r=t.rects.reference,n=t.rects.popper,i=t.modifiersData.preventOverflow,a=eu(t,{elementContext:"reference"}),s=eu(t,{altBoundary:!0}),p=em(a,r),l=em(s,n,i),c=eh(p),f=eh(l);t.modifiersData[o]={referenceClippingOffsets:p,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}}]}).defaultModifiers)?[]:n,s=void 0===(a=r.defaultOptions)?X:a,function(e,t,o){void 0===o&&(o=s);var r,n,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},X,s),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},p=[],l=!1,c={state:a,setOptions:function(o){var r,n,l,u,d,m="function"==typeof o?o(a.options):o;f(),a.options=Object.assign({},s,a.options,m),a.scrollParents={reference:v(e)?D(e):e.contextElement?D(e.contextElement):[],popper:D(t)};var h=(n=Object.keys(r=[].concat(i,a.options.modifiers).reduce(function(e,t){var o=e[t.name];return e[t.name]=o?Object.assign({},o,t,{options:Object.assign({},o.options,t.options),data:Object.assign({},o.data,t.data)}):t,e},{})).map(function(e){return r[e]}),l=new Map,u=new Set,d=[],n.forEach(function(e){l.set(e.name,e)}),n.forEach(function(e){u.has(e.name)||function e(t){u.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach(function(t){if(!u.has(t)){var o=l.get(t);o&&e(o)}}),d.push(t)}(e)}),z.reduce(function(e,t){return e.concat(d.filter(function(e){return e.phase===t}))},[]));return a.orderedModifiers=h.filter(function(e){return e.enabled}),a.orderedModifiers.forEach(function(e){var t=e.name,o=e.options,r=e.effect;if("function"==typeof r){var n=r({state:a,name:t,instance:c,options:void 0===o?{}:o});p.push(n||function(){})}}),c.update()},forceUpdate:function(){if(!l){var e,t,o,r,n,i,s,p,f,u,d,m,v=a.elements,y=v.reference,b=v.popper;if(Y(y,b)){a.rects={reference:(t=S(b),o="fixed"===a.options.strategy,r=g(t),p=g(t)&&(i=x((n=t.getBoundingClientRect()).width)/t.offsetWidth||1,s=x(n.height)/t.offsetHeight||1,1!==i||1!==s),f=E(t),u=P(y,p,o),d={scrollLeft:0,scrollTop:0},m={x:0,y:0},(r||!r&&!o)&&(("body"!==M(t)||k(f))&&(d=(e=t)!==h(e)&&g(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:R(e)),g(t)?(m=P(t,!0),m.x+=t.clientLeft,m.y+=t.clientTop):f&&(m.x=j(f))),{x:u.left+d.scrollLeft-m.x,y:u.top+d.scrollTop-m.y,width:u.width,height:u.height}),popper:C(b)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach(function(e){return a.modifiersData[e.name]=Object.assign({},e.data)});for(var w=0;w<a.orderedModifiers.length;w++){if(!0===a.reset){a.reset=!1,w=-1;continue}var O=a.orderedModifiers[w],Z=O.fn,T=O.options,A=void 0===T?{}:T,D=O.name;"function"==typeof Z&&(a=Z({state:a,options:A,name:D,instance:c})||a)}}}},update:(r=function(){return new Promise(function(e){c.forceUpdate(),e(a)})},function(){return n||(n=new Promise(function(e){Promise.resolve().then(function(){n=void 0,e(r())})})),n}),destroy:function(){f(),l=!0}};if(!Y(e,t))return c;function f(){p.forEach(function(e){return e()}),p=[]}return c.setOptions(o).then(function(e){!l&&o.onFirstUpdate&&o.onFirstUpdate(e)}),c}),eg=o(65951),ey=o(95582),eb=o(35873),ew=o(11379),ex=o(9049);function eO(e){return(0,ex.ZP)("MuiPopper",e)}(0,ew.Z)("MuiPopper",["root"]);var eZ=o(94655);let eP=["anchorEl","children","direction","disablePortal","modifiers","open","placement","popperOptions","popperRef","slotProps","slots","TransitionProps","ownerState"],eR=["anchorEl","children","container","direction","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition","slotProps","slots"];function eM(e){return"function"==typeof e?e():e}let eE=e=>{let{classes:t}=e;return(0,eg.Z)({root:["root"]},eO,t)},ej={},eT=f.forwardRef(function(e,t){var o;let{anchorEl:r,children:n,direction:i,disablePortal:a,modifiers:s,open:c,placement:m,popperOptions:h,popperRef:v,slotProps:g={},slots:y={},TransitionProps:b}=e,w=(0,l.Z)(e,eP),x=f.useRef(null),O=(0,u.Z)(x,t),Z=f.useRef(null),P=(0,u.Z)(Z,v),R=f.useRef(P);(0,d.Z)(()=>{R.current=P},[P]),f.useImperativeHandle(v,()=>Z.current,[]);let M=function(e,t){if("ltr"===t)return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}(m,i),[E,j]=f.useState(M),[T,k]=f.useState(eM(r));f.useEffect(()=>{Z.current&&Z.current.forceUpdate()}),f.useEffect(()=>{r&&k(eM(r))},[r]),(0,d.Z)(()=>{if(!T||!c)return;let e=e=>{j(e.placement)},t=[{name:"preventOverflow",options:{altBoundary:a}},{name:"flip",options:{altBoundary:a}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:t=>{let{state:o}=t;e(o)}}];null!=s&&(t=t.concat(s)),h&&null!=h.modifiers&&(t=t.concat(h.modifiers));let o=ev(T,x.current,(0,p.Z)({placement:M},h,{modifiers:t}));return R.current(o),()=>{o.destroy(),R.current(null)}},[T,a,s,c,h,M]);let C={placement:E};null!==b&&(C.TransitionProps=b);let A=eE(e),D=null!=(o=y.root)?o:"div",L=(0,ey.Z)({elementType:D,externalSlotProps:g.root,externalForwardedProps:w,additionalProps:{role:"tooltip",ref:O},ownerState:e,className:A.root});return(0,eZ.jsx)(D,(0,p.Z)({},L,{children:"function"==typeof n?n(C):n}))}),ek=f.forwardRef(function(e,t){let o;let{anchorEl:r,children:n,container:i,direction:a="ltr",disablePortal:s=!1,keepMounted:c=!1,modifiers:u,open:d,placement:h="bottom",popperOptions:v=ej,popperRef:g,style:y,transition:b=!1,slotProps:w={},slots:x={}}=e,O=(0,l.Z)(e,eR),[Z,P]=f.useState(!0);if(!c&&!d&&(!b||Z))return null;if(i)o=i;else if(r){let e=eM(r);o=e&&void 0!==e.nodeType?(0,m.Z)(e).body:(0,m.Z)(null).body}let R=!d&&c&&(!b||Z)?"none":void 0,M=b?{in:d,onEnter:()=>{P(!1)},onExited:()=>{P(!0)}}:void 0;return(0,eZ.jsx)(eb.Z,{disablePortal:s,container:o,children:(0,eZ.jsx)(eT,(0,p.Z)({anchorEl:r,direction:a,disablePortal:s,modifiers:u,ref:t,open:b?!Z:d,placement:h,popperOptions:v,popperRef:g,slotProps:w,slots:x},O,{style:(0,p.Z)({position:"fixed",top:0,left:0,display:R},y),TransitionProps:M,children:n}))})});var eC=o(34519),eA=o(28057);let eD=["anchorEl","component","components","componentsProps","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","transition","slots","slotProps"],eL=(0,eC.ZP)(ek,{name:"MuiPopper",slot:"Root",overridesResolver:(e,t)=>t.root})({});var eS=f.forwardRef(function(e,t){var o;let r=(0,c.Z)(),n=(0,eA.i)({props:e,name:"MuiPopper"}),{anchorEl:i,component:a,components:s,componentsProps:f,container:u,disablePortal:d,keepMounted:m,modifiers:h,open:v,placement:g,popperOptions:y,popperRef:b,transition:w,slots:x,slotProps:O}=n,Z=(0,l.Z)(n,eD),P=null!=(o=null==x?void 0:x.root)?o:null==s?void 0:s.Root,R=(0,p.Z)({anchorEl:i,container:u,disablePortal:d,keepMounted:m,modifiers:h,open:v,placement:g,popperOptions:y,popperRef:b,transition:w},Z);return(0,eZ.jsx)(eL,(0,p.Z)({as:a,direction:null==r?void 0:r.direction,slots:{root:P},slotProps:null!=O?O:f},R,{ref:t}))})},95511:function(e,t,o){o.d(t,{Z:function(){return N}});var r=o(32324),n=o(81500),i=o(35106),a=o(70316),s=o(67485),p=o(65951),l=o(64577),c=o(16501),f=o(85442),u=o(11844),d=o(34519),m=o(83855),h=o(28057),v=o(38762),g=o(37698),y=o(10612),b=o(10620),w=o(38481),x=o(88207),O=o(22125),Z=o(18280),P=o(11379),R=o(9049);function M(e){return(0,R.ZP)("MuiTooltip",e)}let E=(0,P.Z)("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);var j=o(94655);let T=["arrow","children","classes","components","componentsProps","describeChild","disableFocusListener","disableHoverListener","disableInteractive","disableTouchListener","enterDelay","enterNextDelay","enterTouchDelay","followCursor","id","leaveDelay","leaveTouchDelay","onClose","onOpen","open","placement","PopperComponent","PopperProps","slotProps","slots","title","TransitionComponent","TransitionProps"],k=e=>{let{classes:t,disableInteractive:o,arrow:r,touch:n,placement:i}=e,a={popper:["popper",!o&&"popperInteractive",r&&"popperArrow"],tooltip:["tooltip",r&&"tooltipArrow",n&&"touch","tooltipPlacement".concat((0,v.Z)(i.split("-")[0]))],arrow:["arrow"]};return(0,p.Z)(a,M,t)},C=(0,d.ZP)(y.Z,{name:"MuiTooltip",slot:"Popper",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.popper,!o.disableInteractive&&t.popperInteractive,o.arrow&&t.popperArrow,!o.open&&t.popperClose]}})(e=>{let{theme:t,ownerState:o,open:r}=e;return(0,n.Z)({zIndex:(t.vars||t).zIndex.tooltip,pointerEvents:"none"},!o.disableInteractive&&{pointerEvents:"auto"},!r&&{pointerEvents:"none"},o.arrow&&{['&[data-popper-placement*="bottom"] .'.concat(E.arrow)]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},['&[data-popper-placement*="top"] .'.concat(E.arrow)]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},['&[data-popper-placement*="right"] .'.concat(E.arrow)]:(0,n.Z)({},o.isRtl?{right:0,marginRight:"-0.71em"}:{left:0,marginLeft:"-0.71em"},{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}}),['&[data-popper-placement*="left"] .'.concat(E.arrow)]:(0,n.Z)({},o.isRtl?{left:0,marginLeft:"-0.71em"}:{right:0,marginRight:"-0.71em"},{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}})})}),A=(0,d.ZP)("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.tooltip,o.touch&&t.touch,o.arrow&&t.tooltipArrow,t["tooltipPlacement".concat((0,v.Z)(o.placement.split("-")[0]))]]}})(e=>{let{theme:t,ownerState:o}=e;return(0,n.Z)({backgroundColor:t.vars?t.vars.palette.Tooltip.bg:(0,l.Fq)(t.palette.grey[700],.92),borderRadius:(t.vars||t).shape.borderRadius,color:(t.vars||t).palette.common.white,fontFamily:t.typography.fontFamily,padding:"4px 8px",fontSize:t.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:t.typography.fontWeightMedium},o.arrow&&{position:"relative",margin:0},o.touch&&{padding:"8px 16px",fontSize:t.typography.pxToRem(14),lineHeight:"".concat(Math.round(16/14*1e5)/1e5,"em"),fontWeight:t.typography.fontWeightRegular},{[".".concat(E.popper,'[data-popper-placement*="left"] &')]:(0,n.Z)({transformOrigin:"right center"},o.isRtl?(0,n.Z)({marginLeft:"14px"},o.touch&&{marginLeft:"24px"}):(0,n.Z)({marginRight:"14px"},o.touch&&{marginRight:"24px"})),[".".concat(E.popper,'[data-popper-placement*="right"] &')]:(0,n.Z)({transformOrigin:"left center"},o.isRtl?(0,n.Z)({marginRight:"14px"},o.touch&&{marginRight:"24px"}):(0,n.Z)({marginLeft:"14px"},o.touch&&{marginLeft:"24px"})),[".".concat(E.popper,'[data-popper-placement*="top"] &')]:(0,n.Z)({transformOrigin:"center bottom",marginBottom:"14px"},o.touch&&{marginBottom:"24px"}),[".".concat(E.popper,'[data-popper-placement*="bottom"] &')]:(0,n.Z)({transformOrigin:"center top",marginTop:"14px"},o.touch&&{marginTop:"24px"})})}),D=(0,d.ZP)("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(e,t)=>t.arrow})(e=>{let{theme:t}=e;return{overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:t.vars?t.vars.palette.Tooltip.bg:(0,l.Fq)(t.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}}}),L=!1,S=new s.V,W={x:0,y:0};function B(e,t){return function(o){for(var r=arguments.length,n=Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];t&&t(o,...n),e(o,...n)}}var N=i.forwardRef(function(e,t){var o,p,l,d,v,P,R,M,E,N,H,F,I,V,_,q,U,z,X;let Y=(0,h.i)({props:e,name:"MuiTooltip"}),{arrow:G=!1,children:J,components:K={},componentsProps:Q={},describeChild:$=!1,disableFocusListener:ee=!1,disableHoverListener:et=!1,disableInteractive:eo=!1,disableTouchListener:er=!1,enterDelay:en=100,enterNextDelay:ei=0,enterTouchDelay:ea=700,followCursor:es=!1,id:ep,leaveDelay:el=0,leaveTouchDelay:ec=1500,onClose:ef,onOpen:eu,open:ed,placement:em="bottom",PopperComponent:eh,PopperProps:ev={},slotProps:eg={},slots:ey={},title:eb,TransitionComponent:ew=g.Z,TransitionProps:ex}=Y,eO=(0,r.Z)(Y,T),eZ=i.isValidElement(J)?J:(0,j.jsx)("span",{children:J}),eP=(0,m.Z)(),eR=(0,c.V)(),[eM,eE]=i.useState(),[ej,eT]=i.useState(null),ek=i.useRef(!1),eC=eo||es,eA=(0,s.Z)(),eD=(0,s.Z)(),eL=(0,s.Z)(),eS=(0,s.Z)(),[eW,eB]=(0,Z.Z)({controlled:ed,default:!1,name:"Tooltip",state:"open"}),eN=eW,eH=(0,x.Z)(ep),eF=i.useRef(),eI=(0,b.Z)(()=>{void 0!==eF.current&&(document.body.style.WebkitUserSelect=eF.current,eF.current=void 0),eS.clear()});i.useEffect(()=>eI,[eI]);let eV=e=>{S.clear(),L=!0,eB(!0),eu&&!eN&&eu(e)},e_=(0,b.Z)(e=>{S.start(800+el,()=>{L=!1}),eB(!1),ef&&eN&&ef(e),eA.start(eP.transitions.duration.shortest,()=>{ek.current=!1})}),eq=e=>{ek.current&&"touchstart"!==e.type||(eM&&eM.removeAttribute("title"),eD.clear(),eL.clear(),en||L&&ei?eD.start(L?ei:en,()=>{eV(e)}):eV(e))},eU=e=>{eD.clear(),eL.start(el,()=>{e_(e)})},{isFocusVisibleRef:ez,onBlur:eX,onFocus:eY,ref:eG}=(0,O.Z)(),[,eJ]=i.useState(!1),eK=e=>{eX(e),!1===ez.current&&(eJ(!1),eU(e))},eQ=e=>{eM||eE(e.currentTarget),eY(e),!0===ez.current&&(eJ(!0),eq(e))},e$=e=>{ek.current=!0;let t=eZ.props;t.onTouchStart&&t.onTouchStart(e)};i.useEffect(()=>{if(eN)return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)};function e(e){("Escape"===e.key||"Esc"===e.key)&&e_(e)}},[e_,eN]);let e0=(0,w.Z)((0,u.Z)(eZ),eG,eE,t);eb||0===eb||(eN=!1);let e1=i.useRef(),e2={},e5="string"==typeof eb;$?(e2.title=eN||!e5||et?null:eb,e2["aria-describedby"]=eN?eH:null):(e2["aria-label"]=e5?eb:null,e2["aria-labelledby"]=eN&&!e5?eH:null);let e4=(0,n.Z)({},e2,eO,eZ.props,{className:(0,a.Z)(eO.className,eZ.props.className),onTouchStart:e$,ref:e0},es?{onMouseMove:e=>{let t=eZ.props;t.onMouseMove&&t.onMouseMove(e),W={x:e.clientX,y:e.clientY},e1.current&&e1.current.update()}}:{}),e3={};er||(e4.onTouchStart=e=>{e$(e),eL.clear(),eA.clear(),eI(),eF.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",eS.start(ea,()=>{document.body.style.WebkitUserSelect=eF.current,eq(e)})},e4.onTouchEnd=e=>{eZ.props.onTouchEnd&&eZ.props.onTouchEnd(e),eI(),eL.start(ec,()=>{e_(e)})}),et||(e4.onMouseOver=B(eq,e4.onMouseOver),e4.onMouseLeave=B(eU,e4.onMouseLeave),eC||(e3.onMouseOver=eq,e3.onMouseLeave=eU)),ee||(e4.onFocus=B(eQ,e4.onFocus),e4.onBlur=B(eK,e4.onBlur),eC||(e3.onFocus=eQ,e3.onBlur=eK));let e9=i.useMemo(()=>{var e;let t=[{name:"arrow",enabled:!!ej,options:{element:ej,padding:4}}];return null!=(e=ev.popperOptions)&&e.modifiers&&(t=t.concat(ev.popperOptions.modifiers)),(0,n.Z)({},ev.popperOptions,{modifiers:t})},[ej,ev]),e7=(0,n.Z)({},Y,{isRtl:eR,arrow:G,disableInteractive:eC,placement:em,PopperComponentProp:eh,touch:ek.current}),e6=k(e7),e8=null!=(o=null!=(p=ey.popper)?p:K.Popper)?o:C,te=null!=(l=null!=(d=null!=(v=ey.transition)?v:K.Transition)?d:ew)?l:g.Z,tt=null!=(P=null!=(R=ey.tooltip)?R:K.Tooltip)?P:A,to=null!=(M=null!=(E=ey.arrow)?E:K.Arrow)?M:D,tr=(0,f.Z)(e8,(0,n.Z)({},ev,null!=(N=eg.popper)?N:Q.popper,{className:(0,a.Z)(e6.popper,null==ev?void 0:ev.className,null==(H=null!=(F=eg.popper)?F:Q.popper)?void 0:H.className)}),e7),tn=(0,f.Z)(te,(0,n.Z)({},ex,null!=(I=eg.transition)?I:Q.transition),e7),ti=(0,f.Z)(tt,(0,n.Z)({},null!=(V=eg.tooltip)?V:Q.tooltip,{className:(0,a.Z)(e6.tooltip,null==(_=null!=(q=eg.tooltip)?q:Q.tooltip)?void 0:_.className)}),e7),ta=(0,f.Z)(to,(0,n.Z)({},null!=(U=eg.arrow)?U:Q.arrow,{className:(0,a.Z)(e6.arrow,null==(z=null!=(X=eg.arrow)?X:Q.arrow)?void 0:z.className)}),e7);return(0,j.jsxs)(i.Fragment,{children:[i.cloneElement(eZ,e4),(0,j.jsx)(e8,(0,n.Z)({as:null!=eh?eh:y.Z,placement:em,anchorEl:es?{getBoundingClientRect:()=>({top:W.y,left:W.x,right:W.x,bottom:W.y,width:0,height:0})}:eM,popperRef:e1,open:!!eM&&eN,id:eH,transition:!0},e3,tr,{popperOptions:e9,children:e=>{let{TransitionProps:t}=e;return(0,j.jsx)(te,(0,n.Z)({timeout:eP.transitions.duration.shorter},t,tn,{children:(0,j.jsxs)(tt,(0,n.Z)({},ti,{children:[eb,G?(0,j.jsx)(to,(0,n.Z)({},ta,{ref:eT})):null]}))}))}}))]})})},22103:function(e,t,o){t.Z=void 0;var r=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var o=i(void 0);if(o&&o.has(e))return o.get(e);var r={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=n?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}return r.default=e,o&&o.set(e,r),r}(o(35106)),n=o(14526);function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,o=new WeakMap;return(i=function(e){return e?o:t})(e)}t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=r.useContext(n.ThemeContext);return t&&0!==Object.keys(t).length?t:e}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4743],{3590:function(e,t,r){Promise.resolve().then(r.bind(r,52791))},52791:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return eS}});var n=r(94655),s=r(35106),i=r(74228),a=r(7281),o=r(69899),l=r(31317),c=r(25333),d=r(76492),u=r(80620),x=r(78439),h=r(56813),m=r(26892),p=r(84840),g=r(628),j=r(41565),f=r(10721),v=r(69178),Z=r(46207),y=r(45354),b=r(35847);function S(e){var t,r,s;let{stats:i,isLoading:o}=e;if(o)return(0,n.jsx)(p.ZP,{container:!0,spacing:2,children:[0,1,2,3].map(e=>(0,n.jsx)(p.ZP,{item:!0,xs:6,md:3,children:(0,n.jsx)(g.Z,{children:(0,n.jsxs)(j.Z,{children:[(0,n.jsx)(f.Z,{variant:"text",width:"60%"}),(0,n.jsx)(f.Z,{variant:"text",width:"40%",height:40}),(0,n.jsx)(f.Z,{variant:"text",width:"80%"})]})})},e))});let c=null!==(t=null==i?void 0:i.total)&&void 0!==t?t:0,d=c>0?((null!==(r=null==i?void 0:i.byStatus.success)&&void 0!==r?r:0)/c*100).toFixed(1):"0.0",u=null!==(s=null==i?void 0:i.byStatus.failure)&&void 0!==s?s:0,x=i?Object.keys(i.byActor).length:0,h=[{title:"Total Logs",value:c.toLocaleString(),icon:(0,n.jsx)(v.Z,{fontSize:"large"}),color:"#1bd96a",description:"All audit log entries"},{title:"Success Rate",value:"".concat(d,"%"),icon:(0,n.jsx)(Z.Z,{fontSize:"large"}),color:"#22c55e",description:"Successful operations"},{title:"Failures",value:u,icon:(0,n.jsx)(y.Z,{fontSize:"large"}),color:"#ef4444",description:"Failed operations"},{title:"Active Users",value:x,icon:(0,n.jsx)(b.Z,{fontSize:"large"}),color:"#3b82f6",description:"Unique actors"}];return(0,n.jsx)(p.ZP,{container:!0,spacing:2,children:h.map(e=>(0,n.jsx)(p.ZP,{item:!0,xs:6,md:3,children:(0,n.jsx)(g.Z,{sx:{height:"100%",position:"relative",overflow:"hidden","&::before":{content:'""',position:"absolute",top:0,left:0,right:0,height:"4px",background:e.color}},children:(0,n.jsxs)(j.Z,{children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:2},children:[(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",sx:{fontWeight:500},children:e.title}),(0,n.jsx)(a.Z,{sx:{color:e.color,opacity:.8},children:e.icon})]}),(0,n.jsx)(l.Z,{variant:"h3",component:"div",sx:{fontWeight:700,color:"text.primary",mb:1},children:e.value}),(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",children:e.description})]})})},e.title))})}var C=r(97436),w=r(62328),T=r(7178),k=r(29793),z=r(75726),N=r(30417),R=r(87716),A=r(79983),E=r(89923),I=r(10297),F=r(50880),L=r(54617),D=r(42431),P=r(81960),W=r(84284),M=r(82925);function O(e){return"server"===e?M.Xn:"player"===e?M.KK:M.xg}function U(e){let t,{filters:r,onFiltersChange:i,onExport:o}=e,[d,u]=(0,s.useState)(!0),x=(t=0,r.action&&t++,r.actor&&t++,r.targetType&&t++,r.targetName&&t++,r.status&&t++,r.from&&t++,r.to&&t++,t),h=O(r.targetType),m=(e,t)=>{let n={...r};""===t||void 0===t?delete n[e]:n[e]=t,"targetType"===e&&n.action&&!O(t).includes(n.action)&&delete n.action,n.offset=0,i(n)};return(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:d?2:0},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,n.jsxs)(A.Z,{onClick:()=>u(!d),size:"small","aria-label":d?"Collapse filters":"Expand filters",children:[(0,n.jsx)(F.Z,{}),d?(0,n.jsx)(W.Z,{sx:{fontSize:14}}):(0,n.jsx)(P.Z,{sx:{fontSize:14}})]}),(0,n.jsx)(l.Z,{variant:"subtitle2",color:"text.secondary",children:"Filters"}),x>0&&(0,n.jsx)(c.Z,{label:x,size:"small",color:"primary",sx:{height:20,fontSize:"0.7rem"}})]}),(0,n.jsxs)(a.Z,{sx:{display:"flex",gap:1},children:[x>0&&(0,n.jsx)(N.Z,{size:"small",startIcon:(0,n.jsx)(L.Z,{}),onClick:()=>{i({limit:r.limit,sort:r.sort})},color:"inherit",children:"Clear All"}),o&&(0,n.jsx)(N.Z,{size:"small",variant:"outlined",onClick:o,children:"Export"})]})]}),(0,n.jsx)(R.Z,{in:d,children:(0,n.jsxs)(a.Z,{sx:{display:"flex",flexDirection:{xs:"column",md:"row"},gap:2,flexWrap:"wrap"},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",gap:1,alignItems:"center"},children:[(0,n.jsx)(C.Z,{type:"date",label:"From",size:"small",value:r.from?r.from.split("T")[0]:"",onChange:e=>{let t=e.target.value;m("from",t?"".concat(t,"T00:00:00Z"):void 0)},InputLabelProps:{shrink:!0},sx:{minWidth:150}}),(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:"~"}),(0,n.jsx)(C.Z,{type:"date",label:"To",size:"small",value:r.to?r.to.split("T")[0]:"",onChange:e=>{let t=e.target.value;m("to",t?"".concat(t,"T23:59:59Z"):void 0)},InputLabelProps:{shrink:!0},sx:{minWidth:150}})]}),(0,n.jsxs)(k.Z,{size:"small",sx:{minWidth:160},children:[(0,n.jsx)(z.Z,{children:"Action"}),(0,n.jsxs)(w.Z,{value:r.action||"",label:"Action",onChange:e=>m("action",e.target.value||void 0),children:[(0,n.jsx)(T.Z,{value:"",children:"All Actions"}),h.map(e=>(0,n.jsx)(T.Z,{value:e,children:M.n3[e]||e},e))]})]}),(0,n.jsx)(a.Z,{children:(0,n.jsxs)(I.Z,{value:r.targetType||"",exclusive:!0,onChange:(e,t)=>m("targetType",t||void 0),size:"small",children:[(0,n.jsx)(E.Z,{value:"","aria-label":"All targets",children:"All"}),(0,n.jsx)(E.Z,{value:"server","aria-label":"Server targets",children:"Server"}),(0,n.jsx)(E.Z,{value:"player","aria-label":"Player targets",children:"Player"})]})}),(0,n.jsx)(a.Z,{children:(0,n.jsxs)(I.Z,{value:r.status||"",exclusive:!0,onChange:(e,t)=>m("status",t||void 0),size:"small",children:[(0,n.jsx)(E.Z,{value:"","aria-label":"All statuses",children:"All"}),(0,n.jsx)(E.Z,{value:"success","aria-label":"Success only",children:"Success"}),(0,n.jsx)(E.Z,{value:"failure","aria-label":"Failure only",children:"Failure"})]})}),(0,n.jsx)(C.Z,{label:"Target Name",placeholder:"Search...",size:"small",value:r.targetName||"",onChange:e=>m("targetName",e.target.value||void 0),InputProps:{startAdornment:(0,n.jsx)(D.Z,{sx:{color:"text.secondary",mr:.5,fontSize:18}})},sx:{minWidth:160}}),(0,n.jsx)(C.Z,{label:"Actor",placeholder:"e.g., api:admin",size:"small",value:r.actor||"",onChange:e=>m("actor",e.target.value||void 0),sx:{minWidth:140}})]})})]})}var q=r(21138),K=r(84811),_=r(47001),B=r(53281),V=r(11254),X=r(70366),J=r(6406),H=r(95511),G=r(81071),Q=r(89161),Y=r(60236),$=r(27171),ee=r(30114),et=r(46725);function er(e){var t,r;let{log:i,onClick:o}=e,[d,u]=(0,s.useState)("failure"===i.status),x=i.details&&Object.keys(i.details).length>0,p="failure"===i.status&&i.errorMessage,g=x||p,j=(t=i.targetType,r=i.targetName,"server"===t?"/servers/".concat(encodeURIComponent(r)):"player"===t?"/players":null);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(X.Z,{hover:!0,sx:{cursor:"pointer","&:last-child td, &:last-child th":{border:0}},onClick:()=>null==o?void 0:o(i),tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),null==o||o(i))},role:"button","aria-label":"".concat(i.action," by ").concat(i.actor," on ").concat(i.targetName),children:[(0,n.jsx)(_.Z,{padding:"checkbox",sx:{width:48},children:g&&(0,n.jsx)(A.Z,{size:"small",onClick:e=>{e.stopPropagation(),u(!d)},"aria-label":d?"Collapse details":"Expand details",children:d?(0,n.jsx)(Y.Z,{}):(0,n.jsx)(Q.Z,{})})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(H.Z,{title:function(e){let t=new Date(e);return new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).format(t)}(i.timestamp),arrow:!0,children:(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:function(e){let t=new Date,r=new Date(e),n=Math.floor((t.getTime()-r.getTime())/1e3),s=Math.floor(n/60),i=Math.floor(s/60),a=Math.floor(i/24);return n<60?"just now":s<60?"".concat(s,"m ago"):i<24?"".concat(i,"h ago"):a<7?"".concat(a,"d ago"):new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric"}).format(r)}(i.timestamp)})})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(h.I,{action:i.action})}),(0,n.jsx)(_.Z,{children:i.actor.startsWith("cli:")?(0,n.jsx)(c.Z,{label:i.actor.replace("cli:",""),size:"small",variant:"outlined",sx:{fontSize:"0.75rem"}}):(0,n.jsx)(l.Z,{variant:"body2",children:i.actor.replace("api:","")})}),(0,n.jsx)(_.Z,{children:(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center"},children:[function(e){switch(e){case"server":return(0,n.jsx)($.Z,{sx:{fontSize:16,mr:.5,color:"text.secondary"}});case"player":return(0,n.jsx)(ee.Z,{sx:{fontSize:16,mr:.5,color:"text.secondary"}});default:return null}}(i.targetType),j?(0,n.jsx)(et.default,{href:j,style:{textDecoration:"none"},onClick:e=>e.stopPropagation(),children:(0,n.jsx)(l.Z,{variant:"body2",sx:{color:"primary.main","&:hover":{textDecoration:"underline"}},children:i.targetName})}):(0,n.jsx)(l.Z,{variant:"body2",children:i.targetName})]})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(m.c,{status:i.status})})]}),g&&(0,n.jsx)(X.Z,{children:(0,n.jsx)(_.Z,{sx:{py:0},colSpan:6,children:(0,n.jsx)(R.Z,{in:d,timeout:"auto",unmountOnExit:!0,children:(0,n.jsxs)(a.Z,{sx:{py:2,px:2},children:[p&&(0,n.jsx)(G.Z,{severity:"error",sx:{mb:2},children:i.errorMessage}),x&&(0,n.jsxs)(a.Z,{children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{mb:1,display:"block"},children:"Details"}),(0,n.jsx)(q.Z,{size:"small",sx:{width:"auto"},children:(0,n.jsx)(K.Z,{children:Object.entries(i.details).map(e=>{let[t,r]=e;return(0,n.jsxs)(X.Z,{children:[(0,n.jsx)(_.Z,{sx:{fontWeight:600,color:"text.secondary",border:"none",py:.5,pl:0},children:t}),(0,n.jsx)(_.Z,{sx:{border:"none",py:.5},children:String(r)})]},t)})})})]})]})})})})]})}function en(e){let{logs:t,total:r,isLoading:s,error:i,filters:a,onFiltersChange:c,onRowClick:d,onRetry:u}=e,x=Math.floor((a.offset||0)/(a.limit||50)),h=a.limit||50;return s?(0,n.jsx)(o.Z,{children:(0,n.jsx)(B.Z,{children:(0,n.jsxs)(q.Z,{children:[(0,n.jsx)(V.Z,{children:(0,n.jsxs)(X.Z,{children:[(0,n.jsx)(_.Z,{padding:"checkbox"}),(0,n.jsx)(_.Z,{children:"Timestamp"}),(0,n.jsx)(_.Z,{children:"Action"}),(0,n.jsx)(_.Z,{children:"Actor"}),(0,n.jsx)(_.Z,{children:"Target"}),(0,n.jsx)(_.Z,{children:"Status"})]})}),(0,n.jsx)(K.Z,{children:[void 0,void 0,void 0,void 0,void 0].map((e,t)=>(0,n.jsxs)(X.Z,{children:[(0,n.jsx)(_.Z,{padding:"checkbox"}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(f.Z,{variant:"text",width:80})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(f.Z,{variant:"rounded",width:70,height:24})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(f.Z,{variant:"text",width:60})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(f.Z,{variant:"text",width:100})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(f.Z,{variant:"rounded",width:50,height:24})})]},t))})]})})}):i?(0,n.jsx)(G.Z,{severity:"error",action:u&&(0,n.jsx)(N.Z,{color:"inherit",size:"small",onClick:u,children:"Retry"}),children:i.message||"Failed to load audit logs"}):0===t.length?(0,n.jsxs)(o.Z,{sx:{p:6,textAlign:"center"},children:[(0,n.jsx)(v.Z,{sx:{fontSize:64,color:"text.disabled",mb:2}}),(0,n.jsx)(l.Z,{variant:"h6",color:"text.secondary",gutterBottom:!0,children:"No audit logs found"}),(0,n.jsx)(l.Z,{variant:"body2",color:"text.disabled",sx:{mb:2},children:"Try adjusting your filters or check back later."}),(0,n.jsx)(N.Z,{variant:"outlined",size:"small",onClick:()=>c({limit:a.limit,sort:a.sort}),children:"Reset Filters"})]}):(0,n.jsxs)(o.Z,{children:[(0,n.jsx)(B.Z,{sx:{overflowX:"auto"},children:(0,n.jsxs)(q.Z,{size:"small",children:[(0,n.jsx)(V.Z,{children:(0,n.jsxs)(X.Z,{children:[(0,n.jsx)(_.Z,{padding:"checkbox",sx:{width:48}}),(0,n.jsx)(_.Z,{sx:{fontWeight:600,whiteSpace:"nowrap"},children:"Timestamp"}),(0,n.jsx)(_.Z,{sx:{fontWeight:600},children:"Action"}),(0,n.jsx)(_.Z,{sx:{fontWeight:600},children:"Actor"}),(0,n.jsx)(_.Z,{sx:{fontWeight:600},children:"Target"}),(0,n.jsx)(_.Z,{sx:{fontWeight:600},children:"Status"})]})}),(0,n.jsx)(K.Z,{children:t.map(e=>(0,n.jsx)(er,{log:e,onClick:d},e.id))})]})}),(0,n.jsx)(J.Z,{component:"div",count:r,page:x,onPageChange:(e,t)=>{c({...a,offset:t*h})},rowsPerPage:h,onRowsPerPageChange:e=>{let t=parseInt(e.target.value,10);c({...a,limit:t,offset:0})},rowsPerPageOptions:[25,50,100],"aria-label":"Audit log pagination"})]})}var es=r(78765),ei=r(69123),ea=r(33402),eo=r(60097),el=r(90158),ec=r(58347),ed=r(73424),eu=r(93017),ex=r(71185),eh=r(84509);function em(e){let{logs:t}=e;return 0===t.length?(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"No related logs found"}):(0,n.jsx)(el.Z,{dense:!0,sx:{py:0},children:t.map(e=>(0,n.jsx)(ec.ZP,{sx:{px:0,py:1,"&:not(:last-child)":{borderBottom:"1px solid",borderColor:"divider"}},children:(0,n.jsx)(ed.Z,{primary:(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,n.jsx)(h.I,{action:e.action,size:"small"}),e.targetName&&(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:e.targetName})]}),secondary:function(e){let t=new Date,r=new Date(e),n=Math.floor((t.getTime()-r.getTime())/6e4),s=Math.floor(n/60);return n<60?"".concat(n,"m ago"):s<24?"".concat(s,"h ago"):"".concat(Math.floor(s/24),"d ago")}(e.timestamp)})},e.id))})}function ep(e){var t,r,i,o,c;let{log:d,open:u,onClose:x}=e,[p,g]=(0,s.useState)(0),{data:j,isLoading:f}=(0,eh.VM)(null!==(t=null==d?void 0:d.id)&&void 0!==t?t:null,{enabled:u&&!!d});return(0,n.jsxs)(es.ZP,{anchor:"right",open:u,onClose:x,sx:{"& .MuiDrawer-paper":{width:{xs:"100%",sm:420},maxWidth:"100%"}},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",p:2,borderBottom:"1px solid",borderColor:"divider"},children:[(0,n.jsx)(l.Z,{variant:"h6",component:"h2",children:"Audit Log Detail"}),(0,n.jsx)(A.Z,{onClick:x,"aria-label":"Close detail drawer",autoFocus:!0,children:(0,n.jsx)(ex.Z,{})})]}),(0,n.jsx)(a.Z,{sx:{p:2,overflow:"auto",flex:1},children:d?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"ID"}),(0,n.jsx)(l.Z,{variant:"body2",sx:{fontFamily:"monospace",fontSize:"0.8rem",wordBreak:"break-all"},children:d.id})]}),(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Timestamp"}),(0,n.jsx)(l.Z,{variant:"body2",children:function(e){let t=new Date(e);return new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).format(t)}(d.timestamp)})]}),(0,n.jsxs)(a.Z,{sx:{display:"flex",gap:3,mb:3},children:[(0,n.jsxs)(a.Z,{children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Action"}),(0,n.jsx)(h.I,{action:d.action,size:"medium"})]}),(0,n.jsxs)(a.Z,{children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Status"}),(0,n.jsx)(m.c,{status:d.status,size:"medium"})]})]}),(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Actor"}),(0,n.jsx)(l.Z,{variant:"body2",children:d.actor})]}),(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Target"}),(0,n.jsxs)(l.Z,{variant:"body2",children:[d.targetType,"/",d.targetName]})]}),"failure"===d.status&&d.errorMessage&&(0,n.jsx)(G.Z,{severity:"error",sx:{mb:3},children:d.errorMessage}),d.details&&Object.keys(d.details).length>0&&(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(ei.Z,{sx:{mb:2}}),(0,n.jsx)(l.Z,{variant:"subtitle2",sx:{mb:1},children:"Details"}),(0,n.jsx)(q.Z,{size:"small",children:(0,n.jsx)(K.Z,{children:Object.entries(d.details).map(e=>{let[t,r]=e;return(0,n.jsxs)(X.Z,{children:[(0,n.jsx)(_.Z,{sx:{fontWeight:600,color:"text.secondary",border:"none",py:.5,pl:0,width:"40%"},children:t}),(0,n.jsx)(_.Z,{sx:{border:"none",py:.5},children:String(r)})]},t)})})})]}),(0,n.jsx)(ei.Z,{sx:{mb:2}}),(0,n.jsx)(l.Z,{variant:"subtitle2",sx:{mb:1},children:"Related Logs"}),f?(0,n.jsx)(a.Z,{sx:{display:"flex",justifyContent:"center",py:3},children:(0,n.jsx)(eu.Z,{size:24})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(ea.Z,{value:p,onChange:(e,t)=>g(t),sx:{mb:1},children:[(0,n.jsx)(eo.Z,{label:"Same Target (".concat(null!==(r=null==j?void 0:j.relatedLogs.sameTarget.length)&&void 0!==r?r:0,")"),sx:{textTransform:"none",fontSize:"0.8rem"}}),(0,n.jsx)(eo.Z,{label:"Same Actor (".concat(null!==(i=null==j?void 0:j.relatedLogs.sameActor.length)&&void 0!==i?i:0,")"),sx:{textTransform:"none",fontSize:"0.8rem"}})]}),0===p&&(0,n.jsx)(em,{logs:null!==(o=null==j?void 0:j.relatedLogs.sameTarget)&&void 0!==o?o:[]}),1===p&&(0,n.jsx)(em,{logs:null!==(c=null==j?void 0:j.relatedLogs.sameActor)&&void 0!==c?c:[]})]})]}):(0,n.jsx)(l.Z,{color:"text.secondary",children:"No log selected"})})]})}var eg=r(99770),ej=r(62508),ef=r(5682),ev=r(76678),eZ=r(15761);function ey(e){let{open:t,onClose:r,filters:i,totalCount:o}=e,[c,d]=(0,s.useState)("csv"),[u,x]=(0,s.useState)(!1),[h,m]=(0,s.useState)(null),p=function(e){let t=[];return e.action&&t.push("Action: ".concat(e.action)),e.actor&&t.push("Actor: ".concat(e.actor)),e.targetType&&t.push("Type: ".concat(e.targetType)),e.targetName&&t.push("Target: ".concat(e.targetName)),e.status&&t.push("Status: ".concat(e.status)),e.from&&t.push("From: ".concat(e.from.split("T")[0])),e.to&&t.push("To: ".concat(e.to.split("T")[0])),t}(i),g=async()=>{x(!0),m(null);try{let e=function(e,t){let r=new URLSearchParams;return r.set("format",t),e.action&&r.set("action",e.action),e.actor&&r.set("actor",e.actor),e.targetType&&r.set("targetType",e.targetType),e.targetName&&r.set("targetName",e.targetName),e.status&&r.set("status",e.status),e.from&&r.set("from",e.from),e.to&&r.set("to",e.to),"/api/audit-logs/export?".concat(r.toString())}(i,c),t=await fetch(e);if(!t.ok){let e=await t.json().catch(()=>({message:"Export failed"}));throw Error(e.message||"Export failed")}let n=await t.blob(),s=window.URL.createObjectURL(n),a=document.createElement("a");a.href=s;let o=t.headers.get("Content-Disposition"),l=null==o?void 0:o.match(/filename="?([^"]+)"?/);a.download=(null==l?void 0:l[1])||"audit-logs.".concat(c),document.body.appendChild(a),a.click(),document.body.removeChild(a),window.URL.revokeObjectURL(s),r()}catch(e){m(e instanceof Error?e.message:"Export failed")}finally{x(!1)}};return(0,n.jsxs)(eg.Z,{open:t,onClose:r,maxWidth:"sm",fullWidth:!0,children:[(0,n.jsx)(ej.Z,{children:"Export Audit Logs"}),(0,n.jsxs)(ef.Z,{children:[(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(l.Z,{variant:"subtitle2",sx:{mb:1},children:"Format"}),(0,n.jsxs)(I.Z,{value:c,exclusive:!0,onChange:(e,t)=>t&&d(t),size:"small",children:[(0,n.jsx)(E.Z,{value:"csv",children:"CSV"}),(0,n.jsx)(E.Z,{value:"json",children:"JSON"})]})]}),(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(l.Z,{variant:"subtitle2",sx:{mb:1},children:"Applied Filters"}),p.length>0?(0,n.jsx)(a.Z,{sx:{display:"flex",flexDirection:"column",gap:.5},children:p.map(e=>(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:e},e))}):(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:"No filters applied (all logs)"})]}),(0,n.jsxs)(a.Z,{sx:{mb:2},children:[(0,n.jsx)(l.Z,{variant:"subtitle2",sx:{mb:.5},children:"Estimated Rows"}),(0,n.jsxs)(l.Z,{variant:"body2",color:"text.secondary",children:[Math.min(o,5e3).toLocaleString()," rows"]})]}),o>5e3&&(0,n.jsxs)(G.Z,{severity:"warning",sx:{mb:2},children:["Export is limited to ",5e3.toLocaleString()," rows. Total matching logs: ",o.toLocaleString(),". Consider narrowing your filters for a complete export."]}),h&&(0,n.jsx)(G.Z,{severity:"error",sx:{mb:2},children:h})]}),(0,n.jsxs)(ev.Z,{children:[(0,n.jsx)(N.Z,{onClick:r,disabled:u,children:"Cancel"}),(0,n.jsx)(N.Z,{variant:"contained",startIcon:u?(0,n.jsx)(eu.Z,{size:16,color:"inherit"}):(0,n.jsx)(eZ.Z,{}),onClick:g,disabled:u,children:u?"Exporting...":"Export ".concat(c.toUpperCase())})]})]})}var eb=r(93757);function eS(){var e,t,r;let h=(0,i.useRouter)(),m=(0,i.useSearchParams)(),[p,g]=(0,s.useState)(()=>(function(e){let t={},r=e.get("action"),n=e.get("actor"),s=e.get("targetType"),i=e.get("targetName"),a=e.get("status"),o=e.get("from"),l=e.get("to"),c=e.get("limit"),d=e.get("offset"),u=e.get("sort");return r&&(t.action=r),n&&(t.actor=n),s&&(t.targetType=s),i&&(t.targetName=i),a&&(t.status=a),o&&(t.from=o),l&&(t.to=l),c&&(t.limit=parseInt(c,10)),d&&(t.offset=parseInt(d,10)),("timestamp:asc"===u||"timestamp:desc"===u)&&(t.sort=u),t})(m)),[j,f]=(0,s.useState)(null),[v,Z]=(0,s.useState)(!1),[y,b]=(0,s.useState)(!1),[C,w]=(0,s.useState)(0),T=(0,s.useRef)(new Set),{data:k,isLoading:z,error:N,refetch:R}=(0,eh.hT)(p),{data:A,isLoading:E}=(0,eh.DM)(),{isConnected:I}=(0,eb.D)({url:"/api/audit-logs/stream",enabled:!0,onMessage:(0,s.useCallback)(e=>{if("audit-log"===e.type){let t=e.data;if("id"in t&&"string"==typeof t.id){if(T.current.has(t.id))return;if(T.current.add(t.id),T.current.size>1e3){let e=Array.from(T.current);T.current=new Set(e.slice(e.length-500))}}w(e=>e+1)}},[]),reconnectInterval:3e3,maxReconnectAttempts:1/0});(0,s.useEffect)(()=>{let e=function(e){let t=new URLSearchParams;e.action&&t.set("action",e.action),e.actor&&t.set("actor",e.actor),e.targetType&&t.set("targetType",e.targetType),e.targetName&&t.set("targetName",e.targetName),e.status&&t.set("status",e.status),e.from&&t.set("from",e.from),e.to&&t.set("to",e.to),e.limit&&50!==e.limit&&t.set("limit",String(e.limit)),e.offset&&e.offset>0&&t.set("offset",String(e.offset)),e.sort&&"timestamp:desc"!==e.sort&&t.set("sort",e.sort);let r=t.toString();return r?"?".concat(r):""}(p);e!==(m.toString()?"?".concat(m.toString()):"")&&h.replace("/audit-logs".concat(e),{scroll:!1})},[p,h,m]);let F=(0,s.useCallback)(e=>{g(e),w(0)},[]),L=(0,s.useCallback)(e=>{f(e),Z(!0)},[]),D=(0,s.useCallback)(()=>{w(0),R()},[R]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,d.Fq)(e.palette.warning.main,.1)," 0%, ").concat((0,d.Fq)(e.palette.error.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,d.Fq)(e.palette.warning.main,.2))},children:(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"warning.main",color:"warning.contrastText"},children:(0,n.jsx)(u.Z,{sx:{fontSize:32}})}),(0,n.jsxs)(a.Z,{sx:{flex:1},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[(0,n.jsx)(l.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Audit Log"}),(0,n.jsx)(c.Z,{icon:(0,n.jsx)(x.Z,{sx:{fontSize:10,color:I?"success.main":"text.disabled",animation:I?"pulse 2s infinite":"none","@keyframes pulse":{"0%":{opacity:1},"50%":{opacity:.4},"100%":{opacity:1}}}}),label:I?"Live":"Offline",size:"small",variant:"outlined",sx:{fontSize:"0.7rem"}})]}),(0,n.jsx)(l.Z,{variant:"body1",color:"text.secondary",children:"Monitor all management activities across your servers"})]})]})}),(0,n.jsx)(a.Z,{sx:{mb:3},children:(0,n.jsx)(S,{stats:A,isLoading:E})}),C>0&&(0,n.jsx)(a.Z,{sx:{mb:2,p:1.5,textAlign:"center",bgcolor:"primary.main",color:"primary.contrastText",borderRadius:1,cursor:"pointer","&:hover":{opacity:.9}},onClick:D,role:"button","aria-label":"".concat(C," new logs, click to refresh"),children:(0,n.jsxs)(l.Z,{variant:"body2",fontWeight:600,children:[C," new ",1===C?"log":"logs"," available - Click to refresh"]})}),(0,n.jsx)(U,{filters:p,onFiltersChange:F,onExport:()=>b(!0)}),(0,n.jsx)(en,{logs:null!==(e=null==k?void 0:k.logs)&&void 0!==e?e:[],total:null!==(t=null==k?void 0:k.total)&&void 0!==t?t:0,isLoading:z,error:N,filters:p,onFiltersChange:F,onRowClick:L,onRetry:()=>R()}),(0,n.jsx)(ep,{log:j,open:v,onClose:()=>{Z(!1),f(null)}}),(0,n.jsx)(ey,{open:y,onClose:()=>b(!1),filters:p,totalCount:null!==(r=null==k?void 0:k.total)&&void 0!==r?r:0})]})}},56813:function(e,t,r){"use strict";r.d(t,{I:function(){return a}});var n=r(94655),s=r(25333),i=r(82925);function a(e){let{action:t,size:r="small"}=e,a=i.Lu[t]||"default",o=i.n3[t]||t;return(0,n.jsx)(s.Z,{label:o,color:a,size:r,variant:"filled",sx:{fontWeight:600,fontSize:"small"===r?"0.7rem":"0.8rem"}})}},26892:function(e,t,r){"use strict";r.d(t,{c:function(){return o}});var n=r(94655),s=r(25333),i=r(46207),a=r(43436);function o(e){let{status:t,size:r="small"}=e;return(0,n.jsx)(s.Z,{icon:"success"===t?(0,n.jsx)(i.Z,{}):(0,n.jsx)(a.Z,{}),label:"success"===t?"OK":"Error",color:"success"===t?"success":"error",size:r,variant:"outlined",sx:{fontWeight:500,fontSize:"small"===r?"0.7rem":"0.8rem"}})}},42936:function(e,t,r){"use strict";async function n(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={...t.headers};t.body&&(r["Content-Type"]="application/json");let n=await fetch(e,{...t,headers:r});if(!n.ok){let e=await n.json().catch(()=>({error:"UnknownError",message:n.statusText})),t=Error(e.message);throw t.statusCode=n.status,t.code=e.error,t}return n.json()}r.d(t,{SC:function(){return n}})},84509:function(e,t,r){"use strict";r.d(t,{DM:function(){return a},HZ:function(){return l},VM:function(){return o},hT:function(){return i},oL:function(){return c}});var n=r(5632),s=r(42936);function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r=function(e){let t=new URLSearchParams;e.action&&t.set("action",e.action),e.actor&&t.set("actor",e.actor),e.targetType&&t.set("targetType",e.targetType),e.targetName&&t.set("targetName",e.targetName),e.status&&t.set("status",e.status),e.from&&t.set("from",e.from),e.to&&t.set("to",e.to),void 0!==e.limit&&t.set("limit",String(e.limit)),void 0!==e.offset&&t.set("offset",String(e.offset)),e.sort&&t.set("sort",e.sort);let r=t.toString();return r?"?".concat(r):""}(e);return(0,n.a)({queryKey:["audit-logs",e],queryFn:()=>(0,s.SC)("/api/audit-logs".concat(r)),enabled:(null==t?void 0:t.enabled)!==!1})}function a(e){return(0,n.a)({queryKey:["audit-logs","stats"],queryFn:()=>(0,s.SC)("/api/audit-logs/stats"),enabled:(null==e?void 0:e.enabled)!==!1,refetchInterval:3e4})}function o(e,t){return(0,n.a)({queryKey:["audit-logs",e],queryFn:()=>(0,s.SC)("/api/audit-logs/".concat(encodeURIComponent(e))),enabled:(null==t?void 0:t.enabled)!==!1&&!!e})}function l(e,t){var r;return i({targetType:"server",targetName:e,limit:null!==(r=null==t?void 0:t.limit)&&void 0!==r?r:20},{enabled:(null==t?void 0:t.enabled)!==!1&&!!e})}function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return i({limit:e,sort:"timestamp:desc"})}},93757:function(e,t,r){"use strict";r.d(t,{D:function(){return i}});var n=r(35106);class s{connect(e){this.options=e,this.shouldReconnect=!0,this.establishConnection()}establishConnection(){this.options&&(this.updateState("connecting"),this.eventSource&&this.eventSource.close(),this.eventSource=new EventSource(this.options.url,{withCredentials:this.options.withCredentials||!1}),this.eventSource.onopen=()=>{this.updateState("connected"),this.retryCount=0,this.lastError=null},this.eventSource.onmessage=e=>{if(!e.data.startsWith(":"))try{var t,r;let n=JSON.parse(e.data);null===(r=this.options)||void 0===r||null===(t=r.onMessage)||void 0===t||t.call(r,n)}catch(e){console.warn("Failed to parse SSE message:",e)}},this.eventSource.onerror=()=>{var e,t;let r={message:"SSE connection error",code:"CONNECTION_ERROR",retryCount:this.retryCount,timestamp:new Date};this.lastError=r,this.updateState("error"),null===(t=this.options)||void 0===t||null===(e=t.onError)||void 0===e||e.call(t,r),this.shouldReconnect&&this.scheduleReconnect()})}scheduleReconnect(){var e,t;if(!this.options)return;let r=null!==(e=this.options.maxReconnectAttempts)&&void 0!==e?e:1/0;if(this.retryCount>=r)return;this.reconnectTimer&&clearTimeout(this.reconnectTimer);let n=null!==(t=this.options.reconnectInterval)&&void 0!==t?t:3e3;this.reconnectTimer=setTimeout(()=>{this.retryCount++,this.establishConnection()},n)}disconnect(){this.shouldReconnect=!1,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.updateState("disconnected")}getState(){return this.state}isConnected(){return"connected"===this.state}getLastError(){return this.lastError}getRetryCount(){return this.retryCount}reconnect(){this.retryCount++,this.shouldReconnect=!0,this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.establishConnection()}updateState(e){var t,r;this.state=e,null===(r=this.options)||void 0===r||null===(t=r.onStateChange)||void 0===t||t.call(r,e)}constructor(){this.eventSource=null,this.state="disconnected",this.retryCount=0,this.lastError=null,this.reconnectTimer=null,this.options=null,this.shouldReconnect=!0}}function i(e){let{url:t,onMessage:r,onError:i,reconnectInterval:a=3e3,maxReconnectAttempts:o=1/0,enabled:l=!0,withCredentials:c=!1}=e,[d,u]=(0,n.useState)(null),[x,h]=(0,n.useState)("disconnected"),[m,p]=(0,n.useState)(null),[g,j]=(0,n.useState)(0),f=(0,n.useRef)(null),v=(0,n.useCallback)(e=>{u(e),null==r||r(e)},[r]),Z=(0,n.useCallback)(e=>{h(e),"connected"===e&&j(0)},[]),y=(0,n.useCallback)(e=>{p(e),"number"==typeof e.retryCount&&j(e.retryCount),null==i||i(e)},[i]),b=(0,n.useCallback)(()=>{f.current&&(f.current.reconnect(),j(f.current.getRetryCount()))},[]),S=(0,n.useCallback)(()=>{f.current&&f.current.disconnect()},[]);return(0,n.useEffect)(()=>{if(!l){f.current&&(f.current.disconnect(),f.current=null);return}return f.current||(f.current=new s),f.current.connect({url:t,onMessage:v,onStateChange:Z,onError:y,reconnectInterval:a,maxReconnectAttempts:o,withCredentials:c}),()=>{f.current&&(f.current.disconnect(),f.current=null)}},[t,l,a,o,c,v,Z,y]),{data:d,isConnected:"connected"===x,state:x,error:m,retryCount:g,reconnect:b,disconnect:S}}},82925:function(e,t,r){"use strict";r.d(t,{KK:function(){return o},Lu:function(){return n},Xn:function(){return a},n3:function(){return s},xg:function(){return i}});let n={"server.create":"success","server.delete":"error","server.start":"info","server.stop":"warning","server.restart":"secondary","player.whitelist.add":"success","player.whitelist.remove":"warning","player.ban":"error","player.unban":"success","player.op":"info","player.deop":"warning","player.kick":"error","audit.purge":"default"},s={"server.create":"Create","server.delete":"Delete","server.start":"Start","server.stop":"Stop","server.restart":"Restart","player.whitelist.add":"Whitelist Add","player.whitelist.remove":"Whitelist Remove","player.ban":"Ban","player.unban":"Unban","player.op":"Op","player.deop":"Deop","player.kick":"Kick","audit.purge":"Purge"},i=["server.create","server.delete","server.start","server.stop","server.restart","player.whitelist.add","player.whitelist.remove","player.ban","player.unban","player.op","player.deop","player.kick","audit.purge"],a=["server.create","server.delete","server.start","server.stop","server.restart"],o=["player.whitelist.add","player.whitelist.remove","player.ban","player.unban","player.op","player.deop","player.kick"]}},function(e){e.O(0,[6812,7220,8006,7294,8696,1071,540,6189,4840,5511,55,310,8347,4278,9654,2022,8918,406,3669,2757,1744],function(){return e(e.s=3590)}),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4743],{3590:function(e,t,r){Promise.resolve().then(r.bind(r,52791))},52791:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return eS}});var n=r(94655),s=r(35106),i=r(74228),a=r(7281),o=r(69899),l=r(31317),c=r(25333),d=r(76492),u=r(80620),x=r(78439),h=r(56813),m=r(26892),p=r(84840),g=r(628),j=r(41565),f=r(10721),v=r(69178),Z=r(46207),y=r(45354),b=r(35847);function S(e){var t,r,s;let{stats:i,isLoading:o}=e;if(o)return(0,n.jsx)(p.ZP,{container:!0,spacing:2,children:[0,1,2,3].map(e=>(0,n.jsx)(p.ZP,{item:!0,xs:6,md:3,children:(0,n.jsx)(g.Z,{children:(0,n.jsxs)(j.Z,{children:[(0,n.jsx)(f.Z,{variant:"text",width:"60%"}),(0,n.jsx)(f.Z,{variant:"text",width:"40%",height:40}),(0,n.jsx)(f.Z,{variant:"text",width:"80%"})]})})},e))});let c=null!==(t=null==i?void 0:i.total)&&void 0!==t?t:0,d=c>0?((null!==(r=null==i?void 0:i.byStatus.success)&&void 0!==r?r:0)/c*100).toFixed(1):"0.0",u=null!==(s=null==i?void 0:i.byStatus.failure)&&void 0!==s?s:0,x=i?Object.keys(i.byActor).length:0,h=[{title:"Total Logs",value:c.toLocaleString(),icon:(0,n.jsx)(v.Z,{fontSize:"large"}),color:"#1bd96a",description:"All audit log entries"},{title:"Success Rate",value:"".concat(d,"%"),icon:(0,n.jsx)(Z.Z,{fontSize:"large"}),color:"#22c55e",description:"Successful operations"},{title:"Failures",value:u,icon:(0,n.jsx)(y.Z,{fontSize:"large"}),color:"#ef4444",description:"Failed operations"},{title:"Active Users",value:x,icon:(0,n.jsx)(b.Z,{fontSize:"large"}),color:"#3b82f6",description:"Unique actors"}];return(0,n.jsx)(p.ZP,{container:!0,spacing:2,children:h.map(e=>(0,n.jsx)(p.ZP,{item:!0,xs:6,md:3,children:(0,n.jsx)(g.Z,{sx:{height:"100%",position:"relative",overflow:"hidden","&::before":{content:'""',position:"absolute",top:0,left:0,right:0,height:"4px",background:e.color}},children:(0,n.jsxs)(j.Z,{children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:2},children:[(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",sx:{fontWeight:500},children:e.title}),(0,n.jsx)(a.Z,{sx:{color:e.color,opacity:.8},children:e.icon})]}),(0,n.jsx)(l.Z,{variant:"h3",component:"div",sx:{fontWeight:700,color:"text.primary",mb:1},children:e.value}),(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",children:e.description})]})})},e.title))})}var C=r(97436),w=r(62328),T=r(7178),k=r(29793),z=r(75726),N=r(30417),R=r(87716),A=r(79983),E=r(89923),I=r(10297),F=r(50880),L=r(54617),D=r(42431),P=r(81960),W=r(84284),M=r(82925);function O(e){return"server"===e?M.Xn:"player"===e?M.KK:M.xg}function U(e){let t,{filters:r,onFiltersChange:i,onExport:o}=e,[d,u]=(0,s.useState)(!0),x=(t=0,r.action&&t++,r.actor&&t++,r.targetType&&t++,r.targetName&&t++,r.status&&t++,r.from&&t++,r.to&&t++,t),h=O(r.targetType),m=(e,t)=>{let n={...r};""===t||void 0===t?delete n[e]:n[e]=t,"targetType"===e&&n.action&&!O(t).includes(n.action)&&delete n.action,n.offset=0,i(n)};return(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:d?2:0},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,n.jsxs)(A.Z,{onClick:()=>u(!d),size:"small","aria-label":d?"Collapse filters":"Expand filters",children:[(0,n.jsx)(F.Z,{}),d?(0,n.jsx)(W.Z,{sx:{fontSize:14}}):(0,n.jsx)(P.Z,{sx:{fontSize:14}})]}),(0,n.jsx)(l.Z,{variant:"subtitle2",color:"text.secondary",children:"Filters"}),x>0&&(0,n.jsx)(c.Z,{label:x,size:"small",color:"primary",sx:{height:20,fontSize:"0.7rem"}})]}),(0,n.jsxs)(a.Z,{sx:{display:"flex",gap:1},children:[x>0&&(0,n.jsx)(N.Z,{size:"small",startIcon:(0,n.jsx)(L.Z,{}),onClick:()=>{i({limit:r.limit,sort:r.sort})},color:"inherit",children:"Clear All"}),o&&(0,n.jsx)(N.Z,{size:"small",variant:"outlined",onClick:o,children:"Export"})]})]}),(0,n.jsx)(R.Z,{in:d,children:(0,n.jsxs)(a.Z,{sx:{display:"flex",flexDirection:{xs:"column",md:"row"},gap:2,flexWrap:"wrap"},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",gap:1,alignItems:"center"},children:[(0,n.jsx)(C.Z,{type:"date",label:"From",size:"small",value:r.from?r.from.split("T")[0]:"",onChange:e=>{let t=e.target.value;m("from",t?"".concat(t,"T00:00:00Z"):void 0)},InputLabelProps:{shrink:!0},sx:{minWidth:150}}),(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:"~"}),(0,n.jsx)(C.Z,{type:"date",label:"To",size:"small",value:r.to?r.to.split("T")[0]:"",onChange:e=>{let t=e.target.value;m("to",t?"".concat(t,"T23:59:59Z"):void 0)},InputLabelProps:{shrink:!0},sx:{minWidth:150}})]}),(0,n.jsxs)(k.Z,{size:"small",sx:{minWidth:160},children:[(0,n.jsx)(z.Z,{children:"Action"}),(0,n.jsxs)(w.Z,{value:r.action||"",label:"Action",onChange:e=>m("action",e.target.value||void 0),children:[(0,n.jsx)(T.Z,{value:"",children:"All Actions"}),h.map(e=>(0,n.jsx)(T.Z,{value:e,children:M.n3[e]||e},e))]})]}),(0,n.jsx)(a.Z,{children:(0,n.jsxs)(I.Z,{value:r.targetType||"",exclusive:!0,onChange:(e,t)=>m("targetType",t||void 0),size:"small",children:[(0,n.jsx)(E.Z,{value:"","aria-label":"All targets",children:"All"}),(0,n.jsx)(E.Z,{value:"server","aria-label":"Server targets",children:"Server"}),(0,n.jsx)(E.Z,{value:"player","aria-label":"Player targets",children:"Player"})]})}),(0,n.jsx)(a.Z,{children:(0,n.jsxs)(I.Z,{value:r.status||"",exclusive:!0,onChange:(e,t)=>m("status",t||void 0),size:"small",children:[(0,n.jsx)(E.Z,{value:"","aria-label":"All statuses",children:"All"}),(0,n.jsx)(E.Z,{value:"success","aria-label":"Success only",children:"Success"}),(0,n.jsx)(E.Z,{value:"failure","aria-label":"Failure only",children:"Failure"})]})}),(0,n.jsx)(C.Z,{label:"Target Name",placeholder:"Search...",size:"small",value:r.targetName||"",onChange:e=>m("targetName",e.target.value||void 0),InputProps:{startAdornment:(0,n.jsx)(D.Z,{sx:{color:"text.secondary",mr:.5,fontSize:18}})},sx:{minWidth:160}}),(0,n.jsx)(C.Z,{label:"Actor",placeholder:"e.g., api:admin",size:"small",value:r.actor||"",onChange:e=>m("actor",e.target.value||void 0),sx:{minWidth:140}})]})})]})}var q=r(21138),K=r(84811),_=r(47001),B=r(53281),V=r(11254),X=r(70366),J=r(6406),H=r(95511),G=r(81071),Q=r(89161),Y=r(60236),$=r(27171),ee=r(30114),et=r(46725);function er(e){var t,r;let{log:i,onClick:o}=e,[d,u]=(0,s.useState)("failure"===i.status),x=i.details&&Object.keys(i.details).length>0,p="failure"===i.status&&i.errorMessage,g=x||p,j=(t=i.targetType,r=i.targetName,"server"===t?"/servers/".concat(encodeURIComponent(r)):"player"===t?"/players":null);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(X.Z,{hover:!0,sx:{cursor:"pointer","&:last-child td, &:last-child th":{border:0}},onClick:()=>null==o?void 0:o(i),tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),null==o||o(i))},role:"button","aria-label":"".concat(i.action," by ").concat(i.actor," on ").concat(i.targetName),children:[(0,n.jsx)(_.Z,{padding:"checkbox",sx:{width:48},children:g&&(0,n.jsx)(A.Z,{size:"small",onClick:e=>{e.stopPropagation(),u(!d)},"aria-label":d?"Collapse details":"Expand details",children:d?(0,n.jsx)(Y.Z,{}):(0,n.jsx)(Q.Z,{})})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(H.Z,{title:function(e){let t=new Date(e);return new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).format(t)}(i.timestamp),arrow:!0,children:(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:function(e){let t=new Date,r=new Date(e),n=Math.floor((t.getTime()-r.getTime())/1e3),s=Math.floor(n/60),i=Math.floor(s/60),a=Math.floor(i/24);return n<60?"just now":s<60?"".concat(s,"m ago"):i<24?"".concat(i,"h ago"):a<7?"".concat(a,"d ago"):new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric"}).format(r)}(i.timestamp)})})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(h.I,{action:i.action})}),(0,n.jsx)(_.Z,{children:i.actor.startsWith("cli:")?(0,n.jsx)(c.Z,{label:i.actor.replace("cli:",""),size:"small",variant:"outlined",sx:{fontSize:"0.75rem"}}):(0,n.jsx)(l.Z,{variant:"body2",children:i.actor.replace("api:","")})}),(0,n.jsx)(_.Z,{children:(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center"},children:[function(e){switch(e){case"server":return(0,n.jsx)($.Z,{sx:{fontSize:16,mr:.5,color:"text.secondary"}});case"player":return(0,n.jsx)(ee.Z,{sx:{fontSize:16,mr:.5,color:"text.secondary"}});default:return null}}(i.targetType),j?(0,n.jsx)(et.default,{href:j,style:{textDecoration:"none"},onClick:e=>e.stopPropagation(),children:(0,n.jsx)(l.Z,{variant:"body2",sx:{color:"primary.main","&:hover":{textDecoration:"underline"}},children:i.targetName})}):(0,n.jsx)(l.Z,{variant:"body2",children:i.targetName})]})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(m.c,{status:i.status})})]}),g&&(0,n.jsx)(X.Z,{children:(0,n.jsx)(_.Z,{sx:{py:0},colSpan:6,children:(0,n.jsx)(R.Z,{in:d,timeout:"auto",unmountOnExit:!0,children:(0,n.jsxs)(a.Z,{sx:{py:2,px:2},children:[p&&(0,n.jsx)(G.Z,{severity:"error",sx:{mb:2},children:i.errorMessage}),x&&(0,n.jsxs)(a.Z,{children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{mb:1,display:"block"},children:"Details"}),(0,n.jsx)(q.Z,{size:"small",sx:{width:"auto"},children:(0,n.jsx)(K.Z,{children:Object.entries(i.details).map(e=>{let[t,r]=e;return(0,n.jsxs)(X.Z,{children:[(0,n.jsx)(_.Z,{sx:{fontWeight:600,color:"text.secondary",border:"none",py:.5,pl:0},children:t}),(0,n.jsx)(_.Z,{sx:{border:"none",py:.5},children:String(r)})]},t)})})})]})]})})})})]})}function en(e){let{logs:t,total:r,isLoading:s,error:i,filters:a,onFiltersChange:c,onRowClick:d,onRetry:u}=e,x=Math.floor((a.offset||0)/(a.limit||50)),h=a.limit||50;return s?(0,n.jsx)(o.Z,{children:(0,n.jsx)(B.Z,{children:(0,n.jsxs)(q.Z,{children:[(0,n.jsx)(V.Z,{children:(0,n.jsxs)(X.Z,{children:[(0,n.jsx)(_.Z,{padding:"checkbox"}),(0,n.jsx)(_.Z,{children:"Timestamp"}),(0,n.jsx)(_.Z,{children:"Action"}),(0,n.jsx)(_.Z,{children:"Actor"}),(0,n.jsx)(_.Z,{children:"Target"}),(0,n.jsx)(_.Z,{children:"Status"})]})}),(0,n.jsx)(K.Z,{children:[void 0,void 0,void 0,void 0,void 0].map((e,t)=>(0,n.jsxs)(X.Z,{children:[(0,n.jsx)(_.Z,{padding:"checkbox"}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(f.Z,{variant:"text",width:80})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(f.Z,{variant:"rounded",width:70,height:24})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(f.Z,{variant:"text",width:60})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(f.Z,{variant:"text",width:100})}),(0,n.jsx)(_.Z,{children:(0,n.jsx)(f.Z,{variant:"rounded",width:50,height:24})})]},t))})]})})}):i?(0,n.jsx)(G.Z,{severity:"error",action:u&&(0,n.jsx)(N.Z,{color:"inherit",size:"small",onClick:u,children:"Retry"}),children:i.message||"Failed to load audit logs"}):0===t.length?(0,n.jsxs)(o.Z,{sx:{p:6,textAlign:"center"},children:[(0,n.jsx)(v.Z,{sx:{fontSize:64,color:"text.disabled",mb:2}}),(0,n.jsx)(l.Z,{variant:"h6",color:"text.secondary",gutterBottom:!0,children:"No audit logs found"}),(0,n.jsx)(l.Z,{variant:"body2",color:"text.disabled",sx:{mb:2},children:"Try adjusting your filters or check back later."}),(0,n.jsx)(N.Z,{variant:"outlined",size:"small",onClick:()=>c({limit:a.limit,sort:a.sort}),children:"Reset Filters"})]}):(0,n.jsxs)(o.Z,{children:[(0,n.jsx)(B.Z,{sx:{overflowX:"auto"},children:(0,n.jsxs)(q.Z,{size:"small",children:[(0,n.jsx)(V.Z,{children:(0,n.jsxs)(X.Z,{children:[(0,n.jsx)(_.Z,{padding:"checkbox",sx:{width:48}}),(0,n.jsx)(_.Z,{sx:{fontWeight:600,whiteSpace:"nowrap"},children:"Timestamp"}),(0,n.jsx)(_.Z,{sx:{fontWeight:600},children:"Action"}),(0,n.jsx)(_.Z,{sx:{fontWeight:600},children:"Actor"}),(0,n.jsx)(_.Z,{sx:{fontWeight:600},children:"Target"}),(0,n.jsx)(_.Z,{sx:{fontWeight:600},children:"Status"})]})}),(0,n.jsx)(K.Z,{children:t.map(e=>(0,n.jsx)(er,{log:e,onClick:d},e.id))})]})}),(0,n.jsx)(J.Z,{component:"div",count:r,page:x,onPageChange:(e,t)=>{c({...a,offset:t*h})},rowsPerPage:h,onRowsPerPageChange:e=>{let t=parseInt(e.target.value,10);c({...a,limit:t,offset:0})},rowsPerPageOptions:[25,50,100],"aria-label":"Audit log pagination"})]})}var es=r(78765),ei=r(69123),ea=r(33402),eo=r(60097),el=r(90158),ec=r(58347),ed=r(73424),eu=r(93017),ex=r(71185),eh=r(84509);function em(e){let{logs:t}=e;return 0===t.length?(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"No related logs found"}):(0,n.jsx)(el.Z,{dense:!0,sx:{py:0},children:t.map(e=>(0,n.jsx)(ec.ZP,{sx:{px:0,py:1,"&:not(:last-child)":{borderBottom:"1px solid",borderColor:"divider"}},children:(0,n.jsx)(ed.Z,{primary:(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,n.jsx)(h.I,{action:e.action,size:"small"}),e.targetName&&(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:e.targetName})]}),secondary:function(e){let t=new Date,r=new Date(e),n=Math.floor((t.getTime()-r.getTime())/6e4),s=Math.floor(n/60);return n<60?"".concat(n,"m ago"):s<24?"".concat(s,"h ago"):"".concat(Math.floor(s/24),"d ago")}(e.timestamp)})},e.id))})}function ep(e){var t,r,i,o,c;let{log:d,open:u,onClose:x}=e,[p,g]=(0,s.useState)(0),{data:j,isLoading:f}=(0,eh.VM)(null!==(t=null==d?void 0:d.id)&&void 0!==t?t:null,{enabled:u&&!!d});return(0,n.jsxs)(es.ZP,{anchor:"right",open:u,onClose:x,sx:{"& .MuiDrawer-paper":{width:{xs:"100%",sm:420},maxWidth:"100%"}},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",p:2,borderBottom:"1px solid",borderColor:"divider"},children:[(0,n.jsx)(l.Z,{variant:"h6",component:"h2",children:"Audit Log Detail"}),(0,n.jsx)(A.Z,{onClick:x,"aria-label":"Close detail drawer",autoFocus:!0,children:(0,n.jsx)(ex.Z,{})})]}),(0,n.jsx)(a.Z,{sx:{p:2,overflow:"auto",flex:1},children:d?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"ID"}),(0,n.jsx)(l.Z,{variant:"body2",sx:{fontFamily:"monospace",fontSize:"0.8rem",wordBreak:"break-all"},children:d.id})]}),(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Timestamp"}),(0,n.jsx)(l.Z,{variant:"body2",children:function(e){let t=new Date(e);return new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).format(t)}(d.timestamp)})]}),(0,n.jsxs)(a.Z,{sx:{display:"flex",gap:3,mb:3},children:[(0,n.jsxs)(a.Z,{children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Action"}),(0,n.jsx)(h.I,{action:d.action,size:"medium"})]}),(0,n.jsxs)(a.Z,{children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Status"}),(0,n.jsx)(m.c,{status:d.status,size:"medium"})]})]}),(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Actor"}),(0,n.jsx)(l.Z,{variant:"body2",children:d.actor})]}),(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(l.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Target"}),(0,n.jsxs)(l.Z,{variant:"body2",children:[d.targetType,"/",d.targetName]})]}),"failure"===d.status&&d.errorMessage&&(0,n.jsx)(G.Z,{severity:"error",sx:{mb:3},children:d.errorMessage}),d.details&&Object.keys(d.details).length>0&&(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(ei.Z,{sx:{mb:2}}),(0,n.jsx)(l.Z,{variant:"subtitle2",sx:{mb:1},children:"Details"}),(0,n.jsx)(q.Z,{size:"small",children:(0,n.jsx)(K.Z,{children:Object.entries(d.details).map(e=>{let[t,r]=e;return(0,n.jsxs)(X.Z,{children:[(0,n.jsx)(_.Z,{sx:{fontWeight:600,color:"text.secondary",border:"none",py:.5,pl:0,width:"40%"},children:t}),(0,n.jsx)(_.Z,{sx:{border:"none",py:.5},children:String(r)})]},t)})})})]}),(0,n.jsx)(ei.Z,{sx:{mb:2}}),(0,n.jsx)(l.Z,{variant:"subtitle2",sx:{mb:1},children:"Related Logs"}),f?(0,n.jsx)(a.Z,{sx:{display:"flex",justifyContent:"center",py:3},children:(0,n.jsx)(eu.Z,{size:24})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(ea.Z,{value:p,onChange:(e,t)=>g(t),sx:{mb:1},children:[(0,n.jsx)(eo.Z,{label:"Same Target (".concat(null!==(r=null==j?void 0:j.relatedLogs.sameTarget.length)&&void 0!==r?r:0,")"),sx:{textTransform:"none",fontSize:"0.8rem"}}),(0,n.jsx)(eo.Z,{label:"Same Actor (".concat(null!==(i=null==j?void 0:j.relatedLogs.sameActor.length)&&void 0!==i?i:0,")"),sx:{textTransform:"none",fontSize:"0.8rem"}})]}),0===p&&(0,n.jsx)(em,{logs:null!==(o=null==j?void 0:j.relatedLogs.sameTarget)&&void 0!==o?o:[]}),1===p&&(0,n.jsx)(em,{logs:null!==(c=null==j?void 0:j.relatedLogs.sameActor)&&void 0!==c?c:[]})]})]}):(0,n.jsx)(l.Z,{color:"text.secondary",children:"No log selected"})})]})}var eg=r(99770),ej=r(62508),ef=r(5682),ev=r(76678),eZ=r(15761);function ey(e){let{open:t,onClose:r,filters:i,totalCount:o}=e,[c,d]=(0,s.useState)("csv"),[u,x]=(0,s.useState)(!1),[h,m]=(0,s.useState)(null),p=function(e){let t=[];return e.action&&t.push("Action: ".concat(e.action)),e.actor&&t.push("Actor: ".concat(e.actor)),e.targetType&&t.push("Type: ".concat(e.targetType)),e.targetName&&t.push("Target: ".concat(e.targetName)),e.status&&t.push("Status: ".concat(e.status)),e.from&&t.push("From: ".concat(e.from.split("T")[0])),e.to&&t.push("To: ".concat(e.to.split("T")[0])),t}(i),g=async()=>{x(!0),m(null);try{let e=function(e,t){let r=new URLSearchParams;return r.set("format",t),e.action&&r.set("action",e.action),e.actor&&r.set("actor",e.actor),e.targetType&&r.set("targetType",e.targetType),e.targetName&&r.set("targetName",e.targetName),e.status&&r.set("status",e.status),e.from&&r.set("from",e.from),e.to&&r.set("to",e.to),"/api/audit-logs/export?".concat(r.toString())}(i,c),t=await fetch(e);if(!t.ok){let e=await t.json().catch(()=>({message:"Export failed"}));throw Error(e.message||"Export failed")}let n=await t.blob(),s=window.URL.createObjectURL(n),a=document.createElement("a");a.href=s;let o=t.headers.get("Content-Disposition"),l=null==o?void 0:o.match(/filename="?([^"]+)"?/);a.download=(null==l?void 0:l[1])||"audit-logs.".concat(c),document.body.appendChild(a),a.click(),document.body.removeChild(a),window.URL.revokeObjectURL(s),r()}catch(e){m(e instanceof Error?e.message:"Export failed")}finally{x(!1)}};return(0,n.jsxs)(eg.Z,{open:t,onClose:r,maxWidth:"sm",fullWidth:!0,children:[(0,n.jsx)(ej.Z,{children:"Export Audit Logs"}),(0,n.jsxs)(ef.Z,{children:[(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(l.Z,{variant:"subtitle2",sx:{mb:1},children:"Format"}),(0,n.jsxs)(I.Z,{value:c,exclusive:!0,onChange:(e,t)=>t&&d(t),size:"small",children:[(0,n.jsx)(E.Z,{value:"csv",children:"CSV"}),(0,n.jsx)(E.Z,{value:"json",children:"JSON"})]})]}),(0,n.jsxs)(a.Z,{sx:{mb:3},children:[(0,n.jsx)(l.Z,{variant:"subtitle2",sx:{mb:1},children:"Applied Filters"}),p.length>0?(0,n.jsx)(a.Z,{sx:{display:"flex",flexDirection:"column",gap:.5},children:p.map(e=>(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:e},e))}):(0,n.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:"No filters applied (all logs)"})]}),(0,n.jsxs)(a.Z,{sx:{mb:2},children:[(0,n.jsx)(l.Z,{variant:"subtitle2",sx:{mb:.5},children:"Estimated Rows"}),(0,n.jsxs)(l.Z,{variant:"body2",color:"text.secondary",children:[Math.min(o,5e3).toLocaleString()," rows"]})]}),o>5e3&&(0,n.jsxs)(G.Z,{severity:"warning",sx:{mb:2},children:["Export is limited to ",5e3.toLocaleString()," rows. Total matching logs: ",o.toLocaleString(),". Consider narrowing your filters for a complete export."]}),h&&(0,n.jsx)(G.Z,{severity:"error",sx:{mb:2},children:h})]}),(0,n.jsxs)(ev.Z,{children:[(0,n.jsx)(N.Z,{onClick:r,disabled:u,children:"Cancel"}),(0,n.jsx)(N.Z,{variant:"contained",startIcon:u?(0,n.jsx)(eu.Z,{size:16,color:"inherit"}):(0,n.jsx)(eZ.Z,{}),onClick:g,disabled:u,children:u?"Exporting...":"Export ".concat(c.toUpperCase())})]})]})}var eb=r(93757);function eS(){var e,t,r;let h=(0,i.useRouter)(),m=(0,i.useSearchParams)(),[p,g]=(0,s.useState)(()=>(function(e){let t={},r=e.get("action"),n=e.get("actor"),s=e.get("targetType"),i=e.get("targetName"),a=e.get("status"),o=e.get("from"),l=e.get("to"),c=e.get("limit"),d=e.get("offset"),u=e.get("sort");return r&&(t.action=r),n&&(t.actor=n),s&&(t.targetType=s),i&&(t.targetName=i),a&&(t.status=a),o&&(t.from=o),l&&(t.to=l),c&&(t.limit=parseInt(c,10)),d&&(t.offset=parseInt(d,10)),("timestamp:asc"===u||"timestamp:desc"===u)&&(t.sort=u),t})(m)),[j,f]=(0,s.useState)(null),[v,Z]=(0,s.useState)(!1),[y,b]=(0,s.useState)(!1),[C,w]=(0,s.useState)(0),T=(0,s.useRef)(new Set),{data:k,isLoading:z,error:N,refetch:R}=(0,eh.hT)(p),{data:A,isLoading:E}=(0,eh.DM)(),{isConnected:I}=(0,eb.D)({url:"/api/audit-logs/stream",enabled:!0,onMessage:(0,s.useCallback)(e=>{if("audit-log"===e.type){let t=e.data;if("id"in t&&"string"==typeof t.id){if(T.current.has(t.id))return;if(T.current.add(t.id),T.current.size>1e3){let e=Array.from(T.current);T.current=new Set(e.slice(e.length-500))}}w(e=>e+1)}},[]),reconnectInterval:3e3,maxReconnectAttempts:1/0});(0,s.useEffect)(()=>{let e=function(e){let t=new URLSearchParams;e.action&&t.set("action",e.action),e.actor&&t.set("actor",e.actor),e.targetType&&t.set("targetType",e.targetType),e.targetName&&t.set("targetName",e.targetName),e.status&&t.set("status",e.status),e.from&&t.set("from",e.from),e.to&&t.set("to",e.to),e.limit&&50!==e.limit&&t.set("limit",String(e.limit)),e.offset&&e.offset>0&&t.set("offset",String(e.offset)),e.sort&&"timestamp:desc"!==e.sort&&t.set("sort",e.sort);let r=t.toString();return r?"?".concat(r):""}(p);e!==(m.toString()?"?".concat(m.toString()):"")&&h.replace("/audit-logs".concat(e),{scroll:!1})},[p,h,m]);let F=(0,s.useCallback)(e=>{g(e),w(0)},[]),L=(0,s.useCallback)(e=>{f(e),Z(!0)},[]),D=(0,s.useCallback)(()=>{w(0),R()},[R]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,d.Fq)(e.palette.warning.main,.1)," 0%, ").concat((0,d.Fq)(e.palette.error.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,d.Fq)(e.palette.warning.main,.2))},children:(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"warning.main",color:"warning.contrastText"},children:(0,n.jsx)(u.Z,{sx:{fontSize:32}})}),(0,n.jsxs)(a.Z,{sx:{flex:1},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[(0,n.jsx)(l.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Audit Log"}),(0,n.jsx)(c.Z,{icon:(0,n.jsx)(x.Z,{sx:{fontSize:10,color:I?"success.main":"text.disabled",animation:I?"pulse 2s infinite":"none","@keyframes pulse":{"0%":{opacity:1},"50%":{opacity:.4},"100%":{opacity:1}}}}),label:I?"Live":"Offline",size:"small",variant:"outlined",sx:{fontSize:"0.7rem"}})]}),(0,n.jsx)(l.Z,{variant:"body1",color:"text.secondary",children:"Monitor all management activities across your servers"})]})]})}),(0,n.jsx)(a.Z,{sx:{mb:3},children:(0,n.jsx)(S,{stats:A,isLoading:E})}),C>0&&(0,n.jsx)(a.Z,{sx:{mb:2,p:1.5,textAlign:"center",bgcolor:"primary.main",color:"primary.contrastText",borderRadius:1,cursor:"pointer","&:hover":{opacity:.9}},onClick:D,role:"button","aria-label":"".concat(C," new logs, click to refresh"),children:(0,n.jsxs)(l.Z,{variant:"body2",fontWeight:600,children:[C," new ",1===C?"log":"logs"," available - Click to refresh"]})}),(0,n.jsx)(U,{filters:p,onFiltersChange:F,onExport:()=>b(!0)}),(0,n.jsx)(en,{logs:null!==(e=null==k?void 0:k.logs)&&void 0!==e?e:[],total:null!==(t=null==k?void 0:k.total)&&void 0!==t?t:0,isLoading:z,error:N,filters:p,onFiltersChange:F,onRowClick:L,onRetry:()=>R()}),(0,n.jsx)(ep,{log:j,open:v,onClose:()=>{Z(!1),f(null)}}),(0,n.jsx)(ey,{open:y,onClose:()=>b(!1),filters:p,totalCount:null!==(r=null==k?void 0:k.total)&&void 0!==r?r:0})]})}},56813:function(e,t,r){"use strict";r.d(t,{I:function(){return a}});var n=r(94655),s=r(25333),i=r(82925);function a(e){let{action:t,size:r="small"}=e,a=i.Lu[t]||"default",o=i.n3[t]||t;return(0,n.jsx)(s.Z,{label:o,color:a,size:r,variant:"filled",sx:{fontWeight:600,fontSize:"small"===r?"0.7rem":"0.8rem"}})}},26892:function(e,t,r){"use strict";r.d(t,{c:function(){return o}});var n=r(94655),s=r(25333),i=r(46207),a=r(43436);function o(e){let{status:t,size:r="small"}=e;return(0,n.jsx)(s.Z,{icon:"success"===t?(0,n.jsx)(i.Z,{}):(0,n.jsx)(a.Z,{}),label:"success"===t?"OK":"Error",color:"success"===t?"success":"error",size:r,variant:"outlined",sx:{fontWeight:500,fontSize:"small"===r?"0.7rem":"0.8rem"}})}},42936:function(e,t,r){"use strict";async function n(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={...t.headers};t.body&&(r["Content-Type"]="application/json");let n=await fetch(e,{...t,headers:r});if(!n.ok){let e=await n.json().catch(()=>({error:"UnknownError",message:n.statusText})),t=Error(e.message);throw t.statusCode=n.status,t.code=e.error,t}return n.json()}r.d(t,{SC:function(){return n}})},84509:function(e,t,r){"use strict";r.d(t,{DM:function(){return a},HZ:function(){return l},VM:function(){return o},hT:function(){return i},oL:function(){return c}});var n=r(5632),s=r(42936);function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r=function(e){let t=new URLSearchParams;e.action&&t.set("action",e.action),e.actor&&t.set("actor",e.actor),e.targetType&&t.set("targetType",e.targetType),e.targetName&&t.set("targetName",e.targetName),e.status&&t.set("status",e.status),e.from&&t.set("from",e.from),e.to&&t.set("to",e.to),void 0!==e.limit&&t.set("limit",String(e.limit)),void 0!==e.offset&&t.set("offset",String(e.offset)),e.sort&&t.set("sort",e.sort);let r=t.toString();return r?"?".concat(r):""}(e);return(0,n.a)({queryKey:["audit-logs",e],queryFn:()=>(0,s.SC)("/api/audit-logs".concat(r)),enabled:(null==t?void 0:t.enabled)!==!1})}function a(e){return(0,n.a)({queryKey:["audit-logs","stats"],queryFn:()=>(0,s.SC)("/api/audit-logs/stats"),enabled:(null==e?void 0:e.enabled)!==!1,refetchInterval:3e4})}function o(e,t){return(0,n.a)({queryKey:["audit-logs",e],queryFn:()=>(0,s.SC)("/api/audit-logs/".concat(encodeURIComponent(e))),enabled:(null==t?void 0:t.enabled)!==!1&&!!e})}function l(e,t){var r;return i({targetType:"server",targetName:e,limit:null!==(r=null==t?void 0:t.limit)&&void 0!==r?r:20},{enabled:(null==t?void 0:t.enabled)!==!1&&!!e})}function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return i({limit:e,sort:"timestamp:desc"})}},93757:function(e,t,r){"use strict";r.d(t,{D:function(){return i}});var n=r(35106);class s{connect(e){this.options=e,this.shouldReconnect=!0,this.establishConnection()}establishConnection(){this.options&&(this.updateState("connecting"),this.eventSource&&this.eventSource.close(),this.eventSource=new EventSource(this.options.url,{withCredentials:this.options.withCredentials||!1}),this.eventSource.onopen=()=>{this.updateState("connected"),this.retryCount=0,this.lastError=null},this.eventSource.onmessage=e=>{if(!e.data.startsWith(":"))try{var t,r;let n=JSON.parse(e.data);null===(r=this.options)||void 0===r||null===(t=r.onMessage)||void 0===t||t.call(r,n)}catch(e){console.warn("Failed to parse SSE message:",e)}},this.eventSource.onerror=()=>{var e,t;let r={message:"SSE connection error",code:"CONNECTION_ERROR",retryCount:this.retryCount,timestamp:new Date};this.lastError=r,this.updateState("error"),null===(t=this.options)||void 0===t||null===(e=t.onError)||void 0===e||e.call(t,r),this.shouldReconnect&&this.scheduleReconnect()})}scheduleReconnect(){var e,t;if(!this.options)return;let r=null!==(e=this.options.maxReconnectAttempts)&&void 0!==e?e:1/0;if(this.retryCount>=r)return;this.reconnectTimer&&clearTimeout(this.reconnectTimer);let n=null!==(t=this.options.reconnectInterval)&&void 0!==t?t:3e3;this.reconnectTimer=setTimeout(()=>{this.retryCount++,this.establishConnection()},n)}disconnect(){this.shouldReconnect=!1,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.updateState("disconnected")}getState(){return this.state}isConnected(){return"connected"===this.state}getLastError(){return this.lastError}getRetryCount(){return this.retryCount}reconnect(){this.retryCount++,this.shouldReconnect=!0,this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.establishConnection()}updateState(e){var t,r;this.state=e,null===(r=this.options)||void 0===r||null===(t=r.onStateChange)||void 0===t||t.call(r,e)}constructor(){this.eventSource=null,this.state="disconnected",this.retryCount=0,this.lastError=null,this.reconnectTimer=null,this.options=null,this.shouldReconnect=!0}}function i(e){let{url:t,onMessage:r,onError:i,reconnectInterval:a=3e3,maxReconnectAttempts:o=1/0,enabled:l=!0,withCredentials:c=!1}=e,[d,u]=(0,n.useState)(null),[x,h]=(0,n.useState)("disconnected"),[m,p]=(0,n.useState)(null),[g,j]=(0,n.useState)(0),f=(0,n.useRef)(null),v=(0,n.useCallback)(e=>{u(e),null==r||r(e)},[r]),Z=(0,n.useCallback)(e=>{h(e),"connected"===e&&j(0)},[]),y=(0,n.useCallback)(e=>{p(e),"number"==typeof e.retryCount&&j(e.retryCount),null==i||i(e)},[i]),b=(0,n.useCallback)(()=>{f.current&&(f.current.reconnect(),j(f.current.getRetryCount()))},[]),S=(0,n.useCallback)(()=>{f.current&&f.current.disconnect()},[]);return(0,n.useEffect)(()=>{if(!l){f.current&&(f.current.disconnect(),f.current=null);return}return f.current||(f.current=new s),f.current.connect({url:t,onMessage:v,onStateChange:Z,onError:y,reconnectInterval:a,maxReconnectAttempts:o,withCredentials:c}),()=>{f.current&&(f.current.disconnect(),f.current=null)}},[t,l,a,o,c,v,Z,y]),{data:d,isConnected:"connected"===x,state:x,error:m,retryCount:g,reconnect:b,disconnect:S}}},82925:function(e,t,r){"use strict";r.d(t,{KK:function(){return o},Lu:function(){return n},Xn:function(){return a},n3:function(){return s},xg:function(){return i}});let n={"server.create":"success","server.delete":"error","server.start":"info","server.stop":"warning","server.restart":"secondary","player.whitelist.add":"success","player.whitelist.remove":"warning","player.ban":"error","player.unban":"success","player.op":"info","player.deop":"warning","player.kick":"error","audit.purge":"default"},s={"server.create":"Create","server.delete":"Delete","server.start":"Start","server.stop":"Stop","server.restart":"Restart","player.whitelist.add":"Whitelist Add","player.whitelist.remove":"Whitelist Remove","player.ban":"Ban","player.unban":"Unban","player.op":"Op","player.deop":"Deop","player.kick":"Kick","audit.purge":"Purge"},i=["server.create","server.delete","server.start","server.stop","server.restart","player.whitelist.add","player.whitelist.remove","player.ban","player.unban","player.op","player.deop","player.kick","audit.purge"],a=["server.create","server.delete","server.start","server.stop","server.restart"],o=["player.whitelist.add","player.whitelist.remove","player.ban","player.unban","player.op","player.deop","player.kick"]}},function(e){e.O(0,[6812,9760,6758,680,1668,7436,1071,540,4416,9810,7073,880,55,9654,8347,6909,4474,8918,6479,3669,2757,1744],function(){return e(e.s=3590)}),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6302],{1366:function(e,n,t){Promise.resolve().then(t.bind(t,6643))},6643:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return P}});var r=t(94655),s=t(31317),i=t(7281),o=t(69899),a=t(70115),c=t(76492),u=t(91606),l=t(628),d=t(41565),h=t(25333),x=t(46207),y=t(43436),m=t(92666);function j(){let{data:e,isLoading:n,error:t}=(0,m.mj)();if(n)return(0,r.jsx)(l.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(s.Z,{variant:"h6",gutterBottom:!0,children:"Backup Status"}),(0,r.jsx)(s.Z,{color:"text.secondary",children:"Loading..."})]})});if(t)return(0,r.jsx)(l.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(s.Z,{variant:"h6",gutterBottom:!0,children:"Backup Status"}),(0,r.jsx)(s.Z,{color:"error",children:"Failed to load backup status"})]})});let{configured:o,lastBackup:a,repository:c}=e||{};return(0,r.jsx)(l.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsxs)(i.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,r.jsx)(s.Z,{variant:"h6",children:"Backup Status"}),(0,r.jsx)(h.Z,{icon:o?(0,r.jsx)(x.Z,{}):(0,r.jsx)(y.Z,{}),label:o?"Configured":"Not Configured",color:o?"success":"error",size:"small"})]}),o?(0,r.jsxs)(i.Z,{sx:{display:"flex",flexDirection:"column",gap:1},children:[c&&(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"caption",color:"text.secondary",children:"Repository"}),(0,r.jsx)(s.Z,{variant:"body2",sx:{fontFamily:"monospace",fontSize:"0.875rem"},children:c})]}),a&&(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"caption",color:"text.secondary",children:"Last Backup"}),(0,r.jsx)(s.Z,{variant:"body2",children:function(e){let n=new Date,t=new Date(e),r=Math.floor((n.getTime()-t.getTime())/6e4),s=Math.floor(r/60);return r<1?"just now":r<60?"".concat(r," minutes ago"):s<24?"".concat(s," hours ago"):"".concat(Math.floor(s/24)," days ago")}(a)})]}),!a&&(0,r.jsx)(s.Z,{variant:"body2",color:"text.secondary",children:"No backups yet"})]}):(0,r.jsx)(s.Z,{variant:"body2",color:"text.secondary",children:"GitHub backup is not configured. Please configure BACKUP_REPO_URL in your environment."})]})})}var f=t(35106),p=t(21138),v=t(84811),Z=t(47001),g=t(53281),b=t(11254),S=t(70366),C=t(79983),k=t(97731),w=t(30417),q=t(99770),F=t(76678),I=t(5682),K=t(65087),D=t(62508),T=t(81071),N=t(93017);function B(e){var n;let{open:t,commit:o,onClose:a}=e,{mutate:c,isPending:u}=(0,m.s8)(),[l,d]=(0,f.useState)(""),[h,x]=(0,f.useState)(""),y=()=>{u||(d(""),x(""),a())};return(0,r.jsxs)(q.Z,{open:t,onClose:y,maxWidth:"sm",fullWidth:!0,children:[(0,r.jsx)(D.Z,{children:"Restore Backup"}),(0,r.jsxs)(I.Z,{children:[(0,r.jsx)(T.Z,{severity:"warning",sx:{mb:2},children:"This will restore all worlds from the selected backup. Current world data will be overwritten."}),l&&(0,r.jsx)(T.Z,{severity:"success",sx:{mb:2},children:l}),h&&(0,r.jsx)(T.Z,{severity:"error",sx:{mb:2},children:h}),(0,r.jsx)(K.Z,{sx:{mb:2},children:"Are you sure you want to restore from this backup?"}),(0,r.jsxs)(i.Z,{sx:{display:"flex",flexDirection:"column",gap:1},children:[(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"caption",color:"text.secondary",children:"Commit Hash"}),(0,r.jsx)(s.Z,{variant:"body2",sx:{fontFamily:"monospace",fontSize:"0.875rem"},children:o.hash})]}),(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"caption",color:"text.secondary",children:"Date"}),(0,r.jsx)(s.Z,{variant:"body2",children:(n=o.date,new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date(n)))})]}),(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"caption",color:"text.secondary",children:"Message"}),(0,r.jsx)(s.Z,{variant:"body2",children:o.message})]}),(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"caption",color:"text.secondary",children:"Author"}),(0,r.jsx)(s.Z,{variant:"body2",children:o.author})]})]})]}),(0,r.jsxs)(F.Z,{children:[(0,r.jsx)(w.Z,{onClick:y,disabled:u,children:"Cancel"}),(0,r.jsx)(w.Z,{onClick:()=>{d(""),x(""),c(o.hash,{onSuccess:()=>{d("Backup restored successfully from ".concat(o.hash.substring(0,7))),setTimeout(()=>{a()},2e3)},onError:e=>{x("Failed to restore backup: ".concat(e.message))}})},variant:"contained",color:"warning",disabled:u,startIcon:u?(0,r.jsx)(N.Z,{size:16}):(0,r.jsx)(k.Z,{}),children:u?"Restoring...":"Restore"})]})]})}function Q(){let{data:e,isLoading:n,error:t}=(0,m.$t)(20),[i,o]=(0,f.useState)(null),a=e=>{o(e)};if(n)return(0,r.jsx)(l.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(s.Z,{variant:"h6",gutterBottom:!0,children:"Backup History"}),(0,r.jsx)(s.Z,{color:"text.secondary",children:"Loading..."})]})});if(t)return(0,r.jsx)(l.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(s.Z,{variant:"h6",gutterBottom:!0,children:"Backup History"}),(0,r.jsx)(s.Z,{color:"error",children:"Failed to load backup history"})]})});let c=(null==e?void 0:e.commits)||[];return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(s.Z,{variant:"h6",gutterBottom:!0,children:"Backup History"}),0===c.length?(0,r.jsx)(s.Z,{color:"text.secondary",children:"No backup history available"}):(0,r.jsx)(g.Z,{children:(0,r.jsxs)(p.Z,{children:[(0,r.jsx)(b.Z,{children:(0,r.jsxs)(S.Z,{children:[(0,r.jsx)(Z.Z,{children:"Commit"}),(0,r.jsx)(Z.Z,{children:"Date"}),(0,r.jsx)(Z.Z,{children:"Message"}),(0,r.jsx)(Z.Z,{children:"Author"}),(0,r.jsx)(Z.Z,{align:"right",children:"Actions"})]})}),(0,r.jsx)(v.Z,{children:c.map(e=>{var n;return(0,r.jsxs)(S.Z,{children:[(0,r.jsx)(Z.Z,{children:(0,r.jsx)(h.Z,{label:e.hash.substring(0,7),size:"small",variant:"outlined",sx:{fontFamily:"monospace"}})}),(0,r.jsx)(Z.Z,{children:(0,r.jsx)(s.Z,{variant:"body2",children:(n=e.date,new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(new Date(n)))})}),(0,r.jsx)(Z.Z,{children:(0,r.jsx)(s.Z,{variant:"body2",children:e.message})}),(0,r.jsx)(Z.Z,{children:(0,r.jsx)(s.Z,{variant:"body2",color:"text.secondary",children:e.author})}),(0,r.jsx)(Z.Z,{align:"right",children:(0,r.jsx)(C.Z,{size:"small",color:"primary",onClick:()=>a(e),title:"Restore this backup",children:(0,r.jsx)(k.Z,{})})})]},e.hash)})})]})})]})}),i&&(0,r.jsx)(B,{open:!!i,commit:i,onClose:()=>{o(null)}})]})}var R=t(97436),O=t(34675);function L(e){let{disabled:n}=e,[t,s]=(0,f.useState)(!1),[i,o]=(0,f.useState)(""),[a,c]=(0,f.useState)(""),[u,l]=(0,f.useState)(""),{mutate:d,isPending:h}=(0,m.c5)(),x=()=>{h||(s(!1),o(""),c(""),l(""))};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(w.Z,{variant:"contained",startIcon:(0,r.jsx)(O.Z,{}),onClick:()=>{s(!0),c(""),l(""),o("Backup ".concat(new Date().toISOString().split("T")[0]))},disabled:n||h,children:"Push Backup"}),(0,r.jsxs)(q.Z,{open:t,onClose:x,maxWidth:"sm",fullWidth:!0,children:[(0,r.jsx)(D.Z,{children:"Push Backup"}),(0,r.jsxs)(I.Z,{children:[a&&(0,r.jsx)(T.Z,{severity:"success",sx:{mb:2},children:a}),u&&(0,r.jsx)(T.Z,{severity:"error",sx:{mb:2},children:u}),(0,r.jsx)(R.Z,{autoFocus:!0,margin:"dense",label:"Commit Message",type:"text",fullWidth:!0,variant:"outlined",value:i,onChange:e=>o(e.target.value),disabled:h,helperText:"Optional message describing this backup"})]}),(0,r.jsxs)(F.Z,{children:[(0,r.jsx)(w.Z,{onClick:x,disabled:h,children:"Cancel"}),(0,r.jsx)(w.Z,{onClick:()=>{c(""),l(""),d({message:i||void 0},{onSuccess:e=>{c(e.commitHash?"Backup pushed successfully (".concat(e.commitHash.substring(0,7),")"):"Backup pushed successfully"),setTimeout(()=>{x()},2e3)},onError:e=>{l("Failed to push backup: ".concat(e.message))}})},variant:"contained",disabled:h,startIcon:h?(0,r.jsx)(N.Z,{size:16}):(0,r.jsx)(O.Z,{}),children:h?"Pushing...":"Push"})]})]})]})}function P(){var e;let{data:n}=(0,m.mj)(),t=null!==(e=null==n?void 0:n.configured)&&void 0!==e&&e;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(o.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,c.Fq)(e.palette.secondary.main,.1)," 0%, ").concat((0,c.Fq)(e.palette.info.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,c.Fq)(e.palette.secondary.main,.2)),display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,r.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,r.jsx)(i.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"secondary.main",color:"secondary.contrastText"},children:(0,r.jsx)(u.Z,{sx:{fontSize:32}})}),(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Backups"}),(0,r.jsx)(s.Z,{variant:"body1",color:"text.secondary",children:"Manage world backups and restore points"})]})]}),(0,r.jsx)(L,{disabled:!t})]}),(0,r.jsxs)(a.Z,{spacing:3,children:[(0,r.jsx)(j,{}),t&&(0,r.jsx)(Q,{})]})]})}},42936:function(e,n,t){"use strict";async function r(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t={...n.headers};n.body&&(t["Content-Type"]="application/json");let r=await fetch(e,{...n,headers:t});if(!r.ok){let e=await r.json().catch(()=>({error:"UnknownError",message:r.statusText})),n=Error(e.message);throw n.statusCode=r.status,n.code=e.error,n}return r.json()}t.d(n,{SC:function(){return r}})},92666:function(e,n,t){"use strict";t.d(n,{$t:function(){return S},Aw:function(){return d},Fv:function(){return f},Hq:function(){return u},Hy:function(){return c},MH:function(){return v},Sr:function(){return x},_I:function(){return h},c5:function(){return C},g2:function(){return j},gx:function(){return Z},hy:function(){return y},iC:function(){return p},jM:function(){return l},mj:function(){return b},nq:function(){return m},nv:function(){return g},s8:function(){return k},x$:function(){return a}});var r=t(5632),s=t(58919),i=t(20367),o=t(42936);function a(){return(0,r.a)({queryKey:["servers"],queryFn:()=>(0,o.SC)("/api/servers"),refetchInterval:6e4})}function c(e,n){return(0,r.a)({queryKey:["servers",e],queryFn:()=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e))),enabled:(null==n?void 0:n.enabled)!==!1&&!!e,refetchInterval:3e4})}function u(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{name:n,force:t}=e;return(0,o.SC)("/api/servers/".concat(encodeURIComponent(n)).concat(t?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["servers"]})}})}function l(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/start"),{method:"POST"}),onSuccess:(n,t)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",t]})}})}function d(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/stop"),{method:"POST"}),onSuccess:(n,t)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",t]})}})}function h(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/restart"),{method:"POST"}),onSuccess:(n,t)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",t]})}})}function x(){return(0,r.a)({queryKey:["worlds"],queryFn:()=>(0,o.SC)("/api/worlds"),refetchInterval:3e4})}function y(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/worlds",{method:"POST",body:JSON.stringify(e)}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function m(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{worldName:n,serverName:t}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(n),"/assign"),{method:"POST",body:JSON.stringify({serverName:t})})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}function j(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{worldName:n,force:t}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(n),"/release").concat(t?"?force=true":""),{method:"POST"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function f(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{name:n,force:t}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(n)).concat(t?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function p(e,n){return(0,r.a)({queryKey:["servers",e,"config"],queryFn:()=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/config")),enabled:(null==n?void 0:n.enabled)!==!1&&!!e})}function v(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{serverName:n,config:t}=e;return(0,o.SC)("/api/servers/".concat(encodeURIComponent(n),"/config"),{method:"PATCH",body:JSON.stringify(t)})},onSuccess:(n,t)=>{let{serverName:r}=t;e.invalidateQueries({queryKey:["servers",r,"config"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function Z(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/world/reset"),{method:"POST"}),onSuccess:(n,t)=>{e.invalidateQueries({queryKey:["servers",t]}),e.invalidateQueries({queryKey:["worlds"]})}})}function g(){return(0,r.a)({queryKey:["router-status"],queryFn:()=>(0,o.SC)("/api/router/status"),refetchInterval:3e4})}function b(){return(0,r.a)({queryKey:["backup-status"],queryFn:()=>(0,o.SC)("/api/backup"),refetchInterval:6e4})}function S(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20;return(0,r.a)({queryKey:["backup-history",e],queryFn:()=>(0,o.SC)("/api/backup/history?limit=".concat(e)),refetchInterval:6e4})}function C(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{message:n}=e;return(0,o.SC)("/api/backup",{method:"POST",body:JSON.stringify({message:n})})},onSuccess:()=>{e.invalidateQueries({queryKey:["backup-status"]}),e.invalidateQueries({queryKey:["backup-history"]})}})}function k(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/backup/restore",{method:"POST",body:JSON.stringify({commitHash:e})}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}}},function(e){e.O(0,[6812,7220,8006,7294,8696,1071,540,6189,310,9654,6655,3669,2757,1744],function(){return e(e.s=1366)}),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6302],{1366:function(e,n,t){Promise.resolve().then(t.bind(t,6643))},6643:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return P}});var r=t(94655),s=t(31317),i=t(7281),o=t(69899),a=t(70115),c=t(76492),u=t(91606),l=t(628),d=t(41565),h=t(25333),x=t(46207),y=t(43436),m=t(92666);function j(){let{data:e,isLoading:n,error:t}=(0,m.mj)();if(n)return(0,r.jsx)(l.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(s.Z,{variant:"h6",gutterBottom:!0,children:"Backup Status"}),(0,r.jsx)(s.Z,{color:"text.secondary",children:"Loading..."})]})});if(t)return(0,r.jsx)(l.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(s.Z,{variant:"h6",gutterBottom:!0,children:"Backup Status"}),(0,r.jsx)(s.Z,{color:"error",children:"Failed to load backup status"})]})});let{configured:o,lastBackup:a,repository:c}=e||{};return(0,r.jsx)(l.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsxs)(i.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,r.jsx)(s.Z,{variant:"h6",children:"Backup Status"}),(0,r.jsx)(h.Z,{icon:o?(0,r.jsx)(x.Z,{}):(0,r.jsx)(y.Z,{}),label:o?"Configured":"Not Configured",color:o?"success":"error",size:"small"})]}),o?(0,r.jsxs)(i.Z,{sx:{display:"flex",flexDirection:"column",gap:1},children:[c&&(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"caption",color:"text.secondary",children:"Repository"}),(0,r.jsx)(s.Z,{variant:"body2",sx:{fontFamily:"monospace",fontSize:"0.875rem"},children:c})]}),a&&(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"caption",color:"text.secondary",children:"Last Backup"}),(0,r.jsx)(s.Z,{variant:"body2",children:function(e){let n=new Date,t=new Date(e),r=Math.floor((n.getTime()-t.getTime())/6e4),s=Math.floor(r/60);return r<1?"just now":r<60?"".concat(r," minutes ago"):s<24?"".concat(s," hours ago"):"".concat(Math.floor(s/24)," days ago")}(a)})]}),!a&&(0,r.jsx)(s.Z,{variant:"body2",color:"text.secondary",children:"No backups yet"})]}):(0,r.jsx)(s.Z,{variant:"body2",color:"text.secondary",children:"GitHub backup is not configured. Please configure BACKUP_REPO_URL in your environment."})]})})}var f=t(35106),p=t(21138),v=t(84811),Z=t(47001),g=t(53281),b=t(11254),S=t(70366),C=t(79983),k=t(97731),w=t(30417),q=t(99770),F=t(76678),I=t(5682),K=t(65087),D=t(62508),T=t(81071),N=t(93017);function B(e){var n;let{open:t,commit:o,onClose:a}=e,{mutate:c,isPending:u}=(0,m.s8)(),[l,d]=(0,f.useState)(""),[h,x]=(0,f.useState)(""),y=()=>{u||(d(""),x(""),a())};return(0,r.jsxs)(q.Z,{open:t,onClose:y,maxWidth:"sm",fullWidth:!0,children:[(0,r.jsx)(D.Z,{children:"Restore Backup"}),(0,r.jsxs)(I.Z,{children:[(0,r.jsx)(T.Z,{severity:"warning",sx:{mb:2},children:"This will restore all worlds from the selected backup. Current world data will be overwritten."}),l&&(0,r.jsx)(T.Z,{severity:"success",sx:{mb:2},children:l}),h&&(0,r.jsx)(T.Z,{severity:"error",sx:{mb:2},children:h}),(0,r.jsx)(K.Z,{sx:{mb:2},children:"Are you sure you want to restore from this backup?"}),(0,r.jsxs)(i.Z,{sx:{display:"flex",flexDirection:"column",gap:1},children:[(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"caption",color:"text.secondary",children:"Commit Hash"}),(0,r.jsx)(s.Z,{variant:"body2",sx:{fontFamily:"monospace",fontSize:"0.875rem"},children:o.hash})]}),(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"caption",color:"text.secondary",children:"Date"}),(0,r.jsx)(s.Z,{variant:"body2",children:(n=o.date,new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date(n)))})]}),(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"caption",color:"text.secondary",children:"Message"}),(0,r.jsx)(s.Z,{variant:"body2",children:o.message})]}),(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"caption",color:"text.secondary",children:"Author"}),(0,r.jsx)(s.Z,{variant:"body2",children:o.author})]})]})]}),(0,r.jsxs)(F.Z,{children:[(0,r.jsx)(w.Z,{onClick:y,disabled:u,children:"Cancel"}),(0,r.jsx)(w.Z,{onClick:()=>{d(""),x(""),c(o.hash,{onSuccess:()=>{d("Backup restored successfully from ".concat(o.hash.substring(0,7))),setTimeout(()=>{a()},2e3)},onError:e=>{x("Failed to restore backup: ".concat(e.message))}})},variant:"contained",color:"warning",disabled:u,startIcon:u?(0,r.jsx)(N.Z,{size:16}):(0,r.jsx)(k.Z,{}),children:u?"Restoring...":"Restore"})]})]})}function Q(){let{data:e,isLoading:n,error:t}=(0,m.$t)(20),[i,o]=(0,f.useState)(null),a=e=>{o(e)};if(n)return(0,r.jsx)(l.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(s.Z,{variant:"h6",gutterBottom:!0,children:"Backup History"}),(0,r.jsx)(s.Z,{color:"text.secondary",children:"Loading..."})]})});if(t)return(0,r.jsx)(l.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(s.Z,{variant:"h6",gutterBottom:!0,children:"Backup History"}),(0,r.jsx)(s.Z,{color:"error",children:"Failed to load backup history"})]})});let c=(null==e?void 0:e.commits)||[];return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(s.Z,{variant:"h6",gutterBottom:!0,children:"Backup History"}),0===c.length?(0,r.jsx)(s.Z,{color:"text.secondary",children:"No backup history available"}):(0,r.jsx)(g.Z,{children:(0,r.jsxs)(p.Z,{children:[(0,r.jsx)(b.Z,{children:(0,r.jsxs)(S.Z,{children:[(0,r.jsx)(Z.Z,{children:"Commit"}),(0,r.jsx)(Z.Z,{children:"Date"}),(0,r.jsx)(Z.Z,{children:"Message"}),(0,r.jsx)(Z.Z,{children:"Author"}),(0,r.jsx)(Z.Z,{align:"right",children:"Actions"})]})}),(0,r.jsx)(v.Z,{children:c.map(e=>{var n;return(0,r.jsxs)(S.Z,{children:[(0,r.jsx)(Z.Z,{children:(0,r.jsx)(h.Z,{label:e.hash.substring(0,7),size:"small",variant:"outlined",sx:{fontFamily:"monospace"}})}),(0,r.jsx)(Z.Z,{children:(0,r.jsx)(s.Z,{variant:"body2",children:(n=e.date,new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(new Date(n)))})}),(0,r.jsx)(Z.Z,{children:(0,r.jsx)(s.Z,{variant:"body2",children:e.message})}),(0,r.jsx)(Z.Z,{children:(0,r.jsx)(s.Z,{variant:"body2",color:"text.secondary",children:e.author})}),(0,r.jsx)(Z.Z,{align:"right",children:(0,r.jsx)(C.Z,{size:"small",color:"primary",onClick:()=>a(e),title:"Restore this backup",children:(0,r.jsx)(k.Z,{})})})]},e.hash)})})]})})]})}),i&&(0,r.jsx)(B,{open:!!i,commit:i,onClose:()=>{o(null)}})]})}var R=t(97436),O=t(34675);function L(e){let{disabled:n}=e,[t,s]=(0,f.useState)(!1),[i,o]=(0,f.useState)(""),[a,c]=(0,f.useState)(""),[u,l]=(0,f.useState)(""),{mutate:d,isPending:h}=(0,m.c5)(),x=()=>{h||(s(!1),o(""),c(""),l(""))};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(w.Z,{variant:"contained",startIcon:(0,r.jsx)(O.Z,{}),onClick:()=>{s(!0),c(""),l(""),o("Backup ".concat(new Date().toISOString().split("T")[0]))},disabled:n||h,children:"Push Backup"}),(0,r.jsxs)(q.Z,{open:t,onClose:x,maxWidth:"sm",fullWidth:!0,children:[(0,r.jsx)(D.Z,{children:"Push Backup"}),(0,r.jsxs)(I.Z,{children:[a&&(0,r.jsx)(T.Z,{severity:"success",sx:{mb:2},children:a}),u&&(0,r.jsx)(T.Z,{severity:"error",sx:{mb:2},children:u}),(0,r.jsx)(R.Z,{autoFocus:!0,margin:"dense",label:"Commit Message",type:"text",fullWidth:!0,variant:"outlined",value:i,onChange:e=>o(e.target.value),disabled:h,helperText:"Optional message describing this backup"})]}),(0,r.jsxs)(F.Z,{children:[(0,r.jsx)(w.Z,{onClick:x,disabled:h,children:"Cancel"}),(0,r.jsx)(w.Z,{onClick:()=>{c(""),l(""),d({message:i||void 0},{onSuccess:e=>{c(e.commitHash?"Backup pushed successfully (".concat(e.commitHash.substring(0,7),")"):"Backup pushed successfully"),setTimeout(()=>{x()},2e3)},onError:e=>{l("Failed to push backup: ".concat(e.message))}})},variant:"contained",disabled:h,startIcon:h?(0,r.jsx)(N.Z,{size:16}):(0,r.jsx)(O.Z,{}),children:h?"Pushing...":"Push"})]})]})]})}function P(){var e;let{data:n}=(0,m.mj)(),t=null!==(e=null==n?void 0:n.configured)&&void 0!==e&&e;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(o.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,c.Fq)(e.palette.secondary.main,.1)," 0%, ").concat((0,c.Fq)(e.palette.info.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,c.Fq)(e.palette.secondary.main,.2)),display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,r.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,r.jsx)(i.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"secondary.main",color:"secondary.contrastText"},children:(0,r.jsx)(u.Z,{sx:{fontSize:32}})}),(0,r.jsxs)(i.Z,{children:[(0,r.jsx)(s.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Backups"}),(0,r.jsx)(s.Z,{variant:"body1",color:"text.secondary",children:"Manage world backups and restore points"})]})]}),(0,r.jsx)(L,{disabled:!t})]}),(0,r.jsxs)(a.Z,{spacing:3,children:[(0,r.jsx)(j,{}),t&&(0,r.jsx)(Q,{})]})]})}},42936:function(e,n,t){"use strict";async function r(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t={...n.headers};n.body&&(t["Content-Type"]="application/json");let r=await fetch(e,{...n,headers:t});if(!r.ok){let e=await r.json().catch(()=>({error:"UnknownError",message:r.statusText})),n=Error(e.message);throw n.statusCode=r.status,n.code=e.error,n}return r.json()}t.d(n,{SC:function(){return r}})},92666:function(e,n,t){"use strict";t.d(n,{$t:function(){return S},Aw:function(){return d},Fv:function(){return f},Hq:function(){return u},Hy:function(){return c},MH:function(){return v},Sr:function(){return x},_I:function(){return h},c5:function(){return C},g2:function(){return j},gx:function(){return Z},hy:function(){return y},iC:function(){return p},jM:function(){return l},mj:function(){return b},nq:function(){return m},nv:function(){return g},s8:function(){return k},x$:function(){return a}});var r=t(5632),s=t(58919),i=t(20367),o=t(42936);function a(){return(0,r.a)({queryKey:["servers"],queryFn:()=>(0,o.SC)("/api/servers"),refetchInterval:6e4})}function c(e,n){return(0,r.a)({queryKey:["servers",e],queryFn:()=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e))),enabled:(null==n?void 0:n.enabled)!==!1&&!!e,refetchInterval:3e4})}function u(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{name:n,force:t}=e;return(0,o.SC)("/api/servers/".concat(encodeURIComponent(n)).concat(t?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["servers"]})}})}function l(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/start"),{method:"POST"}),onSuccess:(n,t)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",t]})}})}function d(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/stop"),{method:"POST"}),onSuccess:(n,t)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",t]})}})}function h(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/restart"),{method:"POST"}),onSuccess:(n,t)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",t]})}})}function x(){return(0,r.a)({queryKey:["worlds"],queryFn:()=>(0,o.SC)("/api/worlds"),refetchInterval:3e4})}function y(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/worlds",{method:"POST",body:JSON.stringify(e)}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function m(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{worldName:n,serverName:t}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(n),"/assign"),{method:"POST",body:JSON.stringify({serverName:t})})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}function j(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{worldName:n,force:t}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(n),"/release").concat(t?"?force=true":""),{method:"POST"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function f(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{name:n,force:t}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(n)).concat(t?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function p(e,n){return(0,r.a)({queryKey:["servers",e,"config"],queryFn:()=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/config")),enabled:(null==n?void 0:n.enabled)!==!1&&!!e})}function v(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{serverName:n,config:t}=e;return(0,o.SC)("/api/servers/".concat(encodeURIComponent(n),"/config"),{method:"PATCH",body:JSON.stringify(t)})},onSuccess:(n,t)=>{let{serverName:r}=t;e.invalidateQueries({queryKey:["servers",r,"config"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function Z(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/world/reset"),{method:"POST"}),onSuccess:(n,t)=>{e.invalidateQueries({queryKey:["servers",t]}),e.invalidateQueries({queryKey:["worlds"]})}})}function g(){return(0,r.a)({queryKey:["router-status"],queryFn:()=>(0,o.SC)("/api/router/status"),refetchInterval:3e4})}function b(){return(0,r.a)({queryKey:["backup-status"],queryFn:()=>(0,o.SC)("/api/backup"),refetchInterval:6e4})}function S(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20;return(0,r.a)({queryKey:["backup-history",e],queryFn:()=>(0,o.SC)("/api/backup/history?limit=".concat(e)),refetchInterval:6e4})}function C(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{message:n}=e;return(0,o.SC)("/api/backup",{method:"POST",body:JSON.stringify({message:n})})},onSuccess:()=>{e.invalidateQueries({queryKey:["backup-status"]}),e.invalidateQueries({queryKey:["backup-history"]})}})}function k(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/backup/restore",{method:"POST",body:JSON.stringify({commitHash:e})}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}}},function(e){e.O(0,[6812,9760,6758,680,1668,7436,1071,540,4416,880,9654,8625,3669,2757,1744],function(){return e(e.s=1366)}),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2248],{12121:function(e,t,s){Promise.resolve().then(s.bind(s,61714))},61714:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return R}});var r=s(94655),i=s(69899),n=s(76492),a=s(7281),l=s(31317),o=s(84840),c=s(628),d=s(41565),x=s(10721),h=s(25065),m=s(91179),j=s(11767),u=s(53832),p=s(30164),Z=s(92666),g=s(59104);function f(e){let{title:t,value:s,icon:i,color:n="primary",description:o}=e,x={primary:"#1bd96a",success:"#22c55e",info:"#3b82f6",secondary:"#7c3aed"};return(0,r.jsx)(c.Z,{"data-testid":"stat-card",sx:{height:"100%",position:"relative",overflow:"hidden","&::before":{content:'""',position:"absolute",top:0,left:0,right:0,height:"4px",background:x[n]}},children:(0,r.jsxs)(d.Z,{children:[(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:2},children:[(0,r.jsx)(l.Z,{variant:"body2",color:"text.secondary",sx:{fontWeight:500},children:t}),i&&(0,r.jsx)(a.Z,{sx:{color:x[n],opacity:.8},children:i})]}),(0,r.jsx)(l.Z,{variant:"h3",component:"div",sx:{fontWeight:700,color:"text.primary",mb:o?1:0},children:s}),o&&(0,r.jsx)(l.Z,{variant:"caption",color:"text.secondary",children:o})]})})}var v=s(98406),y=s(93017),b=s(25333),w=s(46725),C=s(8690),S=s(31358);function z(e){let{servers:t,statusMap:s={},isLoading:i,maxItems:n,showViewAll:o=!1,onServerClick:x}=e,h=(0,S.x)(),m=n?t.slice(0,n):t,j=e=>{x?x(e):h.push("/servers/".concat(e))},u=e=>{switch(e){case"running":return"success";case"stopped":case"exited":return"error";case"created":return"warning";default:return"default"}},p=e=>{switch(e){case"healthy":return"success";case"unhealthy":return"error";case"starting":return"warning";default:return"default"}};return i?(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:"Servers"}),(0,r.jsx)(d.Z,{children:(0,r.jsx)(a.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,r.jsx)(y.Z,{})})})]}):0===t.length?(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:"Servers"}),(0,r.jsx)(d.Z,{children:(0,r.jsx)(l.Z,{color:"text.secondary",align:"center",children:"No servers found. Create your first server to get started."})})]}):(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:"Servers",action:o&&t.length>(n||0)?(0,r.jsxs)(w.default,{href:"/servers",onClick:()=>(0,C.Av)(),style:{textDecoration:"none",color:"inherit",fontSize:"0.875rem"},children:["View All (",t.length,")"]}):null}),(0,r.jsx)(d.Z,{children:(0,r.jsx)(a.Z,{sx:{display:"flex",flexDirection:"column",gap:2},children:m.map(e=>{let t=s[e.name],i=(null==t?void 0:t.status)||e.status,n=(null==t?void 0:t.health)||e.health;return(0,r.jsx)(a.Z,{role:"button",onClick:()=>j(e.name),sx:{p:2,borderRadius:1,border:"1px solid",borderColor:"divider",cursor:"pointer",transition:"all 0.2s","&:hover":{borderColor:"primary.main",backgroundColor:"action.hover"}},children:(0,r.jsxs)(a.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,r.jsxs)(a.Z,{children:[(0,r.jsx)(l.Z,{variant:"subtitle1",fontWeight:600,children:e.name}),(0,r.jsx)(l.Z,{variant:"caption",color:"text.secondary",children:e.hostname})]}),(0,r.jsxs)(a.Z,{sx:{display:"flex",gap:1},children:[(0,r.jsx)(b.Z,{label:i,color:u(i),size:"small"}),"none"!==n&&(0,r.jsx)(b.Z,{label:n,color:p(n),size:"small",variant:"outlined"})]})]})},e.name)})})})]})}var k=s(35106),P=s(41261);function A(e){let{maxVersions:t=2,title:s="Recent Updates"}=e,[i,n]=(0,k.useState)([]),[o,h]=(0,k.useState)(!0),[m,j]=(0,k.useState)(null);return((0,k.useEffect)(()=>{(async function(){try{let e=await fetch("https://api.github.com/repos/smallmiro/minecraft-server-manager/contents/CHANGELOG.md",{headers:{Accept:"application/vnd.github.v3+json"}});if(!e.ok)throw Error("Failed to fetch changelog");let s=await e.json(),r=atob(s.content),i=function(e,t){let s=[],r=e.split("\n"),i=null,n="added";for(let e of r){let r=e.match(/^## \[([^\]]+)\] - (\d{4}-\d{2}-\d{2})/);if(r){if(i&&(s.push(i),s.length>=t))break;i={version:r[1],date:r[2],items:[]};continue}let a=e.match(/^### (Added|Fixed|Changed)/i);if(a){n=a[1].toLowerCase();continue}let l=e.match(/^- \*\*([^*]+)\*\*\s*[-–]?\s*(.*)$/);l&&i&&i.items.push({type:n,message:l[1].trim()})}return i&&s.length<t&&s.push(i),s}(r,t);n(i)}catch(e){j(e instanceof Error?e.message:"Unknown error")}finally{h(!1)}})()},[t]),o)?(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:s}),(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(x.Z,{variant:"text",width:"60%",height:28}),(0,r.jsx)(x.Z,{variant:"text",width:"80%"}),(0,r.jsx)(x.Z,{variant:"text",width:"70%"}),(0,r.jsxs)(a.Z,{sx:{mt:2},children:[(0,r.jsx)(x.Z,{variant:"text",width:"60%",height:28}),(0,r.jsx)(x.Z,{variant:"text",width:"75%"})]})]})]}):m?(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:s}),(0,r.jsx)(d.Z,{children:(0,r.jsx)(l.Z,{color:"text.secondary",align:"center",children:"Unable to load updates"})})]}):(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:s,action:(0,r.jsx)(P.Z,{href:"https://github.com/smallmiro/minecraft-server-manager/blob/develop/CHANGELOG.md",target:"_blank",rel:"noopener",sx:{fontSize:13,mr:1},children:"View all"})}),(0,r.jsx)(d.Z,{sx:{pt:0},children:i.map((e,t)=>{let s=e.items.filter(e=>"added"===e.type),n=e.items.filter(e=>"fixed"===e.type),o=e.items.filter(e=>"changed"===e.type);return(0,r.jsxs)(a.Z,{sx:{mb:t<i.length-1?2.5:0,pb:t<i.length-1?2:0,borderBottom:t<i.length-1?"1px solid":"none",borderColor:"divider"},children:[(0,r.jsxs)(l.Z,{variant:"subtitle2",sx:{fontWeight:600,color:"primary.main",mb:1},children:["[",e.version,"] - ",e.date]}),s.length>0&&(0,r.jsxs)(a.Z,{sx:{mb:1},children:[(0,r.jsx)(b.Z,{label:"Added",size:"small",sx:{bgcolor:"success.main",color:"success.contrastText",fontSize:11,height:20,mb:.5}}),s.map((e,t)=>(0,r.jsxs)(l.Z,{variant:"body2",sx:{color:"text.secondary",pl:1},children:["• ",e.message]},t))]}),n.length>0&&(0,r.jsxs)(a.Z,{sx:{mb:1},children:[(0,r.jsx)(b.Z,{label:"Fixed",size:"small",sx:{bgcolor:"warning.main",color:"warning.contrastText",fontSize:11,height:20,mb:.5}}),n.map((e,t)=>(0,r.jsxs)(l.Z,{variant:"body2",sx:{color:"text.secondary",pl:1},children:["• ",e.message]},t))]}),o.length>0&&(0,r.jsxs)(a.Z,{children:[(0,r.jsx)(b.Z,{label:"Changed",size:"small",sx:{bgcolor:"info.main",color:"info.contrastText",fontSize:11,height:20,mb:.5}}),o.map((e,t)=>(0,r.jsxs)(l.Z,{variant:"body2",sx:{color:"text.secondary",pl:1},children:["• ",e.message]},t))]})]},e.version)})})]})}var I=s(30417),F=s(90158),T=s(58347),D=s(73424),E=s(95511),N=s(26577),W=s(56813),L=s(26892),M=s(84509);function O(e){var t;let{maxItems:s=5}=e,{data:i,isLoading:n,error:o}=(0,M.oL)(s),h=null!==(t=null==i?void 0:i.logs)&&void 0!==t?t:[];return(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:"Recent Activity",action:(0,r.jsx)(I.Z,{component:w.default,href:"/audit-logs",size:"small",endIcon:(0,r.jsx)(N.Z,{}),sx:{textTransform:"none"},children:"View All"})}),(0,r.jsx)(d.Z,{sx:{pt:0},children:n?(0,r.jsx)(F.Z,{sx:{py:0},children:[...Array(s)].map((e,t)=>(0,r.jsx)(T.ZP,{sx:{px:0,py:1.5},children:(0,r.jsx)(D.Z,{primary:(0,r.jsxs)(a.Z,{sx:{display:"flex",gap:1},children:[(0,r.jsx)(x.Z,{variant:"rounded",width:60,height:24}),(0,r.jsx)(x.Z,{variant:"text",width:80}),(0,r.jsx)(x.Z,{variant:"text",width:60})]}),secondary:(0,r.jsx)(x.Z,{variant:"text",width:50})})},t))}):o?(0,r.jsx)(l.Z,{color:"text.secondary",align:"center",children:"Failed to load recent activity"}):0===h.length?(0,r.jsx)(l.Z,{color:"text.secondary",align:"center",sx:{py:2},children:"No recent activity"}):(0,r.jsx)(F.Z,{sx:{py:0},children:h.map(e=>{var t;return(0,r.jsx)(T.ZP,{sx:{px:0,py:1.5,"&:not(:last-child)":{borderBottom:"1px solid",borderColor:"divider"}},children:(0,r.jsx)(D.Z,{primary:(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1,flexWrap:"wrap"},children:[(0,r.jsx)(W.I,{action:e.action,size:"small"}),(0,r.jsx)(l.Z,{variant:"body2",sx:{fontWeight:500},children:e.targetName}),(0,r.jsxs)(l.Z,{variant:"body2",color:"text.secondary",children:["by ",e.actor.replace("api:","").replace("cli:","")]}),"failure"===e.status&&(0,r.jsx)(L.c,{status:e.status,size:"small"})]}),secondary:(0,r.jsx)(E.Z,{title:(t=e.timestamp,new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).format(new Date(t))),arrow:!0,children:(0,r.jsx)(l.Z,{variant:"caption",component:"span",color:"text.disabled",children:function(e){let t=new Date,s=new Date(e),r=Math.floor((t.getTime()-s.getTime())/6e4),i=Math.floor(r/60);return r<1?"just now":r<60?"".concat(r,"m ago"):i<24?"".concat(i,"h ago"):"".concat(Math.floor(i/24),"d ago")}(e.timestamp)})})})},e.id)})})})]})}function R(){let{data:e,isLoading:t}=(0,Z.x$)(),{data:s,isLoading:v}=(0,Z.Sr)(),{statusMap:y}=(0,g.d)(),b=t||v,w=(null==e?void 0:e.total)||0,C=(null==e?void 0:e.servers.filter(e=>{let t=y[e.name];return"running"===((null==t?void 0:t.status)||e.status)}).length)||0,S=(null==s?void 0:s.total)||0;return b?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,n.Fq)(e.palette.secondary.main,.1)," 0%, ").concat((0,n.Fq)(e.palette.primary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,n.Fq)(e.palette.secondary.main,.2))},children:(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,r.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"primary.main",color:"primary.contrastText"},children:(0,r.jsx)(h.Z,{sx:{fontSize:32}})}),(0,r.jsxs)(a.Z,{children:[(0,r.jsx)(l.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Dashboard"}),(0,r.jsx)(l.Z,{variant:"body1",color:"text.secondary",children:"Overview of your Minecraft server infrastructure"})]})]})}),(0,r.jsx)(o.ZP,{container:!0,spacing:3,sx:{mb:4},children:[0,1,2,3].map(e=>(0,r.jsx)(o.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(c.Z,{sx:{height:"100%",position:"relative",overflow:"hidden","&::before":{content:'""',position:"absolute",top:0,left:0,right:0,height:"4px",background:"grey.300"}},children:(0,r.jsxs)(d.Z,{children:[(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:2},children:[(0,r.jsx)(x.Z,{variant:"text",width:"60%"}),(0,r.jsx)(x.Z,{variant:"circular",width:32,height:32})]}),(0,r.jsx)(x.Z,{variant:"text",width:"40%",height:48}),(0,r.jsx)(x.Z,{variant:"text",width:"70%"})]})})},e))}),(0,r.jsxs)(o.ZP,{container:!0,spacing:3,children:[(0,r.jsx)(o.ZP,{item:!0,xs:12,lg:7,children:(0,r.jsx)(c.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(x.Z,{variant:"text",width:"30%",height:32,sx:{mb:2}}),[0,1,2,3,4].map(e=>(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:2,py:1.5,borderBottom:"1px solid",borderColor:"divider"},children:[(0,r.jsx)(x.Z,{variant:"circular",width:10,height:10}),(0,r.jsx)(x.Z,{variant:"text",width:"25%"}),(0,r.jsx)(x.Z,{variant:"rounded",width:60,height:24,sx:{ml:"auto"}})]},e))]})})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,lg:5,children:(0,r.jsxs)(a.Z,{sx:{display:"flex",flexDirection:"column",gap:3},children:[(0,r.jsx)(c.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(x.Z,{variant:"text",width:"40%",height:32,sx:{mb:2}}),[0,1,2,3].map(e=>(0,r.jsxs)(a.Z,{sx:{display:"flex",gap:1.5,py:1,borderBottom:"1px solid",borderColor:"divider"},children:[(0,r.jsx)(x.Z,{variant:"circular",width:24,height:24}),(0,r.jsxs)(a.Z,{sx:{flex:1},children:[(0,r.jsx)(x.Z,{variant:"text",width:"80%"}),(0,r.jsx)(x.Z,{variant:"text",width:"50%"})]})]},e))]})}),(0,r.jsx)(c.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(x.Z,{variant:"text",width:"35%",height:32,sx:{mb:2}}),[0,1].map(e=>(0,r.jsxs)(a.Z,{sx:{py:1,borderBottom:"1px solid",borderColor:"divider"},children:[(0,r.jsx)(x.Z,{variant:"text",width:"60%"}),(0,r.jsx)(x.Z,{variant:"text",width:"90%"})]},e))]})})]})})]})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,n.Fq)(e.palette.secondary.main,.1)," 0%, ").concat((0,n.Fq)(e.palette.primary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,n.Fq)(e.palette.secondary.main,.2))},children:(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,r.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"secondary.main",color:"secondary.contrastText"},children:(0,r.jsx)(h.Z,{sx:{fontSize:32}})}),(0,r.jsxs)(a.Z,{children:[(0,r.jsx)(l.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Dashboard"}),(0,r.jsx)(l.Z,{variant:"body1",color:"text.secondary",children:"Overview of your Minecraft server infrastructure"})]})]})}),(0,r.jsxs)(o.ZP,{container:!0,spacing:3,sx:{mb:4},children:[(0,r.jsx)(o.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(f,{title:"Total Servers",value:w,icon:(0,r.jsx)(m.Z,{fontSize:"large"}),color:"primary",description:"All configured servers"})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(f,{title:"Online Servers",value:C,icon:(0,r.jsx)(j.Z,{fontSize:"large"}),color:"success",description:"Currently running"})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(f,{title:"Total Players",value:0,icon:(0,r.jsx)(u.Z,{fontSize:"large"}),color:"info",description:"Across all servers"})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(f,{title:"Total Worlds",value:S,icon:(0,r.jsx)(p.Z,{fontSize:"large"}),color:"secondary",description:"Available worlds"})})]}),(0,r.jsxs)(o.ZP,{container:!0,spacing:3,children:[(0,r.jsx)(o.ZP,{item:!0,xs:12,lg:7,children:(0,r.jsx)(z,{servers:(null==e?void 0:e.servers)||[],statusMap:y,isLoading:t,maxItems:5,showViewAll:!0})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,lg:5,children:(0,r.jsxs)(a.Z,{sx:{display:"flex",flexDirection:"column",gap:3},children:[(0,r.jsx)(O,{maxItems:5}),(0,r.jsx)(A,{maxVersions:2})]})})]})]})}},59104:function(e,t,s){"use strict";s.d(t,{d:function(){return n}});var r=s(35106),i=s(93757);function n(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{onStatusChange:t,enabled:s=!0,reconnectInterval:n=3e3}=e,[a,l]=(0,r.useState)({}),o=(0,r.useCallback)(e=>{if("server-status"===e.type){let{serverName:s,status:r,health:i,timestamp:n}=e.data;l(e=>({...e,[s]:{status:r,health:i,timestamp:n}})),null==t||t(s,r,i)}},[t]),{isConnected:c,reconnect:d,retryCount:x}=(0,i.D)({url:"/api/sse/servers-status",onMessage:o,enabled:s,reconnectInterval:n}),h=(0,r.useCallback)(e=>a[e]||null,[a]);return(0,r.useEffect)(()=>{s||l({})},[s]),{statusMap:a,getServerStatus:h,isConnected:c,reconnect:d,retryCount:x}}}},function(e){e.O(0,[6812,7220,8006,7294,540,6189,4840,5511,55,8347,4597,2537,3669,2757,1744],function(){return e(e.s=12121)}),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2248],{12121:function(e,t,s){Promise.resolve().then(s.bind(s,61714))},61714:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return R}});var r=s(94655),i=s(69899),n=s(76492),a=s(7281),l=s(31317),o=s(84840),c=s(628),d=s(41565),x=s(10721),h=s(25065),m=s(91179),j=s(11767),u=s(53832),p=s(30164),Z=s(92666),g=s(59104);function f(e){let{title:t,value:s,icon:i,color:n="primary",description:o}=e,x={primary:"#1bd96a",success:"#22c55e",info:"#3b82f6",secondary:"#7c3aed"};return(0,r.jsx)(c.Z,{"data-testid":"stat-card",sx:{height:"100%",position:"relative",overflow:"hidden","&::before":{content:'""',position:"absolute",top:0,left:0,right:0,height:"4px",background:x[n]}},children:(0,r.jsxs)(d.Z,{children:[(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:2},children:[(0,r.jsx)(l.Z,{variant:"body2",color:"text.secondary",sx:{fontWeight:500},children:t}),i&&(0,r.jsx)(a.Z,{sx:{color:x[n],opacity:.8},children:i})]}),(0,r.jsx)(l.Z,{variant:"h3",component:"div",sx:{fontWeight:700,color:"text.primary",mb:o?1:0},children:s}),o&&(0,r.jsx)(l.Z,{variant:"caption",color:"text.secondary",children:o})]})})}var v=s(98406),y=s(93017),b=s(25333),w=s(46725),C=s(8690),S=s(31358);function z(e){let{servers:t,statusMap:s={},isLoading:i,maxItems:n,showViewAll:o=!1,onServerClick:x}=e,h=(0,S.x)(),m=n?t.slice(0,n):t,j=e=>{x?x(e):h.push("/servers/".concat(e))},u=e=>{switch(e){case"running":return"success";case"stopped":case"exited":return"error";case"created":return"warning";default:return"default"}},p=e=>{switch(e){case"healthy":return"success";case"unhealthy":return"error";case"starting":return"warning";default:return"default"}};return i?(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:"Servers"}),(0,r.jsx)(d.Z,{children:(0,r.jsx)(a.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,r.jsx)(y.Z,{})})})]}):0===t.length?(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:"Servers"}),(0,r.jsx)(d.Z,{children:(0,r.jsx)(l.Z,{color:"text.secondary",align:"center",children:"No servers found. Create your first server to get started."})})]}):(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:"Servers",action:o&&t.length>(n||0)?(0,r.jsxs)(w.default,{href:"/servers",onClick:()=>(0,C.Av)(),style:{textDecoration:"none",color:"inherit",fontSize:"0.875rem"},children:["View All (",t.length,")"]}):null}),(0,r.jsx)(d.Z,{children:(0,r.jsx)(a.Z,{sx:{display:"flex",flexDirection:"column",gap:2},children:m.map(e=>{let t=s[e.name],i=(null==t?void 0:t.status)||e.status,n=(null==t?void 0:t.health)||e.health;return(0,r.jsx)(a.Z,{role:"button",onClick:()=>j(e.name),sx:{p:2,borderRadius:1,border:"1px solid",borderColor:"divider",cursor:"pointer",transition:"all 0.2s","&:hover":{borderColor:"primary.main",backgroundColor:"action.hover"}},children:(0,r.jsxs)(a.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,r.jsxs)(a.Z,{children:[(0,r.jsx)(l.Z,{variant:"subtitle1",fontWeight:600,children:e.name}),(0,r.jsx)(l.Z,{variant:"caption",color:"text.secondary",children:e.hostname})]}),(0,r.jsxs)(a.Z,{sx:{display:"flex",gap:1},children:[(0,r.jsx)(b.Z,{label:i,color:u(i),size:"small"}),"none"!==n&&(0,r.jsx)(b.Z,{label:n,color:p(n),size:"small",variant:"outlined"})]})]})},e.name)})})})]})}var k=s(35106),P=s(41261);function A(e){let{maxVersions:t=2,title:s="Recent Updates"}=e,[i,n]=(0,k.useState)([]),[o,h]=(0,k.useState)(!0),[m,j]=(0,k.useState)(null);return((0,k.useEffect)(()=>{(async function(){try{let e=await fetch("https://api.github.com/repos/smallmiro/minecraft-server-manager/contents/CHANGELOG.md",{headers:{Accept:"application/vnd.github.v3+json"}});if(!e.ok)throw Error("Failed to fetch changelog");let s=await e.json(),r=atob(s.content),i=function(e,t){let s=[],r=e.split("\n"),i=null,n="added";for(let e of r){let r=e.match(/^## \[([^\]]+)\] - (\d{4}-\d{2}-\d{2})/);if(r){if(i&&(s.push(i),s.length>=t))break;i={version:r[1],date:r[2],items:[]};continue}let a=e.match(/^### (Added|Fixed|Changed)/i);if(a){n=a[1].toLowerCase();continue}let l=e.match(/^- \*\*([^*]+)\*\*\s*[-–]?\s*(.*)$/);l&&i&&i.items.push({type:n,message:l[1].trim()})}return i&&s.length<t&&s.push(i),s}(r,t);n(i)}catch(e){j(e instanceof Error?e.message:"Unknown error")}finally{h(!1)}})()},[t]),o)?(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:s}),(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(x.Z,{variant:"text",width:"60%",height:28}),(0,r.jsx)(x.Z,{variant:"text",width:"80%"}),(0,r.jsx)(x.Z,{variant:"text",width:"70%"}),(0,r.jsxs)(a.Z,{sx:{mt:2},children:[(0,r.jsx)(x.Z,{variant:"text",width:"60%",height:28}),(0,r.jsx)(x.Z,{variant:"text",width:"75%"})]})]})]}):m?(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:s}),(0,r.jsx)(d.Z,{children:(0,r.jsx)(l.Z,{color:"text.secondary",align:"center",children:"Unable to load updates"})})]}):(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:s,action:(0,r.jsx)(P.Z,{href:"https://github.com/smallmiro/minecraft-server-manager/blob/develop/CHANGELOG.md",target:"_blank",rel:"noopener",sx:{fontSize:13,mr:1},children:"View all"})}),(0,r.jsx)(d.Z,{sx:{pt:0},children:i.map((e,t)=>{let s=e.items.filter(e=>"added"===e.type),n=e.items.filter(e=>"fixed"===e.type),o=e.items.filter(e=>"changed"===e.type);return(0,r.jsxs)(a.Z,{sx:{mb:t<i.length-1?2.5:0,pb:t<i.length-1?2:0,borderBottom:t<i.length-1?"1px solid":"none",borderColor:"divider"},children:[(0,r.jsxs)(l.Z,{variant:"subtitle2",sx:{fontWeight:600,color:"primary.main",mb:1},children:["[",e.version,"] - ",e.date]}),s.length>0&&(0,r.jsxs)(a.Z,{sx:{mb:1},children:[(0,r.jsx)(b.Z,{label:"Added",size:"small",sx:{bgcolor:"success.main",color:"success.contrastText",fontSize:11,height:20,mb:.5}}),s.map((e,t)=>(0,r.jsxs)(l.Z,{variant:"body2",sx:{color:"text.secondary",pl:1},children:["• ",e.message]},t))]}),n.length>0&&(0,r.jsxs)(a.Z,{sx:{mb:1},children:[(0,r.jsx)(b.Z,{label:"Fixed",size:"small",sx:{bgcolor:"warning.main",color:"warning.contrastText",fontSize:11,height:20,mb:.5}}),n.map((e,t)=>(0,r.jsxs)(l.Z,{variant:"body2",sx:{color:"text.secondary",pl:1},children:["• ",e.message]},t))]}),o.length>0&&(0,r.jsxs)(a.Z,{children:[(0,r.jsx)(b.Z,{label:"Changed",size:"small",sx:{bgcolor:"info.main",color:"info.contrastText",fontSize:11,height:20,mb:.5}}),o.map((e,t)=>(0,r.jsxs)(l.Z,{variant:"body2",sx:{color:"text.secondary",pl:1},children:["• ",e.message]},t))]})]},e.version)})})]})}var I=s(30417),F=s(90158),T=s(58347),D=s(73424),E=s(95511),N=s(26577),W=s(56813),L=s(26892),M=s(84509);function O(e){var t;let{maxItems:s=5}=e,{data:i,isLoading:n,error:o}=(0,M.oL)(s),h=null!==(t=null==i?void 0:i.logs)&&void 0!==t?t:[];return(0,r.jsxs)(c.Z,{children:[(0,r.jsx)(v.Z,{title:"Recent Activity",action:(0,r.jsx)(I.Z,{component:w.default,href:"/audit-logs",size:"small",endIcon:(0,r.jsx)(N.Z,{}),sx:{textTransform:"none"},children:"View All"})}),(0,r.jsx)(d.Z,{sx:{pt:0},children:n?(0,r.jsx)(F.Z,{sx:{py:0},children:[...Array(s)].map((e,t)=>(0,r.jsx)(T.ZP,{sx:{px:0,py:1.5},children:(0,r.jsx)(D.Z,{primary:(0,r.jsxs)(a.Z,{sx:{display:"flex",gap:1},children:[(0,r.jsx)(x.Z,{variant:"rounded",width:60,height:24}),(0,r.jsx)(x.Z,{variant:"text",width:80}),(0,r.jsx)(x.Z,{variant:"text",width:60})]}),secondary:(0,r.jsx)(x.Z,{variant:"text",width:50})})},t))}):o?(0,r.jsx)(l.Z,{color:"text.secondary",align:"center",children:"Failed to load recent activity"}):0===h.length?(0,r.jsx)(l.Z,{color:"text.secondary",align:"center",sx:{py:2},children:"No recent activity"}):(0,r.jsx)(F.Z,{sx:{py:0},children:h.map(e=>{var t;return(0,r.jsx)(T.ZP,{sx:{px:0,py:1.5,"&:not(:last-child)":{borderBottom:"1px solid",borderColor:"divider"}},children:(0,r.jsx)(D.Z,{primary:(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1,flexWrap:"wrap"},children:[(0,r.jsx)(W.I,{action:e.action,size:"small"}),(0,r.jsx)(l.Z,{variant:"body2",sx:{fontWeight:500},children:e.targetName}),(0,r.jsxs)(l.Z,{variant:"body2",color:"text.secondary",children:["by ",e.actor.replace("api:","").replace("cli:","")]}),"failure"===e.status&&(0,r.jsx)(L.c,{status:e.status,size:"small"})]}),secondary:(0,r.jsx)(E.Z,{title:(t=e.timestamp,new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).format(new Date(t))),arrow:!0,children:(0,r.jsx)(l.Z,{variant:"caption",component:"span",color:"text.disabled",children:function(e){let t=new Date,s=new Date(e),r=Math.floor((t.getTime()-s.getTime())/6e4),i=Math.floor(r/60);return r<1?"just now":r<60?"".concat(r,"m ago"):i<24?"".concat(i,"h ago"):"".concat(Math.floor(i/24),"d ago")}(e.timestamp)})})})},e.id)})})})]})}function R(){let{data:e,isLoading:t}=(0,Z.x$)(),{data:s,isLoading:v}=(0,Z.Sr)(),{statusMap:y}=(0,g.d)(),b=t||v,w=(null==e?void 0:e.total)||0,C=(null==e?void 0:e.servers.filter(e=>{let t=y[e.name];return"running"===((null==t?void 0:t.status)||e.status)}).length)||0,S=(null==s?void 0:s.total)||0;return b?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,n.Fq)(e.palette.secondary.main,.1)," 0%, ").concat((0,n.Fq)(e.palette.primary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,n.Fq)(e.palette.secondary.main,.2))},children:(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,r.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"primary.main",color:"primary.contrastText"},children:(0,r.jsx)(h.Z,{sx:{fontSize:32}})}),(0,r.jsxs)(a.Z,{children:[(0,r.jsx)(l.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Dashboard"}),(0,r.jsx)(l.Z,{variant:"body1",color:"text.secondary",children:"Overview of your Minecraft server infrastructure"})]})]})}),(0,r.jsx)(o.ZP,{container:!0,spacing:3,sx:{mb:4},children:[0,1,2,3].map(e=>(0,r.jsx)(o.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(c.Z,{sx:{height:"100%",position:"relative",overflow:"hidden","&::before":{content:'""',position:"absolute",top:0,left:0,right:0,height:"4px",background:"grey.300"}},children:(0,r.jsxs)(d.Z,{children:[(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:2},children:[(0,r.jsx)(x.Z,{variant:"text",width:"60%"}),(0,r.jsx)(x.Z,{variant:"circular",width:32,height:32})]}),(0,r.jsx)(x.Z,{variant:"text",width:"40%",height:48}),(0,r.jsx)(x.Z,{variant:"text",width:"70%"})]})})},e))}),(0,r.jsxs)(o.ZP,{container:!0,spacing:3,children:[(0,r.jsx)(o.ZP,{item:!0,xs:12,lg:7,children:(0,r.jsx)(c.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(x.Z,{variant:"text",width:"30%",height:32,sx:{mb:2}}),[0,1,2,3,4].map(e=>(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:2,py:1.5,borderBottom:"1px solid",borderColor:"divider"},children:[(0,r.jsx)(x.Z,{variant:"circular",width:10,height:10}),(0,r.jsx)(x.Z,{variant:"text",width:"25%"}),(0,r.jsx)(x.Z,{variant:"rounded",width:60,height:24,sx:{ml:"auto"}})]},e))]})})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,lg:5,children:(0,r.jsxs)(a.Z,{sx:{display:"flex",flexDirection:"column",gap:3},children:[(0,r.jsx)(c.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(x.Z,{variant:"text",width:"40%",height:32,sx:{mb:2}}),[0,1,2,3].map(e=>(0,r.jsxs)(a.Z,{sx:{display:"flex",gap:1.5,py:1,borderBottom:"1px solid",borderColor:"divider"},children:[(0,r.jsx)(x.Z,{variant:"circular",width:24,height:24}),(0,r.jsxs)(a.Z,{sx:{flex:1},children:[(0,r.jsx)(x.Z,{variant:"text",width:"80%"}),(0,r.jsx)(x.Z,{variant:"text",width:"50%"})]})]},e))]})}),(0,r.jsx)(c.Z,{children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)(x.Z,{variant:"text",width:"35%",height:32,sx:{mb:2}}),[0,1].map(e=>(0,r.jsxs)(a.Z,{sx:{py:1,borderBottom:"1px solid",borderColor:"divider"},children:[(0,r.jsx)(x.Z,{variant:"text",width:"60%"}),(0,r.jsx)(x.Z,{variant:"text",width:"90%"})]},e))]})})]})})]})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,n.Fq)(e.palette.secondary.main,.1)," 0%, ").concat((0,n.Fq)(e.palette.primary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,n.Fq)(e.palette.secondary.main,.2))},children:(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,r.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"secondary.main",color:"secondary.contrastText"},children:(0,r.jsx)(h.Z,{sx:{fontSize:32}})}),(0,r.jsxs)(a.Z,{children:[(0,r.jsx)(l.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Dashboard"}),(0,r.jsx)(l.Z,{variant:"body1",color:"text.secondary",children:"Overview of your Minecraft server infrastructure"})]})]})}),(0,r.jsxs)(o.ZP,{container:!0,spacing:3,sx:{mb:4},children:[(0,r.jsx)(o.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(f,{title:"Total Servers",value:w,icon:(0,r.jsx)(m.Z,{fontSize:"large"}),color:"primary",description:"All configured servers"})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(f,{title:"Online Servers",value:C,icon:(0,r.jsx)(j.Z,{fontSize:"large"}),color:"success",description:"Currently running"})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(f,{title:"Total Players",value:0,icon:(0,r.jsx)(u.Z,{fontSize:"large"}),color:"info",description:"Across all servers"})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(f,{title:"Total Worlds",value:S,icon:(0,r.jsx)(p.Z,{fontSize:"large"}),color:"secondary",description:"Available worlds"})})]}),(0,r.jsxs)(o.ZP,{container:!0,spacing:3,children:[(0,r.jsx)(o.ZP,{item:!0,xs:12,lg:7,children:(0,r.jsx)(z,{servers:(null==e?void 0:e.servers)||[],statusMap:y,isLoading:t,maxItems:5,showViewAll:!0})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,lg:5,children:(0,r.jsxs)(a.Z,{sx:{display:"flex",flexDirection:"column",gap:3},children:[(0,r.jsx)(O,{maxItems:5}),(0,r.jsx)(A,{maxVersions:2})]})})]})]})}},59104:function(e,t,s){"use strict";s.d(t,{d:function(){return n}});var r=s(35106),i=s(93757);function n(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{onStatusChange:t,enabled:s=!0,reconnectInterval:n=3e3}=e,[a,l]=(0,r.useState)({}),o=(0,r.useCallback)(e=>{if("server-status"===e.type){let{serverName:s,status:r,health:i,timestamp:n}=e.data;l(e=>({...e,[s]:{status:r,health:i,timestamp:n}})),null==t||t(s,r,i)}},[t]),{isConnected:c,reconnect:d,retryCount:x}=(0,i.D)({url:"/api/sse/servers-status",onMessage:o,enabled:s,reconnectInterval:n}),h=(0,r.useCallback)(e=>a[e]||null,[a]);return(0,r.useEffect)(()=>{s||l({})},[s]),{statusMap:a,getServerStatus:h,isConnected:c,reconnect:d,retryCount:x}}}},function(e){e.O(0,[6812,9760,6758,1668,540,4416,9810,7073,55,8347,4597,2537,3669,2757,1744],function(){return e(e.s=12121)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4095],{16387:function(e,r,t){Promise.resolve().then(t.bind(t,6453))},6453:function(e,r,t){"use strict";t.r(r),t.d(r,{default:function(){return B}});var n=t(94655),i=t(35106),a=t(7281),s=t(74228),l=t(46725),o=t(56275),c=t(62108),d=t(79983),x=t(31317),h=t(78765),m=t(90158),u=t(58347),p=t(49954),f=t(17820),g=t(73424),b=t(61505),j=t(71185),y=t(76176),v=t(27171),Z=t(35847),w=t(29983),C=t(80620),k=t(84974),S=t(34675),P=t(85480),z=t(64779);function I(e){return(0,n.jsxs)(z.Z,{...e,viewBox:"0 0 32 32",children:[(0,n.jsx)("rect",{width:"32",height:"32",fill:"#5DA840"}),(0,n.jsx)("rect",{x:"4",y:"8",width:"8",height:"8",fill:"#000"}),(0,n.jsx)("rect",{x:"20",y:"8",width:"8",height:"8",fill:"#000"}),(0,n.jsx)("rect",{x:"12",y:"16",width:"8",height:"4",fill:"#000"}),(0,n.jsx)("rect",{x:"8",y:"20",width:"16",height:"8",fill:"#000"}),(0,n.jsx)("rect",{x:"8",y:"28",width:"4",height:"4",fill:"#000"}),(0,n.jsx)("rect",{x:"20",y:"28",width:"4",height:"4",fill:"#000"}),(0,n.jsx)("rect",{x:"0",y:"0",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"}),(0,n.jsx)("rect",{x:"8",y:"4",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"}),(0,n.jsx)("rect",{x:"24",y:"0",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"}),(0,n.jsx)("rect",{x:"28",y:"8",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"}),(0,n.jsx)("rect",{x:"0",y:"24",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"})]})}var W=t(8690),A=t(6986);let D=[{label:"Dashboard",href:"/dashboard",icon:(0,n.jsx)(y.Z,{})},{label:"Servers",href:"/servers",icon:(0,n.jsx)(v.Z,{})},{label:"Worlds",href:"/worlds",icon:(0,n.jsx)(k.Z,{})},{label:"Players",href:"/players",icon:(0,n.jsx)(Z.Z,{})},{label:"Audit Log",href:"/audit-logs",icon:(0,n.jsx)(C.Z,{})},{label:"Backups",href:"/backups",icon:(0,n.jsx)(S.Z,{})},{label:"Routing",href:"/routing",icon:(0,n.jsx)(w.Z,{})}];function T(e){let{mobileOpen:r,onMenuToggle:t}=e,i=(0,s.usePathname)(),{data:y}=(0,A.kP)(),v=e=>"/dashboard"===e?"/dashboard"===i||"/"===i:i.startsWith(e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.Z,{position:"fixed",elevation:0,sx:{backgroundColor:"background.paper",borderBottom:"1px solid",borderColor:"divider",zIndex:e=>e.zIndex.drawer+1},children:(0,n.jsxs)(c.Z,{sx:{maxWidth:"1400px",width:"100%",mx:"auto",px:{xs:2,sm:3}},children:[(0,n.jsx)(d.Z,{color:"inherit","aria-label":"open menu",edge:"start",onClick:t,sx:{mr:2,display:{md:"none"}},children:(0,n.jsx)(b.Z,{})}),(0,n.jsxs)(l.default,{href:"/",style:{textDecoration:"none",display:"flex",alignItems:"center"},children:[(0,n.jsx)(I,{sx:{fontSize:28,color:"primary.main",mr:1}}),(0,n.jsx)(x.Z,{variant:"h6",component:"span",sx:{fontFamily:'"Minecraft", sans-serif',fontWeight:400,color:"common.white",letterSpacing:"0.05em",fontSize:"1.1rem"},children:"Minecraft Console"})]}),(0,n.jsx)(a.Z,{component:"nav",sx:{display:{xs:"none",md:"flex"},alignItems:"center",gap:1,ml:4,flex:1},children:D.map(e=>{let r=v(e.href);return(0,n.jsx)(l.default,{href:e.href,style:{textDecoration:"none"},onClick:()=>!r&&(0,W.Av)(),children:(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1,px:2,py:1,borderRadius:2,color:r?"primary.main":"text.secondary",backgroundColor:r?"action.selected":"transparent",transition:"all 0.2s ease","&:hover":{backgroundColor:"action.hover",color:r?"primary.main":"text.primary"}},children:[(0,n.jsx)(a.Z,{component:"span",sx:{display:"flex",alignItems:"center","& svg":{fontSize:20}},children:e.icon}),(0,n.jsx)(x.Z,{variant:"body2",sx:{fontWeight:r?600:400},children:e.label})]})},e.href)})}),(0,n.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:(0,n.jsx)(P.Ie,{})})]})}),(0,n.jsx)(h.ZP,{variant:"temporary",anchor:"left",open:r,onClose:t,ModalProps:{keepMounted:!0},sx:{display:{xs:"block",md:"none"},"& .MuiDrawer-paper":{boxSizing:"border-box",width:280,backgroundColor:"background.paper"}},children:(0,n.jsxs)(a.Z,{sx:{display:"flex",flexDirection:"column",height:"100%"},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:2,minHeight:64,borderBottom:"1px solid",borderColor:"divider"},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,n.jsx)(I,{sx:{fontSize:24,color:"primary.main",mr:1}}),(0,n.jsx)(x.Z,{variant:"h6",component:"span",sx:{fontFamily:'"Minecraft", sans-serif',fontWeight:400,color:"primary.main",letterSpacing:"0.05em",fontSize:"1rem"},children:"Minecraft Console"})]}),(0,n.jsx)(d.Z,{onClick:t,"aria-label":"close menu",children:(0,n.jsx)(j.Z,{})})]}),(0,n.jsx)(m.Z,{sx:{flex:1,px:1,py:2},children:D.map(e=>{let r=v(e.href);return(0,n.jsx)(u.ZP,{disablePadding:!0,sx:{mb:.5},children:(0,n.jsxs)(p.Z,{component:l.default,href:e.href,onClick:()=>{t(),r||(0,W.Av)()},"aria-current":r?"page":void 0,sx:{borderRadius:2,backgroundColor:r?"action.selected":"transparent","&:hover":{backgroundColor:"action.hover"}},children:[(0,n.jsx)(f.Z,{sx:{color:r?"primary.main":"text.secondary",minWidth:40},children:e.icon}),(0,n.jsx)(g.Z,{primary:e.label,primaryTypographyProps:{fontWeight:r?600:400,color:r?"primary.main":"text.primary"}})]})},e.href)})})]})})]})}var _=t(67337),E=t(41261),q=t(69123),L=t(75845),M=t(43880);function R(e){return(0,n.jsx)(z.Z,{...e,viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M13.983 11.078h2.119a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.119a.185.185 0 00-.185.185v1.888c0 .102.083.185.185.185m-2.954-5.43h2.118a.186.186 0 00.186-.186V3.574a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.186m0 2.716h2.118a.187.187 0 00.186-.186V6.29a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.887c0 .102.082.185.185.186m-2.93 0h2.12a.186.186 0 00.184-.186V6.29a.185.185 0 00-.185-.185H8.1a.185.185 0 00-.185.185v1.887c0 .102.083.185.185.186m-2.964 0h2.119a.186.186 0 00.185-.186V6.29a.185.185 0 00-.185-.185H5.136a.186.186 0 00-.186.185v1.887c0 .102.084.185.186.186m5.893 2.715h2.118a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.185m-2.93 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.083.185.185.185m-2.964 0h2.119a.185.185 0 00.185-.185V9.006a.185.185 0 00-.184-.186h-2.12a.186.186 0 00-.186.186v1.887c0 .102.084.185.186.185m-2.92 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.082.185.185.185M23.763 9.89c-.065-.051-.672-.51-1.954-.51-.338.001-.676.03-1.01.087-.248-1.7-1.653-2.53-1.716-2.566l-.344-.199-.226.327c-.284.438-.49.922-.612 1.43-.23.97-.09 1.882.403 2.661-.595.332-1.55.413-1.744.42H.751a.751.751 0 00-.75.748 11.376 11.376 0 00.692 4.062c.545 1.428 1.355 2.48 2.41 3.124 1.18.723 3.1 1.137 5.275 1.137.983.003 1.963-.086 2.93-.266a12.248 12.248 0 003.823-1.389c.98-.567 1.86-1.288 2.61-2.136 1.252-1.418 1.998-2.997 2.553-4.4h.221c1.372 0 2.215-.549 2.68-1.009.309-.293.55-.65.707-1.046l.098-.288z"})})}let U=[{title:"Resources",links:[{label:"Getting Started",href:"https://minecraft-server-manager.readthedocs.io/en/latest/getting-started/",external:!0},{label:"Configuration",href:"https://minecraft-server-manager.readthedocs.io/en/latest/configuration/",external:!0},{label:"Troubleshooting",href:"https://minecraft-server-manager.readthedocs.io/en/latest/troubleshooting/",external:!0}]},{title:"Documentation",links:[{label:"CLI Commands",href:"https://minecraft-server-manager.readthedocs.io/en/latest/cli/",external:!0},{label:"API Reference",href:"https://minecraft-server-manager.readthedocs.io/en/latest/console/",external:!0},{label:"itzg Reference",href:"https://minecraft-server-manager.readthedocs.io/en/latest/itzg-reference/",external:!0}]},{title:"Community",links:[{label:"GitHub",href:"https://github.com/smallmiro/minecraft-server-manager",external:!0},{label:"Issues",href:"https://github.com/smallmiro/minecraft-server-manager/issues",external:!0}]},{title:"About",links:[{label:"License",href:"https://github.com/smallmiro/minecraft-server-manager/blob/main/LICENSE",external:!0},{label:"Docker Hub",href:"https://hub.docker.com/r/itzg/minecraft-server",external:!0}]}];function H(){let e=new Date().getFullYear();return(0,n.jsx)(a.Z,{component:"footer",sx:{backgroundColor:"background.paper",borderTop:"1px solid",borderColor:"divider",mt:"auto"},children:(0,n.jsxs)(_.Z,{maxWidth:"lg",sx:{py:6},children:[(0,n.jsx)(a.Z,{sx:{display:"grid",gridTemplateColumns:{xs:"repeat(2, 1fr)",sm:"repeat(4, 1fr)"},gap:4,mb:4},children:U.map(e=>(0,n.jsxs)(a.Z,{children:[(0,n.jsx)(x.Z,{variant:"subtitle2",sx:{fontWeight:600,color:"text.primary",mb:2},children:e.title}),(0,n.jsx)(a.Z,{component:"ul",sx:{listStyle:"none",p:0,m:0},children:e.links.map(e=>(0,n.jsx)(a.Z,{component:"li",sx:{mb:1},children:(0,n.jsx)(E.Z,{href:e.href,target:e.external?"_blank":void 0,rel:e.external?"noopener noreferrer":void 0,underline:"hover",sx:{color:"text.secondary",fontSize:"0.875rem",transition:"color 0.2s ease","&:hover":{color:"primary.main"}},children:e.label})},e.label))})]},e.title))}),(0,n.jsx)(q.Z,{sx:{mb:3}}),(0,n.jsxs)(a.Z,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},justifyContent:"space-between",alignItems:{xs:"flex-start",sm:"center"},gap:2},children:[(0,n.jsxs)(x.Z,{variant:"body2",sx:{color:"text.tertiary"},children:[e," \xa9"," ",(0,n.jsx)(E.Z,{href:"https://github.com/smallmiro/minecraft-server-manager",target:"_blank",rel:"noopener noreferrer",underline:"hover",sx:{color:"primary.main"},children:"Minecraft Server Management Console"})]}),(0,n.jsxs)(a.Z,{sx:{display:"flex",gap:2},children:[(0,n.jsx)(E.Z,{href:"https://github.com/smallmiro/minecraft-server-manager",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub",sx:{color:"text.secondary",transition:"color 0.2s ease","&:hover":{color:"text.primary"}},children:(0,n.jsx)(L.Z,{fontSize:"small"})}),(0,n.jsx)(E.Z,{href:"https://minecraft-server-manager.readthedocs.io/",target:"_blank",rel:"noopener noreferrer","aria-label":"Documentation",sx:{color:"text.secondary",transition:"color 0.2s ease","&:hover":{color:"text.primary"}},children:(0,n.jsx)(M.Z,{fontSize:"small"})}),(0,n.jsx)(E.Z,{href:"https://hub.docker.com/r/itzg/minecraft-server",target:"_blank",rel:"noopener noreferrer","aria-label":"Docker Hub",sx:{color:"text.secondary",transition:"color 0.2s ease","&:hover":{color:"text.primary"}},children:(0,n.jsx)(R,{fontSize:"small"})})]})]})]})})}function B(e){let{children:r}=e,[t,s]=(0,i.useState)(!1);return(0,n.jsxs)(a.Z,{sx:{display:"flex",flexDirection:"column",minHeight:"100vh",backgroundColor:"background.default"},children:[(0,n.jsx)(T,{mobileOpen:t,onMenuToggle:()=>{s(!t)}}),(0,n.jsx)(a.Z,{component:"main",sx:{flexGrow:1,display:"flex",flexDirection:"column",pt:{xs:"".concat(88,"px"),sm:"".concat(96,"px")},pb:{xs:3,sm:4},px:{xs:2,sm:3,md:4},maxWidth:"1400px",width:"100%",mx:"auto"},children:r}),(0,n.jsx)(H,{})]})}},85480:function(e,r,t){"use strict";t.d(r,{U0:function(){return u},WS:function(){return p},Ie:function(){return I}});var n=t(94655),i=t(35106),a=t(7281),s=t(81071),l=t(97436),o=t(52082),c=t(79983),d=t(30417),x=t(36848),h=t(554),m=t(6986);function u(e){let{onSuccess:r}=e,[t,u]=(0,i.useState)(""),[p,f]=(0,i.useState)(""),[g,b]=(0,i.useState)(!1),[j,y]=(0,i.useState)({}),[v,Z]=(0,i.useState)(null),[w,C]=(0,i.useState)(!1),k=()=>{let e={};return t?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)||(e.email="Invalid email address"):e.email="Email is required",p||(e.password="Password is required"),y(e),0===Object.keys(e).length},S=async e=>{if(e.preventDefault(),Z(null),k()){C(!0);try{let e=await m.cg.email({email:t,password:p});if(e.error){Z(e.error.message||"Invalid credentials"),C(!1);return}r&&r()}catch(e){Z("An unexpected error occurred. Please try again."),C(!1)}}};return(0,n.jsxs)(a.Z,{component:"form",onSubmit:S,sx:{display:"flex",flexDirection:"column",gap:2},children:[v&&(0,n.jsx)(s.Z,{severity:"error",onClose:()=>Z(null),children:v}),(0,n.jsx)(l.Z,{label:"Email",type:"email",value:t,onChange:e=>u(e.target.value),error:!!j.email,helperText:j.email,disabled:w,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Password",type:g?"text":"password",value:p,onChange:e=>f(e.target.value),error:!!j.password,helperText:j.password,disabled:w,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(c.Z,{"aria-label":"toggle password visibility",onClick:()=>{b(!g)},edge:"end",children:g?(0,n.jsx)(x.Z,{}):(0,n.jsx)(h.Z,{})})})}}),(0,n.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary",disabled:w,fullWidth:!0,size:"large",children:w?"Signing in...":"Sign In"})]})}function p(e){let{onSuccess:r}=e,[t,u]=(0,i.useState)(""),[p,f]=(0,i.useState)(""),[g,b]=(0,i.useState)(""),[j,y]=(0,i.useState)(""),[v,Z]=(0,i.useState)(!1),[w,C]=(0,i.useState)(!1),[k,S]=(0,i.useState)({}),[P,z]=(0,i.useState)(null),[I,W]=(0,i.useState)(!1),A=()=>{let e={};return t||(e.name="Name is required"),p?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(p)||(e.email="Invalid email address"):e.email="Email is required",g?g.length<8&&(e.password="Password must be at least 8 characters"):e.password="Password is required",j?g!==j&&(e.confirmPassword="Passwords do not match"):e.confirmPassword="Please confirm your password",S(e),0===Object.keys(e).length},D=async e=>{if(e.preventDefault(),z(null),A()){W(!0);try{let e=await m.y1.email({email:p,password:g,name:t});if(e.error){z(e.error.message||"Registration failed"),W(!1);return}r&&r()}catch(e){z("An unexpected error occurred. Please try again."),W(!1)}}};return(0,n.jsxs)(a.Z,{component:"form",onSubmit:D,sx:{display:"flex",flexDirection:"column",gap:2},children:[P&&(0,n.jsx)(s.Z,{severity:"error",onClose:()=>z(null),children:P}),(0,n.jsx)(l.Z,{label:"Name",type:"text",value:t,onChange:e=>u(e.target.value),error:!!k.name,helperText:k.name,disabled:I,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Email",type:"email",value:p,onChange:e=>f(e.target.value),error:!!k.email,helperText:k.email,disabled:I,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Password",type:v?"text":"password",value:g,onChange:e=>b(e.target.value),error:!!k.password,helperText:k.password,disabled:I,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(c.Z,{"aria-label":"toggle password visibility",onClick:()=>{Z(!v)},edge:"end",children:v?(0,n.jsx)(x.Z,{}):(0,n.jsx)(h.Z,{})})})}}),(0,n.jsx)(l.Z,{label:"Confirm Password",type:w?"text":"password",value:j,onChange:e=>y(e.target.value),error:!!k.confirmPassword,helperText:k.confirmPassword,disabled:I,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(c.Z,{"aria-label":"toggle password visibility",onClick:()=>{C(!w)},edge:"end",children:w?(0,n.jsx)(x.Z,{}):(0,n.jsx)(h.Z,{})})})}}),(0,n.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary",disabled:I,fullWidth:!0,size:"large",children:I?"Creating account...":"Sign Up"})]})}var f=t(74228),g=t(93017),b=t(86702),j=t(35694),y=t(31317),v=t(25333),Z=t(69123),w=t(7178),C=t(17820),k=t(73424),S=t(25169),P=t(41094),z=t(78319);function I(){let e=(0,f.useRouter)(),{data:r,isPending:t}=(0,m.kP)(),[s,l]=(0,i.useState)(null),o=()=>{l(null)},x=async()=>{o(),await (0,m.w7)(),e.push("/login")};if(t)return(0,n.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:(0,n.jsx)(g.Z,{size:24})});if(!(null==r?void 0:r.user))return(0,n.jsx)(d.Z,{variant:"contained",color:"primary",onClick:()=>{e.push("/login")},children:"Sign In"});let{user:h}=r,u=((e,r)=>{if(e){let r=e.split(" ");return r.length>=2?"".concat(r[0][0]).concat(r[1][0]).toUpperCase():e.substring(0,2).toUpperCase()}return r?r[0].toUpperCase():"?"})(h.name,h.email);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.Z,{onClick:e=>{l(e.currentTarget)},"aria-label":"user menu",children:(0,n.jsx)(b.Z,{sx:{bgcolor:"primary.main"},children:u})}),(0,n.jsxs)(j.Z,{anchorEl:s,open:!!s,onClose:o,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},sx:{mt:1},children:[(0,n.jsxs)(a.Z,{sx:{px:2,py:1.5,minWidth:200},children:[(0,n.jsx)(y.Z,{variant:"subtitle1",fontWeight:"600",children:h.name||"User"}),(0,n.jsx)(y.Z,{variant:"body2",color:"text.secondary",children:h.email}),"admin"===h.role&&(0,n.jsx)(v.Z,{label:"Admin",size:"small",color:"primary",sx:{mt:1}})]}),(0,n.jsx)(Z.Z,{}),"admin"===h.role&&(0,n.jsxs)(w.Z,{onClick:()=>{o(),e.push("/admin/users")},children:[(0,n.jsx)(C.Z,{children:(0,n.jsx)(S.Z,{fontSize:"small"})}),(0,n.jsx)(k.Z,{children:"Users"})]}),(0,n.jsxs)(w.Z,{onClick:()=>{o(),e.push("/settings")},children:[(0,n.jsx)(C.Z,{children:(0,n.jsx)(P.Z,{fontSize:"small"})}),(0,n.jsx)(k.Z,{children:"Settings"})]}),(0,n.jsxs)(w.Z,{onClick:x,children:[(0,n.jsx)(C.Z,{children:(0,n.jsx)(z.Z,{fontSize:"small"})}),(0,n.jsx)(k.Z,{children:"Logout"})]})]})]})}},3454:function(e,r,t){"use strict";t.d(r,{LoadingProvider:function(){return o},startLoading:function(){return c},stopLoading:function(){return d}});var n=t(94655),i=t(35106),a=t(74228),s=t(31477),l=t.n(s);function o(e){let{children:r}=e,t=(0,a.usePathname)(),s=(0,a.useSearchParams)();return(0,i.useEffect)(()=>{l().done()},[t,s]),(0,n.jsx)(n.Fragment,{children:r})}function c(){l().start()}function d(){l().done()}l().configure({showSpinner:!1,speed:300,minimum:.1})},8690:function(e,r,t){"use strict";t.d(r,{Av:function(){return n.startLoading}});var n=t(3454)},6986:function(e,r,t){"use strict";t.d(r,{Cp:function(){return h},Nq:function(){return x},cg:function(){return l},kP:function(){return d},w7:function(){return o},y1:function(){return c},zB:function(){return m}});var n=t(77054),i=t(61648),a=t(35016);let s=(0,n.X)({baseURL:a.env.NEXT_PUBLIC_BETTER_AUTH_URL||"",plugins:[(0,i.zB)()]}),{signIn:l,signOut:o,signUp:c,useSession:d,updateUser:x,changePassword:h}=s,m=s.admin}},function(e){e.O(0,[6812,9760,6758,680,1668,7436,1071,2542,55,6857,8347,1544,563,8918,212,3669,2757,1744],function(){return e(e.s=16387)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[781],{31809:function(e,n,r){Promise.resolve().then(r.bind(r,38538))},38538:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return ed}});var t=r(94655),a=r(35106),s=r(7281),l=r(31317),o=r(84840),i=r(33402),c=r(60097),d=r(29793),u=r(75726),h=r(62328),y=r(7178),p=r(69899),x=r(76492),m=r(35847),v=r(628),j=r(41565),f=r(90158),Z=r(58347),b=r(73424),g=r(69783),C=r(86702),S=r(79983),w=r(30417),k=r(25333),E=r(99770),F=r(62508),I=r(5682),P=r(65087),O=r(76678),q=r(97436),D=r(93017),N=r(81071),L=r(66561),R=r(12795),K=r(96407),T=r(69366),U=r(11597),A=r(81960),W=r(30114);function Q(e){let{onPlayerKicked:n}=e,[r,o]=(0,a.useState)(!0),[i,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,y]=(0,a.useState)(!1),[p,x]=(0,a.useState)(null),[m,Q]=(0,a.useState)(""),[B,z]=(0,a.useState)(!1),J=(0,a.useCallback)(async()=>{o(!0),c(null);try{let e=await fetch("/api/players");if(!e.ok)throw Error("Failed to fetch players");let n=await e.json();u(n.servers)}catch(e){c("Failed to load players"),console.error("Error fetching players:",e)}finally{o(!1)}},[]);(0,a.useEffect)(()=>{J()},[J]);let M=(e,n)=>{x({player:e,server:n}),Q(""),y(!0)},_=async()=>{if(p){z(!0);try{if(!(await fetch("/api/players/kick",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({player:p.player.name,server:p.server,reason:m||"Kicked by administrator"})})).ok)throw Error("Failed to kick player");y(!1),x(null),null==n||n(p.player,p.server),await J()}catch(e){console.error("Error kicking player:",e)}finally{z(!1)}}},H=d.some(e=>e.players.length>0);return(0,t.jsx)(v.Z,{"data-testid":"player-list",children:(0,t.jsxs)(j.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,t.jsx)(l.Z,{variant:"h6",children:"Online Players"}),(0,t.jsx)(S.Z,{onClick:J,disabled:r,"aria-label":"Refresh",children:(0,t.jsx)(T.Z,{})})]}),r&&(0,t.jsx)(s.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(D.Z,{})}),i&&(0,t.jsx)(N.Z,{severity:"error",sx:{mb:2},children:i}),!r&&!i&&!H&&(0,t.jsx)(l.Z,{color:"text.secondary",sx:{textAlign:"center",py:4},children:"No players online"}),!r&&!i&&H&&(0,t.jsx)(s.Z,{children:d.map(e=>(0,t.jsxs)(L.Z,{defaultExpanded:e.players.length>0,children:[(0,t.jsx)(R.Z,{expandIcon:(0,t.jsx)(A.Z,{}),children:(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:2,width:"100%"},children:[(0,t.jsx)(l.Z,{variant:"subtitle1",sx:{fontWeight:500},children:e.name}),(0,t.jsx)(k.Z,{label:"".concat(e.players.length," player").concat(1!==e.players.length?"s":""),size:"small",color:e.players.length>0?"success":"default"})]})}),(0,t.jsx)(K.Z,{children:0===e.players.length?(0,t.jsx)(l.Z,{color:"text.secondary",sx:{fontStyle:"italic"},children:"No players online on this server"}):(0,t.jsx)(f.Z,{dense:!0,children:e.players.map(n=>(0,t.jsxs)(Z.ZP,{secondaryAction:(0,t.jsx)(S.Z,{edge:"end","aria-label":"Kick player",onClick:()=>M(n,e.name),color:"error",children:(0,t.jsx)(U.Z,{})}),children:[(0,t.jsx)(g.Z,{children:(0,t.jsx)(C.Z,{src:"https://mc-heads.net/avatar/".concat(n.uuid,"/40"),alt:n.name,children:(0,t.jsx)(W.Z,{})})}),(0,t.jsx)(b.Z,{primary:n.name,secondary:n.uuid.substring(0,8)+"..."})]},n.uuid))})})]},e.name))}),(0,t.jsxs)(E.Z,{open:h,onClose:()=>y(!1),children:[(0,t.jsx)(F.Z,{children:"Kick Player"}),(0,t.jsxs)(I.Z,{children:[(0,t.jsxs)(P.Z,{children:["Are you sure you want to kick ",null==p?void 0:p.player.name," from ",null==p?void 0:p.server,"?"]}),(0,t.jsx)(q.Z,{autoFocus:!0,margin:"dense",label:"Reason (optional)",fullWidth:!0,variant:"outlined",value:m,onChange:e=>Q(e.target.value),placeholder:"Kicked by administrator"})]}),(0,t.jsxs)(O.Z,{children:[(0,t.jsx)(w.Z,{onClick:()=>y(!1),disabled:B,children:"Cancel"}),(0,t.jsx)(w.Z,{onClick:_,color:"error",variant:"contained",disabled:B,"aria-label":"Confirm kick",children:B?(0,t.jsx)(D.Z,{size:20}):"Confirm"})]})]})]})})}var B=r(70115),z=r(21111),J=r(47606);function M(e){let{serverName:n}=e,[r,o]=(0,a.useState)(!0),[i,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,y]=(0,a.useState)(),[p,x]=(0,a.useState)(""),[m,k]=(0,a.useState)(!1),[E,F]=(0,a.useState)(null),I=(0,a.useCallback)(async()=>{o(!0),c(null);try{let e=await fetch("/api/players/whitelist?server=".concat(encodeURIComponent(n)));if(!e.ok)throw Error("Failed to fetch whitelist");let r=await e.json();u(r.players),y(r.source)}catch(e){c("Failed to load whitelist"),console.error("Error fetching whitelist:",e)}finally{o(!1)}},[n]);(0,a.useEffect)(()=>{I()},[I]);let P=async()=>{if(p.trim()){k(!0),c(null);try{if(!(await fetch("/api/players/whitelist",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({player:p.trim(),server:n})})).ok)throw Error("Failed to add player");x(""),await I()}catch(e){c("Failed to add player to whitelist"),console.error("Error adding player:",e)}finally{k(!1)}}},O=async e=>{F(e),c(null);try{if(!(await fetch("/api/players/whitelist?player=".concat(encodeURIComponent(e),"&server=").concat(encodeURIComponent(n)),{method:"DELETE"})).ok)throw Error("Failed to remove player");await I()}catch(e){c("Failed to remove player from whitelist"),console.error("Error removing player:",e)}finally{F(null)}};return(0,t.jsx)(v.Z,{"data-testid":"whitelist-manager",children:(0,t.jsxs)(j.Z,{children:[(0,t.jsx)(l.Z,{variant:"h6",gutterBottom:!0,children:"Whitelist"}),i&&(0,t.jsx)(N.Z,{severity:"error",sx:{mb:2},children:i}),!r&&h&&"rcon"!==h&&(0,t.jsxs)(N.Z,{severity:"info",sx:{mb:2},children:["Server is offline. Showing data from ","config"===h?"config.env":"whitelist.json",". Changes will apply on next server start."]}),(0,t.jsxs)(B.Z,{direction:"row",spacing:1,sx:{mb:2},children:[(0,t.jsx)(q.Z,{size:"small",placeholder:"Player name",value:p,onChange:e=>x(e.target.value),onKeyDown:e=>{"Enter"===e.key&&P()},disabled:m,fullWidth:!0}),(0,t.jsx)(w.Z,{variant:"contained",onClick:P,disabled:!p.trim()||m,startIcon:m?(0,t.jsx)(D.Z,{size:16}):(0,t.jsx)(J.Z,{}),"aria-label":"Add player to whitelist",children:"Add"})]}),r&&(0,t.jsx)(s.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(D.Z,{})}),!r&&0===d.length&&(0,t.jsx)(l.Z,{color:"text.secondary",sx:{textAlign:"center",py:4},children:"No players whitelisted"}),!r&&d.length>0&&(0,t.jsx)(f.Z,{dense:!0,children:d.map(e=>(0,t.jsxs)(Z.ZP,{secondaryAction:(0,t.jsx)(S.Z,{edge:"end","aria-label":"Remove from whitelist",onClick:()=>O(e.name),disabled:E===e.name,color:"error",children:E===e.name?(0,t.jsx)(D.Z,{size:20}):(0,t.jsx)(z.Z,{})}),children:[(0,t.jsx)(g.Z,{children:(0,t.jsx)(C.Z,{src:e.uuid?"https://mc-heads.net/avatar/".concat(e.uuid,"/40"):void 0,alt:e.name,children:(0,t.jsx)(W.Z,{})})}),(0,t.jsx)(b.Z,{primary:e.name,secondary:e.uuid?e.uuid.substring(0,8)+"...":"UUID not available"})]},e.uuid||e.name))})]})})}var _=r(35694),H=r(37809),$=r(407),G=r(45813);let Y={1:{color:"info",label:"Moderator",icon:"\uD83D\uDEE1️"},2:{color:"success",label:"Gamemaster",icon:"\uD83C\uDFAE"},3:{color:"warning",label:"Admin",icon:"⚙️"},4:{color:"error",label:"Owner",icon:"\uD83D\uDC51"}};function V(e){let{level:n,showIcon:r=!1,compact:a=!1,size:l="medium",variant:o="filled"}=e,i=Y[n];if(!i)return null;let c=a?n.toString():"Level ".concat(n," - ").concat(i.label),d=r?(0,t.jsx)(s.Z,{component:"span",sx:{mr:.5},children:i.icon}):void 0;return(0,t.jsx)(k.Z,{label:(0,t.jsxs)(t.Fragment,{children:[d,c]}),color:i.color,size:l,variant:o})}var X=r(68038),ee=r(34080),en=r(40064),er=r(39181);let et=[{value:1,label:"Level 1 - Moderator",description:"Bypass spawn protection",icon:"\uD83D\uDEE1️"},{value:2,label:"Level 2 - Gamemaster",description:"Cheats, command blocks",icon:"\uD83C\uDFAE"},{value:3,label:"Level 3 - Admin",description:"Player management commands",icon:"⚙️"},{value:4,label:"Level 4 - Owner",description:"Full server control",icon:"\uD83D\uDC51"}];function ea(e){let{value:n,onChange:r,label:a,disabled:o=!1}=e;return(0,t.jsxs)(d.Z,{component:"fieldset",fullWidth:!0,disabled:o,children:[a&&(0,t.jsx)(X.Z,{component:"legend",sx:{mb:1},children:a}),(0,t.jsx)(ee.Z,{value:n,onChange:e=>{r(parseInt(e.target.value,10))},children:et.map(e=>(0,t.jsx)(en.Z,{value:e.value,control:(0,t.jsx)(er.Z,{}),label:(0,t.jsxs)(s.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,t.jsx)(l.Z,{component:"span",children:e.icon}),(0,t.jsx)(l.Z,{component:"span",fontWeight:"medium",children:e.label})]}),(0,t.jsx)(l.Z,{variant:"body2",color:"text.secondary",sx:{ml:4},children:e.description})]}),sx:{alignItems:"flex-start",py:1}},e.value))})]})}function es(e){let{serverName:n}=e,[r,o]=(0,a.useState)(!0),[i,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,p]=(0,a.useState)(),[x,m]=(0,a.useState)(""),[k,P]=(0,a.useState)(!1),[L,R]=(0,a.useState)(null),[K,T]=(0,a.useState)(!1),[U,A]=(0,a.useState)(4),[W,Q]=(0,a.useState)(!1),[B,M]=(0,a.useState)(null),[Y,X]=(0,a.useState)(4),[ee,en]=(0,a.useState)(!1),[er,et]=(0,a.useState)(null),[es,el]=(0,a.useState)(null),eo=(0,a.useCallback)(async()=>{o(!0),c(null);try{let e=await fetch("/api/players/op?server=".concat(encodeURIComponent(n)));if(!e.ok)throw Error("Failed to fetch operators");let r=await e.json();u(r.operators),p(r.source)}catch(e){c("Failed to load operators"),console.error("Error fetching operators:",e)}finally{o(!1)}},[n]);(0,a.useEffect)(()=>{eo()},[eo]);let ei=async()=>{if(x.trim()){P(!0),c(null);try{if(!(await fetch("/api/players/op",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({player:x.trim(),server:n,level:U})})).ok)throw Error("Failed to add operator");m(""),A(4),T(!1),await eo()}catch(e){c("Failed to add operator"),console.error("Error adding operator:",e)}finally{P(!1)}}},ec=async e=>{R(e),c(null),et(null),el(null);try{if(!(await fetch("/api/players/op?player=".concat(encodeURIComponent(e),"&server=").concat(encodeURIComponent(n)),{method:"DELETE"})).ok)throw Error("Failed to remove operator");await eo()}catch(e){c("Failed to remove operator"),console.error("Error removing operator:",e)}finally{R(null)}},ed=async()=>{if(B){en(!0),c(null);try{if(!(await fetch("/api/players/op/".concat(encodeURIComponent(B.name),"?server=").concat(encodeURIComponent(n)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({level:Y})})).ok)throw Error("Failed to change operator level");Q(!1),M(null),await eo()}catch(e){c("Failed to change operator level"),console.error("Error changing operator level:",e)}finally{en(!1)}}},eu=(e,n)=>{et(e.currentTarget),el(n)},eh=()=>{et(null),el(null)};return(0,t.jsxs)(v.Z,{"data-testid":"op-manager",children:[(0,t.jsxs)(j.Z,{children:[(0,t.jsx)(l.Z,{variant:"h6",gutterBottom:!0,children:"Operators"}),i&&(0,t.jsx)(N.Z,{severity:"error",sx:{mb:2},children:i}),!r&&h&&"rcon"!==h&&(0,t.jsxs)(N.Z,{severity:"info",sx:{mb:2},children:["Server is offline. Showing data from ","config"===h?"config.env":"ops.json",". Changes will apply on next server start."]}),(0,t.jsx)(s.Z,{sx:{mb:2},children:(0,t.jsx)(w.Z,{variant:"contained",onClick:()=>T(!0),startIcon:(0,t.jsx)(J.Z,{}),"aria-label":"Add operator",fullWidth:!0,children:"Add Operator"})}),r&&(0,t.jsx)(s.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(D.Z,{})}),!r&&0===d.length&&(0,t.jsx)(l.Z,{color:"text.secondary",sx:{textAlign:"center",py:4},children:"No operators configured"}),!r&&d.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(f.Z,{dense:!0,children:d.map(e=>(0,t.jsxs)(Z.ZP,{secondaryAction:(0,t.jsx)(S.Z,{edge:"end","aria-label":"Operator actions",onClick:n=>eu(n,e),disabled:L===e.name,children:L===e.name?(0,t.jsx)(D.Z,{size:20}):(0,t.jsx)(H.Z,{})}),children:[(0,t.jsx)(g.Z,{children:(0,t.jsx)(C.Z,{src:e.uuid?"https://mc-heads.net/avatar/".concat(e.uuid,"/40"):void 0,alt:e.name,sx:{bgcolor:"warning.main"},children:(0,t.jsx)($.Z,{})})}),(0,t.jsx)(b.Z,{primary:(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1,flexWrap:"wrap"},children:[(0,t.jsx)(l.Z,{component:"span",children:e.name}),(0,t.jsx)(V,{level:e.level,showIcon:!0,size:"small"})]}),secondary:e.uuid?e.uuid.substring(0,8)+"...":"UUID not available"})]},e.uuid||e.name))}),(0,t.jsxs)(_.Z,{anchorEl:er,open:!!er,onClose:eh,children:[(0,t.jsxs)(y.Z,{onClick:()=>{es&&(M(es),X(es.level),Q(!0),eh())},children:[(0,t.jsx)(G.Z,{sx:{mr:1},fontSize:"small"}),"Change Level"]}),(0,t.jsxs)(y.Z,{onClick:()=>es&&ec(es.name),children:[(0,t.jsx)(z.Z,{sx:{mr:1},fontSize:"small",color:"error"}),"Remove OP"]})]})]})]}),(0,t.jsxs)(E.Z,{open:K,onClose:()=>!k&&T(!1),maxWidth:"sm",fullWidth:!0,children:[(0,t.jsx)(F.Z,{children:"Add Operator"}),(0,t.jsxs)(I.Z,{children:[(0,t.jsx)(q.Z,{autoFocus:!0,margin:"dense",label:"Player Name",placeholder:"Enter player name",fullWidth:!0,value:x,onChange:e=>m(e.target.value),disabled:k,sx:{mb:2}}),(0,t.jsx)(ea,{value:U,onChange:A,label:"OP Level",disabled:k})]}),(0,t.jsxs)(O.Z,{children:[(0,t.jsx)(w.Z,{onClick:()=>T(!1),disabled:k,children:"Cancel"}),(0,t.jsx)(w.Z,{variant:"contained",onClick:ei,disabled:!x.trim()||k,startIcon:k?(0,t.jsx)(D.Z,{size:16}):void 0,children:k?"Adding...":"Add OP"})]})]}),(0,t.jsxs)(E.Z,{open:W,onClose:()=>!ee&&Q(!1),maxWidth:"sm",fullWidth:!0,children:[(0,t.jsxs)(F.Z,{children:["Change OP Level - ",null==B?void 0:B.name]}),(0,t.jsx)(I.Z,{children:B&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(l.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:["Current: Level ",B.level," (",B.role,")"]}),(0,t.jsx)(ea,{value:Y,onChange:X,label:"New Level",disabled:ee})]})}),(0,t.jsxs)(O.Z,{children:[(0,t.jsx)(w.Z,{onClick:()=>Q(!1),disabled:ee,children:"Cancel"}),(0,t.jsx)(w.Z,{variant:"contained",onClick:ed,disabled:ee||Y===(null==B?void 0:B.level),startIcon:ee?(0,t.jsx)(D.Z,{size:16}):void 0,children:ee?"Saving...":"Save Changes"})]})]})]})}var el=r(397);function eo(e){let{serverName:n}=e,[r,o]=(0,a.useState)(!0),[i,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,y]=(0,a.useState)(),[p,x]=(0,a.useState)(!1),[m,k]=(0,a.useState)({player:"",reason:""}),[P,L]=(0,a.useState)(!1),[R,K]=(0,a.useState)(null),T=(0,a.useCallback)(async()=>{o(!0),c(null);try{let e=await fetch("/api/players/ban?server=".concat(encodeURIComponent(n)));if(!e.ok)throw Error("Failed to fetch bans");let r=await e.json();u(r.players),y(r.source)}catch(e){c("Failed to load ban list"),console.error("Error fetching bans:",e)}finally{o(!1)}},[n]);(0,a.useEffect)(()=>{T()},[T]);let U=()=>{x(!1),k({player:"",reason:""})},A=async()=>{if(m.player.trim()){L(!0),c(null);try{if(!(await fetch("/api/players/ban",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({player:m.player.trim(),reason:m.reason.trim()||"Banned by administrator",server:n})})).ok)throw Error("Failed to ban player");U(),await T()}catch(e){c("Failed to ban player"),console.error("Error banning player:",e)}finally{L(!1)}}},Q=async e=>{K(e),c(null);try{if(!(await fetch("/api/players/ban?player=".concat(encodeURIComponent(e),"&server=").concat(encodeURIComponent(n)),{method:"DELETE"})).ok)throw Error("Failed to unban player");await T()}catch(e){c("Failed to unban player"),console.error("Error unbanning player:",e)}finally{K(null)}},J=e=>{try{return new Date(e).toLocaleDateString()}catch(n){return e}};return(0,t.jsx)(v.Z,{"data-testid":"ban-manager",children:(0,t.jsxs)(j.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,t.jsx)(l.Z,{variant:"h6",children:"Ban List"}),(0,t.jsx)(w.Z,{variant:"outlined",color:"error",startIcon:(0,t.jsx)(el.Z,{}),onClick:()=>{k({player:"",reason:""}),x(!0)},"aria-label":"Ban player",children:"Ban Player"})]}),i&&(0,t.jsx)(N.Z,{severity:"error",sx:{mb:2},children:i}),!r&&h&&"rcon"!==h&&(0,t.jsxs)(N.Z,{severity:"info",sx:{mb:2},children:["Server is offline. Showing data from ","config"===h?"config.env":"banned-players.json",". Changes will apply on next server start."]}),r&&(0,t.jsx)(s.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(D.Z,{})}),!r&&0===d.length&&(0,t.jsx)(l.Z,{color:"text.secondary",sx:{textAlign:"center",py:4},children:"No players banned"}),!r&&d.length>0&&(0,t.jsx)(f.Z,{dense:!0,children:d.map(e=>(0,t.jsxs)(Z.ZP,{secondaryAction:(0,t.jsx)(S.Z,{edge:"end","aria-label":"Unban player",onClick:()=>Q(e.name),disabled:R===e.name,color:"success",children:R===e.name?(0,t.jsx)(D.Z,{size:20}):(0,t.jsx)(z.Z,{})}),children:[(0,t.jsx)(g.Z,{children:(0,t.jsx)(C.Z,{src:e.uuid?"https://mc-heads.net/avatar/".concat(e.uuid,"/40"):void 0,alt:e.name,sx:{bgcolor:"error.main"},children:(0,t.jsx)(W.Z,{})})}),(0,t.jsx)(b.Z,{primary:e.name,secondary:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(l.Z,{component:"span",variant:"body2",color:"text.secondary",children:["Reason: ",e.reason||"No reason specified"]}),(0,t.jsx)("br",{}),(0,t.jsxs)(l.Z,{component:"span",variant:"caption",color:"text.secondary",children:["Banned: ",J(e.created)," by ",e.source||"Unknown"]})]})})]},e.uuid||e.name))}),(0,t.jsxs)(E.Z,{open:p,onClose:U,maxWidth:"sm",fullWidth:!0,children:[(0,t.jsx)(F.Z,{children:"Ban Player"}),(0,t.jsx)(I.Z,{children:(0,t.jsxs)(B.Z,{spacing:2,sx:{mt:1},children:[(0,t.jsx)(q.Z,{label:"Player Name",placeholder:"Enter player name",value:m.player,onChange:e=>k({...m,player:e.target.value}),fullWidth:!0,required:!0}),(0,t.jsx)(q.Z,{label:"Reason",placeholder:"Banned by administrator",value:m.reason,onChange:e=>k({...m,reason:e.target.value}),fullWidth:!0,multiline:!0,rows:2})]})}),(0,t.jsxs)(O.Z,{children:[(0,t.jsx)(w.Z,{onClick:U,disabled:P,children:"Cancel"}),(0,t.jsx)(w.Z,{onClick:A,color:"error",variant:"contained",disabled:!m.player.trim()||P,startIcon:P?(0,t.jsx)(D.Z,{size:16}):(0,t.jsx)(el.Z,{}),children:"Ban"})]})]})]})})}var ei=r(92666);function ec(e){let{children:n,value:r,index:a}=e;return(0,t.jsx)("div",{role:"tabpanel",hidden:r!==a,children:r===a&&(0,t.jsx)(s.Z,{sx:{py:3},children:n})})}function ed(){let[e,n]=(0,a.useState)(0),[r,v]=(0,a.useState)(""),{data:j,isLoading:f}=(0,ei.x$)(),Z=null==j?void 0:j.servers;return(0,a.useEffect)(()=>{!r&&Z&&Z.length>0&&v(Z[0].name)},[Z,r]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(p.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,x.Fq)(e.palette.info.main,.1)," 0%, ").concat((0,x.Fq)(e.palette.secondary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,x.Fq)(e.palette.info.main,.2))},children:(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,t.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"info.main",color:"info.contrastText"},children:(0,t.jsx)(m.Z,{sx:{fontSize:32}})}),(0,t.jsxs)(s.Z,{children:[(0,t.jsx)(l.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Player Management"}),(0,t.jsx)(l.Z,{variant:"body1",color:"text.secondary",children:"Manage players, whitelist, operators, and bans across your servers"})]})]})}),(0,t.jsx)(s.Z,{sx:{mb:3},children:(0,t.jsxs)(d.Z,{sx:{minWidth:200},children:[(0,t.jsx)(u.Z,{id:"server-select-label",children:"Server"}),(0,t.jsx)(h.Z,{labelId:"server-select-label",value:r,label:"Server",onChange:e=>v(e.target.value),disabled:f,children:null==Z?void 0:Z.map(e=>(0,t.jsx)(y.Z,{value:e.name,children:e.name},e.name))})]})}),(0,t.jsx)(s.Z,{sx:{borderBottom:1,borderColor:"divider"},children:(0,t.jsxs)(i.Z,{value:e,onChange:(e,r)=>{n(r)},"aria-label":"Player management tabs",children:[(0,t.jsx)(c.Z,{label:"Online Players"}),(0,t.jsx)(c.Z,{label:"Whitelist",disabled:!r}),(0,t.jsx)(c.Z,{label:"Operators",disabled:!r}),(0,t.jsx)(c.Z,{label:"Ban List",disabled:!r})]})}),(0,t.jsx)(ec,{value:e,index:0,children:(0,t.jsx)(Q,{})}),(0,t.jsx)(ec,{value:e,index:1,children:r&&(0,t.jsxs)(o.ZP,{container:!0,spacing:3,children:[(0,t.jsx)(o.ZP,{item:!0,xs:12,md:8,children:(0,t.jsx)(M,{serverName:r})}),(0,t.jsx)(o.ZP,{item:!0,xs:12,md:4,children:(0,t.jsxs)(s.Z,{sx:{p:2,bgcolor:"background.paper",borderRadius:1},children:[(0,t.jsx)(l.Z,{variant:"subtitle2",color:"text.secondary",gutterBottom:!0,children:"About Whitelist"}),(0,t.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:"The whitelist controls which players can join your server. When enabled, only players on the whitelist can connect. Add players by their Minecraft username."})]})})]})}),(0,t.jsx)(ec,{value:e,index:2,children:r&&(0,t.jsxs)(o.ZP,{container:!0,spacing:3,children:[(0,t.jsx)(o.ZP,{item:!0,xs:12,md:8,children:(0,t.jsx)(es,{serverName:r})}),(0,t.jsx)(o.ZP,{item:!0,xs:12,md:4,children:(0,t.jsxs)(s.Z,{sx:{p:2,bgcolor:"background.paper",borderRadius:1},children:[(0,t.jsx)(l.Z,{variant:"subtitle2",color:"text.secondary",gutterBottom:!0,children:"About Operators"}),(0,t.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:"Operators (OPs) have elevated permissions on the server. They can use commands like /give, /gamemode, /tp, and more. OP levels range from 1-4, with 4 being the highest."}),(0,t.jsxs)(s.Z,{sx:{mt:2},children:[(0,t.jsx)(l.Z,{variant:"caption",color:"text.secondary",component:"div",children:"Level 1: Can bypass spawn protection"}),(0,t.jsx)(l.Z,{variant:"caption",color:"text.secondary",component:"div",children:"Level 2: Can use /clear, /gamemode, etc."}),(0,t.jsx)(l.Z,{variant:"caption",color:"text.secondary",component:"div",children:"Level 3: Can use /ban, /kick, /op, etc."}),(0,t.jsx)(l.Z,{variant:"caption",color:"text.secondary",component:"div",children:"Level 4: Can use /stop, full access"})]})]})})]})}),(0,t.jsx)(ec,{value:e,index:3,children:r&&(0,t.jsxs)(o.ZP,{container:!0,spacing:3,children:[(0,t.jsx)(o.ZP,{item:!0,xs:12,md:8,children:(0,t.jsx)(eo,{serverName:r})}),(0,t.jsx)(o.ZP,{item:!0,xs:12,md:4,children:(0,t.jsxs)(s.Z,{sx:{p:2,bgcolor:"background.paper",borderRadius:1},children:[(0,t.jsx)(l.Z,{variant:"subtitle2",color:"text.secondary",gutterBottom:!0,children:"About Bans"}),(0,t.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:"Banned players cannot connect to your server. You can ban players by username and provide an optional reason. Bans can be removed (pardoned) at any time."})]})})]})})]})}},42936:function(e,n,r){"use strict";async function t(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={...n.headers};n.body&&(r["Content-Type"]="application/json");let t=await fetch(e,{...n,headers:r});if(!t.ok){let e=await t.json().catch(()=>({error:"UnknownError",message:t.statusText})),n=Error(e.message);throw n.statusCode=t.status,n.code=e.error,n}return t.json()}r.d(n,{SC:function(){return t}})},92666:function(e,n,r){"use strict";r.d(n,{$t:function(){return C},Aw:function(){return u},Fv:function(){return v},Hq:function(){return c},Hy:function(){return i},MH:function(){return f},Sr:function(){return y},_I:function(){return h},c5:function(){return S},g2:function(){return m},gx:function(){return Z},hy:function(){return p},iC:function(){return j},jM:function(){return d},mj:function(){return g},nq:function(){return x},nv:function(){return b},s8:function(){return w},x$:function(){return o}});var t=r(5632),a=r(58919),s=r(20367),l=r(42936);function o(){return(0,t.a)({queryKey:["servers"],queryFn:()=>(0,l.SC)("/api/servers"),refetchInterval:6e4})}function i(e,n){return(0,t.a)({queryKey:["servers",e],queryFn:()=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e))),enabled:(null==n?void 0:n.enabled)!==!1&&!!e,refetchInterval:3e4})}function c(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{name:n,force:r}=e;return(0,l.SC)("/api/servers/".concat(encodeURIComponent(n)).concat(r?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["servers"]})}})}function d(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/start"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function u(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/stop"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function h(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/restart"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function y(){return(0,t.a)({queryKey:["worlds"],queryFn:()=>(0,l.SC)("/api/worlds"),refetchInterval:3e4})}function p(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,l.SC)("/api/worlds",{method:"POST",body:JSON.stringify(e)}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function x(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{worldName:n,serverName:r}=e;return(0,l.SC)("/api/worlds/".concat(encodeURIComponent(n),"/assign"),{method:"POST",body:JSON.stringify({serverName:r})})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}function m(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{worldName:n,force:r}=e;return(0,l.SC)("/api/worlds/".concat(encodeURIComponent(n),"/release").concat(r?"?force=true":""),{method:"POST"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function v(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{name:n,force:r}=e;return(0,l.SC)("/api/worlds/".concat(encodeURIComponent(n)).concat(r?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function j(e,n){return(0,t.a)({queryKey:["servers",e,"config"],queryFn:()=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/config")),enabled:(null==n?void 0:n.enabled)!==!1&&!!e})}function f(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{serverName:n,config:r}=e;return(0,l.SC)("/api/servers/".concat(encodeURIComponent(n),"/config"),{method:"PATCH",body:JSON.stringify(r)})},onSuccess:(n,r)=>{let{serverName:t}=r;e.invalidateQueries({queryKey:["servers",t,"config"]}),e.invalidateQueries({queryKey:["servers",t]})}})}function Z(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/world/reset"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers",r]}),e.invalidateQueries({queryKey:["worlds"]})}})}function b(){return(0,t.a)({queryKey:["router-status"],queryFn:()=>(0,l.SC)("/api/router/status"),refetchInterval:3e4})}function g(){return(0,t.a)({queryKey:["backup-status"],queryFn:()=>(0,l.SC)("/api/backup"),refetchInterval:6e4})}function C(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20;return(0,t.a)({queryKey:["backup-history",e],queryFn:()=>(0,l.SC)("/api/backup/history?limit=".concat(e)),refetchInterval:6e4})}function S(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{message:n}=e;return(0,l.SC)("/api/backup",{method:"POST",body:JSON.stringify({message:n})})},onSuccess:()=>{e.invalidateQueries({queryKey:["backup-status"]}),e.invalidateQueries({queryKey:["backup-history"]})}})}function w(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,l.SC)("/api/backup/restore",{method:"POST",body:JSON.stringify({commitHash:e})}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}}},function(e){e.O(0,[6812,9760,6758,680,1668,7436,1071,540,4416,7073,880,6857,8347,1658,5381,4474,787,7782,3669,2757,1744],function(){return e(e.s=31809)}),_N_E=e.O()}]);
|