@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
@@ -8,50 +8,47 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { isEqual, mergeWith, structuredClone } from '@camera.ui/common/utils';
11
- import { RPCClass, RPCMethod } from '@camera.ui/rpc';
12
- import { API_EVENT } from '@camera.ui/sdk';
11
+ import { RPCMethod } from '@camera.ui/rpc';
13
12
  import objectPath from 'object-path';
14
13
  import { NamespaceManager } from '../../../rpc/namespaces.js';
15
14
  import { generateConfigFromSchemas, getValueByKey, isButtonType, isSubmitType, removeCallbacksFromSchemas } from '../../schema.js';
16
- let DeviceStorage = class DeviceStorage {
15
+ import { deleteLocation, readLocation, writeLocation } from '../../store/location.js';
16
+ import { validateStoreValue } from '../../store/validate.js';
17
+ export class DeviceStorage {
17
18
  schemas;
18
19
  values = {};
19
- #deviceId;
20
+ #location;
20
21
  #api;
21
22
  #proxy;
22
23
  #plugin;
23
24
  #pluginDb;
24
25
  #storageNamespace;
25
- #isPluginStorage;
26
26
  #sensorId;
27
- #cameraId;
27
+ #dirty = false;
28
28
  #closeProxy;
29
- constructor(api, proxy, plugin, pluginDb, deviceId, schemas = [], isPluginStorage, sensorId, cameraId) {
29
+ constructor(api, proxy, plugin, pluginDb, location, schemas = [], sensorId) {
30
30
  this.schemas = schemas;
31
31
  this.#api = api;
32
32
  this.#proxy = proxy;
33
33
  this.#plugin = plugin;
34
34
  this.#pluginDb = pluginDb;
35
- this.#deviceId = deviceId;
36
- this.#isPluginStorage = isPluginStorage;
35
+ this.#location = location;
37
36
  this.#sensorId = sensorId;
38
- this.#cameraId = cameraId;
39
- if (this.#sensorId && this.#cameraId) {
40
- // Sensor storage: plugin + camera + sensor instance specific
41
- const sensorNs = NamespaceManager.pluginSensorNamespaces(this.#plugin.id, this.#cameraId, this.#sensorId);
37
+ if (location.kind === 'sensor' && this.#sensorId) {
38
+ const sensorNs = NamespaceManager.pluginSensorNamespaces(this.#plugin.id, location.cameraId, this.#sensorId);
42
39
  this.#storageNamespace = sensorNs.sensorStorageRpc;
43
40
  }
44
- else if (this.#isPluginStorage) {
41
+ else if (location.kind === 'plugin') {
45
42
  const pluginNs = NamespaceManager.pluginNamespaces(this.#plugin.id);
46
43
  this.#storageNamespace = pluginNs.pluginStorageRpc;
47
44
  }
48
- else {
49
- // Camera storage (per plugin + camera)
50
- const cameraNs = NamespaceManager.pluginCameraNamespaces(this.#plugin.id, this.#deviceId);
45
+ else if (location.kind === 'camera') {
46
+ const cameraNs = NamespaceManager.pluginCameraNamespaces(this.#plugin.id, location.cameraId);
51
47
  this.#storageNamespace = cameraNs.cameraStorageRpc;
52
48
  }
53
- this.#api.setMaxListeners(this.#api.getMaxListeners() + 1);
54
- this.#api.once(API_EVENT.SHUTDOWN, this.#close.bind(this));
49
+ else {
50
+ throw new Error(`sensor storage for ${this.#plugin.id} requires a sensorId`);
51
+ }
55
52
  }
56
53
  getValue(key, defaultValue) {
57
54
  const schema = this.schemas.find((schema) => schema.key === key);
@@ -61,12 +58,19 @@ let DeviceStorage = class DeviceStorage {
61
58
  async setValue(key, newValue) {
62
59
  const schema = this.schemas.find((schema) => schema.key === key);
63
60
  if (schema) {
61
+ validateStoreValue(key, newValue);
64
62
  const oldValue = objectPath.get(this.values, key);
65
- objectPath.set(this.values, key, newValue);
66
- await schema.onSet?.(newValue, oldValue);
67
- if (this.#containsStorableSchema(schema)) {
63
+ const unchanged = newValue === null || newValue === undefined ? oldValue === undefined : isEqual(oldValue, newValue);
64
+ if (newValue === null || newValue === undefined) {
65
+ objectPath.del(this.values, key);
66
+ }
67
+ else {
68
+ objectPath.set(this.values, key, typeof newValue === 'object' ? structuredClone(newValue) : newValue);
69
+ }
70
+ if (this.#containsStorableSchema(schema) && (!unchanged || this.#dirty)) {
68
71
  await this.save();
69
72
  }
73
+ this.#runOnSetDetached(schema.onSet, key, newValue, oldValue);
70
74
  }
71
75
  }
72
76
  async submitValue(key, newValue) {
@@ -76,7 +80,18 @@ let DeviceStorage = class DeviceStorage {
76
80
  }
77
81
  }
78
82
  async setInternalValue(key, value) {
79
- objectPath.set(this.values, key, value);
83
+ validateStoreValue(key, value);
84
+ const oldValue = objectPath.get(this.values, key);
85
+ const unchanged = value === null || value === undefined ? oldValue === undefined : isEqual(oldValue, value);
86
+ if (value === null || value === undefined) {
87
+ objectPath.del(this.values, key);
88
+ }
89
+ else {
90
+ objectPath.set(this.values, key, typeof value === 'object' ? structuredClone(value) : value);
91
+ }
92
+ if (unchanged && !this.#dirty) {
93
+ return;
94
+ }
80
95
  await this.save();
81
96
  }
82
97
  hasValue(key) {
@@ -90,21 +105,21 @@ let DeviceStorage = class DeviceStorage {
90
105
  return schemaConfig;
91
106
  }
92
107
  async setConfig(newConfig) {
108
+ validateStoreValue('config', newConfig);
93
109
  const oldConfig = structuredClone(this.values);
94
110
  this.values = mergeWith(this.values, newConfig, (source, target) => {
95
111
  if (Array.isArray(source)) {
96
112
  return target;
97
113
  }
98
114
  });
99
- await this.#triggerOnSetForChanges(oldConfig, this.values);
100
115
  await this.save();
116
+ this.#triggerOnSetForChanges(oldConfig, this.values);
101
117
  }
102
118
  defineSchemas(schemas) {
103
119
  this.schemas = schemas;
104
120
  this.#initializeStorage();
105
121
  }
106
122
  async addSchema(schema) {
107
- let shouldSave = false;
108
123
  const schemaExist = this.hasSchema(schema.key);
109
124
  if (schemaExist) {
110
125
  throw new Error(`Schema with key ${schema.key} already exists`);
@@ -112,35 +127,36 @@ let DeviceStorage = class DeviceStorage {
112
127
  else {
113
128
  this.schemas.push(schema);
114
129
  }
130
+ const oldValue = objectPath.get(this.values, schema.key);
115
131
  await this.#resolveOnGetFunctions(schema);
116
- if (this.#containsStorableSchema(schema)) {
117
- shouldSave = true;
118
- }
119
- if (shouldSave) {
132
+ if (this.#containsStorableSchema(schema) && !isEqual(oldValue, objectPath.get(this.values, schema.key), true)) {
120
133
  await this.save();
121
134
  }
122
135
  }
123
136
  async removeSchema(key) {
124
137
  const schema = this.schemas.find((schema) => schema.key === key);
138
+ const hadValue = objectPath.get(this.values, key) !== undefined;
125
139
  this.schemas = this.schemas.filter((schema) => schema.key !== key);
126
140
  objectPath.del(this.values, key);
127
- if (schema && this.#containsStorableSchema(schema)) {
141
+ if (schema && this.#containsStorableSchema(schema) && hadValue) {
128
142
  await this.save();
129
143
  }
130
144
  }
131
145
  async changeSchema(key, newSchema) {
132
146
  newSchema.key = key;
133
- const schema = this.schemas.find((schema) => schema.key === newSchema.key);
134
- if (schema) {
135
- mergeWith(schema, newSchema, (source, target) => {
136
- if (Array.isArray(source)) {
137
- return target;
138
- }
139
- });
140
- await this.#resolveOnGetFunctions(schema);
141
- if (this.#containsStorableSchema(schema)) {
142
- await this.save();
143
- }
147
+ const index = this.schemas.findIndex((schema) => schema.key === key);
148
+ if (index === -1) {
149
+ return;
150
+ }
151
+ const wasStorable = this.#containsStorableSchema(this.schemas[index]);
152
+ this.schemas[index] = newSchema;
153
+ if (this.#containsStorableSchema(newSchema) !== wasStorable) {
154
+ this.#dirty = true;
155
+ }
156
+ const oldValue = objectPath.get(this.values, key);
157
+ await this.#resolveOnGetFunctions(newSchema);
158
+ if (this.#containsStorableSchema(newSchema) && !isEqual(oldValue, objectPath.get(this.values, key), true)) {
159
+ await this.save();
144
160
  }
145
161
  }
146
162
  getSchema(key) {
@@ -151,17 +167,23 @@ let DeviceStorage = class DeviceStorage {
151
167
  return !!schema;
152
168
  }
153
169
  async destroy() {
154
- this.#api.removeListener(API_EVENT.SHUTDOWN, this.#close.bind(this));
155
170
  const config = this.#pluginDb.get('config') ?? {};
156
- delete config[this.#deviceId];
171
+ deleteLocation(config, this.#location);
157
172
  this.values = {};
158
173
  await this.#pluginDb.put('config', config);
159
174
  }
160
175
  async save() {
161
176
  const config = this.#pluginDb.get('config') ?? {};
162
177
  const storableConfig = this.schemas.length ? this.#filterStorableValues(this.schemas) : this.values;
163
- config[this.#deviceId] = storableConfig;
164
- await this.#pluginDb.put('config', config);
178
+ writeLocation(config, this.#location, storableConfig);
179
+ try {
180
+ await this.#pluginDb.put('config', config);
181
+ this.#dirty = false;
182
+ }
183
+ catch (error) {
184
+ this.#dirty = true;
185
+ throw error;
186
+ }
165
187
  }
166
188
  updateSchema(schemas = []) {
167
189
  this.schemas = schemas;
@@ -173,6 +195,16 @@ let DeviceStorage = class DeviceStorage {
173
195
  async unregisterStorage() {
174
196
  await this.#closeProxy?.();
175
197
  }
198
+ /** Internal method to close the storage */
199
+ async close() {
200
+ try {
201
+ await this.save();
202
+ await this.unregisterStorage();
203
+ }
204
+ catch (error) {
205
+ this.#api.logger.error('store: close save failed:', error);
206
+ }
207
+ }
176
208
  async #resolveOnGetFunctions(schemas) {
177
209
  if (!Array.isArray(schemas)) {
178
210
  schemas = [schemas];
@@ -186,19 +218,25 @@ let DeviceStorage = class DeviceStorage {
186
218
  }
187
219
  }
188
220
  }
189
- async #triggerOnSetForChanges(oldConfig, newConfig) {
190
- const promises = [];
221
+ #triggerOnSetForChanges(oldConfig, newConfig) {
191
222
  for (const configKey in newConfig) {
192
223
  const oldValue = getValueByKey(oldConfig, configKey);
193
224
  const newValue = newConfig[configKey];
194
225
  if (!isEqual(oldValue, newValue, true)) {
195
226
  const schema = this.schemas.find((schema) => schema.key === configKey);
196
227
  if (schema && !isSubmitType(schema) && typeof schema.onSet === 'function') {
197
- promises.push(schema.onSet(newValue, oldValue));
228
+ this.#runOnSetDetached(schema.onSet, configKey, newValue, oldValue);
198
229
  }
199
230
  }
200
231
  }
201
- await Promise.all(promises);
232
+ }
233
+ #runOnSetDetached(onSet, key, newValue, oldValue) {
234
+ if (typeof onSet !== 'function') {
235
+ return;
236
+ }
237
+ (async () => onSet(newValue, oldValue))().catch((error) => {
238
+ this.#api.logger.error(`onSet handler for "${key}" failed: ${error instanceof Error ? error.message : String(error)}`);
239
+ });
202
240
  }
203
241
  #filterStorableValues(schemas, result = {}) {
204
242
  for (const schema of schemas) {
@@ -210,9 +248,10 @@ let DeviceStorage = class DeviceStorage {
210
248
  objectPath.set(result, schema.key, configValue);
211
249
  }
212
250
  }
213
- // Preserve internal values (prefixed with '_') that have no schema.
251
+ // Keys without any schema are internal values and always persist;
252
+ // schema-covered keys persist only via their store flag above.
214
253
  for (const [key, value] of Object.entries(this.values)) {
215
- if (key.startsWith('_')) {
254
+ if (!schemas.some((schema) => schema.key === key || schema.key.startsWith(`${key}.`))) {
216
255
  result[key] = value;
217
256
  }
218
257
  }
@@ -229,7 +268,7 @@ let DeviceStorage = class DeviceStorage {
229
268
  }
230
269
  async #initializeStorage() {
231
270
  const config = this.#pluginDb.get('config') ?? {};
232
- const deviceConfig = config[this.#deviceId] ?? {};
271
+ const deviceConfig = readLocation(config, this.#location) ?? {};
233
272
  const schemaConfig = generateConfigFromSchemas(this.schemas);
234
273
  this.values = mergeWith(schemaConfig, deviceConfig, (source, target) => {
235
274
  if (Array.isArray(source)) {
@@ -240,16 +279,7 @@ let DeviceStorage = class DeviceStorage {
240
279
  }
241
280
  });
242
281
  }
243
- async #close() {
244
- try {
245
- await this.save();
246
- await this.unregisterStorage();
247
- }
248
- catch {
249
- //
250
- }
251
- }
252
- };
282
+ }
253
283
  __decorate([
254
284
  RPCMethod,
255
285
  __metadata("design:type", Function),
@@ -328,9 +358,4 @@ __decorate([
328
358
  __metadata("design:paramtypes", []),
329
359
  __metadata("design:returntype", Promise)
330
360
  ], DeviceStorage.prototype, "destroy", null);
331
- DeviceStorage = __decorate([
332
- RPCClass,
333
- __metadata("design:paramtypes", [Function, Object, Object, Object, String, Array, Boolean, String, String])
334
- ], DeviceStorage);
335
- export { DeviceStorage };
336
361
  //# sourceMappingURL=storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/storage.ts"],"names":[],"mappings":"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"}
@@ -18,4 +18,6 @@ export declare class StorageController {
18
18
  removeStorage(type: 'camera', deviceId: string): Promise<void>;
19
19
  removeStorage(type: 'plugin'): Promise<void>;
20
20
  removeStorage(type: 'sensor', cameraId: string, sensorType: SensorType, pluginId: string, sensorName: string): Promise<void>;
21
+ /** Internal method to close all storages */
22
+ close(): Promise<void>;
21
23
  }
@@ -18,7 +18,7 @@ export class StorageController {
18
18
  createCameraStorage(cameraId, schemas = []) {
19
19
  let cameraStorage = this.#storages.get(cameraId);
20
20
  if (!cameraStorage) {
21
- cameraStorage = new DeviceStorage(this.#api, this.#proxy, this.#plugin, this.#pluginDb, cameraId, schemas, false);
21
+ cameraStorage = new DeviceStorage(this.#api, this.#proxy, this.#plugin, this.#pluginDb, { kind: 'camera', cameraId }, schemas);
22
22
  this.#storages.set(cameraId, cameraStorage);
23
23
  }
24
24
  else {
@@ -29,7 +29,7 @@ export class StorageController {
29
29
  createPluginStorage(schemas = []) {
30
30
  let pluginStorage = this.#storages.get('storage');
31
31
  if (!pluginStorage) {
32
- pluginStorage = new DeviceStorage(this.#api, this.#proxy, this.#plugin, this.#pluginDb, 'storage', schemas, true);
32
+ pluginStorage = new DeviceStorage(this.#api, this.#proxy, this.#plugin, this.#pluginDb, { kind: 'plugin' }, schemas);
33
33
  this.#storages.set('storage', pluginStorage);
34
34
  }
35
35
  else {
@@ -47,8 +47,10 @@ export class StorageController {
47
47
  const storageKey = sensorStorageKey(cameraId, sensorType, pluginId, sensorName);
48
48
  let storage = this.#storages.get(storageKey);
49
49
  if (!storage) {
50
- // deviceId = storageKey (DB persistence); sensorId = runtime UUID (RPC namespace)
51
- storage = new DeviceStorage(this.#api, this.#proxy, this.#plugin, this.#pluginDb, storageKey, schemas, false, sensorId, cameraId);
50
+ // storageKey is only the in-memory registry key; persistence addresses
51
+ // the canonical sensors.<camId>.<type>.<name> path. sensorId is the
52
+ // runtime UUID for the RPC namespace.
53
+ storage = new DeviceStorage(this.#api, this.#proxy, this.#plugin, this.#pluginDb, { kind: 'sensor', cameraId, sensorType, sensorName }, schemas, sensorId);
52
54
  this.#storages.set(storageKey, storage);
53
55
  storage.updateSchema(schemas);
54
56
  }
@@ -103,5 +105,11 @@ export class StorageController {
103
105
  await deviceStorage?.unregisterStorage();
104
106
  this.#storages.delete(storageKey);
105
107
  }
108
+ /** Internal method to close all storages */
109
+ async close() {
110
+ for (const storage of this.#storages.values()) {
111
+ await storage.close();
112
+ }
113
+ }
106
114
  }
107
115
  //# sourceMappingURL=storageController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storageController.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/storageController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storageController.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/storageController.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
+ from __future__ import annotations
2
+
1
3
  import truststore
2
4
 
3
5
  truststore.inject_into_ssl()
4
6
 
5
7
  import asyncio
6
8
  import importlib.util
7
- import json
8
9
  import os
9
10
  import sys
10
11
  from contextlib import suppress
11
12
  from pathlib import Path
12
13
  from types import ModuleType
13
- from typing import Any, Literal, cast
14
+ from typing import Any, cast
14
15
 
15
16
  import setproctitle
16
- from lmdbm import Lmdb
17
17
 
18
18
  from _camera_ui_tools.camera_ui_common import (
19
19
  LoggerOptions,
@@ -23,11 +23,18 @@ from _camera_ui_tools.camera_ui_common import (
23
23
  from _camera_ui_tools.camera_ui_rpc import CloseHandler, RPCClient, create_rpc_client
24
24
  from _camera_ui_tools.camera_ui_sdk import API_EVENT, BasePlugin, Camera
25
25
  from _camera_ui_tools.camera_ui_sdk import CameraDevice as CameraDeviceInterface
26
- from plugins.runtime.python.config_db import PluginConfigDb, PluginConfigStoreRPC, RemotePluginConfigDb
26
+ from plugins.runtime.python.config_db import (
27
+ LocalPluginConfigDb,
28
+ PluginConfigDb,
29
+ PluginConfigStoreRPC,
30
+ RemotePluginConfigDb,
31
+ )
27
32
  from plugins.runtime.python.namespaces import NamespaceManager
28
33
  from plugins.runtime.python.plugin_api import PluginAPI
29
34
  from plugins.runtime.python.proxy.camera_device import CameraDeviceProxy
30
35
  from plugins.runtime.python.proxy.file_serve import PluginFileServer
36
+ from plugins.runtime.python.store import STORE_FILE_NAME, PluginStoreFile
37
+ from plugins.runtime.python.store_migrate import migrate_legacy_lmdbm, needs_lmdbm_migration
31
38
  from plugins.runtime.python.typings import (
32
39
  PLUGIN_COMMAND,
33
40
  PLUGIN_STATUS,
@@ -40,20 +47,8 @@ from plugins.runtime.python.typings import (
40
47
  process_name = sys.argv[2] if len(sys.argv) > 2 else sys.argv[1] if len(sys.argv) > 1 else "Plugin"
41
48
  setproctitle.setproctitle(f"camera.ui - {process_name}")
42
49
 
43
-
44
- class JsonLmdb(Lmdb[Literal["config"], dict[str, Any]]):
45
- def _pre_key(self, key: Literal["config"]) -> bytes:
46
- return key.encode("utf-8")
47
-
48
- def _post_key(self, key: bytes) -> Literal["config"]:
49
- _key: Any = key.decode("utf-8")
50
- return _key
51
-
52
- def _pre_value(self, value: dict[str, Any]) -> bytes:
53
- return json.dumps(value).encode("utf-8")
54
-
55
- def _post_value(self, value: bytes) -> dict[str, Any]:
56
- return json.loads(value.decode("utf-8"))
50
+ SHUTDOWN_LISTENER_TIMEOUT = 1.5
51
+ RPC_TEARDOWN_TIMEOUT = 1.0
57
52
 
58
53
 
59
54
  class PluginChild:
@@ -98,7 +93,7 @@ class PluginChild:
98
93
  self.signal_handler = SignalHandler(
99
94
  {
100
95
  "display_name": "[Signal]",
101
- "timeout_duration": 3,
96
+ "timeout_duration": 2,
102
97
  "logger": self.logger,
103
98
  "close_function": self.stop_plugin,
104
99
  }
@@ -125,7 +120,7 @@ class PluginChild:
125
120
 
126
121
  async def start_plugin(self, data: ProcessLoadMessage) -> None:
127
122
  try:
128
- # Host-local writable dir - on a remote worker the master's path from
123
+ # Host-local writable dir on a remote worker the master's path from
129
124
  # the START message would point at the wrong machine.
130
125
  storage_path = os.environ.get("PLUGIN_STORAGE_PATH") or data["storage"]["storagePath"]
131
126
  plugin_info = data["plugin"]
@@ -145,7 +140,6 @@ class PluginChild:
145
140
  plugin_storage = await self.api.storage_controller.createStorage("plugin")
146
141
  self.plugin = cast(BasePlugin, plugin_constructor(self.logger, self.api, plugin_storage))
147
142
 
148
- # Apply storage_schema if defined by plugin
149
143
  if hasattr(self.plugin, "storage_schema") and self.plugin.storage_schema:
150
144
  plugin_storage.defineSchemas(self.plugin.storage_schema)
151
145
 
@@ -154,11 +148,12 @@ class PluginChild:
154
148
  namespaces.plugin_child_rpc, self.plugin, without_decorators=True
155
149
  )
156
150
 
151
+ # Remote-hosted: serve this worker's files so the master can stream
152
+ # downloads/exports of them.
157
153
  if os.environ.get("PLUGIN_REMOTE_MODE"):
158
154
  self.file_server = PluginFileServer(self.proxy, plugin_info["id"])
159
155
  await self.file_server.register()
160
156
 
161
- # Set the plugin instance on device_manager for lifecycle callbacks
162
157
  self.api.device_manager.set_plugin(self.plugin)
163
158
 
164
159
  await self.api.device_manager.init()
@@ -180,15 +175,33 @@ class PluginChild:
180
175
  self.stopped = True
181
176
 
182
177
  if self.api:
183
- self.api.emit(API_EVENT.SHUTDOWN.value)
184
- await asyncio.sleep(0.5)
178
+ completed = await self.api.emit_and_wait(
179
+ API_EVENT.SHUTDOWN.value,
180
+ timeout=SHUTDOWN_LISTENER_TIMEOUT,
181
+ on_error=lambda e: self.logger.error(f"Shutdown listener failed: {e}"),
182
+ )
183
+ if not completed:
184
+ self.logger.warn(
185
+ f"Shutdown listeners still pending after {SHUTDOWN_LISTENER_TIMEOUT}s, continuing teardown"
186
+ )
187
+
188
+ await self.api.device_manager.close()
189
+ await self.api.core_manager.close()
190
+ await self.api.storage_controller.close()
191
+
185
192
  self.api.cancel()
186
193
 
187
194
  if self.plugin_db is not None:
188
195
  with suppress(Exception):
189
- self.plugin_db.close()
196
+ await self.plugin_db.close()
190
197
  self.plugin_db = None
191
198
 
199
+ try:
200
+ await asyncio.wait_for(self._close_rpc(), timeout=RPC_TEARDOWN_TIMEOUT)
201
+ except TimeoutError:
202
+ self.logger.warn(f"RPC teardown still pending after {RPC_TEARDOWN_TIMEOUT}s, exiting anyway")
203
+
204
+ async def _close_rpc(self) -> None:
192
205
  if self.channel:
193
206
  with suppress(Exception):
194
207
  await self.channel.close()
@@ -202,7 +215,8 @@ class PluginChild:
202
215
  with suppress(Exception):
203
216
  await self.close_proxy()
204
217
 
205
- await self.proxy.disconnect()
218
+ with suppress(Exception):
219
+ await self.proxy.disconnect()
206
220
 
207
221
  async def send_message(self, message: ProcessResponse) -> None:
208
222
  await self.channel.send(message)
@@ -224,25 +238,24 @@ class PluginChild:
224
238
  pass
225
239
 
226
240
  async def configure_plugin_db(self, storage_path: str, plugin_id: str) -> PluginConfigDb:
227
- # Remote-hosted: config lives on the master (re-homing safe) - persist
241
+ # Remote-hosted: config lives on the master (re-homing safe) persist
228
242
  # through its config store instead of a worker-local file.
229
243
  if os.environ.get("PLUGIN_CONFIG_STORE_RPC"):
230
244
  namespaces = NamespaceManager.plugin_namespaces(plugin_id)
231
- store = self.proxy.create_proxy(namespaces.plugin_config_store_rpc, PluginConfigStoreRPC)
232
- remote_db = RemotePluginConfigDb(store)
245
+ store_rpc = self.proxy.create_proxy(namespaces.plugin_config_store_rpc, PluginConfigStoreRPC)
246
+ remote_db = RemotePluginConfigDb(store_rpc)
233
247
  await remote_db.init()
234
248
  return remote_db
235
249
 
236
- db_path = Path(storage_path) / "volume"
237
- Path(db_path).mkdir(parents=True, exist_ok=True)
238
-
239
- plugin_db = cast(Lmdb[Literal["config"], dict[str, Any]], JsonLmdb.open(file=str(db_path), flag="c"))
240
- config = cast(dict[str, Any] | None, plugin_db.get("config"))
250
+ volume_dir = Path(storage_path) / "volume"
251
+ store_path = volume_dir / STORE_FILE_NAME
241
252
 
242
- if config is None:
243
- plugin_db.update({"config": {}})
253
+ if await asyncio.to_thread(needs_lmdbm_migration, volume_dir, store_path):
254
+ await migrate_legacy_lmdbm(volume_dir, store_path, self.logger)
244
255
 
245
- return plugin_db
256
+ store = PluginStoreFile(str(volume_dir), plugin_id, self.logger)
257
+ await store.open()
258
+ return LocalPluginConfigDb(store)
246
259
 
247
260
  async def configure_cameras(self, api: PluginAPI, plugin_info: PluginInfo, cameras: list[Camera]) -> None:
248
261
  cameras_devices: list[CameraDeviceProxy] = []
@@ -254,7 +267,6 @@ class PluginChild:
254
267
  cameras_devices.append(
255
268
  CameraDeviceProxy(
256
269
  self.proxy,
257
- api,
258
270
  api.storage_controller,
259
271
  camera,
260
272
  plugin_info,