Skip to content

Commit f43c9b8

Browse files
authored
Merge pull request #30 from mcserversoft/dev
v5.3.0
2 parents 158ac76 + 200e88f commit f43c9b8

22 files changed

+9995
-3191
lines changed

package-lock.json

Lines changed: 9839 additions & 2960 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mcss-remote-panel",
3-
"version": "5.2.0",
3+
"version": "5.3.0",
44
"private": true,
55
"scripts": {
66
"dev": "vite dev",
@@ -12,11 +12,12 @@
1212
"format": "prettier --write ."
1313
},
1414
"devDependencies": {
15-
"@sveltejs/adapter-auto": "next",
16-
"@sveltejs/adapter-static": "^1.0.0-next.42",
17-
"@sveltejs/kit": "next",
18-
"@typescript-eslint/eslint-plugin": "^5.27.0",
19-
"@typescript-eslint/parser": "^5.27.0",
15+
"@sveltejs/adapter-auto": "2.0.0",
16+
"@sveltejs/adapter-static": "2.0.0",
17+
"@sveltejs/kit": "1.5.0",
18+
"@typescript-eslint/eslint-plugin": "^5.51.0",
19+
"@typescript-eslint/parser": "^5.51.0",
20+
"@vite-pwa/sveltekit": "^0.1.3",
2021
"autoprefixer": "^10.4.8",
2122
"eslint": "^8.16.0",
2223
"eslint-config-prettier": "^8.3.0",
@@ -25,18 +26,18 @@
2526
"prettier": "^2.6.2",
2627
"prettier-plugin-svelte": "^2.7.0",
2728
"svelte": "^3.44.0",
28-
"svelte-check": "^2.7.1",
29-
"svelte-preprocess": "^4.10.7",
29+
"svelte-check": "^3.0.3",
30+
"svelte-preprocess": "^5.0.1",
3031
"tailwindcss": "^3.1.8",
31-
"tslib": "^2.3.1",
32+
"tslib": "^2.5.0",
3233
"typescript": "^4.7.4",
33-
"vite": "^3.1.0",
34+
"vite": "^4.1.1",
3435
"vite-plugin-zip-pack": "^1.0.5"
3536
},
3637
"type": "module",
3738
"dependencies": {
38-
"axios": "^1.2.1",
39-
"daisyui": "^2.25.0",
40-
"svelte-local-storage-store": "^0.3.1"
39+
"axios": "^1.3.2",
40+
"daisyui": "^2.50.0",
41+
"svelte-local-storage-store": "^0.4.0"
4142
}
4243
}

src/lib/code/api.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
import axiosClient from '$lib/code/axiosClient';
22
import {
3-
hasPermission,
4-
Permission
3+
hasPermission,
4+
Permission
55
} from '$lib/code/permissions';
66
import { calculateUptime } from '$lib/code/shared';
77
import { settings } from '$lib/code/storage';
8-
import { writable as writableStorage } from 'svelte-local-storage-store';
8+
import { persisted } from 'svelte-local-storage-store';
99
import {
10-
derived,
11-
get,
12-
writable
10+
derived,
11+
get,
12+
writable
1313
} from 'svelte/store';
1414

1515
import type {
16-
IServer,
17-
Memory,
18-
Server,
19-
Stats
16+
IServer,
17+
Memory,
18+
Server,
19+
Stats
2020
} from '../../types';
2121
import { Filter } from '../../types';
2222

@@ -25,18 +25,18 @@ export const isOffline = writable(false);
2525
export const isLoadingServers = writable(false);
2626

2727
// global persistent store
28-
export const servers = writableStorage<Server[]>('servers', new Array<Server>());
29-
export const selectedServerGuid = writableStorage('selectedServerGuid', '');
28+
export const servers = persisted<Server[]>('servers', new Array<Server>());
29+
export const selectedServerId = persisted('selectedServerId', '');
3030

3131
// this should maybe be moved, api should only have api stuff
3232

