@camera.ui/server 0.0.5 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/dist/interface/assets/{@tanstack-BqH4GyO-.js → @tanstack-B-9PO-kT.js} +1 -1
  2. package/dist/interface/assets/{@vee-validate-DCBdnGo-.js → @vee-validate-D_G0ehOl.js} +1 -1
  3. package/dist/interface/assets/{@vue-C7-KaDG4.js → @vue-C10tA4b9.js} +6 -6
  4. package/dist/interface/assets/{@vueform-arggO0eF.js → @vueform-Bj73kRPS.js} +1 -1
  5. package/dist/interface/assets/{@vueuse-C3WMTDqL.js → @vueuse-BPeqNGoM.js} +1 -1
  6. package/dist/interface/assets/Account-MEaGtu1D.js +1 -0
  7. package/dist/interface/assets/Adminpanel-D1ycltxf.js +1 -0
  8. package/dist/interface/assets/Appearance-Jlzp_P21.js +1 -0
  9. package/dist/interface/assets/Backup-1-ju9NDo.js +1 -0
  10. package/dist/interface/assets/Camera-BOu5dUel.js +1 -0
  11. package/dist/interface/assets/Cameras-C7eUXdZk.js +1 -0
  12. package/dist/interface/assets/Cameras-tmTzi1M6.css +1 -0
  13. package/dist/interface/assets/Camview-CEgwGCGR.js +1 -0
  14. package/dist/interface/assets/{Camview-vUAs5YHU.css → Camview-CWTrsoY0.css} +1 -1
  15. package/dist/interface/assets/Config-Dt-etQ3h.js +1 -0
  16. package/dist/interface/assets/{Console-Caz7y-T0.js → Console-FCve5CKy.js} +2 -2
  17. package/dist/interface/assets/FirstSteps-DLkKDSe9.js +1 -0
  18. package/dist/interface/assets/{NewCamera-B9t-0NCc.js → NewCamera-Cc1X79Ns.js} +2 -2
  19. package/dist/interface/assets/Plugin-CnQjafMC.js +1 -0
  20. package/dist/interface/assets/{Plugin-BSHKKjrl.css → Plugin-DzKKCoqQ.css} +1 -1
  21. package/dist/interface/assets/Plugins-B8gCgxOx.css +1 -0
  22. package/dist/interface/assets/Plugins-CwyUdMlv.js +1 -0
  23. package/dist/interface/assets/Recordings-Boeev1lV.js +1 -0
  24. package/dist/interface/assets/Recordings-D5ta7AYS.js +1 -0
  25. package/dist/interface/assets/Settings-Cvm2jnBr.js +1 -0
  26. package/dist/interface/assets/System-fHQ7XKri.js +1 -0
  27. package/dist/interface/assets/User-5o1VKizc.js +1 -0
  28. package/dist/interface/assets/VConfigEditor.vue_vue_type_script_setup_true_lang-C_95ELTZ.js +2 -0
  29. package/dist/interface/assets/VConsole-BHy92Ws0.js +1 -0
  30. package/dist/interface/assets/VConsole-MV9pQtJj.css +1 -0
  31. package/dist/interface/assets/{VPlayer-YdRn97Bs.js → VPlayer-LX5HGLrY.js} +1 -1
  32. package/dist/interface/assets/{VPluginCard--3bx6UJb.js → VPluginCard-CFpg0LM4.js} +2 -2
  33. package/dist/interface/assets/VPluginCard-Fl0AYmnF.css +1 -0
  34. package/dist/interface/assets/main-BCWSiwnj.js +9 -0
  35. package/dist/interface/assets/{main-B3IVLctZ.css → main-CQNVVncO.css} +1 -1
  36. package/dist/interface/assets/{pinia-D8MtiGcH.js → pinia-CitQ5b66.js} +2 -2
  37. package/dist/interface/assets/{plugins-Bf03y242.js → plugins-D80RNVmI.js} +1 -1
  38. package/dist/interface/assets/qrcode-SHonoxyK.js +8 -0
  39. package/dist/interface/assets/{system-BONnDA4y.js → system-CS_ZOs3_.js} +1 -1
  40. package/dist/interface/assets/{ui-CNpIJotI.js → ui-CHKoHLl-.js} +1 -1
  41. package/dist/interface/assets/{v-calendar-uh0aTGqP.js → v-calendar-C-8W4FeM.js} +1 -1
  42. package/dist/interface/assets/{vee-validate-D3FqbChK.js → vee-validate-Ck3I2guh.js} +1 -1
  43. package/dist/interface/assets/{vue-i18n-1AU8MPys.js → vue-i18n-DuCDz9TJ.js} +1 -1
  44. package/dist/interface/assets/{vue-inline-svg-2DDwYW6V.js → vue-inline-svg-C2gR6nRD.js} +1 -1
  45. package/dist/interface/assets/{vue-router-DfeQ8s4I.js → vue-router-OPGDMnws.js} +1 -1
  46. package/dist/interface/assets/{vue3-dnd-BwxcSU9Z.js → vue3-dnd-Hf295yge.js} +1 -1
  47. package/dist/interface/assets/{vue3-toastify-Ul-rf53I.js → vue3-toastify-DQr2dOCx.js} +1 -1
  48. package/dist/interface/assets/vuetify-CrcT8VHB.js +5 -0
  49. package/dist/interface/index.html +14 -15
  50. package/dist/interface/sw.js +1 -1
  51. package/dist/server/bin/cui-service.d.ts +1 -0
  52. package/dist/server/bin/cui-service.js +41 -9
  53. package/dist/server/bin/cui-service.js.map +1 -1
  54. package/dist/server/package.json +9 -8
  55. package/dist/server/requirements.txt +2 -3
  56. package/dist/server/src/api/controllers/cameras.controller.js +2 -2
  57. package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
  58. package/dist/server/src/api/controllers/plugins.controller.js +7 -6
  59. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  60. package/dist/server/src/api/go2rtc/api/streams.d.ts +4 -4
  61. package/dist/server/src/api/go2rtc/api/streams.js +2 -24
  62. package/dist/server/src/api/go2rtc/api/streams.js.map +1 -1
  63. package/dist/server/src/api/go2rtc/types.d.ts +6 -2
  64. package/dist/server/src/api/schemas/go2rtc.schema.d.ts +5 -5
  65. package/dist/server/src/api/services/cameras.service.d.ts +6 -5
  66. package/dist/server/src/api/services/cameras.service.js +72 -59
  67. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  68. package/dist/server/src/api/services/plugins.service.js +11 -13
  69. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  70. package/dist/server/src/api.d.ts +2 -2
  71. package/dist/server/src/camera/controller.d.ts +9 -4
  72. package/dist/server/src/camera/controller.js +21 -7
  73. package/dist/server/src/camera/controller.js.map +1 -1
  74. package/dist/server/src/camera/device.d.ts +15 -3
  75. package/dist/server/src/camera/device.js.map +1 -1
  76. package/dist/server/src/camera/index.d.ts +18 -39
  77. package/dist/server/src/camera/index.js +137 -165
  78. package/dist/server/src/camera/index.js.map +1 -1
  79. package/dist/server/src/camera/interfaces/camera.d.ts +0 -1
  80. package/dist/server/src/camera/interfaces/camera.js +0 -8
  81. package/dist/server/src/camera/interfaces/camera.js.map +1 -1
  82. package/dist/server/src/camera/streaming/werift-session.d.ts +10 -1
  83. package/dist/server/src/camera/streaming/werift-session.js +16 -1
  84. package/dist/server/src/camera/streaming/werift-session.js.map +1 -1
  85. package/dist/server/src/camera/types.d.ts +0 -1
  86. package/dist/server/src/camera/types.js.map +1 -1
  87. package/dist/server/src/camera/videoFrame.d.ts +3 -3
  88. package/dist/server/src/camera/videoFrame.js +6 -7
  89. package/dist/server/src/camera/videoFrame.js.map +1 -1
  90. package/dist/server/src/decoder/types.d.ts +4 -9
  91. package/dist/server/src/decoder/worker.d.ts +3 -5
  92. package/dist/server/src/decoder/worker.js +40 -64
  93. package/dist/server/src/decoder/worker.js.map +1 -1
  94. package/dist/server/src/go2rtc/index.js +1 -1
  95. package/dist/server/src/go2rtc/index.js.map +1 -1
  96. package/dist/server/src/index.d.ts +3 -3
  97. package/dist/server/src/main.js +1 -2
  98. package/dist/server/src/main.js.map +1 -1
  99. package/dist/server/src/nats/connection.d.ts +17 -0
  100. package/dist/server/src/nats/connection.js +66 -0
  101. package/dist/server/src/nats/connection.js.map +1 -0
  102. package/dist/server/src/nats/error.d.ts +9 -0
  103. package/dist/server/src/nats/error.js +11 -0
  104. package/dist/server/src/nats/error.js.map +1 -0
  105. package/dist/server/src/nats/index.d.ts +6 -4
  106. package/dist/server/src/nats/index.js +22 -17
  107. package/dist/server/src/nats/index.js.map +1 -1
  108. package/dist/server/src/nats/messageQueue.d.ts +7 -4
  109. package/dist/server/src/nats/messageQueue.js +43 -59
  110. package/dist/server/src/nats/messageQueue.js.map +1 -1
  111. package/dist/server/src/nats/proxy/cameraDevice.js +19 -24
  112. package/dist/server/src/nats/proxy/cameraDevice.js.map +1 -1
  113. package/dist/server/src/nats/proxy/deviceManager.d.ts +2 -2
  114. package/dist/server/src/nats/proxy/deviceManager.js +4 -14
  115. package/dist/server/src/nats/proxy/deviceManager.js.map +1 -1
  116. package/dist/server/src/nats/server.js +4 -10
  117. package/dist/server/src/nats/server.js.map +1 -1
  118. package/dist/server/src/nats/subscription.d.ts +12 -0
  119. package/dist/server/src/nats/subscription.js +21 -0
  120. package/dist/server/src/nats/subscription.js.map +1 -0
  121. package/dist/server/src/nats/types.d.ts +25 -40
  122. package/dist/server/src/nats/types.js +1 -10
  123. package/dist/server/src/nats/types.js.map +1 -1
  124. package/dist/server/src/nats/utils.d.ts +2 -4
  125. package/dist/server/src/nats/utils.js +3 -3
  126. package/dist/server/src/nats/utils.js.map +1 -1
  127. package/dist/server/src/plugins/index.d.ts +3 -5
  128. package/dist/server/src/plugins/index.js +54 -141
  129. package/dist/server/src/plugins/index.js.map +1 -1
  130. package/dist/server/src/plugins/plugin.d.ts +4 -13
  131. package/dist/server/src/plugins/plugin.js +40 -90
  132. package/dist/server/src/plugins/plugin.js.map +1 -1
  133. package/dist/server/src/plugins/types.d.ts +4 -0
  134. package/dist/server/src/plugins/types.js.map +1 -1
  135. package/dist/server/src/plugins/worker.d.ts +1 -1
  136. package/dist/server/src/plugins/worker.js +52 -66
  137. package/dist/server/src/plugins/worker.js.map +1 -1
  138. package/dist/server/src/polyglot/node/decoder/child.js +87 -159
  139. package/dist/server/src/polyglot/node/decoder/child.js.map +1 -1
  140. package/dist/server/src/polyglot/node/decoder/imageUtils.d.ts +1 -1
  141. package/dist/server/src/polyglot/node/plugins/cameraStorage.d.ts +2 -2
  142. package/dist/server/src/polyglot/node/plugins/cameraStorage.js.map +1 -1
  143. package/dist/server/src/polyglot/node/plugins/child.d.ts +1 -1
  144. package/dist/server/src/polyglot/node/plugins/child.js +34 -60
  145. package/dist/server/src/polyglot/node/plugins/child.js.map +1 -1
  146. package/dist/server/src/polyglot/node/plugins/{config.js → configService.js} +1 -1
  147. package/dist/server/src/polyglot/node/plugins/configService.js.map +1 -0
  148. package/dist/server/src/polyglot/node/plugins/{api.d.ts → pluginApi.d.ts} +9 -12
  149. package/dist/server/src/polyglot/node/plugins/pluginApi.js +34 -0
  150. package/dist/server/src/polyglot/node/plugins/pluginApi.js.map +1 -0
  151. package/dist/server/src/polyglot/node/plugins/{logger.d.ts → pluginLogger.d.ts} +2 -0
  152. package/dist/server/src/polyglot/node/plugins/pluginLogger.js +89 -0
  153. package/dist/server/src/polyglot/node/plugins/pluginLogger.js.map +1 -0
  154. package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.d.ts +8 -11
  155. package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.js +67 -129
  156. package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.js.map +1 -1
  157. package/dist/server/src/polyglot/node/plugins/proxy/deviceManager.d.ts +6 -8
  158. package/dist/server/src/polyglot/node/plugins/proxy/deviceManager.js +15 -43
  159. package/dist/server/src/polyglot/node/plugins/proxy/deviceManager.js.map +1 -1
  160. package/dist/server/src/polyglot/node/plugins/storageController.d.ts +2 -2
  161. package/dist/server/src/polyglot/node/plugins/storageController.js.map +1 -1
  162. package/dist/server/src/polyglot/python/camera/interfaces/camera.py +0 -6
  163. package/dist/server/src/polyglot/python/camera/video_frame.py +10 -18
  164. package/dist/server/src/polyglot/python/camera_ui_types/__init__.py +1 -5
  165. package/dist/server/src/polyglot/python/decoder/child.py +102 -161
  166. package/dist/server/src/polyglot/python/plugins/camera_storage.py +10 -23
  167. package/dist/server/src/polyglot/python/plugins/child.py +35 -60
  168. package/dist/server/src/polyglot/python/plugins/{proxy/message_queue.py → message_queue.py} +50 -81
  169. package/dist/server/src/polyglot/python/plugins/plugin_api.py +13 -21
  170. package/dist/server/src/polyglot/python/plugins/proxy/camera_device.py +90 -173
  171. package/dist/server/src/polyglot/python/plugins/proxy/device_manager.py +25 -64
  172. package/dist/server/src/polyglot/python/plugins/storage_controller.py +3 -4
  173. package/dist/server/src/polyglot/python/utilities/connection.py +86 -0
  174. package/dist/server/src/polyglot/python/utilities/object_path.py +12 -4
  175. package/dist/server/src/polyglot/python/utilities/subscriptions.py +20 -0
  176. package/dist/server/src/polyglot/python/utilities/task.py +11 -1
  177. package/dist/server/src/services/config/index.js +4 -2
  178. package/dist/server/src/services/config/index.js.map +1 -1
  179. package/dist/server/src/services/logger/index.js +11 -8
  180. package/dist/server/src/services/logger/index.js.map +1 -1
  181. package/dist/server/src/utils/ffmpeg.d.ts +2 -0
  182. package/dist/server/src/{decoder → utils}/ffmpeg.js +2 -2
  183. package/dist/server/src/utils/ffmpeg.js.map +1 -0
  184. package/dist/server/src/utils/pythonInstaller.d.ts +1 -1
  185. package/dist/server/src/utils/pythonInstaller.js +10 -4
  186. package/dist/server/src/utils/pythonInstaller.js.map +1 -1
  187. package/dist/server/src/utils/reader.js.map +1 -0
  188. package/dist/server/src/utils/subscribed.d.ts +4 -4
  189. package/dist/server/src/utils/subscribed.js.map +1 -1
  190. package/package.json +9 -8
  191. package/dist/interface/assets/@camera.ui-2NVnv26v.js +0 -8
  192. package/dist/interface/assets/Account-gJpkf0nE.js +0 -1
  193. package/dist/interface/assets/Adminpanel-Bge9nu5N.js +0 -1
  194. package/dist/interface/assets/Appearance-D22q-X_I.js +0 -1
  195. package/dist/interface/assets/Backup-pJm6s10G.js +0 -1
  196. package/dist/interface/assets/Camera-BgO2yRjb.js +0 -1
  197. package/dist/interface/assets/Cameras-BM3vSM_R.css +0 -1
  198. package/dist/interface/assets/Cameras-DjeKruR_.js +0 -1
  199. package/dist/interface/assets/Camview-DfzlprzN.js +0 -1
  200. package/dist/interface/assets/Config-BKIOIkjC.js +0 -1
  201. package/dist/interface/assets/FirstSteps-mQK4XFTs.js +0 -1
  202. package/dist/interface/assets/Plugin-Di_bBsg-.js +0 -1
  203. package/dist/interface/assets/Plugins-BsMITags.css +0 -1
  204. package/dist/interface/assets/Plugins-DhmzMNuO.js +0 -1
  205. package/dist/interface/assets/Recordings-Bu53bSBp.js +0 -1
  206. package/dist/interface/assets/Recordings-XY20w8yp.js +0 -1
  207. package/dist/interface/assets/Settings-gGRBRVST.js +0 -1
  208. package/dist/interface/assets/System-ZDrcLNk0.js +0 -1
  209. package/dist/interface/assets/User-D4vEhhzi.js +0 -1
  210. package/dist/interface/assets/VConfigEditor.vue_vue_type_script_setup_true_lang-CXFI-IeE.js +0 -2
  211. package/dist/interface/assets/VConsole-BHo3xprq.js +0 -1
  212. package/dist/interface/assets/VConsole-f-nUkOuD.css +0 -1
  213. package/dist/interface/assets/VPluginCard-BJYMuCLk.css +0 -1
  214. package/dist/interface/assets/encode-utf8-Cn5aGd7v.js +0 -1
  215. package/dist/interface/assets/main-C4rYiRNz.js +0 -2
  216. package/dist/interface/assets/qrcode-CGiDONbL.js +0 -8
  217. package/dist/interface/assets/vuetify-_-Oqac3B.js +0 -5
  218. package/dist/server/src/decoder/ffmpeg.d.ts +0 -2
  219. package/dist/server/src/decoder/ffmpeg.js.map +0 -1
  220. package/dist/server/src/nats/proxy/index.d.ts +0 -2
  221. package/dist/server/src/nats/proxy/index.js +0 -3
  222. package/dist/server/src/nats/proxy/index.js.map +0 -1
  223. package/dist/server/src/polyglot/node/decoder/reader.js.map +0 -1
  224. package/dist/server/src/polyglot/node/plugins/api.js +0 -34
  225. package/dist/server/src/polyglot/node/plugins/api.js.map +0 -1
  226. package/dist/server/src/polyglot/node/plugins/config.js.map +0 -1
  227. package/dist/server/src/polyglot/node/plugins/logger.js +0 -128
  228. package/dist/server/src/polyglot/node/plugins/logger.js.map +0 -1
  229. package/dist/server/src/polyglot/node/plugins/proxy/index.d.ts +0 -2
  230. package/dist/server/src/polyglot/node/plugins/proxy/index.js +0 -3
  231. package/dist/server/src/polyglot/node/plugins/proxy/index.js.map +0 -1
  232. package/dist/server/src/polyglot/node/plugins/proxy/messageQueue.d.ts +0 -20
  233. package/dist/server/src/polyglot/node/plugins/proxy/messageQueue.js +0 -152
  234. package/dist/server/src/polyglot/node/plugins/proxy/messageQueue.js.map +0 -1
  235. /package/dist/server/src/polyglot/node/plugins/{config.d.ts → configService.d.ts} +0 -0
  236. /package/dist/server/src/polyglot/python/plugins/{logger.py → plugin_logger.py} +0 -0
  237. /package/dist/server/src/{polyglot/node/decoder → utils}/reader.d.ts +0 -0
  238. /package/dist/server/src/{polyglot/node/decoder → utils}/reader.js +0 -0
