scoundrel-remote-eval 1.0.18 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -106,3 +106,10 @@ const greeting = await greetingRef.serialize()
106
106
 
107
107
  expect(greeting).toEqual("Hello World")
108
108
  ```
109
+
110
+ You can unregister classes or objects to remove them from server-side lookups and `evalWithReference` scope:
111
+
112
+ ```js
113
+ client.unregisterClass("TestGreeter")
114
+ client.unregisterObject("testSettings")
115
+ ```
@@ -9,24 +9,24 @@ export default class WebSocket {
9
9
  commandsCount: number;
10
10
  close(): Promise<void>;
11
11
  /**
12
- * @param {(data: any) => void} callback
12
+ * @param {(data: any) => void} callback Handler for incoming commands
13
13
  */
14
14
  onCommand(callback: (data: any) => void): void;
15
15
  onCommandCallback: (data: any) => void;
16
16
  /**
17
- * @param {Event} event
17
+ * @param {Event} event WebSocket error event
18
18
  */
19
19
  onSocketError: (event: Event) => void;
20
20
  /**
21
- * @param {MessageEvent} event
21
+ * @param {MessageEvent} event WebSocket message event
22
22
  */
23
23
  onSocketMessage: (event: MessageEvent) => void;
24
24
  /**
25
- * @param {Event} event
25
+ * @param {Event} event WebSocket open event
26
26
  */
27
27
  onSocketOpen: (event: Event) => void;
28
28
  /**
29
- * @param {Record<string, any>} data
29
+ * @param {Record<string, any>} data Payload to send
30
30
  */
31
31
  send(data: Record<string, any>): void;
32
32
  waitForOpened: () => Promise<any>;
@@ -9,13 +9,13 @@ export default class WebSocket {
9
9
  */
10
10
  constructor(ws) {
11
11
  /**
12
- * @param {Event} event
12
+ * @param {Event} event WebSocket error event
13
13
  */
14
14
  this.onSocketError = (event) => {
15
15
  logger.error(() => ["onSocketError", event]);
16
16
  };
17
17
  /**
18
- * @param {MessageEvent} event
18
+ * @param {MessageEvent} event WebSocket message event
19
19
  */
20
20
  this.onSocketMessage = (event) => {
21
21
  const data = JSON.parse(event.data);
@@ -26,7 +26,7 @@ export default class WebSocket {
26
26
  this.onCommandCallback(data);
27
27
  };
28
28
  /**
29
- * @param {Event} event
29
+ * @param {Event} event WebSocket open event
30
30
  */
31
31
  this.onSocketOpen = (event) => {
32
32
  logger.log(() => ["onSocketOpen", event]);
@@ -51,13 +51,13 @@ export default class WebSocket {
51
51
  await this.ws.close();
52
52
  }
53
53
  /**
54
- * @param {(data: any) => void} callback
54
+ * @param {(data: any) => void} callback Handler for incoming commands
55
55
  */
56
56
  onCommand(callback) {
57
57
  this.onCommandCallback = callback;
58
58
  }
59
59
  /**
60
- * @param {Record<string, any>} data
60
+ * @param {Record<string, any>} data Payload to send
61
61
  */
62
62
  send(data) {
63
63
  const sendData = JSON.stringify(data);
@@ -66,4 +66,4 @@ export default class WebSocket {
66
66
  this.ws.send(sendData);
67
67
  }
68
68
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2Nvbm5lY3Rpb25zL3dlYi1zb2NrZXQvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sTUFBTSxNQUFNLG9CQUFvQixDQUFBO0FBRXZDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7QUFFaEQsd0JBQXdCO0FBRXhCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sU0FBUztJQUM1Qjs7O09BR0c7SUFDSCxZQUFZLEVBQUU7UUEyQmQ7O1dBRUc7UUFDSCxrQkFBYSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzlDLENBQUMsQ0FBQTtRQUVEOztXQUVHO1FBQ0gsb0JBQWUsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzFCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBRW5DLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxnREFBZ0QsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBRTFFLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFBO1lBQ2hFLENBQUM7WUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUIsQ0FBQyxDQUFBO1FBRUQ7O1dBRUc7UUFDSCxpQkFBWSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzNDLENBQUMsQ0FBQTtRQWFELGtCQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDcEQsYUFBYTtZQUNiLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBRXpDLGFBQWE7WUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUMzQyxDQUFDLENBQUMsQ0FBQTtRQXhFQSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUVaLGFBQWE7UUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFckQsYUFBYTtRQUNiLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUVuRCxhQUFhO1FBQ2IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBRXpELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFBO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsUUFBUTtRQUNoQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFBO0lBQ25DLENBQUM7SUErQkQ7O09BRUc7SUFDSCxJQUFJLENBQUMsSUFBSTtRQUNQLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBRXZDLGFBQWE7UUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUN4QixDQUFDO0NBU0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi4vLi4vLi4vbG9nZ2VyLmpzXCJcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcihcIlNjb3VuZHJlbCBXZWJTb2NrZXRcIilcblxuLy8gbG9nZ2VyLnNldERlYnVnKHRydWUpXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdlYlNvY2tldCB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFdlYlNvY2tldCBjb25uZWN0aW9uIGhhbmRsZXJcbiAgICogQHBhcmFtIHtXZWJTb2NrZXR9IHdzIFRoZSBXZWJTb2NrZXQgaW5zdGFuY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKHdzKSB7XG4gICAgdGhpcy53cyA9IHdzXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgdGhpcy5vblNvY2tldEVycm9yKVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMud3MuYWRkRXZlbnRMaXN0ZW5lcihcIm9wZW5cIiwgdGhpcy5vblNvY2tldE9wZW4pXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCB0aGlzLm9uU29ja2V0TWVzc2FnZSlcblxuICAgIHRoaXMuY29tbWFuZHMgPSB7fVxuICAgIHRoaXMuY29tbWFuZHNDb3VudCA9IDBcbiAgfVxuXG4gIGFzeW5jIGNsb3NlKCkge1xuICAgIGF3YWl0IHRoaXMud3MuY2xvc2UoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7KGRhdGE6IGFueSkgPT4gdm9pZH0gY2FsbGJhY2tcbiAgICovXG4gIG9uQ29tbWFuZChjYWxsYmFjaykge1xuICAgIHRoaXMub25Db21tYW5kQ2FsbGJhY2sgPSBjYWxsYmFja1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XG4gICAqL1xuICBvblNvY2tldEVycm9yID0gKGV2ZW50KSA9PiB7XG4gICAgbG9nZ2VyLmVycm9yKCgpID0+IFtcIm9uU29ja2V0RXJyb3JcIiwgZXZlbnRdKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7TWVzc2FnZUV2ZW50fSBldmVudFxuICAgKi9cbiAgb25Tb2NrZXRNZXNzYWdlID0gKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZXZlbnQuZGF0YSlcblxuICAgIGxvZ2dlci5sb2coKCkgPT4gW1wiQ2xpZW50OjpDb25uZWN0aW9uczo6V2ViU29ja2V0IG9uU29ja2V0TWVzc2FnZVwiLCBkYXRhXSlcblxuICAgIGlmICghdGhpcy5vbkNvbW1hbmRDYWxsYmFjaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gb25Db21tYW5kIGNhbGxiYWNrIHNldCwgaWdub3JpbmcgbWVzc2FnZVwiKVxuICAgIH1cblxuICAgIHRoaXMub25Db21tYW5kQ2FsbGJhY2soZGF0YSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxuICAgKi9cbiAgb25Tb2NrZXRPcGVuID0gKGV2ZW50KSA9PiB7XG4gICAgbG9nZ2VyLmxvZygoKSA9PiBbXCJvblNvY2tldE9wZW5cIiwgZXZlbnRdKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gZGF0YVxuICAgKi9cbiAgc2VuZChkYXRhKSB7XG4gICAgY29uc3Qgc2VuZERhdGEgPSBKU09OLnN0cmluZ2lmeShkYXRhKVxuICAgIGxvZ2dlci5sb2coKCkgPT4gW1wiU2VuZGluZ1wiLCBzZW5kRGF0YV0pXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy53cy5zZW5kKHNlbmREYXRhKVxuICB9XG5cbiAgd2FpdEZvck9wZW5lZCA9ICgpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKFwib3BlblwiLCByZXNvbHZlKVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMud3MuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsIHJlamVjdClcbiAgfSlcbn1cbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2Nvbm5lY3Rpb25zL3dlYi1zb2NrZXQvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sTUFBTSxNQUFNLG9CQUFvQixDQUFBO0FBRXZDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7QUFFaEQsd0JBQXdCO0FBRXhCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sU0FBUztJQUM1Qjs7O09BR0c7SUFDSCxZQUFZLEVBQUU7UUEyQmQ7O1dBRUc7UUFDSCxrQkFBYSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzlDLENBQUMsQ0FBQTtRQUVEOztXQUVHO1FBQ0gsb0JBQWUsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzFCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBRW5DLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxnREFBZ0QsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBRTFFLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFBO1lBQ2hFLENBQUM7WUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUIsQ0FBQyxDQUFBO1FBRUQ7O1dBRUc7UUFDSCxpQkFBWSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzNDLENBQUMsQ0FBQTtRQWFELGtCQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDcEQsYUFBYTtZQUNiLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBRXpDLGFBQWE7WUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUMzQyxDQUFDLENBQUMsQ0FBQTtRQXhFQSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUVaLGFBQWE7UUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFckQsYUFBYTtRQUNiLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUVuRCxhQUFhO1FBQ2IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBRXpELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFBO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsUUFBUTtRQUNoQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFBO0lBQ25DLENBQUM7SUErQkQ7O09BRUc7SUFDSCxJQUFJLENBQUMsSUFBSTtRQUNQLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBRXZDLGFBQWE7UUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUN4QixDQUFDO0NBU0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi4vLi4vLi4vbG9nZ2VyLmpzXCJcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcihcIlNjb3VuZHJlbCBXZWJTb2NrZXRcIilcblxuLy8gbG9nZ2VyLnNldERlYnVnKHRydWUpXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdlYlNvY2tldCB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFdlYlNvY2tldCBjb25uZWN0aW9uIGhhbmRsZXJcbiAgICogQHBhcmFtIHtXZWJTb2NrZXR9IHdzIFRoZSBXZWJTb2NrZXQgaW5zdGFuY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKHdzKSB7XG4gICAgdGhpcy53cyA9IHdzXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgdGhpcy5vblNvY2tldEVycm9yKVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMud3MuYWRkRXZlbnRMaXN0ZW5lcihcIm9wZW5cIiwgdGhpcy5vblNvY2tldE9wZW4pXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCB0aGlzLm9uU29ja2V0TWVzc2FnZSlcblxuICAgIHRoaXMuY29tbWFuZHMgPSB7fVxuICAgIHRoaXMuY29tbWFuZHNDb3VudCA9IDBcbiAgfVxuXG4gIGFzeW5jIGNsb3NlKCkge1xuICAgIGF3YWl0IHRoaXMud3MuY2xvc2UoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7KGRhdGE6IGFueSkgPT4gdm9pZH0gY2FsbGJhY2sgSGFuZGxlciBmb3IgaW5jb21pbmcgY29tbWFuZHNcbiAgICovXG4gIG9uQ29tbWFuZChjYWxsYmFjaykge1xuICAgIHRoaXMub25Db21tYW5kQ2FsbGJhY2sgPSBjYWxsYmFja1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IFdlYlNvY2tldCBlcnJvciBldmVudFxuICAgKi9cbiAgb25Tb2NrZXRFcnJvciA9IChldmVudCkgPT4ge1xuICAgIGxvZ2dlci5lcnJvcigoKSA9PiBbXCJvblNvY2tldEVycm9yXCIsIGV2ZW50XSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge01lc3NhZ2VFdmVudH0gZXZlbnQgV2ViU29ja2V0IG1lc3NhZ2UgZXZlbnRcbiAgICovXG4gIG9uU29ja2V0TWVzc2FnZSA9IChldmVudCkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpXG5cbiAgICBsb2dnZXIubG9nKCgpID0+IFtcIkNsaWVudDo6Q29ubmVjdGlvbnM6OldlYlNvY2tldCBvblNvY2tldE1lc3NhZ2VcIiwgZGF0YV0pXG5cbiAgICBpZiAoIXRoaXMub25Db21tYW5kQ2FsbGJhY2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIG9uQ29tbWFuZCBjYWxsYmFjayBzZXQsIGlnbm9yaW5nIG1lc3NhZ2VcIilcbiAgICB9XG5cbiAgICB0aGlzLm9uQ29tbWFuZENhbGxiYWNrKGRhdGEpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQgV2ViU29ja2V0IG9wZW4gZXZlbnRcbiAgICovXG4gIG9uU29ja2V0T3BlbiA9IChldmVudCkgPT4ge1xuICAgIGxvZ2dlci5sb2coKCkgPT4gW1wib25Tb2NrZXRPcGVuXCIsIGV2ZW50XSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGRhdGEgUGF5bG9hZCB0byBzZW5kXG4gICAqL1xuICBzZW5kKGRhdGEpIHtcbiAgICBjb25zdCBzZW5kRGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpXG4gICAgbG9nZ2VyLmxvZygoKSA9PiBbXCJTZW5kaW5nXCIsIHNlbmREYXRhXSlcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLndzLnNlbmQoc2VuZERhdGEpXG4gIH1cblxuICB3YWl0Rm9yT3BlbmVkID0gKCkgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLndzLmFkZEV2ZW50TGlzdGVuZXIoXCJvcGVuXCIsIHJlc29sdmUpXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgcmVqZWN0KVxuICB9KVxufVxuIl19
@@ -1,9 +1,8 @@
1
1
  export default class Client {
2
2
  /**
3
3
  * Creates a new Scoundrel Client
4
- *
5
4
  * @param {any} backend The backend connection (e.g., WebSocket)
6
- * @param {{enableServerControl?: boolean}} [options]
5
+ * @param {{enableServerControl?: boolean}} [options] Client configuration options
7
6
  */
8
7
  constructor(backend: any, options?: {
9
8
  enableServerControl?: boolean;
@@ -30,65 +29,59 @@ export default class Client {
30
29
  close(): Promise<void>;
31
30
  /**
32
31
  * Calls a method on a reference and returns the result directly
33
- *
34
- * @param {number} referenceId
35
- * @param {string} methodName
36
- * @param {...any} args
37
- * @returns {Promise<any>}
32
+ * @param {number} referenceId Reference identifier
33
+ * @param {string} methodName Method name to invoke
34
+ * @param {...any} args Arguments to pass to the method
35
+ * @returns {Promise<any>} Result from the method call
38
36
  */
39
37
  callMethodOnReference(referenceId: number, methodName: string, ...args: any[]): Promise<any>;
40
38
  /**
41
39
  * Calls a method on a reference and returns a new reference
42
- *
43
- * @param {number} referenceId
44
- * @param {string} methodName
45
- * @param {...any} args
46
- * @returns {Promise<Reference>}
40
+ * @param {number} referenceId Reference identifier
41
+ * @param {string} methodName Method name to invoke
42
+ * @param {...any} args Arguments to pass to the method
43
+ * @returns {Promise<Reference>} Reference to the return value
47
44
  */
48
45
  callMethodOnReferenceWithReference(referenceId: number, methodName: string, ...args: any[]): Promise<Reference>;
49
46
  /**
50
47
  * Evaluates a string and returns a new reference
51
- *
52
- * @param {string} evalString
53
- * @returns {Promise<Reference>}
48
+ * @param {string} evalString Code to evaluate
49
+ * @returns {Promise<Reference>} Reference to the evaluated value
54
50
  */
55
51
  evalWithReference(evalString: string): Promise<Reference>;
56
52
  /**
57
53
  * Imports a module and returns a reference to it
58
- *
59
- * @param {string} importName
60
- * @returns {Promise<Reference>}
54
+ * @param {string} importName Module name to import
55
+ * @returns {Promise<Reference>} Reference to the module
61
56
  */
62
57
  import(importName: string): Promise<Reference>;
63
58
  /**
64
59
  * Gets a registered object by name
65
- *
66
- * @param {string} objectName
67
- * @returns {Promise<Reference>}
60
+ * @param {string} objectName Registered object name
61
+ * @returns {Promise<Reference>} Reference to the object
68
62
  */
69
63
  getObject(objectName: string): Promise<Reference>;
70
64
  /**
71
65
  * Spawns a new reference to an object
72
- *
73
- * @param {string} className
74
- * @param {...any} args
75
- * @returns {Promise<Reference>}
66
+ * @param {string} className Class name to construct
67
+ * @param {...any} args Constructor arguments
68
+ * @returns {Promise<Reference>} Reference to the new instance
76
69
  */
77
70
  newObjectWithReference(className: string, ...args: any[]): Promise<Reference>;
78
71
  /**
79
72
  * Checks if the input is a plain object
80
- * @param {any} input
81
- * @returns {boolean}
73
+ * @param {any} input Value to inspect
74
+ * @returns {boolean} True when the value is a plain object
82
75
  */
83
76
  isPlainObject(input: any): boolean;
84
77
  /**
85
78
  * Handles an incoming command from the backend
86
- * @param {object} args
87
- * @param {string} args.command
88
- * @param {number} args.command_id
89
- * @param {any} args.data
90
- * @param {string} [args.error]
91
- * @param {string} [args.errorStack]
79
+ * @param {object} args Command payload
80
+ * @param {string} args.command Command name
81
+ * @param {number} args.command_id Command identifier
82
+ * @param {any} args.data Command data
83
+ * @param {string} [args.error] Error message from the backend
84
+ * @param {string} [args.errorStack] Error stack from the backend
92
85
  */
93
86
  onCommand: ({ command, command_id: commandID, data, error, errorStack, ...restArgs }: {
94
87
  command: string;
@@ -99,92 +92,92 @@ export default class Client {
99
92
  }) => void;
100
93
  /**
101
94
  * Parases an argument for sending to the server
102
- *
103
- * @param {any} arg
104
- * @returns {any}
95
+ * @param {any} arg Argument to serialize for transport
96
+ * @returns {any} Serialized argument payload
105
97
  */
106
98
  parseArg(arg: any): any;
107
99
  /**
108
100
  * Reads an attribute on a reference and returns a new reference
109
- *
110
- * @param {number} referenceId
111
- * @param {string} attributeName
112
- * @returns {Promise<Reference>}
101
+ * @param {number} referenceId Reference identifier
102
+ * @param {string} attributeName Attribute name to read
103
+ * @returns {Promise<Reference>} Reference to the attribute value
113
104
  */
114
105
  readAttributeOnReferenceWithReference(referenceId: number, attributeName: string): Promise<Reference>;
115
106
  /**
116
107
  * Reads an attribute on a reference and returns the result directly
117
- *
118
- * @param {number} referenceId
119
- * @param {string} attributeName
120
- * @returns {Promise<any>}
108
+ * @param {number} referenceId Reference identifier
109
+ * @param {string} attributeName Attribute name to read
110
+ * @returns {Promise<any>} Attribute value
121
111
  */
122
112
  readAttributeOnReference(referenceId: number, attributeName: string): Promise<any>;
123
113
  /**
124
114
  * Registers a class by name
125
- *
126
- * @param {string} className
127
- * @param {any} classInstance
115
+ * @param {string} className Class name to register
116
+ * @param {any} classInstance Class constructor or instance
128
117
  */
129
118
  registerClass(className: string, classInstance: any): void;
119
+ /**
120
+ * Unregisters a class by name
121
+ * @param {string} className Class name to remove
122
+ */
123
+ unregisterClass(className: string): void;
130
124
  /**
131
125
  * Gets a registered class by name
132
- *
133
- * @param {string} className
134
- * @returns {any}
126
+ * @param {string} className Class name to look up
127
+ * @returns {any} Registered class or undefined
135
128
  */
136
129
  _getRegisteredClass(className: string): any;
137
130
  /**
138
131
  * Gets a registered class by name
139
- *
140
- * @param {string} className
141
- * @returns {any}
132
+ * @param {string} className Class name to look up
133
+ * @returns {any} Registered class or undefined
142
134
  */
143
135
  getClass(className: string): any;
144
136
  /**
145
137
  * Registers an object by name
146
- *
147
- * @param {string} objectName
148
- * @param {any} objectInstance
138
+ * @param {string} objectName Object name to register
139
+ * @param {any} objectInstance Object instance
149
140
  */
150
141
  registerObject(objectName: string, objectInstance: any): void;
142
+ /**
143
+ * Unregisters an object by name
144
+ * @param {string} objectName Object name to remove
145
+ */
146
+ unregisterObject(objectName: string): void;
151
147
  /**
152
148
  * Gets a registered object by name
153
- *
154
- * @param {string} objectName
155
- * @returns {any}
149
+ * @param {string} objectName Object name to look up
150
+ * @returns {any} Registered object or undefined
156
151
  */
157
152
  _getRegisteredObject(objectName: string): any;
158
153
  /**
159
154
  * Responds to a command from the backend
160
- * @param {number} commandId
161
- * @param {any} data
155
+ * @param {number} commandId Command identifier
156
+ * @param {any} data Response payload
162
157
  */
163
158
  respondToCommand(commandId: number, data: any): void;
164
159
  /**
165
160
  * Sends a command to the backend and returns a promise that resolves with the response
166
- * @param {string} command
167
- * @param {any} data
168
- * @returns {Promise<any>}
161
+ * @param {string} command Command name
162
+ * @param {any} data Command payload
163
+ * @returns {Promise<any>} Response from the backend
169
164
  */
170
165
  sendCommand(command: string, data: any): Promise<any>;
171
166
  /**
172
167
  * Sends data to the backend
173
- * @param {any} data
168
+ * @param {any} data Payload to send
174
169
  */
175
170
  send(data: any): void;
176
171
  /**
177
172
  * Serializes a reference and returns the result directly
178
- *
179
- * @param {number} referenceId
180
- * @returns {Promise<any>}
173
+ * @param {number} referenceId Reference identifier
174
+ * @returns {Promise<any>} Parsed JSON representation
181
175
  */
182
176
  serializeReference(referenceId: number): Promise<any>;
183
177
  /**
184
178
  * Spawns a new reference to an object
185
- *
186
- * @param {string} id
187
- * @returns {Reference}
179
+ * @param {string} id Reference identifier
180
+ * @returns {Reference} Reference instance
188
181
  */
189
182
  spawnReference(id: string): Reference;
190
183
  enableServerControl(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.js"],"names":[],"mappings":"AAUA;IACE;;;;;OAKG;IACH,qBAHW,GAAG,YACH;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAC,EA2BzC;IAxBC,aAAsB;IAGtB,kCAAkC;IAClC,kBADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACJ;IAC1B,qBAA0B;IAC1B,8BAA8B;IAE9B,kCAAkC;IAClC,UADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACZ;IAElB,kCAAkC;IAClC,UADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACZ;IAElB,wCAAwC;IACxC,YADW,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAChB;IAEpB,kCAAkC;IAClC,SADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACb;IAEjB,qBAAqB;IAErB,sBAAsB;IACtB,sBADW,OAAO,CAC8C;IAGlE;;OAEG;IACH,uBAEC;IAED;;;;;;;OAOG;IACH,mCALW,MAAM,cACN,MAAM,WACF,GAAG,EAAA,GACL,OAAO,CAAC,GAAG,CAAC,CAWxB;IAED;;;;;;;OAOG;IACH,gDALW,MAAM,cACN,MAAM,WACF,GAAG,EAAA,GACL,OAAO,CAAC,SAAS,CAAC,CAY9B;IAED;;;;;OAKG;IACH,8BAHW,MAAM,GACJ,OAAO,CAAC,SAAS,CAAC,CAe9B;IAED;;;;;OAKG;IACH,mBAHW,MAAM,GACJ,OAAO,CAAC,SAAS,CAAC,CAe9B;IAED;;;;;OAKG;IACH,sBAHW,MAAM,GACJ,OAAO,CAAC,SAAS,CAAC,CAY9B;IAED;;;;;;OAMG;IACH,kCAJW,MAAM,WACF,GAAG,EAAA,GACL,OAAO,CAAC,SAAS,CAAC,CAe9B;IAED;;;;OAIG;IACH,qBAHW,GAAG,GACD,OAAO,CAQnB;IAED;;;;;;;;OAQG;IACH,YAAa,0EANV;QAAqB,OAAO,EAApB,MAAM;QACO,UAAU,EAAvB,MAAM;QACI,IAAI,EAAd,GAAG;QACW,KAAK,GAAnB,MAAM;QACQ,UAAU,GAAxB,MAAM;KAEkE,UAuPlF;IAED;;;;;OAKG;IACH,cAHW,GAAG,GACD,GAAG,CAwBf;IAED;;;;;;OAMG;IACH,mDAJW,MAAM,iBACN,MAAM,GACJ,OAAO,CAAC,SAAS,CAAC,CAW9B;IAED;;;;;;OAMG;IACH,sCAJW,MAAM,iBACN,MAAM,GACJ,OAAO,CAAC,GAAG,CAAC,CASxB;IAED;;;;;OAKG;IACH,yBAHW,MAAM,iBACN,GAAG,QAMb;IAED;;;;;OAKG;IACH,+BAHW,MAAM,GACJ,GAAG,CAIf;IAED;;;;;OAKG;IACH,oBAHW,MAAM,GACJ,GAAG,CAIf;IAED;;;;;OAKG;IACH,2BAHW,MAAM,kBACN,GAAG,QAMb;IAED;;;;;OAKG;IACH,iCAHW,MAAM,GACJ,GAAG,CAIf;IAED;;;;OAIG;IACH,4BAHW,MAAM,QACN,GAAG,QAIb;IAED;;;;;OAKG;IACH,qBAJW,MAAM,QACN,GAAG,GACD,OAAO,CAAC,GAAG,CAAC,CAkBxB;IAED;;;OAGG;IACH,WAFW,GAAG,QAIb;IAED;;;;;OAKG;IACH,gCAHW,MAAM,GACJ,OAAO,CAAC,GAAG,CAAC,CAMxB;IAED;;;;;OAKG;IACH,mBAHW,MAAM,GACJ,SAAS,CAQrB;IAED,4BAEC;CACF;sBApnBqB,gBAAgB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.js"],"names":[],"mappings":"AAUA;IACE;;;;OAIG;IACH,qBAHW,GAAG,YACH;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAC,EA2BzC;IAxBC,aAAsB;IAGtB,kCAAkC;IAClC,kBADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACJ;IAC1B,qBAA0B;IAC1B,8BAA8B;IAE9B,kCAAkC;IAClC,UADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACZ;IAElB,kCAAkC;IAClC,UADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACZ;IAElB,wCAAwC;IACxC,YADW,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAChB;IAEpB,kCAAkC;IAClC,SADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACb;IAEjB,qBAAqB;IAErB,sBAAsB;IACtB,sBADW,OAAO,CAC8C;IAGlE;;OAEG;IACH,uBAEC;IAED;;;;;;OAMG;IACH,mCALW,MAAM,cACN,MAAM,WACF,GAAG,EAAA,GACL,OAAO,CAAC,GAAG,CAAC,CAWxB;IAED;;;;;;OAMG;IACH,gDALW,MAAM,cACN,MAAM,WACF,GAAG,EAAA,GACL,OAAO,CAAC,SAAS,CAAC,CAY9B;IAED;;;;OAIG;IACH,8BAHW,MAAM,GACJ,OAAO,CAAC,SAAS,CAAC,CAe9B;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,OAAO,CAAC,SAAS,CAAC,CAe9B;IAED;;;;OAIG;IACH,sBAHW,MAAM,GACJ,OAAO,CAAC,SAAS,CAAC,CAY9B;IAED;;;;;OAKG;IACH,kCAJW,MAAM,WACF,GAAG,EAAA,GACL,OAAO,CAAC,SAAS,CAAC,CAe9B;IAED;;;;OAIG;IACH,qBAHW,GAAG,GACD,OAAO,CAQnB;IAED;;;;;;;;OAQG;IACH,YAAa,0EANV;QAAqB,OAAO,EAApB,MAAM;QACO,UAAU,EAAvB,MAAM;QACI,IAAI,EAAd,GAAG;QACW,KAAK,GAAnB,MAAM;QACQ,UAAU,GAAxB,MAAM;KAEkE,UAuPlF;IAED;;;;OAIG;IACH,cAHW,GAAG,GACD,GAAG,CAwBf;IAED;;;;;OAKG;IACH,mDAJW,MAAM,iBACN,MAAM,GACJ,OAAO,CAAC,SAAS,CAAC,CAW9B;IAED;;;;;OAKG;IACH,sCAJW,MAAM,iBACN,MAAM,GACJ,OAAO,CAAC,GAAG,CAAC,CASxB;IAED;;;;OAIG;IACH,yBAHW,MAAM,iBACN,GAAG,QAMb;IAED;;;OAGG;IACH,2BAFW,MAAM,QAMhB;IAED;;;;OAIG;IACH,+BAHW,MAAM,GACJ,GAAG,CAIf;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,GAAG,CAIf;IAED;;;;OAIG;IACH,2BAHW,MAAM,kBACN,GAAG,QAMb;IAED;;;OAGG;IACH,6BAFW,MAAM,QAMhB;IAED;;;;OAIG;IACH,iCAHW,MAAM,GACJ,GAAG,CAIf;IAED;;;;OAIG;IACH,4BAHW,MAAM,QACN,GAAG,QAIb;IAED;;;;;OAKG;IACH,qBAJW,MAAM,QACN,GAAG,GACD,OAAO,CAAC,GAAG,CAAC,CAkBxB;IAED;;;OAGG;IACH,WAFW,GAAG,QAIb;IAED;;;;OAIG;IACH,gCAHW,MAAM,GACJ,OAAO,CAAC,GAAG,CAAC,CAMxB;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,SAAS,CAQrB;IAED,4BAEC;CACF;sBAvnBqB,gBAAgB"}