@meowpanel/api 0.2.0 → 0.4.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 (207) hide show
  1. package/esm/mod.d.ts +39 -18
  2. package/esm/mod.d.ts.map +1 -1
  3. package/esm/mod.js +26 -8
  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/errors.d.ts +8 -0
  8. package/esm/src/errors.d.ts.map +1 -1
  9. package/esm/src/errors.js +10 -0
  10. package/esm/src/http.d.ts +2 -2
  11. package/esm/src/http.d.ts.map +1 -1
  12. package/esm/src/http.js +5 -2
  13. package/esm/src/namespace.d.ts +1 -1
  14. package/esm/src/namespace.js +1 -1
  15. package/esm/src/resources/account.d.ts +104 -19
  16. package/esm/src/resources/account.d.ts.map +1 -1
  17. package/esm/src/resources/account.js +112 -13
  18. package/esm/src/resources/api-keys.d.ts +16 -24
  19. package/esm/src/resources/api-keys.d.ts.map +1 -1
  20. package/esm/src/resources/api-keys.js +16 -20
  21. package/esm/src/resources/auth.d.ts +70 -4
  22. package/esm/src/resources/auth.d.ts.map +1 -1
  23. package/esm/src/resources/auth.js +47 -4
  24. package/esm/src/resources/eggs.d.ts +261 -22
  25. package/esm/src/resources/eggs.d.ts.map +1 -1
  26. package/esm/src/resources/eggs.js +261 -25
  27. package/esm/src/resources/features.d.ts +35 -0
  28. package/esm/src/resources/features.d.ts.map +1 -0
  29. package/esm/src/resources/features.js +21 -0
  30. package/esm/src/resources/hosts.d.ts +143 -18
  31. package/esm/src/resources/hosts.d.ts.map +1 -1
  32. package/esm/src/resources/hosts.js +145 -10
  33. package/esm/src/resources/logs.d.ts +39 -0
  34. package/esm/src/resources/logs.d.ts.map +1 -0
  35. package/esm/src/resources/logs.js +38 -0
  36. package/esm/src/resources/nodes.d.ts +106 -41
  37. package/esm/src/resources/nodes.d.ts.map +1 -1
  38. package/esm/src/resources/nodes.js +121 -28
  39. package/esm/src/resources/permissions.d.ts +45 -0
  40. package/esm/src/resources/permissions.d.ts.map +1 -0
  41. package/esm/src/resources/permissions.js +26 -0
  42. package/esm/src/resources/request-logs.d.ts +91 -0
  43. package/esm/src/resources/request-logs.d.ts.map +1 -0
  44. package/esm/src/resources/request-logs.js +70 -0
  45. package/esm/src/resources/roles.d.ts +128 -0
  46. package/esm/src/resources/roles.d.ts.map +1 -0
  47. package/esm/src/resources/roles.js +142 -0
  48. package/esm/src/resources/server-groups.d.ts +141 -7
  49. package/esm/src/resources/server-groups.d.ts.map +1 -1
  50. package/esm/src/resources/server-groups.js +157 -8
  51. package/esm/src/resources/servers/activity.d.ts +50 -8
  52. package/esm/src/resources/servers/activity.d.ts.map +1 -1
  53. package/esm/src/resources/servers/activity.js +54 -13
  54. package/esm/src/resources/servers/allocations.d.ts +3 -3
  55. package/esm/src/resources/servers/allocations.d.ts.map +1 -1
  56. package/esm/src/resources/servers/allocations.js +7 -7
  57. package/esm/src/resources/servers/backups.d.ts +46 -0
  58. package/esm/src/resources/servers/backups.d.ts.map +1 -0
  59. package/esm/src/resources/servers/backups.js +43 -0
  60. package/esm/src/resources/servers/connection.d.ts +27 -7
  61. package/esm/src/resources/servers/connection.d.ts.map +1 -1
  62. package/esm/src/resources/servers/connection.js +28 -7
  63. package/esm/src/resources/servers/features.d.ts +81 -0
  64. package/esm/src/resources/servers/features.d.ts.map +1 -0
  65. package/esm/src/resources/servers/features.js +60 -0
  66. package/esm/src/resources/servers/files.d.ts +41 -53
  67. package/esm/src/resources/servers/files.d.ts.map +1 -1
  68. package/esm/src/resources/servers/files.js +74 -116
  69. package/esm/src/resources/servers/index.d.ts +46 -27
  70. package/esm/src/resources/servers/index.d.ts.map +1 -1
  71. package/esm/src/resources/servers/index.js +26 -12
  72. package/esm/src/resources/servers/jobs.d.ts +88 -0
  73. package/esm/src/resources/servers/jobs.d.ts.map +1 -0
  74. package/esm/src/resources/servers/jobs.js +115 -0
  75. package/esm/src/resources/servers/node-client.d.ts +33 -0
  76. package/esm/src/resources/servers/node-client.d.ts.map +1 -0
  77. package/esm/src/resources/servers/node-client.js +61 -0
  78. package/esm/src/resources/servers/profiles.d.ts +45 -1
  79. package/esm/src/resources/servers/profiles.d.ts.map +1 -1
  80. package/esm/src/resources/servers/profiles.js +55 -2
  81. package/esm/src/resources/servers/server.d.ts +10 -25
  82. package/esm/src/resources/servers/server.d.ts.map +1 -1
  83. package/esm/src/resources/servers/server.js +18 -34
  84. package/esm/src/resources/servers/sftp.d.ts +21 -19
  85. package/esm/src/resources/servers/sftp.d.ts.map +1 -1
  86. package/esm/src/resources/servers/sftp.js +22 -14
  87. package/esm/src/resources/servers/sub-users.d.ts +99 -0
  88. package/esm/src/resources/servers/sub-users.d.ts.map +1 -0
  89. package/esm/src/resources/servers/sub-users.js +94 -0
  90. package/esm/src/resources/servers/types.d.ts +27 -25
  91. package/esm/src/resources/servers/types.d.ts.map +1 -1
  92. package/esm/src/resources/systems.d.ts +124 -0
  93. package/esm/src/resources/systems.d.ts.map +1 -0
  94. package/esm/src/resources/systems.js +139 -0
  95. package/esm/src/resources/users.d.ts +330 -0
  96. package/esm/src/resources/users.d.ts.map +1 -0
  97. package/esm/src/resources/users.js +280 -0
  98. package/esm/src/types.d.ts +18 -1
  99. package/esm/src/types.d.ts.map +1 -1
  100. package/esm/src/types.js +11 -0
  101. package/package.json +1 -1
  102. package/script/mod.d.ts +39 -18
  103. package/script/mod.d.ts.map +1 -1
  104. package/script/mod.js +52 -5
  105. package/script/src/client.d.ts +48 -11
  106. package/script/src/client.d.ts.map +1 -1
  107. package/script/src/client.js +53 -12
  108. package/script/src/errors.d.ts +8 -0
  109. package/script/src/errors.d.ts.map +1 -1
  110. package/script/src/errors.js +10 -0
  111. package/script/src/http.d.ts +2 -2
  112. package/script/src/http.d.ts.map +1 -1
  113. package/script/src/http.js +5 -2
  114. package/script/src/namespace.d.ts +1 -1
  115. package/script/src/namespace.js +1 -1
  116. package/script/src/resources/account.d.ts +104 -19
  117. package/script/src/resources/account.d.ts.map +1 -1
  118. package/script/src/resources/account.js +114 -13
  119. package/script/src/resources/api-keys.d.ts +16 -24
  120. package/script/src/resources/api-keys.d.ts.map +1 -1
  121. package/script/src/resources/api-keys.js +15 -19
  122. package/script/src/resources/auth.d.ts +70 -4
  123. package/script/src/resources/auth.d.ts.map +1 -1
  124. package/script/src/resources/auth.js +47 -4
  125. package/script/src/resources/eggs.d.ts +261 -22
  126. package/script/src/resources/eggs.d.ts.map +1 -1
  127. package/script/src/resources/eggs.js +267 -26
  128. package/script/src/resources/features.d.ts +35 -0
  129. package/script/src/resources/features.d.ts.map +1 -0
  130. package/script/src/resources/features.js +25 -0
  131. package/script/src/resources/hosts.d.ts +143 -18
  132. package/script/src/resources/hosts.d.ts.map +1 -1
  133. package/script/src/resources/hosts.js +146 -10
  134. package/script/src/resources/logs.d.ts +39 -0
  135. package/script/src/resources/logs.d.ts.map +1 -0
  136. package/script/src/resources/logs.js +42 -0
  137. package/script/src/resources/nodes.d.ts +106 -41
  138. package/script/src/resources/nodes.d.ts.map +1 -1
  139. package/script/src/resources/nodes.js +122 -28
  140. package/script/src/resources/permissions.d.ts +45 -0
  141. package/script/src/resources/permissions.d.ts.map +1 -0
  142. package/script/src/resources/permissions.js +31 -0
  143. package/script/src/resources/request-logs.d.ts +91 -0
  144. package/script/src/resources/request-logs.d.ts.map +1 -0
  145. package/script/src/resources/request-logs.js +75 -0
  146. package/script/src/resources/roles.d.ts +128 -0
  147. package/script/src/resources/roles.d.ts.map +1 -0
  148. package/script/src/resources/roles.js +148 -0
  149. package/script/src/resources/server-groups.d.ts +141 -7
  150. package/script/src/resources/server-groups.d.ts.map +1 -1
  151. package/script/src/resources/server-groups.js +158 -8
  152. package/script/src/resources/servers/activity.d.ts +50 -8
  153. package/script/src/resources/servers/activity.d.ts.map +1 -1
  154. package/script/src/resources/servers/activity.js +54 -12
  155. package/script/src/resources/servers/allocations.d.ts +3 -3
  156. package/script/src/resources/servers/allocations.d.ts.map +1 -1
  157. package/script/src/resources/servers/allocations.js +7 -7
  158. package/script/src/resources/servers/backups.d.ts +46 -0
  159. package/script/src/resources/servers/backups.d.ts.map +1 -0
  160. package/script/src/resources/servers/backups.js +47 -0
  161. package/script/src/resources/servers/connection.d.ts +27 -7
  162. package/script/src/resources/servers/connection.d.ts.map +1 -1
  163. package/script/src/resources/servers/connection.js +28 -7
  164. package/script/src/resources/servers/features.d.ts +81 -0
  165. package/script/src/resources/servers/features.d.ts.map +1 -0
  166. package/script/src/resources/servers/features.js +64 -0
  167. package/script/src/resources/servers/files.d.ts +41 -53
  168. package/script/src/resources/servers/files.d.ts.map +1 -1
  169. package/script/src/resources/servers/files.js +74 -116
  170. package/script/src/resources/servers/index.d.ts +46 -27
  171. package/script/src/resources/servers/index.d.ts.map +1 -1
  172. package/script/src/resources/servers/index.js +26 -12
  173. package/script/src/resources/servers/jobs.d.ts +88 -0
  174. package/script/src/resources/servers/jobs.d.ts.map +1 -0
  175. package/script/src/resources/servers/jobs.js +120 -0
  176. package/script/src/resources/servers/node-client.d.ts +33 -0
  177. package/script/src/resources/servers/node-client.d.ts.map +1 -0
  178. package/script/src/resources/servers/node-client.js +65 -0
  179. package/script/src/resources/servers/profiles.d.ts +45 -1
  180. package/script/src/resources/servers/profiles.d.ts.map +1 -1
  181. package/script/src/resources/servers/profiles.js +55 -2
  182. package/script/src/resources/servers/server.d.ts +10 -25
  183. package/script/src/resources/servers/server.d.ts.map +1 -1
  184. package/script/src/resources/servers/server.js +18 -34
  185. package/script/src/resources/servers/sftp.d.ts +21 -19
  186. package/script/src/resources/servers/sftp.d.ts.map +1 -1
  187. package/script/src/resources/servers/sftp.js +22 -14
  188. package/script/src/resources/servers/sub-users.d.ts +99 -0
  189. package/script/src/resources/servers/sub-users.d.ts.map +1 -0
  190. package/script/src/resources/servers/sub-users.js +99 -0
  191. package/script/src/resources/servers/types.d.ts +27 -25
  192. package/script/src/resources/servers/types.d.ts.map +1 -1
  193. package/script/src/resources/systems.d.ts +124 -0
  194. package/script/src/resources/systems.d.ts.map +1 -0
  195. package/script/src/resources/systems.js +145 -0
  196. package/script/src/resources/users.d.ts +330 -0
  197. package/script/src/resources/users.d.ts.map +1 -0
  198. package/script/src/resources/users.js +287 -0
  199. package/script/src/types.d.ts +18 -1
  200. package/script/src/types.d.ts.map +1 -1
  201. package/script/src/types.js +12 -0
  202. package/esm/src/resources/members.d.ts +0 -138
  203. package/esm/src/resources/members.d.ts.map +0 -1
  204. package/esm/src/resources/members.js +0 -122
  205. package/script/src/resources/members.d.ts +0 -138
  206. package/script/src/resources/members.d.ts.map +0 -1
  207. package/script/src/resources/members.js +0 -127
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServerUserManager = exports.ServerUser = void 0;
4
+ const users_js_1 = require("../users.js");
5
+ /**
6
+ * A user granted access to a server (or server group), with their scoped grants.
7
+ *
8
+ * Retrieved via {@link ServerUserManager.list} or {@link ServerUserManager.get}.
9
+ */
10
+ class ServerUser {
11
+ /** The underlying user. */
12
+ user;
13
+ /** The permissions granted to this user at the resource scope. */
14
+ permissions;
15
+ /** How this user is attached. See {@link ServerUserKind}. */
16
+ kind;
17
+ /** @internal */
18
+ constructor(data) {
19
+ this.user = new users_js_1.User(data.user);
20
+ this.permissions = data.permissions.map((g) => ({
21
+ name: g.name,
22
+ grantedAt: new Date(g.granted_at),
23
+ expiresAt: g.expires_at ? new Date(g.expires_at) : null,
24
+ }));
25
+ this.kind = data.kind;
26
+ }
27
+ }
28
+ exports.ServerUser = ServerUser;
29
+ function expiresAtBody(expiresAt) {
30
+ if (expiresAt === undefined)
31
+ return undefined;
32
+ return expiresAt === null ? null : expiresAt.toISOString();
33
+ }
34
+ /**
35
+ * Manages the sub-users of a server or server group.
36
+ *
37
+ * Access via `server.subUsers`.
38
+ *
39
+ * @example
40
+ * ```ts ignore
41
+ * await server.subUsers.add({ email: 'teammate@example.com', permissions: ['server.console.read'] });
42
+ * const subUsers = await server.subUsers.list();
43
+ * ```
44
+ */
45
+ class ServerUserManager {
46
+ basePath;
47
+ http;
48
+ /** @internal */
49
+ constructor(basePath, http) {
50
+ this.basePath = basePath;
51
+ this.http = http;
52
+ }
53
+ /** List the resource's sub-users. */
54
+ async list() {
55
+ const data = await this.http.get(`${this.basePath}/users`);
56
+ return data.map((d) => new ServerUser(d));
57
+ }
58
+ /** Fetch a single sub-user by user ID. */
59
+ async get(userId) {
60
+ const data = await this.http.get(`${this.basePath}/users/${userId}`);
61
+ return new ServerUser(data);
62
+ }
63
+ /**
64
+ * Add a sub-user, or add permissions to an existing one.
65
+ *
66
+ * Identify the user by `userId`, or by `email` (an unknown email invites a new user,
67
+ * which requires `user.manage` and a configured email transport). Existing grants are kept.
68
+ */
69
+ async add(input) {
70
+ const body = {
71
+ permissions: input.permissions,
72
+ expires_at: expiresAtBody(input.expiresAt),
73
+ };
74
+ if ('userId' in input)
75
+ body['user_id'] = input.userId;
76
+ else
77
+ body['email'] = input.email;
78
+ const data = await this.http.post(`${this.basePath}/users`, body);
79
+ return new ServerUser(data);
80
+ }
81
+ /**
82
+ * Replace a sub-user's permission set. Grants not listed are revoked.
83
+ *
84
+ * @param userId The sub-user's NanoID.
85
+ * @param payload The exact permission set to grant, and an optional expiry.
86
+ */
87
+ async update(userId, payload) {
88
+ const data = await this.http.patch(`${this.basePath}/users/${userId}`, {
89
+ permissions: payload.permissions,
90
+ expires_at: expiresAtBody(payload.expiresAt),
91
+ });
92
+ return new ServerUser(data);
93
+ }
94
+ /** Remove a sub-user, revoking all their grants at the resource scope. */
95
+ async remove(userId) {
96
+ await this.http.delete(`${this.basePath}/users/${userId}`);
97
+ }
98
+ }
99
+ exports.ServerUserManager = ServerUserManager;
@@ -1,6 +1,6 @@
1
1
  import type { ISODate, NanoID, PowerState, ServerRestrictedState, SftpPermission } from '../../types.js';
