homebridge-eufy-security 2.0.0-beta.8 → 2.0.1-beta.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 (33) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/dist/accessories/CameraAccessory.d.ts +2 -0
  3. package/dist/accessories/CameraAccessory.d.ts.map +1 -1
  4. package/dist/accessories/CameraAccessory.js +7 -1
  5. package/dist/accessories/CameraAccessory.js.map +1 -1
  6. package/dist/accessories/DoorbellCameraAccessory.d.ts.map +1 -1
  7. package/dist/accessories/DoorbellCameraAccessory.js +3 -0
  8. package/dist/accessories/DoorbellCameraAccessory.js.map +1 -1
  9. package/dist/accessories/LocalLivestreamManager.d.ts +67 -0
  10. package/dist/accessories/LocalLivestreamManager.d.ts.map +1 -0
  11. package/dist/accessories/LocalLivestreamManager.js +347 -0
  12. package/dist/accessories/LocalLivestreamManager.js.map +1 -0
  13. package/dist/accessories/StationAccessory.d.ts +1 -0
  14. package/dist/accessories/StationAccessory.d.ts.map +1 -1
  15. package/dist/accessories/StationAccessory.js +7 -0
  16. package/dist/accessories/StationAccessory.js.map +1 -1
  17. package/dist/accessories/configTypes.d.ts +1 -0
  18. package/dist/accessories/configTypes.d.ts.map +1 -1
  19. package/dist/accessories/streamingDelegate.d.ts +5 -2
  20. package/dist/accessories/streamingDelegate.d.ts.map +1 -1
  21. package/dist/accessories/streamingDelegate.js +65 -32
  22. package/dist/accessories/streamingDelegate.js.map +1 -1
  23. package/dist/platform.d.ts.map +1 -1
  24. package/dist/platform.js +2 -0
  25. package/dist/platform.js.map +1 -1
  26. package/homebridge-ui/public/index.html +19 -4
  27. package/homebridge-ui/public/js/main.js +1 -0
  28. package/homebridge-ui/server.js +5 -1
  29. package/package.json +1 -1
  30. package/dist/accessories/LocalLivestreamCache.d.ts +0 -32
  31. package/dist/accessories/LocalLivestreamCache.d.ts.map +0 -1
  32. package/dist/accessories/LocalLivestreamCache.js +0 -116
  33. package/dist/accessories/LocalLivestreamCache.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Change Log
2
2
 
3
- ## 2.0 (15/05/2022)
3
+ ## 2.0 (25/05/2022)
4
4
 
5
5
  ### Added
6
6
  - Local Livestream
@@ -16,6 +16,7 @@
16
16
 
17
17
  ### Changed
18
18
  - Upgrade to the latest bropat/eufy-security-client lib (2.0.1)
19
+ - Added livestream cache for local streaming (no rtsp) thanks @thieren
19
20
 
20
21
  ### Fixed
21
22
  - Updating some dep for security reason
@@ -26,6 +27,7 @@
26
27
  - Streaming issue while using Docker #308 (thanks @alternativ)
27
28
  - Fix issue on video stream while debug is disabled #356
28
29
  - Improve selecting Static Image / Local Live Stream / RTSP #382
30
+ - Improvements for local livestream caching and bugfixes #37 thanks @thieren
29
31
 
30
32
  ### Removed
31
33
  - Selecting Camera or Motion Sensor is now per camera
@@ -2,6 +2,7 @@ import { Service, PlatformAccessory, CharacteristicValue } from 'homebridge';
2
2
  import { EufySecurityPlatform } from '../platform';
3
3
  import { DeviceAccessory } from './Device';
4
4
  import { Camera } from 'eufy-security-client';
5
+ import { StreamingDelegate } from './streamingDelegate';
5
6
  import { CameraConfig } from './configTypes';