3333
// global translations
3434
export const getSelectedServer = derived(servers, ($servers) => {
3535
if ($servers) {
36-
return $servers.find((s: IServer) => s.guid == get(selectedServerGuid));
36+
return $servers.find((s: IServer) => s.serverId == get(selectedServerId));
3737
}
3838
return {
39-
guid: '',
39+
serverId: '',
4040
name: '',
4141
description: '',
4242
status: 0,
@@ -51,7 +51,7 @@ export const getSelectedServer = derived(servers, ($servers) => {
5151
export function fetchServers(filter: Filter = Filter.None): void {
5252
isLoadingServers.set(true);
5353

54-
axiosClient().get(`/api/v1/servers?filter=${filter}`)
54+
axiosClient().get(`/api/v2/servers?filter=${filter}`)
5555
.then((response) => {
5656
if (response?.status !== 200) {
5757
return Promise.reject(response);
@@ -76,7 +76,7 @@ export async function sendServerAction(serverId: string, action: string) {
7676
return;
7777
}
7878

79-
axiosClient().post(`/api/v1/servers/${serverId}/execute/action`, JSON.stringify({ action: action }))
79+
axiosClient().post(`/api/v2/servers/${serverId}/execute/action`, JSON.stringify({ action: action }))
8080
.then((response) => {
8181
if (response?.status !== 200) {
8282
return Promise.reject(response);
@@ -94,7 +94,7 @@ export async function sendServerCommand(serverId: string, input: string) {
9494
return;
9595
}
9696

97-
axiosClient().post(`/api/v1/servers/${serverId}/execute/command`, JSON.stringify({ command: input }))
97+
axiosClient().post(`/api/v2/servers/${serverId}/execute/command`, JSON.stringify({ command: input }))
9898
.then((response) => {
9999
if (response?.status !== 200) {
100100
return Promise.reject(response);
@@ -112,7 +112,7 @@ export function fetchServerStatus(serverId: string, report: (latestStats: Stats)
112112
return;
113113
}
114114

115-
axiosClient().get(`/api/v1/servers/${serverId}/stats`)
115+
axiosClient().get(`/api/v2/servers/${serverId}/stats`)
116116
.then((response) => {
117117
if (response?.status !== 200) {
118118
return Promise.reject(response);
@@ -163,7 +163,7 @@ export function fetchServerConsole(serverId: string, report: (consoleLines: stri
163163
const amountOfConsoleLines = get(settings)?.amountOfConsoleLines ?? 50;
164164
const reverseConsoleLines = get(settings)?.reverseConsoleLines ?? false;
165165

166-
axiosClient().get(`/api/v1/servers/${serverId}/console?amountOfLines=${amountOfConsoleLines}&reversed=${reverseConsoleLines}`)
166+
axiosClient().get(`/api/v2/servers/${serverId}/console?amountOfLines=${amountOfConsoleLines}&reversed=${reverseConsoleLines}`)
167167
.then((response) => {
168168
if (response?.status !== 200) {
169169
return Promise.reject(response);
@@ -184,7 +184,7 @@ export function isServerConsoleOutdated(serverId: string, secondLastLine: string
184184
return;
185185
}
186186

187-
axiosClient().get(`/api/v1/servers/${serverId}/console/outdated?secondLastLine=${secondLastLine}&lastLine=${lastLine}`)
187+
axiosClient().get(`/api/v2/servers/${serverId}/console/outdated?secondLastLine=${secondLastLine}&lastLine=${lastLine}`)
188188
.then((response) => {
189189
if (response?.status !== 200) {
190190
return Promise.reject(response);

src/lib/code/auth.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { writable } from 'svelte-local-storage-store'
1+
import { persisted } from 'svelte-local-storage-store'
22
import { get } from 'svelte/store';
33
import { baseUrl } from '$lib/code/routing';
44
import { settings } from '$lib/code/storage';
@@ -9,7 +9,7 @@ export enum LoginFailureReason {
99
Unknown
1010
}
1111

12-
export const auth = writable('user', {
12+
export const auth = persisted('user', {
1313
apiKey: '',
1414
username: '',
1515
})

src/lib/code/permissions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ export enum Permission {
88
useServerActions = "USE_SERVER_ACTIONS",
99
}
1010

11-
export function hasPermission(perm: Permission, guid: string): boolean {
12-
const server = get(servers).find((s) => s.guid == guid);
11+
export function hasPermission(perm: Permission, serverId: string): boolean {
12+
const server = get(servers).find((s) => s.serverId == serverId);
1313
if (!server) {
1414
return false;
1515
}

src/lib/code/storage.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { writable } from 'svelte-local-storage-store'
1+
import { persisted } from 'svelte-local-storage-store'
22

3-
export const settings = writable('settings', {
3+
export const settings = persisted('settings', {
44
serversRefreshRate: 5,
55
consoleRefreshRate: 5,
66
autoScrollConsole: true,

src/lib/components/actionDropdown.svelte

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script lang="ts">
22
import { get } from 'svelte/store';
33
import { clickOutside } from '$lib/code/shared';
4-
import { sendServerAction, selectedServerGuid } from '$lib/code/api';
4+
import { sendServerAction, selectedServerId } from '$lib/code/api';
55
import ArrowDownSvg from '$lib/svgs/ArrowDownSvg.svelte';
66
77
export let statusName: string;
@@ -20,12 +20,12 @@
2020
function serverActionClick(action: string) {
2121
dropdownVisible = false;
2222
23-
const guid = get(selectedServerGuid);
24-
if (!guid) {
23+
const serverId = get(selectedServerId);
24+
if (!serverId) {
2525
return;
2626
}
2727
28-
sendServerAction(guid, action);
28+
sendServerAction(serverId, action);
2929
}
3030
</script>
3131

src/lib/components/console.svelte

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import { get } from 'svelte/store';
44
import { browser } from '$app/environment';
55
import { settings } from '$lib/code/storage';
6-
import { fetchServerConsole, isServerConsoleOutdated, selectedServerGuid, sendServerCommand } from '$lib/code/api';
6+
import { fetchServerConsole, isServerConsoleOutdated, selectedServerId, sendServerCommand } from '$lib/code/api';
77
import ReloadSvg from '$lib/svgs/ReloadSvg.svelte';
88
import { hasPermission, Permission } from '$lib/code/permissions';
99
@@ -14,8 +14,8 @@
1414
let consoleRequiresUpdate: boolean;
1515
1616
if (browser) {
17-
const unsubscribe = selectedServerGuid.subscribe((newGuid) => {
18-
reloadConsole(newGuid);
17+
const unsubscribe = selectedServerId.subscribe((newServerId) => {
18+
reloadConsole(newServerId);
1919
});
2020
2121
const updateConsole = setInterval(() => {
@@ -36,15 +36,15 @@
3636
}
3737
});
3838
39-
async function reloadConsole(guid: string) {
40-
if (!guid) {
39+
async function reloadConsole(serverId: string) {
40+
if (!serverId) {
4141
return;
4242
}
4343
4444
loadingConsole = true;
4545
4646
fetchServerConsole(
47-
guid,
47+
serverId,
4848
(consoleLines: string[]) => {
4949
serverConsole = consoleLines;
5050
scrollToBottom();
@@ -56,9 +56,9 @@
5656
}
5757
5858
async function updateConsoleIfNeeded() {
59-
const guid = get(selectedServerGuid);
59+
const serverId = get(selectedServerId);
6060
61-
if (!guid) {
61+
if (!serverId) {
6262
return;
6363
}
6464
@@ -71,12 +71,12 @@
7171
let lastLine: string = encodeURIComponent(lines[length]);
7272
7373
isServerConsoleOutdated(
74-
guid,
74+
serverId,
7575
secondLastLine,
7676
lastLine,
7777
(isOutdated: boolean) => {
7878
if (isOutdated) {
79-
reloadConsole(guid);
79+
reloadConsole(serverId);
8080
scrollToBottom();
8181
}
8282
},
@@ -87,12 +87,12 @@
8787
}
8888
8989
function sendCommand() {
90-
const guid = get(selectedServerGuid);
91-
if (!consoleInput || !guid) {
90+
const serverId = get(selectedServerId);
91+
if (!consoleInput || !serverId) {
9292
return;
9393
}
9494
95-
sendServerCommand(guid, consoleInput);
95+
sendServerCommand(serverId, consoleInput);
9696
consoleInput = '';
9797
}
9898
@@ -125,8 +125,8 @@
125125

126126
<textarea bind:this={textarea} readonly class="w-full h-96 md:px-5 px-2 outline-none md:text-sm text-xs bg-inherit">{serverConsole}</textarea>
127127

128-
{#key $selectedServerGuid}
129-
{#if hasPermission(Permission.useConsole, $selectedServerGuid)}
128+
{#key $selectedServerId}
129+
{#if hasPermission(Permission.useConsole, $selectedServerId)}
130130
<form on:submit|preventDefault={sendCommand}>
131131
<input bind:value={consoleInput} type="text" placeholder="Enter command e.g. /say hello" class="w-full px-5 pt-1 pb-3 outline-none bg-inherit" />
132132
</form>

src/lib/components/server.svelte

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script lang="ts">
22
import { getFriendlyStatusName, getStatusBgColor } from '$lib/code/shared';
3-
import { getSelectedServer, selectedServerGuid } from '$lib/code/api';
3+
import { getSelectedServer, selectedServerId } from '$lib/code/api';
44
import ActionDropdown from '$lib/components/actionDropdown.svelte';
55
import { hasPermission, Permission } from '$lib/code/permissions';
66
</script>
@@ -13,8 +13,8 @@
1313
</h2>
1414
</div>
1515

16-
{#key $selectedServerGuid}
17-
{#if hasPermission(Permission.useServerActions, $selectedServerGuid)}
16+
{#key $selectedServerId}
17+
{#if hasPermission(Permission.useServerActions, $selectedServerId)}
1818
<ActionDropdown statusName={getFriendlyStatusName($getSelectedServer?.status)} />
1919
{/if}
2020
{/key}

src/lib/components/serverStats.svelte

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import { onDestroy } from 'svelte';
33
import { get } from 'svelte/store';
44
import { browser } from '$app/environment';
5-
import { fetchServerStatus, selectedServerGuid } from '$lib/code/api';
5+
import { fetchServerStatus, selectedServerId } from '$lib/code/api';
66
import type { Stats } from '../../types';
77
88
let stats: Stats = {
@@ -18,7 +18,7 @@
1818
let isLoadingStats: boolean = true;
1919
2020
if (browser) {
21-
const unsubscribe = selectedServerGuid.subscribe((newGuid) => {
21+
const unsubscribe = selectedServerId.subscribe((newServerId) => {
2222
isLoadingStats = true;
2323
updateServerStats();
2424
});
@@ -32,14 +32,14 @@
3232
}
3333
3434
async function updateServerStats() {
35-
const guid = get(selectedServerGuid);
35+
const serverId = get(selectedServerId);
3636
37-
if (!guid) {
37+
if (!serverId) {
3838
return;
3939
}
4040
4141
fetchServerStatus(
42-
guid,
42+
serverId,
4343
(latestStats: Stats) => {
4444
stats = latestStats;
4545
},

src/lib/components/sidebar.svelte

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<script lang="ts">
22
import { auth } from '$lib/code/auth';
3-
import { servers, selectedServerGuid, isLoadingServers } from '$lib/code/api';
3+
import { servers, selectedServerId, isLoadingServers } from '$lib/code/api';
44
import { getGreeting, getFriendlyStatusName, getStatusBgColor } from '$lib/code/shared';
55
6-
function onServerClick(guid: string) {
7-
selectedServerGuid.set(guid);
6+
function onServerClick(serverId: string) {
7+
selectedServerId.set(serverId);
88
}
99
</script>
1010

@@ -27,9 +27,9 @@
2727
</div>
2828

2929
<ul class="pl-9 mt-1 truncate">
30-
{#each $servers || [] as { guid, name, status }}
30+
{#each $servers || [] as { serverId, name, status }}
3131
<li class="mb-1 last:mb-0">
32-
<button on:click={() => onServerClick(guid)} class=" text-slate-400 hover:text-slate-200">
32+
<button on:click={() => onServerClick(serverId)} class=" text-slate-400 hover:text-slate-200">
3333
<span class="inline-flex rounded-full h-2 w-2 {getStatusBgColor(status)}" title={getFriendlyStatusName(status)} /> <span class="text-sm font-medium">{name}</span>
3434
</button>
3535
</li>

0 commit comments

Comments
 (0)