@meowpanel/api 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/esm/mod.d.ts +37 -16
  2. package/esm/mod.d.ts.map +1 -1
  3. package/esm/mod.js +25 -7
  4. package/esm/src/client.d.ts +48 -11
  5. package/esm/src/client.d.ts.map +1 -1
  6. package/esm/src/client.js +53 -12
  7. package/esm/src/http.d.ts +2 -2
  8. package/esm/src/http.d.ts.map +1 -1
  9. package/esm/src/http.js +5 -2
  10. package/esm/src/namespace.d.ts +1 -1
  11. package/esm/src/namespace.js +1 -1
  12. package/esm/src/resources/account.d.ts +50 -19
  13. package/esm/src/resources/account.d.ts.map +1 -1
  14. package/esm/src/resources/account.js +51 -13
  15. package/esm/src/resources/api-keys.d.ts +16 -24
  16. package/esm/src/resources/api-keys.d.ts.map +1 -1
  17. package/esm/src/resources/api-keys.js +16 -20
  18. package/esm/src/resources/auth.d.ts +70 -4
  19. package/esm/src/resources/auth.d.ts.map +1 -1
  20. package/esm/src/resources/auth.js +47 -4
  21. package/esm/src/resources/eggs.d.ts +261 -22
  22. package/esm/src/resources/eggs.d.ts.map +1 -1
  23. package/esm/src/resources/eggs.js +261 -25
  24. package/esm/src/resources/features.d.ts +35 -0
  25. package/esm/src/resources/features.d.ts.map +1 -0
  26. package/esm/src/resources/features.js +21 -0
  27. package/esm/src/resources/hosts.d.ts +151 -21
  28. package/esm/src/resources/hosts.d.ts.map +1 -1
  29. package/esm/src/resources/hosts.js +143 -10
  30. package/esm/src/resources/logs.d.ts +39 -0
  31. package/esm/src/resources/logs.d.ts.map +1 -0
  32. package/esm/src/resources/logs.js +38 -0
  33. package/esm/src/resources/nodes.d.ts +108 -33
  34. package/esm/src/resources/nodes.d.ts.map +1 -1
  35. package/esm/src/resources/nodes.js +116 -24
  36. package/esm/src/resources/permissions.d.ts +45 -0
  37. package/esm/src/resources/permissions.d.ts.map +1 -0
  38. package/esm/src/resources/permissions.js +26 -0
  39. package/esm/src/resources/request-logs.d.ts +91 -0
  40. package/esm/src/resources/request-logs.d.ts.map +1 -0
  41. package/esm/src/resources/request-logs.js +70 -0
  42. package/esm/src/resources/roles.d.ts +128 -0
  43. package/esm/src/resources/roles.d.ts.map +1 -0
  44. package/esm/src/resources/roles.js +142 -0
  45. package/esm/src/resources/server-groups.d.ts +141 -7
  46. package/esm/src/resources/server-groups.d.ts.map +1 -1
  47. package/esm/src/resources/server-groups.js +157 -8
  48. package/esm/src/resources/servers/activity.d.ts +50 -8
  49. package/esm/src/resources/servers/activity.d.ts.map +1 -1
  50. package/esm/src/resources/servers/activity.js +54 -13
  51. package/esm/src/resources/servers/allocations.d.ts +3 -3
  52. package/esm/src/resources/servers/allocations.d.ts.map +1 -1
  53. package/esm/src/resources/servers/allocations.js +7 -7
  54. package/esm/src/resources/servers/backups.d.ts +46 -0
  55. package/esm/src/resources/servers/backups.d.ts.map +1 -0
  56. package/esm/src/resources/servers/backups.js +43 -0
  57. package/esm/src/resources/servers/connection.d.ts +33 -13
  58. package/esm/src/resources/servers/connection.d.ts.map +1 -1
  59. package/esm/src/resources/servers/connection.js +32 -11
  60. package/esm/src/resources/servers/features.d.ts +81 -0
  61. package/esm/src/resources/servers/features.d.ts.map +1 -0
  62. package/esm/src/resources/servers/features.js +60 -0
  63. package/esm/src/resources/servers/files.d.ts +41 -53
  64. package/esm/src/resources/servers/files.d.ts.map +1 -1
  65. package/esm/src/resources/servers/files.js +74 -116
  66. package/esm/src/resources/servers/index.d.ts +46 -27
  67. package/esm/src/resources/servers/index.d.ts.map +1 -1
  68. package/esm/src/resources/servers/index.js +26 -12
  69. package/esm/src/resources/servers/jobs.d.ts +88 -0
  70. package/esm/src/resources/servers/jobs.d.ts.map +1 -0
  71. package/esm/src/resources/servers/jobs.js +115 -0
  72. package/esm/src/resources/servers/node-client.d.ts +33 -0
  73. package/esm/src/resources/servers/node-client.d.ts.map +1 -0
  74. package/esm/src/resources/servers/node-client.js +61 -0
  75. package/esm/src/resources/servers/profiles.d.ts +83 -18
  76. package/esm/src/resources/servers/profiles.d.ts.map +1 -1
  77. package/esm/src/resources/servers/profiles.js +78 -11
  78. package/esm/src/resources/servers/server.d.ts +13 -28
  79. package/esm/src/resources/servers/server.d.ts.map +1 -1
  80. package/esm/src/resources/servers/server.js +21 -37
  81. package/esm/src/resources/servers/sftp.d.ts +12 -19
  82. package/esm/src/resources/servers/sftp.d.ts.map +1 -1
  83. package/esm/src/resources/servers/sftp.js +10 -14
  84. package/esm/src/resources/servers/sub-users.d.ts +99 -0
  85. package/esm/src/resources/servers/sub-users.d.ts.map +1 -0
  86. package/esm/src/resources/servers/sub-users.js +94 -0
  87. package/esm/src/resources/servers/types.d.ts +30 -28
  88. package/esm/src/resources/servers/types.d.ts.map +1 -1
  89. package/esm/src/resources/systems.d.ts +124 -0
  90. package/esm/src/resources/systems.d.ts.map +1 -0
  91. package/esm/src/resources/systems.js +139 -0
  92. package/esm/src/resources/users.d.ts +330 -0
  93. package/esm/src/resources/users.d.ts.map +1 -0
  94. package/esm/src/resources/users.js +280 -0
  95. package/esm/src/types.d.ts +18 -1
  96. package/esm/src/types.d.ts.map +1 -1
  97. package/esm/src/types.js +11 -0
  98. package/package.json +1 -1
  99. package/script/mod.d.ts +37 -16
  100. package/script/mod.d.ts.map +1 -1
  101. package/script/mod.js +50 -5
  102. package/script/src/client.d.ts +48 -11
  103. package/script/src/client.d.ts.map +1 -1
  104. package/script/src/client.js +53 -12
  105. package/script/src/http.d.ts +2 -2
  106. package/script/src/http.d.ts.map +1 -1
  107. package/script/src/http.js +5 -2
  108. package/script/src/namespace.d.ts +1 -1
  109. package/script/src/namespace.js +1 -1
  110. package/script/src/resources/account.d.ts +50 -19
  111. package/script/src/resources/account.d.ts.map +1 -1
  112. package/script/src/resources/account.js +50 -12
  113. package/script/src/resources/api-keys.d.ts +16 -24
  114. package/script/src/resources/api-keys.d.ts.map +1 -1
  115. package/script/src/resources/api-keys.js +15 -19
  116. package/script/src/resources/auth.d.ts +70 -4
  117. package/script/src/resources/auth.d.ts.map +1 -1
  118. package/script/src/resources/auth.js +47 -4
  119. package/script/src/resources/eggs.d.ts +261 -22
  120. package/script/src/resources/eggs.d.ts.map +1 -1
  121. package/script/src/resources/eggs.js +267 -26
  122. package/script/src/resources/features.d.ts +35 -0
  123. package/script/src/resources/features.d.ts.map +1 -0
  124. package/script/src/resources/features.js +25 -0
  125. package/script/src/resources/hosts.d.ts +151 -21
  126. package/script/src/resources/hosts.d.ts.map +1 -1
  127. package/script/src/resources/hosts.js +144 -10
  128. package/script/src/resources/logs.d.ts +39 -0
  129. package/script/src/resources/logs.d.ts.map +1 -0
  130. package/script/src/resources/logs.js +42 -0
  131. package/script/src/resources/nodes.d.ts +108 -33
  132. package/script/src/resources/nodes.d.ts.map +1 -1
  133. package/script/src/resources/nodes.js +117 -24
  134. package/script/src/resources/permissions.d.ts +45 -0
  135. package/script/src/resources/permissions.d.ts.map +1 -0
  136. package/script/src/resources/permissions.js +31 -0
  137. package/script/src/resources/request-logs.d.ts +91 -0
  138. package/script/src/resources/request-logs.d.ts.map +1 -0
  139. package/script/src/resources/request-logs.js +75 -0
  140. package/script/src/resources/roles.d.ts +128 -0
  141. package/script/src/resources/roles.d.ts.map +1 -0
  142. package/script/src/resources/roles.js +148 -0
  143. package/script/src/resources/server-groups.d.ts +141 -7
  144. package/script/src/resources/server-groups.d.ts.map +1 -1
  145. package/script/src/resources/server-groups.js +158 -8
  146. package/script/src/resources/servers/activity.d.ts +50 -8
  147. package/script/src/resources/servers/activity.d.ts.map +1 -1
  148. package/script/src/resources/servers/activity.js +54 -12
  149. package/script/src/resources/servers/allocations.d.ts +3 -3
  150. package/script/src/resources/servers/allocations.d.ts.map +1 -1
  151. package/script/src/resources/servers/allocations.js +7 -7
  152. package/script/src/resources/servers/backups.d.ts +46 -0
  153. package/script/src/resources/servers/backups.d.ts.map +1 -0
  154. package/script/src/resources/servers/backups.js +47 -0
  155. package/script/src/resources/servers/connection.d.ts +33 -13
  156. package/script/src/resources/servers/connection.d.ts.map +1 -1
  157. package/script/src/resources/servers/connection.js +32 -11
  158. package/script/src/resources/servers/features.d.ts +81 -0
  159. package/script/src/resources/servers/features.d.ts.map +1 -0
  160. package/script/src/resources/servers/features.js +64 -0
  161. package/script/src/resources/servers/files.d.ts +41 -53
  162. package/script/src/resources/servers/files.d.ts.map +1 -1
  163. package/script/src/resources/servers/files.js +74 -116
  164. package/script/src/resources/servers/index.d.ts +46 -27
  165. package/script/src/resources/servers/index.d.ts.map +1 -1
  166. package/script/src/resources/servers/index.js +26 -12
  167. package/script/src/resources/servers/jobs.d.ts +88 -0
  168. package/script/src/resources/servers/jobs.d.ts.map +1 -0
  169. package/script/src/resources/servers/jobs.js +120 -0
  170. package/script/src/resources/servers/node-client.d.ts +33 -0
  171. package/script/src/resources/servers/node-client.d.ts.map +1 -0
  172. package/script/src/resources/servers/node-client.js +65 -0
  173. package/script/src/resources/servers/profiles.d.ts +83 -18
  174. package/script/src/resources/servers/profiles.d.ts.map +1 -1
  175. package/script/src/resources/servers/profiles.js +77 -10
  176. package/script/src/resources/servers/server.d.ts +13 -28
  177. package/script/src/resources/servers/server.d.ts.map +1 -1
  178. package/script/src/resources/servers/server.js +21 -37
  179. package/script/src/resources/servers/sftp.d.ts +12 -19
  180. package/script/src/resources/servers/sftp.d.ts.map +1 -1
  181. package/script/src/resources/servers/sftp.js +10 -14
  182. package/script/src/resources/servers/sub-users.d.ts +99 -0
  183. package/script/src/resources/servers/sub-users.d.ts.map +1 -0
  184. package/script/src/resources/servers/sub-users.js +99 -0
  185. package/script/src/resources/servers/types.d.ts +30 -28
  186. package/script/src/resources/servers/types.d.ts.map +1 -1
  187. package/script/src/resources/systems.d.ts +124 -0
  188. package/script/src/resources/systems.d.ts.map +1 -0
  189. package/script/src/resources/systems.js +145 -0
  190. package/script/src/resources/users.d.ts +330 -0
  191. package/script/src/resources/users.d.ts.map +1 -0
  192. package/script/src/resources/users.js +287 -0
  193. package/script/src/types.d.ts +18 -1
  194. package/script/src/types.d.ts.map +1 -1
  195. package/script/src/types.js +12 -0
  196. package/esm/src/resources/members.d.ts +0 -138
  197. package/esm/src/resources/members.d.ts.map +0 -1
  198. package/esm/src/resources/members.js +0 -122
  199. package/script/src/resources/members.d.ts +0 -138
  200. package/script/src/resources/members.d.ts.map +0 -1
  201. package/script/src/resources/members.js +0 -127
