@pelican.ts/sdk 0.3.2 → 0.3.3-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
# Pelican.ts — Typescript client for Pelican panel
|
|
6
6
|
|
|
7
|
+
> [!WARNING]
|
|
8
|
+
> This is a `next` version of Pelican.ts, it is based on [Pelican-contrib](https://github.com/m41denx/pelican-contrib)
|
|
9
|
+
> fork and is not compatible with upstream Pelican panel.
|
|
10
|
+
|
|
7
11
|
## Installation
|
|
8
12
|
```shell
|
|
9
13
|
npm install @pelican.ts/sdk
|
|
@@ -32,7 +36,7 @@ What's done:
|
|
|
32
36
|
- [X] Nodes
|
|
33
37
|
- [X] Servers
|
|
34
38
|
- [X] Databases (TODO: Check if server database type is valid)
|
|
35
|
-
- [X] Database Hosts (TODO: find out why create API returns 500 No Route)
|
|
39
|
+
- [X] Database Hosts (~~TODO: find out why create API returns 500 No Route~~ Fix was merged to upstream)
|
|
36
40
|
- [X] Roles
|
|
37
41
|
- [X] Eggs
|
|
38
42
|
- [X] Mounts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pelican.ts/sdk",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3-next.1",
|
|
4
4
|
"description": "Pelican panel SDK for TypeScript",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -18,11 +18,19 @@
|
|
|
18
18
|
"scripts": {
|
|
19
19
|
"build:code": "tsup src/index.ts --format esm,cjs --dts --target esnext",
|
|
20
20
|
"build:types": "tsup src/types.ts --dts-only --target esnext",
|
|
21
|
-
"build": "npm run build:code && npm run build:types",
|
|
21
|
+
"build": "rm -rf ./dist && npm run build:code && npm run build:types",
|
|
22
22
|
"pub": "npm publish --access=public",
|
|
23
|
+
"pub:next": "npm publish --access=public --tag=next",
|
|
23
24
|
"generate-types": "bun run scripts/create-types.ts"
|
|
24
25
|
},
|
|
25
|
-
"keywords": [
|
|
26
|
+
"keywords": [
|
|
27
|
+
"pterodactyl",
|
|
28
|
+
"pterodactyl.ts",
|
|
29
|
+
"pterodactyl.js",
|
|
30
|
+
"pelican",
|
|
31
|
+
"pelican.ts",
|
|
32
|
+
"pelican.js"
|
|
33
|
+
],
|
|
26
34
|
"author": "M41den",
|
|
27
35
|
"license": "MIT",
|
|
28
36
|
"repository": {
|
|
@@ -84,6 +84,7 @@ export const CreateServerSchema = z.object({
|
|
|
84
84
|
skip_scripts: z.boolean().optional(),
|
|
85
85
|
oom_killer: z.boolean().optional(),
|
|
86
86
|
start_on_completion: z.boolean().optional(),
|
|
87
|
+
docker_labels: z.record(z.string(), z.string()).optional(),
|
|
87
88
|
limits: z.object({
|
|
88
89
|
memory: z.number().min(0),
|
|
89
90
|
swap: z.number().min(-1),
|
|
@@ -112,7 +113,8 @@ const UpdateDetailsSchema = CreateServerSchema.pick({
|
|
|
112
113
|
external_id: true,
|
|
113
114
|
name: true,
|
|
114
115
|
user: true,
|
|
115
|
-
description: true
|
|
116
|
+
description: true,
|
|
117
|
+
docker_labels: true
|
|
116
118
|
})
|
|
117
119
|
|
|
118
120
|
const UpdateBuildSchema = CreateServerSchema.pick({
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/api/client/account.ts","../src/api/client/client.ts","../src/api/client/server_databases.ts","../src/api/client/server_files.ts","../src/api/client/server_schedules.ts","../src/api/client/server_allocations.ts","../src/api/client/server_users.ts","../src/api/client/server_backups.ts","../src/api/client/server_startup.ts","../src/api/client/server_settings.ts","../src/api/client/server_websocket.ts","../src/api/client/server_activity.ts","../src/api/client/server.ts","../src/api/application/users.ts","../src/utils/transform.ts","../src/api/common/types/enums.ts","../src/api/application/nodes_allocations.ts","../src/api/application/nodes.ts","../src/api/application/servers.ts","../src/api/application/servers_databases.ts","../src/api/application/database_hosts.ts","../src/api/application/roles.ts","../src/api/application/eggs.ts","../src/api/application/mounts.ts","../src/api/application/client.ts","../src/api/base/request.ts","../src/api/base/types.ts"],"sourcesContent":["import {Client as UserClient} from \"@/api/client/client\";\nimport {Client as AppClient} from \"@/api/application/client\";\nimport {Agent} from \"@/api/base/request\";\n\nexport class PelicanClient extends UserClient{\n constructor(url: string, token: string, suffix: string = \"/api\") {\n const ax = new Agent(url, token, \"client\", suffix)\n super(ax.requester)\n }\n}\n\nexport class PelicanApplication extends AppClient{\n constructor(url: string, token: string, suffix: string = \"/api\") {\n const ax = new Agent(url, token, \"application\", suffix)\n super(ax.requester)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {APIKey, SSHKey, User} from \"@/api/client/types/user\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport z from \"zod\";\n\n\nexport class Account {\n private readonly r: AxiosInstance\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n }\n\n info = async (): Promise<User> => {\n const {data} = await this.r.get<GenericResponse<User, \"user\">>(\"/account\")\n return data.attributes\n }\n\n updateEmail = async (newEmail: string, password: string): Promise<void> => {\n newEmail = z.email().parse(newEmail)\n await this.r.put(\"/account/email\", {email: newEmail, password})\n }\n\n updatePassword = async (newPassword: string): Promise<void> => {\n newPassword = z.string().min(8).parse(newPassword)\n await this.r.put(\"/account/password\", {\n password: newPassword,\n password_confirmation: newPassword\n })\n }\n\n apiKeys = {\n list: async (): Promise<APIKey[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<APIKey, \"api_key\">>\n >(\"/account/api-keys\")\n return data.data.map(k => k.attributes)\n },\n\n create: async (description: string, allowed_ips?: string[]): Promise<APIKey & { secret_token: string }> => {\n allowed_ips = z.array(z.ipv4()).optional().parse(allowed_ips)\n const {data} = await this.r.post<\n GenericResponse<APIKey, \"api_key\", { secret_token: string }>\n >(\"/account/api-keys\", {description, allowed_ips})\n return {...data.attributes, secret_token: data.meta!.secret_token}\n },\n\n delete: async (identifier: string): Promise<void> => {\n await this.r.delete(`/account/api-keys/${identifier}`)\n }\n }\n\n sshKeys = {\n list: async (): Promise<SSHKey[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<SSHKey, \"ssh_key\">>\n >(\"/account/ssh-keys\")\n return data.data.map(k => k.attributes)\n },\n\n create: async (name: string, public_key: string): Promise<SSHKey> => {\n const {data} = await this.r.post<\n GenericResponse<SSHKey, \"ssh_key\">\n >(\"/account/ssh-keys\", {name, public_key})\n return data.attributes\n },\n\n delete: async (fingerprint: string): Promise<void> => {\n await this.r.post(`/account/ssh-keys/remove`, {fingerprint})\n }\n }\n\n twoFactor = {\n info: async (): Promise<{ image_url_data: string }> => {\n const {data} = await this.r.get<\n Awaited<ReturnType<typeof this.twoFactor.info>>\n >(\"/account/two-factor\")\n return data\n },\n\n enable: async (code: string): Promise<{ tokens: string[] }> => {\n const {data} = await this.r.post<\n Awaited<ReturnType<typeof this.twoFactor.enable>>\n >(\"/account/two-factor\", {code})\n return data\n },\n\n disable: async (password: string): Promise<void> => {\n await this.r.delete(\"/account/two-factor\", {data: {password}})\n }\n }\n}","import {Account} from \"@/api/client/account\";\nimport {AxiosInstance} from \"axios\";\nimport {Permission} from \"@/api/client/types/user\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {Server} from \"@/api/client/types/server\";\nimport z from \"zod\";\nimport {ServerClient} from \"@/api/client/server\";\n\n\nexport class Client {\n account: Account\n\n private readonly r: AxiosInstance\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n this.account = new Account(requester)\n }\n\n listPermissions = async (): Promise<Record<string, Permission>> => {\n const {data} = await this.r.get<\n GenericResponse<{ permissions: Record<string, Permission> }, \"system_permissions\">\n >(\"/permissions\")\n\n return data.attributes.permissions\n }\n\n listServers = async (\n type: \"accessible\" | \"mine\" | \"admin\" | \"admin-all\" = \"accessible\",\n page: number = 1,\n per_page: number = 50,\n include?: (\"egg\" | \"subusers\")[],\n ): Promise<Server[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Server, \"server\">>\n >(\"/servers\", {\n params: {type, page, include: include?.join(\",\")}\n })\n return data.data.map(s => s.attributes)\n }\n\n server = (uuid: string): ServerClient => new ServerClient(this.r, uuid)\n\n}\n\n\n/*\nInclude: ?include=param1,param2\nAvail: ?param1=val1¶m2=val2\nFilters: ?filter[param1]=val1&filter[param2]=val2\nSort: ?sort=-param, param=asc, -param=desc\n*/","import {AxiosInstance} from \"axios\";\nimport z from \"zod\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {ServerDatabase} from \"@/api/common/types/server_database\";\n// TODO: Check for validity\n\nexport class ServerDatabases {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (\n include?: (\"password\")[], page: number = 1\n ): Promise<ServerDatabase[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ServerDatabase, \"server_database\">>\n >(`/servers/${this.id}/databases`, {\n params: {include: include?.join(\",\"), page}\n })\n return data.data.map(d => d.attributes)\n }\n\n create = async (database: string, remote: string): Promise<ServerDatabase> => {\n const {data} = await this.r.post<\n GenericResponse<ServerDatabase, \"server_database\">\n >(`/servers/${this.id}/databases`, {database, remote})\n return data.attributes\n }\n\n rotatePassword = async (database_id: string): Promise<ServerDatabase> => {\n const {data} = await this.r.post<\n GenericResponse<ServerDatabase, \"server_database\">\n >(`/servers/${this.id}/databases/${database_id}/rotate-password`)\n return data.attributes\n }\n\n delete = async (database_id: string): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/databases/${database_id}`)\n }\n}","import axios, {AxiosInstance} from \"axios\";\nimport {string} from \"zod\";\nimport {FileObject} from \"@/api/common/types/server_files\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\n\n\nexport class ServerFiles {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (path?: string): Promise<FileObject[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<FileObject, \"file_object\">>\n >(`/servers/${this.id}/files/list`, {\n params: {directory: path}\n })\n return data.data.map(r => r.attributes)\n }\n\n /**\n * Return the contents of a file. To read binary file (non-editable) use {@link download} instead\n */\n contents = async (path: string): Promise<string> => {\n const {data} = await this.r.get<string>(`/servers/${this.id}/files/contents`, {\n params: {file: path}\n })\n return data\n }\n\n downloadGetUrl = async (path: string): Promise<string> => {\n const {data} = await this.r.get<\n GenericResponse<{ url: string }, \"signed_url\">\n >(`/servers/${this.id}/files/download`, {\n params: {file: path}\n })\n return data.attributes.url\n }\n\n download = async (path: string): Promise<ArrayBuffer> => {\n const url = await this.downloadGetUrl(path)\n const {data} = await axios.get<ArrayBuffer>(url, {responseType: \"arraybuffer\"})\n return data\n }\n\n rename = async (\n root: string = \"/\",\n files: { from: string, to: string }[]\n ): Promise<void> => {\n await this.r.put(`/servers/${this.id}/files/rename`, {root, files})\n }\n\n copy = async (location: string): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/copy`, {location})\n }\n\n write = async (path: string, content: string): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/write`, content, {\n params: {file: path},\n })\n }\n\n compress = async (\n root: string = \"/\",\n files: string[],\n archive_name?: string,\n extension?: \"zip\" | \"tgz\" | \"tar.gz\" | \"txz\" | \"tar.xz\" | \"tbz2\" | \"tar.bz2\"\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/compress`, {root, files, archive_name, extension})\n }\n\n decompress = async (\n root: string = \"/\",\n file: string,\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/decompress`, {root, file})\n }\n\n delete = async (\n root: string = \"/\",\n files: string[],\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/delete`, {root, files})\n }\n\n createFolder = async (\n root: string = \"/\",\n name: string,\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/create-folder`, {root, name})\n }\n\n chmod = async (\n root: string = \"/\",\n files: Array<{ file: string, mode: number }>\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/chmod`, {root, files})\n }\n\n pullFromRemote = async (\n url: string,\n directory?: string,\n filename?: string, // Unused\n use_header: boolean = false, // Unused\n foreground: boolean = false // Unused\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/pull`, {url, directory, filename, use_header, foreground})\n }\n\n uploadGetUrl = async (): Promise<string> => {\n const {data} = await this.r.get<\n GenericResponse<{ url: string }, \"signed_url\">\n >(`/servers/${this.id}/files/upload`)\n return data.attributes.url\n }\n\n upload = async (file: File, root: string = \"/\"): Promise<void> => {\n const url = await this.uploadGetUrl()\n await axios.post(url, {files: file}, {\n headers: {\"Content-Type\": \"multipart/form-data\"},\n params: {directory: root}\n })\n }\n}","import {AxiosInstance} from \"axios\";\nimport {Schedule, ScheduleTask} from \"@/api/common/types/server_schedule\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {PartialBy} from \"@/utils/types\";\n\nexport class ServerSchedules {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (): Promise<Schedule[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Schedule, \"server_schedule\">>\n >(`/servers/${this.id}/schedules`)\n return data.data.map(d => d.attributes)\n }\n\n create = async (params: ScheduleCreateParams): Promise<Schedule> => {\n const {data} = await this.r.post<\n GenericResponse<Schedule, \"server_schedule\">\n >(`/servers/${this.id}/schedules`, params)\n return data.attributes\n }\n\n control = (sched_id: number) => new ScheduleControl(this.r, this.id, sched_id)\n}\n\ntype ScheduleCreateParams = {\n name: string,\n is_active?: boolean,\n only_when_online?: boolean,\n minute: string,\n hour: string,\n day_of_week: string,\n month: string,\n day_of_month: string\n}\n\nclass ScheduleControl {\n private r: AxiosInstance\n private readonly id: string\n private readonly sched_id: number\n\n constructor(requester: AxiosInstance, id: string, sched_id: number) {\n this.r = requester\n this.id = id\n this.sched_id = sched_id\n }\n\n info = async (): Promise<Schedule> => {\n const {data} = await this.r.get<\n GenericResponse<Schedule, \"server_schedule\">\n >(`/servers/${this.id}/schedules/${this.sched_id}`)\n return data.attributes\n }\n\n update = async (params: ScheduleCreateParams): Promise<Schedule> => {\n const {data} = await this.r.post<\n GenericResponse<Schedule, \"server_schedule\">\n >(`/servers/${this.id}/schedules/${this.sched_id}`, params)\n return data.attributes\n }\n\n delete = async (): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/schedules/${this.sched_id}`)\n }\n\n execute = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/schedules/${this.sched_id}/execute`)\n }\n\n tasks = {\n create: async (\n opts: PartialBy<\n Pick<ScheduleTask, \"action\" | \"payload\" | \"time_offset\" | \"sequence_id\" | \"continue_on_failure\">,\n \"payload\" | \"sequence_id\" | \"continue_on_failure\"\n >\n ): Promise<ScheduleTask> => {\n const {data} = await this.r.post<\n GenericResponse<ScheduleTask, \"server_schedule_task\">\n >(`/servers/${this.id}/schedules/${this.sched_id}/tasks`, opts)\n return data.attributes\n },\n\n update: async <T extends \"command\" | \"power\" | \"backup\" | \"delete_files\">(\n task_id: number,\n opts: PartialBy<\n Pick<ScheduleTask, \"action\" | \"payload\" | \"time_offset\" | \"sequence_id\" | \"continue_on_failure\">,\n \"payload\" | \"sequence_id\" | \"continue_on_failure\"\n >\n ): Promise<ScheduleTask> => {\n const {data} = await this.r.post<\n GenericResponse<ScheduleTask, \"server_schedule_task\">\n >(`/servers/${this.id}/schedules/${this.sched_id}/tasks/${task_id}`, opts)\n return data.attributes\n },\n\n delete: async (task_id: number): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/schedules/${this.sched_id}/tasks/${task_id}`)\n }\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {ServerAllocation} from \"@/api/client/types/server_allocation\";\n\nexport class ServerAllocations {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (): Promise<ServerAllocation[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ServerAllocation, \"allocation\">>\n >(`/servers/${this.id}/network/allocations`)\n return data.data.map(r => r.attributes)\n }\n\n autoAssign = async (): Promise<ServerAllocation> => {\n const {data} = await this.r.post<\n GenericResponse<ServerAllocation, \"allocation\">\n >(`/servers/${this.id}/network/allocations`)\n return data.attributes\n }\n\n setNotes = async (alloc_id: number, notes: string): Promise<ServerAllocation> => {\n const {data} = await this.r.post<\n GenericResponse<ServerAllocation, \"allocation\">\n >(`/servers/${this.id}/network/allocations/${alloc_id}`, {notes})\n return data.attributes\n }\n\n setPrimary = async (alloc_id: number): Promise<ServerAllocation> => {\n const {data} = await this.r.post<\n GenericResponse<ServerAllocation, \"allocation\">\n >(`/servers/${this.id}/network/allocations/${alloc_id}/primary`)\n return data.attributes\n }\n\n unassign = async (alloc_id: number): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/network/allocations/${alloc_id}`)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {ServerSubuser, SubuserPermission} from \"@/api/client/types/server_subuser\";\n\nexport class ServerUsers {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (): Promise<ServerSubuser[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ServerSubuser, \"user\">>\n >(`/servers/${this.id}/users`)\n return data.data.map(d => d.attributes)\n }\n\n create = async (email: string, permissions: SubuserPermission[] | string[]): Promise<ServerSubuser> => {\n const {data} = await this.r.post<\n GenericResponse<ServerSubuser, \"user\">\n >(`/servers/${this.id}/users`, {email, permissions})\n return data.attributes\n }\n\n info = async (user_id: number): Promise<ServerSubuser> => {\n const {data} = await this.r.get<\n GenericResponse<ServerSubuser, \"user\">\n >(`/servers/${this.id}/users/${user_id}`)\n return data.attributes\n }\n\n update = async (user_id: number, permissions: SubuserPermission[] | string[]): Promise<ServerSubuser> => {\n const {data} = await this.r.put<\n GenericResponse<ServerSubuser, \"user\">\n >(`/servers/${this.id}/users/${user_id}`, {permissions})\n return data.attributes\n }\n\n delete = async (user_id: number): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/users/${user_id}`)\n }\n\n}","import axios, {AxiosInstance} from \"axios\";\nimport {ServerBackup} from \"@/api/common/types/server_backup\";\nimport z, {string} from \"zod\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\n\n\nexport class ServerBackups {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (page: number = 1): Promise<ServerBackup[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ServerBackup, \"backup\">>\n >(`/servers/${this.id}/backups`, {\n params: {page}\n })\n\n return data.data.map(d=>d.attributes)\n }\n\n create = async (args: {\n name?: string,\n is_locked: boolean,\n ignored_files: string[],\n }): Promise<ServerBackup> => {\n args.name = z.string().max(255).optional().parse(args.name)\n const {data} = await this.r.post<\n GenericResponse<ServerBackup, \"backup\">\n >(`/servers/${this.id}/backups`, {\n name: args.name,\n is_locked: args.is_locked,\n ignored_files: args.ignored_files.join(\"\\n\")\n })\n return data.attributes\n }\n\n info = async (backup_uuid: string): Promise<ServerBackup> => {\n const {data} = await this.r.get<\n GenericResponse<ServerBackup, \"backup\">\n >(`/servers/${this.id}/backups/${backup_uuid}`)\n return data.attributes\n }\n\n downloadGetUrl = async (backup_uuid: string): Promise<string> => {\n const {data} = await this.r.get<\n GenericResponse<{ url: string }, \"signed_url\">\n >(`/servers/${this.id}/backups/${backup_uuid}/download`)\n return data.attributes.url\n }\n\n download = async (backup_uuid: string): Promise<ArrayBuffer> => {\n const url = await this.downloadGetUrl(backup_uuid)\n const {data} = await axios.get<ArrayBuffer>(url, {responseType: \"arraybuffer\"})\n return data\n }\n\n delete = async (backup_uuid: string): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/backups/${backup_uuid}`)\n }\n\n}","import {AxiosInstance} from \"axios\";\nimport {CustomListResponse, GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {StartupMeta, StartupParams} from \"@/api/common/types/server_startup\";\n\n\nexport class ServerStartup {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (): Promise<CustomListResponse<StartupParams, StartupMeta>> => {\n const {data} = await this.r.get<\n CustomListResponse<GenericResponse<StartupParams, \"egg_variable\">, StartupMeta>\n >(`/servers/${this.id}/startup`)\n\n return {\n object: \"list\",\n meta: data.meta,\n data: data.data.map(d=>d.attributes)\n }\n }\n\n set = async (key: string, value: string): Promise<StartupParams> => {\n const {data} = await this.r.put<\n GenericResponse<StartupParams, \"egg_variable\">\n >(`/servers/${this.id}/startup/variable`, {key, value})\n return data.attributes\n }\n}","import {AxiosInstance} from \"axios\";\nimport z from \"zod\";\nimport {Nullable} from \"@/utils/types\";\n\n\nexport class ServerSettings {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n rename = async (name: string): Promise<void> => {\n name = z.string().max(255).parse(name)\n await this.r.post(`/servers/${this.id}/settings/rename`, {name})\n }\n\n updateDescription = async (description: Nullable<string>): Promise<void> => {\n await this.r.post(`/servers/${this.id}/settings/description`, {description})\n }\n\n reinstall = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/settings/reinstall`)\n }\n\n changeDockerImage = async (image: string): Promise<void> => {\n await this.r.post(`/servers/${this.id}/settings/docker-image`, {image})\n }\n}","import {AxiosInstance} from \"axios\"\nimport {EventEmitter} from \"events\"\nimport WebSocket from \"isomorphic-ws\"\nimport stripColor from \"strip-color\"\nimport {\n BackupCompletedJson,\n PowerState,\n SOCKET_EVENT,\n StatsWsJson,\n WebsocketEvent\n} from \"@/api/client/types/websocket\";\nimport {ServerSignalOption} from \"@/api/common/types/server_power\";\n\nconst isBrowser = typeof window !== \"undefined\"\n\n\ntype WebsocketHandshakePayload = {\n data: {\n token: string\n socket: string\n }\n}\n\ntype SocketEventPayloadMap = {\n [SOCKET_EVENT.AUTH_SUCCESS]: undefined\n [SOCKET_EVENT.STATUS]: PowerState\n [SOCKET_EVENT.CONSOLE_OUTPUT]: string\n [SOCKET_EVENT.STATS]: StatsWsJson\n [SOCKET_EVENT.DAEMON_ERROR]: undefined\n [SOCKET_EVENT.DAEMON_MESSAGE]: string\n [SOCKET_EVENT.INSTALL_OUTPUT]: string\n [SOCKET_EVENT.INSTALL_STARTED]: undefined\n [SOCKET_EVENT.INSTALL_COMPLETED]: undefined\n [SOCKET_EVENT.TRANSFER_LOGS]: string\n [SOCKET_EVENT.TRANSFER_STATUS]: string\n [SOCKET_EVENT.BACKUP_COMPLETED]: BackupCompletedJson\n [SOCKET_EVENT.BACKUP_RESTORE_COMPLETED]: undefined\n [SOCKET_EVENT.TOKEN_EXPIRING]: undefined\n [SOCKET_EVENT.TOKEN_EXPIRED]: undefined\n [SOCKET_EVENT.JWT_ERROR]: string\n}\n\ntype Listener<E extends SOCKET_EVENT> = SocketEventPayloadMap[E] extends undefined\n ? () => void\n : (payload: SocketEventPayloadMap[E]) => void\n\ntype MessageEventLike = {data?: unknown}\n\ntype CloseEventLike = Parameters<NonNullable<WebSocket[\"onclose\"]>>[0]\n\ntype ErrorEventLike = Parameters<NonNullable<WebSocket[\"onerror\"]>>[0]\n\nconst RECONNECT_ERRORS = new Set([\n \"jwt: exp claim is invalid\",\n \"jwt: created too far in past (denylist)\",\n])\n\nconst FALLBACK_LOG_MESSAGE = \"No logs - is the server online?\"\n\nexport class ServerWebsocket {\n private readonly r: AxiosInstance\n private readonly serverId: string\n private socket?: WebSocket\n private currentToken?: string\n private readonly bus = new EventEmitter()\n private debugLogging = false\n private stripColors: boolean\n private detachMessageListener?: () => void\n\n constructor(requester: AxiosInstance, id: string, stripColors: boolean = false) {\n this.r = requester\n this.serverId = id\n this.stripColors = stripColors\n }\n\n public on<E extends SOCKET_EVENT>(event: E, listener: Listener<E>): () => void {\n const handler = listener as (...args: unknown[]) => void\n this.bus.on(event, handler)\n return () => {\n this.bus.removeListener(event, handler)\n }\n }\n\n public deregister<E extends SOCKET_EVENT>(event: E, listener: Listener<E>): void {\n const handler = listener as (...args: unknown[]) => void\n this.bus.removeListener(event, handler)\n }\n\n private emit<E extends SOCKET_EVENT>(event: E, ...args: SocketEventPayloadMap[E] extends undefined ? [] : [SocketEventPayloadMap[E]]): void {\n if (args.length === 0) {\n this.bus.emit(event)\n } else {\n this.bus.emit(event, args[0])\n }\n }\n\n public async connect(resumable?: boolean, debugLogging?: boolean): Promise<void> {\n this.debugLogging = debugLogging ?? false\n\n if (this.socket) {\n return\n }\n\n const socketUrl = await this.refreshCredentials()\n\n this.socket = isBrowser\n ? new WebSocket(socketUrl)\n : new WebSocket(socketUrl, undefined, {origin: new URL(socketUrl).origin})\n\n await new Promise<void>((resolve, reject) => {\n const socket = this.socket\n if (!socket) {\n reject(new Error(\"Failed to create socket connection\"))\n return\n }\n\n socket.onopen = async () => {\n try {\n await this.authenticate()\n this.attachMessageListener()\n socket.onopen = null\n socket.onerror = null\n resolve()\n } catch (error) {\n socket.onopen = null\n socket.onerror = null\n reject(error instanceof Error ? error : new Error(\"Websocket authentication failed\"))\n }\n }\n\n socket.onerror = (event: ErrorEventLike) => {\n socket.onopen = null\n socket.onerror = null\n reject(event instanceof Error ? event : new Error(\"Websocket connection error\"))\n }\n })\n\n if (resumable) {\n this.makeResumable(true)\n }\n }\n\n public onSocketDisconnect(handler: (event: CloseEventLike) => void): void {\n if (!this.socket) {\n console.error(new Error(\"No socket connection\"))\n return\n }\n\n this.socket.onclose = handler\n }\n\n public onSocketError(handler: (event: ErrorEventLike) => void): void {\n if (!this.socket) {\n console.error(new Error(\"No socket connection\"))\n return\n }\n\n this.socket.onerror = handler\n }\n\n public makeResumable(disconnectsToo: boolean): void {\n const scheduleReconnect = () => {\n setTimeout(() => {\n const previous = this.socket\n this.detachMessageListener?.()\n this.detachMessageListener = undefined\n this.socket = undefined\n previous?.close()\n void this.connect(true, this.debugLogging)\n }, 1000)\n }\n\n this.onSocketError(() => scheduleReconnect())\n\n if (disconnectsToo) {\n this.onSocketDisconnect(() => scheduleReconnect())\n }\n }\n\n private attachMessageListener(): void {\n if (!this.socket) {\n throw new Error(\"No socket connection\")\n }\n\n this.detachMessageListener?.()\n\n const handler = (event: unknown) => {\n void this.handleIncomingMessage(event)\n }\n\n if (typeof this.socket.addEventListener === \"function\") {\n this.socket.addEventListener(\"message\", handler as (event: MessageEventLike) => void)\n this.detachMessageListener = () => {\n this.socket?.removeEventListener?.(\"message\", handler as (event: MessageEventLike) => void)\n }\n } else {\n const fallback = (data: unknown) => handler({data} satisfies MessageEventLike)\n const socket = this.socket as unknown as {\n on?: (event: string, listener: (data: unknown) => void) => void\n off?: (event: string, listener: (data: unknown) => void) => void\n removeListener?: (event: string, listener: (data: unknown) => void) => void\n }\n\n socket.on?.(\"message\", fallback)\n this.detachMessageListener = () => {\n const target = this.socket as unknown as typeof socket | undefined\n if (!target) {\n return\n }\n\n if (typeof target.off === \"function\") {\n target.off(\"message\", fallback)\n } else if (typeof target.removeListener === \"function\") {\n target.removeListener(\"message\", fallback)\n }\n }\n }\n }\n\n private async handleIncomingMessage(event: unknown): Promise<void> {\n const message = this.parseMessage(event)\n if (!message) {\n return\n }\n\n try {\n await this.dispatchMessage(message)\n } catch (error) {\n if (this.debugLogging) {\n console.error(\"Error while handling websocket message\", error)\n }\n }\n }\n\n private parseMessage(event: unknown): WebsocketEvent | null {\n const payload = this.normalisePayload(event)\n if (!payload) {\n return null\n }\n\n try {\n return JSON.parse(payload) as WebsocketEvent\n } catch (error) {\n if (this.debugLogging) {\n console.warn(\"Failed to parse websocket payload\", error)\n }\n return null\n }\n }\n\n private normalisePayload(event: unknown): string | null {\n if (typeof event === \"string\") {\n return event\n }\n\n if (typeof event === \"object\" && event !== null && \"data\" in event) {\n return this.normalisePayload((event as MessageEventLike).data)\n }\n\n if (typeof Buffer !== \"undefined\" && Buffer.isBuffer(event)) {\n return event.toString(\"utf8\")\n }\n\n if (typeof ArrayBuffer !== \"undefined\" && event instanceof ArrayBuffer) {\n if (typeof TextDecoder !== \"undefined\") {\n return new TextDecoder().decode(new Uint8Array(event))\n }\n\n if (typeof Buffer !== \"undefined\") {\n return Buffer.from(event).toString(\"utf8\")\n }\n }\n\n return null\n }\n\n private async dispatchMessage(message: WebsocketEvent): Promise<void> {\n switch (message.event) {\n case SOCKET_EVENT.AUTH_SUCCESS: {\n if (this.debugLogging) {\n console.debug(\"Auth success\")\n }\n this.emit(SOCKET_EVENT.AUTH_SUCCESS)\n break\n }\n case SOCKET_EVENT.STATUS: {\n if (this.debugLogging) {\n console.debug(\"Received status event\", message.args[0])\n }\n this.emit(SOCKET_EVENT.STATUS, message.args[0])\n break\n }\n case SOCKET_EVENT.CONSOLE_OUTPUT: {\n let output = message.args[0]\n if (this.stripColors) {\n output = stripColor(output)\n }\n if (this.debugLogging) {\n console.debug(\"Received console output\", output)\n }\n this.emit(SOCKET_EVENT.CONSOLE_OUTPUT, output)\n break\n }\n case SOCKET_EVENT.STATS: {\n try {\n const payload = JSON.parse(message.args[0]) as StatsWsJson\n this.emit(SOCKET_EVENT.STATS, payload)\n } catch (error) {\n if (this.debugLogging) {\n console.warn(\"Failed to parse stats payload\", error)\n }\n }\n break\n }\n case SOCKET_EVENT.DAEMON_ERROR: {\n this.emit(SOCKET_EVENT.DAEMON_ERROR)\n break\n }\n case SOCKET_EVENT.BACKUP_COMPLETED: {\n try {\n const payload = JSON.parse(message.args[0]) as BackupCompletedJson\n this.emit(SOCKET_EVENT.BACKUP_COMPLETED, payload)\n } catch (error) {\n if (this.debugLogging) {\n console.warn(\"Failed to parse backup payload\", error)\n }\n }\n break\n }\n case SOCKET_EVENT.DAEMON_MESSAGE: {\n let output = message.args[0]\n if (this.stripColors) {\n output = stripColor(output)\n }\n this.emit(SOCKET_EVENT.DAEMON_MESSAGE, output)\n break\n }\n case SOCKET_EVENT.INSTALL_OUTPUT: {\n let output = message.args[0]\n if (this.stripColors) {\n output = stripColor(output)\n }\n this.emit(SOCKET_EVENT.INSTALL_OUTPUT, output)\n break\n }\n case SOCKET_EVENT.BACKUP_RESTORE_COMPLETED: {\n this.emit(SOCKET_EVENT.BACKUP_RESTORE_COMPLETED)\n break\n }\n case SOCKET_EVENT.INSTALL_COMPLETED: {\n this.emit(SOCKET_EVENT.INSTALL_COMPLETED)\n break\n }\n case SOCKET_EVENT.INSTALL_STARTED: {\n this.emit(SOCKET_EVENT.INSTALL_STARTED)\n break\n }\n case SOCKET_EVENT.TRANSFER_LOGS: {\n this.emit(SOCKET_EVENT.TRANSFER_LOGS, message.args[0])\n break\n }\n case SOCKET_EVENT.TRANSFER_STATUS: {\n this.emit(SOCKET_EVENT.TRANSFER_STATUS, message.args[0])\n break\n }\n case SOCKET_EVENT.TOKEN_EXPIRING: {\n this.emit(SOCKET_EVENT.TOKEN_EXPIRING)\n if (this.debugLogging) {\n console.warn(\"Token expiring, renewing...\")\n }\n await this.refreshCredentials()\n await this.authenticate()\n break\n }\n case SOCKET_EVENT.TOKEN_EXPIRED: {\n this.emit(SOCKET_EVENT.TOKEN_EXPIRED)\n throw new Error(\"Token expired\")\n }\n case SOCKET_EVENT.JWT_ERROR: {\n const reason = message.args[0]\n if (RECONNECT_ERRORS.has(reason)) {\n this.emit(SOCKET_EVENT.TOKEN_EXPIRING)\n if (this.debugLogging) {\n console.warn(\"Token expiring (JWT error), renewing...\")\n }\n await this.refreshCredentials()\n await this.authenticate()\n } else {\n this.emit(SOCKET_EVENT.JWT_ERROR, reason)\n throw new Error(\"Token expired\")\n }\n break\n }\n default: {\n if (this.debugLogging) {\n console.warn(\"Unknown websocket event\", message)\n }\n break\n }\n }\n }\n\n private async refreshCredentials(): Promise<string> {\n const {data} = await this.r.get<WebsocketHandshakePayload>(`/servers/${this.serverId}/websocket`)\n this.currentToken = data.data.token\n return data.data.socket\n }\n\n private async authenticate(): Promise<void> {\n if (!this.socket) {\n throw new Error(\"No socket connection\")\n }\n\n if (!this.currentToken) {\n throw new Error(\"Missing websocket token\")\n }\n\n this.socket.send(JSON.stringify({event: \"auth\", args: [this.currentToken]}))\n }\n\n public disconnect(): void {\n this.detachMessageListener?.()\n this.detachMessageListener = undefined\n if (this.socket) {\n this.socket.close()\n this.socket = undefined\n }\n }\n\n public requestStats(): void {\n this.send(\"send stats\", [null])\n }\n\n public requestLogs(): void {\n this.send(\"send logs\", [null])\n }\n\n private send(event: string, args: unknown[]): void {\n if (!this.socket) {\n if (this.debugLogging) {\n console.warn(`Attempted to send \"${event}\" without an active websocket connection`)\n }\n return\n }\n\n this.socket.send(JSON.stringify({event, args}))\n }\n\n public getStats(): Promise<StatsWsJson> {\n return new Promise((resolve, reject) => {\n if (!this.socket) {\n reject(new Error(\"No socket connection\"))\n return\n }\n\n let off: (() => void) | undefined\n const timeout = setTimeout(() => {\n off?.()\n reject(new Error(\"Timed out waiting for stats\"))\n }, 5000)\n\n off = this.on(SOCKET_EVENT.STATS, (payload) => {\n clearTimeout(timeout)\n off?.()\n resolve(payload)\n })\n\n this.requestStats()\n })\n }\n\n public getLogs(): Promise<string[]> {\n return new Promise((resolve, reject) => {\n if (!this.socket) {\n reject(new Error(\"No socket connection\"))\n return\n }\n\n const lines: string[] = []\n let off: (() => void) | undefined\n let initialTimeout: ReturnType<typeof setTimeout> | undefined\n let idleTimeout: ReturnType<typeof setTimeout> | undefined\n\n const finalize = (payload: string[]) => {\n off?.()\n if (initialTimeout) {\n clearTimeout(initialTimeout)\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout)\n }\n resolve(payload)\n }\n\n initialTimeout = setTimeout(() => {\n finalize(lines.length > 0 ? lines : [FALLBACK_LOG_MESSAGE])\n }, 5000)\n\n off = this.on(SOCKET_EVENT.CONSOLE_OUTPUT, (line) => {\n lines.push(line)\n if (initialTimeout) {\n clearTimeout(initialTimeout)\n initialTimeout = undefined\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout)\n }\n idleTimeout = setTimeout(() => {\n finalize(lines)\n }, 1000)\n })\n\n this.requestLogs()\n })\n }\n\n public sendPoweraction(action: ServerSignalOption): void {\n this.send(\"set state\", [action])\n }\n\n public sendCommand(cmd: string): void {\n this.send(\"send command\", [cmd])\n }\n}\n","import {AxiosInstance} from \"axios\";\nimport {ServerActivityLog} from \"@/api/client/types/server\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\n\nexport class ServerActivity {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(r: AxiosInstance, id: string) {\n this.r = r\n this.id = id\n }\n\n list = async (\n page: number = 1,\n per_page: number = 25,\n ): Promise<ServerActivityLog[]> => {\n const {data} = await this.r.get<GenericListResponse<GenericResponse<ServerActivityLog, \"activity_log\">>>(`/server/${this.id}/activity`, {\n params: {\n page,\n per_page,\n },\n })\n return data.data.map(log => log.attributes)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericResponse} from \"@/api/base/types\";\nimport {Server, ServerStats} from \"@/api/client/types/server\";\nimport {ServerDatabases} from \"@/api/client/server_databases\";\nimport {ServerFiles} from \"@/api/client/server_files\";\nimport {ServerSchedules} from \"@/api/client/server_schedules\";\nimport {ServerAllocations} from \"@/api/client/server_allocations\";\nimport {ServerUsers} from \"@/api/client/server_users\";\nimport {ServerBackups} from \"@/api/client/server_backups\";\nimport {ServerStartup} from \"@/api/client/server_startup\";\nimport {ServerSettings} from \"@/api/client/server_settings\";\nimport {ServerWebsocket} from \"@/api/client/server_websocket\";\nimport {ServerActivity} from \"@/api/client/server_activity\";\n\n\nexport class ServerClient {\n private readonly r: AxiosInstance\n private readonly id: string\n\n activity: ServerActivity\n databases: ServerDatabases\n files: ServerFiles\n schedules: ServerSchedules\n allocations: ServerAllocations\n users: ServerUsers\n backups: ServerBackups\n startup: ServerStartup\n variables: ServerStartup\n settings: ServerSettings\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n\n this.activity = new ServerActivity(requester, id)\n this.databases = new ServerDatabases(requester, id)\n this.files = new ServerFiles(requester, id)\n this.schedules = new ServerSchedules(requester, id)\n this.allocations = new ServerAllocations(requester, id)\n this.users = new ServerUsers(requester, id)\n this.backups = new ServerBackups(requester, id)\n this.startup = new ServerStartup(requester, id)\n this.variables = this.startup // preferable\n this.settings = new ServerSettings(requester, id)\n }\n\n info = async (include?: (\"egg\" | \"subusers\")[]): Promise<Server> => {\n const {data} = await this.r.get<GenericResponse<Server, \"server\">>(`/servers/${this.id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n websocket = (stripColors: boolean = false): ServerWebsocket => {\n return new ServerWebsocket(this.r, this.id, stripColors)\n }\n\n resources = async (): Promise<ServerStats> => {\n const {data} = await this.r.get<GenericResponse<ServerStats, \"stats\">>(`/servers/${this.id}/resources`)\n return data.attributes\n }\n\n command = async (command: string): Promise<void> => {\n await this.r.post(`/servers/${this.id}/command`, {command})\n }\n\n power = async (signal: \"start\" | \"stop\" | \"restart\" | \"kill\"): Promise<void> => {\n await this.r.post(`/servers/${this.id}/power`, {signal})\n }\n}","import {AxiosInstance} from \"axios\";\nimport z from \"zod\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {ApplicationUser} from \"@/api/application/types/user\";\nimport {ArrayQueryParams, SortParam} from \"@/utils/transform\";\nimport {ExactlyOneKey} from \"@/utils/types\";\nimport {languagesSchema, timezonesSchema} from \"@/api/common/types/enums\";\n\n\nexport class Users {\n private readonly r: AxiosInstance\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n }\n\n list = async (\n opts: ListType,\n page: number = 1\n ): Promise<ApplicationUser[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ApplicationUser, \"user\">>\n >(\"/users\", {\n params: {\n include: opts.include?.join(\",\"),\n page,\n ...ArrayQueryParams({filters: opts.filters || {}}),\n sort: opts.sort?.id\n ? SortParam(\"id\", opts.sort?.id)\n : SortParam(\"uuid\", opts.sort?.uuid!)\n }\n })\n\n return data.data.map(d => d.attributes)\n }\n\n info = async (\n id: number,\n {include}: { include?: (\"servers\")[] }\n ): Promise<ApplicationUser> => {\n z.number().positive().parse(id)\n const {data} = await this.r.get<\n GenericResponse<ApplicationUser, \"user\">\n >(`/users/${id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n infoByExternal = async (\n external_id: string,\n {include}: { include?: (\"servers\")[] }\n ): Promise<ApplicationUser> => {\n const {data} = await this.r.get<\n GenericResponse<ApplicationUser, \"user\">\n >(`/users/external/${external_id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n create = async (user: z.infer<typeof CreateSchema>): Promise<ApplicationUser> => {\n user = CreateSchema.parse(user)\n const {data} = await this.r.post<\n GenericResponse<ApplicationUser, \"user\">\n >(\"/users\", user)\n return data.attributes\n }\n\n update = async (id: number, user: z.infer<typeof CreateSchema>): Promise<ApplicationUser> => {\n user = CreateSchema.parse(user)\n const {data} = await this.r.patch<\n GenericResponse<ApplicationUser, \"user\">\n >(`/users/${id}`, user)\n return data.attributes\n }\n\n delete = async (id: number): Promise<void> => {\n z.number().positive().parse(id)\n await this.r.delete(`/users/${id}`)\n }\n\n addRoles = async (id: number, roles: number[]): Promise<void> => {\n z.number().positive().parse(id)\n await this.r.patch(`/users/${id}/roles/assign`, {roles})\n }\n\n removeRoles = async (id: number, roles: number[]): Promise<void> => {\n z.number().positive().parse(id)\n await this.r.patch(`/users/${id}/roles/remove`, {roles})\n }\n}\n\ntype ListType = {\n include?: (\"servers\")[],\n filters?: ListFilters,\n sort?: ListSort\n}\ntype ListFilters = {\n [key in \"email\" | \"uuid\" | \"username\" | \"external_id\"]: string;\n};\n\ntype ListSort = ExactlyOneKey<\"id\" | \"uuid\", \"asc\" | \"desc\">\n\nconst CreateSchema = z.object({\n email: z.email(),\n external_id: z.string().max(255).optional(),\n username: z.string().min(1).max(255),\n password: z.string().optional(),\n language: languagesSchema,\n timezone: timezonesSchema\n})","import {string} from \"zod\";\n\n\nexport const ArrayQueryParams = (p: {\n [key: string]: {\n [key: string]: string\n }\n}): {\n [key: string]: string\n} => {\n const params = new URLSearchParams()\n\n const o: ReturnType<typeof ArrayQueryParams> = {}\n\n for (const [param, value] of Object.entries(p)) {\n for (const [key, val] of Object.entries(value)) {\n o[`${param}[${key}]`] = val\n }\n }\n\n return o\n}\n\nexport const SortParam = (key: string, p: \"asc\" | \"desc\"): string => {\n return `${p===\"desc\" ? \"-\" : \"\"}${key}`\n}","import z from \"zod\";\n\nexport const languagesSchema = z.enum([\n \"af\", \"ak\", \"am\", \"ar\", \"as\", \"az\", \"be\", \"bg\", \"bm\", \"bn\", \"bo\", \"br\", \"bs\", \"ca\", \"ce\", \"cs\", \"cv\", \"cy\",\n \"da\", \"de\", \"dz\", \"ee\", \"el\", \"en\", \"eo\", \"es\", \"et\", \"eu\", \"fa\", \"ff\", \"fi\", \"fo\", \"fr\", \"fy\", \"ga\", \"gd\",\n \"gl\", \"gu\", \"gv\", \"ha\", \"he\", \"hi\", \"hr\", \"hu\", \"hy\", \"ia\", \"id\", \"ig\", \"ii\", \"is\", \"it\", \"ja\", \"jv\", \"ka\",\n \"ki\", \"kk\", \"kl\", \"km\", \"kn\", \"ko\", \"ks\", \"ku\", \"kw\", \"ky\", \"lb\", \"lg\", \"ln\", \"lo\", \"lt\", \"lu\", \"lv\", \"mg\",\n \"mi\", \"mk\", \"ml\", \"mn\", \"mr\", \"ms\", \"mt\", \"my\", \"nb\", \"nd\", \"ne\", \"nl\", \"nn\", \"no\", \"om\", \"or\", \"os\", \"pa\",\n \"pl\", \"ps\", \"pt\", \"qu\", \"rm\", \"rn\", \"ro\", \"ru\", \"rw\", \"sa\", \"sc\", \"sd\", \"se\", \"sg\", \"si\", \"sk\", \"sl\", \"sn\",\n \"so\", \"sq\", \"sr\", \"su\", \"sv\", \"sw\", \"ta\", \"te\", \"tg\", \"th\", \"ti\", \"tk\", \"to\", \"tr\", \"tt\", \"ug\", \"uk\", \"ur\",\n \"uz\", \"vi\", \"wo\", \"xh\", \"yi\", \"yo\", \"zh\", \"zu\"\n])\n\nexport type LanguagesType = z.infer<typeof languagesSchema>\n\n// Questionable choices at their finest\nexport const timezonesSchema = z.enum([\n \"Africa/Abidjan\", \"Africa/Accra\", \"Africa/Addis_Ababa\", \"Africa/Algiers\", \"Africa/Asmara\", \"Africa/Bamako\", \"Africa/Bangui\", \"Africa/Banjul\", \"Africa/Bissau\", \"Africa/Blantyre\", \"Africa/Brazzaville\", \"Africa/Bujumbura\", \"Africa/Cairo\", \"Africa/Casablanca\", \"Africa/Ceuta\", \"Africa/Conakry\", \"Africa/Dakar\", \"Africa/Dar_es_Salaam\", \"Africa/Djibouti\", \"Africa/Douala\", \"Africa/El_Aaiun\", \"Africa/Freetown\", \"Africa/Gaborone\", \"Africa/Harare\", \"Africa/Johannesburg\", \"Africa/Juba\", \"Africa/Kampala\", \"Africa/Khartoum\", \"Africa/Kigali\", \"Africa/Kinshasa\", \"Africa/Lagos\", \"Africa/Libreville\", \"Africa/Lome\", \"Africa/Luanda\", \"Africa/Lubumbashi\", \"Africa/Lusaka\", \"Africa/Malabo\", \"Africa/Maputo\", \"Africa/Maseru\", \"Africa/Mbabane\", \"Africa/Mogadishu\", \"Africa/Monrovia\", \"Africa/Nairobi\", \"Africa/Ndjamena\", \"Africa/Niamey\", \"Africa/Nouakchott\", \"Africa/Ouagadougou\", \"Africa/Porto-Novo\", \"Africa/Sao_Tome\", \"Africa/Tripoli\", \"Africa/Tunis\", \"Africa/Windhoek\", \"America/Adak\", \"America/Anchorage\", \"America/Anguilla\", \"America/Antigua\", \"America/Araguaina\", \"America/Argentina/Buenos_Aires\", \"America/Argentina/Catamarca\", \"America/Argentina/Cordoba\", \"America/Argentina/Jujuy\", \"America/Argentina/La_Rioja\", \"America/Argentina/Mendoza\", \"America/Argentina/Rio_Gallegos\", \"America/Argentina/Salta\", \"America/Argentina/San_Juan\", \"America/Argentina/San_Luis\", \"America/Argentina/Tucuman\", \"America/Argentina/Ushuaia\", \"America/Aruba\", \"America/Asuncion\", \"America/Atikokan\", \"America/Bahia\", \"America/Bahia_Banderas\", \"America/Barbados\", \"America/Belem\", \"America/Belize\", \"America/Blanc-Sablon\", \"America/Boa_Vista\", \"America/Bogota\", \"America/Boise\", \"America/Cambridge_Bay\", \"America/Campo_Grande\", \"America/Cancun\", \"America/Caracas\", \"America/Cayenne\", \"America/Cayman\", \"America/Chicago\", \"America/Chihuahua\", \"America/Ciudad_Juarez\", \"America/Costa_Rica\", \"America/Coyhaique\", \"America/Creston\", \"America/Cuiaba\", \"America/Curacao\", \"America/Danmarkshavn\", \"America/Dawson\", \"America/Dawson_Creek\", \"America/Denver\", \"America/Detroit\", \"America/Dominica\", \"America/Edmonton\", \"America/Eirunepe\", \"America/El_Salvador\", \"America/Fort_Nelson\", \"America/Fortaleza\", \"America/Glace_Bay\", \"America/Goose_Bay\", \"America/Grand_Turk\", \"America/Grenada\", \"America/Guadeloupe\", \"America/Guatemala\", \"America/Guayaquil\", \"America/Guyana\", \"America/Halifax\", \"America/Havana\", \"America/Hermosillo\", \"America/Indiana/Indianapolis\", \"America/Indiana/Knox\", \"America/Indiana/Marengo\", \"America/Indiana/Petersburg\", \"America/Indiana/Tell_City\", \"America/Indiana/Vevay\", \"America/Indiana/Vincennes\", \"America/Indiana/Winamac\", \"America/Inuvik\", \"America/Iqaluit\", \"America/Jamaica\", \"America/Juneau\", \"America/Kentucky/Louisville\", \"America/Kentucky/Monticello\", \"America/Kralendijk\", \"America/La_Paz\", \"America/Lima\", \"America/Los_Angeles\", \"America/Lower_Princes\", \"America/Maceio\", \"America/Managua\", \"America/Manaus\", \"America/Marigot\", \"America/Martinique\", \"America/Matamoros\", \"America/Mazatlan\", \"America/Menominee\", \"America/Merida\", \"America/Metlakatla\", \"America/Mexico_City\", \"America/Miquelon\", \"America/Moncton\", \"America/Monterrey\", \"America/Montevideo\", \"America/Montserrat\", \"America/Nassau\", \"America/New_York\", \"America/Nome\", \"America/Noronha\", \"America/North_Dakota/Beulah\", \"America/North_Dakota/Center\", \"America/North_Dakota/New_Salem\", \"America/Nuuk\", \"America/Ojinaga\", \"America/Panama\", \"America/Paramaribo\", \"America/Phoenix\", \"America/Port-au-Prince\", \"America/Port_of_Spain\", \"America/Porto_Velho\", \"America/Puerto_Rico\", \"America/Punta_Arenas\", \"America/Rankin_Inlet\", \"America/Recife\", \"America/Regina\", \"America/Resolute\", \"America/Rio_Branco\", \"America/Santarem\", \"America/Santiago\", \"America/Santo_Domingo\", \"America/Sao_Paulo\", \"America/Scoresbysund\", \"America/Sitka\", \"America/St_Barthelemy\", \"America/St_Johns\", \"America/St_Kitts\", \"America/St_Lucia\", \"America/St_Thomas\", \"America/St_Vincent\", \"America/Swift_Current\", \"America/Tegucigalpa\", \"America/Thule\", \"America/Tijuana\", \"America/Toronto\", \"America/Tortola\", \"America/Vancouver\", \"America/Whitehorse\", \"America/Winnipeg\", \"America/Yakutat\", \"Antarctica/Casey\", \"Antarctica/Davis\", \"Antarctica/DumontDUrville\", \"Antarctica/Macquarie\", \"Antarctica/Mawson\", \"Antarctica/McMurdo\", \"Antarctica/Palmer\", \"Antarctica/Rothera\", \"Antarctica/Syowa\", \"Antarctica/Troll\", \"Antarctica/Vostok\", \"Arctic/Longyearbyen\", \"Asia/Aden\", \"Asia/Almaty\", \"Asia/Amman\", \"Asia/Anadyr\", \"Asia/Aqtau\", \"Asia/Aqtobe\", \"Asia/Ashgabat\", \"Asia/Atyrau\", \"Asia/Baghdad\", \"Asia/Bahrain\", \"Asia/Baku\", \"Asia/Bangkok\", \"Asia/Barnaul\", \"Asia/Beirut\", \"Asia/Bishkek\", \"Asia/Brunei\", \"Asia/Chita\", \"Asia/Colombo\", \"Asia/Damascus\", \"Asia/Dhaka\", \"Asia/Dili\", \"Asia/Dubai\", \"Asia/Dushanbe\", \"Asia/Famagusta\", \"Asia/Gaza\", \"Asia/Hebron\", \"Asia/Ho_Chi_Minh\", \"Asia/Hong_Kong\", \"Asia/Hovd\", \"Asia/Irkutsk\", \"Asia/Jakarta\", \"Asia/Jayapura\", \"Asia/Jerusalem\", \"Asia/Kabul\", \"Asia/Kamchatka\", \"Asia/Karachi\", \"Asia/Kathmandu\", \"Asia/Khandyga\", \"Asia/Kolkata\", \"Asia/Krasnoyarsk\", \"Asia/Kuala_Lumpur\", \"Asia/Kuching\", \"Asia/Kuwait\", \"Asia/Macau\", \"Asia/Magadan\", \"Asia/Makassar\", \"Asia/Manila\", \"Asia/Muscat\", \"Asia/Nicosia\", \"Asia/Novokuznetsk\", \"Asia/Novosibirsk\", \"Asia/Omsk\", \"Asia/Oral\", \"Asia/Phnom_Penh\", \"Asia/Pontianak\", \"Asia/Pyongyang\", \"Asia/Qatar\", \"Asia/Qostanay\", \"Asia/Qyzylorda\", \"Asia/Riyadh\", \"Asia/Sakhalin\", \"Asia/Samarkand\", \"Asia/Seoul\", \"Asia/Shanghai\", \"Asia/Singapore\", \"Asia/Srednekolymsk\", \"Asia/Taipei\", \"Asia/Tashkent\", \"Asia/Tbilisi\", \"Asia/Tehran\", \"Asia/Thimphu\", \"Asia/Tokyo\", \"Asia/Tomsk\", \"Asia/Ulaanbaatar\", \"Asia/Urumqi\", \"Asia/Ust-Nera\", \"Asia/Vientiane\", \"Asia/Vladivostok\", \"Asia/Yakutsk\", \"Asia/Yangon\", \"Asia/Yekaterinburg\", \"Asia/Yerevan\", \"Atlantic/Azores\", \"Atlantic/Bermuda\", \"Atlantic/Canary\", \"Atlantic/Cape_Verde\", \"Atlantic/Faroe\", \"Atlantic/Madeira\", \"Atlantic/Reykjavik\", \"Atlantic/South_Georgia\", \"Atlantic/St_Helena\", \"Atlantic/Stanley\", \"Australia/Adelaide\", \"Australia/Brisbane\", \"Australia/Broken_Hill\", \"Australia/Darwin\", \"Australia/Eucla\", \"Australia/Hobart\", \"Australia/Lindeman\", \"Australia/Lord_Howe\", \"Australia/Melbourne\", \"Australia/Perth\", \"Australia/Sydney\", \"Europe/Amsterdam\", \"Europe/Andorra\", \"Europe/Astrakhan\", \"Europe/Athens\", \"Europe/Belgrade\", \"Europe/Berlin\", \"Europe/Bratislava\", \"Europe/Brussels\", \"Europe/Bucharest\", \"Europe/Budapest\", \"Europe/Busingen\", \"Europe/Chisinau\", \"Europe/Copenhagen\", \"Europe/Dublin\", \"Europe/Gibraltar\", \"Europe/Guernsey\", \"Europe/Helsinki\", \"Europe/Isle_of_Man\", \"Europe/Istanbul\", \"Europe/Jersey\", \"Europe/Kaliningrad\", \"Europe/Kirov\", \"Europe/Kyiv\", \"Europe/Lisbon\", \"Europe/Ljubljana\", \"Europe/London\", \"Europe/Luxembourg\", \"Europe/Madrid\", \"Europe/Malta\", \"Europe/Mariehamn\", \"Europe/Minsk\", \"Europe/Monaco\", \"Europe/Moscow\", \"Europe/Oslo\", \"Europe/Paris\", \"Europe/Podgorica\", \"Europe/Prague\", \"Europe/Riga\", \"Europe/Rome\", \"Europe/Samara\", \"Europe/San_Marino\", \"Europe/Sarajevo\", \"Europe/Saratov\", \"Europe/Simferopol\", \"Europe/Skopje\", \"Europe/Sofia\", \"Europe/Stockholm\", \"Europe/Tallinn\", \"Europe/Tirane\", \"Europe/Ulyanovsk\", \"Europe/Vaduz\", \"Europe/Vatican\", \"Europe/Vienna\", \"Europe/Vilnius\", \"Europe/Volgograd\", \"Europe/Warsaw\", \"Europe/Zagreb\", \"Europe/Zurich\", \"Indian/Antananarivo\", \"Indian/Chagos\", \"Indian/Christmas\", \"Indian/Cocos\", \"Indian/Comoro\", \"Indian/Kerguelen\", \"Indian/Mahe\", \"Indian/Maldives\", \"Indian/Mauritius\", \"Indian/Mayotte\", \"Indian/Reunion\", \"Pacific/Apia\", \"Pacific/Auckland\", \"Pacific/Bougainville\", \"Pacific/Chatham\", \"Pacific/Chuuk\", \"Pacific/Easter\", \"Pacific/Efate\", \"Pacific/Fakaofo\", \"Pacific/Fiji\", \"Pacific/Funafuti\", \"Pacific/Galapagos\", \"Pacific/Gambier\", \"Pacific/Guadalcanal\", \"Pacific/Guam\", \"Pacific/Honolulu\", \"Pacific/Kanton\", \"Pacific/Kiritimati\", \"Pacific/Kosrae\", \"Pacific/Kwajalein\", \"Pacific/Majuro\", \"Pacific/Marquesas\", \"Pacific/Midway\", \"Pacific/Nauru\", \"Pacific/Niue\", \"Pacific/Norfolk\", \"Pacific/Noumea\", \"Pacific/Pago_Pago\", \"Pacific/Palau\", \"Pacific/Pitcairn\", \"Pacific/Pohnpei\", \"Pacific/Port_Moresby\", \"Pacific/Rarotonga\", \"Pacific/Saipan\", \"Pacific/Tahiti\", \"Pacific/Tarawa\", \"Pacific/Tongatapu\", \"Pacific/Wake\", \"Pacific/Wallis\", \"UTC\"\n])\n\nexport type TimezonesType = z.infer<typeof timezonesSchema>","import {AxiosInstance} from \"axios\";\nimport {Allocation, AllocationRel} from \"@/api/application/types/server_allocation\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport z from \"zod\";\n\n\nexport class NodesAllocations {\n private readonly r: AxiosInstance\n private readonly id: number\n\n constructor(requester: AxiosInstance, id: number) {\n this.r = requester\n this.id = id\n }\n\n list = async (include?: (\"node\" | \"server\")[]): Promise<AllocationRel[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<AllocationRel, \"allocation\">>\n >(`/nodes/${this.id}/allocations`, {\n params: {include: include?.join(\",\")}\n })\n\n return data.data.map(d => d.attributes)\n }\n\n create = async (\n ip: string,\n ports: string[],\n alias?: string\n ): Promise<void> => {\n z.ipv4().parse(ip)\n z.ipv4().or(z.url().max(255)).optional().parse(alias)\n z.array(z.number()).or(z.string().regex(/\\d+-\\d+/)).parse(ports)\n\n await this.r.post(`/nodes/${this.id}/allocations`, {\n ip, ports, alias\n })\n }\n\n delete = async (alloc_id: number): Promise<void> => {\n await this.r.delete(`/nodes/${this.id}/allocations/${alloc_id}`)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {NodesAllocations} from \"@/api/application/nodes_allocations\";\nimport {ApplicationServer} from \"@/api/application/types/server\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport z from \"zod\";\nimport {Node, NodeConfiguration} from \"@/api/application/types/node\";\n\n\nexport class Nodes {\n private readonly r: AxiosInstance\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n }\n\n list = async (\n include?: (\"allocations\" | \"location\" | \"servers\")[],\n page: number = 1\n ): Promise<Node[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Node, \"node\">>\n >(\"/nodes\", {\n params: {include: include?.join(\",\"), page}\n })\n return data.data.map(s => s.attributes)\n }\n\n listDeployable = async (\n filters: {\n disk: number,\n memory: number,\n cpu?: number,\n location_ids?: string[],\n tags?: string[]\n },\n include?: (\"allocations\" | \"location\" | \"servers\")[],\n page: number = 1\n ): Promise<Node[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Node, \"node\">>\n >(\"/nodes/deployable\", {\n params: {\n include: include?.join(\",\"),\n disk: filters.disk,\n memory: filters.memory,\n cpu: filters.cpu,\n location_ids: filters.location_ids,\n tags: filters.tags,\n page: page\n }\n })\n return data.data.map(s => s.attributes)\n }\n\n info = async (\n id: number,\n include?: (\"allocations\" | \"location\" | \"servers\")[],\n ): Promise<Node> => {\n z.number().positive().parse(id)\n const {data} = await this.r.get<\n GenericResponse<Node, \"node\">\n >(`/nodes/${id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n create = async (node: z.infer<typeof NodeCreateSchema>): Promise<Node> => {\n node = NodeCreateSchema.parse(node)\n const {data} = await this.r.post<\n GenericResponse<Node, \"node\">\n >(\"/nodes\", node)\n return data.attributes\n }\n\n get_configuration = async (id: number): Promise<NodeConfiguration> => {\n z.number().positive().parse(id)\n const {data} = await this.r.get<NodeConfiguration>(`/nodes/${id}/configuration`)\n return data\n }\n\n update = async (id: number, node: z.infer<typeof NodeCreateSchema>): Promise<Node> => {\n z.number().positive().parse(id)\n node = NodeCreateSchema.parse(node)\n const {data} = await this.r.patch<\n GenericResponse<Node, \"node\">\n >(`/nodes/${id}`, node)\n return data.attributes\n }\n\n delete = async (id: number): Promise<void> => {\n z.number().positive().parse(id)\n await this.r.delete(`/nodes/${id}`)\n }\n\n allocations = (server_id: number): NodesAllocations => (\n new NodesAllocations(this.r, server_id)\n )\n}\n\nconst NodeCreateSchema = z.object({\n name: z.string().min(1).max(100),\n description: z.string().optional(),\n public: z.boolean().optional(),\n fqdn: z.string().nonempty(),\n scheme: z.enum([\"http\", \"https\"]),\n behind_proxy: z.boolean().optional(),\n memory: z.number().min(0),\n memory_overallocate: z.number().min(-1),\n disk: z.number().min(0),\n disk_overallocate: z.number().min(-1),\n cpu: z.number().min(0),\n cpu_overallocate: z.number().min(-1),\n daemon_base: z.string().nonempty().optional(),\n daemon_sftp: z.number().min(1).max(65535),\n daemon_sftp_alias: z.string().optional(),\n daemon_listen: z.number().min(1).max(65535),\n daemon_connect: z.number().min(1).max(65535),\n maintenance_mode: z.boolean().optional(),\n upload_size: z.number().min(1).max(1024),\n tags: z.array(z.string()).optional(),\n})","import {AxiosInstance} from \"axios\";\nimport z from \"zod\";\nimport {GenericResponse} from \"@/api/base/types\";\nimport {ApplicationServer} from \"@/api/application/types/server\";\nimport {ServersDatabases} from \"@/api/application/servers_databases\";\n\nexport class Servers {\n private readonly r: AxiosInstance\n private readonly id: number\n databases: ServersDatabases\n\n constructor(r: AxiosInstance, server_id: number) {\n this.r = r\n this.id = server_id\n\n this.databases = new ServersDatabases(this.r, this.id)\n }\n\n info = async (include?: (\"egg\" | \"subusers\")[]): Promise<ApplicationServer> => {\n const {data} = await this.r.get<GenericResponse<ApplicationServer, \"server\">>(`/servers/${this.id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n delete = async (force: boolean = false) => {\n await this.r.delete(`/servers/${this.id}${force ? \"/force\" : \"\"}`)\n }\n\n updateDetails = async (opts: z.infer<typeof UpdateDetailsSchema>): Promise<void> => {\n opts = UpdateDetailsSchema.parse(opts)\n await this.r.patch(`/servers/${this.id}/details`, opts)\n }\n\n updateBuild = async (opts: z.infer<typeof UpdateBuildSchema>): Promise<void> => {\n opts = UpdateBuildSchema.parse(opts)\n await this.r.patch(`/servers/${this.id}/build`, opts)\n }\n\n updateStartup = async (opts: z.infer<typeof UpdateStartupSchema>): Promise<void> => {\n opts = UpdateStartupSchema.parse(opts)\n await this.r.patch(`/servers/${this.id}/startup`, opts)\n }\n\n suspend = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/suspend`)\n }\n\n unsuspend = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/unsuspend`)\n }\n\n reinstall = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/reinstall`)\n }\n\n transferStart = async (\n node_id: number,\n allocation_id: number,\n allocation_additional?: string[]\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/transfer`, {\n node_id,\n allocation_id,\n allocation_additional\n })\n }\n\n transferCancel = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/transfer/cancel`)\n }\n}\n\n\nexport const CreateServerSchema = z.object({\n external_id: z.string().min(1).max(255).optional(),\n name: z.string().min(1).max(255),\n description: z.string().optional(),\n user: z.number(),\n egg: z.number(),\n docker_image: z.string().optional(),\n startup: z.string().optional(),\n environment: z.array(z.string()),\n skip_scripts: z.boolean().optional(),\n oom_killer: z.boolean().optional(),\n start_on_completion: z.boolean().optional(),\n limits: z.object({\n memory: z.number().min(0),\n swap: z.number().min(-1),\n disk: z.number().min(0),\n io: z.number().min(0),\n threads: z.string().optional(),\n cpu: z.number().min(0)\n }),\n feature_limits: z.object({\n databases: z.number().min(0),\n allocations: z.number().min(0),\n backups: z.number().min(0)\n }),\n allocation: z.object({\n default: z.string(),\n additional: z.array(z.string()).optional()\n }).optional(),\n deploy: z.object({\n tags: z.array(z.string()).optional(),\n dedicated_ip: z.boolean().optional(),\n port_range: z.array(z.string()).optional()\n }).optional()\n})\n\nconst UpdateDetailsSchema = CreateServerSchema.pick({\n external_id: true,\n name: true,\n user: true,\n description: true\n})\n\nconst UpdateBuildSchema = CreateServerSchema.pick({\n oom_killer: true,\n limits: true,\n feature_limits: true,\n}).extend({\n allocation: z.number().optional(),\n add_allocations: z.array(z.string()).optional(),\n remove_allocations: z.array(z.string()).optional(),\n})\n\nconst UpdateStartupSchema = CreateServerSchema.pick({\n startup: true,\n environment: true,\n egg: true,\n skip_scripts: true\n}).extend({\n image: z.string().optional()\n})","import {AxiosInstance} from \"axios\";\nimport {ServerDatabase} from \"@/api/common/types/server_database\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport z from \"zod\";\n\n// TODO: Check if database type is valid\nexport class ServersDatabases {\n private readonly r: AxiosInstance\n private readonly id: number\n\n constructor(r: AxiosInstance, server_id: number) {\n this.r = r\n this.id = server_id\n }\n\n list = async (): Promise<ServerDatabase[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ServerDatabase, \"server_database\">>\n >(`/servers/${this.id}/databases`)\n return data.data.map(d => d.attributes)\n }\n\n create = async (\n database: string,\n remote: string,\n host: string\n ): Promise<ServerDatabase> => {\n database = z.string().min(1).max(48).parse(database)\n const {data} = await this.r.post<\n GenericResponse<ServerDatabase, \"server_database\">\n >(`/servers/${this.id}/databases`, {database, remote, host})\n return data.attributes\n }\n\n info = async (database_id: number): Promise<ServerDatabase> => {\n const {data} = await this.r.get<\n GenericResponse<ServerDatabase, \"server_database\">\n >(`/servers/${this.id}/databases/${database_id}`)\n return data.attributes\n }\n\n delete = async (database_id: number): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/databases/${database_id}`)\n }\n\n resetPassword = async (database_id: number): Promise<void> => {\n await this.r.post(`/servers/${this.id}/databases/${database_id}/reset-password`)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {DatabaseHost} from \"@/api/application/types/database_host\";\nimport z from \"zod\";\n\nexport class DatabaseHosts {\n private readonly r: AxiosInstance\n\n constructor(r: AxiosInstance) {\n this.r = r\n }\n\n list = async (\n page: number = 1\n ): Promise<DatabaseHost[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<DatabaseHost, \"database_host\">>\n >(\"/database-hosts\", {\n params: {page}\n })\n return data.data.map(d => d.attributes)\n }\n\n info = async (\n id: string\n ): Promise<DatabaseHost> => {\n const {data} = await this.r.get<\n GenericResponse<DatabaseHost, \"database_host\">\n >(`/database-hosts/${id}`)\n return data.attributes\n }\n\n // TODO: find out why API returns 500\n create = async (\n opts: z.infer<typeof CreateDBHostSchema>\n ): Promise<void> => {\n opts = CreateDBHostSchema.parse(opts)\n await this.r.post<\n GenericResponse<DatabaseHost, \"database_host\">\n >(\"/database-hosts\", opts).catch(e=>{})\n }\n\n update = async (\n id: string,\n opts: z.infer<typeof CreateDBHostSchema>\n ): Promise<DatabaseHost> => {\n opts = CreateDBHostSchema.parse(opts)\n const {data} = await this.r.patch<\n GenericResponse<DatabaseHost, \"database_host\">\n >(`/database-hosts/${id}`, opts)\n\n return data.attributes\n }\n\n delete = async (\n id: string\n ): Promise<void> => {\n await this.r.delete(`/database-hosts/${id}`)\n }\n}\n\nconst CreateDBHostSchema = z.object({\n name: z.string().min(1).max(255),\n host: z.string(),\n port: z.number().min(1).max(65535),\n username: z.string().min(1).max(255),\n password: z.string().optional(),\n node_ids: z.array(z.string()).optional(),\n max_databases: z.number().optional()\n})","import {AxiosInstance} from \"axios\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {Role} from \"@/api/application/types/role\";\n\n\n// TODO: API is incomplete\n\nexport class Roles {\n private readonly r: AxiosInstance\n\n constructor(r: AxiosInstance) {\n this.r = r\n }\n\n list = async (\n page: number = 1\n ): Promise<Role[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Role, \"role\">>\n >(`/roles`, {\n params: {page}\n })\n return data.data.map(r => r.attributes)\n }\n\n info = async (\n id: number\n ): Promise<Role> => {\n const {data} = await this.r.get<\n GenericResponse<Role, \"role\">\n >(`/roles/${id}`)\n return data.attributes\n }\n\n create = async (\n opts: {name: string}\n ): Promise<void> => {\n await this.r.post(`/roles`, opts)\n }\n\n update = async (\n id: number,\n opts: {name: string}\n ): Promise<void> => {\n await this.r.patch(`/roles/${id}`, opts)\n }\n\n delete = async (\n id: number\n ): Promise<void> => {\n await this.r.delete(`/roles/${id}`)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {Egg} from \"@/api/application/types/egg\";\n\n// TODO: API is incomplete\n\nexport class Eggs {\n private readonly r: AxiosInstance\n\n constructor(r: AxiosInstance) {\n this.r = r\n }\n\n list = async (): Promise<Egg[]> => {\n const {data} = await this.r.get<GenericListResponse<GenericResponse<Egg, \"egg\">>>(\"/eggs\")\n return data.data.map(d => d.attributes)\n }\n\n info = async (id: number): Promise<Egg> => {\n const {data} = await this.r.get<GenericResponse<Egg, \"egg\">>(`/eggs/${id}`)\n return data.attributes\n }\n\n export = async (id: number, format: \"json\" | \"yaml\"): Promise<string> => {\n const {data} = await this.r.get<string>(`/eggs/${id}/export`, {\n params: {format},\n transformResponse: r => r\n })\n return data\n }\n}","import {AxiosInstance} from \"axios\";\nimport {Mount} from \"@/api/application/types/mount\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport z from \"zod\";\nimport {Egg} from \"@/api/application/types/egg\";\nimport {ApplicationServer} from \"@/api/application/types\";\n\nexport class Mounts {\n private readonly r: AxiosInstance\n\n constructor(r: AxiosInstance) {\n this.r = r\n }\n\n list = async (): Promise<Mount[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Mount, \"mount\">>\n >(\"/mounts\")\n return data.data.map(d => d.attributes)\n }\n\n info = async (id: number): Promise<Mount> => {\n const {data} = await this.r.get<GenericResponse<Mount, \"mount\">>(`/mounts/${id}`)\n return data.attributes\n }\n\n create = async (opts: z.infer<typeof CreateMountSchema>): Promise<Mount> => {\n opts = CreateMountSchema.parse(opts)\n const {data} = await this.r.post<GenericResponse<Mount, \"mount\">>(\"/mounts\", opts)\n return data.attributes\n }\n\n update = async (id: number, opts: z.infer<typeof CreateMountSchema>): Promise<Mount> => {\n opts = CreateMountSchema.parse(opts)\n const {data} = await this.r.patch<GenericResponse<Mount, \"mount\">>(`/mounts/${id}`, opts)\n return data.attributes\n }\n\n delete = async (id: number): Promise<void> => {\n await this.r.delete(`/mounts/${id}`)\n }\n\n listAssignedEggs = async (id: number): Promise<Egg[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Egg, \"egg\">>\n >(`/mounts/${id}/eggs`)\n return data.data.map(d => d.attributes)\n }\n\n assignEggs = async (id: number, eggs: number[]): Promise<void> => {\n await this.r.post(`/mounts/${id}/eggs`, {eggs})\n }\n\n unassignEgg = async (id: number, egg_id: number): Promise<void> => {\n await this.r.delete(`/mounts/${id}/eggs/${egg_id}`)\n }\n\n listAssignedNodes = async (id: number): Promise<Node[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Node, \"node\">>\n >(`/mounts/${id}/nodes`)\n return data.data.map(d => d.attributes)\n }\n\n assignNodes = async (id: number, nodes: number[]): Promise<void> => {\n await this.r.post(`/mounts/${id}/nodes`, {nodes})\n }\n\n unassignNode = async (id: number, node_id: number): Promise<void> => {\n await this.r.delete(`/mounts/${id}/nodes/${node_id}`)\n }\n\n listAssignedServers = async (id: number): Promise<ApplicationServer[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ApplicationServer, \"server\">>\n >(`/mounts/${id}/servers`)\n return data.data.map(d => d.attributes)\n }\n\n assignServers = async (id: number, servers: number[]): Promise<void> => {\n await this.r.post(`/mounts/${id}/servers`, {servers})\n }\n\n unassignServer = async (id: number, server_id: number): Promise<void> => {\n await this.r.delete(`/mounts/${id}/servers/${server_id}`)\n }\n}\n\n\nconst CreateMountSchema = z.object({\n name: z.string().min(1).max(255),\n description: z.string().optional(),\n source: z.string(),\n target: z.string(),\n read_only: z.boolean().optional()\n})","import {AxiosInstance} from \"axios\";\nimport {Users} from \"@/api/application/users\";\nimport {Nodes} from \"@/api/application/nodes\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {ApplicationServer} from \"@/api/application/types/server\";\nimport {CreateServerSchema, Servers} from \"@/api/application/servers\";\nimport z from \"zod\";\nimport {DatabaseHosts} from \"@/api/application/database_hosts\";\nimport {Roles} from \"@/api/application/roles\";\nimport {Eggs} from \"@/api/application/eggs\";\nimport {Mounts} from \"@/api/application/mounts\";\n\nexport class Client {\n private readonly r: AxiosInstance\n users: Users\n nodes: Nodes\n databaseHosts: DatabaseHosts\n roles: Roles\n eggs: Eggs\n mounts: Mounts\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n\n this.users = new Users(requester)\n this.nodes = new Nodes(requester)\n this.databaseHosts = new DatabaseHosts(requester)\n this.roles = new Roles(requester)\n this.eggs = new Eggs(requester)\n this.mounts = new Mounts(requester)\n }\n\n listServers = async (\n search?: string,\n page: number = 1\n ): Promise<ApplicationServer[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ApplicationServer, \"server\">>\n >(\"/servers\", {\n params: {search, page}\n })\n return data.data.map(s => s.attributes)\n }\n\n createServer = async (opts: z.infer<typeof CreateServerSchema>): Promise<ApplicationServer> => {\n opts = CreateServerSchema.parse(opts)\n const {data} = await this.r.post<GenericResponse<ApplicationServer, \"server\">>(\"/servers\", opts)\n return data.attributes\n }\n\n getServerByExternalId = async (external_id: string, include?: (\"egg\" | \"subusers\")[]): Promise<ApplicationServer> => {\n const {data} = await this.r.get<GenericResponse<ApplicationServer, \"server\">>(`/servers/external/${external_id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n servers = (server_id: number) => new Servers(this.r, server_id)\n}","import z from \"zod\"\nimport axios, {AxiosInstance, AxiosResponse} from \"axios\";\nimport {PterodactylError, PterodactylException} from \"@/api/base/types\";\n\nexport class Agent {\n private readonly base_url: string\n private readonly token: string\n readonly requester: AxiosInstance\n\n constructor(url: string, token: string, type: \"client\" | \"application\", suffix: string = \"/api\") {\n this.base_url = z.url(\"Invalid URL Schema\").transform(url => new URL(url).href).parse(url)\n this.token = z.string().regex(/^(ptl[ac]|pacc|papp)_.+$/, \"Invalid token type\").parse(token)\n\n this.requester = axios.create({\n baseURL: this.base_url.replace(/\\/+$/, \"\")+`${suffix}/${type}`,\n timeout: 3000,\n headers: {\n Authorization: `Bearer ${this.token}`\n }\n })\n\n this.requester.interceptors.response.use(undefined, (error: any)=>{\n if (error.response && error.response.status === 400) {\n return Promise.reject(new PterodactylException(\n 'Invalid request data',\n error.response.data as PterodactylError[],\n error.response.status\n ));\n }\n return Promise.reject(error);\n })\n }\n}","export type GenericResponse<T, N extends string = string, M = undefined> = {\n object: N,\n attributes: T,\n meta?: M\n}\n\ntype PaginationMeta = {\n total: number,\n count: number,\n per_page: number,\n current_page: number,\n total_pages: number,\n links: any\n}\n\nexport type GenericListResponse<T> = {\n object: \"list\",\n data: T[],\n meta?: { pagination: PaginationMeta }\n}\n\nexport type CustomListResponse<T, M> = {\n object: \"list\",\n data: T[],\n meta?: M\n}\n\n\nexport class PterodactylException extends Error {\n data: PterodactylError[]\n status: number\n\n constructor(message: string, data: PterodactylError[], status: number) {\n super(message)\n this.data = data\n this.status = status\n }\n}\n\nexport type PterodactylError = {\n code: string,\n status?: number,\n detail: string,\n source?: {\n [key: string]: string\n }\n}"],"mappings":"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","names":["z","import_zod","import_zod","z","axios","import_axios","import_zod","z","axios","import_zod","z","WebSocket","stripColor","z","import_zod","import_zod","z","z","import_zod","z","import_zod","z","import_zod","import_zod","z","z","import_zod","z","import_zod","z","Client","import_zod","import_axios","z","url","axios","Client"]}
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/api/client/account.ts","../src/api/client/client.ts","../src/api/client/server_databases.ts","../src/api/client/server_files.ts","../src/api/client/server_schedules.ts","../src/api/client/server_allocations.ts","../src/api/client/server_users.ts","../src/api/client/server_backups.ts","../src/api/client/server_startup.ts","../src/api/client/server_settings.ts","../src/api/client/server_websocket.ts","../src/api/client/server_activity.ts","../src/api/client/server.ts","../src/api/application/users.ts","../src/utils/transform.ts","../src/api/common/types/enums.ts","../src/api/application/nodes_allocations.ts","../src/api/application/nodes.ts","../src/api/application/servers.ts","../src/api/application/servers_databases.ts","../src/api/application/database_hosts.ts","../src/api/application/roles.ts","../src/api/application/eggs.ts","../src/api/application/mounts.ts","../src/api/application/client.ts","../src/api/base/request.ts","../src/api/base/types.ts","../src/index.ts"],"sourcesContent":["import {AxiosInstance} from \"axios\";\nimport {APIKey, SSHKey, User} from \"@/api/client/types/user\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport z from \"zod\";\n\n\nexport class Account {\n private readonly r: AxiosInstance\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n }\n\n info = async (): Promise<User> => {\n const {data} = await this.r.get<GenericResponse<User, \"user\">>(\"/account\")\n return data.attributes\n }\n\n updateEmail = async (newEmail: string, password: string): Promise<void> => {\n newEmail = z.email().parse(newEmail)\n await this.r.put(\"/account/email\", {email: newEmail, password})\n }\n\n updatePassword = async (newPassword: string): Promise<void> => {\n newPassword = z.string().min(8).parse(newPassword)\n await this.r.put(\"/account/password\", {\n password: newPassword,\n password_confirmation: newPassword\n })\n }\n\n apiKeys = {\n list: async (): Promise<APIKey[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<APIKey, \"api_key\">>\n >(\"/account/api-keys\")\n return data.data.map(k => k.attributes)\n },\n\n create: async (description: string, allowed_ips?: string[]): Promise<APIKey & { secret_token: string }> => {\n allowed_ips = z.array(z.ipv4()).optional().parse(allowed_ips)\n const {data} = await this.r.post<\n GenericResponse<APIKey, \"api_key\", { secret_token: string }>\n >(\"/account/api-keys\", {description, allowed_ips})\n return {...data.attributes, secret_token: data.meta!.secret_token}\n },\n\n delete: async (identifier: string): Promise<void> => {\n await this.r.delete(`/account/api-keys/${identifier}`)\n }\n }\n\n sshKeys = {\n list: async (): Promise<SSHKey[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<SSHKey, \"ssh_key\">>\n >(\"/account/ssh-keys\")\n return data.data.map(k => k.attributes)\n },\n\n create: async (name: string, public_key: string): Promise<SSHKey> => {\n const {data} = await this.r.post<\n GenericResponse<SSHKey, \"ssh_key\">\n >(\"/account/ssh-keys\", {name, public_key})\n return data.attributes\n },\n\n delete: async (fingerprint: string): Promise<void> => {\n await this.r.post(`/account/ssh-keys/remove`, {fingerprint})\n }\n }\n\n twoFactor = {\n info: async (): Promise<{ image_url_data: string }> => {\n const {data} = await this.r.get<\n Awaited<ReturnType<typeof this.twoFactor.info>>\n >(\"/account/two-factor\")\n return data\n },\n\n enable: async (code: string): Promise<{ tokens: string[] }> => {\n const {data} = await this.r.post<\n Awaited<ReturnType<typeof this.twoFactor.enable>>\n >(\"/account/two-factor\", {code})\n return data\n },\n\n disable: async (password: string): Promise<void> => {\n await this.r.delete(\"/account/two-factor\", {data: {password}})\n }\n }\n}","import {Account} from \"@/api/client/account\";\nimport {AxiosInstance} from \"axios\";\nimport {Permission} from \"@/api/client/types/user\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {Server} from \"@/api/client/types/server\";\nimport z from \"zod\";\nimport {ServerClient} from \"@/api/client/server\";\n\n\nexport class Client {\n account: Account\n\n private readonly r: AxiosInstance\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n this.account = new Account(requester)\n }\n\n listPermissions = async (): Promise<Record<string, Permission>> => {\n const {data} = await this.r.get<\n GenericResponse<{ permissions: Record<string, Permission> }, \"system_permissions\">\n >(\"/permissions\")\n\n return data.attributes.permissions\n }\n\n listServers = async (\n type: \"accessible\" | \"mine\" | \"admin\" | \"admin-all\" = \"accessible\",\n page: number = 1,\n per_page: number = 50,\n include?: (\"egg\" | \"subusers\")[],\n ): Promise<Server[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Server, \"server\">>\n >(\"/servers\", {\n params: {type, page, include: include?.join(\",\")}\n })\n return data.data.map(s => s.attributes)\n }\n\n server = (uuid: string): ServerClient => new ServerClient(this.r, uuid)\n\n}\n\n\n/*\nInclude: ?include=param1,param2\nAvail: ?param1=val1¶m2=val2\nFilters: ?filter[param1]=val1&filter[param2]=val2\nSort: ?sort=-param, param=asc, -param=desc\n*/","import {AxiosInstance} from \"axios\";\nimport z from \"zod\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {ServerDatabase} from \"@/api/common/types/server_database\";\n// TODO: Check for validity\n\nexport class ServerDatabases {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (\n include?: (\"password\")[], page: number = 1\n ): Promise<ServerDatabase[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ServerDatabase, \"server_database\">>\n >(`/servers/${this.id}/databases`, {\n params: {include: include?.join(\",\"), page}\n })\n return data.data.map(d => d.attributes)\n }\n\n create = async (database: string, remote: string): Promise<ServerDatabase> => {\n const {data} = await this.r.post<\n GenericResponse<ServerDatabase, \"server_database\">\n >(`/servers/${this.id}/databases`, {database, remote})\n return data.attributes\n }\n\n rotatePassword = async (database_id: string): Promise<ServerDatabase> => {\n const {data} = await this.r.post<\n GenericResponse<ServerDatabase, \"server_database\">\n >(`/servers/${this.id}/databases/${database_id}/rotate-password`)\n return data.attributes\n }\n\n delete = async (database_id: string): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/databases/${database_id}`)\n }\n}","import axios, {AxiosInstance} from \"axios\";\nimport {string} from \"zod\";\nimport {FileObject} from \"@/api/common/types/server_files\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\n\n\nexport class ServerFiles {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (path?: string): Promise<FileObject[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<FileObject, \"file_object\">>\n >(`/servers/${this.id}/files/list`, {\n params: {directory: path}\n })\n return data.data.map(r => r.attributes)\n }\n\n /**\n * Return the contents of a file. To read binary file (non-editable) use {@link download} instead\n */\n contents = async (path: string): Promise<string> => {\n const {data} = await this.r.get<string>(`/servers/${this.id}/files/contents`, {\n params: {file: path}\n })\n return data\n }\n\n downloadGetUrl = async (path: string): Promise<string> => {\n const {data} = await this.r.get<\n GenericResponse<{ url: string }, \"signed_url\">\n >(`/servers/${this.id}/files/download`, {\n params: {file: path}\n })\n return data.attributes.url\n }\n\n download = async (path: string): Promise<ArrayBuffer> => {\n const url = await this.downloadGetUrl(path)\n const {data} = await axios.get<ArrayBuffer>(url, {responseType: \"arraybuffer\"})\n return data\n }\n\n rename = async (\n root: string = \"/\",\n files: { from: string, to: string }[]\n ): Promise<void> => {\n await this.r.put(`/servers/${this.id}/files/rename`, {root, files})\n }\n\n copy = async (location: string): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/copy`, {location})\n }\n\n write = async (path: string, content: string): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/write`, content, {\n params: {file: path},\n })\n }\n\n compress = async (\n root: string = \"/\",\n files: string[],\n archive_name?: string,\n extension?: \"zip\" | \"tgz\" | \"tar.gz\" | \"txz\" | \"tar.xz\" | \"tbz2\" | \"tar.bz2\"\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/compress`, {root, files, archive_name, extension})\n }\n\n decompress = async (\n root: string = \"/\",\n file: string,\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/decompress`, {root, file})\n }\n\n delete = async (\n root: string = \"/\",\n files: string[],\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/delete`, {root, files})\n }\n\n createFolder = async (\n root: string = \"/\",\n name: string,\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/create-folder`, {root, name})\n }\n\n chmod = async (\n root: string = \"/\",\n files: Array<{ file: string, mode: number }>\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/chmod`, {root, files})\n }\n\n pullFromRemote = async (\n url: string,\n directory?: string,\n filename?: string, // Unused\n use_header: boolean = false, // Unused\n foreground: boolean = false // Unused\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/pull`, {url, directory, filename, use_header, foreground})\n }\n\n uploadGetUrl = async (): Promise<string> => {\n const {data} = await this.r.get<\n GenericResponse<{ url: string }, \"signed_url\">\n >(`/servers/${this.id}/files/upload`)\n return data.attributes.url\n }\n\n upload = async (file: File, root: string = \"/\"): Promise<void> => {\n const url = await this.uploadGetUrl()\n await axios.post(url, {files: file}, {\n headers: {\"Content-Type\": \"multipart/form-data\"},\n params: {directory: root}\n })\n }\n}","import {AxiosInstance} from \"axios\";\nimport {Schedule, ScheduleTask} from \"@/api/common/types/server_schedule\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {PartialBy} from \"@/utils/types\";\n\nexport class ServerSchedules {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (): Promise<Schedule[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Schedule, \"server_schedule\">>\n >(`/servers/${this.id}/schedules`)\n return data.data.map(d => d.attributes)\n }\n\n create = async (params: ScheduleCreateParams): Promise<Schedule> => {\n const {data} = await this.r.post<\n GenericResponse<Schedule, \"server_schedule\">\n >(`/servers/${this.id}/schedules`, params)\n return data.attributes\n }\n\n control = (sched_id: number) => new ScheduleControl(this.r, this.id, sched_id)\n}\n\ntype ScheduleCreateParams = {\n name: string,\n is_active?: boolean,\n only_when_online?: boolean,\n minute: string,\n hour: string,\n day_of_week: string,\n month: string,\n day_of_month: string\n}\n\nclass ScheduleControl {\n private r: AxiosInstance\n private readonly id: string\n private readonly sched_id: number\n\n constructor(requester: AxiosInstance, id: string, sched_id: number) {\n this.r = requester\n this.id = id\n this.sched_id = sched_id\n }\n\n info = async (): Promise<Schedule> => {\n const {data} = await this.r.get<\n GenericResponse<Schedule, \"server_schedule\">\n >(`/servers/${this.id}/schedules/${this.sched_id}`)\n return data.attributes\n }\n\n update = async (params: ScheduleCreateParams): Promise<Schedule> => {\n const {data} = await this.r.post<\n GenericResponse<Schedule, \"server_schedule\">\n >(`/servers/${this.id}/schedules/${this.sched_id}`, params)\n return data.attributes\n }\n\n delete = async (): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/schedules/${this.sched_id}`)\n }\n\n execute = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/schedules/${this.sched_id}/execute`)\n }\n\n tasks = {\n create: async (\n opts: PartialBy<\n Pick<ScheduleTask, \"action\" | \"payload\" | \"time_offset\" | \"sequence_id\" | \"continue_on_failure\">,\n \"payload\" | \"sequence_id\" | \"continue_on_failure\"\n >\n ): Promise<ScheduleTask> => {\n const {data} = await this.r.post<\n GenericResponse<ScheduleTask, \"server_schedule_task\">\n >(`/servers/${this.id}/schedules/${this.sched_id}/tasks`, opts)\n return data.attributes\n },\n\n update: async <T extends \"command\" | \"power\" | \"backup\" | \"delete_files\">(\n task_id: number,\n opts: PartialBy<\n Pick<ScheduleTask, \"action\" | \"payload\" | \"time_offset\" | \"sequence_id\" | \"continue_on_failure\">,\n \"payload\" | \"sequence_id\" | \"continue_on_failure\"\n >\n ): Promise<ScheduleTask> => {\n const {data} = await this.r.post<\n GenericResponse<ScheduleTask, \"server_schedule_task\">\n >(`/servers/${this.id}/schedules/${this.sched_id}/tasks/${task_id}`, opts)\n return data.attributes\n },\n\n delete: async (task_id: number): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/schedules/${this.sched_id}/tasks/${task_id}`)\n }\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {ServerAllocation} from \"@/api/client/types/server_allocation\";\n\nexport class ServerAllocations {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (): Promise<ServerAllocation[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ServerAllocation, \"allocation\">>\n >(`/servers/${this.id}/network/allocations`)\n return data.data.map(r => r.attributes)\n }\n\n autoAssign = async (): Promise<ServerAllocation> => {\n const {data} = await this.r.post<\n GenericResponse<ServerAllocation, \"allocation\">\n >(`/servers/${this.id}/network/allocations`)\n return data.attributes\n }\n\n setNotes = async (alloc_id: number, notes: string): Promise<ServerAllocation> => {\n const {data} = await this.r.post<\n GenericResponse<ServerAllocation, \"allocation\">\n >(`/servers/${this.id}/network/allocations/${alloc_id}`, {notes})\n return data.attributes\n }\n\n setPrimary = async (alloc_id: number): Promise<ServerAllocation> => {\n const {data} = await this.r.post<\n GenericResponse<ServerAllocation, \"allocation\">\n >(`/servers/${this.id}/network/allocations/${alloc_id}/primary`)\n return data.attributes\n }\n\n unassign = async (alloc_id: number): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/network/allocations/${alloc_id}`)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {ServerSubuser, SubuserPermission} from \"@/api/client/types/server_subuser\";\n\nexport class ServerUsers {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (): Promise<ServerSubuser[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ServerSubuser, \"user\">>\n >(`/servers/${this.id}/users`)\n return data.data.map(d => d.attributes)\n }\n\n create = async (email: string, permissions: SubuserPermission[] | string[]): Promise<ServerSubuser> => {\n const {data} = await this.r.post<\n GenericResponse<ServerSubuser, \"user\">\n >(`/servers/${this.id}/users`, {email, permissions})\n return data.attributes\n }\n\n info = async (user_id: number): Promise<ServerSubuser> => {\n const {data} = await this.r.get<\n GenericResponse<ServerSubuser, \"user\">\n >(`/servers/${this.id}/users/${user_id}`)\n return data.attributes\n }\n\n update = async (user_id: number, permissions: SubuserPermission[] | string[]): Promise<ServerSubuser> => {\n const {data} = await this.r.put<\n GenericResponse<ServerSubuser, \"user\">\n >(`/servers/${this.id}/users/${user_id}`, {permissions})\n return data.attributes\n }\n\n delete = async (user_id: number): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/users/${user_id}`)\n }\n\n}","import axios, {AxiosInstance} from \"axios\";\nimport {ServerBackup} from \"@/api/common/types/server_backup\";\nimport z, {string} from \"zod\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\n\n\nexport class ServerBackups {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (page: number = 1): Promise<ServerBackup[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ServerBackup, \"backup\">>\n >(`/servers/${this.id}/backups`, {\n params: {page}\n })\n\n return data.data.map(d=>d.attributes)\n }\n\n create = async (args: {\n name?: string,\n is_locked: boolean,\n ignored_files: string[],\n }): Promise<ServerBackup> => {\n args.name = z.string().max(255).optional().parse(args.name)\n const {data} = await this.r.post<\n GenericResponse<ServerBackup, \"backup\">\n >(`/servers/${this.id}/backups`, {\n name: args.name,\n is_locked: args.is_locked,\n ignored_files: args.ignored_files.join(\"\\n\")\n })\n return data.attributes\n }\n\n info = async (backup_uuid: string): Promise<ServerBackup> => {\n const {data} = await this.r.get<\n GenericResponse<ServerBackup, \"backup\">\n >(`/servers/${this.id}/backups/${backup_uuid}`)\n return data.attributes\n }\n\n downloadGetUrl = async (backup_uuid: string): Promise<string> => {\n const {data} = await this.r.get<\n GenericResponse<{ url: string }, \"signed_url\">\n >(`/servers/${this.id}/backups/${backup_uuid}/download`)\n return data.attributes.url\n }\n\n download = async (backup_uuid: string): Promise<ArrayBuffer> => {\n const url = await this.downloadGetUrl(backup_uuid)\n const {data} = await axios.get<ArrayBuffer>(url, {responseType: \"arraybuffer\"})\n return data\n }\n\n delete = async (backup_uuid: string): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/backups/${backup_uuid}`)\n }\n\n}","import {AxiosInstance} from \"axios\";\nimport {CustomListResponse, GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {StartupMeta, StartupParams} from \"@/api/common/types/server_startup\";\n\n\nexport class ServerStartup {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (): Promise<CustomListResponse<StartupParams, StartupMeta>> => {\n const {data} = await this.r.get<\n CustomListResponse<GenericResponse<StartupParams, \"egg_variable\">, StartupMeta>\n >(`/servers/${this.id}/startup`)\n\n return {\n object: \"list\",\n meta: data.meta,\n data: data.data.map(d=>d.attributes)\n }\n }\n\n set = async (key: string, value: string): Promise<StartupParams> => {\n const {data} = await this.r.put<\n GenericResponse<StartupParams, \"egg_variable\">\n >(`/servers/${this.id}/startup/variable`, {key, value})\n return data.attributes\n }\n}","import {AxiosInstance} from \"axios\";\nimport z from \"zod\";\nimport {Nullable} from \"@/utils/types\";\n\n\nexport class ServerSettings {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n rename = async (name: string): Promise<void> => {\n name = z.string().max(255).parse(name)\n await this.r.post(`/servers/${this.id}/settings/rename`, {name})\n }\n\n updateDescription = async (description: Nullable<string>): Promise<void> => {\n await this.r.post(`/servers/${this.id}/settings/description`, {description})\n }\n\n reinstall = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/settings/reinstall`)\n }\n\n changeDockerImage = async (image: string): Promise<void> => {\n await this.r.post(`/servers/${this.id}/settings/docker-image`, {image})\n }\n}","import {AxiosInstance} from \"axios\"\nimport {EventEmitter} from \"events\"\nimport WebSocket from \"isomorphic-ws\"\nimport stripColor from \"strip-color\"\nimport {\n BackupCompletedJson,\n PowerState,\n SOCKET_EVENT,\n StatsWsJson,\n WebsocketEvent\n} from \"@/api/client/types/websocket\";\nimport {ServerSignalOption} from \"@/api/common/types/server_power\";\n\nconst isBrowser = typeof window !== \"undefined\"\n\n\ntype WebsocketHandshakePayload = {\n data: {\n token: string\n socket: string\n }\n}\n\ntype SocketEventPayloadMap = {\n [SOCKET_EVENT.AUTH_SUCCESS]: undefined\n [SOCKET_EVENT.STATUS]: PowerState\n [SOCKET_EVENT.CONSOLE_OUTPUT]: string\n [SOCKET_EVENT.STATS]: StatsWsJson\n [SOCKET_EVENT.DAEMON_ERROR]: undefined\n [SOCKET_EVENT.DAEMON_MESSAGE]: string\n [SOCKET_EVENT.INSTALL_OUTPUT]: string\n [SOCKET_EVENT.INSTALL_STARTED]: undefined\n [SOCKET_EVENT.INSTALL_COMPLETED]: undefined\n [SOCKET_EVENT.TRANSFER_LOGS]: string\n [SOCKET_EVENT.TRANSFER_STATUS]: string\n [SOCKET_EVENT.BACKUP_COMPLETED]: BackupCompletedJson\n [SOCKET_EVENT.BACKUP_RESTORE_COMPLETED]: undefined\n [SOCKET_EVENT.TOKEN_EXPIRING]: undefined\n [SOCKET_EVENT.TOKEN_EXPIRED]: undefined\n [SOCKET_EVENT.JWT_ERROR]: string\n}\n\ntype Listener<E extends SOCKET_EVENT> = SocketEventPayloadMap[E] extends undefined\n ? () => void\n : (payload: SocketEventPayloadMap[E]) => void\n\ntype MessageEventLike = {data?: unknown}\n\ntype CloseEventLike = Parameters<NonNullable<WebSocket[\"onclose\"]>>[0]\n\ntype ErrorEventLike = Parameters<NonNullable<WebSocket[\"onerror\"]>>[0]\n\nconst RECONNECT_ERRORS = new Set([\n \"jwt: exp claim is invalid\",\n \"jwt: created too far in past (denylist)\",\n])\n\nconst FALLBACK_LOG_MESSAGE = \"No logs - is the server online?\"\n\nexport class ServerWebsocket {\n private readonly r: AxiosInstance\n private readonly serverId: string\n private socket?: WebSocket\n private currentToken?: string\n private readonly bus = new EventEmitter()\n private debugLogging = false\n private stripColors: boolean\n private detachMessageListener?: () => void\n\n constructor(requester: AxiosInstance, id: string, stripColors: boolean = false) {\n this.r = requester\n this.serverId = id\n this.stripColors = stripColors\n }\n\n public on<E extends SOCKET_EVENT>(event: E, listener: Listener<E>): () => void {\n const handler = listener as (...args: unknown[]) => void\n this.bus.on(event, handler)\n return () => {\n this.bus.removeListener(event, handler)\n }\n }\n\n public deregister<E extends SOCKET_EVENT>(event: E, listener: Listener<E>): void {\n const handler = listener as (...args: unknown[]) => void\n this.bus.removeListener(event, handler)\n }\n\n private emit<E extends SOCKET_EVENT>(event: E, ...args: SocketEventPayloadMap[E] extends undefined ? [] : [SocketEventPayloadMap[E]]): void {\n if (args.length === 0) {\n this.bus.emit(event)\n } else {\n this.bus.emit(event, args[0])\n }\n }\n\n public async connect(resumable?: boolean, debugLogging?: boolean): Promise<void> {\n this.debugLogging = debugLogging ?? false\n\n if (this.socket) {\n return\n }\n\n const socketUrl = await this.refreshCredentials()\n\n this.socket = isBrowser\n ? new WebSocket(socketUrl)\n : new WebSocket(socketUrl, undefined, {origin: new URL(socketUrl).origin})\n\n await new Promise<void>((resolve, reject) => {\n const socket = this.socket\n if (!socket) {\n reject(new Error(\"Failed to create socket connection\"))\n return\n }\n\n socket.onopen = async () => {\n try {\n await this.authenticate()\n this.attachMessageListener()\n socket.onopen = null\n socket.onerror = null\n resolve()\n } catch (error) {\n socket.onopen = null\n socket.onerror = null\n reject(error instanceof Error ? error : new Error(\"Websocket authentication failed\"))\n }\n }\n\n socket.onerror = (event: ErrorEventLike) => {\n socket.onopen = null\n socket.onerror = null\n reject(event instanceof Error ? event : new Error(\"Websocket connection error\"))\n }\n })\n\n if (resumable) {\n this.makeResumable(true)\n }\n }\n\n public onSocketDisconnect(handler: (event: CloseEventLike) => void): void {\n if (!this.socket) {\n console.error(new Error(\"No socket connection\"))\n return\n }\n\n this.socket.onclose = handler\n }\n\n public onSocketError(handler: (event: ErrorEventLike) => void): void {\n if (!this.socket) {\n console.error(new Error(\"No socket connection\"))\n return\n }\n\n this.socket.onerror = handler\n }\n\n public makeResumable(disconnectsToo: boolean): void {\n const scheduleReconnect = () => {\n setTimeout(() => {\n const previous = this.socket\n this.detachMessageListener?.()\n this.detachMessageListener = undefined\n this.socket = undefined\n previous?.close()\n void this.connect(true, this.debugLogging)\n }, 1000)\n }\n\n this.onSocketError(() => scheduleReconnect())\n\n if (disconnectsToo) {\n this.onSocketDisconnect(() => scheduleReconnect())\n }\n }\n\n private attachMessageListener(): void {\n if (!this.socket) {\n throw new Error(\"No socket connection\")\n }\n\n this.detachMessageListener?.()\n\n const handler = (event: unknown) => {\n void this.handleIncomingMessage(event)\n }\n\n if (typeof this.socket.addEventListener === \"function\") {\n this.socket.addEventListener(\"message\", handler as (event: MessageEventLike) => void)\n this.detachMessageListener = () => {\n this.socket?.removeEventListener?.(\"message\", handler as (event: MessageEventLike) => void)\n }\n } else {\n const fallback = (data: unknown) => handler({data} satisfies MessageEventLike)\n const socket = this.socket as unknown as {\n on?: (event: string, listener: (data: unknown) => void) => void\n off?: (event: string, listener: (data: unknown) => void) => void\n removeListener?: (event: string, listener: (data: unknown) => void) => void\n }\n\n socket.on?.(\"message\", fallback)\n this.detachMessageListener = () => {\n const target = this.socket as unknown as typeof socket | undefined\n if (!target) {\n return\n }\n\n if (typeof target.off === \"function\") {\n target.off(\"message\", fallback)\n } else if (typeof target.removeListener === \"function\") {\n target.removeListener(\"message\", fallback)\n }\n }\n }\n }\n\n private async handleIncomingMessage(event: unknown): Promise<void> {\n const message = this.parseMessage(event)\n if (!message) {\n return\n }\n\n try {\n await this.dispatchMessage(message)\n } catch (error) {\n if (this.debugLogging) {\n console.error(\"Error while handling websocket message\", error)\n }\n }\n }\n\n private parseMessage(event: unknown): WebsocketEvent | null {\n const payload = this.normalisePayload(event)\n if (!payload) {\n return null\n }\n\n try {\n return JSON.parse(payload) as WebsocketEvent\n } catch (error) {\n if (this.debugLogging) {\n console.warn(\"Failed to parse websocket payload\", error)\n }\n return null\n }\n }\n\n private normalisePayload(event: unknown): string | null {\n if (typeof event === \"string\") {\n return event\n }\n\n if (typeof event === \"object\" && event !== null && \"data\" in event) {\n return this.normalisePayload((event as MessageEventLike).data)\n }\n\n if (typeof Buffer !== \"undefined\" && Buffer.isBuffer(event)) {\n return event.toString(\"utf8\")\n }\n\n if (typeof ArrayBuffer !== \"undefined\" && event instanceof ArrayBuffer) {\n if (typeof TextDecoder !== \"undefined\") {\n return new TextDecoder().decode(new Uint8Array(event))\n }\n\n if (typeof Buffer !== \"undefined\") {\n return Buffer.from(event).toString(\"utf8\")\n }\n }\n\n return null\n }\n\n private async dispatchMessage(message: WebsocketEvent): Promise<void> {\n switch (message.event) {\n case SOCKET_EVENT.AUTH_SUCCESS: {\n if (this.debugLogging) {\n console.debug(\"Auth success\")\n }\n this.emit(SOCKET_EVENT.AUTH_SUCCESS)\n break\n }\n case SOCKET_EVENT.STATUS: {\n if (this.debugLogging) {\n console.debug(\"Received status event\", message.args[0])\n }\n this.emit(SOCKET_EVENT.STATUS, message.args[0])\n break\n }\n case SOCKET_EVENT.CONSOLE_OUTPUT: {\n let output = message.args[0]\n if (this.stripColors) {\n output = stripColor(output)\n }\n if (this.debugLogging) {\n console.debug(\"Received console output\", output)\n }\n this.emit(SOCKET_EVENT.CONSOLE_OUTPUT, output)\n break\n }\n case SOCKET_EVENT.STATS: {\n try {\n const payload = JSON.parse(message.args[0]) as StatsWsJson\n this.emit(SOCKET_EVENT.STATS, payload)\n } catch (error) {\n if (this.debugLogging) {\n console.warn(\"Failed to parse stats payload\", error)\n }\n }\n break\n }\n case SOCKET_EVENT.DAEMON_ERROR: {\n this.emit(SOCKET_EVENT.DAEMON_ERROR)\n break\n }\n case SOCKET_EVENT.BACKUP_COMPLETED: {\n try {\n const payload = JSON.parse(message.args[0]) as BackupCompletedJson\n this.emit(SOCKET_EVENT.BACKUP_COMPLETED, payload)\n } catch (error) {\n if (this.debugLogging) {\n console.warn(\"Failed to parse backup payload\", error)\n }\n }\n break\n }\n case SOCKET_EVENT.DAEMON_MESSAGE: {\n let output = message.args[0]\n if (this.stripColors) {\n output = stripColor(output)\n }\n this.emit(SOCKET_EVENT.DAEMON_MESSAGE, output)\n break\n }\n case SOCKET_EVENT.INSTALL_OUTPUT: {\n let output = message.args[0]\n if (this.stripColors) {\n output = stripColor(output)\n }\n this.emit(SOCKET_EVENT.INSTALL_OUTPUT, output)\n break\n }\n case SOCKET_EVENT.BACKUP_RESTORE_COMPLETED: {\n this.emit(SOCKET_EVENT.BACKUP_RESTORE_COMPLETED)\n break\n }\n case SOCKET_EVENT.INSTALL_COMPLETED: {\n this.emit(SOCKET_EVENT.INSTALL_COMPLETED)\n break\n }\n case SOCKET_EVENT.INSTALL_STARTED: {\n this.emit(SOCKET_EVENT.INSTALL_STARTED)\n break\n }\n case SOCKET_EVENT.TRANSFER_LOGS: {\n this.emit(SOCKET_EVENT.TRANSFER_LOGS, message.args[0])\n break\n }\n case SOCKET_EVENT.TRANSFER_STATUS: {\n this.emit(SOCKET_EVENT.TRANSFER_STATUS, message.args[0])\n break\n }\n case SOCKET_EVENT.TOKEN_EXPIRING: {\n this.emit(SOCKET_EVENT.TOKEN_EXPIRING)\n if (this.debugLogging) {\n console.warn(\"Token expiring, renewing...\")\n }\n await this.refreshCredentials()\n await this.authenticate()\n break\n }\n case SOCKET_EVENT.TOKEN_EXPIRED: {\n this.emit(SOCKET_EVENT.TOKEN_EXPIRED)\n throw new Error(\"Token expired\")\n }\n case SOCKET_EVENT.JWT_ERROR: {\n const reason = message.args[0]\n if (RECONNECT_ERRORS.has(reason)) {\n this.emit(SOCKET_EVENT.TOKEN_EXPIRING)\n if (this.debugLogging) {\n console.warn(\"Token expiring (JWT error), renewing...\")\n }\n await this.refreshCredentials()\n await this.authenticate()\n } else {\n this.emit(SOCKET_EVENT.JWT_ERROR, reason)\n throw new Error(\"Token expired\")\n }\n break\n }\n default: {\n if (this.debugLogging) {\n console.warn(\"Unknown websocket event\", message)\n }\n break\n }\n }\n }\n\n private async refreshCredentials(): Promise<string> {\n const {data} = await this.r.get<WebsocketHandshakePayload>(`/servers/${this.serverId}/websocket`)\n this.currentToken = data.data.token\n return data.data.socket\n }\n\n private async authenticate(): Promise<void> {\n if (!this.socket) {\n throw new Error(\"No socket connection\")\n }\n\n if (!this.currentToken) {\n throw new Error(\"Missing websocket token\")\n }\n\n this.socket.send(JSON.stringify({event: \"auth\", args: [this.currentToken]}))\n }\n\n public disconnect(): void {\n this.detachMessageListener?.()\n this.detachMessageListener = undefined\n if (this.socket) {\n this.socket.close()\n this.socket = undefined\n }\n }\n\n public requestStats(): void {\n this.send(\"send stats\", [null])\n }\n\n public requestLogs(): void {\n this.send(\"send logs\", [null])\n }\n\n private send(event: string, args: unknown[]): void {\n if (!this.socket) {\n if (this.debugLogging) {\n console.warn(`Attempted to send \"${event}\" without an active websocket connection`)\n }\n return\n }\n\n this.socket.send(JSON.stringify({event, args}))\n }\n\n public getStats(): Promise<StatsWsJson> {\n return new Promise((resolve, reject) => {\n if (!this.socket) {\n reject(new Error(\"No socket connection\"))\n return\n }\n\n let off: (() => void) | undefined\n const timeout = setTimeout(() => {\n off?.()\n reject(new Error(\"Timed out waiting for stats\"))\n }, 5000)\n\n off = this.on(SOCKET_EVENT.STATS, (payload) => {\n clearTimeout(timeout)\n off?.()\n resolve(payload)\n })\n\n this.requestStats()\n })\n }\n\n public getLogs(): Promise<string[]> {\n return new Promise((resolve, reject) => {\n if (!this.socket) {\n reject(new Error(\"No socket connection\"))\n return\n }\n\n const lines: string[] = []\n let off: (() => void) | undefined\n let initialTimeout: ReturnType<typeof setTimeout> | undefined\n let idleTimeout: ReturnType<typeof setTimeout> | undefined\n\n const finalize = (payload: string[]) => {\n off?.()\n if (initialTimeout) {\n clearTimeout(initialTimeout)\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout)\n }\n resolve(payload)\n }\n\n initialTimeout = setTimeout(() => {\n finalize(lines.length > 0 ? lines : [FALLBACK_LOG_MESSAGE])\n }, 5000)\n\n off = this.on(SOCKET_EVENT.CONSOLE_OUTPUT, (line) => {\n lines.push(line)\n if (initialTimeout) {\n clearTimeout(initialTimeout)\n initialTimeout = undefined\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout)\n }\n idleTimeout = setTimeout(() => {\n finalize(lines)\n }, 1000)\n })\n\n this.requestLogs()\n })\n }\n\n public sendPoweraction(action: ServerSignalOption): void {\n this.send(\"set state\", [action])\n }\n\n public sendCommand(cmd: string): void {\n this.send(\"send command\", [cmd])\n }\n}\n","import {AxiosInstance} from \"axios\";\nimport {ServerActivityLog} from \"@/api/client/types/server\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\n\nexport class ServerActivity {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(r: AxiosInstance, id: string) {\n this.r = r\n this.id = id\n }\n\n list = async (\n page: number = 1,\n per_page: number = 25,\n ): Promise<ServerActivityLog[]> => {\n const {data} = await this.r.get<GenericListResponse<GenericResponse<ServerActivityLog, \"activity_log\">>>(`/server/${this.id}/activity`, {\n params: {\n page,\n per_page,\n },\n })\n return data.data.map(log => log.attributes)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericResponse} from \"@/api/base/types\";\nimport {Server, ServerStats} from \"@/api/client/types/server\";\nimport {ServerDatabases} from \"@/api/client/server_databases\";\nimport {ServerFiles} from \"@/api/client/server_files\";\nimport {ServerSchedules} from \"@/api/client/server_schedules\";\nimport {ServerAllocations} from \"@/api/client/server_allocations\";\nimport {ServerUsers} from \"@/api/client/server_users\";\nimport {ServerBackups} from \"@/api/client/server_backups\";\nimport {ServerStartup} from \"@/api/client/server_startup\";\nimport {ServerSettings} from \"@/api/client/server_settings\";\nimport {ServerWebsocket} from \"@/api/client/server_websocket\";\nimport {ServerActivity} from \"@/api/client/server_activity\";\n\n\nexport class ServerClient {\n private readonly r: AxiosInstance\n private readonly id: string\n\n activity: ServerActivity\n databases: ServerDatabases\n files: ServerFiles\n schedules: ServerSchedules\n allocations: ServerAllocations\n users: ServerUsers\n backups: ServerBackups\n startup: ServerStartup\n variables: ServerStartup\n settings: ServerSettings\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n\n this.activity = new ServerActivity(requester, id)\n this.databases = new ServerDatabases(requester, id)\n this.files = new ServerFiles(requester, id)\n this.schedules = new ServerSchedules(requester, id)\n this.allocations = new ServerAllocations(requester, id)\n this.users = new ServerUsers(requester, id)\n this.backups = new ServerBackups(requester, id)\n this.startup = new ServerStartup(requester, id)\n this.variables = this.startup // preferable\n this.settings = new ServerSettings(requester, id)\n }\n\n info = async (include?: (\"egg\" | \"subusers\")[]): Promise<Server> => {\n const {data} = await this.r.get<GenericResponse<Server, \"server\">>(`/servers/${this.id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n websocket = (stripColors: boolean = false): ServerWebsocket => {\n return new ServerWebsocket(this.r, this.id, stripColors)\n }\n\n resources = async (): Promise<ServerStats> => {\n const {data} = await this.r.get<GenericResponse<ServerStats, \"stats\">>(`/servers/${this.id}/resources`)\n return data.attributes\n }\n\n command = async (command: string): Promise<void> => {\n await this.r.post(`/servers/${this.id}/command`, {command})\n }\n\n power = async (signal: \"start\" | \"stop\" | \"restart\" | \"kill\"): Promise<void> => {\n await this.r.post(`/servers/${this.id}/power`, {signal})\n }\n}","import {AxiosInstance} from \"axios\";\nimport z from \"zod\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {ApplicationUser} from \"@/api/application/types/user\";\nimport {ArrayQueryParams, SortParam} from \"@/utils/transform\";\nimport {ExactlyOneKey} from \"@/utils/types\";\nimport {languagesSchema, timezonesSchema} from \"@/api/common/types/enums\";\n\n\nexport class Users {\n private readonly r: AxiosInstance\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n }\n\n list = async (\n opts: ListType,\n page: number = 1\n ): Promise<ApplicationUser[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ApplicationUser, \"user\">>\n >(\"/users\", {\n params: {\n include: opts.include?.join(\",\"),\n page,\n ...ArrayQueryParams({filters: opts.filters || {}}),\n sort: opts.sort?.id\n ? SortParam(\"id\", opts.sort?.id)\n : SortParam(\"uuid\", opts.sort?.uuid!)\n }\n })\n\n return data.data.map(d => d.attributes)\n }\n\n info = async (\n id: number,\n {include}: { include?: (\"servers\")[] }\n ): Promise<ApplicationUser> => {\n z.number().positive().parse(id)\n const {data} = await this.r.get<\n GenericResponse<ApplicationUser, \"user\">\n >(`/users/${id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n infoByExternal = async (\n external_id: string,\n {include}: { include?: (\"servers\")[] }\n ): Promise<ApplicationUser> => {\n const {data} = await this.r.get<\n GenericResponse<ApplicationUser, \"user\">\n >(`/users/external/${external_id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n create = async (user: z.infer<typeof CreateSchema>): Promise<ApplicationUser> => {\n user = CreateSchema.parse(user)\n const {data} = await this.r.post<\n GenericResponse<ApplicationUser, \"user\">\n >(\"/users\", user)\n return data.attributes\n }\n\n update = async (id: number, user: z.infer<typeof CreateSchema>): Promise<ApplicationUser> => {\n user = CreateSchema.parse(user)\n const {data} = await this.r.patch<\n GenericResponse<ApplicationUser, \"user\">\n >(`/users/${id}`, user)\n return data.attributes\n }\n\n delete = async (id: number): Promise<void> => {\n z.number().positive().parse(id)\n await this.r.delete(`/users/${id}`)\n }\n\n addRoles = async (id: number, roles: number[]): Promise<void> => {\n z.number().positive().parse(id)\n await this.r.patch(`/users/${id}/roles/assign`, {roles})\n }\n\n removeRoles = async (id: number, roles: number[]): Promise<void> => {\n z.number().positive().parse(id)\n await this.r.patch(`/users/${id}/roles/remove`, {roles})\n }\n}\n\ntype ListType = {\n include?: (\"servers\")[],\n filters?: ListFilters,\n sort?: ListSort\n}\ntype ListFilters = {\n [key in \"email\" | \"uuid\" | \"username\" | \"external_id\"]: string;\n};\n\ntype ListSort = ExactlyOneKey<\"id\" | \"uuid\", \"asc\" | \"desc\">\n\nconst CreateSchema = z.object({\n email: z.email(),\n external_id: z.string().max(255).optional(),\n username: z.string().min(1).max(255),\n password: z.string().optional(),\n language: languagesSchema,\n timezone: timezonesSchema\n})","import {string} from \"zod\";\n\n\nexport const ArrayQueryParams = (p: {\n [key: string]: {\n [key: string]: string\n }\n}): {\n [key: string]: string\n} => {\n const params = new URLSearchParams()\n\n const o: ReturnType<typeof ArrayQueryParams> = {}\n\n for (const [param, value] of Object.entries(p)) {\n for (const [key, val] of Object.entries(value)) {\n o[`${param}[${key}]`] = val\n }\n }\n\n return o\n}\n\nexport const SortParam = (key: string, p: \"asc\" | \"desc\"): string => {\n return `${p===\"desc\" ? \"-\" : \"\"}${key}`\n}","import z from \"zod\";\n\nexport const languagesSchema = z.enum([\n \"af\", \"ak\", \"am\", \"ar\", \"as\", \"az\", \"be\", \"bg\", \"bm\", \"bn\", \"bo\", \"br\", \"bs\", \"ca\", \"ce\", \"cs\", \"cv\", \"cy\",\n \"da\", \"de\", \"dz\", \"ee\", \"el\", \"en\", \"eo\", \"es\", \"et\", \"eu\", \"fa\", \"ff\", \"fi\", \"fo\", \"fr\", \"fy\", \"ga\", \"gd\",\n \"gl\", \"gu\", \"gv\", \"ha\", \"he\", \"hi\", \"hr\", \"hu\", \"hy\", \"ia\", \"id\", \"ig\", \"ii\", \"is\", \"it\", \"ja\", \"jv\", \"ka\",\n \"ki\", \"kk\", \"kl\", \"km\", \"kn\", \"ko\", \"ks\", \"ku\", \"kw\", \"ky\", \"lb\", \"lg\", \"ln\", \"lo\", \"lt\", \"lu\", \"lv\", \"mg\",\n \"mi\", \"mk\", \"ml\", \"mn\", \"mr\", \"ms\", \"mt\", \"my\", \"nb\", \"nd\", \"ne\", \"nl\", \"nn\", \"no\", \"om\", \"or\", \"os\", \"pa\",\n \"pl\", \"ps\", \"pt\", \"qu\", \"rm\", \"rn\", \"ro\", \"ru\", \"rw\", \"sa\", \"sc\", \"sd\", \"se\", \"sg\", \"si\", \"sk\", \"sl\", \"sn\",\n \"so\", \"sq\", \"sr\", \"su\", \"sv\", \"sw\", \"ta\", \"te\", \"tg\", \"th\", \"ti\", \"tk\", \"to\", \"tr\", \"tt\", \"ug\", \"uk\", \"ur\",\n \"uz\", \"vi\", \"wo\", \"xh\", \"yi\", \"yo\", \"zh\", \"zu\"\n])\n\nexport type LanguagesType = z.infer<typeof languagesSchema>\n\n// Questionable choices at their finest\nexport const timezonesSchema = z.enum([\n \"Africa/Abidjan\", \"Africa/Accra\", \"Africa/Addis_Ababa\", \"Africa/Algiers\", \"Africa/Asmara\", \"Africa/Bamako\", \"Africa/Bangui\", \"Africa/Banjul\", \"Africa/Bissau\", \"Africa/Blantyre\", \"Africa/Brazzaville\", \"Africa/Bujumbura\", \"Africa/Cairo\", \"Africa/Casablanca\", \"Africa/Ceuta\", \"Africa/Conakry\", \"Africa/Dakar\", \"Africa/Dar_es_Salaam\", \"Africa/Djibouti\", \"Africa/Douala\", \"Africa/El_Aaiun\", \"Africa/Freetown\", \"Africa/Gaborone\", \"Africa/Harare\", \"Africa/Johannesburg\", \"Africa/Juba\", \"Africa/Kampala\", \"Africa/Khartoum\", \"Africa/Kigali\", \"Africa/Kinshasa\", \"Africa/Lagos\", \"Africa/Libreville\", \"Africa/Lome\", \"Africa/Luanda\", \"Africa/Lubumbashi\", \"Africa/Lusaka\", \"Africa/Malabo\", \"Africa/Maputo\", \"Africa/Maseru\", \"Africa/Mbabane\", \"Africa/Mogadishu\", \"Africa/Monrovia\", \"Africa/Nairobi\", \"Africa/Ndjamena\", \"Africa/Niamey\", \"Africa/Nouakchott\", \"Africa/Ouagadougou\", \"Africa/Porto-Novo\", \"Africa/Sao_Tome\", \"Africa/Tripoli\", \"Africa/Tunis\", \"Africa/Windhoek\", \"America/Adak\", \"America/Anchorage\", \"America/Anguilla\", \"America/Antigua\", \"America/Araguaina\", \"America/Argentina/Buenos_Aires\", \"America/Argentina/Catamarca\", \"America/Argentina/Cordoba\", \"America/Argentina/Jujuy\", \"America/Argentina/La_Rioja\", \"America/Argentina/Mendoza\", \"America/Argentina/Rio_Gallegos\", \"America/Argentina/Salta\", \"America/Argentina/San_Juan\", \"America/Argentina/San_Luis\", \"America/Argentina/Tucuman\", \"America/Argentina/Ushuaia\", \"America/Aruba\", \"America/Asuncion\", \"America/Atikokan\", \"America/Bahia\", \"America/Bahia_Banderas\", \"America/Barbados\", \"America/Belem\", \"America/Belize\", \"America/Blanc-Sablon\", \"America/Boa_Vista\", \"America/Bogota\", \"America/Boise\", \"America/Cambridge_Bay\", \"America/Campo_Grande\", \"America/Cancun\", \"America/Caracas\", \"America/Cayenne\", \"America/Cayman\", \"America/Chicago\", \"America/Chihuahua\", \"America/Ciudad_Juarez\", \"America/Costa_Rica\", \"America/Coyhaique\", \"America/Creston\", \"America/Cuiaba\", \"America/Curacao\", \"America/Danmarkshavn\", \"America/Dawson\", \"America/Dawson_Creek\", \"America/Denver\", \"America/Detroit\", \"America/Dominica\", \"America/Edmonton\", \"America/Eirunepe\", \"America/El_Salvador\", \"America/Fort_Nelson\", \"America/Fortaleza\", \"America/Glace_Bay\", \"America/Goose_Bay\", \"America/Grand_Turk\", \"America/Grenada\", \"America/Guadeloupe\", \"America/Guatemala\", \"America/Guayaquil\", \"America/Guyana\", \"America/Halifax\", \"America/Havana\", \"America/Hermosillo\", \"America/Indiana/Indianapolis\", \"America/Indiana/Knox\", \"America/Indiana/Marengo\", \"America/Indiana/Petersburg\", \"America/Indiana/Tell_City\", \"America/Indiana/Vevay\", \"America/Indiana/Vincennes\", \"America/Indiana/Winamac\", \"America/Inuvik\", \"America/Iqaluit\", \"America/Jamaica\", \"America/Juneau\", \"America/Kentucky/Louisville\", \"America/Kentucky/Monticello\", \"America/Kralendijk\", \"America/La_Paz\", \"America/Lima\", \"America/Los_Angeles\", \"America/Lower_Princes\", \"America/Maceio\", \"America/Managua\", \"America/Manaus\", \"America/Marigot\", \"America/Martinique\", \"America/Matamoros\", \"America/Mazatlan\", \"America/Menominee\", \"America/Merida\", \"America/Metlakatla\", \"America/Mexico_City\", \"America/Miquelon\", \"America/Moncton\", \"America/Monterrey\", \"America/Montevideo\", \"America/Montserrat\", \"America/Nassau\", \"America/New_York\", \"America/Nome\", \"America/Noronha\", \"America/North_Dakota/Beulah\", \"America/North_Dakota/Center\", \"America/North_Dakota/New_Salem\", \"America/Nuuk\", \"America/Ojinaga\", \"America/Panama\", \"America/Paramaribo\", \"America/Phoenix\", \"America/Port-au-Prince\", \"America/Port_of_Spain\", \"America/Porto_Velho\", \"America/Puerto_Rico\", \"America/Punta_Arenas\", \"America/Rankin_Inlet\", \"America/Recife\", \"America/Regina\", \"America/Resolute\", \"America/Rio_Branco\", \"America/Santarem\", \"America/Santiago\", \"America/Santo_Domingo\", \"America/Sao_Paulo\", \"America/Scoresbysund\", \"America/Sitka\", \"America/St_Barthelemy\", \"America/St_Johns\", \"America/St_Kitts\", \"America/St_Lucia\", \"America/St_Thomas\", \"America/St_Vincent\", \"America/Swift_Current\", \"America/Tegucigalpa\", \"America/Thule\", \"America/Tijuana\", \"America/Toronto\", \"America/Tortola\", \"America/Vancouver\", \"America/Whitehorse\", \"America/Winnipeg\", \"America/Yakutat\", \"Antarctica/Casey\", \"Antarctica/Davis\", \"Antarctica/DumontDUrville\", \"Antarctica/Macquarie\", \"Antarctica/Mawson\", \"Antarctica/McMurdo\", \"Antarctica/Palmer\", \"Antarctica/Rothera\", \"Antarctica/Syowa\", \"Antarctica/Troll\", \"Antarctica/Vostok\", \"Arctic/Longyearbyen\", \"Asia/Aden\", \"Asia/Almaty\", \"Asia/Amman\", \"Asia/Anadyr\", \"Asia/Aqtau\", \"Asia/Aqtobe\", \"Asia/Ashgabat\", \"Asia/Atyrau\", \"Asia/Baghdad\", \"Asia/Bahrain\", \"Asia/Baku\", \"Asia/Bangkok\", \"Asia/Barnaul\", \"Asia/Beirut\", \"Asia/Bishkek\", \"Asia/Brunei\", \"Asia/Chita\", \"Asia/Colombo\", \"Asia/Damascus\", \"Asia/Dhaka\", \"Asia/Dili\", \"Asia/Dubai\", \"Asia/Dushanbe\", \"Asia/Famagusta\", \"Asia/Gaza\", \"Asia/Hebron\", \"Asia/Ho_Chi_Minh\", \"Asia/Hong_Kong\", \"Asia/Hovd\", \"Asia/Irkutsk\", \"Asia/Jakarta\", \"Asia/Jayapura\", \"Asia/Jerusalem\", \"Asia/Kabul\", \"Asia/Kamchatka\", \"Asia/Karachi\", \"Asia/Kathmandu\", \"Asia/Khandyga\", \"Asia/Kolkata\", \"Asia/Krasnoyarsk\", \"Asia/Kuala_Lumpur\", \"Asia/Kuching\", \"Asia/Kuwait\", \"Asia/Macau\", \"Asia/Magadan\", \"Asia/Makassar\", \"Asia/Manila\", \"Asia/Muscat\", \"Asia/Nicosia\", \"Asia/Novokuznetsk\", \"Asia/Novosibirsk\", \"Asia/Omsk\", \"Asia/Oral\", \"Asia/Phnom_Penh\", \"Asia/Pontianak\", \"Asia/Pyongyang\", \"Asia/Qatar\", \"Asia/Qostanay\", \"Asia/Qyzylorda\", \"Asia/Riyadh\", \"Asia/Sakhalin\", \"Asia/Samarkand\", \"Asia/Seoul\", \"Asia/Shanghai\", \"Asia/Singapore\", \"Asia/Srednekolymsk\", \"Asia/Taipei\", \"Asia/Tashkent\", \"Asia/Tbilisi\", \"Asia/Tehran\", \"Asia/Thimphu\", \"Asia/Tokyo\", \"Asia/Tomsk\", \"Asia/Ulaanbaatar\", \"Asia/Urumqi\", \"Asia/Ust-Nera\", \"Asia/Vientiane\", \"Asia/Vladivostok\", \"Asia/Yakutsk\", \"Asia/Yangon\", \"Asia/Yekaterinburg\", \"Asia/Yerevan\", \"Atlantic/Azores\", \"Atlantic/Bermuda\", \"Atlantic/Canary\", \"Atlantic/Cape_Verde\", \"Atlantic/Faroe\", \"Atlantic/Madeira\", \"Atlantic/Reykjavik\", \"Atlantic/South_Georgia\", \"Atlantic/St_Helena\", \"Atlantic/Stanley\", \"Australia/Adelaide\", \"Australia/Brisbane\", \"Australia/Broken_Hill\", \"Australia/Darwin\", \"Australia/Eucla\", \"Australia/Hobart\", \"Australia/Lindeman\", \"Australia/Lord_Howe\", \"Australia/Melbourne\", \"Australia/Perth\", \"Australia/Sydney\", \"Europe/Amsterdam\", \"Europe/Andorra\", \"Europe/Astrakhan\", \"Europe/Athens\", \"Europe/Belgrade\", \"Europe/Berlin\", \"Europe/Bratislava\", \"Europe/Brussels\", \"Europe/Bucharest\", \"Europe/Budapest\", \"Europe/Busingen\", \"Europe/Chisinau\", \"Europe/Copenhagen\", \"Europe/Dublin\", \"Europe/Gibraltar\", \"Europe/Guernsey\", \"Europe/Helsinki\", \"Europe/Isle_of_Man\", \"Europe/Istanbul\", \"Europe/Jersey\", \"Europe/Kaliningrad\", \"Europe/Kirov\", \"Europe/Kyiv\", \"Europe/Lisbon\", \"Europe/Ljubljana\", \"Europe/London\", \"Europe/Luxembourg\", \"Europe/Madrid\", \"Europe/Malta\", \"Europe/Mariehamn\", \"Europe/Minsk\", \"Europe/Monaco\", \"Europe/Moscow\", \"Europe/Oslo\", \"Europe/Paris\", \"Europe/Podgorica\", \"Europe/Prague\", \"Europe/Riga\", \"Europe/Rome\", \"Europe/Samara\", \"Europe/San_Marino\", \"Europe/Sarajevo\", \"Europe/Saratov\", \"Europe/Simferopol\", \"Europe/Skopje\", \"Europe/Sofia\", \"Europe/Stockholm\", \"Europe/Tallinn\", \"Europe/Tirane\", \"Europe/Ulyanovsk\", \"Europe/Vaduz\", \"Europe/Vatican\", \"Europe/Vienna\", \"Europe/Vilnius\", \"Europe/Volgograd\", \"Europe/Warsaw\", \"Europe/Zagreb\", \"Europe/Zurich\", \"Indian/Antananarivo\", \"Indian/Chagos\", \"Indian/Christmas\", \"Indian/Cocos\", \"Indian/Comoro\", \"Indian/Kerguelen\", \"Indian/Mahe\", \"Indian/Maldives\", \"Indian/Mauritius\", \"Indian/Mayotte\", \"Indian/Reunion\", \"Pacific/Apia\", \"Pacific/Auckland\", \"Pacific/Bougainville\", \"Pacific/Chatham\", \"Pacific/Chuuk\", \"Pacific/Easter\", \"Pacific/Efate\", \"Pacific/Fakaofo\", \"Pacific/Fiji\", \"Pacific/Funafuti\", \"Pacific/Galapagos\", \"Pacific/Gambier\", \"Pacific/Guadalcanal\", \"Pacific/Guam\", \"Pacific/Honolulu\", \"Pacific/Kanton\", \"Pacific/Kiritimati\", \"Pacific/Kosrae\", \"Pacific/Kwajalein\", \"Pacific/Majuro\", \"Pacific/Marquesas\", \"Pacific/Midway\", \"Pacific/Nauru\", \"Pacific/Niue\", \"Pacific/Norfolk\", \"Pacific/Noumea\", \"Pacific/Pago_Pago\", \"Pacific/Palau\", \"Pacific/Pitcairn\", \"Pacific/Pohnpei\", \"Pacific/Port_Moresby\", \"Pacific/Rarotonga\", \"Pacific/Saipan\", \"Pacific/Tahiti\", \"Pacific/Tarawa\", \"Pacific/Tongatapu\", \"Pacific/Wake\", \"Pacific/Wallis\", \"UTC\"\n])\n\nexport type TimezonesType = z.infer<typeof timezonesSchema>","import {AxiosInstance} from \"axios\";\nimport {Allocation, AllocationRel} from \"@/api/application/types/server_allocation\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport z from \"zod\";\n\n\nexport class NodesAllocations {\n private readonly r: AxiosInstance\n private readonly id: number\n\n constructor(requester: AxiosInstance, id: number) {\n this.r = requester\n this.id = id\n }\n\n list = async (include?: (\"node\" | \"server\")[]): Promise<AllocationRel[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<AllocationRel, \"allocation\">>\n >(`/nodes/${this.id}/allocations`, {\n params: {include: include?.join(\",\")}\n })\n\n return data.data.map(d => d.attributes)\n }\n\n create = async (\n ip: string,\n ports: string[],\n alias?: string\n ): Promise<void> => {\n z.ipv4().parse(ip)\n z.ipv4().or(z.url().max(255)).optional().parse(alias)\n z.array(z.number()).or(z.string().regex(/\\d+-\\d+/)).parse(ports)\n\n await this.r.post(`/nodes/${this.id}/allocations`, {\n ip, ports, alias\n })\n }\n\n delete = async (alloc_id: number): Promise<void> => {\n await this.r.delete(`/nodes/${this.id}/allocations/${alloc_id}`)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {NodesAllocations} from \"@/api/application/nodes_allocations\";\nimport {ApplicationServer} from \"@/api/application/types/server\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport z from \"zod\";\nimport {Node, NodeConfiguration} from \"@/api/application/types/node\";\n\n\nexport class Nodes {\n private readonly r: AxiosInstance\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n }\n\n list = async (\n include?: (\"allocations\" | \"location\" | \"servers\")[],\n page: number = 1\n ): Promise<Node[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Node, \"node\">>\n >(\"/nodes\", {\n params: {include: include?.join(\",\"), page}\n })\n return data.data.map(s => s.attributes)\n }\n\n listDeployable = async (\n filters: {\n disk: number,\n memory: number,\n cpu?: number,\n location_ids?: string[],\n tags?: string[]\n },\n include?: (\"allocations\" | \"location\" | \"servers\")[],\n page: number = 1\n ): Promise<Node[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Node, \"node\">>\n >(\"/nodes/deployable\", {\n params: {\n include: include?.join(\",\"),\n disk: filters.disk,\n memory: filters.memory,\n cpu: filters.cpu,\n location_ids: filters.location_ids,\n tags: filters.tags,\n page: page\n }\n })\n return data.data.map(s => s.attributes)\n }\n\n info = async (\n id: number,\n include?: (\"allocations\" | \"location\" | \"servers\")[],\n ): Promise<Node> => {\n z.number().positive().parse(id)\n const {data} = await this.r.get<\n GenericResponse<Node, \"node\">\n >(`/nodes/${id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n create = async (node: z.infer<typeof NodeCreateSchema>): Promise<Node> => {\n node = NodeCreateSchema.parse(node)\n const {data} = await this.r.post<\n GenericResponse<Node, \"node\">\n >(\"/nodes\", node)\n return data.attributes\n }\n\n get_configuration = async (id: number): Promise<NodeConfiguration> => {\n z.number().positive().parse(id)\n const {data} = await this.r.get<NodeConfiguration>(`/nodes/${id}/configuration`)\n return data\n }\n\n update = async (id: number, node: z.infer<typeof NodeCreateSchema>): Promise<Node> => {\n z.number().positive().parse(id)\n node = NodeCreateSchema.parse(node)\n const {data} = await this.r.patch<\n GenericResponse<Node, \"node\">\n >(`/nodes/${id}`, node)\n return data.attributes\n }\n\n delete = async (id: number): Promise<void> => {\n z.number().positive().parse(id)\n await this.r.delete(`/nodes/${id}`)\n }\n\n allocations = (server_id: number): NodesAllocations => (\n new NodesAllocations(this.r, server_id)\n )\n}\n\nconst NodeCreateSchema = z.object({\n name: z.string().min(1).max(100),\n description: z.string().optional(),\n public: z.boolean().optional(),\n fqdn: z.string().nonempty(),\n scheme: z.enum([\"http\", \"https\"]),\n behind_proxy: z.boolean().optional(),\n memory: z.number().min(0),\n memory_overallocate: z.number().min(-1),\n disk: z.number().min(0),\n disk_overallocate: z.number().min(-1),\n cpu: z.number().min(0),\n cpu_overallocate: z.number().min(-1),\n daemon_base: z.string().nonempty().optional(),\n daemon_sftp: z.number().min(1).max(65535),\n daemon_sftp_alias: z.string().optional(),\n daemon_listen: z.number().min(1).max(65535),\n daemon_connect: z.number().min(1).max(65535),\n maintenance_mode: z.boolean().optional(),\n upload_size: z.number().min(1).max(1024),\n tags: z.array(z.string()).optional(),\n})","import {AxiosInstance} from \"axios\";\nimport z from \"zod\";\nimport {GenericResponse} from \"@/api/base/types\";\nimport {ApplicationServer} from \"@/api/application/types/server\";\nimport {ServersDatabases} from \"@/api/application/servers_databases\";\n\nexport class Servers {\n private readonly r: AxiosInstance\n private readonly id: number\n databases: ServersDatabases\n\n constructor(r: AxiosInstance, server_id: number) {\n this.r = r\n this.id = server_id\n\n this.databases = new ServersDatabases(this.r, this.id)\n }\n\n info = async (include?: (\"egg\" | \"subusers\")[]): Promise<ApplicationServer> => {\n const {data} = await this.r.get<GenericResponse<ApplicationServer, \"server\">>(`/servers/${this.id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n delete = async (force: boolean = false) => {\n await this.r.delete(`/servers/${this.id}${force ? \"/force\" : \"\"}`)\n }\n\n updateDetails = async (opts: z.infer<typeof UpdateDetailsSchema>): Promise<void> => {\n opts = UpdateDetailsSchema.parse(opts)\n await this.r.patch(`/servers/${this.id}/details`, opts)\n }\n\n updateBuild = async (opts: z.infer<typeof UpdateBuildSchema>): Promise<void> => {\n opts = UpdateBuildSchema.parse(opts)\n await this.r.patch(`/servers/${this.id}/build`, opts)\n }\n\n updateStartup = async (opts: z.infer<typeof UpdateStartupSchema>): Promise<void> => {\n opts = UpdateStartupSchema.parse(opts)\n await this.r.patch(`/servers/${this.id}/startup`, opts)\n }\n\n suspend = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/suspend`)\n }\n\n unsuspend = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/unsuspend`)\n }\n\n reinstall = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/reinstall`)\n }\n\n transferStart = async (\n node_id: number,\n allocation_id: number,\n allocation_additional?: string[]\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/transfer`, {\n node_id,\n allocation_id,\n allocation_additional\n })\n }\n\n transferCancel = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/transfer/cancel`)\n }\n}\n\n\nexport const CreateServerSchema = z.object({\n external_id: z.string().min(1).max(255).optional(),\n name: z.string().min(1).max(255),\n description: z.string().optional(),\n user: z.number(),\n egg: z.number(),\n docker_image: z.string().optional(),\n startup: z.string().optional(),\n environment: z.array(z.string()),\n skip_scripts: z.boolean().optional(),\n oom_killer: z.boolean().optional(),\n start_on_completion: z.boolean().optional(),\n limits: z.object({\n memory: z.number().min(0),\n swap: z.number().min(-1),\n disk: z.number().min(0),\n io: z.number().min(0),\n threads: z.string().optional(),\n cpu: z.number().min(0)\n }),\n feature_limits: z.object({\n databases: z.number().min(0),\n allocations: z.number().min(0),\n backups: z.number().min(0)\n }),\n allocation: z.object({\n default: z.string(),\n additional: z.array(z.string()).optional()\n }).optional(),\n deploy: z.object({\n tags: z.array(z.string()).optional(),\n dedicated_ip: z.boolean().optional(),\n port_range: z.array(z.string()).optional()\n }).optional()\n})\n\nconst UpdateDetailsSchema = CreateServerSchema.pick({\n external_id: true,\n name: true,\n user: true,\n description: true\n})\n\nconst UpdateBuildSchema = CreateServerSchema.pick({\n oom_killer: true,\n limits: true,\n feature_limits: true,\n}).extend({\n allocation: z.number().optional(),\n add_allocations: z.array(z.string()).optional(),\n remove_allocations: z.array(z.string()).optional(),\n})\n\nconst UpdateStartupSchema = CreateServerSchema.pick({\n startup: true,\n environment: true,\n egg: true,\n skip_scripts: true\n}).extend({\n image: z.string().optional()\n})","import {AxiosInstance} from \"axios\";\nimport {ServerDatabase} from \"@/api/common/types/server_database\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport z from \"zod\";\n\n// TODO: Check if database type is valid\nexport class ServersDatabases {\n private readonly r: AxiosInstance\n private readonly id: number\n\n constructor(r: AxiosInstance, server_id: number) {\n this.r = r\n this.id = server_id\n }\n\n list = async (): Promise<ServerDatabase[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ServerDatabase, \"server_database\">>\n >(`/servers/${this.id}/databases`)\n return data.data.map(d => d.attributes)\n }\n\n create = async (\n database: string,\n remote: string,\n host: string\n ): Promise<ServerDatabase> => {\n database = z.string().min(1).max(48).parse(database)\n const {data} = await this.r.post<\n GenericResponse<ServerDatabase, \"server_database\">\n >(`/servers/${this.id}/databases`, {database, remote, host})\n return data.attributes\n }\n\n info = async (database_id: number): Promise<ServerDatabase> => {\n const {data} = await this.r.get<\n GenericResponse<ServerDatabase, \"server_database\">\n >(`/servers/${this.id}/databases/${database_id}`)\n return data.attributes\n }\n\n delete = async (database_id: number): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/databases/${database_id}`)\n }\n\n resetPassword = async (database_id: number): Promise<void> => {\n await this.r.post(`/servers/${this.id}/databases/${database_id}/reset-password`)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {DatabaseHost} from \"@/api/application/types/database_host\";\nimport z from \"zod\";\n\nexport class DatabaseHosts {\n private readonly r: AxiosInstance\n\n constructor(r: AxiosInstance) {\n this.r = r\n }\n\n list = async (\n page: number = 1\n ): Promise<DatabaseHost[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<DatabaseHost, \"database_host\">>\n >(\"/database-hosts\", {\n params: {page}\n })\n return data.data.map(d => d.attributes)\n }\n\n info = async (\n id: string\n ): Promise<DatabaseHost> => {\n const {data} = await this.r.get<\n GenericResponse<DatabaseHost, \"database_host\">\n >(`/database-hosts/${id}`)\n return data.attributes\n }\n\n // TODO: find out why API returns 500\n create = async (\n opts: z.infer<typeof CreateDBHostSchema>\n ): Promise<void> => {\n opts = CreateDBHostSchema.parse(opts)\n await this.r.post<\n GenericResponse<DatabaseHost, \"database_host\">\n >(\"/database-hosts\", opts).catch(e=>{})\n }\n\n update = async (\n id: string,\n opts: z.infer<typeof CreateDBHostSchema>\n ): Promise<DatabaseHost> => {\n opts = CreateDBHostSchema.parse(opts)\n const {data} = await this.r.patch<\n GenericResponse<DatabaseHost, \"database_host\">\n >(`/database-hosts/${id}`, opts)\n\n return data.attributes\n }\n\n delete = async (\n id: string\n ): Promise<void> => {\n await this.r.delete(`/database-hosts/${id}`)\n }\n}\n\nconst CreateDBHostSchema = z.object({\n name: z.string().min(1).max(255),\n host: z.string(),\n port: z.number().min(1).max(65535),\n username: z.string().min(1).max(255),\n password: z.string().optional(),\n node_ids: z.array(z.string()).optional(),\n max_databases: z.number().optional()\n})","import {AxiosInstance} from \"axios\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {Role} from \"@/api/application/types/role\";\n\n\n// TODO: API is incomplete\n\nexport class Roles {\n private readonly r: AxiosInstance\n\n constructor(r: AxiosInstance) {\n this.r = r\n }\n\n list = async (\n page: number = 1\n ): Promise<Role[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Role, \"role\">>\n >(`/roles`, {\n params: {page}\n })\n return data.data.map(r => r.attributes)\n }\n\n info = async (\n id: number\n ): Promise<Role> => {\n const {data} = await this.r.get<\n GenericResponse<Role, \"role\">\n >(`/roles/${id}`)\n return data.attributes\n }\n\n create = async (\n opts: {name: string}\n ): Promise<void> => {\n await this.r.post(`/roles`, opts)\n }\n\n update = async (\n id: number,\n opts: {name: string}\n ): Promise<void> => {\n await this.r.patch(`/roles/${id}`, opts)\n }\n\n delete = async (\n id: number\n ): Promise<void> => {\n await this.r.delete(`/roles/${id}`)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {Egg} from \"@/api/application/types/egg\";\n\n// TODO: API is incomplete\n\nexport class Eggs {\n private readonly r: AxiosInstance\n\n constructor(r: AxiosInstance) {\n this.r = r\n }\n\n list = async (): Promise<Egg[]> => {\n const {data} = await this.r.get<GenericListResponse<GenericResponse<Egg, \"egg\">>>(\"/eggs\")\n return data.data.map(d => d.attributes)\n }\n\n info = async (id: number): Promise<Egg> => {\n const {data} = await this.r.get<GenericResponse<Egg, \"egg\">>(`/eggs/${id}`)\n return data.attributes\n }\n\n export = async (id: number, format: \"json\" | \"yaml\"): Promise<string> => {\n const {data} = await this.r.get<string>(`/eggs/${id}/export`, {\n params: {format},\n transformResponse: r => r\n })\n return data\n }\n}","import {AxiosInstance} from \"axios\";\nimport {Mount} from \"@/api/application/types/mount\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport z from \"zod\";\nimport {Egg} from \"@/api/application/types/egg\";\nimport {ApplicationServer} from \"@/api/application/types\";\n\nexport class Mounts {\n private readonly r: AxiosInstance\n\n constructor(r: AxiosInstance) {\n this.r = r\n }\n\n list = async (): Promise<Mount[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Mount, \"mount\">>\n >(\"/mounts\")\n return data.data.map(d => d.attributes)\n }\n\n info = async (id: number): Promise<Mount> => {\n const {data} = await this.r.get<GenericResponse<Mount, \"mount\">>(`/mounts/${id}`)\n return data.attributes\n }\n\n create = async (opts: z.infer<typeof CreateMountSchema>): Promise<Mount> => {\n opts = CreateMountSchema.parse(opts)\n const {data} = await this.r.post<GenericResponse<Mount, \"mount\">>(\"/mounts\", opts)\n return data.attributes\n }\n\n update = async (id: number, opts: z.infer<typeof CreateMountSchema>): Promise<Mount> => {\n opts = CreateMountSchema.parse(opts)\n const {data} = await this.r.patch<GenericResponse<Mount, \"mount\">>(`/mounts/${id}`, opts)\n return data.attributes\n }\n\n delete = async (id: number): Promise<void> => {\n await this.r.delete(`/mounts/${id}`)\n }\n\n listAssignedEggs = async (id: number): Promise<Egg[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Egg, \"egg\">>\n >(`/mounts/${id}/eggs`)\n return data.data.map(d => d.attributes)\n }\n\n assignEggs = async (id: number, eggs: number[]): Promise<void> => {\n await this.r.post(`/mounts/${id}/eggs`, {eggs})\n }\n\n unassignEgg = async (id: number, egg_id: number): Promise<void> => {\n await this.r.delete(`/mounts/${id}/eggs/${egg_id}`)\n }\n\n listAssignedNodes = async (id: number): Promise<Node[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Node, \"node\">>\n >(`/mounts/${id}/nodes`)\n return data.data.map(d => d.attributes)\n }\n\n assignNodes = async (id: number, nodes: number[]): Promise<void> => {\n await this.r.post(`/mounts/${id}/nodes`, {nodes})\n }\n\n unassignNode = async (id: number, node_id: number): Promise<void> => {\n await this.r.delete(`/mounts/${id}/nodes/${node_id}`)\n }\n\n listAssignedServers = async (id: number): Promise<ApplicationServer[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ApplicationServer, \"server\">>\n >(`/mounts/${id}/servers`)\n return data.data.map(d => d.attributes)\n }\n\n assignServers = async (id: number, servers: number[]): Promise<void> => {\n await this.r.post(`/mounts/${id}/servers`, {servers})\n }\n\n unassignServer = async (id: number, server_id: number): Promise<void> => {\n await this.r.delete(`/mounts/${id}/servers/${server_id}`)\n }\n}\n\n\nconst CreateMountSchema = z.object({\n name: z.string().min(1).max(255),\n description: z.string().optional(),\n source: z.string(),\n target: z.string(),\n read_only: z.boolean().optional()\n})","import {AxiosInstance} from \"axios\";\nimport {Users} from \"@/api/application/users\";\nimport {Nodes} from \"@/api/application/nodes\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {ApplicationServer} from \"@/api/application/types/server\";\nimport {CreateServerSchema, Servers} from \"@/api/application/servers\";\nimport z from \"zod\";\nimport {DatabaseHosts} from \"@/api/application/database_hosts\";\nimport {Roles} from \"@/api/application/roles\";\nimport {Eggs} from \"@/api/application/eggs\";\nimport {Mounts} from \"@/api/application/mounts\";\n\nexport class Client {\n private readonly r: AxiosInstance\n users: Users\n nodes: Nodes\n databaseHosts: DatabaseHosts\n roles: Roles\n eggs: Eggs\n mounts: Mounts\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n\n this.users = new Users(requester)\n this.nodes = new Nodes(requester)\n this.databaseHosts = new DatabaseHosts(requester)\n this.roles = new Roles(requester)\n this.eggs = new Eggs(requester)\n this.mounts = new Mounts(requester)\n }\n\n listServers = async (\n search?: string,\n page: number = 1\n ): Promise<ApplicationServer[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ApplicationServer, \"server\">>\n >(\"/servers\", {\n params: {search, page}\n })\n return data.data.map(s => s.attributes)\n }\n\n createServer = async (opts: z.infer<typeof CreateServerSchema>): Promise<ApplicationServer> => {\n opts = CreateServerSchema.parse(opts)\n const {data} = await this.r.post<GenericResponse<ApplicationServer, \"server\">>(\"/servers\", opts)\n return data.attributes\n }\n\n getServerByExternalId = async (external_id: string, include?: (\"egg\" | \"subusers\")[]): Promise<ApplicationServer> => {\n const {data} = await this.r.get<GenericResponse<ApplicationServer, \"server\">>(`/servers/external/${external_id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n servers = (server_id: number) => new Servers(this.r, server_id)\n}","import z from \"zod\"\nimport axios, {AxiosInstance, AxiosResponse} from \"axios\";\nimport {PterodactylError, PterodactylException} from \"@/api/base/types\";\n\nexport class Agent {\n private readonly base_url: string\n private readonly token: string\n readonly requester: AxiosInstance\n\n constructor(url: string, token: string, type: \"client\" | \"application\", suffix: string = \"/api\") {\n this.base_url = z.url(\"Invalid URL Schema\").transform(url => new URL(url).href).parse(url)\n this.token = z.string().regex(/^(ptl[ac]|pacc|papp)_.+$/, \"Invalid token type\").parse(token)\n\n this.requester = axios.create({\n baseURL: this.base_url.replace(/\\/+$/, \"\")+`${suffix}/${type}`,\n timeout: 3000,\n headers: {\n Authorization: `Bearer ${this.token}`\n }\n })\n\n this.requester.interceptors.response.use(undefined, (error: any)=>{\n if (error.response && error.response.status === 400) {\n return Promise.reject(new PterodactylException(\n 'Invalid request data',\n error.response.data as PterodactylError[],\n error.response.status\n ));\n }\n return Promise.reject(error);\n })\n }\n}","export type GenericResponse<T, N extends string = string, M = undefined> = {\n object: N,\n attributes: T,\n meta?: M\n}\n\ntype PaginationMeta = {\n total: number,\n count: number,\n per_page: number,\n current_page: number,\n total_pages: number,\n links: any\n}\n\nexport type GenericListResponse<T> = {\n object: \"list\",\n data: T[],\n meta?: { pagination: PaginationMeta }\n}\n\nexport type CustomListResponse<T, M> = {\n object: \"list\",\n data: T[],\n meta?: M\n}\n\n\nexport class PterodactylException extends Error {\n data: PterodactylError[]\n status: number\n\n constructor(message: string, data: PterodactylError[], status: number) {\n super(message)\n this.data = data\n this.status = status\n }\n}\n\nexport type PterodactylError = {\n code: string,\n status?: number,\n detail: string,\n source?: {\n [key: string]: string\n }\n}","import {Client as UserClient} from \"@/api/client/client\";\nimport {Client as AppClient} from \"@/api/application/client\";\nimport {Agent} from \"@/api/base/request\";\n\nexport class PelicanClient extends UserClient{\n constructor(url: string, token: string, suffix: string = \"/api\") {\n const ax = new Agent(url, token, \"client\", suffix)\n super(ax.requester)\n }\n}\n\nexport class PelicanApplication extends AppClient{\n constructor(url: string, token: string, suffix: string = \"/api\") {\n const ax = new Agent(url, token, \"application\", suffix)\n super(ax.requester)\n }\n}"],"mappings":"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,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EACtG;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EACtG;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EACtG;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EACtG;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EACtG;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EACtG;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EACtG;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAC9C,CAAC;AAKM,IAAM,kBAAkBA,GAAE,KAAK;AAAA,EAClC;AAAA,EAAkB;AAAA,EAAgB;AAAA,EAAsB;AAAA,EAAkB;AAAA,EAAiB;AAAA,EAAiB;AAAA,EAAiB;AAAA,EAAiB;AAAA,EAAiB;AAAA,EAAmB;AAAA,EAAsB;AAAA,EAAoB;AAAA,EAAgB;AAAA,EAAqB;AAAA,EAAgB;AAAA,EAAkB;AAAA,EAAgB;AAAA,EAAwB;AAAA,EAAmB;AAAA,EAAiB;AAAA,EAAmB;AAAA,EAAmB;AAAA,EAAmB;AAAA,EAAiB;AAAA,EAAuB;AAAA,EAAe;AAAA,EAAkB;AAAA,EAAmB;AAAA,EAAiB;AAAA,EAAmB;AAAA,EAAgB;AAAA,EAAqB;AAAA,EAAe;AAAA,EAAiB;AAAA,EAAqB;AAAA,EAAiB;AAAA,EAAiB;AAAA,EAAiB;AAAA,EAAiB;AAAA,EAAkB;AAAA,EAAoB;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAAmB;AAAA,EAAiB;AAAA,EAAqB;AAAA,EAAsB;AAAA,EAAqB;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAAgB;AAAA,EAAmB;AAAA,EAAgB;AAAA,EAAqB;AAAA,EAAoB;AAAA,EAAmB;AAAA,EAAqB;AAAA,EAAkC;AAAA,EAA+B;AAAA,EAA6B;AAAA,EAA2B;AAAA,EAA8B;AAAA,EAA6B;AAAA,EAAkC;AAAA,EAA2B;AAAA,EAA8B;AAAA,EAA8B;AAAA,EAA6B;AAAA,EAA6B;AAAA,EAAiB;AAAA,EAAoB;AAAA,EAAoB;AAAA,EAAiB;AAAA,EAA0B;AAAA,EAAoB;AAAA,EAAiB;AAAA,EAAkB;AAAA,EAAwB;AAAA,EAAqB;AAAA,EAAkB;AAAA,EAAiB;AAAA,EAAyB;AAAA,EAAwB;AAAA,EAAkB;AAAA,EAAmB;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAAmB;AAAA,EAAqB;AAAA,EAAyB;AAAA,EAAsB;AAAA,EAAqB;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAAmB;AAAA,EAAwB;AAAA,EAAkB;AAAA,EAAwB;AAAA,EAAkB;AAAA,EAAmB;AAAA,EAAoB;AAAA,EAAoB;AAAA,EAAoB;AAAA,EAAuB;AAAA,EAAuB;AAAA,EAAqB;AAAA,EAAqB;AAAA,EAAqB;AAAA,EAAsB;AAAA,EAAmB;AAAA,EAAsB;AAAA,EAAqB;AAAA,EAAqB;AAAA,EAAkB;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAAsB;AAAA,EAAgC;AAAA,EAAwB;AAAA,EAA2B;AAAA,EAA8B;AAAA,EAA6B;AAAA,EAAyB;AAAA,EAA6B;AAAA,EAA2B;AAAA,EAAkB;AAAA,EAAmB;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAA+B;AAAA,EAA+B;AAAA,EAAsB;AAAA,EAAkB;AAAA,EAAgB;AAAA,EAAuB;AAAA,EAAyB;AAAA,EAAkB;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAAmB;AAAA,EAAsB;AAAA,EAAqB;AAAA,EAAoB;AAAA,EAAqB;AAAA,EAAkB;AAAA,EAAsB;AAAA,EAAuB;AAAA,EAAoB;AAAA,EAAmB;AAAA,EAAqB;AAAA,EAAsB;AAAA,EAAsB;AAAA,EAAkB;AAAA,EAAoB;AAAA,EAAgB;AAAA,EAAmB;AAAA,EAA+B;AAAA,EAA+B;AAAA,EAAkC;AAAA,EAAgB;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAAsB;AAAA,EAAmB;AAAA,EAA0B;AAAA,EAAyB;AAAA,EAAuB;AAAA,EAAuB;AAAA,EAAwB;AAAA,EAAwB;AAAA,EAAkB;AAAA,EAAkB;AAAA,EAAoB;AAAA,EAAsB;AAAA,EAAoB;AAAA,EAAoB;AAAA,EAAyB;AAAA,EAAqB;AAAA,EAAwB;AAAA,EAAiB;AAAA,EAAyB;AAAA,EAAoB;AAAA,EAAoB;AAAA,EAAoB;AAAA,EAAqB;AAAA,EAAsB;AAAA,EAAyB;AAAA,EAAuB;AAAA,EAAiB;AAAA,EAAmB;AAAA,EAAmB;AAAA,EAAmB;AAAA,EAAqB;AAAA,EAAsB;AAAA,EAAoB;AAAA,EAAmB;AAAA,EAAoB;AAAA,EAAoB;AAAA,EAA6B;AAAA,EAAwB;AAAA,EAAqB;AAAA,EAAsB;AAAA,EAAqB;AAAA,EAAsB;AAAA,EAAoB;AAAA,EAAoB;AAAA,EAAqB;AAAA,EAAuB;AAAA,EAAa;AAAA,EAAe;AAAA,EAAc;AAAA,EAAe;AAAA,EAAc;AAAA,EAAe;AAAA,EAAiB;AAAA,EAAe;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAa;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAe;AAAA,EAAgB;AAAA,EAAe;AAAA,EAAc;AAAA,EAAgB;AAAA,EAAiB;AAAA,EAAc;AAAA,EAAa;AAAA,EAAc;AAAA,EAAiB;AAAA,EAAkB;AAAA,EAAa;AAAA,EAAe;AAAA,EAAoB;AAAA,EAAkB;AAAA,EAAa;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAiB;AAAA,EAAkB;AAAA,EAAc;AAAA,EAAkB;AAAA,EAAgB;AAAA,EAAkB;AAAA,EAAiB;AAAA,EAAgB;AAAA,EAAoB;AAAA,EAAqB;AAAA,EAAgB;AAAA,EAAe;AAAA,EAAc;AAAA,EAAgB;AAAA,EAAiB;AAAA,EAAe;AAAA,EAAe;AAAA,EAAgB;AAAA,EAAqB;AAAA,EAAoB;AAAA,EAAa;AAAA,EAAa;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAAkB;AAAA,EAAc;AAAA,EAAiB;AAAA,EAAkB;AAAA,EAAe;AAAA,EAAiB;AAAA,EAAkB;AAAA,EAAc;AAAA,EAAiB;AAAA,EAAkB;AAAA,EAAsB;AAAA,EAAe;AAAA,EAAiB;AAAA,EAAgB;AAAA,EAAe;AAAA,EAAgB;AAAA,EAAc;AAAA,EAAc;AAAA,EAAoB;AAAA,EAAe;AAAA,EAAiB;AAAA,EAAkB;AAAA,EAAoB;AAAA,EAAgB;AAAA,EAAe;AAAA,EAAsB;AAAA,EAAgB;AAAA,EAAmB;AAAA,EAAoB;AAAA,EAAmB;AAAA,EAAuB;AAAA,EAAkB;AAAA,EAAoB;AAAA,EAAsB;AAAA,EAA0B;AAAA,EAAsB;AAAA,EAAoB;AAAA,EAAsB;AAAA,EAAsB;AAAA,EAAyB;AAAA,EAAoB;AAAA,EAAmB;AAAA,EAAoB;AAAA,EAAsB;AAAA,EAAuB;AAAA,EAAuB;AAAA,EAAmB;AAAA,EAAoB;AAAA,EAAoB;AAAA,EAAkB;AAAA,EAAoB;AAAA,EAAiB;AAAA,EAAmB;AAAA,EAAiB;AAAA,EAAqB;AAAA,EAAmB;AAAA,EAAoB;AAAA,EAAmB;AAAA,EAAmB;AAAA,EAAmB;AAAA,EAAqB;AAAA,EAAiB;AAAA,EAAoB;AAAA,EAAmB;AAAA,EAAmB;AAAA,EAAsB;AAAA,EAAmB;AAAA,EAAiB;AAAA,EAAsB;AAAA,EAAgB;AAAA,EAAe;AAAA,EAAiB;AAAA,EAAoB;AAAA,EAAiB;AAAA,EAAqB;AAAA,EAAiB;AAAA,EAAgB;AAAA,EAAoB;AAAA,EAAgB;AAAA,EAAiB;AAAA,EAAiB;AAAA,EAAe;AAAA,EAAgB;AAAA,EAAoB;AAAA,EAAiB;AAAA,EAAe;AAAA,EAAe;AAAA,EAAiB;AAAA,EAAqB;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAAqB;AAAA,EAAiB;AAAA,EAAgB;AAAA,EAAoB;AAAA,EAAkB;AAAA,EAAiB;AAAA,EAAoB;AAAA,EAAgB;AAAA,EAAkB;AAAA,EAAiB;AAAA,EAAkB;AAAA,EAAoB;AAAA,EAAiB;AAAA,EAAiB;AAAA,EAAiB;AAAA,EAAuB;AAAA,EAAiB;AAAA,EAAoB;AAAA,EAAgB;AAAA,EAAiB;AAAA,EAAoB;AAAA,EAAe;AAAA,EAAmB;AAAA,EAAoB;AAAA,EAAkB;AAAA,EAAkB;AAAA,EAAgB;AAAA,EAAoB;AAAA,EAAwB;AAAA,EAAmB;AAAA,EAAiB;AAAA,EAAkB;AAAA,EAAiB;AAAA,EAAmB;AAAA,EAAgB;AAAA,EAAoB;AAAA,EAAqB;AAAA,EAAmB;AAAA,EAAuB;AAAA,EAAgB;AAAA,EAAoB;AAAA,EAAkB;AAAA,EAAsB;AAAA,EAAkB;AAAA,EAAqB;AAAA,EAAkB;AAAA,EAAqB;AAAA,EAAkB;AAAA,EAAiB;AAAA,EAAgB;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAAqB;AAAA,EAAiB;AAAA,EAAoB;AAAA,EAAmB;AAAA,EAAwB;AAAA,EAAqB;AAAA,EAAkB;AAAA,EAAkB;AAAA,EAAkB;AAAA,EAAqB;AAAA,EAAgB;AAAA,EAAkB;AACj9P,CAAC;;;AFTM,IAAM,QAAN,MAAY;AAAA,EACE;AAAA,EAEjB,YAAY,WAA0B;AAClC,SAAK,IAAI;AAAA,EACb;AAAA,EAEA,OAAO,OACH,MACA,OAAe,MACc;AAC7B,IAAAC,GAAE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI;AAChC,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,UAAU;AAAA,MACR,QAAQ;AAAA,QACJ,SAAS,KAAK,SAAS,KAAK,GAAG;AAAA,QAC/B;AAAA,QACA,GAAG,iBAAiB,EAAC,SAAS,KAAK,WAAW,CAAC,EAAC,CAAC;AAAA,QACjD,MAAM,KAAK,MAAM,KACX,UAAU,MAAM,KAAK,MAAM,EAAE,IAC7B,UAAU,QAAQ,KAAK,MAAM,IAAK;AAAA,MAC5C;AAAA,IACJ,CAAC;AAED,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,OAAO,OACH,IACA,EAAC,QAAO,MACmB;AAC3B,IAAAA,GAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;AAC9B,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,UAAU,EAAE,IAAI;AAAA,MACd,QAAQ,EAAC,SAAS,SAAS,KAAK,GAAG,EAAC;AAAA,IACxC,CAAC;AACD,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,iBAAiB,OACb,aACA,EAAC,QAAO,MACmB;AAC3B,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,mBAAmB,WAAW,IAAI;AAAA,MAChC,QAAQ,EAAC,SAAS,SAAS,KAAK,GAAG,EAAC;AAAA,IACxC,CAAC;AACD,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OAAO,SAAiE;AAC7E,WAAO,aAAa,MAAM,IAAI;AAC9B,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,KAE1B,UAAU,IAAI;AAChB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OAAO,IAAY,SAAiE;AACzF,WAAO,aAAa,MAAM,IAAI;AAC9B,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,MAE1B,UAAU,EAAE,IAAI,IAAI;AACtB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OAAO,OAA8B;AAC1C,IAAAA,GAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;AAC9B,UAAM,KAAK,EAAE,OAAO,UAAU,EAAE,EAAE;AAAA,EACtC;AAAA,EAEA,WAAW,OAAO,IAAY,UAAmC;AAC7D,IAAAA,GAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;AAC9B,UAAM,KAAK,EAAE,MAAM,UAAU,EAAE,iBAAiB,EAAC,MAAK,CAAC;AAAA,EAC3D;AAAA,EAEA,cAAc,OAAO,IAAY,UAAmC;AAChE,IAAAA,GAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;AAC9B,UAAM,KAAK,EAAE,MAAM,UAAU,EAAE,iBAAiB,EAAC,MAAK,CAAC;AAAA,EAC3D;AACJ;AAaA,IAAM,eAAeA,GAAE,OAAO;AAAA,EAC1B,OAAOA,GAAE,MAAM;AAAA,EACf,aAAaA,GAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAC1C,UAAUA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACnC,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,UAAU;AAAA,EACV,UAAU;AACd,CAAC;;;AG7GD,OAAOC,QAAO;AAGP,IAAM,mBAAN,MAAuB;AAAA,EACT;AAAA,EACA;AAAA,EAEjB,YAAY,WAA0B,IAAY;AAC9C,SAAK,IAAI;AACT,SAAK,KAAK;AAAA,EACd;AAAA,EAEA,OAAO,OAAO,YAA8D;AACxE,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,UAAU,KAAK,EAAE,gBAAgB;AAAA,MAC/B,QAAQ,EAAC,SAAS,SAAS,KAAK,GAAG,EAAC;AAAA,IACxC,CAAC;AAED,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,SAAS,OACL,IACA,OACA,UACgB;AAChB,IAAAA,GAAE,KAAK,EAAE,MAAM,EAAE;AACjB,IAAAA,GAAE,KAAK,EAAE,GAAGA,GAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK;AACpD,IAAAA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,GAAGA,GAAE,OAAO,EAAE,MAAM,SAAS,CAAC,EAAE,MAAM,KAAK;AAE/D,UAAM,KAAK,EAAE,KAAK,UAAU,KAAK,EAAE,gBAAgB;AAAA,MAC/C;AAAA,MAAI;AAAA,MAAO;AAAA,IACf,CAAC;AAAA,EACL;AAAA,EAEA,SAAS,OAAO,aAAoC;AAChD,UAAM,KAAK,EAAE,OAAO,UAAU,KAAK,EAAE,gBAAgB,QAAQ,EAAE;AAAA,EACnE;AACJ;;;ACtCA,OAAOC,QAAO;AAIP,IAAM,QAAN,MAAY;AAAA,EACE;AAAA,EAEjB,YAAY,WAA0B;AAClC,SAAK,IAAI;AAAA,EACb;AAAA,EAEA,OAAO,OACH,SACA,OAAe,MACG;AAClB,IAAAA,GAAE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI;AAChC,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,UAAU;AAAA,MACR,QAAQ,EAAC,SAAS,SAAS,KAAK,GAAG,GAAG,KAAI;AAAA,IAC9C,CAAC;AACD,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,iBAAiB,OACb,SAOA,SACA,OAAe,MACG;AAClB,IAAAA,GAAE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI;AAChC,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,qBAAqB;AAAA,MACnB,QAAQ;AAAA,QACJ,SAAS,SAAS,KAAK,GAAG;AAAA,QAC1B,MAAM,QAAQ;AAAA,QACd,QAAQ,QAAQ;AAAA,QAChB,KAAK,QAAQ;AAAA,QACb,cAAc,QAAQ;AAAA,QACtB,MAAM,QAAQ;AAAA,QACd;AAAA,MACJ;AAAA,IACJ,CAAC;AACD,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,OAAO,OACH,IACA,YACgB;AAChB,IAAAA,GAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;AAC9B,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,UAAU,EAAE,IAAI;AAAA,MACd,QAAQ,EAAC,SAAS,SAAS,KAAK,GAAG,EAAC;AAAA,IACxC,CAAC;AACD,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OAAO,SAA0D;AACtE,WAAO,iBAAiB,MAAM,IAAI;AAClC,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,KAE1B,UAAU,IAAI;AAChB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,oBAAoB,OAAO,OAA2C;AAClE,IAAAA,GAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;AAC9B,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAAuB,UAAU,EAAE,gBAAgB;AAC/E,WAAO;AAAA,EACX;AAAA,EAEA,SAAS,OAAO,IAAY,SAA0D;AAClF,IAAAA,GAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;AAC9B,WAAO,iBAAiB,MAAM,IAAI;AAClC,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,MAE1B,UAAU,EAAE,IAAI,IAAI;AACtB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OAAO,OAA8B;AAC1C,IAAAA,GAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;AAC9B,UAAM,KAAK,EAAE,OAAO,UAAU,EAAE,EAAE;AAAA,EACtC;AAAA,EAEA,cAAc,CAAC,cACX,IAAI,iBAAiB,KAAK,GAAG,SAAS;AAE9C;AAEA,IAAM,mBAAmBA,GAAE,OAAO;AAAA,EAC9B,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,EACjC,QAAQA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,QAAQA,GAAE,KAAK,CAAC,QAAQ,OAAO,CAAC;AAAA,EAChC,cAAcA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACnC,QAAQA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,qBAAqBA,GAAE,OAAO,EAAE,IAAI,EAAE;AAAA,EACtC,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,mBAAmBA,GAAE,OAAO,EAAE,IAAI,EAAE;AAAA,EACpC,KAAKA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACrB,kBAAkBA,GAAE,OAAO,EAAE,IAAI,EAAE;AAAA,EACnC,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC5C,aAAaA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK;AAAA,EACxC,mBAAmBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACvC,eAAeA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK;AAAA,EAC1C,gBAAgBA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK;AAAA,EAC3C,kBAAkBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACvC,aAAaA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;AAAA,EACvC,MAAMA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AACvC,CAAC;;;AC1HD,OAAOC,SAAO;;;ACEd,OAAOC,SAAO;AAGP,IAAM,mBAAN,MAAuB;AAAA,EACT;AAAA,EACA;AAAA,EAEjB,YAAY,GAAkB,WAAmB;AAC7C,SAAK,IAAI;AACT,SAAK,KAAK;AAAA,EACd;AAAA,EAEA,OAAO,YAAuC;AAC1C,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,YAAY,KAAK,EAAE,YAAY;AACjC,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,SAAS,OACL,UACA,QACA,SAC0B;AAC1B,eAAWA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,QAAQ;AACnD,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,KAE1B,YAAY,KAAK,EAAE,cAAc,EAAC,UAAU,QAAQ,KAAI,CAAC;AAC3D,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO,OAAO,gBAAiD;AAC3D,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,YAAY,KAAK,EAAE,cAAc,WAAW,EAAE;AAChD,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OAAO,gBAAuC;AACnD,UAAM,KAAK,EAAE,OAAO,YAAY,KAAK,EAAE,cAAc,WAAW,EAAE;AAAA,EACtE;AAAA,EAEA,gBAAgB,OAAO,gBAAuC;AAC1D,UAAM,KAAK,EAAE,KAAK,YAAY,KAAK,EAAE,cAAc,WAAW,iBAAiB;AAAA,EACnF;AACJ;;;AD1CO,IAAM,UAAN,MAAc;AAAA,EACA;AAAA,EACA;AAAA,EACjB;AAAA,EAEA,YAAY,GAAkB,WAAmB;AAC7C,SAAK,IAAI;AACT,SAAK,KAAK;AAEV,SAAK,YAAY,IAAI,iBAAiB,KAAK,GAAG,KAAK,EAAE;AAAA,EACzD;AAAA,EAEA,OAAO,OAAO,YAAiE;AAC3E,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAAkD,YAAY,KAAK,EAAE,IAAI;AAAA,MACjG,QAAQ,EAAC,SAAS,SAAS,KAAK,GAAG,EAAC;AAAA,IACxC,CAAC;AACD,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OAAO,QAAiB,UAAU;AACvC,UAAM,KAAK,EAAE,OAAO,YAAY,KAAK,EAAE,GAAG,QAAQ,WAAW,EAAE,EAAE;AAAA,EACrE;AAAA,EAEA,gBAAgB,OAAO,SAA6D;AAChF,WAAO,oBAAoB,MAAM,IAAI;AACrC,UAAM,KAAK,EAAE,MAAM,YAAY,KAAK,EAAE,YAAY,IAAI;AAAA,EAC1D;AAAA,EAEA,cAAc,OAAO,SAA2D;AAC5E,WAAO,kBAAkB,MAAM,IAAI;AACnC,UAAM,KAAK,EAAE,MAAM,YAAY,KAAK,EAAE,UAAU,IAAI;AAAA,EACxD;AAAA,EAEA,gBAAgB,OAAO,SAA6D;AAChF,WAAO,oBAAoB,MAAM,IAAI;AACrC,UAAM,KAAK,EAAE,MAAM,YAAY,KAAK,EAAE,YAAY,IAAI;AAAA,EAC1D;AAAA,EAEA,UAAU,YAA2B;AACjC,UAAM,KAAK,EAAE,KAAK,YAAY,KAAK,EAAE,UAAU;AAAA,EACnD;AAAA,EAEA,YAAY,YAA2B;AACnC,UAAM,KAAK,EAAE,KAAK,YAAY,KAAK,EAAE,YAAY;AAAA,EACrD;AAAA,EAEA,YAAY,YAA2B;AACnC,UAAM,KAAK,EAAE,KAAK,YAAY,KAAK,EAAE,YAAY;AAAA,EACrD;AAAA,EAEA,gBAAgB,OACZ,SACA,eACA,0BACgB;AAChB,UAAM,KAAK,EAAE,KAAK,YAAY,KAAK,EAAE,aAAa;AAAA,MAC9C;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,iBAAiB,YAA2B;AACxC,UAAM,KAAK,EAAE,KAAK,YAAY,KAAK,EAAE,kBAAkB;AAAA,EAC3D;AACJ;AAGO,IAAM,qBAAqBC,IAAE,OAAO;AAAA,EACvC,aAAaA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACjD,MAAMA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,MAAMA,IAAE,OAAO;AAAA,EACf,KAAKA,IAAE,OAAO;AAAA,EACd,cAAcA,IAAE,OAAO,EAAE,SAAS;AAAA,EAClC,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,aAAaA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,EAC/B,cAAcA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACnC,YAAYA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACjC,qBAAqBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC1C,QAAQA,IAAE,OAAO;AAAA,IACb,QAAQA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IACxB,MAAMA,IAAE,OAAO,EAAE,IAAI,EAAE;AAAA,IACvB,MAAMA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IACtB,IAAIA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IACpB,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC7B,KAAKA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,CAAC;AAAA,EACD,gBAAgBA,IAAE,OAAO;AAAA,IACrB,WAAWA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IAC3B,aAAaA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IAC7B,SAASA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC7B,CAAC;AAAA,EACD,YAAYA,IAAE,OAAO;AAAA,IACjB,SAASA,IAAE,OAAO;AAAA,IAClB,YAAYA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC7C,CAAC,EAAE,SAAS;AAAA,EACZ,QAAQA,IAAE,OAAO;AAAA,IACb,MAAMA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IACnC,cAAcA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACnC,YAAYA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC7C,CAAC,EAAE,SAAS;AAChB,CAAC;AAED,IAAM,sBAAsB,mBAAmB,KAAK;AAAA,EAChD,aAAa;AAAA,EACb,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AACjB,CAAC;AAED,IAAM,oBAAoB,mBAAmB,KAAK;AAAA,EAC9C,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,gBAAgB;AACpB,CAAC,EAAE,OAAO;AAAA,EACN,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,EAChC,iBAAiBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC9C,oBAAoBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AACrD,CAAC;AAED,IAAM,sBAAsB,mBAAmB,KAAK;AAAA,EAChD,SAAS;AAAA,EACT,aAAa;AAAA,EACb,KAAK;AAAA,EACL,cAAc;AAClB,CAAC,EAAE,OAAO;AAAA,EACN,OAAOA,IAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;;;AEnID,OAAOC,SAAO;AAEP,IAAM,gBAAN,MAAoB;AAAA,EACN;AAAA,EAEjB,YAAY,GAAkB;AAC1B,SAAK,IAAI;AAAA,EACb;AAAA,EAEA,OAAO,OACH,OAAe,MACW;AAC1B,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,mBAAmB;AAAA,MACjB,QAAQ,EAAC,KAAI;AAAA,IACjB,CAAC;AACD,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,OAAO,OACH,OACwB;AACxB,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,mBAAmB,EAAE,EAAE;AACzB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,SAAS,OACL,SACgB;AAChB,WAAO,mBAAmB,MAAM,IAAI;AACpC,UAAM,KAAK,EAAE,KAEX,mBAAmB,IAAI,EAAE,MAAM,OAAG;AAAA,IAAC,CAAC;AAAA,EAC1C;AAAA,EAEA,SAAS,OACL,IACA,SACwB;AACxB,WAAO,mBAAmB,MAAM,IAAI;AACpC,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,MAE1B,mBAAmB,EAAE,IAAI,IAAI;AAE/B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OACL,OACgB;AAChB,UAAM,KAAK,EAAE,OAAO,mBAAmB,EAAE,EAAE;AAAA,EAC/C;AACJ;AAEA,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EAChC,MAAMA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,MAAMA,IAAE,OAAO;AAAA,EACf,MAAMA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK;AAAA,EACjC,UAAUA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACnC,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,UAAUA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACvC,eAAeA,IAAE,OAAO,EAAE,SAAS;AACvC,CAAC;;;AC9DM,IAAM,QAAN,MAAY;AAAA,EACE;AAAA,EAEjB,YAAY,GAAkB;AAC1B,SAAK,IAAI;AAAA,EACb;AAAA,EAEA,OAAO,OACH,OAAe,MACG;AAClB,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,UAAU;AAAA,MACR,QAAQ,EAAC,KAAI;AAAA,IACjB,CAAC;AACD,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,OAAO,OACH,OACgB;AAChB,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,UAAU,EAAE,EAAE;AAChB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OACL,SACgB;AAChB,UAAM,KAAK,EAAE,KAAK,UAAU,IAAI;AAAA,EACpC;AAAA,EAEA,SAAS,OACL,IACA,SACgB;AAChB,UAAM,KAAK,EAAE,MAAM,UAAU,EAAE,IAAI,IAAI;AAAA,EAC3C;AAAA,EAEA,SAAS,OACL,OACgB;AAChB,UAAM,KAAK,EAAE,OAAO,UAAU,EAAE,EAAE;AAAA,EACtC;AACJ;;;AC9CO,IAAM,OAAN,MAAW;AAAA,EACG;AAAA,EAEjB,YAAY,GAAkB;AAC1B,SAAK,IAAI;AAAA,EACb;AAAA,EAEA,OAAO,YAA4B;AAC/B,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAAsD,OAAO;AACzF,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,OAAO,OAAO,OAA6B;AACvC,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAAiC,SAAS,EAAE,EAAE;AAC1E,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OAAO,IAAY,WAA6C;AACrE,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAAY,SAAS,EAAE,WAAW;AAAA,MAC1D,QAAQ,EAAC,OAAM;AAAA,MACf,mBAAmB,OAAK;AAAA,IAC5B,CAAC;AACD,WAAO;AAAA,EACX;AACJ;;;AC3BA,OAAOC,SAAO;AAIP,IAAM,SAAN,MAAa;AAAA,EACC;AAAA,EAEjB,YAAY,GAAkB;AAC1B,SAAK,IAAI;AAAA,EACb;AAAA,EAEA,OAAO,YAA8B;AACjC,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,SAAS;AACX,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,OAAO,OAAO,OAA+B;AACzC,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAAqC,WAAW,EAAE,EAAE;AAChF,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OAAO,SAA4D;AACxE,WAAO,kBAAkB,MAAM,IAAI;AACnC,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,KAAsC,WAAW,IAAI;AACjF,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OAAO,IAAY,SAA4D;AACpF,WAAO,kBAAkB,MAAM,IAAI;AACnC,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,MAAuC,WAAW,EAAE,IAAI,IAAI;AACxF,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,OAAO,OAA8B;AAC1C,UAAM,KAAK,EAAE,OAAO,WAAW,EAAE,EAAE;AAAA,EACvC;AAAA,EAEA,mBAAmB,OAAO,OAA+B;AACrD,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,WAAW,EAAE,OAAO;AACtB,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,aAAa,OAAO,IAAY,SAAkC;AAC9D,UAAM,KAAK,EAAE,KAAK,WAAW,EAAE,SAAS,EAAC,KAAI,CAAC;AAAA,EAClD;AAAA,EAEA,cAAc,OAAO,IAAY,WAAkC;AAC/D,UAAM,KAAK,EAAE,OAAO,WAAW,EAAE,SAAS,MAAM,EAAE;AAAA,EACtD;AAAA,EAEA,oBAAoB,OAAO,OAAgC;AACvD,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,WAAW,EAAE,QAAQ;AACvB,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,cAAc,OAAO,IAAY,UAAmC;AAChE,UAAM,KAAK,EAAE,KAAK,WAAW,EAAE,UAAU,EAAC,MAAK,CAAC;AAAA,EACpD;AAAA,EAEA,eAAe,OAAO,IAAY,YAAmC;AACjE,UAAM,KAAK,EAAE,OAAO,WAAW,EAAE,UAAU,OAAO,EAAE;AAAA,EACxD;AAAA,EAEA,sBAAsB,OAAO,OAA6C;AACtE,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,WAAW,EAAE,UAAU;AACzB,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,gBAAgB,OAAO,IAAY,YAAqC;AACpE,UAAM,KAAK,EAAE,KAAK,WAAW,EAAE,YAAY,EAAC,QAAO,CAAC;AAAA,EACxD;AAAA,EAEA,iBAAiB,OAAO,IAAY,cAAqC;AACrE,UAAM,KAAK,EAAE,OAAO,WAAW,EAAE,YAAY,SAAS,EAAE;AAAA,EAC5D;AACJ;AAGA,IAAM,oBAAoBA,IAAE,OAAO;AAAA,EAC/B,MAAMA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,QAAQA,IAAE,OAAO;AAAA,EACjB,QAAQA,IAAE,OAAO;AAAA,EACjB,WAAWA,IAAE,QAAQ,EAAE,SAAS;AACpC,CAAC;;;ACnFM,IAAMC,UAAN,MAAa;AAAA,EACC;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,WAA0B;AAClC,SAAK,IAAI;AAET,SAAK,QAAQ,IAAI,MAAM,SAAS;AAChC,SAAK,QAAQ,IAAI,MAAM,SAAS;AAChC,SAAK,gBAAgB,IAAI,cAAc,SAAS;AAChD,SAAK,QAAQ,IAAI,MAAM,SAAS;AAChC,SAAK,OAAO,IAAI,KAAK,SAAS;AAC9B,SAAK,SAAS,IAAI,OAAO,SAAS;AAAA,EACtC;AAAA,EAEA,cAAc,OACV,QACA,OAAe,MACgB;AAC/B,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAE1B,YAAY;AAAA,MACV,QAAQ,EAAC,QAAQ,KAAI;AAAA,IACzB,CAAC;AACD,WAAO,KAAK,KAAK,IAAI,OAAK,EAAE,UAAU;AAAA,EAC1C;AAAA,EAEA,eAAe,OAAO,SAAyE;AAC3F,WAAO,mBAAmB,MAAM,IAAI;AACpC,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,KAAmD,YAAY,IAAI;AAC/F,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,wBAAwB,OAAO,aAAqB,YAAiE;AACjH,UAAM,EAAC,KAAI,IAAI,MAAM,KAAK,EAAE,IAAkD,qBAAqB,WAAW,IAAI;AAAA,MAC9G,QAAQ,EAAC,SAAS,SAAS,KAAK,GAAG,EAAC;AAAA,IACxC,CAAC;AACD,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,UAAU,CAAC,cAAsB,IAAI,QAAQ,KAAK,GAAG,SAAS;AAClE;;;AC1DA,OAAOC,SAAO;AACd,OAAOC,YAA2C;;;AC2B3C,IAAM,uBAAN,cAAmC,MAAM;AAAA,EAC5C;AAAA,EACA;AAAA,EAEA,YAAY,SAAiB,MAA0B,QAAgB;AACnE,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,SAAS;AAAA,EAClB;AACJ;;;ADjCO,IAAM,QAAN,MAAY;AAAA,EACE;AAAA,EACA;AAAA,EACR;AAAA,EAET,YAAY,KAAa,OAAe,MAAgC,SAAiB,QAAQ;AAC7F,SAAK,WAAWC,IAAE,IAAI,oBAAoB,EAAE,UAAU,CAAAC,SAAO,IAAI,IAAIA,IAAG,EAAE,IAAI,EAAE,MAAM,GAAG;AACzF,SAAK,QAAQD,IAAE,OAAO,EAAE,MAAM,4BAA4B,oBAAoB,EAAE,MAAM,KAAK;AAE3F,SAAK,YAAYE,OAAM,OAAO;AAAA,MAC1B,SAAS,KAAK,SAAS,QAAQ,QAAQ,EAAE,IAAE,GAAG,MAAM,IAAI,IAAI;AAAA,MAC5D,SAAS;AAAA,MACT,SAAS;AAAA,QACL,eAAe,UAAU,KAAK,KAAK;AAAA,MACvC;AAAA,IACJ,CAAC;AAED,SAAK,UAAU,aAAa,SAAS,IAAI,QAAW,CAAC,UAAa;AAC9D,UAAI,MAAM,YAAY,MAAM,SAAS,WAAW,KAAK;AACjD,eAAO,QAAQ,OAAO,IAAI;AAAA,UACtB;AAAA,UACA,MAAM,SAAS;AAAA,UACf,MAAM,SAAS;AAAA,QACnB,CAAC;AAAA,MACL;AACA,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC/B,CAAC;AAAA,EACL;AACJ;;;AE5BO,IAAM,gBAAN,cAA4B,OAAU;AAAA,EACzC,YAAY,KAAa,OAAe,SAAiB,QAAQ;AAC7D,UAAM,KAAK,IAAI,MAAM,KAAK,OAAO,UAAU,MAAM;AACjD,UAAM,GAAG,SAAS;AAAA,EACtB;AACJ;AAEO,IAAM,qBAAN,cAAiCC,QAAS;AAAA,EAC7C,YAAY,KAAa,OAAe,SAAiB,QAAQ;AAC7D,UAAM,KAAK,IAAI,MAAM,KAAK,OAAO,eAAe,MAAM;AACtD,UAAM,GAAG,SAAS;AAAA,EACtB;AACJ;","names":["z","z","axios","z","z","z","z","z","z","z","z","z","z","z","z","z","Client","z","axios","z","url","axios","Client"]}
|