@meowpanel/api 0.15.0 → 0.16.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 (44) hide show
  1. package/README.md +1 -1
  2. package/esm/mod.d.ts +3 -3
  3. package/esm/mod.d.ts.map +1 -1
  4. package/esm/mod.js +1 -1
  5. package/esm/src/client.d.ts +1 -1
  6. package/esm/src/client.js +1 -1
  7. package/esm/src/http.d.ts +11 -3
  8. package/esm/src/http.d.ts.map +1 -1
  9. package/esm/src/http.js +25 -15
  10. package/esm/src/resources/servers/activity.d.ts +16 -1
  11. package/esm/src/resources/servers/activity.d.ts.map +1 -1
  12. package/esm/src/resources/servers/activity.js +10 -1
  13. package/esm/src/resources/servers/connection.d.ts +80 -38
  14. package/esm/src/resources/servers/connection.d.ts.map +1 -1
  15. package/esm/src/resources/servers/connection.js +115 -74
  16. package/esm/src/resources/servers/node-client.d.ts +5 -4
  17. package/esm/src/resources/servers/node-client.d.ts.map +1 -1
  18. package/esm/src/resources/servers/node-client.js +6 -10
  19. package/esm/src/resources/servers/server.d.ts +1 -1
  20. package/esm/src/resources/servers/server.js +3 -3
  21. package/esm/src/resources/servers/types.d.ts +6 -1
  22. package/esm/src/resources/servers/types.d.ts.map +1 -1
  23. package/package.json +1 -1
  24. package/script/mod.d.ts +3 -3
  25. package/script/mod.d.ts.map +1 -1
  26. package/script/mod.js +1 -1
  27. package/script/src/client.d.ts +1 -1
  28. package/script/src/client.js +1 -1
  29. package/script/src/http.d.ts +11 -3
  30. package/script/src/http.d.ts.map +1 -1
  31. package/script/src/http.js +25 -15
  32. package/script/src/resources/servers/activity.d.ts +16 -1
  33. package/script/src/resources/servers/activity.d.ts.map +1 -1
  34. package/script/src/resources/servers/activity.js +9 -0
  35. package/script/src/resources/servers/connection.d.ts +80 -38
  36. package/script/src/resources/servers/connection.d.ts.map +1 -1
  37. package/script/src/resources/servers/connection.js +115 -74
  38. package/script/src/resources/servers/node-client.d.ts +5 -4
  39. package/script/src/resources/servers/node-client.d.ts.map +1 -1
  40. package/script/src/resources/servers/node-client.js +6 -10
  41. package/script/src/resources/servers/server.d.ts +1 -1
  42. package/script/src/resources/servers/server.js +3 -3
  43. package/script/src/resources/servers/types.d.ts +6 -1
  44. package/script/src/resources/servers/types.d.ts.map +1 -1
package/README.md CHANGED
@@ -26,7 +26,7 @@ await server.files.write("/motd.txt", "Hello World");
26
26
 
27
27
  // Real-time console via SSE
28
28
  const conn = await server.createConnection();
29
- conn.on("console_output", (line) => console.log(line));
29
+ conn.on("console_entry", (entry) => console.log(entry.text));
30
30
  conn.on("stats", (stats) => console.log(`CPU: ${stats.cpuAbsolute}%`));
31
31
  await conn.open();
32
32
  ```
package/esm/mod.d.ts CHANGED
@@ -27,7 +27,7 @@
27
27
  *
28
28
  * // Real-time console via SSE
29
29
  * const conn = await server.createConnection();
30
- * conn.on("console_output", (line) => console.log(line));
30
+ * conn.on("console_entry", (entry) => console.log(entry.text));
31
31
  * conn.on("stats", (stats) => console.log(`CPU: ${stats.cpuAbsolute}%`));
32
32
  * await conn.open();
33
33
  * ```
