@camera.ui/server 2.0.4 → 2.0.6

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 (513) hide show
  1. package/dist/interface/assets/{404-B8P9h05I.js → 404-ekmIpFW1.js} +1 -1
  2. package/dist/interface/assets/About-CvajU0JT.js +1 -0
  3. package/dist/interface/assets/Adminpanel-DrKaMQqd.js +1 -0
  4. package/dist/interface/assets/Automation-Dn1ZXmhy.js +2 -0
  5. package/dist/interface/assets/AutomationImport-U7r6BcW_.js +2 -0
  6. package/dist/interface/assets/{AutomationStore-qLsO1tHb.js → AutomationStore-DZBtLuIs.js} +2 -2
  7. package/dist/interface/assets/{AutomationStoreDetail-BAW2nfPd.js → AutomationStoreDetail-BXpOtPMl.js} +2 -2
  8. package/dist/interface/assets/{Automations-CUCVYZSr.js → Automations-DGHcWJ0h.js} +2 -2
  9. package/dist/interface/assets/Camera-CVJ-46dw.js +2 -0
  10. package/dist/interface/assets/Camera-Da5zEitE.css +1 -0
  11. package/dist/interface/assets/{CameraConsole-t6nY7h-V.js → CameraConsole-DPI9LjVK.js} +1 -1
  12. package/dist/interface/assets/Cameras-2kM76WUB.css +1 -0
  13. package/dist/interface/assets/Cameras-DsZ7VINe.js +652 -0
  14. package/dist/interface/assets/Camview-Lnxd3oe8.js +1 -0
  15. package/dist/interface/assets/Config-B1ZKVfMn.js +2 -0
  16. package/dist/interface/assets/ConfigActionCameraControl-BHKVJQqx.js +1 -0
  17. package/dist/interface/assets/{ConfigActionDelay-Rnxk--Qt.js → ConfigActionDelay-BS1vLvDQ.js} +1 -1
  18. package/dist/interface/assets/ConfigActionHttp-BKlRdtJr.js +1 -0
  19. package/dist/interface/assets/{ConfigActionImageInput-C8_H3ubM.js → ConfigActionImageInput-DveJ7oK8.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionNotification-4VYN5Hkr.js → ConfigActionNotification-Cn3qFFiK.js} +1 -1
  21. package/dist/interface/assets/ConfigActionOutput-Bg6d4zFD.js +1 -0
  22. package/dist/interface/assets/{ConfigActionPlugin-DrPmBv9V.js → ConfigActionPlugin-u-_sCQs9.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionSensor-CyaEZRfx.js → ConfigActionSensor-Cx1Q9VtS.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionSnapshot-l7VvnulO.js → ConfigActionSnapshot-DN4UC9jz.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionVariable-DIlUMHDy.js → ConfigActionVariable-Yufao52p.js} +1 -1
  26. package/dist/interface/assets/{ConfigConditionIfElse-0XRDQcTw.js → ConfigConditionIfElse-X9Sf0RwG.js} +1 -1
  27. package/dist/interface/assets/ConfigConditionSensorState-DQkz0FC6.js +1 -0
  28. package/dist/interface/assets/{ConfigConditionSwitch-C7pp1EZI.js → ConfigConditionSwitch-B4OICWxL.js} +1 -1
  29. package/dist/interface/assets/ConfigConditionTime-DRhAEuuC.js +1 -0
  30. package/dist/interface/assets/{ConfigTriggerDetection-CKw-fo2n.js → ConfigTriggerDetection-CzI4hgRA.js} +1 -1
  31. package/dist/interface/assets/{ConfigTriggerGeofence-DjBRl2tE.js → ConfigTriggerGeofence-RUlZmXAo.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerManual-BpBTh3CS.js → ConfigTriggerManual-Jjh7ZhyC.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerSchedule-DZG10NcA.js → ConfigTriggerSchedule-Dr6ALguI.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerSensor-CpFa6nUj.js → ConfigTriggerSensor-DLxdw9Fd.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerSystem-BsQElCAL.js → ConfigTriggerSystem-DYDpUWwi.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerWebhook-BKPOGAs3.js → ConfigTriggerWebhook-DiW3cwjT.js} +1 -1
  37. package/dist/interface/assets/Console-B55HKp9M.js +1 -0
  38. package/dist/interface/assets/{CuiActionButton-BSy6VaJ6.js → CuiActionButton-iNuXCl7_.js} +1 -1
  39. package/dist/interface/assets/{CuiAvatar-8AhiddF1.js → CuiAvatar-B1PdXoLS.js} +1 -1
  40. package/dist/interface/assets/{CuiBBoxPlayground-BUPzZ0sI.js → CuiBBoxPlayground-BJYeyVTF.js} +1 -1
  41. package/dist/interface/assets/{CuiBottomSheet-BNCym-11.js → CuiBottomSheet-B57WDcr5.js} +1 -1
  42. package/dist/interface/assets/CuiBottomSheet-Da0yy5zi.js +1 -0
  43. package/dist/interface/assets/CuiCameraCard-Dix4Iyrv.js +1 -0
  44. package/dist/interface/assets/{CuiCameraPipCard-CUPWEo3r.js → CuiCameraPipCard-BAOlD5uq.js} +1 -1
  45. package/dist/interface/assets/CuiCameraRecordings-ET-hbDL9.js +1 -0
  46. package/dist/interface/assets/{CuiCameraShares-oA3ockIQ.js → CuiCameraShares-CMzYmZt7.js} +1 -1
  47. package/dist/interface/assets/CuiCameraSnapshot-BcJfNxnj.js +1 -0
  48. package/dist/interface/assets/CuiCameraTable-CmyHU7oP.js +2 -0
  49. package/dist/interface/assets/{CuiDataTable-DhnQRMXG.js → CuiDataTable-Cd1jvrN0.js} +1 -1
  50. package/dist/interface/assets/{CuiFloatingButton-YIEmTfno.js → CuiFloatingButton-B3_fNyCP.js} +1 -1
  51. package/dist/interface/assets/{CuiImage-CzYVSrkC.js → CuiImage-BupeZIam.js} +1 -1
  52. package/dist/interface/assets/{CuiMarkdownContent-ecpe3mHA.js → CuiMarkdownContent-B4fVlO8h.js} +1 -1
  53. package/dist/interface/assets/CuiMarkdownContent-CMPFzD-0.js +1 -0
  54. package/dist/interface/assets/{CuiMenu-CEaJl-MF.js → CuiMenu-C-rnBf9W.js} +1 -1
  55. package/dist/interface/assets/{CuiPluginCard-BBV_hV1R.css → CuiPluginCard-C9zsmIaC.css} +1 -1
  56. package/dist/interface/assets/CuiPluginCard-Cs3gCugA.js +2 -0
  57. package/dist/interface/assets/{CuiPluginCategoryChip-BwL2qCTM.js → CuiPluginCategoryChip-D_ICXcvd.js} +1 -1
  58. package/dist/interface/assets/{CuiPluginOAuthButton-BmBW2Pdf.js → CuiPluginOAuthButton-B1e0NCmA.js} +2 -2
  59. package/dist/interface/assets/{CuiPluginTrustBadge-KcOasEJH.js → CuiPluginTrustBadge-CuxXssET.js} +1 -1
  60. package/dist/interface/assets/{CuiQRCode-BUSzb3ek.js → CuiQRCode-46CN267y.js} +1 -1
  61. package/dist/interface/assets/{CuiRecordingsGrid-lcLty5PV.css → CuiRecordingsGrid-DRBC07wN.css} +1 -1
  62. package/dist/interface/assets/CuiRecordingsGrid-FObjS4y5.js +1 -0
  63. package/dist/interface/assets/CuiSchema-BvjMb-mO.js +1 -0
  64. package/dist/interface/assets/{CuiTopNavbarItem-DVwItfbG.js → CuiTopNavbarItem-CmnJEc_r.js} +1 -1
  65. package/dist/interface/assets/{CuiTopbarSlot-h5_1cb9v.js → CuiTopbarSlot-T_pdxsit.js} +1 -1
  66. package/dist/interface/assets/Faces-DHk9Jq3T.js +1 -0
  67. package/dist/interface/assets/FirstSteps-Bb3XOidA.js +1 -0
  68. package/dist/interface/assets/{Instances-BNasTbK_.js → Instances-CXPH9NdC.js} +1 -1
  69. package/dist/interface/assets/Logs-jN6cBnCk.js +6 -0
  70. package/dist/interface/assets/{Menu-DTC3IWLc.js → Menu-BhWV3vKB.js} +1 -1
  71. package/dist/interface/assets/{OAuthDeviceFlow-BOIY4kBt.js → OAuthDeviceFlow-XfU0jZ6x.js} +1 -1
  72. package/dist/interface/assets/Plugin-BF0VMRby.js +1 -0
  73. package/dist/interface/assets/Plugin-DbSiTjYn.css +1 -0
  74. package/dist/interface/assets/{PluginConsole-DwNRvKqW.js → PluginConsole-DoeboO_n.js} +1 -1
  75. package/dist/interface/assets/PluginDetail-C2UBJlKS.js +2 -0
  76. package/dist/interface/assets/{PluginSchema-DWnYqRll.js → PluginSchema-BD-rLvro.js} +1 -1
  77. package/dist/interface/assets/PluginSearch-CTIiYmP4.js +1 -0
  78. package/dist/interface/assets/PluginSearch-NnCJ7vG2.js +2 -0
  79. package/dist/interface/assets/Plugins-BLtk8Off.js +1 -0
  80. package/dist/interface/assets/Recordings-CMO0UwaS.js +1 -0
  81. package/dist/interface/assets/{Settings-CfiNEl95.js → Settings-BAVtA47G2.js} +1 -1
  82. package/dist/interface/assets/SettingsAccount-Iz4WalaS.js +1 -0
  83. package/dist/interface/assets/SettingsAccount-NUdKG4ow.js +1 -0
  84. package/dist/interface/assets/SettingsAppearance-Ck1O2w3P.js +1 -0
  85. package/dist/interface/assets/{SettingsAppearance-Ck4VcB-w.js → SettingsAppearance-SLzxaqjN.js} +1 -1
  86. package/dist/interface/assets/SettingsBackup-CPC0aLD3.js +1 -0
  87. package/dist/interface/assets/SettingsNotifications-DB4CcddP.js +2 -0
  88. package/dist/interface/assets/SettingsRecordings-C15sTnLd.js +1 -0
  89. package/dist/interface/assets/SettingsRemote-5nVdezk3.js +1 -0
  90. package/dist/interface/assets/SettingsSystem-FqKuLssS.js +2 -0
  91. package/dist/interface/assets/SettingsUsers-CCp_3xlV.js +1 -0
  92. package/dist/interface/assets/Terminal-BHvfL8kE.js +4 -0
  93. package/dist/interface/assets/{VariableInput-DmE1m9Il.js → VariableInput-BnNttSx9.js} +1 -1
  94. package/dist/interface/assets/{VariableSuggestions-eII-1Bd_.js → VariableSuggestions-BbT0U9F0.js} +1 -1
  95. package/dist/interface/assets/VersionsHandler-jleSwMVy.js +7 -0
  96. package/dist/interface/assets/{Workers-Bj_tLx-1.js → Workers-ELW90lll.js} +2 -2
  97. package/dist/interface/assets/{account-CMuSWY7R.js → account-DqyKcqe6.js} +1 -1
  98. package/dist/interface/assets/ace-6JpPWRIj.js +1 -0
  99. package/dist/interface/assets/{ace.config-D884GuRj.js → ace.config-BnKJ0Xjj.js} +1 -1
  100. package/dist/interface/assets/{alert-circle-BBVlWmUb.js → alert-circle-DeKKKwiu.js} +1 -1
  101. package/dist/interface/assets/{alert-outline-MJaaWeWU.js → alert-outline-C4_42ECn.js} +1 -1
  102. package/dist/interface/assets/{api-CltBUyci.js → api-BRin642H.js} +1 -1
  103. package/dist/interface/assets/api-ByvWBLH3.js +2 -0
  104. package/dist/interface/assets/api-dcK5urq7.css +2 -0
  105. package/dist/interface/assets/{arrow-left-Bzo6lbMk.js → arrow-left-DroMCfOc.js} +1 -1
  106. package/dist/interface/assets/{arrow-right-outline-DU6p5Mjp.js → arrow-right-outline-CvgD4nuT.js} +1 -1
  107. package/dist/interface/assets/auth-D5gzm869.js +1 -0
  108. package/dist/interface/assets/{automation-BjkFcQH9.js → automation-BjZc8WL7.js} +1 -1
  109. package/dist/interface/assets/{automations-73X55Wxy.js → automations-B9KDzbWq.js} +1 -1
  110. package/dist/interface/assets/automations-CmA6Yx5B.js +1 -0
  111. package/dist/interface/assets/{back-filled-DI8fXlRr.js → back-filled-LVLhJP7G.js} +1 -1
  112. package/dist/interface/assets/{bell-Xdsks-42.js → bell-_E2Lq4ub.js} +1 -1
  113. package/dist/interface/assets/{bell-outline-Cy3lRQBX.js → bell-outline-CHhIZudN.js} +1 -1
  114. package/dist/interface/assets/{bell-ring-DR_BFore.js → bell-ring-DgLkBDcU.js} +1 -1
  115. package/dist/interface/assets/{bug-BkbVdwX_.js → bug-Eq4PDwA4.js} +1 -1
  116. package/dist/interface/assets/{cameras-Crvf7J3t.js → cameras-CYwpMvA8.js} +1 -1
  117. package/dist/interface/assets/{cameras.schema-CQPF4BCK.js → cameras.schema-neefhBQz.js} +1 -1
  118. package/dist/interface/assets/{cctv-D8gURS6i.js → cctv-BZIDJlxZ.js} +1 -1
  119. package/dist/interface/assets/{cctv-izLKpHLU.js → cctv-DbFrrwEm.js} +1 -1
  120. package/dist/interface/assets/{check-vQdlfVb0.js → check-COWE52r_.js} +1 -1
  121. package/dist/interface/assets/{check-circle-pC6Mk9ok.js → check-circle-CAbOGJc_.js} +1 -1
  122. package/dist/interface/assets/{chevron-down-5hhpriLd.js → chevron-down-Bu7d-Y9N.js} +1 -1
  123. package/dist/interface/assets/{chevron-right-B8jZK42K.js → chevron-right-90_Zn7fJ.js} +1 -1
  124. package/dist/interface/assets/{circular-connection-CShziQTj.js → circular-connection-Fq-Vqe3X.js} +1 -1
  125. package/dist/interface/assets/{clock-outline-C1Qoi42Q.js → clock-outline-CqPKrGj2.js} +1 -1
  126. package/dist/interface/assets/{close-CunDSika.js → close-BTPBtoEq.js} +1 -1
  127. package/dist/interface/assets/{close-circle-ClO0DCH3.js → close-circle-BAE2M1UZ.js} +1 -1
  128. package/dist/interface/assets/{cloud-check-DH_MvuMa.js → cloud-check-C2zK34QI.js} +1 -1
  129. package/dist/interface/assets/{cloud-outline-C6S72e1A.js → cloud-outline-64fdhdhh.js} +1 -1
  130. package/dist/interface/assets/{cloud-outline-CNhBvx4x.js → cloud-outline-BooRVJGO.js} +1 -1
  131. package/dist/interface/assets/cloudHandoff-CdYAKJPM.js +1 -0
  132. package/dist/interface/assets/{cog-Bgvz011z.js → cog-BOiZ8Brk.js} +1 -1
  133. package/dist/interface/assets/{cog-outline-uZ6J7_NJ.js → cog-outline-CXjehRoX.js} +1 -1
  134. package/dist/interface/assets/config-BLaep_I5.js +1 -0
  135. package/dist/interface/assets/{copy-16-filled-I80UlDbg.js → copy-16-filled-DfOe7jyi.js} +1 -1
  136. package/dist/interface/assets/{copy-B4-Xsyae.js → copy-D1B4K3K8.js} +1 -1
  137. package/dist/interface/assets/{delete-BdZ-cqP2.js → delete-BEupTYe7.js} +1 -1
  138. package/dist/interface/assets/{deviceId-BJm8lmpp.js → deviceId-B7SNJduj.js} +1 -1
  139. package/dist/interface/assets/{dist-D7Ztbw2o.js → dist-PhgrarGW.js} +1 -1
  140. package/dist/interface/assets/{download-C1GMtykU.js → download-BKGJ_BFg.js} +1 -1
  141. package/dist/interface/assets/{download-CNVBKEUL.js → download-DLRWZxWu.js} +1 -1
  142. package/dist/interface/assets/esm-2cKQcsYl.js +1 -0
  143. package/dist/interface/assets/esm-BC-ykYHP.js +1 -0
  144. package/dist/interface/assets/esm-BQAccPYQ2.js +1 -0
  145. package/dist/interface/assets/esm-B_RAh7V8.js +1 -0
  146. package/dist/interface/assets/esm-BsEkUnid.js +1 -0
  147. package/dist/interface/assets/esm-C1u--4jU.js +1 -0
  148. package/dist/interface/assets/esm-Cmrq9Tli.js +1 -0
  149. package/dist/interface/assets/esm-CrZMuT0_.js +1 -0
  150. package/dist/interface/assets/esm-CxS-x_QY.js +1 -0
  151. package/dist/interface/assets/esm-D-xtFbBs.js +1 -0
  152. package/dist/interface/assets/esm-D6PR9MbI.js +1 -0
  153. package/dist/interface/assets/esm-DTxHX_m3.js +1 -0
  154. package/dist/interface/assets/esm-Dzks7cY7.js +1 -0
  155. package/dist/interface/assets/esm-nCaFxJ36.js +1 -0
  156. package/dist/interface/assets/{eventIcons-GmV5zC8O.js → eventIcons-OxuOsPp8.js} +1 -1
  157. package/dist/interface/assets/{face-recognition-CS2Rf6Zc.js → face-recognition-CPwwcApe.js} +1 -1
  158. package/dist/interface/assets/{github-BrijWwqw.js → github-CWr5rTTh.js} +1 -1
  159. package/dist/interface/assets/{grid-fill-vdgMWTlf.js → grid-fill-DepYpY1i.js} +1 -1
  160. package/dist/interface/assets/{hasPermission-LUHh3i2_.js → hasPermission-FP_aMe9r.js} +1 -1
  161. package/dist/interface/assets/{home-By41XQGy.js → home-DTNk2yog.js} +1 -1
  162. package/dist/interface/assets/{information-outline-Kgo_4wPg.js → information-outline-BaVRQ1WL.js} +1 -1
  163. package/dist/interface/assets/{instances-A-hAMJRC.js → instances-DWzDpyhw.js} +1 -1
  164. package/dist/interface/assets/{lightbulb-outline-XVFprQ8f.js → lightbulb-outline-DPjpJn5F.js} +1 -1
  165. package/dist/interface/assets/main-7zIUc9Mt.css +1 -0
  166. package/dist/interface/assets/main-eaoHjmUh.js +3 -0
  167. package/dist/interface/assets/{microphone-GG_JO-aa.js → microphone-DJsihw9n.js} +1 -1
  168. package/dist/interface/assets/{motion-sensor-BvWcG84o.js → motion-sensor-D9ErhY-p.js} +1 -1
  169. package/dist/interface/assets/native-BK8vZMAo.js +1 -0
  170. package/dist/interface/assets/native-Z2MQ5D82.js +1 -0
  171. package/dist/interface/assets/{nodeDefinitions-BSLOZMDt.js → nodeDefinitions-kqqBPelM.js} +1 -1
  172. package/dist/interface/assets/{notifications-eX5p2YaS.js → notifications-Dae9EImK.js} +1 -1
  173. package/dist/interface/assets/{play-solid-BtIose8X.js → play-solid-cginGSgT.js} +1 -1
  174. package/dist/interface/assets/plugin-DHenq6mQ.js +1 -0
  175. package/dist/interface/assets/{plugins-DfuM5k5Q.js → plugins-bWz9yaCS.js} +1 -1
  176. package/dist/interface/assets/{plus-CPMfvO5i.js → plus-CJ2GnX_q.js} +1 -1
  177. package/dist/interface/assets/{plus-BKTSMYeY.js → plus-CJzoaVfR.js} +1 -1
  178. package/dist/interface/assets/{power-M2I2_fCM.js → power-CH_DVgfm.js} +1 -1
  179. package/dist/interface/assets/{puzzle-filled-C2Lcmza4.js → puzzle-filled-BsJvAZrD.js} +1 -1
  180. package/dist/interface/assets/{refresh-rounded-B-PvjcAK.js → refresh-rounded-D9PcUR6I.js} +1 -1
  181. package/dist/interface/assets/{ring-resize-CdUkE4zr.js → ring-resize-QxO72Hs5.js} +1 -1
  182. package/dist/interface/assets/{round-alt-arrow-left-bold-MIf6gSgD.js → round-alt-arrow-left-bold-C57m543l.js} +1 -1
  183. package/dist/interface/assets/{round-restart-alt-rDMgoX7-.js → round-restart-alt-C6zOLIvt.js} +1 -1
  184. package/dist/interface/assets/router-jxQ55Ssp.js +2 -0
  185. package/dist/interface/assets/{routerState-DxipV4mY.js → routerState-D1WXHNt5.js} +1 -1
  186. package/dist/interface/assets/{search-CHjonsLq.js → search-BgYt2zqA.js} +1 -1
  187. package/dist/interface/assets/{server-CoQ6jFok.js → server-Uk7xnHXH.js} +1 -1
  188. package/dist/interface/assets/{settings-CJjCbQsx.js → settings-DHy64jsU.js} +1 -1
  189. package/dist/interface/assets/shares-Cz4zuZa_.js +1 -0
  190. package/dist/interface/assets/{shield-check-oKTXgAfr.js → shield-check-0hUJRszq.js} +1 -1
  191. package/dist/interface/assets/{source-branch-aFYjLKkc.js → source-branch-Dv9Du0bc.js} +1 -1
  192. package/dist/interface/assets/{terminal-B8qmxarl.js → terminal-CNEjR0aR.js} +1 -1
  193. package/dist/interface/assets/{theme-BzXEv5Er.js → theme-GXDCnY_7.js} +1 -1
  194. package/dist/interface/assets/{trash-2-rEVmOxCl.js → trash-2-CAa4rD_d.js} +1 -1
  195. package/dist/interface/assets/{trash-fill-DfnCMe3h.js → trash-fill-Br00Vept.js} +1 -1
  196. package/dist/interface/assets/{trash2-BvyW-bOK.js → trash2-tuK9V5bO.js} +1 -1
  197. package/dist/interface/assets/{types-Ds4g4ynm.js → types-BpBkaZ8S.js} +1 -1
  198. package/dist/interface/assets/{types-CAW47AJe.js → types-jpiqSoyF.js} +1 -1
  199. package/dist/interface/assets/{ui-Dg-QtLMl.js → ui-DzCa9zWL.js} +1 -1
  200. package/dist/interface/assets/{upload-DkFN5YK-.js → upload-DAasFa9r.js} +1 -1
  201. package/dist/interface/assets/useAppVersion-CqnE2uYa.js +1 -0
  202. package/dist/interface/assets/useBackupRestore-Dm7jUOC-.js +1 -0
  203. package/dist/interface/assets/{useBiometricCredentials-Buylkybs.js → useBiometricCredentials-DJqfT1lk.js} +1 -1
  204. package/dist/interface/assets/useCameraOptions-Dv3QCMBK.js +1 -0
  205. package/dist/interface/assets/{useCuiCameraDrawer-DwlhaZ2i.js → useCuiCameraDrawer-D1zCpVbQ.js} +1 -1
  206. package/dist/interface/assets/useCuiDialog-C02Or5oR.js +2 -0
  207. package/dist/interface/assets/{useFileDownload-Bhdbhy_2.js → useFileDownload-CwxydJkw.js} +1 -1
  208. package/dist/interface/assets/{useLogsSocket-81hTPkwS.js → useLogsSocket-CunaH_T7.js} +2 -2
  209. package/dist/interface/assets/{useServerRestart-3pT0h7CH.js → useServerRestart-BQO5FbNN.js} +1 -1
  210. package/dist/interface/assets/{useSharedComposables-Ki01kFNJ.js → useSharedComposables-BrdI_nDH.js} +1 -1
  211. package/dist/interface/assets/{useStreamStatus-CHITNYE7.js → useStreamStatus-e7l-QLmI.js} +1 -1
  212. package/dist/interface/assets/useUpdateChannel-CW45dNAk.js +1 -0
  213. package/dist/interface/assets/useUserOptions-EhjyVt4P.js +1 -0
  214. package/dist/interface/assets/users.schema-4d5Hcv-l.js +1 -0
  215. package/dist/interface/assets/vendor-ClrOISZp.js +22 -0
  216. package/dist/interface/assets/{vendor-ace-DdrK3_G3.js → vendor-ace-BlP3GAWI.js} +4 -4
  217. package/dist/interface/assets/vendor-cameraui-E9E7fP4y.js +1978 -0
  218. package/dist/interface/assets/{vendor-capacitor-Cmm68VPg.js → vendor-capacitor-DWVJM4o8.js} +2 -2
  219. package/dist/interface/assets/vendor-chart-Cn72DQnu.js +3 -0
  220. package/dist/interface/assets/{vendor-core-DnC_SdtD.js → vendor-core-D2PMTaN3.js} +1 -1
  221. package/dist/interface/assets/{vendor-dnd-BAVhbK8Q.js → vendor-dnd-B9-e5xxH.js} +1 -1
  222. package/dist/interface/assets/{vendor-draggabilly-C56V4WL_.js → vendor-draggabilly-CPB8E5_r.js} +1 -1
  223. package/dist/interface/assets/{vendor-leaflet-_2Z0GiOD.js → vendor-leaflet-BMMJO5Nd.js} +1 -1
  224. package/dist/interface/assets/{vendor-markdown-D8dkSMBf.js → vendor-markdown-D7EhExwE.js} +2 -2
  225. package/dist/interface/assets/{vendor-primevue-OV61z06m.js → vendor-primevue-Ba4XR6PC.js} +301 -301
  226. package/dist/interface/assets/vendor-vueflow-Ci6VMxDa.js +26 -0
  227. package/dist/interface/assets/vendor-xterm-IIYDrBG1.js +142 -0
  228. package/dist/interface/assets/view-grid-Bs5Mc3pI.js +1 -0
  229. package/dist/interface/assets/view-grid-CWZLWCco.css +1 -0
  230. package/dist/interface/assets/web-1H50tiqZ.js +1 -0
  231. package/dist/interface/assets/web-BBRAFu75.js +1 -0
  232. package/dist/interface/assets/web-BQqZ-0se.js +1 -0
  233. package/dist/interface/assets/web-BgDADYuL.js +1 -0
  234. package/dist/interface/assets/web-BjKL51lK-DF7_OzmH.js +1 -0
  235. package/dist/interface/assets/web-C3oASmFS.js +1 -0
  236. package/dist/interface/assets/web-CQIOnZbD.js +1 -0
  237. package/dist/interface/assets/web-CW6kIZQg.js +1 -0
  238. package/dist/interface/assets/web-CXLWILCn.js +1 -0
  239. package/dist/interface/assets/web-Cz9RS9vK.js +1 -0
  240. package/dist/interface/assets/web-D7_BjGke.js +1 -0
  241. package/dist/interface/assets/web-Dn-uR4FN.js +1 -0
  242. package/dist/interface/assets/web-GsFXaCFL.js +1 -0
  243. package/dist/interface/assets/web-kh2rHftO.js +1 -0
  244. package/dist/interface/assets/{webhook-nx5ZDIQ-.js → webhook-BCBlzc3z.js} +1 -1
  245. package/dist/interface/assets/workbox-window.prod.es5-CQTy-jf8.js +1 -0
  246. package/dist/interface/assets/{zoom-in-wM6G8w-4.js → zoom-in-CKM5nWQX.js} +1 -1
  247. package/dist/interface/index.html +88 -85
  248. package/dist/interface/sw.js +1 -1
  249. package/dist/server/package.json +36 -19
  250. package/dist/server/requirements.txt +4 -3
  251. package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/signal_handler.py +17 -9
  252. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +10 -0
  253. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/event_emitter.py +45 -0
  254. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/manager/__init__.py +3 -0
  255. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/storage/__init__.py +47 -12
  256. package/dist/server/src/api/controllers/plugins.controller.js +11 -3
  257. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  258. package/dist/server/src/api/controllers/remote.controller.d.ts +1 -0
  259. package/dist/server/src/api/controllers/remote.controller.js +9 -2
  260. package/dist/server/src/api/controllers/remote.controller.js.map +1 -1
  261. package/dist/server/src/api/database/index.d.ts +2 -1
  262. package/dist/server/src/api/database/index.js +22 -3
  263. package/dist/server/src/api/database/index.js.map +1 -1
  264. package/dist/server/src/api/middlewares/authValidation.middleware.js +1 -1
  265. package/dist/server/src/api/middlewares/authValidation.middleware.js.map +1 -1
  266. package/dist/server/src/api/schemas/cameras.schema.d.ts +27 -0
  267. package/dist/server/src/api/schemas/cameras.schema.js +6 -0
  268. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  269. package/dist/server/src/api/schemas/config.schema.d.ts +2 -0
  270. package/dist/server/src/api/schemas/config.schema.js +1 -0
  271. package/dist/server/src/api/schemas/config.schema.js.map +1 -1
  272. package/dist/server/src/api/services/backup.service.d.ts +4 -0
  273. package/dist/server/src/api/services/backup.service.js +35 -4
  274. package/dist/server/src/api/services/backup.service.js.map +1 -1
  275. package/dist/server/src/api/services/plugins.service.js +1 -1
  276. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  277. package/dist/server/src/api/services/remote.service.d.ts +0 -1
  278. package/dist/server/src/api/services/remote.service.js +6 -13
  279. package/dist/server/src/api/services/remote.service.js.map +1 -1
  280. package/dist/server/src/api/types/index.d.ts +1 -0
  281. package/dist/server/src/api.d.ts +1 -0
  282. package/dist/server/src/api.js +11 -3
  283. package/dist/server/src/api.js.map +1 -1
  284. package/dist/server/src/camera/decoder/audio-source.d.ts +2 -0
  285. package/dist/server/src/camera/decoder/audio-source.js +12 -0
  286. package/dist/server/src/camera/decoder/audio-source.js.map +1 -1
  287. package/dist/server/src/camera/decoder/detection-coordinator.js +16 -2
  288. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  289. package/dist/server/src/camera/decoder/frame-source.d.ts +2 -0
  290. package/dist/server/src/camera/decoder/frame-source.js +23 -2
  291. package/dist/server/src/camera/decoder/frame-source.js.map +1 -1
  292. package/dist/server/src/camera/decoder/ptz-autotracker.js +51 -78
  293. package/dist/server/src/camera/decoder/ptz-autotracker.js.map +1 -1
  294. package/dist/server/src/camera/streaming/fmp4-session.js +9 -0
  295. package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -1
  296. package/dist/server/src/camera/streaming/rtp-session.js +0 -13
  297. package/dist/server/src/camera/streaming/rtp-session.js.map +1 -1
  298. package/dist/server/src/go2rtc/api/routes/streams.js +5 -6
  299. package/dist/server/src/go2rtc/api/routes/streams.js.map +1 -1
  300. package/dist/server/src/go2rtc/index.js +1 -1
  301. package/dist/server/src/go2rtc/index.js.map +1 -1
  302. package/dist/server/src/go2rtc/types.d.ts +3 -0
  303. package/dist/server/src/go2rtc/types.js.map +1 -1
  304. package/dist/server/src/main.js +1 -1
  305. package/dist/server/src/main.js.map +1 -1
  306. package/dist/server/src/manager/deviceManager.js +4 -1
  307. package/dist/server/src/manager/deviceManager.js.map +1 -1
  308. package/dist/server/src/manager/discoveryManager.d.ts +3 -2
  309. package/dist/server/src/manager/discoveryManager.js +60 -29
  310. package/dist/server/src/manager/discoveryManager.js.map +1 -1
  311. package/dist/server/src/plugins/config-store.d.ts +1 -1
  312. package/dist/server/src/plugins/config-store.js +17 -10
  313. package/dist/server/src/plugins/config-store.js.map +1 -1
  314. package/dist/server/src/plugins/index.d.ts +1 -0
  315. package/dist/server/src/plugins/index.js +38 -2
  316. package/dist/server/src/plugins/index.js.map +1 -1
  317. package/dist/server/src/plugins/plugin.js +2 -2
  318. package/dist/server/src/plugins/plugin.js.map +1 -1
  319. package/dist/server/src/plugins/runtime/base.js +10 -5
  320. package/dist/server/src/plugins/runtime/base.js.map +1 -1
  321. package/dist/server/src/plugins/runtime/go/index.js +1 -0
  322. package/dist/server/src/plugins/runtime/go/index.js.map +1 -1
  323. package/dist/server/src/plugins/runtime/node/child.d.ts +1 -0
  324. package/dist/server/src/plugins/runtime/node/child.js +62 -19
  325. package/dist/server/src/plugins/runtime/node/child.js.map +1 -1
  326. package/dist/server/src/plugins/runtime/node/configDb.d.ts +8 -0
  327. package/dist/server/src/plugins/runtime/node/configDb.js +15 -0
  328. package/dist/server/src/plugins/runtime/node/configDb.js.map +1 -1
  329. package/dist/server/src/plugins/runtime/node/index.js +2 -0
  330. package/dist/server/src/plugins/runtime/node/index.js.map +1 -1
  331. package/dist/server/src/plugins/runtime/node/pluginApi.d.ts +4 -0
  332. package/dist/server/src/plugins/runtime/node/pluginApi.js +13 -5
  333. package/dist/server/src/plugins/runtime/node/pluginApi.js.map +1 -1
  334. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.d.ts +1 -2
  335. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +2 -8
  336. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
  337. package/dist/server/src/plugins/runtime/node/proxy/coreManager.d.ts +3 -2
  338. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +9 -13
  339. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
  340. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.d.ts +3 -2
  341. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js +14 -12
  342. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js.map +1 -1
  343. package/dist/server/src/plugins/runtime/node/proxy/fileServe.js +4 -9
  344. package/dist/server/src/plugins/runtime/node/proxy/fileServe.js.map +1 -1
  345. package/dist/server/src/plugins/runtime/node/proxy/notificationManager.js +3 -0
  346. package/dist/server/src/plugins/runtime/node/proxy/notificationManager.js.map +1 -1
  347. package/dist/server/src/plugins/runtime/node/storage.d.ts +5 -2
  348. package/dist/server/src/plugins/runtime/node/storage.js +92 -67
  349. package/dist/server/src/plugins/runtime/node/storage.js.map +1 -1
  350. package/dist/server/src/plugins/runtime/node/storageController.d.ts +2 -0
  351. package/dist/server/src/plugins/runtime/node/storageController.js +12 -4
  352. package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -1
  353. package/dist/server/src/plugins/runtime/python/child.py +50 -38
  354. package/dist/server/src/plugins/runtime/python/config_db.py +28 -17
  355. package/dist/server/src/plugins/runtime/python/index.js +1 -0
  356. package/dist/server/src/plugins/runtime/python/index.js.map +1 -1
  357. package/dist/server/src/plugins/runtime/python/plugin_api.py +5 -5
  358. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +14 -13
  359. package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +11 -14
  360. package/dist/server/src/plugins/runtime/python/proxy/device_manager.py +23 -18
  361. package/dist/server/src/plugins/runtime/python/remote_urls.py +3 -7
  362. package/dist/server/src/plugins/runtime/python/storage.py +157 -126
  363. package/dist/server/src/plugins/runtime/python/storage_controller.py +28 -13
  364. package/dist/server/src/plugins/runtime/python/store.py +513 -0
  365. package/dist/server/src/plugins/runtime/python/store_migrate.py +59 -0
  366. package/dist/server/src/plugins/store/coalescingWriter.d.ts +7 -0
  367. package/dist/server/src/plugins/store/coalescingWriter.js +52 -0
  368. package/dist/server/src/plugins/store/coalescingWriter.js.map +1 -0
  369. package/dist/server/src/plugins/store/envelope.d.ts +5 -0
  370. package/dist/server/src/plugins/store/envelope.js +40 -0
  371. package/dist/server/src/plugins/store/envelope.js.map +1 -0
  372. package/dist/server/src/plugins/store/layout.d.ts +2 -0
  373. package/dist/server/src/plugins/store/layout.js +60 -0
  374. package/dist/server/src/plugins/store/layout.js.map +1 -0
  375. package/dist/server/src/plugins/store/location.d.ts +14 -0
  376. package/dist/server/src/plugins/store/location.js +55 -0
  377. package/dist/server/src/plugins/store/location.js.map +1 -0
  378. package/dist/server/src/plugins/store/migrate.d.ts +1 -0
  379. package/dist/server/src/plugins/store/migrate.js +22 -0
  380. package/dist/server/src/plugins/store/migrate.js.map +1 -0
  381. package/dist/server/src/plugins/store/pluginStoreFile.d.ts +14 -0
  382. package/dist/server/src/plugins/store/pluginStoreFile.js +58 -0
  383. package/dist/server/src/plugins/store/pluginStoreFile.js.map +1 -0
  384. package/dist/server/src/plugins/store/storeFile.d.ts +5 -0
  385. package/dist/server/src/plugins/store/storeFile.js +112 -0
  386. package/dist/server/src/plugins/store/storeFile.js.map +1 -0
  387. package/dist/server/src/plugins/store/validate.d.ts +1 -0
  388. package/dist/server/src/plugins/store/validate.js +49 -0
  389. package/dist/server/src/plugins/store/validate.js.map +1 -0
  390. package/dist/server/src/plugins/worker.js +9 -8
  391. package/dist/server/src/plugins/worker.js.map +1 -1
  392. package/dist/server/src/remote/services/cloudflare-managed.js +2 -2
  393. package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -1
  394. package/dist/server/src/remote/services/cloudflare.js +1 -0
  395. package/dist/server/src/remote/services/cloudflare.js.map +1 -1
  396. package/dist/server/src/remote/tunnel/client.js +1 -1
  397. package/dist/server/src/remote/tunnel/client.js.map +1 -1
  398. package/dist/server/src/rpc/interfaces/discovery.d.ts +1 -0
  399. package/dist/server/src/rpc/server.js +12 -5
  400. package/dist/server/src/rpc/server.js.map +1 -1
  401. package/dist/server/src/services/config/defaults.js +1 -0
  402. package/dist/server/src/services/config/defaults.js.map +1 -1
  403. package/dist/server/src/services/config/index.d.ts +1 -0
  404. package/dist/server/src/services/config/index.js +2 -0
  405. package/dist/server/src/services/config/index.js.map +1 -1
  406. package/dist/server/src/services/config/types.d.ts +1 -0
  407. package/dist/server/src/utils/npm/index.d.ts +1 -1
  408. package/dist/server/src/utils/npm/index.js +7 -4
  409. package/dist/server/src/utils/npm/index.js.map +1 -1
  410. package/dist/server/src/workers/capabilities/plugin-host.js +1 -1
  411. package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -1
  412. package/package.json +36 -19
  413. package/dist/interface/assets/About-CjQs3rZw.js +0 -1
  414. package/dist/interface/assets/Adminpanel-BTIcUxWm.js +0 -1
  415. package/dist/interface/assets/Automation-BNbTehB5.js +0 -2
  416. package/dist/interface/assets/AutomationImport-BEm0hc0d.js +0 -2
  417. package/dist/interface/assets/Camera-BG8K5bH_.css +0 -1
  418. package/dist/interface/assets/Camera-eIsFEdVo.js +0 -2
  419. package/dist/interface/assets/Cameras-54LaZPN3.css +0 -1
  420. package/dist/interface/assets/Cameras-Bswv6ojJ.js +0 -652
  421. package/dist/interface/assets/Camview-DMywoy_4.js +0 -1
  422. package/dist/interface/assets/Config-C7H5amm4.js +0 -2
  423. package/dist/interface/assets/ConfigActionCameraControl-C0hvC4QW.js +0 -1
  424. package/dist/interface/assets/ConfigActionHttp-BF8vrrHR.js +0 -1
  425. package/dist/interface/assets/ConfigActionOutput-CxB3eLLl.js +0 -1
  426. package/dist/interface/assets/ConfigConditionSensorState-BvygRJ79.js +0 -1
  427. package/dist/interface/assets/ConfigConditionTime-B0zctDc4.js +0 -1
  428. package/dist/interface/assets/Console-DHlNpv-R.js +0 -1
  429. package/dist/interface/assets/CuiBottomSheet-ChG_av5z.js +0 -1
  430. package/dist/interface/assets/CuiCameraCard-BGAQxNHs.js +0 -1
  431. package/dist/interface/assets/CuiCameraRecordings-B25441dH.js +0 -1
  432. package/dist/interface/assets/CuiCameraSnapshot-BLM8v7rY.js +0 -1
  433. package/dist/interface/assets/CuiCameraTable-3joRnfiM.js +0 -2
  434. package/dist/interface/assets/CuiMarkdownContent-5LJK4h8V.js +0 -1
  435. package/dist/interface/assets/CuiPluginCard-De_cbBBe.js +0 -2
  436. package/dist/interface/assets/CuiRecordingsGrid-DHSABYJb.js +0 -1
  437. package/dist/interface/assets/CuiSchema-D35n-DE5.js +0 -1
  438. package/dist/interface/assets/Faces-BJlHL3gp.js +0 -1
  439. package/dist/interface/assets/FirstSteps-D1Zf1CYN.js +0 -1
  440. package/dist/interface/assets/Logs-CW5EqpAL.js +0 -6
  441. package/dist/interface/assets/Plugin-DHhrlRqP.css +0 -1
  442. package/dist/interface/assets/Plugin-DIPGTrNi.js +0 -1
  443. package/dist/interface/assets/PluginDetail-D1TJZJhY.js +0 -2
  444. package/dist/interface/assets/PluginSearch-C5bkQgYA.js +0 -1
  445. package/dist/interface/assets/PluginSearch-DqwgO886.js +0 -2
  446. package/dist/interface/assets/Plugins-o7IfSFjd.js +0 -1
  447. package/dist/interface/assets/Recordings-DTw5IG8W.js +0 -1
  448. package/dist/interface/assets/SettingsAccount-Ch2SR80X.js +0 -1
  449. package/dist/interface/assets/SettingsAccount-DIwWUyp6.js +0 -1
  450. package/dist/interface/assets/SettingsAppearance-CkF7biyP.js +0 -1
  451. package/dist/interface/assets/SettingsBackup-BigThNuk.js +0 -1
  452. package/dist/interface/assets/SettingsNotifications-XLBjwgwX.js +0 -2
  453. package/dist/interface/assets/SettingsRecordings-Dp9tJdHk.js +0 -1
  454. package/dist/interface/assets/SettingsRemote-B5jm7MdB.js +0 -1
  455. package/dist/interface/assets/SettingsSystem-Isy5hiDl.js +0 -2
  456. package/dist/interface/assets/SettingsUsers-QuUercEC.js +0 -1
  457. package/dist/interface/assets/Terminal-BTfYdYuv.js +0 -4
  458. package/dist/interface/assets/VersionsHandler-BYj7-lpw.js +0 -7
  459. package/dist/interface/assets/ace-DQ1lNH50.js +0 -1
  460. package/dist/interface/assets/api-D7tGlI-z.css +0 -2
  461. package/dist/interface/assets/api-DoPgGqHU.js +0 -2
  462. package/dist/interface/assets/auth-BiWutL3Z.js +0 -1
  463. package/dist/interface/assets/automations-hsi5MCtT.js +0 -1
  464. package/dist/interface/assets/backup-CHJIDGvl.js +0 -1
  465. package/dist/interface/assets/cloudHandoff-lLBGqrXl.js +0 -1
  466. package/dist/interface/assets/esm-0fUwrSGA2.js +0 -1
  467. package/dist/interface/assets/esm-50afX45o.js +0 -1
  468. package/dist/interface/assets/esm-B0VLR4af.js +0 -1
  469. package/dist/interface/assets/esm-BfZLgtrg.js +0 -1
  470. package/dist/interface/assets/esm-Bnmu7wlp.js +0 -1
  471. package/dist/interface/assets/esm-CG1dvQ4U.js +0 -1
  472. package/dist/interface/assets/esm-CZTaj2CB.js +0 -1
  473. package/dist/interface/assets/esm-CxRM74Bx.js +0 -1
  474. package/dist/interface/assets/esm-DBpRougC.js +0 -1
  475. package/dist/interface/assets/esm-DQ7OYRdT.js +0 -1
  476. package/dist/interface/assets/esm-DVYEXBOA.js +0 -1
  477. package/dist/interface/assets/esm-DdCbmz73.js +0 -1
  478. package/dist/interface/assets/esm-DiryHoSP.js +0 -1
  479. package/dist/interface/assets/esm-DyoMjqMI.js +0 -1
  480. package/dist/interface/assets/main-BjuXWRyJ.css +0 -1
  481. package/dist/interface/assets/main-DEbfQmxF.js +0 -3
  482. package/dist/interface/assets/native-Dg-M0-9s.js +0 -1
  483. package/dist/interface/assets/native-DyQXBqB9.js +0 -1
  484. package/dist/interface/assets/plugin-_eNpRpqe.js +0 -1
  485. package/dist/interface/assets/router-D1e_o7wa.js +0 -2
  486. package/dist/interface/assets/shares-VWzmq1V-.js +0 -1
  487. package/dist/interface/assets/useCameraOptions-GAeXCTvO.js +0 -1
  488. package/dist/interface/assets/useCuiDialog-yRn5B1oO.js +0 -2
  489. package/dist/interface/assets/useUserOptions-CUvE4OL9.js +0 -1
  490. package/dist/interface/assets/users.schema-DWL8-tZN.js +0 -1
  491. package/dist/interface/assets/vendor-c9Zhw4pk.js +0 -22
  492. package/dist/interface/assets/vendor-cameraui-DhctzD3V.js +0 -1978
  493. package/dist/interface/assets/vendor-chart-BjXPY6za.js +0 -3
  494. package/dist/interface/assets/vendor-vueflow-CJdb-8KZ.js +0 -26
  495. package/dist/interface/assets/vendor-xterm-BRN-hOYD.js +0 -145
  496. package/dist/interface/assets/view-grid-D04t817d.css +0 -1
  497. package/dist/interface/assets/view-grid-_whxsqcn.js +0 -1
  498. package/dist/interface/assets/web-B9o4PkxX.js +0 -1
  499. package/dist/interface/assets/web-BDuGOqy7.js +0 -1
  500. package/dist/interface/assets/web-BUVPtx3X.js +0 -1
  501. package/dist/interface/assets/web-B_hO9nzV.js +0 -1
  502. package/dist/interface/assets/web-BjKL51lK-CV2GxIDK.js +0 -1
  503. package/dist/interface/assets/web-CCgyqWSl.js +0 -1
  504. package/dist/interface/assets/web-Cm_fnqV2.js +0 -1
  505. package/dist/interface/assets/web-CsSSdPVW.js +0 -1
  506. package/dist/interface/assets/web-D2AMa4qD.js +0 -1
  507. package/dist/interface/assets/web-D2vwufvW.js +0 -1
  508. package/dist/interface/assets/web-D86U7zR6.js +0 -1
  509. package/dist/interface/assets/web-DilWncpX.js +0 -1
  510. package/dist/interface/assets/web-OjqOEI0k.js +0 -1
  511. package/dist/interface/assets/web-mrIKbnbx.js +0 -1
  512. package/dist/interface/assets/workbox-window.prod.es5-CsKLpYYC.js +0 -1
  513. /package/dist/interface/assets/{error-256-DLKVOU2S.png → logo-512-DLKVOU2S.png} +0 -0
