@stemy/backend 6.0.3 → 6.1.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 (43) hide show
  1. package/commands/clear.command.d.ts +6 -0
  2. package/commands/fixtures.command.d.ts +9 -0
  3. package/commands/move-assets.command.d.ts +10 -0
  4. package/common-types.d.ts +22 -12
  5. package/esm2022/commands/clear.command.mjs +15 -0
  6. package/esm2022/commands/fixtures.command.mjs +26 -0
  7. package/esm2022/commands/index.mjs +6 -4
  8. package/esm2022/commands/move-assets.command.mjs +45 -0
  9. package/esm2022/common-types.mjs +3 -3
  10. package/esm2022/public_api.mjs +18 -6
  11. package/esm2022/services/assets.mjs +46 -13
  12. package/esm2022/services/backend-provider.mjs +7 -1
  13. package/esm2022/services/cli-terminal.mjs +56 -0
  14. package/esm2022/services/configuration.mjs +11 -4
  15. package/esm2022/services/drivers/asset-fallback-driver.mjs +35 -0
  16. package/esm2022/services/drivers/asset-grid.driver.mjs +5 -7
  17. package/esm2022/services/drivers/asset-local.driver.mjs +19 -18
  18. package/esm2022/services/drivers/asset-storage-proxy.driver.mjs +48 -0
  19. package/esm2022/services/drivers/fallback-readable.mjs +34 -0
  20. package/esm2022/services/drivers/fallback-streams.mjs +34 -0
  21. package/esm2022/services/entities/asset.mjs +50 -15
  22. package/esm2022/services/entities/temp-asset.mjs +15 -3
  23. package/esm2022/services/terminal-manager.mjs +30 -16
  24. package/esm2022/socket-controllers/socket-terminal.mjs +89 -0
  25. package/esm2022/socket-controllers/terminal.controller.mjs +3 -3
  26. package/fesm2022/stemy-backend.mjs +423 -140
  27. package/fesm2022/stemy-backend.mjs.map +1 -1
  28. package/package.json +3 -2
  29. package/public_api.d.ts +2 -1
  30. package/services/assets.d.ts +13 -5
  31. package/services/cli-terminal.d.ts +18 -0
  32. package/services/configuration.d.ts +2 -0
  33. package/services/drivers/asset-fallback-driver.d.ts +11 -0
  34. package/services/drivers/asset-grid.driver.d.ts +4 -5
  35. package/services/drivers/asset-local.driver.d.ts +6 -6
  36. package/services/drivers/asset-storage-proxy.driver.d.ts +14 -0
  37. package/services/drivers/fallback-readable.d.ts +2 -0
  38. package/services/drivers/fallback-streams.d.ts +2 -0
  39. package/services/entities/asset.d.ts +8 -3
  40. package/services/entities/temp-asset.d.ts +6 -1
  41. package/services/terminal-manager.d.ts +3 -0
  42. package/socket-controllers/socket-terminal.d.ts +19 -0
  43. package/socket-controllers/terminal.controller.d.ts +2 -2
