@camera.ui/server 2.1.8 → 2.1.10
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-vRjJVgl4.js → 404-BLNSh-sA.js} +1 -1
- package/dist/interface/assets/{About-CO9cx5Gp.js → About-ZakRzon7.js} +1 -1
- package/dist/interface/assets/Automation-DoVhkuVY.js +3 -0
- package/dist/interface/assets/AutomationImport-DVxK1R1y.js +2 -0
- package/dist/interface/assets/{AutomationStore-NyXuw3tI.js → AutomationStore-DaNO9_9S.js} +2 -2
- package/dist/interface/assets/{AutomationStoreDetail-Dz9Y8j8g.js → AutomationStoreDetail-CTDCEaIz.js} +2 -2
- package/dist/interface/assets/Automations-mdnUitWx.js +2 -0
- package/dist/interface/assets/Camera-B3cv5IVC.js +2 -0
- package/dist/interface/assets/Camera-LSq1bWmA.css +1 -0
- package/dist/interface/assets/{CameraConsole-S9Il0g0K.js → CameraConsole-C32X5I91.js} +2 -2
- package/dist/interface/assets/{Cameras-lDMBkoUW.js → Cameras-Drv48-Eb.js} +23 -23
- package/dist/interface/assets/Camview-Bvy39jSt.js +1 -0
- package/dist/interface/assets/{Camview-CS7PIBMz.css → Camview-Lp3QU0de.css} +1 -1
- package/dist/interface/assets/{Config-B0cy1RIU.js → Config-B-LDdaS6.js} +1 -1
- package/dist/interface/assets/ConfigActionCameraControl-As2qXvnd.js +1 -0
- package/dist/interface/assets/{ConfigActionDelay-DrzMP_7q.js → ConfigActionDelay-Cj3yWfEV.js} +1 -1
- package/dist/interface/assets/{ConfigActionHttp-BUANm5zh.js → ConfigActionHttp-PlS5vI0v.js} +1 -1
- package/dist/interface/assets/{ConfigActionImageInput-CKvnzs_4.js → ConfigActionImageInput-BHflOA-T.js} +1 -1
- package/dist/interface/assets/{ConfigActionMqtt-Cz-fMzXH.js → ConfigActionMqtt-DByOwVPe.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-exxG4m-k.js → ConfigActionNotification-D_8_lp96.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotificationControl-BMFbm9lJ.js → ConfigActionNotificationControl-ClFMom6m.js} +1 -1
- package/dist/interface/assets/{ConfigActionOutput-js-UUBci.js → ConfigActionOutput-YTAw-Are.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-B5hrC_B6.js → ConfigActionPlugin-lF2IH2Bo.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-BESCtedA.js → ConfigActionSensor-DQZW_Jxr.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-Uxz9dCqh.js → ConfigActionSnapshot-CHxIQ5J0.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-CsiC6bgF.js → ConfigActionVariable-0VLGuhwP.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-CiScJB42.js → ConfigConditionIfElse-D-Ibn8QL.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-CbDfsuOl.js → ConfigConditionSensorState-BKSGYRdv.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSwitch-B7E5DAoC.js → ConfigConditionSwitch-CzkEyWb1.js} +1 -1
- package/dist/interface/assets/{ConfigConditionTime-BmeGYmwH.js → ConfigConditionTime-BFKsDI_t.js} +1 -1
- package/dist/interface/assets/{ConfigSensorValueInput-CNTToTaw.js → ConfigSensorValueInput-yTiHhlXG.js} +1 -1
- package/dist/interface/assets/ConfigTriggerDetection-DFTgRaE0.js +1 -0
- package/dist/interface/assets/ConfigTriggerGeofence-B2Cqi5Id.js +1 -0
- package/dist/interface/assets/{ConfigTriggerManual-Z1_1wUUM.js → ConfigTriggerManual-BDK6OYxg.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerMqtt-BBvD0ow9.js → ConfigTriggerMqtt-BZO14RrW.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-B0rMjsZL.js → ConfigTriggerSchedule-sMkzMLgn.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-B1p15KGD.js → ConfigTriggerSensor-D6W_exDW.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-Du-AkCKy.js → ConfigTriggerSystem-D4cx1GqI.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-Debqt-nw.js → ConfigTriggerWebhook-DxZziGkL.js} +1 -1
- package/dist/interface/assets/Console-DjA3ZPU_.js +1 -0
- package/dist/interface/assets/CuiAutomationRunsDialog-B4ABK72A.js +1 -0
- package/dist/interface/assets/CuiBottomSheet-D1zDWsoK.js +1 -0
- package/dist/interface/assets/{CuiBottomSheet-DECWGdrp.js → CuiBottomSheet-N9MHq4yZ.js} +1 -1
- package/dist/interface/assets/CuiCameraPipCard-CnWs2fAC.js +1 -0
- package/dist/interface/assets/CuiCameraRecordings-CahW-f8_.js +1 -0
- package/dist/interface/assets/{CuiCameraShares-D32cM63m.js → CuiCameraShares-B2RdPWWh.js} +1 -1
- package/dist/interface/assets/CuiCameraTable-4ikGv8QA.js +1 -0
- package/dist/interface/assets/{CuiCameraTable-Bk9N-Oc6.js → CuiCameraTable-BKBvhRDc.js} +2 -2
- package/dist/interface/assets/CuiChartTable-CqKo74Tf.css +1 -0
- package/dist/interface/assets/CuiChartTable-Lvz9Zq0k.js +1 -0
- package/dist/interface/assets/CuiConsole-DUswVhFC.js +5 -0
- package/dist/interface/assets/CuiDataTable-CIP95jVF.js +1 -0
- package/dist/interface/assets/CuiLightControl-CvfWo8mY.js +1 -0
- package/dist/interface/assets/{CuiList-w69dERIq.js → CuiList-CajC6jpE.js} +1 -1
- package/dist/interface/assets/CuiPluginCard-CQS8C87-.js +2 -0
- package/dist/interface/assets/CuiPluginCategoryChip-DCNG8zl1.js +1 -0
- package/dist/interface/assets/{CuiPluginOAuthButton-CNxj7cuf.js → CuiPluginOAuthButton-CvZrOWr8.js} +2 -2
- package/dist/interface/assets/{CuiPluginTrustBadge-DYsEz6WI.js → CuiPluginTrustBadge-Bc1dQgX8.js} +1 -1
- package/dist/interface/assets/CuiQRCode-CjLcB644.js +1 -0
- package/dist/interface/assets/CuiRecordingsGrid-DrpErbux.js +1 -0
- package/dist/interface/assets/{CuiRecordingsGrid-Q4C3aeLo.css → CuiRecordingsGrid-EAumRo5E.css} +1 -1
- package/dist/interface/assets/CuiSchema-BYYeh269.css +1 -0
- package/dist/interface/assets/CuiSchema-DG8peseE.js +1 -0
- package/dist/interface/assets/{CuiTopNavbarItem-7yu9c68R.js → CuiTopNavbarItem-Dq3Esl1S.js} +1 -1
- package/dist/interface/assets/Faces-D0yRgOMj.js +1 -0
- package/dist/interface/assets/FirstSteps-BW8AVmd4.js +1 -0
- package/dist/interface/assets/{Instances-Bmb-yWM-.js → Instances-BgXJvs0_.js} +1 -1
- package/dist/interface/assets/{Logs-DxHqkMpx.js → Logs-DH3rWnlV.js} +2 -2
- package/dist/interface/assets/Menu-D9FVgjwT.js +1 -0
- package/dist/interface/assets/Metrics-7bYWyGWU.js +9 -0
- package/dist/interface/assets/Metrics-DX59XXDc.css +1 -0
- package/dist/interface/assets/{OAuthDeviceFlow-CLi6l8jS.js → OAuthDeviceFlow-BS0FQbZh.js} +1 -1
- package/dist/interface/assets/Plugin-ZwkTp6C4.js +1 -0
- package/dist/interface/assets/{PluginConsole-xOY_kwz_.js → PluginConsole-Dt39TWaO.js} +2 -2
- package/dist/interface/assets/PluginDetail-D7ZtOG9Y.js +2 -0
- package/dist/interface/assets/{PluginSchema-DG3ou73v.js → PluginSchema-8T7EBq-Z.js} +1 -1
- package/dist/interface/assets/PluginSearch-DN3o0wfs.js +1 -0
- package/dist/interface/assets/PluginSearch-eRDCvu_8.js +2 -0
- package/dist/interface/assets/{PluginUpdateProgress-Bx0MXwAk.js → PluginUpdateProgress-CxjpzkGa.js} +1 -1
- package/dist/interface/assets/Plugins-DVsMpyvr.js +1 -0
- package/dist/interface/assets/Recordings-BKxSEiQo.js +1 -0
- package/dist/interface/assets/Recordings-cR4_6aGN.css +1 -0
- package/dist/interface/assets/SensorEdit-BmaMQKEa.js +1 -0
- package/dist/interface/assets/{SensorHistory-CTIUwIWN.js → SensorHistory-CmOAk-tD.js} +1 -1
- package/dist/interface/assets/Sensors-x08al7Je.js +2 -0
- package/dist/interface/assets/Settings-Cp1lzG1i.js +1 -0
- package/dist/interface/assets/SettingsAccount-BwCNddkW.js +1 -0
- package/dist/interface/assets/SettingsAccount-DC9AxqHe.js +1 -0
- package/dist/interface/assets/SettingsAppearance-CMzzDZCX.js +1 -0
- package/dist/interface/assets/{SettingsAppearance-CoTdsIwM.js → SettingsAppearance-Dr8hJloI.js} +1 -1
- package/dist/interface/assets/SettingsBackup-Dc8pDM3Y.js +1 -0
- package/dist/interface/assets/{SettingsList-W5FvbkXm.js → SettingsList-3peF3gFZ.js} +1 -1
- package/dist/interface/assets/SettingsMqtt-k-cHaOoA.js +1 -0
- package/dist/interface/assets/SettingsNotifications-BJHYlSKX.js +1 -0
- package/dist/interface/assets/SettingsPermissions-CymqvfR9.js +1 -0
- package/dist/interface/assets/{SettingsRecordings-COUi9BQg.js → SettingsRecordings-gWTD_djR.js} +1 -1
- package/dist/interface/assets/SettingsRemote-BWAhI1Gw.js +2 -0
- package/dist/interface/assets/SettingsRemote-CtP6Gz9C.css +1 -0
- package/dist/interface/assets/SettingsSystem-BGBUQvjg.js +2 -0
- package/dist/interface/assets/SettingsUsers-B_Ri5OrM.js +1 -0
- package/dist/interface/assets/Terminal-eYxvgFHE.js +4 -0
- package/dist/interface/assets/Updates-CweZekTf.js +2 -0
- package/dist/interface/assets/{VariableInput-DhAhhfsm.js → VariableInput-CM6T3pUW.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-q0Jd1DVI.js → VariableSuggestions-BGxZxS6U.js} +1 -1
- package/dist/interface/assets/{VersionsHandler-XEn3uFy7.js → VersionsHandler-BWIiBPPa.js} +2 -2
- package/dist/interface/assets/{VirtualSensorCreate-_E5E0U7E.js → VirtualSensorCreate-CFQC2-9D.js} +1 -1
- package/dist/interface/assets/Workers-B-sp43t3.js +2 -0
- package/dist/interface/assets/{Workers-7hKMBU4w.css → Workers-DH59zE1C.css} +1 -1
- package/dist/interface/assets/{api-C7Yv5Scr.js → api-CG0j1twy.js} +1 -1
- package/dist/interface/assets/api-CVOj5SYs.css +2 -0
- package/dist/interface/assets/api-C_bOaXk2.js +2 -0
- package/dist/interface/assets/{auth-BixzEnBM.js → auth-BPSOBTDX.js} +1 -1
- package/dist/interface/assets/{automations-K8XPcP3U.js → automations-BrtwUIUz.js} +1 -1
- package/dist/interface/assets/brain-7IVdhMyV.js +1 -0
- package/dist/interface/assets/cameras.schema-CoIOnGzE.js +1 -0
- package/dist/interface/assets/cloudHandoff-BiFzJEYx.js +1 -0
- package/dist/interface/assets/{config-CURuT8_k.js → config-BjldP5A6.js} +1 -1
- package/dist/interface/assets/content-copy-CLkJTA4w.js +1 -0
- package/dist/interface/assets/eventLabels-BsPoPWS9.js +1 -0
- package/dist/interface/assets/{flowSchema-szT9B0sA.js → flowSchema-B_Otn6RU.js} +1 -1
- package/dist/interface/assets/{intercomService-BjB4QQiX.js → intercomService-BpTOoSQi.js} +1 -1
- package/dist/interface/assets/lan-BP0NuDr7.js +1 -0
- package/dist/interface/assets/main-BG-VCb--.js +3 -0
- package/dist/interface/assets/main-CFQGq2Yn.css +1 -0
- package/dist/interface/assets/{mqtt-uItF3Vd7.js → mqtt-DSPPQwxJ.js} +1 -1
- package/dist/interface/assets/{notifications-CuZPzI4-.js → notifications-DEEM2oP2.js} +1 -1
- package/dist/interface/assets/{plugins-QEqfAk0G.js → plugins-DBBFdZKH.js} +1 -1
- package/dist/interface/assets/refresh-Ds2EayhZ.js +1 -0
- package/dist/interface/assets/sensorIcons-CP5EQZ60.js +1 -0
- package/dist/interface/assets/{sensors-BxvL01cB.js → sensors-CKTPsYYH.js} +1 -1
- package/dist/interface/assets/{server-CDm6FwHH.js → server-B_MuqJ5z.js} +1 -1
- package/dist/interface/assets/{theme-CRw47tnu.js → theme-FztlStyg.js} +1 -1
- package/dist/interface/assets/types-BHAzjgi3.js +1 -0
- package/dist/interface/assets/types-G1_espGV.js +1 -0
- package/dist/interface/assets/{types-DtdpTPfZ.js → types-bCt9IrFD.js} +1 -1
- package/dist/interface/assets/updates-CVapvGAI.js +1 -0
- package/dist/interface/assets/{useAppVersion-BxTTVLKg.js → useAppVersion-SrF7tGCe.js} +1 -1
- package/dist/interface/assets/useBackupRestore-Tc23Huvm.js +1 -0
- package/dist/interface/assets/{useCameraOptions-DMC2KjMS.js → useCameraOptions-zsIqf0i9.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-CmyalQi8.js → useLogsSocket-DSltWBh4.js} +1 -1
- package/dist/interface/assets/{useNavLayout-BacPxpZv.js → useNavLayout-BhlxDHV7.js} +1 -1
- package/dist/interface/assets/{usePermissions-C2wQBWmH.js → usePermissions-4HqGU99G.js} +1 -1
- package/dist/interface/assets/{usePluginUpdates-CyjxFTTi.js → usePluginUpdates-CKH0Hb87.js} +1 -1
- package/dist/interface/assets/{usePushRegistration-BPSfvI_w.js → usePushRegistration-DAE3goyn.js} +1 -1
- package/dist/interface/assets/{useServerRestart-x8p2rFqn.js → useServerRestart-DoLrF47t.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-PMpl519O.js → useStreamStatus-B3QIWjDE.js} +1 -1
- package/dist/interface/assets/useTabSwipe-BYFLQ9EY.js +1 -0
- package/dist/interface/assets/{useUpdateChannel-ChscS5KW.js → useUpdateChannel-DWEw-ZyB.js} +1 -1
- package/dist/interface/assets/useUpdatesSocket-CoxkS7Hr.js +1 -0
- package/dist/interface/assets/{useUserOptions-YiEj2ox6.js → useUserOptions-DCDeuz2p.js} +1 -1
- package/dist/interface/assets/vendor-cameraui-4iwjOYwz.js +2326 -0
- package/dist/interface/assets/vendor-core-gJradu21.js +1 -0
- package/dist/interface/assets/{vendor-primevue-BDu2BpXv.js → vendor-primevue-DMAuiM9b.js} +72 -72
- package/dist/interface/index.html +32 -27
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +13 -12
- package/dist/server/requirements.txt +2 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/client.py +8 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/types.py +20 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +8 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/__init__.py +10 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +9 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +24 -10
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/enums.py +6 -7
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/notification.py +28 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +24 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +4 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +18 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/detection.py +3 -3
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/object.py +6 -1
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/spec.py +27 -3
- package/dist/server/src/api/controllers/auth.controller.js +5 -0
- package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
- package/dist/server/src/api/controllers/frameWorkers.controller.d.ts +14 -0
- package/dist/server/src/api/controllers/frameWorkers.controller.js +96 -0
- package/dist/server/src/api/controllers/frameWorkers.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 +16 -12
- package/dist/server/src/api/controllers/remote.controller.js.map +1 -1
- package/dist/server/src/api/controllers/server.controller.js +6 -2
- package/dist/server/src/api/controllers/server.controller.js.map +1 -1
- package/dist/server/src/api/controllers/updates.controller.d.ts +8 -0
- package/dist/server/src/api/controllers/updates.controller.js +40 -0
- package/dist/server/src/api/controllers/updates.controller.js.map +1 -0
- package/dist/server/src/api/controllers/workers.controller.js +8 -2
- package/dist/server/src/api/controllers/workers.controller.js.map +1 -1
- package/dist/server/src/api/database/constants.d.ts +0 -1
- package/dist/server/src/api/database/constants.js +0 -1
- package/dist/server/src/api/database/constants.js.map +1 -1
- package/dist/server/src/api/database/index.d.ts +2 -3
- package/dist/server/src/api/database/index.js +3 -6
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/database/migrations/v2-1-10.js +33 -0
- package/dist/server/src/api/database/migrations/v2-1-10.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-11.js +31 -0
- package/dist/server/src/api/database/migrations/v2-1-11.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-12.js +25 -0
- package/dist/server/src/api/database/migrations/v2-1-12.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-13.d.ts +3 -0
- package/dist/server/src/api/database/migrations/v2-1-13.js +51 -0
- package/dist/server/src/api/database/migrations/v2-1-13.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-14.d.ts +3 -0
- package/dist/server/src/api/database/migrations/v2-1-14.js +87 -0
- package/dist/server/src/api/database/migrations/v2-1-14.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-6.js.map +1 -1
- package/dist/server/src/api/database/migrations/v2-1-9.d.ts +3 -0
- package/dist/server/src/api/database/migrations/v2-1-9.js +38 -0
- package/dist/server/src/api/database/migrations/v2-1-9.js.map +1 -0
- package/dist/server/src/api/database/record-schemas.d.ts +18 -13
- 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 +3 -11
- package/dist/server/src/api/routes/frameWorkers.routes.js +22 -1
- package/dist/server/src/api/routes/frameWorkers.routes.js.map +1 -1
- package/dist/server/src/api/routes/index.js +3 -1
- package/dist/server/src/api/routes/index.js.map +1 -1
- package/dist/server/src/api/routes/updates.routes.d.ts +2 -0
- package/dist/server/src/api/routes/updates.routes.js +47 -0
- package/dist/server/src/api/routes/updates.routes.js.map +1 -0
- package/dist/server/src/api/routes/workers.routes.js +3 -2
- package/dist/server/src/api/routes/workers.routes.js.map +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +228 -79
- package/dist/server/src/api/schemas/cameras.schema.js +58 -9
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/schemas/frameWorkers.schema.d.ts +6 -0
- package/dist/server/src/api/schemas/frameWorkers.schema.js +7 -0
- package/dist/server/src/api/schemas/frameWorkers.schema.js.map +1 -1
- package/dist/server/src/api/schemas/server.schema.d.ts +1 -0
- package/dist/server/src/api/schemas/server.schema.js +4 -0
- package/dist/server/src/api/schemas/server.schema.js.map +1 -1
- package/dist/server/src/api/schemas/users.schema.d.ts +119 -84
- package/dist/server/src/api/schemas/users.schema.js +3 -0
- package/dist/server/src/api/schemas/users.schema.js.map +1 -1
- package/dist/server/src/api/schemas/workers.schema.d.ts +3 -0
- package/dist/server/src/api/schemas/workers.schema.js +5 -0
- package/dist/server/src/api/schemas/workers.schema.js.map +1 -1
- package/dist/server/src/api/services/plugins.service.d.ts +4 -1
- package/dist/server/src/api/services/plugins.service.js +23 -4
- package/dist/server/src/api/services/plugins.service.js.map +1 -1
- package/dist/server/src/api/services/server.service.d.ts +3 -1
- package/dist/server/src/api/services/server.service.js +6 -1
- package/dist/server/src/api/services/server.service.js.map +1 -1
- package/dist/server/src/api/services/updates.service.d.ts +108 -0
- package/dist/server/src/api/services/updates.service.js +476 -0
- package/dist/server/src/api/services/updates.service.js.map +1 -0
- package/dist/server/src/api/types/index.d.ts +6 -0
- package/dist/server/src/api/types/index.js.map +1 -1
- package/dist/server/src/api/websocket/index.js +2 -0
- package/dist/server/src/api/websocket/index.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/metrics.d.ts +3 -1
- package/dist/server/src/api/websocket/nsp/metrics.js +90 -37
- package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/server.js +45 -9
- package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
- package/dist/server/src/api/websocket/types.d.ts +23 -17
- package/dist/server/src/camera/controller.js +1 -0
- package/dist/server/src/camera/controller.js.map +1 -1
- package/dist/server/src/camera/decoder/audio-loop.d.ts +0 -1
- package/dist/server/src/camera/decoder/audio-loop.js +38 -68
- package/dist/server/src/camera/decoder/audio-loop.js.map +1 -1
- package/dist/server/src/camera/decoder/child.d.ts +4 -1
- package/dist/server/src/camera/decoder/child.js +27 -0
- package/dist/server/src/camera/decoder/child.js.map +1 -1
- package/dist/server/src/camera/decoder/debug/detection-record.d.ts +6 -0
- package/dist/server/src/camera/decoder/debug/detection-record.js +21 -0
- package/dist/server/src/camera/decoder/debug/detection-record.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-coordinator.d.ts +26 -3
- package/dist/server/src/camera/decoder/detection-coordinator.js +525 -207
- package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-pipeline.d.ts +4 -2
- package/dist/server/src/camera/decoder/detection-pipeline.js +17 -10
- package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-window.d.ts +17 -0
- package/dist/server/src/camera/decoder/detection-window.js +188 -0
- package/dist/server/src/camera/decoder/detection-window.js.map +1 -0
- package/dist/server/src/camera/decoder/event-manager.d.ts +1 -0
- package/dist/server/src/camera/decoder/event-manager.js +12 -0
- package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
- package/dist/server/src/camera/decoder/event-thumbnailer.d.ts +3 -3
- package/dist/server/src/camera/decoder/event-thumbnailer.js +2 -2
- package/dist/server/src/camera/decoder/event-thumbnailer.js.map +1 -1
- package/dist/server/src/camera/decoder/frame-scaler.d.ts +14 -1
- package/dist/server/src/camera/decoder/frame-scaler.js +63 -20
- package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
- package/dist/server/src/camera/decoder/motion-localizer.d.ts +16 -0
- package/dist/server/src/camera/decoder/motion-localizer.js +49 -0
- package/dist/server/src/camera/decoder/motion-localizer.js.map +1 -0
- package/dist/server/src/camera/decoder/perf-tracker.d.ts +29 -8
- package/dist/server/src/camera/decoder/perf-tracker.js +76 -50
- package/dist/server/src/camera/decoder/perf-tracker.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 +8 -6
- package/dist/server/src/camera/decoder/plugin-registry.js.map +1 -1
- package/dist/server/src/camera/decoder/secondary-stage.d.ts +4 -1
- package/dist/server/src/camera/decoder/secondary-stage.js +26 -3
- package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
- package/dist/server/src/camera/decoder/sources/analysis-source.d.ts +15 -1
- package/dist/server/src/camera/decoder/sources/audio-source.d.ts +7 -3
- package/dist/server/src/camera/decoder/sources/audio-source.js +89 -78
- package/dist/server/src/camera/decoder/sources/audio-source.js.map +1 -1
- package/dist/server/src/camera/decoder/sources/buffered-source.d.ts +27 -9
- package/dist/server/src/camera/decoder/sources/buffered-source.js +151 -65
- package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -1
- package/dist/server/src/camera/decoder/sources/frame-handle.d.ts +13 -0
- package/dist/server/src/camera/decoder/sources/frame-handle.js +106 -0
- package/dist/server/src/camera/decoder/sources/frame-handle.js.map +1 -0
- package/dist/server/src/camera/decoder/sources/frame-source.d.ts +25 -26
- package/dist/server/src/camera/decoder/sources/frame-source.js +213 -268
- package/dist/server/src/camera/decoder/sources/frame-source.js.map +1 -1
- package/dist/server/src/camera/decoder/sources/reconnect-loop.d.ts +17 -0
- package/dist/server/src/camera/decoder/sources/reconnect-loop.js +59 -0
- package/dist/server/src/camera/decoder/sources/reconnect-loop.js.map +1 -0
- package/dist/server/src/camera/decoder/sources/snapshot-fetcher.d.ts +15 -0
- package/dist/server/src/camera/decoder/sources/snapshot-fetcher.js +58 -0
- package/dist/server/src/camera/decoder/sources/snapshot-fetcher.js.map +1 -0
- package/dist/server/src/camera/decoder/sources/video-input.d.ts +18 -0
- package/dist/server/src/camera/decoder/sources/video-input.js +55 -0
- package/dist/server/src/camera/decoder/sources/video-input.js.map +1 -0
- package/dist/server/src/camera/decoder/types.d.ts +74 -18
- package/dist/server/src/camera/decoder/types.js +2 -0
- package/dist/server/src/camera/decoder/types.js.map +1 -1
- package/dist/server/src/camera/decoder/worker.d.ts +5 -1
- package/dist/server/src/camera/decoder/worker.js +35 -5
- package/dist/server/src/camera/decoder/worker.js.map +1 -1
- package/dist/server/src/camera/index.d.ts +2 -1
- package/dist/server/src/camera/index.js +3 -0
- package/dist/server/src/camera/index.js.map +1 -1
- package/dist/server/src/camera/streaming/fmp4-session.js +1 -1
- package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -1
- package/dist/server/src/camera/streaming/rtp-session.js +1 -1
- package/dist/server/src/camera/streaming/rtp-session.js.map +1 -1
- package/dist/server/src/main.js +22 -2
- package/dist/server/src/main.js.map +1 -1
- package/dist/server/src/manager/types.d.ts +1 -0
- package/dist/server/src/manager/types.js +2 -0
- package/dist/server/src/manager/types.js.map +1 -1
- package/dist/server/src/mqtt/bridge.d.ts +0 -1
- package/dist/server/src/mqtt/bridge.js +0 -33
- package/dist/server/src/mqtt/bridge.js.map +1 -1
- package/dist/server/src/mqtt/ha-discovery.js +0 -1
- package/dist/server/src/mqtt/ha-discovery.js.map +1 -1
- package/dist/server/src/plugins/index.js +0 -2
- package/dist/server/src/plugins/index.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +9 -0
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js +8 -0
- package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +14 -0
- package/dist/server/src/plugins/runtime/python/proxy/sensor.py +1 -0
- package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +13 -0
- package/dist/server/src/remote/services/cloudflare-managed.d.ts +2 -0
- package/dist/server/src/remote/services/cloudflare-managed.js +9 -2
- package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -1
- package/dist/server/src/remote/services/cloudflare.d.ts +3 -0
- package/dist/server/src/remote/services/cloudflare.js +11 -0
- package/dist/server/src/remote/services/cloudflare.js.map +1 -1
- package/dist/server/src/remote/services/index.d.ts +2 -0
- package/dist/server/src/remote/services/index.js +60 -8
- package/dist/server/src/remote/services/index.js.map +1 -1
- package/dist/server/src/remote/services/tunnelConnections.d.ts +9 -0
- package/dist/server/src/remote/services/tunnelConnections.js +45 -0
- package/dist/server/src/remote/services/tunnelConnections.js.map +1 -0
- package/dist/server/src/remote/services/urlReadiness.d.ts +2 -0
- package/dist/server/src/remote/services/urlReadiness.js +7 -4
- package/dist/server/src/remote/services/urlReadiness.js.map +1 -1
- package/dist/server/src/remote/types.d.ts +1 -2
- package/dist/server/src/rpc/interfaces/frameworker.d.ts +4 -1
- package/dist/server/src/rpc/interfaces/sensor.d.ts +1 -0
- package/dist/server/src/rpc/leafConnection.d.ts +12 -0
- package/dist/server/src/rpc/leafConnection.js +60 -0
- package/dist/server/src/rpc/leafConnection.js.map +1 -0
- package/dist/server/src/rpc/server.d.ts +2 -0
- package/dist/server/src/rpc/server.js +7 -1
- package/dist/server/src/rpc/server.js.map +1 -1
- package/dist/server/src/sensors/registry.d.ts +2 -0
- package/dist/server/src/sensors/registry.js +16 -0
- package/dist/server/src/sensors/registry.js.map +1 -1
- 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/types.d.ts +10 -1
- package/dist/server/src/utils/ipc.d.ts +9 -0
- package/dist/server/src/utils/ipc.js +31 -5
- package/dist/server/src/utils/ipc.js.map +1 -1
- package/dist/server/src/utils/plugin-registry/index.js +1 -1
- package/dist/server/src/utils/plugin-registry/index.js.map +1 -1
- package/dist/server/src/utils/system-info.d.ts +9 -0
- package/dist/server/src/utils/system-info.js +48 -0
- package/dist/server/src/utils/system-info.js.map +1 -0
- package/dist/server/src/workers/agent.d.ts +3 -0
- package/dist/server/src/workers/agent.js +36 -8
- package/dist/server/src/workers/agent.js.map +1 -1
- package/dist/server/src/workers/capabilities/frame-decoding.d.ts +2 -2
- package/dist/server/src/workers/capabilities/frame-decoding.js +5 -5
- package/dist/server/src/workers/capabilities/frame-decoding.js.map +1 -1
- package/dist/server/src/workers/capabilities/handler.d.ts +2 -2
- package/dist/server/src/workers/capabilities/plugin-host.d.ts +2 -2
- package/dist/server/src/workers/capabilities/plugin-host.js +6 -6
- package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -1
- package/dist/server/src/workers/manager.d.ts +9 -1
- package/dist/server/src/workers/manager.js +24 -0
- package/dist/server/src/workers/manager.js.map +1 -1
- package/dist/server/src/workers/types.d.ts +14 -0
- package/dist/server/src/workers/types.js.map +1 -1
- package/package.json +13 -12
- package/dist/interface/assets/Automation-DDNhcjDg.js +0 -3
- package/dist/interface/assets/AutomationImport-DAeFd-SZ.js +0 -2
- package/dist/interface/assets/Automations-BeGe7iQE.js +0 -2
- package/dist/interface/assets/Camera-C0sNg85L.js +0 -2
- package/dist/interface/assets/Camera-C5gF7yVN.css +0 -1
- package/dist/interface/assets/Camview-DzMmXQvW.js +0 -1
- package/dist/interface/assets/ConfigActionCameraControl-BMlRbdRM.js +0 -1
- package/dist/interface/assets/ConfigTriggerDetection-ijTkd_SS.js +0 -1
- package/dist/interface/assets/ConfigTriggerGeofence-Q7LQpVoM.js +0 -1
- package/dist/interface/assets/Console-Gu1eu82G.js +0 -1
- package/dist/interface/assets/CuiAutomationRunsDialog-CxcWpqrI.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-BkmkKf1u.js +0 -1
- package/dist/interface/assets/CuiCameraPipCard-CuZZZ7Cv.js +0 -1
- package/dist/interface/assets/CuiCameraRecordings-BxEA_Vhd.js +0 -1
- package/dist/interface/assets/CuiCameraTable-67Itb7my.js +0 -1
- package/dist/interface/assets/CuiConsole-De9JpSLz.js +0 -5
- package/dist/interface/assets/CuiDataTable-P8bWN0ZK.js +0 -1
- package/dist/interface/assets/CuiLightControl-D5Z1AqWH.js +0 -1
- package/dist/interface/assets/CuiPluginCard-D3x9FPb6.js +0 -2
- package/dist/interface/assets/CuiPluginCategoryChip-CQ2FJafE.js +0 -1
- package/dist/interface/assets/CuiQRCode-CZnspFFw.js +0 -1
- package/dist/interface/assets/CuiRecordingsGrid-wEaU6-3c.js +0 -1
- package/dist/interface/assets/CuiSchema--yMBD996.css +0 -1
- package/dist/interface/assets/CuiSchema-DLV1lIiB.js +0 -1
- package/dist/interface/assets/Faces-BlPQek1-.js +0 -1
- package/dist/interface/assets/FirstSteps-C-DKv_P2.js +0 -1
- package/dist/interface/assets/Menu-DceReBlq.js +0 -1
- package/dist/interface/assets/Metrics-BstlZavQ.css +0 -1
- package/dist/interface/assets/Metrics-Cw_Z_e0C.js +0 -1
- package/dist/interface/assets/Plugin-BBVxbQeT.js +0 -1
- package/dist/interface/assets/PluginDetail-D2RncxpL.js +0 -2
- package/dist/interface/assets/PluginSearch-CBhloRm6.js +0 -1
- package/dist/interface/assets/PluginSearch-RGhSeM1T.js +0 -2
- package/dist/interface/assets/Plugins-COHwVV0A.js +0 -1
- package/dist/interface/assets/Recordings-H5qOm_rD.js +0 -1
- package/dist/interface/assets/Recordings-zdTzwv7C.css +0 -1
- package/dist/interface/assets/SensorEdit-C-H_3ap8.js +0 -1
- package/dist/interface/assets/Sensors-lPcOdHJN.js +0 -2
- package/dist/interface/assets/Settings-BUoXoFiH.js +0 -1
- package/dist/interface/assets/SettingsAccount-CudWgknL.js +0 -1
- package/dist/interface/assets/SettingsAccount-DUy_W02_.js +0 -1
- package/dist/interface/assets/SettingsAppearance-eZsdWWp3.js +0 -1
- package/dist/interface/assets/SettingsBackup-ibb5I5Jv.js +0 -1
- package/dist/interface/assets/SettingsMqtt-Ct42icAW.js +0 -1
- package/dist/interface/assets/SettingsNotifications-B4lyMlLR.js +0 -1
- package/dist/interface/assets/SettingsPermissions-Bsv293ri.js +0 -1
- package/dist/interface/assets/SettingsRemote-DYld6-1F.css +0 -1
- package/dist/interface/assets/SettingsRemote-Dq_BD0fk.js +0 -1
- package/dist/interface/assets/SettingsSystem-C5xROdA0.js +0 -2
- package/dist/interface/assets/SettingsUsers-Cjk6mevW.js +0 -1
- package/dist/interface/assets/Terminal-BIdBrL4g.js +0 -4
- package/dist/interface/assets/Workers-DVABUc39.js +0 -2
- package/dist/interface/assets/api-AVHJeggR.css +0 -2
- package/dist/interface/assets/api-CmdQlVDD.js +0 -2
- package/dist/interface/assets/cameras.schema-A_6JklLs.js +0 -1
- package/dist/interface/assets/cloudHandoff-D0ytFfHK.js +0 -1
- package/dist/interface/assets/deployed-code-update-xHE-blDN.js +0 -1
- package/dist/interface/assets/main-B1ryIyTr.css +0 -1
- package/dist/interface/assets/main-BdIdmDhs.js +0 -3
- package/dist/interface/assets/round-restart-alt-B_7HR24a.js +0 -1
- package/dist/interface/assets/round-restart-alt-CmrjVFat.css +0 -1
- package/dist/interface/assets/sensorIcons-BujySw0j.js +0 -1
- package/dist/interface/assets/types-R10eIequ.js +0 -1
- package/dist/interface/assets/types-p_uC0rfp.js +0 -1
- package/dist/interface/assets/useBackupRestore-DLieDBFC.js +0 -1
- package/dist/interface/assets/vendor-cameraui-Cf0XVNQ7.js +0 -2326
- package/dist/interface/assets/vendor-core-u4xNQ-aF.js +0 -1
- package/dist/server/src/api/database/migrations/v2-0-50.js +0 -45
- package/dist/server/src/api/database/migrations/v2-0-50.js.map +0 -1
- package/dist/server/src/api/database/migrations/v2-0-51.js +0 -43
- package/dist/server/src/api/database/migrations/v2-0-51.js.map +0 -1
- package/dist/server/src/api/database/migrations/v2-1-0.js +0 -72
- package/dist/server/src/api/database/migrations/v2-1-0.js.map +0 -1
- /package/dist/server/src/api/database/migrations/{v2-0-50.d.ts → v2-1-10.d.ts} +0 -0
- /package/dist/server/src/api/database/migrations/{v2-0-51.d.ts → v2-1-11.d.ts} +0 -0
- /package/dist/server/src/api/database/migrations/{v2-1-0.d.ts → v2-1-12.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ci as e,Gr as t,Jr as n,Kr as r,Xr as i,Yr as a,Zr as o,_i as s,ai as c,bi as l,di as u,ei as d,fi as f,li as p,ti as m,wi as h,xi as g,yi as _}from"./vendor-cameraui-Cf0XVNQ7.js";import{$n as v,An as ee,En as y,Mn as te,Pn as b,Tn as ne,ar as x,bn as S,cr as C,dr as w,er as re,fr as T,gn as ie,gr as E,hn as D,hr as ae,in as O,ir as oe,jn as k,lr as se,mr as ce,nr as A,or as j,pr as le,qn as M,rr as N,ur as P,vn as F,yn as I}from"./vendor-BaiDFVEr.js";var ue=typeof window<`u`,de,L=e=>de=e,fe=Symbol();function pe(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var me=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function he(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function ge(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){ye(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function _e(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function R(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var z=typeof navigator==`object`?navigator:{userAgent:``},ve=/Macintosh/.test(z.userAgent)&&/AppleWebKit/.test(z.userAgent)&&!/Safari/.test(z.userAgent),ye=ue?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!ve?be:`msSaveOrOpenBlob`in z?xe:Se:()=>{};function be(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?R(r):_e(r.href)?ge(e,t,n):(r.target=`_blank`,R(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){R(r)},0))}function xe(e,t=`download`,n){if(typeof e==`string`)if(_e(e))ge(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){R(t)})}else navigator.msSaveOrOpenBlob(he(e,n),t)}function Se(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return ge(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(me.HTMLElement))||`safari`in me,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||ve)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:Ce}=Object;function we(){let e=v(!0),t=e.run(()=>C({})),n=[],r=[],i=oe({install(e){L(i),i._a=e,e.provide(fe,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var Te=()=>{};function Ee(e,t,n,r=Te){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&re()&&x(i),i}function B(e,...t){e.forEach(e=>{e(...t)})}var De=e=>e(),Oe=Symbol(),ke=Symbol();function Ae(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];e[n]=pe(i)&&pe(r)&&Object.hasOwn(e,n)&&!N(r)&&!A(r)?Ae(i,r):r}return e}var je=Symbol();function Me(e){return!e||typeof e!=`object`||!Object.hasOwn(e,je)}var{assign:V}=Object;function Ne(e){return!!(N(e)&&e.effect)}function Pe(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),V(ce(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=oe(O(()=>{L(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Fe(e,l,t,n,r,!0),c}function Fe(e,t,n={},r,i,a){let o,s=V({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p,m=r.state.value[e];!a&&!m&&(r.state.value[e]={});let h;function g(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:`patch function`,storeId:e,events:p}):(Ae(r.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:p});let i=h=Symbol();ne().then(()=>{h===i&&(l=!0)}),u=!0,B(d,n,r.state.value[e])}let _=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{V(e,t)})}:Te;function ee(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let y=(t,n=``)=>{if(Oe in t)return t[ke]=n,t;let i=function(){L(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}B(f,{args:n,name:i[ke],store:b,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:b,n)}catch(e){throw B(o,e),e}return l instanceof Promise?l.then(e=>(B(a,e),e)).catch(e=>(B(o,e),Promise.reject(e))):(B(a,l),l)};return i[Oe]=!0,i[ke]=n,i},te={_p:r,$id:e,$onAction:Ee.bind(null,f),$patch:g,$reset:_,$subscribe(t,n={}){if(d.has(t))return Te;let i=Ee(d,t,n.detached,()=>a()),a=o.run(()=>M(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:`direct`,events:p},r)},V({},c,n)));return i},$dispose:ee},b=j(te);r._s.set(e,b);let x=(r._a&&r._a.runWithContext||De)(()=>r._e.run(()=>(o=v()).run(()=>t({action:y}))));for(let t in x){let n=x[t];N(n)&&!Ne(n)||A(n)?a||(m&&Me(n)&&(N(n)?n.value=m[t]:((n instanceof Set||n instanceof Map)&&n.clear(),Ae(n,m[t]))),r.state.value[e][t]=n):typeof n==`function`&&(x[t]=y(n,t),s.actions[t]=n)}return V(b,x),V(T(b),x),Object.defineProperty(b,"$state",{get:()=>r.state.value[e],set:e=>{g(t=>{V(t,e)})}}),r._p.forEach(e=>{let t=o.run(()=>e({store:b,app:r._a,pinia:r,options:s}));V(b,t)}),m&&a&&n.hydrate&&n.hydrate(b.$state,m),l=!0,u=!0,b}function Ie(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=I();return n||=o?S(fe,null):null,n&&L(n),n=de,n._s.has(e)||(i?Fe(e,t,r,n):Pe(e,r,n)),n._s.get(e)}return a.$id=e,a}function Le(e){let t=T(e),n={};for(let r in t){let i=t[r];i?.effect?n[r]=O({get:()=>e[r],set(t){e[r]=t}}):(N(i)||A(i))&&(n[r]=le(e,r))}return n}function Re(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function ze(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&Re(e.default)}var H=Object.assign;function Be(e,t){let n={};for(let r in t){let i=t[r];n[r]=W(i)?i.map(e):e(i)}return n}var U=()=>{},W=Array.isArray;function Ve(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var He=Symbol(``);function G(e,t){return H(Error(),{type:e,[He]:!0},t)}function K(e,t){return e instanceof Error&&He in e&&(t==null||!!(e.type&t))}var Ue=Symbol(``),We=Symbol(``),q=Symbol(``),Ge=Symbol(``),Ke=Symbol(``);function qe(){return S(q)}function Je(e){return S(Ge)}var J=typeof document<`u`,Ye=/#/g,Xe=/&/g,Ze=/\//g,Qe=/=/g,$e=/\?/g,et=/\+/g,tt=/%5B/g,nt=/%5D/g,rt=/%5E/g,it=/%60/g,at=/%7B/g,ot=/%7C/g,st=/%7D/g,ct=/%20/g;function lt(e){return e==null?``:encodeURI(``+e).replace(ot,`|`).replace(tt,`[`).replace(nt,`]`)}function ut(e){return lt(e).replace(at,`{`).replace(st,`}`).replace(rt,`^`)}function dt(e){return lt(e).replace(et,`%2B`).replace(ct,`+`).replace(Ye,`%23`).replace(Xe,`%26`).replace(it,"`").replace(at,`{`).replace(st,`}`).replace(rt,`^`)}function ft(e){return dt(e).replace(Qe,`%3D`)}function pt(e){return lt(e).replace(Ye,`%23`).replace($e,`%3F`)}function mt(e){return pt(e).replace(Ze,`%2F`)}function Y(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var ht=/\/$/,gt=e=>e.replace(ht,``);function _t(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=wt(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Y(o)}}function vt(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function yt(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function bt(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&X(t.matched[r],n.matched[i])&&xt(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function X(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xt(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!St(e[n],t[n]))return!1;return!0}function St(e,t){return W(e)?Ct(e,t):W(t)?Ct(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function Ct(e,t){return W(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function wt(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o<r.length;o++)if(s=r[o],s!==`.`)if(s===`..`)a>1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var Z={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function Tt(e){if(!e)if(J){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),gt(e)}var Et=/^[^#]+#/;function Dt(e,t){return e.replace(Et,`#`)+t}function Ot(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var kt=()=>({left:window.scrollX,top:window.scrollY});function At(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=Ot(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function jt(e,t){return(history.state?history.state.position-t:-1)+e}var Mt=new Map;function Nt(e,t){Mt.set(e,t)}function Pt(e){let t=Mt.get(e);return Mt.delete(e),t}function Ft(e){return typeof e==`string`||e&&typeof e==`object`}function It(e){return typeof e==`string`||typeof e==`symbol`}function Lt(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;e<n.length;++e){let r=n[e].replace(et,` `),i=r.indexOf(`=`),a=Y(i<0?r:r.slice(0,i)),o=i<0?null:Y(r.slice(i+1));if(a in t){let e=t[a];W(e)||(e=t[a]=[e]),e.push(o)}else t[a]=o}return t}function Rt(e){let t=``;for(let n in e){let r=e[n];if(n=ft(n),r==null){r!==void 0&&(t+=(t.length?`&`:``)+n);continue}(W(r)?r.map(e=>e&&dt(e)):[r&&dt(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function zt(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=W(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function Q(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Bt(e,t,n){let r=e.value;if(!r)return;let i=r,a=()=>{i[t].delete(n)};te(a),ee(a),y(()=>{let r=e.value;r&&(i=r),i[t].add(n)}),i[t].add(n)}function Vt(e){Bt(S(Ue,{}),`leaveGuards`,e)}function Ht(e){Bt(S(Ue,{}),`updateGuards`,e)}function $(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(G(4,{from:n,to:t})):e instanceof Error?c(e):Ft(e)?c(G(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Ut(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(Re(s)){let c=(s.__vccOpts||s)[t];c&&a.push($(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=ze(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&$(c,n,r,o,e,i)()}))}}return a}function Wt(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o<a;o++){let a=t.matched[o];a&&(e.matched.find(e=>X(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>X(e,s))||i.push(s))}return[n,r,i]}var Gt=()=>location.protocol+`//`+location.host;function Kt(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),yt(n,``)}return yt(n,e)+r+i}function qt(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Kt(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(H({},e.state,{scroll:kt()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function Jt(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?kt():null}}function Yt(e){let{history:t,location:n}=window,r={value:Kt(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Gt()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,H({},t.state,Jt(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=H({},i.value,t.state,{forward:e,scroll:kt()});a(o.current,o,!0),a(e,H({},Jt(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Xt(e){e=Tt(e);let t=Yt(e),n=qt(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=H({location:``,base:e,go:r,createHref:Dt.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function Zt(e){return e=location.host?e||location.pathname+location.search:``,e.includes(`#`)||(e+=`#`),Xt(e)}var Qt={type:0,value:``},$t=/[a-zA-Z0-9_]/;function en(e){if(!e)return[[]];if(e===`/`)return[[Qt]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)switch(c=e[s++],n){case 0:c===`\\`?(r=n,n=4):c===`/`?(l&&d(),o()):c===`:`?(d(),n=1):f();break;case 4:f(),n=r;break;case 1:c===`(`?n=2:$t.test(c)?f():(d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case 2:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=3:u+=c;break;case 3:d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`)}return n===2&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var tn=`[^/]+?`,nn={sensitive:!1,strict:!1,start:!0,end:!0},rn=/[.+*?^${}()[\]/\\]/g;function an(e,t){let n=H({},nn,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[90];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=40+(n.sensitive?.25:0);if(o.type===0)r||(i+=`/`),i+=o.value.replace(rn,`\\$&`),s+=40;else if(o.type===1){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||tn;if(u!==tn){s+=10;try{RegExp(`(${u})`)}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=20,c&&(s+=-8),n&&(s+=-20),u===`.*`&&(s+=-50)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=.7000000000000001}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){(!r||!n.endsWith(`/`))&&(n+=`/`),r=!1;for(let e of i)if(e.type===0)n+=e.value;else if(e.type===1){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(W(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=W(c)?c.join(`/`):c;if(!l)if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`);n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function on(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===80?-1:1:e.length>t.length?t.length===1&&t[0]===80?1:-1:0}function sn(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=on(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(cn(r))return 1;if(cn(i))return-1}return i.length-r.length}function cn(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var ln={strict:!1,end:!0,sensitive:!1};function un(e,t,n){let r=H(an(en(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function dn(e,t){let n=[],r=new Map;t=Ve(ln,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=pn(e);s.aliasOf=r&&r.record;let l=Ve(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(pn(H({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=un(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!hn(d)&&o(e.name)),yn(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:U}function o(e){if(It(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=_n(e,n);n.splice(t,0,e),e.record.name&&!hn(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw G(1,{location:e});s=i.record.name,a=H(fn(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&fn(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw G(1,{location:e,currentLocation:t});s=i.record.name,a=H({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:gn(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function fn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function pn(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:mn(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function mn(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function hn(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function gn(e){return e.reduce((e,t)=>H(e,t.meta),{})}function _n(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;sn(e,t[i])<0?r=i:n=i+1}let i=vn(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function vn(e){let t=e;for(;t=t.parent;)if(yn(t)&&sn(e,t)===0)return t}function yn({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function bn(e){let t=S(q),n=S(Ge),r=O(()=>{let n=E(e.to);return t.resolve(n)}),i=O(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(X.bind(null,i));if(o>-1)return o;let s=Tn(e[t-2]);return t>1&&Tn(i)===s&&a[a.length-1].path!==s?a.findIndex(X.bind(null,e[t-2])):o}),a=O(()=>i.value>-1&&wn(n.params,r.value.params)),o=O(()=>i.value>-1&&i.value===n.matched.length-1&&xt(n.params,r.value.params));function s(n={}){if(Cn(n)){let n=t[E(e.replace)?`replace`:`push`](E(e.to)).catch(U);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:O(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function xn(e){return e.length===1?e[0]:e}var Sn=D({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:bn,setup(e,{slots:t}){let n=j(bn(e)),{options:r}=S(q),i=O(()=>({[En(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[En(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&xn(t.default(n));return e.custom?r:F(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Cn(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function wn(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!W(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Tn(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var En=(e,t,n)=>e??t??n,Dn=D({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=S(Ke),i=O(()=>e.route||r.value),a=S(We,0),o=O(()=>{let e=E(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=O(()=>i.value.matched[o.value]);b(We,O(()=>o.value+1)),b(Ue,s),b(Ke,i);let c=C();return M(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!X(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return On(n.default,{Component:l,route:r});let u=o.props[a],d=u?u===!0?r.params:typeof u==`function`?u(r):u:null,f=F(l,H({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return On(n.default,{Component:f,route:r})||f}}});function On(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var kn=Dn;function An(e){let t=dn(e.routes,e),n=e.parseQuery||Lt,r=e.stringifyQuery||Rt,i=e.history,a=Q(),o=Q(),s=Q(),c=w(Z),l=Z;J&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=Be.bind(null,e=>``+e),d=Be.bind(null,mt),f=Be.bind(null,Y);function p(e,n){let r,i;return It(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=H({},a||c.value),typeof e==`string`){let r=_t(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return H(r,o,{params:f(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=H({},e,{path:_t(n,e.path,a.path).path});else{let t=H({},e.params);for(let e in t)t[e]??delete t[e];o=H({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=vt(r,H({},e,{hash:ut(l),path:s.path})),m=i.createHref(p);return H({fullPath:p,hash:l,query:r===Rt?zt(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?_t(n,e,c.value.path):H({},e)}function ee(e,t){if(l!==e)return G(8,{from:t,to:e})}function y(e){return x(e)}function te(e){return y(H(v(e),{replace:!0}))}function b(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),H({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function x(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=b(n,i);if(u)return x(H(v(u),{state:typeof u==`object`?H({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&bt(r,i,n)&&(f=G(16,{to:d,from:i}),le(i,i,!0,!1)),(f?Promise.resolve(f):re(d,i)).catch(e=>K(e)?K(e,2)?e:j(e):ce(e,d,i)).then(e=>{if(e){if(K(e,2))return x(H({replace:s},v(e.to),{state:typeof e.to==`object`?H({},a,e.to.state):a,force:o}),t||d)}else e=ie(d,i,!0,s,a);return T(d,i,e),e})}function S(e,t){let n=ee(e,t);return n?Promise.reject(n):Promise.resolve()}function C(e){let t=P.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function re(e,t){let n,[r,i,s]=Wt(e,t);n=Ut(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push($(r,e,t))});let c=S.bind(null,e,t);return n.push(c),I(n).then(()=>{n=[];for(let r of a.list())n.push($(r,e,t));return n.push(c),I(n)}).then(()=>{n=Ut(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push($(r,e,t))});return n.push(c),I(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(W(r.beforeEnter))for(let i of r.beforeEnter)n.push($(i,e,t));else n.push($(r.beforeEnter,e,t));return n.push(c),I(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Ut(s,`beforeRouteEnter`,e,t,C),n.push(c),I(n))).then(()=>{n=[];for(let r of o.list())n.push($(r,e,t));return n.push(c),I(n)}).catch(e=>K(e,8)?e:Promise.reject(e))}function T(e,t,n){s.list().forEach(r=>C(()=>r(e,t,n)))}function ie(e,t,n,r,a){let o=ee(e,t);if(o)return o;let s=t===Z,l=J?history.state:{};n&&(r||s?i.replace(e.fullPath,H({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,le(e,t,n,s),j()}let D;function ae(){D||=i.listen((e,t,n)=>{if(!F.listening)return;let r=_(e),a=b(r,F.currentRoute.value);if(a){x(H(a,{replace:!0,force:!0}),r).catch(U);return}l=r;let o=c.value;J&&Nt(jt(o.fullPath,n.delta),kt()),re(r,o).catch(e=>K(e,12)?e:K(e,2)?(x(H(v(e.to),{force:!0}),r).then(e=>{K(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(U),Promise.reject()):(n.delta&&i.go(-n.delta,!1),ce(e,r,o))).then(e=>{e||=ie(r,o,!1),e&&(n.delta&&!K(e,8)?i.go(-n.delta,!1):n.type===`pop`&&K(e,20)&&i.go(-1,!1)),T(r,o,e)}).catch(U)})}let O=Q(),oe=Q(),k;function ce(e,t,n){j(e);let r=oe.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function A(){return k&&c.value!==Z?Promise.resolve():new Promise((e,t)=>{O.add([e,t])})}function j(e){return k||(k=!e,ae(),O.list().forEach(([t,n])=>e?n(e):t()),O.reset()),e}function le(t,n,r,i){let{scrollBehavior:a}=e;if(!J||!a)return Promise.resolve();let o=!r&&Pt(jt(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return ne().then(()=>a(t,n,o)).then(e=>t===c.value&&e&&At(e)).catch(e=>t===c.value&&ce(e,t,n))}let M=e=>i.go(e),N,P=new Set,F={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:y,replace:te,go:M,back:()=>M(-1),forward:()=>M(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:oe.add,isReady:A,install(e){e.component(`RouterLink`,Sn),e.component(`RouterView`,kn),e.config.globalProperties.$router=F,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>E(c)}),J&&!N&&c.value===Z&&(N=!0,y(i.location).catch(e=>{}));let t={};for(let e in Z)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(q,F),e.provide(Ge,se(t)),e.provide(Ke,c);let n=e.unmount;P.add(e),e.unmount=function(){P.delete(e),P.size<1&&(l=Z,D&&D(),D=null,c.value=Z,N=!1,k=!1),n()}}};function I(e){return e.reduce((e,t)=>e.then(()=>C(t)),Promise.resolve())}return F}s({mounted(e,n){let r=n.arg?.split(`,`)??!0;if(typeof n.value==`function`)t(r,n.value,{target:e});else{let[i,a]=n.value;t(r,i,{target:e,...a})}}});var jn=s({mounted(e,t){typeof t.value==`function`?r(e,t.value,{modifiers:t.modifiers}):r(e,...t.value)}});s({mounted(e,t){let[r,i]=typeof t.value==`function`?[t.value,{}]:t.value,{height:a,bottom:o,left:s,right:c,top:l,width:u,x:d,y:f}=n(e,i);M([a,o,s,c,l,u,d,f],()=>r({height:a,bottom:o,left:s,right:c,top:l,width:u,x:d,y:f}))}});var Mn=s({mounted(e,t){let n=t.value;if(typeof n==`function`)M(a(e),e=>n(e));else{let[t,r]=n;M(a(e,r),e=>t(e))}}}),Nn=_?window:void 0;_&&window.document,_&&window.navigator,_&&window.location;function Pn(e){let t=ae(e);return t?.$el??t}function Fn(){let e=w(!1),t=ie();return t&&k(()=>{e.value=!0},t),e}function In(e){let t=Fn();return O(()=>(t.value,!!e()))}function Ln(t,n,r={}){let{window:i=Nn,...a}=r,o,s=In(()=>i&&`MutationObserver`in i),c=()=>{o&&=(o.disconnect(),void 0)},u=M(O(()=>{let n=e(ae(t)).map(Pn).filter(l);return new Set(n)}),e=>{c(),s.value&&e.size&&(o=new MutationObserver(n),e.forEach(e=>o.observe(e,a)))},{immediate:!0,flush:`post`}),d=()=>o?.takeRecords(),f=()=>{u(),c()};return h(f),{isSupported:s,stop:f,takeRecords:d}}function Rn(e,t,n={}){let{window:r=Nn,...i}=n,a,o=In(()=>r&&`ResizeObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=M(O(()=>{let t=ae(e);return Array.isArray(t)?t.map(e=>Pn(e)):[Pn(t)]}),e=>{if(s(),o.value&&r){a=new ResizeObserver(t);for(let t of e)t&&a.observe(t,i)}},{immediate:!0,flush:`post`}),l=()=>{s(),c()};return h(l),{isSupported:o,stop:l}}function zn(e,t={}){let{observeMutation:n=!1,onUpdated:r,window:i=Nn}=t,a=w(!1),o=w(!1);function s(e){a.value=e.scrollWidth>e.offsetWidth,o.value=e.scrollHeight>e.offsetHeight}let c=r,l=O(()=>{let t=Pn(e);if(!(!t||t instanceof SVGElement))return t}),u=()=>{let e=l.value;return!e||e instanceof SVGElement?[]:[e,...Array.from(e.children).filter(e=>e instanceof HTMLElement)]};if(Rn(u,(e,t)=>{let n=l.value;n&&s(n),c?.(e,t)},{window:i}),n){let e=r;Ln(u,(t,n)=>{let r=l.value;r&&s(r),e?.(t,n)},{window:i,...typeof n==`object`?n:{childList:!0,subtree:!0,characterData:!0}})}return{isXOverflowed:P(a),isYOverflowed:P(o),stop,update:()=>{let e=l.value;e&&i&&s(e)}}}s({mounted(e,t){let[n,r]=typeof t.value==`function`?[t.value]:t.value,i=zn(e,r),{isXOverflowed:a,isYOverflowed:o}=i;M([a,o],()=>n(i),{immediate:!0})}}),s({mounted(e,t){let n=typeof t.value==`function`?t.value:t.value?.[0],{width:r,height:a}=i(e,...typeof t.value==`function`?[]:t.value.slice(1));M([r,a],([e,t])=>n({width:e,height:t}),{immediate:!0})}}),s({mounted(e,t){if(typeof t.value==`function`){let n=t.value;M(o(e),e=>n(e),{immediate:!0})}else{let[n,r]=t.value;if(r?.controls){let t=o(e,r);M(t.isVisible,()=>n(t),{immediate:!0})}else M(o(e,r),e=>n(e),{immediate:!0})}}}),s({mounted(e,t){typeof t.value==`function`?d(e,t.value):d(e,...t.value)}});var Bn=s({mounted(e,t){typeof t.value==`function`?m(e,t.value):m(e,...t.value)}});s({mounted(e,t){let[n,r]=typeof t.value==`function`?[t.value,{}]:t.value;M(g(j(c(e,r)),`stop`),e=>n(e))}}),s({mounted(e,t){typeof t.value==`function`?p(e,t.value):p(e,...t.value)}}),s({mounted(e,t){if(typeof t.value==`function`){let n=t.value,r=u(e,{onScroll(){n(r)},onStop(){n(r)}})}else{let[n,r]=t.value,i=u(e,{...r,onScroll(e){var t;(t=r.onScroll)==null||t.call(r,e),n(i)},onStop(e){var t;(t=r.onStop)==null||t.call(r,e),n(i)}})}}});function Vn(){let e=!1,t=w(!1);return s((n,r)=>{if(t.value=r.value,e)return;e=!0;let i=f(n,r.value);M(t,e=>i.value=e)})}Vn();export{Zt as a,Ht as c,we as d,Ie as f,An as i,Je as l,Bn as n,Xt as o,Le as p,jn as r,Vt as s,Mn as t,qe as u};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { normalizeSwitchCaseHandles } from '../../../automations/switchHandles.js';
|
|
2
|
-
const MAX_LEAD_MS = 4000;
|
|
3
|
-
const BLIND_TIME_SECONDS = 1.8;
|
|
4
|
-
function leadFramesToMs(leadFrames, fps) {
|
|
5
|
-
if (leadFrames === 0)
|
|
6
|
-
return 0;
|
|
7
|
-
return Math.min(MAX_LEAD_MS, Math.round((Math.max(leadFrames, BLIND_TIME_SECONDS * fps) / fps) * 1000));
|
|
8
|
-
}
|
|
9
|
-
async function migratePtzLead(ctx) {
|
|
10
|
-
await ctx.db.camerasDB.transaction(() => {
|
|
11
|
-
for (const { key, value: camera } of ctx.db.camerasDB.getRange()) {
|
|
12
|
-
const autotrack = camera?.ptzAutotrack;
|
|
13
|
-
if (!autotrack || typeof autotrack.leadFrames !== 'number')
|
|
14
|
-
continue;
|
|
15
|
-
// fps was a camera setting back then, v2-1-4 removed it
|
|
16
|
-
const fps = camera.frameWorkerSettings?.fps ?? 10;
|
|
17
|
-
autotrack.leadMs = leadFramesToMs(autotrack.leadFrames, fps);
|
|
18
|
-
delete autotrack.leadFrames;
|
|
19
|
-
ctx.db.camerasDB.put(key, camera);
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
async function migrateSwitchHandles(ctx) {
|
|
24
|
-
await ctx.db.automationsDB.transaction(() => {
|
|
25
|
-
for (const { key, value: flow } of ctx.db.automationsDB.getRange()) {
|
|
26
|
-
if (!flow?.nodes?.some((n) => n.type === 'condition-switch'))
|
|
27
|
-
continue;
|
|
28
|
-
const result = normalizeSwitchCaseHandles(flow);
|
|
29
|
-
if (!result.changed)
|
|
30
|
-
continue;
|
|
31
|
-
flow.updatedAt = Date.now();
|
|
32
|
-
ctx.db.automationsDB.put(key, flow);
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
const migration = {
|
|
37
|
-
version: '2.0.50',
|
|
38
|
-
description: 'ptz autotrack leadFrames to leadMs, switch conditions route by case handle',
|
|
39
|
-
async up(ctx) {
|
|
40
|
-
await migratePtzLead(ctx);
|
|
41
|
-
await migrateSwitchHandles(ctx);
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
export default migration;
|
|
45
|
-
//# sourceMappingURL=v2-0-50.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v2-0-50.js","sourceRoot":"","sources":["../../../../../../src/api/database/migrations/v2-0-50.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAInF,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,SAAS,cAAc,CAAC,UAAkB,EAAE,GAAW;IACrD,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC1G,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAqB;IACjD,MAAM,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE;QACtC,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;YACjE,MAAM,SAAS,GAAG,MAAM,EAAE,YAA8D,CAAC;YACzF,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ;gBAAE,SAAS;YAErE,wDAAwD;YACxD,MAAM,GAAG,GAAI,MAAM,CAAC,mBAAoD,EAAE,GAAG,IAAI,EAAE,CAAC;YACpF,SAAS,CAAC,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC7D,OAAO,SAAS,CAAC,UAAU,CAAC;YAE5B,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,GAAqB;IACvD,MAAM,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,EAAE;QAC1C,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC;gBAAE,SAAS;YAEvE,MAAM,MAAM,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,SAAS;YAE9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,SAAS,GAAc;IAC3B,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,4EAA4E;IACzF,KAAK,CAAC,EAAE,CAAC,GAAG;QACV,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;CACF,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
2
|
-
import { STORE_FILE_NAME } from '../../../plugins/store/pluginStoreFile.js';
|
|
3
|
-
import { readStoreFile } from '../../../plugins/store/storeFile.js';
|
|
4
|
-
import { DEFAULT_RECORDING_SETTINGS } from '../../schemas/cameras.schema.js';
|
|
5
|
-
const NVR_PLUGIN_NAME = '@camera.ui/camera-ui-nvr';
|
|
6
|
-
const RECORDING_MODES = new Set(['continuous', 'event', 'adhoc']);
|
|
7
|
-
const RECORDING_SOURCES = new Set(['high', 'mid', 'low']);
|
|
8
|
-
function toRecordingSettings(nvr) {
|
|
9
|
-
const sources = Array.isArray(nvr.recordedSources) ? nvr.recordedSources.filter((s) => RECORDING_SOURCES.has(s)) : [];
|
|
10
|
-
return {
|
|
11
|
-
enabled: typeof nvr.recordingEnabled === 'boolean' ? nvr.recordingEnabled : DEFAULT_RECORDING_SETTINGS.enabled,
|
|
12
|
-
mode: typeof nvr.recordingMode === 'string' && RECORDING_MODES.has(nvr.recordingMode) ? nvr.recordingMode : DEFAULT_RECORDING_SETTINGS.mode,
|
|
13
|
-
preBuffer: typeof nvr.preBuffer === 'number' ? Math.min(60, Math.max(0, nvr.preBuffer)) : DEFAULT_RECORDING_SETTINGS.preBuffer,
|
|
14
|
-
sources: sources.length ? sources : [...DEFAULT_RECORDING_SETTINGS.sources],
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
async function migrateRecordingSettings(ctx) {
|
|
18
|
-
const storePath = join(ctx.configService.PLUGINS_STORAGE_PATH, NVR_PLUGIN_NAME, 'volume', STORE_FILE_NAME);
|
|
19
|
-
let nvrCameras = {};
|
|
20
|
-
try {
|
|
21
|
-
nvrCameras = (await readStoreFile(storePath))?.cameras ?? {};
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
// unreadable or missing store, cameras fall back to defaults
|
|
25
|
-
}
|
|
26
|
-
await ctx.db.camerasDB.transaction(() => {
|
|
27
|
-
for (const { key, value: camera } of ctx.db.camerasDB.getRange()) {
|
|
28
|
-
if (camera.recordingSettings)
|
|
29
|
-
continue;
|
|
30
|
-
camera.recordingSettings = toRecordingSettings(nvrCameras[camera._id] ?? {});
|
|
31
|
-
ctx.db.camerasDB.put(key, camera);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
const migration = {
|
|
36
|
-
version: '2.0.51',
|
|
37
|
-
description: 'recording settings move from NVR plugin storage to the camera record',
|
|
38
|
-
async up(ctx) {
|
|
39
|
-
await migrateRecordingSettings(ctx);
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
export default migration;
|
|
43
|
-
//# sourceMappingURL=v2-0-51.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v2-0-51.js","sourceRoot":"","sources":["../../../../../../src/api/database/migrations/v2-0-51.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { VIRTUAL_SENSOR_OWNER_ID, VIRTUAL_SENSOR_OWNER_NAME } from '../../../sensors/types.js';
|
|
2
|
-
const migration = {
|
|
3
|
-
version: '2.1.0',
|
|
4
|
-
description: 'standalone sensor entities: migrate virtual sensors, reset camera-scoped sensor references',
|
|
5
|
-
async up(ctx) {
|
|
6
|
-
const { db, logger } = ctx;
|
|
7
|
-
// virtual sensors -> DBSensor
|
|
8
|
-
let migratedVirtual = 0;
|
|
9
|
-
for (const { value } of db.virtualSensorsDB.getRange()) {
|
|
10
|
-
const old = value;
|
|
11
|
-
const record = {
|
|
12
|
-
_id: old._id,
|
|
13
|
-
pluginInfo: { id: VIRTUAL_SENSOR_OWNER_ID, name: VIRTUAL_SENSOR_OWNER_NAME },
|
|
14
|
-
type: old.type,
|
|
15
|
-
name: old.name,
|
|
16
|
-
displayName: old.displayName,
|
|
17
|
-
assignedCameraIds: old.cameraId ? [old.cameraId] : [],
|
|
18
|
-
exposed: true,
|
|
19
|
-
state: old.state ?? {},
|
|
20
|
-
createdAt: old.createdAt,
|
|
21
|
-
updatedAt: Date.now(),
|
|
22
|
-
};
|
|
23
|
-
await db.sensorsDB.put(record._id, record);
|
|
24
|
-
await db.virtualSensorsDB.remove(old._id);
|
|
25
|
-
migratedVirtual++;
|
|
26
|
-
}
|
|
27
|
-
if (migratedVirtual > 0)
|
|
28
|
-
logger.log(`Migrated ${migratedVirtual} virtual sensors to standalone entities`);
|
|
29
|
-
// cameras: old cascade trigger triples cannot be mapped to sensor ids
|
|
30
|
-
for (const { key, value } of db.camerasDB.getRange()) {
|
|
31
|
-
const camera = value;
|
|
32
|
-
const triggers = camera.detectionSettings?.sensor?.triggers;
|
|
33
|
-
if (triggers?.length && triggers.some((t) => typeof t !== 'string')) {
|
|
34
|
-
camera.detectionSettings.sensor.triggers = [];
|
|
35
|
-
await db.camerasDB.put(String(key), camera);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
// automation flows with sensor nodes: disable, user re-picks the sensor
|
|
39
|
-
for (const { key, value } of db.automationsDB.getRange()) {
|
|
40
|
-
const flow = value;
|
|
41
|
-
const hasSensorNode = flow.nodes.some((node) => typeof node.data?.sensorName === 'string' && typeof node.data?.sensorPluginId === 'string');
|
|
42
|
-
if (!hasSensorNode)
|
|
43
|
-
continue;
|
|
44
|
-
flow.enabled = false;
|
|
45
|
-
flow.requiresUpdate = true;
|
|
46
|
-
flow.updatedAt = Date.now();
|
|
47
|
-
await db.automationsDB.put(String(key), flow);
|
|
48
|
-
logger.log(`Automation "${flow.name}" disabled: sensor references need to be re-selected`);
|
|
49
|
-
}
|
|
50
|
-
// user preferences: sensor shortcuts reference the old composite key
|
|
51
|
-
for (const { key, value } of db.usersDB.getRange()) {
|
|
52
|
-
const user = value;
|
|
53
|
-
const cameras = user.preferences?.cameras;
|
|
54
|
-
if (!cameras)
|
|
55
|
-
continue;
|
|
56
|
-
let changed = false;
|
|
57
|
-
for (const pref of Object.values(cameras)) {
|
|
58
|
-
if (!pref?.shortcuts?.length)
|
|
59
|
-
continue;
|
|
60
|
-
const filtered = pref.shortcuts.filter((shortcut) => shortcut.type !== 'sensor');
|
|
61
|
-
if (filtered.length !== pref.shortcuts.length) {
|
|
62
|
-
pref.shortcuts = filtered;
|
|
63
|
-
changed = true;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (changed)
|
|
67
|
-
await db.usersDB.put(String(key), user);
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
};
|
|
71
|
-
export default migration;
|
|
72
|
-
//# sourceMappingURL=v2-1-0.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v2-1-0.js","sourceRoot":"","sources":["../../../../../../src/api/database/migrations/v2-1-0.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|