@camera.ui/server 2.0.10 → 2.0.12

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 (381) hide show
  1. package/dist/interface/assets/{404-ChR2IVti.js → 404-Dfyzm8bF.js} +1 -1
  2. package/dist/interface/assets/{About-CDQ55crC.js → About-B4Y3WP7T.js} +1 -1
  3. package/dist/interface/assets/{Adminpanel-CiJGwx7_.js → Adminpanel-DSk1uh2x.js} +1 -1
  4. package/dist/interface/assets/Automation-CTSfLcmF.js +2 -0
  5. package/dist/interface/assets/AutomationImport-B1P0T0Pe.js +2 -0
  6. package/dist/interface/assets/AutomationStore-ZaaXPPbd.js +2 -0
  7. package/dist/interface/assets/AutomationStoreDetail-B2vc7mTZ.js +2 -0
  8. package/dist/interface/assets/Automations-Bvw-jTKi.js +2 -0
  9. package/dist/interface/assets/Camera-BxmJXk11.js +2 -0
  10. package/dist/interface/assets/{CameraConsole-dx9vB5ht.js → CameraConsole-CVqgED5u.js} +2 -2
  11. package/dist/interface/assets/Cameras-DT62fcZK.js +652 -0
  12. package/dist/interface/assets/Camview-CqSckgLr.js +1 -0
  13. package/dist/interface/assets/Config-p9t9zgly.js +2 -0
  14. package/dist/interface/assets/{ConfigActionCameraControl-CrWmGvdE.js → ConfigActionCameraControl-BLROOU0q.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionDelay-1kd69ysm.js → ConfigActionDelay-q0pOTOzh.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionHttp-XY-r_hEX.js → ConfigActionHttp-DiMXKRGz.js} +1 -1
  17. package/dist/interface/assets/ConfigActionImageInput-u5xX9t3-.js +1 -0
  18. package/dist/interface/assets/{ConfigActionMqtt-DsX-q9M_.js → ConfigActionMqtt-BkZl3uYq.js} +1 -1
  19. package/dist/interface/assets/ConfigActionNotification-DIkFNlKe.js +1 -0
  20. package/dist/interface/assets/{ConfigActionOutput-DMYPThT1.js → ConfigActionOutput-CJF0F4cT.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionPlugin-rCaB0HjK.js → ConfigActionPlugin-rQeJ4umG.js} +1 -1
  22. package/dist/interface/assets/ConfigActionSensor-BWHpkoMs.js +1 -0
  23. package/dist/interface/assets/{ConfigActionSnapshot-8vrwtN10.js → ConfigActionSnapshot-BlvQZl1R.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionVariable-Dy8ZnhCO.js → ConfigActionVariable-BMV-BDAk.js} +1 -1
  25. package/dist/interface/assets/{ConfigConditionIfElse-DK9Z6-kN.js → ConfigConditionIfElse-C5geCT1S.js} +1 -1
  26. package/dist/interface/assets/ConfigConditionSensorState-8bIGEhQd.js +1 -0
  27. package/dist/interface/assets/{ConfigConditionSwitch-_Gxu6OYc.js → ConfigConditionSwitch-PwrCSnTQ.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionTime-Ce8AortY.js → ConfigConditionTime-DUt_dsr9.js} +1 -1
  29. package/dist/interface/assets/{ConfigSensorValueInput-BIiQ8NN6.js → ConfigSensorValueInput-CgZWxOMu.js} +1 -1
  30. package/dist/interface/assets/{ConfigTriggerDetection-CCCi-Tof.js → ConfigTriggerDetection-D4UitpXI.js} +1 -1
  31. package/dist/interface/assets/ConfigTriggerGeofence-Ci-gkmjS.js +1 -0
  32. package/dist/interface/assets/{ConfigTriggerManual-DZPdLXoe.js → ConfigTriggerManual-_PAVLJxz.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerMqtt-4Gp-qhCg.js → ConfigTriggerMqtt-BtfXQ_Bh.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerSchedule-DQX6czW4.js → ConfigTriggerSchedule-CHyW4YQ1.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerSensor-CLnC2yvE.js → ConfigTriggerSensor-CZMplCYs.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerSystem-Gae5o59O.js → ConfigTriggerSystem-OOffe8rK.js} +1 -1
  37. package/dist/interface/assets/ConfigTriggerWebhook-Baul6M1Y.js +1 -0
  38. package/dist/interface/assets/Console-MXiL0z_X.js +1 -0
  39. package/dist/interface/assets/{CuiActionButton-BAlSwXzv.js → CuiActionButton-WFz5I80P.js} +1 -1
  40. package/dist/interface/assets/{CuiAvatar-DeBKq6dT.js → CuiAvatar-BUwQnIaI.js} +1 -1
  41. package/dist/interface/assets/{CuiBBoxPlayground-yYOBCXTq.js → CuiBBoxPlayground-J7_8dCvo.js} +1 -1
  42. package/dist/interface/assets/CuiBottomSheet-BA-u9UtN.js +1 -0
  43. package/dist/interface/assets/{CuiBottomSheet-udULz0wI.js → CuiBottomSheet-CzG0n4Oa.js} +1 -1
  44. package/dist/interface/assets/CuiCameraCard-GH-DR5_s.js +1 -0
  45. package/dist/interface/assets/{CuiCameraPipCard-BxbUK-93.js → CuiCameraPipCard-CL_wj05b.js} +1 -1
  46. package/dist/interface/assets/CuiCameraRecordings-BjErk9Gl.js +1 -0
  47. package/dist/interface/assets/CuiCameraShares-qrJhZMEt.js +1 -0
  48. package/dist/interface/assets/CuiCameraSnapshot-Dn1QSGrr.js +1 -0
  49. package/dist/interface/assets/CuiCameraTable-or8VpE34.js +2 -0
  50. package/dist/interface/assets/{CuiDataTable-CB7aMmp9.js → CuiDataTable-CjXiUFiJ.js} +1 -1
  51. package/dist/interface/assets/CuiFloatingButton-BjpU1EHv.js +1 -0
  52. package/dist/interface/assets/CuiImage-BM4g6edi.css +1 -0
  53. package/dist/interface/assets/CuiImage-Bq3bxOOL.js +1 -0
  54. package/dist/interface/assets/CuiMenu-DtnIPhcr.js +1 -0
  55. package/dist/interface/assets/CuiPluginCard-DKNWUFpR.js +2 -0
  56. package/dist/interface/assets/{CuiPluginCategoryChip-yMnZpSGr.js → CuiPluginCategoryChip-cmfKx-dU.js} +1 -1
  57. package/dist/interface/assets/CuiPluginOAuthButton-C6FQiVkt.js +2 -0
  58. package/dist/interface/assets/CuiPluginTrustBadge-PVZMP1rI.js +1 -0
  59. package/dist/interface/assets/{CuiQRCode-D9QNUEmx.js → CuiQRCode-uQygC1dP.js} +1 -1
  60. package/dist/interface/assets/CuiRecordingsGrid-Cuwd4L67.js +1 -0
  61. package/dist/interface/assets/CuiSchema-CH0GXMWV.js +1 -0
  62. package/dist/interface/assets/{CuiTopNavbarItem--MOi9UUw.js → CuiTopNavbarItem-nGcC2em4.js} +1 -1
  63. package/dist/interface/assets/{CuiTopbarSlot-Bcw46PzA.js → CuiTopbarSlot-B6UMqYZl.js} +1 -1
  64. package/dist/interface/assets/Faces-cpO5vJbp.js +1 -0
  65. package/dist/interface/assets/FirstSteps-BHTcbs9O.js +1 -0
  66. package/dist/interface/assets/Instances-BXiVG2Dm.js +1 -0
  67. package/dist/interface/assets/Logs-hMg2QOGj.js +6 -0
  68. package/dist/interface/assets/{Menu-GbuCaA_6.js → Menu-BiPBCi8Z.js} +1 -1
  69. package/dist/interface/assets/OAuthDeviceFlow-Bia9UA3I.js +1 -0
  70. package/dist/interface/assets/Plugin-DfRaHAsi.js +1 -0
  71. package/dist/interface/assets/{PluginConsole-CLGkDl1F.js → PluginConsole-CRw4zTRM.js} +2 -2
  72. package/dist/interface/assets/PluginDetail-BYqji8yN.css +1 -0
  73. package/dist/interface/assets/PluginDetail-BqRoLZc7.js +2 -0
  74. package/dist/interface/assets/{PluginSchema-Dy9kDPML.js → PluginSchema-TtBJPR_R.js} +1 -1
  75. package/dist/interface/assets/PluginSearch-B_NYpJi3.js +2 -0
  76. package/dist/interface/assets/{PluginSearch-NuKgD1r3.css → PluginSearch-Bbp8D7BJ.css} +1 -1
  77. package/dist/interface/assets/PluginSearch-DnJgg6-6.js +1 -0
  78. package/dist/interface/assets/Plugins-DVFEGtj3.js +1 -0
  79. package/dist/interface/assets/Recordings-dwm6lAoJ.js +1 -0
  80. package/dist/interface/assets/{Settings-is528I5i2.js → Settings-BpBmrGpS.js} +1 -1
  81. package/dist/interface/assets/SettingsAccount-8Kh1uQqn.js +1 -0
  82. package/dist/interface/assets/{SettingsAccount-Y7hpH8Y3.css → SettingsAccount-CBJ_h7eM.css} +1 -1
  83. package/dist/interface/assets/SettingsAccount-CjgYe5mF.js +1 -0
  84. package/dist/interface/assets/SettingsAppearance-3i3Ix7j-.js +1 -0
  85. package/dist/interface/assets/{SettingsAppearance-CGaG9lml.js → SettingsAppearance-EoBxclgt.js} +1 -1
  86. package/dist/interface/assets/SettingsBackup-Bpsbg6Pm.js +1 -0
  87. package/dist/interface/assets/SettingsMqtt-ZQolc9lR.js +1 -0
  88. package/dist/interface/assets/SettingsNotifications-BOoMt1Er.js +2 -0
  89. package/dist/interface/assets/SettingsRecordings-BQhxLCgM.js +1 -0
  90. package/dist/interface/assets/SettingsRemote-Cvcmpdgb.js +1 -0
  91. package/dist/interface/assets/SettingsRemote-DYld6-1F.css +1 -0
  92. package/dist/interface/assets/SettingsSystem-B-yhq40t.js +2 -0
  93. package/dist/interface/assets/SettingsUsers-CezygBk8.js +1 -0
  94. package/dist/interface/assets/Terminal-CDQJGwb_.js +4 -0
  95. package/dist/interface/assets/{VariableInput-DW39Zo4d.js → VariableInput-CnmqCHf7.js} +1 -1
  96. package/dist/interface/assets/{VariableSuggestions-DwhFBKzJ.js → VariableSuggestions-D6IlwBqV.js} +1 -1
  97. package/dist/interface/assets/VersionsHandler-BHR1k9zz.js +7 -0
  98. package/dist/interface/assets/Workers-Bv-bWBC-.js +2 -0
  99. package/dist/interface/assets/{Workers-E6LM_yAl.css → Workers-DmcQx0L8.css} +1 -1
  100. package/dist/interface/assets/{api-Br3Jmdj6.js → api-BhOwzvxK.js} +1 -1
  101. package/dist/interface/assets/api-Cea16mc8.js +2 -0
  102. package/dist/interface/assets/api-GMfqGYqQ.css +2 -0
  103. package/dist/interface/assets/auth-CNPkdTXX.js +1 -0
  104. package/dist/interface/assets/{automations-Dd-6vvka.js → automations-CHengR-B.js} +1 -1
  105. package/dist/interface/assets/automations-DhLADBhd.js +1 -0
  106. package/dist/interface/assets/bell-outline-CHhIZudN.js +1 -0
  107. package/dist/interface/assets/{cameras-DCMMwuui.js → cameras-DyF2T0be.js} +1 -1
  108. package/dist/interface/assets/{cameras.schema-99F6GE0u.js → cameras.schema-DBzgU4m6.js} +1 -1
  109. package/dist/interface/assets/cloudHandoff-LxdvSi1a.js +1 -0
  110. package/dist/interface/assets/{config-BiEjYldh.js → config-c7o4sJrQ.js} +1 -1
  111. package/dist/interface/assets/{circular-connection-Fq-Vqe3X.js → delete-outline-CbGU9XWz.js} +1 -1
  112. package/dist/interface/assets/{deviceId-sq3mLBKa.js → deviceId-BYu9Q8Ay.js} +1 -1
  113. package/dist/interface/assets/{hasPermission-Dm18Z17u.js → hasPermission-CgyWyOhQ.js} +1 -1
  114. package/dist/interface/assets/instances-CRYtaTQS.js +1 -0
  115. package/dist/interface/assets/main-CgXkx5UO.js +3 -0
  116. package/dist/interface/assets/nodeDefinitions-DUlwYSC1.js +1 -0
  117. package/dist/interface/assets/{notifications-D87Lhlir.js → notifications-sejZCb0L.js} +1 -1
  118. package/dist/interface/assets/plugins-CCLFcD4c.js +1 -0
  119. package/dist/interface/assets/round-restart-alt-PDSZur-0.js +1 -0
  120. package/dist/interface/assets/{router-qrIK2v9X.css → router-C7b6u3Zu.css} +1 -1
  121. package/dist/interface/assets/router-DkMUvvnP.js +2 -0
  122. package/dist/interface/assets/{routerState-B08WcvfU.js → routerState-BR88YV1H.js} +1 -1
  123. package/dist/interface/assets/{server-D7bl4wSy.js → server-C7SETTy9.js} +1 -1
  124. package/dist/interface/assets/shares-Cy1SLL98.js +1 -0
  125. package/dist/interface/assets/{theme-BG6n3TRA.js → theme-DqbhRu7y.js} +1 -1
  126. package/dist/interface/assets/transit-connection-variant-DfztpRMW.js +1 -0
  127. package/dist/interface/assets/types-v8L66UlA.js +1 -0
  128. package/dist/interface/assets/{ui-Cv0M3koY.js → ui-g5rCwxUE.js} +1 -1
  129. package/dist/interface/assets/{useAppVersion-DCmhFeIs.js → useAppVersion-WfdoG9Ji.js} +1 -1
  130. package/dist/interface/assets/useBackupRestore-ootsFhdF.js +1 -0
  131. package/dist/interface/assets/{useBiometricCredentials-Tq1nEG8V.js → useBiometricCredentials-Ca75xEru.js} +1 -1
  132. package/dist/interface/assets/useCameraOptions-BpL2zbfV.js +1 -0
  133. package/dist/interface/assets/{useCuiCameraDrawer-BcAYizqy.js → useCuiCameraDrawer-BHUHw6W6.js} +1 -1
  134. package/dist/interface/assets/useCuiDialog-yVh5UWKF.js +2 -0
  135. package/dist/interface/assets/{useFileDownload-C5quSdZR.js → useFileDownload-BcaNWndS.js} +1 -1
  136. package/dist/interface/assets/useLogsSocket-BRSsUNqv.js +5 -0
  137. package/dist/interface/assets/useLogsSocket-CoA-Nq-_.css +1 -0
  138. package/dist/interface/assets/{useServerRestart-DnT0ZOYm.js → useServerRestart-PZhND5H_.js} +1 -1
  139. package/dist/interface/assets/{useSharedComposables-ffwWlpSL.js → useSharedComposables-USqd05AG.js} +1 -1
  140. package/dist/interface/assets/{useStreamStatus-CD18kTqt.js → useStreamStatus-nCx5ux1-.js} +1 -1
  141. package/dist/interface/assets/{useUpdateChannel-DbBXpySY.js → useUpdateChannel-3eHk3KXZ.js} +1 -1
  142. package/dist/interface/assets/{useUserOptions-Bb0ACtxn.js → useUserOptions-DVC4k8Zs.js} +1 -1
  143. package/dist/interface/assets/{users.schema-BGeyXreN.js → users.schema-B4fEuoKZ.js} +1 -1
  144. package/dist/interface/assets/vendor-cameraui-QuTJKoXE.js +2039 -0
  145. package/dist/interface/assets/vendor-core-CCcu_nmz.js +1 -0
  146. package/dist/interface/assets/{vendor-primevue-DB14kOh6.js → vendor-primevue-BdB7McKg.js} +84 -145
  147. package/dist/interface/assets/view-grid-BWJS0bBD.js +1 -0
  148. package/dist/interface/index.html +49 -48
  149. package/dist/interface/sw.js +1 -1
  150. package/dist/server/package.json +10 -10
  151. package/dist/server/requirements.txt +1 -1
  152. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +2 -0
  153. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +3 -0
  154. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +2 -0
  155. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +10 -2
  156. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/ptz.py +45 -2
  157. package/dist/server/src/api/controllers/instances.controller.d.ts +2 -2
  158. package/dist/server/src/api/controllers/instances.controller.js +7 -7
  159. package/dist/server/src/api/controllers/instances.controller.js.map +1 -1
  160. package/dist/server/src/api/controllers/plugins.controller.js +1 -1
  161. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  162. package/dist/server/src/api/database/backfill.d.ts +5 -0
  163. package/dist/server/src/api/database/backfill.js +89 -0
  164. package/dist/server/src/api/database/backfill.js.map +1 -0
  165. package/dist/server/src/api/database/index.d.ts +1 -0
  166. package/dist/server/src/api/database/index.js +29 -43
  167. package/dist/server/src/api/database/index.js.map +1 -1
  168. package/dist/server/src/api/database/record-schemas.d.ts +231 -0
  169. package/dist/server/src/api/database/record-schemas.js +194 -0
  170. package/dist/server/src/api/database/record-schemas.js.map +1 -0
  171. package/dist/server/src/api/database/types.d.ts +8 -0
  172. package/dist/server/src/api/routes/instances.routes.js +2 -1
  173. package/dist/server/src/api/routes/instances.routes.js.map +1 -1
  174. package/dist/server/src/api/schemas/cameras.schema.d.ts +265 -1
  175. package/dist/server/src/api/schemas/cameras.schema.js +10 -0
  176. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  177. package/dist/server/src/api/schemas/config.schema.d.ts +2 -0
  178. package/dist/server/src/api/schemas/config.schema.js +1 -0
  179. package/dist/server/src/api/schemas/config.schema.js.map +1 -1
  180. package/dist/server/src/api/schemas/instances.schema.d.ts +4 -0
  181. package/dist/server/src/api/schemas/instances.schema.js +5 -0
  182. package/dist/server/src/api/schemas/instances.schema.js.map +1 -1
  183. package/dist/server/src/api/schemas/remote.schema.d.ts +1 -1
  184. package/dist/server/src/api/services/backupScheduler.service.js +1 -1
  185. package/dist/server/src/api/services/backupScheduler.service.js.map +1 -1
  186. package/dist/server/src/api/services/cameras.service.d.ts +1 -0
  187. package/dist/server/src/api/services/cameras.service.js +18 -1
  188. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  189. package/dist/server/src/api/services/instances.service.d.ts +12 -3
  190. package/dist/server/src/api/services/instances.service.js +123 -36
  191. package/dist/server/src/api/services/instances.service.js.map +1 -1
  192. package/dist/server/src/api/services/plugins.service.js +29 -6
  193. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  194. package/dist/server/src/api/services/virtualsensors.service.js +2 -2
  195. package/dist/server/src/api/services/virtualsensors.service.js.map +1 -1
  196. package/dist/server/src/api/types/index.d.ts +4 -1
  197. package/dist/server/src/api/websocket/nsp/main.js +3 -0
  198. package/dist/server/src/api/websocket/nsp/main.js.map +1 -1
  199. package/dist/server/src/api/websocket/nsp/server.d.ts +1 -0
  200. package/dist/server/src/api/websocket/nsp/server.js +3 -1
  201. package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
  202. package/dist/server/src/camera/controller.d.ts +2 -1
  203. package/dist/server/src/camera/controller.js +19 -16
  204. package/dist/server/src/camera/controller.js.map +1 -1
  205. package/dist/server/src/camera/decoder/audio-loop.d.ts +25 -0
  206. package/dist/server/src/camera/decoder/audio-loop.js +163 -0
  207. package/dist/server/src/camera/decoder/audio-loop.js.map +1 -0
  208. package/dist/server/src/camera/decoder/cascade-manager.js +1 -4
  209. package/dist/server/src/camera/decoder/cascade-manager.js.map +1 -1
  210. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +37 -97
  211. package/dist/server/src/camera/decoder/detection-coordinator.js +492 -1369
  212. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  213. package/dist/server/src/camera/decoder/detection-pipeline.d.ts +4 -0
  214. package/dist/server/src/camera/decoder/detection-pipeline.js +14 -24
  215. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  216. package/dist/server/src/camera/decoder/dwell-manager.js +1 -1
  217. package/dist/server/src/camera/decoder/dwell-manager.js.map +1 -1
  218. package/dist/server/src/camera/decoder/event-manager.js +15 -28
  219. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  220. package/dist/server/src/camera/decoder/event-thumbnailer.d.ts +38 -0
  221. package/dist/server/src/camera/decoder/event-thumbnailer.js +192 -0
  222. package/dist/server/src/camera/decoder/event-thumbnailer.js.map +1 -0
  223. package/dist/server/src/camera/decoder/plugin-registry.d.ts +31 -0
  224. package/dist/server/src/camera/decoder/plugin-registry.js +114 -0
  225. package/dist/server/src/camera/decoder/plugin-registry.js.map +1 -0
  226. package/dist/server/src/camera/decoder/{ptz-autotracker.d.ts → ptz/autotracker.d.ts} +19 -0
  227. package/dist/server/src/camera/decoder/ptz/autotracker.js +537 -0
  228. package/dist/server/src/camera/decoder/ptz/autotracker.js.map +1 -0
  229. package/dist/server/src/camera/decoder/reconnect-backoff.d.ts +6 -0
  230. package/dist/server/src/camera/decoder/reconnect-backoff.js +17 -0
  231. package/dist/server/src/camera/decoder/reconnect-backoff.js.map +1 -0
  232. package/dist/server/src/camera/decoder/secondary-stage.d.ts +37 -0
  233. package/dist/server/src/camera/decoder/secondary-stage.js +445 -0
  234. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -0
  235. package/dist/server/src/camera/decoder/{audio-source.js → sources/audio-source.js} +2 -2
  236. package/dist/server/src/camera/decoder/sources/audio-source.js.map +1 -0
  237. package/dist/server/src/camera/decoder/{frame-source.d.ts → sources/frame-source.d.ts} +4 -0
  238. package/dist/server/src/camera/decoder/{frame-source.js → sources/frame-source.js} +30 -12
  239. package/dist/server/src/camera/decoder/sources/frame-source.js.map +1 -0
  240. package/dist/server/src/camera/decoder/{snapshot-source.d.ts → sources/snapshot-source.d.ts} +2 -5
  241. package/dist/server/src/camera/decoder/{snapshot-source.js → sources/snapshot-source.js} +11 -15
  242. package/dist/server/src/camera/decoder/sources/snapshot-source.js.map +1 -0
  243. package/dist/server/src/camera/decoder/stationary-suppressor.d.ts +21 -0
  244. package/dist/server/src/camera/decoder/stationary-suppressor.js +141 -0
  245. package/dist/server/src/camera/decoder/stationary-suppressor.js.map +1 -0
  246. package/dist/server/src/camera/decoder/types.d.ts +6 -1
  247. package/dist/server/src/camera/decoder/types.js +1 -0
  248. package/dist/server/src/camera/decoder/types.js.map +1 -1
  249. package/dist/server/src/camera/decoder/worker.d.ts +1 -0
  250. package/dist/server/src/camera/decoder/worker.js +11 -7
  251. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  252. package/dist/server/src/camera/index.d.ts +5 -1
  253. package/dist/server/src/camera/index.js.map +1 -1
  254. package/dist/server/src/camera/sensors/controller.js +4 -3
  255. package/dist/server/src/camera/sensors/controller.js.map +1 -1
  256. package/dist/server/src/go2rtc/api/routes/discover.js +2 -1
  257. package/dist/server/src/go2rtc/api/routes/discover.js.map +1 -1
  258. package/dist/server/src/go2rtc/api/routes/snapshot.d.ts +3 -3
  259. package/dist/server/src/go2rtc/api/routes/snapshot.js +1 -1
  260. package/dist/server/src/go2rtc/api/routes/snapshot.js.map +1 -1
  261. package/dist/server/src/go2rtc/types.d.ts +3 -0
  262. package/dist/server/src/go2rtc/types.js.map +1 -1
  263. package/dist/server/src/main.js +26 -3
  264. package/dist/server/src/main.js.map +1 -1
  265. package/dist/server/src/manager/downloadManager.js +0 -2
  266. package/dist/server/src/manager/downloadManager.js.map +1 -1
  267. package/dist/server/src/mqtt/bridge.js +1 -1
  268. package/dist/server/src/mqtt/bridge.js.map +1 -1
  269. package/dist/server/src/plugins/schema.js +1 -1
  270. package/dist/server/src/plugins/schema.js.map +1 -1
  271. package/dist/server/src/remote/services/cloudflare-managed.js +16 -5
  272. package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -1
  273. package/dist/server/src/remote/services/cloudflare.d.ts +2 -2
  274. package/dist/server/src/remote/services/cloudflare.js +16 -17
  275. package/dist/server/src/remote/services/cloudflare.js.map +1 -1
  276. package/dist/server/src/remote/services/cloudflaredBinary.d.ts +2 -0
  277. package/dist/server/src/remote/services/cloudflaredBinary.js +20 -0
  278. package/dist/server/src/remote/services/cloudflaredBinary.js.map +1 -0
  279. package/dist/server/src/remote/services/index.d.ts +1 -0
  280. package/dist/server/src/remote/services/index.js +20 -5
  281. package/dist/server/src/remote/services/index.js.map +1 -1
  282. package/dist/server/src/remote/services/urlReadiness.d.ts +11 -0
  283. package/dist/server/src/remote/services/urlReadiness.js +129 -0
  284. package/dist/server/src/remote/services/urlReadiness.js.map +1 -0
  285. package/dist/server/src/rpc/interfaces/device.d.ts +6 -0
  286. package/dist/server/src/services/config/defaults.js +1 -0
  287. package/dist/server/src/services/config/defaults.js.map +1 -1
  288. package/dist/server/src/services/config/types.d.ts +1 -0
  289. package/dist/server/src/utils/npm/index.d.ts +11 -2
  290. package/dist/server/src/utils/npm/index.js +14 -4
  291. package/dist/server/src/utils/npm/index.js.map +1 -1
  292. package/dist/server/src/utils/pythonInstaller.js +3 -3
  293. package/dist/server/src/utils/pythonInstaller.js.map +1 -1
  294. package/dist/server/src/workers/capabilities/plugin-host.js +4 -1
  295. package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -1
  296. package/package.json +10 -10
  297. package/dist/interface/assets/Automation-Kt6pl4MS.js +0 -2
  298. package/dist/interface/assets/AutomationImport-DWQkfeuR.js +0 -2
  299. package/dist/interface/assets/AutomationStore-FbQdggSq.js +0 -2
  300. package/dist/interface/assets/AutomationStoreDetail-D15G_MQy.js +0 -2
  301. package/dist/interface/assets/Automations-urwh-nzl.js +0 -2
  302. package/dist/interface/assets/Camera-Brp9vdg2.js +0 -2
  303. package/dist/interface/assets/Cameras-DDut77Xv.js +0 -652
  304. package/dist/interface/assets/Camview-ChimIRuL.js +0 -1
  305. package/dist/interface/assets/Config-Cy5j6yf_.js +0 -2
  306. package/dist/interface/assets/ConfigActionImageInput-DJovQd4V.js +0 -1
  307. package/dist/interface/assets/ConfigActionNotification-BM2X-K-D.js +0 -1
  308. package/dist/interface/assets/ConfigActionSensor-gxpOX2DC.js +0 -1
  309. package/dist/interface/assets/ConfigConditionSensorState-BaFj9WYl.js +0 -1
  310. package/dist/interface/assets/ConfigTriggerGeofence-DOxaQSWM.js +0 -1
  311. package/dist/interface/assets/ConfigTriggerWebhook-Czyo2Bs-.js +0 -1
  312. package/dist/interface/assets/Console-DBJHlPg2.js +0 -1
  313. package/dist/interface/assets/CuiBottomSheet-B1jcfI0o.js +0 -1
  314. package/dist/interface/assets/CuiCameraCard-HEi3Hoe-.js +0 -1
  315. package/dist/interface/assets/CuiCameraRecordings-C5bd4VAf.js +0 -1
  316. package/dist/interface/assets/CuiCameraShares-BNjnm9yr.js +0 -1
  317. package/dist/interface/assets/CuiCameraSnapshot-C-iPOB3g.js +0 -1
  318. package/dist/interface/assets/CuiCameraTable-CDpfm8fi.js +0 -2
  319. package/dist/interface/assets/CuiFloatingButton-DdI-E8dh.js +0 -1
  320. package/dist/interface/assets/CuiImage-Bxf7z2N4.css +0 -1
  321. package/dist/interface/assets/CuiImage-DBQAYfn1.js +0 -1
  322. package/dist/interface/assets/CuiMenu--tB8FqMF.js +0 -1
  323. package/dist/interface/assets/CuiPluginCard-Cb0XSLIr.js +0 -2
  324. package/dist/interface/assets/CuiPluginOAuthButton-CuppMPTq.js +0 -2
  325. package/dist/interface/assets/CuiPluginTrustBadge-Bcnptf84.js +0 -1
  326. package/dist/interface/assets/CuiRecordingsGrid-DlKUfbeS.js +0 -1
  327. package/dist/interface/assets/CuiSchema-B6q285jE.js +0 -1
  328. package/dist/interface/assets/Faces-DtJmIku2.js +0 -1
  329. package/dist/interface/assets/FirstSteps-CsMSK_YI.js +0 -1
  330. package/dist/interface/assets/Instances-BTNzUfGz.js +0 -1
  331. package/dist/interface/assets/Logs-Bic2YIta.js +0 -6
  332. package/dist/interface/assets/OAuthDeviceFlow-DwSJHrqc.js +0 -1
  333. package/dist/interface/assets/Plugin-B8656Gzo.js +0 -1
  334. package/dist/interface/assets/PluginDetail-BsIkPUY8.css +0 -1
  335. package/dist/interface/assets/PluginDetail-DS8wUbYr.js +0 -2
  336. package/dist/interface/assets/PluginSearch-DBdp5Ifo.js +0 -1
  337. package/dist/interface/assets/PluginSearch-DFtTwd_R.js +0 -2
  338. package/dist/interface/assets/Plugins-C_kdqAp4.js +0 -1
  339. package/dist/interface/assets/Recordings-Cz4uWsI9.js +0 -1
  340. package/dist/interface/assets/SettingsAccount-CALY2rH0.js +0 -1
  341. package/dist/interface/assets/SettingsAccount-_zSgGuBE.js +0 -1
  342. package/dist/interface/assets/SettingsAppearance-z9tBty3q.js +0 -1
  343. package/dist/interface/assets/SettingsBackup-JI_xqcVS.js +0 -1
  344. package/dist/interface/assets/SettingsMqtt-B_tzet_5.js +0 -1
  345. package/dist/interface/assets/SettingsNotifications-FWWveQMH.js +0 -2
  346. package/dist/interface/assets/SettingsRecordings-D-S7rofE.js +0 -1
  347. package/dist/interface/assets/SettingsRemote-CVuDUBMM.js +0 -1
  348. package/dist/interface/assets/SettingsRemote-T38YVHal.css +0 -1
  349. package/dist/interface/assets/SettingsSystem-J7ZT7oRr.js +0 -2
  350. package/dist/interface/assets/SettingsUsers-DvuiYjNg.js +0 -1
  351. package/dist/interface/assets/Terminal-CNzw8wk3.js +0 -4
  352. package/dist/interface/assets/VersionsHandler-CsXazSWK.js +0 -7
  353. package/dist/interface/assets/Workers-BXH8IccG.js +0 -2
  354. package/dist/interface/assets/api-C31uUd3g.css +0 -2
  355. package/dist/interface/assets/api-DR6W2XWy.js +0 -2
  356. package/dist/interface/assets/auth-BJf6VFls.js +0 -1
  357. package/dist/interface/assets/automations-Dt5J3kkY.js +0 -1
  358. package/dist/interface/assets/cloudHandoff-Yc4FJv_l.js +0 -1
  359. package/dist/interface/assets/instances-MscZjRfc.js +0 -1
  360. package/dist/interface/assets/main-4pJkMgxg.js +0 -3
  361. package/dist/interface/assets/nodeDefinitions-5BjF3SJ8.js +0 -1
  362. package/dist/interface/assets/plugins-VeCjoaEi.js +0 -1
  363. package/dist/interface/assets/round-restart-alt-CcJGggln.js +0 -1
  364. package/dist/interface/assets/router-BFG1ClJo.js +0 -2
  365. package/dist/interface/assets/shares-D5xo0sht.js +0 -1
  366. package/dist/interface/assets/transit-connection-variant-CXkATe8I.js +0 -1
  367. package/dist/interface/assets/types-Dyn_Sb2s.js +0 -1
  368. package/dist/interface/assets/useBackupRestore-B-yCV4DL.js +0 -1
  369. package/dist/interface/assets/useCameraOptions-B2lIc9JO.js +0 -1
  370. package/dist/interface/assets/useCuiDialog-DLoFzodG.js +0 -2
  371. package/dist/interface/assets/useLogsSocket-4F2-d9fa.css +0 -1
  372. package/dist/interface/assets/useLogsSocket-B1sCzRXK.js +0 -5
  373. package/dist/interface/assets/vendor-cameraui-DDdtrYBn.js +0 -1978
  374. package/dist/interface/assets/vendor-core-CZuWsjWr.js +0 -1
  375. package/dist/interface/assets/view-grid-DRwNJzxD.js +0 -1
  376. package/dist/server/src/camera/decoder/audio-source.js.map +0 -1
  377. package/dist/server/src/camera/decoder/frame-source.js.map +0 -1
  378. package/dist/server/src/camera/decoder/ptz-autotracker.js +0 -342
  379. package/dist/server/src/camera/decoder/ptz-autotracker.js.map +0 -1
  380. package/dist/server/src/camera/decoder/snapshot-source.js.map +0 -1
  381. /package/dist/server/src/camera/decoder/{audio-source.d.ts → sources/audio-source.d.ts} +0 -0