@@ -1,7 +1,49 @@
1
1
  import type { HttpClient } from '../../http.js';
2
2
  import { ReactiveResource } from '../../reactive.js';
3
- import type { ListOptions, NanoID, Paginated } from '../../types.js';
3
+ import type { IncludeOptions, ListOptions, NanoID, Paginated, ResourceWith } from '../../types.js';
4
+ import { Egg } from '../eggs.js';
4
5
  import type { ServerProfileData } from './types.js';
6
+ /** An egg environment variable configured for a profile. */
7
+ export interface StartupVariable {
8
+ key: string;
9
+ name: string;
10
+ description: string;
11
+ value: string;
12
+ default: string;
13
+ /** Laravel validation rules, e.g. `"required|numeric|min:1"`. */
14
+ rules: string;
15
+ }
16
+ /** Startup command and egg variables. Populated via `include=startup`. */
17
+ export interface ServerStartup {
18
+ command: string;
19
+ variables: Record<string, StartupVariable>;
20
+ }
21
+ /** Type-safe `include` keys for {@link ServerProfilesManager} reads. */
22
+ export type ServerProfileInclude = 'egg' | 'startup' | 'folder';
23
+ /** Maps each {@link ServerProfileInclude} key to the field(s) it guarantees on the {@link ServerProfile} instance. */
24
+ interface ServerProfileIncludeMap {
25
+ egg: {
26
+ egg: Egg;
27
+ };
28
+ startup: {
29
+ startup: ServerStartup;
30
+ };
31
+ folder: {
32
+ folder: string | null;
33
+ };
34
+ }
35
+ /** A {@link ServerProfile} with the fields guaranteed by the requested includes `I`. */
36
+ export type ServerProfileWith<I extends readonly ServerProfileInclude[] = []> = ResourceWith<ServerProfile, ServerProfileIncludeMap, I>;
37
+ /** Fields a profile update can change. `startup` requires `server.startup.manage` (and `server.startup.command.manage` for `command`). */
38
+ export interface ServerProfileUpdate {
39
+ name?: string;
40
+ description?: string | null;
41
+ notes?: string | null;
42
+ startup?: {
43
+ command?: string | null;
44
+ variables?: Record<string, string | null>;
45
+ };
46
+ }
5
47
  /**
6
48
  * A named configuration profile for a server.
7
49
  *
@@ -21,6 +63,18 @@ export declare class ServerProfile extends ReactiveResource {
21
63
  description: string | null;
22
64
  /** Internal notes for this profile. */
