@minecraft-docker/mcctl-console 1.15.1 → 1.15.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/.next/standalone/package.json +1 -1
  2. package/.next/standalone/platform/services/mcctl-console/.next/BUILD_ID +1 -1
  3. package/.next/standalone/platform/services/mcctl-console/.next/app-build-manifest.json +63 -63
  4. package/.next/standalone/platform/services/mcctl-console/.next/app-path-routes-manifest.json +1 -1
  5. package/.next/standalone/platform/services/mcctl-console/.next/build-manifest.json +2 -2
  6. package/.next/standalone/platform/services/mcctl-console/.next/prerender-manifest.json +1 -1
  7. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.html +1 -1
  18. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.rsc +1 -1
  19. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/audit-logs/[id]/route.js +57 -1
  20. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/audit-logs/export/route.js +57 -1
  21. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/audit-logs/route.js +57 -1
  22. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/audit-logs/stats/route.js +57 -1
  23. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/audit-logs/stream/route.js +57 -1
  24. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/auth/[...all]/route.js +57 -1
  25. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/history/route.js +57 -1
  26. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/restore/route.js +57 -1
  27. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/route.js +57 -1
  28. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/ban/route.js +57 -1
  29. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/kick/route.js +57 -1
  30. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/op/route.js +57 -1
  31. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/route.js +57 -1
  32. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/whitelist/route.js +57 -1
  33. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/router/status/route.js +57 -1
  34. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/[action]/route.js +57 -1
  35. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/config/route.js +57 -1
  36. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/exec/route.js +57 -1
  37. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/route.js +57 -1
  38. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/world/reset/route.js +57 -1
  39. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/route.js +57 -1
  40. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/user-servers/[id]/route.js +57 -1
  41. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/user-servers/route.js +57 -1
  42. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/users/route.js +57 -1
  43. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/[name]/[action]/route.js +57 -1
  44. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/[name]/route.js +57 -1
  45. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/route.js +57 -1
  46. package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.html +1 -1
  47. package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.rsc +2 -2
  48. package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.html +1 -1
  49. package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.rsc +1 -1
  50. package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.html +1 -1
  51. package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.rsc +2 -2
  52. package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.html +1 -1
  53. package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.rsc +1 -1
  54. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.html +1 -1
  56. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.rsc +1 -1
  57. package/.next/standalone/platform/services/mcctl-console/.next/server/app/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.html +1 -1
  59. package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.rsc +1 -1
  60. package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.html +1 -1
  61. package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.rsc +1 -1
  62. package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.html +1 -1
  63. package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.rsc +1 -1
  64. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page_client-reference-manifest.js +1 -1
  65. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.html +1 -1
  66. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.rsc +1 -1
  67. package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.html +1 -1
  68. package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.rsc +1 -1
  69. package/.next/standalone/platform/services/mcctl-console/.next/server/app-paths-manifest.json +18 -18
  70. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/613.js +57 -1
  71. package/.next/standalone/platform/services/mcctl-console/.next/server/middleware-manifest.json +5 -5
  72. package/.next/standalone/platform/services/mcctl-console/.next/server/next-font-manifest.js +1 -1
  73. package/.next/standalone/platform/services/mcctl-console/.next/server/next-font-manifest.json +1 -1
  74. package/.next/standalone/platform/services/mcctl-console/.next/server/pages/404.html +1 -1
  75. package/.next/standalone/platform/services/mcctl-console/.next/server/pages/500.html +1 -1
  76. package/.next/standalone/platform/services/mcctl-console/.next/server/server-reference-manifest.json +1 -1
  77. package/.next/standalone/platform/services/mcctl-console/package.json +1 -1
  78. package/package.json +2 -2
  79. /package/.next/standalone/platform/services/mcctl-console/.next/static/{54l5y_cPPm2v7sbdcoQao → M6lBMs4O93dmAs487Ndg4}/_buildManifest.js +0 -0
  80. /package/.next/standalone/platform/services/mcctl-console/.next/static/{54l5y_cPPm2v7sbdcoQao → M6lBMs4O93dmAs487Ndg4}/_ssgManifest.js +0 -0
  81. /package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/{2537-6c9d2dfd403b7448.js → 2537-ad3cb492fdff51d8.js} +0 -0
  82. /package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/audit-logs/{page-7a5d1441bb2811cf.js → page-6379e4fb97ec58d0.js} +0 -0
  83. /package/.next/static/{54l5y_cPPm2v7sbdcoQao → M6lBMs4O93dmAs487Ndg4}/_buildManifest.js +0 -0
  84. /package/.next/static/{54l5y_cPPm2v7sbdcoQao → M6lBMs4O93dmAs487Ndg4}/_ssgManifest.js +0 -0
  85. /package/.next/static/chunks/{2537-6c9d2dfd403b7448.js → 2537-ad3cb492fdff51d8.js} +0 -0
  86. /package/.next/static/chunks/app/(main)/audit-logs/{page-7a5d1441bb2811cf.js → page-6379e4fb97ec58d0.js} +0 -0