@@ -0,0 +1,163 @@
1
+ import { sleep } from '@camera.ui/common/utils';
2
+ import { isAudioModelSpec } from './plugin-registry.js';
3
+ import { ReconnectBackoff } from './reconnect-backoff.js';
4
+ import { AudioSource } from './sources/audio-source.js';
5
+ function calculateDBFS(data, format) {
6
+ let sumSquares = 0;
7
+ let sampleCount = 0;
8
+ if (format === 'float32') {
9
+ const floatView = new Float32Array(data.buffer, data.byteOffset, data.byteLength / 4);
10
+ sampleCount = floatView.length;
11
+ for (let i = 0; i < sampleCount; i++)
12
+ sumSquares += floatView[i] * floatView[i];
13
+ }
14
+ else {
15
+ // PCM16: normalize [-32768, 32767] → [-1.0, 1.0]
16
+ const int16View = new Int16Array(data.buffer, data.byteOffset, data.byteLength / 2);
17
+ sampleCount = int16View.length;
18
+ for (let i = 0; i < sampleCount; i++) {
19
+ const normalized = int16View[i] / 32768;
20
+ sumSquares += normalized * normalized;
21
+ }
22
+ }
23
+ if (sampleCount === 0)
24
+ return -100;
25
+ const rms = Math.sqrt(sumSquares / sampleCount);
26
+ return rms > 0 ? 20 * Math.log10(Math.max(rms, 1e-10)) : -100;
27
+ }
28
+ export class AudioDetectionLoop {
29
+ hooks;
30
+ logger;
31
+ running = false;
32
+ loopPromise;
33
+ stopPromise;
34
+ backoff = new ReconnectBackoff();
35
+ source;
36
+ constructor(hooks, logger) {
37
+ this.hooks = hooks;
38
+ this.logger = logger;
39
+ }
40
+ start() {
41
+ if (this.running || this.stopPromise)
42
+ return;
43
+ this.logger.debug('Starting audio detection loop');
44
+ this.running = true;
45
+ this.backoff.reset();
46
+ this.loopPromise = this.run();
47
+ }
48
+ async stop() {
49
+ if (!this.running) {
50
+ if (this.stopPromise)
51
+ await this.stopPromise;
52
+ return;
53
+ }
54
+ this.logger.debug('Stopping audio detection loop');
55
+ this.running = false;
56
+ const doStop = async () => {
57
+ await this.source?.stop();
58
+ await this.loopPromise;
59
+ this.loopPromise = undefined;
60
+ };
61
+ this.stopPromise = doStop();
62
+ try {
63
+ await this.stopPromise;
64
+ }
65
+ finally {
66
+ this.stopPromise = undefined;
67
+ }
68
+ }
69
+ async waitForStop() {
70
+ if (this.stopPromise)
71
+ await this.stopPromise;
72
+ }
73
+ async run() {
74
+ const audioPlugin = this.hooks.getPlugin();
75
+ if (!audioPlugin?.requiresFrames)
76
+ return;
77
+ const audioSpec = isAudioModelSpec(audioPlugin.modelSpec) ? audioPlugin.modelSpec : undefined;
78
+ const sampleRate = audioSpec?.input.sampleRate ?? 16000;
79
+ const channels = audioSpec?.input.channels ?? 1;
80
+ const format = audioSpec?.input.format ?? 'float32';
81
+ const samplesPerFrame = audioSpec?.input.samplesPerFrame;
82
+ const audioConfig = {
83
+ streamUrl: this.hooks.getStreamUrl(),
84
+ sampleRate,
85
+ channels,
86
+ format,
87
+ samplesPerFrame,
88
+ };
89
+ while (this.running) {
90
+ try {
91
+ this.source = new AudioSource(audioConfig, this.logger);
92
+ await this.source.start();
93
+ this.logger.debug('Audio stream connected, processing audio frames...');
94
+ this.backoff.reset();
95
+ let frameCount = 0;
96
+ let lastAudioFrameId = -1;
97
+ while (this.running) {
98
+ const snap = await this.source.nextFrame(lastAudioFrameId);
99
+ if (!snap)
100
+ break; // source ended (stop or EOF)
101
+ lastAudioFrameId = snap.id;
102
+ const rawFrame = snap.frame;
103
+ frameCount++;
104
+ try {
105
+ const frameData = rawFrame.data;
106
+ if (!frameData?.[0])
107
+ continue;
108
+ const rawData = frameData[0];
109
+ const dBFS = calculateDBFS(rawData, format);
110
+ if (dBFS < this.hooks.getMinDecibels())
111
+ continue;
112
+ const audioFrame = {
113
+ cameraId: this.hooks.cameraId,
114
+ data: rawData,
115
+ sampleRate,
116
+ channels,
117
+ format,
118
+ timestamp: Date.now(),
119
+ };
120
+ const result = await audioPlugin.proxy.detectAudio(audioFrame);
121
+ if (!result)
122
+ continue;
123
+ this.hooks.onResult(audioPlugin.sensorId, result);
124
+ }
125
+ catch (error) {
126
+ this.logger.error('Audio detection error:', error);
127
+ }
128
+ finally {
129
+ try {
130
+ rawFrame[Symbol.dispose]?.();
131
+ }
132
+ catch {
133
+ // best-effort
134
+ }
135
+ }
136
+ }
137
+ const streamError = this.source.lastError;
138
+ await this.source.stop();
139
+ if (this.running && streamError) {
140
+ const delay = this.backoff.nextDelayMs();
141
+ this.logger.warn(`Audio stream ended with read error, reconnecting in ${delay / 1000}s: ${streamError.message}`);
142
+ await sleep(delay);
143
+ }
144
+ else if (this.running && frameCount === 0) {
145
+ this.logger.debug('Audio stream ended without frames, waiting before reconnect...');
146
+ await sleep(this.backoff.idleDelayMs);
147
+ }
148
+ }
149
+ catch (error) {
150
+ if (!this.running)
151
+ break;
152
+ await this.source?.stop();
153
+ const delay = this.backoff.nextDelayMs();
154
+ this.logger.warn(`Audio stream error, reconnecting in ${delay / 1000}s: ${error.message}`);
155
+ await sleep(delay);
156
+ }
157
+ }
158
+ await this.source?.stop();
159
+ this.source = undefined;
160
+ this.logger.debug('Audio detection loop ended');
161
+ }
162
+ }
163
+ //# sourceMappingURL=audio-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-loop.js","sourceRoot":"","sources":["../../../../../src/camera/decoder/audio-loop.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,8 @@
1
- // Default delay (ms) before cascade is marked inactive after the last trigger ends.
2
1
  export const CASCADE_CLEAR_DELAY_MS = 1500;