@@ -1,5 +1,9 @@
1
- import asyncio
2
- from typing import Any, Literal, Protocol
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Any, Literal, Protocol
4
+
5
+ if TYPE_CHECKING:
6
+ from plugins.runtime.python.store import PluginStoreFile
3
7
 
4
8
 
5
9
  class PluginConfigStoreRPC(Protocol):
@@ -9,11 +13,25 @@ class PluginConfigStoreRPC(Protocol):
9
13
 
10
14
 
11
15
  class PluginConfigDb(Protocol):
12
- def get(self, key: Literal["config"]) -> dict[str, Any] | None: ...
16
+ def get(self, key: Literal["config"], /) -> dict[str, Any] | None: ...
17
+
18
+ async def put(self, key: Literal["config"], value: dict[str, Any], /) -> None: ...
13
19
 
14
- def update(self, mapping: dict[Literal["config"], dict[str, Any]], /) -> None: ...
20
+ async def close(self) -> None: ...
15
21
 
16
- def close(self) -> None: ...
22
+
23
+ class LocalPluginConfigDb:
24
+ def __init__(self, store: PluginStoreFile) -> None:
25
+ self._store = store
26
+
27
+ def get(self, key: Literal["config"], /) -> dict[str, Any]:
28
+ return self._store.get()
29
+
30
+ async def put(self, key: Literal["config"], value: dict[str, Any], /) -> None:
31
+ await self._store.put(value)
32
+
33
+ async def close(self) -> None:
34
+ await self._store.close()
17
35
 
