@camera.ui/server 2.0.15 → 2.0.17

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 (656) hide show
  1. package/dist/interface/assets/404-BWRNG7e3.js +1 -0
  2. package/dist/interface/assets/About-CWvfgUA-.js +1 -0
  3. package/dist/interface/assets/Adminpanel-Cat_euTC.js +1 -0
  4. package/dist/interface/assets/{Automation-Cm62xfWQ.css → Automation-BSicfOGF.css} +1 -1
  5. package/dist/interface/assets/Automation-cp0lTCAv.js +3 -0
  6. package/dist/interface/assets/AutomationImport-mCGSgys2.js +2 -0
  7. package/dist/interface/assets/AutomationStore-udNOn3FR.js +2 -0
  8. package/dist/interface/assets/AutomationStoreDetail-CcVksadt.js +2 -0
  9. package/dist/interface/assets/Automations-CcQLbmoN.js +2 -0
  10. package/dist/interface/assets/Camera-Cq466-gT.js +2 -0
  11. package/dist/interface/assets/CameraConsole-A414-zXW.js +7 -0
  12. package/dist/interface/assets/Cameras-CW5XnJ1g.js +652 -0
  13. package/dist/interface/assets/Cameras-DIY20Wlh.css +1 -0
  14. package/dist/interface/assets/{Camview-CS2a2okQ.css → Camview-CaEbdeQZ.css} +1 -1
  15. package/dist/interface/assets/Camview-zK6fnWI0.js +1 -0
  16. package/dist/interface/assets/Config-R2N_QUER.js +2 -0
  17. package/dist/interface/assets/ConfigActionCameraControl-DdW92QxO.js +1 -0
  18. package/dist/interface/assets/{ConfigActionDelay-Bb2XWLM-.js → ConfigActionDelay-BiCLaHDd.js} +1 -1
  19. package/dist/interface/assets/ConfigActionHttp-BvM-8hTt.js +1 -0
  20. package/dist/interface/assets/ConfigActionImageInput-CoyrNloo.js +1 -0
  21. package/dist/interface/assets/ConfigActionMqtt-CY8HOoug.js +1 -0
  22. package/dist/interface/assets/ConfigActionNotification-DP3dTyFB.js +1 -0
  23. package/dist/interface/assets/ConfigActionOutput-BwYwuQ1w.js +1 -0
  24. package/dist/interface/assets/ConfigActionPlugin-DbhT4kyF.js +1 -0
  25. package/dist/interface/assets/ConfigActionSensor-_zmPKdhz.js +1 -0
  26. package/dist/interface/assets/ConfigActionSnapshot-Bc3eukMk.js +1 -0
  27. package/dist/interface/assets/ConfigActionVariable-BeQy6W8G.js +1 -0
  28. package/dist/interface/assets/ConfigConditionIfElse-CiFC5fLv.js +1 -0
  29. package/dist/interface/assets/ConfigConditionSensorState-CGeGdh0d.js +1 -0
  30. package/dist/interface/assets/ConfigConditionSwitch-BjR776j5.js +1 -0
  31. package/dist/interface/assets/{ConfigConditionTime-DoUDxRHq.js → ConfigConditionTime-BAypML9_.js} +1 -1
  32. package/dist/interface/assets/ConfigSensorValueInput-Dis2Kr1r.js +1 -0
  33. package/dist/interface/assets/ConfigTriggerDetection-CqS3IAqj.js +1 -0
  34. package/dist/interface/assets/ConfigTriggerGeofence-BbNpW2l0.js +1 -0
  35. package/dist/interface/assets/{ConfigTriggerManual-BV099ihK.js → ConfigTriggerManual-DiyFl_g-.js} +1 -1
  36. package/dist/interface/assets/ConfigTriggerMqtt-ZXEft2Hi.js +1 -0
  37. package/dist/interface/assets/ConfigTriggerSchedule-Dy3NCMvo.js +1 -0
  38. package/dist/interface/assets/ConfigTriggerSensor-CnSSEh4s.js +1 -0
  39. package/dist/interface/assets/{ConfigTriggerSystem-C2E5WMPm.js → ConfigTriggerSystem-CuKwsM8D.js} +1 -1
  40. package/dist/interface/assets/ConfigTriggerWebhook-DJPepSlC.js +1 -0
  41. package/dist/interface/assets/Console-tfkkZnFl.js +1 -0
  42. package/dist/interface/assets/CuiAutomationRunsDialog-o2aLvK5K.js +1 -0
  43. package/dist/interface/assets/CuiBottomSheet-m_HX6x4G.js +1 -0
  44. package/dist/interface/assets/CuiBottomSheet-v2xnKGrr.js +1 -0
  45. package/dist/interface/assets/CuiCameraPipCard-CId6q8WW.js +1 -0
  46. package/dist/interface/assets/CuiCameraRecordings-C_1UfpAJ.js +1 -0
  47. package/dist/interface/assets/CuiCameraShares-DW_hDX2f.js +1 -0
  48. package/dist/interface/assets/CuiCameraTable-BXzZ-gIg.js +2 -0
  49. package/dist/interface/assets/CuiDataTable-CrL6zx3I.js +1 -0
  50. package/dist/interface/assets/{CuiMarkdownContent-DQPIfY1K.js → CuiMarkdownContent-BwMdbyad.js} +1 -1
  51. package/dist/interface/assets/CuiMarkdownContent-G916_kVN.js +1 -0
  52. package/dist/interface/assets/CuiPluginCard-C38Fk0bQ.js +2 -0
  53. package/dist/interface/assets/CuiPluginCategoryChip-B3XVum_D.js +1 -0
  54. package/dist/interface/assets/CuiPluginOAuthButton-DRJnVV4F.js +2 -0
  55. package/dist/interface/assets/CuiPluginTrustBadge-4xCyAUBM.js +1 -0
  56. package/dist/interface/assets/CuiQRCode-DmsP4eAY.js +1 -0
  57. package/dist/interface/assets/CuiRecordingsGrid-BnL8kQ29.js +1 -0
  58. package/dist/interface/assets/CuiSchema-D2yLW853.js +1 -0
  59. package/dist/interface/assets/CuiTopNavbarItem-_7UaVuQT.js +1 -0
  60. package/dist/interface/assets/Faces-BPgUsyT0.js +1 -0
  61. package/dist/interface/assets/FirstSteps-CKXlbFN-.js +1 -0
  62. package/dist/interface/assets/Instances-BS4UPlay.js +1 -0
  63. package/dist/interface/assets/Logs-UPgu6TsC.js +6 -0
  64. package/dist/interface/assets/Menu-CdewzDV4.js +1 -0
  65. package/dist/interface/assets/OAuthDeviceFlow-SGgJTWAU.js +1 -0
  66. package/dist/interface/assets/Plugin-BSSYZcyQ.js +1 -0
  67. package/dist/interface/assets/PluginConsole-Bm0ify7V.js +7 -0
  68. package/dist/interface/assets/PluginDetail-DY6Uvu3V.js +2 -0
  69. package/dist/interface/assets/PluginSchema-BkM5iKma.js +1 -0
  70. package/dist/interface/assets/PluginSearch-4q_vZHJc.js +2 -0
  71. package/dist/interface/assets/PluginSearch-BvhNP9WQ.js +1 -0
  72. package/dist/interface/assets/Plugins-B1tZxl7k.js +1 -0
  73. package/dist/interface/assets/Recordings-XY32_Jjt.js +1 -0
  74. package/dist/interface/assets/Settings-CXWxt73x.js +1 -0
  75. package/dist/interface/assets/SettingsAccount-MLkJU79V.js +1 -0
  76. package/dist/interface/assets/SettingsAccount-RGvmNkwD.js +1 -0
  77. package/dist/interface/assets/SettingsAppearance-CHRnfQ4O.js +1 -0
  78. package/dist/interface/assets/SettingsAppearance-CyaOt4lL.js +1 -0
  79. package/dist/interface/assets/SettingsBackup-Xjb4i_YZ.js +1 -0
  80. package/dist/interface/assets/SettingsMqtt-CW0uvXrU.js +1 -0
  81. package/dist/interface/assets/SettingsNotifications-BbyXpyHK.js +2 -0
  82. package/dist/interface/assets/SettingsRecordings-DVZPpunU.js +1 -0
  83. package/dist/interface/assets/SettingsRemote-BnFHx9_s.js +1 -0
  84. package/dist/interface/assets/SettingsSystem-C1ne-w59.js +2 -0
  85. package/dist/interface/assets/SettingsUsers-91m0163s.js +1 -0
  86. package/dist/interface/assets/Terminal-D_E-kRbN.js +4 -0
  87. package/dist/interface/assets/VariableInput-BHvGHE7o.js +1 -0
  88. package/dist/interface/assets/{VariableSuggestions-Jya3l4gC.js → VariableSuggestions-uJAwwX7y.js} +1 -1
  89. package/dist/interface/assets/VersionsHandler-DJ00TTHi.js +7 -0
  90. package/dist/interface/assets/Workers-BCBrqShK.js +2 -0
  91. package/dist/interface/assets/{account-Bj9K0GxP.js → account-jONrhXkE.js} +1 -1
  92. package/dist/interface/assets/ace-DYqf8ZN7.js +1 -0
  93. package/dist/interface/assets/{ace.config-BnKJ0Xjj.js → ace.config-C_wgqTLD.js} +1 -1
  94. package/dist/interface/assets/{alert-circle-CIUWSUwz.js → alert-circle-CqEfEWD8.js} +1 -1
  95. package/dist/interface/assets/{alert-outline-Drr1xRLR.js → alert-outline-DcXO2ICo.js} +1 -1
  96. package/dist/interface/assets/api-ByMXkaIi.js +1 -0
  97. package/dist/interface/assets/api-ChlkJnEG.js +2 -0
  98. package/dist/interface/assets/api-Ct6LuJao.css +2 -0
  99. package/dist/interface/assets/{arrow-left-D2D7yHHS.js → arrow-left-DGioEwqJ.js} +1 -1
  100. package/dist/interface/assets/{arrow-right-outline-Dr-uFrTL.js → arrow-right-outline-BrpH6MGt.js} +1 -1
  101. package/dist/interface/assets/auth-B-MND66x.js +1 -0
  102. package/dist/interface/assets/automations-DvpxT4Pa.js +1 -0
  103. package/dist/interface/assets/{back-filled-BKNm4yL0.js → back-filled-DZmo9cAg.js} +1 -1
  104. package/dist/interface/assets/{bell-ring-AbG0SUiu.js → bell-ring-D0h1GDrU.js} +1 -1
  105. package/dist/interface/assets/cameras.schema-2VoKYyFS.js +1 -0
  106. package/dist/interface/assets/{cctv-Dsa9GjK0.js → cctv-CdDfBHME.js} +1 -1
  107. package/dist/interface/assets/{check-circle-M9jSNRsu.js → check-circle-CVNa_reg.js} +1 -1
  108. package/dist/interface/assets/{chevron-down-DHv255ZG.js → chevron-down-BiRUJ9SO.js} +1 -1
  109. package/dist/interface/assets/{chevron-right-25txPYbE.js → chevron-right-Crha-j7O.js} +1 -1
  110. package/dist/interface/assets/{clock-outline-BJld7K8T.js → clock-outline-dv-kmi60.js} +1 -1
  111. package/dist/interface/assets/{close-CmLBRV0p.js → close-BCRtoBTk.js} +1 -1
  112. package/dist/interface/assets/{close-circle-BHvnizih.js → close-circle-raXx3m4Q.js} +1 -1
  113. package/dist/interface/assets/{cloud-check-BugyVe-9.js → cloud-check-CST59Xl_.js} +1 -1
  114. package/dist/interface/assets/cloudHandoff-o_0n9cgb.js +1 -0
  115. package/dist/interface/assets/config-UED3wn2k.js +1 -0
  116. package/dist/interface/assets/{copy-DDVxvyoc.js → copy-C53ZJyaU.js} +1 -1
  117. package/dist/interface/assets/{delete-CtYWBBjD.js → delete-Dvdp44LT.js} +1 -1
  118. package/dist/interface/assets/{dist-DTS9WzwS.js → dist-DZi5AgJB.js} +1 -1
  119. package/dist/interface/assets/{download-DI4SAe-9.js → download-Dq82fWLS.js} +1 -1
  120. package/dist/interface/assets/esm-5O0fbEL-.js +1 -0
  121. package/dist/interface/assets/esm-8JcCIx6p.js +1 -0
  122. package/dist/interface/assets/esm-BIwkRkap.js +1 -0
  123. package/dist/interface/assets/esm-Ba1kg7sT.js +1 -0
  124. package/dist/interface/assets/esm-CI9fumfA.js +1 -0
  125. package/dist/interface/assets/esm-CfqCZ8Ic.js +1 -0
  126. package/dist/interface/assets/esm-Cle2K7IB.js +1 -0
  127. package/dist/interface/assets/esm-DGhY5suq.js +1 -0
  128. package/dist/interface/assets/esm-D_SYso1m.js +1 -0
  129. package/dist/interface/assets/esm-Dg-c_Ys9.js +1 -0
  130. package/dist/interface/assets/esm-IjMpYY_D.js +1 -0
  131. package/dist/interface/assets/esm-JkR46BGF.js +1 -0
  132. package/dist/interface/assets/esm-KCb4USia.js +1 -0
  133. package/dist/interface/assets/esm-fiu1-7Vf.js +1 -0
  134. package/dist/interface/assets/flowSchema-DyobL8Pg.js +1 -0
  135. package/dist/interface/assets/history--LGIMjNU.js +1 -0
  136. package/dist/interface/assets/{home-BJNZT_YD.js → home-C5hRJg9h.js} +1 -1
  137. package/dist/interface/assets/{information-outline-CHe_6DI5.js → information-outline-CjhiKBjG.js} +1 -1
  138. package/dist/interface/assets/lightbulb-outline-BGFG7wv-.js +1 -0
  139. package/dist/interface/assets/main-Cd1DVdC9.js +3 -0
  140. package/dist/interface/assets/{main-xpYSWHxw.css → main-DbPnvfcp.css} +1 -1
  141. package/dist/interface/assets/{microphone-BOOe4oV_.js → microphone-Dp5Yhz6Z.js} +1 -1
  142. package/dist/interface/assets/mqtt-BltdxiuG.js +1 -0
  143. package/dist/interface/assets/native-CNOra93F.js +1 -0
  144. package/dist/interface/assets/native-DAl9Pmov.js +1 -0
  145. package/dist/interface/assets/nodeDefinitions-DkMCR_zX.js +1 -0
  146. package/dist/interface/assets/notifications-D4Mi4q8n.js +1 -0
  147. package/dist/interface/assets/plugin-HHKHhKIh.js +1 -0
  148. package/dist/interface/assets/plugins-DmgMSZSt.js +1 -0
  149. package/dist/interface/assets/{plus-7Bv7p-4I.js → plus-C6l_Q-mY.js} +1 -1
  150. package/dist/interface/assets/{plus-BCms6Xgy.js → plus-DhRnJIfm.js} +1 -1
  151. package/dist/interface/assets/{power-U-0IYm8S.js → power-BfcMaKbx.js} +1 -1
  152. package/dist/interface/assets/{ring-resize-D94sHXpl.js → ring-resize-peEJMXPl.js} +1 -1
  153. package/dist/interface/assets/{round-alt-arrow-left-bold-D32PAlNy.js → round-alt-arrow-left-bold-BcL7KVCG.js} +1 -1
  154. package/dist/interface/assets/round-restart-alt-D1SwcyIw.js +1 -0
  155. package/dist/interface/assets/{search-Bl-cpkGE.js → search-BTu5ntI6.js} +1 -1
  156. package/dist/interface/assets/server-BBvLLocT.js +1 -0
  157. package/dist/interface/assets/{settings-U-eM-yb0.js → settings-wRDwvjf-.js} +1 -1
  158. package/dist/interface/assets/{source-branch-BUtkgBs9.js → source-branch-DejOTyZv.js} +1 -1
  159. package/dist/interface/assets/theme-CHyA8uCs.js +1 -0
  160. package/dist/interface/assets/{trash-2-BC03Elz-.js → trash-2-upauF9j0.js} +1 -1
  161. package/dist/interface/assets/{trash-can-outline-B2dODnEo.js → trash-can-outline-PQys0L3O.js} +1 -1
  162. package/dist/interface/assets/{trash-fill-DP6UF4-i.js → trash-fill-DDHuYpvM.js} +1 -1
  163. package/dist/interface/assets/{trash2-D2pzjkdI.js → trash2-M6P7YvkH.js} +1 -1
  164. package/dist/interface/assets/types-ByD7R6WC.js +1 -0
  165. package/dist/interface/assets/types-DRsoZjsP.js +1 -0
  166. package/dist/interface/assets/types-f9LWayxM.js +1 -0
  167. package/dist/interface/assets/{upload-BohhBI5n.js → upload-DwNCSVAl.js} +1 -1
  168. package/dist/interface/assets/{useAppVersion-IC8NIRbM.js → useAppVersion-dQkatyRF.js} +1 -1
  169. package/dist/interface/assets/useBackupRestore-D6Vxck9i.js +1 -0
  170. package/dist/interface/assets/useCameraOptions-zPRiut_S.js +1 -0
  171. package/dist/interface/assets/useCardSelection-BdYBm23a.js +1 -0
  172. package/dist/interface/assets/useLogsSocket-DzKSWAVf.js +5 -0
  173. package/dist/interface/assets/{useServerRestart-CWWCuwJk.js → useServerRestart-DjaOOudi.js} +1 -1
  174. package/dist/interface/assets/useStreamStatus-DpXFSeOf.js +1 -0
  175. package/dist/interface/assets/useUserOptions-B8T0ROJS.js +1 -0
  176. package/dist/interface/assets/{variable-DRbxOwmi.js → variable-K7DoQHpX.js} +1 -1
  177. package/dist/interface/assets/{vendor-BLNgd-x3.js → vendor-CdGy-Xet.js} +3 -3
  178. package/dist/interface/assets/{vendor-ace-BlP3GAWI.js → vendor-ace-CrklN-bc.js} +1 -1
  179. package/dist/interface/assets/vendor-cameraui-D7o3alq7.js +2039 -0
  180. package/dist/interface/assets/vendor-capacitor-BmJAC1FL.js +2 -0
  181. package/dist/interface/assets/{vendor-chart-Dvv3fqtl.js → vendor-chart-BDu4sN9x.js} +1 -1
  182. package/dist/interface/assets/vendor-core-M6N9PctY.js +1 -0
  183. package/dist/interface/assets/{vendor-dnd-DRBhj_4o.js → vendor-dnd-BN6m9rq8.js} +2 -2
  184. package/dist/interface/assets/{vendor-draggabilly-1XTUOfXs.js → vendor-draggabilly-BLoTmI_a.js} +1 -1
  185. package/dist/interface/assets/vendor-gridstack-DHPnER0W.js +3 -0
  186. package/dist/interface/assets/vendor-gridstack-Dxwp3vpP.css +1 -0
  187. package/dist/interface/assets/{vendor-markdown-CCHIN82I.js → vendor-markdown-D_3Of-Gz.js} +1 -1
  188. package/dist/interface/assets/{vendor-primevue-CpvvTA4S.js → vendor-primevue-BynQnxoR.js} +204 -204
  189. package/dist/interface/assets/{vendor-vueflow-ta6qJibr.js → vendor-vueflow-D7rAeKHv.js} +1 -1
  190. package/dist/interface/assets/vendor-zod-BaT-dXMv.js +127 -0
  191. package/dist/interface/assets/web-B2hT39CL.js +1 -0
  192. package/dist/interface/assets/web-BKoMlshd.js +1 -0
  193. package/dist/interface/assets/web-BjKL51lK-Ut62Hifg.js +1 -0
  194. package/dist/interface/assets/web-C0ZNZcUJ.js +1 -0
  195. package/dist/interface/assets/web-CvKW_k8u.js +1 -0
  196. package/dist/interface/assets/web-CxfYyhSm.js +1 -0
  197. package/dist/interface/assets/web-CzA5zxEf.js +1 -0
  198. package/dist/interface/assets/web-D7XF0rfU.js +1 -0
  199. package/dist/interface/assets/web-DgSunHN1.js +1 -0
  200. package/dist/interface/assets/web-DpgTK9mR.js +1 -0
  201. package/dist/interface/assets/web-Hi4guSgN.js +1 -0
  202. package/dist/interface/assets/web-QaIP1Mop.js +1 -0
  203. package/dist/interface/assets/web-VGpOPxhq.js +1 -0
  204. package/dist/interface/assets/web-g-y7DVV1.js +1 -0
  205. package/dist/interface/assets/{webhook-CdlhvGGB.js → webhook-CQl989bo.js} +1 -1
  206. package/dist/interface/assets/workbox-window.prod.es5-YHyKoEMU.js +1 -0
  207. package/dist/interface/assets/{zoom-in-COcGqk1M.js → zoom-in-2i20zd_d.js} +1 -1
  208. package/dist/interface/index.html +213 -173
  209. package/dist/interface/sw.js +1 -1
  210. package/dist/server/package.json +13 -11
  211. package/dist/server/requirements.txt +2 -2
  212. package/dist/server/src/_camera_ui_tools/camera_ui_rpc/types.py +2 -2
  213. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +14 -0
  214. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/__init__.py +12 -0
  215. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +26 -1
  216. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +20 -0
  217. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +6 -0
  218. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/recording.py +27 -0
  219. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +4 -4
  220. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/notifier.py +2 -2
  221. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +4 -0
  222. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/audio.py +2 -2
  223. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +3 -3
  224. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/battery.py +8 -5
  225. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/classifier.py +2 -2
  226. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/contact.py +3 -2
  227. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/detection.py +7 -1
  228. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/doorbell.py +3 -2
  229. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face.py +2 -2
  230. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/garage.py +5 -2
  231. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/humidity.py +3 -2
  232. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/leak.py +3 -2
  233. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/license_plate.py +6 -3
  234. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/light.py +7 -5
  235. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/lock.py +4 -2
  236. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/motion.py +2 -2
  237. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/object.py +2 -2
  238. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/occupancy.py +3 -2
  239. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/ptz.py +24 -5
  240. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/security_system.py +4 -2
  241. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/siren.py +7 -5
  242. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/smoke.py +3 -2
  243. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/switch.py +3 -2
  244. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/temperature.py +3 -2
  245. package/dist/server/src/api/controllers/auth.controller.d.ts +1 -0
  246. package/dist/server/src/api/controllers/auth.controller.js +19 -0
  247. package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
  248. package/dist/server/src/api/controllers/automations.controller.d.ts +1 -0
  249. package/dist/server/src/api/controllers/automations.controller.js +12 -0
  250. package/dist/server/src/api/controllers/automations.controller.js.map +1 -1
  251. package/dist/server/src/api/controllers/cameras.controller.d.ts +4 -1
  252. package/dist/server/src/api/controllers/cameras.controller.js +95 -1
  253. package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
  254. package/dist/server/src/api/controllers/mqtt.controller.d.ts +1 -0
  255. package/dist/server/src/api/controllers/mqtt.controller.js +8 -0
  256. package/dist/server/src/api/controllers/mqtt.controller.js.map +1 -1
  257. package/dist/server/src/api/database/constants.d.ts +1 -0
  258. package/dist/server/src/api/database/constants.js +1 -0
  259. package/dist/server/src/api/database/constants.js.map +1 -1
  260. package/dist/server/src/api/database/index.d.ts +4 -1
  261. package/dist/server/src/api/database/index.js +37 -3
  262. package/dist/server/src/api/database/index.js.map +1 -1
  263. package/dist/server/src/api/database/migrations/v2-0-51.d.ts +3 -0
  264. package/dist/server/src/api/database/migrations/v2-0-51.js +43 -0
  265. package/dist/server/src/api/database/migrations/v2-0-51.js.map +1 -0
  266. package/dist/server/src/api/database/record-schemas.d.ts +3 -3
  267. package/dist/server/src/api/database/types.d.ts +4 -2
  268. package/dist/server/src/api/index.d.ts +2 -0
  269. package/dist/server/src/api/index.js +92 -6
  270. package/dist/server/src/api/index.js.map +1 -1
  271. package/dist/server/src/api/ingress.d.ts +10 -0
  272. package/dist/server/src/api/ingress.js +54 -0
  273. package/dist/server/src/api/ingress.js.map +1 -0
  274. package/dist/server/src/api/middlewares/socketAuth.middleware.js +5 -1
  275. package/dist/server/src/api/middlewares/socketAuth.middleware.js.map +1 -1
  276. package/dist/server/src/api/render-index.d.ts +3 -0
  277. package/dist/server/src/api/render-index.js +39 -0
  278. package/dist/server/src/api/render-index.js.map +1 -0
  279. package/dist/server/src/api/routes/auth.routes.js +10 -0
  280. package/dist/server/src/api/routes/auth.routes.js.map +1 -1
  281. package/dist/server/src/api/routes/automations.routes.js +11 -0
  282. package/dist/server/src/api/routes/automations.routes.js.map +1 -1
  283. package/dist/server/src/api/routes/backup.routes.js +4 -0
  284. package/dist/server/src/api/routes/backup.routes.js.map +1 -1
  285. package/dist/server/src/api/routes/cameras.routes.js +35 -1
  286. package/dist/server/src/api/routes/cameras.routes.js.map +1 -1
  287. package/dist/server/src/api/routes/index.js +14 -1
  288. package/dist/server/src/api/routes/index.js.map +1 -1
  289. package/dist/server/src/api/routes/mqtt.routes.js +10 -0
  290. package/dist/server/src/api/routes/mqtt.routes.js.map +1 -1
  291. package/dist/server/src/api/schemas/cameras.schema.d.ts +163 -21
  292. package/dist/server/src/api/schemas/cameras.schema.js +39 -3
  293. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  294. package/dist/server/src/api/schemas/config.schema.d.ts +1 -0
  295. package/dist/server/src/api/schemas/config.schema.js +1 -0
  296. package/dist/server/src/api/schemas/config.schema.js.map +1 -1
  297. package/dist/server/src/api/schemas/users.schema.d.ts +21 -21
  298. package/dist/server/src/api/schemas/users.schema.js +3 -16
  299. package/dist/server/src/api/schemas/users.schema.js.map +1 -1
  300. package/dist/server/src/api/schemas/virtualsensors.schema.js.map +1 -1
  301. package/dist/server/src/api/services/automations.service.d.ts +6 -0
  302. package/dist/server/src/api/services/automations.service.js +28 -3
  303. package/dist/server/src/api/services/automations.service.js.map +1 -1
  304. package/dist/server/src/api/services/backup.service.d.ts +6 -1
  305. package/dist/server/src/api/services/backup.service.js +28 -5
  306. package/dist/server/src/api/services/backup.service.js.map +1 -1
  307. package/dist/server/src/api/services/cameras.service.d.ts +2 -0
  308. package/dist/server/src/api/services/cameras.service.js +28 -4
  309. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  310. package/dist/server/src/api/services/mqtt.service.d.ts +1 -0
  311. package/dist/server/src/api/services/mqtt.service.js +3 -0
  312. package/dist/server/src/api/services/mqtt.service.js.map +1 -1
  313. package/dist/server/src/api/services/plugins.service.js +1 -5
  314. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  315. package/dist/server/src/api/types/index.d.ts +12 -0
  316. package/dist/server/src/api/websocket/nsp/events.d.ts +12 -0
  317. package/dist/server/src/api/websocket/nsp/events.js +76 -1
  318. package/dist/server/src/api/websocket/nsp/events.js.map +1 -1
  319. package/dist/server/src/automations/actions/cameraControl.js +4 -3
  320. package/dist/server/src/automations/actions/cameraControl.js.map +1 -1
  321. package/dist/server/src/automations/actions/http.js +1 -1
  322. package/dist/server/src/automations/actions/http.js.map +1 -1
  323. package/dist/server/src/automations/actions/plugin.js +4 -1
  324. package/dist/server/src/automations/actions/plugin.js.map +1 -1
  325. package/dist/server/src/automations/conditions/ifelse.js +7 -6
  326. package/dist/server/src/automations/conditions/ifelse.js.map +1 -1
  327. package/dist/server/src/automations/conditions/switch.js +6 -2
  328. package/dist/server/src/automations/conditions/switch.js.map +1 -1
  329. package/dist/server/src/automations/context.d.ts +2 -1
  330. package/dist/server/src/automations/context.js +47 -25
  331. package/dist/server/src/automations/context.js.map +1 -1
  332. package/dist/server/src/automations/engine.d.ts +3 -0
  333. package/dist/server/src/automations/engine.js +66 -9
  334. package/dist/server/src/automations/engine.js.map +1 -1
  335. package/dist/server/src/automations/parseValue.d.ts +2 -0
  336. package/dist/server/src/automations/parseValue.js +8 -0
  337. package/dist/server/src/automations/parseValue.js.map +1 -1
  338. package/dist/server/src/automations/runner.d.ts +6 -2
  339. package/dist/server/src/automations/runner.js +103 -43
  340. package/dist/server/src/automations/runner.js.map +1 -1
  341. package/dist/server/src/automations/trace.d.ts +25 -0
  342. package/dist/server/src/automations/trace.js +17 -0
  343. package/dist/server/src/automations/trace.js.map +1 -0
  344. package/dist/server/src/automations/triggers/detection.js +2 -1
  345. package/dist/server/src/automations/triggers/detection.js.map +1 -1
  346. package/dist/server/src/automations/triggers/schedule.js +10 -44
  347. package/dist/server/src/automations/triggers/schedule.js.map +1 -1
  348. package/dist/server/src/automations/triggers/sensor.js +9 -2
  349. package/dist/server/src/automations/triggers/sensor.js.map +1 -1
  350. package/dist/server/src/camera/controller.js +6 -1
  351. package/dist/server/src/camera/controller.js.map +1 -1
  352. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +2 -0
  353. package/dist/server/src/camera/decoder/detection-coordinator.js +11 -1
  354. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  355. package/dist/server/src/camera/decoder/event-manager.d.ts +12 -1
  356. package/dist/server/src/camera/decoder/event-manager.js +95 -15
  357. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  358. package/dist/server/src/camera/decoder/plate-vote.d.ts +20 -0
  359. package/dist/server/src/camera/decoder/plate-vote.js +63 -0
  360. package/dist/server/src/camera/decoder/plate-vote.js.map +1 -0
  361. package/dist/server/src/camera/decoder/secondary-stage.d.ts +3 -2
  362. package/dist/server/src/camera/decoder/secondary-stage.js +26 -13
  363. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  364. package/dist/server/src/camera/decoder/stationary-suppressor.d.ts +6 -0
  365. package/dist/server/src/camera/decoder/stationary-suppressor.js +59 -17
  366. package/dist/server/src/camera/decoder/stationary-suppressor.js.map +1 -1
  367. package/dist/server/src/camera/decoder/worker.d.ts +0 -1
  368. package/dist/server/src/camera/decoder/worker.js +0 -3
  369. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  370. package/dist/server/src/camera/index.d.ts +2 -1
  371. package/dist/server/src/camera/index.js +3 -0
  372. package/dist/server/src/camera/index.js.map +1 -1
  373. package/dist/server/src/camera/sensors/controller.js +6 -4
  374. package/dist/server/src/camera/sensors/controller.js.map +1 -1
  375. package/dist/server/src/camera/sensors/semantics.d.ts +3 -0
  376. package/dist/server/src/camera/sensors/semantics.js +12 -0
  377. package/dist/server/src/camera/sensors/semantics.js.map +1 -0
  378. package/dist/server/src/camera/sensors/sensor.js +17 -11
  379. package/dist/server/src/camera/sensors/sensor.js.map +1 -1
  380. package/dist/server/src/camera/sensors/stable-id.d.ts +1 -0
  381. package/dist/server/src/camera/sensors/stable-id.js +5 -1
  382. package/dist/server/src/camera/sensors/stable-id.js.map +1 -1
  383. package/dist/server/src/camera/sensors/types.d.ts +12 -3
  384. package/dist/server/src/camera/sensors/types.js +48 -216
  385. package/dist/server/src/camera/sensors/types.js.map +1 -1
  386. package/dist/server/src/camera/streaming/fmp4-session.js +49 -26
  387. package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -1
  388. package/dist/server/src/camera/streaming/rtp-session.js +53 -19
  389. package/dist/server/src/camera/streaming/rtp-session.js.map +1 -1
  390. package/dist/server/src/internal-bus.d.ts +20 -2
  391. package/dist/server/src/internal-bus.js.map +1 -1
  392. package/dist/server/src/manager/discoveryManager.d.ts +2 -0
  393. package/dist/server/src/manager/discoveryManager.js +11 -7
  394. package/dist/server/src/manager/discoveryManager.js.map +1 -1
  395. package/dist/server/src/mqtt/bridge.d.ts +1 -0
  396. package/dist/server/src/mqtt/bridge.js +11 -7
  397. package/dist/server/src/mqtt/bridge.js.map +1 -1
  398. package/dist/server/src/mqtt/ha-discovery.d.ts +0 -1
  399. package/dist/server/src/mqtt/ha-discovery.js +96 -179
  400. package/dist/server/src/mqtt/ha-discovery.js.map +1 -1
  401. package/dist/server/src/mqtt/manager.d.ts +3 -0
  402. package/dist/server/src/mqtt/manager.js +15 -0
  403. package/dist/server/src/mqtt/manager.js.map +1 -1
  404. package/dist/server/src/plugins/index.js +4 -7
  405. package/dist/server/src/plugins/index.js.map +1 -1
  406. package/dist/server/src/plugins/runtime/go/index.d.ts +0 -1
  407. package/dist/server/src/plugins/runtime/go/index.js +25 -32
  408. package/dist/server/src/plugins/runtime/go/index.js.map +1 -1
  409. package/dist/server/src/plugins/runtime/node/index.js +3 -2
  410. package/dist/server/src/plugins/runtime/node/index.js.map +1 -1
  411. package/dist/server/src/plugins/runtime/node/proxy/sensor.d.ts +0 -1
  412. package/dist/server/src/plugins/runtime/node/proxy/sensor.js +4 -4
  413. package/dist/server/src/plugins/runtime/node/proxy/sensor.js.map +1 -1
  414. package/dist/server/src/plugins/runtime/python/index.js +17 -1
  415. package/dist/server/src/plugins/runtime/python/index.js.map +1 -1
  416. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +5 -0
  417. package/dist/server/src/plugins/worker.js +10 -2
  418. package/dist/server/src/plugins/worker.js.map +1 -1
  419. package/dist/server/src/remote/services/cloudflare-managed.d.ts +1 -0
  420. package/dist/server/src/remote/services/cloudflare-managed.js +7 -1
  421. package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -1
  422. package/dist/server/src/remote/services/cloudflare.js +6 -3
  423. package/dist/server/src/remote/services/cloudflare.js.map +1 -1
  424. package/dist/server/src/remote/services/index.js +3 -0
  425. package/dist/server/src/remote/services/index.js.map +1 -1
  426. package/dist/server/src/rpc/interfaces/sensor.d.ts +1 -0
  427. package/dist/server/src/services/config/index.d.ts +1 -0
  428. package/dist/server/src/services/config/index.js +11 -6
  429. package/dist/server/src/services/config/index.js.map +1 -1
  430. package/dist/server/src/services/config/types.d.ts +1 -1
  431. package/dist/server/src/services/mdns/index.js +3 -0
  432. package/dist/server/src/services/mdns/index.js.map +1 -1
  433. package/dist/server/src/utils/camera.d.ts +1 -0
  434. package/dist/server/src/utils/camera.js +4 -1
  435. package/dist/server/src/utils/camera.js.map +1 -1
  436. package/dist/server/src/utils/path.d.ts +1 -1
  437. package/dist/server/src/utils/path.js +1 -1
  438. package/dist/server/src/utils/path.js.map +1 -1
  439. package/dist/server/src/utils/pythonInstaller.d.ts +1 -0
  440. package/dist/server/src/utils/pythonInstaller.js +18 -6
  441. package/dist/server/src/utils/pythonInstaller.js.map +1 -1
  442. package/dist/server/src/workers/agent.d.ts +1 -0
  443. package/dist/server/src/workers/agent.js +4 -1
  444. package/dist/server/src/workers/agent.js.map +1 -1
  445. package/dist/server/src/workers/capabilities/plugin-host.d.ts +2 -1
  446. package/dist/server/src/workers/capabilities/plugin-host.js +8 -1
  447. package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -1
  448. package/dist/server/src/workers/manager.d.ts +2 -1
  449. package/dist/server/src/workers/manager.js +12 -0
  450. package/dist/server/src/workers/manager.js.map +1 -1
  451. package/dist/server/src/workers/types.d.ts +7 -0
  452. package/package.json +13 -11
  453. package/dist/interface/assets/404-CHNnQ07B.js +0 -1
  454. package/dist/interface/assets/About-BsaU74tJ.js +0 -1
  455. package/dist/interface/assets/Adminpanel-DtAn7w3q.js +0 -1
  456. package/dist/interface/assets/Automation-B6dndnPV.js +0 -2
  457. package/dist/interface/assets/AutomationImport-DuUOIIyR.js +0 -2
  458. package/dist/interface/assets/AutomationStore-Xah6Ds5s.js +0 -2
  459. package/dist/interface/assets/AutomationStoreDetail-DjgQq4MK.js +0 -2
  460. package/dist/interface/assets/Automations-Z2Esd61q.js +0 -2
  461. package/dist/interface/assets/Camera-D59ItpvH.js +0 -2
  462. package/dist/interface/assets/CameraConsole-H8Dw-cqw.js +0 -7
  463. package/dist/interface/assets/Cameras-2kM76WUB.css +0 -1
  464. package/dist/interface/assets/Cameras-Jowje8rS.js +0 -652
  465. package/dist/interface/assets/Camview-BUf_kn9a.js +0 -1
  466. package/dist/interface/assets/Config-BRr7oxiv.js +0 -2
  467. package/dist/interface/assets/ConfigActionCameraControl-k8QcbpFi.js +0 -1
  468. package/dist/interface/assets/ConfigActionHttp-DghgMG8I.js +0 -1
  469. package/dist/interface/assets/ConfigActionImageInput-DdJ9WVUi.js +0 -1
  470. package/dist/interface/assets/ConfigActionMqtt-CwIl_CUG.js +0 -1
  471. package/dist/interface/assets/ConfigActionNotification-BKumqxEl.js +0 -1
  472. package/dist/interface/assets/ConfigActionOutput-Dtkhn36z.js +0 -1
  473. package/dist/interface/assets/ConfigActionPlugin-eYhvQu7v.js +0 -1
  474. package/dist/interface/assets/ConfigActionSensor-CBGTysP5.js +0 -1
  475. package/dist/interface/assets/ConfigActionSnapshot-DeEZpkGU.js +0 -1
  476. package/dist/interface/assets/ConfigActionVariable-B-OJvgFr.js +0 -1
  477. package/dist/interface/assets/ConfigConditionIfElse-C-GRpawm.js +0 -1
  478. package/dist/interface/assets/ConfigConditionSensorState-BcT1OdkE.js +0 -1
  479. package/dist/interface/assets/ConfigConditionSwitch-DCtfW4os.js +0 -1
  480. package/dist/interface/assets/ConfigSensorValueInput-33yyWBvv.js +0 -1
  481. package/dist/interface/assets/ConfigTriggerDetection-DKXtEYs5.js +0 -1
  482. package/dist/interface/assets/ConfigTriggerGeofence-BDbH0yi3.js +0 -1
  483. package/dist/interface/assets/ConfigTriggerMqtt-3JYUp5bN.js +0 -1
  484. package/dist/interface/assets/ConfigTriggerSchedule-BzMQhwFK.js +0 -1
  485. package/dist/interface/assets/ConfigTriggerSensor-CW4m1Kih.js +0 -1
  486. package/dist/interface/assets/ConfigTriggerWebhook-D1ZxjnBH.js +0 -1
  487. package/dist/interface/assets/Console-BfDxTA0z.js +0 -1
  488. package/dist/interface/assets/CuiActionButton-3g3d4Hty.js +0 -1
  489. package/dist/interface/assets/CuiAvatar-BtMXnhxd.css +0 -1
  490. package/dist/interface/assets/CuiAvatar-DC5kBssG.js +0 -1
  491. package/dist/interface/assets/CuiBBoxPlayground-C-ROFu1J.js +0 -1
  492. package/dist/interface/assets/CuiBBoxPlayground-EFkdOBvq.css +0 -1
  493. package/dist/interface/assets/CuiBottomSheet-DewYUtvd.js +0 -1
  494. package/dist/interface/assets/CuiBottomSheet-DhJ7mPOY.js +0 -1
  495. package/dist/interface/assets/CuiCameraCard-BxGmxXxZ.css +0 -1
  496. package/dist/interface/assets/CuiCameraCard-DW0FQ7bq.js +0 -1
  497. package/dist/interface/assets/CuiCameraPipCard-CvSggtUF.js +0 -1
  498. package/dist/interface/assets/CuiCameraRecordings-rzFWZQ5x.js +0 -1
  499. package/dist/interface/assets/CuiCameraShares-jhAbADz_.js +0 -1
  500. package/dist/interface/assets/CuiCameraSnapshot-B4j7AOCs.js +0 -1
  501. package/dist/interface/assets/CuiCameraTable-CTvIHn1t.js +0 -2
  502. package/dist/interface/assets/CuiDataTable-BCji83l4.js +0 -1
  503. package/dist/interface/assets/CuiFloatingButton-BCfFilF6.js +0 -1
  504. package/dist/interface/assets/CuiImage-BM4g6edi.css +0 -1
  505. package/dist/interface/assets/CuiImage-OMB9QmYG.js +0 -1
  506. package/dist/interface/assets/CuiMarkdownContent-H33iUdE5.js +0 -1
  507. package/dist/interface/assets/CuiMenu-BWUfWLQP.css +0 -1
  508. package/dist/interface/assets/CuiMenu-Cu1XcfTo.js +0 -1
  509. package/dist/interface/assets/CuiPluginCard-BpRfC_LZ.js +0 -2
  510. package/dist/interface/assets/CuiPluginCategoryChip-BQyTd-CO.js +0 -1
  511. package/dist/interface/assets/CuiPluginOAuthButton-DJE7icya.js +0 -2
  512. package/dist/interface/assets/CuiPluginTrustBadge-RbS7zcMn.js +0 -1
  513. package/dist/interface/assets/CuiQRCode-DCu3UUaE.js +0 -1
  514. package/dist/interface/assets/CuiRecordingsGrid-Gd_UBE9S.js +0 -1
  515. package/dist/interface/assets/CuiSchema-CdXvzvH_.js +0 -1
  516. package/dist/interface/assets/CuiTopNavbarItem-CTOystLC.js +0 -1
  517. package/dist/interface/assets/CuiTopbarSlot-BkbPbFkm.js +0 -1
  518. package/dist/interface/assets/Faces-B07vg9aT.js +0 -1
  519. package/dist/interface/assets/FirstSteps-CAm3e-Ps.js +0 -1
  520. package/dist/interface/assets/Instances-5F02xSdP.js +0 -1
  521. package/dist/interface/assets/Logs-aditW96b.js +0 -6
  522. package/dist/interface/assets/Menu-B5bs9Nk6.js +0 -1
  523. package/dist/interface/assets/OAuthDeviceFlow-jvatqxEp.js +0 -1
  524. package/dist/interface/assets/Plugin-Cvf6z--K.js +0 -1
  525. package/dist/interface/assets/PluginConsole-IwnVx03U.js +0 -7
  526. package/dist/interface/assets/PluginDetail-DQkDmMhZ.js +0 -2
  527. package/dist/interface/assets/PluginSchema-BejWv56L.js +0 -1
  528. package/dist/interface/assets/PluginSearch-CbV58if7.js +0 -1
  529. package/dist/interface/assets/PluginSearch-DXVd0zKo.js +0 -2
  530. package/dist/interface/assets/Plugins-BipCK9K1.js +0 -1
  531. package/dist/interface/assets/Recordings-DopujSNl.js +0 -1
  532. package/dist/interface/assets/Settings-C_fZEMd6.js +0 -1
  533. package/dist/interface/assets/SettingsAccount-EIs17fXL.js +0 -1
  534. package/dist/interface/assets/SettingsAccount-fXsR0E9w.js +0 -1
  535. package/dist/interface/assets/SettingsAppearance-1E4ZVOvU.js +0 -1
  536. package/dist/interface/assets/SettingsAppearance-D4AcjKmd.js +0 -1
  537. package/dist/interface/assets/SettingsBackup-CqqJcj9V.js +0 -1
  538. package/dist/interface/assets/SettingsMqtt-Bwsgv7hZ.js +0 -1
  539. package/dist/interface/assets/SettingsNotifications-DVMmqDIN.js +0 -2
  540. package/dist/interface/assets/SettingsRecordings-DkhYVwS5.js +0 -1
  541. package/dist/interface/assets/SettingsRemote-D8Gwkj-H.js +0 -1
  542. package/dist/interface/assets/SettingsSystem-C29jOMdZ.js +0 -2
  543. package/dist/interface/assets/SettingsUsers-DPyFPqNb.js +0 -1
  544. package/dist/interface/assets/Terminal-CkpBS5Dg.js +0 -4
  545. package/dist/interface/assets/VariableInput-DMER1zSR.js +0 -1
  546. package/dist/interface/assets/VersionsHandler-D3-3JG-p.js +0 -7
  547. package/dist/interface/assets/Workers-JrLx-VXf.js +0 -2
  548. package/dist/interface/assets/_plugin-vue_export-helper-BDNMzG2s.js +0 -1
  549. package/dist/interface/assets/ace-6JpPWRIj.js +0 -1
  550. package/dist/interface/assets/api-C-AZSdHz.css +0 -2
  551. package/dist/interface/assets/api-Ci2OPZLb.js +0 -2
  552. package/dist/interface/assets/api-Q22IOG4a.js +0 -1
  553. package/dist/interface/assets/auth-BqaGki6j.js +0 -1
  554. package/dist/interface/assets/automation-5ksuCa47.js +0 -1
  555. package/dist/interface/assets/automations-DhR5Sia9.js +0 -1
  556. package/dist/interface/assets/automations-jd-HryjO.js +0 -1
  557. package/dist/interface/assets/availableVariables-D9VhvJZ1.js +0 -1
  558. package/dist/interface/assets/bell-C9mIWMWk.js +0 -1
  559. package/dist/interface/assets/bell-outline-Dc2jlnIq.js +0 -1
  560. package/dist/interface/assets/bug-zzM1padE.js +0 -1
  561. package/dist/interface/assets/cameras-DveQuCR0.js +0 -1
  562. package/dist/interface/assets/cameras.schema-DBLOCGJX.js +0 -1
  563. package/dist/interface/assets/cctv-tzdxhH3J.js +0 -1
  564. package/dist/interface/assets/check-bBrmKigT.js +0 -1
  565. package/dist/interface/assets/circular-connection-CU7MCuUc.js +0 -1
  566. package/dist/interface/assets/cloud-outline-Buxz0EJ2.js +0 -1
  567. package/dist/interface/assets/cloud-outline-CcWcrU1H.js +0 -1
  568. package/dist/interface/assets/cloudHandoff-9tPkt-ON.js +0 -1
  569. package/dist/interface/assets/cog-Btmv5cTa.js +0 -1
  570. package/dist/interface/assets/cog-outline-COxCsaa7.js +0 -1
  571. package/dist/interface/assets/config-9s9zQBx8.js +0 -1
  572. package/dist/interface/assets/copy-16-filled-DO8QJ5jY.js +0 -1
  573. package/dist/interface/assets/delete-outline-PeGi5HED.js +0 -1
  574. package/dist/interface/assets/download-wKmzxMGG.js +0 -1
  575. package/dist/interface/assets/esm-BbNiWnlM.js +0 -1
  576. package/dist/interface/assets/esm-BdHNBTAD.js +0 -1
  577. package/dist/interface/assets/esm-CA5vOO11.js +0 -1
  578. package/dist/interface/assets/esm-CAWRiYdq.js +0 -1
  579. package/dist/interface/assets/esm-CnaltMuw.js +0 -1
  580. package/dist/interface/assets/esm-Cz7O6U8f2.js +0 -1
  581. package/dist/interface/assets/esm-DF-tHra0.js +0 -1
  582. package/dist/interface/assets/esm-DFbRgfmR.js +0 -1
  583. package/dist/interface/assets/esm-DMPT4YUA.js +0 -1
  584. package/dist/interface/assets/esm-D_25JquT.js +0 -1
  585. package/dist/interface/assets/esm-DaPjB4YE.js +0 -1
  586. package/dist/interface/assets/esm-DvYGT_BI.js +0 -1
  587. package/dist/interface/assets/esm-rmWYkszg.js +0 -1
  588. package/dist/interface/assets/esm-yAVwCMtx.js +0 -1
  589. package/dist/interface/assets/eventIcons-2hVCNchU.css +0 -1
  590. package/dist/interface/assets/eventIcons-uRPqE83F.js +0 -1
  591. package/dist/interface/assets/face-recognition-eRy5sHNg.js +0 -1
  592. package/dist/interface/assets/github-DMYx-QRV.js +0 -1
  593. package/dist/interface/assets/grid-fill-C4zzGgeI.js +0 -1
  594. package/dist/interface/assets/hasPermission-U8rWYs3e.js +0 -1
  595. package/dist/interface/assets/instances-D6pOZ9S2.js +0 -1
  596. package/dist/interface/assets/lightbulb-outline-DvCSmwHW.js +0 -1
  597. package/dist/interface/assets/main-DXE4zBZz.js +0 -3
  598. package/dist/interface/assets/motion-sensor-pRMd7Avm.js +0 -1
  599. package/dist/interface/assets/native-BCmNybfv.js +0 -1
  600. package/dist/interface/assets/native-GPGSceJj.js +0 -1
  601. package/dist/interface/assets/nodeDefinitions-C2RwmaJh.js +0 -1
  602. package/dist/interface/assets/notifications-Dfc5JraF.js +0 -1
  603. package/dist/interface/assets/play-solid-B6TQ0J8_.js +0 -1
  604. package/dist/interface/assets/plugin-DD3mGhTv.js +0 -1
  605. package/dist/interface/assets/plugins-F8HC_aub.js +0 -1
  606. package/dist/interface/assets/puzzle-filled-D4sL3q0q.js +0 -1
  607. package/dist/interface/assets/refresh-rounded-B00F7iZg.js +0 -1
  608. package/dist/interface/assets/round-restart-alt-Dvdf0cs5.js +0 -1
  609. package/dist/interface/assets/router-DZjA6qEF.css +0 -1
  610. package/dist/interface/assets/router-F1vxbpmr.js +0 -2
  611. package/dist/interface/assets/routerState-jp8ZOkH0.js +0 -1
  612. package/dist/interface/assets/server-CVqV-aK8.js +0 -1
  613. package/dist/interface/assets/shares-CgYXFl_V.js +0 -1
  614. package/dist/interface/assets/shield-check-BwIO9FNq.js +0 -1
  615. package/dist/interface/assets/terminal-BASwIORZ.js +0 -1
  616. package/dist/interface/assets/theme-CeTMD7iy.js +0 -1
  617. package/dist/interface/assets/transit-connection-variant-BbMJgsqX.js +0 -1
  618. package/dist/interface/assets/types-BSNzLwmC.js +0 -1
  619. package/dist/interface/assets/types-BxFyoO54.js +0 -1
  620. package/dist/interface/assets/types-C72GH31_.js +0 -1
  621. package/dist/interface/assets/ui-Buqvvz5_.js +0 -1
  622. package/dist/interface/assets/useBackupRestore-B_L5eacS.js +0 -1
  623. package/dist/interface/assets/useBiometricCredentials-XSBauCAw.js +0 -1
  624. package/dist/interface/assets/useCameraOptions-Csn90EfC.js +0 -1
  625. package/dist/interface/assets/useCuiCameraDrawer-CmKK-nWj.js +0 -1
  626. package/dist/interface/assets/useCuiDialog-CsfQVxs9.js +0 -2
  627. package/dist/interface/assets/useFileDownload-Cgl2TsAx.js +0 -1
  628. package/dist/interface/assets/useLogsSocket-DROirzwW.js +0 -5
  629. package/dist/interface/assets/useSharedComposables-Dt2kEWWK.js +0 -1
  630. package/dist/interface/assets/useStreamStatus-GuRUKQIO.js +0 -1
  631. package/dist/interface/assets/useUpdateChannel-C_QBlWej.js +0 -1
  632. package/dist/interface/assets/useUserOptions-CEgftL3b.js +0 -1
  633. package/dist/interface/assets/users.schema-CfQ1Ms-E.js +0 -1
  634. package/dist/interface/assets/vendor-cameraui-C1IKkRDu.js +0 -2039
  635. package/dist/interface/assets/vendor-capacitor-CgsKMKU7.js +0 -2
  636. package/dist/interface/assets/vendor-core-D8HwO28D.js +0 -1
  637. package/dist/interface/assets/vendor-gridstack-DD5uGA3X.js +0 -3
  638. package/dist/interface/assets/vendor-gridstack-Rg2RhwAc.css +0 -1
  639. package/dist/interface/assets/vendor-zod-XsuaxHRY.js +0 -127
  640. package/dist/interface/assets/view-grid-CFIWphbe.js +0 -1
  641. package/dist/interface/assets/view-grid-CWZLWCco.css +0 -1
  642. package/dist/interface/assets/web-B8HJA2eH.js +0 -1
  643. package/dist/interface/assets/web-BGITTsNt.js +0 -1
  644. package/dist/interface/assets/web-BQB4qOgy.js +0 -1
  645. package/dist/interface/assets/web-BSXReJ_Z.js +0 -1
  646. package/dist/interface/assets/web-BhWC15qT.js +0 -1
  647. package/dist/interface/assets/web-BjKL51lK-DdfGLx29.js +0 -1
  648. package/dist/interface/assets/web-C8JXaRi_.js +0 -1
  649. package/dist/interface/assets/web-CoDDbrp3.js +0 -1
  650. package/dist/interface/assets/web-D3SmeLx8.js +0 -1
  651. package/dist/interface/assets/web-DAvyrq3Y.js +0 -1
  652. package/dist/interface/assets/web-GLZJCv4W.js +0 -1
  653. package/dist/interface/assets/web-VstUBouH.js +0 -1
  654. package/dist/interface/assets/web-Yn_laCd7.js +0 -1
  655. package/dist/interface/assets/web-kTiET-EO.js +0 -1
  656. package/dist/interface/assets/workbox-window.prod.es5-CN8kDpb8.js +0 -1
