homebridge-unifi-protect 5.2.0 → 5.3.3

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.
@@ -144,8 +144,8 @@ class ProtectNvrEvents {
144
144
  }
145
145
  // It's a motion event - process it accordingly.
146
146
  if (payload.isMotionDetected) {
147
- // We only want to process the motion event if we have the right payload, and either HKSV is enabled, or
148
- // HKSV is disabled and we have smart motion events disabled since We handle those elsewhere.
147
+ // We only want to process the motion event if we have the right payload, and either HKSV recording is enabled, or
148
+ // HKSV recording is disabled and we have smart motion events disabled since We handle those elsewhere.
149
149
  if (payload.lastMotion &&
150
150
  (((_a = protectCamera.stream.hksv) === null || _a === void 0 ? void 0 : _a.isRecording) || (!((_b = protectCamera.stream.hksv) === null || _b === void 0 ? void 0 : _b.isRecording) && !protectCamera.smartDetectTypes.length)) &&
151
151
  this.nvr.optionEnabled(device, "Motion.NvrEvents", true)) {
@@ -353,7 +353,7 @@ class ProtectNvrEvents {
353
353
  }
354
354
  // Motion event delivery to HomeKit.
355
355
  motionEventDelivery(accessory, motionService, detectedObjects = []) {
356
- var _a, _b, _c, _d;
356
+ var _a, _b, _c, _d, _e;
357
357
  const device = accessory.context.device;
358
358
  // Lookup the ProtectCamera instance associated with this accessory.
359
359
  const protectCamera = this.nvr.configuredDevices[accessory.UUID];
@@ -382,7 +382,7 @@ class ProtectNvrEvents {
382
382
  (_c = this.nvr.mqtt) === null || _c === void 0 ? void 0 : _c.publish(accessory, "motion", "true");
383
383
  // Log the event, if configured to do so.
384
384
  if (this.nvr.optionEnabled(device, "Log.Motion", false)) {
385
- this.log.info("%s: Motion detected%s.", this.nvrApi.getFullName(device), detectedObjects.length ? ": " + detectedObjects.join(", ") : "");
385
+ this.log.info("%s: Motion detected%s.", this.nvrApi.getFullName(device), (!((_d = protectCamera.stream.hksv) === null || _d === void 0 ? void 0 : _d.isRecording) && detectedObjects.length) ? ": " + detectedObjects.join(", ") : "");
386
386
  }
387
387
  }
388
388
  // Trigger smart motion contact sensors, if configured.
@@ -392,28 +392,24 @@ class ProtectNvrEvents {
392
392
  contactService.updateCharacteristic(this.hap.Characteristic.ContactSensorState, true);
393
393
  }
394
394
  // Publish the smart motion event to MQTT, if the user has configured it.
395
- (_d = this.nvr.mqtt) === null || _d === void 0 ? void 0 : _d.publish(accessory, "motion/smart/" + detectedObject, "true");
395
+ (_e = this.nvr.mqtt) === null || _e === void 0 ? void 0 : _e.publish(accessory, "motion/smart/" + detectedObject, "true");
396
396
  }
397
- // Reset our motion event after motionDuration.
397
+ // Reset our motion event after motionDuration if we don't already have a reset timer inflight.
398
398
  if (!this.eventTimers[device.mac]) {
399
399
  this.eventTimers[device.mac] = setTimeout(() => {
400
- var _a, _b;
401
- // Reset the motion sensor, if it's been triggered.
402
- if (!detectedObjects.length ||
403
- (!((_a = protectCamera.stream.hksv) === null || _a === void 0 ? void 0 : _a.isRecording) && detectedObjects.length && detectedObjects.filter(x => protectCamera.smartDetectTypes.includes(x)).length)) {
404
- const thisMotionService = accessory.getService(this.hap.Service.MotionSensor);
405
- if (thisMotionService) {
406
- thisMotionService.updateCharacteristic(this.hap.Characteristic.MotionDetected, false);
407
- // Check to see if we have a motion trigger switch configured. If we do, update it.
408
- const thisTriggerService = accessory.getServiceById(this.hap.Service.Switch, protect_accessory_1.PROTECT_SWITCH_MOTION_TRIGGER);
409
- if (thisTriggerService) {
410
- thisTriggerService.updateCharacteristic(this.hap.Characteristic.On, false);
411
- }
412
- this.debug("%s: Resetting motion event.", this.nvrApi.getFullName(device));
400
+ var _a;
401
+ const thisMotionService = accessory.getService(this.hap.Service.MotionSensor);
402
+ if (thisMotionService) {
403
+ thisMotionService.updateCharacteristic(this.hap.Characteristic.MotionDetected, false);
404
+ // Check to see if we have a motion trigger switch configured. If we do, update it.
405
+ const thisTriggerService = accessory.getServiceById(this.hap.Service.Switch, protect_accessory_1.PROTECT_SWITCH_MOTION_TRIGGER);
406
+ if (thisTriggerService) {
407
+ thisTriggerService.updateCharacteristic(this.hap.Characteristic.On, false);
413
408
  }
414
- // Publish to MQTT, if the user has configured it.
415
- (_b = this.nvr.mqtt) === null || _b === void 0 ? void 0 : _b.publish(accessory, "motion", "false");
409
+ this.debug("%s: Resetting motion event.", this.nvrApi.getFullName(device));
416
410
  }
411
+ // Publish to MQTT, if the user has configured it.
412
+ (_a = this.nvr.mqtt) === null || _a === void 0 ? void 0 : _a.publish(accessory, "motion", "false");
417
413
  // Delete the timer from our motion event tracker.
418
414
  delete this.eventTimers[device.mac];
419
415
  }, this.motionDuration * 1000);
@@ -1 +1 @@
1
- {"version":3,"file":"protect-nvr-events.js","sourceRoot":"","sources":["../src/protect-nvr-events.ts"],"names":[],"mappings":";;;AAWA,2DAI6B;AAC7B,iDAWuB;AAQvB,MAAa,gBAAgB;IAiB3B,YAAY,GAAe;QAEzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;QACrD,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,2BAA2B;IACpB,MAAM;QAEX,yEAAyE;QACzE,gGAAgG;QAChG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEhC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kGAAkG;IAClG,yGAAyG;IACzG,uCAAuC;IAC/B,4BAA4B;QAElC,kFAAkF;QAClF,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;YAEhD,OAAO,IAAI,CAAC;SACb;QAED,uDAAuD;QACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,KAAa,EAAQ,EAAE;;YAEhF,IAAI,QAAQ,CAAC;YAEb,IAAI;gBAEF,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAA0B,CAAC;aAElE;YAAC,OAAM,KAAK,EAAE;gBAEb,IAAG,KAAK,YAAY,WAAW,EAAE;oBAE/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uFAAuF,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;iBACzJ;qBAAM;oBAEL,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;iBACxF;gBAED,mCAAmC;gBACnC,OAAO;aAER;YAED,kDAAkD;YAClD,IAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,MAAK,sBAAsB,EAAE;gBAE5C,OAAO;aACR;YAED,oCAAoC;YACpC,MAAM,UAAU,GAAG,MAAA,MAAA,QAAQ,CAAC,IAAI,0CAAE,WAAW,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAE/E,IAAG,CAAC,UAAU,EAAE;gBAEd,OAAO;aACR;YAED,kFAAkF;YAClF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAClE,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAA8B,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAEpI,0EAA0E;YAC1E,IAAG,CAAC,WAAW,EAAE;gBAEf,OAAO;aACR;YAED,6DAA6D;YAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;YAEpE,8FAA8F;YAC9F,sGAAsG;YACtG,qCAAqC;YACrC,IAAG,CAAC,SAAS,EAAE;gBAEb,OAAO;aACR;YAED,kGAAkG;YAClG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;;YAEtC,IAAG,IAAI,CAAC,eAAe,EAAE;gBAEvB,MAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,0CAAE,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBACtE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mGAAmG;IAC3F,wBAAwB;QAE9B,kFAAkF;QAClF,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;YAEhD,OAAO,IAAI,CAAC;SACb;QAED,uDAAuD;QACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,KAAa,EAAQ,EAAE;;YAEhF,MAAM,YAAY,GAAG,iCAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE3E,IAAG,CAAC,YAAY,EAAE;gBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oEAAoE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC/G,OAAO;aACR;YAED,2FAA2F;YAC3F,EAAE;YACF,mBAAmB;YACnB,qBAAqB;YACrB,qBAAqB;YACrB,4BAA4B;YAC5B,EAAE;YACF,4FAA4F;YAC5F,QAAO,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAEnC,KAAK,QAAQ,CAAC,CAAC;oBAEb,qDAAqD;oBACrD,yBAAyB;oBACzB,mBAAmB;oBACnB,qBAAqB;oBAErB,2CAA2C;oBAC3C,IAAG,YAAY,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;wBAC1C,OAAO;qBACR;oBAED,uDAAuD;oBACvD,MAAM,OAAO,GAAG,YAAY,CAAC,OAA8B,CAAC;oBAE5D,6GAA6G;oBAC7G,IAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU;wBACtE,CAAC,OAAO,CAAC,WAAW,EAAE;wBACtB,OAAO;qBACR;oBAED,oDAAoD;oBACpD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAEnE,gDAAgD;oBAChD,IAAG,CAAC,SAAS,EAAE;wBACb,OAAO;qBACR;oBAED,2CAA2C;oBAC3C,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAwB,CAAC;oBAEnG,2BAA2B;oBAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAA6B,CAAC;oBAE/D,oEAAoE;oBACpE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAkB,CAAC;oBAElF,IAAG,CAAC,aAAa,EAAE;wBACjB,OAAO;qBACR;oBAED,gDAAgD;oBAChD,IAAG,OAAO,CAAC,gBAAgB,EAAE;wBAE3B,wGAAwG;wBACxG,6FAA6F;wBAC7F,IAAG,OAAO,CAAC,UAAU;4BACnB,CAAC,CAAA,MAAA,aAAa,CAAC,MAAM,CAAC,IAAI,0CAAE,WAAW,KAAI,CAAC,CAAC,CAAA,MAAA,aAAa,CAAC,MAAM,CAAC,IAAI,0CAAE,WAAW,CAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;4BAC/H,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE;4BAE1D,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;yBACxD;qBACF;oBAED,8CAA8C;oBAC9C,IAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE;wBAEjF,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;qBACxD;oBAED,8DAA8D;oBAC9D,IAAG,OAAO,CAAC,UAAU,EAAE;wBAErB,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;qBAC5D;oBAED,mCAAmC;oBACnC,IAAG,OAAO,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;wBAE9D,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;qBACrD;oBAED,MAAM;iBACP;gBAED,KAAK,OAAO,CAAC,CAAC;oBAEZ,6CAA6C;oBAC7C,2BAA2B;oBAE3B,uCAAuC;oBACvC,IAAG,YAAY,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE;wBACvC,OAAO;qBACR;oBAED,uDAAuD;oBACvD,MAAM,OAAO,GAAG,YAAY,CAAC,OAA0C,CAAC;oBAExE,0DAA0D;oBAC1D,IAAG,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE;wBACrC,OAAO;qBACR;oBAED,oDAAoD;oBACpD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAE3D,gDAAgD;oBAChD,IAAG,CAAC,SAAS,EAAE;wBACb,OAAO;qBACR;oBAED,2BAA2B;oBAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAA6B,CAAC;oBAE/D,oEAAoE;oBACpE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAEjE,IAAG,CAAC,aAAa,EAAE;wBACjB,OAAO;qBACR;oBAED,4BAA4B;oBAC5B,IAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,8BAA8B,EAAE,IAAI,CAAC,EAAE;wBAEvE,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;qBAC7E;oBAED,OAAO;oBAEP,MAAM;iBACP;gBAED,KAAK,OAAO,CAAC,CAAC;oBAEZ,oDAAoD;oBACpD,mBAAmB;oBACnB,2BAA2B;oBAE3B,2CAA2C;oBAC3C,IAAG,YAAY,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;wBAE1C,OAAO;qBACR;oBAED,uDAAuD;oBACvD,MAAM,OAAO,GAAG,YAAY,CAAC,OAA6B,CAAC;oBAE3D,+GAA+G;oBAC/G,IAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;wBAErF,OAAO;qBACR;oBAED,oDAAoD;oBACpD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAEnE,gDAAgD;oBAChD,IAAG,CAAC,SAAS,EAAE;wBAEb,OAAO;qBACR;oBAED,2BAA2B;oBAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAA4B,CAAC;oBAE9D,oEAAoE;oBACpE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAiB,CAAC;oBAEhF,IAAG,CAAC,YAAY,EAAE;wBAEhB,OAAO;qBACR;oBAED,gDAAgD;oBAChD,IAAG,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE;wBAEhH,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;qBACxD;oBAED,qDAAqD;oBACrD,IAAG,OAAO,CAAC,SAAS,EAAE;wBAEpB,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;qBACtD;oBAED,wDAAwD;oBACxD,IAAG,MAAA,OAAO,CAAC,mBAAmB,0CAAE,QAAQ,EAAE;wBAExC,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;qBAC9E;oBAED,MAAM;iBACP;gBAED,KAAK,KAAK,CAAC,CAAC;oBAEV,qDAAqD;oBACrD,kBAAkB;oBAClB,8CAA8C;oBAC9C,kDAAkD;oBAElD,2CAA2C;oBAC3C,IAAG,YAAY,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;wBAC1C,OAAO;qBACR;oBAED,+BAA+B;oBAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,OAA2B,CAAC;oBAEzD,gGAAgG;oBAChG,IAAG,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,EAAE;wBAC7B,OAAO;qBACR;oBAED,cAAc;oBACd,MAAA,IAAI,CAAC,GAAG,CAAC,UAAU,0CAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,UAAwC,CAAC,CAAC;oBAE3F,MAAM;iBACP;gBAED,KAAK,QAAQ,CAAC,CAAC;oBAEb,qDAAqD;oBACrD,kBAAkB;oBAClB,8CAA8C;oBAC9C,kDAAkD;oBAElD,2CAA2C;oBAC3C,IAAG,YAAY,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;wBAC1C,OAAO;qBACR;oBAED,+BAA+B;oBAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,OAA8B,CAAC;oBAE5D,mIAAmI;oBACnI,IAAG,CAAC,CAAC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;wBACtF,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC,IAAG,CAAC,CAAC,kBAAkB,IAAI,OAAO,CAAC;wBAC7F,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,qBAAqB,IAAI,OAAO,CAAC;wBACtG,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,kBAAkB,IAAI,OAAO,CAAC;wBACxG,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE;wBAEvB,OAAO;qBACR;oBAED,oDAAoD;oBACpD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAEnE,gDAAgD;oBAChD,IAAG,CAAC,SAAS,EAAE;wBACb,OAAO;qBACR;oBAED,2CAA2C;oBAC3C,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAwB,CAAC;oBAEnG,2BAA2B;oBAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAA6B,CAAC;oBAE/D,oEAAoE;oBACpE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAkB,CAAC;oBAElF,IAAG,CAAC,aAAa,EAAE;wBACjB,OAAO;qBACR;oBAED,gDAAgD;oBAChD,IAAG,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE;wBAEnH,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;qBAC9D;oBAED,cAAc;oBACd,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;oBAE7C,MAAM;iBAEP;gBAED;oBAEE,uDAAuD;oBACvD,OAAO;oBACP,MAAM;aACT;QACH,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;;YAEtC,IAAG,IAAI,CAAC,eAAe,EAAE;gBAEvB,MAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,0CAAE,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBACtE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qFAAqF;IAC7E,oBAAoB,CAAC,SAA4B,EAAE,aAA4B;QAErF,wCAAwC;QACxC,aAAa,CAAC,YAAY,EAAE,CAAC;IAC/B,CAAC;IAED,8CAA8C;IACvC,kBAAkB,CAAC,SAA4B,EAAE,UAAkB,EAAE,kBAA4B,EAAE;QAExG,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAA6B,CAAC;QAE/D,IAAG,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE;YACzB,OAAO;SACR;QAED,sDAAsD;QACtD,IAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,UAAU,EAAE;YAE5C,IAAI,CAAC,KAAK,CAAC,sCAAsC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YACpF,OAAO;SACR;QAED,yGAAyG;QACzG,6CAA6C;QAC7C,IAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE;YAEpE,IAAI,CAAC,KAAK,CAAC,8CAA8C,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5F,OAAO;SACR;QAED,uBAAuB;QACvB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;QAEzC,2FAA2F;QAC3F,IAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAE/B,OAAO;SACR;QAED,mEAAmE;QACnE,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAE1E,IAAG,aAAa,EAAE;YAEhB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;SACrE;IACH,CAAC;IAED,oCAAoC;IAC5B,mBAAmB,CAAC,SAA4B,EAAE,aAAsB,EAAE,kBAA4B,EAAE;;QAE9G,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAA6B,CAAC;QAE/D,oEAAoE;QACpE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAkB,CAAC;QAElF,IAAG,CAAC,aAAa,EAAE;YACjB,OAAO;SACR;QAED,sDAAsD;QACtD,IAAG,CAAC,cAAc,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE;YAC3E,OAAO;SACR;QAED,+BAA+B;QAC/B,uCAAuC;QACvC,4BAA4B;QAC5B,qIAAqI;QACrI,kEAAkE;QAClE,IAAG,CAAC,eAAe,CAAC,MAAM,KAAI,MAAA,aAAa,CAAC,MAAM,CAAC,IAAI,0CAAE,WAAW,CAAA;YAClE,CAAC,CAAC,CAAA,MAAA,aAAa,CAAC,MAAM,CAAC,IAAI,0CAAE,WAAW,CAAA,IAAI,eAAe,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;YAEvJ,uCAAuC;YACvC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAEjF,mFAAmF;YACnF,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,iDAA6B,CAAC,CAAC;YAExG,IAAG,cAAc,EAAE;gBACjB,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;aACvE;YAED,mEAAmE;YACnE,MAAA,IAAI,CAAC,GAAG,CAAC,IAAI,0CAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAEpD,yCAAyC;YACzC,IAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;gBACtD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAC3I;SACF;QAED,uDAAuD;QACvD,KAAI,MAAM,cAAc,IAAI,eAAe,EAAE;YAE3C,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,sDAAkC,GAAG,GAAG,GAAG,cAAc,CAAC,CAAC;YAE3I,IAAG,cAAc,EAAE;gBAEjB,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;aACvF;YAED,yEAAyE;YACzE,MAAA,IAAI,CAAC,GAAG,CAAC,IAAI,0CAAE,OAAO,CAAC,SAAS,EAAE,eAAe,GAAG,cAAc,EAAE,MAAM,CAAC,CAAC;SAC7E;QAED,+CAA+C;QAC/C,IAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAEhC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;;gBAE7C,mDAAmD;gBACnD,IAAG,CAAC,eAAe,CAAC,MAAM;oBACxB,CAAC,CAAC,CAAA,MAAA,aAAa,CAAC,MAAM,CAAC,IAAI,0CAAE,WAAW,CAAA,IAAI,eAAe,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;oBAEvJ,MAAM,iBAAiB,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBAE9E,IAAG,iBAAiB,EAAE;wBAEpB,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;wBAEtF,mFAAmF;wBACnF,MAAM,kBAAkB,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,iDAA6B,CAAC,CAAC;wBAE5G,IAAG,kBAAkB,EAAE;4BACrB,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;yBAC5E;wBAED,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;qBAC5E;oBAED,kDAAkD;oBAClD,MAAA,IAAI,CAAC,GAAG,CAAC,IAAI,0CAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;iBACtD;gBAED,kDAAkD;gBAClD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;SAChC;QAED,+DAA+D;QAC/D,IAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,mCAAmC,CAAC,EAAE;YAEtE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,mCAAmC,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;;gBAEnF,qDAAqD;gBACrD,KAAI,MAAM,cAAc,IAAI,eAAe,EAAE;oBAE3C,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,sDAAkC,GAAG,GAAG,GAAG,cAAc,CAAC,CAAC;oBAE3I,IAAG,cAAc,EAAE;wBACjB,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;qBACxF;oBAED,yEAAyE;oBACzE,MAAA,IAAI,CAAC,GAAG,CAAC,IAAI,0CAAE,OAAO,CAAC,SAAS,EAAE,eAAe,GAAG,cAAc,EAAE,OAAO,CAAC,CAAC;oBAE7E,IAAI,CAAC,KAAK,CAAC,0CAA0C,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;iBACzF;gBAED,kDAAkD;gBAClD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,mCAAmC,CAAC,CAAC;YAC5E,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;SAChC;IACH,CAAC;IAED,yEAAyE;IAClE,oBAAoB,CAAC,SAA4B,EAAE,QAAuB;;QAE/E,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAA6B,CAAC;QAE/D,IAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE;YACvB,OAAO;SACR;QAED,0HAA0H;QAC1H,IAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE;YAExC,IAAI,CAAC,KAAK,CAAC,uCAAuC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YACrF,OAAO;SACR;QAED,oHAAoH;QACpH,kCAAkC;QAClC,IAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE;YAElE,IAAI,CAAC,KAAK,CAAC,+CAA+C,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7F,OAAO;SACR;QAED,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QAErC,8CAA8C;QAC9C,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAExE,IAAG,CAAC,eAAe,EAAE;YACnB,OAAO;SACR;QAED,uFAAuF;QACvF,sDAAsD;QACtD,UAAU,CAAC,GAAG,EAAE;;YACd,MAAA,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,uBAAuB,CAAC,0CAC9E,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAC1F,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,qFAAqF;QACrF,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,mDAA+B,CAAC,CAAC;QAE1G,IAAG,cAAc,EAAE;YAEjB,mCAAmC;YACnC,IAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,wBAAwB,CAAC,EAAE;gBAE1D,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,wBAAwB,CAAC,CAAC,CAAC;gBACtE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,wBAAwB,CAAC,CAAC;aAChE;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAoB,CAAC;YAEpF,2BAA2B;YAC3B,IAAG,aAAa,EAAE;gBAEhB,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC;aAChC;YAED,mCAAmC;YACnC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAEtE,iDAAiD;YACjD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,wBAAwB,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;gBAExE,IAAG,aAAa,EAAE;oBAChB,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC;iBACjC;gBAED,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACvE,IAAI,CAAC,KAAK,CAAC,sCAAsC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBAEpF,kDAAkD;gBAClD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,wBAAwB,CAAC,CAAC;YACjE,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;SAC9B;QAED,kDAAkD;QAClD,MAAA,IAAI,CAAC,GAAG,CAAC,IAAI,0CAAE,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAEtD,IAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE;YACxD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;SAC/E;QAED,gCAAgC;QAChC,IAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,gBAAgB,CAAC,EAAE;YAElD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,gBAAgB,CAAC,CAAC;SACxD;QAED,4DAA4D;QAC5D,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,gBAAgB,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;;YAEhE,MAAA,IAAI,CAAC,GAAG,CAAC,IAAI,0CAAE,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAEvD,2CAA2C;YAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,gBAAgB,CAAC,CAAC;QACzD,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,4EAA4E;IACpE,sBAAsB,CAAC,SAA4B,EAAE,UAA0C;;QAErG,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAA6B,CAAC;QAE/D,IAAG,CAAC,MAAM,EAAE;YACV,OAAO;SACR;QAED,MAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAqB,0CAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IAC/F,CAAC;IAED,yDAAyD;IACjD,iBAAiB,CAAC,SAA4B,EAAE,UAAmB;QAEzE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAA4B,CAAC;QAE9D,IAAG,CAAC,MAAM,EAAE;YACV,OAAO;SACR;QAED,2CAA2C;QAC3C,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEtE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IAED,yDAAyD;IACjD,sBAAsB,CAAC,SAA4B,EAAE,UAAkB;QAE7E,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAA4B,CAAC;QAE9D,IAAG,CAAC,MAAM,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE;YAC9B,OAAO;SACR;QAED,2CAA2C;QAC3C,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEtE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,oDAAoD;IAC5C,aAAa,CAAC,SAA4B,EAAE,aAA4B;QAE9E,sCAAsC;QACtC,aAAa,CAAC,YAAY,EAAE,CAAC;IAC/B,CAAC;CACF;AAlwBD,4CAkwBC"}
1
+ {"version":3,"file":"protect-nvr-events.js","sourceRoot":"","sources":["../src/protect-nvr-events.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProtectRecordingDelegate = void 0;
4
- const protect_ffmpeg_1 = require("./protect-ffmpeg");
4
+ const protect_ffmpeg_record_1 = require("./protect-ffmpeg-record");
5
5
  const protect_timeshift_1 = require("./protect-timeshift");
6
6
  // Camera recording delegate implementation for Protect.
7
7
  class ProtectRecordingDelegate {
@@ -9,7 +9,7 @@ class ProtectRecordingDelegate {
9
9
  var _a;
10
10
  this.accessory = protectCamera.accessory;
11
11
  this.api = protectCamera.api;
12
- this.timeshift = new protect_timeshift_1.ProtectTimeshiftBuffer(protectCamera);
12
+ this.hap = protectCamera.api.hap;
13
13
  this.debug = protectCamera.platform.debug.bind(protectCamera.platform);
14
14
  this.ffmpegStream = null;
15
15
  this.isInitialized = false;
@@ -19,12 +19,14 @@ class ProtectRecordingDelegate {
19
19
  this.nvr = protectCamera.nvr;
20
20
  this.protectCamera = protectCamera;
21
21
  this.maxRecordingDuration = parseInt((_a = this.nvr.optionGet(this.accessory.context.device, "Video.HKSV.Recording.MaxDuration")) !== null && _a !== void 0 ? _a : "0");
22
- this.recordedSegments = 0;
22
+ this.transmittedSegments = 0;
23
23
  this.rtspEntry = null;
24
+ this.timeshift = new protect_timeshift_1.ProtectTimeshiftBuffer(protectCamera);
24
25
  this.transmitListener = null;
25
26
  }
26
27
  // Process HomeKit requests to activate or deactivate HKSV recording capabilities for a camera.
27
28
  async updateRecordingActive(active) {
29
+ var _a;
28
30
  // If we are no longer recording, stop the livestream.
29
31
  if (!active) {
30
32
  this.timeshift.stop();
@@ -32,7 +34,12 @@ class ProtectRecordingDelegate {
32
34
  if (this.isRecording !== active) {
33
35
  this.log.info("%s: Disabling HomeKit Secure Video event recording.", this.name());
34
36
  }
37
+ // Disable recording.
35
38
  this._isRecording = active;
39
+ // Turn off any potential inflight motion detection. Strictly speaking, this shouldn't be needed since any inflight
40
+ // motion sensor events will clear themselves. That said, we play it safe just the same.
41
+ (_a = this.accessory.getService(this.hap.Service.MotionSensor)) === null || _a === void 0 ? void 0 : _a.updateCharacteristic(this.hap.Characteristic.MotionDetected, false);
42
+ // We're done.
36
43
  return;
37
44
  }
38
45
  // We have no recording configuration available yet. Set our desired state and we're done.
@@ -93,29 +100,25 @@ class ProtectRecordingDelegate {
93
100
  // Handle the actual recording stream request.
94
101
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
95
102
  async *handleRecordingStreamRequest(streamId) {
96
- // If we've explicitly disabled HKSV recording, we're done right now.
97
- if (!this.accessory.context.hksvRecording) {
98
- const streamHeader = await this.timeshift.getStreamHeader();
99
- if (streamHeader) {
100
- yield { data: streamHeader, isLast: true };
101
- return;
102
- }
103
- // We should never get to this point, but in case we do, this is a failsafe to ensure that no video
104
- // recording can ever take place if we've disabled it through the HKSV recording switch accessory.
105
- // It will generate a warning in Homebridge that can be ignored, but it will ensure nothing can be recorded.
106
- yield { data: Buffer.alloc(0), isLast: true };
107
- return;
108
- }
109
- // Start transmitting our timeshift buffer and process it through FFmpeg.
110
- if (!this.startTransmitting() || !this.ffmpegStream) {
111
- // Something went wrong, so we gracefully tell HomeKit we have no packets to transmit and return.
103
+ var _a, _b;
104
+ // If we've explicitly disabled HKSV recording, we're done right now. Otherwise, start transmitting our timeshift
105
+ // buffer and process it through FFmpeg.
106
+ if (!this.accessory.context.hksvRecording || !this.startTransmitting() || !this.ffmpegStream) {
107
+ // Stop transmitting, if needed. If HKSV recording has been disabled explicitly, it should never start in the first place.
112
108
  this.stopTransmitting();
113
- yield { data: Buffer.alloc(0), isLast: true };
109
+ // Something's gone wrong, or we've disabled HKSV recording. In either event, we send an fMP4 stream header
110
+ // back to HKSV and exit as cleanly as we can. If we can't get the stream header, we still send an empty segment
111
+ // to HKSV - this will still generate a warning in Homebridge that can be ignored.
112
+ const streamHeader = (_a = (await this.timeshift.getStreamHeader())) !== null && _a !== void 0 ? _a : Buffer.alloc(0);
113
+ yield { data: streamHeader, isLast: true };
114
114
  return;
115
115
  }
116
- for await (const segment of this.ffmpegStream.generator()) {
117
- let isLastSegment = false;
118
- // If we've stopped transmitting - make sure we don't send anything else.
116
+ let isLastSegment = false;
117
+ let segmentCount = 0;
118
+ // Process our FFmpeg-generated segments and send them back to HKSV.
119
+ for await (const segment of this.ffmpegStream.segmentGenerator()) {
120
+ isLastSegment = false;
121
+ // If we've stopped transmitting, we're done.
119
122
  if (!this.timeshift.isTransmitting) {
120
123
  return;
121
124
  }
@@ -124,17 +127,38 @@ class ProtectRecordingDelegate {
124
127
  continue;
125
128
  }
126
129
  // If we've exceeded a user-configured maximum recording duration, let HomeKit know we're stopping.
127
- if (this.maxRecordingDuration && ((this.recordedSegments * this.timeshift.segmentLength) / 1000) > this.maxRecordingDuration) {
130
+ if (this.maxRecordingDuration && ((this.transmittedSegments * this.timeshift.segmentLength) / 1000) > this.maxRecordingDuration) {
128
131
  isLastSegment = true;
129
132
  }
133
+ // Send HKSV the segment.
130
134
  yield {
131
135
  data: segment,
132
136
  isLast: isLastSegment
133
137
  };
138
+ // Keep track of how many segments we've sent to HKSV.
139
+ segmentCount++;
140
+ // If we've sent the last segment, we're done.
134
141
  if (isLastSegment) {
135
142
  return;
136
143
  }
137
144
  }
145
+ // If we're done transmitting, we're done returning segments to HKSV.
146
+ if (!this.timeshift.isTransmitting) {
147
+ return;
148
+ }
149
+ // Something's gone wrong and we've sent HKSV no segments. Let's send an fMP4 stream header back to HKSV and exit
150
+ // as cleanly as we can. If we can't get the stream header, we send an empty segment to HKSV - this will still
151
+ //generate a warning in Homebridge that can be ignored.
152
+ if (!segmentCount) {
153
+ const streamHeader = (_b = (await this.timeshift.getStreamHeader())) !== null && _b !== void 0 ? _b : Buffer.alloc(0);
154
+ yield { data: streamHeader, isLast: true };
155
+ return;
156
+ }
157
+ // Something likely happened to FFmpeg and we didn't send out a final segment. Tell HKSV we're really done.
158
+ if (!isLastSegment) {
159
+ yield { data: Buffer.alloc(0), isLast: true };
160
+ return;
161
+ }
138
162
  }
139
163
  // Receive an acknowledgement from HomeKit that it's seen an end-of-stream packet from us.
140
164
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -168,10 +192,10 @@ class ProtectRecordingDelegate {
168
192
  // fMP4 packets. We treat this the same was a DVR works where you can pause live television, but it continues to
169
193
  // buffer what's being broadcast until you're ready to watch it. This is the same idea.
170
194
  // Keep track of how many fMP4 segments we are feeding FFmpeg.
171
- this.recordedSegments = 0;
195
+ this.transmittedSegments = 0;
172
196
  // Check to see if the user has audio enabled or disabled for recordings.
173
197
  const isAudioActive = ((_a = this.protectCamera.stream.controller.recordingManagement) === null || _a === void 0 ? void 0 : _a.recordingManagementService.getCharacteristic(this.api.hap.Characteristic.RecordingAudioActive).value) === 1 ? true : false;
174
- this.ffmpegStream = new protect_ffmpeg_1.FfmpegRecordingProcess(this.protectCamera, this.recordingConfig, isAudioActive);
198
+ this.ffmpegStream = new protect_ffmpeg_record_1.FfmpegRecordingProcess(this.protectCamera, this.recordingConfig, isAudioActive);
175
199
  // Start the livestream.
176
200
  const timeshiftedSeconds = this.timeshift.length / 1000;
177
201
  // Let the timeshift buffer know it's time to transmit and continue timeshifting.
@@ -181,19 +205,27 @@ class ProtectRecordingDelegate {
181
205
  // Listen in for events from the timeshift buffer and feed FFmpeg. This looks simple, conceptually,
182
206
  // but there's a lot going on here.
183
207
  this.transmitListener = (segment) => {
184
- var _a, _b;
185
- (_b = (_a = this.ffmpegStream) === null || _a === void 0 ? void 0 : _a.stdin) === null || _b === void 0 ? void 0 : _b.write(segment);
208
+ var _a, _b, _c, _d, _e, _f;
186
209
  // We don't want the fMP4 ftyp or moov boxes accounted for in our recording statistics so
187
210
  // let's filter them out.
188
211
  if (!seenFtyp && this.timeshift.isFtyp(segment)) {
189
212
  seenFtyp = true;
213
+ (_b = (_a = this.ffmpegStream) === null || _a === void 0 ? void 0 : _a.stdin) === null || _b === void 0 ? void 0 : _b.write(segment);
190
214
  return;
191
215
  }
192
216
  if (!seenMoov && this.timeshift.isMoov(segment)) {
193
217
  seenMoov = true;
218
+ (_d = (_c = this.ffmpegStream) === null || _c === void 0 ? void 0 : _c.stdin) === null || _d === void 0 ? void 0 : _d.write(segment);
219
+ return;
220
+ }
221
+ // We don't want to send the ftyp or moov boxes more than once - FFmpeg will get confused if you do, plus
222
+ // it's wrong and you should only send the fMP4 stream header information once.
223
+ if (this.timeshift.isFtyp(segment) || this.timeshift.isMoov(segment)) {
194
224
  return;
195
225
  }
196
- this.recordedSegments++;
226
+ // Send the segment to FFmpeg for processing and update our statistics.
227
+ (_f = (_e = this.ffmpegStream) === null || _e === void 0 ? void 0 : _e.stdin) === null || _f === void 0 ? void 0 : _f.write(segment);
228
+ this.transmittedSegments++;
197
229
  };
198
230
  this.timeshift.on("segment", this.transmitListener);
199
231
  // Inform the user.
@@ -215,7 +247,9 @@ class ProtectRecordingDelegate {
215
247
  }
216
248
  // Inform the user.
217
249
  if (this.accessory.context.hksvRecording) {
218
- this.log.info("%s: HomeKit Secure Video has recorded a %s second motion event.", this.name(), Math.round((this.recordedSegments * this.timeshift.segmentLength) / 1000));
250
+ // Calculate approximately how many seconds we've recorded.
251
+ const recordedSeconds = (this.transmittedSegments * this.timeshift.segmentLength) / 1000;
252
+ this.log.info("%s: HomeKit Secure Video has recorded a %s second motion event.", this.name(), recordedSeconds < 1 ? recordedSeconds : Math.round(recordedSeconds));
219
253
  }
220
254
  // If we have a reason for stopping defined, and it's noteworthy, inform the user.
221
255
  let reasonDescription;
@@ -1 +1 @@
1
- {"version":3,"file":"protect-record.js","sourceRoot":"","sources":["../src/protect-record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protect-record.js","sourceRoot":"","sources":["../src/protect-record.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ProtectStreamingDelegate = void 0;
7
7
  const unifi_protect_1 = require("unifi-protect");
8
8
  const settings_1 = require("./settings");
9
- const protect_ffmpeg_1 = require("./protect-ffmpeg");
9
+ const protect_ffmpeg_stream_1 = require("./protect-ffmpeg-stream");
10
10
  const protect_record_1 = require("./protect-record");
11
11
  const protect_rtp_1 = require("./protect-rtp");
12
12
  const ws_1 = __importDefault(require("ws"));
@@ -30,7 +30,10 @@ class ProtectStreamingDelegate {
30
30
  this.pendingSessions = {};
31
31
  this.platform = protectCamera.platform;
32
32
  this.rtspEntry = null;
33
+ this.savedBitrate = 0;
33
34
  this.snapshotCache = {};
35
+ this.verboseFfmpeg = false;
36
+ this.verboseFfmpegTimer = null;
34
37
  this.videoEncoder = this.config.videoEncoder || "libx264";
35
38
  this.videoProcessor = this.config.videoProcessor || ffmpeg_for_homebridge_1.default || "ffmpeg";
36
39
  // Setup for HKSV, if enabled.
@@ -140,7 +143,7 @@ class ProtectStreamingDelegate {
140
143
  // Check if audio support is enabled.
141
144
  const isAudioEnabled = this.protectCamera.nvr.optionEnabled(cameraConfig, "Audio", true, request.targetAddress);
142
145
  // We need to check for AAC support because it's going to determine whether we support audio.
143
- const hasLibFdk = isAudioEnabled && (await protect_ffmpeg_1.FfmpegStreamingProcess.codecEnabled(this.videoProcessor, "libfdk_aac", this.log));
146
+ const hasLibFdk = isAudioEnabled && (await protect_ffmpeg_stream_1.FfmpegStreamingProcess.codecEnabled(this.videoProcessor, "libfdk_aac", this.log));
144
147
  // Setup our audio plumbing.
145
148
  const audioIncomingRtcpPort = (await (0, camera_utils_1.reservePorts)({ count: 1 }))[0];
146
149
  const audioIncomingPort = (hasLibFdk && this.protectCamera.twoWayAudio) ? (await (0, camera_utils_1.reservePorts)({ count: 1 }))[0] : -1;
@@ -210,7 +213,7 @@ class ProtectStreamingDelegate {
210
213
  }
211
214
  // Launch the Protect video (and audio) stream.
212
215
  async startStream(request, callback) {
213
- var _a, _b, _c, _d, _e, _f;
216
+ var _a, _b, _c, _d, _e;
214
217
  const cameraConfig = this.protectCamera.accessory.context.device;
215
218
  const sessionInfo = this.pendingSessions[request.sessionID];
216
219
  const sdpIpVersion = sessionInfo.addressVersion === "ipv6" ? "IP6 " : "IP4";
@@ -229,6 +232,13 @@ class ProtectStreamingDelegate {
229
232
  callback(new Error(this.name() + ": " + errorMessage));
230
233
  return;
231
234
  }
235
+ // Save our current bitrate before we modify it, but only if we're the first stream to catch concurrent streaming clients.
236
+ if (!this.savedBitrate) {
237
+ this.savedBitrate = this.protectCamera.getBitrate(this.rtspEntry.channel.id);
238
+ if (this.savedBitrate < 0) {
239
+ this.savedBitrate = 0;
240
+ }
241
+ }
232
242
  // Set the desired bitrate in Protect. We don't need to for this to return, because Protect
233
243
  // will adapt the stream once it processes the configuration change.
234
244
  await this.protectCamera.setBitrate(this.rtspEntry.channel.id, request.video.max_bit_rate * 1000);
@@ -347,14 +357,14 @@ class ProtectStreamingDelegate {
347
357
  "&localrtcpport=" + sessionInfo.audioPort.toString() + "&pkt_size=" + audiomtu.toString());
348
358
  }
349
359
  // Additional logging, but only if we're debugging.
350
- if (this.platform.verboseFfmpeg) {
360
+ if (this.platform.verboseFfmpeg || this.verboseFfmpeg) {
351
361
  ffmpegArgs.push("-loglevel", "level+verbose");
352
362
  }
353
363
  if (this.platform.config.debugAll) {
354
364
  ffmpegArgs.push("-loglevel", "level+debug");
355
365
  }
356
366
  // Combine everything and start an instance of FFmpeg.
357
- const ffmpegStream = new protect_ffmpeg_1.FfmpegStreamingProcess(this, request.sessionID, ffmpegArgs, (sessionInfo.hasLibFdk && this.protectCamera.twoWayAudio) ? undefined : { addressVersion: sessionInfo.addressVersion, port: sessionInfo.videoReturnPort }, callback);
367
+ const ffmpegStream = new protect_ffmpeg_stream_1.FfmpegStreamingProcess(this, request.sessionID, ffmpegArgs, (sessionInfo.hasLibFdk && this.protectCamera.twoWayAudio) ? undefined : { addressVersion: sessionInfo.addressVersion, port: sessionInfo.videoReturnPort }, callback);
358
368
  // Some housekeeping for our FFmpeg and demuxer sessions.
359
369
  this.ongoingSessions[request.sessionID] = { ffmpeg: [ffmpegStream], rtpDemuxer: sessionInfo.rtpDemuxer };
360
370
  delete this.pendingSessions[request.sessionID];
@@ -418,7 +428,7 @@ class ProtectStreamingDelegate {
418
428
  "pipe:1"
419
429
  ];
420
430
  // Additional logging, but only if we're debugging.
421
- if (this.platform.verboseFfmpeg) {
431
+ if (this.platform.verboseFfmpeg || this.verboseFfmpeg) {
422
432
  ffmpegReturnAudioCmd.push("-loglevel", "level+verbose");
423
433
  }
424
434
  if (this.platform.config.debugAll) {
@@ -455,25 +465,13 @@ class ProtectStreamingDelegate {
455
465
  });
456
466
  }
457
467
  // Fire up FFmpeg.
458
- const ffmpegReturnAudio = new protect_ffmpeg_1.FfmpegStreamingProcess(this, request.sessionID, ffmpegReturnAudioCmd);
459
- // Make sure we terminate the talkback websocket when we're done.
460
- (_c = ffmpegReturnAudio.stdout) === null || _c === void 0 ? void 0 : _c.once("close", () => {
461
- var _a;
462
- // Make sure we catch any stray connections that may be too slow to open.
463
- isTalkbackLive = false;
464
- // Close the websocket.
465
- if (((ws === null || ws === void 0 ? void 0 : ws.readyState) === ws_1.default.CLOSING) || ((ws === null || ws === void 0 ? void 0 : ws.readyState) === ws_1.default.OPEN)) {
466
- ws === null || ws === void 0 ? void 0 : ws.terminate();
467
- }
468
- (_a = ffmpegReturnAudio.stdout) === null || _a === void 0 ? void 0 : _a.removeListener("data", dataListener);
469
- });
468
+ const ffmpegReturnAudio = new protect_ffmpeg_stream_1.FfmpegStreamingProcess(this, request.sessionID, ffmpegReturnAudioCmd);
470
469
  // Setup housekeeping for the twoway FFmpeg session.
471
470
  this.ongoingSessions[request.sessionID].ffmpeg.push(ffmpegReturnAudio);
472
471
  // Feed the SDP session description to FFmpeg on stdin.
473
- (_d = ffmpegReturnAudio.stdin) === null || _d === void 0 ? void 0 : _d.write(sdpReturnAudio);
474
- (_e = ffmpegReturnAudio.stdin) === null || _e === void 0 ? void 0 : _e.end();
472
+ (_c = ffmpegReturnAudio.stdin) === null || _c === void 0 ? void 0 : _c.end(sdpReturnAudio + "\n");
475
473
  // Send the audio.
476
- (_f = ffmpegReturnAudio.stdout) === null || _f === void 0 ? void 0 : _f.on("data", dataListener = (data) => {
474
+ (_d = ffmpegReturnAudio.stdout) === null || _d === void 0 ? void 0 : _d.on("data", dataListener = (data) => {
477
475
  ws === null || ws === void 0 ? void 0 : ws.send(data, error => {
478
476
  // This happens when an error condition is encountered on sending data to the websocket.
479
477
  // We assume the worst and close our talkback channel.
@@ -482,6 +480,17 @@ class ProtectStreamingDelegate {
482
480
  }
483
481
  });
484
482
  });
483
+ // Make sure we terminate the talkback websocket when we're done.
484
+ (_e = ffmpegReturnAudio.ffmpegProcess) === null || _e === void 0 ? void 0 : _e.once("exit", () => {
485
+ var _a;
486
+ // Make sure we catch any stray connections that may be too slow to open.
487
+ isTalkbackLive = false;
488
+ // Close the websocket.
489
+ if (((ws === null || ws === void 0 ? void 0 : ws.readyState) === ws_1.default.CLOSING) || ((ws === null || ws === void 0 ? void 0 : ws.readyState) === ws_1.default.OPEN)) {
490
+ ws === null || ws === void 0 ? void 0 : ws.terminate();
491
+ }
492
+ (_a = ffmpegReturnAudio.stdout) === null || _a === void 0 ? void 0 : _a.removeListener("data", dataListener);
493
+ });
485
494
  }
486
495
  catch (error) {
487
496
  this.log.error("%s: Unable to connect to the return audio channel: %s", this.name(), error);
@@ -592,8 +601,18 @@ class ProtectStreamingDelegate {
592
601
  delete this.pendingSessions[sessionId];
593
602
  delete this.ongoingSessions[sessionId];
594
603
  // If we've completed all streaming sessions, restore any changed settings, such as bitrate, for HomeKit Secure Video.
595
- if (((_b = this.hksv) === null || _b === void 0 ? void 0 : _b.isRecording) && !this.ongoingSessions.length) {
596
- await this.hksv.updateRecordingActive(this.hksv.isRecording);
604
+ if (!this.ongoingSessions.length) {
605
+ if ((_b = this.hksv) === null || _b === void 0 ? void 0 : _b.isRecording) {
606
+ // Restore HKSV settings.
607
+ await this.hksv.updateRecordingActive(this.hksv.isRecording);
608
+ }
609
+ else if (this.savedBitrate) {
610
+ // Restore our original bitrate.
611
+ if (this.rtspEntry) {
612
+ await this.protectCamera.setBitrate(this.rtspEntry.channel.id, this.savedBitrate);
613
+ }
614
+ this.savedBitrate = 0;
615
+ }
597
616
  }
598
617
  }
599
618
  catch (error) {
@@ -615,14 +634,13 @@ class ProtectStreamingDelegate {
615
634
  }
616
635
  // Set a timer to revert back to normal behavior.
617
636
  this.verboseFfmpegTimer = setTimeout(() => {
618
- this.platform.verboseFfmpeg = false;
619
- this.log.info("Returning FFmpeg logging output to normal levels.");
637
+ this.verboseFfmpeg = false;
638
+ this.log.info("%s: Returning FFmpeg logging output to normal levels.", this.name());
620
639
  // Clear out the old timer.
621
640
  this.verboseFfmpegTimer = null;
622
641
  }, settings_1.PROTECT_FFMPEG_VERBOSE_DURATION * 60 * 1000);
623
- this.log.info("FFmpeg exited unexpectedly." +
624
- " Increasing logging output of FFmpeg for the next %s minutes to provide additional detail for future attempts to stream video.", settings_1.PROTECT_FFMPEG_VERBOSE_DURATION);
625
- this.platform.verboseFfmpeg = true;
642
+ this.log.info("%s: FFmpeg exited unexpectedly. Increasing logging output of FFmpeg for the next %s minutes to provide additional detail for future attempts to stream video.", this.name(), settings_1.PROTECT_FFMPEG_VERBOSE_DURATION);
643
+ this.verboseFfmpeg = true;
626
644
  }
627
645
  }
628
646
  exports.ProtectStreamingDelegate = ProtectStreamingDelegate;