@minecraft-docker/mcctl-console 2.1.3 → 2.2.0

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 (204) 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 +90 -87
  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 +4 -4
  6. package/.next/standalone/platform/services/mcctl-console/.next/prerender-manifest.json +1 -1
  7. package/.next/standalone/platform/services/mcctl-console/.next/routes-manifest.json +1 -1
  8. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/admin/users/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page.js +1 -1
  12. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page.js +1 -1
  14. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page.js.nft.json +1 -1
  15. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page.js +1 -1
  17. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page.js +1 -1
  20. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page.js.nft.json +1 -1
  21. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page.js +1 -1
  24. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page.js.nft.json +1 -1
  25. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page.js +1 -1
  27. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.html +1 -1
  30. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.rsc +1 -1
  31. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/history/route.js +1 -57
  32. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/history/route.js.nft.json +1 -1
  33. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/restore/route.js +1 -57
  34. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/restore/route.js.nft.json +1 -1
  35. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/route.js +1 -57
  36. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/route.js.nft.json +1 -1
  37. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/ban/route.js +1 -57
  38. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/ban/route.js.nft.json +1 -1
  39. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/kick/route.js +1 -57
  40. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/kick/route.js.nft.json +1 -1
  41. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/op/[player]/route.js +1 -57
  42. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/op/[player]/route.js.nft.json +1 -1
  43. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/op/route.js +1 -57
  44. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/op/route.js.nft.json +1 -1
  45. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/route.js +1 -57
  46. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/route.js.nft.json +1 -1
  47. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/whitelist/route.js +1 -57
  48. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/whitelist/route.js.nft.json +1 -1
  49. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/whitelist/status/route.js +1 -0
  50. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/whitelist/status/route.js.nft.json +1 -0
  51. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/router/status/route.js +1 -57
  52. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/router/status/route.js.nft.json +1 -1
  53. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/[action]/route.js +1 -57
  54. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/[action]/route.js.nft.json +1 -1
  55. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/config/route.js +1 -57
  56. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/config/route.js.nft.json +1 -1
  57. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/exec/route.js +1 -57
  58. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/exec/route.js.nft.json +1 -1
  59. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/hostnames/route.js +1 -0
  60. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/hostnames/route.js.nft.json +1 -0
  61. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/route.js +1 -57
  62. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/route.js.nft.json +1 -1
  63. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/world/reset/route.js +1 -57
  64. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/world/reset/route.js.nft.json +1 -1
  65. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/route.js +1 -57
  66. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/route.js.nft.json +1 -1
  67. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/[name]/[action]/route.js +1 -57
  68. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/[name]/[action]/route.js.nft.json +1 -1
  69. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/[name]/route.js +1 -57
  70. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/[name]/route.js.nft.json +1 -1
  71. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/route.js +1 -57
  72. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/route.js.nft.json +1 -1
  73. package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.html +1 -1
  74. package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.rsc +3 -3
  75. package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.html +1 -1
  76. package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.rsc +3 -3
  77. package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.html +1 -1
  78. package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.rsc +3 -3
  79. package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.html +1 -1
  80. package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.rsc +1 -1
  81. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page_client-reference-manifest.js +1 -1
  82. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.html +1 -1
  83. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.rsc +2 -2
  84. package/.next/standalone/platform/services/mcctl-console/.next/server/app/page_client-reference-manifest.js +1 -1
  85. package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.html +1 -1
  86. package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.rsc +3 -3
  87. package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.html +1 -1
  88. package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.rsc +3 -3
  89. package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.html +1 -1
  90. package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.rsc +3 -3
  91. package/.next/standalone/platform/services/mcctl-console/.next/server/app/settings.html +1 -1
  92. package/.next/standalone/platform/services/mcctl-console/.next/server/app/settings.rsc +3 -3
  93. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page_client-reference-manifest.js +1 -1
  94. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.html +1 -1
  95. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.rsc +2 -2
  96. package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.html +1 -1
  97. package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.rsc +3 -3
  98. package/.next/standalone/platform/services/mcctl-console/.next/server/app-paths-manifest.json +17 -15
  99. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/1080.js +1 -1
  100. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/1309.js +57 -0
  101. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/1314.js +7 -7
  102. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/3434.js +1 -0
  103. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/354.js +1 -1
  104. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/5019.js +1 -1
  105. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8685.js +1 -0
  106. package/.next/standalone/platform/services/mcctl-console/.next/server/middleware-build-manifest.js +1 -1
  107. package/.next/standalone/platform/services/mcctl-console/.next/server/middleware-manifest.json +5 -5
  108. package/.next/standalone/platform/services/mcctl-console/.next/server/next-font-manifest.js +1 -1
  109. package/.next/standalone/platform/services/mcctl-console/.next/server/next-font-manifest.json +1 -1
  110. package/.next/standalone/platform/services/mcctl-console/.next/server/pages/404.html +1 -1
  111. package/.next/standalone/platform/services/mcctl-console/.next/server/pages/500.html +1 -1
  112. package/.next/standalone/platform/services/mcctl-console/.next/server/server-reference-manifest.json +1 -1
  113. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1476-a0570078fdf78fae.js +1 -0
  114. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2666-060d67b8e56af9d0.js +1 -0
  115. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5787-3387a2b82bbb1e66.js +1 -0
  116. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6645-9bcc9a0f9cd2fdc9.js +1 -0
  117. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7305-17eb783421477032.js +1 -0
  118. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7727-2552fac729c5514a.js +1 -0
  119. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/9058-02ac41562ff141d0.js +1 -0
  120. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/9154-c792f0aadd25fffe.js +1 -0
  121. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/9949-92aa4cba630945d3.js +1 -0
  122. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/backups/page-201b9f9aecc8932e.js +1 -0
  123. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/dashboard/page-626f566be94160eb.js +1 -0
  124. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/layout-9ce7f2bf657eacfa.js +1 -0
  125. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/players/page-a655062812711f1b.js +1 -0
  126. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/routing/page-7797d4cf74c7fa77.js +1 -0
  127. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/console/page-4e811ac018a2a049.js +1 -0
  128. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/page-f1026a973b0f8ac1.js +1 -0
  129. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/page-9d374aef836cdbae.js +1 -0
  130. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/settings/page-fe918cc58acd9ed9.js +1 -0
  131. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/worlds/page-2e4a4b525d3b0f1d.js +1 -0
  132. package/.next/{static/chunks/app/login/page-073a17485ca81f18.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/login/page-ff4d395f77e036b5.js} +1 -1
  133. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/signup/{page-bfb822f4c5c7ce99.js → page-861124fab907567f.js} +1 -1
  134. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/{main-d86dc43481acf07f.js → main-c1b58e7640294abf.js} +1 -1
  135. package/.next/standalone/platform/services/mcctl-console/package.json +1 -1
  136. package/.next/static/chunks/1476-a0570078fdf78fae.js +1 -0
  137. package/.next/static/chunks/2666-060d67b8e56af9d0.js +1 -0
  138. package/.next/static/chunks/5787-3387a2b82bbb1e66.js +1 -0
  139. package/.next/static/chunks/6645-9bcc9a0f9cd2fdc9.js +1 -0
  140. package/.next/static/chunks/7305-17eb783421477032.js +1 -0
  141. package/.next/static/chunks/7727-2552fac729c5514a.js +1 -0
  142. package/.next/static/chunks/9058-02ac41562ff141d0.js +1 -0
  143. package/.next/static/chunks/9154-c792f0aadd25fffe.js +1 -0
  144. package/.next/static/chunks/9949-92aa4cba630945d3.js +1 -0
  145. package/.next/static/chunks/app/(main)/backups/page-201b9f9aecc8932e.js +1 -0
  146. package/.next/static/chunks/app/(main)/dashboard/page-626f566be94160eb.js +1 -0
  147. package/.next/static/chunks/app/(main)/layout-9ce7f2bf657eacfa.js +1 -0
  148. package/.next/static/chunks/app/(main)/players/page-a655062812711f1b.js +1 -0
  149. package/.next/static/chunks/app/(main)/routing/page-7797d4cf74c7fa77.js +1 -0
  150. package/.next/static/chunks/app/(main)/servers/[name]/console/page-4e811ac018a2a049.js +1 -0
  151. package/.next/static/chunks/app/(main)/servers/[name]/page-f1026a973b0f8ac1.js +1 -0
  152. package/.next/static/chunks/app/(main)/servers/page-9d374aef836cdbae.js +1 -0
  153. package/.next/static/chunks/app/(main)/settings/page-fe918cc58acd9ed9.js +1 -0
  154. package/.next/static/chunks/app/(main)/worlds/page-2e4a4b525d3b0f1d.js +1 -0
  155. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/login/page-073a17485ca81f18.js → static/chunks/app/login/page-ff4d395f77e036b5.js} +1 -1
  156. package/.next/static/chunks/app/signup/{page-bfb822f4c5c7ce99.js → page-861124fab907567f.js} +1 -1
  157. package/.next/static/chunks/{main-d86dc43481acf07f.js → main-c1b58e7640294abf.js} +1 -1
  158. package/package.json +2 -2
  159. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/2793.js +0 -1
  160. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8402.js +0 -1
  161. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1544-d2d1404bef00d038.js +0 -1
  162. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1721-2758853c661770ff.js +0 -1
  163. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2537-6c9d2dfd403b7448.js +0 -1
  164. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/3489-b8c5f08aa4922197.js +0 -1
  165. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5375-a2d3a8fb915a3971.js +0 -1
  166. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/563-d87300cc5ef5920c.js +0 -1
  167. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6357-a9d3501984c53429.js +0 -1
  168. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6857-5b9c04069853bfc4.js +0 -1
  169. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8558-4356df5e91ec7f4c.js +0 -1
  170. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/backups/page-a8606e93b4994f33.js +0 -1
  171. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/dashboard/page-fe3321721ddfe2a7.js +0 -1
  172. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/layout-bc7b020e80bc6d8d.js +0 -1
  173. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/players/page-5bbed669a03279a3.js +0 -1
  174. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/routing/page-ee0b47f2cc2bc235.js +0 -1
  175. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/console/page-617a1ab914c8d828.js +0 -1
  176. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/page-b8d4a08a748e882d.js +0 -1
  177. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/page-e47f9c34ab4e890d.js +0 -1
  178. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/settings/page-dac4b25dde7b0719.js +0 -1
  179. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/worlds/page-7e2bc35fda11d7c4.js +0 -1
  180. package/.next/static/chunks/1544-d2d1404bef00d038.js +0 -1
  181. package/.next/static/chunks/1721-2758853c661770ff.js +0 -1
  182. package/.next/static/chunks/2537-6c9d2dfd403b7448.js +0 -1
  183. package/.next/static/chunks/3489-b8c5f08aa4922197.js +0 -1
  184. package/.next/static/chunks/5375-a2d3a8fb915a3971.js +0 -1
  185. package/.next/static/chunks/563-d87300cc5ef5920c.js +0 -1
  186. package/.next/static/chunks/6357-a9d3501984c53429.js +0 -1
  187. package/.next/static/chunks/6857-5b9c04069853bfc4.js +0 -1
  188. package/.next/static/chunks/8558-4356df5e91ec7f4c.js +0 -1
  189. package/.next/static/chunks/app/(main)/backups/page-a8606e93b4994f33.js +0 -1
  190. package/.next/static/chunks/app/(main)/dashboard/page-fe3321721ddfe2a7.js +0 -1
  191. package/.next/static/chunks/app/(main)/layout-bc7b020e80bc6d8d.js +0 -1
  192. package/.next/static/chunks/app/(main)/players/page-5bbed669a03279a3.js +0 -1
  193. package/.next/static/chunks/app/(main)/routing/page-ee0b47f2cc2bc235.js +0 -1
  194. package/.next/static/chunks/app/(main)/servers/[name]/console/page-617a1ab914c8d828.js +0 -1
  195. package/.next/static/chunks/app/(main)/servers/[name]/page-b8d4a08a748e882d.js +0 -1
  196. package/.next/static/chunks/app/(main)/servers/page-e47f9c34ab4e890d.js +0 -1
  197. package/.next/static/chunks/app/(main)/settings/page-dac4b25dde7b0719.js +0 -1
  198. package/.next/static/chunks/app/(main)/worlds/page-7e2bc35fda11d7c4.js +0 -1
  199. /package/.next/standalone/platform/services/mcctl-console/.next/static/{ODNQp8gXEvQR9CpUaVR-y → 0yTJAIAp_3b6rB4bkr7KX}/_buildManifest.js +0 -0
  200. /package/.next/standalone/platform/services/mcctl-console/.next/static/{ODNQp8gXEvQR9CpUaVR-y → 0yTJAIAp_3b6rB4bkr7KX}/_ssgManifest.js +0 -0
  201. /package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/audit-logs/{page-21b37416096d3cfc.js → page-592b5471bbfd01e3.js} +0 -0
  202. /package/.next/static/{ODNQp8gXEvQR9CpUaVR-y → 0yTJAIAp_3b6rB4bkr7KX}/_buildManifest.js +0 -0
  203. /package/.next/static/{ODNQp8gXEvQR9CpUaVR-y → 0yTJAIAp_3b6rB4bkr7KX}/_ssgManifest.js +0 -0
  204. /package/.next/static/chunks/app/(main)/audit-logs/{page-21b37416096d3cfc.js → page-592b5471bbfd01e3.js} +0 -0
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/bindings","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/bindings.js","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/package.json","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/file-uri-to-path","../../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/1489.js","../../../../chunks/3439.js","../../../../chunks/5309.js","../../../../chunks/5863.js","../../../../chunks/6782.js","../../../../chunks/7605.js","../../../../chunks/8896.js","../../../../chunks/9836.js","../../../../webpack-runtime.js"]}
1
+ {"version":1,"files":["../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/bindings","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/bindings.js","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/package.json","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/file-uri-to-path","../../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/1309.js","../../../../chunks/1489.js","../../../../chunks/3439.js","../../../../chunks/5309.js","../../../../chunks/5863.js","../../../../chunks/6782.js","../../../../chunks/7605.js","../../../../chunks/8896.js","../../../../chunks/9836.js","../../../../webpack-runtime.js"]}
@@ -1,57 +1 @@
1
- "use strict";(()=>{var e={};e.id=5005,e.ids=[5005],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")},34510:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>N,patchFetch:()=>_,requestAsyncStorage:()=>f,routeModule:()=>T,serverHooks:()=>L,staticGenerationAsyncStorage:()=>E});var s={};r.r(s),r.d(s,{GET:()=>m,POST:()=>h,dynamic:()=>p});var n=r(3025),a=r(45086),o=r(74048),i=r(24517),d=r(78649),c=r(60154),u=r(77605);let p="force-dynamic";function l(e){return{username:e.user.name||e.user.email,role:e.user.role||"user"}}async function m(){try{let e=await (0,c.mk)(await (0,u.headers)()),t=(0,d.F0)(l(e)),r=await t.getBackupStatus();return i.NextResponse.json(r)}catch(e){if(e instanceof c.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 backup status:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to fetch backup status"},{status:500})}}async function h(e){try{let t=await (0,c.kF)(await (0,u.headers)()),r=(await e.json().catch(()=>({}))).message,s=(0,d.F0)(l(t)),n=await s.pushBackup(r);return i.NextResponse.json(n)}catch(e){if(e instanceof c.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 push backup:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to push backup"},{status:500})}}let T=new n.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/backup/route",pathname:"/api/backup",filename:"route",bundlePath:"app/api/backup/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/backup/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:f,staticGenerationAsyncStorage:E,serverHooks:L}=T,N="/api/backup/route";function _(){return(0,o.patchFetch)({serverHooks:L,staticGenerationAsyncStorage:E})}},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})})}async getWhitelist(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/whitelist`)}async addToWhitelist(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/whitelist`,{method:"POST",body:JSON.stringify({player:t})})}async removeFromWhitelist(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/whitelist/${encodeURIComponent(t)}`,{method:"DELETE"})}async getBans(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/bans`)}async banPlayer(e,t,r){return this.fetch(`/api/servers/${encodeURIComponent(e)}/bans`,{method:"POST",body:JSON.stringify({player:t,reason:r})})}async unbanPlayer(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/bans/${encodeURIComponent(t)}`,{method:"DELETE"})}async getOpsWithLevel(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops`)}async addOpWithLevel(e,t,r=4){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops`,{method:"POST",body:JSON.stringify({player:t,level:r})})}async updateOpLevel(e,t,r){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify({level:r})})}async removeOp(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops/${encodeURIComponent(t)}`,{method:"DELETE"})}async getOps(e){return this.getOpsWithLevel(e).then(e=>({players:e.operators.map(e=>e.name),total:e.count,source:e.source}))}async addOp(e,t){return this.addOpWithLevel(e,t,4).then(e=>({success:e.success,message:e.message||`Added ${t} as operator`,source:e.source}))}}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:()=>u,kF:()=>c,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 (0,s.Z)(e);if(!t)throw new i("Unauthorized",401);return t}async function c(e){let t=await d(e);if("admin"!==t.user.role)throw new i("Forbidden: Admin access required",403);return t}async function u(e,t,r="view"){let s=await d(e);if("admin"===s.user.role)return s;let c=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===c.length)throw new i("Forbidden: No access to this server",403);let u=c[0].permission,p={view:1,manage:2,admin:3};if(p[u]<p[r])throw new i(`Forbidden: Requires ${r} permission`,403);return s}},31969:(e,t,r)=>{r.d(t,{I:()=>u,Z:()=>p});var s=r(33580),n=r(5944),a=r(90224),o=r(22587),i=r(8290);let d=process.env.BETTER_AUTH_BASE_URL||`http://localhost:${process.env.PORT||5e3}`,c=d.startsWith("https://"),u=(0,s.kj)({baseURL:d,secret:process.env.BETTER_AUTH_SECRET,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}},advanced:{useSecureCookies:c},user:{additionalFields:{role:{type:"string",required:!1,defaultValue:"user",input:!1}}},plugins:[(0,a.SA)({defaultRole:"user",adminRole:"admin"})],trustedOrigins:e=>{let t=["http://localhost:5000","http://localhost:3000",d,process.env.NEXT_PUBLIC_APP_URL];if(e){let r=e.headers.get("origin");r&&function(e){try{let t=new URL(e).hostname;return"localhost"===t||"127.0.0.1"===t||"::1"===t||t.startsWith("192.168.")||t.startsWith("10.")||/^172\.(1[6-9]|2\d|3[01])\./.test(t)||t.endsWith(".local")}catch{return!1}}(r)&&t.push(r)}return t}});async function p(e){return u.api.getSession({headers:e})}},22587:(e,t,r)=>{r.d(t,{db:()=>l});var s=r(85890),n=r.n(s),a=r(31590),o=r(8290),i=r(55315),d=r.n(i),c=r(92048);let u=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,c.existsSync)(t)||(0,c.mkdirSync)(t,{recursive:!0})}(u);let p=new(n())(u);p.pragma("journal_mode = WAL"),p.pragma("foreign_keys = ON"),p.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 l=(0,a.t)(p,{schema:o})},8290:(e,t,r)=>{r.r(t),r.d(t,{accounts:()=>c,sessions:()=>d,userServers:()=>p,users:()=>i,verifications:()=>u});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)}),c=(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)}),u=(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)}),p=(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(34510));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=5005,e.ids=[5005],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")},34510:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>v,patchFetch:()=>k,requestAsyncStorage:()=>x,routeModule:()=>f,serverHooks:()=>w,staticGenerationAsyncStorage:()=>g});var s={};t.r(s),t.d(s,{GET:()=>m,POST:()=>h,dynamic:()=>d});var a=t(3025),n=t(45086),o=t(74048),i=t(24517),u=t(78649),c=t(60154),p=t(77605);let d="force-dynamic";function l(e){return{username:e.user.name||e.user.email,role:e.user.role||"user"}}async function m(){try{let e=await (0,c.mk)(await (0,p.headers)()),r=(0,u.F0)(l(e)),t=await r.getBackupStatus();return i.NextResponse.json(t)}catch(e){if(e instanceof c.l4)return i.NextResponse.json({error:"Unauthorized",message:e.message},{status:e.statusCode});if(e instanceof u.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to fetch backup status:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to fetch backup status"},{status:500})}}async function h(e){try{let r=await (0,c.kF)(await (0,p.headers)()),t=(await e.json().catch(()=>({}))).message,s=(0,u.F0)(l(r)),a=await s.pushBackup(t);return i.NextResponse.json(a)}catch(e){if(e instanceof c.l4)return i.NextResponse.json({error:"Forbidden",message:e.message},{status:e.statusCode});if(e instanceof u.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to push backup:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to push backup"},{status:500})}}let f=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/backup/route",pathname:"/api/backup",filename:"route",bundlePath:"app/api/backup/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/backup/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:x,staticGenerationAsyncStorage:g,serverHooks:w}=f,v="/api/backup/route";function k(){return(0,o.patchFetch)({serverHooks:w,staticGenerationAsyncStorage:g})}},60154:(e,r,t)=>{t.d(r,{Ke:()=>p,kF:()=>c,l4:()=>i,mk:()=>u});var s=t(31969),a=t(22587),n=t(8290),o=t(30579);class i extends Error{constructor(e,r=401){super(e),this.statusCode=r,this.name="AuthError"}}async function u(e){let r=await (0,s.Z)(e);if(!r)throw new i("Unauthorized",401);return r}async function c(e){let r=await u(e);if("admin"!==r.user.role)throw new i("Forbidden: Admin access required",403);return r}async function p(e,r,t="view"){let s=await u(e);if("admin"===s.user.role)return s;let c=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,r))).limit(1);if(0===c.length)throw new i("Forbidden: No access to this server",403);let p=c[0].permission,d={view:1,manage:2,admin:3};if(d[p]<d[t])throw new i(`Forbidden: Requires ${t} permission`,403);return s}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[9836,1489,7605,5309,1309],()=>t(34510));module.exports=s})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/bindings","../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/bindings.js","../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/package.json","../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/file-uri-to-path","../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../../../package.json","../../../../../node_modules/better-sqlite3","../../../../../node_modules/next","../../../../../package.json","../../../../package.json","../../../chunks/1489.js","../../../chunks/3439.js","../../../chunks/5309.js","../../../chunks/5863.js","../../../chunks/6782.js","../../../chunks/7605.js","../../../chunks/8896.js","../../../chunks/9836.js","../../../webpack-runtime.js"]}
1
+ {"version":1,"files":["../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/bindings","../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/bindings.js","../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/package.json","../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/file-uri-to-path","../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../../../package.json","../../../../../node_modules/better-sqlite3","../../../../../node_modules/next","../../../../../package.json","../../../../package.json","../../../chunks/1309.js","../../../chunks/1489.js","../../../chunks/3439.js","../../../chunks/5309.js","../../../chunks/5863.js","../../../chunks/6782.js","../../../chunks/7605.js","../../../chunks/8896.js","../../../chunks/9836.js","../../../webpack-runtime.js"]}
@@ -1,57 +1 @@
1
- "use strict";(()=>{var e={};e.id=8310,e.ids=[8310],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")},36732:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>y,patchFetch:()=>v,requestAsyncStorage:()=>E,routeModule:()=>f,serverHooks:()=>L,staticGenerationAsyncStorage:()=>N});var s={};r.r(s),r.d(s,{DELETE:()=>T,GET:()=>m,POST:()=>h,dynamic:()=>p});var n=r(3025),a=r(45086),o=r(74048),i=r(24517),d=r(78649),u=r(60154),c=r(77605);let p="force-dynamic";function l(e){return{username:e.user.name||e.user.email,role:e.user.role||"user"}}async function m(e){try{let{searchParams:t}=new URL(e.url),r=t.get("server");if(!r)return i.NextResponse.json({error:"BadRequest",message:"Server name is required"},{status:400});let s=await (0,u.Ke)(await (0,c.headers)(),r,"view"),n=(0,d.F0)(l(s)),a=await n.getBans(r);return i.NextResponse.json({players:a.players,source:a.source})}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 fetch ban list:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to fetch ban list"},{status:500})}}async function h(e){try{let{player:t,server:r,reason:s}=await e.json();if(!t||!r)return i.NextResponse.json({error:"BadRequest",message:"Player and server are required"},{status:400});let n=await (0,u.Ke)(await (0,c.headers)(),r,"manage"),a=(0,d.F0)(l(n)),o=await a.banPlayer(r,t,s);return i.NextResponse.json({success:o.success,message:o.message,source:o.source})}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 ban player:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to ban player"},{status:500})}}async function T(e){try{let{searchParams:t}=new URL(e.url),r=t.get("player"),s=t.get("server");if(!r||!s)return i.NextResponse.json({error:"BadRequest",message:"Player and server are required"},{status:400});let n=await (0,u.Ke)(await (0,c.headers)(),s,"manage"),a=(0,d.F0)(l(n)),o=await a.unbanPlayer(s,r);return i.NextResponse.json({success:o.success,message:o.message,source:o.source})}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 unban player:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to unban player"},{status:500})}}let f=new n.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/players/ban/route",pathname:"/api/players/ban",filename:"route",bundlePath:"app/api/players/ban/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/players/ban/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:E,staticGenerationAsyncStorage:N,serverHooks:L}=f,y="/api/players/ban/route";function v(){return(0,o.patchFetch)({serverHooks:L,staticGenerationAsyncStorage:N})}},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})})}async getWhitelist(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/whitelist`)}async addToWhitelist(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/whitelist`,{method:"POST",body:JSON.stringify({player:t})})}async removeFromWhitelist(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/whitelist/${encodeURIComponent(t)}`,{method:"DELETE"})}async getBans(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/bans`)}async banPlayer(e,t,r){return this.fetch(`/api/servers/${encodeURIComponent(e)}/bans`,{method:"POST",body:JSON.stringify({player:t,reason:r})})}async unbanPlayer(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/bans/${encodeURIComponent(t)}`,{method:"DELETE"})}async getOpsWithLevel(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops`)}async addOpWithLevel(e,t,r=4){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops`,{method:"POST",body:JSON.stringify({player:t,level:r})})}async updateOpLevel(e,t,r){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify({level:r})})}async removeOp(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops/${encodeURIComponent(t)}`,{method:"DELETE"})}async getOps(e){return this.getOpsWithLevel(e).then(e=>({players:e.operators.map(e=>e.name),total:e.count,source:e.source}))}async addOp(e,t){return this.addOpWithLevel(e,t,4).then(e=>({success:e.success,message:e.message||`Added ${t} as operator`,source:e.source}))}}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 (0,s.Z)(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,p={view:1,manage:2,admin:3};if(p[c]<p[r])throw new i(`Forbidden: Requires ${r} permission`,403);return s}},31969:(e,t,r)=>{r.d(t,{I:()=>c,Z:()=>p});var s=r(33580),n=r(5944),a=r(90224),o=r(22587),i=r(8290);let d=process.env.BETTER_AUTH_BASE_URL||`http://localhost:${process.env.PORT||5e3}`,u=d.startsWith("https://"),c=(0,s.kj)({baseURL:d,secret:process.env.BETTER_AUTH_SECRET,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}},advanced:{useSecureCookies:u},user:{additionalFields:{role:{type:"string",required:!1,defaultValue:"user",input:!1}}},plugins:[(0,a.SA)({defaultRole:"user",adminRole:"admin"})],trustedOrigins:e=>{let t=["http://localhost:5000","http://localhost:3000",d,process.env.NEXT_PUBLIC_APP_URL];if(e){let r=e.headers.get("origin");r&&function(e){try{let t=new URL(e).hostname;return"localhost"===t||"127.0.0.1"===t||"::1"===t||t.startsWith("192.168.")||t.startsWith("10.")||/^172\.(1[6-9]|2\d|3[01])\./.test(t)||t.endsWith(".local")}catch{return!1}}(r)&&t.push(r)}return t}});async function p(e){return c.api.getSession({headers:e})}},22587:(e,t,r)=>{r.d(t,{db:()=>l});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=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 p=new(n())(c);p.pragma("journal_mode = WAL"),p.pragma("foreign_keys = ON"),p.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 l=(0,a.t)(p,{schema:o})},8290:(e,t,r)=>{r.r(t),r.d(t,{accounts:()=>u,sessions:()=>d,userServers:()=>p,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)}),p=(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(36732));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=8310,e.ids=[8310],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")},36732:(e,r,s)=>{s.r(r),s.d(r,{originalPathname:()=>v,patchFetch:()=>R,requestAsyncStorage:()=>y,routeModule:()=>x,serverHooks:()=>h,staticGenerationAsyncStorage:()=>w});var t={};s.r(t),s.d(t,{DELETE:()=>f,GET:()=>m,POST:()=>g,dynamic:()=>d});var a=s(3025),n=s(45086),o=s(74048),i=s(24517),u=s(78649),c=s(60154),l=s(77605);let d="force-dynamic";function p(e){return{username:e.user.name||e.user.email,role:e.user.role||"user"}}async function m(e){try{let{searchParams:r}=new URL(e.url),s=r.get("server");if(!s)return i.NextResponse.json({error:"BadRequest",message:"Server name is required"},{status:400});let t=await (0,c.Ke)(await (0,l.headers)(),s,"view"),a=(0,u.F0)(p(t)),n=await a.getBans(s);return i.NextResponse.json({players:n.players,source:n.source})}catch(e){if(e instanceof c.l4)return i.NextResponse.json({error:"Forbidden",message:e.message},{status:e.statusCode});if(e instanceof u.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to fetch ban list:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to fetch ban list"},{status:500})}}async function g(e){try{let{player:r,server:s,reason:t}=await e.json();if(!r||!s)return i.NextResponse.json({error:"BadRequest",message:"Player and server are required"},{status:400});let a=await (0,c.Ke)(await (0,l.headers)(),s,"manage"),n=(0,u.F0)(p(a)),o=await n.banPlayer(s,r,t);return i.NextResponse.json({success:o.success,message:o.message,source:o.source})}catch(e){if(e instanceof c.l4)return i.NextResponse.json({error:"Forbidden",message:e.message},{status:e.statusCode});if(e instanceof u.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to ban player:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to ban player"},{status:500})}}async function f(e){try{let{searchParams:r}=new URL(e.url),s=r.get("player"),t=r.get("server");if(!s||!t)return i.NextResponse.json({error:"BadRequest",message:"Player and server are required"},{status:400});let a=await (0,c.Ke)(await (0,l.headers)(),t,"manage"),n=(0,u.F0)(p(a)),o=await n.unbanPlayer(t,s);return i.NextResponse.json({success:o.success,message:o.message,source:o.source})}catch(e){if(e instanceof c.l4)return i.NextResponse.json({error:"Forbidden",message:e.message},{status:e.statusCode});if(e instanceof u.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to unban player:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to unban player"},{status:500})}}let x=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/players/ban/route",pathname:"/api/players/ban",filename:"route",bundlePath:"app/api/players/ban/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/players/ban/route.ts",nextConfigOutput:"standalone",userland:t}),{requestAsyncStorage:y,staticGenerationAsyncStorage:w,serverHooks:h}=x,v="/api/players/ban/route";function R(){return(0,o.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:w})}},60154:(e,r,s)=>{s.d(r,{Ke:()=>l,kF:()=>c,l4:()=>i,mk:()=>u});var t=s(31969),a=s(22587),n=s(8290),o=s(30579);class i extends Error{constructor(e,r=401){super(e),this.statusCode=r,this.name="AuthError"}}async function u(e){let r=await (0,t.Z)(e);if(!r)throw new i("Unauthorized",401);return r}async function c(e){let r=await u(e);if("admin"!==r.user.role)throw new i("Forbidden: Admin access required",403);return r}async function l(e,r,s="view"){let t=await u(e);if("admin"===t.user.role)return t;let c=await a.db.select().from(n.userServers).where((0,o.xD)((0,o.eq)(n.userServers.userId,t.user.id),(0,o.eq)(n.userServers.serverId,r))).limit(1);if(0===c.length)throw new i("Forbidden: No access to this server",403);let l=c[0].permission,d={view:1,manage:2,admin:3};if(d[l]<d[s])throw new i(`Forbidden: Requires ${s} permission`,403);return t}}};var r=require("../../../../webpack-runtime.js");r.C(e);var s=e=>r(r.s=e),t=r.X(0,[9836,1489,7605,5309,1309],()=>s(36732));module.exports=t})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/bindings","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/bindings.js","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/package.json","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/file-uri-to-path","../../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/1489.js","../../../../chunks/3439.js","../../../../chunks/5309.js","../../../../chunks/5863.js","../../../../chunks/6782.js","../../../../chunks/7605.js","../../../../chunks/8896.js","../../../../chunks/9836.js","../../../../webpack-runtime.js"]}
1
+ {"version":1,"files":["../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/bindings","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/bindings.js","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/package.json","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/file-uri-to-path","../../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/1309.js","../../../../chunks/1489.js","../../../../chunks/3439.js","../../../../chunks/5309.js","../../../../chunks/5863.js","../../../../chunks/6782.js","../../../../chunks/7605.js","../../../../chunks/8896.js","../../../../chunks/9836.js","../../../../webpack-runtime.js"]}
@@ -1,57 +1 @@
1
- "use strict";(()=>{var e={};e.id=6544,e.ids=[6544],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")},1407:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>f,patchFetch:()=>L,requestAsyncStorage:()=>h,routeModule:()=>m,serverHooks:()=>E,staticGenerationAsyncStorage:()=>T});var s={};r.r(s),r.d(s,{POST:()=>l,dynamic:()=>p});var n=r(3025),a=r(45086),o=r(74048),i=r(24517),d=r(78649),c=r(60154),u=r(77605);let p="force-dynamic";async function l(e){try{let{player:t,server:r,reason:s}=await e.json();if(!t||!r)return i.NextResponse.json({error:"BadRequest",message:"Player and server are required"},{status:400});let n=await (0,c.Ke)(await (0,u.headers)(),r,"manage"),a=(0,d.F0)({username:n.user.name||n.user.email,role:n.user.role||"user"}),o=s?`kick ${t} ${s}`:`kick ${t}`,p=await a.execCommand(r,o);return i.NextResponse.json({success:!0,message:p.output})}catch(e){if(e instanceof c.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 kick player:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to kick player"},{status:500})}}let m=new n.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/players/kick/route",pathname:"/api/players/kick",filename:"route",bundlePath:"app/api/players/kick/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/players/kick/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:h,staticGenerationAsyncStorage:T,serverHooks:E}=m,f="/api/players/kick/route";function L(){return(0,o.patchFetch)({serverHooks:E,staticGenerationAsyncStorage:T})}},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})})}async getWhitelist(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/whitelist`)}async addToWhitelist(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/whitelist`,{method:"POST",body:JSON.stringify({player:t})})}async removeFromWhitelist(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/whitelist/${encodeURIComponent(t)}`,{method:"DELETE"})}async getBans(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/bans`)}async banPlayer(e,t,r){return this.fetch(`/api/servers/${encodeURIComponent(e)}/bans`,{method:"POST",body:JSON.stringify({player:t,reason:r})})}async unbanPlayer(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/bans/${encodeURIComponent(t)}`,{method:"DELETE"})}async getOpsWithLevel(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops`)}async addOpWithLevel(e,t,r=4){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops`,{method:"POST",body:JSON.stringify({player:t,level:r})})}async updateOpLevel(e,t,r){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify({level:r})})}async removeOp(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops/${encodeURIComponent(t)}`,{method:"DELETE"})}async getOps(e){return this.getOpsWithLevel(e).then(e=>({players:e.operators.map(e=>e.name),total:e.count,source:e.source}))}async addOp(e,t){return this.addOpWithLevel(e,t,4).then(e=>({success:e.success,message:e.message||`Added ${t} as operator`,source:e.source}))}}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:()=>u,kF:()=>c,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 (0,s.Z)(e);if(!t)throw new i("Unauthorized",401);return t}async function c(e){let t=await d(e);if("admin"!==t.user.role)throw new i("Forbidden: Admin access required",403);return t}async function u(e,t,r="view"){let s=await d(e);if("admin"===s.user.role)return s;let c=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===c.length)throw new i("Forbidden: No access to this server",403);let u=c[0].permission,p={view:1,manage:2,admin:3};if(p[u]<p[r])throw new i(`Forbidden: Requires ${r} permission`,403);return s}},31969:(e,t,r)=>{r.d(t,{I:()=>u,Z:()=>p});var s=r(33580),n=r(5944),a=r(90224),o=r(22587),i=r(8290);let d=process.env.BETTER_AUTH_BASE_URL||`http://localhost:${process.env.PORT||5e3}`,c=d.startsWith("https://"),u=(0,s.kj)({baseURL:d,secret:process.env.BETTER_AUTH_SECRET,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}},advanced:{useSecureCookies:c},user:{additionalFields:{role:{type:"string",required:!1,defaultValue:"user",input:!1}}},plugins:[(0,a.SA)({defaultRole:"user",adminRole:"admin"})],trustedOrigins:e=>{let t=["http://localhost:5000","http://localhost:3000",d,process.env.NEXT_PUBLIC_APP_URL];if(e){let r=e.headers.get("origin");r&&function(e){try{let t=new URL(e).hostname;return"localhost"===t||"127.0.0.1"===t||"::1"===t||t.startsWith("192.168.")||t.startsWith("10.")||/^172\.(1[6-9]|2\d|3[01])\./.test(t)||t.endsWith(".local")}catch{return!1}}(r)&&t.push(r)}return t}});async function p(e){return u.api.getSession({headers:e})}},22587:(e,t,r)=>{r.d(t,{db:()=>l});var s=r(85890),n=r.n(s),a=r(31590),o=r(8290),i=r(55315),d=r.n(i),c=r(92048);let u=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,c.existsSync)(t)||(0,c.mkdirSync)(t,{recursive:!0})}(u);let p=new(n())(u);p.pragma("journal_mode = WAL"),p.pragma("foreign_keys = ON"),p.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 l=(0,a.t)(p,{schema:o})},8290:(e,t,r)=>{r.r(t),r.d(t,{accounts:()=>c,sessions:()=>d,userServers:()=>p,users:()=>i,verifications:()=>u});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)}),c=(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)}),u=(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)}),p=(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(1407));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=6544,e.ids=[6544],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")},1407:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>g,patchFetch:()=>h,requestAsyncStorage:()=>x,routeModule:()=>m,serverHooks:()=>k,staticGenerationAsyncStorage:()=>f});var s={};t.r(s),t.d(s,{POST:()=>l,dynamic:()=>d});var a=t(3025),n=t(45086),o=t(74048),i=t(24517),u=t(78649),c=t(60154),p=t(77605);let d="force-dynamic";async function l(e){try{let{player:r,server:t,reason:s}=await e.json();if(!r||!t)return i.NextResponse.json({error:"BadRequest",message:"Player and server are required"},{status:400});let a=await (0,c.Ke)(await (0,p.headers)(),t,"manage"),n=(0,u.F0)({username:a.user.name||a.user.email,role:a.user.role||"user"}),o=s?`kick ${r} ${s}`:`kick ${r}`,d=await n.execCommand(t,o);return i.NextResponse.json({success:!0,message:d.output})}catch(e){if(e instanceof c.l4)return i.NextResponse.json({error:"Forbidden",message:e.message},{status:e.statusCode});if(e instanceof u.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to kick player:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to kick player"},{status:500})}}let m=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/players/kick/route",pathname:"/api/players/kick",filename:"route",bundlePath:"app/api/players/kick/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/players/kick/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:x,staticGenerationAsyncStorage:f,serverHooks:k}=m,g="/api/players/kick/route";function h(){return(0,o.patchFetch)({serverHooks:k,staticGenerationAsyncStorage:f})}},60154:(e,r,t)=>{t.d(r,{Ke:()=>p,kF:()=>c,l4:()=>i,mk:()=>u});var s=t(31969),a=t(22587),n=t(8290),o=t(30579);class i extends Error{constructor(e,r=401){super(e),this.statusCode=r,this.name="AuthError"}}async function u(e){let r=await (0,s.Z)(e);if(!r)throw new i("Unauthorized",401);return r}async function c(e){let r=await u(e);if("admin"!==r.user.role)throw new i("Forbidden: Admin access required",403);return r}async function p(e,r,t="view"){let s=await u(e);if("admin"===s.user.role)return s;let c=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,r))).limit(1);if(0===c.length)throw new i("Forbidden: No access to this server",403);let p=c[0].permission,d={view:1,manage:2,admin:3};if(d[p]<d[t])throw new i(`Forbidden: Requires ${t} permission`,403);return s}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[9836,1489,7605,5309,1309],()=>t(1407));module.exports=s})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/bindings","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/bindings.js","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/package.json","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/file-uri-to-path","../../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/1489.js","../../../../chunks/3439.js","../../../../chunks/5309.js","../../../../chunks/5863.js","../../../../chunks/6782.js","../../../../chunks/7605.js","../../../../chunks/8896.js","../../../../chunks/9836.js","../../../../webpack-runtime.js"]}
1
+ {"version":1,"files":["../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/.pnpm/better-sqlite3@12.6.2/node_modules/bindings","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/bindings.js","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/package.json","../../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/file-uri-to-path","../../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@playwright+test@1.58.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/1309.js","../../../../chunks/1489.js","../../../../chunks/3439.js","../../../../chunks/5309.js","../../../../chunks/5863.js","../../../../chunks/6782.js","../../../../chunks/7605.js","../../../../chunks/8896.js","../../../../chunks/9836.js","../../../../webpack-runtime.js"]}
@@ -1,57 +1 @@
1
- "use strict";(()=>{var e={};e.id=9782,e.ids=[9782],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")},61820:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>f,patchFetch:()=>L,requestAsyncStorage:()=>h,routeModule:()=>m,serverHooks:()=>E,staticGenerationAsyncStorage:()=>T});var s={};r.r(s),r.d(s,{PATCH:()=>l,dynamic:()=>p});var n=r(3025),a=r(45086),o=r(74048),i=r(24517),d=r(78649),c=r(60154),u=r(77605);let p="force-dynamic";async function l(e,t){try{let{player:r}=await t.params,{searchParams:s}=new URL(e.url),n=s.get("server");if(!n)return i.NextResponse.json({error:"BadRequest",message:"Server name is required"},{status:400});let{level:a}=await e.json();if(!a||a<1||a>4)return i.NextResponse.json({error:"BadRequest",message:"Level must be between 1 and 4"},{status:400});let o=await (0,c.Ke)(await (0,u.headers)(),n,"admin"),p=(0,d.F0)({username:o.user.name||o.user.email,role:o.user.role||"user"}),l=await p.updateOpLevel(n,r,a);return i.NextResponse.json({success:l.success,operator:l.operator,message:l.message,source:l.source})}catch(e){if(e instanceof c.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 update operator level:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to update operator level"},{status:500})}}let m=new n.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/players/op/[player]/route",pathname:"/api/players/op/[player]",filename:"route",bundlePath:"app/api/players/op/[player]/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/players/op/[player]/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:h,staticGenerationAsyncStorage:T,serverHooks:E}=m,f="/api/players/op/[player]/route";function L(){return(0,o.patchFetch)({serverHooks:E,staticGenerationAsyncStorage:T})}},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})})}async getWhitelist(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/whitelist`)}async addToWhitelist(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/whitelist`,{method:"POST",body:JSON.stringify({player:t})})}async removeFromWhitelist(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/whitelist/${encodeURIComponent(t)}`,{method:"DELETE"})}async getBans(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/bans`)}async banPlayer(e,t,r){return this.fetch(`/api/servers/${encodeURIComponent(e)}/bans`,{method:"POST",body:JSON.stringify({player:t,reason:r})})}async unbanPlayer(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/bans/${encodeURIComponent(t)}`,{method:"DELETE"})}async getOpsWithLevel(e){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops`)}async addOpWithLevel(e,t,r=4){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops`,{method:"POST",body:JSON.stringify({player:t,level:r})})}async updateOpLevel(e,t,r){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify({level:r})})}async removeOp(e,t){return this.fetch(`/api/servers/${encodeURIComponent(e)}/ops/${encodeURIComponent(t)}`,{method:"DELETE"})}async getOps(e){return this.getOpsWithLevel(e).then(e=>({players:e.operators.map(e=>e.name),total:e.count,source:e.source}))}async addOp(e,t){return this.addOpWithLevel(e,t,4).then(e=>({success:e.success,message:e.message||`Added ${t} as operator`,source:e.source}))}}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:()=>u,kF:()=>c,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 (0,s.Z)(e);if(!t)throw new i("Unauthorized",401);return t}async function c(e){let t=await d(e);if("admin"!==t.user.role)throw new i("Forbidden: Admin access required",403);return t}async function u(e,t,r="view"){let s=await d(e);if("admin"===s.user.role)return s;let c=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===c.length)throw new i("Forbidden: No access to this server",403);let u=c[0].permission,p={view:1,manage:2,admin:3};if(p[u]<p[r])throw new i(`Forbidden: Requires ${r} permission`,403);return s}},31969:(e,t,r)=>{r.d(t,{I:()=>u,Z:()=>p});var s=r(33580),n=r(5944),a=r(90224),o=r(22587),i=r(8290);let d=process.env.BETTER_AUTH_BASE_URL||`http://localhost:${process.env.PORT||5e3}`,c=d.startsWith("https://"),u=(0,s.kj)({baseURL:d,secret:process.env.BETTER_AUTH_SECRET,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}},advanced:{useSecureCookies:c},user:{additionalFields:{role:{type:"string",required:!1,defaultValue:"user",input:!1}}},plugins:[(0,a.SA)({defaultRole:"user",adminRole:"admin"})],trustedOrigins:e=>{let t=["http://localhost:5000","http://localhost:3000",d,process.env.NEXT_PUBLIC_APP_URL];if(e){let r=e.headers.get("origin");r&&function(e){try{let t=new URL(e).hostname;return"localhost"===t||"127.0.0.1"===t||"::1"===t||t.startsWith("192.168.")||t.startsWith("10.")||/^172\.(1[6-9]|2\d|3[01])\./.test(t)||t.endsWith(".local")}catch{return!1}}(r)&&t.push(r)}return t}});async function p(e){return u.api.getSession({headers:e})}},22587:(e,t,r)=>{r.d(t,{db:()=>l});var s=r(85890),n=r.n(s),a=r(31590),o=r(8290),i=r(55315),d=r.n(i),c=r(92048);let u=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,c.existsSync)(t)||(0,c.mkdirSync)(t,{recursive:!0})}(u);let p=new(n())(u);p.pragma("journal_mode = WAL"),p.pragma("foreign_keys = ON"),p.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 l=(0,a.t)(p,{schema:o})},8290:(e,t,r)=>{r.r(t),r.d(t,{accounts:()=>c,sessions:()=>d,userServers:()=>p,users:()=>i,verifications:()=>u});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)}),c=(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)}),u=(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)}),p=(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(61820));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=9782,e.ids=[9782],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")},61820:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>g,patchFetch:()=>w,requestAsyncStorage:()=>x,routeModule:()=>m,serverHooks:()=>f,staticGenerationAsyncStorage:()=>v});var s={};t.r(s),t.d(s,{PATCH:()=>d,dynamic:()=>c});var a=t(3025),n=t(45086),o=t(74048),i=t(24517),u=t(78649),p=t(60154),l=t(77605);let c="force-dynamic";async function d(e,r){try{let{player:t}=await r.params,{searchParams:s}=new URL(e.url),a=s.get("server");if(!a)return i.NextResponse.json({error:"BadRequest",message:"Server name is required"},{status:400});let{level:n}=await e.json();if(!n||n<1||n>4)return i.NextResponse.json({error:"BadRequest",message:"Level must be between 1 and 4"},{status:400});let o=await (0,p.Ke)(await (0,l.headers)(),a,"admin"),c=(0,u.F0)({username:o.user.name||o.user.email,role:o.user.role||"user"}),d=await c.updateOpLevel(a,t,n);return i.NextResponse.json({success:d.success,operator:d.operator,message:d.message,source:d.source})}catch(e){if(e instanceof p.l4)return i.NextResponse.json({error:"Forbidden",message:e.message},{status:e.statusCode});if(e instanceof u.zB)return i.NextResponse.json({error:e.error,message:e.message},{status:e.statusCode});return console.error("Failed to update operator level:",e),i.NextResponse.json({error:"InternalServerError",message:"Failed to update operator level"},{status:500})}}let m=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/players/op/[player]/route",pathname:"/api/players/op/[player]",filename:"route",bundlePath:"app/api/players/op/[player]/route"},resolvedPagePath:"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/api/players/op/[player]/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:x,staticGenerationAsyncStorage:v,serverHooks:f}=m,g="/api/players/op/[player]/route";function w(){return(0,o.patchFetch)({serverHooks:f,staticGenerationAsyncStorage:v})}},60154:(e,r,t)=>{t.d(r,{Ke:()=>l,kF:()=>p,l4:()=>i,mk:()=>u});var s=t(31969),a=t(22587),n=t(8290),o=t(30579);class i extends Error{constructor(e,r=401){super(e),this.statusCode=r,this.name="AuthError"}}async function u(e){let r=await (0,s.Z)(e);if(!r)throw new i("Unauthorized",401);return r}async function p(e){let r=await u(e);if("admin"!==r.user.role)throw new i("Forbidden: Admin access required",403);return r}async function l(e,r,t="view"){let s=await u(e);if("admin"===s.user.role)return s;let p=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,r))).limit(1);if(0===p.length)throw new i("Forbidden: No access to this server",403);let l=p[0].permission,c={view:1,manage:2,admin:3};if(c[l]<c[t])throw new i(`Forbidden: Requires ${t} permission`,403);return s}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[9836,1489,7605,5309,1309],()=>t(61820));module.exports=s})();