3
2
  export class CascadeManager {
4
3
  active = false;
5
- // Auto-clear timer for `triggerMomentary()`.
6
4
  momentaryTimer;
7
5
  momentaryFlag = false;
8
- // Delayed cascade-end timer — gives brief trigger gaps a grace period.
9
6
  deactivateTimer;
10
7
  listeners = new Set();
11
8
  get isActive() {
@@ -74,7 +71,7 @@ export class CascadeManager {
74
71
  listener(event);
75
72
  }
76
73
  catch {
77
- // Listener errors must not corrupt manager state.
74
+ // ignore
78
75
  }
79
76
  }
80
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cascade-manager.js","sourceRoot":"","sources":["../../../../../src/camera/decoder/cascade-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cascade-manager.js","sourceRoot":"","sources":["../../../../../src/camera/decoder/cascade-manager.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,15 @@
1
1
  import { SensorType } from '@camera.ui/sdk';
2
2
  import type { Logger } from '@camera.ui/common/logger';
3
- import type { Promisify, RPCClient } from '@camera.ui/rpc';
4
- import type { AudioModelSpec, CameraDetectionSettings, CameraFrameWorkerSettings, CameraUiSettings, DetectionLine, DetectionZone, ModelSpec, ObjectModelSpec, PtzAutotrackSettings, StreamingRole } from '@camera.ui/sdk';
5
- import type { CoordinatorSensorInfo, DetectionPluginInterface } from '../../rpc/interfaces/detection.js';
6
- type AnyModelSpec = ObjectModelSpec | ModelSpec | AudioModelSpec;
7
- interface RegisteredPlugin {
8
- pluginId: string;
9
- sensorId: string;
10
- sensorType: SensorType;
11
- requiresFrames: boolean;
12
- modelSpec?: AnyModelSpec;
13
- proxy: Promisify<DetectionPluginInterface>;
14
- }
15
- export interface CoordinatorSourceUrl {
16
- role: StreamingRole;
17
- url: string;
18
- }
3
+ import type { RPCClient } from '@camera.ui/rpc';
4
+ import type { CameraDetectionSettings, CameraFrameWorkerSettings, CameraUiSettings, DetectionLine, DetectionZone, PtzAutotrackSettings } from '@camera.ui/sdk';
5
+ import type { CoordinatorSensorInfo } from '../../rpc/interfaces/detection.js';
6
+ import type { CoordinatorSourceUrl } from './types.js';
19
7
  export interface DetectionCoordinatorConfig {
20
8
  cameraId: string;
21
9
  streamUrl: string;
22
10
  snapshotUrl: string;
23
11
  audioStreamUrl: string;
12
+ controllerSnapshotSourceId?: string;
24
13
  availableSources?: CoordinatorSourceUrl[];
25
14
  zones: DetectionZone[];
26
15
  lines: DetectionLine[];
@@ -29,60 +18,34 @@ export interface DetectionCoordinatorConfig {
29
18
  frameWorkerSettings: CameraFrameWorkerSettings;
30
19
  interfaceSettings: CameraUiSettings;
31
20
  }
32
- export declare const DEFAULT_CASCADE_TIMEOUT = 10;
33
- export declare const STATIONARY_SPEED_THRESHOLD = 0.002;
34
21
  export declare class DetectionCoordinator {
35
22
  private config;
36
23
  private readonly proxy;
37
24
  private readonly logger;
38
25
  private frameSource;
39
26
  private frameScaler;
40
- private singlePlugins;
41
- private multiPlugins;
42
- private loopRunning;
43
- private loopPromise?;
44
- private videoStopPromise?;
45
- private audioSource?;
46
- private audioLoopRunning;
47
- private audioLoopPromise?;
48
- private audioStopPromise?;
49
- private audioReconnectCount;
50
- private reconnectCount;
51
- private readonly maxReconnectCount;
52
- private readonly normalReconnectDelay;
53
- private readonly maxReconnectDelay;
27
+ private readonly plugins;
28
+ private readonly pipeline;
29
+ private readonly stationary;
30
+ private readonly secondaries;
31
+ private readonly thumbnailer;
32
+ private readonly audioLoop;
54
33
  private readonly ptzAutotracker;
55
34
  private readonly eventManager;
56
35
  private readonly cascade;
57
36
  private readonly dwell;
58
- private pipeline;
37
+ private readonly videoBackoff;
38
+ private loopRunning;
39
+ private loopPromise?;
40
+ private videoStopPromise?;
59
41
  private adHocVideoLoop;
60
42
  private processingExternalSecondary;
61
- private hqSnapshotSource?;
62
- private hqUpgradeInflight;
63
- private hqAspectWarned;
64
43
  private cascadeUnsubscribe?;
65
44
  private dwellUnsubscribe?;
66
- private seenStationaryTracks;
67
45
  private readonly activeSensorTriggerTypes;
46
+ private readonly secondaryBboxSeen;
68
47
  private currentDetectionState;
69
- private get cascadeEnabled();
70
- private get cascadeTimeoutSeconds();
71
- private get audioMinDecibels();
72
- private get motionResolution();
73
- private get targetFps();
74
- private get videoAspectRatio();
75
- private nvrProxy?;
76
- private nvrProxyPromise?;
77
48
  constructor(config: DetectionCoordinatorConfig, proxy: RPCClient, logger: Logger);
78
- private handleCascadeDeactivated;
79
- private handleEventEnded;
80
- private writeSensorProperties;
81
- private buildSnapshot;
82
- private getNormalizedDetectionZones;
83
- private applyExternalDetectionFilters;
84
- private ingestDetectionResult;
85
- private updateBufferForType;
86
49
  updateZones(zones: DetectionZone[]): void;
87
50
  updateLines(lines: DetectionLine[]): void;
88
51
  updateDetectionSettings(settings: CameraDetectionSettings): void;
@@ -93,62 +56,39 @@ export declare class DetectionCoordinator {
93
56
  onSensorAdded(sensor: CoordinatorSensorInfo): Promise<void>;
94
57
  onSensorRemoved(sensorId: string): Promise<void>;
95
58
  onSensorCapabilitiesChanged(sensorId: string, capabilities: string[]): void;
96
- private registerDetectionPluginInternal;
97
- private removeDetectionPluginBySensor;
98
59
  reportSensorWrite(sensorId: string, sensorType: SensorType, properties: Record<string, unknown>): Promise<void>;
99
60
  reportSensorTrigger(sensorId: string, triggerType: string, action: 'activate' | 'deactivate', _sustained: boolean, timeoutSeconds: number): void;
100
61
  reconcileSensorTriggers(activeSensorIds: readonly string[]): void;
101
- private clearMotionStateForSuppression;
102
62
  hasPlugin(sensorType: SensorType): boolean;
103
- getPlugin(sensorType: SensorType): RegisteredPlugin | undefined;
104
- getPluginsForType(sensorType: SensorType): RegisteredPlugin[];
105
- getPlugins(): RegisteredPlugin[];
106
- hasAnyPlugins(): boolean;
107
- isRunning(): boolean;
108
- isStreaming(): boolean;
109
- private hasSecondaryModelSpec;
110
- private isVideoInputSpec;
111
- private isOnEdge;
112
- private isAudioModelSpec;
113
- private isMultiProvider;
114
- private shouldVideoBeActive;
115
- private shouldAudioBeActive;
63
+ private get cascadeEnabled();
64
+ private get cascadeTimeoutSeconds();
65
+ private get motionResolution();
66
+ private get targetFps();
67
+ private get videoAspectRatio();
68
+ private handleCascadeDeactivated;
69
+ private handleEventEnded;
70
+ private handleAudioLoopResult;
71
+ private writeSensorProperties;
72
+ private buildSnapshot;
73
+ private getNormalizedDetectionZones;
74
+ private applyExternalDetectionFilters;
75
+ private ingestDetectionResult;
76
+ private updateBufferForType;
77
+ private registerDetectionPluginInternal;
78
+ private removeDetectionPluginBySensor;
79
+ private handleSuppressionActivated;
80
+ private clearSecondaryBboxes;
81
+ private clearStaleSecondaryBboxes;
116
82
  private startVideoLoop;
117
83
  private stopVideoLoop;
118
- private startAudioLoop;
119
- private stopAudioLoop;
120
- private hasFrameBasedSecondary;
121
- private needsAdHocLoop;
122
84
  private startAdHocVideoLoopIfNeeded;
123
85
  private stopAdHocVideoLoopIfIdle;
124
- private fetchEventThumbnailAsync;
125
- private upgradeEventThumbnailAsync;
126
- private acquireHqFrame;
127
- private resolveHqSourceUrl;
128
- private syncHqSnapshotSource;
129
- private calculateDBFS;
130
- private runAudioDetectionLoop;
131
86
  private runDetectionLoop;
132
87
  private processRawFrame;
133
88
  private processDetection;
89
+ private runSecondariesAndThumbnails;
90
+ private ingestResultsForAllSecondaries;
134
91
  private snapshotWillStartEvent;
135
- private resolveFaceIdentities;
136
92
  private scaleForMotion;
137
93
  private scaleForObject;
138
- private prepareSecondaryRegions;
139
- private runSecondaryDetection;
140
- private ingestResultsForAllSecondaries;
141
- private runSecondariesAndThumbnails;
142
- private runSecondariesFullFrame;
143
- private prepareFullFrameRegions;
144
- private prepareSecondaryFrames;
145
- private runFaceDetection;
146
- private runLicensePlateDetection;
147
- private runClassifierDetections;
148
- private runClipDetection;
149
- private generateThumbnails;
150
- private transformBoxToOriginal;
151
- private getNvrProxy;
152
- private resolveNvrProxy;
153
94
  }
154
- export {};