@camera.ui/server 2.0.22 → 2.0.23
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-junY0N5P.js +1 -0
- package/dist/interface/assets/About-Dwc0TTLa.js +1 -0
- package/dist/interface/assets/Adminpanel-wZGtsPD-.js +1 -0
- package/dist/interface/assets/Automation-Dj6xmGae.js +3 -0
- package/dist/interface/assets/AutomationImport-Ccnxyslc.js +2 -0
- package/dist/interface/assets/AutomationStore-DmbxA0ml.js +2 -0
- package/dist/interface/assets/AutomationStoreDetail-DcbvD8g5.js +2 -0
- package/dist/interface/assets/Automations-C9JJO6dy.js +2 -0
- package/dist/interface/assets/Camera-D_j0J3kB.js +2 -0
- package/dist/interface/assets/CameraConsole--hGg9Ye6.js +7 -0
- package/dist/interface/assets/Cameras-B2Tizr4Q.js +652 -0
- package/dist/interface/assets/Camview-Bh2UCnGC.js +1 -0
- package/dist/interface/assets/{Camview-CaEbdeQZ.css → Camview-Cj10uxGy.css} +1 -1
- package/dist/interface/assets/Config-Dn_s2M7r.js +2 -0
- package/dist/interface/assets/{ConfigActionCameraControl-DFdb4xzq.js → ConfigActionCameraControl-DQEYHVN5.js} +1 -1
- package/dist/interface/assets/ConfigActionDelay-C0mbjCCj.js +1 -0
- package/dist/interface/assets/ConfigActionHttp-Bf58WHcw.js +1 -0
- package/dist/interface/assets/ConfigActionImageInput-CDXVFrOz.js +1 -0
- package/dist/interface/assets/ConfigActionMqtt-lH7MQqWr.js +1 -0
- package/dist/interface/assets/ConfigActionNotification-CAkr6NJX.js +1 -0
- package/dist/interface/assets/ConfigActionNotificationControl-CiL-4Ytw.js +1 -0
- package/dist/interface/assets/ConfigActionOutput-ILAxBT-r.js +1 -0
- package/dist/interface/assets/ConfigActionPlugin-B2d4mZiK.js +1 -0
- package/dist/interface/assets/ConfigActionSensor-BxMdsmRa.js +1 -0
- package/dist/interface/assets/ConfigActionSnapshot-CXVQBSzv.js +1 -0
- package/dist/interface/assets/ConfigActionVariable-CABnlnMv.js +1 -0
- package/dist/interface/assets/ConfigConditionIfElse-Cxu7TSdJ.js +1 -0
- package/dist/interface/assets/ConfigConditionSensorState-rB7I04Gb.js +1 -0
- package/dist/interface/assets/ConfigConditionSwitch-CU0hLo1h.js +1 -0
- package/dist/interface/assets/ConfigConditionTime-DfeEvxIU.js +1 -0
- package/dist/interface/assets/ConfigSensorValueInput-wXiyU3Sc.js +1 -0
- package/dist/interface/assets/{ConfigTriggerDetection-Cjes6g7x.js → ConfigTriggerDetection-DFJpuWrs.js} +1 -1
- package/dist/interface/assets/ConfigTriggerGeofence-CZwesOD8.js +1 -0
- package/dist/interface/assets/ConfigTriggerManual-aibwYUtf.js +1 -0
- package/dist/interface/assets/ConfigTriggerMqtt-CUNgifGb.js +1 -0
- package/dist/interface/assets/ConfigTriggerSchedule-8Y_OBcB1.js +1 -0
- package/dist/interface/assets/ConfigTriggerSensor-Bu-YtGnX.js +1 -0
- package/dist/interface/assets/{ConfigTriggerSystem-NaaBopYq.js → ConfigTriggerSystem-CXNvmC4S.js} +1 -1
- package/dist/interface/assets/ConfigTriggerWebhook-CkZ-_ABi.js +1 -0
- package/dist/interface/assets/Console-CG8eRDA4.js +1 -0
- package/dist/interface/assets/CuiAutomationRunsDialog-Ux0g-E3w.js +1 -0
- package/dist/interface/assets/CuiBottomSheet-C-ZN_uXE.js +1 -0
- package/dist/interface/assets/CuiBottomSheet-RUyuBxJZ.js +1 -0
- package/dist/interface/assets/CuiCameraPipCard-B-B6Ppsd.js +1 -0
- package/dist/interface/assets/CuiCameraRecordings-DqVdR9uS.js +1 -0
- package/dist/interface/assets/CuiCameraShares-DstoVjf9.js +1 -0
- package/dist/interface/assets/CuiCameraTable-BHaCRB65.js +2 -0
- package/dist/interface/assets/CuiDataTable-CTT9IFeR.js +1 -0
- package/dist/interface/assets/CuiLightControl-B_JIzm9t.js +1 -0
- package/dist/interface/assets/CuiLightControl-DFrZm_sv.css +1 -0
- package/dist/interface/assets/CuiList-CDed3qXV.js +1 -0
- package/dist/interface/assets/CuiMarkdownContent-Bjs3wRnq.js +1 -0
- package/dist/interface/assets/CuiMarkdownContent-Do8-vIl7.js +1 -0
- package/dist/interface/assets/CuiPluginCard-7aXQznrX.js +2 -0
- package/dist/interface/assets/{CuiPluginCategoryChip-D9Vi1SEP.js → CuiPluginCategoryChip-C2Y8x73q.js} +1 -1
- package/dist/interface/assets/CuiPluginOAuthButton-CCzRlZP6.js +2 -0
- package/dist/interface/assets/{CuiPluginTrustBadge-D0rUX2i6.js → CuiPluginTrustBadge-C8qBdLCg.js} +1 -1
- package/dist/interface/assets/CuiQRCode-D52Fcu61.js +1 -0
- package/dist/interface/assets/CuiRecordingsGrid-CfuihmlY.js +1 -0
- package/dist/interface/assets/CuiSchema-DTIuxROi.js +1 -0
- package/dist/interface/assets/CuiTopNavbarItem-CoTQmfY7.js +1 -0
- package/dist/interface/assets/Faces-EtBPS1Ve.js +1 -0
- package/dist/interface/assets/FirstSteps-CC0BPH40.js +1 -0
- package/dist/interface/assets/Instances-dSYERqIc.js +1 -0
- package/dist/interface/assets/Logs-B8d6dEt7.js +6 -0
- package/dist/interface/assets/Menu-CejIVz_7.js +1 -0
- package/dist/interface/assets/OAuthDeviceFlow-YhwV_FSL.js +1 -0
- package/dist/interface/assets/Plugin-Brb6wfq-.js +1 -0
- package/dist/interface/assets/PluginConsole-CfyZQVq5.js +7 -0
- package/dist/interface/assets/PluginDetail-DVRnnauk.js +2 -0
- package/dist/interface/assets/PluginSchema-i6UJfMnh.js +1 -0
- package/dist/interface/assets/PluginSearch-C1YL9q00.js +1 -0
- package/dist/interface/assets/PluginSearch-PDx47aUx.js +2 -0
- package/dist/interface/assets/Plugins-CukJohcb.js +1 -0
- package/dist/interface/assets/Recordings-m6jxYvRI.js +1 -0
- package/dist/interface/assets/SensorEdit-BJAijbmc.js +1 -0
- package/dist/interface/assets/SensorHistory-DW00ZuHR.js +1 -0
- package/dist/interface/assets/Sensors-BA9P_Ray.css +1 -0
- package/dist/interface/assets/Sensors-Lfafn19i.js +2 -0
- package/dist/interface/assets/Settings-DHT8KXi2.js +1 -0
- package/dist/interface/assets/SettingsAccount-DOd4JeGd.js +1 -0
- package/dist/interface/assets/{SettingsAccount-CyNJQSuV.css → SettingsAccount-si-6gWl5.css} +1 -1
- package/dist/interface/assets/SettingsAccount-vrwV9rtP.js +1 -0
- package/dist/interface/assets/SettingsAppearance-11UFhRDY.js +1 -0
- package/dist/interface/assets/SettingsAppearance-BaDwC_h_.js +1 -0
- package/dist/interface/assets/SettingsBackup-CBBZV_nU.js +1 -0
- package/dist/interface/assets/SettingsList-Dx9DHGq9.js +1 -0
- package/dist/interface/assets/SettingsMqtt-BglQ_GeN.js +1 -0
- package/dist/interface/assets/SettingsNotifications-96czeGDD.js +2 -0
- package/dist/interface/assets/SettingsPermissions-CU4OVllA.js +1 -0
- package/dist/interface/assets/SettingsRecordings-BrnU9hrb.js +1 -0
- package/dist/interface/assets/SettingsRemote-CwJw_9HX.js +1 -0
- package/dist/interface/assets/SettingsSystem-B3nne5fS.js +2 -0
- package/dist/interface/assets/SettingsUsers-CoYyAxxn.js +1 -0
- package/dist/interface/assets/Terminal-DMAHgufw.js +4 -0
- package/dist/interface/assets/VariableInput-BzWLKBgd.js +1 -0
- package/dist/interface/assets/VariableSuggestions-BdxcP_dn.js +1 -0
- package/dist/interface/assets/VersionsHandler-Dvy5Lv-E.js +7 -0
- package/dist/interface/assets/VirtualSensorCreate-BXz0lWNm.js +1 -0
- package/dist/interface/assets/Workers-DqeKkdpa.js +2 -0
- package/dist/interface/assets/{account-sFoKqEOV.js → account-C5mHt2Ep.js} +1 -1
- package/dist/interface/assets/ace-BqKKexH4.js +1 -0
- package/dist/interface/assets/{ace.config-C_wgqTLD.js → ace.config-BNjBs7Fe.js} +1 -1
- package/dist/interface/assets/alarm-light-outline-jCTfmz5t.js +1 -0
- package/dist/interface/assets/{alert-circle-BQZQ417w.js → alert-circle-Cu_kjPlA.js} +1 -1
- package/dist/interface/assets/alert-outline-DXHNnhoP.js +1 -0
- package/dist/interface/assets/api-3va2gyB0.css +2 -0
- package/dist/interface/assets/{api-DEaXK1Kq.js → api-DmxTF6VE.js} +1 -1
- package/dist/interface/assets/api-milc5VEE.js +2 -0
- package/dist/interface/assets/arrow-left-DPtWmM6S.js +1 -0
- package/dist/interface/assets/arrow-right-outline-BY1ggGA1.js +1 -0
- package/dist/interface/assets/{auth-XA5zkqwW.js → auth-DwSrX8QL.js} +1 -1
- package/dist/interface/assets/automationBlueprint-D0F9AHk9.js +1 -0
- package/dist/interface/assets/automations-yVPQAmFo.js +1 -0
- package/dist/interface/assets/{back-filled-BdHG6uUx.js → back-filled-r7bN5ObT.js} +1 -1
- package/dist/interface/assets/{bell-ring-Dua4zXf_.js → bell-ring-C470qCAb.js} +1 -1
- package/dist/interface/assets/{cameras.schema-1a2URPGd.js → cameras.schema-JAiaenSf.js} +1 -1
- package/dist/interface/assets/{cctv-DEiPL3U8.js → cctv-BKVOVZCR.js} +1 -1
- package/dist/interface/assets/check-circle-Ce_sbfPZ.js +1 -0
- package/dist/interface/assets/chevron-down-CjSTp091.js +1 -0
- package/dist/interface/assets/chevron-right-B4vB0gm4.js +1 -0
- package/dist/interface/assets/{clock-outline-C_f3Ed8x.js → clock-outline-BgcDXoyp.js} +1 -1
- package/dist/interface/assets/{close-DNgGJYHi.js → close-CQoGQHOF.js} +1 -1
- package/dist/interface/assets/{close-circle-L5juejMg.js → close-circle-DYhkXsRj.js} +1 -1
- package/dist/interface/assets/{cloud-check-DD7oRzmo.js → cloud-check-CVx221dJ.js} +1 -1
- package/dist/interface/assets/cloudHandoff-QtPEpiS4.js +1 -0
- package/dist/interface/assets/{config-C2hgXHyj.js → config-BE0DnCXx.js} +1 -1
- package/dist/interface/assets/copy-yhHCVVOa.js +1 -0
- package/dist/interface/assets/cube-scan-Ccxismvr.js +1 -0
- package/dist/interface/assets/delete-xWUQUP2x.js +1 -0
- package/dist/interface/assets/dist-DVb-CALh.js +1 -0
- package/dist/interface/assets/download-PLxvyB7s.js +1 -0
- package/dist/interface/assets/esm-B4MXP42m.js +1 -0
- package/dist/interface/assets/esm-BW9m3dy4.js +1 -0
- package/dist/interface/assets/esm-BZ3gh7Fj.js +1 -0
- package/dist/interface/assets/esm-Blvz9SsB.js +1 -0
- package/dist/interface/assets/esm-CJXU9jaA.js +1 -0
- package/dist/interface/assets/esm-Cqqu_mer.js +1 -0
- package/dist/interface/assets/esm-CtKbLoV_.js +1 -0
- package/dist/interface/assets/esm-CwzNi2iW.js +1 -0
- package/dist/interface/assets/esm-KnO8wJyB.js +1 -0
- package/dist/interface/assets/esm-Lt6R0RFn.js +1 -0
- package/dist/interface/assets/esm-MvRctfDP.js +1 -0
- package/dist/interface/assets/esm-W4LX4Rpq.js +1 -0
- package/dist/interface/assets/esm-l57LNUWu.js +1 -0
- package/dist/interface/assets/esm-xofhyA8r.js +1 -0
- package/dist/interface/assets/eye-off-C8kzsdYU.js +1 -0
- package/dist/interface/assets/flowSchema-BQp77LdP.js +1 -0
- package/dist/interface/assets/{history-iAZcYg3f.js → history-QBEPNc4X.js} +1 -1
- package/dist/interface/assets/home-af3W_y8U.js +1 -0
- package/dist/interface/assets/{information-outline-CVsB1bl-.js → information-outline-BPCsozSU.js} +1 -1
- package/dist/interface/assets/{lightbulb-outline-nNLyXAIp.js → lightbulb-outline-ccTlGyvW.js} +1 -1
- package/dist/interface/assets/main-CqhwDjRG.js +3 -0
- package/dist/interface/assets/main-aZt-Pooz.css +1 -0
- package/dist/interface/assets/{microphone-CU0mFDMh.js → microphone-5exHwwyq.js} +1 -1
- package/dist/interface/assets/mqtt-D_shY0Ks.js +1 -0
- package/dist/interface/assets/native-Cpj7zrLp.js +1 -0
- package/dist/interface/assets/native-D--k2WN1.js +1 -0
- package/dist/interface/assets/nodeDefinitions-CRrkU6zR.js +1 -0
- package/dist/interface/assets/{notifications-BHQN6WD4.js → notifications-BuSNpaOJ.js} +1 -1
- package/dist/interface/assets/{pencil-outline-BQxLTlZx.js → pencil-outline-M9I4mCJO.js} +1 -1
- package/dist/interface/assets/plugin-D3FpjfF8.js +1 -0
- package/dist/interface/assets/{plugins-C0RtyBHQ.js → plugins-7pWXkYgo.js} +1 -1
- package/dist/interface/assets/plus-CGIx-WV8.js +1 -0
- package/dist/interface/assets/{plus-Ct6WQfM1.js → plus-CrfQUUEC.js} +1 -1
- package/dist/interface/assets/power-VnZM2-0c.js +1 -0
- package/dist/interface/assets/{ring-resize-CZBThoQC.js → ring-resize-CodGa6wQ.js} +1 -1
- package/dist/interface/assets/rolldown-runtime-C0FnF6B9.js +1 -0
- package/dist/interface/assets/{round-alt-arrow-left-bold-BlpNMBxm.js → round-alt-arrow-left-bold-DTrlW4yx.js} +1 -1
- package/dist/interface/assets/round-restart-alt-DKWwojYm.js +1 -0
- package/dist/interface/assets/{search-M4Rt52Co.js → search-miJXZGQz.js} +1 -1
- package/dist/interface/assets/sensors-CLQG1mQt.js +1 -0
- package/dist/interface/assets/{server-CVSOthzT.js → server-Bv5NVJ0G.js} +1 -1
- package/dist/interface/assets/{settings-CgToKrFd.js → settings-DY0TJSAM.js} +1 -1
- package/dist/interface/assets/{source-branch-CoHKTGxb.js → source-branch-nw9fwXin.js} +1 -1
- package/dist/interface/assets/{theme-BZi7VV10.js → theme-DsxRUmCC.js} +1 -1
- package/dist/interface/assets/{trash-2-BKWfq15D.js → trash-2-B-di2M48.js} +1 -1
- package/dist/interface/assets/trash-can-outline-BbZkHoW7.js +1 -0
- package/dist/interface/assets/{trash-fill-yNQsFs0Y.js → trash-fill-Bgen5QTD.js} +1 -1
- package/dist/interface/assets/{trash2-DjTG9rG-.js → trash2-BP__fHgN.js} +1 -1
- package/dist/interface/assets/{types-Bw8H-UB4.js → types-BazOcNe_.js} +1 -1
- package/dist/interface/assets/types-CoXm85So.js +1 -0
- package/dist/interface/assets/upload-CNYrnwuV.js +1 -0
- package/dist/interface/assets/{useAppVersion-CDTrwxkp.js → useAppVersion-oPpW7jcN.js} +1 -1
- package/dist/interface/assets/useBackupRestore-b0Niqql7.js +1 -0
- package/dist/interface/assets/useCameraOptions-uf9Kog6z.js +1 -0
- package/dist/interface/assets/{useCardSelection-CgZ7QTaA.js → useCardSelection-B3B2qPHO.js} +1 -1
- package/dist/interface/assets/{useElectron-CgLWOhcS.js → useElectron-Dg8tFzam.js} +1 -1
- package/dist/interface/assets/useLogsSocket-9jJ-oJIm.js +5 -0
- package/dist/interface/assets/{usePermissions-tzi2t12h.js → usePermissions-xL0VlbyD.js} +1 -1
- package/dist/interface/assets/useServerRestart-3AZOTz7i.js +1 -0
- package/dist/interface/assets/{useStreamStatus-BV_L7pxB.js → useStreamStatus-Dg-Djura.js} +1 -1
- package/dist/interface/assets/useUserOptions-BQnM3gdi.js +1 -0
- package/dist/interface/assets/{variable-Y3IAPnsB.js → variable-CbNySf4s.js} +1 -1
- package/dist/interface/assets/vendor-CSg6_Jfu.js +22 -0
- package/dist/interface/assets/vendor-ace-DIEVbs6L.js +1085 -0
- package/dist/interface/assets/vendor-cameraui-BqkrW4Bb.js +2040 -0
- package/dist/interface/assets/vendor-capacitor-C-8IYzpJ.js +2 -0
- package/dist/interface/assets/vendor-chart-CoQ9HTE3.js +3 -0
- package/dist/interface/assets/vendor-core-BQegq2Q6.js +1 -0
- package/dist/interface/assets/{vendor-dnd-hwiZJHjo.js → vendor-dnd-DQF7Aoap.js} +2 -2
- package/dist/interface/assets/vendor-draggabilly-Cghb3aIb.js +1 -0
- package/dist/interface/assets/vendor-gridstack-qw2ro2uB.js +3 -0
- package/dist/interface/assets/{vendor-leaflet-BMMJO5Nd.js → vendor-leaflet-Bcgd-fkG.js} +1 -1
- package/dist/interface/assets/vendor-markdown-DWwrEE67.js +14 -0
- package/dist/interface/assets/{vendor-primevue-C6wcTjtT.js → vendor-primevue-DYzLjOFZ.js} +85 -85
- package/dist/interface/assets/vendor-vueflow-crUU2mAI.js +26 -0
- package/dist/interface/assets/vendor-xterm-BafMBqaV.js +91 -0
- package/dist/interface/assets/vendor-zod-Dbq0fBXY.js +127 -0
- package/dist/interface/assets/web-BX3axHeB.js +1 -0
- package/dist/interface/assets/web-BcHmbPny.js +1 -0
- package/dist/interface/assets/web-BjKL51lK-BQjyRtns.js +1 -0
- package/dist/interface/assets/web-C8w-z-xR.js +1 -0
- package/dist/interface/assets/web-CHdniv8I.js +1 -0
- package/dist/interface/assets/web-CWBhY0Av.js +1 -0
- package/dist/interface/assets/web-Cf1yYy4u.js +1 -0
- package/dist/interface/assets/web-Ct6Vkr6F.js +1 -0
- package/dist/interface/assets/web-DARDw7d8.js +1 -0
- package/dist/interface/assets/web-DKBMdBSA.js +1 -0
- package/dist/interface/assets/web-Ddzvp-fv.js +1 -0
- package/dist/interface/assets/web-Dymr_MpD.js +1 -0
- package/dist/interface/assets/web-XIuTPdFc.js +1 -0
- package/dist/interface/assets/web-lrnXIJTz.js +1 -0
- package/dist/interface/assets/{webhook-yCryYojY.js → webhook-B7YgiSrF.js} +1 -1
- package/dist/interface/assets/workbox-window.prod.es5-BkFwsIPp.js +1 -0
- package/dist/interface/assets/{zoom-in-Da5uRiQq.js → zoom-in-D7BJNotF.js} +1 -1
- package/dist/interface/index.html +44 -40
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +11 -11
- package/dist/server/requirements.txt +4 -6
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/client.py +3 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/types.py +4 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +9 -14
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/__init__.py +0 -4
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +5 -12
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +6 -23
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +60 -100
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/events.py +3 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/frames.py +2 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/__init__.py +2 -20
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/camera_config_internal.py +1 -1
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/camera_enums.py +3 -3
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/event_emitter.py +13 -26
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/manager_rpc.py +2 -5
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/sensor_rpc.py +21 -6
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/shared_utils.py +7 -18
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/manager/__init__.py +91 -29
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/observable/__init__.py +145 -37
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +10 -1
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/api.py +21 -68
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +31 -58
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/helper.py +3 -12
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +137 -99
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/notifier.py +34 -52
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/oauth.py +4 -4
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +3 -4
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/audio.py +45 -39
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +329 -256
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/battery.py +17 -16
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/classifier.py +31 -27
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/clip.py +14 -12
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/contact.py +11 -10
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/detection.py +34 -22
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/doorbell.py +19 -19
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face.py +34 -28
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/garage.py +29 -20
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/humidity.py +22 -12
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/leak.py +12 -11
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/license_plate.py +35 -31
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/light.py +22 -18
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/lock.py +26 -19
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/motion.py +28 -27
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/object.py +37 -33
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/occupancy.py +11 -10
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/ptz.py +20 -24
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/security_system.py +22 -22
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/siren.py +17 -16
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/smoke.py +11 -10
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/spec.py +26 -22
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/switch.py +13 -12
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/temperature.py +22 -12
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/storage/__init__.py +56 -38
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/types.py +15 -18
- package/dist/server/src/api/controllers/auth.controller.js +2 -1
- package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
- package/dist/server/src/api/controllers/cameras.controller.d.ts +6 -0
- package/dist/server/src/api/controllers/cameras.controller.js +21 -11
- package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
- package/dist/server/src/api/controllers/cast.controller.d.ts +11 -0
- package/dist/server/src/api/controllers/cast.controller.js +29 -0
- package/dist/server/src/api/controllers/cast.controller.js.map +1 -0
- package/dist/server/src/api/controllers/notifications.controller.d.ts +12 -0
- package/dist/server/src/api/controllers/notifications.controller.js +41 -0
- package/dist/server/src/api/controllers/notifications.controller.js.map +1 -1
- package/dist/server/src/api/controllers/nvr.controller.d.ts +14 -0
- package/dist/server/src/api/controllers/nvr.controller.js +61 -0
- package/dist/server/src/api/controllers/nvr.controller.js.map +1 -0
- package/dist/server/src/api/controllers/sensors.controller.d.ts +13 -0
- package/dist/server/src/api/controllers/sensors.controller.js +94 -0
- package/dist/server/src/api/controllers/sensors.controller.js.map +1 -0
- package/dist/server/src/api/controllers/server.controller.d.ts +1 -0
- package/dist/server/src/api/controllers/server.controller.js +11 -0
- package/dist/server/src/api/controllers/server.controller.js.map +1 -1
- package/dist/server/src/api/controllers/tunnel.controller.d.ts +0 -3
- package/dist/server/src/api/controllers/tunnel.controller.js +1 -21
- package/dist/server/src/api/controllers/tunnel.controller.js.map +1 -1
- package/dist/server/src/api/database/constants.d.ts +2 -0
- package/dist/server/src/api/database/constants.js +2 -0
- package/dist/server/src/api/database/constants.js.map +1 -1
- package/dist/server/src/api/database/index.d.ts +5 -2
- package/dist/server/src/api/database/index.js +7 -4
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/database/migrations/v2-1-0.d.ts +3 -0
- package/dist/server/src/api/database/migrations/v2-1-0.js +72 -0
- package/dist/server/src/api/database/migrations/v2-1-0.js.map +1 -0
- package/dist/server/src/api/database/record-schemas.d.ts +2 -3
- package/dist/server/src/api/database/record-schemas.js +3 -3
- package/dist/server/src/api/database/record-schemas.js.map +1 -1
- package/dist/server/src/api/database/types.d.ts +27 -3
- package/dist/server/src/api/index.js +3 -0
- package/dist/server/src/api/index.js.map +1 -1
- package/dist/server/src/api/plugins/natsSubFirewall.d.ts +1 -1
- package/dist/server/src/api/plugins/natsSubFirewall.js +5 -2
- package/dist/server/src/api/plugins/natsSubFirewall.js.map +1 -1
- package/dist/server/src/api/plugins/proxy.plugin.js +5 -3
- package/dist/server/src/api/plugins/proxy.plugin.js.map +1 -1
- package/dist/server/src/api/routes/cameras.routes.js +14 -7
- package/dist/server/src/api/routes/cameras.routes.js.map +1 -1
- package/dist/server/src/api/routes/cast.routes.d.ts +2 -0
- package/dist/server/src/api/routes/cast.routes.js +29 -0
- package/dist/server/src/api/routes/cast.routes.js.map +1 -0
- package/dist/server/src/api/routes/index.js +6 -2
- package/dist/server/src/api/routes/index.js.map +1 -1
- package/dist/server/src/api/routes/notifications.routes.js +32 -0
- package/dist/server/src/api/routes/notifications.routes.js.map +1 -1
- package/dist/server/src/api/routes/nvr.routes.d.ts +2 -0
- package/dist/server/src/api/routes/nvr.routes.js +19 -0
- package/dist/server/src/api/routes/nvr.routes.js.map +1 -0
- package/dist/server/src/api/routes/sensors.routes.d.ts +2 -0
- package/dist/server/src/api/routes/sensors.routes.js +89 -0
- package/dist/server/src/api/routes/sensors.routes.js.map +1 -0
- package/dist/server/src/api/routes/server.routes.js +10 -0
- package/dist/server/src/api/routes/server.routes.js.map +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +103 -45
- package/dist/server/src/api/schemas/cameras.schema.js +7 -10
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/schemas/cast.schema.d.ts +7 -0
- package/dist/server/src/api/schemas/cast.schema.js +7 -0
- package/dist/server/src/api/schemas/cast.schema.js.map +1 -0
- package/dist/server/src/api/schemas/nvr.schema.d.ts +10 -0
- package/dist/server/src/api/schemas/nvr.schema.js +13 -0
- package/dist/server/src/api/schemas/nvr.schema.js.map +1 -0
- package/dist/server/src/api/schemas/{virtualsensors.schema.d.ts → sensors.schema.d.ts} +15 -8
- package/dist/server/src/api/schemas/sensors.schema.js +25 -0
- package/dist/server/src/api/schemas/sensors.schema.js.map +1 -0
- package/dist/server/src/api/schemas/users.schema.d.ts +7 -18
- package/dist/server/src/api/schemas/users.schema.js +3 -7
- package/dist/server/src/api/schemas/users.schema.js.map +1 -1
- package/dist/server/src/api/services/cameras.service.js +1 -1
- package/dist/server/src/api/services/cameras.service.js.map +1 -1
- package/dist/server/src/api/services/cast.service.d.ts +7 -0
- package/dist/server/src/api/services/cast.service.js +14 -0
- package/dist/server/src/api/services/cast.service.js.map +1 -0
- package/dist/server/src/api/services/instances.service.js +1 -1
- package/dist/server/src/api/services/notifications.service.d.ts +3 -0
- package/dist/server/src/api/services/notifications.service.js +9 -0
- package/dist/server/src/api/services/notifications.service.js.map +1 -1
- package/dist/server/src/api/services/plugins.service.js +18 -3
- package/dist/server/src/api/services/plugins.service.js.map +1 -1
- package/dist/server/src/api/services/sensors.service.d.ts +41 -0
- package/dist/server/src/api/services/sensors.service.js +106 -0
- package/dist/server/src/api/services/sensors.service.js.map +1 -0
- package/dist/server/src/api/services/server.service.d.ts +4 -0
- package/dist/server/src/api/services/server.service.js +14 -0
- package/dist/server/src/api/services/server.service.js.map +1 -1
- package/dist/server/src/api/services/users.service.js +6 -9
- package/dist/server/src/api/services/users.service.js.map +1 -1
- package/dist/server/src/api/types/index.d.ts +19 -6
- package/dist/server/src/api/websocket/nsp/events.js +38 -15
- package/dist/server/src/api/websocket/nsp/events.js.map +1 -1
- package/dist/server/src/api.d.ts +0 -2
- package/dist/server/src/api.js +0 -12
- package/dist/server/src/api.js.map +1 -1
- package/dist/server/src/automations/actions/sensor.js +4 -7
- package/dist/server/src/automations/actions/sensor.js.map +1 -1
- package/dist/server/src/automations/conditions/sensorState.js +4 -4
- package/dist/server/src/automations/conditions/sensorState.js.map +1 -1
- package/dist/server/src/automations/context.d.ts +2 -1
- package/dist/server/src/automations/context.js +2 -1
- package/dist/server/src/automations/context.js.map +1 -1
- package/dist/server/src/automations/pluginMethodRegistry.d.ts +2 -0
- package/dist/server/src/automations/pluginMethodRegistry.js +14 -0
- package/dist/server/src/automations/pluginMethodRegistry.js.map +1 -1
- package/dist/server/src/automations/triggers/sensor.js +12 -23
- package/dist/server/src/automations/triggers/sensor.js.map +1 -1
- package/dist/server/src/camera/controller.d.ts +0 -1
- package/dist/server/src/camera/controller.js +9 -46
- package/dist/server/src/camera/controller.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-coordinator.js +13 -11
- package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
- package/dist/server/src/camera/decoder/plugin-registry.d.ts +1 -0
- package/dist/server/src/camera/decoder/plugin-registry.js +13 -1
- package/dist/server/src/camera/decoder/plugin-registry.js.map +1 -1
- package/dist/server/src/camera/decoder/ptz/autotracker.js +2 -2
- package/dist/server/src/camera/decoder/ptz/autotracker.js.map +1 -1
- package/dist/server/src/camera/decoder/secondary-stage.js +6 -6
- package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
- package/dist/server/src/camera/decoder/types.d.ts +7 -1
- package/dist/server/src/camera/decoder/types.js +4 -0
- package/dist/server/src/camera/decoder/types.js.map +1 -1
- package/dist/server/src/camera/decoder/worker.d.ts +2 -0
- package/dist/server/src/camera/decoder/worker.js +14 -3
- package/dist/server/src/camera/decoder/worker.js.map +1 -1
- package/dist/server/src/camera/index.d.ts +2 -14
- package/dist/server/src/camera/index.js +1 -32
- package/dist/server/src/camera/index.js.map +1 -1
- package/dist/server/src/camera/sensors/controller.d.ts +17 -77
- package/dist/server/src/camera/sensors/controller.js +60 -445
- package/dist/server/src/camera/sensors/controller.js.map +1 -1
- package/dist/server/src/internal-bus.d.ts +7 -13
- package/dist/server/src/internal-bus.js.map +1 -1
- package/dist/server/src/main.d.ts +1 -0
- package/dist/server/src/main.js +7 -0
- package/dist/server/src/main.js.map +1 -1
- package/dist/server/src/manager/castManager.d.ts +24 -0
- package/dist/server/src/manager/castManager.js +79 -0
- package/dist/server/src/manager/castManager.js.map +1 -0
- package/dist/server/src/manager/downloadManager.d.ts +1 -0
- package/dist/server/src/manager/downloadManager.js +6 -0
- package/dist/server/src/manager/downloadManager.js.map +1 -1
- package/dist/server/src/manager/notificationManager.d.ts +6 -0
- package/dist/server/src/manager/notificationManager.js +70 -3
- package/dist/server/src/manager/notificationManager.js.map +1 -1
- package/dist/server/src/mqtt/bridge.d.ts +7 -0
- package/dist/server/src/mqtt/bridge.js +92 -32
- package/dist/server/src/mqtt/bridge.js.map +1 -1
- package/dist/server/src/mqtt/ha-discovery.d.ts +1 -1
- package/dist/server/src/mqtt/ha-discovery.js +53 -8
- package/dist/server/src/mqtt/ha-discovery.js.map +1 -1
- package/dist/server/src/mqtt/manager.js +1 -1
- package/dist/server/src/mqtt/manager.js.map +1 -1
- package/dist/server/src/mqtt/topics.d.ts +3 -3
- package/dist/server/src/mqtt/topics.js +11 -10
- package/dist/server/src/mqtt/topics.js.map +1 -1
- package/dist/server/src/plugins/config-store.js +1 -1
- package/dist/server/src/plugins/config-store.js.map +1 -1
- package/dist/server/src/plugins/runtime/base.d.ts +1 -0
- package/dist/server/src/plugins/runtime/base.js +29 -6
- package/dist/server/src/plugins/runtime/base.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/child.js +5 -2
- package/dist/server/src/plugins/runtime/node/child.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/pluginApi.d.ts +2 -0
- package/dist/server/src/plugins/runtime/node/pluginApi.js +4 -1
- package/dist/server/src/plugins/runtime/node/pluginApi.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.d.ts +5 -13
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +97 -179
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.d.ts +2 -1
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js +19 -2
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/reconnect.d.ts +2 -0
- package/dist/server/src/plugins/runtime/node/proxy/reconnect.js +27 -0
- package/dist/server/src/plugins/runtime/node/proxy/reconnect.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/proxy/sensor.d.ts +17 -3
- package/dist/server/src/plugins/runtime/node/proxy/sensor.js +61 -20
- package/dist/server/src/plugins/runtime/node/proxy/sensor.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/sensorManager.d.ts +18 -0
- package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js +269 -0
- package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/storage.d.ts +1 -1
- package/dist/server/src/plugins/runtime/node/storage.js +2 -2
- package/dist/server/src/plugins/runtime/node/storage.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/storageController.d.ts +5 -5
- package/dist/server/src/plugins/runtime/node/storageController.js +20 -28
- package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/child.py +13 -7
- package/dist/server/src/plugins/runtime/python/namespaces.py +13 -19
- package/dist/server/src/plugins/runtime/python/plugin_api.py +10 -1
- package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +130 -280
- package/dist/server/src/plugins/runtime/python/proxy/device_manager.py +18 -0
- package/dist/server/src/plugins/runtime/python/proxy/sensor.py +88 -21
- package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +386 -0
- package/dist/server/src/plugins/runtime/python/storage.py +1 -3
- package/dist/server/src/plugins/runtime/python/storage_controller.py +19 -50
- package/dist/server/src/plugins/runtime/python/store.py +19 -95
- package/dist/server/src/plugins/runtime/python/typings.py +32 -9
- package/dist/server/src/plugins/store/layout.d.ts +1 -2
- package/dist/server/src/plugins/store/layout.js +9 -56
- package/dist/server/src/plugins/store/layout.js.map +1 -1
- package/dist/server/src/plugins/store/location.d.ts +2 -3
- package/dist/server/src/plugins/store/location.js +5 -13
- package/dist/server/src/plugins/store/location.js.map +1 -1
- package/dist/server/src/plugins/store/pluginStoreFile.d.ts +1 -2
- package/dist/server/src/plugins/store/pluginStoreFile.js +8 -15
- package/dist/server/src/plugins/store/pluginStoreFile.js.map +1 -1
- package/dist/server/src/plugins/worker.d.ts +2 -0
- package/dist/server/src/plugins/worker.js +26 -7
- package/dist/server/src/plugins/worker.js.map +1 -1
- package/dist/server/src/rpc/index.d.ts +2 -0
- package/dist/server/src/rpc/index.js +5 -0
- package/dist/server/src/rpc/index.js.map +1 -1
- package/dist/server/src/rpc/interfaces/sensor.d.ts +33 -16
- package/dist/server/src/rpc/namespaces.d.ts +17 -8
- package/dist/server/src/rpc/namespaces.js +20 -12
- package/dist/server/src/rpc/namespaces.js.map +1 -1
- package/dist/server/src/rpc/server.js +1 -0
- package/dist/server/src/rpc/server.js.map +1 -1
- package/dist/server/src/sensors/registry.d.ts +96 -0
- package/dist/server/src/sensors/registry.js +808 -0
- package/dist/server/src/sensors/registry.js.map +1 -0
- package/dist/server/src/{camera/sensors → sensors}/semantics.d.ts +1 -1
- package/dist/server/src/{camera/sensors → sensors}/semantics.js +4 -1
- package/dist/server/src/sensors/semantics.js.map +1 -0
- package/dist/server/src/sensors/sensor.d.ts +58 -0
- package/dist/server/src/{camera/sensors → sensors}/sensor.js +43 -32
- package/dist/server/src/sensors/sensor.js.map +1 -0
- package/dist/server/src/{camera/sensors → sensors}/types.d.ts +2 -0
- package/dist/server/src/{camera/sensors → sensors}/types.js +9 -0
- package/dist/server/src/sensors/types.js.map +1 -0
- package/dist/server/src/{camera/sensors → sensors}/virtual.d.ts +4 -6
- package/dist/server/src/{camera/sensors → sensors}/virtual.js +10 -56
- package/dist/server/src/sensors/virtual.js.map +1 -0
- package/dist/server/src/services/mdns/index.js +4 -0
- package/dist/server/src/services/mdns/index.js.map +1 -1
- package/package.json +11 -11
- package/dist/interface/assets/404-0d936klL.js +0 -1
- package/dist/interface/assets/About-BMwYrGrl.js +0 -1
- package/dist/interface/assets/Adminpanel-DBsOmAuo.js +0 -1
- package/dist/interface/assets/Automation-BLndVfqR.js +0 -3
- package/dist/interface/assets/AutomationImport-Ba33juY0.js +0 -2
- package/dist/interface/assets/AutomationStore-Bjf1x7go.js +0 -2
- package/dist/interface/assets/AutomationStoreDetail-Ko3n3U1U.js +0 -2
- package/dist/interface/assets/Automations-BfC8bvkT.js +0 -2
- package/dist/interface/assets/Camera-BYDPeH6d.js +0 -2
- package/dist/interface/assets/CameraConsole-pVCj1xXI.js +0 -7
- package/dist/interface/assets/Cameras-DdokAe_Q.js +0 -652
- package/dist/interface/assets/Camview-DmuGSzal.js +0 -1
- package/dist/interface/assets/Config-DvVqB0_Y.js +0 -2
- package/dist/interface/assets/ConfigActionDelay-B1JjI6bg.js +0 -1
- package/dist/interface/assets/ConfigActionHttp-BzGIbeVo.js +0 -1
- package/dist/interface/assets/ConfigActionImageInput-C6m2-s8z.js +0 -1
- package/dist/interface/assets/ConfigActionMqtt-ByZNQKsg.js +0 -1
- package/dist/interface/assets/ConfigActionNotification-YmdMddoN.js +0 -1
- package/dist/interface/assets/ConfigActionNotificationControl-2hWDRBpq.js +0 -1
- package/dist/interface/assets/ConfigActionOutput-D9k1-jfI.js +0 -1
- package/dist/interface/assets/ConfigActionPlugin-DjD_94EX.js +0 -1
- package/dist/interface/assets/ConfigActionSensor-fak8jYSC.js +0 -1
- package/dist/interface/assets/ConfigActionSnapshot-mwEHXqyk.js +0 -1
- package/dist/interface/assets/ConfigActionVariable-kBxNfyOV.js +0 -1
- package/dist/interface/assets/ConfigConditionIfElse-CkjmImTD.js +0 -1
- package/dist/interface/assets/ConfigConditionSensorState-FE3mFjRe.js +0 -1
- package/dist/interface/assets/ConfigConditionSwitch-msqWizIt.js +0 -1
- package/dist/interface/assets/ConfigConditionTime-ifPV135b.js +0 -1
- package/dist/interface/assets/ConfigSensorValueInput-Bg3SEbSh.js +0 -1
- package/dist/interface/assets/ConfigTriggerGeofence-CemaUwl5.js +0 -1
- package/dist/interface/assets/ConfigTriggerManual-DWuiq7PC.js +0 -1
- package/dist/interface/assets/ConfigTriggerMqtt-DxAoDh2Z.js +0 -1
- package/dist/interface/assets/ConfigTriggerSchedule-DDqgMGvp.js +0 -1
- package/dist/interface/assets/ConfigTriggerSensor-M6bXqz4k.js +0 -1
- package/dist/interface/assets/ConfigTriggerWebhook-CxOXgcJi.js +0 -1
- package/dist/interface/assets/Console-CMuW2_8s.js +0 -1
- package/dist/interface/assets/CuiAutomationRunsDialog-yh1qHzmS.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-BshiVWqw.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-DSNyVg5P.js +0 -1
- package/dist/interface/assets/CuiCameraPipCard-Cmk0jl6M.js +0 -1
- package/dist/interface/assets/CuiCameraRecordings-KU1wIai4.js +0 -1
- package/dist/interface/assets/CuiCameraShares-BoR3YQWj.js +0 -1
- package/dist/interface/assets/CuiCameraTable-BRPBqU8V.js +0 -2
- package/dist/interface/assets/CuiDataTable-BGY4VBtv.js +0 -1
- package/dist/interface/assets/CuiList-BSOMR296.js +0 -1
- package/dist/interface/assets/CuiMarkdownContent-DEMo42iT.js +0 -1
- package/dist/interface/assets/CuiMarkdownContent-Xn_VHwym.js +0 -1
- package/dist/interface/assets/CuiPluginCard-CgJb8B1W.js +0 -2
- package/dist/interface/assets/CuiPluginOAuthButton-XpEyqoRm.js +0 -2
- package/dist/interface/assets/CuiQRCode-QBkbmvRA.js +0 -1
- package/dist/interface/assets/CuiRecordingsGrid-CuEl_hhu.js +0 -1
- package/dist/interface/assets/CuiSchema-D_cg-H5i.js +0 -1
- package/dist/interface/assets/CuiTopNavbarItem-CXijnkK9.js +0 -1
- package/dist/interface/assets/Faces-C95mlWaW.js +0 -1
- package/dist/interface/assets/FirstSteps-Cpbg7fng.js +0 -1
- package/dist/interface/assets/Instances-BgJtM1Xl.js +0 -1
- package/dist/interface/assets/Logs-BWXYqm5T.js +0 -6
- package/dist/interface/assets/Menu-BO9Zjy1w.js +0 -1
- package/dist/interface/assets/OAuthDeviceFlow-NnwqdmBM.js +0 -1
- package/dist/interface/assets/Plugin-DQq3xjhe.js +0 -1
- package/dist/interface/assets/PluginConsole-BTsVAsKf.js +0 -7
- package/dist/interface/assets/PluginDetail-CTyzzZVU.js +0 -2
- package/dist/interface/assets/PluginSchema-Bn3pHjQA.js +0 -1
- package/dist/interface/assets/PluginSearch-DbXCyUF0.js +0 -1
- package/dist/interface/assets/PluginSearch-z0z8Z1gP.js +0 -2
- package/dist/interface/assets/Plugins-Cy7e-ty2.js +0 -1
- package/dist/interface/assets/Recordings-CWBpGEUf.js +0 -1
- package/dist/interface/assets/Settings-CUIORSmm.js +0 -1
- package/dist/interface/assets/SettingsAccount-CeJBKpzp.js +0 -1
- package/dist/interface/assets/SettingsAccount-CnwVrQx1.js +0 -1
- package/dist/interface/assets/SettingsAppearance-BraaC0WF.js +0 -1
- package/dist/interface/assets/SettingsAppearance-CZrOTBki.js +0 -1
- package/dist/interface/assets/SettingsBackup-y9mb8XZZ.js +0 -1
- package/dist/interface/assets/SettingsList-DsKncveQ.js +0 -1
- package/dist/interface/assets/SettingsMqtt-DTyyctmQ.js +0 -1
- package/dist/interface/assets/SettingsNotifications-SFMt4Yuj.js +0 -2
- package/dist/interface/assets/SettingsPermissions-CktJaQzL.js +0 -1
- package/dist/interface/assets/SettingsRecordings-Bqguyt6u.js +0 -1
- package/dist/interface/assets/SettingsRemote-CTv7bb4g.js +0 -1
- package/dist/interface/assets/SettingsSystem-CkCnB34r.js +0 -2
- package/dist/interface/assets/SettingsUsers-D8LAGd6F.js +0 -1
- package/dist/interface/assets/Terminal-DaR9Ur0_.js +0 -4
- package/dist/interface/assets/VariableInput-D0TP_Lmo.js +0 -1
- package/dist/interface/assets/VariableSuggestions--vq7928F.js +0 -1
- package/dist/interface/assets/VersionsHandler-D9GDdcXr.js +0 -7
- package/dist/interface/assets/Workers-CUyRzwJG.js +0 -2
- package/dist/interface/assets/ace-DYqf8ZN7.js +0 -1
- package/dist/interface/assets/alert-outline-BUvdNY2J.js +0 -1
- package/dist/interface/assets/api-DxrxNyIH.js +0 -2
- package/dist/interface/assets/api-VZ_wVUpU.css +0 -2
- package/dist/interface/assets/arrow-left-LdfKbcre.js +0 -1
- package/dist/interface/assets/arrow-right-outline-BbTEhBJq.js +0 -1
- package/dist/interface/assets/automationBlueprint-DMjszOs4.js +0 -1
- package/dist/interface/assets/automations-51-JMUWD.js +0 -1
- package/dist/interface/assets/check-circle-D-utE_P9.js +0 -1
- package/dist/interface/assets/chevron-down-OEjMpuec.js +0 -1
- package/dist/interface/assets/chevron-right-B3nxd9UE.js +0 -1
- package/dist/interface/assets/cloudHandoff-BktPB9rt.js +0 -1
- package/dist/interface/assets/copy-BvSzmsFs.js +0 -1
- package/dist/interface/assets/delete-B9BZTgya.js +0 -1
- package/dist/interface/assets/dist-qdWlJrr0.js +0 -1
- package/dist/interface/assets/download-Dp_ssGIE.js +0 -1
- package/dist/interface/assets/esm-9VMgxuPI.js +0 -1
- package/dist/interface/assets/esm-B69zS8aI.js +0 -1
- package/dist/interface/assets/esm-BF94InGP.js +0 -1
- package/dist/interface/assets/esm-BHdK6hkk.js +0 -1
- package/dist/interface/assets/esm-BYm8JT8N.js +0 -1
- package/dist/interface/assets/esm-BwCmHX2G.js +0 -1
- package/dist/interface/assets/esm-CL6t-XYT.js +0 -1
- package/dist/interface/assets/esm-CXstRMXa.js +0 -1
- package/dist/interface/assets/esm-Ckb9rjlL.js +0 -1
- package/dist/interface/assets/esm-D4insKbc.js +0 -1
- package/dist/interface/assets/esm-DiReJ8YS.js +0 -1
- package/dist/interface/assets/esm-Dt_Neag0.js +0 -1
- package/dist/interface/assets/esm-GspmWlKf.js +0 -1
- package/dist/interface/assets/esm-eezqpB2a.js +0 -1
- package/dist/interface/assets/flowSchema-Ckr7CEbZ.js +0 -1
- package/dist/interface/assets/home-DL94781-.js +0 -1
- package/dist/interface/assets/main-BxM81wMi.css +0 -1
- package/dist/interface/assets/main-DOjghmGX.js +0 -3
- package/dist/interface/assets/mqtt-COazyb4A.js +0 -1
- package/dist/interface/assets/native-WiRjRKUS.js +0 -1
- package/dist/interface/assets/native-hhip9y-E.js +0 -1
- package/dist/interface/assets/nodeDefinitions-CPyyuw1P.js +0 -1
- package/dist/interface/assets/plugin-DIVM640y.js +0 -1
- package/dist/interface/assets/plus-CTzaBaTz.js +0 -1
- package/dist/interface/assets/power-CvKGepBP.js +0 -1
- package/dist/interface/assets/rolldown-runtime-DAXXjFlN.js +0 -1
- package/dist/interface/assets/round-restart-alt-D3iswthu.js +0 -1
- package/dist/interface/assets/trash-can-outline-HvqPHpF7.js +0 -1
- package/dist/interface/assets/types-CDJiWcQ7.js +0 -1
- package/dist/interface/assets/upload-B6yqOWqz.js +0 -1
- package/dist/interface/assets/useBackupRestore-QuXkc5ZG.js +0 -1
- package/dist/interface/assets/useCameraOptions-D5-bI-e6.js +0 -1
- package/dist/interface/assets/useLogsSocket-BlAo-xcw.js +0 -5
- package/dist/interface/assets/useServerRestart-DctcFWWh.js +0 -1
- package/dist/interface/assets/useUserOptions-nuBRgAEk.js +0 -1
- package/dist/interface/assets/vendor-ace-CrklN-bc.js +0 -1085
- package/dist/interface/assets/vendor-cameraui-B_OCKNGw.js +0 -2040
- package/dist/interface/assets/vendor-capacitor-D6T-f6Q_.js +0 -2
- package/dist/interface/assets/vendor-chart-DpsXMlB-.js +0 -3
- package/dist/interface/assets/vendor-core-zLmLhSHM.js +0 -1
- package/dist/interface/assets/vendor-draggabilly-OrLwQbim.js +0 -1
- package/dist/interface/assets/vendor-gridstack-C6VKsm_r.js +0 -3
- package/dist/interface/assets/vendor-markdown-_OBaDsnU.js +0 -15
- package/dist/interface/assets/vendor-nfBMzqgY.js +0 -22
- package/dist/interface/assets/vendor-vueflow-B1MUSE71.js +0 -26
- package/dist/interface/assets/vendor-xterm-IIYDrBG1.js +0 -142
- package/dist/interface/assets/vendor-zod-BaT-dXMv.js +0 -127
- package/dist/interface/assets/web-B-SlpbxK.js +0 -1
- package/dist/interface/assets/web-B6leYIzJ.js +0 -1
- package/dist/interface/assets/web-BLDe3Kn0.js +0 -1
- package/dist/interface/assets/web-BT-51W2W.js +0 -1
- package/dist/interface/assets/web-BjKL51lK-DHLvmMLr.js +0 -1
- package/dist/interface/assets/web-BpRU7MbT.js +0 -1
- package/dist/interface/assets/web-CiaJvmq8.js +0 -1
- package/dist/interface/assets/web-Cnkt61og.js +0 -1
- package/dist/interface/assets/web-CzhM-YH1.js +0 -1
- package/dist/interface/assets/web-Da5rcZ2Q.js +0 -1
- package/dist/interface/assets/web-DdZjFuTb.js +0 -1
- package/dist/interface/assets/web-DnHj9sl9.js +0 -1
- package/dist/interface/assets/web-E4Ew4Xhj.js +0 -1
- package/dist/interface/assets/web-q63OEDhG.js +0 -1
- package/dist/interface/assets/workbox-window.prod.es5-BMiTt6Ad.js +0 -1
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/sensor_triggers.py +0 -4
- package/dist/server/src/api/controllers/virtualsensors.controller.d.ts +0 -11
- package/dist/server/src/api/controllers/virtualsensors.controller.js +0 -61
- package/dist/server/src/api/controllers/virtualsensors.controller.js.map +0 -1
- package/dist/server/src/api/routes/virtualsensors.routes.d.ts +0 -2
- package/dist/server/src/api/routes/virtualsensors.routes.js +0 -63
- package/dist/server/src/api/routes/virtualsensors.routes.js.map +0 -1
- package/dist/server/src/api/schemas/virtualsensors.schema.js +0 -14
- package/dist/server/src/api/schemas/virtualsensors.schema.js.map +0 -1
- package/dist/server/src/api/services/virtualsensors.service.d.ts +0 -20
- package/dist/server/src/api/services/virtualsensors.service.js +0 -151
- package/dist/server/src/api/services/virtualsensors.service.js.map +0 -1
- package/dist/server/src/camera/sensors/semantics.js.map +0 -1
- package/dist/server/src/camera/sensors/sensor.d.ts +0 -34
- package/dist/server/src/camera/sensors/sensor.js.map +0 -1
- package/dist/server/src/camera/sensors/stable-id.d.ts +0 -2
- package/dist/server/src/camera/sensors/stable-id.js +0 -17
- package/dist/server/src/camera/sensors/stable-id.js.map +0 -1
- package/dist/server/src/camera/sensors/types.js.map +0 -1
- package/dist/server/src/camera/sensors/virtual.js.map +0 -1
- package/dist/server/src/plugins/runtime/python/store_migrate.py +0 -59
- package/dist/server/src/plugins/store/migrate.d.ts +0 -1
- package/dist/server/src/plugins/store/migrate.js +0 -22
- package/dist/server/src/plugins/store/migrate.js.map +0 -1
|
@@ -7,15 +7,14 @@ from plugins.runtime.python.store import CameraLocation, PluginLocation, SensorL
|
|
|
7
7
|
|
|
8
8
|
if TYPE_CHECKING:
|
|
9
9
|
from _camera_ui_tools.camera_ui_rpc import RPCClient
|
|
10
|
-
from _camera_ui_tools.camera_ui_sdk import JsonSchema
|
|
10
|
+
from _camera_ui_tools.camera_ui_sdk import JsonSchema
|
|
11
11
|
from plugins.runtime.python.config_db import PluginConfigDb
|
|
12
12
|
from plugins.runtime.python.plugin_api import PluginAPI
|
|
13
13
|
from plugins.runtime.python.typings import PluginInfo
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return f"{camera_id}:sensor:{sensor_type}:{plugin_id}:{sensor_name}"
|
|
16
|
+
def sensor_storage_key(sensor_id: str) -> str:
|
|
17
|
+
return f"sensor:{sensor_id}"
|
|
19
18
|
|
|
20
19
|
|
|
21
20
|
class StorageController:
|
|
@@ -82,45 +81,31 @@ class StorageController:
|
|
|
82
81
|
|
|
83
82
|
def createSensorStorage(
|
|
84
83
|
self,
|
|
85
|
-
camera_id: str,
|
|
86
|
-
sensor_type: SensorType,
|
|
87
84
|
plugin_id: str,
|
|
88
|
-
sensor_name: str,
|
|
89
85
|
sensor_id: str,
|
|
90
86
|
schemas: list[JsonSchema] = [],
|
|
91
87
|
) -> DeviceStorage:
|
|
92
|
-
storage_key = sensor_storage_key(
|
|
88
|
+
storage_key = sensor_storage_key(sensor_id)
|
|
93
89
|
storage = self.__storages.get(storage_key)
|
|
94
90
|
|
|
95
91
|
if not storage:
|
|
96
|
-
# storage_key is only the in-memory registry key; persistence addresses
|
|
97
|
-
# the canonical sensors.<camId>.<type>.<name> path. sensor_id is the
|
|
98
|
-
# runtime UUID for the RPC namespace.
|
|
99
92
|
storage = DeviceStorage(
|
|
100
93
|
self.__api,
|
|
101
94
|
self.__proxy,
|
|
102
95
|
self.__plugin,
|
|
103
96
|
self.__plugin_db,
|
|
104
|
-
SensorLocation(
|
|
105
|
-
camera_id=camera_id,
|
|
106
|
-
sensor_type=sensor_type.value,
|
|
107
|
-
sensor_name=sensor_name,
|
|
108
|
-
),
|
|
97
|
+
SensorLocation(sensor_id=sensor_id),
|
|
109
98
|
schemas,
|
|
110
99
|
sensor_id,
|
|
111
100
|
)
|
|
112
101
|
self.__storages[storage_key] = storage
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
storage.update_schema(schemas)
|
|
102
|
+
|
|
103
|
+
storage.update_schema(schemas)
|
|
116
104
|
|
|
117
105
|
return storage
|
|
118
106
|
|
|
119
|
-
def getSensorStorage(
|
|
120
|
-
self
|
|
121
|
-
) -> DeviceStorage | None:
|
|
122
|
-
storage_key = sensor_storage_key(camera_id, sensor_type.value, plugin_id, sensor_name)
|
|
123
|
-
return self.__storages.get(storage_key)
|
|
107
|
+
def getSensorStorage(self, sensor_id: str) -> DeviceStorage | None:
|
|
108
|
+
return self.__storages.get(sensor_storage_key(sensor_id))
|
|
124
109
|
|
|
125
110
|
@overload
|
|
126
111
|
async def createStorage(self, type_: Literal["camera"], device_id: str) -> DeviceStorage: ...
|
|
@@ -130,19 +115,13 @@ class StorageController:
|
|
|
130
115
|
async def createStorage(
|
|
131
116
|
self,
|
|
132
117
|
type_: Literal["sensor"],
|
|
133
|
-
device_id: str,
|
|
134
|
-
|
|
135
|
-
plugin_id: str,
|
|
136
|
-
sensor_name: str,
|
|
137
|
-
sensor_id: str,
|
|
118
|
+
device_id: str, # plugin_id
|
|
119
|
+
sensor_id: str = ...,
|
|
138
120
|
) -> DeviceStorage: ...
|
|
139
121
|
async def createStorage(
|
|
140
122
|
self,
|
|
141
123
|
type_: Literal["camera", "plugin", "sensor"],
|
|
142
|
-
device_id: str | None = None, # camera_id
|
|
143
|
-
sensor_type: SensorType | None = None,
|
|
144
|
-
plugin_id: str | None = None,
|
|
145
|
-
sensor_name: str | None = None,
|
|
124
|
+
device_id: str | None = None, # camera_id or plugin_id
|
|
146
125
|
sensor_id: str | None = None,
|
|
147
126
|
) -> DeviceStorage:
|
|
148
127
|
storage: DeviceStorage | None = None
|
|
@@ -153,12 +132,10 @@ class StorageController:
|
|
|
153
132
|
|
|
154
133
|
storage = self.createCameraStorage(device_id)
|
|
155
134
|
elif type_ == "sensor":
|
|
156
|
-
if not device_id or not
|
|
157
|
-
raise ValueError(
|
|
158
|
-
"cameraId, sensorType, pluginId, sensorName and sensorId are required for sensor storage creation"
|
|
159
|
-
)
|
|
135
|
+
if not device_id or not sensor_id:
|
|
136
|
+
raise ValueError("pluginId and sensorId are required for sensor storage creation")
|
|
160
137
|
|
|
161
|
-
storage = self.createSensorStorage(device_id,
|
|
138
|
+
storage = self.createSensorStorage(device_id, sensor_id)
|
|
162
139
|
else:
|
|
163
140
|
storage = self.createPluginStorage()
|
|
164
141
|
|
|
@@ -173,28 +150,20 @@ class StorageController:
|
|
|
173
150
|
async def removeStorage(
|
|
174
151
|
self,
|
|
175
152
|
type_: Literal["sensor"],
|
|
176
|
-
device_id: str
|
|
177
|
-
sensor_type: SensorType | None = None,
|
|
178
|
-
plugin_id: str | None = None,
|
|
179
|
-
sensor_name: str | None = None,
|
|
153
|
+
device_id: str, # sensor_id
|
|
180
154
|
) -> None: ...
|
|
181
155
|
async def removeStorage(
|
|
182
156
|
self,
|
|
183
157
|
type_: Literal["camera", "plugin", "sensor"],
|
|
184
158
|
device_id: str | None = None,
|
|
185
|
-
sensor_type: SensorType | None = None,
|
|
186
|
-
plugin_id: str | None = None,
|
|
187
|
-
sensor_name: str | None = None,
|
|
188
159
|
) -> None:
|
|
189
160
|
storage_key: str
|
|
190
161
|
|
|
191
162
|
if type_ == "sensor":
|
|
192
|
-
if not device_id
|
|
193
|
-
raise ValueError(
|
|
194
|
-
"cameraId, sensorType, pluginId and sensorName are required for sensor storage removal"
|
|
195
|
-
)
|
|
163
|
+
if not device_id:
|
|
164
|
+
raise ValueError("sensorId is required for sensor storage removal")
|
|
196
165
|
|
|
197
|
-
storage_key = sensor_storage_key(device_id
|
|
166
|
+
storage_key = sensor_storage_key(device_id)
|
|
198
167
|
elif type_ == "camera":
|
|
199
168
|
if not device_id:
|
|
200
169
|
raise ValueError("ID is required for storage removal")
|
|
@@ -263,9 +263,7 @@ class CameraLocation:
|
|
|
263
263
|
|
|
264
264
|
@dataclass(frozen=True)
|
|
265
265
|
class SensorLocation:
|
|
266
|
-
|
|
267
|
-
sensor_type: str
|
|
268
|
-
sensor_name: str
|
|
266
|
+
sensor_id: str
|
|
269
267
|
|
|
270
268
|
|
|
271
269
|
StoreLocation = PluginLocation | CameraLocation | SensorLocation
|
|
@@ -276,8 +274,7 @@ def read_location(config: dict[str, Any], location: StoreLocation) -> dict[str,
|
|
|
276
274
|
return config.get("plugin")
|
|
277
275
|
if isinstance(location, CameraLocation):
|
|
278
276
|
return (config.get("cameras") or {}).get(location.camera_id)
|
|
279
|
-
|
|
280
|
-
return (by_camera.get(location.sensor_type) or {}).get(location.sensor_name)
|
|
277
|
+
return (config.get("sensors") or {}).get(location.sensor_id)
|
|
281
278
|
|
|
282
279
|
|
|
283
280
|
def write_location(config: dict[str, Any], location: StoreLocation, values: dict[str, Any]) -> None:
|
|
@@ -287,8 +284,7 @@ def write_location(config: dict[str, Any], location: StoreLocation, values: dict
|
|
|
287
284
|
if isinstance(location, CameraLocation):
|
|
288
285
|
config.setdefault("cameras", {})[location.camera_id] = values
|
|
289
286
|
return
|
|
290
|
-
|
|
291
|
-
by_camera.setdefault(location.sensor_type, {})[location.sensor_name] = values
|
|
287
|
+
config.setdefault("sensors", {})[location.sensor_id] = values
|
|
292
288
|
|
|
293
289
|
|
|
294
290
|
def delete_location(config: dict[str, Any], location: StoreLocation) -> None:
|
|
@@ -304,18 +300,8 @@ def delete_location(config: dict[str, Any], location: StoreLocation) -> None:
|
|
|
304
300
|
return
|
|
305
301
|
|
|
306
302
|
sensors = config.get("sensors")
|
|
307
|
-
if
|
|
308
|
-
|
|
309
|
-
by_camera = sensors.get(location.camera_id)
|
|
310
|
-
if not isinstance(by_camera, dict):
|
|
311
|
-
return
|
|
312
|
-
by_type = by_camera.get(location.sensor_type)
|
|
313
|
-
if not isinstance(by_type, dict):
|
|
314
|
-
return
|
|
315
|
-
|
|
316
|
-
by_type.pop(location.sensor_name, None)
|
|
317
|
-
_prune_if_empty(by_camera, location.sensor_type)
|
|
318
|
-
_prune_if_empty(sensors, location.camera_id)
|
|
303
|
+
if isinstance(sensors, dict):
|
|
304
|
+
sensors.pop(location.sensor_id, None)
|
|
319
305
|
_prune_if_empty(config, "sensors")
|
|
320
306
|
|
|
321
307
|
|
|
@@ -325,79 +311,19 @@ def _prune_if_empty(parent: dict[str, Any], key: str) -> None:
|
|
|
325
311
|
del parent[key]
|
|
326
312
|
|
|
327
313
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
def is_canonical_layout(payload: dict[str, Any]) -> bool:
|
|
333
|
-
return all(key in _CANONICAL_SECTIONS for key in payload)
|
|
314
|
+
_LAYOUT_VERSION_KEY = "__v"
|
|
315
|
+
# v2: sensors keyed by persistent sensor id, pre-entity camera-keyed trees are unmappable
|
|
316
|
+
_LAYOUT_VERSION = 2
|
|
334
317
|
|
|
335
318
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
# an old SDK must keep finding its keys untouched.
|
|
339
|
-
def _is_go_legacy_layout(payload: dict[str, Any], plugin_id: str) -> bool:
|
|
340
|
-
return len(payload) > 0 and all(key.startswith(f"{plugin_id}.") for key in payload)
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
def remap_legacy_layout(
|
|
344
|
-
payload: dict[str, Any], plugin_id: str, log: StoreLogger | None = None
|
|
345
|
-
) -> dict[str, Any]:
|
|
346
|
-
if is_canonical_layout(payload) or _is_go_legacy_layout(payload, plugin_id):
|
|
319
|
+
def upgrade_layout(payload: dict[str, Any]) -> dict[str, Any]:
|
|
320
|
+
if payload.get(_LAYOUT_VERSION_KEY) == _LAYOUT_VERSION:
|
|
347
321
|
return payload
|
|
348
322
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
for key, values in payload.items():
|
|
354
|
-
if key in _CANONICAL_SECTIONS:
|
|
355
|
-
continue
|
|
356
|
-
|
|
357
|
-
if key == "storage":
|
|
358
|
-
# In a mixed legacy+canonical document the canonical section is the
|
|
359
|
-
# newer write - the legacy duplicate is stale and must never win.
|
|
360
|
-
if "plugin" in canonical:
|
|
361
|
-
if log:
|
|
362
|
-
log.warn(
|
|
363
|
-
f"store: legacy key 'storage' dropped — canonical 'plugin' already present ({plugin_id})"
|
|
364
|
-
)
|
|
365
|
-
continue
|
|
366
|
-
canonical["plugin"] = values
|
|
367
|
-
continue
|
|
368
|
-
|
|
369
|
-
sensor_idx = key.find(_LEGACY_SENSOR_MARKER)
|
|
370
|
-
if sensor_idx != -1:
|
|
371
|
-
# <camId>:sensor:<type>:<pluginId>:<name> - type and pluginId contain
|
|
372
|
-
# no colons; the name keeps everything after them verbatim.
|
|
373
|
-
camera_id = key[:sensor_idx]
|
|
374
|
-
rest = key[sensor_idx + len(_LEGACY_SENSOR_MARKER) :]
|
|
375
|
-
type_end = rest.find(":")
|
|
376
|
-
plugin_end = rest.find(":", type_end + 1)
|
|
377
|
-
if type_end != -1 and plugin_end != -1:
|
|
378
|
-
sensor_type = rest[:type_end]
|
|
379
|
-
sensor_name = rest[plugin_end + 1 :]
|
|
380
|
-
by_camera = canonical.setdefault("sensors", {}).setdefault(camera_id, {})
|
|
381
|
-
if sensor_name in by_camera.get(sensor_type, {}):
|
|
382
|
-
if log:
|
|
383
|
-
log.warn(
|
|
384
|
-
f"store: legacy sensor key '{key}' dropped — canonical target already present ({plugin_id})"
|
|
385
|
-
)
|
|
386
|
-
continue
|
|
387
|
-
by_camera.setdefault(sensor_type, {})[sensor_name] = values
|
|
388
|
-
continue
|
|
389
|
-
if log:
|
|
390
|
-
log.warn(f"store: unparsable legacy sensor key '{key}' kept under cameras ({plugin_id})")
|
|
391
|
-
|
|
392
|
-
if key in (canonical.get("cameras") or {}):
|
|
393
|
-
if log:
|
|
394
|
-
log.warn(
|
|
395
|
-
f"store: legacy key '{key}' dropped — canonical 'cameras.{key}' already present ({plugin_id})"
|
|
396
|
-
)
|
|
397
|
-
continue
|
|
398
|
-
canonical.setdefault("cameras", {})[key] = values
|
|
399
|
-
|
|
400
|
-
return canonical
|
|
323
|
+
upgraded = dict(payload)
|
|
324
|
+
upgraded.pop("sensors", None)
|
|
325
|
+
upgraded[_LAYOUT_VERSION_KEY] = _LAYOUT_VERSION
|
|
326
|
+
return upgraded
|
|
401
327
|
|
|
402
328
|
|
|
403
329
|
# Values must round-trip identically through all three runtimes' msgpack
|
|
@@ -453,9 +379,8 @@ def _walk_value(value: Any, path: str, depth: int) -> None:
|
|
|
453
379
|
|
|
454
380
|
|
|
455
381
|
class PluginStoreFile:
|
|
456
|
-
def __init__(self, volume_dir: str,
|
|
382
|
+
def __init__(self, volume_dir: str, log: StoreLogger | None = None) -> None:
|
|
457
383
|
self._volume_dir = volume_dir
|
|
458
|
-
self._plugin_id = plugin_id
|
|
459
384
|
self._log = log
|
|
460
385
|
self._path = str(Path(volume_dir) / STORE_FILE_NAME)
|
|
461
386
|
self._writer = CoalescingWriter(self._write_snapshot, log)
|
|
@@ -472,15 +397,14 @@ class PluginStoreFile:
|
|
|
472
397
|
|
|
473
398
|
payload = await read_store_file(self._path, self._log)
|
|
474
399
|
if payload is None:
|
|
475
|
-
# Persist the initial envelope so later opens skip the legacy probe.
|
|
476
400
|
payload = {}
|
|
477
401
|
await write_store_file(self._path, payload, self._log)
|
|
478
402
|
|
|
479
|
-
|
|
480
|
-
if
|
|
481
|
-
await write_store_file(self._path,
|
|
403
|
+
upgraded = upgrade_layout(payload)
|
|
404
|
+
if upgraded is not payload:
|
|
405
|
+
await write_store_file(self._path, upgraded, self._log)
|
|
482
406
|
|
|
483
|
-
self._payload =
|
|
407
|
+
self._payload = upgraded
|
|
484
408
|
await backup_store_file(self._path, self._log)
|
|
485
409
|
self._closed = False
|
|
486
410
|
|
|
@@ -52,13 +52,24 @@ class StoredSensorData(TypedDict):
|
|
|
52
52
|
type: SensorType
|
|
53
53
|
name: str
|
|
54
54
|
displayName: str
|
|
55
|
+
nativeId: NotRequired[str]
|
|
55
56
|
pluginId: str
|
|
57
|
+
assignedCameraIds: list[str]
|
|
58
|
+
boundCameraId: NotRequired[str]
|
|
59
|
+
exposed: bool
|
|
60
|
+
connected: bool
|
|
56
61
|
properties: dict[str, Any]
|
|
57
62
|
capabilities: NotRequired[list[str]]
|
|
58
63
|
requiresFrames: NotRequired[bool]
|
|
59
64
|
modelSpec: NotRequired[ModelSpec]
|
|
60
65
|
|
|
61
66
|
|
|
67
|
+
class SensorRegistration(TypedDict):
|
|
68
|
+
id: str
|
|
69
|
+
assignedCameraIds: list[str]
|
|
70
|
+
active: bool
|
|
71
|
+
|
|
72
|
+
|
|
62
73
|
class SensorRefreshedState(TypedDict):
|
|
63
74
|
type: SensorType
|
|
64
75
|
properties: dict[str, Any]
|
|
@@ -67,33 +78,41 @@ class SensorRefreshedState(TypedDict):
|
|
|
67
78
|
|
|
68
79
|
|
|
69
80
|
class SensorAddedEvent(TypedDict):
|
|
70
|
-
cameraId: str
|
|
71
81
|
sensor: StoredSensorData
|
|
72
82
|
state: SensorRefreshedState
|
|
73
83
|
|
|
74
84
|
|
|
75
|
-
class
|
|
76
|
-
cameraId: str
|
|
85
|
+
class SensorDeletedEvent(TypedDict):
|
|
77
86
|
sensorId: str
|
|
78
87
|
sensorType: SensorType
|
|
79
88
|
|
|
80
89
|
|
|
90
|
+
class SensorConnectedChangedEvent(TypedDict):
|
|
91
|
+
sensorId: str
|
|
92
|
+
sensorType: SensorType
|
|
93
|
+
connected: bool
|
|
94
|
+
|
|
95
|
+
|
|
81
96
|
class SensorCapabilitiesChangedEvent(TypedDict):
|
|
82
|
-
cameraId: str
|
|
83
97
|
sensorId: str
|
|
84
98
|
capabilities: list[str]
|
|
85
99
|
|
|
86
100
|
|
|
87
101
|
class SensorDisplayNameChangedEvent(TypedDict):
|
|
88
|
-
cameraId: str
|
|
89
102
|
sensorId: str
|
|
90
103
|
displayName: str
|
|
91
104
|
|
|
92
105
|
|
|
106
|
+
class SensorExposedChangedEvent(TypedDict):
|
|
107
|
+
sensorId: str
|
|
108
|
+
sensorType: SensorType
|
|
109
|
+
exposed: bool
|
|
110
|
+
|
|
111
|
+
|
|
93
112
|
class SensorAssignmentChangedEvent(TypedDict):
|
|
94
|
-
|
|
95
|
-
pluginId: str
|
|
113
|
+
sensorId: str
|
|
96
114
|
sensorType: SensorType
|
|
115
|
+
cameraId: str
|
|
97
116
|
assigned: bool
|
|
98
117
|
|
|
99
118
|
|
|
@@ -101,18 +120,22 @@ class SensorEventMessage(TypedDict):
|
|
|
101
120
|
type: Literal[
|
|
102
121
|
"property:changed",
|
|
103
122
|
"sensor:added",
|
|
104
|
-
"sensor:
|
|
123
|
+
"sensor:deleted",
|
|
124
|
+
"sensor:connected:changed",
|
|
105
125
|
"sensor:displayName:changed",
|
|
106
126
|
"sensor:capabilities:changed",
|
|
107
127
|
"sensor:assignment:changed",
|
|
128
|
+
"sensor:exposed:changed",
|
|
108
129
|
]
|
|
109
130
|
data: (
|
|
110
131
|
PropertyChangedEvent
|
|
111
132
|
| SensorAddedEvent
|
|
112
|
-
|
|
|
133
|
+
| SensorDeletedEvent
|
|
134
|
+
| SensorConnectedChangedEvent
|
|
113
135
|
| SensorDisplayNameChangedEvent
|
|
114
136
|
| SensorCapabilitiesChangedEvent
|
|
115
137
|
| SensorAssignmentChangedEvent
|
|
138
|
+
| SensorExposedChangedEvent
|
|
116
139
|
)
|
|
117
140
|
|
|
118
141
|
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare function
|
|
2
|
-
export declare function remapLegacyLayout(payload: Record<string, any>, pluginId: string): Record<string, any>;
|
|
1
|
+
export declare function upgradeStoreLayout(payload: Record<string, any>): Record<string, any>;
|
|
@@ -1,60 +1,13 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
function isGoLegacyLayout(payload, pluginId) {
|
|
7
|
-
const keys = Object.keys(payload);
|
|
8
|
-
return keys.length > 0 && keys.every((key) => key.startsWith(`${pluginId}.`));
|
|
9
|
-
}
|
|
10
|
-
export function remapLegacyLayout(payload, pluginId) {
|
|
11
|
-
if (isCanonicalLayout(payload) || isGoLegacyLayout(payload, pluginId)) {
|
|
1
|
+
const LAYOUT_VERSION_KEY = '__v';
|
|
2
|
+
// v2: sensors keyed by persistent sensor id, pre-entity camera-keyed trees are unmappable
|
|
3
|
+
const LAYOUT_VERSION = 2;
|
|
4
|
+
export function upgradeStoreLayout(payload) {
|
|
5
|
+
if (payload[LAYOUT_VERSION_KEY] === LAYOUT_VERSION) {
|
|
12
6
|
return payload;
|
|
13
7
|
}
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
for (const [key, values] of Object.entries(payload)) {
|
|
21
|
-
if (CANONICAL_SECTIONS.has(key)) {
|
|
22
|
-
continue;
|
|
23
|
-
}
|
|
24
|
-
if (key === 'storage') {
|
|
25
|
-
if (canonical.plugin !== undefined) {
|
|
26
|
-
continue;
|
|
27
|
-
}
|
|
28
|
-
canonical.plugin = values;
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
const sensorIdx = key.indexOf(LEGACY_SENSOR_MARKER);
|
|
32
|
-
if (sensorIdx !== -1) {
|
|
33
|
-
// <camId>:sensor:<type>:<pluginId>:<name> — type and pluginId contain no
|
|
34
|
-
// colons; the name keeps everything after them verbatim.
|
|
35
|
-
const cameraId = key.slice(0, sensorIdx);
|
|
36
|
-
const rest = key.slice(sensorIdx + LEGACY_SENSOR_MARKER.length);
|
|
37
|
-
const typeEnd = rest.indexOf(':');
|
|
38
|
-
const pluginEnd = rest.indexOf(':', typeEnd + 1);
|
|
39
|
-
if (typeEnd !== -1 && pluginEnd !== -1) {
|
|
40
|
-
const sensorType = rest.slice(0, typeEnd);
|
|
41
|
-
const sensorName = rest.slice(pluginEnd + 1);
|
|
42
|
-
if (canonical.sensors?.[cameraId]?.[sensorType]?.[sensorName] !== undefined) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
canonical.sensors ??= {};
|
|
46
|
-
canonical.sensors[cameraId] ??= {};
|
|
47
|
-
canonical.sensors[cameraId][sensorType] ??= {};
|
|
48
|
-
canonical.sensors[cameraId][sensorType][sensorName] = values;
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (canonical.cameras?.[key] !== undefined) {
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
canonical.cameras ??= {};
|
|
56
|
-
canonical.cameras[key] = values;
|
|
57
|
-
}
|
|
58
|
-
return canonical;
|
|
8
|
+
const upgraded = { ...payload };
|
|
9
|
+
delete upgraded.sensors;
|
|
10
|
+
upgraded[LAYOUT_VERSION_KEY] = LAYOUT_VERSION;
|
|
11
|
+
return upgraded;
|
|
59
12
|
}
|
|
60
13
|
//# sourceMappingURL=layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../../src/plugins/store/layout.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../../src/plugins/store/layout.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,0FAA0F;AAC1F,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,IAAI,OAAO,CAAC,kBAAkB,CAAC,KAAK,cAAc,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAChC,OAAO,QAAQ,CAAC,OAAO,CAAC;IACxB,QAAQ,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC;IAC9C,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -5,9 +5,8 @@ export type StoreLocation = {
|
|
|
5
5
|
cameraId: string;
|
|
6
6
|
} | {
|
|
7
7
|
kind: 'sensor';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
sensorName: string;
|
|
8
|
+
pluginId: string;
|
|
9
|
+
sensorId: string;
|
|
11
10
|
};
|
|
12
11
|
export declare function readLocation(config: Record<string, any>, location: StoreLocation): Record<string, any> | undefined;
|
|
13
12
|
export declare function writeLocation(config: Record<string, any>, location: StoreLocation, values: Record<string, any>): void;
|
|
@@ -5,7 +5,7 @@ export function readLocation(config, location) {
|
|
|
5
5
|
case 'camera':
|
|
6
6
|
return config.cameras?.[location.cameraId];
|
|
7
7
|
case 'sensor':
|
|
8
|
-
return config.sensors?.[location.
|
|
8
|
+
return config.sensors?.[location.sensorId];
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
export function writeLocation(config, location, values) {
|
|
@@ -19,9 +19,7 @@ export function writeLocation(config, location, values) {
|
|
|
19
19
|
return;
|
|
20
20
|
case 'sensor':
|
|
21
21
|
config.sensors ??= {};
|
|
22
|
-
config.sensors[location.
|
|
23
|
-
config.sensors[location.cameraId][location.sensorType] ??= {};
|
|
24
|
-
config.sensors[location.cameraId][location.sensorType][location.sensorName] = values;
|
|
22
|
+
config.sensors[location.sensorId] = values;
|
|
25
23
|
return;
|
|
26
24
|
}
|
|
27
25
|
}
|
|
@@ -34,16 +32,10 @@ export function deleteLocation(config, location) {
|
|
|
34
32
|
delete config.cameras?.[location.cameraId];
|
|
35
33
|
pruneIfEmpty(config, 'cameras');
|
|
36
34
|
return;
|
|
37
|
-
case 'sensor':
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
delete byType[location.sensorName];
|
|
41
|
-
pruneIfEmpty(config.sensors[location.cameraId], location.sensorType);
|
|
42
|
-
pruneIfEmpty(config.sensors, location.cameraId);
|
|
43
|
-
pruneIfEmpty(config, 'sensors');
|
|
44
|
-
}
|
|
35
|
+
case 'sensor':
|
|
36
|
+
delete config.sensors?.[location.sensorId];
|
|
37
|
+
pruneIfEmpty(config, 'sensors');
|
|
45
38
|
return;
|
|
46
|
-
}
|
|
47
39
|
}
|
|
48
40
|
}
|
|
49
41
|
function pruneIfEmpty(parent, key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location.js","sourceRoot":"","sources":["../../../../../src/plugins/store/location.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,MAA2B,EAAE,QAAuB;IAC/E,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7C,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"location.js","sourceRoot":"","sources":["../../../../../src/plugins/store/location.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,MAA2B,EAAE,QAAuB;IAC/E,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7C,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAA2B,EAAE,QAAuB,EAAE,MAA2B;IAC7G,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACvB,OAAO;QACT,KAAK,QAAQ;YACX,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;YAC3C,OAAO;QACT,KAAK,QAAQ;YACX,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;YAC3C,OAAO;IACX,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAA2B,EAAE,QAAuB;IACjF,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,MAAM,CAAC;YACrB,OAAO;QACT,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC3C,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAChC,OAAO;QACT,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC3C,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAChC,OAAO;IACX,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAA2B,EAAE,GAAW;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;AACH,CAAC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
export declare const STORE_FILE_NAME = "store.cui";
|
|
2
2
|
export declare class PluginStoreFile {
|
|
3
3
|
private readonly volumeDir;
|
|
4
|
-
private readonly pluginId;
|
|
5
4
|
private readonly path;
|
|
6
5
|
private readonly writer;
|
|
7
6
|
private payload;
|
|
8
7
|
private closed;
|
|
9
|
-
constructor(volumeDir: string
|
|
8
|
+
constructor(volumeDir: string);
|
|
10
9
|
open(): Promise<void>;
|
|
11
10
|
get(): Record<string, any>;
|
|
12
11
|
put(payload: Record<string, any>): Promise<void>;
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import { mkdir } from 'node:fs/promises';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { CoalescingWriter } from './coalescingWriter.js';
|
|
4
|
-
import {
|
|
5
|
-
import { migrateLmdbToStoreFile } from './migrate.js';
|
|
4
|
+
import { upgradeStoreLayout } from './layout.js';
|
|
6
5
|
import { backupStoreFile, readStoreFile, removeOrphanedTmpFiles, writeStoreFile } from './storeFile.js';
|
|
7
6
|
export const STORE_FILE_NAME = 'store.cui';
|
|
8
7
|
export class PluginStoreFile {
|
|
9
8
|
volumeDir;
|
|
10
|
-
pluginId;
|
|
11
9
|
path;
|
|
12
10
|
writer;
|
|
13
11
|
payload = {};
|
|
14
12
|
closed = true;
|
|
15
|
-
constructor(volumeDir
|
|
13
|
+
constructor(volumeDir) {
|
|
16
14
|
this.volumeDir = volumeDir;
|
|
17
|
-
this.pluginId = pluginId;
|
|
18
15
|
this.path = join(volumeDir, STORE_FILE_NAME);
|
|
19
16
|
this.writer = new CoalescingWriter((snapshot) => writeStoreFile(this.path, snapshot));
|
|
20
17
|
}
|
|
@@ -23,18 +20,14 @@ export class PluginStoreFile {
|
|
|
23
20
|
await removeOrphanedTmpFiles(this.path);
|
|
24
21
|
let payload = await readStoreFile(this.path);
|
|
25
22
|
if (payload === undefined) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (payload === undefined) {
|
|
29
|
-
payload = {};
|
|
30
|
-
await writeStoreFile(this.path, payload);
|
|
31
|
-
}
|
|
23
|
+
payload = {};
|
|
24
|
+
await writeStoreFile(this.path, payload);
|
|
32
25
|
}
|
|
33
|
-
const
|
|
34
|
-
if (
|
|
35
|
-
await writeStoreFile(this.path,
|
|
26
|
+
const upgraded = upgradeStoreLayout(payload);
|
|
27
|
+
if (upgraded !== payload) {
|
|
28
|
+
await writeStoreFile(this.path, upgraded);
|
|
36
29
|
}
|
|
37
|
-
this.payload =
|
|
30
|
+
this.payload = upgraded;
|
|
38
31
|
await backupStoreFile(this.path);
|
|
39
32
|
this.closed = false;
|
|
40
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pluginStoreFile.js","sourceRoot":"","sources":["../../../../../src/plugins/store/pluginStoreFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pluginStoreFile.js","sourceRoot":"","sources":["../../../../../src/plugins/store/pluginStoreFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAExG,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAE3C,MAAM,OAAO,eAAe;IAMG;IALZ,IAAI,CAAS;IACb,MAAM,CAAmB;IAClC,OAAO,GAAwB,EAAE,CAAC;IAClC,MAAM,GAAG,IAAI,CAAC;IAEtB,YAA6B,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAEM,GAAG;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,OAA4B;QAC3C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,iEAAiE;YACjE,yCAAyC;YACzC,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -13,6 +13,7 @@ export declare class PluginWorker {
|
|
|
13
13
|
private shuttingDown;
|
|
14
14
|
private isRemote;
|
|
15
15
|
private remoteStartTimeout?;
|
|
16
|
+
private localReadyTimeout?;
|
|
16
17
|
private configStore?;
|
|
17
18
|
private opChain;
|
|
18
19
|
private channel?;
|
|
@@ -33,6 +34,7 @@ export declare class PluginWorker {
|
|
|
33
34
|
cleanup(): Promise<void>;
|
|
34
35
|
private runExclusive;
|
|
35
36
|
private doStart;
|
|
37
|
+
private armLocalReadyTimeout;
|
|
36
38
|
private openChannel;
|
|
37
39
|
private ensureConfigStore;
|
|
38
40
|
private workerManagerRef;
|