@@ -1,10 +1,10 @@
1
1
  import { filter, pairwise } from 'rxjs/operators';
2
- import { isEqual, structuredClone } from '../utils/utils.js';
3
- import { BaseCameraDevice } from './index.js';
2
+ import { isEqual } from '../utils/utils.js';
3
+ import { CameraDevice } from './device.js';
4
4
  import { CameraInterface } from './interfaces/camera.js';
5
5
  import { CameraPrebufferInterface } from './interfaces/prebuffer.js';
6
6
  import { CameraPTZInterface } from './interfaces/ptz.js';
7
- export class CameraController extends BaseCameraDevice {
7
+ export class CameraController extends CameraDevice {
8
8
  proxy;
9
9
  motionTimeout;
10
10
  objectTimeout;
@@ -13,17 +13,19 @@ export class CameraController extends BaseCameraDevice {
13
13
  doorbellTimeoutDuration = 2000;
14
14
  prebufferStateSubscriptions = {};
15
15
  cameraDelegate;
16
- prebufferDelegate;
17
16
  ptzDelegate;
17
+ prebufferDelegate;
18
18
  get camera() {
19
19
  return this.cameraObject;
20
20
  }
21
21
  get sources() {
22
- const sources = structuredClone(this.cameraSubject.getValue().sources);
22
+ const sources = JSON.parse(JSON.stringify(this.cameraSubject.getValue().sources));
23
23
  return sources.map((source) => {
24
24
  return {
25
25
  ...source,
26
- updatePrebufferingState: async (container, state) => this.updatePrebuffer(source._id, container, state),
26
+ updatePrebufferingState: async () => {
27
+ throw new Error('Method not implemented.');
28
+ },
27
29
  getPrebufferingState: (container) => this.cameraSourcePrebufferState(source._id, container),
28
30
  onPrebuffering: (container) => this.createPrebufferStateObservable(source._id, container),
29
31
  getStreamInfo: async () => {
@@ -40,6 +42,18 @@ export class CameraController extends BaseCameraDevice {
40
42
  this.ptzDelegate = new CameraPTZInterface(this.proxyRequest.bind(this), this.logger);
41
43
  this.addSubscriptions(this.subscribeToCameraState(), ...this.subscribeToCameraSourcesState(), this.subscribeToCameraChanges(), this.subscribeToMotionState(), this.subscribeToObjectState(), this.subscribeToDoorbellState(), this.subscribeToStateChanges('light', this.lightState), this.subscribeToStateChanges('motion', this.motionState), this.subscribeToStateChanges('audio', this.audioState), this.subscribeToStateChanges('object', this.objectState), this.subscribeToStateChanges('doorbell', this.doorbellState), this.subscribeToStateChanges('siren', this.sirenState));
42
44
  }
45
+ setDelegate() {
46
+ throw new Error('Method not implemented.');
47
+ }
48
+ getFfmpegPath() {
49
+ throw new Error('Method not implemented.');
50
+ }
51
+ getFrames() {
52
+ throw new Error('Method not implemented.');
53
+ }
54
+ getMotionFrames() {
55
+ throw new Error('Method not implemented.');
56
+ }
43
57
  async connect() {
44
58
  this.cameraState.next(true);
45
59
  }
@@ -83,7 +97,7 @@ export class CameraController extends BaseCameraDevice {
83
97
  }
84
98
  subscribeToCameraSourcesState() {
85
99
  const subscribtions = [];
86
- for (const source of super.sources) {
100
+ for (const source of this.sources) {
87
101
  const mp4Subscription = source.onPrebuffering('mp4').subscribe({
88
102
  next: (state) => {
89
103
  this.triggerProxyEvent('prebufferState', { sourceId: source._id, container: 'mp4', state });
@@ -1 +1 @@
1
- {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../src/camera/controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../src/camera/controller.ts"],"names":[],"mappings":"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"}
@@ -4,15 +4,27 @@ import { WeriftSession } from './streaming/werift-session.js';
4
4
  import type { Observable } from 'rxjs';
5
5
  import type { MotionFrame, VideoFrame } from '../decoder/types.js';
6
6
  import type { StreamingConnectionOptions } from './streaming/peer-connection.js';
7
- import type { CameraDelegates, FrameState } from './types.js';
7
+ import type { AudioSetEvent, BatterySetEvent, CameraConfigInputSettings, CameraDelegates, DoorbellSetEvent, FrameState, LightSetEvent, MotionSetEvent, ObjectSetEvent, SirenSetEvent } from './types.js';
8
8
  export declare abstract class CameraDevice extends BaseCameraDevice {
9
9
  protected readonly frameState: BehaviorSubject<FrameState>;
10
10
  protected readonly onFrame: Observable<FrameState>;
11
11
  abstract setDelegate<T extends keyof CameraDelegates>(name: T, delegate: CameraDelegates[T]): void;
12
- createSession(sourceName: string, options?: StreamingConnectionOptions): Promise<WeriftSession>;
13
- removeAllListeners(): void;
12
+ abstract connect(): Promise<void>;
13
+ abstract disconnect(): Promise<void>;
14
14
  abstract getFrames(prebufferDuration?: number): AsyncIterableIterator<VideoFrame>;
15
15
  abstract getMotionFrames(): AsyncIterableIterator<MotionFrame>;
16
16
  abstract getFfmpegPath(): Promise<string>;
17
+ abstract updateState(stateName: 'light', eventData: LightSetEvent): Promise<void>;
18
+ abstract updateState(stateName: 'motion', eventData: MotionSetEvent, frame?: VideoFrame): Promise<void>;
19
+ abstract updateState(stateName: 'audio', eventData: AudioSetEvent): Promise<void>;
20
+ abstract updateState(stateName: 'object', eventData: ObjectSetEvent): Promise<void>;
21
+ abstract updateState(stateName: 'doorbell', eventData: DoorbellSetEvent): Promise<void>;
22
+ abstract updateState(stateName: 'siren', eventData: SirenSetEvent): Promise<void>;
23
+ abstract updateState(stateName: 'battery', eventData: BatterySetEvent): Promise<void>;
24
+ abstract addCameraSource(source: CameraConfigInputSettings): Promise<void>;
25
+ abstract updateCameraSource(sourceId: string, source: Partial<CameraConfigInputSettings>): Promise<void>;
26
+ abstract removeCameraSource(sourceId: string): Promise<void>;
27
+ createSession(sourceName: string, options?: StreamingConnectionOptions): Promise<WeriftSession>;
28
+ protected removeAllListeners(): void;
17
29
  private createMotionFrameObservable;
18
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../../../../src/camera/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAO9D,MAAM,OAAgB,YAAa,SAAQ,gBAAgB;IACtC,UAAU,GAAG,IAAI,eAAe,CAAa,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAe,EAAE,QAAQ,EAAE,EAAmB,EAAE,CAAC,CAAC;IACnJ,OAAO,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;IAIzD,KAAK,CAAC,aAAa,CAAC,UAAkB,EAAE,UAAsC,EAAE;QACrF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5F,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAEM,kBAAkB;QACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC3B,KAAK,CAAC,kBAAkB,EAAE,CAAC;IAC7B,CAAC;IAMO,2BAA2B;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC;CACF"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../../../src/camera/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAkB9D,MAAM,OAAgB,YAAa,SAAQ,gBAAgB;IACtC,UAAU,GAAG,IAAI,eAAe,CAAa,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAe,EAAE,QAAQ,EAAE,EAAmB,EAAE,CAAC,CAAC;IACnJ,OAAO,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;IAuBzD,KAAK,CAAC,aAAa,CAAC,UAAkB,EAAE,UAAsC,EAAE;QACrF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5F,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAES,kBAAkB;QAC1B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC3B,KAAK,CAAC,kBAAkB,EAAE,CAAC;IAC7B,CAAC;IAEO,2BAA2B;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC;CACF"}
@@ -1,18 +1,10 @@
1
1
  import { LRUCache } from 'lru-cache';
2
2
  import { BehaviorSubject } from 'rxjs';
3
- import type { Observable, Subscription } from 'rxjs';
3
+ import { Subscribed } from '../utils/subscribed.js';
4
+ import type { Observable } from 'rxjs';
4
5
  import type { Camera, CameraActivitySettings, CameraFrameWorkerSettings, CameraInformation, CameraType } from '../api/database/types.js';
5
- import type { VideoFrame } from '../decoder/types.js';
6
6
  import type { IceServer } from '../services/config/types.js';
7
- import type { AudioSetEvent, AudioState, BaseLogger, BatterySetEvent, BatteryState, CameraConfigInputSettings, CameraDelegate, CameraPTZDelegate, CameraPrebufferDelegate, CameraSource, Container, DetectionZone, DoorbellSetEvent, DoorbellState, LightSetEvent, LightState, MotionSetEvent, MotionState, ObjectSetEvent, ObjectState, PrebufferState, SetValues, Sets, SirenSetEvent, SirenState, StateValues, States } from './types.js';
8
- declare class Subscribed {
9
- private readonly subscriptions;
10
- private readonly additionalSubscriptions;
11
- protected addSubscriptions(...subscriptions: Subscription[]): void;
12
- protected addAdditionalSubscriptions(...subscriptions: Subscription[]): void;
13
- protected unsubscribe(): void;
14
- protected unsubscribeAdditional(): void;
15
- }
7
+ import type { AudioSetEvent, AudioState, BaseLogger, BatterySetEvent, BatteryState, CameraDelegate, CameraPTZDelegate, CameraPrebufferDelegate, CameraSource, Container, DetectionZone, DoorbellSetEvent, DoorbellState, LightSetEvent, LightState, MotionSetEvent, MotionState, ObjectSetEvent, ObjectState, PrebufferState, SetValues, SirenSetEvent, SirenState, StateValues } from './types.js';
16
8
  export declare abstract class BaseCameraDevice extends Subscribed {
17
9
  protected logger: BaseLogger;
18
10
  protected snapshotCache: LRUCache<string, ArrayBuffer, unknown>;
@@ -38,9 +30,9 @@ export declare abstract class BaseCameraDevice extends Subscribed {
38
30
  readonly onDoorbellPressed: Observable<DoorbellState>;
39
31
  readonly onSirenDetected: Observable<SirenState>;
40
32
  readonly onBatteryChanged: Observable<BatteryState>;
41
- abstract cameraDelegate: CameraDelegate;
33
+ protected abstract cameraDelegate: CameraDelegate;
34
+ protected abstract ptzDelegate: CameraPTZDelegate;
42
35
  protected abstract prebufferDelegate: CameraPrebufferDelegate;
43
- abstract ptzDelegate: CameraPTZDelegate;
44
36
  protected get cameraObject(): Camera;
45
37
  get id(): string;
46
38
  get nativeId(): string | undefined;
@@ -63,44 +55,39 @@ export declare abstract class BaseCameraDevice extends Subscribed {
63
55
  get activityZones(): DetectionZone[];
64
56
  get activitySettings(): CameraActivitySettings;
65
57
  get frameWorkerSettings(): CameraFrameWorkerSettings;
66
- get sources(): CameraSource[];
67
58
  get streamSource(): CameraSource;
68
59
  get snapshotSource(): CameraSource | undefined;
69
60
  get highResolutionSource(): CameraSource | undefined;
70
61
  get midResolutionSource(): CameraSource | undefined;
71
62
  get lowResolutionSource(): CameraSource | undefined;
63
+ get ptz(): CameraPTZDelegate;
64
+ abstract get sources(): CameraSource[];
72
65
  constructor(camera: Camera, logger: BaseLogger);
66
+ abstract getIceServers(): Promise<IceServer[]>;
67
+ protected abstract cleanup(): void;
73
68
  getValue<T extends keyof StateValues>(stateName: T): StateValues[T];
74
69
  snapshot(forceNew?: boolean): Promise<ArrayBuffer>;
75
70
  onStateChange<T extends keyof StateValues>(stateName: T): Observable<{
76
71
  newState: StateValues[T];
77
72
  oldState: StateValues[T];
78
73
  }>;
79
- abstract connect(): Promise<void>;
80
- abstract disconnect(): Promise<void>;
81
- abstract getIceServers(): Promise<IceServer[]>;
82
- abstract updateState(stateName: 'light', eventData: LightSetEvent): Promise<void>;
83
- abstract updateState(stateName: 'motion', eventData: MotionSetEvent, frame?: VideoFrame): Promise<void>;
84
- abstract updateState(stateName: 'audio', eventData: AudioSetEvent): Promise<void>;
85
- abstract updateState(stateName: 'object', eventData: ObjectSetEvent): Promise<void>;
86
- abstract updateState(stateName: 'doorbell', eventData: DoorbellSetEvent): Promise<void>;
87
- abstract updateState(stateName: 'siren', eventData: SirenSetEvent): Promise<void>;
88
- abstract updateState(stateName: 'battery', eventData: BatterySetEvent): Promise<void>;
89
- abstract addCameraSource(source: CameraConfigInputSettings): Promise<void>;
90
- abstract updateCameraSource(sourceId: string, source: Partial<CameraConfigInputSettings>): Promise<void>;
91
- abstract removeCameraSource(sourceId: string): Promise<void>;
92
- protected abstract cleanup(): void;
93
- protected updateStateInternal<T extends keyof SetValues>(stateName: T, eventData: SetValues[T], skipCheck?: boolean): void;
94
74
  onPropertyChange<T extends keyof Camera>(property: T | T[]): Observable<{
95
75
  property: T;
96
76
  oldData: Camera[T];
97
77
  newData: Camera[T];
98
78
  }>;
99
- removeAllListeners(): void;
79
+ protected removeAllListeners(): void;
80
+ protected updateCamera(updatedCamera: Camera): void;
81
+ protected updateCameraState(state: boolean): void;
82
+ protected updatePrebuffer(sourceId: string, container: Container, state: PrebufferState): void;
83
+ protected updateStateInternal<T extends keyof SetValues>(stateName: T, eventData: SetValues[T], skipCheck?: boolean): void;
100
84
  protected checkStateInternal<T extends keyof SetValues>(stateName: T, event: SetValues[T]): {
101
85
  changed: boolean;
102
86
  event: StateValues[T];
103
87
  };
88
+ protected cameraSourcePrebufferState(sourceId: string, container: Container): PrebufferState;
89
+ protected createPrebufferStateObservable(sourceId: string, container: Container): Observable<PrebufferState>;
90
+ protected stateChanged<T extends keyof SetValues>(oldState?: SetValues[T], newState?: SetValues[T], type?: keyof StateValues): boolean;
104
91
  protected getAudioState(event: AudioSetEvent, ignoreLastEvet?: boolean): AudioState;
105
92
  protected getMotionState(event: MotionSetEvent, ignoreLastEvet?: boolean): MotionState;
106
93
  protected getObjectState(event: ObjectSetEvent, ignoreLastEvet?: boolean): ObjectState;
@@ -108,14 +95,6 @@ export declare abstract class BaseCameraDevice extends Subscribed {
108
95
  protected getLightState(event: LightSetEvent, ignoreLastEvet?: boolean): LightState;
109
96
  protected getSirenState(event: SirenSetEvent, ignoreLastEvet?: boolean): SirenState;
110
97
  protected getBatteryState(event: BatterySetEvent, ignoreLastEvet?: boolean): BatteryState;
111
- protected updateCamera(updatedCamera: Camera): void;
112
- protected updatePrebuffer(sourceId: string, container: Container, state: PrebufferState): Promise<void>;
113
- protected updateCameraSourcesState(): void;
114
- protected updateCameraState(state: boolean): void;
115
- protected cameraSourcePrebufferState(sourceId: string, container: Container): PrebufferState;
98
+ private isStateEvent;
116
99
  private createStateObservable;
117
- protected createPrebufferStateObservable(sourceId: string, container: Container): Observable<PrebufferState>;
118
- protected stateChanged<T extends keyof SetValues>(oldState?: SetValues[T], newState?: SetValues[T], type?: keyof StateValues): boolean;
119
- protected isStateEvent(state: States | Sets): state is States;
120
100
  }
121
- export {};
@@ -1,24 +1,9 @@
1
1
  import { LRUCache } from 'lru-cache';
2
2
  import { BehaviorSubject, ReplaySubject } from 'rxjs';
3
3
  import { distinctUntilChanged, filter, map, mergeMap, pairwise, share } from 'rxjs/operators';
4
+ import { Subscribed } from '../utils/subscribed.js';
4
5
  import { isEqual, structuredClone } from '../utils/utils.js';
5
6
  import { areMotionDetectionsValid, areObjectDetectionsValid } from './polygon.js';
6
- class Subscribed {
7
- subscriptions = [];
8
- additionalSubscriptions = [];
9
- addSubscriptions(...subscriptions) {
10
- this.subscriptions.push(...subscriptions);
11
- }
12
- addAdditionalSubscriptions(...subscriptions) {
13
- this.additionalSubscriptions.push(...subscriptions);
14
- }
15
- unsubscribe() {
16
- this.subscriptions.forEach((subscription) => subscription.unsubscribe());
17
- }
18
- unsubscribeAdditional() {
19
- this.additionalSubscriptions.forEach((subscription) => subscription.unsubscribe());
20
- }
21
- }
22
7
  export class BaseCameraDevice extends Subscribed {
23
8
  logger;
24
9
  snapshotCache = new LRUCache({ max: 100, ttl: 1000 * 60 * 5 });
@@ -106,21 +91,8 @@ export class BaseCameraDevice extends Subscribed {
106
91
  get frameWorkerSettings() {
107
92
  return structuredClone(this.cameraSubject.getValue().frameWorkerSettings);
108
93
  }
109
- get sources() {
110
- const sources = structuredClone(this.cameraSubject.getValue().sources);
111
- return sources.map((source) => {
112
- return {
113
- ...source,
114
- updatePrebufferingState: async (container, state) => this.updatePrebuffer(source._id, container, state),
115
- getPrebufferingState: (container) => this.cameraSourcePrebufferState(source._id, container),
116
- onPrebuffering: (container) => this.createPrebufferStateObservable(source._id, container),
117
- getStreamInfo: async () => this.prebufferDelegate.getStreamInfo(source.name),
118
- };
119
- });
120
- }
121
94
  get streamSource() {
122
- const source = this.highResolutionSource || this.midResolutionSource || this.lowResolutionSource;
123
- return source;
95
+ return (this.highResolutionSource || this.midResolutionSource || this.lowResolutionSource);
124
96
  }
125
97
  get snapshotSource() {
126
98
  return this.sources.find((source) => source.roles.includes('snapshot'));
@@ -134,6 +106,9 @@ export class BaseCameraDevice extends Subscribed {
134
106
  get lowResolutionSource() {
135
107
  return this.sources.find((source) => source.roles.includes('low-resolution'));
136
108
  }
109
+ get ptz() {
110
+ return this.ptzDelegate;
111
+ }
137
112
  constructor(camera, logger) {
138
113
  super();
139
114
  this.logger = logger;
@@ -197,6 +172,51 @@ export class BaseCameraDevice extends Subscribed {
197
172
  }
198
173
  }), map(([oldState, newState]) => ({ oldState, newState })), share({ connector: () => new ReplaySubject(1) }));
199
174
  }
175
+ onPropertyChange(property) {
176
+ return this.cameraSubject.pipe(pairwise(), mergeMap(([oldCamera, newCamera]) => {
177
+ const properties = Array.isArray(property) ? property : [property];
178
+ return properties.map((prop) => ({
179
+ property: prop,
180
+ oldData: oldCamera[prop],
181
+ newData: newCamera[prop],
182
+ }));
183
+ }), filter(({ oldData, newData }) => !isEqual(oldData, newData, true)), share({ connector: () => new ReplaySubject(1) }));
184
+ }
185
+ removeAllListeners() {
186
+ this.lightState.complete();
187
+ this.motionState.complete();
188
+ this.audioState.complete();
189
+ this.objectState.complete();
190
+ this.doorbellState.complete();
191
+ this.sirenState.complete();
192
+ this.batteryState.complete();
193
+ this.cameraSubject.complete();
194
+ this.cameraState.complete();
195
+ }
196
+ updateCamera(updatedCamera) {
197
+ this.cameraSubject.next(updatedCamera);
198
+ const sources = this.cameraSubject.getValue().sources;
199
+ for (const sourceId in this.prebufferStateSubjects) {
200
+ if (!sources.some((source) => source._id === sourceId)) {
201
+ for (const container in this.prebufferStateSubjects[sourceId]) {
202
+ this.prebufferStateSubjects[sourceId][container].complete();
203
+ }
204
+ delete this.prebufferStateSubjects[sourceId];
205
+ }
206
+ }
207
+ }
208
+ updateCameraState(state) {
209
+ this.cameraState.next(state);
210
+ }
211
+ updatePrebuffer(sourceId, container, state) {
212
+ if (this.prebufferStateSubjects[sourceId] && this.prebufferStateSubjects[sourceId][container]) {
213
+ this.prebufferStateSubjects[sourceId][container].next({
214
+ state: state.state,
215
+ url: state.url || undefined,
216
+ duration: state.duration,
217
+ });
218
+ }
219
+ }
200
220
  updateStateInternal(stateName, eventData, skipCheck) {
201
221
  let changed = false;
202
222
  let event;
@@ -238,27 +258,6 @@ export class BaseCameraDevice extends Subscribed {
238
258
  throw new Error(`Unknown state: ${stateName}`);
239
259
  }
240
260
  }
241
- onPropertyChange(property) {
242
- return this.cameraSubject.pipe(pairwise(), mergeMap(([oldCamera, newCamera]) => {
243
- const properties = Array.isArray(property) ? property : [property];
244
- return properties.map((prop) => ({
245
- property: prop,
246
- oldData: oldCamera[prop],
247
- newData: newCamera[prop],
248
- }));
249
- }), filter(({ oldData, newData }) => !isEqual(oldData, newData, true)), share({ connector: () => new ReplaySubject(1) }));
250
- }
251
- removeAllListeners() {
252
- this.lightState.complete();
253
- this.motionState.complete();
254
- this.audioState.complete();
255
- this.objectState.complete();
256
- this.doorbellState.complete();
257
- this.sirenState.complete();
258
- this.batteryState.complete();
259
- this.cameraSubject.complete();
260
- this.cameraState.complete();
261
- }
262
261
  checkStateInternal(stateName, event) {
263
262
  let changed = false;
264
263
  let targetState;
@@ -307,6 +306,91 @@ export class BaseCameraDevice extends Subscribed {
307
306
  }
308
307
  return { changed, event: targetState };
309
308
  }
309
+ cameraSourcePrebufferState(sourceId, container) {
310
+ let prebufferState = { state: false, duration: 0 };
311
+ if (this.prebufferStateSubjects[sourceId] && this.prebufferStateSubjects[sourceId][container]) {
312
+ prebufferState = this.prebufferStateSubjects[sourceId][container].getValue();
313
+ }
314
+ return prebufferState;
315
+ }
316
+ createPrebufferStateObservable(sourceId, container) {
317
+ if (!this.prebufferStateSubjects[sourceId]) {
318
+ this.prebufferStateSubjects[sourceId] = {};
319
+ }
320
+ if (!this.prebufferStateSubjects[sourceId][container]) {
321
+ this.prebufferStateSubjects[sourceId][container] = new BehaviorSubject({ state: false, duration: 0 });
322
+ }
323
+ return this.prebufferStateSubjects[sourceId][container].pipe(distinctUntilChanged((previousState, currentState) => {
324
+ return previousState.state === currentState.state && previousState.url === currentState.url;
325
+ }), share({ connector: () => new ReplaySubject(1) }));
326
+ }
327
+ stateChanged(oldState, newState, type) {
328
+ if (!oldState || !newState || !type) {
329
+ return false;
330
+ }
331
+ if (type == 'audio') {
332
+ if (!this.hasAudioDetector) {
333
+ return false;
334
+ }
335
+ const _oldState = oldState;
336
+ const _newState = newState;
337
+ return _oldState.state !== _newState.state || _oldState.db !== _newState.db;
338
+ }
339
+ else if (type == 'motion') {
340
+ if (!this.hasMotionDetector) {
341
+ return false;
342
+ }
343
+ const _oldState = oldState;
344
+ const _newState = newState;
345
+ if (_newState.state !== undefined) {
346
+ return _oldState.state !== _newState.state;
347
+ }
348
+ return !isEqual(_oldState.detections, _newState.detections, true);
349
+ }
350
+ else if (type == 'object') {
351
+ if (!this.hasObjectDetector) {
352
+ return false;
353
+ }
354
+ const _oldState = oldState;
355
+ const _newState = newState;
356
+ return !isEqual(_oldState.detections, _newState.detections, true);
357
+ }
358
+ else if (type == 'siren') {
359
+ if (!this.hasSiren) {
360
+ return false;
361
+ }
362
+ const _oldState = oldState;
363
+ const _newState = newState;
364
+ return _oldState.state !== _newState.state || _oldState.level !== _newState.level;
365
+ }
366
+ else if (type == 'battery') {
367
+ if (!this.hasBattery) {
368
+ return false;
369
+ }
370
+ const _oldState = oldState;
371
+ const _newState = newState;
372
+ return _oldState.level !== _newState.level || _oldState.lowBattery !== _newState.lowBattery || _oldState.charging !== _newState.charging;
373
+ }
374
+ else if (type == 'doorbell') {
375
+ if (!this.hasBinarySensor) {
376
+ return false;
377
+ }
378
+ const _oldState = oldState;
379
+ const _newState = newState;
380
+ return _oldState.state !== _newState.state;
381
+ }
382
+ else if (type == 'light') {
383
+ if (!this.hasLight) {
384
+ return false;
385
+ }
386
+ const _oldState = oldState;
387
+ const _newState = newState;
388
+ return _oldState.state !== _newState.state;
389
+ }
390
+ else {
391
+ return false;
392
+ }
393
+ }
310
394
  getAudioState(event, ignoreLastEvet = false) {
311
395
  let lastEvent = undefined;
312
396
  if (!ignoreLastEvet) {
@@ -521,123 +605,11 @@ export class BaseCameraDevice extends Subscribed {
521
605
  }
522
606
  return newState;
523
607
  }
524
- updateCamera(updatedCamera) {
525
- this.cameraSubject.next(updatedCamera);
526
- this.updateCameraSourcesState();
527
- }
528
- async updatePrebuffer(sourceId, container, state) {
529
- if (this.prebufferStateSubjects[sourceId] && this.prebufferStateSubjects[sourceId][container]) {
530
- this.prebufferStateSubjects[sourceId][container].next({
531
- state: state.state,
532
- url: state.url || undefined,
533
- duration: state.duration,
534
- });
535
- }
536
- }
537
- updateCameraSourcesState() {
538
- const sources = this.cameraSubject.getValue().sources;
539
- for (const sourceId in this.prebufferStateSubjects) {
540
- if (!sources.some((source) => source._id === sourceId)) {
541
- for (const container in this.prebufferStateSubjects[sourceId]) {
542
- this.prebufferStateSubjects[sourceId][container].complete();
543
- }
544
- delete this.prebufferStateSubjects[sourceId];
545
- }
546
- }
547
- }
548
- updateCameraState(state) {
549
- this.cameraState.next(state);
550
- }
551
- cameraSourcePrebufferState(sourceId, container) {
552
- let prebufferState = { state: false, duration: 0 };
553
- if (this.prebufferStateSubjects[sourceId] && this.prebufferStateSubjects[sourceId][container]) {
554
- prebufferState = this.prebufferStateSubjects[sourceId][container].getValue();
555
- }
556
- return prebufferState;
608
+ isStateEvent(state) {
609
+ return 'timestamp' in state;
557
610
  }
558
611
  createStateObservable(stateSubject) {
559
612
  return stateSubject.pipe(share({ connector: () => new ReplaySubject(1) }));
560
613
  }
561
- createPrebufferStateObservable(sourceId, container) {
562
- if (!this.prebufferStateSubjects[sourceId]) {
563
- this.prebufferStateSubjects[sourceId] = {};
564
- }
565
- if (!this.prebufferStateSubjects[sourceId][container]) {
566
- this.prebufferStateSubjects[sourceId][container] = new BehaviorSubject({ state: false, duration: 0 });
567
- }
568
- return this.prebufferStateSubjects[sourceId][container].pipe(distinctUntilChanged((previousState, currentState) => {
569
- return previousState.state === currentState.state && previousState.url === currentState.url;
570
- }), share({ connector: () => new ReplaySubject(1) }));
571
- }
572
- stateChanged(oldState, newState, type) {
573
- if (!oldState || !newState || !type) {
574
- return false;
575
- }
576
- if (type == 'audio') {
577
- if (!this.hasAudioDetector) {
578
- return false;
579
- }
580
- const _oldState = oldState;
581
- const _newState = newState;
582
- return _oldState.state !== _newState.state || _oldState.db !== _newState.db;
583
- }
584
- else if (type == 'motion') {
585
- if (!this.hasMotionDetector) {
586
- return false;
587
- }
588
- const _oldState = oldState;
589
- const _newState = newState;
590
- if (_newState.state !== undefined) {
591
- return _oldState.state !== _newState.state;
592
- }
593
- return !isEqual(_oldState.detections, _newState.detections, true);
594
- }
595
- else if (type == 'object') {
596
- if (!this.hasObjectDetector) {
597
- return false;
598
- }
599
- const _oldState = oldState;
600
- const _newState = newState;
601
- return !isEqual(_oldState.detections, _newState.detections, true);
602
- }
603
- else if (type == 'siren') {
604
- if (!this.hasSiren) {
605
- return false;
606
- }
607
- const _oldState = oldState;
608
- const _newState = newState;
609
- return _oldState.state !== _newState.state || _oldState.level !== _newState.level;
610
- }
611
- else if (type == 'battery') {
612
- if (!this.hasBattery) {
613
- return false;
614
- }
615
- const _oldState = oldState;
616
- const _newState = newState;
617
- return _oldState.level !== _newState.level || _oldState.lowBattery !== _newState.lowBattery || _oldState.charging !== _newState.charging;
618
- }
619
- else if (type == 'doorbell') {
620
- if (!this.hasBinarySensor) {
621
- return false;
622
- }
623
- const _oldState = oldState;
624
- const _newState = newState;
625
- return _oldState.state !== _newState.state;
626
- }
627
- else if (type == 'light') {
628
- if (!this.hasLight) {
629
- return false;
630
- }
631
- const _oldState = oldState;
632
- const _newState = newState;
633
- return _oldState.state !== _newState.state;
634
- }
635
- else {
636
- return false;
637
- }
638
- }
639
- isStateEvent(state) {
640
- return 'timestamp' in state;
641
- }
642
614
  }
643
615
  //# sourceMappingURL=index.js.map