18
36
 
19
37
  class RemotePluginConfigDb:
@@ -24,19 +42,12 @@ class RemotePluginConfigDb:
24
42
  async def init(self) -> None:
25
43
  self._cache = (await self._store.get()) or {}
26
44
 
27
- def get(self, _key: Literal["config"]) -> dict[str, Any]:
45
+ def get(self, key: Literal["config"], /) -> dict[str, Any]:
28
46
  return self._cache
29
47
 
30
- def update(self, mapping: dict[Literal["config"], dict[str, Any]], /) -> None:
31
- config = mapping["config"]
32
- self._cache = config
33
- # Lmdb-compatible sync signature — persistence is fire-and-forget; the
34
- # cache is already current and errors only cost durability of this write.
35
- task = asyncio.create_task(self._persist(dict(config)))
36
- task.add_done_callback(lambda t: t.exception())
48
+ async def put(self, key: Literal["config"], value: dict[str, Any], /) -> None:
49
+ self._cache = value
50
+ await self._store.put(value)
37
51
 
38
- def close(self) -> None:
52
+ async def close(self) -> None:
39
53
  return None
40
-
41
- async def _persist(self, config: dict[str, Any]) -> None:
42
- await self._store.put(config)
@@ -29,6 +29,7 @@ export class PythonPluginRuntime extends BasePluginRuntime {
29
29
  ...this.getEnv(),
30
30
  },