@@ -1 +1,57 @@
1
- "use strict";(()=>{var e={};e.id=1914,e.ids=[1914],e.modules={85890:e=>{e.exports=require("better-sqlite3")},72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},26482:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>_,patchFetch:()=>g,requestAsyncStorage:()=>h,routeModule:()=>f,serverHooks:()=>y,staticGenerationAsyncStorage:()=>v});var s={};r.r(s),r.d(s,{POST:()=>m,dynamic:()=>l});var n=r(3025),a=r(45086),o=r(74048),i=r(24517),d=r(78649),u=r(60154),c=r(77605);let l="force-dynamic",p=["assign","release"];async function m(e,{params:t}){try{let r=await (0,u.mk)(await (0,c.headers)()),{name:s,action:n}=await t;if(!p.includes(n))return i.NextResponse.json({error:"BadRequest",message:`Invalid action: ${n}`},{status:400});let a=(0,d.F0)({username:r.user.name||r.user.email,role:r.user.role||"user"});switch(n){case"assign":{let t=await e.json();if(!t.serverName)return i.NextResponse.json({error:"BadRequest",message:"serverName is required"},{status:400});let r=await a.assignWorld(s,t.serverName);return i.NextResponse.json(r)}case"release":{let{searchParams:t}=new URL(e.url),r="true"===t.get("force"),n=await a.releaseWorld(s,r);return i.NextResponse.json(n)}default:return i.NextResponse.json({error:"BadRequest",message:`Invalid action: ${n}`},{status:400})}}catch(e){if(e instanceof u.l4)return i.NextResponse.json({error:"Unauthorized",message:e.message},{status:e.statusCode});if(e instanceof d.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to execute action:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to execute action"},{status:500})}}let f=new n.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/worlds/[name]/[action]/route",pathname:"/api/worlds/[name]/[action]",filename:"route",bundlePath:"app/api/worlds/[name]/[action]/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/worlds/[name]/[action]/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:h,staticGenerationAsyncStorage:v,serverHooks:y}=f,_="/api/worlds/[name]/[action]/route";function g(){return(0,o.patchFetch)({serverHooks:y,staticGenerationAsyncStorage:v})}},78649:(e,t,r)=>{r.d(t,{F0:()=>a,zB:()=>s});class s extends Error{constructor(e,t,r){super(r),this.statusCode=e,this.error=t,this.name="McctlApiError"}}class n{constructor(e){this.baseUrl=e.baseUrl.replace(/\/$/,""),this.apiKey=e.apiKey,this.userContext=e.userContext}async fetch(e,t={}){let r=`${this.baseUrl}${e}`,n={"X-API-Key":this.apiKey};t.body&&(n["Content-Type"]="application/json"),this.userContext&&(n["X-User"]=this.userContext.username,n["X-Role"]=this.userContext.role);let a=await fetch(r,{...t,headers:{...n,...t.headers}});if(!a.ok){let e=await a.json().catch(()=>({error:"UnknownError",message:a.statusText}));throw new s(a.status,e.error,e.message)}return a.json()}async getServers(){return this.fetch("/api/servers")}async getServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}`)}async createServer(e){return this.fetch("/api/servers",{method:"POST",body:JSON.stringify(e)})}async deleteServer(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}${t?"?force=true":""}`,{method:"DELETE"})}async startServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/start`,{method:"POST"})}async stopServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/stop`,{method:"POST"})}async restartServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/restart`,{method:"POST"})}async execCommand(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/exec`,{method:"POST",body:JSON.stringify({command:t})})}async getLogs(e,t=100){return this.fetch(`/api/servers/${encodeURIComponent(e)}/logs?lines=${t}`)}async getWorlds(){return this.fetch("/api/worlds")}async getWorld(e){return this.fetch(`/api/worlds/${encodeURIComponent(e)}`)}async createWorld(e){return this.fetch("/api/worlds",{method:"POST",body:JSON.stringify(e)})}async assignWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}/assign`,{method:"POST",body:JSON.stringify({serverName:t})})}async releaseWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}/release${t?"?force=true":""}`,{method:"POST"})}async deleteWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}${t?"?force=true":""}`,{method:"DELETE"})}async getServerConfig(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/config`)}async updateServerConfig(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/config`,{method:"PATCH",body:JSON.stringify(t)})}async resetWorld(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/world/reset`,{method:"POST"})}async getRouterStatus(){return this.fetch("/api/router/status")}async getBackupStatus(){return this.fetch("/api/backup/status")}async pushBackup(e){let t=e?JSON.stringify({message:e}):void 0;return this.fetch("/api/backup/push",{method:"POST",body:t})}async getBackupHistory(e=20){return this.fetch(`/api/backup/history?limit=${e}`)}async restoreBackup(e){return this.fetch("/api/backup/restore",{method:"POST",body:JSON.stringify({commitHash:e})})}}function a(e){let t=process.env.MCCTL_API_URL||"http://localhost:5001",r=process.env.MCCTL_API_KEY||"";return r||console.warn("MCCTL_API_KEY is not set. API requests may fail."),new n({baseUrl:t,apiKey:r,userContext:e})}},60154:(e,t,r)=>{r.d(t,{Ke:()=>c,kF:()=>u,l4:()=>i,mk:()=>d});var s=r(31969),n=r(22587),a=r(8290),o=r(30579);class i extends Error{constructor(e,t=401){super(e),this.statusCode=t,this.name="AuthError"}}async function d(e){let t=await s.I.api.getSession({headers:e});if(!t)throw new i("Unauthorized",401);return t}async function u(e){let t=await d(e);if("admin"!==t.user.role)throw new i("Forbidden: Admin access required",403);return t}async function c(e,t,r="view"){let s=await d(e);if("admin"===s.user.role)return s;let u=await n.db.select().from(a.userServers).where((0,o.xD)((0,o.eq)(a.userServers.userId,s.user.id),(0,o.eq)(a.userServers.serverId,t))).limit(1);if(0===u.length)throw new i("Forbidden: No access to this server",403);let c=u[0].permission,l={view:1,manage:2,admin:3};if(l[c]<l[r])throw new i(`Forbidden: Requires ${r} permission`,403);return s}},31969:(e,t,r)=>{r.d(t,{I:()=>d});var s=r(33580),n=r(5944),a=r(90224),o=r(22587),i=r(8290);let d=(0,s.kj)({database:(0,n.s)(o.db,{provider:"sqlite",schema:{user:i.users,session:i.sessions,account:i.accounts,verification:i.verifications}}),emailAndPassword:{enabled:!0,requireEmailVerification:!1},session:{expiresIn:604800,updateAge:86400,cookieCache:{enabled:!0,maxAge:300}},user:{additionalFields:{role:{type:"string",required:!1,defaultValue:"user",input:!1}}},plugins:[(0,a.SA)({defaultRole:"user",adminRole:"admin"})],trustedOrigins:["http://localhost:5000","http://localhost:3000",...process.env.BETTER_AUTH_URL?[process.env.BETTER_AUTH_URL]:[],...process.env.NEXT_PUBLIC_APP_URL?[process.env.NEXT_PUBLIC_APP_URL]:[]]})},22587:(e,t,r)=>{r.d(t,{db:()=>p});var s=r(85890),n=r.n(s),a=r(31590),o=r(8290),i=r(55315),d=r.n(i),u=r(92048);let c=function(){if(process.env.DATABASE_URL)return process.env.DATABASE_URL;let e=d().join(process.cwd(),"data");return d().join(e,"mcctl.db")}();!function(e){if(":memory:"===e)return;let t=d().dirname(e);(0,u.existsSync)(t)||(0,u.mkdirSync)(t,{recursive:!0})}(c);let l=new(n())(c);l.pragma("journal_mode = WAL");let p=(0,a.t)(l,{schema:o})},8290:(e,t,r)=>{r.r(t),r.d(t,{accounts:()=>u,sessions:()=>d,userServers:()=>l,users:()=>i,verifications:()=>c});var s=r(80722),n=r(10160),a=r(30304),o=r(76303);let i=(0,s.Px)("users",{id:(0,n.fL)("id").primaryKey(),name:(0,n.fL)("name").notNull(),email:(0,n.fL)("email").notNull().unique(),emailVerified:(0,a._L)("email_verified",{mode:"boolean"}).notNull().default(!1),image:(0,n.fL)("image"),role:(0,n.fL)("role").notNull().default("user"),banned:(0,a._L)("banned",{mode:"boolean"}).default(!1),banReason:(0,n.fL)("ban_reason"),banExpires:(0,a._L)("ban_expires",{mode:"timestamp"}),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),d=(0,s.Px)("sessions",{id:(0,n.fL)("id").primaryKey(),expiresAt:(0,a._L)("expires_at",{mode:"timestamp"}).notNull(),token:(0,n.fL)("token").notNull().unique(),ipAddress:(0,n.fL)("ip_address"),userAgent:(0,n.fL)("user_agent"),userId:(0,n.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),u=(0,s.Px)("accounts",{id:(0,n.fL)("id").primaryKey(),accountId:(0,n.fL)("account_id").notNull(),providerId:(0,n.fL)("provider_id").notNull(),userId:(0,n.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),accessToken:(0,n.fL)("access_token"),refreshToken:(0,n.fL)("refresh_token"),idToken:(0,n.fL)("id_token"),accessTokenExpiresAt:(0,a._L)("access_token_expires_at",{mode:"timestamp"}),refreshTokenExpiresAt:(0,a._L)("refresh_token_expires_at",{mode:"timestamp"}),scope:(0,n.fL)("scope"),password:(0,n.fL)("password"),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),c=(0,s.Px)("verifications",{id:(0,n.fL)("id").primaryKey(),identifier:(0,n.fL)("identifier").notNull(),value:(0,n.fL)("value").notNull(),expiresAt:(0,a._L)("expires_at",{mode:"timestamp"}).notNull(),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).$defaultFn(()=>new Date)}),l=(0,s.Px)("user_servers",{id:(0,n.fL)("id").primaryKey().$defaultFn(()=>crypto.randomUUID()),userId:(0,n.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),serverId:(0,n.fL)("server_id").notNull(),permission:(0,n.fL)("permission").$type().notNull().default("view"),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)},e=>({userServerIdx:(0,o.Kz)("user_server_idx").on(e.userId,e.serverId)}))}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[9836,1489,7605,5309],()=>r(26482));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=1914,e.ids=[1914],e.modules={85890:e=>{e.exports=require("better-sqlite3")},72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},26482:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>L,patchFetch:()=>h,requestAsyncStorage:()=>E,routeModule:()=>T,serverHooks:()=>N,staticGenerationAsyncStorage:()=>f});var s={};r.r(s),r.d(s,{POST:()=>m,dynamic:()=>l});var a=r(3025),n=r(45086),o=r(74048),i=r(24517),d=r(78649),u=r(60154),c=r(77605);let l="force-dynamic",p=["assign","release"];async function m(e,{params:t}){try{let r=await (0,u.mk)(await (0,c.headers)()),{name:s,action:a}=await t;if(!p.includes(a))return i.NextResponse.json({error:"BadRequest",message:`Invalid action: ${a}`},{status:400});let n=(0,d.F0)({username:r.user.name||r.user.email,role:r.user.role||"user"});switch(a){case"assign":{let t=await e.json();if(!t.serverName)return i.NextResponse.json({error:"BadRequest",message:"serverName is required"},{status:400});let r=await n.assignWorld(s,t.serverName);return i.NextResponse.json(r)}case"release":{let{searchParams:t}=new URL(e.url),r="true"===t.get("force"),a=await n.releaseWorld(s,r);return i.NextResponse.json(a)}default:return i.NextResponse.json({error:"BadRequest",message:`Invalid action: ${a}`},{status:400})}}catch(e){if(e instanceof u.l4)return i.NextResponse.json({error:"Unauthorized",message:e.message},{status:e.statusCode});if(e instanceof d.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to execute action:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to execute action"},{status:500})}}let T=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/worlds/[name]/[action]/route",pathname:"/api/worlds/[name]/[action]",filename:"route",bundlePath:"app/api/worlds/[name]/[action]/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/worlds/[name]/[action]/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:E,staticGenerationAsyncStorage:f,serverHooks:N}=T,L="/api/worlds/[name]/[action]/route";function h(){return(0,o.patchFetch)({serverHooks:N,staticGenerationAsyncStorage:f})}},78649:(e,t,r)=>{r.d(t,{F0:()=>n,zB:()=>s});class s extends Error{constructor(e,t,r){super(r),this.statusCode=e,this.error=t,this.name="McctlApiError"}}class a{constructor(e){this.baseUrl=e.baseUrl.replace(/\/$/,""),this.apiKey=e.apiKey,this.userContext=e.userContext}async fetch(e,t={}){let r=`${this.baseUrl}${e}`,a={"X-API-Key":this.apiKey};t.body&&(a["Content-Type"]="application/json"),this.userContext&&(a["X-User"]=this.userContext.username,a["X-Role"]=this.userContext.role);let n=await fetch(r,{...t,headers:{...a,...t.headers}});if(!n.ok){let e=await n.json().catch(()=>({error:"UnknownError",message:n.statusText}));throw new s(n.status,e.error,e.message)}return n.json()}async getServers(){return this.fetch("/api/servers")}async getServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}`)}async createServer(e){return this.fetch("/api/servers",{method:"POST",body:JSON.stringify(e)})}async deleteServer(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}${t?"?force=true":""}`,{method:"DELETE"})}async startServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/start`,{method:"POST"})}async stopServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/stop`,{method:"POST"})}async restartServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/restart`,{method:"POST"})}async execCommand(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/exec`,{method:"POST",body:JSON.stringify({command:t})})}async getLogs(e,t=100){return this.fetch(`/api/servers/${encodeURIComponent(e)}/logs?lines=${t}`)}async getWorlds(){return this.fetch("/api/worlds")}async getWorld(e){return this.fetch(`/api/worlds/${encodeURIComponent(e)}`)}async createWorld(e){return this.fetch("/api/worlds",{method:"POST",body:JSON.stringify(e)})}async assignWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}/assign`,{method:"POST",body:JSON.stringify({serverName:t})})}async releaseWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}/release${t?"?force=true":""}`,{method:"POST"})}async deleteWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}${t?"?force=true":""}`,{method:"DELETE"})}async getServerConfig(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/config`)}async updateServerConfig(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/config`,{method:"PATCH",body:JSON.stringify(t)})}async resetWorld(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/world/reset`,{method:"POST"})}async getRouterStatus(){return this.fetch("/api/router/status")}async getBackupStatus(){return this.fetch("/api/backup/status")}async pushBackup(e){let t=e?JSON.stringify({message:e}):void 0;return this.fetch("/api/backup/push",{method:"POST",body:t})}async getBackupHistory(e=20){return this.fetch(`/api/backup/history?limit=${e}`)}async restoreBackup(e){return this.fetch("/api/backup/restore",{method:"POST",body:JSON.stringify({commitHash:e})})}}function n(e){let t=process.env.MCCTL_API_URL||"http://localhost:5001",r=process.env.MCCTL_API_KEY||"";return r||console.warn("MCCTL_API_KEY is not set. API requests may fail."),new a({baseUrl:t,apiKey:r,userContext:e})}},60154:(e,t,r)=>{r.d(t,{Ke:()=>c,kF:()=>u,l4:()=>i,mk:()=>d});var s=r(31969),a=r(22587),n=r(8290),o=r(30579);class i extends Error{constructor(e,t=401){super(e),this.statusCode=t,this.name="AuthError"}}async function d(e){let t=await s.I.api.getSession({headers:e});if(!t)throw new i("Unauthorized",401);return t}async function u(e){let t=await d(e);if("admin"!==t.user.role)throw new i("Forbidden: Admin access required",403);return t}async function c(e,t,r="view"){let s=await d(e);if("admin"===s.user.role)return s;let u=await a.db.select().from(n.userServers).where((0,o.xD)((0,o.eq)(n.userServers.userId,s.user.id),(0,o.eq)(n.userServers.serverId,t))).limit(1);if(0===u.length)throw new i("Forbidden: No access to this server",403);let c=u[0].permission,l={view:1,manage:2,admin:3};if(l[c]<l[r])throw new i(`Forbidden: Requires ${r} permission`,403);return s}},31969:(e,t,r)=>{r.d(t,{I:()=>d});var s=r(33580),a=r(5944),n=r(90224),o=r(22587),i=r(8290);let d=(0,s.kj)({database:(0,a.s)(o.db,{provider:"sqlite",schema:{user:i.users,session:i.sessions,account:i.accounts,verification:i.verifications}}),emailAndPassword:{enabled:!0,requireEmailVerification:!1},session:{expiresIn:604800,updateAge:86400,cookieCache:{enabled:!0,maxAge:300}},user:{additionalFields:{role:{type:"string",required:!1,defaultValue:"user",input:!1}}},plugins:[(0,n.SA)({defaultRole:"user",adminRole:"admin"})],trustedOrigins:["http://localhost:5000","http://localhost:3000",...process.env.BETTER_AUTH_BASE_URL?[process.env.BETTER_AUTH_BASE_URL]:[],...process.env.NEXT_PUBLIC_APP_URL?[process.env.NEXT_PUBLIC_APP_URL]:[]]})},22587:(e,t,r)=>{r.d(t,{db:()=>p});var s=r(85890),a=r.n(s),n=r(31590),o=r(8290),i=r(55315),d=r.n(i),u=r(92048);let c=function(){if(process.env.DATABASE_URL)return process.env.DATABASE_URL;let e=process.env.MCCTL_ROOT||process.cwd(),t=d().join(e,"data");return d().join(t,"mcctl.db")}();!function(e){if(":memory:"===e)return;let t=d().dirname(e);(0,u.existsSync)(t)||(0,u.mkdirSync)(t,{recursive:!0})}(c);let l=new(a())(c);l.pragma("journal_mode = WAL"),l.pragma("foreign_keys = ON"),l.exec(`
2
+ CREATE TABLE IF NOT EXISTS users (
3
+ id TEXT PRIMARY KEY,
4
+ name TEXT NOT NULL,
5
+ email TEXT NOT NULL UNIQUE,
6
+ email_verified INTEGER NOT NULL DEFAULT 0,
7
+ image TEXT,
8
+ role TEXT NOT NULL DEFAULT 'user',
9
+ banned INTEGER DEFAULT 0,
10
+ ban_reason TEXT,
11
+ ban_expires INTEGER,
12
+ created_at INTEGER NOT NULL,
13
+ updated_at INTEGER NOT NULL
14
+ );
15
+ CREATE TABLE IF NOT EXISTS accounts (
16
+ id TEXT PRIMARY KEY,
17
+ account_id TEXT NOT NULL,
18
+ provider_id TEXT NOT NULL,
19
+ user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
20
+ access_token TEXT,
21
+ refresh_token TEXT,
22
+ id_token TEXT,
23
+ access_token_expires_at INTEGER,
24
+ refresh_token_expires_at INTEGER,
25
+ scope TEXT,
26
+ password TEXT,
27
+ created_at INTEGER NOT NULL,
28
+ updated_at INTEGER NOT NULL
29
+ );
30
+ CREATE TABLE IF NOT EXISTS sessions (
31
+ id TEXT PRIMARY KEY,
32
+ expires_at INTEGER NOT NULL,
33
+ token TEXT NOT NULL UNIQUE,
34
+ ip_address TEXT,
35
+ user_agent TEXT,
36
+ user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
37
+ created_at INTEGER NOT NULL,
38
+ updated_at INTEGER NOT NULL
39
+ );
40
+ CREATE TABLE IF NOT EXISTS verifications (
41
+ id TEXT PRIMARY KEY,
42
+ identifier TEXT NOT NULL,
43
+ value TEXT NOT NULL,
44
+ expires_at INTEGER NOT NULL,
45
+ created_at INTEGER,
46
+ updated_at INTEGER
47
+ );
48
+ CREATE TABLE IF NOT EXISTS user_servers (
49
+ id TEXT PRIMARY KEY,
50
+ user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
51
+ server_id TEXT NOT NULL,
52
+ permission TEXT NOT NULL DEFAULT 'view',
53
+ created_at INTEGER NOT NULL,
54
+ updated_at INTEGER NOT NULL
55
+ );
56
+ CREATE INDEX IF NOT EXISTS user_server_idx ON user_servers(user_id, server_id);
57
+ `);let p=(0,n.t)(l,{schema:o})},8290:(e,t,r)=>{r.r(t),r.d(t,{accounts:()=>u,sessions:()=>d,userServers:()=>l,users:()=>i,verifications:()=>c});var s=r(80722),a=r(10160),n=r(30304),o=r(76303);let i=(0,s.Px)("users",{id:(0,a.fL)("id").primaryKey(),name:(0,a.fL)("name").notNull(),email:(0,a.fL)("email").notNull().unique(),emailVerified:(0,n._L)("email_verified",{mode:"boolean"}).notNull().default(!1),image:(0,a.fL)("image"),role:(0,a.fL)("role").notNull().default("user"),banned:(0,n._L)("banned",{mode:"boolean"}).default(!1),banReason:(0,a.fL)("ban_reason"),banExpires:(0,n._L)("ban_expires",{mode:"timestamp"}),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),d=(0,s.Px)("sessions",{id:(0,a.fL)("id").primaryKey(),expiresAt:(0,n._L)("expires_at",{mode:"timestamp"}).notNull(),token:(0,a.fL)("token").notNull().unique(),ipAddress:(0,a.fL)("ip_address"),userAgent:(0,a.fL)("user_agent"),userId:(0,a.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),u=(0,s.Px)("accounts",{id:(0,a.fL)("id").primaryKey(),accountId:(0,a.fL)("account_id").notNull(),providerId:(0,a.fL)("provider_id").notNull(),userId:(0,a.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),accessToken:(0,a.fL)("access_token"),refreshToken:(0,a.fL)("refresh_token"),idToken:(0,a.fL)("id_token"),accessTokenExpiresAt:(0,n._L)("access_token_expires_at",{mode:"timestamp"}),refreshTokenExpiresAt:(0,n._L)("refresh_token_expires_at",{mode:"timestamp"}),scope:(0,a.fL)("scope"),password:(0,a.fL)("password"),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),c=(0,s.Px)("verifications",{id:(0,a.fL)("id").primaryKey(),identifier:(0,a.fL)("identifier").notNull(),value:(0,a.fL)("value").notNull(),expiresAt:(0,n._L)("expires_at",{mode:"timestamp"}).notNull(),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).$defaultFn(()=>new Date)}),l=(0,s.Px)("user_servers",{id:(0,a.fL)("id").primaryKey().$defaultFn(()=>crypto.randomUUID()),userId:(0,a.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),serverId:(0,a.fL)("server_id").notNull(),permission:(0,a.fL)("permission").$type().notNull().default("view"),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)},e=>({userServerIdx:(0,o.Kz)("user_server_idx").on(e.userId,e.serverId)}))}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[9836,1489,7605,5309],()=>r(26482));module.exports=s})();
@@ -1 +1,57 @@
1
- "use strict";(()=>{var e={};e.id=5746,e.ids=[5746],e.modules={85890:e=>{e.exports=require("better-sqlite3")},72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},20062:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>w,patchFetch:()=>g,requestAsyncStorage:()=>y,routeModule:()=>h,serverHooks:()=>_,staticGenerationAsyncStorage:()=>v});var s={};r.r(s),r.d(s,{DELETE:()=>f,GET:()=>m,dynamic:()=>l});var n=r(3025),a=r(45086),o=r(74048),i=r(24517),d=r(78649),u=r(60154),c=r(77605);let l="force-dynamic";function p(e){return{username:e.user.name||e.user.email,role:e.user.role||"user"}}async function m(e,{params:t}){try{let e=await (0,u.mk)(await (0,c.headers)()),{name:r}=await t,s=(0,d.F0)(p(e)),n=await s.getWorld(r);return i.NextResponse.json(n)}catch(e){if(e instanceof u.l4)return i.NextResponse.json({error:"Unauthorized",message:e.message},{status:e.statusCode});if(e instanceof d.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to fetch world:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to fetch world details"},{status:500})}}async function f(e,{params:t}){try{let r=await (0,u.kF)(await (0,c.headers)()),{name:s}=await t,{searchParams:n}=new URL(e.url),a="true"===n.get("force"),o=(0,d.F0)(p(r)),l=await o.deleteWorld(s,a);return i.NextResponse.json(l)}catch(e){if(e instanceof u.l4)return i.NextResponse.json({error:"Forbidden",message:e.message},{status:e.statusCode});if(e instanceof d.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to delete world:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to delete world"},{status:500})}}let h=new n.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/worlds/[name]/route",pathname:"/api/worlds/[name]",filename:"route",bundlePath:"app/api/worlds/[name]/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/worlds/[name]/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:y,staticGenerationAsyncStorage:v,serverHooks:_}=h,w="/api/worlds/[name]/route";function g(){return(0,o.patchFetch)({serverHooks:_,staticGenerationAsyncStorage:v})}},78649:(e,t,r)=>{r.d(t,{F0:()=>a,zB:()=>s});class s extends Error{constructor(e,t,r){super(r),this.statusCode=e,this.error=t,this.name="McctlApiError"}}class n{constructor(e){this.baseUrl=e.baseUrl.replace(/\/$/,""),this.apiKey=e.apiKey,this.userContext=e.userContext}async fetch(e,t={}){let r=`${this.baseUrl}${e}`,n={"X-API-Key":this.apiKey};t.body&&(n["Content-Type"]="application/json"),this.userContext&&(n["X-User"]=this.userContext.username,n["X-Role"]=this.userContext.role);let a=await fetch(r,{...t,headers:{...n,...t.headers}});if(!a.ok){let e=await a.json().catch(()=>({error:"UnknownError",message:a.statusText}));throw new s(a.status,e.error,e.message)}return a.json()}async getServers(){return this.fetch("/api/servers")}async getServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}`)}async createServer(e){return this.fetch("/api/servers",{method:"POST",body:JSON.stringify(e)})}async deleteServer(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}${t?"?force=true":""}`,{method:"DELETE"})}async startServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/start`,{method:"POST"})}async stopServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/stop`,{method:"POST"})}async restartServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/restart`,{method:"POST"})}async execCommand(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/exec`,{method:"POST",body:JSON.stringify({command:t})})}async getLogs(e,t=100){return this.fetch(`/api/servers/${encodeURIComponent(e)}/logs?lines=${t}`)}async getWorlds(){return this.fetch("/api/worlds")}async getWorld(e){return this.fetch(`/api/worlds/${encodeURIComponent(e)}`)}async createWorld(e){return this.fetch("/api/worlds",{method:"POST",body:JSON.stringify(e)})}async assignWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}/assign`,{method:"POST",body:JSON.stringify({serverName:t})})}async releaseWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}/release${t?"?force=true":""}`,{method:"POST"})}async deleteWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}${t?"?force=true":""}`,{method:"DELETE"})}async getServerConfig(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/config`)}async updateServerConfig(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/config`,{method:"PATCH",body:JSON.stringify(t)})}async resetWorld(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/world/reset`,{method:"POST"})}async getRouterStatus(){return this.fetch("/api/router/status")}async getBackupStatus(){return this.fetch("/api/backup/status")}async pushBackup(e){let t=e?JSON.stringify({message:e}):void 0;return this.fetch("/api/backup/push",{method:"POST",body:t})}async getBackupHistory(e=20){return this.fetch(`/api/backup/history?limit=${e}`)}async restoreBackup(e){return this.fetch("/api/backup/restore",{method:"POST",body:JSON.stringify({commitHash:e})})}}function a(e){let t=process.env.MCCTL_API_URL||"http://localhost:5001",r=process.env.MCCTL_API_KEY||"";return r||console.warn("MCCTL_API_KEY is not set. API requests may fail."),new n({baseUrl:t,apiKey:r,userContext:e})}},60154:(e,t,r)=>{r.d(t,{Ke:()=>c,kF:()=>u,l4:()=>i,mk:()=>d});var s=r(31969),n=r(22587),a=r(8290),o=r(30579);class i extends Error{constructor(e,t=401){super(e),this.statusCode=t,this.name="AuthError"}}async function d(e){let t=await s.I.api.getSession({headers:e});if(!t)throw new i("Unauthorized",401);return t}async function u(e){let t=await d(e);if("admin"!==t.user.role)throw new i("Forbidden: Admin access required",403);return t}async function c(e,t,r="view"){let s=await d(e);if("admin"===s.user.role)return s;let u=await n.db.select().from(a.userServers).where((0,o.xD)((0,o.eq)(a.userServers.userId,s.user.id),(0,o.eq)(a.userServers.serverId,t))).limit(1);if(0===u.length)throw new i("Forbidden: No access to this server",403);let c=u[0].permission,l={view:1,manage:2,admin:3};if(l[c]<l[r])throw new i(`Forbidden: Requires ${r} permission`,403);return s}},31969:(e,t,r)=>{r.d(t,{I:()=>d});var s=r(33580),n=r(5944),a=r(90224),o=r(22587),i=r(8290);let d=(0,s.kj)({database:(0,n.s)(o.db,{provider:"sqlite",schema:{user:i.users,session:i.sessions,account:i.accounts,verification:i.verifications}}),emailAndPassword:{enabled:!0,requireEmailVerification:!1},session:{expiresIn:604800,updateAge:86400,cookieCache:{enabled:!0,maxAge:300}},user:{additionalFields:{role:{type:"string",required:!1,defaultValue:"user",input:!1}}},plugins:[(0,a.SA)({defaultRole:"user",adminRole:"admin"})],trustedOrigins:["http://localhost:5000","http://localhost:3000",...process.env.BETTER_AUTH_URL?[process.env.BETTER_AUTH_URL]:[],...process.env.NEXT_PUBLIC_APP_URL?[process.env.NEXT_PUBLIC_APP_URL]:[]]})},22587:(e,t,r)=>{r.d(t,{db:()=>p});var s=r(85890),n=r.n(s),a=r(31590),o=r(8290),i=r(55315),d=r.n(i),u=r(92048);let c=function(){if(process.env.DATABASE_URL)return process.env.DATABASE_URL;let e=d().join(process.cwd(),"data");return d().join(e,"mcctl.db")}();!function(e){if(":memory:"===e)return;let t=d().dirname(e);(0,u.existsSync)(t)||(0,u.mkdirSync)(t,{recursive:!0})}(c);let l=new(n())(c);l.pragma("journal_mode = WAL");let p=(0,a.t)(l,{schema:o})},8290:(e,t,r)=>{r.r(t),r.d(t,{accounts:()=>u,sessions:()=>d,userServers:()=>l,users:()=>i,verifications:()=>c});var s=r(80722),n=r(10160),a=r(30304),o=r(76303);let i=(0,s.Px)("users",{id:(0,n.fL)("id").primaryKey(),name:(0,n.fL)("name").notNull(),email:(0,n.fL)("email").notNull().unique(),emailVerified:(0,a._L)("email_verified",{mode:"boolean"}).notNull().default(!1),image:(0,n.fL)("image"),role:(0,n.fL)("role").notNull().default("user"),banned:(0,a._L)("banned",{mode:"boolean"}).default(!1),banReason:(0,n.fL)("ban_reason"),banExpires:(0,a._L)("ban_expires",{mode:"timestamp"}),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),d=(0,s.Px)("sessions",{id:(0,n.fL)("id").primaryKey(),expiresAt:(0,a._L)("expires_at",{mode:"timestamp"}).notNull(),token:(0,n.fL)("token").notNull().unique(),ipAddress:(0,n.fL)("ip_address"),userAgent:(0,n.fL)("user_agent"),userId:(0,n.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),u=(0,s.Px)("accounts",{id:(0,n.fL)("id").primaryKey(),accountId:(0,n.fL)("account_id").notNull(),providerId:(0,n.fL)("provider_id").notNull(),userId:(0,n.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),accessToken:(0,n.fL)("access_token"),refreshToken:(0,n.fL)("refresh_token"),idToken:(0,n.fL)("id_token"),accessTokenExpiresAt:(0,a._L)("access_token_expires_at",{mode:"timestamp"}),refreshTokenExpiresAt:(0,a._L)("refresh_token_expires_at",{mode:"timestamp"}),scope:(0,n.fL)("scope"),password:(0,n.fL)("password"),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),c=(0,s.Px)("verifications",{id:(0,n.fL)("id").primaryKey(),identifier:(0,n.fL)("identifier").notNull(),value:(0,n.fL)("value").notNull(),expiresAt:(0,a._L)("expires_at",{mode:"timestamp"}).notNull(),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).$defaultFn(()=>new Date)}),l=(0,s.Px)("user_servers",{id:(0,n.fL)("id").primaryKey().$defaultFn(()=>crypto.randomUUID()),userId:(0,n.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),serverId:(0,n.fL)("server_id").notNull(),permission:(0,n.fL)("permission").$type().notNull().default("view"),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)},e=>({userServerIdx:(0,o.Kz)("user_server_idx").on(e.userId,e.serverId)}))}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[9836,1489,7605,5309],()=>r(20062));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=5746,e.ids=[5746],e.modules={85890:e=>{e.exports=require("better-sqlite3")},72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},20062:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>L,patchFetch:()=>_,requestAsyncStorage:()=>f,routeModule:()=>E,serverHooks:()=>h,staticGenerationAsyncStorage:()=>N});var s={};r.r(s),r.d(s,{DELETE:()=>T,GET:()=>m,dynamic:()=>l});var a=r(3025),n=r(45086),o=r(74048),i=r(24517),d=r(78649),u=r(60154),c=r(77605);let l="force-dynamic";function p(e){return{username:e.user.name||e.user.email,role:e.user.role||"user"}}async function m(e,{params:t}){try{let e=await (0,u.mk)(await (0,c.headers)()),{name:r}=await t,s=(0,d.F0)(p(e)),a=await s.getWorld(r);return i.NextResponse.json(a)}catch(e){if(e instanceof u.l4)return i.NextResponse.json({error:"Unauthorized",message:e.message},{status:e.statusCode});if(e instanceof d.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to fetch world:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to fetch world details"},{status:500})}}async function T(e,{params:t}){try{let r=await (0,u.kF)(await (0,c.headers)()),{name:s}=await t,{searchParams:a}=new URL(e.url),n="true"===a.get("force"),o=(0,d.F0)(p(r)),l=await o.deleteWorld(s,n);return i.NextResponse.json(l)}catch(e){if(e instanceof u.l4)return i.NextResponse.json({error:"Forbidden",message:e.message},{status:e.statusCode});if(e instanceof d.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to delete world:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to delete world"},{status:500})}}let E=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/worlds/[name]/route",pathname:"/api/worlds/[name]",filename:"route",bundlePath:"app/api/worlds/[name]/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/worlds/[name]/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:f,staticGenerationAsyncStorage:N,serverHooks:h}=E,L="/api/worlds/[name]/route";function _(){return(0,o.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:N})}},78649:(e,t,r)=>{r.d(t,{F0:()=>n,zB:()=>s});class s extends Error{constructor(e,t,r){super(r),this.statusCode=e,this.error=t,this.name="McctlApiError"}}class a{constructor(e){this.baseUrl=e.baseUrl.replace(/\/$/,""),this.apiKey=e.apiKey,this.userContext=e.userContext}async fetch(e,t={}){let r=`${this.baseUrl}${e}`,a={"X-API-Key":this.apiKey};t.body&&(a["Content-Type"]="application/json"),this.userContext&&(a["X-User"]=this.userContext.username,a["X-Role"]=this.userContext.role);let n=await fetch(r,{...t,headers:{...a,...t.headers}});if(!n.ok){let e=await n.json().catch(()=>({error:"UnknownError",message:n.statusText}));throw new s(n.status,e.error,e.message)}return n.json()}async getServers(){return this.fetch("/api/servers")}async getServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}`)}async createServer(e){return this.fetch("/api/servers",{method:"POST",body:JSON.stringify(e)})}async deleteServer(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}${t?"?force=true":""}`,{method:"DELETE"})}async startServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/start`,{method:"POST"})}async stopServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/stop`,{method:"POST"})}async restartServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/restart`,{method:"POST"})}async execCommand(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/exec`,{method:"POST",body:JSON.stringify({command:t})})}async getLogs(e,t=100){return this.fetch(`/api/servers/${encodeURIComponent(e)}/logs?lines=${t}`)}async getWorlds(){return this.fetch("/api/worlds")}async getWorld(e){return this.fetch(`/api/worlds/${encodeURIComponent(e)}`)}async createWorld(e){return this.fetch("/api/worlds",{method:"POST",body:JSON.stringify(e)})}async assignWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}/assign`,{method:"POST",body:JSON.stringify({serverName:t})})}async releaseWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}/release${t?"?force=true":""}`,{method:"POST"})}async deleteWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}${t?"?force=true":""}`,{method:"DELETE"})}async getServerConfig(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/config`)}async updateServerConfig(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/config`,{method:"PATCH",body:JSON.stringify(t)})}async resetWorld(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/world/reset`,{method:"POST"})}async getRouterStatus(){return this.fetch("/api/router/status")}async getBackupStatus(){return this.fetch("/api/backup/status")}async pushBackup(e){let t=e?JSON.stringify({message:e}):void 0;return this.fetch("/api/backup/push",{method:"POST",body:t})}async getBackupHistory(e=20){return this.fetch(`/api/backup/history?limit=${e}`)}async restoreBackup(e){return this.fetch("/api/backup/restore",{method:"POST",body:JSON.stringify({commitHash:e})})}}function n(e){let t=process.env.MCCTL_API_URL||"http://localhost:5001",r=process.env.MCCTL_API_KEY||"";return r||console.warn("MCCTL_API_KEY is not set. API requests may fail."),new a({baseUrl:t,apiKey:r,userContext:e})}},60154:(e,t,r)=>{r.d(t,{Ke:()=>c,kF:()=>u,l4:()=>i,mk:()=>d});var s=r(31969),a=r(22587),n=r(8290),o=r(30579);class i extends Error{constructor(e,t=401){super(e),this.statusCode=t,this.name="AuthError"}}async function d(e){let t=await s.I.api.getSession({headers:e});if(!t)throw new i("Unauthorized",401);return t}async function u(e){let t=await d(e);if("admin"!==t.user.role)throw new i("Forbidden: Admin access required",403);return t}async function c(e,t,r="view"){let s=await d(e);if("admin"===s.user.role)return s;let u=await a.db.select().from(n.userServers).where((0,o.xD)((0,o.eq)(n.userServers.userId,s.user.id),(0,o.eq)(n.userServers.serverId,t))).limit(1);if(0===u.length)throw new i("Forbidden: No access to this server",403);let c=u[0].permission,l={view:1,manage:2,admin:3};if(l[c]<l[r])throw new i(`Forbidden: Requires ${r} permission`,403);return s}},31969:(e,t,r)=>{r.d(t,{I:()=>d});var s=r(33580),a=r(5944),n=r(90224),o=r(22587),i=r(8290);let d=(0,s.kj)({database:(0,a.s)(o.db,{provider:"sqlite",schema:{user:i.users,session:i.sessions,account:i.accounts,verification:i.verifications}}),emailAndPassword:{enabled:!0,requireEmailVerification:!1},session:{expiresIn:604800,updateAge:86400,cookieCache:{enabled:!0,maxAge:300}},user:{additionalFields:{role:{type:"string",required:!1,defaultValue:"user",input:!1}}},plugins:[(0,n.SA)({defaultRole:"user",adminRole:"admin"})],trustedOrigins:["http://localhost:5000","http://localhost:3000",...process.env.BETTER_AUTH_BASE_URL?[process.env.BETTER_AUTH_BASE_URL]:[],...process.env.NEXT_PUBLIC_APP_URL?[process.env.NEXT_PUBLIC_APP_URL]:[]]})},22587:(e,t,r)=>{r.d(t,{db:()=>p});var s=r(85890),a=r.n(s),n=r(31590),o=r(8290),i=r(55315),d=r.n(i),u=r(92048);let c=function(){if(process.env.DATABASE_URL)return process.env.DATABASE_URL;let e=process.env.MCCTL_ROOT||process.cwd(),t=d().join(e,"data");return d().join(t,"mcctl.db")}();!function(e){if(":memory:"===e)return;let t=d().dirname(e);(0,u.existsSync)(t)||(0,u.mkdirSync)(t,{recursive:!0})}(c);let l=new(a())(c);l.pragma("journal_mode = WAL"),l.pragma("foreign_keys = ON"),l.exec(`
2
+ CREATE TABLE IF NOT EXISTS users (
3
+ id TEXT PRIMARY KEY,
4
+ name TEXT NOT NULL,
5
+ email TEXT NOT NULL UNIQUE,
6
+ email_verified INTEGER NOT NULL DEFAULT 0,
7
+ image TEXT,
8
+ role TEXT NOT NULL DEFAULT 'user',
9
+ banned INTEGER DEFAULT 0,
10
+ ban_reason TEXT,
11
+ ban_expires INTEGER,
12
+ created_at INTEGER NOT NULL,
13
+ updated_at INTEGER NOT NULL
14
+ );
15
+ CREATE TABLE IF NOT EXISTS accounts (
16
+ id TEXT PRIMARY KEY,
17
+ account_id TEXT NOT NULL,
18
+ provider_id TEXT NOT NULL,
19
+ user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
20
+ access_token TEXT,
21
+ refresh_token TEXT,
22
+ id_token TEXT,
23
+ access_token_expires_at INTEGER,
24
+ refresh_token_expires_at INTEGER,
25
+ scope TEXT,
26
+ password TEXT,
27
+ created_at INTEGER NOT NULL,
28
+ updated_at INTEGER NOT NULL
29
+ );
30
+ CREATE TABLE IF NOT EXISTS sessions (
31
+ id TEXT PRIMARY KEY,
32
+ expires_at INTEGER NOT NULL,
33
+ token TEXT NOT NULL UNIQUE,
34
+ ip_address TEXT,
35
+ user_agent TEXT,
36
+ user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
37
+ created_at INTEGER NOT NULL,
38
+ updated_at INTEGER NOT NULL
39
+ );
40
+ CREATE TABLE IF NOT EXISTS verifications (
41
+ id TEXT PRIMARY KEY,
42
+ identifier TEXT NOT NULL,
43
+ value TEXT NOT NULL,
44
+ expires_at INTEGER NOT NULL,
45
+ created_at INTEGER,
46
+ updated_at INTEGER
47
+ );
48
+ CREATE TABLE IF NOT EXISTS user_servers (
49
+ id TEXT PRIMARY KEY,
50
+ user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
51
+ server_id TEXT NOT NULL,
52
+ permission TEXT NOT NULL DEFAULT 'view',
53
+ created_at INTEGER NOT NULL,
54
+ updated_at INTEGER NOT NULL
55
+ );
56
+ CREATE INDEX IF NOT EXISTS user_server_idx ON user_servers(user_id, server_id);
57
+ `);let p=(0,n.t)(l,{schema:o})},8290:(e,t,r)=>{r.r(t),r.d(t,{accounts:()=>u,sessions:()=>d,userServers:()=>l,users:()=>i,verifications:()=>c});var s=r(80722),a=r(10160),n=r(30304),o=r(76303);let i=(0,s.Px)("users",{id:(0,a.fL)("id").primaryKey(),name:(0,a.fL)("name").notNull(),email:(0,a.fL)("email").notNull().unique(),emailVerified:(0,n._L)("email_verified",{mode:"boolean"}).notNull().default(!1),image:(0,a.fL)("image"),role:(0,a.fL)("role").notNull().default("user"),banned:(0,n._L)("banned",{mode:"boolean"}).default(!1),banReason:(0,a.fL)("ban_reason"),banExpires:(0,n._L)("ban_expires",{mode:"timestamp"}),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),d=(0,s.Px)("sessions",{id:(0,a.fL)("id").primaryKey(),expiresAt:(0,n._L)("expires_at",{mode:"timestamp"}).notNull(),token:(0,a.fL)("token").notNull().unique(),ipAddress:(0,a.fL)("ip_address"),userAgent:(0,a.fL)("user_agent"),userId:(0,a.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),u=(0,s.Px)("accounts",{id:(0,a.fL)("id").primaryKey(),accountId:(0,a.fL)("account_id").notNull(),providerId:(0,a.fL)("provider_id").notNull(),userId:(0,a.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),accessToken:(0,a.fL)("access_token"),refreshToken:(0,a.fL)("refresh_token"),idToken:(0,a.fL)("id_token"),accessTokenExpiresAt:(0,n._L)("access_token_expires_at",{mode:"timestamp"}),refreshTokenExpiresAt:(0,n._L)("refresh_token_expires_at",{mode:"timestamp"}),scope:(0,a.fL)("scope"),password:(0,a.fL)("password"),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),c=(0,s.Px)("verifications",{id:(0,a.fL)("id").primaryKey(),identifier:(0,a.fL)("identifier").notNull(),value:(0,a.fL)("value").notNull(),expiresAt:(0,n._L)("expires_at",{mode:"timestamp"}).notNull(),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).$defaultFn(()=>new Date)}),l=(0,s.Px)("user_servers",{id:(0,a.fL)("id").primaryKey().$defaultFn(()=>crypto.randomUUID()),userId:(0,a.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),serverId:(0,a.fL)("server_id").notNull(),permission:(0,a.fL)("permission").$type().notNull().default("view"),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)},e=>({userServerIdx:(0,o.Kz)("user_server_idx").on(e.userId,e.serverId)}))}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[9836,1489,7605,5309],()=>r(20062));module.exports=s})();
@@ -1 +1,57 @@
1
- "use strict";(()=>{var e={};e.id=6541,e.ids=[6541],e.modules={85890:e=>{e.exports=require("better-sqlite3")},72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},32527:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>w,patchFetch:()=>g,requestAsyncStorage:()=>y,routeModule:()=>h,serverHooks:()=>_,staticGenerationAsyncStorage:()=>v});var s={};r.r(s),r.d(s,{GET:()=>m,POST:()=>f,dynamic:()=>l});var n=r(3025),a=r(45086),o=r(74048),i=r(24517),d=r(78649),u=r(60154),c=r(77605);let l="force-dynamic";function p(e){return{username:e.user.name||e.user.email,role:e.user.role||"user"}}async function m(){try{let e=await (0,u.mk)(await (0,c.headers)()),t=(0,d.F0)(p(e)),r=await t.getWorlds();return i.NextResponse.json(r)}catch(e){if(e instanceof u.l4)return i.NextResponse.json({error:"Unauthorized",message:e.message},{status:e.statusCode});if(e instanceof d.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to fetch worlds:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to fetch worlds"},{status:500})}}async function f(e){try{let t=await (0,u.mk)(await (0,c.headers)()),r=await e.json(),s=(0,d.F0)(p(t)),n=await s.createWorld(r);return i.NextResponse.json(n,{status:201})}catch(e){if(e instanceof u.l4)return i.NextResponse.json({error:"Unauthorized",message:e.message},{status:e.statusCode});if(e instanceof d.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to create world:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to create world"},{status:500})}}let h=new n.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/worlds/route",pathname:"/api/worlds",filename:"route",bundlePath:"app/api/worlds/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/worlds/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:y,staticGenerationAsyncStorage:v,serverHooks:_}=h,w="/api/worlds/route";function g(){return(0,o.patchFetch)({serverHooks:_,staticGenerationAsyncStorage:v})}},78649:(e,t,r)=>{r.d(t,{F0:()=>a,zB:()=>s});class s extends Error{constructor(e,t,r){super(r),this.statusCode=e,this.error=t,this.name="McctlApiError"}}class n{constructor(e){this.baseUrl=e.baseUrl.replace(/\/$/,""),this.apiKey=e.apiKey,this.userContext=e.userContext}async fetch(e,t={}){let r=`${this.baseUrl}${e}`,n={"X-API-Key":this.apiKey};t.body&&(n["Content-Type"]="application/json"),this.userContext&&(n["X-User"]=this.userContext.username,n["X-Role"]=this.userContext.role);let a=await fetch(r,{...t,headers:{...n,...t.headers}});if(!a.ok){let e=await a.json().catch(()=>({error:"UnknownError",message:a.statusText}));throw new s(a.status,e.error,e.message)}return a.json()}async getServers(){return this.fetch("/api/servers")}async getServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}`)}async createServer(e){return this.fetch("/api/servers",{method:"POST",body:JSON.stringify(e)})}async deleteServer(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}${t?"?force=true":""}`,{method:"DELETE"})}async startServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/start`,{method:"POST"})}async stopServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/stop`,{method:"POST"})}async restartServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/restart`,{method:"POST"})}async execCommand(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/exec`,{method:"POST",body:JSON.stringify({command:t})})}async getLogs(e,t=100){return this.fetch(`/api/servers/${encodeURIComponent(e)}/logs?lines=${t}`)}async getWorlds(){return this.fetch("/api/worlds")}async getWorld(e){return this.fetch(`/api/worlds/${encodeURIComponent(e)}`)}async createWorld(e){return this.fetch("/api/worlds",{method:"POST",body:JSON.stringify(e)})}async assignWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}/assign`,{method:"POST",body:JSON.stringify({serverName:t})})}async releaseWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}/release${t?"?force=true":""}`,{method:"POST"})}async deleteWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}${t?"?force=true":""}`,{method:"DELETE"})}async getServerConfig(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/config`)}async updateServerConfig(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/config`,{method:"PATCH",body:JSON.stringify(t)})}async resetWorld(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/world/reset`,{method:"POST"})}async getRouterStatus(){return this.fetch("/api/router/status")}async getBackupStatus(){return this.fetch("/api/backup/status")}async pushBackup(e){let t=e?JSON.stringify({message:e}):void 0;return this.fetch("/api/backup/push",{method:"POST",body:t})}async getBackupHistory(e=20){return this.fetch(`/api/backup/history?limit=${e}`)}async restoreBackup(e){return this.fetch("/api/backup/restore",{method:"POST",body:JSON.stringify({commitHash:e})})}}function a(e){let t=process.env.MCCTL_API_URL||"http://localhost:5001",r=process.env.MCCTL_API_KEY||"";return r||console.warn("MCCTL_API_KEY is not set. API requests may fail."),new n({baseUrl:t,apiKey:r,userContext:e})}},60154:(e,t,r)=>{r.d(t,{Ke:()=>c,kF:()=>u,l4:()=>i,mk:()=>d});var s=r(31969),n=r(22587),a=r(8290),o=r(30579);class i extends Error{constructor(e,t=401){super(e),this.statusCode=t,this.name="AuthError"}}async function d(e){let t=await s.I.api.getSession({headers:e});if(!t)throw new i("Unauthorized",401);return t}async function u(e){let t=await d(e);if("admin"!==t.user.role)throw new i("Forbidden: Admin access required",403);return t}async function c(e,t,r="view"){let s=await d(e);if("admin"===s.user.role)return s;let u=await n.db.select().from(a.userServers).where((0,o.xD)((0,o.eq)(a.userServers.userId,s.user.id),(0,o.eq)(a.userServers.serverId,t))).limit(1);if(0===u.length)throw new i("Forbidden: No access to this server",403);let c=u[0].permission,l={view:1,manage:2,admin:3};if(l[c]<l[r])throw new i(`Forbidden: Requires ${r} permission`,403);return s}},31969:(e,t,r)=>{r.d(t,{I:()=>d});var s=r(33580),n=r(5944),a=r(90224),o=r(22587),i=r(8290);let d=(0,s.kj)({database:(0,n.s)(o.db,{provider:"sqlite",schema:{user:i.users,session:i.sessions,account:i.accounts,verification:i.verifications}}),emailAndPassword:{enabled:!0,requireEmailVerification:!1},session:{expiresIn:604800,updateAge:86400,cookieCache:{enabled:!0,maxAge:300}},user:{additionalFields:{role:{type:"string",required:!1,defaultValue:"user",input:!1}}},plugins:[(0,a.SA)({defaultRole:"user",adminRole:"admin"})],trustedOrigins:["http://localhost:5000","http://localhost:3000",...process.env.BETTER_AUTH_URL?[process.env.BETTER_AUTH_URL]:[],...process.env.NEXT_PUBLIC_APP_URL?[process.env.NEXT_PUBLIC_APP_URL]:[]]})},22587:(e,t,r)=>{r.d(t,{db:()=>p});var s=r(85890),n=r.n(s),a=r(31590),o=r(8290),i=r(55315),d=r.n(i),u=r(92048);let c=function(){if(process.env.DATABASE_URL)return process.env.DATABASE_URL;let e=d().join(process.cwd(),"data");return d().join(e,"mcctl.db")}();!function(e){if(":memory:"===e)return;let t=d().dirname(e);(0,u.existsSync)(t)||(0,u.mkdirSync)(t,{recursive:!0})}(c);let l=new(n())(c);l.pragma("journal_mode = WAL");let p=(0,a.t)(l,{schema:o})},8290:(e,t,r)=>{r.r(t),r.d(t,{accounts:()=>u,sessions:()=>d,userServers:()=>l,users:()=>i,verifications:()=>c});var s=r(80722),n=r(10160),a=r(30304),o=r(76303);let i=(0,s.Px)("users",{id:(0,n.fL)("id").primaryKey(),name:(0,n.fL)("name").notNull(),email:(0,n.fL)("email").notNull().unique(),emailVerified:(0,a._L)("email_verified",{mode:"boolean"}).notNull().default(!1),image:(0,n.fL)("image"),role:(0,n.fL)("role").notNull().default("user"),banned:(0,a._L)("banned",{mode:"boolean"}).default(!1),banReason:(0,n.fL)("ban_reason"),banExpires:(0,a._L)("ban_expires",{mode:"timestamp"}),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),d=(0,s.Px)("sessions",{id:(0,n.fL)("id").primaryKey(),expiresAt:(0,a._L)("expires_at",{mode:"timestamp"}).notNull(),token:(0,n.fL)("token").notNull().unique(),ipAddress:(0,n.fL)("ip_address"),userAgent:(0,n.fL)("user_agent"),userId:(0,n.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),u=(0,s.Px)("accounts",{id:(0,n.fL)("id").primaryKey(),accountId:(0,n.fL)("account_id").notNull(),providerId:(0,n.fL)("provider_id").notNull(),userId:(0,n.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),accessToken:(0,n.fL)("access_token"),refreshToken:(0,n.fL)("refresh_token"),idToken:(0,n.fL)("id_token"),accessTokenExpiresAt:(0,a._L)("access_token_expires_at",{mode:"timestamp"}),refreshTokenExpiresAt:(0,a._L)("refresh_token_expires_at",{mode:"timestamp"}),scope:(0,n.fL)("scope"),password:(0,n.fL)("password"),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),c=(0,s.Px)("verifications",{id:(0,n.fL)("id").primaryKey(),identifier:(0,n.fL)("identifier").notNull(),value:(0,n.fL)("value").notNull(),expiresAt:(0,a._L)("expires_at",{mode:"timestamp"}).notNull(),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).$defaultFn(()=>new Date)}),l=(0,s.Px)("user_servers",{id:(0,n.fL)("id").primaryKey().$defaultFn(()=>crypto.randomUUID()),userId:(0,n.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),serverId:(0,n.fL)("server_id").notNull(),permission:(0,n.fL)("permission").$type().notNull().default("view"),createdAt:(0,a._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,a._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)},e=>({userServerIdx:(0,o.Kz)("user_server_idx").on(e.userId,e.serverId)}))}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[9836,1489,7605,5309],()=>r(32527));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=6541,e.ids=[6541],e.modules={85890:e=>{e.exports=require("better-sqlite3")},72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},32527:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>L,patchFetch:()=>_,requestAsyncStorage:()=>f,routeModule:()=>E,serverHooks:()=>N,staticGenerationAsyncStorage:()=>h});var s={};r.r(s),r.d(s,{GET:()=>m,POST:()=>T,dynamic:()=>l});var a=r(3025),n=r(45086),o=r(74048),i=r(24517),d=r(78649),u=r(60154),c=r(77605);let l="force-dynamic";function p(e){return{username:e.user.name||e.user.email,role:e.user.role||"user"}}async function m(){try{let e=await (0,u.mk)(await (0,c.headers)()),t=(0,d.F0)(p(e)),r=await t.getWorlds();return i.NextResponse.json(r)}catch(e){if(e instanceof u.l4)return i.NextResponse.json({error:"Unauthorized",message:e.message},{status:e.statusCode});if(e instanceof d.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to fetch worlds:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to fetch worlds"},{status:500})}}async function T(e){try{let t=await (0,u.mk)(await (0,c.headers)()),r=await e.json(),s=(0,d.F0)(p(t)),a=await s.createWorld(r);return i.NextResponse.json(a,{status:201})}catch(e){if(e instanceof u.l4)return i.NextResponse.json({error:"Unauthorized",message:e.message},{status:e.statusCode});if(e instanceof d.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to create world:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to create world"},{status:500})}}let E=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/worlds/route",pathname:"/api/worlds",filename:"route",bundlePath:"app/api/worlds/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/worlds/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:f,staticGenerationAsyncStorage:h,serverHooks:N}=E,L="/api/worlds/route";function _(){return(0,o.patchFetch)({serverHooks:N,staticGenerationAsyncStorage:h})}},78649:(e,t,r)=>{r.d(t,{F0:()=>n,zB:()=>s});class s extends Error{constructor(e,t,r){super(r),this.statusCode=e,this.error=t,this.name="McctlApiError"}}class a{constructor(e){this.baseUrl=e.baseUrl.replace(/\/$/,""),this.apiKey=e.apiKey,this.userContext=e.userContext}async fetch(e,t={}){let r=`${this.baseUrl}${e}`,a={"X-API-Key":this.apiKey};t.body&&(a["Content-Type"]="application/json"),this.userContext&&(a["X-User"]=this.userContext.username,a["X-Role"]=this.userContext.role);let n=await fetch(r,{...t,headers:{...a,...t.headers}});if(!n.ok){let e=await n.json().catch(()=>({error:"UnknownError",message:n.statusText}));throw new s(n.status,e.error,e.message)}return n.json()}async getServers(){return this.fetch("/api/servers")}async getServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}`)}async createServer(e){return this.fetch("/api/servers",{method:"POST",body:JSON.stringify(e)})}async deleteServer(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}${t?"?force=true":""}`,{method:"DELETE"})}async startServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/start`,{method:"POST"})}async stopServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/stop`,{method:"POST"})}async restartServer(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/restart`,{method:"POST"})}async execCommand(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/exec`,{method:"POST",body:JSON.stringify({command:t})})}async getLogs(e,t=100){return this.fetch(`/api/servers/${encodeURIComponent(e)}/logs?lines=${t}`)}async getWorlds(){return this.fetch("/api/worlds")}async getWorld(e){return this.fetch(`/api/worlds/${encodeURIComponent(e)}`)}async createWorld(e){return this.fetch("/api/worlds",{method:"POST",body:JSON.stringify(e)})}async assignWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}/assign`,{method:"POST",body:JSON.stringify({serverName:t})})}async releaseWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}/release${t?"?force=true":""}`,{method:"POST"})}async deleteWorld(e,t){return this.fetch(`/api/worlds/${encodeURIComponent(e)}${t?"?force=true":""}`,{method:"DELETE"})}async getServerConfig(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/config`)}async updateServerConfig(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/config`,{method:"PATCH",body:JSON.stringify(t)})}async resetWorld(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/world/reset`,{method:"POST"})}async getRouterStatus(){return this.fetch("/api/router/status")}async getBackupStatus(){return this.fetch("/api/backup/status")}async pushBackup(e){let t=e?JSON.stringify({message:e}):void 0;return this.fetch("/api/backup/push",{method:"POST",body:t})}async getBackupHistory(e=20){return this.fetch(`/api/backup/history?limit=${e}`)}async restoreBackup(e){return this.fetch("/api/backup/restore",{method:"POST",body:JSON.stringify({commitHash:e})})}}function n(e){let t=process.env.MCCTL_API_URL||"http://localhost:5001",r=process.env.MCCTL_API_KEY||"";return r||console.warn("MCCTL_API_KEY is not set. API requests may fail."),new a({baseUrl:t,apiKey:r,userContext:e})}},60154:(e,t,r)=>{r.d(t,{Ke:()=>c,kF:()=>u,l4:()=>i,mk:()=>d});var s=r(31969),a=r(22587),n=r(8290),o=r(30579);class i extends Error{constructor(e,t=401){super(e),this.statusCode=t,this.name="AuthError"}}async function d(e){let t=await s.I.api.getSession({headers:e});if(!t)throw new i("Unauthorized",401);return t}async function u(e){let t=await d(e);if("admin"!==t.user.role)throw new i("Forbidden: Admin access required",403);return t}async function c(e,t,r="view"){let s=await d(e);if("admin"===s.user.role)return s;let u=await a.db.select().from(n.userServers).where((0,o.xD)((0,o.eq)(n.userServers.userId,s.user.id),(0,o.eq)(n.userServers.serverId,t))).limit(1);if(0===u.length)throw new i("Forbidden: No access to this server",403);let c=u[0].permission,l={view:1,manage:2,admin:3};if(l[c]<l[r])throw new i(`Forbidden: Requires ${r} permission`,403);return s}},31969:(e,t,r)=>{r.d(t,{I:()=>d});var s=r(33580),a=r(5944),n=r(90224),o=r(22587),i=r(8290);let d=(0,s.kj)({database:(0,a.s)(o.db,{provider:"sqlite",schema:{user:i.users,session:i.sessions,account:i.accounts,verification:i.verifications}}),emailAndPassword:{enabled:!0,requireEmailVerification:!1},session:{expiresIn:604800,updateAge:86400,cookieCache:{enabled:!0,maxAge:300}},user:{additionalFields:{role:{type:"string",required:!1,defaultValue:"user",input:!1}}},plugins:[(0,n.SA)({defaultRole:"user",adminRole:"admin"})],trustedOrigins:["http://localhost:5000","http://localhost:3000",...process.env.BETTER_AUTH_BASE_URL?[process.env.BETTER_AUTH_BASE_URL]:[],...process.env.NEXT_PUBLIC_APP_URL?[process.env.NEXT_PUBLIC_APP_URL]:[]]})},22587:(e,t,r)=>{r.d(t,{db:()=>p});var s=r(85890),a=r.n(s),n=r(31590),o=r(8290),i=r(55315),d=r.n(i),u=r(92048);let c=function(){if(process.env.DATABASE_URL)return process.env.DATABASE_URL;let e=process.env.MCCTL_ROOT||process.cwd(),t=d().join(e,"data");return d().join(t,"mcctl.db")}();!function(e){if(":memory:"===e)return;let t=d().dirname(e);(0,u.existsSync)(t)||(0,u.mkdirSync)(t,{recursive:!0})}(c);let l=new(a())(c);l.pragma("journal_mode = WAL"),l.pragma("foreign_keys = ON"),l.exec(`
2
+ CREATE TABLE IF NOT EXISTS users (
3
+ id TEXT PRIMARY KEY,
4
+ name TEXT NOT NULL,
5
+ email TEXT NOT NULL UNIQUE,
6
+ email_verified INTEGER NOT NULL DEFAULT 0,
7
+ image TEXT,
8
+ role TEXT NOT NULL DEFAULT 'user',
9
+ banned INTEGER DEFAULT 0,
10
+ ban_reason TEXT,
11
+ ban_expires INTEGER,
12
+ created_at INTEGER NOT NULL,
13
+ updated_at INTEGER NOT NULL
14
+ );
15
+ CREATE TABLE IF NOT EXISTS accounts (
16
+ id TEXT PRIMARY KEY,
17
+ account_id TEXT NOT NULL,
18
+ provider_id TEXT NOT NULL,
19
+ user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
20
+ access_token TEXT,
21
+ refresh_token TEXT,
22
+ id_token TEXT,
23
+ access_token_expires_at INTEGER,
24
+ refresh_token_expires_at INTEGER,
25
+ scope TEXT,
26
+ password TEXT,
27
+ created_at INTEGER NOT NULL,
28
+ updated_at INTEGER NOT NULL
29
+ );
30
+ CREATE TABLE IF NOT EXISTS sessions (
31
+ id TEXT PRIMARY KEY,
32
+ expires_at INTEGER NOT NULL,
33
+ token TEXT NOT NULL UNIQUE,
34
+ ip_address TEXT,
35
+ user_agent TEXT,
36
+ user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
37
+ created_at INTEGER NOT NULL,
38
+ updated_at INTEGER NOT NULL
39
+ );
40
+ CREATE TABLE IF NOT EXISTS verifications (
41
+ id TEXT PRIMARY KEY,
42
+ identifier TEXT NOT NULL,
43
+ value TEXT NOT NULL,
44
+ expires_at INTEGER NOT NULL,
45
+ created_at INTEGER,
46
+ updated_at INTEGER
47
+ );
48
+ CREATE TABLE IF NOT EXISTS user_servers (
49
+ id TEXT PRIMARY KEY,
50
+ user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
51
+ server_id TEXT NOT NULL,
52
+ permission TEXT NOT NULL DEFAULT 'view',
53
+ created_at INTEGER NOT NULL,
54
+ updated_at INTEGER NOT NULL
55
+ );
56
+ CREATE INDEX IF NOT EXISTS user_server_idx ON user_servers(user_id, server_id);
57
+ `);let p=(0,n.t)(l,{schema:o})},8290:(e,t,r)=>{r.r(t),r.d(t,{accounts:()=>u,sessions:()=>d,userServers:()=>l,users:()=>i,verifications:()=>c});var s=r(80722),a=r(10160),n=r(30304),o=r(76303);let i=(0,s.Px)("users",{id:(0,a.fL)("id").primaryKey(),name:(0,a.fL)("name").notNull(),email:(0,a.fL)("email").notNull().unique(),emailVerified:(0,n._L)("email_verified",{mode:"boolean"}).notNull().default(!1),image:(0,a.fL)("image"),role:(0,a.fL)("role").notNull().default("user"),banned:(0,n._L)("banned",{mode:"boolean"}).default(!1),banReason:(0,a.fL)("ban_reason"),banExpires:(0,n._L)("ban_expires",{mode:"timestamp"}),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),d=(0,s.Px)("sessions",{id:(0,a.fL)("id").primaryKey(),expiresAt:(0,n._L)("expires_at",{mode:"timestamp"}).notNull(),token:(0,a.fL)("token").notNull().unique(),ipAddress:(0,a.fL)("ip_address"),userAgent:(0,a.fL)("user_agent"),userId:(0,a.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),u=(0,s.Px)("accounts",{id:(0,a.fL)("id").primaryKey(),accountId:(0,a.fL)("account_id").notNull(),providerId:(0,a.fL)("provider_id").notNull(),userId:(0,a.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),accessToken:(0,a.fL)("access_token"),refreshToken:(0,a.fL)("refresh_token"),idToken:(0,a.fL)("id_token"),accessTokenExpiresAt:(0,n._L)("access_token_expires_at",{mode:"timestamp"}),refreshTokenExpiresAt:(0,n._L)("refresh_token_expires_at",{mode:"timestamp"}),scope:(0,a.fL)("scope"),password:(0,a.fL)("password"),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),c=(0,s.Px)("verifications",{id:(0,a.fL)("id").primaryKey(),identifier:(0,a.fL)("identifier").notNull(),value:(0,a.fL)("value").notNull(),expiresAt:(0,n._L)("expires_at",{mode:"timestamp"}).notNull(),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).$defaultFn(()=>new Date)}),l=(0,s.Px)("user_servers",{id:(0,a.fL)("id").primaryKey().$defaultFn(()=>crypto.randomUUID()),userId:(0,a.fL)("user_id").notNull().references(()=>i.id,{onDelete:"cascade"}),serverId:(0,a.fL)("server_id").notNull(),permission:(0,a.fL)("permission").$type().notNull().default("view"),createdAt:(0,n._L)("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,n._L)("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)},e=>({userServerIdx:(0,o.Kz)("user_server_idx").on(e.userId,e.serverId)}))}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[9836,1489,7605,5309],()=>r(32527));module.exports=s})();
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/33a864272e2b3e97-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/3ecd40fce058ee61-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/70d2fd2b9078a5a3-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c99b890c5ded8d2e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8dfdea5f9ccf5da4.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-c5f126aae1eac753.js"/><script src="/_next/static/chunks/3b518dcd-5724e59d48f01b72.js" async=""></script><script src="/_next/static/chunks/2757-058492b5c236cb62.js" async=""></script><script src="/_next/static/chunks/main-app-666bf3e0c0f3dee2.js" async=""></script><script src="/_next/static/chunks/6812-f5924f14ef351036.js" async=""></script><script src="/_next/static/chunks/7220-4d1d72de4109ad9b.js" async=""></script><script src="/_next/static/chunks/8006-219c9bbc650b079e.js" async=""></script><script src="/_next/static/chunks/7294-ffa0013d4b0fa40a.js" async=""></script><script src="/_next/static/chunks/8696-8adf1e9b1a84f5c0.js" async=""></script><script src="/_next/static/chunks/1071-235049df1c3caba7.js" async=""></script><script src="/_next/static/chunks/540-4b925f2c57833962.js" async=""></script><script src="/_next/static/chunks/6189-d8557db379604b3e.js" async=""></script><script src="/_next/static/chunks/4840-5802e869ffd1d2a9.js" async=""></script><script src="/_next/static/chunks/5511-7a419d84918a8d64.js" async=""></script><script src="/_next/static/chunks/55-cc17f03142ace10c.js" async=""></script><script src="/_next/static/chunks/310-72d3b802b3cefa99.js" async=""></script><script src="/_next/static/chunks/8347-d55cd74fb316fad0.js" async=""></script><script src="/_next/static/chunks/4278-9a6acf769f296866.js" async=""></script><script src="/_next/static/chunks/9654-84c0d7b06321aab9.js" async=""></script><script src="/_next/static/chunks/2022-6da2f9a847a5d61c.js" async=""></script><script src="/_next/static/chunks/8918-bae025d477685e7d.js" async=""></script><script src="/_next/static/chunks/406-64ea09489141e436.js" async=""></script><script src="/_next/static/chunks/app/(main)/audit-logs/page-7a5d1441bb2811cf.js" async=""></script><script src="/_next/static/chunks/3543-1ec838cbe59f6baa.js" async=""></script><script src="/_next/static/chunks/2149-ba1bdd1d726ab70c.js" async=""></script><script src="/_next/static/chunks/2542-6ea12719b9ca1b7c.js" async=""></script><script src="/_next/static/chunks/8322-8ae826d4c9b38acc.js" async=""></script><script src="/_next/static/chunks/212-b904d9ae152f2360.js" async=""></script><script src="/_next/static/chunks/app/(main)/layout-692cb1da92b73287.js" async=""></script><script src="/_next/static/chunks/5645-d306bb768b5907c8.js" async=""></script><script src="/_next/static/chunks/app/layout-e0e626ece42c56d9.js" async=""></script><title>Minecraft Server Manager</title><meta name="description" content="Web-based management console for Minecraft server infrastructure"/><link rel="icon" href="/icon.svg?0f68875a168deab8" type="image/svg+xml" sizes="any"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script><style data-emotion="mui-global 1kft0z8">html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#ffffff;font-family:"Ubuntu","Roboto","Helvetica","Arial",sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#16181c;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#16181c;}body{scrollbar-color:#313338 #16181c;}body::-webkit-scrollbar,body *::-webkit-scrollbar{background-color:#16181c;width:8px;}body::-webkit-scrollbar-thumb,body *::-webkit-scrollbar-thumb{border-radius:8px;background-color:#313338;min-height:24px;}body::-webkit-scrollbar-thumb:hover,body *::-webkit-scrollbar-thumb:hover{background-color:#26282e;}</style></head><body class="__className_1d908f"><div id="__next"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--></div><script src="/_next/static/chunks/webpack-c5f126aae1eac753.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/33a864272e2b3e97-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/3ecd40fce058ee61-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/70d2fd2b9078a5a3-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/c99b890c5ded8d2e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/css/8dfdea5f9ccf5da4.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"6:I[39943,[],\"\"]\n8:I[68067,[],\"ClientPageRoot\"]\n9:I[52791,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"7220\",\"static/chunks/7220-4d1d72de4109ad9b.js\",\"8006\",\"static/chunks/8006-219c9bbc650b079e.js\",\"7294\",\"static/chunks/7294-ffa0013d4b0fa40a.js\",\"8696\",\"static/chunks/8696-8adf1e9b1a84f5c0.js\",\"1071\",\"static/chunks/1071-235049df1c3caba7.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"6189\",\"static/chunks/6189-d8557db379604b3e.js\",\"4840\",\"static/chunks/4840-5802e869ffd1d2a9.js\",\"5511\",\"static/chunks/5511-7a419d84918a8d64.js\",\"55\",\"static/chunks/55-cc17f03142ace10c.js\",\"310\",\"static/chunks/310-72d3b802b3cefa99.js\",\"8347\",\"static/chunks/8347-d55cd74fb316fad0.js\",\"4278\",\"static/chunks/4278-9a6acf769f296866.js\",\"9654\",\"static/chunks/9654-84c0d7b06321aab9.js\",\"2022\",\"static/chunks/2022-6da2f9a847a5d61c.js\",\"8918\",\"static/chunks/8918-bae025d477685e7d.js\",\"406\",\"static/chunks/406-64ea09489141e436.js\",\"4743\",\"static/chunks/app/(main)/audit-logs/page-7a5d1441bb2811cf.js\"],\"default\",1]\na:I[14224,[],\"\"]\nb:I[2863,[],\"\"]\nc:I[6453,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"7220\",\"static/chunks/7220-4d1d72de4109ad9b.js\",\"8006\",\"static/chunks/8006-219c9bbc650b079e.js\",\"7294\",\"static/chunks/7294-ffa0013d4b0fa40a.js\",\"8696\",\"static/chunks/8696-8adf1e9b1a84f5c0.js\",\"1071\",\"static/chunks/1071-235049df1c3caba7.js\",\"55\",\"static/chunks/55-cc17f03142ace10c.js\",\"3543\",\"static/chunks/3543-1ec838cbe59f6baa.js\",\"8347\",\"static/chunks/8347-d55cd74fb316fad0.js\",\"2149\",\"static/chunks/2149-ba1bdd1d726ab70c.js\",\"2542\",\"static/chunks/2542-6ea12719b9ca1b7c.js\",\"8322\",\"static/chunks/8322-8ae826d4c9b38acc.js\",\"8918\",\"static/chunks/8918-bae025d477685e7d.js\",\"212\",\"static/chunks/212-b904d9ae152f2360.js\",\"4095\",\"static/chunks/app/(main)/layout-692cb1da92b73287.js\"],\"default\",1]\ne:I[89083,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"default\"]\nf:I[48283,[\"6812\",\"static/chunks/6812-f5924f14ef"])</script><script>self.__next_f.push([1,"351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"ThemeProvider\"]\n10:I[22237,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"QueryProvider\"]\n11:\"$Sreact.suspense\"\n12:I[3454,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"LoadingProvider\"]\n18:I[19253,[],\"\"]\nd:{}\n13:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n14:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n15:{\"display\":\"inline-block\"}\n16:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n19:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L6\",null,{\"buildId\":\"54l5y_cPPm2v7sbdcoQao\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"audit-logs\"],\"initialTree\":[\"\",{\"children\":[\"(main)\",{\"children\":[\"audit-logs\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"(main)\",{\"children\":[\"audit-logs\",{\"children\":[\"__PAGE__\",{},[[\"$L7\",[\"$\",\"$L8\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$9\"}],null],null],null]},[null,[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(main)\",\"children\",\"audit-logs\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(main)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}],\"params\":\"$d\"}]],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8dfdea5f9ccf5da4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_1d908f\",\"children\":[\"$\",\"div\",null,{\"id\":\"__next\",\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$L10\",null,{\"children\":[\"$\",\"$11\",null,{\"fallback\":null,\"children\":[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$13\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$14\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$15\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$16\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]}]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L17\"],\"globalErrorComponent\":\"$18\",\"missingSlots\":\"$W19\"}]\n"])</script><script>self.__next_f.push([1,"17:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Minecraft Server Manager\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Web-based management console for Minecraft server infrastructure\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/icon.svg?0f68875a168deab8\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"meta\",\"5\",{\"name\":\"next-size-adjust\"}]]\n7:null\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/33a864272e2b3e97-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/3ecd40fce058ee61-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/70d2fd2b9078a5a3-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c99b890c5ded8d2e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8dfdea5f9ccf5da4.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-c5f126aae1eac753.js"/><script src="/_next/static/chunks/3b518dcd-5724e59d48f01b72.js" async=""></script><script src="/_next/static/chunks/2757-058492b5c236cb62.js" async=""></script><script src="/_next/static/chunks/main-app-666bf3e0c0f3dee2.js" async=""></script><script src="/_next/static/chunks/6812-f5924f14ef351036.js" async=""></script><script src="/_next/static/chunks/7220-4d1d72de4109ad9b.js" async=""></script><script src="/_next/static/chunks/8006-219c9bbc650b079e.js" async=""></script><script src="/_next/static/chunks/7294-ffa0013d4b0fa40a.js" async=""></script><script src="/_next/static/chunks/8696-8adf1e9b1a84f5c0.js" async=""></script><script src="/_next/static/chunks/1071-235049df1c3caba7.js" async=""></script><script src="/_next/static/chunks/540-4b925f2c57833962.js" async=""></script><script src="/_next/static/chunks/6189-d8557db379604b3e.js" async=""></script><script src="/_next/static/chunks/4840-5802e869ffd1d2a9.js" async=""></script><script src="/_next/static/chunks/5511-7a419d84918a8d64.js" async=""></script><script src="/_next/static/chunks/55-cc17f03142ace10c.js" async=""></script><script src="/_next/static/chunks/310-72d3b802b3cefa99.js" async=""></script><script src="/_next/static/chunks/8347-d55cd74fb316fad0.js" async=""></script><script src="/_next/static/chunks/4278-9a6acf769f296866.js" async=""></script><script src="/_next/static/chunks/9654-84c0d7b06321aab9.js" async=""></script><script src="/_next/static/chunks/2022-6da2f9a847a5d61c.js" async=""></script><script src="/_next/static/chunks/8918-bae025d477685e7d.js" async=""></script><script src="/_next/static/chunks/406-64ea09489141e436.js" async=""></script><script src="/_next/static/chunks/app/(main)/audit-logs/page-6379e4fb97ec58d0.js" async=""></script><script src="/_next/static/chunks/3543-1ec838cbe59f6baa.js" async=""></script><script src="/_next/static/chunks/2149-ba1bdd1d726ab70c.js" async=""></script><script src="/_next/static/chunks/2542-6ea12719b9ca1b7c.js" async=""></script><script src="/_next/static/chunks/8322-8ae826d4c9b38acc.js" async=""></script><script src="/_next/static/chunks/212-b904d9ae152f2360.js" async=""></script><script src="/_next/static/chunks/app/(main)/layout-692cb1da92b73287.js" async=""></script><script src="/_next/static/chunks/5645-d306bb768b5907c8.js" async=""></script><script src="/_next/static/chunks/app/layout-e0e626ece42c56d9.js" async=""></script><title>Minecraft Server Manager</title><meta name="description" content="Web-based management console for Minecraft server infrastructure"/><link rel="icon" href="/icon.svg?0f68875a168deab8" type="image/svg+xml" sizes="any"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script><style data-emotion="mui-global 1kft0z8">html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#ffffff;font-family:"Ubuntu","Roboto","Helvetica","Arial",sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#16181c;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#16181c;}body{scrollbar-color:#313338 #16181c;}body::-webkit-scrollbar,body *::-webkit-scrollbar{background-color:#16181c;width:8px;}body::-webkit-scrollbar-thumb,body *::-webkit-scrollbar-thumb{border-radius:8px;background-color:#313338;min-height:24px;}body::-webkit-scrollbar-thumb:hover,body *::-webkit-scrollbar-thumb:hover{background-color:#26282e;}</style></head><body class="__className_1d908f"><div id="__next"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--></div><script src="/_next/static/chunks/webpack-c5f126aae1eac753.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/33a864272e2b3e97-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/3ecd40fce058ee61-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/70d2fd2b9078a5a3-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/c99b890c5ded8d2e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/css/8dfdea5f9ccf5da4.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"6:I[39943,[],\"\"]\n8:I[68067,[],\"ClientPageRoot\"]\n9:I[52791,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"7220\",\"static/chunks/7220-4d1d72de4109ad9b.js\",\"8006\",\"static/chunks/8006-219c9bbc650b079e.js\",\"7294\",\"static/chunks/7294-ffa0013d4b0fa40a.js\",\"8696\",\"static/chunks/8696-8adf1e9b1a84f5c0.js\",\"1071\",\"static/chunks/1071-235049df1c3caba7.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"6189\",\"static/chunks/6189-d8557db379604b3e.js\",\"4840\",\"static/chunks/4840-5802e869ffd1d2a9.js\",\"5511\",\"static/chunks/5511-7a419d84918a8d64.js\",\"55\",\"static/chunks/55-cc17f03142ace10c.js\",\"310\",\"static/chunks/310-72d3b802b3cefa99.js\",\"8347\",\"static/chunks/8347-d55cd74fb316fad0.js\",\"4278\",\"static/chunks/4278-9a6acf769f296866.js\",\"9654\",\"static/chunks/9654-84c0d7b06321aab9.js\",\"2022\",\"static/chunks/2022-6da2f9a847a5d61c.js\",\"8918\",\"static/chunks/8918-bae025d477685e7d.js\",\"406\",\"static/chunks/406-64ea09489141e436.js\",\"4743\",\"static/chunks/app/(main)/audit-logs/page-6379e4fb97ec58d0.js\"],\"default\",1]\na:I[14224,[],\"\"]\nb:I[2863,[],\"\"]\nc:I[6453,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"7220\",\"static/chunks/7220-4d1d72de4109ad9b.js\",\"8006\",\"static/chunks/8006-219c9bbc650b079e.js\",\"7294\",\"static/chunks/7294-ffa0013d4b0fa40a.js\",\"8696\",\"static/chunks/8696-8adf1e9b1a84f5c0.js\",\"1071\",\"static/chunks/1071-235049df1c3caba7.js\",\"55\",\"static/chunks/55-cc17f03142ace10c.js\",\"3543\",\"static/chunks/3543-1ec838cbe59f6baa.js\",\"8347\",\"static/chunks/8347-d55cd74fb316fad0.js\",\"2149\",\"static/chunks/2149-ba1bdd1d726ab70c.js\",\"2542\",\"static/chunks/2542-6ea12719b9ca1b7c.js\",\"8322\",\"static/chunks/8322-8ae826d4c9b38acc.js\",\"8918\",\"static/chunks/8918-bae025d477685e7d.js\",\"212\",\"static/chunks/212-b904d9ae152f2360.js\",\"4095\",\"static/chunks/app/(main)/layout-692cb1da92b73287.js\"],\"default\",1]\ne:I[89083,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"default\"]\nf:I[48283,[\"6812\",\"static/chunks/6812-f5924f14ef"])</script><script>self.__next_f.push([1,"351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"ThemeProvider\"]\n10:I[22237,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"QueryProvider\"]\n11:\"$Sreact.suspense\"\n12:I[3454,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"LoadingProvider\"]\n18:I[19253,[],\"\"]\nd:{}\n13:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n14:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n15:{\"display\":\"inline-block\"}\n16:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n19:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L6\",null,{\"buildId\":\"M6lBMs4O93dmAs487Ndg4\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"audit-logs\"],\"initialTree\":[\"\",{\"children\":[\"(main)\",{\"children\":[\"audit-logs\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"(main)\",{\"children\":[\"audit-logs\",{\"children\":[\"__PAGE__\",{},[[\"$L7\",[\"$\",\"$L8\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$9\"}],null],null],null]},[null,[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(main)\",\"children\",\"audit-logs\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(main)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}],\"params\":\"$d\"}]],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8dfdea5f9ccf5da4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_1d908f\",\"children\":[\"$\",\"div\",null,{\"id\":\"__next\",\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$L10\",null,{\"children\":[\"$\",\"$11\",null,{\"fallback\":null,\"children\":[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$13\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$14\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$15\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$16\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]}]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L17\"],\"globalErrorComponent\":\"$18\",\"missingSlots\":\"$W19\"}]\n"])</script><script>self.__next_f.push([1,"17:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Minecraft Server Manager\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Web-based management console for Minecraft server infrastructure\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/icon.svg?0f68875a168deab8\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"meta\",\"5\",{\"name\":\"next-size-adjust\"}]]\n7:null\n"])</script></body></html>
@@ -1,5 +1,5 @@
1
1
  2:I[68067,[],"ClientPageRoot"]
2
- 3:I[52791,["6812","static/chunks/6812-f5924f14ef351036.js","7220","static/chunks/7220-4d1d72de4109ad9b.js","8006","static/chunks/8006-219c9bbc650b079e.js","7294","static/chunks/7294-ffa0013d4b0fa40a.js","8696","static/chunks/8696-8adf1e9b1a84f5c0.js","1071","static/chunks/1071-235049df1c3caba7.js","540","static/chunks/540-4b925f2c57833962.js","6189","static/chunks/6189-d8557db379604b3e.js","4840","static/chunks/4840-5802e869ffd1d2a9.js","5511","static/chunks/5511-7a419d84918a8d64.js","55","static/chunks/55-cc17f03142ace10c.js","310","static/chunks/310-72d3b802b3cefa99.js","8347","static/chunks/8347-d55cd74fb316fad0.js","4278","static/chunks/4278-9a6acf769f296866.js","9654","static/chunks/9654-84c0d7b06321aab9.js","2022","static/chunks/2022-6da2f9a847a5d61c.js","8918","static/chunks/8918-bae025d477685e7d.js","406","static/chunks/406-64ea09489141e436.js","4743","static/chunks/app/(main)/audit-logs/page-7a5d1441bb2811cf.js"],"default",1]
2
+ 3:I[52791,["6812","static/chunks/6812-f5924f14ef351036.js","7220","static/chunks/7220-4d1d72de4109ad9b.js","8006","static/chunks/8006-219c9bbc650b079e.js","7294","static/chunks/7294-ffa0013d4b0fa40a.js","8696","static/chunks/8696-8adf1e9b1a84f5c0.js","1071","static/chunks/1071-235049df1c3caba7.js","540","static/chunks/540-4b925f2c57833962.js","6189","static/chunks/6189-d8557db379604b3e.js","4840","static/chunks/4840-5802e869ffd1d2a9.js","5511","static/chunks/5511-7a419d84918a8d64.js","55","static/chunks/55-cc17f03142ace10c.js","310","static/chunks/310-72d3b802b3cefa99.js","8347","static/chunks/8347-d55cd74fb316fad0.js","4278","static/chunks/4278-9a6acf769f296866.js","9654","static/chunks/9654-84c0d7b06321aab9.js","2022","static/chunks/2022-6da2f9a847a5d61c.js","8918","static/chunks/8918-bae025d477685e7d.js","406","static/chunks/406-64ea09489141e436.js","4743","static/chunks/app/(main)/audit-logs/page-6379e4fb97ec58d0.js"],"default",1]
3
3
  4:I[14224,[],""]
4
4
  5:I[2863,[],""]
5
5
  6:I[6453,["6812","static/chunks/6812-f5924f14ef351036.js","7220","static/chunks/7220-4d1d72de4109ad9b.js","8006","static/chunks/8006-219c9bbc650b079e.js","7294","static/chunks/7294-ffa0013d4b0fa40a.js","8696","static/chunks/8696-8adf1e9b1a84f5c0.js","1071","static/chunks/1071-235049df1c3caba7.js","55","static/chunks/55-cc17f03142ace10c.js","3543","static/chunks/3543-1ec838cbe59f6baa.js","8347","static/chunks/8347-d55cd74fb316fad0.js","2149","static/chunks/2149-ba1bdd1d726ab70c.js","2542","static/chunks/2542-6ea12719b9ca1b7c.js","8322","static/chunks/8322-8ae826d4c9b38acc.js","8918","static/chunks/8918-bae025d477685e7d.js","212","static/chunks/212-b904d9ae152f2360.js","4095","static/chunks/app/(main)/layout-692cb1da92b73287.js"],"default",1]
@@ -13,6 +13,6 @@ d:{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Appl
13
13
  e:{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"}
14
14
  f:{"display":"inline-block"}
15
15
  10:{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0}
16
- 0:["54l5y_cPPm2v7sbdcoQao",[[["",{"children":["(main)",{"children":["audit-logs",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",{"children":["(main)",{"children":["audit-logs",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(main)","children","audit-logs","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[null,["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(main)","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}],"params":"$7"}]],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8dfdea5f9ccf5da4.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__className_1d908f","children":["$","div",null,{"id":"__next","children":["$","$L8",null,{"children":["$","$L9",null,{"children":["$","$La",null,{"children":["$","$b",null,{"fallback":null,"children":["$","$Lc",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$d","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$e","children":"404"}],["$","div",null,{"style":"$f","children":["$","h2",null,{"style":"$10","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]}]}]}]}]}]}]],null],null],["$L11",null]]]]
16
+ 0:["M6lBMs4O93dmAs487Ndg4",[[["",{"children":["(main)",{"children":["audit-logs",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",{"children":["(main)",{"children":["audit-logs",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(main)","children","audit-logs","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[null,["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(main)","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}],"params":"$7"}]],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8dfdea5f9ccf5da4.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__className_1d908f","children":["$","div",null,{"id":"__next","children":["$","$L8",null,{"children":["$","$L9",null,{"children":["$","$La",null,{"children":["$","$b",null,{"fallback":null,"children":["$","$Lc",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$d","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$e","children":"404"}],["$","div",null,{"style":"$f","children":["$","h2",null,{"style":"$10","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]}]}]}]}]}]}]],null],null],["$L11",null]]]]
17
17
  11:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Minecraft Server Manager"}],["$","meta","3",{"name":"description","content":"Web-based management console for Minecraft server infrastructure"}],["$","link","4",{"rel":"icon","href":"/icon.svg?0f68875a168deab8","type":"image/svg+xml","sizes":"any"}],["$","meta","5",{"name":"next-size-adjust"}]]
18
18
  1:null
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/33a864272e2b3e97-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/3ecd40fce058ee61-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/70d2fd2b9078a5a3-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c99b890c5ded8d2e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8dfdea5f9ccf5da4.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-c5f126aae1eac753.js"/><script src="/_next/static/chunks/3b518dcd-5724e59d48f01b72.js" async=""></script><script src="/_next/static/chunks/2757-058492b5c236cb62.js" async=""></script><script src="/_next/static/chunks/main-app-666bf3e0c0f3dee2.js" async=""></script><script src="/_next/static/chunks/6812-f5924f14ef351036.js" async=""></script><script src="/_next/static/chunks/7220-4d1d72de4109ad9b.js" async=""></script><script src="/_next/static/chunks/8006-219c9bbc650b079e.js" async=""></script><script src="/_next/static/chunks/7294-ffa0013d4b0fa40a.js" async=""></script><script src="/_next/static/chunks/8696-8adf1e9b1a84f5c0.js" async=""></script><script src="/_next/static/chunks/1071-235049df1c3caba7.js" async=""></script><script src="/_next/static/chunks/540-4b925f2c57833962.js" async=""></script><script src="/_next/static/chunks/6189-d8557db379604b3e.js" async=""></script><script src="/_next/static/chunks/310-72d3b802b3cefa99.js" async=""></script><script src="/_next/static/chunks/9654-84c0d7b06321aab9.js" async=""></script><script src="/_next/static/chunks/6655-81288236c1babc44.js" async=""></script><script src="/_next/static/chunks/app/(main)/backups/page-cc46681d519753dd.js" async=""></script><script src="/_next/static/chunks/55-cc17f03142ace10c.js" async=""></script><script src="/_next/static/chunks/3543-1ec838cbe59f6baa.js" async=""></script><script src="/_next/static/chunks/8347-d55cd74fb316fad0.js" async=""></script><script src="/_next/static/chunks/2149-ba1bdd1d726ab70c.js" async=""></script><script src="/_next/static/chunks/2542-6ea12719b9ca1b7c.js" async=""></script><script src="/_next/static/chunks/8322-8ae826d4c9b38acc.js" async=""></script><script src="/_next/static/chunks/8918-bae025d477685e7d.js" async=""></script><script src="/_next/static/chunks/212-b904d9ae152f2360.js" async=""></script><script src="/_next/static/chunks/app/(main)/layout-692cb1da92b73287.js" async=""></script><script src="/_next/static/chunks/5645-d306bb768b5907c8.js" async=""></script><script src="/_next/static/chunks/app/layout-e0e626ece42c56d9.js" async=""></script><title>Minecraft Server Manager</title><meta name="description" content="Web-based management console for Minecraft server infrastructure"/><link rel="icon" href="/icon.svg?0f68875a168deab8" type="image/svg+xml" sizes="any"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script><style data-emotion="mui-global 1kft0z8">html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#ffffff;font-family:"Ubuntu","Roboto","Helvetica","Arial",sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#16181c;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#16181c;}body{scrollbar-color:#313338 #16181c;}body::-webkit-scrollbar,body *::-webkit-scrollbar{background-color:#16181c;width:8px;}body::-webkit-scrollbar-thumb,body *::-webkit-scrollbar-thumb{border-radius:8px;background-color:#313338;min-height:24px;}body::-webkit-scrollbar-thumb:hover,body *::-webkit-scrollbar-thumb:hover{background-color:#26282e;}</style></head><body class="__className_1d908f"><div id="__next"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--></div><script src="/_next/static/chunks/webpack-c5f126aae1eac753.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/33a864272e2b3e97-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/3ecd40fce058ee61-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/70d2fd2b9078a5a3-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/c99b890c5ded8d2e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/css/8dfdea5f9ccf5da4.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"6:I[39943,[],\"\"]\n8:I[68067,[],\"ClientPageRoot\"]\n9:I[6643,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"7220\",\"static/chunks/7220-4d1d72de4109ad9b.js\",\"8006\",\"static/chunks/8006-219c9bbc650b079e.js\",\"7294\",\"static/chunks/7294-ffa0013d4b0fa40a.js\",\"8696\",\"static/chunks/8696-8adf1e9b1a84f5c0.js\",\"1071\",\"static/chunks/1071-235049df1c3caba7.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"6189\",\"static/chunks/6189-d8557db379604b3e.js\",\"310\",\"static/chunks/310-72d3b802b3cefa99.js\",\"9654\",\"static/chunks/9654-84c0d7b06321aab9.js\",\"6655\",\"static/chunks/6655-81288236c1babc44.js\",\"6302\",\"static/chunks/app/(main)/backups/page-cc46681d519753dd.js\"],\"default\",1]\na:I[14224,[],\"\"]\nb:I[2863,[],\"\"]\nc:I[6453,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"7220\",\"static/chunks/7220-4d1d72de4109ad9b.js\",\"8006\",\"static/chunks/8006-219c9bbc650b079e.js\",\"7294\",\"static/chunks/7294-ffa0013d4b0fa40a.js\",\"8696\",\"static/chunks/8696-8adf1e9b1a84f5c0.js\",\"1071\",\"static/chunks/1071-235049df1c3caba7.js\",\"55\",\"static/chunks/55-cc17f03142ace10c.js\",\"3543\",\"static/chunks/3543-1ec838cbe59f6baa.js\",\"8347\",\"static/chunks/8347-d55cd74fb316fad0.js\",\"2149\",\"static/chunks/2149-ba1bdd1d726ab70c.js\",\"2542\",\"static/chunks/2542-6ea12719b9ca1b7c.js\",\"8322\",\"static/chunks/8322-8ae826d4c9b38acc.js\",\"8918\",\"static/chunks/8918-bae025d477685e7d.js\",\"212\",\"static/chunks/212-b904d9ae152f2360.js\",\"4095\",\"static/chunks/app/(main)/layout-692cb1da92b73287.js\"],\"default\",1]\ne:I[89083,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"default\"]\nf:I[48283,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"ThemeProvider\"]\n10:I[22237,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"31"])</script><script>self.__next_f.push([1,"85\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"QueryProvider\"]\n11:\"$Sreact.suspense\"\n12:I[3454,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"LoadingProvider\"]\n18:I[19253,[],\"\"]\nd:{}\n13:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n14:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n15:{\"display\":\"inline-block\"}\n16:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n19:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L6\",null,{\"buildId\":\"54l5y_cPPm2v7sbdcoQao\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"backups\"],\"initialTree\":[\"\",{\"children\":[\"(main)\",{\"children\":[\"backups\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"(main)\",{\"children\":[\"backups\",{\"children\":[\"__PAGE__\",{},[[\"$L7\",[\"$\",\"$L8\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$9\"}],null],null],null]},[null,[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(main)\",\"children\",\"backups\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(main)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}],\"params\":\"$d\"}]],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8dfdea5f9ccf5da4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_1d908f\",\"children\":[\"$\",\"div\",null,{\"id\":\"__next\",\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$L10\",null,{\"children\":[\"$\",\"$11\",null,{\"fallback\":null,\"children\":[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$13\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$14\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$15\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$16\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]}]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L17\"],\"globalErrorComponent\":\"$18\",\"missingSlots\":\"$W19\"}]\n"])</script><script>self.__next_f.push([1,"17:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Minecraft Server Manager\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Web-based management console for Minecraft server infrastructure\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/icon.svg?0f68875a168deab8\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"meta\",\"5\",{\"name\":\"next-size-adjust\"}]]\n7:null\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/33a864272e2b3e97-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/3ecd40fce058ee61-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/70d2fd2b9078a5a3-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c99b890c5ded8d2e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8dfdea5f9ccf5da4.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-c5f126aae1eac753.js"/><script src="/_next/static/chunks/3b518dcd-5724e59d48f01b72.js" async=""></script><script src="/_next/static/chunks/2757-058492b5c236cb62.js" async=""></script><script src="/_next/static/chunks/main-app-666bf3e0c0f3dee2.js" async=""></script><script src="/_next/static/chunks/6812-f5924f14ef351036.js" async=""></script><script src="/_next/static/chunks/7220-4d1d72de4109ad9b.js" async=""></script><script src="/_next/static/chunks/8006-219c9bbc650b079e.js" async=""></script><script src="/_next/static/chunks/7294-ffa0013d4b0fa40a.js" async=""></script><script src="/_next/static/chunks/8696-8adf1e9b1a84f5c0.js" async=""></script><script src="/_next/static/chunks/1071-235049df1c3caba7.js" async=""></script><script src="/_next/static/chunks/540-4b925f2c57833962.js" async=""></script><script src="/_next/static/chunks/6189-d8557db379604b3e.js" async=""></script><script src="/_next/static/chunks/310-72d3b802b3cefa99.js" async=""></script><script src="/_next/static/chunks/9654-84c0d7b06321aab9.js" async=""></script><script src="/_next/static/chunks/6655-81288236c1babc44.js" async=""></script><script src="/_next/static/chunks/app/(main)/backups/page-cc46681d519753dd.js" async=""></script><script src="/_next/static/chunks/55-cc17f03142ace10c.js" async=""></script><script src="/_next/static/chunks/3543-1ec838cbe59f6baa.js" async=""></script><script src="/_next/static/chunks/8347-d55cd74fb316fad0.js" async=""></script><script src="/_next/static/chunks/2149-ba1bdd1d726ab70c.js" async=""></script><script src="/_next/static/chunks/2542-6ea12719b9ca1b7c.js" async=""></script><script src="/_next/static/chunks/8322-8ae826d4c9b38acc.js" async=""></script><script src="/_next/static/chunks/8918-bae025d477685e7d.js" async=""></script><script src="/_next/static/chunks/212-b904d9ae152f2360.js" async=""></script><script src="/_next/static/chunks/app/(main)/layout-692cb1da92b73287.js" async=""></script><script src="/_next/static/chunks/5645-d306bb768b5907c8.js" async=""></script><script src="/_next/static/chunks/app/layout-e0e626ece42c56d9.js" async=""></script><title>Minecraft Server Manager</title><meta name="description" content="Web-based management console for Minecraft server infrastructure"/><link rel="icon" href="/icon.svg?0f68875a168deab8" type="image/svg+xml" sizes="any"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script><style data-emotion="mui-global 1kft0z8">html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#ffffff;font-family:"Ubuntu","Roboto","Helvetica","Arial",sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#16181c;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#16181c;}body{scrollbar-color:#313338 #16181c;}body::-webkit-scrollbar,body *::-webkit-scrollbar{background-color:#16181c;width:8px;}body::-webkit-scrollbar-thumb,body *::-webkit-scrollbar-thumb{border-radius:8px;background-color:#313338;min-height:24px;}body::-webkit-scrollbar-thumb:hover,body *::-webkit-scrollbar-thumb:hover{background-color:#26282e;}</style></head><body class="__className_1d908f"><div id="__next"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--></div><script src="/_next/static/chunks/webpack-c5f126aae1eac753.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/33a864272e2b3e97-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/3ecd40fce058ee61-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/70d2fd2b9078a5a3-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/c99b890c5ded8d2e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/css/8dfdea5f9ccf5da4.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"6:I[39943,[],\"\"]\n8:I[68067,[],\"ClientPageRoot\"]\n9:I[6643,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"7220\",\"static/chunks/7220-4d1d72de4109ad9b.js\",\"8006\",\"static/chunks/8006-219c9bbc650b079e.js\",\"7294\",\"static/chunks/7294-ffa0013d4b0fa40a.js\",\"8696\",\"static/chunks/8696-8adf1e9b1a84f5c0.js\",\"1071\",\"static/chunks/1071-235049df1c3caba7.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"6189\",\"static/chunks/6189-d8557db379604b3e.js\",\"310\",\"static/chunks/310-72d3b802b3cefa99.js\",\"9654\",\"static/chunks/9654-84c0d7b06321aab9.js\",\"6655\",\"static/chunks/6655-81288236c1babc44.js\",\"6302\",\"static/chunks/app/(main)/backups/page-cc46681d519753dd.js\"],\"default\",1]\na:I[14224,[],\"\"]\nb:I[2863,[],\"\"]\nc:I[6453,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"7220\",\"static/chunks/7220-4d1d72de4109ad9b.js\",\"8006\",\"static/chunks/8006-219c9bbc650b079e.js\",\"7294\",\"static/chunks/7294-ffa0013d4b0fa40a.js\",\"8696\",\"static/chunks/8696-8adf1e9b1a84f5c0.js\",\"1071\",\"static/chunks/1071-235049df1c3caba7.js\",\"55\",\"static/chunks/55-cc17f03142ace10c.js\",\"3543\",\"static/chunks/3543-1ec838cbe59f6baa.js\",\"8347\",\"static/chunks/8347-d55cd74fb316fad0.js\",\"2149\",\"static/chunks/2149-ba1bdd1d726ab70c.js\",\"2542\",\"static/chunks/2542-6ea12719b9ca1b7c.js\",\"8322\",\"static/chunks/8322-8ae826d4c9b38acc.js\",\"8918\",\"static/chunks/8918-bae025d477685e7d.js\",\"212\",\"static/chunks/212-b904d9ae152f2360.js\",\"4095\",\"static/chunks/app/(main)/layout-692cb1da92b73287.js\"],\"default\",1]\ne:I[89083,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"default\"]\nf:I[48283,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"ThemeProvider\"]\n10:I[22237,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"31"])</script><script>self.__next_f.push([1,"85\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"QueryProvider\"]\n11:\"$Sreact.suspense\"\n12:I[3454,[\"6812\",\"static/chunks/6812-f5924f14ef351036.js\",\"540\",\"static/chunks/540-4b925f2c57833962.js\",\"5645\",\"static/chunks/5645-d306bb768b5907c8.js\",\"3185\",\"static/chunks/app/layout-e0e626ece42c56d9.js\"],\"LoadingProvider\"]\n18:I[19253,[],\"\"]\nd:{}\n13:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n14:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n15:{\"display\":\"inline-block\"}\n16:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n19:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L6\",null,{\"buildId\":\"M6lBMs4O93dmAs487Ndg4\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"backups\"],\"initialTree\":[\"\",{\"children\":[\"(main)\",{\"children\":[\"backups\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"(main)\",{\"children\":[\"backups\",{\"children\":[\"__PAGE__\",{},[[\"$L7\",[\"$\",\"$L8\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$9\"}],null],null],null]},[null,[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(main)\",\"children\",\"backups\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(main)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}],\"params\":\"$d\"}]],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8dfdea5f9ccf5da4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_1d908f\",\"children\":[\"$\",\"div\",null,{\"id\":\"__next\",\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$L10\",null,{\"children\":[\"$\",\"$11\",null,{\"fallback\":null,\"children\":[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$13\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$14\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$15\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$16\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]}]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L17\"],\"globalErrorComponent\":\"$18\",\"missingSlots\":\"$W19\"}]\n"])</script><script>self.__next_f.push([1,"17:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Minecraft Server Manager\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Web-based management console for Minecraft server infrastructure\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/icon.svg?0f68875a168deab8\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"meta\",\"5\",{\"name\":\"next-size-adjust\"}]]\n7:null\n"])</script></body></html>