@homebridge-plugins/homebridge-eufy-security 0.0.1
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/CHANGELOG.md +5 -0
- package/FUNDING.yml +1 -0
- package/LICENSE +176 -0
- package/README.md +67 -0
- package/config.schema.json +6 -0
- package/dist/accessories/AutoSyncStationAccessory.js +156 -0
- package/dist/accessories/AutoSyncStationAccessory.js.map +1 -0
- package/dist/accessories/BaseAccessory.js +247 -0
- package/dist/accessories/BaseAccessory.js.map +1 -0
- package/dist/accessories/CameraAccessory.js +431 -0
- package/dist/accessories/CameraAccessory.js.map +1 -0
- package/dist/accessories/Device.js +67 -0
- package/dist/accessories/Device.js.map +1 -0
- package/dist/accessories/EntrySensorAccessory.js +48 -0
- package/dist/accessories/EntrySensorAccessory.js.map +1 -0
- package/dist/accessories/LockAccessory.js +142 -0
- package/dist/accessories/LockAccessory.js.map +1 -0
- package/dist/accessories/MotionSensorAccessory.js +48 -0
- package/dist/accessories/MotionSensorAccessory.js.map +1 -0
- package/dist/accessories/SmartDropAccessory.js +145 -0
- package/dist/accessories/SmartDropAccessory.js.map +1 -0
- package/dist/accessories/StationAccessory.js +371 -0
- package/dist/accessories/StationAccessory.js.map +1 -0
- package/dist/config.js +25 -0
- package/dist/config.js.map +1 -0
- package/dist/controller/LocalLivestreamManager.js +116 -0
- package/dist/controller/LocalLivestreamManager.js.map +1 -0
- package/dist/controller/recordingDelegate.js +208 -0
- package/dist/controller/recordingDelegate.js.map +1 -0
- package/dist/controller/snapshotDelegate.js +345 -0
- package/dist/controller/snapshotDelegate.js.map +1 -0
- package/dist/controller/streamingDelegate.js +345 -0
- package/dist/controller/streamingDelegate.js.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces.js +2 -0
- package/dist/interfaces.js.map +1 -0
- package/dist/media/Snapshot-Unavailable.png +0 -0
- package/dist/media/Snapshot-Unavailable.xcf +0 -0
- package/dist/media/Snapshot-black.png +0 -0
- package/dist/media/camera-disabled.png +0 -0
- package/dist/media/camera-offline.png +0 -0
- package/dist/media/media/Snapshot-Unavailable.png +0 -0
- package/dist/media/media/Snapshot-Unavailable.xcf +0 -0
- package/dist/media/media/Snapshot-black.png +0 -0
- package/dist/media/media/camera-disabled.png +0 -0
- package/dist/media/media/camera-offline.png +0 -0
- package/dist/platform.js +716 -0
- package/dist/platform.js.map +1 -0
- package/dist/settings.js +38 -0
- package/dist/settings.js.map +1 -0
- package/dist/utils/Talkback.js +92 -0
- package/dist/utils/Talkback.js.map +1 -0
- package/dist/utils/accessoriesStore.js +206 -0
- package/dist/utils/accessoriesStore.js.map +1 -0
- package/dist/utils/configTypes.js +35 -0
- package/dist/utils/configTypes.js.map +1 -0
- package/dist/utils/ffmpeg.js +843 -0
- package/dist/utils/ffmpeg.js.map +1 -0
- package/dist/utils/interfaces.js +8 -0
- package/dist/utils/interfaces.js.map +1 -0
- package/dist/utils/utils.js +44 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/eslint.config.mjs +18 -0
- package/homebridge-eufy-security.png +0 -0
- package/homebridge-ui/public/app.js +225 -0
- package/homebridge-ui/public/assets/devices/4g_lte_starlight_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/BATTERY_DOORBELL_C30.png +0 -0
- package/homebridge-ui/public/assets/devices/BATTERY_DOORBELL_C31.png +0 -0
- package/homebridge-ui/public/assets/devices/batterydoorbell1080p_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/batterydoorbell2kdual_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/batterydoorbell_e340_large.png +0 -0
- package/homebridge-ui/public/assets/devices/eufy-security-client.png +0 -0
- package/homebridge-ui/public/assets/devices/eufycam2_large.png +0 -0
- package/homebridge-ui/public/assets/devices/eufycam2c_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/eufycam2cpro_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/eufycam2pro_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/eufycam3_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/eufycam3c_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/eufycam3pro_large.png +0 -0
- package/homebridge-ui/public/assets/devices/eufycam_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/eufycame330_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/floodlight2_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/floodlight2pro_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/floodlight_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/floodlightcame340_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/garage_camera_t8452_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/homebase2_large.png +0 -0
- package/homebridge-ui/public/assets/devices/homebase3_large.png +0 -0
- package/homebridge-ui/public/assets/devices/homebase_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/homebasemini_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/indoorcamC210_large.png +0 -0
- package/homebridge-ui/public/assets/devices/indoorcamC220_large.png +0 -0
- package/homebridge-ui/public/assets/devices/indoorcamE30_large.png +0 -0
- package/homebridge-ui/public/assets/devices/indoorcamc120_large.png +0 -0
- package/homebridge-ui/public/assets/devices/indoorcammini_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/indoorcamp24_large.png +0 -0
- package/homebridge-ui/public/assets/devices/indoorcams350_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/keypad_large.png +0 -0
- package/homebridge-ui/public/assets/devices/minibase_chime_T8023_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/motionsensor_large.png +0 -0
- package/homebridge-ui/public/assets/devices/sensor_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartdrop_t8790_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_t8500_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_t8500_wifibridge_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_t8503_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_t8504_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_t8510P_t8520P_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_touch_and_wifi_t8502_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_touch_and_wifi_t8506_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_touch_and_wifi_t8520_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_touch_t8510_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_touch_t8510_wifibridge_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_video_t8530_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlockwifibridge_t8021_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/smartsafe_s10_t7400_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartsafe_s12_t7401_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smarttrack_card_t87B2_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smarttrack_link_t87B0_large.png +0 -0
- package/homebridge-ui/public/assets/devices/solocamc210_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/solocamc35_large.png +0 -0
- package/homebridge-ui/public/assets/devices/solocame20_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/solocame30_large.png +0 -0
- package/homebridge-ui/public/assets/devices/solocame40_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/solocaml20_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/solocams220_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/solocams340_large.png +0 -0
- package/homebridge-ui/public/assets/devices/solocams40_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/soloindoorcamc24_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/solooutdoorcamc22_large.png +0 -0
- package/homebridge-ui/public/assets/devices/solooutdoorcamc24_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/unknown.png +0 -0
- package/homebridge-ui/public/assets/devices/walllight_s100_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/walllight_s120_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/wireddoorbell1080p_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/wireddoorbell2k_large.png +0 -0
- package/homebridge-ui/public/assets/devices/wireddoorbelldual_large.jpg +0 -0
- package/homebridge-ui/public/assets/icons/attach.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_0.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_1.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_2.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_3.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_4.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_5.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_6.svg +1 -0
- package/homebridge-ui/public/assets/icons/bolt.svg +1 -0
- package/homebridge-ui/public/assets/icons/bug-report.svg +1 -0
- package/homebridge-ui/public/assets/icons/copy.svg +1 -0
- package/homebridge-ui/public/assets/icons/delete.svg +1 -0
- package/homebridge-ui/public/assets/icons/download.svg +1 -0
- package/homebridge-ui/public/assets/icons/info.svg +1 -0
- package/homebridge-ui/public/assets/icons/inventory.svg +1 -0
- package/homebridge-ui/public/assets/icons/refresh.svg +1 -0
- package/homebridge-ui/public/assets/icons/satellite_alt.svg +1 -0
- package/homebridge-ui/public/assets/icons/settings.svg +1 -0
- package/homebridge-ui/public/assets/icons/settings_backup_restore.svg +1 -0
- package/homebridge-ui/public/assets/icons/solar_power.svg +1 -0
- package/homebridge-ui/public/assets/icons/warning.svg +1 -0
- package/homebridge-ui/public/components/device-card.js +162 -0
- package/homebridge-ui/public/components/guard-modes.js +88 -0
- package/homebridge-ui/public/components/number-input.js +121 -0
- package/homebridge-ui/public/components/select.js +73 -0
- package/homebridge-ui/public/components/toggle.js +68 -0
- package/homebridge-ui/public/index.html +27 -0
- package/homebridge-ui/public/services/api.js +214 -0
- package/homebridge-ui/public/services/config.js +144 -0
- package/homebridge-ui/public/style.css +775 -0
- package/homebridge-ui/public/utils/countries.js +73 -0
- package/homebridge-ui/public/utils/device-images.js +89 -0
- package/homebridge-ui/public/utils/helpers.js +87 -0
- package/homebridge-ui/public/views/dashboard.js +226 -0
- package/homebridge-ui/public/views/device-detail.js +610 -0
- package/homebridge-ui/public/views/diagnostics.js +296 -0
- package/homebridge-ui/public/views/login.js +636 -0
- package/homebridge-ui/public/views/settings.js +192 -0
- package/homebridge-ui/public/views/unsupported-detail.js +296 -0
- package/homebridge-ui/server.js +1327 -0
- package/media/Snapshot-Unavailable.png +0 -0
- package/media/Snapshot-Unavailable.xcf +0 -0
- package/media/Snapshot-black.png +0 -0
- package/media/camera-disabled.png +0 -0
- package/media/camera-offline.png +0 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAA8B,MAAM,aAAa,CAAC;AAIhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAErF,OAAO,EACL,YAAY,EAEZ,MAAM,EAKN,QAAQ,EAGR,UAAU,EACV,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,OAAO,oBAAoB;IAyBtB;IACS;IAzBX,UAAU,GAAiB,EAAkB,CAAC;IAErD,oDAAoD;IACpC,WAAW,GAAwB,EAAE,CAAC;IAE9C,gBAAgB,GAAY,KAAK,CAAC;IAE1B,QAAQ,CAAS;IAEzB,kBAAkB,GAAa,EAAE,CAAC;IAClC,wBAAwB,CAAkB;IAE1C,eAAe,GAAc,EAAE,CAAC;IAChC,cAAc,GAAa,EAAE,CAAC;IAEtC,6EAA6E;IACrE,MAAM,CAAU,sBAAsB,GAAG,EAAE,CAAC;IAE5C,WAAW,GAAW,EAAE,CAAC;IAEzB,gBAAgB,CAAoB;IAE5C,YACE,KAAa,EACN,MAAkC,EACzB,GAAQ;QADjB,WAAM,GAAN,MAAM,CAA4B;QACzB,QAAG,GAAH,GAAG,CAAK;QAGxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,eAAe,CAAC;QAE9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAED,yFAAyF;QACzF,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAExB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAC,MAA2C;QAC5D,wGAAwG;QACxG,IAAI,CAAC,MAAM,GAAG,MAAoC,CAAC;QAEnD,8DAA8D;QAC9D,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC/C,kFAAkF;YAClF,wEAAwE;YACxE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,8DAA8D;QAC9D,MAAM,iBAAiB,GAAyC;YAC9D,6BAA6B;YAC7B,wBAAwB;YACxB,QAAQ;YACR,QAAQ;YACR,SAAS;YACT,OAAO;SACR,CAAC;QAEF,kDAAkD;QAClD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACnD,yDAAyD;YACzD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,+DAA+D;gBAC/D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACrF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,6BAA6B;QAC7B,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,gBAAgB,EAAE,+BAA+B;YACvD,iBAAiB,EAAE,8EAA8E,EAAE,iCAAiC;YACpI,mBAAmB,EAAE,gEAAgE,EAAE,mCAAmC;YAC1H,wBAAwB,EAAE,sDAAsD,EAAE,iCAAiC;YACnH,+BAA+B,EAAE,EAAE,EAAE,+CAA+C;YACpF,8BAA8B,EAAE,IAAI,EAAE,8CAA8C;YACpF,eAAe,EAAE,IAAI,EAAE,0BAA0B;YACjD,QAAQ,EAAE,CAAC,EAAE,uDAAuD;YACpE,iBAAiB,EAAE,OAA4B,EAAE,+BAA+B;YAChF,eAAe,EAAE;gBACf,YAAY,EAAE;oBACZ,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,gBAAgB;oBAChE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB;oBAClD,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,wBAAwB;oBACxD,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB;oBAClD,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,uBAAuB;oBAC/C,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,uBAAuB;oBACjD,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,wBAAwB;oBAChD,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,wBAAwB;iBACvD;gBACD,UAAU,EAAE,MAAM,EAAE,6BAA6B;gBACjD,gBAAgB,EAAE,OAAO,EAAE,yCAAyC;gBACpE,IAAI,EAAE,OAAO,EAAE,yBAAyB;gBACxC,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,+CAA+C;gBAC3F,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,+CAA+C;gBAC3F,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,wBAAwB;gBAC3E,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,uBAAuB;aAC9C;YACD,gBAAgB,EAAE;gBAChB,UAAU;gBACV,UAAU;gBACV,OAAO;gBACP,kBAAkB;gBAClB,aAAa;gBACb,YAAY;gBACZ,iBAAiB;gBACjB,aAAa;gBACb,cAAc;gBACd,UAAU;gBACV,UAAU;gBACV,SAAS;gBACT,UAAU;gBACV,WAAW;gBACX,cAAc;gBACd,cAAc;gBACd,qBAAqB;gBACrB,MAAM;gBACN,gBAAgB;gBAChB,eAAe;gBACf,SAAS;aACV;SACF,CAAC;QAEF,oDAAoD;QACpD,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACtC,UAAU,CAAC,IAAI,GAAG,iBAAiB,WAAW,GAAG,CAAC,CAAC,yCAAyC;YAC5F,UAAU,CAAC,iBAAiB,GAAG,qGAAqG,CAAC,CAAC,sBAAsB;YAC5J,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,2BAA2B;QACtD,CAAC;QAED,2DAA2D;QAC3D,OAAO,CAAC,UAAU,CAAC,CAAC;QAEpB,+CAA+C;QAC/C,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED;;MAEE;IACM,mBAAmB;QAEzB,oDAAoD;QACpD,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,MAAM,kBAAkB,GAAG;YACzB,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE;YAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;SAC7C,CAAC;QAEF,MAAM,qBAAqB,GAAG;YAC5B,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE;SAC3C,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAErC,4EAA4E;QAC5E,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,kBAAkB,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE;gBACnC,IAAI,EAAE,IAAI,CAAC,QAAQ;gBACnB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,eAAe,CAAC,CAAC,MAAmB,EAAE,EAAE;gBAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;gBAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,gBAAgB,IAAI,EAAE,CAAC;gBAE3D,IAAI,OAAO,GAAG,EAAE,CAAC;gBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wBACd,OAAO,IAAI,GAAG,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3F,CAAC;gBACH,CAAC;gBAED,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,gBAAgB,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;YAC7G,CAAC,CAAC,CAAC;QACL,CAAC;QAED,kDAAkD;QAClD,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,qBAAqB,EAAE,CAAC;YACrD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE;gBACnC,IAAI,EAAE,IAAI,CAAC,QAAQ;gBACnB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,eAAe,CAAC,CAAC,MAAmB,EAAE,EAAE;gBAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;gBAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAErC,IAAI,OAAO,GAAG,EAAE,CAAC;gBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wBACd,OAAO,IAAI,GAAG,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3F,CAAC;gBACH,CAAC;gBAED,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4HAA4H;IACpH,SAAS;QAEf,uCAAuC;QACvC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAE7B,2EAA2E;QAC3E,QAAQ,QAAQ,EAAE,CAAC;YAEjB,qBAAqB;YACrB,KAAK,QAAQ;gBAEX,uFAAuF;gBACvF,IAAI,CAAC,WAAW,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAEzF,MAAM;YAER,yBAAyB;YACzB,KAAK,OAAO;gBAEV,iEAAiE;gBACjE,IAAI,CAAC;oBAEH,4GAA4G;oBAC5G,MAAM,QAAQ,GAAG,YAAY,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;oBAE3F,kCAAkC;oBAClC,IAAI,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAEtD,8DAA8D;wBAC9D,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;oBAChC,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBAEP,0EAA0E;oBAC1E,8FAA8F;gBAChG,CAAC;gBAED,MAAM;YAER;gBAEE,mDAAmD;gBACnD,gFAAgF;gBAChF,MAAM;QACV,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,SAAS;QAEf,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,GAAG,CAAC,KAAK,CAAC,kFAAkF,EAAE,UAAU,CAAC,CAAC;QAE1G,0EAA0E;QAC1E,SAAS,EAAE,CAAC;QAEZ,4DAA4D;QAC5D,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzC,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YACzC,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI,CAAC,QAAQ;YAC5B,kBAAkB,EAAE,CAAC;YACrB,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB;YAC1D,0BAA0B,EAAE,IAAI,CAAC,MAAM,CAAC,0BAA0B;YAClE,oBAAoB,EAAE,EAAE;YACxB,OAAO,EAAE;gBACP,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;aAC5E;SACoB,CAAC;QAExB,IAAI,CAAC,GAAG,CAAC,EAAE,2DAAgC,KAAK,IAAI,EAAE;YACpD,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,qCAAoB,KAAK,IAAI,EAAE;YACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,UAA8B;QAEtD,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,MAAM,YAAY,CAAC,UAAU,CAC7C,UAAU,EACV,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAC3D,CAAC;YAEF,6EAA6E;YAC7E,kEAAkE;YAClE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAEpC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAEpE,sDAAsD;YACtD,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE1F,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;gBACtC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;gBACpC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACjC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC/B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAY,EAAE,EAAE;gBAC5D,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;gBAC7B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;gBACjD,GAAG,CAAC,KAAK,CAAC;;;;;;;;;;;SAWT,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;gBAC3C,GAAG,CAAC,KAAK,CAAC;;;;;;;;;;;SAWT,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;QAEL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YACtC,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YACnC,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QAEpF,IAAI,IAAI,CAAC,MAAM,CAAC,2BAA2B,GAAG,KAAK,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,2BAA2B,GAAG,KAAK,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,mIAAmI,CAAC,CAAC;QAChJ,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACxF,GAAG,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;IAChG,CAAC;IAED;;;;;OAKG;IACK,YAAY,CAAC,UAAkB,EAAE,SAAkB;QACzD,sEAAsE;QACtE,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QACzC,kDAAkD;QAClD,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,EAAU;QAC5B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACK,eAAe,CAAC,eAAmD,EAAE,SAAkB;QAC7F,iGAAiG;QACjG,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAErF,2CAA2C;QAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAEtF,mEAAmE;QACnE,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,sCAAsC;QACtC,MAAM,QAAQ,GAAY,CAAC,eAAe,CAAC,UAAU,YAAY,MAAM,CAAC;YACtE,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;YACvC,CAAC,CAAC,KAAK,CAAC;QAEV,qEAAqE;QACrE,MAAM,SAAS,GAAG,eAAe;eAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAC/B,eAAe,CAAC,gBAAgB,CAAC,WAAW,EAC5C,IAAI,EACJ,QAAQ,CAAC,CAAC,gCAAuB,CAAC,wCAA+B,CAClE,CAAC;QAEJ,gDAAgD;QAChD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,gBAAgB,CAAC;QAC/D,SAAS,CAAC,WAAW,GAAG,eAAe,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAErE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,oBAAoB,CAAC,eAAmD,EAAE,SAAkB;QACxG,IAAI,CAAC;YACH,sDAAsD;YACtD,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YAE9E,mEAAmE;YACnE,IAAI,CAAC;gBACH,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAmC,CAAC,CAAC;gBACxE,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,eAAkC,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wEAAwE;gBACxE,wEAAwE;gBACxE,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClF,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,6EAA6E;YAC7E,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;YAED,qDAAqD;YACrD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBAChD,GAAG,CAAC,IAAI,CAAC,gCAAgC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC9E,GAAG,CAAC,IAAI,CAAC,8BAA8B,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gEAAgE;YAChE,GAAG,CAAC,KAAK,CAAC,YAAY,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,OAAgB;QACzC,IAAI,CAAC;YAEH,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3C,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACrD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,GAAG,CAAC,KAAK,CAAC;;;;;;;;SAQT,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,2CAA2C;YAC3C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC;YACjE,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEhC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAc;QACtC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;gBAC3D,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;gBACjD,OAAO;YACT,CAAC;YAED,+DAA+D;YAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,8FAA8F,CAAC,CAAC;gBAC5H,OAAO;YACT,CAAC;YAED,0CAA0C;YAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;YAC/D,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEhC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAAgB;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACnC,GAAG,CAAC,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAc;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,GAAG,CAAC,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;OAOG;IACH;;;;OAIG;IACK,sBAAsB;QAC5B,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAClC,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,sBAAsB,CAAC;QAC7D,GAAG,CAAC,KAAK,CACP,8CAA8C,QAAQ,8BAA8B;YACpF,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,gBAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,oBAAoB,CAC9F,CAAC;QACF,IAAI,CAAC,wBAAwB,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YACpD,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,GAAG,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,eAAe,CAAC,MAAM,iBAAiB,IAAI,CAAC,cAAc,CAAC,MAAM,UAAU,CAAC,CAAC;QAE7H,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,IAAI,CACN,+CAA+C,IAAI,CAAC,eAAe,CAAC,MAAM,mBAAmB,IAAI,CAAC,cAAc,CAAC,MAAM,eAAe;gBACtI,4HAA4H,CAC7H,CAAC;QACJ,CAAC;QAED,sDAAsD;QACtD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE9C,uFAAuF;QACvF,GAAG,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,cAAc,CAAC,MAAM,UAAU,CAAC,CAAC;QAE5F,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAEnD,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;gBAE1C,uDAAuD;gBACvD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;oBACpC,GAAG,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,OAAO,EAAE,WAAW,UAAU,wEAAwE,CAAC,CAAC;oBAC1I,SAAS;gBACX,CAAC;gBAED,MAAM,eAAe,GAAoB;oBACvC,gBAAgB,EAAE;wBAChB,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE;wBAC5B,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;wBACtE,IAAI,EAAE,UAAU;qBACG;oBACrB,UAAU,EAAE,MAAM;iBACnB,CAAC;gBAEF,GAAG,CAAC,KAAK,CAAC,wBAAwB,eAAe,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;gBAClF,MAAM,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;gBACxD,GAAG,CAAC,KAAK,CAAC,uBAAuB,eAAe,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;YACnF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,2CAA2C,MAAM,CAAC,OAAO,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,cAAc,CAAC,MAAM,oBAAoB,CAAC,CAAC;QAEpF,gDAAgD;QAChD,GAAG,CAAC,KAAK,CAAC,6CAA6C,IAAI,CAAC,eAAe,CAAC,MAAM,WAAW,CAAC,CAAC;QAC/F,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YAE1C,sEAAsE;YACtE,6EAA6E;YAC7E,yFAAyF;YACzF,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxD,GAAG,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,OAAO,EAAE,WAAW,WAAW,wEAAwE,CAAC,CAAC;gBAC7I,SAAS;YACX,CAAC;YAED,uDAAuD;YACvD,MAAM,YAAY,GAAG,cAAc,IAAI,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAE9E,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,eAAe,EAAE,CAAC;gBAClB,GAAG,CAAC,KAAK,CAAC,mBAAmB,OAAO,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;gBACtF,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,eAAe,GAAqB;oBACxC,gBAAgB,EAAE;wBAChB,QAAQ,EAAE,aAAa;wBACvB,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;wBACxE,IAAI,EAAE,WAAW;qBACE;oBACrB,UAAU,EAAE,OAAO;iBACpB,CAAC;gBAEF,GAAG,CAAC,KAAK,CAAC,yBAAyB,eAAe,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;gBACnF,MAAM,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;gBACvD,GAAG,CAAC,KAAK,CAAC,wBAAwB,eAAe,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;YACpF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,6CAA6C,OAAO,CAAC,OAAO,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,eAAe,sBAAsB,eAAe,UAAU,CAAC,CAAC;QAE/H,yEAAyE;QACzE,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC;QAEpC,uBAAuB;QACvB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAEzB,GAAG,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IAC/E,CAAC;IAEO,KAAK,CAAC,cAAc;QAE1B,yEAAyE;QACzE,8GAA8G;QAC9G,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAClC,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC;QAEvC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,SAA4B;QAC7C,GAAG,CAAC,KAAK,CAAC,iCAAiC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAEpE,wGAAwG;QACxG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAEO,sBAAsB;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;YAC5E,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxD,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,gBAAgB,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;gBAC1C,GAAG,CAAC,IAAI,CAAC,6BAA6B,cAAc,CAAC,IAAI,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC3F,GAAG,EAAE,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;YACvF,CAAC,CAAC,CAAC;YAEH,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,qBAAqB,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gBAAgB,CACtB,SAA4B,EAC5B,SAA2B;QAG3B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAE7D,MAAM,IAAI,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,4DAA4D;YAC5D,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,6DAA6D,IAAI,gCAAgC,CAAC,CAAC;YACrH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAChC,IAAI,wBAAwB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAkB,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,IAAI,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAkB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,eAAe,CACrB,SAA4B,EAC5B,SAA0B;QAG1B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC;QACpC,MAAM,IAAI,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAE7C,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,kBAAkB,CAAC,CAAC;YACtD,IAAI,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAsB,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,iBAAiB,CAAC,CAAC;YACrD,IAAI,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAqB,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,eAAe,CAAC,CAAC;YACnD,IAAI,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAmB,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;YAC9C,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAc,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;YAChD,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,MAAgB,CAAC,CAAC;QACzD,CAAC;IAEH,CAAC"}
|
package/dist/settings.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is the name of the platform that users will use to register the plugin in the Homebridge config.json
|
|
3
|
+
*/
|
|
4
|
+
export const PLATFORM_NAME = 'EufySecurity';
|
|
5
|
+
/**
|
|
6
|
+
* This must match the name of your plugin as defined the package.json
|
|
7
|
+
*/
|
|
8
|
+
export const PLUGIN_NAME = '@homebridge-plugins/homebridge-eufy-security';
|
|
9
|
+
// HomeKit Secure Video segment length, in milliseconds. HomeKit only supports this value currently.
|
|
10
|
+
export const PROTECT_HKSV_SEGMENT_LENGTH = 4000;
|
|
11
|
+
// HomeKit Secure Video maximum event recording errors to accept before resetting a connection to the Protect controller.
|
|
12
|
+
export const PROTECT_HKSV_MAX_EVENT_ERRORS = 3;
|
|
13
|
+
// HomeKit Secure Video timeshift buffer default length, in milliseconds. This defines how far back in time we can look when we see a motion event.
|
|
14
|
+
export const PROTECT_HKSV_TIMESHIFT_BUFFER_MAXLENGTH = PROTECT_HKSV_SEGMENT_LENGTH * 2;
|
|
15
|
+
// HomeKit Secure Video segment resolution, in milliseconds. This defines the resolution of our buffer. It should never be less than 100ms or greater than 1500ms.
|
|
16
|
+
export const PROTECT_HKSV_SEGMENT_RESOLUTION = 100;
|
|
17
|
+
// Additional headroom for bitrates beyond what HomeKit is requesting when streaming to improve quality with a minor additional bandwidth cost.
|
|
18
|
+
export const PROTECT_HOMEKIT_STREAMING_HEADROOM = 64;
|
|
19
|
+
// HomeKit prefers a video streaming I-frame interval of 2 seconds.
|
|
20
|
+
export const PROTECT_HOMEKIT_IDR_INTERVAL = 2;
|
|
21
|
+
// Minimum required GPU memory on a Raspberry Pi for hardware acceleration.
|
|
22
|
+
export const PROTECT_RPI_GPU_MINIMUM = 128;
|
|
23
|
+
// FFmpeg afftdn audio filter defaults - this setting uses FFTs to reduce noise in an audio signal by the number of decibels below.
|
|
24
|
+
export const PROTECT_FFMPEG_AUDIO_FILTER_FFTNR = 90;
|
|
25
|
+
// Maximum age of a snapshot in seconds.
|
|
26
|
+
export const PROTECT_SNAPSHOT_CACHE_MAXAGE = 90;
|
|
27
|
+
// How often, in seconds, should we heartbeat FFmpeg in two-way audio sessions. This should be less than 5 seconds, which is FFmpeg's input timeout interval.
|
|
28
|
+
export const PROTECT_TWOWAY_HEARTBEAT_INTERVAL = 3;
|
|
29
|
+
export const SnapshotUnavailablePath = '/media/Snapshot-Unavailable.png';
|
|
30
|
+
// Seconds – cache age threshold for the fast-path snapshot return.
|
|
31
|
+
export const SNAPSHOT_CACHE_FRESH_SECONDS = 15;
|
|
32
|
+
// Seconds – balanced-mode cache age threshold before fetching a new snapshot.
|
|
33
|
+
export const SNAPSHOT_CACHE_BALANCED_SECONDS = 30;
|
|
34
|
+
// Milliseconds – don't overwrite a recent stream snapshot with a cloud image.
|
|
35
|
+
export const SNAPSHOT_CLOUD_SKIP_MS = 30 * 1000;
|
|
36
|
+
// Milliseconds – maximum time to wait for a snapshot fetch before timing out.
|
|
37
|
+
export const SNAPSHOT_FETCH_TIMEOUT_MS = 30 * 1000;
|
|
38
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,8CAA8C,CAAC;AAE1E,oGAAoG;AACpG,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEhD,yHAAyH;AACzH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAE/C,mJAAmJ;AACnJ,MAAM,CAAC,MAAM,uCAAuC,GAAG,2BAA2B,GAAG,CAAC,CAAC;AAEvF,kKAAkK;AAClK,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAEnD,+IAA+I;AAC/I,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AAErD,mEAAmE;AACnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAE9C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C,mIAAmI;AACnI,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,CAAC;AAEpD,wCAAwC;AACxC,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD,6JAA6J;AAC7J,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;AAEzE,mEAAmE;AACnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAElD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Duplex } from 'stream';
|
|
2
|
+
import { log } from './utils.js';
|
|
3
|
+
export class TalkbackStream extends Duplex {
|
|
4
|
+
eufyClient;
|
|
5
|
+
cameraName;
|
|
6
|
+
cameraSN;
|
|
7
|
+
cacheData = [];
|
|
8
|
+
talkbackStarted = false;
|
|
9
|
+
stopTalkbackTimeout;
|
|
10
|
+
targetStream;
|
|
11
|
+
constructor(platform, camera) {
|
|
12
|
+
super();
|
|
13
|
+
this.eufyClient = platform.eufyClient;
|
|
14
|
+
this.cameraName = camera.getName();
|
|
15
|
+
this.cameraSN = camera.getSerial();
|
|
16
|
+
this.eufyClient.on('station talkback start', this.onTalkbackStarted);
|
|
17
|
+
this.eufyClient.on('station talkback stop', this.onTalkbackStopped);
|
|
18
|
+
}
|
|
19
|
+
onTalkbackStarted(station, device, stream) {
|
|
20
|
+
if (device.getSerial() !== this.cameraSN) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
log.debug(this.cameraName, 'talkback started event from station ' + station.getName());
|
|
24
|
+
if (this.targetStream) {
|
|
25
|
+
this.unpipe(this.targetStream);
|
|
26
|
+
}
|
|
27
|
+
this.targetStream = stream;
|
|
28
|
+
this.pipe(this.targetStream);
|
|
29
|
+
}
|
|
30
|
+
onTalkbackStopped(station, device) {
|
|
31
|
+
if (device.getSerial() !== this.cameraSN) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
log.debug(this.cameraName, 'talkback stopped event from station ' + station.getName());
|
|
35
|
+
if (this.targetStream) {
|
|
36
|
+
this.unpipe(this.targetStream);
|
|
37
|
+
}
|
|
38
|
+
this.targetStream = undefined;
|
|
39
|
+
}
|
|
40
|
+
stopTalkbackStream() {
|
|
41
|
+
// remove event listeners
|
|
42
|
+
this.eufyClient.removeListener('station talkback start', this.onTalkbackStarted);
|
|
43
|
+
this.eufyClient.removeListener('station talkback stop', this.onTalkbackStopped);
|
|
44
|
+
this.stopTalkback();
|
|
45
|
+
this.unpipe();
|
|
46
|
+
this.destroy();
|
|
47
|
+
}
|
|
48
|
+
_read() {
|
|
49
|
+
let pushReturn = true;
|
|
50
|
+
while (this.cacheData.length > 0 && pushReturn) {
|
|
51
|
+
const data = this.cacheData.shift();
|
|
52
|
+
pushReturn = this.push(data);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
_write(chunk, encoding, callback) {
|
|
56
|
+
if (this.stopTalkbackTimeout) {
|
|
57
|
+
clearTimeout(this.stopTalkbackTimeout);
|
|
58
|
+
}
|
|
59
|
+
this.stopTalkbackTimeout = setTimeout(() => {
|
|
60
|
+
this.stopTalkback();
|
|
61
|
+
}, 2000);
|
|
62
|
+
if (this.targetStream) {
|
|
63
|
+
this.push(chunk);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.cacheData.push(chunk);
|
|
67
|
+
this.startTalkback();
|
|
68
|
+
}
|
|
69
|
+
callback();
|
|
70
|
+
}
|
|
71
|
+
startTalkback() {
|
|
72
|
+
if (!this.talkbackStarted) {
|
|
73
|
+
this.talkbackStarted = true;
|
|
74
|
+
log.debug(this.cameraName, 'starting talkback');
|
|
75
|
+
this.eufyClient.startStationTalkback(this.cameraSN)
|
|
76
|
+
.catch(error => {
|
|
77
|
+
log.error(this.cameraName, 'talkback could not be started: ' + error);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
stopTalkback() {
|
|
82
|
+
if (this.talkbackStarted) {
|
|
83
|
+
this.talkbackStarted = false;
|
|
84
|
+
log.debug(this.cameraName, 'stopping talkback');
|
|
85
|
+
this.eufyClient.stopStationTalkback(this.cameraSN)
|
|
86
|
+
.catch(error => {
|
|
87
|
+
log.error(this.cameraName, 'talkback could not be stopped: ' + error);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=Talkback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Talkback.js","sourceRoot":"","sources":["../../src/utils/Talkback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { Device, PropertyName, CommandName, DeviceType, } from 'eufy-security-client';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import { log } from './utils.js';
|
|
4
|
+
import { LIB_VERSION } from '../version.js';
|
|
5
|
+
/** Seconds between heartbeat writes so the UI can detect a running plugin. */
|
|
6
|
+
const HEARTBEAT_SEC = 60;
|
|
7
|
+
/**
|
|
8
|
+
* Manages the accessories.json file that the Eufy Plugin UI reads.
|
|
9
|
+
*
|
|
10
|
+
* Builds the station/device tree from live eufy-security-client objects
|
|
11
|
+
* and writes it to disk. A periodic heartbeat keeps `storedAt` fresh so
|
|
12
|
+
* the UI can detect whether the plugin is still running.
|
|
13
|
+
*/
|
|
14
|
+
export class AccessoriesStore {
|
|
15
|
+
eufyClient;
|
|
16
|
+
config;
|
|
17
|
+
storagePath;
|
|
18
|
+
heartbeatInterval;
|
|
19
|
+
constructor(eufyClient, config, storagePath) {
|
|
20
|
+
this.eufyClient = eufyClient;
|
|
21
|
+
this.config = config;
|
|
22
|
+
this.storagePath = storagePath;
|
|
23
|
+
}
|
|
24
|
+
/** Write accessories.json immediately and start the heartbeat. */
|
|
25
|
+
async persistNow() {
|
|
26
|
+
this.cancelPending();
|
|
27
|
+
await this.persist();
|
|
28
|
+
this.startHeartbeat();
|
|
29
|
+
}
|
|
30
|
+
/** Stop the heartbeat. */
|
|
31
|
+
cancelPending() {
|
|
32
|
+
if (this.heartbeatInterval) {
|
|
33
|
+
clearInterval(this.heartbeatInterval);
|
|
34
|
+
this.heartbeatInterval = undefined;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** Start a periodic heartbeat that rewrites accessories.json every HEARTBEAT_SEC seconds. */
|
|
38
|
+
startHeartbeat() {
|
|
39
|
+
if (this.heartbeatInterval) {
|
|
40
|
+
return; // already running
|
|
41
|
+
}
|
|
42
|
+
this.heartbeatInterval = setInterval(() => this.persist(), HEARTBEAT_SEC * 1000);
|
|
43
|
+
}
|
|
44
|
+
// ---------------------------------------------------------------------------
|
|
45
|
+
// Internal
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
47
|
+
async persist() {
|
|
48
|
+
try {
|
|
49
|
+
if (!this.eufyClient?.isConnected?.()) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const [stations, devices] = await Promise.all([
|
|
53
|
+
this.eufyClient.getStations(),
|
|
54
|
+
this.eufyClient.getDevices(),
|
|
55
|
+
]);
|
|
56
|
+
// Group devices by their parent station serial
|
|
57
|
+
const devicesByStation = new Map();
|
|
58
|
+
for (const device of devices) {
|
|
59
|
+
const stationSN = device.getStationSerial();
|
|
60
|
+
if (!devicesByStation.has(stationSN)) {
|
|
61
|
+
devicesByStation.set(stationSN, []);
|
|
62
|
+
}
|
|
63
|
+
devicesByStation.get(stationSN).push(device);
|
|
64
|
+
}
|
|
65
|
+
const storedStations = [];
|
|
66
|
+
for (const station of stations) {
|
|
67
|
+
const stationType = station.getDeviceType();
|
|
68
|
+
const stationSerial = station.getSerial();
|
|
69
|
+
const isKnownStation = Device.isStation(stationType);
|
|
70
|
+
const stationRecord = {
|
|
71
|
+
uniqueId: stationSerial,
|
|
72
|
+
displayName: station.getName(),
|
|
73
|
+
type: stationType,
|
|
74
|
+
typename: DeviceType[stationType],
|
|
75
|
+
disabled: false,
|
|
76
|
+
devices: [],
|
|
77
|
+
properties: { ...station.getProperties() },
|
|
78
|
+
unsupported: false,
|
|
79
|
+
ignored: (this.config.ignoreStations ?? []).includes(stationSerial),
|
|
80
|
+
power: computePower(station.getProperties()),
|
|
81
|
+
};
|
|
82
|
+
try {
|
|
83
|
+
delete stationRecord.properties.picture;
|
|
84
|
+
}
|
|
85
|
+
catch { /* ignore */ }
|
|
86
|
+
if (!isKnownStation) {
|
|
87
|
+
if (!Device.isSupported(stationType)) {
|
|
88
|
+
stationRecord.unsupported = true;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
const hasMatchingDevice = devicesByStation.has(stationSerial);
|
|
92
|
+
if (hasMatchingDevice) {
|
|
93
|
+
stationRecord.standalone = true;
|
|
94
|
+
stationRecord.disabled = true;
|
|
95
|
+
if (Device.isLock(stationType) || Device.isDoorbell(stationType) || Device.isSmartDrop(stationType)) {
|
|
96
|
+
stationRecord.noSecurityControl = true;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
stationRecord.unsupported = true;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Attach devices to this station
|
|
105
|
+
const stationDevices = devicesByStation.get(stationSerial) ?? [];
|
|
106
|
+
for (const device of stationDevices) {
|
|
107
|
+
const devType = device.getDeviceType();
|
|
108
|
+
const deviceRecord = {
|
|
109
|
+
uniqueId: device.getSerial(),
|
|
110
|
+
displayName: device.getName(),
|
|
111
|
+
type: devType,
|
|
112
|
+
typename: DeviceType[devType],
|
|
113
|
+
standalone: device.getSerial() === device.getStationSerial(),
|
|
114
|
+
hasBattery: device.hasBattery(),
|
|
115
|
+
isCamera: device.isCamera() || Device.isLockWifiVideo(devType),
|
|
116
|
+
isDoorbell: device.isDoorbell(),
|
|
117
|
+
isKeypad: device.isKeyPad(),
|
|
118
|
+
isMotionSensor: Device.isMotionSensor(devType),
|
|
119
|
+
isEntrySensor: Device.isEntrySensor(devType),
|
|
120
|
+
isLock: Device.isLock(devType),
|
|
121
|
+
isSmartDrop: Device.isSmartDrop(devType),
|
|
122
|
+
supportsRTSP: device.hasPropertyValue(PropertyName.DeviceRTSPStream),
|
|
123
|
+
supportsTalkback: device.hasCommand(CommandName.DeviceStartTalkback),
|
|
124
|
+
DeviceEnabled: device.hasProperty(PropertyName.DeviceEnabled),
|
|
125
|
+
DeviceMotionDetection: device.hasProperty(PropertyName.DeviceMotionDetection),
|
|
126
|
+
DeviceLight: device.hasProperty(PropertyName.DeviceLight),
|
|
127
|
+
DeviceChimeIndoor: device.hasProperty(PropertyName.DeviceChimeIndoor),
|
|
128
|
+
disabled: false,
|
|
129
|
+
properties: { ...device.getProperties() },
|
|
130
|
+
unsupported: !Device.isSupported(devType),
|
|
131
|
+
ignored: (this.config.ignoreDevices ?? []).includes(device.getSerial()),
|
|
132
|
+
power: computePower(device.getProperties()),
|
|
133
|
+
};
|
|
134
|
+
try {
|
|
135
|
+
delete deviceRecord.properties.picture;
|
|
136
|
+
}
|
|
137
|
+
catch { /* ignore */ }
|
|
138
|
+
if (stationRecord.unsupported) {
|
|
139
|
+
deviceRecord.unsupported = true;
|
|
140
|
+
}
|
|
141
|
+
stationRecord.devices.push(deviceRecord);
|
|
142
|
+
}
|
|
143
|
+
storedStations.push(stationRecord);
|
|
144
|
+
}
|
|
145
|
+
if (!fs.existsSync(this.storagePath)) {
|
|
146
|
+
fs.mkdirSync(this.storagePath, { recursive: true });
|
|
147
|
+
}
|
|
148
|
+
const filePath = this.storagePath + '/accessories.json';
|
|
149
|
+
const data = { version: LIB_VERSION, storedAt: new Date().toISOString(), stations: storedStations };
|
|
150
|
+
fs.writeFileSync(filePath, JSON.stringify(data));
|
|
151
|
+
log.debug(`Persisted ${storedStations.length} station(s) to accessories.json`);
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
log.error(`Failed to write accessories.json: ${error}`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Compute a unified power descriptor from a properties object.
|
|
160
|
+
* Works for both devices and stations.
|
|
161
|
+
*/
|
|
162
|
+
function computePower(props) {
|
|
163
|
+
const power = { source: null, icon: null, label: null };
|
|
164
|
+
if (props.battery !== undefined) {
|
|
165
|
+
power.battery = props.battery;
|
|
166
|
+
}
|
|
167
|
+
else if (props.batteryLow !== undefined) {
|
|
168
|
+
power.batteryLow = props.batteryLow;
|
|
169
|
+
}
|
|
170
|
+
if (props.chargingStatus !== undefined) {
|
|
171
|
+
const cs = props.chargingStatus;
|
|
172
|
+
const isSolar = ((cs >> 2) & 1) === 1;
|
|
173
|
+
const isPlugSolar = ((cs >> 3) & 1) === 1;
|
|
174
|
+
const isUsb = (cs & 1) === 1;
|
|
175
|
+
if (isSolar || isPlugSolar) {
|
|
176
|
+
power.source = 'solar';
|
|
177
|
+
power.icon = 'solar_power.svg';
|
|
178
|
+
power.label = 'Solar Charging';
|
|
179
|
+
return power;
|
|
180
|
+
}
|
|
181
|
+
if (isUsb) {
|
|
182
|
+
power.source = 'plugged';
|
|
183
|
+
power.icon = 'bolt.svg';
|
|
184
|
+
power.label = 'Charging';
|
|
185
|
+
return power;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if (props.powerSource === 1) {
|
|
189
|
+
power.source = 'solar';
|
|
190
|
+
power.icon = 'solar_power.svg';
|
|
191
|
+
power.label = 'Solar';
|
|
192
|
+
}
|
|
193
|
+
else if (props.powerSource === 0) {
|
|
194
|
+
power.source = 'battery';
|
|
195
|
+
}
|
|
196
|
+
else if (power.battery === undefined && power.batteryLow === undefined) {
|
|
197
|
+
power.source = 'plugged';
|
|
198
|
+
power.icon = 'bolt.svg';
|
|
199
|
+
power.label = 'Plugged In';
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
power.source = 'battery';
|
|
203
|
+
}
|
|
204
|
+
return power;
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=accessoriesStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessoriesStore.js","sourceRoot":"","sources":["../../src/utils/accessoriesStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export var SnapshotHandlingMethod;
|
|
2
|
+
(function (SnapshotHandlingMethod) {
|
|
3
|
+
/** Let the plugin decide the best method (defaults to CloudOnly) */
|
|
4
|
+
SnapshotHandlingMethod[SnapshotHandlingMethod["Auto"] = 0] = "Auto";
|
|
5
|
+
/** Always fetch a fresh snapshot from the camera (highest battery drain) */
|
|
6
|
+
SnapshotHandlingMethod[SnapshotHandlingMethod["AlwaysFresh"] = 1] = "AlwaysFresh";
|
|
7
|
+
/** Return cached snapshot if recent, otherwise fetch fresh */
|
|
8
|
+
SnapshotHandlingMethod[SnapshotHandlingMethod["Balanced"] = 2] = "Balanced";
|
|
9
|
+
/** Always return cached/cloud snapshot (lowest battery drain) */
|
|
10
|
+
SnapshotHandlingMethod[SnapshotHandlingMethod["CloudOnly"] = 3] = "CloudOnly";
|
|
11
|
+
})(SnapshotHandlingMethod || (SnapshotHandlingMethod = {}));
|
|
12
|
+
export const DEFAULT_CAMERACONFIG_VALUES = {
|
|
13
|
+
name: '',
|
|
14
|
+
manufacturer: '',
|
|
15
|
+
model: '',
|
|
16
|
+
serialNumber: '',
|
|
17
|
+
firmwareRevision: '',
|
|
18
|
+
enableButton: true,
|
|
19
|
+
motionButton: true,
|
|
20
|
+
lightButton: true,
|
|
21
|
+
talkback: false,
|
|
22
|
+
talkbackChannels: 1,
|
|
23
|
+
hsvRecordingDuration: 90,
|
|
24
|
+
rtsp: false,
|
|
25
|
+
enableCamera: true,
|
|
26
|
+
snapshotHandlingMethod: SnapshotHandlingMethod.CloudOnly,
|
|
27
|
+
delayCameraSnapshot: false,
|
|
28
|
+
indoorChimeButton: false,
|
|
29
|
+
};
|
|
30
|
+
export const DEFAULT_VIDEOCONFIG_VALUES = {
|
|
31
|
+
probeSize: 16384,
|
|
32
|
+
vcodec: 'copy',
|
|
33
|
+
acodec: 'copy',
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=configTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configTypes.js","sourceRoot":"","sources":["../../src/utils/configTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,sBASX;AATD,WAAY,sBAAsB;IAChC,oEAAoE;IACpE,mEAAQ,CAAA;IACR,4EAA4E;IAC5E,iFAAe,CAAA;IACf,8DAA8D;IAC9D,2EAAY,CAAA;IACZ,iEAAiE;IACjE,6EAAa,CAAA;AACf,CAAC,EATW,sBAAsB,KAAtB,sBAAsB,QASjC;AA2BD,MAAM,CAAC,MAAM,2BAA2B,GAAiB;IACvD,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,EAAE;IAChB,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,EAAE;IAChB,gBAAgB,EAAE,EAAE;IACpB,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,KAAK;IACf,gBAAgB,EAAE,CAAC;IACnB,oBAAoB,EAAE,EAAE;IACxB,IAAI,EAAE,KAAK;IACX,YAAY,EAAE,IAAI;IAClB,sBAAsB,EAAE,sBAAsB,CAAC,SAAS;IACxD,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,KAAK;CACzB,CAAC;AA8BF,MAAM,CAAC,MAAM,0BAA0B,GAAgB;IACrD,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;CACf,CAAC"}
|