6
7
  /**
7
8
  * Platform Accessory
@@ -12,6 +13,7 @@ export declare class CameraAccessory extends DeviceAccessory {
12
13
  protected service: Service;
13
14
  protected CameraService: Service;
14
15
  readonly cameraConfig: CameraConfig;
16
+ protected streamingDelegate: StreamingDelegate | null;
15
17
  constructor(platform: EufySecurityPlatform, accessory: PlatformAccessory, eufyDevice: Camera);
16
18
  private getCameraConfig;
17
19
  private cameraFunction;
@@ -1 +1 @@
1
- {"version":3,"file":"CameraAccessory.d.ts","sourceRoot":"","sources":["../../src/accessories/CameraAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAM3C,OAAO,EAAE,MAAM,EAAoC,MAAM,sBAAsB,CAAC;AAGhF,OAAO,EAAE,YAAY,EAAe,MAAM,eAAe,CAAC;AAE1D;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,eAAe;IAElD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;IAEjC,SAAgB,YAAY,EAAE,YAAY,CAAC;gBAGzC,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,iBAAiB,EAC5B,UAAU,EAAE,MAAM;IAkHpB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,cAAc;IAiDtB,6BAA6B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAM7D;;OAEG;IACH,6BAA6B,CAAC,KAAK,KAAA;IAInC;;OAEG;IACH,4BAA4B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAM5D;;OAEG;IACH,4BAA4B,CAAC,KAAK,KAAA;IAIlC;;OAEG;IACG,4CAA4C,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAWlF;;OAEG;IACH,4CAA4C,CAAC,KAAK,KAAA;IAOlD;;OAEG;IACG,2BAA2B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAWjE;;OAEG;IACH,2BAA2B,CAAC,KAAK,KAAA;IAOjC,OAAO,CAAC,cAAc;IA+BhB,uBAAuB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAW7D,OAAO,CAAC,sCAAsC;IAUxC,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAW/C,yBAAyB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAWzD,eAAe,CAAC,KAAK,EAAE,mBAAmB;IAO1C,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAWjD,iBAAiB,CAAC,KAAK,EAAE,mBAAmB;IAM5C,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAWhD,gBAAgB,CAAC,KAAK,EAAE,mBAAmB;CAKlD"}
1
+ {"version":3,"file":"CameraAccessory.d.ts","sourceRoot":"","sources":["../../src/accessories/CameraAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAM3C,OAAO,EAAE,MAAM,EAAoC,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAe,MAAM,eAAe,CAAC;AAE1D;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,eAAe;IAElD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;IAEjC,SAAgB,YAAY,EAAE,YAAY,CAAC;IAE3C,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAQ;gBAG3D,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,iBAAiB,EAC5B,UAAU,EAAE,MAAM;IAmHpB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,cAAc;IAiDtB,6BAA6B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAM7D;;OAEG;IACH,6BAA6B,CAAC,KAAK,KAAA;IAInC;;OAEG;IACH,4BAA4B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAM5D;;OAEG;IACH,4BAA4B,CAAC,KAAK,KAAA;IAIlC;;OAEG;IACG,4CAA4C,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAWlF;;OAEG;IACH,4CAA4C,CAAC,KAAK,KAAA;IAOlD;;OAEG;IACG,2BAA2B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAWjE;;OAEG;IACH,2BAA2B,CAAC,KAAK,KAAA;IAOjC,OAAO,CAAC,cAAc;IA+BhB,uBAAuB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAW7D,OAAO,CAAC,sCAAsC;IAaxC,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAW/C,yBAAyB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAWzD,eAAe,CAAC,KAAK,EAAE,mBAAmB;IAO1C,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAWjD,iBAAiB,CAAC,KAAK,EAAE,mBAAmB;IAM5C,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAWhD,gBAAgB,CAAC,KAAK,EAAE,mBAAmB;CAKlD"}
@@ -15,6 +15,7 @@ const streamingDelegate_1 = require("./streamingDelegate");
15
15
  class CameraAccessory extends Device_1.DeviceAccessory {
16
16
  constructor(platform, accessory, eufyDevice) {
17
17
  super(platform, accessory, eufyDevice);
18
+ this.streamingDelegate = null;
18
19
  this.service = {};
19
20
  this.CameraService = {};
20
21
  this.cameraConfig = {};
@@ -27,6 +28,7 @@ class CameraAccessory extends Device_1.DeviceAccessory {
27
28
  this.CameraService = this.cameraFunction(accessory);
28
29
  this.CameraService.setPrimaryService(true);
29
30
  const delegate = new streamingDelegate_1.StreamingDelegate(this.platform, eufyDevice, this.cameraConfig, this.platform.api, this.platform.api.hap);
31
+ this.streamingDelegate = delegate;
30
32
  accessory.configureController(delegate.controller);
31
33
  }
32
34
  catch (Error) {
@@ -101,7 +103,7 @@ class CameraAccessory extends Device_1.DeviceAccessory {
101
103
  }
102
104
  }
103
105
  getCameraConfig() {
104
- var _a, _b, _c, _d, _e;
106
+ var _a, _b, _c, _d, _e, _f;
105
107
  var config = {};
106
108
  if (typeof this.platform.config.cameras !== 'undefined') {
107
109
  var pos = this.platform.config.cameras.map(function (e) { return e.serialNumber; }).indexOf(this.eufyDevice.getSerial());
@@ -113,6 +115,7 @@ class CameraAccessory extends Device_1.DeviceAccessory {
113
115
  config.rtsp = (_c = config.rtsp) !== null && _c !== void 0 ? _c : (config.rtsp = false);
114
116
  config.forcerefreshsnap = (_d = config.forcerefreshsnap) !== null && _d !== void 0 ? _d : (config.forcerefreshsnap = false);
115
117
  config.videoConfig = (_e = config.videoConfig) !== null && _e !== void 0 ? _e : (config.videoConfig = {});
118
+ config.useCachedLocalLivestream = (_f = config.useCachedLocalLivestream) !== null && _f !== void 0 ? _f : (config.useCachedLocalLivestream = false);
116
119
  return config;
117
120
  }
118
121
  cameraFunction(accessory) {
@@ -246,6 +249,9 @@ class CameraAccessory extends Device_1.DeviceAccessory {
246
249
  }
247
250
  onDeviceMotionDetectedPushNotification(device, motion) {
248
251
  this.platform.log.debug(this.accessory.displayName, 'ON DeviceMotionDetected:', motion);
252
+ if (this.cameraConfig.useCachedLocalLivestream && this.streamingDelegate) {
253
+ this.streamingDelegate.prepareCachedStream();
254
+ }
249
255
  this.service
250
256
  .getCharacteristic(this.characteristic.MotionDetected)
251
257
  .updateValue(motion);
@@ -1 +1 @@
1
- {"version":3,"file":"CameraAccessory.js","sourceRoot":"","sources":["../../src/accessories/CameraAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CameraAccessory.js","sourceRoot":"","sources":["../../src/accessories/CameraAccessory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DoorbellCameraAccessory.d.ts","sourceRoot":"","sources":["../../src/accessories/DoorbellCameraAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAMnD,OAAO,EAAE,cAAc,EAAU,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;IAE1D,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IACzC,OAAO,CAAC,cAAc,CAAU;IAEhC,OAAO,CAAC,eAAe,CAAU;gBAG/B,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,iBAAiB,EAC5B,UAAU,EAAE,cAAc;IAiC5B,OAAO,CAAC,6BAA6B;CAYtC"}
1
+ {"version":3,"file":"DoorbellCameraAccessory.d.ts","sourceRoot":"","sources":["../../src/accessories/DoorbellCameraAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAMnD,OAAO,EAAE,cAAc,EAAU,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;IAE1D,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IACzC,OAAO,CAAC,cAAc,CAAU;IAEhC,OAAO,CAAC,eAAe,CAAU;gBAG/B,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,iBAAiB,EAC5B,UAAU,EAAE,cAAc;IAiC5B,OAAO,CAAC,6BAA6B;CAetC"}
@@ -30,6 +30,9 @@ class DoorbellCameraAccessory extends CameraAccessory_1.CameraAccessory {
30
30
  if (!this.ring_triggered) {
31
31
  this.ring_triggered = true;
32
32
  this.platform.log.debug(this.accessory.displayName, 'DoorBell ringing');
33
+ if (this.cameraConfig.useCachedLocalLivestream && this.streamingDelegate) {
34
+ this.streamingDelegate.prepareCachedStream();
35
+ }
33
36
  this.doorbellService
34
37
  .getCharacteristic(this.platform.Characteristic.ProgrammableSwitchEvent)
35
38
  .updateValue(this.platform.Characteristic.ProgrammableSwitchEvent.SINGLE_PRESS);
@@ -1 +1 @@
1
- {"version":3,"file":"DoorbellCameraAccessory.js","sourceRoot":"","sources":["../../src/accessories/DoorbellCameraAccessory.ts"],"names":[],"mappings":";;;AASA,uDAAoD;AAEpD;;;;GAIG;AACH,MAAa,uBAAwB,SAAQ,iCAAe;IAO1D,YACE,QAA8B,EAC9B,SAA4B,EAC5B,UAA0B;QAE1B,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QAEjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAE5E,IAAI,CAAC,eAAe;YAClB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACzD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAE5B,0CAA0C;QAC1C,IAAI,CAAC,eAAe,CAAC,iBAAiB,CACpC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EACjC,SAAS,CAAC,WAAW,CACtB,CAAC;QAEF,kEAAkE;QAClE,IAAI,CAAC,eAAe;aACjB,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;aACvE,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAc,EAAE,KAAc,EAAE,EAAE,CACjE,IAAI,CAAC,6BAA6B,EAAE,CACrC,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE/C,CAAC;IAED,mJAAmJ;IAC3I,6BAA6B;QACnC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;YACxE,IAAI,CAAC,eAAe;iBACjB,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;iBACvE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;SACnF;aAAM;YACL,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B;IACH,CAAC;CAEF;AAvDD,0DAuDC"}
1
+ {"version":3,"file":"DoorbellCameraAccessory.js","sourceRoot":"","sources":["../../src/accessories/DoorbellCameraAccessory.ts"],"names":[],"mappings":";;;AASA,uDAAoD;AAEpD;;;;GAIG;AACH,MAAa,uBAAwB,SAAQ,iCAAe;IAO1D,YACE,QAA8B,EAC9B,SAA4B,EAC5B,UAA0B;QAE1B,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QAEjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAE5E,IAAI,CAAC,eAAe;YAClB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACzD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAE5B,0CAA0C;QAC1C,IAAI,CAAC,eAAe,CAAC,iBAAiB,CACpC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EACjC,SAAS,CAAC,WAAW,CACtB,CAAC;QAEF,kEAAkE;QAClE,IAAI,CAAC,eAAe;aACjB,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;aACvE,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAc,EAAE,KAAc,EAAE,EAAE,CACjE,IAAI,CAAC,6BAA6B,EAAE,CACrC,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE/C,CAAC;IAED,mJAAmJ;IAC3I,6BAA6B;QACnC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;YACxE,IAAI,IAAI,CAAC,YAAY,CAAC,wBAAwB,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxE,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;aAC9C;YACD,IAAI,CAAC,eAAe;iBACjB,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;iBACvE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;SACnF;aAAM;YACL,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B;IACH,CAAC;CAEF;AA1DD,0DA0DC"}
@@ -0,0 +1,67 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter, Readable } from 'stream';
3
+ import { Camera } from 'eufy-security-client';
4
+ import { EufySecurityPlatform } from '../platform';
5
+ import { Logger } from './logger';
6
+ declare class AudiostreamProxy extends Readable {
7
+ private log;
8
+ private cacheData;
9
+ private pushNewDataImmediately;
10
+ private dataFramesCount;
11
+ constructor(log: Logger);
12
+ private transmitData;
13
+ newAudioData(data: Buffer): void;
14
+ stopProxyStream(): void;
15
+ _read(size: number): void;
16
+ }
17
+ declare class VideostreamProxy extends Readable {
18
+ private manager;
19
+ private livestreamId;
20
+ private cacheData;
21
+ private log;
22
+ private killTimeout;
23
+ private pushNewDataImmediately;
24
+ private dataFramesCount;
25
+ constructor(id: number, cacheData: Array<Buffer>, manager: LocalLivestreamManager, log: Logger);
26
+ private transmitData;
27
+ newVideoData(data: Buffer): void;
28
+ stopProxyStream(): void;
29
+ private resetKillTimeout;
30
+ _read(size: number): void;
31
+ }
32
+ declare type ProxyStream = {
33
+ id: number;
34
+ videostream: VideostreamProxy;
35
+ audiostream: AudiostreamProxy;
36
+ };
37
+ export declare class LocalLivestreamManager extends EventEmitter {
38
+ private readonly SECONDS_UNTIL_TERMINATION_AFTER_LAST_USED;
39
+ private readonly CONNECTION_ESTABLISHED_TIMEOUT;
40
+ private stationStream;
41
+ private log;
42
+ private livestreamCount;
43
+ private iFrameCache;
44
+ private proxyStreams;
45
+ private cacheEnabled;
46
+ private connectionTimeout?;
47
+ private terminationTimeout?;
48
+ private livestreamStartedAt;
49
+ private livestreamIsStarting;
50
+ private readonly platform;
51
+ private readonly device;
52
+ constructor(platform: EufySecurityPlatform, device: Camera, cacheEnabled: boolean, log: Logger);
53
+ private initialize;
54
+ getLocalLivestream(): Promise<ProxyStream>;
55
+ private startAndGetLocalLiveStream;
56
+ private scheduleLivestreamCacheTermination;
57
+ stopLocalLiveStream(): void;
58
+ private onStationLivestreamStop;
59
+ private onStationLivestreamStart;
60
+ private getProxyStream;
61
+ stopProxyStream(id: number): void;
62
+ private stopAllProxyStreams;
63
+ private removeProxyStream;
64
+ private isIFrame;
65
+ }
66
+ export {};
67
+ //# sourceMappingURL=LocalLivestreamManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalLivestreamManager.d.ts","sourceRoot":"","sources":["../../src/accessories/LocalLivestreamManager.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAmC,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAUlC,cAAM,gBAAiB,SAAQ,QAAQ;IAErC,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,sBAAsB,CAAS;IAEvC,OAAO,CAAC,eAAe,CAAK;gBAEhB,GAAG,EAAE,MAAM;IAMvB,OAAO,CAAC,YAAY;IAKb,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAShC,eAAe,IAAI,IAAI;IAM9B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAU1B;AAED,cAAM,gBAAiB,SAAQ,QAAQ;IAErC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,WAAW,CAA+B;IAElD,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,eAAe,CAAK;gBAEhB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM;IAU9F,OAAO,CAAC,YAAY;IAKb,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBhC,eAAe,IAAI,IAAI;IAS9B,OAAO,CAAC,gBAAgB;IAUxB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAY1B;AAED,aAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,gBAAgB,CAAC;IAC9B,WAAW,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,YAAY;IAEtD,OAAO,CAAC,QAAQ,CAAC,yCAAyC,CAAM;IAChE,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAK;IAEpD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,WAAW,CAAqB;IAExC,OAAO,CAAC,YAAY,CAA4C;IAEhE,OAAO,CAAC,YAAY,CAAU;IAE9B,OAAO,CAAC,iBAAiB,CAAC,CAAiB;IAC3C,OAAO,CAAC,kBAAkB,CAAC,CAAiB;IAE5C,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,oBAAoB,CAAS;IAErC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM;IA0B9F,OAAO,CAAC,UAAU;IAmBL,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC;YAgBzC,0BAA0B;IAiCxC,OAAO,CAAC,kCAAkC;IAYnC,mBAAmB,IAAI,IAAI;IAMlC,OAAO,CAAC,uBAAuB;YAYjB,wBAAwB;IAwDtC,OAAO,CAAC,cAAc;IAiBf,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAUxC,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,QAAQ;CAYjB"}
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocalLivestreamManager = void 0;
4
+ const stream_1 = require("stream");
5
+ class AudiostreamProxy extends stream_1.Readable {
6
+ constructor(log) {
7
+ super();
8
+ this.cacheData = [];
9
+ this.pushNewDataImmediately = false;
10
+ this.dataFramesCount = 0;
11
+ this.log = log;
12
+ }
13
+ transmitData(data) {
14
+ this.dataFramesCount++;
15
+ return this.push(data);
16
+ }
17
+ newAudioData(data) {
18
+ if (this.pushNewDataImmediately) {
19
+ this.pushNewDataImmediately = false;
20
+ this.transmitData(data);
21
+ }
22
+ else {
23
+ this.cacheData.push(data);
24
+ }
25
+ }
26
+ stopProxyStream() {
27
+ this.log.debug('Audiostream was stopped after transmission of ' + this.dataFramesCount + ' data frames.');
28
+ this.unpipe();
29
+ this.destroy();
30
+ }
31
+ _read(size) {
32
+ let pushReturn = true;
33
+ while (this.cacheData.length > 0 && pushReturn) {
34
+ const data = this.cacheData.shift();
35
+ pushReturn = this.transmitData(data);
36
+ }
37
+ if (pushReturn) {
38
+ this.pushNewDataImmediately = true;
39
+ }
40
+ }
41
+ }
42
+ class VideostreamProxy extends stream_1.Readable {
43
+ constructor(id, cacheData, manager, log) {
44
+ super();
45
+ this.cacheData = [];
46
+ this.killTimeout = null;
47
+ this.pushNewDataImmediately = false;
48
+ this.dataFramesCount = 0;
49
+ this.livestreamId = id;
50
+ this.manager = manager;
51
+ this.cacheData = cacheData;
52
+ this.log = log;
53
+ this.resetKillTimeout();
54
+ }
55
+ transmitData(data) {
56
+ this.dataFramesCount++;
57
+ return this.push(data);
58
+ }
59
+ newVideoData(data) {
60
+ if (this.pushNewDataImmediately) {
61
+ this.pushNewDataImmediately = false;
62
+ try {
63
+ if (this.transmitData(data)) {
64
+ this.resetKillTimeout();
65
+ }
66
+ }
67
+ catch (err) {
68
+ this.log.debug('Push of new data was not succesful. Most likely the target process (ffmpeg) was already terminated. Error: ' + err);
69
+ }
70
+ }
71
+ else {
72
+ this.cacheData.push(data);
73
+ }
74
+ }
75
+ stopProxyStream() {
76
+ this.log.debug('Videostream was stopped after transmission of ' + this.dataFramesCount + ' data frames.');
77
+ this.unpipe();
78
+ this.destroy();
79
+ if (this.killTimeout) {
80
+ clearTimeout(this.killTimeout);
81
+ }
82
+ }
83
+ resetKillTimeout() {
84
+ if (this.killTimeout) {
85
+ clearTimeout(this.killTimeout);
86
+ }
87
+ this.killTimeout = setTimeout(() => {
88
+ this.log.warn('Proxy Stream (id: ' + this.livestreamId + ') was terminated due to inactivity. (no data transmitted in 15 seconds)');
89
+ this.manager.stopProxyStream(this.livestreamId);
90
+ }, 15000);
91
+ }
92
+ _read(size) {
93
+ this.resetKillTimeout();
94
+ let pushReturn = true;
95
+ while (this.cacheData.length > 0 && pushReturn) {
96
+ const data = this.cacheData.shift();
97
+ pushReturn = this.transmitData(data);
98
+ }
99
+ if (pushReturn) {
100
+ this.pushNewDataImmediately = true;
101
+ }
102
+ }
103
+ }
104
+ class LocalLivestreamManager extends stream_1.EventEmitter {
105
+ constructor(platform, device, cacheEnabled, log) {
106
+ super();
107
+ this.SECONDS_UNTIL_TERMINATION_AFTER_LAST_USED = 45;
108
+ this.CONNECTION_ESTABLISHED_TIMEOUT = 5;
109
+ this.livestreamCount = 0;
110
+ this.iFrameCache = [];
111
+ this.proxyStreams = new Set();
112
+ this.livestreamIsStarting = false;
113
+ this.log = log;
114
+ this.platform = platform;
115
+ this.device = device;
116
+ this.cacheEnabled = cacheEnabled;
117
+ if (this.cacheEnabled) {
118
+ this.log.debug('Livestream caching for ' + this.device.getName() + ' is enabled.');
119
+ }
120
+ this.stationStream = null;
121
+ this.livestreamStartedAt = null;
122
+ this.initialize();
123
+ this.platform.eufyClient.on('station livestream stop', (station, device) => {
124
+ this.onStationLivestreamStop(station, device);
125
+ });
126
+ this.platform.eufyClient.on('station livestream start', (station, device, metadata, videostream, audiostream) => {
127
+ this.onStationLivestreamStart(station, device, metadata, videostream, audiostream);
128
+ });
129
+ }
130
+ initialize() {
131
+ if (this.stationStream) {
132
+ this.stationStream.audiostream.unpipe();
133
+ this.stationStream.audiostream.destroy();
134
+ this.stationStream.videostream.unpipe();
135
+ this.stationStream.videostream.destroy();
136
+ }
137
+ this.stationStream = null;
138
+ this.iFrameCache = [];
139
+ this.livestreamStartedAt = null;
140
+ if (this.connectionTimeout) {
141
+ clearTimeout(this.connectionTimeout);
142
+ }
143
+ if (this.terminationTimeout) {
144
+ clearTimeout(this.terminationTimeout);
145
+ }
146
+ }
147
+ async getLocalLivestream() {
148
+ this.log.debug('New instance requests livestream. There were ' +
149
+ this.proxyStreams.size + ' instance(s) using the livestream until now.');
150
+ if (this.terminationTimeout) {
151
+ clearTimeout(this.terminationTimeout);
152
+ }
153
+ const proxyStream = await this.getProxyStream();
154
+ if (proxyStream) {
155
+ const runtime = (Date.now() - this.livestreamStartedAt) / 1000;
156
+ this.log.debug('Using livestream that was started ' + runtime + ' seconds ago. The proxy stream has id: ' + proxyStream.id + '.');
157
+ return proxyStream;
158
+ }
159
+ else {
160
+ return await this.startAndGetLocalLiveStream();
161
+ }
162
+ }
163
+ async startAndGetLocalLiveStream() {
164
+ return new Promise((resolve, reject) => {
165
+ this.log.debug('Start new station livestream (P2P Session)...');
166
+ if (!this.livestreamIsStarting) { // prevent multiple stream starts from eufy station
167
+ this.livestreamIsStarting = true;
168
+ this.platform.eufyClient.startStationLivestream(this.device.getSerial());
169
+ }
170
+ if (this.connectionTimeout) {
171
+ clearTimeout(this.connectionTimeout);
172
+ }
173
+ this.connectionTimeout = setTimeout(() => {
174
+ this.livestreamIsStarting = false;
175
+ this.log.error('Local livestream didn\'t start in time. Abort livestream request.');
176
+ reject('no started livestream found');
177
+ }, this.CONNECTION_ESTABLISHED_TIMEOUT * 2000);
178
+ this.once('livestream start', async () => {
179
+ if (this.connectionTimeout) {
180
+ clearTimeout(this.connectionTimeout);
181
+ }
182
+ const proxyStream = await this.getProxyStream();
183
+ if (proxyStream !== null) {
184
+ this.log.debug('New livestream started. Proxy stream has id: ' + proxyStream.id + '.');
185
+ this.livestreamIsStarting = false;
186
+ resolve(proxyStream);
187
+ }
188
+ else {
189
+ reject('no started livestream found');
190
+ }
191
+ });
192
+ });
193
+ }
194
+ scheduleLivestreamCacheTermination() {
195
+ this.log.debug('Schedule livestream termination in ' + this.SECONDS_UNTIL_TERMINATION_AFTER_LAST_USED + ' seconds.');
196
+ if (this.terminationTimeout) {
197
+ clearTimeout(this.terminationTimeout);
198
+ }
199
+ this.terminationTimeout = setTimeout(() => {
200
+ if (this.proxyStreams.size <= 0) {
201
+ this.stopLocalLiveStream();
202
+ }
203
+ }, this.SECONDS_UNTIL_TERMINATION_AFTER_LAST_USED * 1000);
204
+ }
205
+ stopLocalLiveStream() {
206
+ this.log.debug('Stopping station livestream.');
207
+ this.platform.eufyClient.stopStationLivestream(this.device.getSerial());
208
+ this.initialize();
209
+ }
210
+ onStationLivestreamStop(station, device) {
211
+ if (device.getSerial() === this.device.getSerial()) {
212
+ this.log.info(station.getName() + ' station livestream for ' + device.getName() + ' has stopped.');
213
+ this.proxyStreams.forEach((proxyStream) => {
214
+ proxyStream.audiostream.stopProxyStream();
215
+ proxyStream.videostream.stopProxyStream();
216
+ this.removeProxyStream(proxyStream.id);
217
+ });
218
+ this.initialize();
219
+ }
220
+ }
221
+ async onStationLivestreamStart(station, device, metadata, videostream, audiostream) {
222
+ if (device.getSerial() === this.device.getSerial()) {
223
+ this.initialize(); // important to prevent unwanted behaviour when the eufy station emits the 'livestream start' event multiple times
224
+ videostream.on('data', (data) => {
225
+ if (this.isIFrame(data)) { // cache iFrames to speed up livestream encoding
226
+ this.iFrameCache = [data];
227
+ }
228
+ else if (this.iFrameCache.length > 0) {
229
+ this.iFrameCache.push(data);
230
+ }
231
+ this.proxyStreams.forEach((proxyStream) => {
232
+ proxyStream.videostream.newVideoData(data);
233
+ });
234
+ });
235
+ videostream.on('error', (error) => {
236
+ this.log.error('Local videostream had Error: ' + error);
237
+ this.stopAllProxyStreams();
238
+ this.stopLocalLiveStream();
239
+ });
240
+ videostream.on('end', () => {
241
+ this.log.debug('Local videostream has ended. Clean up.');
242
+ this.stopAllProxyStreams();
243
+ this.stopLocalLiveStream();
244
+ });
245
+ audiostream.on('data', (data) => {
246
+ this.proxyStreams.forEach((proxyStream) => {
247
+ proxyStream.audiostream.newAudioData(data);
248
+ });
249
+ });
250
+ audiostream.on('error', (error) => {
251
+ this.log.error('Local audiostream had Error: ' + error);
252
+ this.stopAllProxyStreams();
253
+ this.stopLocalLiveStream();
254
+ });
255
+ audiostream.on('end', () => {
256
+ this.log.debug('Local audiostream has ended. Clean up.');
257
+ this.stopAllProxyStreams();
258
+ this.stopLocalLiveStream();
259
+ });
260
+ this.log.info(station.getName() + ' station livestream (P2P session) for ' + device.getName() + ' has started.');
261
+ this.livestreamStartedAt = Date.now();
262
+ this.stationStream = { station, device, metadata, videostream, audiostream };
263
+ this.log.debug('Stream metadata: ' + JSON.stringify(this.stationStream.metadata));
264
+ this.emit('livestream start');
265
+ }
266
+ }
267
+ getProxyStream() {
268
+ if (this.stationStream) {
269
+ const id = this.livestreamCount;
270
+ this.livestreamCount++;
271
+ if (this.livestreamCount > 1024) {
272
+ this.livestreamCount = 0;
273
+ }
274
+ const videostream = new VideostreamProxy(id, this.iFrameCache, this, this.log);
275
+ const audiostream = new AudiostreamProxy(this.log);
276
+ const proxyStream = { id, videostream, audiostream };
277
+ this.proxyStreams.add(proxyStream);
278
+ return proxyStream;
279
+ }
280
+ else {
281
+ return null;
282
+ }
283
+ }
284
+ stopProxyStream(id) {
285
+ this.proxyStreams.forEach((pStream) => {
286
+ if (pStream.id === id) {
287
+ pStream.audiostream.stopProxyStream();
288
+ pStream.videostream.stopProxyStream();
289
+ this.removeProxyStream(id);
290
+ }
291
+ });
292
+ }
293
+ stopAllProxyStreams() {
294
+ this.proxyStreams.forEach((proxyStream) => {
295
+ this.stopProxyStream(proxyStream.id);
296
+ });
297
+ }
298
+ removeProxyStream(id) {
299
+ let proxyStream = null;
300
+ this.proxyStreams.forEach((pStream) => {
301
+ if (pStream.id === id) {
302
+ proxyStream = pStream;
303
+ }
304
+ });
305
+ if (proxyStream !== null) {
306
+ this.proxyStreams.delete(proxyStream);
307
+ this.log.debug('One stream instance (id: ' + id + ') released livestream. There are now ' +
308
+ this.proxyStreams.size + ' instance(s) using the livestream.');
309
+ if (this.proxyStreams.size === 0) {
310
+ this.log.debug('All proxy instances to the livestream have terminated.');
311
+ // check if minimum remaining livestream duration is more than 20 percent
312
+ // of maximum streaming duration or at least 20 seconds
313
+ // if so the termination of the livestream is scheduled
314
+ // if a new livestream is initiated in that time (e.g. fetching a snapshot)
315
+ // the cached livestream can be used
316
+ // caching must also be enabled of course
317
+ const maxStreamingDuration = this.platform.eufyClient.getCameraMaxLivestreamDuration();
318
+ const runtime = (Date.now() - ((this.livestreamStartedAt !== null) ? this.livestreamStartedAt : Date.now())) / 1000;
319
+ if (((maxStreamingDuration - runtime) > maxStreamingDuration * 0.2) && (maxStreamingDuration - runtime) > 20 && this.cacheEnabled) {
320
+ this.log.debug('Sufficient remaining livestream duration available. (' + (maxStreamingDuration - runtime) + ' seconds left)');
321
+ this.scheduleLivestreamCacheTermination();
322
+ }
323
+ else {
324
+ // stop livestream immediately
325
+ if (this.cacheEnabled) {
326
+ this.log.debug('Not enough remaining livestream duration. Emptying livestream cache.');
327
+ }
328
+ this.stopLocalLiveStream();
329
+ }
330
+ }
331
+ }
332
+ }
333
+ isIFrame(data) {
334
+ const validValues = [64, 66, 68, 78, 101, 103];
335
+ if (data !== undefined && data.length > 0) {
336
+ if (data.length >= 5) {
337
+ const startcode = [...data.slice(0, 5)];
338
+ if (validValues.includes(startcode[3]) || validValues.includes(startcode[4])) {
339
+ return true;
340
+ }
341
+ }
342
+ }
343
+ return false;
344
+ }
345
+ }
346
+ exports.LocalLivestreamManager = LocalLivestreamManager;
347
+ //# sourceMappingURL=LocalLivestreamManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalLivestreamManager.js","sourceRoot":"","sources":["../../src/accessories/LocalLivestreamManager.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare class StationAccessory {
14
14
  private alarm_triggered;
15
15
  private modes;
16
16
  protected characteristic: any;
17
+ private hkStateNames;
17
18
  constructor(platform: EufySecurityPlatform, accessory: PlatformAccessory, eufyStation: Station);
18
19
  private onStationGuardModePushNotification;
19
20
  private onStationCurrentModePushNotification;
@@ -1 +1 @@
1
- {"version":3,"file":"StationAccessory.d.ts","sourceRoot":"","sources":["../../src/accessories/StationAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAuD,MAAM,sBAAsB,CAAC;AAEpG;;;;GAIG;AACH,qBAAa,gBAAgB;IAQzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,WAAW;IATrB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,KAAK,CAAC;IAEd,SAAS,CAAC,cAAc,MAAC;gBAGN,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,iBAAiB,EACrC,WAAW,EAAE,OAAO;IAoE9B,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,oCAAoC;IAW5C,OAAO,CAAC,mCAAmC;IAgC3C,OAAO,CAAC,aAAa;IAgBrB,eAAe,CAAC,MAAM,KAAA,GAAG,MAAM;IAK/B,eAAe,CAAC,QAAQ,KAAA,GAAG,MAAM;IAKjC;;OAEG;IACG,mCAAmC,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAezE;;OAEG;IACH,kCAAkC,IAAI,mBAAmB;IAYzD;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,oBAAoB;CAa7B"}
1
+ {"version":3,"file":"StationAccessory.d.ts","sourceRoot":"","sources":["../../src/accessories/StationAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAuD,MAAM,sBAAsB,CAAC;AAEpG;;;;GAIG;AACH,qBAAa,gBAAgB;IAezB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,WAAW;IAhBrB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,KAAK,CAAC;IAEd,SAAS,CAAC,cAAc,MAAC;IAEzB,OAAO,CAAC,YAAY,CAKnB;gBAGkB,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,iBAAiB,EACrC,WAAW,EAAE,OAAO;IAoE9B,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,oCAAoC;IAW5C,OAAO,CAAC,mCAAmC;IAgC3C,OAAO,CAAC,aAAa;IAgBrB,eAAe,CAAC,MAAM,KAAA,GAAG,MAAM;IAK/B,eAAe,CAAC,QAAQ,KAAA,GAAG,MAAM;IAKjC;;OAEG;IACG,mCAAmC,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAezE;;OAEG;IACH,kCAAkC,IAAI,mBAAmB;IAYzD;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAY1C,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,oBAAoB;CAa7B"}