@@ -1,166 +1,32 @@
1
- import { AudioProperty, BatteryCapability, BatteryProperty, ClassifierProperty, ContactProperty, DoorbellProperty, FaceProperty, GarageProperty, HumidityProperty, LeakProperty, LicensePlateProperty, LightCapability, LightProperty, LockProperty, MotionProperty, ObjectProperty, OccupancyProperty, PTZProperty, SecuritySystemProperty, SensorCategory, SensorType, SirenCapability, SirenProperty, SmokeProperty, SwitchProperty, TemperatureProperty, } from '@camera.ui/sdk';
2
- export const SENSOR_TYPE_CONFIG = {
3
- [SensorType.Motion]: {
4
- category: SensorCategory.Sensor,
5
- assignmentKey: 'motion',
6
- multiProvider: false,
7
- isDetectionType: true,
8
- },
9
- [SensorType.Object]: {
10
- category: SensorCategory.Sensor,
11
- assignmentKey: 'object',
12
- multiProvider: false,
13
- isDetectionType: true,
14
- },
15
- [SensorType.Audio]: {
16
- category: SensorCategory.Sensor,
17
- assignmentKey: 'audio',
18
- multiProvider: false,
19
- isDetectionType: true,
20
- },
21
- [SensorType.Face]: {
22
- category: SensorCategory.Sensor,
23
- assignmentKey: 'face',
24
- multiProvider: false,
25
- isDetectionType: true,
26
- },
27
- [SensorType.LicensePlate]: {
28
- category: SensorCategory.Sensor,
29
- assignmentKey: 'licensePlate',
30
- multiProvider: false,
31
- isDetectionType: true,
32
- },
33
- [SensorType.Classifier]: {
34
- category: SensorCategory.Sensor,
35
- assignmentKey: 'classifier',
36
- multiProvider: true,
37
- isDetectionType: true,
38
- },
39
- [SensorType.Clip]: {
40
- category: SensorCategory.Sensor,
41
- assignmentKey: 'clip',
42
- multiProvider: false,
43
- isDetectionType: true,
44
- },
45
- [SensorType.Contact]: {
46
- category: SensorCategory.Sensor,
47
- assignmentKey: 'contact',
48
- multiProvider: true,
49
- isDetectionType: false,
50
- cascadeTrigger: { property: 'detected', value: true, sustained: true },
51
- },
52
- [SensorType.Light]: {
53
- category: SensorCategory.Control,
54
- assignmentKey: 'light',
55
- multiProvider: true,
56
- isDetectionType: false,
57
- cascadeTrigger: { property: 'on', value: true, sustained: true },
58
- },
59
- [SensorType.Siren]: {
60
- category: SensorCategory.Control,
61
- assignmentKey: 'siren',
62
- multiProvider: true,
63
- isDetectionType: false,
64
- cascadeTrigger: { property: 'active', value: true, sustained: true },
65
- },
66
- [SensorType.Switch]: {
67
- category: SensorCategory.Control,
68
- assignmentKey: 'switch',
69
- multiProvider: true,
70
- isDetectionType: false,
71
- cascadeTrigger: { property: 'on', value: true, sustained: true },
72
- },
73
- [SensorType.PTZ]: {
74
- category: SensorCategory.Control,
75
- assignmentKey: 'ptz',
76
- multiProvider: false,
77
- isDetectionType: false,
78
- },
79
- [SensorType.Lock]: {
80
- category: SensorCategory.Control,
81
- assignmentKey: 'lock',
82
- multiProvider: true,
83
- isDetectionType: false,
84
- cascadeTrigger: { property: 'currentState', value: 1, sustained: true },
85
- },
86
- [SensorType.SecuritySystem]: {
87
- category: SensorCategory.Control,
88
- assignmentKey: 'securitySystem',
89
- multiProvider: true,
90
- isDetectionType: false,
91
- cascadeTrigger: { property: 'currentState', value: 4, sustained: true },
92
- },
93
- [SensorType.Doorbell]: {
94
- category: SensorCategory.Trigger,
95
- assignmentKey: 'doorbell',
96
- multiProvider: true,
97
- isDetectionType: false,
98
- cascadeTrigger: { property: 'ring', value: true, sustained: false },
99
- },
100
- [SensorType.Temperature]: {
101
- category: SensorCategory.Info,
102
- assignmentKey: 'temperature',
103
- multiProvider: true,
104
- isDetectionType: false,
105
- },
106
- [SensorType.Humidity]: {
107
- category: SensorCategory.Info,
108
- assignmentKey: 'humidity',
109
- multiProvider: true,
110
- isDetectionType: false,
111
- },
112
- [SensorType.Occupancy]: {
113
- category: SensorCategory.Sensor,
114
- assignmentKey: 'occupancy',
115
- multiProvider: true,
116
- isDetectionType: false,
117
- cascadeTrigger: { property: 'detected', value: true, sustained: true },
118
- },
119
- [SensorType.Smoke]: {
120
- category: SensorCategory.Sensor,
121
- assignmentKey: 'smoke',
122
- multiProvider: true,
123
- isDetectionType: false,
124
- cascadeTrigger: { property: 'detected', value: true, sustained: true },
125
- },
126
- [SensorType.Leak]: {
127
- category: SensorCategory.Sensor,
128
- assignmentKey: 'leak',
129
- multiProvider: true,
130
- isDetectionType: false,
131
- cascadeTrigger: { property: 'detected', value: true, sustained: true },
132
- },
133
- [SensorType.Garage]: {
134
- category: SensorCategory.Control,
135
- assignmentKey: 'garage',
136
- multiProvider: true,
137
- isDetectionType: false,
138
- cascadeTrigger: { property: 'currentState', value: 0, sustained: true },
139
- },
140
- [SensorType.Battery]: {
141
- category: SensorCategory.Info,
142
- assignmentKey: 'battery',
143
- multiProvider: false,
144
- isDetectionType: false,
145
- },
146
- };
147
- export const PROPERTY_CAPABILITY_MAP = {
148
- [SensorType.Battery]: {
149
- [BatteryProperty.Charging]: BatteryCapability.Charging,
150
- [BatteryProperty.Low]: BatteryCapability.LowBattery,
151
- },
152
- [SensorType.Light]: {
153
- [LightProperty.Brightness]: LightCapability.Brightness,
154
- },
155
- [SensorType.Siren]: {
156
- [SirenProperty.Volume]: SirenCapability.Volume,
157
- },
158
- };
1
+ import { SENSOR_META, SensorCategory } from '@camera.ui/sdk';
2
+ function buildSensorTypeConfig() {
3
+ const config = {};
4
+ for (const meta of SENSOR_META) {
5
+ config[meta.type] = {
6
+ category: meta.category,
7
+ assignmentKey: meta.assignmentKey,
8
+ multiProvider: meta.multiProvider,
9
+ isDetectionType: meta.isDetectionType,
10
+ ...(meta.cascadeTrigger ? { cascadeTrigger: meta.cascadeTrigger } : {}),
11
+ };
12
+ }
13
+ return config;
14
+ }
15
+ export const SENSOR_TYPE_CONFIG = buildSensorTypeConfig();
16
+ export const PROPERTY_CAPABILITY_MAP = Object.fromEntries(SENSOR_META.filter((meta) => meta.propertyCapabilities).map((meta) => [meta.type, meta.propertyCapabilities]));
159
17
  export function getMultiProviderTypes() {
160
18
  return Object.entries(SENSOR_TYPE_CONFIG)
161
19
  .filter(([, meta]) => meta.multiProvider)
162
20
  .map(([type]) => type);
163
21
  }