@@ -5,16 +5,25 @@ export class TempAsset {
5
5
  filename;
6
6
  contentType;
7
7
  metadata;
8
- id;
8
+ get id() {
9
+ return this.oid.toHexString();
10
+ }
11
+ get streamId() {
12
+ return this.oid;
13
+ }
14
+ get driverId() {
15
+ return "temp";
16
+ }
9
17
  get stream() {
10
18
  return bufferToStream(this.buffer);
11
19
  }
20
+ oid;
12
21
  constructor(buffer, filename, contentType, metadata) {
13
22
  this.buffer = buffer;
14
23
  this.filename = filename;
15
24
  this.contentType = contentType;
16
25
  this.metadata = metadata;
17
- this.id = new ObjectId().toHexString();
26
+ this.oid = new ObjectId();
18
27
  }
19
28
  async unlink() {
20
29
  throw new Error(`Temp asset '${this.id}' can not be removed!`);
@@ -25,6 +34,9 @@ export class TempAsset {
25
34
  async getBuffer() {
26
35
  return this.buffer;
27
36
  }
37
+ async move() {
38
+ throw new Error(`Temp asset '${this.id}' can not be moved!`);
39
+ }
28
40
  async download(metadata) {
29
41
  return this.stream;
30
42
  }
@@ -50,4 +62,4 @@ export class TempAsset {
50
62
  };
51
63
  }
52
64
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcC1hc3NldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9lbnRpdGllcy90ZW1wLWFzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFOUIsT0FBTyxFQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFcEQsTUFBTSxPQUFPLFNBQVM7SUFRSTtJQUF5QjtJQUEyQjtJQUE4QjtJQU4vRixFQUFFLENBQVM7SUFFcEIsSUFBSSxNQUFNO1FBQ04sT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFzQixNQUFjLEVBQVcsUUFBZ0IsRUFBVyxXQUFtQixFQUFXLFFBQW9CO1FBQXRHLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVcsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFBVyxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQ3hILElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsSUFBSSxDQUFDLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUF5QjtRQUNuQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFxQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUEwQixFQUFFLFFBQXFCO1FBQzNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0MsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxRQUFRLENBQUMsTUFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNO1FBQ0YsT0FBTztZQUNILEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQzFCLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWRhYmxlfSBmcm9tIFwic3RyZWFtXCI7XHJcbmltcG9ydCB7T2JqZWN0SWR9IGZyb20gXCJic29uXCI7XHJcbmltcG9ydCB7SUFzc2V0LCBJQXNzZXRJbWFnZVBhcmFtcywgSUFzc2V0TWV0YX0gZnJvbSBcIi4uLy4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge2J1ZmZlclRvU3RyZWFtLCB0b0ltYWdlfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBUZW1wQXNzZXQgaW1wbGVtZW50cyBJQXNzZXQge1xyXG5cclxuICAgIHJlYWRvbmx5IGlkOiBzdHJpbmc7XHJcblxyXG4gICAgZ2V0IHN0cmVhbSgpOiBSZWFkYWJsZSB7XHJcbiAgICAgICAgcmV0dXJuIGJ1ZmZlclRvU3RyZWFtKHRoaXMuYnVmZmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYnVmZmVyOiBCdWZmZXIsIHJlYWRvbmx5IGZpbGVuYW1lOiBzdHJpbmcsIHJlYWRvbmx5IGNvbnRlbnRUeXBlOiBzdHJpbmcsIHJlYWRvbmx5IG1ldGFkYXRhOiBJQXNzZXRNZXRhKSB7XHJcbiAgICAgICAgdGhpcy5pZCA9IG5ldyBPYmplY3RJZCgpLnRvSGV4U3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgdW5saW5rKCk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW1wIGFzc2V0ICcke3RoaXMuaWR9JyBjYW4gbm90IGJlIHJlbW92ZWQhYCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2V0TWV0YShtZXRhOiBQYXJ0aWFsPElBc3NldE1ldGE+KTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMubWV0YWRhdGEsIG1ldGEgfHwge30pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEJ1ZmZlcigpOiBQcm9taXNlPEJ1ZmZlcj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJ1ZmZlcjtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkb3dubG9hZChtZXRhZGF0YT86IElBc3NldE1ldGEpOiBQcm9taXNlPFJlYWRhYmxlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyZWFtO1xyXG4gICAgfVxyXG5cclxuICAgIGRvd25sb2FkSW1hZ2UocGFyYW1zPzogSUFzc2V0SW1hZ2VQYXJhbXMsIG1ldGFkYXRhPzogSUFzc2V0TWV0YSk6IFByb21pc2U8UmVhZGFibGU+IHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMubWV0YWRhdGEsIG1ldGFkYXRhIHx8IHt9KTtcclxuICAgICAgICByZXR1cm4gdG9JbWFnZSh0aGlzLnN0cmVhbSwgcGFyYW1zLCB0aGlzLm1ldGFkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJbWFnZShwYXJhbXM/OiBJQXNzZXRJbWFnZVBhcmFtcyk6IFByb21pc2U8UmVhZGFibGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kb3dubG9hZEltYWdlKHBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2F2ZSgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx0aGlzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdG9KU09OKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWQ6IHRoaXMuaWQsXHJcbiAgICAgICAgICAgIGZpbGVuYW1lOiB0aGlzLmZpbGVuYW1lLFxyXG4gICAgICAgICAgICBjb250ZW50VHlwZTogdGhpcy5jb250ZW50VHlwZSxcclxuICAgICAgICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGFcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcC1hc3NldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9lbnRpdGllcy90ZW1wLWFzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFOUIsT0FBTyxFQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFcEQsTUFBTSxPQUFPLFNBQVM7SUFvQkk7SUFBeUI7SUFBMkI7SUFBOEI7SUFsQnhHLElBQUksRUFBRTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFa0IsR0FBRyxDQUFXO0lBRWpDLFlBQXNCLE1BQWMsRUFBVyxRQUFnQixFQUFXLFdBQW1CLEVBQVcsUUFBb0I7UUFBdEcsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFXLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBVyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUFXLGFBQVEsR0FBUixRQUFRLENBQVk7UUFDeEgsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTTtRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQXlCO1FBQ25DLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQXFCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQTBCLEVBQUUsUUFBcUI7UUFDM0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3QyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUEwQjtRQUMvQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU07UUFDRixPQUFPO1lBQ0gsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDMUIsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhZGFibGV9IGZyb20gXCJzdHJlYW1cIjtcclxuaW1wb3J0IHtPYmplY3RJZH0gZnJvbSBcImJzb25cIjtcclxuaW1wb3J0IHtJQXNzZXQsIElBc3NldEltYWdlUGFyYW1zLCBJQXNzZXRNZXRhfSBmcm9tIFwiLi4vLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7YnVmZmVyVG9TdHJlYW0sIHRvSW1hZ2V9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRlbXBBc3NldCBpbXBsZW1lbnRzIElBc3NldCB7XHJcblxyXG4gICAgZ2V0IGlkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub2lkLnRvSGV4U3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHN0cmVhbUlkKCk6IE9iamVjdElkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5vaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRyaXZlcklkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIFwidGVtcFwiO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzdHJlYW0oKTogUmVhZGFibGUge1xyXG4gICAgICAgIHJldHVybiBidWZmZXJUb1N0cmVhbSh0aGlzLmJ1ZmZlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9pZDogT2JqZWN0SWQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGJ1ZmZlcjogQnVmZmVyLCByZWFkb25seSBmaWxlbmFtZTogc3RyaW5nLCByZWFkb25seSBjb250ZW50VHlwZTogc3RyaW5nLCByZWFkb25seSBtZXRhZGF0YTogSUFzc2V0TWV0YSkge1xyXG4gICAgICAgIHRoaXMub2lkID0gbmV3IE9iamVjdElkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgdW5saW5rKCk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW1wIGFzc2V0ICcke3RoaXMuaWR9JyBjYW4gbm90IGJlIHJlbW92ZWQhYCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2V0TWV0YShtZXRhOiBQYXJ0aWFsPElBc3NldE1ldGE+KTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMubWV0YWRhdGEsIG1ldGEgfHwge30pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEJ1ZmZlcigpOiBQcm9taXNlPEJ1ZmZlcj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJ1ZmZlcjtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBtb3ZlKCk6IFByb21pc2U8SUFzc2V0PiB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW1wIGFzc2V0ICcke3RoaXMuaWR9JyBjYW4gbm90IGJlIG1vdmVkIWApO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRvd25sb2FkKG1ldGFkYXRhPzogSUFzc2V0TWV0YSk6IFByb21pc2U8UmVhZGFibGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdHJlYW07XHJcbiAgICB9XHJcblxyXG4gICAgZG93bmxvYWRJbWFnZShwYXJhbXM/OiBJQXNzZXRJbWFnZVBhcmFtcywgbWV0YWRhdGE/OiBJQXNzZXRNZXRhKTogUHJvbWlzZTxSZWFkYWJsZT4ge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tZXRhZGF0YSwgbWV0YWRhdGEgfHwge30pO1xyXG4gICAgICAgIHJldHVybiB0b0ltYWdlKHRoaXMuc3RyZWFtLCBwYXJhbXMsIHRoaXMubWV0YWRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEltYWdlKHBhcmFtcz86IElBc3NldEltYWdlUGFyYW1zKTogUHJvbWlzZTxSZWFkYWJsZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRvd25sb2FkSW1hZ2UocGFyYW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBzYXZlKCk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbG9hZCgpOiBQcm9taXNlPHRoaXM+IHtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB0b0pTT04oKTogYW55IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZDogdGhpcy5pZCxcclxuICAgICAgICAgICAgZmlsZW5hbWU6IHRoaXMuZmlsZW5hbWUsXHJcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiB0aGlzLmNvbnRlbnRUeXBlLFxyXG4gICAgICAgICAgICBtZXRhZGF0YTogdGhpcy5tZXRhZGF0YVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -5,9 +5,11 @@ import { TERMINAL_COMMAND } from "../common-types";
5
5
  import { Logger } from "./logger";
6
6
  import { Configuration } from "./configuration";
7
7
  import { camelCaseToDash, colorize, ConsoleColor } from "../utils";
8
+ import { CliTerminal } from "./cli-terminal";
8
9
  let TerminalManager = class TerminalManager {
9
10
  logger;
10
11
  config;
12
+ cliTerminal;
11
13
  servicePassword;
12
14
  suggestions;
13
15
  commands;
@@ -40,7 +42,7 @@ let TerminalManager = class TerminalManager {
40
42
  this.commands = commands.reduce((acc, command) => {
41
43
  if (!command.name)
42
44
  return acc;
43
- acc[command.name] = async (a, t) => command.execute(a, t);
45
+ acc[command.name] = async (a, t, p) => command.execute(a, t, p);
44
46
  return acc;
45
47
  }, {});
46
48
  this.loggedOutCommands = ["login", "clear"];
@@ -48,23 +50,35 @@ let TerminalManager = class TerminalManager {
48
50
  this.loggedInCommands.push("logout");
49
51
  console.log(`Current service password is: ${colorize(this.servicePassword, ConsoleColor.FgGreen)}`);
50
52
  }
53
+ runCli() {
54
+ this.cliTerminal = new CliTerminal();
55
+ this.loadAddons(this.cliTerminal);
56
+ }
51
57
  loadAddons(terminal) {
52
- let loggedIn = false;
58
+ const isCli = terminal === this.cliTerminal;
59
+ let loggedIn = isCli;
60
+ const commands = isCli ? {
61
+ logout: async () => {
62
+ terminal.dispose();
63
+ }
64
+ } : {
65
+ login: async (args, terminal) => {
66
+ if (args.at(1).label === this.servicePassword) {
67
+ loggedIn = true;
68
+ terminal.writeln("Logged in as admin");
69
+ }
70
+ else {
71
+ throw new Error("Invalid login");
72
+ }
73
+ },
74
+ logout: async (args, terminal) => {
75
+ loggedIn = false;
76
+ terminal.writeln("Logged out");
77
+ }
78
+ };
53
79
  const addon = new CommandsAddon({
54
80
  commands: {
55
- login: async (args, terminal) => {
56
- if (args.at(1).label === this.servicePassword) {
57
- loggedIn = true;
58
- terminal.writeln("Logged in as admin");
59
- }
60
- else {
61
- throw new Error("Invalid login");
62
- }
63
- },
64
- logout: async (args, terminal) => {
65
- loggedIn = false;
66
- terminal.writeln("Logged out");
67
- },
81
+ ...commands,
68
82
  ...this.commands
69
83
  },
70
84
  suggestCommands: async () => {
@@ -85,4 +99,4 @@ TerminalManager = __decorate([
85
99
  Configuration, Array])
86
100
  ], TerminalManager);
87
101
  export { TerminalManager };
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy90ZXJtaW5hbC1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUM5QyxPQUFPLEVBQUMsYUFBYSxFQUE4QixNQUFNLGdDQUFnQyxDQUFDO0FBQzFGLE9BQU8sRUFBOEIsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFHMUQsSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQU9GO0lBQ0E7SUFQWixlQUFlLENBQVM7SUFDeEIsV0FBVyxDQUFpQjtJQUM1QixRQUFRLENBQWM7SUFDdEIsaUJBQWlCLENBQVc7SUFDNUIsZ0JBQWdCLENBQVc7SUFFckMsWUFBc0IsTUFBYyxFQUNkLE1BQXFCLEVBQ0YsUUFBNEI7UUFGL0MsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFFdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNmLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDbEIsT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLENBQUM7Z0JBQ0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMs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eEIsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDakMsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNsQyxDQUFDO1lBQ0QsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQ2hDLENBQUMsQ0FBQztRQUNILFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNKLENBQUE7QUFyRVksZUFBZTtJQUQzQixTQUFTLEVBQUU7SUFVSyxXQUFBLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO3FDQUZWLE1BQU07UUFDTixhQUFhO0dBUmxDLGVBQWUsQ0FxRTNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3RBbGwsIHNpbmdsZXRvbn0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCB7Q29tbWFuZHNBZGRvbiwgSUNvbW1hbmRNYXAsIElTdWdnZXN0aW9uTWFwfSBmcm9tIFwiQHN0ZW15L3Rlcm1pbmFsLWNvbW1hbmRzLWFkZG9uXCI7XHJcbmltcG9ydCB7SVRlcm1pbmFsLCBJVGVybWluYWxDb21tYW5kLCBURVJNSU5BTF9DT01NQU5EfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7TG9nZ2VyfSBmcm9tIFwiLi9sb2dnZXJcIjtcclxuaW1wb3J0IHtDb25maWd1cmF0aW9ufSBmcm9tIFwiLi9jb25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7Y2FtZWxDYXNlVG9EYXNoLCBjb2xvcml6ZSwgQ29uc29sZUNvbG9yfSBmcm9tIFwiLi4vdXRpbHNcIjtcclxuXHJcbkBzaW5nbGV0b24oKVxyXG5leHBvcnQgY2xhc3MgVGVybWluYWxNYW5hZ2VyIHtcclxuICAgIHByb3RlY3RlZCBzZXJ2aWNlUGFzc3dvcmQ6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBzdWdnZXN0aW9uczogSVN1Z2dlc3Rpb25NYXA7XHJcbiAgICBwcm90ZWN0ZWQgY29tbWFuZHM6IElDb21tYW5kTWFwO1xyXG4gICAgcHJvdGVjdGVkIGxvZ2dlZE91dENvbW1hbmRzOiBzdHJpbmdbXTtcclxuICAgIHByb3RlY3RlZCBsb2dnZWRJbkNvbW1hbmRzOiBzdHJpbmdbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbG9nZ2VyOiBMb2dnZXIsXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgY29uZmlnOiBDb25maWd1cmF0aW9uLFxyXG4gICAgICAgICAgICAgICAgQGluamVjdEFsbChURVJNSU5BTF9DT01NQU5EKSBjb21tYW5kczogSVRlcm1pbmFsQ29tbWFuZFtdKSB7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlUGFzc3dvcmQgPSBjb25maWcucmVzb2x2ZShcInNlcnZpY2VQYXNzd29yZFwiKTtcclxuICAgICAgICB0aGlzLnN1Z2dlc3Rpb25zID0ge1xyXG4gICAgICAgICAgICBsb2dpbjogYXN5bmMgKGFyZ3MpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYCR7YXJncy5hdCgxKS5sYWJlbH1gO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICghaW5wdXQpID8gW10gOiBbe1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBpbnB1dCxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogaW5wdXQsXHJcbiAgICAgICAgICAgICAgICAgICAgbWFza2VkOiB0cnVlXHJcbiAgICAgICAgICAgICAgICB9XTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLi4uY29tbWFuZHMucmVkdWNlKChhY2MsIGNvbW1hbmQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbW1hbmQubmFtZSA9IGNhbWVsQ2FzZVRvRGFzaChjb21tYW5kLm5hbWUgfHwgY29tbWFuZC5jb25zdHJ1Y3Rvci5uYW1lIHx8IFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFjb21tYW5kLm5hbWUgfHwgIWNvbW1hbmQuc3VnZ2VzdCkgcmV0dXJuIGFjYztcclxuICAgICAgICAgICAgICAgIGFjY1tjb21tYW5kLm5hbWVdID0gYXN5bmMgKGEsIHQpID0+IGNvbW1hbmQuc3VnZ2VzdChhLCB0KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgICAgIH0sIHt9KVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5jb21tYW5kcyA9IGNvbW1hbmRzLnJlZHVjZSgoYWNjLCBjb21tYW5kKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghY29tbWFuZC5uYW1lKSByZXR1cm4gYWNjO1xyXG4gICAgICAgICAgICBhY2NbY29tbWFuZC5uYW1lXSA9IGFzeW5jIChhLCB0KSA9PiBjb21tYW5kLmV4ZWN1dGUoYSwgdCk7XHJcbiAgICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgfSwge30pO1xyXG4gICAgICAgIHRoaXMubG9nZ2VkT3V0Q29tbWFuZHMgPSBbXCJsb2dpblwiLCBcImNsZWFyXCJdO1xyXG4gICAgICAgIHRoaXMubG9nZ2VkSW5Db21tYW5kcyA9IE9iamVjdC5rZXlzKHRoaXMuY29tbWFuZHMpO1xyXG4gICAgICAgIHRoaXMubG9nZ2VkSW5Db21tYW5kcy5wdXNoKFwibG9nb3V0XCIpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGBDdXJyZW50IHNlcnZpY2UgcGFzc3dvcmQgaXM6ICR7Y29sb3JpemUodGhpcy5zZXJ2aWNlUGFzc3dvcmQsIENvbnNvbGVDb2xvci5GZ0dyZWVuKX1gKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkQWRkb25zKHRlcm1pbmFsOiBJVGVybWluYWwpOiB2b2lkIHtcclxuICAgICAgICBsZXQgbG9nZ2VkSW4gPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBhZGRvbiA9IG5ldyBDb21tYW5kc0FkZG9uKHtcclxuICAgICAgICAgICAgY29tbWFuZHM6IHtcclxuICAgICAgICAgICAgICAgIGxvZ2luOiBhc3luYyAoYXJncywgdGVybWluYWwpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYXJncy5hdCgxKS5sYWJlbCA9PT0gdGhpcy5zZXJ2aWNlUGFzc3dvcmQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VkSW4gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hbC53cml0ZWxuKFwiTG9nZ2VkIGluIGFzIGFkbWluXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbG9naW5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGxvZ291dDogYXN5bmMgKGFyZ3MsIHRlcm1pbmFsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VkSW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hbC53cml0ZWxuKFwiTG9nZ2VkIG91dFwiKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAuLi50aGlzLmNvbW1hbmRzXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Z2dlc3RDb21tYW5kczogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxvZ2dlZEluKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9nZ2VkSW5Db21tYW5kcztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvZ2dlZE91dENvbW1hbmRzO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWdnZXN0aW9uczogdGhpcy5zdWdnZXN0aW9uc1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRlcm1pbmFsLmxvYWRBZGRvbihhZGRvbik7XHJcbiAgICB9XHJcbn1cclxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy90ZXJtaW5hbC1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUM5QyxPQUFPLEVBQUMsYUFBYSxFQUE4QixNQUFNLGdDQUFnQyxDQUFDO0FBQzFGLE9BQU8sRUFBOEIsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDakUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3BDLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFRRjtJQUNBO0lBUlosV0FBVyxDQUFjO0lBQ3pCLGVBQWUsQ0FBUztJQUN4QixXQUFXLENBQWlCO0lBQzVCLFFBQVEsQ0FBYztJQUN0QixpQkFBaUIsQ0FBVztJQUM1QixnQkFBZ0IsQ0FBVztJQUVyQyxZQUFzQixNQUFjLEVBQ2QsTUFBcUIsRUFDRixRQUE0QjtRQUYvQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUV2QyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2YsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNsQixPQUFPLElBQUksQ0FBQztnQkFDaEIsQ0FBQztnQkFDRCxNQUFNLEtBQUssR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3BDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3BCLEVBQUUsRUFBRSxLQUFLO3dCQUNULEtBQUssRUFBRSxLQUFLO3dCQUNaLE1BQU0sRUFBRSxJQUFJO3FCQUNmLENBQUMsQ0FBQztZQUNQLENBQUM7WUFDRCxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7Z0JBQ2hDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQy9FLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87b0JBQUUsT0FBTyxHQUFHLENBQUM7Z0JBQ2xELEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxPQUFPLEdBQUcsQ0FBQztZQUNmLENBQUMsRUFBRSxFQUFvQixDQUFDO1NBQzNCLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQzlCLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEUsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBaUIsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBbUI7UUFDMUIsTUFBTSxLQUFLLEdBQUcsUUFBUSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDNUMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE1BQU0sUUFBUSxHQUFnQixLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDZixRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsQ0FBQztTQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0EsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQzVCLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUM1QyxRQUFRLEdBQUcsSUFBSSxDQUFDO29CQUNoQixRQUFRLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQzNDLENBQUM7cUJBQU0sQ0FBQztvQkFDSixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDO1lBQ0wsQ0FBQztZQUNELE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUM3QixRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUNqQixRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25DLENBQUM7U0FDSixDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxhQUFhLENBQUM7WUFDNUIsUUFBUSxFQUFFO2dCQUNOLEdBQUcsUUFBUTtnQkFDWCxHQUFHLElBQUksQ0FBQyxRQUFRO2FBQ25CO1lBQ0QsZUFBZSxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUN4QixJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUNYLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUNqQyxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQ2xDLENBQUM7WUFDRCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDaEMsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0osQ0FBQTtBQW5GWSxlQUFlO0lBRDNCLFNBQVMsRUFBRTtJQVdLLFdBQUEsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUE7cUNBRlYsTUFBTTtRQUNOLGFBQWE7R0FUbEMsZUFBZSxDQW1GM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdEFsbCwgc2luZ2xldG9ufSBmcm9tIFwidHN5cmluZ2VcIjtcclxuaW1wb3J0IHtDb21tYW5kc0FkZG9uLCBJQ29tbWFuZE1hcCwgSVN1Z2dlc3Rpb25NYXB9IGZyb20gXCJAc3RlbXkvdGVybWluYWwtY29tbWFuZHMtYWRkb25cIjtcclxuaW1wb3J0IHtJVGVybWluYWwsIElUZXJtaW5hbENvbW1hbmQsIFRFUk1JTkFMX0NPTU1BTkR9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtMb2dnZXJ9IGZyb20gXCIuL2xvZ2dlclwiO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb259IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHtjYW1lbENhc2VUb0Rhc2gsIGNvbG9yaXplLCBDb25zb2xlQ29sb3J9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5pbXBvcnQge0NsaVRlcm1pbmFsfSBmcm9tIFwiLi9jbGktdGVybWluYWxcIjtcclxuXHJcbkBzaW5nbGV0b24oKVxyXG5leHBvcnQgY2xhc3MgVGVybWluYWxNYW5hZ2VyIHtcclxuICAgIHByb3RlY3RlZCBjbGlUZXJtaW5hbDogQ2xpVGVybWluYWw7XHJcbiAgICBwcm90ZWN0ZWQgc2VydmljZVBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgICBwcm90ZWN0ZWQgc3VnZ2VzdGlvbnM6IElTdWdnZXN0aW9uTWFwO1xyXG4gICAgcHJvdGVjdGVkIGNvbW1hbmRzOiBJQ29tbWFuZE1hcDtcclxuICAgIHByb3RlY3RlZCBsb2dnZWRPdXRDb21tYW5kczogc3RyaW5nW107XHJcbiAgICBwcm90ZWN0ZWQgbG9nZ2VkSW5Db21tYW5kczogc3RyaW5nW107XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxvZ2dlcjogTG9nZ2VyLFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIGNvbmZpZzogQ29uZmlndXJhdGlvbixcclxuICAgICAgICAgICAgICAgIEBpbmplY3RBbGwoVEVSTUlOQUxfQ09NTUFORCkgY29tbWFuZHM6IElUZXJtaW5hbENvbW1hbmRbXSkge1xyXG4gICAgICAgIHRoaXMuc2VydmljZVBhc3N3b3JkID0gY29uZmlnLnJlc29sdmUoXCJzZXJ2aWNlUGFzc3dvcmRcIik7XHJcbiAgICAgICAgdGhpcy5zdWdnZXN0aW9ucyA9IHtcclxuICAgICAgICAgICAgbG9naW46IGFzeW5jIChhcmdzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGAke2FyZ3MuYXQoMSkubGFiZWx9YDtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoIWlucHV0KSA/IFtdIDogW3tcclxuICAgICAgICAgICAgICAgICAgICBpZDogaW5wdXQsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGlucHV0LFxyXG4gICAgICAgICAgICAgICAgICAgIG1hc2tlZDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgfV07XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC4uLmNvbW1hbmRzLnJlZHVjZSgoYWNjLCBjb21tYW5kKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb21tYW5kLm5hbWUgPSBjYW1lbENhc2VUb0Rhc2goY29tbWFuZC5uYW1lIHx8IGNvbW1hbmQuY29uc3RydWN0b3IubmFtZSB8fCBcIlwiKTtcclxuICAgICAgICAgICAgICAgIGlmICghY29tbWFuZC5uYW1lIHx8ICFjb21tYW5kLnN1Z2dlc3QpIHJldHVybiBhY2M7XHJcbiAgICAgICAgICAgICAgICBhY2NbY29tbWFuZC5uYW1lXSA9IGFzeW5jIChhLCB0KSA9PiBjb21tYW5kLnN1Z2dlc3QoYSwgdCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgICAgICB9LCB7fSBhcyBJU3VnZ2VzdGlvbk1hcClcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuY29tbWFuZHMgPSBjb21tYW5kcy5yZWR1Y2UoKGFjYywgY29tbWFuZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWNvbW1hbmQubmFtZSkgcmV0dXJuIGFjYztcclxuICAgICAgICAgICAgYWNjW2NvbW1hbmQubmFtZV0gPSBhc3luYyAoYSwgdCwgcCkgPT4gY29tbWFuZC5leGVjdXRlKGEsIHQsIHApO1xyXG4gICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgIH0sIHt9IGFzIElDb21tYW5kTWFwKTtcclxuICAgICAgICB0aGlzLmxvZ2dlZE91dENvbW1hbmRzID0gW1wibG9naW5cIiwgXCJjbGVhclwiXTtcclxuICAgICAgICB0aGlzLmxvZ2dlZEluQ29tbWFuZHMgPSBPYmplY3Qua2V5cyh0aGlzLmNvbW1hbmRzKTtcclxuICAgICAgICB0aGlzLmxvZ2dlZEluQ29tbWFuZHMucHVzaChcImxvZ291dFwiKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhgQ3VycmVudCBzZXJ2aWNlIHBhc3N3b3JkIGlzOiAke2NvbG9yaXplKHRoaXMuc2VydmljZVBhc3N3b3JkLCBDb25zb2xlQ29sb3IuRmdHcmVlbil9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgcnVuQ2xpKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2xpVGVybWluYWwgPSBuZXcgQ2xpVGVybWluYWwoKTtcclxuICAgICAgICB0aGlzLmxvYWRBZGRvbnModGhpcy5jbGlUZXJtaW5hbCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEFkZG9ucyh0ZXJtaW5hbDogSVRlcm1pbmFsKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaXNDbGkgPSB0ZXJtaW5hbCA9PT0gdGhpcy5jbGlUZXJtaW5hbDtcclxuICAgICAgICBsZXQgbG9nZ2VkSW4gPSBpc0NsaTtcclxuICAgICAgICBjb25zdCBjb21tYW5kczogSUNvbW1hbmRNYXAgPSBpc0NsaSA/IHtcclxuICAgICAgICAgICAgbG9nb3V0OiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0ZXJtaW5hbC5kaXNwb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IDoge1xyXG4gICAgICAgICAgICBsb2dpbjogYXN5bmMgKGFyZ3MsIHRlcm1pbmFsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYXJncy5hdCgxKS5sYWJlbCA9PT0gdGhpcy5zZXJ2aWNlUGFzc3dvcmQpIHtcclxuICAgICAgICAgICAgICAgICAgICBsb2dnZWRJbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGVybWluYWwud3JpdGVsbihcIkxvZ2dlZCBpbiBhcyBhZG1pblwiKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBsb2dpblwiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgbG9nb3V0OiBhc3luYyAoYXJncywgdGVybWluYWwpID0+IHtcclxuICAgICAgICAgICAgICAgIGxvZ2dlZEluID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0ZXJtaW5hbC53cml0ZWxuKFwiTG9nZ2VkIG91dFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgYWRkb24gPSBuZXcgQ29tbWFuZHNBZGRvbih7XHJcbiAgICAgICAgICAgIGNvbW1hbmRzOiB7XHJcbiAgICAgICAgICAgICAgICAuLi5jb21tYW5kcyxcclxuICAgICAgICAgICAgICAgIC4uLnRoaXMuY29tbWFuZHNcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VnZ2VzdENvbW1hbmRzOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobG9nZ2VkSW4pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2dnZWRJbkNvbW1hbmRzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9nZ2VkT3V0Q29tbWFuZHM7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zOiB0aGlzLnN1Z2dlc3Rpb25zXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGVybWluYWwubG9hZEFkZG9uKGFkZG9uKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,89 @@
1
+ import { BehaviorSubject, Subject } from "rxjs";
2
+ import { first, map, timeout } from "rxjs/operators";
3
+ import { fileTypeFromBuffer } from "../utils";
4
+ export class SocketTerminal {
5
+ client;
6
+ addons;
7
+ files$;
8
+ input$;
9
+ constructor(client) {
10
+ this.client = client;
11
+ this.addons = [];
12
+ this.files$ = new BehaviorSubject([]);
13
+ this.input$ = new Subject();
14
+ }
15
+ onData(cb) {
16
+ const sub = this.input$.pipe(map(v => {
17
+ if (v === "\b") {
18
+ return "\x7f";
19
+ }
20
+ return v;
21
+ })).subscribe(cb);
22
+ return {
23
+ dispose: () => sub.unsubscribe()
24
+ };
25
+ }
26
+ write(data) {
27
+ this.client.emit("terminal-data", data);
28
+ }
29
+ writeln(data) {
30
+ this.write(data + "\n");
31
+ }
32
+ loadAddon(addon) {
33
+ addon.activate(this);
34
+ this.addons.push(addon);
35
+ }
36
+ dispose() {
37
+ this.input$.complete();
38
+ this.client = null;
39
+ this.addons.forEach(a => a.dispose());
40
+ }
41
+ async suggestFiles(accept) {
42
+ const rand = Math.round(Math.random() * 1000);
43
+ const id = `${Date.now()}-${rand}`;
44
+ const files = this.files$.value;
45
+ return files.filter(f => f.accept === accept).concat([
46
+ {
47
+ id,
48
+ label: "...",
49
+ onAccept: async () => {
50
+ this.client.emit("terminal-upload", {
51
+ id,
52
+ accept
53
+ });
54
+ const file = await this.files$
55
+ .pipe(first(v => v.some(f => f.id === id)))
56
+ .pipe(timeout(120000))
57
+ .pipe(map(v => v.find(f => f.id === id)))
58
+ .toPromise();
59
+ if (file.error) {
60
+ this.files$.next(this.files$.value.filter(f => f.id !== id));
61
+ throw new Error(file.error);
62
+ }
63
+ return file;
64
+ },
65
+ showAlways: true,
66
+ accept: accept,
67
+ }
68
+ ]);
69
+ }
70
+ async downloadFile(filename, buffer) {
71
+ const type = await fileTypeFromBuffer(buffer);
72
+ const data = buffer.toString("base64");
73
+ const content = `data:${type.mime};base64,${data}`;
74
+ this.client.emit("terminal-download", {
75
+ filename,
76
+ content
77
+ });
78
+ }
79
+ addFile(upload) {
80
+ if (upload.content) {
81
+ upload.buffer = Buffer.from(upload.content, "base64");
82
+ }
83
+ this.files$.next(this.files$.value.concat(upload));
84
+ }
85
+ input(data) {
86
+ this.input$.next(data);
87
+ }
88
+ }
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LXRlcm1pbmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NvY2tldC1jb250cm9sbGVycy9zb2NrZXQtdGVybWluYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRTVDLE1BQU0sT0FBTyxjQUFjO0lBS0Q7SUFKWixNQUFNLENBQW1CO0lBQ3pCLE1BQU0sQ0FBbUM7SUFDekMsTUFBTSxDQUFrQjtJQUVsQyxZQUFzQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBeUI7UUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNiLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xCLE9BQU87WUFDSCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRTtTQUNuQyxDQUFDO0lBQ04sQ0FBQztJQUVELEtBQUssQ0FB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QztRQUN2QyxNQUFNLE9BQU8sR0FBRyxRQUFRLElBQUksQ0FBQyxJQUFJLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDbEMsUUFBUTtZQUNSLE9BQU87U0FDVixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQXFCO1FBQ3pCLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVk7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtmaXJzdCwgbWFwLCB0aW1lb3V0fSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtJRGlzcG9zYWJsZSwgSVN1Z2dlc3Rpb24sIElUZXJtaW5hbEFkZG9ufSBmcm9tIFwiQHN0ZW15L3Rlcm1pbmFsLWNvbW1hbmRzLWFkZG9uXCI7XHJcbmltcG9ydCB7SUNsaWVudFNvY2tldCwgSVRlcm1pbmFsLCBJVGVybWluYWxGaWxlfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7ZmlsZVR5cGVGcm9tQnVmZmVyfSBmcm9tIFwiLi4vdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTb2NrZXRUZXJtaW5hbCBpbXBsZW1lbnRzIElUZXJtaW5hbCB7XHJcbiAgICBwcm90ZWN0ZWQgYWRkb25zOiBJVGVybWluYWxBZGRvbltdO1xyXG4gICAgcHJvdGVjdGVkIGZpbGVzJDogQmVoYXZpb3JTdWJqZWN0PElUZXJtaW5hbEZpbGVbXT47XHJcbiAgICBwcm90ZWN0ZWQgaW5wdXQkOiBTdWJqZWN0PHN0cmluZz47XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNsaWVudDogSUNsaWVudFNvY2tldCkge1xyXG4gICAgICAgIHRoaXMuYWRkb25zID0gW107XHJcbiAgICAgICAgdGhpcy5maWxlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcclxuICAgICAgICB0aGlzLmlucHV0JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25EYXRhKGNiOiAoZGF0YTogc3RyaW5nKSA9PiBhbnkpOiBJRGlzcG9zYWJsZSB7XHJcbiAgICAgICAgY29uc3Qgc3ViID0gdGhpcy5pbnB1dCQucGlwZShtYXAodiA9PiB7XHJcbiAgICAgICAgICAgIGlmICh2ID09PSBcIlxcYlwiKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJcXHg3ZlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB2O1xyXG4gICAgICAgIH0pKS5zdWJzY3JpYmUoY2IpO1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGRpc3Bvc2U6ICgpID0+IHN1Yi51bnN1YnNjcmliZSgpXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB3cml0ZShkYXRhOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNsaWVudC5lbWl0KFwidGVybWluYWwtZGF0YVwiLCBkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICB3cml0ZWxuKGRhdGE6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMud3JpdGUoZGF0YSArIFwiXFxuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRBZGRvbihhZGRvbjogSVRlcm1pbmFsQWRkb24pIHtcclxuICAgICAgICBhZGRvbi5hY3RpdmF0ZSh0aGlzKTtcclxuICAgICAgICB0aGlzLmFkZG9ucy5wdXNoKGFkZG9uKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNwb3NlKCkge1xyXG4gICAgICAgIHRoaXMuaW5wdXQkLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgdGhpcy5jbGllbnQgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuYWRkb25zLmZvckVhY2goYSA9PiBhLmRpc3Bvc2UoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc3VnZ2VzdEZpbGVzKGFjY2VwdDogc3RyaW5nKTogUHJvbWlzZTxJVGVybWluYWxGaWxlW10+IHtcclxuICAgICAgICBjb25zdCByYW5kID0gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwMCk7XHJcbiAgICAgICAgY29uc3QgaWQgPSBgJHtEYXRlLm5vdygpfS0ke3JhbmR9YDtcclxuICAgICAgICBjb25zdCBmaWxlcyA9IHRoaXMuZmlsZXMkLnZhbHVlIGFzIElTdWdnZXN0aW9uW107XHJcbiAgICAgICAgcmV0dXJuIGZpbGVzLmZpbHRlcihmID0+IGYuYWNjZXB0ID09PSBhY2NlcHQpLmNvbmNhdChbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiLi4uXCIsXHJcbiAgICAgICAgICAgICAgICBvbkFjY2VwdDogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xpZW50LmVtaXQoXCJ0ZXJtaW5hbC11cGxvYWRcIiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZSA9IGF3YWl0IHRoaXMuZmlsZXMkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKGZpcnN0KHYgPT4gdi5zb21lKGYgPT4gZi5pZCA9PT0gaWQpKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUodGltZW91dCgxMjAwMDApKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShtYXAodiA9PiB2LmZpbmQoZiA9PiBmLmlkID09PSBpZCkpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGUuZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlcyQubmV4dCh0aGlzLmZpbGVzJC52YWx1ZS5maWx0ZXIoZiA9PiBmLmlkICE9PSBpZCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZmlsZS5lcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWxlO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHNob3dBbHdheXM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBhY2NlcHQ6IGFjY2VwdCxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRvd25sb2FkRmlsZShmaWxlbmFtZTogc3RyaW5nLCBidWZmZXI6IEJ1ZmZlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGNvbnN0IHR5cGUgPSBhd2FpdCBmaWxlVHlwZUZyb21CdWZmZXIoYnVmZmVyKTtcclxuICAgICAgICBjb25zdCBkYXRhID0gYnVmZmVyLnRvU3RyaW5nKFwiYmFzZTY0XCIpO1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBgZGF0YToke3R5cGUubWltZX07YmFzZTY0LCR7ZGF0YX1gO1xyXG4gICAgICAgIHRoaXMuY2xpZW50LmVtaXQoXCJ0ZXJtaW5hbC1kb3dubG9hZFwiLCB7XHJcbiAgICAgICAgICAgIGZpbGVuYW1lLFxyXG4gICAgICAgICAgICBjb250ZW50XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkRmlsZSh1cGxvYWQ6IElUZXJtaW5hbEZpbGUpIHtcclxuICAgICAgICBpZiAodXBsb2FkLmNvbnRlbnQpIHtcclxuICAgICAgICAgICAgdXBsb2FkLmJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHVwbG9hZC5jb250ZW50LCBcImJhc2U2NFwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5maWxlcyQubmV4dCh0aGlzLmZpbGVzJC52YWx1ZS5jb25jYXQodXBsb2FkKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQoZGF0YTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dCQubmV4dChkYXRhKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -2,7 +2,7 @@ import { __decorate, __metadata, __param } from "tslib";
2
2
  import { singleton } from "tsyringe";
3
3
  import { ConnectedSocket, MessageBody, OnMessage, SocketController } from "socket-controllers";
4
4
  import { TerminalManager } from "../services/terminal-manager";
5
- import { Terminal } from "./terminal";
5
+ import { SocketTerminal } from "./socket-terminal";
6
6
  let TerminalController = class TerminalController {
7
7
  manager;
8
8
  terminals;
@@ -11,7 +11,7 @@ let TerminalController = class TerminalController {
11
11
  this.terminals = {};
12
12
  }
13
13
  async terminalInit(client) {
14
- const terminal = new Terminal(client);
14
+ const terminal = new SocketTerminal(client);
15
15
  this.manager.loadAddons(terminal);
16
16
  this.terminals[client.id] = terminal;
17
17
  client.on("disconnect", () => terminal.dispose());
@@ -58,4 +58,4 @@ TerminalController = __decorate([
58
58
  __metadata("design:paramtypes", [TerminalManager])
59
59
  ], TerminalController);
60
60
  export { TerminalController };
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwuY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zb2NrZXQtY29udHJvbGxlcnMvdGVybWluYWwuY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUc3RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUk3QixJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFrQjtJQUdMO0lBRlosU0FBUyxDQUEyQjtJQUU5QyxZQUFzQixPQUF3QjtRQUF4QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBR0ssQUFBTixLQUFLLENBQUMsWUFBWSxDQUFvQixNQUFxQjtRQUN2RCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDckMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUdLLEFBQU4sS0FBSyxDQUFDLFlBQVksQ0FBb0IsTUFBcUIsRUFBaUIsSUFBWTtRQUNwRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDdEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBR0ssQUFBTixLQUFLLENBQUMsY0FBYyxDQUFvQixNQUFxQixFQUFpQixNQUFxQjtRQUMvRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDakMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBQ0osQ0FBQTtBQXBCUztJQURMLFNBQVMsQ0FBQyxlQUFlLENBQUM7SUFDUCxXQUFBLGVBQWUsRUFBRSxDQUFBOzs7O3NEQUtwQztBQUdLO0lBREwsU0FBUyxDQUFDLGVBQWUsQ0FBQztJQUNQLFdBQUEsZUFBZSxFQUFFLENBQUE7SUFBeUIsV0FBQSxXQUFXLEVBQUUsQ0FBQTs7OztzREFJMUU7QUFHSztJQURMLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztJQUNQLFdBQUEsZUFBZSxFQUFFLENBQUE7SUFBeUIsV0FBQSxXQUFXLEVBQUUsQ0FBQTs7Ozt3REFJNUU7QUEzQlEsa0JBQWtCO0lBRjlCLFNBQVMsRUFBRTtJQUNYLGdCQUFnQixFQUFFO3FDQUlnQixlQUFlO0dBSHJDLGtCQUFrQixDQTRCOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3NpbmdsZXRvbn0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCB7Q29ubmVjdGVkU29ja2V0LCBNZXNzYWdlQm9keSwgT25NZXNzYWdlLCBTb2NrZXRDb250cm9sbGVyfSBmcm9tIFwic29ja2V0LWNvbnRyb2xsZXJzXCI7XHJcblxyXG5pbXBvcnQge0lDbGllbnRTb2NrZXQsIElUZXJtaW5hbEZpbGV9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtUZXJtaW5hbE1hbmFnZXJ9IGZyb20gXCIuLi9zZXJ2aWNlcy90ZXJtaW5hbC1tYW5hZ2VyXCI7XHJcbmltcG9ydCB7VGVybWluYWx9IGZyb20gXCIuL3Rlcm1pbmFsXCI7XHJcblxyXG5Ac2luZ2xldG9uKClcclxuQFNvY2tldENvbnRyb2xsZXIoKVxyXG5leHBvcnQgY2xhc3MgVGVybWluYWxDb250cm9sbGVyIHtcclxuICAgIHByb3RlY3RlZCB0ZXJtaW5hbHM6IHtbaWQ6IHN0cmluZ106IFRlcm1pbmFsfTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbWFuYWdlcjogVGVybWluYWxNYW5hZ2VyKSB7XHJcbiAgICAgICAgdGhpcy50ZXJtaW5hbHMgPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICBAT25NZXNzYWdlKFwidGVybWluYWwtaW5pdFwiKVxyXG4gICAgYXN5bmMgdGVybWluYWxJbml0KEBDb25uZWN0ZWRTb2NrZXQoKSBjbGllbnQ6IElDbGllbnRTb2NrZXQpIHtcclxuICAgICAgICBjb25zdCB0ZXJtaW5hbCA9IG5ldyBUZXJtaW5hbChjbGllbnQpO1xyXG4gICAgICAgIHRoaXMubWFuYWdlci5sb2FkQWRkb25zKHRlcm1pbmFsKTtcclxuICAgICAgICB0aGlzLnRlcm1pbmFsc1tjbGllbnQuaWRdID0gdGVybWluYWw7XHJcbiAgICAgICAgY2xpZW50Lm9uKFwiZGlzY29ubmVjdFwiLCAoKSA9PiB0ZXJtaW5hbC5kaXNwb3NlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIEBPbk1lc3NhZ2UoXCJ0ZXJtaW5hbC1kYXRhXCIpXHJcbiAgICBhc3luYyB0ZXJtaW5hbERhdGEoQENvbm5lY3RlZFNvY2tldCgpIGNsaWVudDogSUNsaWVudFNvY2tldCwgQE1lc3NhZ2VCb2R5KCkgZGF0YTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgdGVybWluYWwgPSB0aGlzLnRlcm1pbmFsc1tjbGllbnQuaWRdO1xyXG4gICAgICAgIGlmICghdGVybWluYWwpIHJldHVybjtcclxuICAgICAgICB0ZXJtaW5hbC5pbnB1dChkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBAT25NZXNzYWdlKFwidGVybWluYWwtdXBsb2FkXCIpXHJcbiAgICBhc3luYyB0ZXJtaW5hbFVwbG9hZChAQ29ubmVjdGVkU29ja2V0KCkgY2xpZW50OiBJQ2xpZW50U29ja2V0LCBATWVzc2FnZUJvZHkoKSB1cGxvYWQ6IElUZXJtaW5hbEZpbGUpIHtcclxuICAgICAgICBjb25zdCB0ZXJtaW5hbCA9IHRoaXMudGVybWluYWxzW2NsaWVudC5pZF07XHJcbiAgICAgICAgaWYgKCF0ZXJtaW5hbCB8fCAhdXBsb2FkKSByZXR1cm47XHJcbiAgICAgICAgdGVybWluYWwuYWRkRmlsZSh1cGxvYWQpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwuY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zb2NrZXQtY29udHJvbGxlcnMvdGVybWluYWwuY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUc3RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBSTFDLElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQWtCO0lBR0w7SUFGWixTQUFTLENBQWlDO0lBRXBELFlBQXNCLE9BQXdCO1FBQXhCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFHSyxBQUFOLEtBQUssQ0FBQyxZQUFZLENBQW9CLE1BQXFCO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNyQyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBR0ssQUFBTixLQUFLLENBQUMsWUFBWSxDQUFvQixNQUFxQixFQUFpQixJQUFZO1FBQ3BGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUN0QixRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFHSyxBQUFOLEtBQUssQ0FBQyxjQUFjLENBQW9CLE1BQXFCLEVBQWlCLE1BQXFCO1FBQy9GLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUNqQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FDSixDQUFBO0FBcEJTO0lBREwsU0FBUyxDQUFDLGVBQWUsQ0FBQztJQUNQLFdBQUEsZUFBZSxFQUFFLENBQUE7Ozs7c0RBS3BDO0FBR0s7SUFETCxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ1AsV0FBQSxlQUFlLEVBQUUsQ0FBQTtJQUF5QixXQUFBLFdBQVcsRUFBRSxDQUFBOzs7O3NEQUkxRTtBQUdLO0lBREwsU0FBUyxDQUFDLGlCQUFpQixDQUFDO0lBQ1AsV0FBQSxlQUFlLEVBQUUsQ0FBQTtJQUF5QixXQUFBLFdBQVcsRUFBRSxDQUFBOzs7O3dEQUk1RTtBQTNCUSxrQkFBa0I7SUFGOUIsU0FBUyxFQUFFO0lBQ1gsZ0JBQWdCLEVBQUU7cUNBSWdCLGVBQWU7R0FIckMsa0JBQWtCLENBNEI5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7c2luZ2xldG9ufSBmcm9tIFwidHN5cmluZ2VcIjtcclxuaW1wb3J0IHtDb25uZWN0ZWRTb2NrZXQsIE1lc3NhZ2VCb2R5LCBPbk1lc3NhZ2UsIFNvY2tldENvbnRyb2xsZXJ9IGZyb20gXCJzb2NrZXQtY29udHJvbGxlcnNcIjtcclxuXHJcbmltcG9ydCB7SUNsaWVudFNvY2tldCwgSVRlcm1pbmFsRmlsZX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge1Rlcm1pbmFsTWFuYWdlcn0gZnJvbSBcIi4uL3NlcnZpY2VzL3Rlcm1pbmFsLW1hbmFnZXJcIjtcclxuaW1wb3J0IHtTb2NrZXRUZXJtaW5hbH0gZnJvbSBcIi4vc29ja2V0LXRlcm1pbmFsXCI7XHJcblxyXG5Ac2luZ2xldG9uKClcclxuQFNvY2tldENvbnRyb2xsZXIoKVxyXG5leHBvcnQgY2xhc3MgVGVybWluYWxDb250cm9sbGVyIHtcclxuICAgIHByb3RlY3RlZCB0ZXJtaW5hbHM6IHtbaWQ6IHN0cmluZ106IFNvY2tldFRlcm1pbmFsfTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbWFuYWdlcjogVGVybWluYWxNYW5hZ2VyKSB7XHJcbiAgICAgICAgdGhpcy50ZXJtaW5hbHMgPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICBAT25NZXNzYWdlKFwidGVybWluYWwtaW5pdFwiKVxyXG4gICAgYXN5bmMgdGVybWluYWxJbml0KEBDb25uZWN0ZWRTb2NrZXQoKSBjbGllbnQ6IElDbGllbnRTb2NrZXQpIHtcclxuICAgICAgICBjb25zdCB0ZXJtaW5hbCA9IG5ldyBTb2NrZXRUZXJtaW5hbChjbGllbnQpO1xyXG4gICAgICAgIHRoaXMubWFuYWdlci5sb2FkQWRkb25zKHRlcm1pbmFsKTtcclxuICAgICAgICB0aGlzLnRlcm1pbmFsc1tjbGllbnQuaWRdID0gdGVybWluYWw7XHJcbiAgICAgICAgY2xpZW50Lm9uKFwiZGlzY29ubmVjdFwiLCAoKSA9PiB0ZXJtaW5hbC5kaXNwb3NlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIEBPbk1lc3NhZ2UoXCJ0ZXJtaW5hbC1kYXRhXCIpXHJcbiAgICBhc3luYyB0ZXJtaW5hbERhdGEoQENvbm5lY3RlZFNvY2tldCgpIGNsaWVudDogSUNsaWVudFNvY2tldCwgQE1lc3NhZ2VCb2R5KCkgZGF0YTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgdGVybWluYWwgPSB0aGlzLnRlcm1pbmFsc1tjbGllbnQuaWRdO1xyXG4gICAgICAgIGlmICghdGVybWluYWwpIHJldHVybjtcclxuICAgICAgICB0ZXJtaW5hbC5pbnB1dChkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBAT25NZXNzYWdlKFwidGVybWluYWwtdXBsb2FkXCIpXHJcbiAgICBhc3luYyB0ZXJtaW5hbFVwbG9hZChAQ29ubmVjdGVkU29ja2V0KCkgY2xpZW50OiBJQ2xpZW50U29ja2V0LCBATWVzc2FnZUJvZHkoKSB1cGxvYWQ6IElUZXJtaW5hbEZpbGUpIHtcclxuICAgICAgICBjb25zdCB0ZXJtaW5hbCA9IHRoaXMudGVybWluYWxzW2NsaWVudC5pZF07XHJcbiAgICAgICAgaWYgKCF0ZXJtaW5hbCB8fCAhdXBsb2FkKSByZXR1cm47XHJcbiAgICAgICAgdGVybWluYWwuYWRkRmlsZSh1cGxvYWQpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==