31
31
  cwd: this.plugin.mainPath,
32
+ windowsHide: true,
32
33
  });
33
34
  this.worker.on('spawn', this.onSpawn.bind(this, this.worker.pid, command, args, processNames, resolve));
34
35
  this.worker.on('error', this.onError.bind(this, reject));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/python/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/python/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,4 @@
1
- from typing import Any, Literal, cast
2
-
3
- from plugins.runtime.python.config_db import PluginConfigDb
1
+ from typing import Any, cast
4
2
 
5
3
  from _camera_ui_tools.camera_ui_common import LoggerService
6
4
  from _camera_ui_tools.camera_ui_rpc import RPCClient
@@ -14,6 +12,7 @@ from _camera_ui_tools.camera_ui_sdk import (
14
12
  )
15
13
  from _camera_ui_tools.camera_ui_sdk import PluginAPI as PluginAPIInterface
16
14
  from _camera_ui_tools.camera_ui_sdk.internal import AsyncEventEmitter
15
+ from plugins.runtime.python.config_db import PluginConfigDb
17
16
  from plugins.runtime.python.proxy.core_manager import CoreManagerProxy
18
17
  from plugins.runtime.python.proxy.device_manager import DeviceManagerProxy
19
18
  from plugins.runtime.python.proxy.download_manager import DownloadManagerProxy