22
+ export function getShortcutableTypes() {
23
+ return SENSOR_META.filter((meta) => meta.shortcutable).map((meta) => meta.type);
24
+ }
25
+ export function getSingleProviderTypes() {
26
+ return Object.entries(SENSOR_TYPE_CONFIG)
27
+ .filter(([, meta]) => !meta.multiProvider)
28
+ .map(([type]) => type);
29
+ }
164
30
  export function getDetectionTypes() {
165
31
  return Object.entries(SENSOR_TYPE_CONFIG)
166
32
  .filter(([, meta]) => meta.isDetectionType)
@@ -193,71 +59,37 @@ export function getAccessorySensorTypes() {
193
59
  export function isSingleProviderType(type) {
194
60
  return !SENSOR_TYPE_CONFIG[type].multiProvider;
195
61
  }
196
- export const SENSOR_PROPERTY_MAP = {
197
- [SensorType.Motion]: Object.values(MotionProperty),
198
- [SensorType.Object]: Object.values(ObjectProperty),
199
- [SensorType.Audio]: Object.values(AudioProperty),
200
- [SensorType.Face]: Object.values(FaceProperty),
201
- [SensorType.LicensePlate]: Object.values(LicensePlateProperty),
202
- [SensorType.Classifier]: Object.values(ClassifierProperty),
203
- [SensorType.Clip]: [],
204
- [SensorType.Contact]: Object.values(ContactProperty),
205
- [SensorType.Temperature]: Object.values(TemperatureProperty),
206
- [SensorType.Humidity]: Object.values(HumidityProperty),
207
- [SensorType.Occupancy]: Object.values(OccupancyProperty),
208
- [SensorType.Smoke]: Object.values(SmokeProperty),
209
- [SensorType.Leak]: Object.values(LeakProperty),
210
- [SensorType.Light]: Object.values(LightProperty),
211
- [SensorType.Siren]: Object.values(SirenProperty),
212
- [SensorType.Switch]: Object.values(SwitchProperty),
213
- [SensorType.Lock]: Object.values(LockProperty),
214
- [SensorType.Garage]: Object.values(GarageProperty),
215
- [SensorType.PTZ]: Object.values(PTZProperty),
216
- [SensorType.SecuritySystem]: Object.values(SecuritySystemProperty),
217
- [SensorType.Doorbell]: Object.values(DoorbellProperty),
218
- [SensorType.Battery]: Object.values(BatteryProperty),
219
- };
62
+ export const SENSOR_PROPERTY_MAP = Object.fromEntries(SENSOR_META.map((meta) => [meta.type, Object.keys(meta.properties)]));
63
+ export const SENSOR_PROPERTY_SPECS = Object.fromEntries(SENSOR_META.map((meta) => [meta.type, meta.properties]));
220
64
  export function getSensorProperties(type) {
221
65
  return SENSOR_PROPERTY_MAP[type] ?? [];
222
66
  }
67
+ export function getSensorPropertySpec(type, property) {
68
+ return SENSOR_PROPERTY_SPECS[type]?.[property];
69
+ }
70
+ export function getObservableSensorProperties(type) {
71
+ const specs = SENSOR_PROPERTY_SPECS[type];
72
+ if (!specs)
73
+ return [];
74
+ return Object.entries(specs)
75
+ .filter(([, spec]) => !spec.internal)
76
+ .map(([name]) => name);
77
+ }
78
+ export function getWritableSensorProperties(type) {
79
+ const specs = SENSOR_PROPERTY_SPECS[type];
80
+ if (!specs)
81
+ return [];
82
+ return Object.entries(specs)
83
+ .filter(([, spec]) => spec.writable)
84
+ .map(([name]) => name);
85
+ }
223
86
  export const MULTI_PROVIDER_TYPES = new Set(getMultiProviderTypes());
224
87
  export const DETECTION_SENSOR_TYPES = new Set(getDetectionTypes());
225
88
  export const VIRTUAL_SENSOR_OWNER_ID = 'cameraui.virtual';
226
89
  export const VIRTUAL_SENSOR_OWNER_NAME = 'Virtual';
227
- export const VIRTUAL_SENSOR_TYPES = [
228
- SensorType.Doorbell,
229
- SensorType.Switch,
230
- SensorType.Contact,
231
- SensorType.Occupancy,
232
- SensorType.Smoke,
233
- SensorType.Leak,
234
- SensorType.Light,
235
- SensorType.Siren,
236
- SensorType.Lock,
237
- SensorType.Garage,
238
- SensorType.SecuritySystem,
239
- SensorType.Temperature,
240
- SensorType.Humidity,
241
- ];
242
- export const VIRTUAL_SENSOR_DEFAULT_PROPERTIES = {
243
- [SensorType.Doorbell]: { [DoorbellProperty.Ring]: false },
244
- [SensorType.Switch]: { [SwitchProperty.On]: false },
245
- [SensorType.Contact]: { [ContactProperty.Detected]: false },
246
- [SensorType.Occupancy]: { [OccupancyProperty.Detected]: false },
247
- [SensorType.Smoke]: { [SmokeProperty.Detected]: false },
248
- [SensorType.Leak]: { [LeakProperty.Detected]: false },
249
- [SensorType.Light]: { [LightProperty.On]: false, [LightProperty.Brightness]: 100 },
250
- [SensorType.Siren]: { [SirenProperty.Active]: false, [SirenProperty.Volume]: 100 },
251
- [SensorType.Lock]: { [LockProperty.CurrentState]: 0, [LockProperty.TargetState]: 0 },
252
- [SensorType.Garage]: { [GarageProperty.CurrentState]: 1, [GarageProperty.TargetState]: 1 },
253
- [SensorType.SecuritySystem]: { [SecuritySystemProperty.CurrentState]: 3, [SecuritySystemProperty.TargetState]: 3 },
254
- [SensorType.Temperature]: { [TemperatureProperty.Current]: 20 },
255
- [SensorType.Humidity]: { [HumidityProperty.Current]: 50 },
256
- };
257
- export const VIRTUAL_SENSOR_DEFAULT_CAPABILITIES = {
258
- [SensorType.Light]: [LightCapability.Brightness],
259
- [SensorType.Siren]: [SirenCapability.Volume],
260
- };
90
+ export const VIRTUAL_SENSOR_TYPES = SENSOR_META.filter((meta) => meta.virtual).map((meta) => meta.type);
91
+ export const VIRTUAL_SENSOR_DEFAULT_PROPERTIES = Object.fromEntries(SENSOR_META.filter((meta) => meta.virtual).map((meta) => [meta.type, meta.virtual?.properties ?? {}]));
92
+ export const VIRTUAL_SENSOR_DEFAULT_CAPABILITIES = Object.fromEntries(SENSOR_META.filter((meta) => meta.virtual?.capabilities).map((meta) => [meta.type, meta.virtual?.capabilities]));
261
93
  export function isVirtualSensorType(type) {
262
94
  return VIRTUAL_SENSOR_TYPES.includes(type);
263
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/camera/sensors/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/camera/sensors/types.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ export class Fmp4Session extends SubscribedPublic {
8
8
  onError = new Subject();
9
9
  onEnded = new ReplaySubject(1);
10
10
  #hasEnded = false;
11
+ #abort = new AbortController();
12
+ #shutdownPromise;
11
13
  #cameraDevice;
12
14
  #logger;
13
15
  #source;
@@ -28,6 +30,12 @@ export class Fmp4Session extends SubscribedPublic {
28
30
  return firstValueFrom(this.#initSegmentSubject);
29
31
  }
30
32
  async startStream(config) {
33
+ if (this.#hasEnded || this.#shutdownPromise) {
34
+ throw new Error('FMP4 session has ended and cannot be restarted.');
35
+ }
36
+ if (this.#fmp4Stream) {
37
+ throw new Error('FMP4 session already started.');
38
+ }
31
39
  this.#options = {
32
40
  ...config,
33
41
  input: {
@@ -38,12 +46,6 @@ export class Fmp4Session extends SubscribedPublic {
38
46
  },
39
47
  };
40
48
  this.#logger.debug('Starting FMP4 session with options:', this.#options);
41
- if (this.#boxDataSubject.closed) {
42
- this.#boxDataSubject = new ReplaySubject(1);
43
- }
44
- if (this.#initSegmentSubject.closed) {
45
- this.#initSegmentSubject = new ReplaySubject(1);
46
- }
47
49
  const supportedVideoCodec = new Set();
48
50
  for (const videoCodec of this.#options.supportedVideoCodecs ?? []) {
49
51
  switch (videoCodec) {
@@ -76,7 +78,8 @@ export class Fmp4Session extends SubscribedPublic {
76
78
  let moovData;
77
79
  let initSegment;
78
80
  let initSegmentSent = false;
79
- this.#fmp4Stream = FMP4Stream.create(this.#url, {
81
+ const fmp4Stream = FMP4Stream.create(this.#url, {
82
+ signal: this.#abort.signal,
80
83
  onData: (data, info) => {
81
84
  for (const box of info.boxes) {
82
85
  if (box.type === 'ftyp') {
@@ -100,13 +103,11 @@ export class Fmp4Session extends SubscribedPublic {
100
103
  this.#boxDataSubject.next(data);
101
104
  }
102
105
  },
103
- onClose: async (err) => {
104
- if (err) {
105
- await this.#onError(err);
106
- }
107
- else {
108
- await this.#onEnded();
109
- }
106
+ onClose: (err) => {
107
+ const shutdown = err ? this.#onError(err) : this.#onEnded();
108
+ shutdown.catch((error) => {
109
+ this.#logger.error('Failed to shut down FMP4 session:', error);
110
+ });
110
111
  },
111
112
  boxMode: this.#options.boxMode,
112
113
  fragDuration: this.#options.fragDuration,
@@ -124,7 +125,19 @@ export class Fmp4Session extends SubscribedPublic {
124
125
  encoderOptions: this.#options.audio?.encoderOptions,
125
126
  },
126
127
  });
127
- await this.#fmp4Stream.start();
128
+ this.#fmp4Stream = fmp4Stream;
129
+ try {
130
+ await fmp4Stream.start();
131
+ }
132
+ catch (error) {
133
+ try {
134
+ await this.#onEnded();
135
+ }
136
+ catch (stopError) {
137
+ this.#logger.error('Failed to clean up FMP4 session after start error:', stopError);
138
+ }
139
+ throw error;
140
+ }
128
141
  }
129
142
  async *streamBoxes(signal) {
130
143
  if (!this.#fmp4Stream) {
@@ -183,27 +196,37 @@ export class Fmp4Session extends SubscribedPublic {
183
196
  finally {
184
197
  cleanup();
185
198
  endSub.unsubscribe();
199
+ signal?.removeEventListener('abort', cleanup);
186
200
  }
187
201
  }
188
202
  async stop() {
189
- this.#onEnded();
203
+ await this.#onEnded();
190
204
  }
191
205
  async #onError(error) {
192
206
  this.onError.next(error);
193
207
  await this.#onEnded();
194
208
  }
195
- async #onEnded() {
196
- if (this.#hasEnded) {
197
- return;
198
- }
209
+ #onEnded() {
210
+ this.#shutdownPromise ??= Promise.resolve().then(() => this.#shutdown());
211
+ return this.#shutdownPromise;
212
+ }
213
+ async #shutdown() {
199
214
  this.#hasEnded = true;
200
- await this.#fmp4Stream?.stop();
215
+ this.#abort.abort();
216
+ const fmp4Stream = this.#fmp4Stream;
201
217
  this.#fmp4Stream = undefined;
202
- this.#boxDataSubject.complete();
203
- this.#initSegmentSubject.complete();
204
- this.unsubscribe();
205
- this.onEnded.next();
206
- this.onEnded.complete();
218
+ try {
219
+ await fmp4Stream?.stop();
220
+ }
221
+ finally {
222
+ this.#boxDataSubject.complete();
223
+ this.#initSegmentSubject.complete();
224
+ this.onStarted.complete();
225
+ this.onError.complete();
226
+ this.unsubscribe();
227
+ this.onEnded.next();
228
+ this.onEnded.complete();
229
+ }
207
230
  }
208
231
  }
209
232
  //# sourceMappingURL=fmp4-session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fmp4-session.js","sourceRoot":"","sources":["../../../../../src/camera/streaming/fmp4-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fmp4-session.js","sourceRoot":"","sources":["../../../../../src/camera/streaming/fmp4-session.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,8 @@ export class RtpSession extends SubscribedPublic {
65
65
  onVideoRtp = new Subject();
66
66
  onAudioRtp = new Subject();
67
67
  #hasEnded = false;
68
+ #abort = new AbortController();
69
+ #shutdownPromise;
68
70
  #cameraDevice;
69
71
  #logger;
70
72
  #source;
@@ -92,6 +94,12 @@ export class RtpSession extends SubscribedPublic {
92
94
  return this.#backchannelTrackIndex !== undefined;
93
95
  }
94
96
  async startStream(config) {
97
+ if (this.#hasEnded || this.#shutdownPromise) {
98
+ throw new Error('RTP session has ended and cannot be restarted.');
99
+ }
100
+ if (this.#rtpStream) {
101
+ throw new Error('RTP session already started.');
102
+ }
95
103
  this.#options = {
96
104
  ...config,
97
105
  input: {
@@ -126,20 +134,19 @@ export class RtpSession extends SubscribedPublic {
126
134
  supportedAudioCodec = [AV_CODEC_ID_PCM_MULAW];
127
135
  break;
128
136
  }
129
- this.#rtpStream = RTPStream.create(this.#url, {
137
+ const rtpStream = RTPStream.create(this.#url, {
138
+ signal: this.#abort.signal,
130
139
  onAudioPacket: (packet) => {
131
140
  this.onAudioRtp.next(packet);
132
141
  },
133
142
  onVideoPacket: (packet) => {
134
143
  this.onVideoRtp.next(packet);
135
144
  },
136
- onClose: async (err) => {
137
- if (err) {
138
- await this.#onError(err);
139
- }
140
- else {
141
- await this.#onEnded();
142
- }
145
+ onClose: (err) => {
146
+ const shutdown = err ? this.#onError(err) : this.#onEnded();
147
+ shutdown.catch((error) => {
148
+ this.#logger.error('Failed to shut down RTP session:', error);
149
+ });
143
150
  },
144
151
  supportedVideoCodecs: supportedVideoCodec,
145
152
  supportedAudioCodecs: supportedAudioCodec,
@@ -151,6 +158,7 @@ export class RtpSession extends SubscribedPublic {
151
158
  fps: this.#options.video?.fps,
152
159
  width: this.#options.video?.width,
153
160
  height: this.#options.video?.height,
161
+ bitrate: this.#options.video?.bitrate,
154
162
  encoderOptions: this.#options.video?.encoderOptions,
155
163
  },
156
164
  audio: {
@@ -170,7 +178,19 @@ export class RtpSession extends SubscribedPublic {
170
178
  options: this.#options.input?.options,
171
179
  },
172
180
  });
173
- await this.#rtpStream.start();
181
+ this.#rtpStream = rtpStream;
182
+ try {
183
+ await rtpStream.start();
184
+ }
185
+ catch (error) {
186
+ try {
187
+ await this.#onEnded();
188
+ }
189
+ catch (stopError) {
190
+ this.#logger.error('Failed to clean up RTP session after start error:', stopError);
191
+ }
192
+ throw error;
193
+ }
174
194
  }
175
195
  async startBackchannel(config) {
176
196
  const input = this.#rtpStream?.getInput();
@@ -211,12 +231,13 @@ export class RtpSession extends SubscribedPublic {
211
231
  }
212
232
  this.#backchannelDecoder = await Decoder.create(audioStream, {
213
233
  exitOnError: false,
234
+ signal: this.#abort.signal,
214
235
  });
215
236
  const filterChain = FilterPreset.chain();
216
237
  const sampleFormatName = config.sampleFormat ? avGetSampleFmtFromName(config.sampleFormat) : AV_SAMPLE_FMT_S16;
217
238
  filterChain.aformat(sampleFormatName, cameraSampleRate, cameraChannels === 1 ? 'mono' : 'stereo');
218
239
  const filterString = filterChain.build();
219
- this.#backchannelFilter = FilterAPI.create(filterString);
240
+ this.#backchannelFilter = FilterAPI.create(filterString, { signal: this.#abort.signal });
220
241
  const cameraCodec = Codec.findEncoder(cameraCodecId);
221
242
  if (!cameraCodec) {
222
243
  throw new Error(`Camera codec not found: ${cameraCodecId}`);
@@ -224,6 +245,7 @@ export class RtpSession extends SubscribedPublic {
224
245
  this.#backchannelEncoder = await Encoder.create(cameraCodec, {
225
246
  decoder: this.#backchannelDecoder,
226
247
  filter: this.#backchannelFilter,
248
+ signal: this.#abort.signal,
227
249
  options: {
228
250
  sample_rate: cameraSampleRate,
229
251
  channels: cameraChannels,
@@ -253,6 +275,7 @@ export class RtpSession extends SubscribedPublic {
253
275
  useSyncQueue: false,
254
276
  useAsyncWrite: false,
255
277
  maxPacketSize: 1200,
278
+ signal: this.#abort.signal,
256
279
  });
257
280
  this.#backchannelStreamIndex = this.#backchannelOutput.addStream(this.#backchannelEncoder);
258
281
  this.#backchannelActive = true;
@@ -313,7 +336,7 @@ export class RtpSession extends SubscribedPublic {
313
336
  }
314
337
  }
315
338
  catch (error) {
316
- if (!this.#backchannelActive) {
339
+ if (!this.#backchannelActive || this.#abort.signal.aborted) {
317
340
  return;
318
341
  }
319
342
  throw error;
@@ -381,15 +404,26 @@ export class RtpSession extends SubscribedPublic {
381
404
  this.onError.next(error);
382
405
  await this.#onEnded();
383
406
  }
384
- async #onEnded() {
385
- if (this.#hasEnded) {
386
- return;
387
- }
407
+ #onEnded() {
408
+ this.#shutdownPromise ??= Promise.resolve().then(() => this.#shutdown());
409
+ return this.#shutdownPromise;
410
+ }
411
+ async #shutdown() {
388
412
  this.#hasEnded = true;
389
- this.unsubscribe();
390
- await this.#cleanupBackchannel();
391
- await this.#cleanupStream();
392
- this.onEnded.next();
413
+ this.#abort.abort();
414
+ try {
415
+ await this.#cleanupBackchannel();
416
+ await this.#cleanupStream();
417
+ }
418
+ finally {
419
+ this.onStarted.complete();
420
+ this.onError.complete();
421
+ this.onVideoRtp.complete();
422
+ this.onAudioRtp.complete();
423
+ this.unsubscribe();
424
+ this.onEnded.next();
425
+ this.onEnded.complete();
426
+ }
393
427
  }
394
428
  }
395
429
  //# sourceMappingURL=rtp-session.js.map