@@ -87,7 +87,7 @@ export type { CreateServerPayload, ServerEvents, ServerInclude, ServerWith, Upda
87
87
  export { Server } from './src/resources/servers/server.js';
88
88
  export type { ServerBuild, ServerStatsHistory, ServerStatus } from './src/resources/servers/server.js';
89
89
  export { ServerConnection } from './src/resources/servers/connection.js';
90
- export type { BackupCompletedEvent, JobLogEvent, JobProgressEvent, ServerConnectionEvents, ServerUtilization, } from './src/resources/servers/connection.js';
90
+ export type { BackupCompletedEvent, ConsoleEntry, ConsoleEntryKind, JobLogEvent, JobProgressEvent, ServerConnectionEvents, ServerUtilization, TransferStatus, } from './src/resources/servers/connection.js';
91
91
  export { FileEntry, ServerFilesManager } from './src/resources/servers/files.js';
92
92
  export { ServerBackupsManager } from './src/resources/servers/backups.js';
93
93
  export type { BackupAdapter, CreateBackupOptions, RestoreBackupOptions } from './src/resources/servers/backups.js';
@@ -105,5 +105,5 @@ export type { EffectiveFeature, FeatureSetting, FeatureSettingSource, FeatureSou
105
105
  export { ServerUser, ServerUserManager } from './src/resources/servers/sub-users.js';
106
106
  export type { AddServerUserInput, ServerUserGrant, ServerUserKind } from './src/resources/servers/sub-users.js';
107
107
  export { ActivityJob, ActivityJobLog, ActivityLog, ServerActivityManager } from './src/resources/servers/activity.js';
108
- export type { ActivityFeedOptions, ActivityJobLogSource, ServerActivityFeedOptions, } from './src/resources/servers/activity.js';
108
+ export type { ActivityFeedOptions, ActivityInclude, ActivityJobLogSource, ServerActivityFeedOptions, } from './src/resources/servers/activity.js';
109
109
  //# sourceMappingURL=mod.d.ts.map
package/esm/mod.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"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"}
package/esm/mod.js CHANGED
@@ -27,7 +27,7 @@
27
27
  *
28
28
  * // Real-time console via SSE
29
29
  * const conn = await server.createConnection();
30
- * conn.on("console_output", (line) => console.log(line));
30
+ * conn.on("console_entry", (entry) => console.log(entry.text));
31
31
  * conn.on("stats", (stats) => console.log(`CPU: ${stats.cpuAbsolute}%`));
32
32
  * await conn.open();
33
33
  * ```
@@ -202,7 +202,7 @@ export declare class MeowPanelApi {
202
202
  *
203
203
  * // Real-time events
204
204
  * const conn = await server.createConnection();
205
- * conn.on('console_output', (line) => console.log(line));
205
+ * conn.on('console_entry', (entry) => console.log(entry.text));
206
206
  * conn.on('stats', (stats) => console.log(`CPU: ${stats.cpuAbsolute}%`));
207
207
  * await conn.open();
208
208
  * ```
package/esm/src/client.js CHANGED
@@ -177,7 +177,7 @@ export class MeowPanelApi {
177
177
  *
178
178
  * // Real-time events
179
179
  * const conn = await server.createConnection();
180
- * conn.on('console_output', (line) => console.log(line));
180
+ * conn.on('console_entry', (entry) => console.log(entry.text));
181
181
  * conn.on('stats', (stats) => console.log(`CPU: ${stats.cpuAbsolute}%`));
182
182
  * await conn.open();
183
183
  * ```
package/esm/src/http.d.ts CHANGED
@@ -81,6 +81,13 @@ export declare class HttpClient {
81
81
  * @param params Query parameters to append.
82
82
  */
83
83
  fetch(path: string, init?: RequestInit, params?: Record<string, string | number | boolean | undefined>): Promise<Response>;
84
+ /**
85
+ * Send a request to a URL outside the API, such as a node daemon, through the configured
86
+ * `fetch` with the current bearer token. Non-2xx responses are returned, not thrown.
87
+ *
88
+ * @internal
89
+ */
90
+ fetchUrl(url: string, init?: RequestInit): Promise<Response>;
84
91
  /**
85
92
  * GET and deserialize a JSON response body.
86
93
  *
@@ -89,7 +96,8 @@ export declare class HttpClient {
89
96
  */
90
97
  get<T>(path: string, opts?: RequestOptions): Promise<T>;
91
98
  /**
92
- * POST with an optional JSON body. Returns `undefined` for `204 No Content`.
99
+ * POST with an optional JSON body. Returns `undefined` for a response without a body, such as
100
+ * `204 No Content` or a bare `202 Accepted`.
93
101
  *
94
102
  * @param path Path relative to the API base URL.
95
103
  * @param body Request body, serialized as JSON.
@@ -97,7 +105,7 @@ export declare class HttpClient {
97
105
  */
98
106
  post<T = void>(path: string, body?: unknown, opts?: RequestOptions): Promise<T>;
99
107
  /**
100
- * PATCH with an optional JSON body. Returns `undefined` for `204 No Content`.
108
+ * PATCH with an optional JSON body. Returns `undefined` for a response without a body.
101
109
  *
102
110
  * @param path Path relative to the API base URL.
103
111
  * @param body Partial update body, serialized as JSON.
@@ -105,7 +113,7 @@ export declare class HttpClient {
105
113
  */
106
114
  patch<T = void>(path: string, body?: unknown, opts?: RequestOptions): Promise<T>;
107
115
  /**
108
- * DELETE a resource. Returns `undefined` for `204 No Content`, otherwise the parsed body.
116
+ * DELETE a resource. Returns `undefined` for a response without a body, otherwise the parsed body.
109
117
  *
110
118
  * @param path Path relative to the API base URL.
111
119
  * @param opts Additional request options.
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IACjC,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,4EAA4E;IAC5E,MAAM,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,4EAA4E;AAC5E,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAEhF,wDAAwD;AACxD,UAAU,gBAAgB;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;CAC/D;AAED,oDAAoD;AACpD,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IACjE,IAAI,EAAE,eAAe,CAAC;CACtB;AAED,uDAAuD;AACvD,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IACnE,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,sEAAsE;AACtE,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IACjE,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;CACb;AAED,+DAA+D;AAC/D,MAAM,MAAM,YAAY,GACrB,wBAAwB,GACxB,0BAA0B,GAC1B,wBAAwB,CAAC;AAE5B,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAEvD,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC9B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC/D,8CAA8C;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IACtB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;gBAMpB,OAAO,EAAE,iBAAiB;IAe7C,4DAA4D;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,uCAAuC;IAChC,QAAQ,IAAI,MAAM;IAIzB,kEAAkE;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG,MAAM;IAUrG,mDAAmD;IACnD,SAAS,KAAK,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOrD;IAED,8DAA8D;cAC9C,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYjE,OAAO,CAAC,GAAG;YAQG,YAAY;IAiE1B;;;;;;OAMG;IACU,KAAK,CACjB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,WAAgB,EACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC5D,OAAO,CAAC,QAAQ,CAAC;IAOpB;;;;;OAKG;IACU,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKxE;;;;;;OAMG;IACU,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAUhG;;;;;;OAMG;IACU,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAUjG;;;;;OAKG;IACU,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAMlF;;;;;;;OAOG;IACU,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAapH;;;;;;;OAOG;IACU,IAAI,CAAC,CAAC,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,WAAgB,EACtB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACjE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAwBxB"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IACjC,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,4EAA4E;IAC5E,MAAM,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,4EAA4E;AAC5E,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAEhF,wDAAwD;AACxD,UAAU,gBAAgB;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;CAC/D;AAED,oDAAoD;AACpD,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IACjE,IAAI,EAAE,eAAe,CAAC;CACtB;AAED,uDAAuD;AACvD,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IACnE,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,sEAAsE;AACtE,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IACjE,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;CACb;AAED,+DAA+D;AAC/D,MAAM,MAAM,YAAY,GACrB,wBAAwB,GACxB,0BAA0B,GAC1B,wBAAwB,CAAC;AAE5B,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAEvD,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC9B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC/D,8CAA8C;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IACtB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;gBAMpB,OAAO,EAAE,iBAAiB;IAe7C,4DAA4D;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,uCAAuC;IAChC,QAAQ,IAAI,MAAM;IAIzB,kEAAkE;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG,MAAM;IAUrG,mDAAmD;IACnD,SAAS,KAAK,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOrD;IAED,8DAA8D;cAC9C,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYjE,OAAO,CAAC,GAAG;YAQG,YAAY;IAiE1B;;;;;;OAMG;IACU,KAAK,CACjB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,WAAgB,EACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC5D,OAAO,CAAC,QAAQ,CAAC;IAOpB;;;;;OAKG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMvE;;;;;OAKG;IACU,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKxE;;;;;;;OAOG;IACU,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAShG;;;;;;OAMG;IACU,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IASjG;;;;;OAKG;IACU,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKlF;;;;;;;OAOG;IACU,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAYpH;;;;;;;OAOG;IACU,IAAI,CAAC,CAAC,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,WAAgB,EACtB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACjE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAwBxB"}
package/esm/src/http.js CHANGED
@@ -148,6 +148,18 @@ export class HttpClient {
148
148
  headers: { ...this.defaultHeaders, ...init.headers },
149
149
  }, params);
150
150
  }
151
+ /**
152
+ * Send a request to a URL outside the API, such as a node daemon, through the configured
153
+ * `fetch` with the current bearer token. Non-2xx responses are returned, not thrown.
154
+ *
155
+ * @internal
156
+ */
157
+ fetchUrl(url, init = {}) {
158
+ const headers = new Headers(init.headers);
159
+ if (this.token)
160
+ headers.set('Authorization', `Bearer ${this.token}`);
161
+ return this.fetchImpl(url, { ...init, headers });
162
+ }
151
163
  /**
152
164
  * GET and deserialize a JSON response body.
153
165
  *
@@ -159,7 +171,8 @@ export class HttpClient {
159
171
  return res.json();
160
172
  }
161
173
  /**
162
- * POST with an optional JSON body. Returns `undefined` for `204 No Content`.
174
+ * POST with an optional JSON body. Returns `undefined` for a response without a body, such as
175
+ * `204 No Content` or a bare `202 Accepted`.
163
176
  *
164
177
  * @param path Path relative to the API base URL.
165
178
  * @param body Request body, serialized as JSON.
@@ -167,12 +180,10 @@ export class HttpClient {
167
180
  */
168
181
  async post(path, body, opts = {}) {
169
182
  const res = await this.fetch(path, { method: 'POST', body: body !== undefined ? JSON.stringify(body) : undefined, signal: opts.signal }, opts.params);
170
- if (res.status === 204)
171
- return undefined;
172
- return res.json();
183
+ return readBody(res);
173
184
  }
174
185
  /**
175
- * PATCH with an optional JSON body. Returns `undefined` for `204 No Content`.
186
+ * PATCH with an optional JSON body. Returns `undefined` for a response without a body.
176
187
  *
177
188
  * @param path Path relative to the API base URL.
178
189
  * @param body Partial update body, serialized as JSON.
@@ -180,21 +191,17 @@ export class HttpClient {
180
191
  */
181
192
  async patch(path, body, opts = {}) {
182
193
  const res = await this.fetch(path, { method: 'PATCH', body: body !== undefined ? JSON.stringify(body) : undefined, signal: opts.signal }, opts.params);
183
- if (res.status === 204)
184
- return undefined;
185
- return res.json();
194
+ return readBody(res);
186
195
  }
187
196
  /**
188
- * DELETE a resource. Returns `undefined` for `204 No Content`, otherwise the parsed body.
197
+ * DELETE a resource. Returns `undefined` for a response without a body, otherwise the parsed body.
189
198
  *
190
199
  * @param path Path relative to the API base URL.
191
200
  * @param opts Additional request options.
192
201
  */
193
202
  async delete(path, opts = {}) {
194
203
  const res = await this.fetch(path, { method: 'DELETE', signal: opts.signal }, opts.params);
195
- if (res.status === 204)
196
- return undefined;
197
- return res.json();
204
+ return readBody(res);
198
205
  }
199
206
  /**
200
207
  * PUT raw body content (e.g. for binary or multipart uploads).
@@ -214,9 +221,7 @@ export class HttpClient {
214
221
  headers,
215
222
  signal: opts.signal,
216
223
  }, opts.params);
217
- if (res.status === 204)
218
- return undefined;
219
- return res.json();
224
+ return readBody(res);
220
225
  }
221
226
  /**
222
227
  * GET a paginated list, parsing the `Content-Range` header for metadata when available.
@@ -251,3 +256,8 @@ export class HttpClient {
251
256
  return { data: array, total, page, perPage };
252
257
  }
253
258
  }
259
+ /** The JSON body of a response, or `undefined` when it has none. */
260
+ async function readBody(res) {
261
+ const text = await res.text();
262
+ return (text === '' ? undefined : JSON.parse(text));
263
+ }
@@ -34,7 +34,7 @@ export declare class ActivityJob extends ReactiveResource {
34
34
  /** The operation the job performs, e.g. `"server.install"`. */
35
35
  readonly kind: string;
36
36
  /** Current job status. */
37
- status: 'in_progress' | 'completed' | 'failed';
37
+ status: 'in_progress' | 'completed' | 'failed' | 'canceled';
38
38
  /** Completion percentage (0-100), or `null` if the job reports none. */
39
39
  progress: number | null;
40
40
  /** Latest status line, or `null` if the job reports none. */
@@ -67,6 +67,12 @@ export declare class ActivityJob extends ReactiveResource {
67
67
  export declare class ActivityLog extends ReactiveResource {
68
68
  /** The activity log entry's unique NanoID. */
69
69
  readonly id: NanoID;
70
+ /**
71
+ * The id the node daemon gave an entry it reported, which a console entry points at as its
72
+ * `activityId`. `null` for an entry the API recorded, and `undefined` unless the request asked
73
+ * for the `node_entry_id` include.
74
+ */
75
+ readonly nodeEntryId: string | null | undefined;
70
76
  /** The event type identifier, e.g. `"server.power.start"`. */
71
77
  event: string;
72
78
  /** NanoID of the server this activity is associated with, if any. */
@@ -124,7 +130,16 @@ export interface ActivityFeedOptions {
124
130
  nodeId?: NanoID;
125
131
  /** Filter by host. */
126
132
  hostId?: NanoID;
133
+ /** Only the entries the node daemon reported with these ids. */
134
+ nodeEntryIds?: readonly string[];
135
+ /** Related records to embed in each entry. */
136
+ include?: readonly ActivityInclude[];
127
137
  }
138
+ /**
139
+ * Extra data an activity entry can carry: `issuer` and `subject` fill those users, `job` the job,
140
+ * and `node_entry_id` the id the node daemon gave the entry.
141
+ */
142
+ export type ActivityInclude = 'issuer' | 'subject' | 'job' | 'node_entry_id';
128
143
  /** Query options for a single server's activity feed. */
129
144
  export interface ServerActivityFeedOptions extends ActivityFeedOptions {
130
145
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../../../src/src/resources/servers/activity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../../../src/src/resources/servers/activity.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ReactiveResource } from '../../reactive.js';
2
- import { parseIssuerRef, toNanoID } from '../../types.js';
2
+ import { joinIncludes, parseIssuerRef, toNanoID } from '../../types.js';
3
3
  import { User } from '../users.js';
4
4
  /**
5
5
  * A single log entry within an {@link ActivityJob}.
@@ -81,6 +81,12 @@ export class ActivityJob extends ReactiveResource {
81
81
  export class ActivityLog extends ReactiveResource {
82
82
  /** The activity log entry's unique NanoID. */
83
83
  id;
84
+ /**
85
+ * The id the node daemon gave an entry it reported, which a console entry points at as its
86
+ * `activityId`. `null` for an entry the API recorded, and `undefined` unless the request asked
87
+ * for the `node_entry_id` include.
88
+ */
89
+ nodeEntryId;
84
90
  /** The event type identifier, e.g. `"server.power.start"`. */
85
91
  event;
86
92
  /** NanoID of the server this activity is associated with, if any. */
@@ -117,6 +123,7 @@ export class ActivityLog extends ReactiveResource {
117
123
  constructor(data) {
118
124
  super();
119
125
  this.id = toNanoID(data.id);
126
+ this.nodeEntryId = data.node_entry_id;
120
127
  this.event = data.event;
121
128
  this.serverId = data.server_id ? toNanoID(data.server_id) : null;
122
129
  this.nodeId = data.node_id ? toNanoID(data.node_id) : null;
@@ -154,6 +161,8 @@ export async function listActivities(http, path, opts = {}, extra = {}) {
154
161
  group_id: opts.groupId,
155
162
  node_id: opts.nodeId,
156
163
  host_id: opts.hostId,
164
+ node_entry_id: opts.nodeEntryIds?.length ? opts.nodeEntryIds.join(',') : undefined,
165
+ include: joinIncludes(opts),
157
166
  ...extra,
158
167
  };
159
168
  const result = await http.list(path, { page: opts.page, perPage: opts.perPage }, params);
@@ -1,7 +1,47 @@
1
+ import type { HttpClient } from '../../http.js';
1
2
  import { ReactiveResource } from '../../reactive.js';
2
3
  import { type SseState } from '../../sse.js';
3
- import type { NanoID, PowerState } from '../../types.js';
4
+ import type { NanoID, PowerAction, PowerState } from '../../types.js';
4
5
  import type { JobStatus } from './jobs.js';
6
+ /** What a {@link ConsoleEntry} records. */
7
+ export type ConsoleEntryKind = 'output' | 'command' | 'power' | 'state' | 'daemon' | 'crash';
8
+ declare const transferStatuses: readonly ["pending", "processing", "canceling", "canceled", "failed", "completed"];
9
+ /** Where a server transfer stands. `canceled`, `failed` and `completed` are final. */
10
+ export type TransferStatus = (typeof transferStatuses)[number];
11
+ /**
12
+ * One entry of a server's console timeline: a line of output, a command someone sent, a power
13
+ * action, a state change, a message from the daemon, or a crash.
14
+ */
15
+ export interface ConsoleEntry {
16
+ /** Orders the server's entries. Each entry's is higher than the one before it. */
17
+ seq: number;
18
+ time: Date;
19
+ kind: ConsoleEntryKind;
20
+ /** The line of output, the command sent, or the daemon's message. */
21
+ text?: string;
22
+ /** The state a `state` entry moved to. */
23
+ state?: PowerState;
24
+ /**
25
+ * The action of a `power` entry. A power action is recorded twice: as it starts, with the
26
+ * `running` status, and as it ends.
27
+ */
28
+ action?: PowerAction;
29
+ status?: JobStatus;
30
+ /** Why a `failed` power action failed. */
31
+ error?: string;
32
+ /** The power action's job, on its `power` entries and on the `daemon` messages it printed. */
33
+ jobId?: string;
34
+ /**
35
+ * The auth issuer id of whoever sent a command or power action, as in {@link ServerConnection.viewerIssuerId}.
36
+ * Missing when the daemon acted on its own.
37
+ */
38
+ issuerId?: string;
39
+ /** The `nodeEntryId` of the activity entry a command or power action produced. */
40
+ activityId?: string;
41
+ /** How a crashed process ended. */
42
+ exitCode?: number;
43
+ outOfMemory?: boolean;
44
+ }
5
45
  /** Real-time resource utilization reported by the node. */
6
46
  export interface ServerUtilization {
7
47
  /** CPU usage as an absolute percentage (0–100+). */
@@ -47,8 +87,8 @@ export interface BackupCompletedEvent {
47
87
  }
48
88
  /** Typed events emitted by {@link ServerConnection}. */
49
89
  export interface ServerConnectionEvents {
50
- /** A line of console output from the server process. */
51
- console_output: string;
90
+ /** A new entry in the server's console timeline. */
91
+ console_entry: ConsoleEntry;
52
92
  /** The server's power state changed. */
53
93
  status: PowerState;
54
94
  /** New resource utilization stats are available. */
@@ -66,19 +106,14 @@ export interface ServerConnectionEvents {
66
106
  install_started: '';
67
107
  /** Installation finished. */
68
108
  install_completed: '';
69
- /**
70
- * A line of installation output.
71
- * Gated on `server.install.log`, so it never arrives for a viewer who lacks it.
72
- */
73
- install_output: string;
74
109
  /** An out-of-band status message from the daemon. */
75
110
  daemon_message: string;
76
111
  /** A backup finished; the payload's `id` identifies which one. */
77
112
  backup_completed: BackupCompletedEvent;
78
113
  /** A backup restore finished. */
79
114
  backup_restore_completed: '';
80
- /** The transfer status changed. A loose string: the daemon may emit values outside its own enum. */
81
- transfer_status: string;
115
+ /** The transfer status changed. */
116
+ transfer_status: TransferStatus;
82
117
  /**
83
118
  * A line of transfer output.
84
119
  * Gated on `server.transfer.log`, so it never arrives for a viewer who lacks it.
@@ -90,13 +125,14 @@ export interface ServerConnectionEvents {
90
125
  /**
91
126
  * A real-time SSE connection to a specific server on its Whisker node daemon.
92
127
  *
93
- * Emits typed events for console output, power state changes, and resource utilization.
94
- * Also maintains a rolling buffer of console output lines in {@link output}, pre-populated
95
- * with recent history fetched from the node on {@link open}.
128
+ * Emits typed events for the console timeline, power state changes, and resource utilization.
129
+ * Also keeps the console timeline in {@link entries}, starting with the history the node holds,
130
+ * fetched on {@link open}.
96
131
  *
97
132
  * The stream reconnects on its own after the daemon restarts or the network drops. Track it
98
- * through {@link state} or the `connection_state` event. After a reconnect, console lines the
99
- * daemon still holds from the gap are appended to {@link output} and emitted as `console_output`.
133
+ * through {@link state} or the `connection_state` event. After a reconnect, or when the daemon
134
+ * dropped entries for a viewer that fell behind, the missing entries are fetched and appended to
135
+ * {@link entries} in order, and emitted as `console_entry`.
100
136
  *
101
137
  * Obtain a connection via `Server.createConnection`.
102
138
  *
@@ -109,8 +145,8 @@ export interface ServerConnectionEvents {
109
145
  *
110
146
  * await conn.open();
111
147
  *
112
- * // Reactive: $conn.output is the full rolling buffer of console lines
113
- * // Live lines are appended automatically as they arrive over SSE
148
+ * // Reactive: $conn.entries is the console timeline
149
+ * // Live entries are appended automatically as they arrive over SSE
114
150
  *
115
151
  * // Later...
116
152
  * conn.close();
@@ -119,11 +155,9 @@ export interface ServerConnectionEvents {
119
155
  export declare class ServerConnection extends ReactiveResource {
120
156
  private readonly serverId;
121
157
  private readonly nodeUrl;
122
- private readonly getToken;
123
- /** Maximum number of console output lines retained in {@link ServerConnection.output}. */
124
- private static readonly maxOutputLines;
125
- /** Console history lines fetched from the node on open and after each reconnect. */
126
- private static readonly historyLines;
158
+ private readonly http;
159
+ /** How many entries {@link ServerConnection.entries} keeps, the size of the daemon's timeline. */
160
+ private static readonly maxEntries;
127
161
  /**
128
162
  * Whisker sends a keepalive every 20 seconds, so a stream silent for this long is dead even
129
163
  * if the socket never closed.
@@ -131,28 +165,32 @@ export declare class ServerConnection extends ReactiveResource {
131
165
  private static readonly idleTimeoutMs;
132
166
  private readonly listeners;
133
167
  private sse?;
134
- /** Live console lines held back while the post-reconnect history is merged in. */
135
- private pendingOutput?;
168
+ /** Live entries held back while the post-reconnect history is merged in. */
169
+ private pendingEntries?;
136
170
  /**
137
- * Rolling buffer of console output lines, capped at {@link ServerConnection.maxOutputLines}.
171
+ * The console timeline, oldest first, capped at the daemon's timeline size.
138
172
  *
139
- * Pre-populated with recent history from the node when {@link open} is called,
140
- * then appended to live as `console_output` SSE events arrive.
173
+ * Starts with the history the node holds when {@link open} is called, then grows as
174
+ * `console_entry` events arrive.
141
175
  *
142
- * Use as a reactive store: `$conn.output`.
176
+ * Use as a reactive store: `$conn.entries`.
143
177
  */
144
- output: string[];
178
+ entries: ConsoleEntry[];
145
179
  /** @internal */
146
- constructor(serverId: NanoID, nodeUrl: string, getToken: () => string);
180
+ constructor(serverId: NanoID, nodeUrl: string, http: HttpClient);
147
181
  /** State of the stream to the daemon. */
148
182
  get state(): SseState;
149
183
  /** `true` if the SSE connection is currently open. */
150
184
  get isConnected(): boolean;
151
185
  /**
152
- * Fetch console history and open the SSE stream.
186
+ * The auth issuer id the connection's token belongs to, which is how {@link ConsoleEntry.issuerId}
187
+ * names the viewer. `undefined` if the token does not say.
188
+ */
189
+ get viewerIssuerId(): string | undefined;
190
+ /**
191
+ * Fetch the console history and open the SSE stream.
153
192
  *
154
- * Populates {@link output} with recent history from the node, then begins streaming
155
- * live events.
193
+ * Fills {@link entries} with the history the node holds, then begins streaming live events.
156
194
  *
157
195
  * Only one stream is maintained at a time.
158
196
  *
@@ -179,15 +217,19 @@ export declare class ServerConnection extends ReactiveResource {
179
217
  removeAllListeners(): void;
180
218
  private fetchHistory;
181
219
  /**
182
- * Fill in the console lines printed while the stream was down.
220
+ * Fill in the entries missed while the stream was down, or that the daemon dropped, from the
221
+ * history. `first` is a live entry that came after the gap.
183
222
  *
184
- * Live lines are held back until the history arrives, because the history snapshot may
185
- * already contain them. Lines that fell out of the daemon's history window are lost.
223
+ * Live entries are held back until the history arrives, so the gap comes before them. A
224
+ * daemon whose newest entry is older than the last one seen has lost its timeline, and its
225
+ * history is taken as new.
186
226
  */
187
- private resyncOutput;
188
- private appendOutput;
227
+ private resyncEntries;
228
+ private get lastSeq();
229
+ private appendEntry;
189
230
  private emit;
190
231
  /** Parse and dispatch a raw SSE event to registered handlers. */
191
232
  private dispatch;
192
233
  }
234
+ export {};
193
235
  //# sourceMappingURL=connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../src/src/resources/servers/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../src/src/resources/servers/connection.ts"],"names":[],"mappings":"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"}