@pelican.ts/sdk 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +12 -9
  2. package/dist/index.d.mts +911 -70
  3. package/dist/index.d.ts +911 -70
  4. package/dist/index.js +943 -17
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +943 -17
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/types.d.ts +1075 -0
  9. package/package.json +12 -3
  10. package/scripts/create-types.ts +24 -0
  11. package/src/api/application/client.ts +40 -0
  12. package/src/api/application/database_hosts.ts +70 -0
  13. package/src/api/application/nodes.ts +73 -46
  14. package/src/api/application/nodes_allocations.ts +4 -6
  15. package/src/api/application/roles.ts +53 -0
  16. package/src/api/application/servers.ts +135 -0
  17. package/src/api/application/servers_databases.ts +49 -0
  18. package/src/api/application/types/container.ts +1 -3
  19. package/src/api/application/types/database_host.ts +11 -0
  20. package/src/api/application/types/index.ts +8 -0
  21. package/src/api/application/types/node.ts +41 -6
  22. package/src/api/application/types/role.ts +8 -0
  23. package/src/api/application/types/server.ts +5 -5
  24. package/src/api/{common/types/server_allocations.ts → application/types/server_allocation.ts} +5 -4
  25. package/src/api/application/types/user.ts +7 -7
  26. package/src/api/application/users.ts +36 -26
  27. package/src/api/base/request.ts +3 -3
  28. package/src/api/client/server_allocations.ts +9 -9
  29. package/src/api/client/server_backups.ts +7 -7
  30. package/src/api/client/server_databases.ts +7 -7
  31. package/src/api/client/types/index.ts +5 -0
  32. package/src/api/client/types/server.ts +2 -2
  33. package/src/api/client/types/server_allocation.ts +11 -0
  34. package/src/api/common/types/enums.ts +21 -0
  35. package/src/api/common/types/index.ts +9 -0
  36. package/src/api/common/types/server_backup.ts +1 -1
  37. package/src/api/common/types/server_database.ts +1 -1
  38. package/src/index.ts +4 -4
  39. package/src/types.ts +3 -0
@@ -1,7 +1,8 @@
1
1
  import {GenericListResponse, GenericResponse} from "@/api/base/types";
2
- import {Allocation} from "@/api/common/types/server_allocations";
2
+ import {Allocation} from "@/api/application/types/server_allocation";
3
3
  import {Location} from "@/api/application/types/location";
4
- import {Server} from "@/api/application/types/server";
4
+ import {ApplicationServer} from "@/api/application/types/server";
5
+ import {Nullable} from "@/utils/types";
5
6
 
6
7
 