@@ -33,10 +32,11 @@ class PluginAPI(AsyncEventEmitter, PluginAPIInterface):
33
32
  ) -> None:
34
33
  super().__init__()
35
34
 
35
+ self.logger = logger
36
36
  self.storage_path = storage_path
37
37
  self.storage_controller = StorageController(self, proxy, plugin, plugin_db)
38
- self.core_manager = CoreManagerProxy(proxy, self, logger, plugin)
39
- self.device_manager = DeviceManagerProxy(proxy, self, self.storage_controller, logger, plugin)
38
+ self.core_manager = CoreManagerProxy(proxy, logger, plugin)
39
+ self.device_manager = DeviceManagerProxy(proxy, self.storage_controller, logger, plugin)
40
40
  self.download_manager = DownloadManagerProxy(proxy)
41
41
  self.notification_manager = NotificationManagerProxy(proxy, plugin)
42
42
 
@@ -9,7 +9,6 @@ from deepdiff.diff import DeepDiff
9
9
  from _camera_ui_tools.camera_ui_common import Subscribed, TaskSet
10
10
  from _camera_ui_tools.camera_ui_rpc import CloseHandler, RPCClient
11
11
  from _camera_ui_tools.camera_ui_sdk import (
12
- API_EVENT,
13
12
  BehaviorSubject,
14
13
  Camera,
15
14
  CameraDetectionSettings,
@@ -53,7 +52,6 @@ from _camera_ui_tools.camera_ui_sdk import (
53
52
  from _camera_ui_tools.camera_ui_sdk import CameraDevice as CameraDeviceInterface
54
53
  from _camera_ui_tools.camera_ui_sdk.internal import SensorJSON
55
54
  from plugins.runtime.python.camera.utils import build_snapshot_url, build_target_url
56
- from plugins.runtime.python.remote_urls import rewrite_source_urls_for_remote
57
55
  from plugins.runtime.python.namespaces import (
58
56
  CameraNamespaces,
59
57
  FrameWorkerDetectionNamespaces,
@@ -67,6 +65,7 @@ from plugins.runtime.python.proxy.sensor import (
67
65
  SensorControllerInterface,
68
66
  SensorProxy,
69
67
  )
68
+ from plugins.runtime.python.remote_urls import rewrite_source_urls_for_remote
70
69
  from plugins.runtime.python.typings import (
71
70
  CameraEventMessage,
72
71
  PluginInfo,
@@ -78,7 +77,6 @@ from plugins.runtime.python.typings import (
78
77
  )
79
78
 
80
79
  if TYPE_CHECKING:
81
- from plugins.runtime.python.plugin_api import PluginAPI
82
80
  from plugins.runtime.python.storage_controller import StorageController
83
81
 
84
82
 
@@ -99,7 +97,10 @@ class CameraControllerInterface(Protocol):
99
97
  async def disconnect(self) -> None: ...
100
98
  async def snapshot(self, source_id: str, force_new: bool | None = None) -> bytes | None: ...
101
99
  async def probeStream(
102
- self, source_id: str, probe_config: ProbeConfig | None = None, refresh: bool | None = False
100
+ self,
101
+ source_id: str,
102
+ probe_config: ProbeConfig | None = None,
103
+ refresh: bool | None = False,
103
104
  ) -> ProbeStream | None: ...
104
105
  async def refreshStates(self) -> dict[str, Any]: ...
105
106
  async def registerSensor(self, sensor: SensorJSON, plugin_id: str) -> bool: ...
@@ -144,7 +145,6 @@ class CameraDeviceProxy(Subscribed, CameraDeviceInterface):
144
145
  def __init__(
145
146
  self,
146
147
  proxy: RPCClient,
147
- api: PluginAPI,
148
148
  storage_controller: StorageController,
149
149
  camera: Camera,
150
150
  plugin: PluginInfo,
@@ -163,7 +163,6 @@ class CameraDeviceProxy(Subscribed, CameraDeviceInterface):
163
163
  )
164
164
 
165
165
  self._logger = logger
166
- self._api: PluginAPI = api
167
166
  self._proxy = proxy
168
167
  self._plugin = plugin
169
168
  self._contract: PluginContract = plugin["contract"]
@@ -199,8 +198,6 @@ class CameraDeviceProxy(Subscribed, CameraDeviceInterface):
199
198
  NamespaceManager.frame_worker_detection_namespaces(self.id),
200
199
  )
201
200
 
202
- self._api.once(API_EVENT.SHUTDOWN.value, self.cleanup)
203
-
204
201
  @property
205
202
  def _cameraObject(self) -> Camera:
206
203
  return deepcopy(self._camera_subject.value)
@@ -345,7 +342,7 @@ class CameraDeviceProxy(Subscribed, CameraDeviceInterface):
345
342
  return self._proxy.create_proxy(self._namespaces[4].detection_rpc)
346
343
 
347
344
  def getSourceById(self, id: str) -> CameraDeviceSource | None:
348
- return next((s for s in self.sources if s._id == id), None)
345
+ return next((s for s in self.sources if s._id == id), None) # pyright: ignore[reportPrivateUsage]
349
346
 
350
347
  def _can_access_sensor(self, sensor: StoredSensorData) -> bool:
351
348
  # Own sensors are always accessible
@@ -609,7 +606,10 @@ class CameraDeviceProxy(Subscribed, CameraDeviceInterface):
609
606
  return await self._camera_controller_proxy.snapshot(source_id, force_new)
610
607
 
611
608
  async def _probe_stream(
612
- self, source_id: str, probe_config: ProbeConfig | None = None, refresh: bool | None = False
609
+ self,
610
+ source_id: str,
611
+ probe_config: ProbeConfig | None = None,
612
+ refresh: bool | None = False,
613
613
  ) -> ProbeStream | None:
614
614
  return await self._camera_controller_proxy.probeStream(source_id, probe_config, refresh)
615
615
 
@@ -624,8 +624,6 @@ class CameraDeviceProxy(Subscribed, CameraDeviceInterface):
624
624
 
625
625
  self.unsubscribe()
626
626
 
627
- self._api.removeListener(API_EVENT.SHUTDOWN.value, self.cleanup)
628
-
629
627
  self._tasks.remove_all()
630
628
 
631
629
  if self._close_subscription:
@@ -772,7 +770,10 @@ class CameraDeviceProxy(Subscribed, CameraDeviceInterface):
772
770
  self._sensors.pop(removed_data["sensorId"], None)
773
771
 
774
772
  self._sensor_removed_subject.next(
775
- {"sensorId": removed_data["sensorId"], "sensorType": removed_data["sensorType"]}
773
+ {
774
+ "sensorId": removed_data["sensorId"],
775
+ "sensorType": removed_data["sensorType"],
776
+ }
776
777
  )
777
778
 
778
779
  elif event_type == "sensor:assignment:changed":
@@ -2,12 +2,11 @@ from __future__ import annotations
2
2
 
3
3
  import asyncio
4
4
  import os
5
- from typing import TYPE_CHECKING, Any, TypedDict
5
+ from typing import Any, TypedDict
6
6
 
7
7
  from _camera_ui_tools.camera_ui_common import LoggerService
8
8
  from _camera_ui_tools.camera_ui_rpc import CloseHandler, RPCClient
9
9
  from _camera_ui_tools.camera_ui_sdk import (
10
- API_EVENT,
11
10
  BasePlugin,
12
11
  CoreManager,
13
12
  CoreManagerEvent,
@@ -15,13 +14,14 @@ from _camera_ui_tools.camera_ui_sdk import (
15
14
  PluginInterface,
16
15
  Subject,
17
16
  )
18
- from plugins.runtime.python.namespaces import CoreManagerNamespaces, NamespaceManager, PluginNamespaces
17
+ from plugins.runtime.python.namespaces import (
18
+ CoreManagerNamespaces,
19
+ NamespaceManager,
20
+ PluginNamespaces,
21
+ )
19
22
  from plugins.runtime.python.rpc.typings import CoreManagerInterface
20
23
  from plugins.runtime.python.typings import PluginInfo
21
24
 
22
- if TYPE_CHECKING:
23
- from plugins.runtime.python.plugin_api import PluginAPI
24
-
25
25
 
26
26
  class RPCConnection(TypedDict):
27
27
  proxy: BasePlugin
@@ -32,13 +32,11 @@ class CoreManagerProxy(CoreManager):
32
32
  def __init__(
33
33
  self,
34
34
  proxy: RPCClient,
35
- api: PluginAPI,
36
35
  logger: LoggerService,
37
36
  plugin: PluginInfo,
38
37
  ):
39
38
  self.__initialized = False
40
39
 
41
- self.__api: PluginAPI = api
42
40
  self.__proxy = proxy
43
41
  self.__logger = logger
44
42
  self.__plugin = plugin
@@ -52,8 +50,6 @@ class CoreManagerProxy(CoreManager):
52
50
  self.__rpc_connections: dict[str, RPCConnection] = {}
53
51
  self.__event_subject: Subject[CoreManagerEvent] = Subject()
54
52
 
55
- self.__api.once(API_EVENT.SHUTDOWN.value, self.__close)
56
-
57
53
  @property
58
54
  def __core_manager_proxy(self) -> CoreManagerInterface:
59
55
  return self.__proxy.create_proxy(
@@ -112,6 +108,11 @@ class CoreManagerProxy(CoreManager):
112
108
  async def getPluginsByInterface(self, interfaceName: PluginInterface) -> list[PluginInfo]:
113
109
  return await self.__core_manager_proxy.getPluginsByInterface(interfaceName)
114
110
 
111
+ async def close(self) -> None:
112
+ """Internal method to close the core manager proxy."""
113
+ self.__initialized = False
114
+ self.__event_subject.complete()
115
+
115
116
  async def __on_event_message(self, event: dict[str, Any]) -> None:
116
117
  event_type = event.get("type")
117
118
  if not event_type:
@@ -119,10 +120,6 @@ class CoreManagerProxy(CoreManager):
119
120
  data = event.get("data")
120
121
  self.__event_subject.next({"type": event_type, "data": data})
121
122
 
122
- async def __close(self) -> None:
123
- self.__initialized = False
124
- self.__event_subject.complete()
125
- self.__api.removeListener(API_EVENT.SHUTDOWN.value, self.__close)
126
123
  if self.__close_subscription:
127
124
  await self.__close_subscription()
128
125
  self.__close_subscription = None
@@ -1,14 +1,13 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import asyncio
4
- from typing import TYPE_CHECKING, Any
4
+ from typing import Any
5
5
 
6
6
  from _camera_ui_tools.camera_ui_common import (
7
7
  LoggerService,
8
8
  )
9
9
  from _camera_ui_tools.camera_ui_rpc import CloseHandler, RPCClient
10
10
  from _camera_ui_tools.camera_ui_sdk import (
11
- API_EVENT,
12
11
  BasePlugin,
13
12
  Camera,
14
13
  DeviceManager,
@@ -20,21 +19,20 @@ from plugins.runtime.python.namespaces import (
20
19
  NamespaceManager,
21
20
  PluginNamespaces,
22
21
  )
23
- from plugins.runtime.python.rpc.typings import DeviceManagerInterface, DiscoveryManagerInterface
22
+ from plugins.runtime.python.rpc.typings import (
23
+ DeviceManagerInterface,
24
+ DiscoveryManagerInterface,
25
+ )
24
26
  from plugins.runtime.python.storage_controller import StorageController
25
27
  from plugins.runtime.python.typings import PluginInfo
26
28
 
27
29
  from .camera_device import CameraDeviceProxy
28
30
 
29
- if TYPE_CHECKING:
30
- from plugins.runtime.python.plugin_api import PluginAPI
31
-
32
31
 
33
32
  class DeviceManagerProxy(DeviceManager):
34
33
  def __init__(
35
34
  self,
36
35
  proxy: RPCClient,
37
- api: PluginAPI,
38
36
  storage_controller: StorageController,
39
37
  logger: LoggerService,
40
38
  plugin: PluginInfo,
@@ -42,7 +40,6 @@ class DeviceManagerProxy(DeviceManager):
42
40
  self.__initialized = False
43
41
  self.__plugin_instance: BasePlugin | None = None
44
42
 
45
- self.__api: PluginAPI = api
46
43
  self.__proxy = proxy
47
44
  self.__storage_controller = storage_controller
48
45
  self.__logger = logger
@@ -56,8 +53,6 @@ class DeviceManagerProxy(DeviceManager):
56
53
  NamespaceManager.discovery_manager_namespaces(),
57
54
  )
58
55
 
59
- self.__api.once(API_EVENT.SHUTDOWN.value, self.__close)
60
-
61
56
  @property
62
57
  def __device_manager_proxy(self) -> DeviceManagerInterface:
63
58
  return self.__proxy.create_proxy(self.__namespaces[0].device_manager_rpc, DeviceManagerInterface)
@@ -97,6 +92,16 @@ class DeviceManagerProxy(DeviceManager):
97
92
  async def configureCameras(self, camera_devices: list[CameraDeviceProxy]) -> None:
98
93
  await asyncio.gather(*[self.__get_camera_device(camera_device) for camera_device in camera_devices])
99
94
 
95
+ async def close(self) -> None:
96
+ """Internal method to close the device manager proxy and cleanup resources."""
97
+ self.__initialized = False
98
+ if self.__close_request:
99
+ await self.__close_request()
100
+
101
+ for device in self.__devices.values():
102
+ await device.cleanup()
103
+ self.__devices.clear()
104
+
100
105
  async def __on_event_message(self, event: Any) -> None:
101
106
  if not self.__plugin_instance:
102
107
  self.__logger.warn("Plugin instance not set, cannot handle lifecycle event")
@@ -107,6 +112,9 @@ class DeviceManagerProxy(DeviceManager):
107
112
 
108
113
  if event_type == "cameraAdded":
109
114
  camera: Camera = data.get("camera")
115
+ if camera["_id"] in self.__devices:
116
+ return
117
+
110
118
  camera_device = await self.__get_camera_device(camera)
111
119
 
112
120
  if camera_device:
@@ -153,11 +161,14 @@ class DeviceManagerProxy(DeviceManager):
153
161
  camera_device = self.__devices[camera["_id"]]
154
162
  else:
155
163
  camera_logger = self.__logger.create_logger(
156
- {"suffix": camera["name"], "target_id": camera["_id"], "target_type": "camera"}
164
+ {
165
+ "suffix": camera["name"],
166
+ "target_id": camera["_id"],
167
+ "target_type": "camera",
168
+ }
157
169
  )
158
170
  camera_device = CameraDeviceProxy(
159
171
  self.__proxy,
160
- self.__api,
161
172
  self.__storage_controller,
162
173
  camera,
163
174
  self.__plugin,
@@ -177,9 +188,3 @@ class DeviceManagerProxy(DeviceManager):
177
188
 
178
189
  async def __remove_camera_storage(self, camera_id: str) -> None:
179
190
  await self.__storage_controller.removeStorage("camera", camera_id)
180
-
181
- async def __close(self) -> None:
182
- self.__initialized = False
183
- self.__api.removeListener(API_EVENT.SHUTDOWN.value, self.__close)
184
- if self.__close_request:
185
- await self.__close_request()
@@ -8,11 +8,7 @@ _LOCALHOST = re.compile(r"127\.0\.0\.1|localhost")
8
8
  def _rewrite_url(url: str, master: str, user: str | None, password: str | None) -> str:
9
9
  rewritten = _LOCALHOST.sub(master, url)
10
10
 
11
- if (
12
- user
13
- and rewritten.startswith("rtsp://")
14
- and "@" not in rewritten[7:].split("/")[0]
15
- ):
11
+ if user and rewritten.startswith("rtsp://") and "@" not in rewritten[7:].split("/")[0]:
16
12
  rewritten = rewritten.replace("rtsp://", f"rtsp://{user}:{password or ''}@", 1)
17
13
 
18
14
  return rewritten
@@ -22,9 +18,9 @@ def _walk(value: Any, master: str, user: str | None, password: str | None) -> An
22
18
  if isinstance(value, str):
23
19
  return _rewrite_url(value, master, user, password)
24
20
  if isinstance(value, list):
25
- return [_walk(v, master, user, password) for v in value]
21
+ return [_walk(v, master, user, password) for v in value] # pyright: ignore[reportUnknownVariableType]
26
22
  if isinstance(value, dict):
27
- return {k: _walk(v, master, user, password) for k, v in value.items()}
23
+ return {k: _walk(v, master, user, password) for k, v in value.items()} # pyright: ignore[reportUnknownVariableType]
28
24
  return value
29
25
 
30
26