@camera.ui/server 2.0.23 → 2.1.0
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 → 404-mKz7xfYl.js} +1 -1
- package/dist/interface/assets/{About-Dwc0TTLa.js → About-C3mKJiWW.js} +1 -1
- package/dist/interface/assets/Adminpanel-KkWHp8Mh.js +1 -0
- package/dist/interface/assets/{Automation-Dj6xmGae.js → Automation-BdSjkwoL.js} +3 -3
- package/dist/interface/assets/{AutomationImport-Ccnxyslc.js → AutomationImport-DEp2P3xa.js} +2 -2
- package/dist/interface/assets/AutomationStore-4NQAyOXd.js +2 -0
- package/dist/interface/assets/{AutomationStoreDetail-DcbvD8g5.js → AutomationStoreDetail-D8NZLRu9.js} +2 -2
- package/dist/interface/assets/Automations-D7kh-T-O.js +2 -0
- package/dist/interface/assets/{Camera-D_j0J3kB.js → Camera-DsvE1bWd.js} +2 -2
- package/dist/interface/assets/{CameraConsole--hGg9Ye6.js → CameraConsole-Bj9mszzp.js} +1 -1
- package/dist/interface/assets/{Cameras-B2Tizr4Q.js → Cameras-BVFxn9Ef.js} +2 -2
- package/dist/interface/assets/Camview-BXDwJtBf.js +1 -0
- package/dist/interface/assets/{Camview-Cj10uxGy.css → Camview-DEURwPYt.css} +1 -1
- package/dist/interface/assets/{Config-Dn_s2M7r.js → Config-CJgmsr2e.js} +1 -1
- package/dist/interface/assets/{ConfigActionCameraControl-DQEYHVN5.js → ConfigActionCameraControl-B80iDDds.js} +1 -1
- package/dist/interface/assets/{ConfigActionDelay-C0mbjCCj.js → ConfigActionDelay-ChhenlQV.js} +1 -1
- package/dist/interface/assets/{ConfigActionHttp-Bf58WHcw.js → ConfigActionHttp-09PkDYgp.js} +1 -1
- package/dist/interface/assets/{ConfigActionImageInput-CDXVFrOz.js → ConfigActionImageInput-FDMVc5FH.js} +1 -1
- package/dist/interface/assets/{ConfigActionMqtt-lH7MQqWr.js → ConfigActionMqtt-4gLcAM0C.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-CAkr6NJX.js → ConfigActionNotification-DmIQhrC2.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotificationControl-CiL-4Ytw.js → ConfigActionNotificationControl-Df4BdM3c.js} +1 -1
- package/dist/interface/assets/{ConfigActionOutput-ILAxBT-r.js → ConfigActionOutput-CNKeWFvE.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-B2d4mZiK.js → ConfigActionPlugin-CWfEabyz.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-BxMdsmRa.js → ConfigActionSensor-pv3k-l2v.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-CXVQBSzv.js → ConfigActionSnapshot-CM8xar0h.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-CABnlnMv.js → ConfigActionVariable-B8tiVULt.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-Cxu7TSdJ.js → ConfigConditionIfElse-CtF5exKE.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-rB7I04Gb.js → ConfigConditionSensorState-B4hRgQdg.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSwitch-CU0hLo1h.js → ConfigConditionSwitch-ZhpDw8ZY.js} +1 -1
- package/dist/interface/assets/{ConfigConditionTime-DfeEvxIU.js → ConfigConditionTime-EF84vg1f.js} +1 -1
- package/dist/interface/assets/ConfigSensorValueInput-DNxw4rt3.js +1 -0
- package/dist/interface/assets/{ConfigTriggerDetection-DFJpuWrs.js → ConfigTriggerDetection-BmxUG87T.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerGeofence-CZwesOD8.js → ConfigTriggerGeofence-CDbA6_Wv.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerManual-aibwYUtf.js → ConfigTriggerManual-t-J-HbqF.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerMqtt-CUNgifGb.js → ConfigTriggerMqtt-BD1iizF-.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-8Y_OBcB1.js → ConfigTriggerSchedule-CBPaopJK.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-Bu-YtGnX.js → ConfigTriggerSensor-CXmxhiPM.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-CXNvmC4S.js → ConfigTriggerSystem-CfFnKyIn.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-CkZ-_ABi.js → ConfigTriggerWebhook-gqcxnQdl.js} +1 -1
- package/dist/interface/assets/Console-CPcfNsup.js +1 -0
- package/dist/interface/assets/{CuiAutomationRunsDialog-Ux0g-E3w.js → CuiAutomationRunsDialog-Bx3LtjMJ.js} +1 -1
- package/dist/interface/assets/{CuiBottomSheet-C-ZN_uXE.js → CuiBottomSheet-BcDAO9At.js} +1 -1
- package/dist/interface/assets/CuiBottomSheet-Qt8m2uSx.js +1 -0
- package/dist/interface/assets/{CuiCameraPipCard-B-B6Ppsd.js → CuiCameraPipCard-C7822oZM.js} +1 -1
- package/dist/interface/assets/{CuiCameraRecordings-DqVdR9uS.js → CuiCameraRecordings-DJG6J1nY.js} +1 -1
- package/dist/interface/assets/{CuiCameraShares-DstoVjf9.js → CuiCameraShares-C3SATbiV.js} +1 -1
- package/dist/interface/assets/CuiCameraTable-BdXITi6O.js +2 -0
- package/dist/interface/assets/CuiDataTable-BGleWv6B.css +1 -0
- package/dist/interface/assets/CuiDataTable-DdNoneMB.js +1 -0
- package/dist/interface/assets/{CuiLightControl-B_JIzm9t.js → CuiLightControl-bH7WQXAY.js} +1 -1
- package/dist/interface/assets/CuiPluginCard-B50TjvIq.js +2 -0
- package/dist/interface/assets/{CuiPluginCard-C9zsmIaC.css → CuiPluginCard-D_6UFFZW.css} +1 -1
- package/dist/interface/assets/{CuiPluginCategoryChip-C2Y8x73q.js → CuiPluginCategoryChip-C9l5I9v3.js} +1 -1
- package/dist/interface/assets/{CuiPluginOAuthButton-CCzRlZP6.js → CuiPluginOAuthButton-Aanenlqx.js} +2 -2
- package/dist/interface/assets/{CuiPluginTrustBadge-C8qBdLCg.js → CuiPluginTrustBadge-BkdNlrZ7.js} +1 -1
- package/dist/interface/assets/{CuiQRCode-D52Fcu61.js → CuiQRCode-D8CKX4s9.js} +1 -1
- package/dist/interface/assets/{CuiRecordingsGrid-CfuihmlY.js → CuiRecordingsGrid-D9IF3B-S.js} +1 -1
- package/dist/interface/assets/{CuiSchema-DTIuxROi.js → CuiSchema-B8J8G314.js} +1 -1
- package/dist/interface/assets/{CuiTopNavbarItem-CoTQmfY7.js → CuiTopNavbarItem-C-ZiLXkp.js} +1 -1
- package/dist/interface/assets/{Faces-EtBPS1Ve.js → Faces-B8d8W6cq.js} +1 -1
- package/dist/interface/assets/{FirstSteps-CC0BPH40.js → FirstSteps-DWB8ZhqT.js} +1 -1
- package/dist/interface/assets/{Instances-dSYERqIc.js → Instances-DCE3ixbf.js} +1 -1
- package/dist/interface/assets/{Logs-B8d6dEt7.js → Logs-DJL3FHsG.js} +2 -2
- package/dist/interface/assets/Menu-CvpQ9fHV.js +1 -0
- package/dist/interface/assets/{OAuthDeviceFlow-YhwV_FSL.js → OAuthDeviceFlow-9kYvqgyg.js} +1 -1
- package/dist/interface/assets/{Plugin-Brb6wfq-.js → Plugin-HIED8ziU.js} +1 -1
- package/dist/interface/assets/{PluginConsole-CfyZQVq5.js → PluginConsole-DUnPciNz.js} +1 -1
- package/dist/interface/assets/{PluginDetail-DVRnnauk.js → PluginDetail-Ba9VDO53.js} +2 -2
- package/dist/interface/assets/{PluginSchema-i6UJfMnh.js → PluginSchema-CQARvB5H.js} +1 -1
- package/dist/interface/assets/PluginSearch-B3y83uDW.js +2 -0
- package/dist/interface/assets/PluginSearch-BKVIwJVF.js +1 -0
- package/dist/interface/assets/{PluginSearch-Bbp8D7BJ.css → PluginSearch-CLjLT9JT.css} +1 -1
- package/dist/interface/assets/{Plugins-CukJohcb.js → Plugins-mdsFKDQ8.js} +1 -1
- package/dist/interface/assets/Recordings-GVzdhE19.js +1 -0
- package/dist/interface/assets/{SensorEdit-BJAijbmc.js → SensorEdit-COOOaB-l.js} +1 -1
- package/dist/interface/assets/{SensorHistory-DW00ZuHR.js → SensorHistory-oWCb8Kia.js} +1 -1
- package/dist/interface/assets/Sensors-De6n66ER.js +2 -0
- package/dist/interface/assets/Sensors-DfE07b1Q.css +1 -0
- package/dist/interface/assets/{Settings-DHT8KXi2.js → Settings-BipPaBUB.js} +1 -1
- package/dist/interface/assets/{SettingsAccount-DOd4JeGd.js → SettingsAccount-809sRaa9.js} +1 -1
- package/dist/interface/assets/SettingsAccount-Bmteep-6.js +1 -0
- package/dist/interface/assets/SettingsAppearance-CJWlk9_1.js +1 -0
- package/dist/interface/assets/{SettingsAppearance-11UFhRDY.js → SettingsAppearance-Cobtww9z.js} +1 -1
- package/dist/interface/assets/{SettingsBackup-CBBZV_nU.js → SettingsBackup-Bbp3fEuS.js} +1 -1
- package/dist/interface/assets/SettingsList-DFJifGkE.js +1 -0
- package/dist/interface/assets/{SettingsMqtt-BglQ_GeN.js → SettingsMqtt-pH6KmHhv.js} +1 -1
- package/dist/interface/assets/{SettingsNotifications-96czeGDD.js → SettingsNotifications-Dt_gxxoj.js} +1 -1
- package/dist/interface/assets/{SettingsPermissions-CU4OVllA.js → SettingsPermissions-CDpVmRY2.js} +1 -1
- package/dist/interface/assets/{SettingsRecordings-BrnU9hrb.js → SettingsRecordings-1i4sNZ8u.js} +1 -1
- package/dist/interface/assets/SettingsRemote-HDCH_D5s.js +1 -0
- package/dist/interface/assets/SettingsSystem-jDQ9m8jt.js +2 -0
- package/dist/interface/assets/{SettingsUsers-CoYyAxxn.js → SettingsUsers-CFzURSfg.js} +1 -1
- package/dist/interface/assets/{Terminal-DMAHgufw.js → Terminal-DSRLOAKR.js} +1 -1
- package/dist/interface/assets/{VariableInput-BzWLKBgd.js → VariableInput-rbKenccv.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-BdxcP_dn.js → VariableSuggestions-DDyxhww6.js} +1 -1
- package/dist/interface/assets/{VersionsHandler-Dvy5Lv-E.js → VersionsHandler-CBAnjOWO.js} +2 -2
- package/dist/interface/assets/{VirtualSensorCreate-BXz0lWNm.js → VirtualSensorCreate-_9QdFeEj.js} +1 -1
- package/dist/interface/assets/Workers-DQZ0QoEN.js +2 -0
- package/dist/interface/assets/{Workers-CzAz4N2_.css → Workers-DmZkFylb.css} +1 -1
- package/dist/interface/assets/{api-DmxTF6VE.js → api-BijLH5JF.js} +1 -1
- package/dist/interface/assets/api-CwjboJ6S.css +2 -0
- package/dist/interface/assets/api-DpZpuR8_.js +2 -0
- package/dist/interface/assets/{auth-DwSrX8QL.js → auth-CSrkzvBq.js} +1 -1
- package/dist/interface/assets/{automations-yVPQAmFo.js → automations-5YkU18M0.js} +1 -1
- package/dist/interface/assets/{cameras.schema-JAiaenSf.js → cameras.schema-BQ3CdtV5.js} +1 -1
- package/dist/interface/assets/chevron-right-B3j6hI1Q.js +1 -0
- package/dist/interface/assets/cloudHandoff-D8flqTzb.js +1 -0
- package/dist/interface/assets/{config-BE0DnCXx.js → config-BqiDMRVk.js} +1 -1
- package/dist/interface/assets/deployed-code-update-CHr3gyW9.js +1 -0
- package/dist/interface/assets/{flowSchema-BQp77LdP.js → flowSchema-C6FlHoK2.js} +1 -1
- package/dist/interface/assets/main-Csclhnoq.js +3 -0
- package/dist/interface/assets/{mqtt-D_shY0Ks.js → mqtt-DklPP2x5.js} +1 -1
- package/dist/interface/assets/{notifications-BuSNpaOJ.js → notifications-DCAiomoR.js} +1 -1
- package/dist/interface/assets/{plugins-7pWXkYgo.js → plugins-D4am8tba.js} +1 -1
- package/dist/interface/assets/round-restart-alt-CdweDM5-.js +1 -0
- package/dist/interface/assets/round-restart-alt-D3sTGG7n.css +1 -0
- package/dist/interface/assets/sensors-D1OCrbIC.js +1 -0
- package/dist/interface/assets/{server-Bv5NVJ0G.js → server-CUfmbg3m.js} +1 -1
- package/dist/interface/assets/{theme-DsxRUmCC.js → theme-ClwavgWz.js} +1 -1
- package/dist/interface/assets/{types-BazOcNe_.js → types-B25Yynej.js} +1 -1
- package/dist/interface/assets/types-D9YcubIy.js +1 -0
- package/dist/interface/assets/{useAppVersion-oPpW7jcN.js → useAppVersion-Cp7Ehmiv.js} +1 -1
- package/dist/interface/assets/{useBackupRestore-b0Niqql7.js → useBackupRestore-CL04IH-G.js} +1 -1
- package/dist/interface/assets/{useCameraOptions-uf9Kog6z.js → useCameraOptions-DFe9A6XU.js} +1 -1
- package/dist/interface/assets/{useElectron-Dg8tFzam.js → useElectron-KnqvZz0q.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-9jJ-oJIm.js → useLogsSocket-BxI3NbRJ.js} +1 -1
- package/dist/interface/assets/{usePermissions-xL0VlbyD.js → usePermissions-C3D3JcPH.js} +1 -1
- package/dist/interface/assets/{useServerRestart-3AZOTz7i.js → useServerRestart-Ck0mdqmf.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-Dg-Djura.js → useStreamStatus-C4AA8JUq.js} +1 -1
- package/dist/interface/assets/{useUserOptions-BQnM3gdi.js → useUserOptions-BpEZlRAL.js} +1 -1
- package/dist/interface/assets/{vendor-cameraui-BqkrW4Bb.js → vendor-cameraui-Cgb5z6NJ.js} +1 -1
- package/dist/interface/assets/{vendor-core-BQegq2Q6.js → vendor-core-BJsSXMFQ.js} +1 -1
- package/dist/interface/assets/{vendor-primevue-DYzLjOFZ.js → vendor-primevue-JQ8abUl5.js} +2 -2
- package/dist/interface/index.html +23 -22
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +3 -3
- package/dist/server/requirements.txt +2 -2
- 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 +3 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +14 -28
- package/dist/server/src/api/controllers/cameras.controller.d.ts +1 -10
- package/dist/server/src/api/controllers/cameras.controller.js +0 -99
- package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
- package/dist/server/src/api/controllers/plugins.controller.js +30 -4
- package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
- package/dist/server/src/api/controllers/workers.controller.d.ts +2 -1
- package/dist/server/src/api/controllers/workers.controller.js +9 -0
- package/dist/server/src/api/controllers/workers.controller.js.map +1 -1
- package/dist/server/src/api/database/index.d.ts +0 -1
- package/dist/server/src/api/database/index.js +1 -1
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/database/record-schemas.js +1 -1
- package/dist/server/src/api/database/record-schemas.js.map +1 -1
- package/dist/server/src/api/database/types.d.ts +0 -1
- package/dist/server/src/api/index.js +1 -1
- package/dist/server/src/api/routes/cameras.routes.js +1 -42
- package/dist/server/src/api/routes/cameras.routes.js.map +1 -1
- package/dist/server/src/api/routes/workers.routes.js +11 -0
- package/dist/server/src/api/routes/workers.routes.js.map +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +32 -18
- package/dist/server/src/api/schemas/cameras.schema.js +4 -11
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/services/cameras.service.d.ts +1 -0
- package/dist/server/src/api/services/cameras.service.js +23 -0
- package/dist/server/src/api/services/cameras.service.js.map +1 -1
- package/dist/server/src/api/services/plugins.service.d.ts +1 -0
- package/dist/server/src/api/services/plugins.service.js +18 -0
- package/dist/server/src/api/services/plugins.service.js.map +1 -1
- package/dist/server/src/api/services/sensors.service.d.ts +1 -0
- package/dist/server/src/api/services/sensors.service.js +1 -0
- package/dist/server/src/api/services/sensors.service.js.map +1 -1
- package/dist/server/src/api/services/server.service.d.ts +2 -0
- package/dist/server/src/api/services/server.service.js +16 -2
- package/dist/server/src/api/services/server.service.js.map +1 -1
- package/dist/server/src/api/types/index.d.ts +33 -15
- package/dist/server/src/api/websocket/nsp/events.js +0 -3
- package/dist/server/src/api/websocket/nsp/events.js.map +1 -1
- package/dist/server/src/camera/controller.d.ts +0 -3
- package/dist/server/src/camera/controller.js +0 -18
- package/dist/server/src/camera/controller.js.map +1 -1
- package/dist/server/src/camera/decoder/worker.js +2 -2
- package/dist/server/src/camera/decoder/worker.js.map +1 -1
- package/dist/server/src/camera/sensors/controller.d.ts +1 -10
- package/dist/server/src/camera/sensors/controller.js +2 -59
- package/dist/server/src/camera/sensors/controller.js.map +1 -1
- package/dist/server/src/main.js +2 -97
- 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 -5
- package/dist/server/src/mqtt/bridge.js +2 -5
- package/dist/server/src/mqtt/bridge.js.map +1 -1
- package/dist/server/src/plugins/plugin.js +3 -1
- package/dist/server/src/plugins/plugin.js.map +1 -1
- package/dist/server/src/plugins/runtime/base.d.ts +1 -0
- package/dist/server/src/plugins/runtime/base.js +19 -0
- package/dist/server/src/plugins/runtime/base.js.map +1 -1
- package/dist/server/src/plugins/runtime/go/index.js +1 -1
- package/dist/server/src/plugins/runtime/go/index.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/child.d.ts +1 -0
- package/dist/server/src/plugins/runtime/node/child.js +5 -2
- package/dist/server/src/plugins/runtime/node/child.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/index.d.ts +0 -1
- package/dist/server/src/plugins/runtime/node/index.js +1 -20
- package/dist/server/src/plugins/runtime/node/index.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +0 -5
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js +7 -5
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js +0 -5
- package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/storage.js +8 -5
- package/dist/server/src/plugins/runtime/node/storage.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/storageController.d.ts +1 -3
- package/dist/server/src/plugins/runtime/node/storageController.js +7 -24
- package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/child.py +62 -5
- package/dist/server/src/plugins/runtime/python/index.js +3 -0
- package/dist/server/src/plugins/runtime/python/index.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +0 -7
- package/dist/server/src/plugins/runtime/python/proxy/device_manager.py +8 -5
- package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +0 -7
- package/dist/server/src/plugins/runtime/python/storage.py +11 -6
- package/dist/server/src/plugins/runtime/python/storage_controller.py +6 -37
- package/dist/server/src/plugins/types.d.ts +3 -1
- package/dist/server/src/plugins/types.js +2 -0
- package/dist/server/src/plugins/types.js.map +1 -1
- package/dist/server/src/plugins/worker.d.ts +1 -0
- package/dist/server/src/plugins/worker.js +42 -3
- package/dist/server/src/plugins/worker.js.map +1 -1
- package/dist/server/src/rpc/interfaces/device.d.ts +0 -3
- package/dist/server/src/rpc/namespaces.d.ts +0 -7
- package/dist/server/src/rpc/namespaces.js +0 -7
- package/dist/server/src/rpc/namespaces.js.map +1 -1
- package/dist/server/src/rpc/server.js +10 -13
- package/dist/server/src/rpc/server.js.map +1 -1
- package/dist/server/src/sensors/registry.js +7 -1
- package/dist/server/src/sensors/registry.js.map +1 -1
- package/dist/server/src/utils/engines.d.ts +3 -1
- package/dist/server/src/utils/engines.js +11 -0
- package/dist/server/src/utils/engines.js.map +1 -1
- package/dist/server/src/utils/ipc.d.ts +2 -0
- package/dist/server/src/utils/ipc.js +104 -0
- package/dist/server/src/utils/ipc.js.map +1 -1
- package/dist/server/src/utils/npm/index.d.ts +6 -1
- package/dist/server/src/utils/npm/index.js +3 -0
- package/dist/server/src/utils/npm/index.js.map +1 -1
- package/dist/server/src/utils/plugin-registry/index.d.ts +1 -0
- package/dist/server/src/utils/plugin-registry/index.js.map +1 -1
- package/dist/server/src/utils/pythonInstaller.d.ts +1 -0
- package/dist/server/src/utils/pythonInstaller.js +14 -0
- package/dist/server/src/utils/pythonInstaller.js.map +1 -1
- package/dist/server/src/workers/agent.d.ts +5 -0
- package/dist/server/src/workers/agent.js +49 -1
- package/dist/server/src/workers/agent.js.map +1 -1
- package/dist/server/src/workers/capabilities/plugin-host.js +8 -0
- package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -1
- package/dist/server/src/workers/manager.d.ts +1 -0
- package/dist/server/src/workers/manager.js +20 -0
- package/dist/server/src/workers/manager.js.map +1 -1
- package/dist/server/src/workers/types.d.ts +8 -0
- package/package.json +3 -3
- package/dist/interface/assets/Adminpanel-wZGtsPD-.js +0 -1
- package/dist/interface/assets/AutomationStore-DmbxA0ml.js +0 -2
- package/dist/interface/assets/Automations-C9JJO6dy.js +0 -2
- package/dist/interface/assets/Camview-Bh2UCnGC.js +0 -1
- package/dist/interface/assets/ConfigSensorValueInput-wXiyU3Sc.js +0 -1
- package/dist/interface/assets/Console-CG8eRDA4.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-RUyuBxJZ.js +0 -1
- package/dist/interface/assets/CuiCameraTable-BHaCRB65.js +0 -2
- package/dist/interface/assets/CuiDataTable-CTT9IFeR.js +0 -1
- package/dist/interface/assets/CuiDataTable-W68cyoLf.css +0 -1
- package/dist/interface/assets/CuiList-CDed3qXV.js +0 -1
- package/dist/interface/assets/CuiPluginCard-7aXQznrX.js +0 -2
- package/dist/interface/assets/Menu-CejIVz_7.js +0 -1
- package/dist/interface/assets/PluginSearch-C1YL9q00.js +0 -1
- package/dist/interface/assets/PluginSearch-PDx47aUx.js +0 -2
- package/dist/interface/assets/Recordings-m6jxYvRI.js +0 -1
- package/dist/interface/assets/Sensors-BA9P_Ray.css +0 -1
- package/dist/interface/assets/Sensors-Lfafn19i.js +0 -2
- package/dist/interface/assets/SettingsAccount-vrwV9rtP.js +0 -1
- package/dist/interface/assets/SettingsAppearance-BaDwC_h_.js +0 -1
- package/dist/interface/assets/SettingsList-Dx9DHGq9.js +0 -1
- package/dist/interface/assets/SettingsRemote-CwJw_9HX.js +0 -1
- package/dist/interface/assets/SettingsSystem-B3nne5fS.js +0 -2
- package/dist/interface/assets/Workers-DqeKkdpa.js +0 -2
- package/dist/interface/assets/api-3va2gyB0.css +0 -2
- package/dist/interface/assets/api-milc5VEE.js +0 -2
- package/dist/interface/assets/chevron-right-B4vB0gm4.js +0 -1
- package/dist/interface/assets/cloudHandoff-QtPEpiS4.js +0 -1
- package/dist/interface/assets/main-CqhwDjRG.js +0 -3
- package/dist/interface/assets/round-restart-alt-BhSxsPhN.css +0 -1
- package/dist/interface/assets/round-restart-alt-DKWwojYm.js +0 -1
- package/dist/interface/assets/sensors-CLQG1mQt.js +0 -1
- package/dist/interface/assets/types-CoXm85So.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ar as e,Mr as t,Nr as n,jr as r}from"./vendor-cameraui-BqkrW4Bb.js";import{C as i,S as a,_ as o,a as s,b as c,c as l,d as u,f as ee,g as d,h as f,i as p,l as m,m as te,o as h,p as ne,s as g,u as _,v as re,w as v,x as y,y as b}from"./vendor-zod-Dbq0fBXY.js";o({tempToken:c().trim().min(1,`Temporary token is required`),code:c().trim().min(1,`Code is required`)}).strict(),o({code:c().trim().length(6,`Code must be 6 digits`)}).strict(),o({code:c().trim().min(1,`Code is required`)}).strict(),o({code:c().trim().min(1,`Code is required`)}).strict(),o({grant_type:c().optional(),username:c().trim().min(1,`Username is required`),password:c().min(1,`Password is required`),scope:c().optional(),client_id:c().optional(),client_secret:c().optional()}),o({refresh_token:c().min(1,`Refresh token is required`)}),o({id:c()}),o({name:c().trim().min(1,`Name is required`).max(64,`Name is too long`)}).strict(),o({id:c()});function x(e){let t=[`kasa://`,`nest:`,`ring:`,`tapo://`];return e.some(e=>t.some(t=>e.startsWith(t)))}var ie=[`#df2a4c`,`#2a7fdf`,`#2adf7f`,`#df7f2a`,`#7f2adf`,`#2adfdf`,`#df2adf`,`#7fdf2a`];function ae(){return ie[Math.floor(Math.random()*ie.length)]}function oe(){return{name:`Default Zone`,points:[[0,0],[100,0],[100,100],[0,100]],type:`contain`,filter:`include`,labels:[`motion`,`person`,`vehicle`,`animal`],isPrivacyMask:!1,color:ae()}}var se=o({enabled:_().default(!0),mode:g([`continuous`,`event`,`adhoc`]).default(`continuous`),preBuffer:d().min(0).max(60).default(10),sources:m(g([`high`,`mid`,`low`])).default([`high`,`mid`,`low`])}).strict(),ce={enabled:!0,mode:`continuous`,preBuffer:10,sources:[`high`,`mid`,`low`]},S=c().trim().min(1,`Detection label is required`),C=y([d(),d()]),w=o({name:c().trim().min(1,`Zone Name is required`),points:C.array().min(3,`At least 3 points are required`),type:a([f(`intersect`),f(`contain`)]),filter:a([f(`include`),f(`exclude`)]),labels:S.array(),isPrivacyMask:_(),color:c().trim().regex(/^#([0-9A-Fa-f]{3}){1,2}$/,`Must be a valid hex color (e.g. #FF0000 or #F00)`).default(`#df2a4c`)}).array(),T=o({name:c().trim().min(1,`Line Name is required`),points:y([C,C]),direction:a([f(`both`),f(`a-to-b`),f(`b-to-a`)]),labels:S.array(),color:c().trim().regex(/^#([0-9A-Fa-f]{3}){1,2}$/,`Must be a valid hex color (e.g. #FF0000 or #F00)`).default(`#df2a4c`)}).array(),E=o({motion:o({resolution:a([f(`low`),f(`medium`),f(`high`)]),timeout:d().min(10,`Minimum 10 seconds`)}),object:o({confidence:d().min(.3,`Minimum 0.3`).max(1,`Maximum 1`),suppressStatic:_().default(!0)}),audio:o({minDecibels:d().min(-100,`Minimum -100 dBFS`).max(0,`Maximum 0 dBFS`),timeout:d().min(10,`Minimum 10 seconds`),confidence:d().min(0,`Minimum 0`).max(1,`Maximum 1`).default(.7)}),face:o({confidence:d().min(0,`Minimum 0`).max(1,`Maximum 1`).default(.5)}).default({confidence:.5}),licensePlate:o({confidence:d().min(0,`Minimum 0`).max(1,`Maximum 1`).default(.9),minLength:d().int().min(1,`Minimum 1`).max(10,`Maximum 10`).default(4)}).default({confidence:.9,minLength:4}),sensor:o({timeout:d().min(10,`Minimum 10 seconds`),triggers:m(c().trim().min(1,`Sensor id is required`)).default([])}),cascadeDetection:_().default(!0),cascadeTimeout:d().min(1,`Minimum 1 second`).max(300,`Maximum 300 seconds`).default(10),snooze:_().default(!1)}),le={enabled:!1,targetLabels:[`person`],minConfidence:.5,triggerDeadZone:.05,trackingSpeed:2,leadMs:1800,panRate:.85,returnToHome:!1,homeWaitMs:1e4},D=o({enabled:_().default(!1),targetLabels:c().trim().min(1,`Target label is required`).array().default([`person`]),minConfidence:d().min(.3,`Minimum 0.3`).max(1,`Maximum 1`).default(.5),triggerDeadZone:d().min(0,`Minimum 0`).max(.3,`Maximum 0.3`).default(.05),trackingSpeed:d().min(1,`Minimum 1`).max(5,`Maximum 5`).default(2),leadMs:d().min(0,`Minimum 0`).max(4e3,`Maximum 4000 ms`).default(1800),panRate:d().min(.1,`Minimum 0.1`).max(3,`Maximum 3`).default(.85),returnToHome:_().default(!1),homeWaitMs:d().min(1e3,`Minimum 1000 ms`).max(6e4,`Maximum 60000 ms`).default(1e4)}),O=a([f(`high-resolution`),f(`mid-resolution`),f(`low-resolution`),f(`snapshot`)]),ue=a([f(`high-resolution`),f(`mid-resolution`),f(`low-resolution`)]),de=a([f(`bubble://`),f(`cui://`),f(`doorbird://`),f(`dvrip://`),f(`eseecloud://`),f(`ffmpeg:`),f(`flussonic://`),f(`gopro://`),f(`hass:`),f(`homekit://`),f(`http://`),f(`https://`),f(`httpx://`),f(`isapi://`),f(`ivideon:`),f(`kasa://`),f(`nest:`),f(`onvif://`),f(`ring:`),f(`roborock://`),f(`rtmp://`),f(`rtsp://`),f(`rtspx://`),f(`tapo://`),f(`tcp://`),f(`tuya://`),f(`xiaomi://`),f(`yandex:`),f(`webrtc:`),f(`webtorrent:`),f(`wyze://`)]).options.map(e=>e.value),fe=RegExp(`^(${de.join(`|`)})`),pe=c().refine(e=>{if(!fe.test(e))return!1;try{return new URL(e),!0}catch{return!1}},{message:`Invalid URL format or unsupported protocol`}),me=o({_id:c().default(r()).transform(()=>r()),name:c().trim().min(1,`Camera Source Name is required`).transform(e=>e.replace(/ /g,`_`).toLowerCase()),role:O,useForSnapshot:_().default(!1),hotMode:_().default(!0),preload:_().default(!0),muted:_().default(!1),urls:pe.array().min(1,`At least one valid URL is required`),childSourceId:c().trim().min(1,`Child Source ID is required`).optional()}).strict().transform(e=>e.role===`snapshot`?{...e,useForSnapshot:!1,hotMode:!1,preload:!1}:e),he=o({_id:c().default(r()).transform(()=>r()),name:c().trim().min(1,`Camera Source Name is required`).transform(e=>e.replace(/ /g,`_`).toLowerCase()),role:O,useForSnapshot:_().default(!1),hotMode:_().default(!0),preload:_().default(!0),muted:_().default(!1),urls:pe.array().min(1,`At least one valid URL is required`),childSourceId:c().trim().min(1,`Child Source ID is required`).optional()}).strict().transform(e=>e.role===`snapshot`?{...e,useForSnapshot:!1,hotMode:!1,preload:!1}:e),k=o({id:c(),name:c().trim()}),ge=o({motion:k.optional(),object:k.optional(),objectAssist:k.optional(),audio:k.optional(),face:k.optional(),licensePlate:k.optional(),ptz:k.optional(),battery:k.optional(),cameraController:k.optional(),clip:k.optional(),classifier:k.array().optional(),light:k.array().optional(),siren:k.array().optional(),switch:k.array().optional(),securitySystem:k.array().optional(),contact:k.array().optional(),doorbell:k.array().optional(),lock:k.array().optional(),temperature:k.array().optional(),humidity:k.array().optional(),occupancy:k.array().optional(),smoke:k.array().optional(),leak:k.array().optional(),garage:k.array().optional(),hub:k.array().optional()}).strict(),_e=a([f(`auto`),f(`mse`),f(`webrtc`),f(`webrtc/tcp`)]),ve=c().regex(/^\d+(?:\.\d+)?:\d+(?:\.\d+)?$/,`Use a width:height ratio, e.g. 16:9`).refine(e=>{let[t,n]=e.split(`:`).map(Number);return Number.isFinite(t)&&Number.isFinite(n)&&t>0&&n>0},`Both sides must be greater than 0`).transform(e=>e),ye=o({hardware:g([`auto`,`cpu`,`cuda`,`vaapi`,`qsv`,`videotoolbox`,`d3d11va`,`d3d12va`,`dxva2`,`vulkan`,`opencl`,`drm`,`rkmpp`]).default(`auto`),device:c().trim().max(128).optional()}).strict(),be=o({fps:d().min(0,`Minimum 0 fps`).max(30,`Maximum 30 fps`),hqSnapshots:_().default(!1),decoder:ye.optional(),workerDecoder:ye.optional()}),xe=a([f(`camera`),f(`doorbell`)]),Se=o({streamingMode:_e,streamingSource:ue,aspectRatio:ve}),Ce=o({model:c().trim().optional(),manufacturer:c().trim().optional(),hardware:c().trim().optional(),serialNumber:c().trim().optional(),firmwareVersion:c().trim().optional(),supportUrl:c().trim().optional()}),we=o({id:c(),name:c().trim()}).strict(),Te=o({autoRefresh:_().default(!0),ttl:d().min(10,`Minimum 10 seconds`).max(60,`Maximum 60 seconds`).default(50),interval:d().min(10,`Minimum 10 seconds`).max(60,`Maximum 60 seconds`).default(60)}).strict(),A=o({_id:c().default(r()).transform(()=>r()),nativeId:c().trim().optional(),pluginInfo:we.optional(),disabled:_().default(!1),name:c().trim().min(1,`Camera name is required`),room:c().trim().min(1,`Room is required`).default(`Default`),type:xe.default(`camera`),isCloud:_().default(!1),snapshotSettings:Te.default({autoRefresh:!0,ttl:50,interval:60}),info:Ce.default({model:`IP Camera`,manufacturer:`camera.ui`,hardware:`Camera`,serialNumber:`Unknown`,firmwareVersion:`Unknown`,supportUrl:`Unknown`}),sources:me.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]}),plugins:k.array().default([]),assignments:ge.default({}),interfaceSettings:Se.default({streamingMode:`webrtc`,streamingSource:`high-resolution`,aspectRatio:`16:9`}),detectionZones:w.default([]),detectionLines:T.default([]),detectionSettings:E.default({motion:{resolution:`low`,timeout:30},object:{confidence:.5,suppressStatic:!0},audio:{minDecibels:-40,timeout:30,confidence:.7},face:{confidence:.5},licensePlate:{confidence:.9,minLength:4},sensor:{timeout:30,triggers:[]},cascadeDetection:!0,cascadeTimeout:10,snooze:!1}),ptzAutotrack:D.default(le),recordingSettings:se.default(ce),frameWorkerSettings:be.default({fps:10,hqSnapshots:!1})}).strict();A.transform(e=>{let t=e.sources.flatMap(e=>e.urls),n=e.detectionZones.length===0?[oe()]:e.detectionZones;return e.isCloud||x(t)?{...e,isCloud:!0,detectionZones:n}:{...e,detectionZones:n}});var Ee=o({disabled:_().optional(),type:xe.optional(),name:c().trim().min(1,`Camera name is required`).optional(),room:c().trim().min(1,`Room is required`).optional(),isCloud:_().optional(),snapshotSettings:Te.partial().optional(),info:Ce.partial().optional(),sources:he.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]}).optional(),plugins:k.array().optional(),assignments:ge.partial().optional(),interfaceSettings:Se.partial().optional(),detectionZones:w.optional(),detectionLines:T.optional(),detectionSettings:E.partial().optional(),ptzAutotrack:D.partial().optional(),recordingSettings:se.partial().optional(),frameWorkerSettings:be.partial().optional()}).strict().transform(e=>{if(e.sources){let t=e.sources.flatMap(e=>e.urls);if(e.isCloud===!0||x(t))return{...e,isCloud:!0}}return e});o({url:c().trim().refine(e=>!/^\s*(exec|echo|expr):/i.test(e),`Command-execution stream sources are not allowed`)}).strict(),o({cameraname:c()}),o({cameraname:c(),sourcename:c()}),o({cameraid:c(),sourcename:c()}),o({cameraname:c(),pluginname:c()}),o({cameraname:c(),scope:c(),pluginname:c()}),o({cameraname:c(),pluginname:c(),sensorId:c()}),o({cameraname:c(),stableId:c()}),o({property:c(),value:i()}),o({cameraname:c(),scope:c(),pluginname:c(),sensorId:c()}),o({type:c().optional()}),o({video:p().optional(),audio:p().optional(),microphone:p().optional(),refresh:p().optional()}),o({forceNew:p().optional()}),o({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`),url:v(`Must be a valid URL`).trim(),credentials:o({username:c().trim().min(1,`Username is required`),password:c().min(1,`Password is required`)})}),o({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional(),url:v(`Must be a valid URL`).trim().optional(),credentials:o({username:c().trim().min(1,`Username is required`),password:c().min(1,`Password is required`)}).nullable().optional()}),o({id:c().min(1,`ID is required`)}),o({code:c().trim().min(1,`Code is required`).optional()}).optional();var j=/^[\w-]+(\/[\w-]+)*$/,De=o({enabled:_().optional(),mode:g([`external`,`embedded`]).optional(),broker:o({port:d().int().min(1).max(65535).optional(),username:c().trim().max(200,`Username cannot be more than 200 characters`).nullable().optional(),password:c().max(500,`Password cannot be more than 500 characters`).nullable().optional()}).strict().optional(),host:c().trim().min(1,`Host is required`).max(253,`Host cannot be more than 253 characters`).nullable().optional(),port:d().int().min(1).max(65535).optional(),protocol:g([`mqtt`,`mqtts`]).optional(),username:c().trim().max(200,`Username cannot be more than 200 characters`).nullable().optional(),password:c().max(500,`Password cannot be more than 500 characters`).nullable().optional(),clientId:c().trim().min(1,`Client ID is required`).max(128,`Client ID cannot be more than 128 characters`).optional(),topicPrefix:c().trim().min(1,`Topic prefix is required`).max(128,`Topic prefix cannot be more than 128 characters`).regex(j,`Topic prefix may only contain letters, numbers, "_", "-" and "/" separators`).optional(),tls:o({rejectUnauthorized:_().optional(),ca:c().trim().nullable().optional(),cert:c().trim().nullable().optional(),key:c().trim().nullable().optional()}).strict().optional(),haDiscovery:o({enabled:_().optional(),prefix:c().trim().min(1,`Discovery prefix is required`).max(128,`Discovery prefix cannot be more than 128 characters`).regex(j,`Discovery prefix may only contain letters, numbers, "_", "-" and "/" separators`).optional()}).strict().optional()}).strict(),Oe=/^((@[\w-.]*)\/)?(camera-ui-[\w-]*)$/,ke=function(e){return e.READY=`ready`,e.STARTING=`starting`,e.STARTED=`started`,e.STOPPING=`stopping`,e.STOPPED=`stopped`,e.ERROR=`error`,e.UNKNOWN=`unknown`,e.DISABLED=`disabled`,e.INCOMPATIBLE=`incompatible`,e}({});function M(e){return e.mimetype!==void 0}function Ae(e){return M(e)?Buffer.byteLength(e._buf):e.size}function je(e){return M(e)?e.mimetype:e.type}function N(e,t,n,r){return u().refine(t=>Ae(t)<=e,n).refine(e=>t.includes(je(e)),r)}var Me=o({start:s().optional(),page:s().optional(),pageSize:s().optional()}),P=[`image/jpeg`,`image/png`],Ne=2097152,F=[`video/mp4`,`video/quicktime`],I=10485760,L=[`audio/mpeg`,`audio/wav`,`audio/ogg`],R=2097152,z=()=>N(Ne,P,`Max file size is 2 MB`,`.jpeg and .png files are accepted`),B=u().transform(e=>JSON.parse(e.value)),V=u().transform(e=>JSON.parse(e.value)),Pe=u().transform(e=>JSON.parse(e.value));o({pluginname:c().trim().refine(e=>Oe.test(e),`Not a valid plugin name`),pluginversion:c().trim().refine(e=>/^[a-z][\w-]*$/i.test(e)||/^v?\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/i.test(e),`Not a valid plugin version (expected a dist-tag or exact semver)`).optional().default(`latest`)}).strict(),o({actionId:c(),payload:l()}).strict(),b(l(),l()),o({upload:z(),metadata:V,config:B}),o({upload:N(R,L,`Max file size is 2 MB`,`.mp3, .wav and .ogg files are accepted`),metadata:Pe,config:B}),o({upload:N(I,F,`Max file size is 5 MB`,`.mp4 files are accepted`),config:B}),o({upload:z(),metadata:V,config:B}),o({upload:z(),metadata:V,config:B}),o({upload:z(),metadata:V,config:B}),o({pluginname:c()}),o({scope:c(),pluginname:c()}),Me.extend({pluginname:c().trim().optional(),refresh:p().optional()}),o({removeStorage:p().optional()}),o({pluginversion:c().trim().optional()});var Fe=o({enabled:_().optional(),directEnabled:_().optional(),directMode:g([`cloudflare`,`customDomain`]).optional(),customDomain:o({url:v(`Must be a valid URL`).trim().nullable()}).strict().optional(),cloudflare:o({mode:g([`quick`,`token`,`managed`]).optional(),hostname:c().trim().min(1,`Hostname is required`).max(253,`Hostname cannot be more than 253 characters`).nullable().optional(),token:c().trim().min(1,`Token is required`).nullable().optional()}).strict().optional()}).strict().refine(e=>!(e.directMode===`customDomain`&&!e.customDomain?.url),{message:`Custom domain URL is required when directMode is "customDomain"`,path:[`customDomain`,`url`]}).refine(e=>!(e.cloudflare?.mode&&e.cloudflare.mode!==`quick`&&!e.cloudflare?.hostname),{message:`Hostname is required when cloudflare.mode is "token" or "managed"`,path:[`cloudflare`,`hostname`]});o({mode:g([`cloudflare`,`customDomain`])}).strict(),o({hostname:c().trim().min(1,`Hostname is required`).max(253,`Hostname cannot be more than 253 characters`).regex(/^[a-z0-9.-]+\.[a-z]{2,}$/i,`Invalid hostname`)}).strict(),o({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional()}).strict(),o({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional()}).strict(),o({name:c().trim().min(1,`Server name is required`).max(100,`Server name cannot be more than 100 characters`)}).strict(),o({version:c().trim().optional().default(`latest`)}).strict();var Ie=o({serverAddresses:a([ne().trim(),te().trim()]).array().default([])}).strict();o({version:c().trim()}).strict(),b(c(),l()),o({key:c()}).strict(),o({key:c(),payload:l()}).strict();function Le(){let e={};for(let n of t)e[n.type]={category:n.category,assignmentKey:n.assignmentKey,multiProvider:n.multiProvider,isDetectionType:n.isDetectionType,cameraBound:n.cameraBound??!1,...n.cascadeTrigger?{cascadeTrigger:n.cascadeTrigger}:{}};return e}var H=Le();Object.fromEntries(t.filter(e=>e.propertyCapabilities).map(e=>[e.type,e.propertyCapabilities]));function Re(){return Object.entries(H).filter(([,e])=>e.multiProvider).map(([e])=>e)}function ze(){return t.filter(e=>e.shortcutable).map(e=>e.type)}function Be(){return Object.entries(H).filter(([,e])=>e.isDetectionType).map(([e])=>e)}function Ve(e){return H[e].assignmentKey}function He(){return Object.entries(H).filter(([,e])=>e.category===n.Sensor&&!e.multiProvider).map(([e])=>e)}function Ue(){return Object.entries(H).filter(([,e])=>!e.multiProvider&&e.category!==n.Sensor).map(([e])=>e)}function We(){return Object.entries(H).filter(([,e])=>e.multiProvider).map(([e])=>e)}function Ge(e){return!H[e].multiProvider}Object.fromEntries(t.map(e=>[e.type,Object.keys(e.properties)]));var U=Object.fromEntries(t.map(e=>[e.type,e.properties]));function Ke(e,t){return U[e]?.[t]}function qe(e){let t=U[e];return t?Object.entries(t).filter(([,e])=>!e.internal).map(([e])=>e):[]}function Je(e){let t=U[e];return t?Object.entries(t).filter(([,e])=>e.writable).map(([e])=>e):[]}function Ye(e,t){let r=H[e];return r?r.category===n.Control||r.category===n.Trigger||t===`cameraui.virtual`&&!r.isDetectionType:!1}new Set(Re()),new Set(Be());var W=t.filter(e=>e.virtual).map(e=>e.type);Object.fromEntries(t.filter(e=>e.virtual).map(e=>[e.type,e.virtual?.properties??{}])),Object.fromEntries(t.filter(e=>e.virtual?.capabilities).map(e=>[e.type,e.virtual?.capabilities])),o({id:c().min(1,`Sensor ID is required`)});var Xe=o({cameraId:c().min(1).optional(),type:g(W),name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`)});o({displayName:c().trim().min(1,`Display name is required`).max(100,`Display name cannot be more than 100 characters`).optional(),assignedCameraIds:m(c().min(1)).optional(),exposed:_().optional(),hidden:_().optional()}).refine(e=>e.displayName!==void 0||e.assignedCameraIds!==void 0||e.exposed!==void 0||e.hidden!==void 0,{message:`Nothing to update`}),o({property:c().trim().min(1,`Property is required`),value:i()});var Ze=[`de`,`en`],Qe=[`image/jpeg`,`image/jpg`,`image/png`],$e=5242880,et=o({index:d(),cameraId:c(),colSpan:d().optional(),rowSpan:d().optional(),x:d().optional(),y:d().optional()}),tt=a([f(1),f(4),f(6),f(7),f(9),f(10),f(12),f(13),f(15),f(16),f(20),f(26)]),nt=a([f(`dnd`),f(`view`)]),rt=o({_id:c().default(r()).transform(()=>r()),name:c().trim().min(1,`Layout name is required`),viewSize:tt,cameras:et.array(),type:nt});o({name:c().trim().min(1,`Layout name is required`),viewSize:tt,cameras:et.array()}).partial().optional();var it=o({views:rt.array()}),at=t.filter(e=>e.shortcutable).map(e=>String(e.type)),ot=g(at),st=o({_id:c().default(r()).transform(()=>r()),type:f(`camera`),cameraId:c(),points:C}),ct=o({_id:c().default(r()).transform(()=>r()),type:f(`sensor`),sensorId:c(),sensorType:ot,points:C}),lt=ee(`type`,[st,ct]),ut=o({type:f(`camera`),cameraId:c(),points:C}).partial(),dt=o({type:f(`sensor`),sensorId:c(),sensorType:ot,points:C}).partial();a([ut,dt]).optional();var ft=o({shortcuts:lt.array()}),pt=g([`auto`,...Ze]),mt=o({language:pt.optional(),camview:it,cameras:b(c().trim(),ft)}),G=c().trim().min(10,`Password must be at least 10 characters long`).regex(/[A-Z]/,`Password must contain at least one uppercase letter`).regex(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/,`Password must contain at least one special character (!@#$%^&*()_+-=[]{};:'"\\|,.<>/?)`).max(32,`Password cannot be more than 32 characters`),ht=o({_id:c().default(r()).transform(()=>r()),username:c().trim().min(1,`Username is required`),password:G,passwordConfirm:c().trim().min(1,`Please confirm your password`),role:a([f(`admin`),f(`user`)]),firstLogin:_().default(!0),preferences:mt.default({language:`auto`,camview:{views:[]},cameras:{}})}).strict().refine(e=>e.password===e.passwordConfirm,{path:[`passwordConfirm`],message:`Passwords do not match`});o({username:c().trim().min(1,`Username is required`),password:c().trim().min(1,`Password is required`),kind:g([`native`,`web`,`tv`]),persistent:_().default(!1),device:o({id:c().min(1,`Device id is required`).max(128,`Device id cannot be more than 128 characters`),name:c().trim().min(1,`Device name is required`).max(100,`Device name cannot be more than 100 characters`)})}).strict();var gt=o({username:c().trim().min(1,`Username is required`).optional(),password:G.optional(),passwordConfirm:c().trim().optional(),role:a([f(`admin`),f(`user`)]).optional(),upload:re(N($e,Qe,`Max file size is 5MB.`,`.jpg, .jpeg, .png files are accepted.`)),firstLogin:_().optional(),preferences:mt.partial().optional()}).strict().refine(e=>e.password===e.passwordConfirm,{path:[`passwordConfirm`],message:`Passwords do not match`});o({username:c()}),o({username:c(),cameraname:c()}),o({username:c(),cameraname:c(),shortcutid:c()}),o({username:c(),viewid:c()}),o({username:c()});function _t(e){return e.type===`string`&&!(`enum`in e)}function vt(e){return e.type===`number`}function yt(e){return e.type===`boolean`}function K(e){return e.type===`string`&&`enum`in e}function bt(e){return e.type===`array`}function q(e){return e.type===`button`}function J(e){return e.type===`submit`}function xt(e){return _t(e)&&(!e.format||e.format!==`qrCode`&&e.format!==`image`)}var Y=(e,t)=>{let n=Q(t,e.key),r=e.value;switch(e.operator??`eq`){case`eq`:return n===r;case`neq`:return n==null||n===``?!1:n!==r;case`gt`:return typeof n==`number`&&typeof r==`number`&&n>r;case`lt`:return typeof n==`number`&&typeof r==`number`&&n<r;case`in`:return(Array.isArray(r)?r:[r]).includes(n);case`nin`:return n==null||n===``?!1:!(Array.isArray(r)?r:[r]).includes(n);default:return!0}};function X(e,t){return Array.isArray(e)?e.every(e=>Y(e,t)):Y(e,t)}function St(t,n){if(!t||Object.keys(t).length===0)return!0;let r=n.filter(e=>!q(e)&&!J(e));for(let n of r){let r=Q(t,n.key),i=Z(n);if(r!==void 0&&!e(r,i,!0))return!1}return!0}function Z(e){if(`defaultValue`in e&&e.defaultValue!==void 0)return e.defaultValue;switch(e.type){case`string`:return K(e)?e.multiple?[]:e.required?e.enum[0]:``:``;case`number`:return 0;case`boolean`:return!1;case`array`:return[];default:return}}function Ct(e){let t={};for(let n of e)q(n)||J(n)||(t[n.key]=Z(n));return t}function wt(e){return e.split(`.`).reduce((e,t)=>{if(t.includes(`[`)){let[n,r]=t.split(`[`);e.push(n,r.slice(0,-1))}else e.push(t);return e},[])}function Tt(e){return!isNaN(Number(e))}function Q(e={},t){if(!t.includes(`.`)&&!t.includes(`[`))return e[t];let n=e;for(let e of wt(t)){if(n==null)return;n=n[e]}return n}function Et(e,t,n){if(!t.includes(`.`)&&!t.includes(`[`)){e[t]=n;return}let r=wt(t),i=r.pop();if(!i)return;let a=e;for(let e=0;e<r.length;e++){let t=r[e];(typeof a[t]!=`object`||a[t]===null)&&(a[t]=Tt(r[e+1]??i)?[]:{}),a=a[t]}a[i]=n}function Dt(e,t){let n={};for(let r of e)if(`store`in r&&r.store&&!q(r)&&!J(r)){let e=Q(t,r.key);e!==void 0&&(n[r.key]=e)}return n}function Ot(e,t){return t?e.filter(e=>`group`in e&&e.group===t):e}function kt(e,t){let n=Ot(e,t);return n.length>0&&n.every(e=>`readonly`in e&&e.readonly)}function At(e,t){let n=Ot(e,t);return n.length>0&&n.some(e=>`store`in e&&e.store)}function jt(e,t){if(!t)return!0;let n={"date-time":e=>/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d+)?(Z|[+-]\d{2}:\d{2})?$/.test(e),date:e=>/^\d{4}-\d{2}-\d{2}$/.test(e),time:e=>/^([01]?[0-9]|2[0-3]):([0-5][0-9])(:([0-5][0-9]))?$/.test(e),email:e=>/^\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b$/.test(e),uuid:e=>/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/.test(e),ipv4:e=>/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/.test(e),ipv6:e=>/^\s*([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4})\s*$/.test(e)};return t in n?n[t](e):!0}function $(e){if(q(e)||J(e))return l();switch(e.type){case`string`:if(K(e))if(e.multiple){let t=m(c().trim().refine(t=>e.enum.includes(t),{error:`Invalid selection`}));return e.required&&(t=t.min(1,{error:`Required`})),e.required?t:t.optional()}else{let t=g(e.enum);return e.required?t:t.optional()}let t=c().trim();return e.required&&(t=t.nonempty(`Required`)),e.minLength!==void 0&&(t=t.min(e.minLength)),e.maxLength!==void 0&&(t=t.max(e.maxLength)),e.format&&(t=t.refine(t=>!t||t.trim()===``||jt(t,e.format),{message:`Invalid ${e.format} format`})),e.required?t:t.optional();case`number`:let n=d();return e.minimum!==void 0&&(n=n.min(e.minimum)),e.maximum!==void 0&&(n=n.max(e.maximum)),e.required&&(n=n.refine(e=>e!=null,{error:`Required`})),e.required?n:n.optional();case`boolean`:return e.required?_():_().optional();case`array`:let r=e.items?$(e.items):l(),i=m(r);return e.required?i:i.optional();default:return e.required?l():l().optional()}}var Mt=(e,t,n)=>t.filter(e=>`group`in e&&e.group===n).some(t=>{let n=e[t.key];return n!=null&&n!==``});function Nt(e){let t={},n=new Set;e.forEach(e=>{`group`in e&&e.group&&n.add(e.group)}),e.forEach(e=>{if(!q(e)&&!J(e)){let n=`group`in e&&e.group,r=`condition`in e&&e.condition;(n||r)&&e.required?t[e.key]=$({...e,required:!1}):t[e.key]=$(e)}});let r=o(t),i=e.filter(e=>`condition`in e&&e.condition&&`required`in e&&e.required&&!q(e)&&!J(e));return(n.size>0||i.length>0)&&(r=r.superRefine((t,r)=>{for(let i of n)if(Mt(t,e,i)){let n=e.filter(e=>`group`in e&&e.group===i);for(let e of n)if(`required`in e&&e.required){if(`condition`in e&&e.condition&&!X(e.condition,t))continue;let n=t[e.key];(n==null||n===``)&&r.addIssue({code:h.custom,message:`Required`,path:[e.key]})}}for(let e of i)if(!(`group`in e&&e.group)&&`condition`in e&&e.condition&&X(e.condition,t)){let n=t[e.key];(n==null||n===``)&&r.addIssue({code:h.custom,message:`Required`,path:[e.key]})}})),r}export{Ue as A,L as B,gt as C,W as D,H as E,Je as F,ke as G,P as H,Ge as I,A as J,De as K,Ye as L,qe as M,Ke as N,We as O,ze as P,Ee as Q,Ie as R,G as S,Xe as T,R as U,F as V,I as W,w as X,T as Y,O as Z,At as _,Nt as a,Ze as b,yt as c,K as d,vt as f,kt as g,xt as h,Dt as i,He as j,Ve as k,q as l,J as m,Ct as n,Q as o,_t as p,de as q,Z as r,bt as s,X as t,St as u,Et as v,rt as w,ht as x,$e as y,Fe as z};
|