23
65
  notes: string | null | undefined;
66
+ /** The egg this profile runs. Requires `server.egg.read`. */
67
+ eggId: NanoID | undefined;
68
+ /** The expanded egg. Populated with `?include=egg` (requires `server.egg.read`). */
69
+ egg: Egg | undefined;
70
+ /** The egg image (Docker image) id this profile uses. */
71
+ eggImageId: NanoID | undefined;
72
+ /** A custom Docker image overriding the egg's default. */
73
+ eggImageOverride: string | null | undefined;
74
+ /** Whether the egg install scripts are skipped for this profile. */
75
+ skipInstallScripts: boolean | undefined;
76
+ /** Startup command and variables. Populated with `include=startup`. */
77
+ startup: ServerStartup | undefined;
24
78
  /** The folder name used to store this profile's files on disk. */
25
79
  folder: string | null | undefined;
26
80
  /** `true` if this is the currently active profile for the server. */
@@ -46,15 +100,11 @@ export declare class ServerProfile extends ReactiveResource {
46
100
  */
47
101
  setAsActive(): Promise<void>;
48
102
  /**
49
- * Update this profile's name, description, or notes.
103
+ * Update this profile's name, description, notes, or startup command and variables.
50
104
  *
51
105
  * @param payload Fields to update.
52
106
  */
53
- update(payload: {
54
- name?: string;
55
- description?: string | null;
56
- notes?: string | null;
57
- }): Promise<void>;
107
+ update(payload: ServerProfileUpdate): Promise<void>;
58
108
  /**
59
109
  * Delete this profile permanently.
60
110
  */
@@ -84,23 +134,25 @@ export declare class ServerProfilesManager {
84
134
  /**
85
135
  * Fetch all profiles for this server.
86
136
  *
87
- * @param opts Pagination options.
137
+ * @param opts Pagination and include options.
88
138
  */
89
- list(opts?: ListOptions): Promise<Paginated<ServerProfile>>;
139
+ list<const I extends readonly ServerProfileInclude[] = []>(opts?: ListOptions & IncludeOptions<ServerProfileInclude, I>): Promise<Paginated<ServerProfileWith<I>>>;
90
140
  /**
91
141
  * Fetch the currently active profile.
92
142
  *
143
+ * @param opts Include options.
93
144
  * @throws {@link ApiError} with `isNotFound === true` if no profile is active.
94
145
  */
95
- getActive(): Promise<ServerProfile>;
146
+ getActive<const I extends readonly ServerProfileInclude[] = []>(opts?: IncludeOptions<ServerProfileInclude, I>): Promise<ServerProfileWith<I>>;
96
147
  /**
97
148
  * Fetch a single profile by ID.
98
149
  *
99
150
  * @param profileId The profile's NanoID.
151
+ * @param opts Include options.
100
152
  */
101
- get(profileId: NanoID): Promise<ServerProfile>;
153
+ get<const I extends readonly ServerProfileInclude[] = []>(profileId: NanoID, opts?: IncludeOptions<ServerProfileInclude, I>): Promise<ServerProfileWith<I>>;
102
154
  /**
103
- * Create a new profile for this server.
155
+ * Create a new profile for this server. A profile binds an egg and image.
104
156
  *
105
157
  * @param payload Profile creation parameters.
106
158
  */
@@ -108,18 +160,30 @@ export declare class ServerProfilesManager {
108
160
  name: string;
109
161
  description?: string;
110
162
  notes?: string;
163
+ eggId: NanoID;
164
+ eggImageId: NanoID;
165
+ eggImageOverride?: string;
166
+ startupCommandOverride?: string;
167
+ skipInstallScripts?: boolean;
111
168
  }): Promise<ServerProfile>;
112
169
  /**
113
- * Update a profile's name, description, or notes.
170
+ * Change a profile's egg, reselecting a valid image and re-basing its variables.
114
171
  *
115
172
  * @param profileId The profile's NanoID.
116
- * @param payload Fields to update.
173
+ * @param eggId The egg to switch to.
174
+ * @param opts `keep: true` carries over all compatible variable overrides;
175
+ * an array keeps only the named variables.
117
176
  */
118
- update(profileId: NanoID, payload: {
119
- name?: string;
120
- description?: string;
121
- notes?: string;
177
+ changeEgg(profileId: NanoID, eggId: NanoID, opts?: {
178
+ keep?: boolean | string[];
122
179
  }): Promise<ServerProfile>;
180
+ /**
181
+ * Update a profile's name, description, notes, or startup command and variables.
182
+ *
183
+ * @param profileId The profile's NanoID.
184
+ * @param payload Fields to update.
185
+ */
186
+ update(profileId: NanoID, payload: ServerProfileUpdate): Promise<ServerProfile>;
123
187
  /**
124
188
  * Set a profile as the active profile for this server.
125
189
  *
@@ -135,4 +199,5 @@ export declare class ServerProfilesManager {
135
199
  */
136
200
  delete(profileId: NanoID): Promise<void>;
137
201
  }
202
+ export {};
138
203
  //# sourceMappingURL=profiles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../../src/src/resources/servers/profiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../../src/src/resources/servers/profiles.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServerProfilesManager = exports.ServerProfile = void 0;
4
4
  const reactive_js_1 = require("../../reactive.js");
5
5
  const types_js_1 = require("../../types.js");
6
+ const eggs_js_1 = require("../eggs.js");
6
7
  /**
7
8
  * A named configuration profile for a server.
8
9
  *
@@ -22,6 +23,18 @@ class ServerProfile extends reactive_js_1.ReactiveResource {
22
23
  description;
23
24
  /** Internal notes for this profile. */
24
25
  notes;
26
+ /** The egg this profile runs. Requires `server.egg.read`. */
27
+ eggId;
28
+ /** The expanded egg. Populated with `?include=egg` (requires `server.egg.read`). */
29
+ egg;
30
+ /** The egg image (Docker image) id this profile uses. */
31
+ eggImageId;
32
+ /** A custom Docker image overriding the egg's default. */
33
+ eggImageOverride;
34
+ /** Whether the egg install scripts are skipped for this profile. */
35
+ skipInstallScripts;
36
+ /** Startup command and variables. Populated with `include=startup`. */
37
+ startup;
25
38
  /** The folder name used to store this profile's files on disk. */
26
39
  folder;
27
40
  /** `true` if this is the currently active profile for the server. */
@@ -50,6 +63,20 @@ class ServerProfile extends reactive_js_1.ReactiveResource {
50
63
  this.name = data.name;
51
64
  this.description = data.description ?? null;
52
65
  this.notes = data.notes;
66
+ this.eggId = data.egg_id ? (0, types_js_1.toNanoID)(data.egg_id) : undefined;
67
+ this.eggImageId = data.egg_image_id ? (0, types_js_1.toNanoID)(data.egg_image_id) : undefined;
68
+ this.eggImageOverride = data.egg_image_override;
69
+ this.skipInstallScripts = data.skip_install_scripts;
70
+ if (data.egg)
71
+ this.egg = new eggs_js_1.Egg(data.egg);
72
+ if (data.startup !== undefined) {
73
+ this.startup = data.startup
74
+ ? {
75
+ command: data.startup.command,
76
+ variables: Object.fromEntries(Object.entries(data.startup.variables).map(([key, v]) => [key, { key, ...v }])),
77
+ }
78
+ : undefined;
79
+ }
53
80
  this.folder = data.folder;
54
81
  this.isActive = data.is_active;
55
82
  this.updatedAt = new Date(data.updated_at);
@@ -65,7 +92,7 @@ class ServerProfile extends reactive_js_1.ReactiveResource {
65
92
  this.applyData(data);
66
93
  }
67
94
  /**
68
- * Update this profile's name, description, or notes.
95
+ * Update this profile's name, description, notes, or startup command and variables.
69
96
  *
70
97
  * @param payload Fields to update.
71
98
  */
@@ -110,41 +137,81 @@ class ServerProfilesManager {
110
137
  /**
111
138
  * Fetch all profiles for this server.
112
139
  *
113
- * @param opts Pagination options.
140
+ * @param opts Pagination and include options.
114
141
  */
115
142
  async list(opts = {}) {
116
- const result = await this.http.list(`/servers/${this.serverId}/profiles`, opts);
143
+ const extra = {};
144
+ const include = (0, types_js_1.joinIncludes)(opts);
145
+ if (include)
146
+ extra['include'] = include;
147
+ const result = await this.http.list(`/servers/${this.serverId}/profiles`, opts, extra);
117
148
  return { ...result, data: result.data.map((d) => this.makeProfile(d)) };
118
149
  }
119
150
  /**
120
151
  * Fetch the currently active profile.
121
152
  *
153
+ * @param opts Include options.
122
154
  * @throws {@link ApiError} with `isNotFound === true` if no profile is active.
123
155
  */
124
- async getActive() {
125
- const data = await this.http.get(`/servers/${this.serverId}/profiles/active`);
156
+ async getActive(opts = {}) {
157
+ const params = {};
158
+ const include = (0, types_js_1.joinIncludes)(opts);
159
+ if (include)
160
+ params['include'] = include;
161
+ const data = await this.http.get(`/servers/${this.serverId}/profiles/active`, { params });
126
162
  return this.makeProfile(data);
127
163
  }
128
164
  /**
129
165
  * Fetch a single profile by ID.
130
166
  *
131
167
  * @param profileId The profile's NanoID.
168
+ * @param opts Include options.
132
169
  */
133
- async get(profileId) {
134
- const data = await this.http.get(`/servers/${this.serverId}/profiles/${profileId}`);
170
+ async get(profileId, opts = {}) {
171
+ const params = {};
172
+ const include = (0, types_js_1.joinIncludes)(opts);
173
+ if (include)
174
+ params['include'] = include;
175
+ const data = await this.http.get(`/servers/${this.serverId}/profiles/${profileId}`, { params });
135
176
  return this.makeProfile(data);
136
177
  }
137
178
  /**
138
- * Create a new profile for this server.
179
+ * Create a new profile for this server. A profile binds an egg and image.
139
180
  *
140
181
  * @param payload Profile creation parameters.
141
182
  */
142
183
  async create(payload) {
143
- const data = await this.http.post(`/servers/${this.serverId}/profiles`, payload);
184
+ const data = await this.http.post(`/servers/${this.serverId}/profiles`, {
185
+ name: payload.name,
186
+ description: payload.description,
187
+ notes: payload.notes,
188
+ egg_id: payload.eggId,
189
+ egg_image_id: payload.eggImageId,
190
+ egg_image_override: payload.eggImageOverride,
191
+ startup_command_override: payload.startupCommandOverride,
192
+ skip_install_scripts: payload.skipInstallScripts,
193
+ });
194
+ return this.makeProfile(data);
195
+ }
196
+ /**
197
+ * Change a profile's egg, reselecting a valid image and re-basing its variables.
198
+ *
199
+ * @param profileId The profile's NanoID.
200
+ * @param eggId The egg to switch to.
201
+ * @param opts `keep: true` carries over all compatible variable overrides;
202
+ * an array keeps only the named variables.
203
+ */
204
+ async changeEgg(profileId, eggId, opts = {}) {
205
+ const params = {};
206
+ if (opts.keep === true)
207
+ params['keep'] = 'true';
208
+ else if (Array.isArray(opts.keep))
209
+ params['keep'] = opts.keep.join(',');
210
+ const data = await this.http.put(`/servers/${this.serverId}/profiles/${profileId}/egg`, JSON.stringify({ egg_id: eggId }), 'application/json', { params });
144
211
  return this.makeProfile(data);
145
212
  }
146
213
  /**
147
- * Update a profile's name, description, or notes.
214
+ * Update a profile's name, description, notes, or startup command and variables.
148
215
  *
149
216
  * @param profileId The profile's NanoID.
150
217
  * @param payload Fields to update.
@@ -1,37 +1,30 @@
1
1
  import type { HttpClient } from '../../http.js';
2
2
  import { ReactiveResource } from '../../reactive.js';
3
3
  import type { NanoID, PowerAction, PowerState, ServerRestrictedState } from '../../types.js';
4
- import { Egg } from '../eggs.js';
5
4
  import { ServerGroup } from '../server-groups.js';
6
5
  import { ServerActivityManager } from './activity.js';
7
6
  import { ServerAllocationsManager } from './allocations.js';
7
+ import { ServerBackupsManager } from './backups.js';
8
8
  import { ServerConnection } from './connection.js';
9
+ import { ServerFeaturesManager } from './features.js';
9
10
  import { ServerFilesManager } from './files.js';
11
+ import { ServerJobsManager } from './jobs.js';
10
12
  import { ServerProfilesManager } from './profiles.js';
11
13
  import { ServerSftpManager } from './sftp.js';
14
+ import { ServerUserManager } from './sub-users.js';
12
15
  import type { ServerAllocationsData, ServerData, UpdateServerPayload } from './types.js';
13
- /** An egg environment variable configured for a server. */
14
- export interface StartupVariable {
15
- key: string;
16
- name: string;
17
- description: string;
18
- value: string;
19
- default: string;
20
- /** Laravel validation rules, e.g. `"required|numeric|min:1"`. */
21
- rules: string;
22
- }
23
16
  /** Real-time power state and utilization. Populated via `include=status`. */
24
17
  export interface ServerStatus {
25
18
  state: PowerState;
26
19
  /** `null` when the server is offline. */
27
20
  utilization: {
28
- memoryBytes: number;
29
- memoryLimitBytes: number;
21
+ ramBytes: number;
22
+ ramLimitBytes: number;
30
23
  cpuAbsolute: number;
31
24
  networkRxBytes: number;
32
25
  networkTxBytes: number;
33
26
  uptimeMs: number;
34
- diskBytes: number;
27
+ storageBytes: number;
35
28
  } | null;
36
29
  }
37
30
  /** Build and resource limit configuration. Populated via `include=build`. */
@@ -52,17 +45,12 @@ export interface ServerBuild {
52
45
  backup: number | null | undefined;
53
46
  } | null | undefined;
54
47
  }
55
- /** Startup command and egg variables. Populated via `include=startup`. */
56
- export interface ServerStartup {
57
- command: string;
58
- variables: Record<string, StartupVariable>;
59
- }
60
48
  /**
61
49
  * A MeowPanel game server.
62
50
  *
63
51
  * @example
64
52
  * ```ts ignore
65
- * const server = await api.servers.get(id, { include: ['status', 'startup'] });
53
+ * const server = await api.servers.get(id, { include: ['status'] });
66
54
  * server.status; // ServerStatus (guaranteed by include)
67
55
  *
68
56
  * await server.sendPower('start');
@@ -85,19 +73,12 @@ export declare class Server extends ReactiveResource {
85
73
  /** When non-null, overrides the node's reported power state for display. */
86
74
  restrictedState: ServerRestrictedState;
87
75
  readonly groupId: NanoID;
88
- readonly eggId: NanoID;
89
- eggImageId: NanoID | undefined;
90
76
  /** Populated with `include=group`. */
91
77
  group: ServerGroup | undefined;
92
- /** Populated with `include=egg`. */
93
- egg: Egg | undefined;
94
- eggImageOverride: string | null | undefined;
95
78
  /** Populated with `include=status`. Use {@link getStatus} to fetch on demand. */
96
79
  status: ServerStatus | undefined;
97
80
  /** Populated with `include=build`. */
98
81
  build: ServerBuild | undefined;
99
- /** Populated with `include=startup`. */
100
- startup: ServerStartup | undefined;
101
82
  /** Populated with `include=allocations`. */
102
83
  allocationPorts: ServerAllocationsData | undefined;
103
84
  createdAt: Date;
@@ -107,11 +88,15 @@ export declare class Server extends ReactiveResource {
107
88
  readonly profiles: ServerProfilesManager;
108
89
  readonly activity: ServerActivityManager;
109
90
  readonly files: ServerFilesManager;
91
+ readonly backups: ServerBackupsManager;
92
+ readonly jobs: ServerJobsManager;
93
+ readonly subUsers: ServerUserManager;
94
+ readonly features: ServerFeaturesManager;
110
95
  /** @internal */
111
96
  constructor(data: ServerData, http: HttpClient, resolveNodeUrl: () => Promise<string>, onMutated: () => void);
112
97
  /** Apply raw API data, updating all mutable fields. */
113
98
  applyData(data: ServerData): void;
114
- /** Update this server's details, startup config, or primary allocation. */
99
+ /** Update this server's details or primary allocation. */
115
100
  update(payload: UpdateServerPayload): Promise<void>;
116
101
  /** Fetch current power state and utilization from the node. */
117
102
  getStatus(): Promise<ServerStatus>;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/src/resources/servers/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/src/resources/servers/server.ts"],"names":[],"mappings":"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"}
@@ -3,20 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Server = void 0;
4
4
  const reactive_js_1 = require("../../reactive.js");
5
5
  const types_js_1 = require("../../types.js");
6
- const eggs_js_1 = require("../eggs.js");
7
6
  const server_groups_js_1 = require("../server-groups.js");
8
7
  const activity_js_1 = require("./activity.js");
9
8
  const allocations_js_1 = require("./allocations.js");
9
+ const backups_js_1 = require("./backups.js");
10
10
  const connection_js_1 = require("./connection.js");
11
+ const features_js_1 = require("./features.js");
11
12
  const files_js_1 = require("./files.js");
13
+ const jobs_js_1 = require("./jobs.js");
14
+ const node_client_js_1 = require("./node-client.js");
12
15
  const profiles_js_1 = require("./profiles.js");
13
16
  const sftp_js_1 = require("./sftp.js");
17
+ const sub_users_js_1 = require("./sub-users.js");
14
18
  /**
15
19
  * A MeowPanel game server.
16
20
  *
17
21
  * @example
18
22
  * ```ts ignore
19
- * const server = await api.servers.get(id, { include: ['status', 'startup'] });
23
+ * const server = await api.servers.get(id, { include: ['status'] });
20
24
  * server.status; // ServerStatus (guaranteed by include)
21
25
  *
22
26
  * await server.sendPower('start');
@@ -39,19 +43,12 @@ class Server extends reactive_js_1.ReactiveResource {
39
43
  /** When non-null, overrides the node's reported power state for display. */
40
44
  restrictedState;
41
45
  groupId;
42
- eggId;
43
- eggImageId;
44
46
  /** Populated with `include=group`. */
45
47
  group;
46
- /** Populated with `include=egg`. */
47
- egg;
48
- eggImageOverride;
49
48
  /** Populated with `include=status`. Use {@link getStatus} to fetch on demand. */
50
49
  status;
51
50
  /** Populated with `include=build`. */
52
51
  build;
53
- /** Populated with `include=startup`. */
54
- startup;
55
52
  /** Populated with `include=allocations`. */
56
53
  allocationPorts;
57
54
  createdAt;
@@ -61,6 +58,10 @@ class Server extends reactive_js_1.ReactiveResource {
61
58
  profiles;
62
59
  activity;
63
60
  files;
61
+ backups;
62
+ jobs;
63
+ subUsers;
64
+ features;
64
65
  /** @internal */
65
66
  constructor(data, http, resolveNodeUrl, onMutated) {
66
67
  super();
@@ -69,12 +70,16 @@ class Server extends reactive_js_1.ReactiveResource {
69
70
  this.onMutated = onMutated;
70
71
  this.id = (0, types_js_1.toNanoID)(data.id);
71
72
  this.groupId = (0, types_js_1.toNanoID)(data.group_id);
72
- this.eggId = (0, types_js_1.toNanoID)(data.egg_id);
73
73
  this.allocations = new allocations_js_1.ServerAllocationsManager(this.id, http);
74
74
  this.sftp = new sftp_js_1.ServerSftpManager(this.id, http);
75
75
  this.profiles = new profiles_js_1.ServerProfilesManager(this.id, http);
76
76
  this.activity = new activity_js_1.ServerActivityManager(this.id, http);
77
- this.files = new files_js_1.ServerFilesManager(this.id, http.getToken(), resolveNodeUrl);
77
+ this.subUsers = new sub_users_js_1.ServerUserManager(`/servers/${this.id}`, http);
78
+ this.features = new features_js_1.ServerFeaturesManager(this.id, http);
79
+ const node = new node_client_js_1.NodeClient(this.id, http.getToken(), resolveNodeUrl);
80
+ this.files = new files_js_1.ServerFilesManager(node);
81
+ this.backups = new backups_js_1.ServerBackupsManager(node);
82
+ this.jobs = new jobs_js_1.ServerJobsManager(node);
78
83
  this.applyData(data);
79
84
  }
80
85
  /** Apply raw API data, updating all mutable fields. */
@@ -83,30 +88,15 @@ class Server extends reactive_js_1.ReactiveResource {
83
88
  this.description = data.description;
84
89
  this.notes = data.notes;
85
90
  this.restrictedState = data.restricted_state;
86
- this.eggImageId = data.egg_image_id ? (0, types_js_1.toNanoID)(data.egg_image_id) : undefined;
87
- this.eggImageOverride = data.egg_image_override;
88
91
  // Include-gated fields: only overwrite if present in response
89
92
  if (data.group)
90
93
  this.group = new server_groups_js_1.ServerGroup(data.group);
91
- if (data.egg)
92
- this.egg = new eggs_js_1.Egg(data.egg);
93
94
  if (data.status !== undefined) {
94
95
  this.status = data.status ? parseStatus(data.status) : undefined;
95
96
  }
96
97
  if (data.build !== undefined) {
97
98
  this.build = data.build ? parseBuild(data.build) : undefined;
98
99
  }
99
- if (data.startup !== undefined) {
100
- this.startup = data.startup
101
- ? {
102
- command: data.startup.command,
103
- variables: Object.fromEntries(Object.entries(data.startup.variables).map(([k, v]) => [
104
- k,
105
- { key: k, ...v, default: v.default },
106
- ])),
107
- }
108
- : undefined;
109
- }
110
100
  if (data.allocations !== undefined) {
111
101
  this.allocationPorts = data.allocations ?? undefined;
112
102
  }
@@ -114,7 +104,7 @@ class Server extends reactive_js_1.ReactiveResource {
114
104
  this.updatedAt = new Date(data.updated_at);
115
105
  this.notify();
116
106
  }
117
- /** Update this server's details, startup config, or primary allocation. */
107
+ /** Update this server's details or primary allocation. */
118
108
  async update(payload) {
119
109
  const body = {};
120
110
  if (payload.name !== undefined)
@@ -127,12 +117,6 @@ class Server extends reactive_js_1.ReactiveResource {
127
117
  if (payload.allocationPrimary) {
128
118
  body['allocation_primary'] = payload.allocationPrimary;
129
119
  }
130
- if (payload.startup) {
131
- body['startup'] = {
132
- command: payload.startup.command,
133
- variables: payload.startup.variables,
134
- };
135
- }
136
120
  const data = await this.http.patch(`/servers/${this.id}`, body);
137
121
  this.applyData(data);
138
122
  this.onMutated();
@@ -174,13 +158,13 @@ function parseStatus(data) {
174
158
  state: data.state,
175
159
  utilization: data.utilization
176
160
  ? {
177
- memoryBytes: data.utilization.memory_bytes,
178
- memoryLimitBytes: data.utilization.memory_limit_bytes,
161
+ ramBytes: data.utilization.ram_bytes,
162
+ ramLimitBytes: data.utilization.ram_limit_bytes,
179
163
  cpuAbsolute: data.utilization.cpu_absolute,
180
164
  networkRxBytes: data.utilization.network.rx_bytes,
181
165
  networkTxBytes: data.utilization.network.tx_bytes,
182
- uptimeMs: data.utilization.uptime_ms,
183
- diskBytes: data.utilization.disk_bytes,
166
+ uptimeMs: data.utilization.uptime,
167
+ storageBytes: data.utilization.storage_bytes,
184
168
  }
185
169
  : null,
186
170
  };