7
8
  export type Node = {
@@ -9,8 +10,7 @@ export type Node = {
9
10
  uuid: string,
10
11
  public: boolean,
11
12
  name: string,
12
- description: string,
13
- location_id: number,
13
+ description: Nullable<string>,
14
14
  fqdn: string,
15
15
  scheme: "https" | "http",
16
16
  behind_proxy: boolean,
@@ -19,15 +19,50 @@ export type Node = {
19
19
  memory_overallocate: number,
20
20
  disk: number,
21
21
  disk_overallocate: number,
22
+ cpu: number,
23
+ cpu_overallocate: number,
22
24
  upload_size: number,
23
25
  daemon_listen: number,
24
26
  daemon_sftp: number,
27
+ daemon_sftp_alias: Nullable<string>,
25
28
  daemon_base: string,
29
+ daemon_connect: number,
26
30
  created_at: string,
27
- updated_at: string | null
31
+ updated_at: Nullable<string>,
32
+ tags: string[],
33
+ allocated_resources: {
34
+ memory: number,
35
+ disk: number,
36
+ cpu: number
37
+ },
28
38
  relationships?: {
29
39
  allocations?: GenericListResponse<GenericResponse<Allocation, "allocation">>,
30
40
  location?: GenericResponse<Location, "location">,
31
- servers?: GenericListResponse<GenericResponse<Server, "server">>
41
+ servers?: GenericListResponse<GenericResponse<ApplicationServer, "server">>
32
42
  }
43
+ }
44
+
45
+ export type NodeConfiguration = {
46
+ debug: boolean,
47
+ uuid: string,
48
+ token_id: string,
49
+ token: string,
50
+ api: {
51
+ host: string,
52
+ port: number,
53
+ upload_limit: number,
54
+ ssl: {
55
+ enabled: boolean,
56
+ cert: string,
57
+ key: string
58
+ }
59
+ },
60
+ system: {
61
+ data: string,
62
+ sftp: {
63
+ bind_port: number,
64
+ }
65
+ },
66
+ allowed_mounts: string[],
67
+ remote: string
33
68
  }
@@ -0,0 +1,8 @@
1
+
2
+
3
+ export type Role = {
4
+ id: number,
5
+ name: string,
6
+ created_at: string,
7
+ updated_at: string
8
+ }
@@ -1,24 +1,24 @@
1
1
  import {FeatureLimits, ServerLimits} from "@/api/common/types/server_limits";
2
2
  import {Container} from "@/api/application/types/container";
3
+ import {Nullable} from "@/utils/types";
3
4
 
4
5
 
5
- export type Server = {
6
+ export type ApplicationServer = {
6
7
  id: number,
7
- external_id: string | null,
8
+ external_id: Nullable<string>,
8
9
  uuid: string,
9
10
  identifier: string,
10
11
  name: string,
11
12
  description: string,
12
- status: any | null,
13
+ status: Nullable<unknown>,
13
14
  suspended: boolean,
14
15
  limits: ServerLimits,
15
16
  feature_limits: FeatureLimits,
16
17
  user: number,
17
18
  node: number,
18
19
  allocation: number,
19
- nest: number,
20
20
  egg: number,
21
21
  container: Container,
22
22
  created_at: string,
23
- updated_at: string | null
23
+ updated_at: Nullable<string>
24
24
  }
@@ -1,20 +1,21 @@
1
1
  import {GenericResponse} from "@/api/base/types";
2
- import {Server} from "@/api/application/types/server";
2
+ import {ApplicationServer} from "@/api/application/types/server";
3
+ import {Node} from "@/api/application/types/node";
3
4
  import {Nullable} from "@/utils/types";
4
5
 
5
6
 
6
7
  export type Allocation = {
7
8
  id: number,
8
9
  ip: string,
9
- ip_alias: Nullable<string>,
10
+ alias: Nullable<string>,
10
11
  port: number,
11
12
  notes: Nullable<string>,
12
- is_default: boolean
13
+ assigned: boolean
13
14
  }
14
15
 
15
16
  export type AllocationRel = Allocation & {
16
17
  relationships?: {
17
18
  node?: GenericResponse<Node, "node">,
18
- server?: GenericResponse<Server, "server">
19
+ server?: GenericResponse<ApplicationServer, "server">
19
20
  }
20
21
  }
@@ -1,20 +1,20 @@
1
1
  import {GenericListResponse, GenericResponse} from "@/api/base/types";
2
- import {Server} from "@/api/application/types/server";
2
+ import {ApplicationServer} from "@/api/application/types/server";
3
+ import {Nullable} from "@/utils/types";
3
4
 
4
- export type User = {
5
+ export type ApplicationUser = {
5
6
  id: number,
6
- external_id: string | null,
7
+ external_id: Nullable<string>,
7
8
  uuid: string,
8
9
  username: string,
9
10
  email: string,
10
- first_name: string,
11
- last_name: string,
12
11
  language: string,
13
12
  root_admin: string,
13
+ "2fa_enabled": boolean,
14
14
  "2fa": boolean,
15
15
  created_at: string,
16
- updated_at: string,
16
+ updated_at: Nullable<string>,
17
17
  relationships?: {
18
- servers: GenericListResponse<GenericResponse<Server>>
18
+ servers: GenericListResponse<GenericResponse<ApplicationServer>>
19
19
  }
20
20
  }
@@ -1,9 +1,10 @@
1
1
  import {AxiosInstance} from "axios";
2
2
  import z from "zod";
3
3
  import {GenericListResponse, GenericResponse} from "@/api/base/types";
4
- import {User} from "@/api/application/types/user";
4
+ import {ApplicationUser} from "@/api/application/types/user";
5
5
  import {ArrayQueryParams, SortParam} from "@/utils/transform";
6
6
  import {ExactlyOneKey} from "@/utils/types";
7
+ import {languagesSchema, timezonesSchema} from "@/api/common/types/enums";
7
8
 
8
9
 
9
10
  export class Users {
@@ -14,12 +15,12 @@ export class Users {
14
15
  }
15
16
 
16
17
  list = async (
17
- {...opts}: ListType,
18
+ opts: ListType,
18
19
  page: number = 1
19
- ): Promise<User[]> => {
20
+ ): Promise<ApplicationUser[]> => {
20
21
  z.number().positive().parse(page)
21
22
  const {data} = await this.r.get<
22
- GenericListResponse<GenericResponse<User, "user">>
23
+ GenericListResponse<GenericResponse<ApplicationUser, "user">>
23
24
  >("/users", {
24
25
  params: {
25
26
  include: opts.include?.join(","),
@@ -37,10 +38,10 @@ export class Users {
37
38
  info = async (
38
39
  id: number,
39
40
  {include}: { include?: ("servers")[] }
40
- ): Promise<User> => {
41
+ ): Promise<ApplicationUser> => {
41
42
  z.number().positive().parse(id)
42
43
  const {data} = await this.r.get<
43
- GenericResponse<User, "user">
44
+ GenericResponse<ApplicationUser, "user">
44
45
  >(`/users/${id}`, {
45
46
  params: {include: include?.join(",")}
46
47
  })
@@ -50,24 +51,27 @@ export class Users {
50
51
  infoByExternal = async (
51
52
  external_id: string,
52
53
  {include}: { include?: ("servers")[] }
53
- ): Promise<User> => {
54
+ ): Promise<ApplicationUser> => {
54
55
  const {data} = await this.r.get<
55
- GenericResponse<User, "user">
56
- >(`/users/external/${external_id}`)
56
+ GenericResponse<ApplicationUser, "user">
57
+ >(`/users/external/${external_id}`, {
58
+ params: {include: include?.join(",")}
59
+ })
57
60
  return data.attributes
58
61
  }
59
62
 
60
- create = async (user: CreateType): Promise<User> => {
63
+ create = async (user: z.infer<typeof CreateSchema>): Promise<ApplicationUser> => {
64
+ user = CreateSchema.parse(user)
61
65
  const {data} = await this.r.post<
62
- GenericResponse<User, "user">
66
+ GenericResponse<ApplicationUser, "user">
63
67
  >("/users", user)
64
68
  return data.attributes
65
69
  }
66
70
 
67
- update = async (id: number, user: UpdateType): Promise<User> => {
68
- z.number().positive().parse(id)
69
- const {data} = await this.r.put<
70
- GenericResponse<User, "user">
71
+ update = async (id: number, user: z.infer<typeof CreateSchema>): Promise<ApplicationUser> => {
72
+ user = CreateSchema.parse(user)
73
+ const {data} = await this.r.patch<
74
+ GenericResponse<ApplicationUser, "user">
71
75
  >(`/users/${id}`, user)
72
76
  return data.attributes
73
77
  }
@@ -77,6 +81,15 @@ export class Users {
77
81
  await this.r.delete(`/users/${id}`)
78
82
  }
79
83
 
84
+ addRoles = async (id: number, roles: number[]): Promise<void> => {
85
+ z.number().positive().parse(id)
86
+ await this.r.patch(`/users/${id}/roles/assign`, {roles})
87
+ }
88
+
89
+ removeRoles = async (id: number, roles: number[]): Promise<void> => {
90
+ z.number().positive().parse(id)
91
+ await this.r.patch(`/users/${id}/roles/remove`, {roles})
92
+ }
80
93
  }
81
94
 
82
95
  type ListType = {
@@ -90,14 +103,11 @@ type ListFilters = {
90
103
 
91
104
  type ListSort = ExactlyOneKey<"id" | "uuid", "asc" | "desc">
92
105
 
93
- type CreateType = {
94
- email: string,
95
- username: string,
96
- first_name: string,
97
- last_name: string
98
- }
99
-
100
- type UpdateType = CreateType & {
101
- language: string
102
- password: string
103
- }
106
+ const CreateSchema = z.object({
107
+ email: z.email(),
108
+ external_id: z.string().max(255).optional(),
109
+ username: z.string().min(1).max(255),
110
+ password: z.string().optional(),
111
+ language: languagesSchema,
112
+ timezone: timezonesSchema
113
+ })
@@ -7,12 +7,12 @@ export class Agent {
7
7
  private readonly token: string
8
8
  readonly requester: AxiosInstance
9
9
 
10
- constructor(url: string, token: string, type: "client" | "application") {
11
- this.base_url = z.url("Invalid URL Schema").parse(url)
10
+ constructor(url: string, token: string, type: "client" | "application", suffix: string = "/api") {
11
+ this.base_url = z.url("Invalid URL Schema").transform(url => new URL(url).href).parse(url)
12
12
  this.token = z.string().regex(/^(ptl[ac]|pacc|papp)_.+$/, "Invalid token type").parse(token)
13
13
 
14
14
  this.requester = axios.create({
15
- baseURL: this.base_url.replace(/\/+$/, "")+`/api/${type}`,
15
+ baseURL: this.base_url.replace(/\/+$/, "")+`${suffix}/${type}`,
16
16
  timeout: 3000,
17
17
  headers: {
18
18
  Authorization: `Bearer ${this.token}`
@@ -1,6 +1,6 @@
1
1
  import {AxiosInstance} from "axios";
2
2
  import {GenericListResponse, GenericResponse} from "@/api/base/types";
3
- import {Allocation} from "@/api/common/types/server_allocations";
3
+ import {ServerAllocation} from "@/api/client/types/server_allocation";
4
4
 
5
5
  export class ServerAllocations {
6
6
  private readonly r: AxiosInstance
@@ -11,30 +11,30 @@ export class ServerAllocations {
11
11
  this.id = id
12
12
  }
13
13
 
14
- list = async (): Promise<Allocation[]> => {
14
+ list = async (): Promise<ServerAllocation[]> => {
15
15
  const {data} = await this.r.get<
16
- GenericListResponse<GenericResponse<Allocation, "allocation">>
16
+ GenericListResponse<GenericResponse<ServerAllocation, "allocation">>
17
17
  >(`/servers/${this.id}/network/allocations`)
18
18
  return data.data.map(r => r.attributes)
19
19
  }
20
20
 
21
- autoAssign = async (): Promise<Allocation> => {
21
+ autoAssign = async (): Promise<ServerAllocation> => {
22
22
  const {data} = await this.r.post<
23
- GenericResponse<Allocation, "allocation">
23
+ GenericResponse<ServerAllocation, "allocation">
24
24
  >(`/servers/${this.id}/network/allocations`)
25
25
  return data.attributes
26
26
  }
27
27
 
28
- setNotes = async (alloc_id: number, notes: string): Promise<Allocation> => {
28
+ setNotes = async (alloc_id: number, notes: string): Promise<ServerAllocation> => {
29
29
  const {data} = await this.r.post<
30
- GenericResponse<Allocation, "allocation">
30
+ GenericResponse<ServerAllocation, "allocation">
31
31
  >(`/servers/${this.id}/network/allocations/${alloc_id}`, {notes})
32
32
  return data.attributes
33
33
  }
34
34
 
35
- setPrimary = async (alloc_id: number): Promise<Allocation> => {
35
+ setPrimary = async (alloc_id: number): Promise<ServerAllocation> => {
36
36
  const {data} = await this.r.post<
37
- GenericResponse<Allocation, "allocation">
37
+ GenericResponse<ServerAllocation, "allocation">
38
38
  >(`/servers/${this.id}/network/allocations/${alloc_id}/primary`)
39
39
  return data.attributes
40
40
  }
@@ -1,5 +1,5 @@
1
1
  import axios, {AxiosInstance} from "axios";
2
- import {Backup} from "@/api/common/types/server_backup";
2
+ import {ServerBackup} from "@/api/common/types/server_backup";
3
3
  import z, {string} from "zod";
4
4
  import {GenericListResponse, GenericResponse} from "@/api/base/types";
5
5
 
@@ -13,10 +13,10 @@ export class ServerBackups {
13
13
  this.id = id
14
14
  }
15
15
 
16
- list = async (page: number = 1): Promise<Backup[]> => {
16
+ list = async (page: number = 1): Promise<ServerBackup[]> => {
17
17
  z.number().positive().parse(page)
18
18
  const {data} = await this.r.get<
19
- GenericListResponse<GenericResponse<Backup, "backup">>
19
+ GenericListResponse<GenericResponse<ServerBackup, "backup">>
20
20
  >(`/servers/${this.id}/backups`, {
21
21
  params: {page}
22
22
  })
@@ -28,10 +28,10 @@ export class ServerBackups {
28
28
  name?: string,
29
29
  is_locked: boolean,
30
30
  ignored_files: string[],
31
- }): Promise<Backup> => {
31
+ }): Promise<ServerBackup> => {
32
32
  args.name = z.string().max(255).optional().parse(args.name)
33
33
  const {data} = await this.r.post<
34
- GenericResponse<Backup, "backup">
34
+ GenericResponse<ServerBackup, "backup">
35
35
  >(`/servers/${this.id}/backups`, {
36
36
  name: args.name,
37
37
  is_locked: args.is_locked,
@@ -40,9 +40,9 @@ export class ServerBackups {
40
40
  return data.attributes
41
41
  }
42
42
 
43
- info = async (backup_uuid: string): Promise<Backup> => {
43
+ info = async (backup_uuid: string): Promise<ServerBackup> => {
44
44
  const {data} = await this.r.get<
45
- GenericResponse<Backup, "backup">
45
+ GenericResponse<ServerBackup, "backup">
46
46
  >(`/servers/${this.id}/backups/${backup_uuid}`)
47
47
  return data.attributes
48
48
  }
@@ -1,7 +1,7 @@
1
1
  import {AxiosInstance} from "axios";
2
2
  import z from "zod";
3
3
  import {GenericListResponse, GenericResponse} from "@/api/base/types";
4
- import {Database} from "@/api/common/types/server_database";
4
+ import {ServerDatabase} from "@/api/common/types/server_database";
5
5
  // TODO: Check for validity
6
6
 
7
7
  export class ServerDatabases {
@@ -15,26 +15,26 @@ export class ServerDatabases {
15
15
 
16
16
  list = async (
17
17
  include?: ("password")[], page: number = 1
18
- ): Promise<Database[]> => {
18
+ ): Promise<ServerDatabase[]> => {
19
19
  z.number().positive().parse(page)
20
20
  const {data} = await this.r.get<
21
- GenericListResponse<GenericResponse<Database, "server_database">>
21
+ GenericListResponse<GenericResponse<ServerDatabase, "server_database">>
22
22
  >(`/servers/${this.id}/databases`, {
23
23
  params: {include: include?.join(","), page}
24
24
  })
25
25
  return data.data.map(d => d.attributes)
26
26
  }
27
27
 
28
- create = async (database: string, remote: string): Promise<Database> => {
28
+ create = async (database: string, remote: string): Promise<ServerDatabase> => {
29
29
  const {data} = await this.r.post<
30
- GenericResponse<Database, "server_database">
30
+ GenericResponse<ServerDatabase, "server_database">
31
31
  >(`/servers/${this.id}/databases`, {database, remote})
32
32
  return data.attributes
33
33
  }
34
34
 
35
- rotatePassword = async (database_id: string): Promise<Database> => {
35
+ rotatePassword = async (database_id: string): Promise<ServerDatabase> => {
36
36
  const {data} = await this.r.post<
37
- GenericResponse<Database, "server_database">
37
+ GenericResponse<ServerDatabase, "server_database">
38
38
  >(`/servers/${this.id}/databases/${database_id}/rotate-password`)
39
39
  return data.attributes
40
40
  }
@@ -0,0 +1,5 @@
1
+ export * from "./websocket"
2
+ export * from "./server_allocation"
3
+ export * from "./server_subuser"
4
+ export * from "./server"
5
+ export * from "./user"
@@ -2,7 +2,7 @@ import {GenericListResponse, GenericResponse} from "@/api/base/types";
2
2
  import {EggVariable} from "@/api/common/types/egg";
3
3
  import {ServerSubuser} from "@/api/client/types/server_subuser";
4
4
  import {FeatureLimits, ServerLimits} from "@/api/common/types/server_limits";
5
- import {Allocation} from "@/api/common/types/server_allocations";
5
+ import {ServerAllocation} from "@/api/client/types/server_allocation";
6
6
  import {Nullable} from "@/utils/types";
7
7
 
8
8
  export type Server = {
@@ -29,7 +29,7 @@ export type Server = {
29
29
  is_installing: boolean,
30
30
  is_transferring: boolean,
31
31
  relationships: {
32
- allocations: GenericListResponse<GenericResponse<Allocation, "allocation">>,
32
+ allocations: GenericListResponse<GenericResponse<ServerAllocation, "allocation">>,
33
33
  variables: GenericListResponse<GenericResponse<EggVariable, "egg_variable">>,
34
34
  egg?: GenericResponse<{
35
35
  uuid: string,
@@ -0,0 +1,11 @@
1
+ import {Nullable} from "@/utils/types";
2
+
3
+
4
+ export type ServerAllocation = {
5
+ id: number,
6
+ ip: string,
7
+ alias: Nullable<string>,
8
+ port: number,
9
+ notes: Nullable<string>,
10
+ is_default: boolean
11
+ }
@@ -0,0 +1,21 @@
1
+ import z from "zod";
2
+
3
+ export const languagesSchema = z.enum([
4
+ "af", "ak", "am", "ar", "as", "az", "be", "bg", "bm", "bn", "bo", "br", "bs", "ca", "ce", "cs", "cv", "cy",
5
+ "da", "de", "dz", "ee", "el", "en", "eo", "es", "et", "eu", "fa", "ff", "fi", "fo", "fr", "fy", "ga", "gd",
6
+ "gl", "gu", "gv", "ha", "he", "hi", "hr", "hu", "hy", "ia", "id", "ig", "ii", "is", "it", "ja", "jv", "ka",
7
+ "ki", "kk", "kl", "km", "kn", "ko", "ks", "ku", "kw", "ky", "lb", "lg", "ln", "lo", "lt", "lu", "lv", "mg",
8
+ "mi", "mk", "ml", "mn", "mr", "ms", "mt", "my", "nb", "nd", "ne", "nl", "nn", "no", "om", "or", "os", "pa",
9
+ "pl", "ps", "pt", "qu", "rm", "rn", "ro", "ru", "rw", "sa", "sc", "sd", "se", "sg", "si", "sk", "sl", "sn",
10
+ "so", "sq", "sr", "su", "sv", "sw", "ta", "te", "tg", "th", "ti", "tk", "to", "tr", "tt", "ug", "uk", "ur",
11
+ "uz", "vi", "wo", "xh", "yi", "yo", "zh", "zu"
12
+ ])
13
+
14
+ export type LanguagesType = z.infer<typeof languagesSchema>
15
+
16
+ // Questionable choices at their finest
17
+ export const timezonesSchema = z.enum([
18
+ "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"
19
+ ])
20
+
21
+ export type TimezonesType = z.infer<typeof timezonesSchema>
@@ -0,0 +1,9 @@
1
+ export * from "./server_power"
2
+ export * from "./server_database"
3
+ export * from "./server_limits"
4
+ export * from "./server_startup"
5
+ export * from "./server_backup"
6
+ export * from "./egg"
7
+ export * from "./server_files"
8
+ export * from "./enums"
9
+ export * from "./server_schedule"
@@ -1,7 +1,7 @@
1
1
  import {Nullable} from "@/utils/types";
2
2
 
3
3
 
4
- export type Backup = {
4
+ export type ServerBackup = {
5
5
  uuid: string
6
6
  is_successful: boolean,
7
7
  is_locked: boolean,
@@ -1,6 +1,6 @@
1
1
  import {GenericResponse} from "@/api/base/types";
2
2
 
3
- export type Database = {
3
+ export type ServerDatabase = {
4
4
  id: string,
5
5
  host: {
6
6
  address: string,
package/src/index.ts CHANGED
@@ -3,15 +3,15 @@ import {Client as AppClient} from "@/api/application/client";
3
3
  import {Agent} from "@/api/base/request";
4
4
 
5
5
  export class PelicanClient extends UserClient{
6
- constructor(url: string, token: string) {
7
- const ax = new Agent(url, token, "client")
6
+ constructor(url: string, token: string, suffix: string = "/api") {
7
+ const ax = new Agent(url, token, "client", suffix)
8
8
  super(ax.requester)
9
9
  }
10
10
  }
11
11
 
12
12
  export class PelicanApplication extends AppClient{
13
- constructor(url: string, token: string) {
14
- const ax = new Agent(url, token, "application")
13
+ constructor(url: string, token: string, suffix: string = "/api") {
14
+ const ax = new Agent(url, token, "application", suffix)
15
15
  super(ax.requester)
16
16
  }
17
17
  }
package/src/types.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./api/common/types"
2
+ export * from "./api/application/types"
3
+ export * from "./api/client/types"