2
2
  import type { EggData } from '../eggs.js';
3
- import type { MemberData } from '../members.js';
3
+ import type { UserData } from '../users.js';
4
4
  import type { ServerGroupData } from '../server-groups.js';
5
5
  /** A single egg environment variable and its value for a server. @internal */
6
6
  export interface StartupVariableData {
@@ -22,7 +22,7 @@ export interface ServerStatusData {
22
22
  rx_bytes: number;
23
23
  tx_bytes: number;
24
24
  };
25
- uptime_ms: number;
25
+ uptime: number;
26
26
  disk_bytes: number;
27
27
  } | null;
28
28
  }
@@ -46,7 +46,7 @@ export interface ServerBuildData {
46
46
  export interface ServerAllocationPortData {
47
47
  id: string;
48
48
  description?: string | null;
49
- port_id?: string;
49
+ meta_id?: string;
50
50
  meta?: {
51
51
  id: string;
52
52
  ip: string;
@@ -73,6 +73,21 @@ export interface ServerProfileData {
73
73
  name: string;
74
74
  description?: string | null;
75
75
  notes?: string | null;
76
+ /** Requires `server.egg.read`. Populated with `?include=egg`. */
77
+ egg_id?: string;
78
+ egg?: EggData;
79
+ egg_image_id?: string;
80
+ egg_image?: {
81
+ id: string;
82
+ image: string;
83
+ };
84
+ egg_image_override?: string | null;
85
+ skip_install_scripts?: boolean;
86
+ /** Requires `server.startup.read`. Populated with `?include=startup`. */
87
+ startup?: {
88
+ command: string;
89
+ variables: Record<string, StartupVariableData>;
90
+ } | null;
76
91
  folder?: string | null;
77
92
  is_active: boolean;
78
93
  created_at: ISODate;
@@ -80,7 +95,7 @@ export interface ServerProfileData {
80
95
  }
81
96
  /** Raw API shape for an activity log job log entry. @internal */
82
97
  export interface ActivityJobLogData {
83
- type: string;
98
+ event: string;
84
99
  metadata: Record<string, unknown>;
85
100
  created_at: ISODate;
86
101
  }
@@ -99,8 +114,14 @@ export interface ActivityLogData {
99
114
  event: string;
100
115
  server_id?: string | null;
101
116
  node_id?: string | null;
117
+ group_id?: string | null;
118
+ host_id?: string | null;
102
119
  issuer_id?: string | null;
103
- issuer?: MemberData | null;
120
+ issuer?: UserData | null;
121
+ /** The user an action was performed on, when applicable. */
122
+ subject_id?: string | null;
123
+ subject?: UserData | null;
124
+ /** Requires `application.activities.ip.read`. */
104
125
  ip?: string | null;
105
126
  metadata: Record<string, unknown>;
106
127
  job_id?: string | null;
@@ -116,7 +137,7 @@ export interface SftpUserData {
116
137
  password?: string;
117
138
  paths: Record<string, SftpPermission[]>;
118
139
  owner_id: string;
119
- owner?: MemberData | null;
140
+ owner?: UserData | null;
120
141
  last_login_at: ISODate | null;
121
142
  created_at: ISODate;
122
143
  updated_at: ISODate;
@@ -157,20 +178,8 @@ export interface ServerData {
157
178
  restricted_state: ServerRestrictedState;
158
179
  group_id: string;
159
180
  group?: ServerGroupData;
160
- egg_id: string;
161
- egg?: EggData;
162
- egg_image_id?: string;
163
- egg_image?: {
164
- id: string;
165
- image: string;
166
- };
167
- egg_image_override?: string | null;
168
181
  status?: ServerStatusData | null;
169
182
  build?: ServerBuildData | null;
170
- startup?: {
171
- command: string;
172
- variables: Record<string, StartupVariableData>;
173
- } | null;
174
183
  allocations?: ServerAllocationsData | null;
175
184
  profiles?: ServerProfileData[] | null;
176
185
  created_at: ISODate;
@@ -189,13 +198,6 @@ export interface UpdateServerPayload {
189
198
  ip: string;
190
199
  port: number;
191
200
  };
192
- /** Update startup command and/or environment variables. */
193
- startup?: {
194
- /** New startup command override, or `null` to reset to the egg default. */
195
- command?: string | null;
196
- /** Map of env variable keys to new values (or `null` to reset to default). */
197
- variables?: Record<string, string | null>;
198
- };
199
201
  }
200
202
  export type { ISODate, NanoID, PowerState, ServerRestrictedState, SftpPermission };
201
203
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/resources/servers/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/resources/servers/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import { ResourceNamespace } from '../namespace.js';
3
+ import { ReactiveResource } from '../reactive.js';
4
+ import { type ISODate, type NanoID, type Paginated } from '../types.js';
5
+ import { ApiKey, type CreateApiKeyPayload } from './api-keys.js';
6
+ /** Raw API shape for a system. @internal */
7
+ export interface SystemData {
8
+ id: string;
9
+ name: string;
10
+ description: string | null;
11
+ permissions?: string[];
12
+ created_at: ISODate;
13
+ updated_at: ISODate;
14
+ }
15
+ /**
16
+ * A non-user identity (bootstrap or automation) that owns API keys.
17
+ *
18
+ * API keys owned by a system inherit the system's permissions.
19
+ *
20
+ * Retrieved via {@link SystemsNamespace.get} or {@link SystemsNamespace.list}.
21
+ */
22
+ export declare class System extends ReactiveResource {
23
+ /** The system's unique NanoID. */
24
+ readonly id: NanoID;
25
+ /** Display name. */
26
+ name: string;
27
+ /** Optional description. */
28
+ description: string | null;
29
+ /** The system's permission scopes. Requires `?include=permissions`. */
30
+ permissions: string[] | undefined;
31
+ /** When this system was created. */
32
+ createdAt: Date;
33
+ /** When this system was last updated. */
34
+ updatedAt: Date;
35
+ /** @internal */
36
+ constructor(data: SystemData);
37
+ /** Apply raw API data to this system instance, updating all mutable fields. */
38
+ applyData(data: SystemData): void;
39
+ }
40
+ /** Valid include keys for system endpoints. */
41
+ export type SystemInclude = 'permissions';
42
+ /** Fields accepted when creating a system. */
43
+ export interface CreateSystemPayload {
44
+ name: string;
45
+ description?: string;
46
+ }
47
+ /** Fields accepted when updating a system. All optional. */
48
+ export interface UpdateSystemPayload {
49
+ name?: string;
50
+ description?: string;
51
+ }
52
+ /** The one-time result of creating a system API key. */
53
+ export interface SystemApiKeyResult {
54
+ name: string;
55
+ description: string | null;
56
+ /** The one-time bearer token. Returned only here. */
57
+ token: string;
58
+ }
59
+ /** Typed events emitted by {@link SystemsNamespace}. */
60
+ export interface SystemEvents {
61
+ created: System;
62
+ updated: System;
63
+ deleted: NanoID;
64
+ }
65
+ /**
66
+ * Manages the API keys owned by a specific system.
67
+ *
68
+ * Access via `api.systems.keys(systemId)`.
69
+ */
70
+ export declare class SystemKeysManager {
71
+ private readonly systemId;
72
+ private readonly http;
73
+ /** @internal */
74
+ constructor(systemId: NanoID, http: HttpClient);
75
+ /** List the system's active API keys. */
76
+ list(): Promise<ApiKey[]>;
77
+ /**
78
+ * Create an API key owned by the system.
79
+ *
80
+ * The returned `token` is the only time the bearer token is available. Store it securely.
81
+ */
82
+ create(payload: CreateApiKeyPayload): Promise<SystemApiKeyResult>;
83
+ /** Revoke a system API key. */
84
+ revoke(keyId: NanoID): Promise<void>;
85
+ }
86
+ /**
87
+ * Namespace for system (non-user identity) management.
88
+ *
89
+ * Access via `api.systems`.
90
+ *
91
+ * @example
92
+ * ```ts ignore
93
+ * const system = await api.systems.create({ name: 'CI deploy' });
94
+ * const { token } = await api.systems.keys(system.id).create({ name: 'pipeline', permissions: ['server.read'] });
95
+ * ```
96
+ */
97
+ export declare class SystemsNamespace extends ResourceNamespace<System, SystemEvents> {
98
+ /** @internal */
99
+ constructor(http: HttpClient);
100
+ /**
101
+ * Fetch a paginated list of systems.
102
+ *
103
+ * @param opts Pagination, search, and include options.
104
+ */
105
+ list(opts?: {
106
+ page?: number;
107
+ perPage?: number;
108
+ search?: string;
109
+ include?: SystemInclude[];
110
+ }): Promise<Paginated<System>>;
111
+ /** Fetch a single system by ID. */
112
+ get(id: NanoID, opts?: {
113
+ include?: SystemInclude[];
114
+ }): Promise<System>;
115
+ /** Create a new system. */
116
+ create(payload: CreateSystemPayload): Promise<System>;
117
+ /** Update a system's name or description. */
118
+ update(id: NanoID, payload: UpdateSystemPayload): Promise<System>;
119
+ /** Delete a system. Fails if it still owns active API keys. */
120
+ delete(id: NanoID): Promise<void>;
121
+ /** Manage the API keys owned by a system. */
122
+ keys(systemId: NanoID): SystemKeysManager;
123
+ }
124
+ //# sourceMappingURL=systems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systems.d.ts","sourceRoot":"","sources":["../../../src/src/resources/systems.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SystemsNamespace = exports.SystemKeysManager = exports.System = void 0;
4
+ const namespace_js_1 = require("../namespace.js");
5
+ const reactive_js_1 = require("../reactive.js");
6
+ const types_js_1 = require("../types.js");
7
+ const api_keys_js_1 = require("./api-keys.js");
8
+ /**
9
+ * A non-user identity (bootstrap or automation) that owns API keys.
10
+ *
11
+ * API keys owned by a system inherit the system's permissions.
12
+ *
13
+ * Retrieved via {@link SystemsNamespace.get} or {@link SystemsNamespace.list}.
14
+ */
15
+ class System extends reactive_js_1.ReactiveResource {
16
+ /** The system's unique NanoID. */
17
+ id;
18
+ /** Display name. */
19
+ name;
20
+ /** Optional description. */
21
+ description;
22
+ /** The system's permission scopes. Requires `?include=permissions`. */
23
+ permissions;
24
+ /** When this system was created. */
25
+ createdAt;
26
+ /** When this system was last updated. */
27
+ updatedAt;
28
+ /** @internal */
29
+ constructor(data) {
30
+ super();
31
+ this.id = (0, types_js_1.toNanoID)(data.id);
32
+ this.applyData(data);
33
+ }
34
+ /** Apply raw API data to this system instance, updating all mutable fields. */
35
+ applyData(data) {
36
+ this.name = data.name;
37
+ this.description = data.description;
38
+ this.permissions = data.permissions;
39
+ this.createdAt = new Date(data.created_at);
40
+ this.updatedAt = new Date(data.updated_at);
41
+ this.notify();
42
+ }
43
+ }
44
+ exports.System = System;
45
+ /**
46
+ * Manages the API keys owned by a specific system.
47
+ *
48
+ * Access via `api.systems.keys(systemId)`.
49
+ */
50
+ class SystemKeysManager {
51
+ systemId;
52
+ http;
53
+ /** @internal */
54
+ constructor(systemId, http) {
55
+ this.systemId = systemId;
56
+ this.http = http;
57
+ }
58
+ /** List the system's active API keys. */
59
+ async list() {
60
+ const data = await this.http.get(`/systems/${this.systemId}/api-keys`);
61
+ return data.map((d) => new api_keys_js_1.ApiKey(d));
62
+ }
63
+ /**
64
+ * Create an API key owned by the system.
65
+ *
66
+ * The returned `token` is the only time the bearer token is available. Store it securely.
67
+ */
68
+ async create(payload) {
69
+ const data = await this.http.post(`/systems/${this.systemId}/api-keys`, payload);
70
+ return { name: data.name, description: data.description, token: data.key };
71
+ }
72
+ /** Revoke a system API key. */
73
+ async revoke(keyId) {
74
+ await this.http.delete(`/systems/${this.systemId}/api-keys/${keyId}`);
75
+ }
76
+ }
77
+ exports.SystemKeysManager = SystemKeysManager;
78
+ /**
79
+ * Namespace for system (non-user identity) management.
80
+ *
81
+ * Access via `api.systems`.
82
+ *
83
+ * @example
84
+ * ```ts ignore
85
+ * const system = await api.systems.create({ name: 'CI deploy' });
86
+ * const { token } = await api.systems.keys(system.id).create({ name: 'pipeline', permissions: ['server.read'] });
87
+ * ```
88
+ */
89
+ class SystemsNamespace extends namespace_js_1.ResourceNamespace {
90
+ /** @internal */
91
+ constructor(http) {
92
+ super(http);
93
+ }
94
+ /**
95
+ * Fetch a paginated list of systems.
96
+ *
97
+ * @param opts Pagination, search, and include options.
98
+ */
99
+ async list(opts = {}) {
100
+ const extra = {};
101
+ const include = (0, types_js_1.joinIncludes)(opts);
102
+ if (include)
103
+ extra['include'] = include;
104
+ const result = await this.http.list('/systems', opts, extra);
105
+ const systems = result.data.map((d) => new System(d));
106
+ this.setCache(systems);
107
+ return { ...result, data: systems };
108
+ }
109
+ /** Fetch a single system by ID. */
110
+ async get(id, opts = {}) {
111
+ const params = {};
112
+ const include = (0, types_js_1.joinIncludes)(opts);
113
+ if (include)
114
+ params['include'] = include;
115
+ const data = await this.http.get(`/systems/${id}`, { params });
116
+ return new System(data);
117
+ }
118
+ /** Create a new system. */
119
+ async create(payload) {
120
+ const data = await this.http.post('/systems', payload);
121
+ const system = new System(data);
122
+ this.addToCache(system);
123
+ this.emit('created', system);
124
+ return system;
125
+ }
126
+ /** Update a system's name or description. */
127
+ async update(id, payload) {
128
+ const data = await this.http.patch(`/systems/${id}`, payload);
129
+ const system = new System(data);
130
+ this.upsertCache(system);
131
+ this.emit('updated', system);
132
+ return system;
133
+ }
134
+ /** Delete a system. Fails if it still owns active API keys. */
135
+ async delete(id) {
136
+ await this.http.delete(`/systems/${id}`);
137
+ this.removeFromCache(id);
138
+ this.emit('deleted', id);
139
+ }
140
+ /** Manage the API keys owned by a system. */
141
+ keys(systemId) {
142
+ return new SystemKeysManager(systemId, this.http);
143
+ }
144
+ }
145
+ exports.SystemsNamespace = SystemsNamespace;