@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.
- package/dist/interface/assets/{404-B8P9h05I.js → 404-ekmIpFW1.js} +1 -1
- package/dist/interface/assets/About-CvajU0JT.js +1 -0
- package/dist/interface/assets/Adminpanel-DrKaMQqd.js +1 -0
- package/dist/interface/assets/Automation-Dn1ZXmhy.js +2 -0
- package/dist/interface/assets/AutomationImport-U7r6BcW_.js +2 -0
- package/dist/interface/assets/{AutomationStore-qLsO1tHb.js → AutomationStore-DZBtLuIs.js} +2 -2
- package/dist/interface/assets/{AutomationStoreDetail-BAW2nfPd.js → AutomationStoreDetail-BXpOtPMl.js} +2 -2
- package/dist/interface/assets/{Automations-CUCVYZSr.js → Automations-DGHcWJ0h.js} +2 -2
- package/dist/interface/assets/Camera-CVJ-46dw.js +2 -0
- package/dist/interface/assets/Camera-Da5zEitE.css +1 -0
- package/dist/interface/assets/{CameraConsole-t6nY7h-V.js → CameraConsole-DPI9LjVK.js} +1 -1
- package/dist/interface/assets/Cameras-2kM76WUB.css +1 -0
- package/dist/interface/assets/Cameras-DsZ7VINe.js +652 -0
- package/dist/interface/assets/Camview-Lnxd3oe8.js +1 -0
- package/dist/interface/assets/Config-B1ZKVfMn.js +2 -0
- package/dist/interface/assets/ConfigActionCameraControl-BHKVJQqx.js +1 -0
- package/dist/interface/assets/{ConfigActionDelay-Rnxk--Qt.js → ConfigActionDelay-BS1vLvDQ.js} +1 -1
- package/dist/interface/assets/ConfigActionHttp-BKlRdtJr.js +1 -0
- package/dist/interface/assets/{ConfigActionImageInput-C8_H3ubM.js → ConfigActionImageInput-DveJ7oK8.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-4VYN5Hkr.js → ConfigActionNotification-Cn3qFFiK.js} +1 -1
- package/dist/interface/assets/ConfigActionOutput-Bg6d4zFD.js +1 -0
- package/dist/interface/assets/{ConfigActionPlugin-DrPmBv9V.js → ConfigActionPlugin-u-_sCQs9.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-CyaEZRfx.js → ConfigActionSensor-Cx1Q9VtS.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-l7VvnulO.js → ConfigActionSnapshot-DN4UC9jz.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-DIlUMHDy.js → ConfigActionVariable-Yufao52p.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-0XRDQcTw.js → ConfigConditionIfElse-X9Sf0RwG.js} +1 -1
- package/dist/interface/assets/ConfigConditionSensorState-DQkz0FC6.js +1 -0
- package/dist/interface/assets/{ConfigConditionSwitch-C7pp1EZI.js → ConfigConditionSwitch-B4OICWxL.js} +1 -1
- package/dist/interface/assets/ConfigConditionTime-DRhAEuuC.js +1 -0
- package/dist/interface/assets/{ConfigTriggerDetection-CKw-fo2n.js → ConfigTriggerDetection-CzI4hgRA.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerGeofence-DjBRl2tE.js → ConfigTriggerGeofence-RUlZmXAo.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerManual-BpBTh3CS.js → ConfigTriggerManual-Jjh7ZhyC.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-DZG10NcA.js → ConfigTriggerSchedule-Dr6ALguI.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-CpFa6nUj.js → ConfigTriggerSensor-DLxdw9Fd.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-BsQElCAL.js → ConfigTriggerSystem-DYDpUWwi.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-BKPOGAs3.js → ConfigTriggerWebhook-DiW3cwjT.js} +1 -1
- package/dist/interface/assets/Console-B55HKp9M.js +1 -0
- package/dist/interface/assets/{CuiActionButton-BSy6VaJ6.js → CuiActionButton-iNuXCl7_.js} +1 -1
- package/dist/interface/assets/{CuiAvatar-8AhiddF1.js → CuiAvatar-B1PdXoLS.js} +1 -1
- package/dist/interface/assets/{CuiBBoxPlayground-BUPzZ0sI.js → CuiBBoxPlayground-BJYeyVTF.js} +1 -1
- package/dist/interface/assets/{CuiBottomSheet-BNCym-11.js → CuiBottomSheet-B57WDcr5.js} +1 -1
- package/dist/interface/assets/CuiBottomSheet-Da0yy5zi.js +1 -0
- package/dist/interface/assets/CuiCameraCard-Dix4Iyrv.js +1 -0
- package/dist/interface/assets/{CuiCameraPipCard-CUPWEo3r.js → CuiCameraPipCard-BAOlD5uq.js} +1 -1
- package/dist/interface/assets/CuiCameraRecordings-ET-hbDL9.js +1 -0
- package/dist/interface/assets/{CuiCameraShares-oA3ockIQ.js → CuiCameraShares-CMzYmZt7.js} +1 -1
- package/dist/interface/assets/CuiCameraSnapshot-BcJfNxnj.js +1 -0
- package/dist/interface/assets/CuiCameraTable-CmyHU7oP.js +2 -0
- package/dist/interface/assets/{CuiDataTable-DhnQRMXG.js → CuiDataTable-Cd1jvrN0.js} +1 -1
- package/dist/interface/assets/{CuiFloatingButton-YIEmTfno.js → CuiFloatingButton-B3_fNyCP.js} +1 -1
- package/dist/interface/assets/{CuiImage-CzYVSrkC.js → CuiImage-BupeZIam.js} +1 -1
- package/dist/interface/assets/{CuiMarkdownContent-ecpe3mHA.js → CuiMarkdownContent-B4fVlO8h.js} +1 -1
- package/dist/interface/assets/CuiMarkdownContent-CMPFzD-0.js +1 -0
- package/dist/interface/assets/{CuiMenu-CEaJl-MF.js → CuiMenu-C-rnBf9W.js} +1 -1
- package/dist/interface/assets/{CuiPluginCard-BBV_hV1R.css → CuiPluginCard-C9zsmIaC.css} +1 -1
- package/dist/interface/assets/CuiPluginCard-Cs3gCugA.js +2 -0
- package/dist/interface/assets/{CuiPluginCategoryChip-BwL2qCTM.js → CuiPluginCategoryChip-D_ICXcvd.js} +1 -1
- package/dist/interface/assets/{CuiPluginOAuthButton-BmBW2Pdf.js → CuiPluginOAuthButton-B1e0NCmA.js} +2 -2
- package/dist/interface/assets/{CuiPluginTrustBadge-KcOasEJH.js → CuiPluginTrustBadge-CuxXssET.js} +1 -1
- package/dist/interface/assets/{CuiQRCode-BUSzb3ek.js → CuiQRCode-46CN267y.js} +1 -1
- package/dist/interface/assets/{CuiRecordingsGrid-lcLty5PV.css → CuiRecordingsGrid-DRBC07wN.css} +1 -1
- package/dist/interface/assets/CuiRecordingsGrid-FObjS4y5.js +1 -0
- package/dist/interface/assets/CuiSchema-BvjMb-mO.js +1 -0
- package/dist/interface/assets/{CuiTopNavbarItem-DVwItfbG.js → CuiTopNavbarItem-CmnJEc_r.js} +1 -1
- package/dist/interface/assets/{CuiTopbarSlot-h5_1cb9v.js → CuiTopbarSlot-T_pdxsit.js} +1 -1
- package/dist/interface/assets/Faces-DHk9Jq3T.js +1 -0
- package/dist/interface/assets/FirstSteps-Bb3XOidA.js +1 -0
- package/dist/interface/assets/{Instances-BNasTbK_.js → Instances-CXPH9NdC.js} +1 -1
- package/dist/interface/assets/Logs-jN6cBnCk.js +6 -0
- package/dist/interface/assets/{Menu-DTC3IWLc.js → Menu-BhWV3vKB.js} +1 -1
- package/dist/interface/assets/{OAuthDeviceFlow-BOIY4kBt.js → OAuthDeviceFlow-XfU0jZ6x.js} +1 -1
- package/dist/interface/assets/Plugin-BF0VMRby.js +1 -0
- package/dist/interface/assets/Plugin-DbSiTjYn.css +1 -0
- package/dist/interface/assets/{PluginConsole-DwNRvKqW.js → PluginConsole-DoeboO_n.js} +1 -1
- package/dist/interface/assets/PluginDetail-C2UBJlKS.js +2 -0
- package/dist/interface/assets/{PluginSchema-DWnYqRll.js → PluginSchema-BD-rLvro.js} +1 -1
- package/dist/interface/assets/PluginSearch-CTIiYmP4.js +1 -0
- package/dist/interface/assets/PluginSearch-NnCJ7vG2.js +2 -0
- package/dist/interface/assets/Plugins-BLtk8Off.js +1 -0
- package/dist/interface/assets/Recordings-CMO0UwaS.js +1 -0
- package/dist/interface/assets/{Settings-CfiNEl95.js → Settings-BAVtA47G2.js} +1 -1
- package/dist/interface/assets/SettingsAccount-Iz4WalaS.js +1 -0
- package/dist/interface/assets/SettingsAccount-NUdKG4ow.js +1 -0
- package/dist/interface/assets/SettingsAppearance-Ck1O2w3P.js +1 -0
- package/dist/interface/assets/{SettingsAppearance-Ck4VcB-w.js → SettingsAppearance-SLzxaqjN.js} +1 -1
- package/dist/interface/assets/SettingsBackup-CPC0aLD3.js +1 -0
- package/dist/interface/assets/SettingsNotifications-DB4CcddP.js +2 -0
- package/dist/interface/assets/SettingsRecordings-C15sTnLd.js +1 -0
- package/dist/interface/assets/SettingsRemote-5nVdezk3.js +1 -0
- package/dist/interface/assets/SettingsSystem-FqKuLssS.js +2 -0
- package/dist/interface/assets/SettingsUsers-CCp_3xlV.js +1 -0
- package/dist/interface/assets/Terminal-BHvfL8kE.js +4 -0
- package/dist/interface/assets/{VariableInput-DmE1m9Il.js → VariableInput-BnNttSx9.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-eII-1Bd_.js → VariableSuggestions-BbT0U9F0.js} +1 -1
- package/dist/interface/assets/VersionsHandler-jleSwMVy.js +7 -0
- package/dist/interface/assets/{Workers-Bj_tLx-1.js → Workers-ELW90lll.js} +2 -2
- package/dist/interface/assets/{account-CMuSWY7R.js → account-DqyKcqe6.js} +1 -1
- package/dist/interface/assets/ace-6JpPWRIj.js +1 -0
- package/dist/interface/assets/{ace.config-D884GuRj.js → ace.config-BnKJ0Xjj.js} +1 -1
- package/dist/interface/assets/{alert-circle-BBVlWmUb.js → alert-circle-DeKKKwiu.js} +1 -1
- package/dist/interface/assets/{alert-outline-MJaaWeWU.js → alert-outline-C4_42ECn.js} +1 -1
- package/dist/interface/assets/{api-CltBUyci.js → api-BRin642H.js} +1 -1
- package/dist/interface/assets/api-ByvWBLH3.js +2 -0
- package/dist/interface/assets/api-dcK5urq7.css +2 -0
- package/dist/interface/assets/{arrow-left-Bzo6lbMk.js → arrow-left-DroMCfOc.js} +1 -1
- package/dist/interface/assets/{arrow-right-outline-DU6p5Mjp.js → arrow-right-outline-CvgD4nuT.js} +1 -1
- package/dist/interface/assets/auth-D5gzm869.js +1 -0
- package/dist/interface/assets/{automation-BjkFcQH9.js → automation-BjZc8WL7.js} +1 -1
- package/dist/interface/assets/{automations-73X55Wxy.js → automations-B9KDzbWq.js} +1 -1
- package/dist/interface/assets/automations-CmA6Yx5B.js +1 -0
- package/dist/interface/assets/{back-filled-DI8fXlRr.js → back-filled-LVLhJP7G.js} +1 -1
- package/dist/interface/assets/{bell-Xdsks-42.js → bell-_E2Lq4ub.js} +1 -1
- package/dist/interface/assets/{bell-outline-Cy3lRQBX.js → bell-outline-CHhIZudN.js} +1 -1
- package/dist/interface/assets/{bell-ring-DR_BFore.js → bell-ring-DgLkBDcU.js} +1 -1
- package/dist/interface/assets/{bug-BkbVdwX_.js → bug-Eq4PDwA4.js} +1 -1
- package/dist/interface/assets/{cameras-Crvf7J3t.js → cameras-CYwpMvA8.js} +1 -1
- package/dist/interface/assets/{cameras.schema-CQPF4BCK.js → cameras.schema-neefhBQz.js} +1 -1
- package/dist/interface/assets/{cctv-D8gURS6i.js → cctv-BZIDJlxZ.js} +1 -1
- package/dist/interface/assets/{cctv-izLKpHLU.js → cctv-DbFrrwEm.js} +1 -1
- package/dist/interface/assets/{check-vQdlfVb0.js → check-COWE52r_.js} +1 -1
- package/dist/interface/assets/{check-circle-pC6Mk9ok.js → check-circle-CAbOGJc_.js} +1 -1
- package/dist/interface/assets/{chevron-down-5hhpriLd.js → chevron-down-Bu7d-Y9N.js} +1 -1
- package/dist/interface/assets/{chevron-right-B8jZK42K.js → chevron-right-90_Zn7fJ.js} +1 -1
- package/dist/interface/assets/{circular-connection-CShziQTj.js → circular-connection-Fq-Vqe3X.js} +1 -1
- package/dist/interface/assets/{clock-outline-C1Qoi42Q.js → clock-outline-CqPKrGj2.js} +1 -1
- package/dist/interface/assets/{close-CunDSika.js → close-BTPBtoEq.js} +1 -1
- package/dist/interface/assets/{close-circle-ClO0DCH3.js → close-circle-BAE2M1UZ.js} +1 -1
- package/dist/interface/assets/{cloud-check-DH_MvuMa.js → cloud-check-C2zK34QI.js} +1 -1
- package/dist/interface/assets/{cloud-outline-C6S72e1A.js → cloud-outline-64fdhdhh.js} +1 -1
- package/dist/interface/assets/{cloud-outline-CNhBvx4x.js → cloud-outline-BooRVJGO.js} +1 -1
- package/dist/interface/assets/cloudHandoff-CdYAKJPM.js +1 -0
- package/dist/interface/assets/{cog-Bgvz011z.js → cog-BOiZ8Brk.js} +1 -1
- package/dist/interface/assets/{cog-outline-uZ6J7_NJ.js → cog-outline-CXjehRoX.js} +1 -1
- package/dist/interface/assets/config-BLaep_I5.js +1 -0
- package/dist/interface/assets/{copy-16-filled-I80UlDbg.js → copy-16-filled-DfOe7jyi.js} +1 -1
- package/dist/interface/assets/{copy-B4-Xsyae.js → copy-D1B4K3K8.js} +1 -1
- package/dist/interface/assets/{delete-BdZ-cqP2.js → delete-BEupTYe7.js} +1 -1
- package/dist/interface/assets/{deviceId-BJm8lmpp.js → deviceId-B7SNJduj.js} +1 -1
- package/dist/interface/assets/{dist-D7Ztbw2o.js → dist-PhgrarGW.js} +1 -1
- package/dist/interface/assets/{download-C1GMtykU.js → download-BKGJ_BFg.js} +1 -1
- package/dist/interface/assets/{download-CNVBKEUL.js → download-DLRWZxWu.js} +1 -1
- package/dist/interface/assets/esm-2cKQcsYl.js +1 -0
- package/dist/interface/assets/esm-BC-ykYHP.js +1 -0
- package/dist/interface/assets/esm-BQAccPYQ2.js +1 -0
- package/dist/interface/assets/esm-B_RAh7V8.js +1 -0
- package/dist/interface/assets/esm-BsEkUnid.js +1 -0
- package/dist/interface/assets/esm-C1u--4jU.js +1 -0
- package/dist/interface/assets/esm-Cmrq9Tli.js +1 -0
- package/dist/interface/assets/esm-CrZMuT0_.js +1 -0
- package/dist/interface/assets/esm-CxS-x_QY.js +1 -0
- package/dist/interface/assets/esm-D-xtFbBs.js +1 -0
- package/dist/interface/assets/esm-D6PR9MbI.js +1 -0
- package/dist/interface/assets/esm-DTxHX_m3.js +1 -0
- package/dist/interface/assets/esm-Dzks7cY7.js +1 -0
- package/dist/interface/assets/esm-nCaFxJ36.js +1 -0
- package/dist/interface/assets/{eventIcons-GmV5zC8O.js → eventIcons-OxuOsPp8.js} +1 -1
- package/dist/interface/assets/{face-recognition-CS2Rf6Zc.js → face-recognition-CPwwcApe.js} +1 -1
- package/dist/interface/assets/{github-BrijWwqw.js → github-CWr5rTTh.js} +1 -1
- package/dist/interface/assets/{grid-fill-vdgMWTlf.js → grid-fill-DepYpY1i.js} +1 -1
- package/dist/interface/assets/{hasPermission-LUHh3i2_.js → hasPermission-FP_aMe9r.js} +1 -1
- package/dist/interface/assets/{home-By41XQGy.js → home-DTNk2yog.js} +1 -1
- package/dist/interface/assets/{information-outline-Kgo_4wPg.js → information-outline-BaVRQ1WL.js} +1 -1
- package/dist/interface/assets/{instances-A-hAMJRC.js → instances-DWzDpyhw.js} +1 -1
- package/dist/interface/assets/{lightbulb-outline-XVFprQ8f.js → lightbulb-outline-DPjpJn5F.js} +1 -1
- package/dist/interface/assets/main-7zIUc9Mt.css +1 -0
- package/dist/interface/assets/main-eaoHjmUh.js +3 -0
- package/dist/interface/assets/{microphone-GG_JO-aa.js → microphone-DJsihw9n.js} +1 -1
- package/dist/interface/assets/{motion-sensor-BvWcG84o.js → motion-sensor-D9ErhY-p.js} +1 -1
- package/dist/interface/assets/native-BK8vZMAo.js +1 -0
- package/dist/interface/assets/native-Z2MQ5D82.js +1 -0
- package/dist/interface/assets/{nodeDefinitions-BSLOZMDt.js → nodeDefinitions-kqqBPelM.js} +1 -1
- package/dist/interface/assets/{notifications-eX5p2YaS.js → notifications-Dae9EImK.js} +1 -1
- package/dist/interface/assets/{play-solid-BtIose8X.js → play-solid-cginGSgT.js} +1 -1
- package/dist/interface/assets/plugin-DHenq6mQ.js +1 -0
- package/dist/interface/assets/{plugins-DfuM5k5Q.js → plugins-bWz9yaCS.js} +1 -1
- package/dist/interface/assets/{plus-CPMfvO5i.js → plus-CJ2GnX_q.js} +1 -1
- package/dist/interface/assets/{plus-BKTSMYeY.js → plus-CJzoaVfR.js} +1 -1
- package/dist/interface/assets/{power-M2I2_fCM.js → power-CH_DVgfm.js} +1 -1
- package/dist/interface/assets/{puzzle-filled-C2Lcmza4.js → puzzle-filled-BsJvAZrD.js} +1 -1
- package/dist/interface/assets/{refresh-rounded-B-PvjcAK.js → refresh-rounded-D9PcUR6I.js} +1 -1
- package/dist/interface/assets/{ring-resize-CdUkE4zr.js → ring-resize-QxO72Hs5.js} +1 -1
- package/dist/interface/assets/{round-alt-arrow-left-bold-MIf6gSgD.js → round-alt-arrow-left-bold-C57m543l.js} +1 -1
- package/dist/interface/assets/{round-restart-alt-rDMgoX7-.js → round-restart-alt-C6zOLIvt.js} +1 -1
- package/dist/interface/assets/router-jxQ55Ssp.js +2 -0
- package/dist/interface/assets/{routerState-DxipV4mY.js → routerState-D1WXHNt5.js} +1 -1
- package/dist/interface/assets/{search-CHjonsLq.js → search-BgYt2zqA.js} +1 -1
- package/dist/interface/assets/{server-CoQ6jFok.js → server-Uk7xnHXH.js} +1 -1
- package/dist/interface/assets/{settings-CJjCbQsx.js → settings-DHy64jsU.js} +1 -1
- package/dist/interface/assets/shares-Cz4zuZa_.js +1 -0
- package/dist/interface/assets/{shield-check-oKTXgAfr.js → shield-check-0hUJRszq.js} +1 -1
- package/dist/interface/assets/{source-branch-aFYjLKkc.js → source-branch-Dv9Du0bc.js} +1 -1
- package/dist/interface/assets/{terminal-B8qmxarl.js → terminal-CNEjR0aR.js} +1 -1
- package/dist/interface/assets/{theme-BzXEv5Er.js → theme-GXDCnY_7.js} +1 -1
- package/dist/interface/assets/{trash-2-rEVmOxCl.js → trash-2-CAa4rD_d.js} +1 -1
- package/dist/interface/assets/{trash-fill-DfnCMe3h.js → trash-fill-Br00Vept.js} +1 -1
- package/dist/interface/assets/{trash2-BvyW-bOK.js → trash2-tuK9V5bO.js} +1 -1
- package/dist/interface/assets/{types-Ds4g4ynm.js → types-BpBkaZ8S.js} +1 -1
- package/dist/interface/assets/{types-CAW47AJe.js → types-jpiqSoyF.js} +1 -1
- package/dist/interface/assets/{ui-Dg-QtLMl.js → ui-DzCa9zWL.js} +1 -1
- package/dist/interface/assets/{upload-DkFN5YK-.js → upload-DAasFa9r.js} +1 -1
- package/dist/interface/assets/useAppVersion-CqnE2uYa.js +1 -0
- package/dist/interface/assets/useBackupRestore-Dm7jUOC-.js +1 -0
- package/dist/interface/assets/{useBiometricCredentials-Buylkybs.js → useBiometricCredentials-DJqfT1lk.js} +1 -1
- package/dist/interface/assets/useCameraOptions-Dv3QCMBK.js +1 -0
- package/dist/interface/assets/{useCuiCameraDrawer-DwlhaZ2i.js → useCuiCameraDrawer-D1zCpVbQ.js} +1 -1
- package/dist/interface/assets/useCuiDialog-C02Or5oR.js +2 -0
- package/dist/interface/assets/{useFileDownload-Bhdbhy_2.js → useFileDownload-CwxydJkw.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-81hTPkwS.js → useLogsSocket-CunaH_T7.js} +2 -2
- package/dist/interface/assets/{useServerRestart-3pT0h7CH.js → useServerRestart-BQO5FbNN.js} +1 -1
- package/dist/interface/assets/{useSharedComposables-Ki01kFNJ.js → useSharedComposables-BrdI_nDH.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-CHITNYE7.js → useStreamStatus-e7l-QLmI.js} +1 -1
- package/dist/interface/assets/useUpdateChannel-CW45dNAk.js +1 -0
- package/dist/interface/assets/useUserOptions-EhjyVt4P.js +1 -0
- package/dist/interface/assets/users.schema-4d5Hcv-l.js +1 -0
- package/dist/interface/assets/vendor-ClrOISZp.js +22 -0
- package/dist/interface/assets/{vendor-ace-DdrK3_G3.js → vendor-ace-BlP3GAWI.js} +4 -4
- package/dist/interface/assets/vendor-cameraui-E9E7fP4y.js +1978 -0
- package/dist/interface/assets/{vendor-capacitor-Cmm68VPg.js → vendor-capacitor-DWVJM4o8.js} +2 -2
- package/dist/interface/assets/vendor-chart-Cn72DQnu.js +3 -0
- package/dist/interface/assets/{vendor-core-DnC_SdtD.js → vendor-core-D2PMTaN3.js} +1 -1
- package/dist/interface/assets/{vendor-dnd-BAVhbK8Q.js → vendor-dnd-B9-e5xxH.js} +1 -1
- package/dist/interface/assets/{vendor-draggabilly-C56V4WL_.js → vendor-draggabilly-CPB8E5_r.js} +1 -1
- package/dist/interface/assets/{vendor-leaflet-_2Z0GiOD.js → vendor-leaflet-BMMJO5Nd.js} +1 -1
- package/dist/interface/assets/{vendor-markdown-D8dkSMBf.js → vendor-markdown-D7EhExwE.js} +2 -2
- package/dist/interface/assets/{vendor-primevue-OV61z06m.js → vendor-primevue-Ba4XR6PC.js} +301 -301
- package/dist/interface/assets/vendor-vueflow-Ci6VMxDa.js +26 -0
- package/dist/interface/assets/vendor-xterm-IIYDrBG1.js +142 -0
- package/dist/interface/assets/view-grid-Bs5Mc3pI.js +1 -0
- package/dist/interface/assets/view-grid-CWZLWCco.css +1 -0
- package/dist/interface/assets/web-1H50tiqZ.js +1 -0
- package/dist/interface/assets/web-BBRAFu75.js +1 -0
- package/dist/interface/assets/web-BQqZ-0se.js +1 -0
- package/dist/interface/assets/web-BgDADYuL.js +1 -0
- package/dist/interface/assets/web-BjKL51lK-DF7_OzmH.js +1 -0
- package/dist/interface/assets/web-C3oASmFS.js +1 -0
- package/dist/interface/assets/web-CQIOnZbD.js +1 -0
- package/dist/interface/assets/web-CW6kIZQg.js +1 -0
- package/dist/interface/assets/web-CXLWILCn.js +1 -0
- package/dist/interface/assets/web-Cz9RS9vK.js +1 -0
- package/dist/interface/assets/web-D7_BjGke.js +1 -0
- package/dist/interface/assets/web-Dn-uR4FN.js +1 -0
- package/dist/interface/assets/web-GsFXaCFL.js +1 -0
- package/dist/interface/assets/web-kh2rHftO.js +1 -0
- package/dist/interface/assets/{webhook-nx5ZDIQ-.js → webhook-BCBlzc3z.js} +1 -1
- package/dist/interface/assets/workbox-window.prod.es5-CQTy-jf8.js +1 -0
- package/dist/interface/assets/{zoom-in-wM6G8w-4.js → zoom-in-CKM5nWQX.js} +1 -1
- package/dist/interface/index.html +88 -85
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +36 -19
- package/dist/server/requirements.txt +4 -3
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/signal_handler.py +17 -9
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +10 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/event_emitter.py +45 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/manager/__init__.py +3 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/storage/__init__.py +47 -12
- package/dist/server/src/api/controllers/plugins.controller.js +11 -3
- package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
- package/dist/server/src/api/controllers/remote.controller.d.ts +1 -0
- package/dist/server/src/api/controllers/remote.controller.js +9 -2
- package/dist/server/src/api/controllers/remote.controller.js.map +1 -1
- package/dist/server/src/api/database/index.d.ts +2 -1
- package/dist/server/src/api/database/index.js +22 -3
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/middlewares/authValidation.middleware.js +1 -1
- package/dist/server/src/api/middlewares/authValidation.middleware.js.map +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +27 -0
- package/dist/server/src/api/schemas/cameras.schema.js +6 -0
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/schemas/config.schema.d.ts +2 -0
- package/dist/server/src/api/schemas/config.schema.js +1 -0
- package/dist/server/src/api/schemas/config.schema.js.map +1 -1
- package/dist/server/src/api/services/backup.service.d.ts +4 -0
- package/dist/server/src/api/services/backup.service.js +35 -4
- package/dist/server/src/api/services/backup.service.js.map +1 -1
- package/dist/server/src/api/services/plugins.service.js +1 -1
- package/dist/server/src/api/services/plugins.service.js.map +1 -1
- package/dist/server/src/api/services/remote.service.d.ts +0 -1
- package/dist/server/src/api/services/remote.service.js +6 -13
- package/dist/server/src/api/services/remote.service.js.map +1 -1
- package/dist/server/src/api/types/index.d.ts +1 -0
- package/dist/server/src/api.d.ts +1 -0
- package/dist/server/src/api.js +11 -3
- package/dist/server/src/api.js.map +1 -1
- package/dist/server/src/camera/decoder/audio-source.d.ts +2 -0
- package/dist/server/src/camera/decoder/audio-source.js +12 -0
- package/dist/server/src/camera/decoder/audio-source.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-coordinator.js +16 -2
- package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
- package/dist/server/src/camera/decoder/frame-source.d.ts +2 -0
- package/dist/server/src/camera/decoder/frame-source.js +23 -2
- package/dist/server/src/camera/decoder/frame-source.js.map +1 -1
- package/dist/server/src/camera/decoder/ptz-autotracker.js +51 -78
- package/dist/server/src/camera/decoder/ptz-autotracker.js.map +1 -1
- package/dist/server/src/camera/streaming/fmp4-session.js +9 -0
- package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -1
- package/dist/server/src/camera/streaming/rtp-session.js +0 -13
- package/dist/server/src/camera/streaming/rtp-session.js.map +1 -1
- package/dist/server/src/go2rtc/api/routes/streams.js +5 -6
- package/dist/server/src/go2rtc/api/routes/streams.js.map +1 -1
- package/dist/server/src/go2rtc/index.js +1 -1
- package/dist/server/src/go2rtc/index.js.map +1 -1
- package/dist/server/src/go2rtc/types.d.ts +3 -0
- package/dist/server/src/go2rtc/types.js.map +1 -1
- package/dist/server/src/main.js +1 -1
- package/dist/server/src/main.js.map +1 -1
- package/dist/server/src/manager/deviceManager.js +4 -1
- package/dist/server/src/manager/deviceManager.js.map +1 -1
- package/dist/server/src/manager/discoveryManager.d.ts +3 -2
- package/dist/server/src/manager/discoveryManager.js +60 -29
- package/dist/server/src/manager/discoveryManager.js.map +1 -1
- package/dist/server/src/plugins/config-store.d.ts +1 -1
- package/dist/server/src/plugins/config-store.js +17 -10
- package/dist/server/src/plugins/config-store.js.map +1 -1
- package/dist/server/src/plugins/index.d.ts +1 -0
- package/dist/server/src/plugins/index.js +38 -2
- package/dist/server/src/plugins/index.js.map +1 -1
- package/dist/server/src/plugins/plugin.js +2 -2
- package/dist/server/src/plugins/plugin.js.map +1 -1
- package/dist/server/src/plugins/runtime/base.js +10 -5
- package/dist/server/src/plugins/runtime/base.js.map +1 -1
- package/dist/server/src/plugins/runtime/go/index.js +1 -0
- package/dist/server/src/plugins/runtime/go/index.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/child.d.ts +1 -0
- package/dist/server/src/plugins/runtime/node/child.js +62 -19
- package/dist/server/src/plugins/runtime/node/child.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/configDb.d.ts +8 -0
- package/dist/server/src/plugins/runtime/node/configDb.js +15 -0
- package/dist/server/src/plugins/runtime/node/configDb.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/index.js +2 -0
- package/dist/server/src/plugins/runtime/node/index.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/pluginApi.d.ts +4 -0
- package/dist/server/src/plugins/runtime/node/pluginApi.js +13 -5
- package/dist/server/src/plugins/runtime/node/pluginApi.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.d.ts +1 -2
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +2 -8
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/coreManager.d.ts +3 -2
- package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +9 -13
- package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.d.ts +3 -2
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js +14 -12
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/fileServe.js +4 -9
- package/dist/server/src/plugins/runtime/node/proxy/fileServe.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/notificationManager.js +3 -0
- package/dist/server/src/plugins/runtime/node/proxy/notificationManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/storage.d.ts +5 -2
- package/dist/server/src/plugins/runtime/node/storage.js +92 -67
- package/dist/server/src/plugins/runtime/node/storage.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/storageController.d.ts +2 -0
- package/dist/server/src/plugins/runtime/node/storageController.js +12 -4
- package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/child.py +50 -38
- package/dist/server/src/plugins/runtime/python/config_db.py +28 -17
- package/dist/server/src/plugins/runtime/python/index.js +1 -0
- package/dist/server/src/plugins/runtime/python/index.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/plugin_api.py +5 -5
- package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +14 -13
- package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +11 -14
- package/dist/server/src/plugins/runtime/python/proxy/device_manager.py +23 -18
- package/dist/server/src/plugins/runtime/python/remote_urls.py +3 -7
- package/dist/server/src/plugins/runtime/python/storage.py +157 -126
- package/dist/server/src/plugins/runtime/python/storage_controller.py +28 -13
- package/dist/server/src/plugins/runtime/python/store.py +513 -0
- package/dist/server/src/plugins/runtime/python/store_migrate.py +59 -0
- package/dist/server/src/plugins/store/coalescingWriter.d.ts +7 -0
- package/dist/server/src/plugins/store/coalescingWriter.js +52 -0
- package/dist/server/src/plugins/store/coalescingWriter.js.map +1 -0
- package/dist/server/src/plugins/store/envelope.d.ts +5 -0
- package/dist/server/src/plugins/store/envelope.js +40 -0
- package/dist/server/src/plugins/store/envelope.js.map +1 -0
- package/dist/server/src/plugins/store/layout.d.ts +2 -0
- package/dist/server/src/plugins/store/layout.js +60 -0
- package/dist/server/src/plugins/store/layout.js.map +1 -0
- package/dist/server/src/plugins/store/location.d.ts +14 -0
- package/dist/server/src/plugins/store/location.js +55 -0
- package/dist/server/src/plugins/store/location.js.map +1 -0
- package/dist/server/src/plugins/store/migrate.d.ts +1 -0
- package/dist/server/src/plugins/store/migrate.js +22 -0
- package/dist/server/src/plugins/store/migrate.js.map +1 -0
- package/dist/server/src/plugins/store/pluginStoreFile.d.ts +14 -0
- package/dist/server/src/plugins/store/pluginStoreFile.js +58 -0
- package/dist/server/src/plugins/store/pluginStoreFile.js.map +1 -0
- package/dist/server/src/plugins/store/storeFile.d.ts +5 -0
- package/dist/server/src/plugins/store/storeFile.js +112 -0
- package/dist/server/src/plugins/store/storeFile.js.map +1 -0
- package/dist/server/src/plugins/store/validate.d.ts +1 -0
- package/dist/server/src/plugins/store/validate.js +49 -0
- package/dist/server/src/plugins/store/validate.js.map +1 -0
- package/dist/server/src/plugins/worker.js +9 -8
- package/dist/server/src/plugins/worker.js.map +1 -1
- package/dist/server/src/remote/services/cloudflare-managed.js +2 -2
- package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -1
- package/dist/server/src/remote/services/cloudflare.js +1 -0
- package/dist/server/src/remote/services/cloudflare.js.map +1 -1
- package/dist/server/src/remote/tunnel/client.js +1 -1
- package/dist/server/src/remote/tunnel/client.js.map +1 -1
- package/dist/server/src/rpc/interfaces/discovery.d.ts +1 -0
- package/dist/server/src/rpc/server.js +12 -5
- package/dist/server/src/rpc/server.js.map +1 -1
- package/dist/server/src/services/config/defaults.js +1 -0
- package/dist/server/src/services/config/defaults.js.map +1 -1
- package/dist/server/src/services/config/index.d.ts +1 -0
- package/dist/server/src/services/config/index.js +2 -0
- package/dist/server/src/services/config/index.js.map +1 -1
- package/dist/server/src/services/config/types.d.ts +1 -0
- package/dist/server/src/utils/npm/index.d.ts +1 -1
- package/dist/server/src/utils/npm/index.js +7 -4
- package/dist/server/src/utils/npm/index.js.map +1 -1
- package/dist/server/src/workers/capabilities/plugin-host.js +1 -1
- package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -1
- package/package.json +36 -19
- package/dist/interface/assets/About-CjQs3rZw.js +0 -1
- package/dist/interface/assets/Adminpanel-BTIcUxWm.js +0 -1
- package/dist/interface/assets/Automation-BNbTehB5.js +0 -2
- package/dist/interface/assets/AutomationImport-BEm0hc0d.js +0 -2
- package/dist/interface/assets/Camera-BG8K5bH_.css +0 -1
- package/dist/interface/assets/Camera-eIsFEdVo.js +0 -2
- package/dist/interface/assets/Cameras-54LaZPN3.css +0 -1
- package/dist/interface/assets/Cameras-Bswv6ojJ.js +0 -652
- package/dist/interface/assets/Camview-DMywoy_4.js +0 -1
- package/dist/interface/assets/Config-C7H5amm4.js +0 -2
- package/dist/interface/assets/ConfigActionCameraControl-C0hvC4QW.js +0 -1
- package/dist/interface/assets/ConfigActionHttp-BF8vrrHR.js +0 -1
- package/dist/interface/assets/ConfigActionOutput-CxB3eLLl.js +0 -1
- package/dist/interface/assets/ConfigConditionSensorState-BvygRJ79.js +0 -1
- package/dist/interface/assets/ConfigConditionTime-B0zctDc4.js +0 -1
- package/dist/interface/assets/Console-DHlNpv-R.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-ChG_av5z.js +0 -1
- package/dist/interface/assets/CuiCameraCard-BGAQxNHs.js +0 -1
- package/dist/interface/assets/CuiCameraRecordings-B25441dH.js +0 -1
- package/dist/interface/assets/CuiCameraSnapshot-BLM8v7rY.js +0 -1
- package/dist/interface/assets/CuiCameraTable-3joRnfiM.js +0 -2
- package/dist/interface/assets/CuiMarkdownContent-5LJK4h8V.js +0 -1
- package/dist/interface/assets/CuiPluginCard-De_cbBBe.js +0 -2
- package/dist/interface/assets/CuiRecordingsGrid-DHSABYJb.js +0 -1
- package/dist/interface/assets/CuiSchema-D35n-DE5.js +0 -1
- package/dist/interface/assets/Faces-BJlHL3gp.js +0 -1
- package/dist/interface/assets/FirstSteps-D1Zf1CYN.js +0 -1
- package/dist/interface/assets/Logs-CW5EqpAL.js +0 -6
- package/dist/interface/assets/Plugin-DHhrlRqP.css +0 -1
- package/dist/interface/assets/Plugin-DIPGTrNi.js +0 -1
- package/dist/interface/assets/PluginDetail-D1TJZJhY.js +0 -2
- package/dist/interface/assets/PluginSearch-C5bkQgYA.js +0 -1
- package/dist/interface/assets/PluginSearch-DqwgO886.js +0 -2
- package/dist/interface/assets/Plugins-o7IfSFjd.js +0 -1
- package/dist/interface/assets/Recordings-DTw5IG8W.js +0 -1
- package/dist/interface/assets/SettingsAccount-Ch2SR80X.js +0 -1
- package/dist/interface/assets/SettingsAccount-DIwWUyp6.js +0 -1
- package/dist/interface/assets/SettingsAppearance-CkF7biyP.js +0 -1
- package/dist/interface/assets/SettingsBackup-BigThNuk.js +0 -1
- package/dist/interface/assets/SettingsNotifications-XLBjwgwX.js +0 -2
- package/dist/interface/assets/SettingsRecordings-Dp9tJdHk.js +0 -1
- package/dist/interface/assets/SettingsRemote-B5jm7MdB.js +0 -1
- package/dist/interface/assets/SettingsSystem-Isy5hiDl.js +0 -2
- package/dist/interface/assets/SettingsUsers-QuUercEC.js +0 -1
- package/dist/interface/assets/Terminal-BTfYdYuv.js +0 -4
- package/dist/interface/assets/VersionsHandler-BYj7-lpw.js +0 -7
- package/dist/interface/assets/ace-DQ1lNH50.js +0 -1
- package/dist/interface/assets/api-D7tGlI-z.css +0 -2
- package/dist/interface/assets/api-DoPgGqHU.js +0 -2
- package/dist/interface/assets/auth-BiWutL3Z.js +0 -1
- package/dist/interface/assets/automations-hsi5MCtT.js +0 -1
- package/dist/interface/assets/backup-CHJIDGvl.js +0 -1
- package/dist/interface/assets/cloudHandoff-lLBGqrXl.js +0 -1
- package/dist/interface/assets/esm-0fUwrSGA2.js +0 -1
- package/dist/interface/assets/esm-50afX45o.js +0 -1
- package/dist/interface/assets/esm-B0VLR4af.js +0 -1
- package/dist/interface/assets/esm-BfZLgtrg.js +0 -1
- package/dist/interface/assets/esm-Bnmu7wlp.js +0 -1
- package/dist/interface/assets/esm-CG1dvQ4U.js +0 -1
- package/dist/interface/assets/esm-CZTaj2CB.js +0 -1
- package/dist/interface/assets/esm-CxRM74Bx.js +0 -1
- package/dist/interface/assets/esm-DBpRougC.js +0 -1
- package/dist/interface/assets/esm-DQ7OYRdT.js +0 -1
- package/dist/interface/assets/esm-DVYEXBOA.js +0 -1
- package/dist/interface/assets/esm-DdCbmz73.js +0 -1
- package/dist/interface/assets/esm-DiryHoSP.js +0 -1
- package/dist/interface/assets/esm-DyoMjqMI.js +0 -1
- package/dist/interface/assets/main-BjuXWRyJ.css +0 -1
- package/dist/interface/assets/main-DEbfQmxF.js +0 -3
- package/dist/interface/assets/native-Dg-M0-9s.js +0 -1
- package/dist/interface/assets/native-DyQXBqB9.js +0 -1
- package/dist/interface/assets/plugin-_eNpRpqe.js +0 -1
- package/dist/interface/assets/router-D1e_o7wa.js +0 -2
- package/dist/interface/assets/shares-VWzmq1V-.js +0 -1
- package/dist/interface/assets/useCameraOptions-GAeXCTvO.js +0 -1
- package/dist/interface/assets/useCuiDialog-yRn5B1oO.js +0 -2
- package/dist/interface/assets/useUserOptions-CUvE4OL9.js +0 -1
- package/dist/interface/assets/users.schema-DWL8-tZN.js +0 -1
- package/dist/interface/assets/vendor-c9Zhw4pk.js +0 -22
- package/dist/interface/assets/vendor-cameraui-DhctzD3V.js +0 -1978
- package/dist/interface/assets/vendor-chart-BjXPY6za.js +0 -3
- package/dist/interface/assets/vendor-vueflow-CJdb-8KZ.js +0 -26
- package/dist/interface/assets/vendor-xterm-BRN-hOYD.js +0 -145
- package/dist/interface/assets/view-grid-D04t817d.css +0 -1
- package/dist/interface/assets/view-grid-_whxsqcn.js +0 -1
- package/dist/interface/assets/web-B9o4PkxX.js +0 -1
- package/dist/interface/assets/web-BDuGOqy7.js +0 -1
- package/dist/interface/assets/web-BUVPtx3X.js +0 -1
- package/dist/interface/assets/web-B_hO9nzV.js +0 -1
- package/dist/interface/assets/web-BjKL51lK-CV2GxIDK.js +0 -1
- package/dist/interface/assets/web-CCgyqWSl.js +0 -1
- package/dist/interface/assets/web-Cm_fnqV2.js +0 -1
- package/dist/interface/assets/web-CsSSdPVW.js +0 -1
- package/dist/interface/assets/web-D2AMa4qD.js +0 -1
- package/dist/interface/assets/web-D2vwufvW.js +0 -1
- package/dist/interface/assets/web-D86U7zR6.js +0 -1
- package/dist/interface/assets/web-DilWncpX.js +0 -1
- package/dist/interface/assets/web-OjqOEI0k.js +0 -1
- package/dist/interface/assets/web-mrIKbnbx.js +0 -1
- package/dist/interface/assets/workbox-window.prod.es5-CsKLpYYC.js +0 -1
- /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 {
|
|
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
|
-
|
|
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
|
-
#
|
|
20
|
+
#location;
|
|
20
21
|
#api;
|
|
21
22
|
#proxy;
|
|
22
23
|
#plugin;
|
|
23
24
|
#pluginDb;
|
|
24
25
|
#storageNamespace;
|
|
25
|
-
#isPluginStorage;
|
|
26
26
|
#sensorId;
|
|
27
|
-
#
|
|
27
|
+
#dirty = false;
|
|
28
28
|
#closeProxy;
|
|
29
|
-
constructor(api, proxy, plugin, pluginDb,
|
|
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.#
|
|
36
|
-
this.#isPluginStorage = isPluginStorage;
|
|
35
|
+
this.#location = location;
|
|
37
36
|
this.#sensorId = sensorId;
|
|
38
|
-
this.#
|
|
39
|
-
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
54
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
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
|
|
134
|
-
if (
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
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
|
|
164
|
-
|
|
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
|
-
|
|
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
|
-
|
|
228
|
+
this.#runOnSetDetached(schema.onSet, configKey, newValue, oldValue);
|
|
198
229
|
}
|
|
199
230
|
}
|
|
200
231
|
}
|
|
201
|
-
|
|
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
|
-
//
|
|
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
|
|
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
|
-
|
|
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
|
|
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, '
|
|
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
|
-
//
|
|
51
|
-
|
|
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":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAO7C,kDAAkD;AAClD,SAAS,gBAAgB,CAAC,QAAgB,EAAE,UAAsB,EAAE,QAAgB,EAAE,UAAkB;IACtG,OAAO,GAAG,QAAQ,WAAW,UAAU,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,IAAI,CAAY;IAChB,MAAM,CAAY;IAClB,OAAO,CAAa;IACpB,SAAS,CAAiB;IAC1B,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IAElD,YAAY,GAAc,EAAE,KAAgB,EAAE,MAAkB,EAAE,QAAwB;QACxF,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAEM,mBAAmB,CAAsD,QAAgB,EAAE,UAAwB,EAAE;QAC1H,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,GAAG,IAAI,aAAa,CAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,
|
|
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,
|
|
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
|
|
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
|
-
|
|
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":
|
|
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
|
|
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.
|
|
184
|
-
|
|
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
|
-
|
|
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)
|
|
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
|
-
|
|
232
|
-
remote_db = RemotePluginConfigDb(
|
|
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
|
-
|
|
237
|
-
|
|
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
|
|
243
|
-
|
|
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
|
-
|
|
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,
|