@camera.ui/server 0.0.70 → 0.0.71-dev.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/CLAUDE.md +91 -0
- package/README.md +0 -24
- package/cupdate.config.txt +0 -1
- package/dist/interface/assets/404-CIsBB4A0.js +1 -0
- package/dist/interface/assets/About-CkxZb9D-.js +1 -0
- package/dist/interface/assets/Adminpanel-BrZ55JBx.js +1 -0
- package/dist/interface/assets/Automation-BKhuIS2v.js +2 -0
- package/dist/interface/assets/Automation-Csu8t0D7.css +1 -0
- package/dist/interface/assets/Automations-CzdnqGGU.js +1 -0
- package/dist/interface/assets/Camera-BhCDJE7I.css +1 -0
- package/dist/interface/assets/Camera-CU3aKdBR.js +2 -0
- package/dist/interface/assets/CameraConsole-D7KxwRxQ.js +7 -0
- package/dist/interface/assets/Cameras-807mspcl.css +1 -0
- package/dist/interface/assets/Cameras-DJcAfGpU.js +656 -0
- package/dist/interface/assets/Camview-ArBQ3nES.js +1 -0
- package/dist/interface/assets/Camview-Dd7DwMHG.css +1 -0
- package/dist/interface/assets/Config-D2ftkjl2.js +2 -0
- package/dist/interface/assets/Config-JgftUZFe.css +1 -0
- package/dist/interface/assets/ConfigActionCameraControl-94iyzBzJ.js +1 -0
- package/dist/interface/assets/ConfigActionDelay-DKhE0Xr8.js +1 -0
- package/dist/interface/assets/ConfigActionHttp-BbfN1UGF.js +1 -0
- package/dist/interface/assets/ConfigActionImageInput-P39gRfld.js +1 -0
- package/dist/interface/assets/ConfigActionNotification-CuDDnksK.js +1 -0
- package/dist/interface/assets/ConfigActionOutput-BIHvC1Z5.js +1 -0
- package/dist/interface/assets/ConfigActionPlugin-CDA53LwA.js +1 -0
- package/dist/interface/assets/ConfigActionSensor-BBkfWT_r.js +1 -0
- package/dist/interface/assets/ConfigActionSnapshot-C5enxVcl.js +1 -0
- package/dist/interface/assets/ConfigActionVariable-CVaOMoOi.js +1 -0
- package/dist/interface/assets/ConfigConditionIfElse-DiIOUqA5.js +1 -0
- package/dist/interface/assets/ConfigConditionSensorState-DBktbA8F.js +1 -0
- package/dist/interface/assets/ConfigConditionSwitch-DWqcQ3Ip.js +1 -0
- package/dist/interface/assets/ConfigConditionTime-BEaHclqa.js +1 -0
- package/dist/interface/assets/ConfigTriggerDetection-CRnZR91p.js +1 -0
- package/dist/interface/assets/ConfigTriggerGeofence-DODdJBZW.js +1 -0
- package/dist/interface/assets/ConfigTriggerManual-V8-5hrdl.js +1 -0
- package/dist/interface/assets/ConfigTriggerSchedule-CqID85d1.js +1 -0
- package/dist/interface/assets/ConfigTriggerSensor-DR6ifBrK.js +1 -0
- package/dist/interface/assets/ConfigTriggerSystem-K1ohOW18.js +1 -0
- package/dist/interface/assets/ConfigTriggerWebhook-Cmwu5IU4.js +1 -0
- package/dist/interface/assets/Console-IC7AOnvc.js +6 -0
- package/dist/interface/assets/CuiActionButton-Ba5wT-4n.js +1 -0
- package/dist/interface/assets/CuiAvatar-BtMXnhxd.css +1 -0
- package/dist/interface/assets/CuiAvatar-Bu4NixiB.js +1 -0
- package/dist/interface/assets/CuiBBoxPlayground-Cmbd4_qG.js +1 -0
- package/dist/interface/assets/CuiBBoxPlayground-EFkdOBvq.css +1 -0
- package/dist/interface/assets/CuiBottomSheet-BN5exkJm.js +1 -0
- package/dist/interface/assets/CuiBottomSheet-CHspaYgP.js +1 -0
- package/dist/interface/assets/CuiBottomSheet-DxQ6D_RM.css +1 -0
- package/dist/interface/assets/CuiCameraCard-C7eDwhgw.js +1 -0
- package/dist/interface/assets/CuiCameraCard-dNsAwlKS.css +1 -0
- package/dist/interface/assets/CuiCameraPipCard-C8Pg7xT9.js +1 -0
- package/dist/interface/assets/CuiCameraPipCard-D3o29_wc.css +1 -0
- package/dist/interface/assets/CuiCameraRecordings-CQHbo-_J.js +1 -0
- package/dist/interface/assets/CuiCameraRecordings-DM_o0Lya.css +1 -0
- package/dist/interface/assets/CuiCameraShares-DNuCgk4b.js +1 -0
- package/dist/interface/assets/CuiCameraSnapshot-BpUMwSoR.js +1 -0
- package/dist/interface/assets/CuiCameraTable-DQffvTtY.js +2 -0
- package/dist/interface/assets/CuiFloatingButton-RaxwbGht.js +1 -0
- package/dist/interface/assets/CuiImage-60jwFIqc.js +1 -0
- package/dist/interface/assets/CuiImage-Bxf7z2N4.css +1 -0
- package/dist/interface/assets/CuiMarkdownContent-M5v8bBmS.js +1 -0
- package/dist/interface/assets/CuiMenu-B4CHT2F_.js +1 -0
- package/dist/interface/assets/CuiMenu-BWUfWLQP.css +1 -0
- package/dist/interface/assets/CuiPluginCard-5ItfIe1Z.js +2 -0
- package/dist/interface/assets/CuiPluginCard-CTTsEM9M.css +1 -0
- package/dist/interface/assets/CuiPluginOAuthButton-BJRU2JBX.js +2 -0
- package/dist/interface/assets/CuiQRCode-CNeepRQw.js +1 -0
- package/dist/interface/assets/CuiQRCode-DfUba6JB.css +1 -0
- package/dist/interface/assets/CuiRecordingsGrid-CKHFeJlJ.js +1 -0
- package/dist/interface/assets/CuiRecordingsGrid-CZIZiEuT.css +1 -0
- package/dist/interface/assets/CuiSchema--yMBD996.css +1 -0
- package/dist/interface/assets/CuiSchema-CTRLO0uq.js +1 -0
- package/dist/interface/assets/CuiTopNavbarItem-CgaR_X1z.js +1 -0
- package/dist/interface/assets/CuiTopNavbarItem-w54CrODK.css +1 -0
- package/dist/interface/assets/CuiTopbarSlot-BDZoZ_yn.js +1 -0
- package/dist/interface/assets/Faces-JoBk1Mcv.js +1 -0
- package/dist/interface/assets/FirstSteps-CSMvd_p0.js +1 -0
- package/dist/interface/assets/Instances-DwNihvsL.js +1 -0
- package/dist/interface/assets/Menu-CUnOgtD5.js +1 -0
- package/dist/interface/assets/OAuthDeviceFlow-aUHpE7wP.js +1 -0
- package/dist/interface/assets/Plugin-DoxdkvWR.css +1 -0
- package/dist/interface/assets/Plugin-LjpUwn17.js +1 -0
- package/dist/interface/assets/PluginConsole-CvDWPKOs.js +7 -0
- package/dist/interface/assets/PluginSchema-DL7Bfd_U.js +1 -0
- package/dist/interface/assets/Plugins-B207FOsG.js +2 -0
- package/dist/interface/assets/Plugins-BPt1RSKT.css +1 -0
- package/dist/interface/assets/Recordings-Bt_GlPOK.css +1 -0
- package/dist/interface/assets/Recordings-adHTSogQ.js +1 -0
- package/dist/interface/assets/Settings-bwLTNAxX.css +1 -0
- package/dist/interface/assets/Settings-iBjUbXTH.js +1 -0
- package/dist/interface/assets/SettingsAccount-Ce0UnkLb.js +1 -0
- package/dist/interface/assets/SettingsAccount-DXKQY4Iz.css +1 -0
- package/dist/interface/assets/SettingsAccount-f2wkt4kx.js +1 -0
- package/dist/interface/assets/SettingsAppearance-2TfnSgkI.js +1 -0
- package/dist/interface/assets/SettingsAppearance-Dca237An.js +1 -0
- package/dist/interface/assets/SettingsBackup-Bh5x-GU_.js +1 -0
- package/dist/interface/assets/SettingsNotifications-BVmhorXq.js +2 -0
- package/dist/interface/assets/SettingsRecordings-dPUm5hma.js +1 -0
- package/dist/interface/assets/SettingsRemote-BcVzn2m3.js +1 -0
- package/dist/interface/assets/SettingsRemote-CjVK9pGg.css +1 -0
- package/dist/interface/assets/SettingsSystem-Dz76BUJ-.js +2 -0
- package/dist/interface/assets/SettingsUsers-Dzj--Rmf.js +1 -0
- package/dist/interface/assets/Terminal-BAMMh8Px.js +4 -0
- package/dist/interface/assets/Terminal-CrOfQJ-O.css +1 -0
- package/dist/interface/assets/VariableInput-D_-qKfZK.js +1 -0
- package/dist/interface/assets/VariableSuggestions-Br4yDsLZ.js +1 -0
- package/dist/interface/assets/VersionsHandler-CfNT3Yke.js +7 -0
- package/dist/interface/assets/Workers-D3jFWBjm.js +1 -0
- package/dist/interface/assets/_plugin-vue_export-helper-BDNMzG2s.js +1 -0
- package/dist/interface/assets/ace-BRyQJK-L.js +1 -0
- package/dist/interface/assets/ace.config-fXRdG20S.js +1 -0
- package/dist/interface/assets/alert-outline-D3FCIX7_.js +1 -0
- package/dist/interface/assets/api-BaywoTCE.js +2 -0
- package/dist/interface/assets/api-Cna9Poda.css +2 -0
- package/dist/interface/assets/api-DvuXV3Xb.js +1 -0
- package/dist/interface/assets/auth-Cu-pUvKk.js +1 -0
- package/dist/interface/assets/automation-CbEPnAW4.js +1 -0
- package/dist/interface/assets/automations-Bj3wF0wR.js +1 -0
- package/dist/interface/assets/automations-C6ssihoC.js +1 -0
- package/dist/interface/assets/back-filled-CvLD0CND.js +1 -0
- package/dist/interface/assets/backup-DK5aZBLo.js +1 -0
- package/dist/interface/assets/bell-outline-JZZKpcfS.js +1 -0
- package/dist/interface/assets/camera-preview-C7GT5VHo.png +0 -0
- package/dist/interface/assets/cameras-DQ28quQb.js +1 -0
- package/dist/interface/assets/cameras.schema-CDeB5JeE.js +1 -0
- package/dist/interface/assets/cctv-SQFfbBnL.js +1 -0
- package/dist/interface/assets/check-BQQidcYi.js +1 -0
- package/dist/interface/assets/chevron-down-Dd1qHXVA.js +1 -0
- package/dist/interface/assets/chevron-right-DOmJR2OL.js +1 -0
- package/dist/interface/assets/circular-connection-nKCVm4QI.js +1 -0
- package/dist/interface/assets/close-Dhjo4o57.js +1 -0
- package/dist/interface/assets/close-WdhW_91X.js +1 -0
- package/dist/interface/assets/close-circle-i5PrRG0X.js +1 -0
- package/dist/interface/assets/close-rounded-6nzLVPw0.js +1 -0
- package/dist/interface/assets/cloud-check-DeN6leiB.js +1 -0
- package/dist/interface/assets/cloud-outline-BHjUiP9q.js +1 -0
- package/dist/interface/assets/cloud-outline-BQddJElX.js +1 -0
- package/dist/interface/assets/cloudHandoff-DxhttWWd.js +1 -0
- package/dist/interface/assets/cog-Batjj1se.js +1 -0
- package/dist/interface/assets/copy-16-filled-DuAEBVEX.js +1 -0
- package/dist/interface/assets/copy-BeuZDsJN.js +1 -0
- package/dist/interface/assets/delete-DvMWXBFV.js +1 -0
- package/dist/interface/assets/dist-CcCNy5h7.js +1 -0
- package/dist/interface/assets/download-Cna5QEEj.js +1 -0
- package/dist/interface/assets/esm-B4Pd2w1t.js +1 -0
- package/dist/interface/assets/esm-B4l8-ACY.js +1 -0
- package/dist/interface/assets/esm-BE98HKPg.js +1 -0
- package/dist/interface/assets/esm-BNSLSv2m.js +1 -0
- package/dist/interface/assets/esm-BnT9fzsT.js +1 -0
- package/dist/interface/assets/esm-C-uLCRX1.js +1 -0
- package/dist/interface/assets/esm-C6JCcz6o.js +1 -0
- package/dist/interface/assets/esm-D5_rxfjE.js +1 -0
- package/dist/interface/assets/esm-D6ymjVa1.js +1 -0
- package/dist/interface/assets/esm-D8teZoG1.js +1 -0
- package/dist/interface/assets/esm-DnSGrmvg.js +1 -0
- package/dist/interface/assets/esm-DqkQVzkL.js +1 -0
- package/dist/interface/assets/esm-tnu6qUMk.js +1 -0
- package/dist/interface/assets/eventIcons-2hVCNchU.css +1 -0
- package/dist/interface/assets/eventIcons-DVykqtE5.js +1 -0
- package/dist/interface/assets/face-recognition-5Yp1IcUb.js +1 -0
- package/dist/interface/assets/github-37yEERpu.js +1 -0
- package/dist/interface/assets/grid-fill-BGU3gqir.js +1 -0
- package/dist/interface/assets/hasPermission-DIF0bX8u.js +1 -0
- package/dist/interface/assets/home-sSF_NnOu.js +1 -0
- package/dist/interface/assets/information-outline-fu18_QSH.js +1 -0
- package/dist/interface/assets/instances-DGPhZWRw.js +1 -0
- package/dist/interface/assets/lightbulb-outline-DWc53kV7.js +1 -0
- package/dist/interface/assets/locale-Bm1nXzqV.js +1 -0
- package/dist/interface/assets/main-BqVSZVz1.css +1 -0
- package/dist/interface/assets/main-D1gFWXGG.js +3 -0
- package/dist/interface/assets/microphone-ChDR4mkG.js +1 -0
- package/dist/interface/assets/native-Cq3ra8E-.js +1 -0
- package/dist/interface/assets/native-DfLBhmBo.js +1 -0
- package/dist/interface/assets/nodeDefinitions-BLSMZueH.js +1 -0
- package/dist/interface/assets/notifications-DNRzOl89.js +1 -0
- package/dist/interface/assets/play-solid-B_749j1A.js +1 -0
- package/dist/interface/assets/plugin-C1NakF2p.js +1 -0
- package/dist/interface/assets/plugins-DzRwEcA4.js +1 -0
- package/dist/interface/assets/plus-B5eEboLZ.js +1 -0
- package/dist/interface/assets/plus-Dis0MPt8.js +1 -0
- package/dist/interface/assets/power-CxGfHa98.js +1 -0
- package/dist/interface/assets/ring-resize-fOkdAS5R.js +1 -0
- package/dist/interface/assets/rolldown-runtime-CMxvf4Kt.js +1 -0
- package/dist/interface/assets/round-alt-arrow-left-bold-ekP_ATNV.js +1 -0
- package/dist/interface/assets/round-restart-alt-BWTTuG_j.js +1 -0
- package/dist/interface/assets/round-restart-alt-CJgRaJjF.css +1 -0
- package/dist/interface/assets/router-CuAn6JZ_.css +1 -0
- package/dist/interface/assets/router-DGyFln7e.js +2 -0
- package/dist/interface/assets/routerState-DMVeYr60.js +1 -0
- package/dist/interface/assets/search-YdrT6au7.js +1 -0
- package/dist/interface/assets/server-BWxbeZzY.js +1 -0
- package/dist/interface/assets/settings-D2-mWioF.js +1 -0
- package/dist/interface/assets/shares-BLuBJftj.js +1 -0
- package/dist/interface/assets/shield-check-DFR-xg-g.js +1 -0
- package/dist/interface/assets/terminal-BYi6cqd4.js +1 -0
- package/dist/interface/assets/theme-D08Upl8q.js +1 -0
- package/dist/interface/assets/trash-2-Du7oioNA.js +1 -0
- package/dist/interface/assets/trash-can-YTXLzAmt.js +1 -0
- package/dist/interface/assets/trash-fill-ZI3YYgNp.js +1 -0
- package/dist/interface/assets/types-B_isDU64.js +1 -0
- package/dist/interface/assets/types-BxFyoO54.js +1 -0
- package/dist/interface/assets/types-kxdn9XBW.js +1 -0
- package/dist/interface/assets/ui-aYGNqaHi.js +1 -0
- package/dist/interface/assets/upload-Chr4Uunq.js +1 -0
- package/dist/interface/assets/useBiometricCredentials-B-zA6b-X.js +1 -0
- package/dist/interface/assets/useCameraOptions-0w0LNh72.js +1 -0
- package/dist/interface/assets/useCuiCameraDrawer-Dn97MLFe.js +1 -0
- package/dist/interface/assets/useCuiDialog-BbkaNkQN.js +2 -0
- package/dist/interface/assets/useElectron-mh8HQUAI.js +1 -0
- package/dist/interface/assets/useFileDownload-g3sM8lp6.js +1 -0
- package/dist/interface/assets/useLogsSocket-CZld674d.js +4 -0
- package/dist/interface/assets/useLogsSocket-pqdh7jNG.css +1 -0
- package/dist/interface/assets/useSharedComposables-riqEUgwX.js +1 -0
- package/dist/interface/assets/useStreamStatus-2lguNuWT.js +1 -0
- package/dist/interface/assets/users.schema-CUZOYClB.js +1 -0
- package/dist/interface/assets/vendor-DmhYd_sB.js +22 -0
- package/dist/interface/assets/vendor-ace-B9YSA4ub.js +1085 -0
- package/dist/interface/assets/vendor-cameraui-DggYb17u.js +1976 -0
- package/dist/interface/assets/vendor-capacitor-IA6kwsx8.js +2 -0
- package/dist/interface/assets/vendor-chart-Dnlz1Jgy.js +3 -0
- package/dist/interface/assets/vendor-core-B6F-imJj.js +1 -0
- package/dist/interface/assets/vendor-dnd-Dp0ottZI.js +2 -0
- package/dist/interface/assets/vendor-draggabilly-C2ae3o70.js +1 -0
- package/dist/interface/assets/vendor-gridstack-Dxjc1EeA.js +3 -0
- package/dist/interface/assets/vendor-gridstack-Rg2RhwAc.css +1 -0
- package/dist/interface/assets/vendor-leaflet-B5L2Aw8Y.js +1 -0
- package/dist/interface/assets/vendor-leaflet-vh-t_kPv.css +1 -0
- package/dist/interface/assets/vendor-markdown-D3nVi7gw.js +15 -0
- package/dist/interface/assets/vendor-markdown-DtOhvyRx.css +1 -0
- package/dist/interface/assets/vendor-primevue--pcuf6kA.js +4289 -0
- package/dist/interface/assets/vendor-vueflow-CBuKPASC.js +26 -0
- package/dist/interface/assets/vendor-xterm-BrP-ENHg.css +1 -0
- package/dist/interface/assets/vendor-xterm-D8Z_h2U0.js +145 -0
- package/dist/interface/assets/vendor-zod-CmGeQCqy.js +127 -0
- package/dist/interface/assets/view-grid-96p9T-KQ.js +1 -0
- package/dist/interface/assets/view-grid-SdzaC3O_.css +1 -0
- package/dist/interface/assets/web-3Sh2qjiP.js +1 -0
- package/dist/interface/assets/web-B0BK4Q2M.js +1 -0
- package/dist/interface/assets/web-BjKL51lK-DzG2kK8Q.js +1 -0
- package/dist/interface/assets/web-COttRPza.js +1 -0
- package/dist/interface/assets/web-Ck1J3gUt.js +1 -0
- package/dist/interface/assets/web-DPxPmEOR.js +1 -0
- package/dist/interface/assets/web-DRprnZwc.js +1 -0
- package/dist/interface/assets/web-DusfFKJE.js +1 -0
- package/dist/interface/assets/web-U3ajDFzM.js +1 -0
- package/dist/interface/assets/web-jcLz0P7f.js +1 -0
- package/dist/interface/assets/web-tQAiC0W2.js +1 -0
- package/dist/interface/assets/web-x9pvmNMf.js +1 -0
- package/dist/interface/assets/workbox-window.prod.es5-DkzC-kEO.js +1 -0
- package/dist/interface/assets/worker-base-ybazWkNy.js +1337 -0
- package/dist/interface/assets/worker-yaml-crtWQpDN.js +5824 -0
- package/dist/interface/assets/zoom-in-zoFmMkYM.js +1 -0
- package/dist/interface/index.html +96 -45
- package/dist/interface/manifest.webmanifest +1 -1
- package/dist/interface/og-share.png +0 -0
- package/dist/interface/sw.js +1 -1
- package/dist/interface/workbox-5f44db27.js +1 -0
- package/dist/server/package.json +73 -79
- package/dist/server/requirements.txt +9 -14
- package/dist/server/src/_camera_ui_tools/camera_ui_common/__init__.py +19 -11
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/__init__.py +23 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/object_path.py +35 -22
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/promise.py +41 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/reactive.py +17 -14
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/signal_handler.py +12 -4
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/subscribed.py +15 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/task.py +9 -3
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/thread.py +10 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/utils.py +21 -13
- package/dist/server/src/_camera_ui_tools/camera_ui_common/logger_service/__init__.py +8 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/logger_service/logger.py +237 -99
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/__init__.py +77 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/channel.py +321 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/chunking.py +290 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/client.py +1694 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/codec.py +73 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/decorators.py +307 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/errors.py +76 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/executor.py +29 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/handler.py +523 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/service.py +524 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/svcm.py +15 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/types.py +427 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/utils.py +332 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +515 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/__init__.py +173 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +256 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +135 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +432 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/enums.py +111 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/events.py +146 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/frames.py +21 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/streaming.py +188 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/__init__.py +92 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/camera_config_internal.py +46 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/camera_enums.py +9 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/camera_wire.py +15 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/event_emitter.py +102 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/manager_rpc.py +27 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/sensor_rpc.py +89 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/sensor_triggers.py +4 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/shared_utils.py +73 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/streaming_internal.py +16 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/manager/__init__.py +348 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/observable/__init__.py +557 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +104 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/api.py +137 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +164 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/helper.py +242 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +427 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/notifier.py +142 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/oauth.py +150 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +203 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/audio.py +241 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +551 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/battery.py +167 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/classifier.py +196 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/clip.py +67 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/contact.py +88 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/detection.py +60 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/doorbell.py +122 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face.py +184 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/garage.py +174 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/humidity.py +79 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/leak.py +88 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/license_plate.py +186 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/light.py +157 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/lock.py +149 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/motion.py +203 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/object.py +210 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/occupancy.py +88 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/ptz.py +256 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/security_system.py +157 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/siren.py +150 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/smoke.py +88 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/spec.py +56 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/switch.py +107 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/temperature.py +80 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/storage/__init__.py +695 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/types.py +54 -0
- package/dist/server/src/api/controllers/api.controller.d.ts +2 -2
- package/dist/server/src/api/controllers/api.controller.js +3 -3
- package/dist/server/src/api/controllers/api.controller.js.map +1 -1
- package/dist/server/src/api/controllers/auth.controller.d.ts +20 -5
- package/dist/server/src/api/controllers/auth.controller.js +418 -134
- package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
- package/dist/server/src/api/controllers/automations.controller.d.ts +17 -0
- package/dist/server/src/api/controllers/automations.controller.js +146 -0
- package/dist/server/src/api/controllers/automations.controller.js.map +1 -0
- package/dist/server/src/api/controllers/backup.controller.js +0 -1
- package/dist/server/src/api/controllers/backup.controller.js.map +1 -1
- package/dist/server/src/api/controllers/cameras.controller.d.ts +14 -5
- package/dist/server/src/api/controllers/cameras.controller.js +490 -69
- package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
- package/dist/server/src/api/controllers/config.controller.d.ts +2 -2
- package/dist/server/src/api/controllers/config.controller.js +2 -2
- package/dist/server/src/api/controllers/config.controller.js.map +1 -1
- package/dist/server/src/api/controllers/download.controller.d.ts +7 -0
- package/dist/server/src/api/controllers/download.controller.js +12 -0
- package/dist/server/src/api/controllers/download.controller.js.map +1 -0
- package/dist/server/src/api/controllers/files.controller.js.map +1 -1
- package/dist/server/src/api/controllers/frameWorkers.controller.d.ts +1 -1
- package/dist/server/src/api/controllers/frameWorkers.controller.js +1 -1
- package/dist/server/src/api/controllers/frameWorkers.controller.js.map +1 -1
- package/dist/server/src/api/controllers/instances.controller.d.ts +15 -0
- package/dist/server/src/api/controllers/instances.controller.js +100 -0
- package/dist/server/src/api/controllers/instances.controller.js.map +1 -0
- package/dist/server/src/api/controllers/notifications.controller.d.ts +15 -0
- package/dist/server/src/api/controllers/notifications.controller.js +121 -0
- package/dist/server/src/api/controllers/notifications.controller.js.map +1 -0
- package/dist/server/src/api/controllers/oauthCallback.controller.d.ts +15 -0
- package/dist/server/src/api/controllers/oauthCallback.controller.js +53 -0
- package/dist/server/src/api/controllers/oauthCallback.controller.js.map +1 -0
- package/dist/server/src/api/controllers/plugins.controller.d.ts +5 -9
- package/dist/server/src/api/controllers/plugins.controller.js +129 -246
- package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
- package/dist/server/src/api/controllers/remote.controller.d.ts +27 -0
- package/dist/server/src/api/controllers/remote.controller.js +247 -0
- package/dist/server/src/api/controllers/remote.controller.js.map +1 -0
- package/dist/server/src/api/controllers/server.controller.d.ts +24 -0
- package/dist/server/src/api/controllers/server.controller.js +236 -0
- package/dist/server/src/api/controllers/server.controller.js.map +1 -0
- package/dist/server/src/api/controllers/shares.controller.d.ts +12 -0
- package/dist/server/src/api/controllers/shares.controller.js +121 -0
- package/dist/server/src/api/controllers/shares.controller.js.map +1 -0
- package/dist/server/src/api/controllers/tunnel.controller.d.ts +9 -0
- package/dist/server/src/api/controllers/tunnel.controller.js +39 -0
- package/dist/server/src/api/controllers/tunnel.controller.js.map +1 -0
- package/dist/server/src/api/controllers/users.controller.d.ts +2 -2
- package/dist/server/src/api/controllers/users.controller.js +11 -2
- package/dist/server/src/api/controllers/users.controller.js.map +1 -1
- package/dist/server/src/api/controllers/workers.controller.d.ts +14 -0
- package/dist/server/src/api/controllers/workers.controller.js +69 -0
- package/dist/server/src/api/controllers/workers.controller.js.map +1 -0
- package/dist/server/src/api/database/checks.js +2 -2
- package/dist/server/src/api/database/checks.js.map +1 -1
- package/dist/server/src/api/database/constants.d.ts +10 -1
- package/dist/server/src/api/database/constants.js +10 -1
- package/dist/server/src/api/database/constants.js.map +1 -1
- package/dist/server/src/api/database/index.d.ts +24 -12
- package/dist/server/src/api/database/index.js +182 -126
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/database/migration.d.ts +4 -13
- package/dist/server/src/api/database/migration.js +20 -80
- package/dist/server/src/api/database/migration.js.map +1 -1
- package/dist/server/src/api/database/migrations/index.d.ts +2 -0
- package/dist/server/src/api/database/migrations/index.js +24 -0
- package/dist/server/src/api/database/migrations/index.js.map +1 -0
- package/dist/server/src/api/database/migrations/types.d.ts +13 -0
- package/dist/server/src/api/database/migrations/types.js.map +1 -0
- package/dist/server/src/api/database/selfcheck.js +3 -0
- package/dist/server/src/api/database/selfcheck.js.map +1 -1
- package/dist/server/src/api/database/types.d.ts +173 -28
- package/dist/server/src/api/index.d.ts +8 -2
- package/dist/server/src/api/index.js +122 -43
- package/dist/server/src/api/index.js.map +1 -1
- package/dist/server/src/api/middlewares/authPermission.middleware.d.ts +4 -4
- package/dist/server/src/api/middlewares/authPermission.middleware.js +8 -8
- package/dist/server/src/api/middlewares/authPermission.middleware.js.map +1 -1
- package/dist/server/src/api/middlewares/authValidation.middleware.d.ts +5 -2
- package/dist/server/src/api/middlewares/authValidation.middleware.js +75 -114
- package/dist/server/src/api/middlewares/authValidation.middleware.js.map +1 -1
- package/dist/server/src/api/middlewares/pagination.middleware.d.ts +1 -1
- package/dist/server/src/api/middlewares/pagination.middleware.js +2 -2
- package/dist/server/src/api/middlewares/pagination.middleware.js.map +1 -1
- package/dist/server/src/api/middlewares/socketAuth.middleware.d.ts +2 -2
- package/dist/server/src/api/middlewares/socketAuth.middleware.js +5 -4
- package/dist/server/src/api/middlewares/socketAuth.middleware.js.map +1 -1
- package/dist/server/src/api/plugins/header.plugin.js +1 -1
- package/dist/server/src/api/plugins/header.plugin.js.map +1 -1
- package/dist/server/src/api/plugins/logger.plugin.js +13 -10
- package/dist/server/src/api/plugins/logger.plugin.js.map +1 -1
- package/dist/server/src/api/plugins/proxy.plugin.js +76 -105
- package/dist/server/src/api/plugins/proxy.plugin.js.map +1 -1
- package/dist/server/src/api/plugins/system.plugin.js.map +1 -1
- package/dist/server/src/api/plugins/useragent.plugin.d.ts +2 -2
- package/dist/server/src/api/plugins/useragent.plugin.js +2 -2
- package/dist/server/src/api/plugins/useragent.plugin.js.map +1 -1
- package/dist/server/src/api/routes/api.routes.js +18 -2
- package/dist/server/src/api/routes/api.routes.js.map +1 -1
- package/dist/server/src/api/routes/auth.routes.js +131 -9
- package/dist/server/src/api/routes/auth.routes.js.map +1 -1
- package/dist/server/src/api/routes/automations.routes.d.ts +2 -0
- package/dist/server/src/api/routes/automations.routes.js +128 -0
- package/dist/server/src/api/routes/automations.routes.js.map +1 -0
- package/dist/server/src/api/routes/backup.routes.js +6 -0
- package/dist/server/src/api/routes/backup.routes.js.map +1 -1
- package/dist/server/src/api/routes/cameras.routes.js +346 -33
- package/dist/server/src/api/routes/cameras.routes.js.map +1 -1
- package/dist/server/src/api/routes/config.routes.js +26 -4
- package/dist/server/src/api/routes/config.routes.js.map +1 -1
- package/dist/server/src/api/routes/download.routes.d.ts +2 -0
- package/dist/server/src/api/routes/download.routes.js +16 -0
- package/dist/server/src/api/routes/download.routes.js.map +1 -0
- package/dist/server/src/api/routes/files.routes.js +7 -1
- package/dist/server/src/api/routes/files.routes.js.map +1 -1
- package/dist/server/src/api/routes/frameWorkers.routes.js +26 -4
- package/dist/server/src/api/routes/frameWorkers.routes.js.map +1 -1
- package/dist/server/src/api/routes/index.d.ts +1 -0
- package/dist/server/src/api/routes/index.js +23 -3
- package/dist/server/src/api/routes/index.js.map +1 -1
- package/dist/server/src/api/routes/instances.routes.d.ts +2 -0
- package/dist/server/src/api/routes/instances.routes.js +105 -0
- package/dist/server/src/api/routes/instances.routes.js.map +1 -0
- package/dist/server/src/api/routes/notifications.routes.d.ts +2 -0
- package/dist/server/src/api/routes/notifications.routes.js +102 -0
- package/dist/server/src/api/routes/notifications.routes.js.map +1 -0
- package/dist/server/src/api/routes/oauthCallback.routes.d.ts +2 -0
- package/dist/server/src/api/routes/oauthCallback.routes.js +17 -0
- package/dist/server/src/api/routes/oauthCallback.routes.js.map +1 -0
- package/dist/server/src/api/routes/plugins.routes.js +259 -95
- package/dist/server/src/api/routes/plugins.routes.js.map +1 -1
- package/dist/server/src/api/routes/remote.routes.d.ts +2 -0
- package/dist/server/src/api/routes/remote.routes.js +164 -0
- package/dist/server/src/api/routes/remote.routes.js.map +1 -0
- package/dist/server/src/api/routes/server.routes.d.ts +2 -0
- package/dist/server/src/api/routes/server.routes.js +130 -0
- package/dist/server/src/api/routes/server.routes.js.map +1 -0
- package/dist/server/src/api/routes/shares.routes.d.ts +2 -0
- package/dist/server/src/api/routes/shares.routes.js +71 -0
- package/dist/server/src/api/routes/shares.routes.js.map +1 -0
- package/dist/server/src/api/routes/tunnel.routes.d.ts +2 -0
- package/dist/server/src/api/routes/tunnel.routes.js +14 -0
- package/dist/server/src/api/routes/tunnel.routes.js.map +1 -0
- package/dist/server/src/api/routes/users.routes.js +92 -12
- package/dist/server/src/api/routes/users.routes.js.map +1 -1
- package/dist/server/src/api/routes/workers.routes.d.ts +2 -0
- package/dist/server/src/api/routes/workers.routes.js +71 -0
- package/dist/server/src/api/routes/workers.routes.js.map +1 -0
- package/dist/server/src/api/schemas/auth.schema.d.ts +35 -0
- package/dist/server/src/api/schemas/auth.schema.js +37 -0
- package/dist/server/src/api/schemas/auth.schema.js.map +1 -0
- package/dist/server/src/api/schemas/automations.schema.d.ts +151 -0
- package/dist/server/src/api/schemas/automations.schema.js +84 -0
- package/dist/server/src/api/schemas/automations.schema.js.map +1 -0
- package/dist/server/src/api/schemas/backup.schema.d.ts +15 -190
- package/dist/server/src/api/schemas/backup.schema.js +5 -23
- package/dist/server/src/api/schemas/backup.schema.js.map +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +1062 -1647
- package/dist/server/src/api/schemas/cameras.schema.js +218 -49
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/schemas/common.schema.d.ts +7 -0
- package/dist/server/src/api/schemas/common.schema.js +7 -0
- package/dist/server/src/api/schemas/common.schema.js.map +1 -0
- package/dist/server/src/api/schemas/config.schema.d.ts +41 -79
- package/dist/server/src/api/schemas/config.schema.js +19 -1
- package/dist/server/src/api/schemas/config.schema.js.map +1 -1
- package/dist/server/src/api/schemas/download.schema.d.ts +5 -0
- package/dist/server/src/api/schemas/download.schema.js +5 -0
- package/dist/server/src/api/schemas/download.schema.js.map +1 -0
- package/dist/server/src/api/schemas/files.schema.d.ts +5 -0
- package/dist/server/src/api/schemas/files.schema.js +5 -0
- package/dist/server/src/api/schemas/files.schema.js.map +1 -0
- package/dist/server/src/api/schemas/frameWorkers.schema.d.ts +5 -0
- package/dist/server/src/api/schemas/frameWorkers.schema.js +5 -0
- package/dist/server/src/api/schemas/frameWorkers.schema.js.map +1 -0
- package/dist/server/src/api/schemas/go2rtc.schema.d.ts +90 -640
- package/dist/server/src/api/schemas/go2rtc.schema.js +1 -16
- package/dist/server/src/api/schemas/go2rtc.schema.js.map +1 -1
- package/dist/server/src/api/schemas/instances.schema.d.ts +23 -0
- package/dist/server/src/api/schemas/instances.schema.js +24 -0
- package/dist/server/src/api/schemas/instances.schema.js.map +1 -0
- package/dist/server/src/api/schemas/notifications.schema.d.ts +26 -0
- package/dist/server/src/api/schemas/notifications.schema.js +25 -0
- package/dist/server/src/api/schemas/notifications.schema.js.map +1 -0
- package/dist/server/src/api/schemas/oauthCallback.schema.d.ts +11 -0
- package/dist/server/src/api/schemas/oauthCallback.schema.js +10 -0
- package/dist/server/src/api/schemas/oauthCallback.schema.js.map +1 -0
- package/dist/server/src/api/schemas/plugins.schema.d.ts +62 -59
- package/dist/server/src/api/schemas/plugins.schema.js +54 -81
- package/dist/server/src/api/schemas/plugins.schema.js.map +1 -1
- package/dist/server/src/api/schemas/remote.schema.d.ts +44 -0
- package/dist/server/src/api/schemas/remote.schema.js +80 -0
- package/dist/server/src/api/schemas/remote.schema.js.map +1 -0
- package/dist/server/src/api/schemas/server.schema.d.ts +9 -0
- package/dist/server/src/api/schemas/server.schema.js +12 -0
- package/dist/server/src/api/schemas/server.schema.js.map +1 -0
- package/dist/server/src/api/schemas/shares.schema.d.ts +21 -0
- package/dist/server/src/api/schemas/shares.schema.js +22 -0
- package/dist/server/src/api/schemas/shares.schema.js.map +1 -0
- package/dist/server/src/api/schemas/storage.schema.d.ts +5 -15
- package/dist/server/src/api/schemas/users.schema.d.ts +294 -786
- package/dist/server/src/api/schemas/users.schema.js +76 -39
- package/dist/server/src/api/schemas/users.schema.js.map +1 -1
- package/dist/server/src/api/schemas/workers.schema.d.ts +14 -0
- package/dist/server/src/api/schemas/workers.schema.js +12 -0
- package/dist/server/src/api/schemas/workers.schema.js.map +1 -0
- package/dist/server/src/api/services/auth.service.d.ts +27 -17
- package/dist/server/src/api/services/auth.service.js +106 -134
- package/dist/server/src/api/services/auth.service.js.map +1 -1
- package/dist/server/src/api/services/automations.service.d.ts +24 -0
- package/dist/server/src/api/services/automations.service.js +157 -0
- package/dist/server/src/api/services/automations.service.js.map +1 -0
- package/dist/server/src/api/services/backup.service.js +0 -5
- package/dist/server/src/api/services/backup.service.js.map +1 -1
- package/dist/server/src/api/services/cameras.service.d.ts +28 -15
- package/dist/server/src/api/services/cameras.service.js +532 -305
- package/dist/server/src/api/services/cameras.service.js.map +1 -1
- package/dist/server/src/api/services/downloads.service.d.ts +9 -0
- package/dist/server/src/api/services/downloads.service.js +20 -0
- package/dist/server/src/api/services/downloads.service.js.map +1 -0
- package/dist/server/src/api/services/instances.service.d.ts +52 -0
- package/dist/server/src/api/services/instances.service.js +344 -0
- package/dist/server/src/api/services/instances.service.js.map +1 -0
- package/dist/server/src/api/services/notifications.service.d.ts +21 -0
- package/dist/server/src/api/services/notifications.service.js +48 -0
- package/dist/server/src/api/services/notifications.service.js.map +1 -0
- package/dist/server/src/api/services/plugins.service.js +31 -35
- package/dist/server/src/api/services/plugins.service.js.map +1 -1
- package/dist/server/src/api/services/remote.service.d.ts +35 -0
- package/dist/server/src/api/services/remote.service.js +207 -0
- package/dist/server/src/api/services/remote.service.js.map +1 -0
- package/dist/server/src/api/services/server.service.d.ts +15 -0
- package/dist/server/src/api/services/server.service.js +75 -0
- package/dist/server/src/api/services/server.service.js.map +1 -0
- package/dist/server/src/api/services/shares.service.d.ts +46 -0
- package/dist/server/src/api/services/shares.service.js +233 -0
- package/dist/server/src/api/services/shares.service.js.map +1 -0
- package/dist/server/src/api/services/twoFactor.service.d.ts +22 -0
- package/dist/server/src/api/services/twoFactor.service.js +81 -0
- package/dist/server/src/api/services/twoFactor.service.js.map +1 -0
- package/dist/server/src/api/services/users.service.d.ts +9 -5
- package/dist/server/src/api/services/users.service.js +157 -121
- package/dist/server/src/api/services/users.service.js.map +1 -1
- package/dist/server/src/api/services/workers.service.d.ts +5 -0
- package/dist/server/src/api/services/workers.service.js +19 -0
- package/dist/server/src/api/services/workers.service.js.map +1 -0
- package/dist/server/src/api/types/index.d.ts +350 -133
- package/dist/server/src/api/types/index.js +5 -4
- package/dist/server/src/api/types/index.js.map +1 -1
- package/dist/server/src/api/utils/cert.js +1 -1
- package/dist/server/src/api/utils/cert.js.map +1 -1
- package/dist/server/src/api/utils/encryption.d.ts +5 -0
- package/dist/server/src/api/utils/encryption.js +25 -0
- package/dist/server/src/api/utils/encryption.js.map +1 -0
- package/dist/server/src/api/utils/plugin.d.ts +4 -0
- package/dist/server/src/api/utils/plugin.js +8 -0
- package/dist/server/src/api/utils/plugin.js.map +1 -0
- package/dist/server/src/api/utils/regex.d.ts +3 -0
- package/dist/server/src/api/utils/regex.js +4 -0
- package/dist/server/src/api/utils/regex.js.map +1 -0
- package/dist/server/src/api/utils/upload.d.ts +3 -0
- package/dist/server/src/api/utils/upload.js +23 -0
- package/dist/server/src/api/utils/upload.js.map +1 -0
- package/dist/server/src/api/websocket/index.js +18 -16
- package/dist/server/src/api/websocket/index.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/cameras.d.ts +21 -0
- package/dist/server/src/api/websocket/nsp/cameras.js +152 -0
- package/dist/server/src/api/websocket/nsp/cameras.js.map +1 -0
- package/dist/server/src/api/websocket/nsp/logs.d.ts +1 -1
- package/dist/server/src/api/websocket/nsp/logs.js +65 -52
- package/dist/server/src/api/websocket/nsp/logs.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/main.d.ts +4 -1
- package/dist/server/src/api/websocket/nsp/main.js +29 -1
- package/dist/server/src/api/websocket/nsp/main.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/metrics.js +4 -4
- package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/notifications.d.ts +3 -3
- package/dist/server/src/api/websocket/nsp/notifications.js +10 -11
- package/dist/server/src/api/websocket/nsp/notifications.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/server.d.ts +4 -4
- package/dist/server/src/api/websocket/nsp/server.js +48 -27
- package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/status.d.ts +3 -3
- package/dist/server/src/api/websocket/nsp/status.js +3 -3
- package/dist/server/src/api/websocket/nsp/status.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/workers.d.ts +17 -0
- package/dist/server/src/api/websocket/nsp/workers.js +46 -0
- package/dist/server/src/api/websocket/nsp/workers.js.map +1 -0
- package/dist/server/src/api/websocket/types.d.ts +2 -1
- package/dist/server/src/api.d.ts +11 -16
- package/dist/server/src/api.js +62 -48
- package/dist/server/src/api.js.map +1 -1
- package/dist/server/src/automations/actions/cameraControl.d.ts +2 -0
- package/dist/server/src/automations/actions/cameraControl.js +35 -0
- package/dist/server/src/automations/actions/cameraControl.js.map +1 -0
- package/dist/server/src/automations/actions/delay.d.ts +2 -0
- package/dist/server/src/automations/actions/delay.js +8 -0
- package/dist/server/src/automations/actions/delay.js.map +1 -0
- package/dist/server/src/automations/actions/http.d.ts +2 -0
- package/dist/server/src/automations/actions/http.js +44 -0
- package/dist/server/src/automations/actions/http.js.map +1 -0
- package/dist/server/src/automations/actions/index.d.ts +4 -0
- package/dist/server/src/automations/actions/index.js +20 -0
- package/dist/server/src/automations/actions/index.js.map +1 -0
- package/dist/server/src/automations/actions/notification.d.ts +2 -0
- package/dist/server/src/automations/actions/notification.js +76 -0
- package/dist/server/src/automations/actions/notification.js.map +1 -0
- package/dist/server/src/automations/actions/plugin.d.ts +3 -0
- package/dist/server/src/automations/actions/plugin.js +73 -0
- package/dist/server/src/automations/actions/plugin.js.map +1 -0
- package/dist/server/src/automations/actions/sensor.d.ts +2 -0
- package/dist/server/src/automations/actions/sensor.js +17 -0
- package/dist/server/src/automations/actions/sensor.js.map +1 -0
- package/dist/server/src/automations/actions/snapshot.d.ts +2 -0
- package/dist/server/src/automations/actions/snapshot.js +20 -0
- package/dist/server/src/automations/actions/snapshot.js.map +1 -0
- package/dist/server/src/automations/actions/types.d.ts +14 -0
- package/dist/server/src/automations/actions/types.js.map +1 -0
- package/dist/server/src/automations/actions/variable.d.ts +2 -0
- package/dist/server/src/automations/actions/variable.js +17 -0
- package/dist/server/src/automations/actions/variable.js.map +1 -0
- package/dist/server/src/automations/conditions/ifelse.d.ts +3 -0
- package/dist/server/src/automations/conditions/ifelse.js +39 -0
- package/dist/server/src/automations/conditions/ifelse.js.map +1 -0
- package/dist/server/src/automations/conditions/index.d.ts +4 -0
- package/dist/server/src/automations/conditions/index.js +20 -0
- package/dist/server/src/automations/conditions/index.js.map +1 -0
- package/dist/server/src/automations/conditions/sensorState.d.ts +3 -0
- package/dist/server/src/automations/conditions/sensorState.js +21 -0
- package/dist/server/src/automations/conditions/sensorState.js.map +1 -0
- package/dist/server/src/automations/conditions/switch.d.ts +3 -0
- package/dist/server/src/automations/conditions/switch.js +9 -0
- package/dist/server/src/automations/conditions/switch.js.map +1 -0
- package/dist/server/src/automations/conditions/time.d.ts +3 -0
- package/dist/server/src/automations/conditions/time.js +24 -0
- package/dist/server/src/automations/conditions/time.js.map +1 -0
- package/dist/server/src/automations/conditions/types.d.ts +7 -0
- package/dist/server/src/automations/conditions/types.js.map +1 -0
- package/dist/server/src/automations/context.d.ts +48 -0
- package/dist/server/src/automations/context.js +146 -0
- package/dist/server/src/automations/context.js.map +1 -0
- package/dist/server/src/automations/engine.d.ts +35 -0
- package/dist/server/src/automations/engine.js +321 -0
- package/dist/server/src/automations/engine.js.map +1 -0
- package/dist/server/src/automations/haversine.d.ts +1 -0
- package/dist/server/src/automations/haversine.js +9 -0
- package/dist/server/src/automations/haversine.js.map +1 -0
- package/dist/server/src/automations/parseValue.d.ts +1 -0
- package/dist/server/src/automations/parseValue.js +11 -0
- package/dist/server/src/automations/parseValue.js.map +1 -0
- package/dist/server/src/automations/pluginMethodRegistry.d.ts +37 -0
- package/dist/server/src/automations/pluginMethodRegistry.js +162 -0
- package/dist/server/src/automations/pluginMethodRegistry.js.map +1 -0
- package/dist/server/src/automations/runner.d.ts +23 -0
- package/dist/server/src/automations/runner.js +166 -0
- package/dist/server/src/automations/runner.js.map +1 -0
- package/dist/server/src/automations/triggers/detection.d.ts +3 -0
- package/dist/server/src/automations/triggers/detection.js +102 -0
- package/dist/server/src/automations/triggers/detection.js.map +1 -0
- package/dist/server/src/automations/triggers/geofence.d.ts +13 -0
- package/dist/server/src/automations/triggers/geofence.js +8 -0
- package/dist/server/src/automations/triggers/geofence.js.map +1 -0
- package/dist/server/src/automations/triggers/index.d.ts +9 -0
- package/dist/server/src/automations/triggers/index.js +7 -0
- package/dist/server/src/automations/triggers/index.js.map +1 -0
- package/dist/server/src/automations/triggers/schedule.d.ts +3 -0
- package/dist/server/src/automations/triggers/schedule.js +54 -0
- package/dist/server/src/automations/triggers/schedule.js.map +1 -0
- package/dist/server/src/automations/triggers/sensor.d.ts +3 -0
- package/dist/server/src/automations/triggers/sensor.js +44 -0
- package/dist/server/src/automations/triggers/sensor.js.map +1 -0
- package/dist/server/src/automations/triggers/system.d.ts +3 -0
- package/dist/server/src/automations/triggers/system.js +31 -0
- package/dist/server/src/automations/triggers/system.js.map +1 -0
- package/dist/server/src/automations/triggers/types.d.ts +12 -0
- package/dist/server/src/automations/triggers/types.js.map +1 -0
- package/dist/server/src/automations/triggers/webhook.d.ts +7 -0
- package/dist/server/src/automations/triggers/webhook.js +8 -0
- package/dist/server/src/automations/triggers/webhook.js.map +1 -0
- package/dist/server/src/automations/utilities/imageInput.d.ts +2 -0
- package/dist/server/src/automations/utilities/imageInput.js +139 -0
- package/dist/server/src/automations/utilities/imageInput.js.map +1 -0
- package/dist/server/src/automations/utilities/index.d.ts +2 -0
- package/dist/server/src/automations/utilities/index.js +7 -0
- package/dist/server/src/automations/utilities/index.js.map +1 -0
- package/dist/server/src/automations/utilities/output.d.ts +2 -0
- package/dist/server/src/automations/utilities/output.js +10 -0
- package/dist/server/src/automations/utilities/output.js.map +1 -0
- package/dist/server/src/camera/controller.d.ts +56 -45
- package/dist/server/src/camera/controller.js +468 -326
- package/dist/server/src/camera/controller.js.map +1 -1
- package/dist/server/src/camera/decoder/audio-source.d.ts +34 -0
- package/dist/server/src/camera/decoder/audio-source.js +170 -0
- package/dist/server/src/camera/decoder/audio-source.js.map +1 -0
- package/dist/server/src/camera/decoder/cascade-manager.d.ts +22 -0
- package/dist/server/src/camera/decoder/cascade-manager.js +82 -0
- package/dist/server/src/camera/decoder/cascade-manager.js.map +1 -0
- package/dist/server/src/camera/decoder/child.d.ts +28 -0
- package/dist/server/src/camera/decoder/child.js +187 -0
- package/dist/server/src/camera/decoder/child.js.map +1 -0
- package/dist/server/src/camera/decoder/detection-coordinator.d.ts +142 -0
- package/dist/server/src/camera/decoder/detection-coordinator.js +1844 -0
- package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -0
- package/dist/server/src/camera/decoder/detection-pipeline.d.ts +41 -0
- package/dist/server/src/camera/decoder/detection-pipeline.js +216 -0
- package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -0
- package/dist/server/src/camera/decoder/dwell-manager.d.ts +23 -0
- package/dist/server/src/camera/decoder/dwell-manager.js +82 -0
- package/dist/server/src/camera/decoder/dwell-manager.js.map +1 -0
- package/dist/server/src/camera/decoder/event-manager.d.ts +97 -0
- package/dist/server/src/camera/decoder/event-manager.js +674 -0
- package/dist/server/src/camera/decoder/event-manager.js.map +1 -0
- package/dist/server/src/camera/decoder/frame-scaler.d.ts +53 -0
- package/dist/server/src/camera/decoder/frame-scaler.js +136 -0
- package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -0
- package/dist/server/src/camera/decoder/frame-source.d.ts +54 -0
- package/dist/server/src/camera/decoder/frame-source.js +341 -0
- package/dist/server/src/camera/decoder/frame-source.js.map +1 -0
- package/dist/server/src/camera/decoder/ptz-autotracker.d.ts +57 -0
- package/dist/server/src/camera/decoder/ptz-autotracker.js +369 -0
- package/dist/server/src/camera/decoder/ptz-autotracker.js.map +1 -0
- package/dist/server/src/camera/decoder/types.d.ts +7 -0
- package/dist/server/src/camera/decoder/types.js +6 -0
- package/dist/server/src/camera/decoder/types.js.map +1 -0
- package/dist/server/src/camera/decoder/worker.d.ts +48 -0
- package/dist/server/src/camera/decoder/worker.js +465 -0
- package/dist/server/src/camera/decoder/worker.js.map +1 -0
- package/dist/server/src/camera/index.d.ts +43 -59
- package/dist/server/src/camera/index.js +72 -438
- package/dist/server/src/camera/index.js.map +1 -1
- package/dist/server/src/camera/sensors/controller.d.ts +96 -0
- package/dist/server/src/camera/sensors/controller.js +517 -0
- package/dist/server/src/camera/sensors/controller.js.map +1 -0
- package/dist/server/src/camera/sensors/sensor.d.ts +34 -0
- package/dist/server/src/camera/sensors/sensor.js +176 -0
- package/dist/server/src/camera/sensors/sensor.js.map +1 -0
- package/dist/server/src/camera/sensors/types.d.ts +27 -0
- package/dist/server/src/camera/sensors/types.js +225 -0
- package/dist/server/src/camera/sensors/types.js.map +1 -0
- package/dist/server/src/camera/streaming/fmp4-session.d.ts +10 -12
- package/dist/server/src/camera/streaming/fmp4-session.js +162 -268
- package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -1
- package/dist/server/src/camera/streaming/rtp-session.d.ts +19 -0
- package/dist/server/src/camera/streaming/rtp-session.js +363 -0
- package/dist/server/src/camera/streaming/rtp-session.js.map +1 -0
- package/dist/server/src/camera/utils/filter.d.ts +6 -0
- package/dist/server/src/camera/utils/filter.js +83 -0
- package/dist/server/src/camera/utils/filter.js.map +1 -0
- package/dist/server/src/camera/utils.d.ts +2 -7
- package/dist/server/src/camera/utils.js +53 -194
- package/dist/server/src/camera/utils.js.map +1 -1
- package/dist/server/src/go2rtc/api/index.d.ts +16 -0
- package/dist/server/src/go2rtc/api/index.js +33 -0
- package/dist/server/src/go2rtc/api/index.js.map +1 -0
- package/dist/server/src/go2rtc/api/instance.d.ts +7 -0
- package/dist/server/src/go2rtc/api/instance.js +49 -0
- package/dist/server/src/go2rtc/api/instance.js.map +1 -0
- package/dist/server/src/go2rtc/api/manager.d.ts +11 -0
- package/dist/server/src/go2rtc/api/manager.js +38 -0
- package/dist/server/src/go2rtc/api/manager.js.map +1 -0
- package/dist/server/src/go2rtc/api/routes/application.d.ts +9 -0
- package/dist/server/src/go2rtc/api/routes/application.js +40 -0
- package/dist/server/src/go2rtc/api/routes/application.js.map +1 -0
- package/dist/server/src/go2rtc/api/routes/config.d.ts +8 -0
- package/dist/server/src/go2rtc/api/routes/config.js +42 -0
- package/dist/server/src/go2rtc/api/routes/config.js.map +1 -0
- package/dist/server/src/go2rtc/api/routes/discover.d.ts +30 -0
- package/dist/server/src/go2rtc/api/routes/discover.js +158 -0
- package/dist/server/src/go2rtc/api/routes/discover.js.map +1 -0
- package/dist/server/src/go2rtc/api/routes/snapshot.d.ts +8 -0
- package/dist/server/src/go2rtc/api/routes/snapshot.js +34 -0
- package/dist/server/src/go2rtc/api/routes/snapshot.js.map +1 -0
- package/dist/server/src/go2rtc/api/routes/streams.d.ts +18 -0
- package/dist/server/src/go2rtc/api/routes/streams.js +161 -0
- package/dist/server/src/go2rtc/api/routes/streams.js.map +1 -0
- package/dist/server/src/go2rtc/index.d.ts +7 -2
- package/dist/server/src/go2rtc/index.js +52 -30
- package/dist/server/src/go2rtc/index.js.map +1 -1
- package/dist/server/src/go2rtc/types.d.ts +167 -1
- package/dist/server/src/go2rtc/types.js +3 -0
- package/dist/server/src/go2rtc/types.js.map +1 -1
- package/dist/server/src/internal-bus.d.ts +41 -0
- package/dist/server/src/internal-bus.js +19 -0
- package/dist/server/src/internal-bus.js.map +1 -0
- package/dist/server/src/main.d.ts +8 -2
- package/dist/server/src/main.js +110 -21
- package/dist/server/src/main.js.map +1 -1
- package/dist/server/src/manager/coreManager.d.ts +12 -9
- package/dist/server/src/manager/coreManager.js +45 -48
- package/dist/server/src/manager/coreManager.js.map +1 -1
- package/dist/server/src/manager/deviceManager.d.ts +10 -8
- package/dist/server/src/manager/deviceManager.js +31 -96
- package/dist/server/src/manager/deviceManager.js.map +1 -1
- package/dist/server/src/manager/discoveryManager.d.ts +73 -0
- package/dist/server/src/manager/discoveryManager.js +800 -0
- package/dist/server/src/manager/discoveryManager.js.map +1 -0
- package/dist/server/src/manager/downloadManager.d.ts +27 -0
- package/dist/server/src/manager/downloadManager.js +353 -0
- package/dist/server/src/manager/downloadManager.js.map +1 -0
- package/dist/server/src/manager/notificationManager.d.ts +37 -0
- package/dist/server/src/manager/notificationManager.js +334 -0
- package/dist/server/src/manager/notificationManager.js.map +1 -0
- package/dist/server/src/manager/terminalManager.d.ts +27 -0
- package/dist/server/src/manager/terminalManager.js +239 -0
- package/dist/server/src/manager/terminalManager.js.map +1 -0
- package/dist/server/src/manager/types.d.ts +39 -14
- package/dist/server/src/manager/types.js +12 -1
- package/dist/server/src/manager/types.js.map +1 -1
- package/dist/server/src/plugins/index.d.ts +9 -6
- package/dist/server/src/plugins/index.js +69 -52
- package/dist/server/src/plugins/index.js.map +1 -1
- package/dist/server/src/plugins/plugin.d.ts +16 -16
- package/dist/server/src/plugins/plugin.js +42 -36
- package/dist/server/src/plugins/plugin.js.map +1 -1
- package/dist/server/src/plugins/runtime/base.d.ts +5 -14
- package/dist/server/src/plugins/runtime/base.js +39 -111
- package/dist/server/src/plugins/runtime/base.js.map +1 -1
- package/dist/server/src/plugins/runtime/go/index.d.ts +7 -0
- package/dist/server/src/plugins/runtime/go/index.js +110 -0
- package/dist/server/src/plugins/runtime/go/index.js.map +1 -0
- package/dist/server/src/plugins/runtime/index.js +5 -1
- package/dist/server/src/plugins/runtime/index.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/child.d.ts +7 -6
- package/dist/server/src/plugins/runtime/node/child.js +70 -38
- package/dist/server/src/plugins/runtime/node/child.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/index.d.ts +1 -0
- package/dist/server/src/plugins/runtime/node/index.js +31 -5
- package/dist/server/src/plugins/runtime/node/index.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/pluginApi.d.ts +9 -6
- package/dist/server/src/plugins/runtime/node/pluginApi.js +10 -4
- package/dist/server/src/plugins/runtime/node/pluginApi.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.d.ts +27 -15
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +312 -173
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/coreManager.d.ts +7 -10
- package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +28 -43
- package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.d.ts +7 -11
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js +40 -57
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/downloadManager.d.ts +9 -0
- package/dist/server/src/plugins/runtime/node/proxy/downloadManager.js +22 -0
- package/dist/server/src/plugins/runtime/node/proxy/downloadManager.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/proxy/notificationManager.d.ts +7 -0
- package/dist/server/src/plugins/runtime/node/proxy/notificationManager.js +20 -0
- package/dist/server/src/plugins/runtime/node/proxy/notificationManager.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/proxy/sensor.d.ts +45 -0
- package/dist/server/src/plugins/runtime/node/proxy/sensor.js +149 -0
- package/dist/server/src/plugins/runtime/node/proxy/sensor.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/storage.d.ts +6 -11
- package/dist/server/src/plugins/runtime/node/storage.js +69 -46
- package/dist/server/src/plugins/runtime/node/storage.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/storageController.d.ts +10 -7
- package/dist/server/src/plugins/runtime/node/storageController.js +57 -17
- package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/camera/utils.py +105 -0
- package/dist/server/src/plugins/runtime/python/child.py +108 -68
- package/dist/server/src/plugins/runtime/python/index.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/namespaces.py +155 -60
- package/dist/server/src/plugins/runtime/python/plugin_api.py +72 -6
- package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +592 -1522
- package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +75 -76
- package/dist/server/src/plugins/runtime/python/proxy/device_manager.py +81 -93
- package/dist/server/src/plugins/runtime/python/proxy/download_manager.py +33 -0
- package/dist/server/src/plugins/runtime/python/proxy/notification_manager.py +31 -0
- package/dist/server/src/plugins/runtime/python/proxy/sensor.py +169 -0
- package/dist/server/src/plugins/runtime/python/rpc/typings.py +56 -0
- package/dist/server/src/plugins/runtime/python/schema.py +54 -19
- package/dist/server/src/plugins/runtime/python/storage.py +84 -66
- package/dist/server/src/plugins/runtime/python/storage_controller.py +132 -38
- package/dist/server/src/plugins/runtime/python/typings.py +78 -152
- package/dist/server/src/plugins/schema.d.ts +27 -26
- package/dist/server/src/plugins/schema.js +183 -103
- package/dist/server/src/plugins/schema.js.map +1 -1
- package/dist/server/src/plugins/types.d.ts +2 -14
- package/dist/server/src/plugins/types.js +0 -1
- package/dist/server/src/plugins/types.js.map +1 -1
- package/dist/server/src/plugins/worker.d.ts +7 -7
- package/dist/server/src/plugins/worker.js +37 -26
- package/dist/server/src/plugins/worker.js.map +1 -1
- package/dist/server/src/remote/api/credentialStore.d.ts +18 -0
- package/dist/server/src/remote/api/credentialStore.js +101 -0
- package/dist/server/src/remote/api/credentialStore.js.map +1 -0
- package/dist/server/src/remote/api/index.d.ts +9 -0
- package/dist/server/src/remote/api/index.js +16 -0
- package/dist/server/src/remote/api/index.js.map +1 -0
- package/dist/server/src/remote/api/instance.d.ts +9 -0
- package/dist/server/src/remote/api/instance.js +44 -0
- package/dist/server/src/remote/api/instance.js.map +1 -0
- package/dist/server/src/remote/api/routes/oauth.d.ts +23 -0
- package/dist/server/src/remote/api/routes/oauth.js +79 -0
- package/dist/server/src/remote/api/routes/oauth.js.map +1 -0
- package/dist/server/src/remote/api/routes/server.d.ts +20 -0
- package/dist/server/src/remote/api/routes/server.js +58 -0
- package/dist/server/src/remote/api/routes/server.js.map +1 -0
- package/dist/server/src/remote/index.d.ts +25 -0
- package/dist/server/src/remote/index.js +70 -0
- package/dist/server/src/remote/index.js.map +1 -0
- package/dist/server/src/remote/push.d.ts +15 -0
- package/dist/server/src/remote/push.js +85 -0
- package/dist/server/src/remote/push.js.map +1 -0
- package/dist/server/src/remote/services/cloudflare-managed.d.ts +42 -0
- package/dist/server/src/remote/services/cloudflare-managed.js +284 -0
- package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -0
- package/dist/server/src/remote/services/cloudflare.d.ts +38 -0
- package/dist/server/src/remote/services/cloudflare.js +232 -0
- package/dist/server/src/remote/services/cloudflare.js.map +1 -0
- package/dist/server/src/remote/services/customDomain.d.ts +9 -0
- package/dist/server/src/remote/services/customDomain.js +40 -0
- package/dist/server/src/remote/services/customDomain.js.map +1 -0
- package/dist/server/src/remote/services/index.d.ts +43 -0
- package/dist/server/src/remote/services/index.js +285 -0
- package/dist/server/src/remote/services/index.js.map +1 -0
- package/dist/server/src/remote/services/upnp.js +2 -0
- package/dist/server/src/remote/services/upnp.js.map +1 -0
- package/dist/server/src/remote/tunnel/client.d.ts +38 -0
- package/dist/server/src/remote/tunnel/client.js +241 -0
- package/dist/server/src/remote/tunnel/client.js.map +1 -0
- package/dist/server/src/remote/tunnel/index.d.ts +15 -0
- package/dist/server/src/remote/tunnel/index.js +68 -0
- package/dist/server/src/remote/tunnel/index.js.map +1 -0
- package/dist/server/src/remote/types.d.ts +31 -0
- package/dist/server/src/remote/types.js +2 -0
- package/dist/server/src/remote/types.js.map +1 -0
- package/dist/server/src/rpc/index.d.ts +24 -25
- package/dist/server/src/rpc/index.js +93 -77
- package/dist/server/src/rpc/index.js.map +1 -1
- package/dist/server/src/rpc/interfaces/config.d.ts +74 -0
- package/dist/server/src/rpc/interfaces/config.js +2 -0
- package/dist/server/src/rpc/interfaces/config.js.map +1 -0
- package/dist/server/src/rpc/interfaces/core.d.ts +25 -0
- package/dist/server/src/rpc/interfaces/core.js +2 -0
- package/dist/server/src/rpc/interfaces/core.js.map +1 -0
- package/dist/server/src/rpc/interfaces/detection.d.ts +70 -0
- package/dist/server/src/rpc/interfaces/detection.js +2 -0
- package/dist/server/src/rpc/interfaces/detection.js.map +1 -0
- package/dist/server/src/rpc/interfaces/device.d.ts +62 -0
- package/dist/server/src/rpc/interfaces/device.js +2 -0
- package/dist/server/src/rpc/interfaces/device.js.map +1 -0
- package/dist/server/src/rpc/interfaces/discovery.d.ts +46 -0
- package/dist/server/src/rpc/interfaces/discovery.js +2 -0
- package/dist/server/src/rpc/interfaces/discovery.js.map +1 -0
- package/dist/server/src/rpc/interfaces/download.d.ts +22 -0
- package/dist/server/src/rpc/interfaces/download.js +2 -0
- package/dist/server/src/rpc/interfaces/download.js.map +1 -0
- package/dist/server/src/rpc/interfaces/frameworker.d.ts +12 -0
- package/dist/server/src/rpc/interfaces/frameworker.js +2 -0
- package/dist/server/src/rpc/interfaces/frameworker.js.map +1 -0
- package/dist/server/src/rpc/interfaces/notification.d.ts +6 -0
- package/dist/server/src/rpc/interfaces/notification.js +2 -0
- package/dist/server/src/rpc/interfaces/notification.js.map +1 -0
- package/dist/server/src/rpc/interfaces/sensor.d.ts +75 -0
- package/dist/server/src/rpc/interfaces/sensor.js +2 -0
- package/dist/server/src/rpc/interfaces/sensor.js.map +1 -0
- package/dist/server/src/rpc/interfaces/terminal.d.ts +34 -0
- package/dist/server/src/rpc/interfaces/terminal.js +2 -0
- package/dist/server/src/rpc/interfaces/terminal.js.map +1 -0
- package/dist/server/src/rpc/namespaces.d.ts +50 -2
- package/dist/server/src/rpc/namespaces.js +70 -4
- package/dist/server/src/rpc/namespaces.js.map +1 -1
- package/dist/server/src/rpc/server.d.ts +22 -3
- package/dist/server/src/rpc/server.js +110 -37
- package/dist/server/src/rpc/server.js.map +1 -1
- package/dist/server/src/rpc/utils.d.ts +2 -1
- package/dist/server/src/rpc/utils.js +8 -0
- package/dist/server/src/rpc/utils.js.map +1 -1
- package/dist/server/src/services/config/constants.d.ts +7 -1
- package/dist/server/src/services/config/constants.js +17 -2
- package/dist/server/src/services/config/constants.js.map +1 -1
- package/dist/server/src/services/config/defaults.js +3 -3
- package/dist/server/src/services/config/defaults.js.map +1 -1
- package/dist/server/src/services/config/index.d.ts +6 -43
- package/dist/server/src/services/config/index.js +56 -108
- package/dist/server/src/services/config/index.js.map +1 -1
- package/dist/server/src/services/config/types.d.ts +14 -2
- package/dist/server/src/services/config/types.js.map +1 -1
- package/dist/server/src/services/logger/index.d.ts +13 -11
- package/dist/server/src/services/logger/index.js +47 -50
- package/dist/server/src/services/logger/index.js.map +1 -1
- package/dist/server/src/services/logger/logManager.d.ts +35 -0
- package/dist/server/src/services/logger/logManager.js +196 -0
- package/dist/server/src/services/logger/logManager.js.map +1 -0
- package/dist/server/src/services/logger/transports/fileTransport.d.ts +34 -0
- package/dist/server/src/services/logger/transports/fileTransport.js +152 -0
- package/dist/server/src/services/logger/transports/fileTransport.js.map +1 -0
- package/dist/server/src/services/logger/transports/index.d.ts +1 -0
- package/dist/server/src/services/logger/transports/index.js +2 -0
- package/dist/server/src/services/logger/transports/index.js.map +1 -0
- package/dist/server/src/types.d.ts +3 -0
- package/dist/server/src/utils/camera.d.ts +4 -0
- package/dist/server/src/utils/camera.js +79 -0
- package/dist/server/src/utils/camera.js.map +1 -0
- package/dist/server/src/utils/env.js +8 -0
- package/dist/server/src/utils/env.js.map +1 -0
- package/dist/server/src/utils/ipc.d.ts +1 -1
- package/dist/server/src/utils/ipc.js +2 -2
- package/dist/server/src/utils/ipc.js.map +1 -1
- package/dist/server/src/utils/path.js +3 -3
- package/dist/server/src/utils/path.js.map +1 -1
- package/dist/server/src/utils/pythonInstaller.d.ts +2 -1
- package/dist/server/src/utils/pythonInstaller.js +6 -6
- package/dist/server/src/utils/pythonInstaller.js.map +1 -1
- package/dist/server/src/workers/agent.d.ts +27 -0
- package/dist/server/src/workers/agent.js +161 -0
- package/dist/server/src/workers/agent.js.map +1 -0
- package/dist/server/src/workers/capabilities/frame-decoding.d.ts +24 -0
- package/dist/server/src/workers/capabilities/frame-decoding.js +180 -0
- package/dist/server/src/workers/capabilities/frame-decoding.js.map +1 -0
- package/dist/server/src/workers/capabilities/handler.d.ts +8 -0
- package/dist/server/src/workers/capabilities/handler.js +2 -0
- package/dist/server/src/workers/capabilities/handler.js.map +1 -0
- package/dist/server/src/workers/manager.d.ts +31 -0
- package/dist/server/src/workers/manager.js +260 -0
- package/dist/server/src/workers/manager.js.map +1 -0
- package/dist/server/src/workers/types.d.ts +59 -0
- package/dist/server/src/workers/types.js +5 -0
- package/dist/server/src/workers/types.js.map +1 -0
- package/package.json +73 -79
- package/dist/interface/assets/@xterm.DYP7pi_n.0.0.70.css +0 -32
- package/dist/interface/assets/Adminpanel.BKek2EMH.0.0.70.css +0 -1
- package/dist/interface/assets/Cameras.BDWZJqPN.0.0.70.css +0 -1
- package/dist/interface/assets/Camview.Cvhuou6V.0.0.70.css +0 -1
- package/dist/interface/assets/CuiConsole.DCYyxdVg.0.0.70.css +0 -1
- package/dist/interface/assets/CuiPluginCard.yF8V0SZY.0.0.70.css +0 -1
- package/dist/interface/assets/CuiTimeline.BkIwlYtw.0.0.70.css +0 -1
- package/dist/interface/assets/Plugin.DJElsAn5.0.0.70.css +0 -1
- package/dist/interface/assets/Plugins.BwPlcRrV.0.0.70.css +0 -1
- package/dist/interface/assets/Settings.CkgfRkQr.0.0.70.css +0 -1
- package/dist/interface/assets/SettingsAccount.CDZT7gN-.0.0.70.css +0 -1
- package/dist/interface/assets/highlight.Ch2EwETz.0.0.70.css +0 -1
- package/dist/interface/assets/main.BmO7mnW4.0.0.70.css +0 -1
- package/dist/interface/assets/worker-base.jEXLGV2h.0.0.70.js +0 -1332
- package/dist/interface/assets/worker-yaml.B3uUYINB.0.0.70.js +0 -5819
- package/dist/interface/js/@babel.l0sNRNKZ.0.0.70.js +0 -1
- package/dist/interface/js/@intlify.6ljJeWIl.0.0.70.js +0 -15
- package/dist/interface/js/@kurkle.D8fDXNIl.0.0.70.js +0 -6
- package/dist/interface/js/@primeuix.bRNqZjQz.0.0.70.js +0 -5889
- package/dist/interface/js/@primevue.DH9ak_9x.0.0.70.js +0 -57
- package/dist/interface/js/@react-dnd.CcwRs9xb.0.0.70.js +0 -1
- package/dist/interface/js/@socket.io.Dkula2eQ.0.0.70.js +0 -1
- package/dist/interface/js/@tanstack.Dk2rc1Gz.0.0.70.js +0 -1
- package/dist/interface/js/@vee-validate.i4o6WINE.0.0.70.js +0 -5
- package/dist/interface/js/@vue.BsSvBeCe.0.0.70.js +0 -17
- package/dist/interface/js/@vueuse.T3qy5Jq4.0.0.70.js +0 -1
- package/dist/interface/js/@xterm.CJZZM5vf.0.0.70.js +0 -66
- package/dist/interface/js/Adminpanel.CBQfnvy1.0.0.70.js +0 -1
- package/dist/interface/js/Camera.D39v2Qae.0.0.70.js +0 -1
- package/dist/interface/js/Cameras.BOXzVzD9.0.0.70.js +0 -482
- package/dist/interface/js/Cammesh.bs93Or8F.0.0.70.js +0 -1
- package/dist/interface/js/Camview.R2Zpw-wS.0.0.70.js +0 -1
- package/dist/interface/js/Config.D89tTvo2.0.0.70.js +0 -2
- package/dist/interface/js/Console.DX4_ZVPM.0.0.70.js +0 -4
- package/dist/interface/js/CuiConsole.B-YJZ4uY.0.0.70.js +0 -1
- package/dist/interface/js/CuiPluginCard.CFaLdBEf.0.0.70.js +0 -4
- package/dist/interface/js/CuiTimeline.DbPA3XCf.0.0.70.js +0 -1
- package/dist/interface/js/FirstSteps.BjUQYXwF.0.0.70.js +0 -1
- package/dist/interface/js/Plugin.Dl21oK_u.0.0.70.js +0 -1
- package/dist/interface/js/Plugins.DphA9uPk.0.0.70.js +0 -1
- package/dist/interface/js/Recordings.B2b7JutC.0.0.70.js +0 -1
- package/dist/interface/js/Settings.D_hL6kBb.0.0.70.js +0 -1
- package/dist/interface/js/SettingsAccount.2ETTD3p8.0.0.70.js +0 -1
- package/dist/interface/js/SettingsAppearance.DkI9GlMu.0.0.70.js +0 -1
- package/dist/interface/js/SettingsAppearance.vue_vue_type_script_setup_true_lang.D6sykhe2.0.0.70.js +0 -1
- package/dist/interface/js/SettingsBackup.Ce3e31yn.0.0.70.js +0 -1
- package/dist/interface/js/SettingsRecordings.C_hEpi6y.0.0.70.js +0 -1
- package/dist/interface/js/SettingsRemote.BDp_l894.0.0.70.js +0 -1
- package/dist/interface/js/SettingsSystem.CFjS9i7G.0.0.70.js +0 -1
- package/dist/interface/js/SettingsUsers.BpTad4f8.0.0.70.js +0 -1
- package/dist/interface/js/VersionsHandler.vue_vue_type_script_setup_true_lang.MC8r914h.0.0.70.js +0 -4
- package/dist/interface/js/ace-builds.DPRnfcwI.0.0.70.js +0 -1091
- package/dist/interface/js/ace.config.DReCZ4VN.0.0.70.js +0 -1
- package/dist/interface/js/axios.lj9VQs0f.0.0.70.js +0 -6
- package/dist/interface/js/backup.CqN-DI7C.0.0.70.js +0 -1
- package/dist/interface/js/birpc.l0sNRNKZ.0.0.70.js +0 -1
- package/dist/interface/js/chart.js.B5ohq2tj.0.0.70.js +0 -13
- package/dist/interface/js/close-circle.CMnO5OKl.0.0.70.js +0 -1
- package/dist/interface/js/compare-versions.DqEOhma6.0.0.70.js +0 -1
- package/dist/interface/js/dijkstrajs.C00ieaqj.0.0.70.js +0 -1
- package/dist/interface/js/dnd-core.DuFbUDJC.0.0.70.js +0 -1
- package/dist/interface/js/draggabilly.Cuzjcd7v.0.0.70.js +0 -6
- package/dist/interface/js/engine.io-client.CnosWdRP.0.0.70.js +0 -1
- package/dist/interface/js/engine.io-parser.BiEtp6m2.0.0.70.js +0 -1
- package/dist/interface/js/entities.C20TfXL6.0.0.70.js +0 -1
- package/dist/interface/js/ev-emitter.X5f1qa-c.0.0.70.js +0 -1
- package/dist/interface/js/fast-deep-equal.D0g7BF3f.0.0.70.js +0 -1
- package/dist/interface/js/get-size.D1dS-IaP.0.0.70.js +0 -5
- package/dist/interface/js/highlight.js.DTPofZhc.0.0.70.js +0 -3
- package/dist/interface/js/hookable.l0sNRNKZ.0.0.70.js +0 -1
- package/dist/interface/js/linkify-it.imhCvGRq.0.0.70.js +0 -1
- package/dist/interface/js/main.D2NZuTnM.0.0.70.js +0 -31
- package/dist/interface/js/markdown-it.VQvmcJVu.0.0.70.js +0 -15
- package/dist/interface/js/mdurl.k9Sl0PQj.0.0.70.js +0 -2
- package/dist/interface/js/nprogress.DuNJBXnf.0.0.70.js +0 -2
- package/dist/interface/js/perfect-debounce.l0sNRNKZ.0.0.70.js +0 -1
- package/dist/interface/js/pinia.BeBGFuqK.0.0.70.js +0 -5
- package/dist/interface/js/primelocale.Bga3dOQu.0.0.70.js +0 -1
- package/dist/interface/js/primevue.BVVo-ukB.0.0.70.js +0 -142
- package/dist/interface/js/punycode.js.Dj65hjkv.0.0.70.js +0 -1
- package/dist/interface/js/qrcode.D7KqKQTM.0.0.70.js +0 -8
- package/dist/interface/js/react-dnd-html5-backend.1HQjlkwI.0.0.70.js +0 -2
- package/dist/interface/js/react-dnd-touch-backend.4hAOsMRp.0.0.70.js +0 -1
- package/dist/interface/js/redux.BFxtlG_c.0.0.70.js +0 -1
- package/dist/interface/js/refresh-rounded.BzWz29y2.0.0.70.js +0 -1
- package/dist/interface/js/rxjs.UbFxmZ7q.0.0.70.js +0 -3
- package/dist/interface/js/socket.io-client.DC_wUGxw.0.0.70.js +0 -1
- package/dist/interface/js/socket.io-parser.ChgZ8FD_.0.0.70.js +0 -1
- package/dist/interface/js/system.Ccn9lMgI.0.0.70.js +0 -1
- package/dist/interface/js/trash-fill.C8ZgD-Jz.0.0.70.js +0 -1
- package/dist/interface/js/tslib.9k7AwCpt.0.0.70.js +0 -1
- package/dist/interface/js/uc.micro.kMc2yuuw.0.0.70.js +0 -1
- package/dist/interface/js/unidragger.DahEY3cm.0.0.70.js +0 -5
- package/dist/interface/js/uuid.C6aID195.0.0.70.js +0 -1
- package/dist/interface/js/vee-validate.DwwGVNzx.0.0.70.js +0 -5
- package/dist/interface/js/vue-chartjs.KCIQuea5.0.0.70.js +0 -1
- package/dist/interface/js/vue-i18n.BLwVbi61.0.0.70.js +0 -5
- package/dist/interface/js/vue-inline-svg.B52C1cW8.0.0.70.js +0 -1
- package/dist/interface/js/vue-router.BQuUBAAr.0.0.70.js +0 -5
- package/dist/interface/js/vue-zoomable.Cq7IVJt5.0.0.70.js +0 -1
- package/dist/interface/js/vue.l0sNRNKZ.0.0.70.js +0 -1
- package/dist/interface/js/vue3-dnd.2Dj_EakH.0.0.70.js +0 -1
- package/dist/interface/js/zod.2bfLsWMZ.0.0.70.js +0 -1
- package/dist/interface/js/zoom-out.D4ga9c-w.0.0.70.js +0 -1
- package/dist/interface/registerSW.js +0 -1
- package/dist/interface/workbox-5ffe50d4.js +0 -1
- package/dist/server/src/_camera_ui_tools/camera_ui_common/camera_utils/utils.py +0 -52
- package/dist/server/src/_camera_ui_tools/camera_ui_common/logger_service/test.py +0 -116
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/__init__.py +0 -350
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/__init__.py +0 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/base.py +0 -237
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/client.py +0 -256
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/connection.py +0 -784
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/errors.py +0 -745
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/messaging.py +0 -57
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/rpc.py +0 -227
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/rpc_generator.py +0 -584
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/constants.py +0 -96
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/typings.py +0 -218
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/__init__.py +0 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/connection_state.py +0 -86
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/logger.py +0 -30
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/metrics.py +0 -152
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/packer.py +0 -20
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/routing.py +0 -75
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/rpc.py +0 -177
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/subscriptions.py +0 -24
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/tasks.py +0 -39
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/uid.py +0 -37
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/validate.py +0 -119
- package/dist/server/src/_camera_ui_tools/camera_ui_types/__init__.py +0 -1369
- package/dist/server/src/_camera_ui_tools/camera_ui_types/hybrid_observer.py +0 -338
- package/dist/server/src/_camera_ui_tools/camera_ui_types/test.py +0 -196
- package/dist/server/src/api/controllers/system.controller.d.ts +0 -24
- package/dist/server/src/api/controllers/system.controller.js +0 -235
- package/dist/server/src/api/controllers/system.controller.js.map +0 -1
- package/dist/server/src/api/go2rtc/api/application.d.ts +0 -9
- package/dist/server/src/api/go2rtc/api/application.js +0 -39
- package/dist/server/src/api/go2rtc/api/application.js.map +0 -1
- package/dist/server/src/api/go2rtc/api/config.d.ts +0 -8
- package/dist/server/src/api/go2rtc/api/config.js +0 -44
- package/dist/server/src/api/go2rtc/api/config.js.map +0 -1
- package/dist/server/src/api/go2rtc/api/discover.d.ts +0 -30
- package/dist/server/src/api/go2rtc/api/discover.js +0 -162
- package/dist/server/src/api/go2rtc/api/discover.js.map +0 -1
- package/dist/server/src/api/go2rtc/api/index.d.ts +0 -1
- package/dist/server/src/api/go2rtc/api/index.js +0 -42
- package/dist/server/src/api/go2rtc/api/index.js.map +0 -1
- package/dist/server/src/api/go2rtc/api/snapshot.d.ts +0 -8
- package/dist/server/src/api/go2rtc/api/snapshot.js +0 -34
- package/dist/server/src/api/go2rtc/api/snapshot.js.map +0 -1
- package/dist/server/src/api/go2rtc/api/streams.d.ts +0 -20
- package/dist/server/src/api/go2rtc/api/streams.js +0 -190
- package/dist/server/src/api/go2rtc/api/streams.js.map +0 -1
- package/dist/server/src/api/go2rtc/index.d.ts +0 -16
- package/dist/server/src/api/go2rtc/index.js +0 -33
- package/dist/server/src/api/go2rtc/index.js.map +0 -1
- package/dist/server/src/api/go2rtc/queue.d.ts +0 -10
- package/dist/server/src/api/go2rtc/queue.js +0 -38
- package/dist/server/src/api/go2rtc/queue.js.map +0 -1
- package/dist/server/src/api/go2rtc/types.d.ts +0 -151
- package/dist/server/src/api/go2rtc/types.js.map +0 -1
- package/dist/server/src/api/routes/system.routes.d.ts +0 -2
- package/dist/server/src/api/routes/system.routes.js +0 -86
- package/dist/server/src/api/routes/system.routes.js.map +0 -1
- package/dist/server/src/api/schemas/system.schema.d.ts +0 -185
- package/dist/server/src/api/schemas/system.schema.js +0 -40
- package/dist/server/src/api/schemas/system.schema.js.map +0 -1
- package/dist/server/src/api/services/system.service.d.ts +0 -13
- package/dist/server/src/api/services/system.service.js +0 -63
- package/dist/server/src/api/services/system.service.js.map +0 -1
- package/dist/server/src/camera/classes.d.ts +0 -2
- package/dist/server/src/camera/classes.js +0 -24
- package/dist/server/src/camera/classes.js.map +0 -1
- package/dist/server/src/camera/device.d.ts +0 -34
- package/dist/server/src/camera/device.js +0 -327
- package/dist/server/src/camera/device.js.map +0 -1
- package/dist/server/src/camera/frameWorker.d.ts +0 -46
- package/dist/server/src/camera/frameWorker.js +0 -347
- package/dist/server/src/camera/frameWorker.js.map +0 -1
- package/dist/server/src/camera/interfaces.d.ts +0 -17
- package/dist/server/src/camera/interfaces.js +0 -99
- package/dist/server/src/camera/interfaces.js.map +0 -1
- package/dist/server/src/camera/iou.d.ts +0 -2
- package/dist/server/src/camera/iou.js +0 -122
- package/dist/server/src/camera/iou.js.map +0 -1
- package/dist/server/src/camera/polygon.d.ts +0 -4
- package/dist/server/src/camera/polygon.js +0 -192
- package/dist/server/src/camera/polygon.js.map +0 -1
- package/dist/server/src/camera/python/__init__.py +0 -0
- package/dist/server/src/camera/python/classes.py +0 -41
- package/dist/server/src/camera/python/interfaces.py +0 -131
- package/dist/server/src/camera/python/iou.py +0 -158
- package/dist/server/src/camera/python/polygon.py +0 -230
- package/dist/server/src/camera/python/typings.py +0 -50
- package/dist/server/src/camera/python/video_frame.py +0 -143
- package/dist/server/src/camera/streaming/peer-connection.d.ts +0 -26
- package/dist/server/src/camera/streaming/peer-connection.js +0 -213
- package/dist/server/src/camera/streaming/peer-connection.js.map +0 -1
- package/dist/server/src/camera/streaming/rtsp-session.d.ts +0 -19
- package/dist/server/src/camera/streaming/rtsp-session.js +0 -196
- package/dist/server/src/camera/streaming/rtsp-session.js.map +0 -1
- package/dist/server/src/camera/streaming/webrtc-connection.d.ts +0 -44
- package/dist/server/src/camera/streaming/webrtc-connection.js +0 -177
- package/dist/server/src/camera/streaming/webrtc-connection.js.map +0 -1
- package/dist/server/src/camera/streaming/werift-session.d.ts +0 -19
- package/dist/server/src/camera/streaming/werift-session.js +0 -246
- package/dist/server/src/camera/streaming/werift-session.js.map +0 -1
- package/dist/server/src/camera/types.d.ts +0 -17
- package/dist/server/src/camera/types.js.map +0 -1
- package/dist/server/src/camera/videoFrame.d.ts +0 -18
- package/dist/server/src/camera/videoFrame.js +0 -88
- package/dist/server/src/camera/videoFrame.js.map +0 -1
- package/dist/server/src/cloud/index.d.ts +0 -12
- package/dist/server/src/cloud/index.js +0 -49
- package/dist/server/src/cloud/index.js.map +0 -1
- package/dist/server/src/cloud/remote/cloudflare.d.ts +0 -7
- package/dist/server/src/cloud/remote/cloudflare.js +0 -12
- package/dist/server/src/cloud/remote/cloudflare.js.map +0 -1
- package/dist/server/src/cloud/remote/upnp.d.ts +0 -7
- package/dist/server/src/cloud/remote/upnp.js +0 -12
- package/dist/server/src/cloud/remote/upnp.js.map +0 -1
- package/dist/server/src/cloud/remote/utils.d.ts +0 -3
- package/dist/server/src/cloud/remote/utils.js +0 -21
- package/dist/server/src/cloud/remote/utils.js.map +0 -1
- package/dist/server/src/cloud/types.d.ts +0 -15
- package/dist/server/src/cloud/types.js +0 -11
- package/dist/server/src/cloud/types.js.map +0 -1
- package/dist/server/src/decoder/child.js +0 -748
- package/dist/server/src/decoder/child.js.map +0 -1
- package/dist/server/src/decoder/imageUtils.d.ts +0 -21
- package/dist/server/src/decoder/imageUtils.js +0 -204
- package/dist/server/src/decoder/imageUtils.js.map +0 -1
- package/dist/server/src/decoder/manager.d.ts +0 -19
- package/dist/server/src/decoder/manager.js +0 -208
- package/dist/server/src/decoder/manager.js.map +0 -1
- package/dist/server/src/decoder/python/__init__.py +0 -0
- package/dist/server/src/decoder/python/child.py +0 -902
- package/dist/server/src/decoder/python/image_utils.py +0 -196
- package/dist/server/src/decoder/python/pool.py +0 -45
- package/dist/server/src/decoder/python/typings.py +0 -57
- package/dist/server/src/decoder/python/utils.py +0 -70
- package/dist/server/src/decoder/types.d.ts +0 -23
- package/dist/server/src/decoder/types.js.map +0 -1
- package/dist/server/src/decoder/utils.d.ts +0 -13
- package/dist/server/src/decoder/utils.js +0 -45
- package/dist/server/src/decoder/utils.js.map +0 -1
- package/dist/server/src/decoder/wasm/build/decoder.d.ts +0 -43
- package/dist/server/src/decoder/wasm/build/decoder.js +0 -108
- package/dist/server/src/decoder/wasm/build/decoder.wasm +0 -0
- package/dist/server/src/decoder/worker.js +0 -79
- package/dist/server/src/decoder/worker.js.map +0 -1
- package/dist/server/src/plugins/runtime/node/plugin.d.ts +0 -24
- package/dist/server/src/plugins/runtime/node/plugin.js +0 -128
- package/dist/server/src/plugins/runtime/node/plugin.js.map +0 -1
- package/dist/server/src/plugins/runtime/python/plugin.py +0 -155
- package/dist/server/src/rpc/types.d.ts +0 -112
- package/dist/server/src/rpc/types.js.map +0 -1
- /package/dist/interface/assets/{SettingsBackup.CX0rT0QJ.0.0.70.css → SettingsBackup-CX0rT0QJ.css} +0 -0
- /package/dist/interface/assets/{logo-512.DLKVOU2S.0.0.70.png → error-256-DLKVOU2S.png} +0 -0
- /package/dist/interface/assets/{logo-256.BCQk9H1-.0.0.70.png → logo-256-BCQk9H1-.png} +0 -0
- /package/dist/interface/assets/{logo.DmEiRk0z.0.0.70.png → logo-DmEiRk0z.png} +0 -0
- /package/dist/interface/assets/{mode-yaml.CIYL8U3d.0.0.70.js → mode-yaml-CIYL8U3d.js} +0 -0
- /package/dist/server/src/api/{go2rtc → database/migrations}/types.js +0 -0
- /package/dist/server/src/{camera → automations/actions}/types.js +0 -0
- /package/dist/server/src/{decoder → automations/conditions}/types.js +0 -0
- /package/dist/server/src/{rpc → automations/triggers}/types.js +0 -0
- /package/dist/server/src/{decoder/child.d.ts → remote/services/upnp.d.ts} +0 -0
- /package/dist/server/src/{decoder/worker.d.ts → utils/env.d.ts} +0 -0
|
@@ -1,482 +0,0 @@
|
|
|
1
|
-
import{L as Ue,r as Ee,l as De,e as qe,m as Fe,b as Ce,a as to,M as no,N as ao,c as Le,f as so,t as ro,u as io,v as co,k as lo,w as uo,p as mo,n as po,j as ho,O as fo}from"./primevue.BVVo-ukB.0.0.70.js";import{_ as ze,a as _o}from"./refresh-rounded.BzWz29y2.0.0.70.js";import{e as go,s as vo,_ as bo,f as wo,h as Ve,C as Se,r as xe,d as je,i as We,j as yo,k as xo,c as Ne,a as Ke,l as ko,m as Co,n as Ye,o as So,p as $o,q as To,t as Ro,B as Po,b as we,v as Ao,S as Io,w as Mo}from"./main.D2NZuTnM.0.0.70.js";import{i as Ho}from"./@vueuse.T3qy5Jq4.0.0.70.js";import{B as se,t as Ge,ac as ue,r as F,k as Q,o as Xe,c as p,d as s,e as n,h as e,X as me,Z as pe,R as o,I as v,i as Qe,z as Je,a7 as jo,F as J,ab as Eo,w as Ze,N as t,f as ne,M as g,L as G,O as _,m as Y,V as W,P as ke,H as ye,$ as Lo,a1 as Vo,W as Me}from"./@vue.BsSvBeCe.0.0.70.js";import{_ as Go}from"./CuiConsole.B-YJZ4uY.0.0.70.js";import{F as eo,a as q,E as N}from"./vee-validate.DwwGVNzx.0.0.70.js";import{u as Be}from"./vue-i18n.BLwVbi61.0.0.70.js";import{s as Bo}from"./pinia.BeBGFuqK.0.0.70.js";import"./@primeuix.bRNqZjQz.0.0.70.js";import"./@primevue.DH9ak_9x.0.0.70.js";import"./@tanstack.Dk2rc1Gz.0.0.70.js";import"./axios.lj9VQs0f.0.0.70.js";import"./vue-router.BQuUBAAr.0.0.70.js";import"./vue-inline-svg.B52C1cW8.0.0.70.js";import"./@vee-validate.i4o6WINE.0.0.70.js";import"./zod.2bfLsWMZ.0.0.70.js";import"./uuid.C6aID195.0.0.70.js";import"./socket.io-client.DC_wUGxw.0.0.70.js";import"./engine.io-client.CnosWdRP.0.0.70.js";import"./engine.io-parser.BiEtp6m2.0.0.70.js";import"./@socket.io.Dkula2eQ.0.0.70.js";import"./socket.io-parser.ChgZ8FD_.0.0.70.js";import"./rxjs.UbFxmZ7q.0.0.70.js";import"./tslib.9k7AwCpt.0.0.70.js";import"./highlight.js.DTPofZhc.0.0.70.js";import"./@xterm.CJZZM5vf.0.0.70.js";import"./markdown-it.VQvmcJVu.0.0.70.js";import"./mdurl.k9Sl0PQj.0.0.70.js";import"./uc.micro.kMc2yuuw.0.0.70.js";import"./entities.C20TfXL6.0.0.70.js";import"./linkify-it.imhCvGRq.0.0.70.js";import"./punycode.js.Dj65hjkv.0.0.70.js";import"./qrcode.D7KqKQTM.0.0.70.js";import"./dijkstrajs.C00ieaqj.0.0.70.js";import"./draggabilly.Cuzjcd7v.0.0.70.js";import"./get-size.D1dS-IaP.0.0.70.js";import"./unidragger.DahEY3cm.0.0.70.js";import"./ev-emitter.X5f1qa-c.0.0.70.js";import"./vue-zoomable.Cq7IVJt5.0.0.70.js";import"./primelocale.Bga3dOQu.0.0.70.js";import"./nprogress.DuNJBXnf.0.0.70.js";import"./@intlify.6ljJeWIl.0.0.70.js";const Oe=["bubble://","cui://","doorbird://","dvrip://","echo:","eseecloud://","exec:","expr:","ffmpeg:","flussonic://","gopro://","hass:","homekit://","http://","https://","httpx://","isapi://","ivideon:","kasa://","nest:","onvif://","ring:","roborock://","rtmp://","rtsp://","rtspx://","tapo://","tcp://","tuya://","webrtc:","webtorrent:"],Oo=["#backchannel=","#header=","#media=audio","#media=video","#timeout=10","#timeout=20","#timeout=30","#transport="],He=["#audio=aac","#audio=aac/16000","#audio=mp3","#audio=opus","#audio=pcm","#audio=pcm/8000","#audio=pcm/16000","#audio=pcm/48000","#audio=pcma","#audio=pcma/8000","#audio=pcma/16000","#audio=pcma/48000","#audio=pcml","#audio=pcml/8000","#audio=pcml/44100","#audio=pcmu","#audio=pcmu/8000","#audio=pcmu/16000","#audio=pcmu/48000","#drawtext","#hardware","#hardware=cuda","#hardware=dxva2","#hardware=rkmpp","#hardware=v4l2m2m","#hardware=vaapi","#hardware=videotoolbox","#height=","#raw=","#rotate=-90","#rotate=90","#rotate=180","#rotate=270","#video=copy","#video=h264","#video=h265","#video=mjpeg","#width="],Uo=["client_id=","client_private=","device_id=","device_public="],Do=["#header="],qo=["client_id=","client_secret=","refresh_token=","project_id=","device_id="],Fo=["device_id=","refresh_token="],zo=["#client_id=","#format=openipc","#format=wyze","#format=kinesis","#ice_servers="],Wo={class:"relative h-[165px]"},No={key:0,class:"flex w-full h-full"},Ko={class:"flex w-full items-center justify-center mt-[5px]"},Yo={key:1,class:"flex w-full h-full"},Xo=["onClick"],Qo={class:"w-full text-center"},Jo={class:"text-xs text-muted"},Zo=se({__name:"CuiCameraEvents",props:{cameraId:{}},setup($){const{isTouch:d}=go(),j=$,{cameraId:E}=Ge(j),R=ue("scrollContainerRef"),B=F(!0);let P,T=!1;const L=Array.from({length:50},(m,C)=>({id:C.toString(),camera:"Kamera "+(C%5+1),title:"Event "+(C+1),type:"motion",image:"test",timestamp:Date.now()-C*6e4})),M=Q(()=>E.value?L.filter(m=>m.camera===E.value):L),O=()=>{Ho(R,{disableTextSelect:!0,threshold:10,onSwipe:m=>{var C,H;(C=R.value)==null||C.classList.add("cursor-grabbing"),T=!0,(H=R.value)==null||H.scrollBy({left:-m.movementX,behavior:"smooth"})},onSwipeEnd:()=>{var m;(m=R.value)==null||m.classList.remove("cursor-grabbing"),clearTimeout(P),P=setTimeout(()=>{T=!1},10)}})},y=m=>new Date(m).toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit"}),x=m=>{T||console.log(m)};return Xe(async()=>{await vo(1500),B.value=!1,d.value||O()}),(m,C)=>{const H=Ue,u=bo;return s(),p("div",Wo,[n("div",{ref_key:"scrollContainerRef",ref:R,class:"w-full max-w-full overflow-x-auto overflow-y-hidden snap-x snap-mandatory hide-scrollbar"},[e(B)?(s(),p("div",No,[(s(),p(me,null,pe(50,S=>n("div",{key:S,class:"flex-none w-[140px] mr-3 snap-start"},[o(H,{width:"140px",height:"140px"}),n("div",Ko,[o(H,{width:"40px",height:"12px"})])])),64))])):(s(),p("div",Yo,[(s(!0),p(me,null,pe(e(M),S=>(s(),p("div",{key:S.id,class:"flex-none w-[140px] mr-3 snap-start"},[n("div",{class:"bg-neutral-900 rounded overflow-hidden cursor-pointer w-[140px] h-[140px]",onClick:h=>x(S)},[o(u,{src:S.image,class:"pointer-events-none w-full h-full",cover:"",alt:"Event Vorschau",width:"140px",height:"140px","image-container-class":"w-full h-full"},null,8,["src"])],8,Xo),n("div",Qo,[n("span",Jo,v(y(S.timestamp)),1)])]))),128))]))],512),C[0]||(C[0]=n("div",{class:"absolute -top-[3px] right-0 w-10 h-[171px] pointer-events-none",style:{background:"linear-gradient(to right, transparent, var(--ground-background))"}},null,-1))])}}}),et=se({__name:"CameraConsole",props:{cameraName:{}},setup($,{expose:d}){const j=new Se,E=wo(),{mdBreakpoint:R}=Ve(),B=Qe("dialogRefProps"),P=$,{cameraName:T}=Ge(P),L=ue("consoleRef"),M=Je(),{data:O,isFetching:y,suspense:x}=j.downloadLogQuery(T),m=Q(()=>{var u;return!!((u=B.loading)!=null&&u.value||y.value)}),C=Q(()=>({fontSize:R.value?12:14})),H=async()=>{try{if(j.toggleQueryActivator("downloadLogQuery",!0),await x(),O.value){const u=O.value,S=window.URL.createObjectURL(new Blob([u])),h=document.createElement("a");h.href=S,h.setAttribute("download",`camera.ui.${T.value}.log.txt`),document.body.appendChild(h),h.click(),h.remove()}}finally{j.toggleQueryActivator("downloadLogQuery",!1)}};return Xe(()=>{var u,S,h,K,oe;M.value=E.connectToNamespace("/logs"),(u=M.value)==null||u.socket.on(`stdout/${T.value}`,A=>{var Z;(Z=L.value)==null||Z.writeTerminal(A)}),(S=M.value)==null||S.socket.on("stdout",A=>{var Z;(Z=L.value)==null||Z.writeTerminal(A)}),(h=M.value)==null||h.socket.on("disconnect",()=>{var A;(A=L.value)==null||A.writeTerminal(`\r
|
|
2
|
-
Websocket failed to connect! Is the server running?\r
|
|
3
|
-
\r
|
|
4
|
-
`)}),(K=M.value)==null||K.socket.on("clear-log",()=>{var A;(A=L.value)==null||A.clearTerminal()}),(oe=M.value)==null||oe.socket.emit("get-camera-log",T.value,{sinceLastStart:!0})}),jo(()=>{var u,S;(S=(u=M.value)==null?void 0:u.end)==null||S.call(u)}),d({isLoading:m,onConfirm:H}),(u,S)=>{const h=Go;return s(),p("div",null,[o(h,{ref_key:"consoleRef",ref:L,options:e(C),class:"bg-black !w-full"},null,8,["options"])])}}}),ot={viewBox:"0 0 48 48",width:"1.2em",height:"1.2em"},tt=["id"],nt=["mask"];function at($,d){return s(),p("svg",ot,[n("defs",null,[n("mask",{id:$.idMap.ipSGopro0},d[0]||(d[0]=[Eo('<g fill="none"><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="4" d="M5 7h13v34H5z"></path><rect width="19" height="22" x="24" y="13" fill="#fff" stroke="#fff" stroke-width="4" rx="3"></rect><circle cx="33.5" cy="24.5" r="3.5" fill="#000" stroke="#000" stroke-width="4"></circle><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="4" d="M18 24h6"></path><rect width="5" height="5" x="9" y="15" fill="#fff" rx="2.5"></rect></g>',1)]),8,tt)]),n("path",{fill:"currentColor",d:"M0 0h48v48H0z",mask:"url(#"+$.idMap.ipSGopro0+")"},null,8,nt)])}const st=J({name:"icon-park-solid-gopro",render:at,setup(){return{idMap:{ipSGopro0:"uicons-"+Math.random().toString(36).substr(2,10)}}}}),rt={viewBox:"0 0 256 295",width:"1.05em",height:"1.2em"};function it($,d){return s(),p("svg",rt,d[0]||(d[0]=[n("path",{fill:"#EB324B",d:"M125.331 293.51c-3.118-1.658-121.475-70.037-122.633-70.849c-2.463-1.729-2.297 3.704-2.297-75.23c0-78.936-.166-73.502 2.297-75.232c.61-.427 28.67-16.687 62.355-36.133C107.32 11.668 126.75.658 127.751.54c1.811-.214-4.43-3.711 67.33 37.72c42.38 24.468 59.226 34.391 59.85 35.255l.869 1.202v145.427l-.869 1.202c-.624.864-17.465 10.784-59.851 35.255c-67.06 38.716-65.522 37.846-66.92 37.853c-.573.004-1.846-.421-2.829-.944"},null,-1),n("path",{fill:"#333943",d:"M126.397 275.238c-.44-.188-24.952-14.3-54.47-31.361c-34.351-19.855-53.962-31.413-54.485-32.113c-.813-1.09-.816-1.326-.816-64.334c0-63.047.002-63.243.818-64.335c.525-.703 20.06-12.217 54.485-32.112c29.517-17.06 54.116-31.194 54.665-31.411s1.553-.29 2.232-.163c.967.181 104.484 59.604 108.805 62.458c.584.386 1.247 1.188 1.475 1.783c.276.722.456 22.028.54 64.05l.129 62.968l-.839 1.132c-.553.747-12.01 7.575-33.653 20.056c-81.042 46.735-75.862 43.807-77.41 43.75c-.37-.015-1.035-.18-1.476-.368m2.77-69.648c1.108-2.144 5.303-7.487 8.675-11.05c1.858-1.962 8.967-8.558 15.798-14.658c15.764-14.076 20.858-19.385 26.141-27.244c6.775-10.078 10.003-22.102 8.497-31.649c-1.65-10.458-8.018-19.169-17.411-23.816c-4.05-2.004-6.983-2.692-12.42-2.914c-3.993-.163-5.418-.051-8.413.66c-8.679 2.059-16.207 7.752-20.303 15.353c-.683 1.267-1.394 2.304-1.58 2.304s-.785-.883-1.332-1.962c-1.429-2.82-5.446-7.664-7.916-9.544c-6.925-5.274-12.884-7.18-21.304-6.817c-5.447.235-8.748 1.08-13.113 3.36c-7.469 3.9-13.574 11.516-15.849 19.77c-.893 3.24-.993 13.34-.169 17.027c1.92 8.59 6.36 17.046 13.251 25.24c3.87 4.6 11.215 11.695 22.243 21.481c13.554 12.028 18.433 17.105 22.404 23.312c.802 1.254 1.628 2.28 1.836 2.28s.642-.51.964-1.133"},null,-1),n("path",{fill:"#252A32",d:"M151.605 228.562c-12.322-11.157-22.463-20.551-22.536-20.877c-.146-.653 1.673-3.682 4.067-6.771c3.656-4.717 8.413-9.417 20.1-19.861c19.503-17.427 24.871-23.372 30.363-33.623c3.733-6.968 5.5-13.982 5.49-21.786c-.007-5.914-.768-9.263-3.275-14.435c-.632-1.303-1.099-2.488-1.037-2.635c.113-.268 52.387 48.13 53.696 49.715c.651.788.7 2.65.699 26.344c-.002 23.55-.056 25.582-.701 26.626c-.512.829-9.06 5.96-31.948 19.182c-17.187 9.928-31.534 18.13-31.882 18.228c-.41.115-8.524-6.968-23.036-20.107"},null,-1)]))}const ct=J({name:"logos-webtorrent",render:it}),lt={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100"},dt=["id"],ut=["id"],mt=["fill","mask"],pt=se({__name:"CuiOnvifIcon",setup($){const d=F(xe(10)),j=F(xe(10));return(E,R)=>(s(),p("svg",lt,[n("defs",null,[n("linearGradient",{id:e(d),x1:"0%",y1:"0%",x2:"100%",y2:"100%"},R[0]||(R[0]=[n("stop",{offset:"0%",style:{"stop-color":"#29abe2"}},null,-1),n("stop",{offset:"100%",style:{"stop-color":"#4f2d7f"}},null,-1)]),8,dt),n("mask",{id:e(j)},R[1]||(R[1]=[n("rect",{width:"100%",height:"100%",fill:"white"},null,-1),n("circle",{cx:"54",cy:"46",r:"32",fill:"black"},null,-1)]),8,ut)]),n("circle",{cx:"50",cy:"50",r:"40",fill:`url(#${e(d)})`,mask:`url(#${e(j)})`},null,8,mt)]))}}),ht={viewBox:"0 0 512 512",width:"1.2em",height:"1.2em"};function ft($,d){return s(),p("svg",ht,d[0]||(d[0]=[n("path",{fill:"currentColor",d:"M201.459 35.184L93.114 161.545v53.47L254.041 30.733L512 8.902L133.866 406.659l49.874 2.877l274.62-283.015v268.646l-30.716 28.864l78.027 4.612v74.455l-243.583-20.63l123.746-120.395v-59.74L209.185 478L0 460.29L336.764 93.876l-55.874 3.3L37.697 366.981V137.742l22.881-27.544l-56.254 3.326V51.871z"},null,-1)]))}const _t=J({name:"file-icons-ffmpeg",render:ft}),gt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function vt($,d){return s(),p("svg",gt,d[0]||(d[0]=[n("path",{fill:"currentColor",d:"M11.971.302a.72.72 0 0 0-.444.155L.984 8.82a.7.7 0 0 0-.139.146c.11-.156.037-.046-.048.015c-.084.06-.2.136-.313.22a2 2 0 0 0-.178.141c-.064.057-.143.098-.24.32a.76.76 0 0 0-.026.549c.08.233.277.384.405.441c.253.114.353.079.463.071c.399.022.737-.019.922 0c.077.009.087.017.097.02c.032 3.58.004 7.167.014 10.76a1 1 0 0 0 .014.14c0-.002-.027.367-.033.764c-.003.199-.009.43.137.721c.147.29.565.551.909.559h14.717c1.148-.035 2.39.083 3.686-.07a.717.717 0 0 0 .632-.712v-1.493a2.7 2.7 0 0 0 0-.514v-.025c-.007-2.132-.002-4.268 0-6.406v-1.993l-.002.054c.059-.776-.031-1.39.053-1.803c.041-.01.1-.013.216-.014c.24-.002.601.065 1.055.008l.072-.013a.74.74 0 0 0 .33-.16a.83.83 0 0 0 .27-.524c.027-.383-.132-.498-.202-.58c-.14-.164-.237-.22-.344-.297c-.106-.078-.213-.15-.291-.207c-.08-.058-.143-.133-.076-.05a1 1 0 0 0-.064-.07c-.351-.334-.713-.553-.974-.76c-.23-.18-.358-.33-.434-.497V4.802a1.5 1.5 0 0 0 .023-.493a1.1 1.1 0 0 0-.344-.65c-.344-.297-.711-.293-1.036-.24c-.247-.027-.551.012-.779.23c-.294.28-.29.573-.291.748c-.002.174.017.304.026.398c.008.093-.009.152.012.066a.7.7 0 0 0-.007.313c.034.168-.022.475-.074.583l-.008-.004L12.416.456a.72.72 0 0 0-.445-.154m-.05 2.058c.18-.001.368.043.537.124c2.047 1.552 4.053 3.19 6.103 4.79l-.037-.031c.498.445 1.033.776 1.411 1.115c.375.336.575.614.615 1.025c.007.563.003 1.127.006 1.69q-.017.385.003.716c.004.891.012 1.781.01 2.673v6.867a1.2 1.2 0 0 1-.157.468c-.136.215-.272.314-.523.318c-5.108.018-10.22.003-15.332.008a1 1 0 0 0-.115.009a1.08 1.08 0 0 1-.758-.175c-.2-.143-.305-.31-.303-.562v-.008c-.016-3.27-.002-6.545-.007-9.822l-.002.05c.047-.678-.027-1.31-.004-1.836c.022-.51.11-.872.378-1.183c2.52-2.058 5.115-4.05 7.68-6.093a.84.84 0 0 1 .495-.143m.053 3.088a.72.72 0 0 0-.445.153L7.586 8.706l-.047.04c-.318.3-1.048.59-1.515 1.39a.7.7 0 0 0-.098.354c-.027 2.82-.004 5.633-.012 8.44a.717.717 0 0 0 .717.717h10.682a.717.717 0 0 0 .717-.716v-3.438c-.025-1.683.053-3.415-.042-5.166a.72.72 0 0 0-.26-.514c-.222-.184-.45-.358-.673-.539c-.06-.052-.118-.108-.177-.155c-.124-.102-.24-.184-.358-.272c-.64-.512-1.278-1.026-1.921-1.53q-.314-.253-.644-.505c-.513-.402-1.029-.803-1.536-1.208a.72.72 0 0 0-.445-.156m.016 1.89a.9.9 0 0 1 .325.06c.858.563 1.673 1.31 2.598 2.006l-.06-.05c.297.28.591.486.856.68l.356.283c.218.19.368.365.438.562c.063 1.936.01 3.9.029 5.886v.037c.023.358.006.751-.068.975c-.069.207-.078.248-.27.284c-2.468.053-4.956.008-7.458.023l-.041.002c-.365.023-.765.005-.985-.071c-.211-.073-.244-.069-.275-.297c-.05-1.596-.008-3.22-.023-4.863l-.002.063c.079-.997-.077-1.768.13-2.264c.794-.76 1.788-1.412 2.753-2.206l-.068.05c.436-.281.76-.606 1.047-.827c.284-.217.491-.321.718-.333M.84 9.283c.005 0 .025.009.03.01H.82c-.008 0-.007-.01.022-.01m11.131.79a.7.7 0 0 0-.43.143l-1.824 1.368a.72.72 0 0 0-.286.573v3.191a.717.717 0 0 0 .729.717L13.809 16a.717.717 0 0 0 .703-.717v-3.126a.72.72 0 0 0-.286-.573l-1.824-1.368a.7.7 0 0 0-.43-.144m-10.677.31c-.02.022-.03.023-.03.023zm10.679 1.446c.353.166.668.434.976.782c.107.485.045 1.12.048 1.86c-.006-.002-.022-.012-.088.005c-.141.037-.442.037-.748.026l.02.001c-.455-.029-.856.022-1.078-.007a.5.5 0 0 1-.157-.042l-.002-.006c-.004-.705-.052-1.323.045-1.81c.346-.349.682-.655.984-.809m1.036 2.57c-.012.062-.002.073-.006.072z"},null,-1)]))}const bt=J({name:"cbi-homekit",render:vt}),wt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function yt($,d){return s(),p("svg",wt,d[0]||(d[0]=[n("path",{fill:"currentColor",d:"M22.939 10.627L13.061.749a1.505 1.505 0 0 0-2.121 0l-9.879 9.878C.478 11.21 0 12.363 0 13.187v9c0 .826.675 1.5 1.5 1.5h9.227l-4.063-4.062a2 2 0 0 1-.664.113c-1.13 0-2.05-.92-2.05-2.05s.92-2.05 2.05-2.05s2.05.92 2.05 2.05c0 .233-.041.456-.113.665l3.163 3.163V9.928a2.05 2.05 0 0 1-1.15-1.84c0-1.13.92-2.05 2.05-2.05s2.05.92 2.05 2.05a2.05 2.05 0 0 1-1.15 1.84v8.127l3.146-3.146A2.05 2.05 0 0 1 18 12.239c1.13 0 2.05.92 2.05 2.05s-.92 2.05-2.05 2.05a2 2 0 0 1-.709-.13L12.9 20.602v3.088h9.6c.825 0 1.5-.675 1.5-1.5v-9c0-.825-.477-1.977-1.061-2.561z"},null,-1)]))}const xt=J({name:"simple-icons-homeassistant",render:yt}),kt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ct($,d){return s(),p("svg",kt,d[0]||(d[0]=[n("path",{fill:"currentColor",d:"M12 2C7.342 2 3.44 5.19 2.328 9.5h6.733A3.01 3.01 0 0 1 12 7.1a3.01 3.01 0 0 1 2.94 2.4h6.732C20.56 5.19 16.658 2 12 2m0 6.1c-1.11 0-2 .89-2 2s.89 2 2 2s2-.89 2-2s-.89-2-2-2m-9.875 2.4C2.051 10.99 2 11.489 2 12q.005.877.162 1.74l2.535-.451c.465 2.165 1.752 4.026 3.553 5.139a7.1 7.1 0 0 0 7.5 0c1.802-1.113 3.089-2.976 3.553-5.14l2.543.452A10 10 0 0 0 22 12c0-.511-.05-1.01-.125-1.5h-6.916c-.199 1.462-1.445 2.6-2.959 2.6s-2.76-1.138-2.959-2.6zm17.846 4.43a8.5 8.5 0 0 1-7.97 5.57a8.5 8.5 0 0 1-7.971-5.568l-1.495.267A10 10 0 0 0 12 22a10 10 0 0 0 9.463-6.803z"},null,-1)]))}const St=J({name:"cbi-roborock",render:Ct}),$t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Tt($,d){return s(),p("svg",$t,d[0]||(d[0]=[n("path",{fill:"currentColor",d:"M24 16.375a3.05 3.05 0 0 1-.246 1.231a3.1 3.1 0 0 1-1.672 1.66a3.1 3.1 0 0 1-1.225.247a3.7 3.7 0 0 1-.71-.073a4 4 0 0 1-.739-.218a3.2 3.2 0 0 1-.676-.37a2 2 0 0 1-.507-.515a.46.46 0 0 1-.08-.275a.44.44 0 0 1 .152-.346a.5.5 0 0 1 .346-.138a.6.6 0 0 1 .201.04a.4.4 0 0 1 .186.17a.05.05 0 0 0 .016.032l.064.065a1.8 1.8 0 0 0 .798.507a3 3 0 0 0 .943.154a2.1 2.1 0 0 0 .846-.17a2.2 2.2 0 0 0 1.16-1.16a2.1 2.1 0 0 0 .176-.841v-1.109a3.1 3.1 0 0 1-.985.637a3.1 3.1 0 0 1-1.193.234a3.05 3.05 0 0 1-1.231-.246a3.14 3.14 0 0 1-1.66-1.66a3 3 0 0 1-.247-1.232v-2.544a3.1 3.1 0 0 1 .247-1.225a3.2 3.2 0 0 1 .668-1a3.2 3.2 0 0 1 .986-.669a3.15 3.15 0 0 1 2.463 0a3.1 3.1 0 0 1 1.668 1.668a3.1 3.1 0 0 1 .246 1.225v5.92zm-.967-5.92a2.1 2.1 0 0 0-.17-.846a2.2 2.2 0 0 0-1.16-1.16a2.2 2.2 0 0 0-1.692 0a2.2 2.2 0 0 0-1.166 1.16a2.1 2.1 0 0 0-.168.845v2.531a2.1 2.1 0 0 0 .168.853a2.2 2.2 0 0 0 .468.693a2.2 2.2 0 0 0 .694.467a2.2 2.2 0 0 0 1.692 0a2.2 2.2 0 0 0 1.16-1.16a2.1 2.1 0 0 0 .174-.853zm-7.252 5.356a.44.44 0 0 1-.154.363a.51.51 0 0 1-.66 0a.43.43 0 0 1-.153-.363v-5.356a2.1 2.1 0 0 0-.17-.846a2.2 2.2 0 0 0-1.16-1.16a2.2 2.2 0 0 0-1.692 0a2.2 2.2 0 0 0-1.16 1.16a2.1 2.1 0 0 0-.17.846v5.356a.43.43 0 0 1-.152.363a.51.51 0 0 1-.661 0a.43.43 0 0 1-.153-.363v-5.356a3.1 3.1 0 0 1 .246-1.225a3.2 3.2 0 0 1 .67-1a3.2 3.2 0 0 1 .984-.669a3.15 3.15 0 0 1 2.464 0a3.1 3.1 0 0 1 1.667 1.668a3.1 3.1 0 0 1 .247 1.225zm-8.383 0a.44.44 0 0 1-.152.363a.51.51 0 0 1-.662 0a.43.43 0 0 1-.152-.363V7.956a.44.44 0 0 1 .152-.363a.51.51 0 0 1 .662 0a.44.44 0 0 1 .152.363zM4.982 8.44a.46.46 0 0 1-.145.338a.48.48 0 0 1-.355.142a.5.5 0 0 1-.339-.145l-.016-.017a.2.2 0 0 0-.032-.024a.1.1 0 0 1-.033-.025a1.9 1.9 0 0 0-1.24-.43q-.871 0-1.363.595q-.491.596-.492 1.693v5.243a.44.44 0 0 1-.153.363a.53.53 0 0 1-.33.123a.53.53 0 0 1-.33-.123a.43.43 0 0 1-.153-.363v-5.243A4.4 4.4 0 0 1 .18 9.303a3 3 0 0 1 .53-1.031a2.55 2.55 0 0 1 .878-.706a2.8 2.8 0 0 1 1.231-.257a3.1 3.1 0 0 1 1.065.209a2.6 2.6 0 0 1 .934.58a.48.48 0 0 1 .163.343zm2.76-3.128a.826.826 0 0 1-.826.827a.826.826 0 0 1-.827-.827a.826.826 0 0 1 .827-.826a.826.826 0 0 1 .826.826"},null,-1)]))}const Rt=J({name:"simple-icons-ring",render:Tt}),Pt={viewBox:"0 0 48 48",width:"1.2em",height:"1.2em"};function At($,d){return s(),p("svg",Pt,d[0]||(d[0]=[n("path",{fill:"#FFC107",d:"M43.611 20.083H42V20H24v8h11.303c-1.649 4.657-6.08 8-11.303 8c-6.627 0-12-5.373-12-12s5.373-12 12-12c3.059 0 5.842 1.154 7.961 3.039l5.657-5.657C34.046 6.053 29.268 4 24 4C12.955 4 4 12.955 4 24s8.955 20 20 20s20-8.955 20-20c0-1.341-.138-2.65-.389-3.917"},null,-1),n("path",{fill:"#FF3D00",d:"m6.306 14.691l6.571 4.819C14.655 15.108 18.961 12 24 12c3.059 0 5.842 1.154 7.961 3.039l5.657-5.657C34.046 6.053 29.268 4 24 4C16.318 4 9.656 8.337 6.306 14.691"},null,-1),n("path",{fill:"#4CAF50",d:"M24 44c5.166 0 9.86-1.977 13.409-5.192l-6.19-5.238A11.9 11.9 0 0 1 24 36c-5.202 0-9.619-3.317-11.283-7.946l-6.522 5.025C9.505 39.556 16.227 44 24 44"},null,-1),n("path",{fill:"#1976D2",d:"M43.611 20.083H42V20H24v8h11.303a12.04 12.04 0 0 1-4.087 5.571l.003-.002l6.19 5.238C36.971 39.205 44 34 44 24c0-1.341-.138-2.65-.389-3.917"},null,-1)]))}const It=J({name:"flat-color-icons-google",render:At}),Mt={class:"flex flex-col gap-6 w-full h-full"},Ht={class:"flex flex-col w-full h-full gap-6"},jt={class:"h-[70px]"},Et={class:"cui-label"},Lt={class:"flex flex-col w-full h-[calc(100%-70px-1.25rem)]"},Vt={key:0,class:"flex w-full h-full items-center justify-center"},Gt={key:1,class:"flex flex-col w-full h-full items-center justify-center gap-4"},Bt={class:"text-muted"},Ot={class:"flex flex-col"},Ut={class:"font-medium truncate"},Dt={key:0,class:"text-xs text-muted truncate"},qt={key:1,class:"text-xs text-muted truncate"},Ft={key:0,class:"flex flex-col w-full py-4 gap-6"},zt={for:"name",class:"cui-label"},Wt={for:"url",class:"cui-label"},Nt={for:"username",class:"cui-label"},Kt={for:"password",class:"cui-label"},Yt={for:"pin",class:"cui-label"},Xt=se({__name:"DiscoverCameras",setup($){const d=new Se,j=Ne(),{t:E}=Be(),{data:R,isFetching:B,refetch:P,isRefetching:T}=d.discoverCamerasQuery(),{mutateAsync:L,isPending:M}=d.pairCameraQuery(),O=ue("formRef"),y=F(""),x=F(),m=F({}),C=F(),H=F(),u=F(),S=F(),h=Q(()=>B.value||T.value),K=Q(()=>M.value),oe=Q(()=>{var f;return!!((f=x.value)!=null&&f.url.includes("user:pass"))}),A=Q(()=>{var f,w,V;return((f=x.value)==null?void 0:f.type)==="Google"||((w=x.value)==null?void 0:w.type)==="Roborock"||((V=x.value)==null?void 0:V.type)==="Ring"}),Z=Q(()=>{var V,i;if(!((i=(V=R.value)==null?void 0:V.sources)!=null&&i.length))return[];let f=[{name:"Google Nest",type:"Google",url:"nest?:"},{name:"Ring",type:"Ring",url:"ring?:"},{name:"Roborock",type:"Roborock",url:"roborock://"},...je(R.value.sources)];if(!y.value)return f;const w=y.value.toLowerCase();return f=R.value.sources.filter(a=>(a.name??a.id??"Unknown").toLowerCase().includes(w)||a.url.toLowerCase().includes(w)||a.type&&a.type.toLowerCase().includes(w)),f});Ze(x,f=>{C.value=void 0,H.value=void 0,u.value=void 0,S.value=void 0,re(f==null?void 0:f.url)});const re=f=>{if(!f){m.value={};return}m.value[f]?m.value={}:m.value={[f]:!0}},ie=async()=>{try{x.value=void 0,await P()}catch{}},ce=async()=>{var w;const f=await((w=O.value)==null?void 0:w.validate());if(f!=null&&f.valid&&f.values)try{await L({cameraData:f.values}),await P()}catch{}else j.add({severity:"error",summary:E("components.toast.title_error"),detail:E("components.toast.validation_failed"),life:3e3}),console.log("Validation failed",f)};return(f,w)=>{const V=qe,i=We,a=Ce,c=ze,I=Fe,U=De,he=to,ae=It,ee=Rt,$e=St,fe=xt,le=bt,_e=_t,ve=pt,ge=ct,Te=st,Re=yo,be=ao,Pe=so,Ae=no,Ie=Ee,X=Le;return s(),p("div",Mt,[o(Ie,{class:"cui-card",pt:{body:{class:"h-full"},content:{class:"h-full"}}},{content:t(()=>{var de,b;return[n("div",Ht,[n("div",jt,[n("label",Et,v(f.$t("components.dialog.components.new_camera.search_camera")),1),o(U,null,{default:t(()=>[o(V,{modelValue:e(y),"onUpdate:modelValue":w[0]||(w[0]=r=>ne(y)?y.value=r:null),modelModifiers:{trim:!0},loading:e(h),type:"text"},null,8,["modelValue","loading"]),o(I,null,{default:t(()=>[o(a,{text:"",rounded:"",severity:"secondary",disabled:e(h),class:"border-right-color",onClick:w[1]||(w[1]=r=>y.value="")},{icon:t(()=>[o(i)]),_:1},8,["disabled"]),o(a,{text:"",rounded:"",severity:"secondary",disabled:e(h),onClick:ie},{icon:t(()=>[o(c)]),_:1},8,["disabled"])]),_:1})]),_:1})]),n("div",Lt,[e(h)?(s(),p("div",Vt,[o(he,{class:"w-[30px] h-[30px] m-0","stroke-width":"5"})])):(b=(de=e(R))==null?void 0:de.sources)!=null&&b.length?(s(),g(Ae,{key:2,selection:e(x),"onUpdate:selection":w[6]||(w[6]=r=>ne(x)?x.value=r:null),"expanded-rows":e(m),"onUpdate:expandedRows":w[7]||(w[7]=r=>ne(m)?m.value=r:null),value:e(Z),"data-key":"url",loading:e(h),scrollable:"","selection-mode":"single",class:"h-full",pt:{root:{class:"h-full"},tableContainer:{class:"h-full"},table:{class:"table-fixed"}}},{expansion:t(r=>[e(A)?(s(),p("div",Ft,"WIP")):_("",!0),o(e(eo),{ref_key:"formRef",ref:O,class:"flex flex-col w-full py-4 gap-6","validation-schema":e(xo)},{default:t(()=>[e(A)?_("",!0):(s(),g(e(q),{key:0,modelValue:e(C),"onUpdate:modelValue":w[2]||(w[2]=l=>ne(C)?C.value=l:null),modelModifiers:{trim:!0},name:"name",as:"div",class:"flex flex-col field-gap"},{default:t(({field:l,errors:k})=>[n("label",zt,v(f.$t("components.form.label.name")),1),o(U,null,{default:t(()=>[o(V,Y(l,{invalid:k.length>0,loading:e(K),type:"text"}),null,16,["invalid","loading"])]),_:2},1024),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:"name",class:"cui-input-error"})]),_:1})]),_:1},8,["modelValue"])),e(A)?_("",!0):(s(),g(e(q),{key:1,"model-value":r.data.url,name:"url",as:"div",class:"flex flex-col field-gap"},{default:t(({field:l,errors:k})=>[n("label",Wt,v(f.$t("components.form.label.url")),1),o(U,null,{default:t(()=>[o(V,Y(l,{invalid:k.length>0,loading:e(K),type:"text",readonly:""}),null,16,["invalid","loading"])]),_:2},1024),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:"url",class:"cui-input-error"})]),_:1})]),_:2},1032,["model-value"])),e(oe)?(s(),g(e(q),{key:2,modelValue:e(u),"onUpdate:modelValue":w[3]||(w[3]=l=>ne(u)?u.value=l:null),modelModifiers:{trim:!0},name:"username",as:"div",class:"flex flex-col field-gap"},{default:t(({field:l,errors:k})=>[n("label",Nt,v(f.$t("components.form.label.username")),1),o(U,null,{default:t(()=>[o(V,Y(l,{invalid:k.length>0,loading:e(K),type:"text"}),null,16,["invalid","loading"])]),_:2},1024),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:"username",class:"cui-input-error"})]),_:1})]),_:1},8,["modelValue"])):_("",!0),e(oe)?(s(),g(e(q),{key:3,modelValue:e(S),"onUpdate:modelValue":w[4]||(w[4]=l=>ne(S)?S.value=l:null),name:"password",as:"div",class:"flex flex-col field-gap"},{default:t(({field:l,errors:k})=>[n("label",Kt,v(f.$t("components.form.label.password")),1),o(U,null,{default:t(()=>[o(Pe,Y({invalid:k.length>0},l,{loading:e(K),feedback:!1,"toggle-mask":""}),null,16,["invalid","loading"])]),_:2},1024),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:"password",class:"cui-input-error"})]),_:1})]),_:1},8,["modelValue"])):_("",!0),r.data.type==="HomeKit"?(s(),g(e(q),{key:4,modelValue:e(H),"onUpdate:modelValue":w[5]||(w[5]=l=>ne(H)?H.value=l:null),modelModifiers:{trim:!0},name:"pin",as:"div",class:"flex flex-col field-gap"},{default:t(({field:l,errors:k})=>[n("label",Yt,v(f.$t("components.form.label.pin")),1),o(U,null,{default:t(()=>[o(V,Y(l,{invalid:k.length>0,loading:e(K),type:"text",maxlength:8}),null,16,["invalid","loading"])]),_:2},1024),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:"pin",class:"cui-input-error"})]),_:1})]),_:1},8,["modelValue"])):_("",!0),o(e(q),{modelValue:r.data.type,"onUpdate:modelValue":l=>r.data.type=l,name:"type",as:"div",class:"hidden"},null,8,["modelValue","onUpdate:modelValue"]),e(A)?_("",!0):(s(),g(a,{key:5,loading:e(K),label:f.$t("components.dialog.components.new_camera.add_camera"),class:"cui-button-md w-full md:w-auto md:ml-auto",onClick:ce},null,8,["loading","label"]))]),_:2},1032,["validation-schema"])]),default:t(()=>[o(be,{"header-class":"w-10"},{body:t(r=>[r.data.type==="Google"?G((s(),g(a,{key:0,text:"",rounded:"",class:"cui-icon-md"},{icon:t(()=>[o(ae,{width:"100%",height:"100%"})]),_:1})),[[X,{value:"Google Nest"}]]):_("",!0),r.data.type==="Ring"?G((s(),g(a,{key:1,text:"",rounded:"",class:"cui-icon-md"},{icon:t(()=>[o(ee,{class:"text-blue-500",width:"100%",height:"100%"})]),_:1})),[[X,{value:"Ring"}]]):_("",!0),r.data.type==="Roborock"?G((s(),g(a,{key:2,text:"",rounded:"",class:"cui-icon-md"},{icon:t(()=>[o($e,{class:"text-red-500",width:"100%",height:"100%"})]),_:1})),[[X,{value:"Roborock"}]]):_("",!0),r.data.type==="Hass"?G((s(),g(a,{key:3,text:"",rounded:"",class:"cui-icon-md"},{icon:t(()=>[o(fe,{class:"text-sky-500",width:"100%",height:"100%"})]),_:1})),[[X,{value:"Home Assistant"}]]):_("",!0),r.data.type==="HomeKit"?G((s(),g(a,{key:4,text:"",rounded:"",class:"cui-icon-md !bg-transparent"},{icon:t(()=>[o(le,{class:"text-yellow-500",width:"100%",height:"100%"})]),_:1})),[[X,{value:"HomeKit"}]]):_("",!0),r.data.type==="FFmpeg"?G((s(),g(a,{key:5,text:"",rounded:"",class:"cui-icon-md !bg-transparent"},{icon:t(()=>[o(_e,{class:"text-green-500",width:"100%",height:"100%"})]),_:1})),[[X,{value:"FFmpeg"}]]):_("",!0),r.data.type==="Onvif"?G((s(),g(a,{key:6,text:"",rounded:"",class:"cui-icon-md !bg-transparent"},{icon:t(()=>[o(ve,{width:"100%",height:"100%"})]),_:1})),[[X,{value:"Onvif"}]]):_("",!0),r.data.type==="Webtorrent"?G((s(),g(a,{key:7,text:"",rounded:"",class:"cui-icon-md !bg-transparent"},{icon:t(()=>[o(ge,{width:"100%",height:"100%"})]),_:1})),[[X,{value:"WebTorrent"}]]):_("",!0),r.data.type==="GoPro"?G((s(),g(a,{key:8,text:"",rounded:"",class:"cui-icon-md !bg-transparent"},{icon:t(()=>[o(Te,{width:"100%",height:"100%"})]),_:1})),[[X,{value:"GoPro"}]]):_("",!0),r.data.type==="DVRip"?G((s(),g(a,{key:9,text:"",rounded:"",class:"cui-icon-md !bg-transparent"},{icon:t(()=>[o(Re,{width:"100%",height:"100%"})]),_:1})),[[X,{value:"DVRip"}]]):_("",!0)]),_:1}),o(be,{field:"name",header:f.$t("components.form.label.camera")},{body:t(r=>[n("div",Ot,[n("span",Ut,v(r.data.name),1),r.data.type!=="Google"&&r.data.type!=="Roborock"&&r.data.type!=="Ring"?(s(),p("span",Dt,v(r.data.url),1)):_("",!0),r.data.info?(s(),p("span",qt,v(r.data.info),1)):_("",!0)])]),_:1},8,["header"])]),_:1},8,["selection","expanded-rows","value","loading"])):(s(),p("div",Gt,[n("span",Bt,v(f.$t("components.dialog.components.new_camera.no_cameras_found")),1),o(a,{severity:"primary",label:f.$t("components.dialog.components.new_camera.scan_again"),onClick:ie},null,8,["label"])]))])])]}),_:1})])}}}),Qt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Jt($,d){return s(),p("svg",Qt,d[0]||(d[0]=[n("path",{fill:"currentColor",d:"M12.5 9q-.275 0-.425-.25t0-.5L15 3.175q.2-.325.5-.387t.65.112q1.725.775 3.05 2.162T21.25 8.2q.125.325-.038.563T20.7 9zm-3.575 1.225l-3-5.2q-.2-.325-.1-.65t.4-.525Q7.425 3 8.888 2.5T12 2q.375 0 .825.038t.75.087q.35.05.463.3t-.063.55L9.8 10.225q-.15.25-.437.25t-.438-.25M2.85 14q-.275 0-.5-.187t-.275-.463t-.062-.6T2 12q0-1.575.513-3.137T4.1 5.9q.275-.35.638-.35t.562.375l4.2 7.325q.15.25-.012.5T9.05 14zm5 7.1q-1.65-.8-3.025-2.175T2.75 15.8q-.125-.325.05-.562T3.325 15h8.15q.275 0 .425.25t0 .5l-2.875 5.025q-.2.325-.5.425t-.675-.1M12 22q-.35 0-.788-.038t-.762-.087q-.35-.05-.475-.3t.05-.55l4.125-7.2q.15-.25.5-.25t.5.25l2.95 5.125q.175.275.113.6t-.413.6q-1.15.85-2.687 1.35T12 22m6.775-3.875l-4.25-7.375q-.15-.25.013-.5t.437-.25h6.175q.275 0 .5.188t.275.462t.062.6T22 12q0 1.575-.513 3.163T19.9 18.125q-.2.275-.575.288t-.55-.288"},null,-1)]))}const Zt=J({name:"material-symbols-camera-rounded",render:Jt}),en={viewBox:"0 0 12 12",width:"1.2em",height:"1.2em"};function on($,d){return s(),p("svg",en,d[0]||(d[0]=[n("path",{fill:"currentColor",d:"M2.22 4.47a.75.75 0 0 1 1.06 0L6 7.19l2.72-2.72a.75.75 0 0 1 1.06 1.06L6.53 8.78a.75.75 0 0 1-1.06 0L2.22 5.53a.75.75 0 0 1 0-1.06"},null,-1)]))}const tn=J({name:"fluent-chevron-down12-filled",render:on}),nn="#### Source: Bubble\n\nOther names: [ESeeCloud](http://www.eseecloud.com/), [dvr163](http://help.dvr163.com/).\n\n- you can skip `username`, `password`, `port`, `ch` and `stream` if they are default\n- setup separate streams for different channels and streams\n\n```yaml\nstreams:\n camera1: bubble://username:password@192.168.1.123:34567/bubble/live?ch=0&stream=0\n```\n\n_Source: [Go2Rtc Bubble](https://github.com/AlexxIT/go2rtc#source-bubble)_\n",an='#### Source: CUI\n\nThis source can be used to stream dynamically generated, go2rtc compatible, URLs. The source is just a placeholder for a `https://` URL.\n\n```yaml\nstreams:\n camera1: cui://192.168.1.123:34567/some-identifier-if-you-want\n```\n\nThe URL will be changed to `https://192.168.1.123:34567/some-identifier-if-you-want` and the response must be like this:\n\n```json\n{\n {\n "streamUrl": "rtsp://192.168.1.1:554/stream",\n }\n}\n```\n\nGo2rtc will then use the `streamUrl` to stream the video. The `streamUrl` can be any URL that is compatible with go2rtc. The response must be a valid JSON object with the `streamUrl` key.\n',sn=`#### Source: Doorbird
|
|
5
|
-
|
|
6
|
-
[Doorbird](https://www.doorbird.com/) proprietary camera protocol with **two way audio** support.
|
|
7
|
-
|
|
8
|
-
\`\`\`yaml
|
|
9
|
-
streams:
|
|
10
|
-
video-audio:
|
|
11
|
-
- rtsp://user:pass@123.123.123.123:554/mpeg/media.amp
|
|
12
|
-
- doorbird://user:pass@123.123.123.123?media=audio
|
|
13
|
-
two-way:
|
|
14
|
-
- rtsp://user:pass@123.123.123.123:554/mpeg/media.amp
|
|
15
|
-
- doorbird://user:pass@123.123.123.123?media=audio
|
|
16
|
-
- doorbird://user:pass@123.123.123.123
|
|
17
|
-
mjpeg-video:
|
|
18
|
-
- doorbird://user:pass@123.123.123.123?media=video
|
|
19
|
-
\`\`\`
|
|
20
|
-
`,rn="#### Source: DVRIP\n\nOther names: DVR-IP, NetSurveillance, Sofia protocol (NETsurveillance ActiveX plugin XMeye SDK).\n\n- you can skip `username`, `password`, `port`, `channel` and `subtype` if they are default\n- setup separate streams for different channels\n- use `subtype=0` for Main stream, and `subtype=1` for Extra1 stream\n- only the TCP protocol is supported\n\n```yaml\nstreams:\n only_stream: dvrip://username:password@192.168.1.123:34567?channel=0&subtype=0\n only_tts: dvrip://username:password@192.168.1.123:34567?backchannel=1\n two_way_audio:\n - dvrip://username:password@192.168.1.123:34567?channel=0&subtype=0\n - dvrip://username:password@192.168.1.123:34567?backchannel=1\n```\n\n_Source: [Go2Rtc DVRIP](https://github.com/AlexxIT/go2rtc#source-dvrip)_\n",cn=`#### Source: Echo
|
|
21
|
-
|
|
22
|
-
Some sources may have a dynamic link. And you will need to get it using a bash or python script. Your script should echo a link to the source. RTSP, FFmpeg or any of the [supported sources](https://github.com/AlexxIT/go2rtc#module-streams).
|
|
23
|
-
|
|
24
|
-
**Docker** and **Hass Add-on** users has preinstalled \`python3\`, \`curl\`, \`jq\`.
|
|
25
|
-
Check examples in [wiki](https://github.com/AlexxIT/go2rtc/wiki/Source-Echo-examples).
|
|
26
|
-
|
|
27
|
-
\`\`\`yaml
|
|
28
|
-
streams:
|
|
29
|
-
apple_hls: echo:python3 hls.py https://developer.apple.com/streaming/examples/basic-stream-osx-ios5.html
|
|
30
|
-
\`\`\`
|
|
31
|
-
|
|
32
|
-
_Source: [Go2Rtc Echo](https://github.com/AlexxIT/go2rtc#source-echo)_
|
|
33
|
-
`,ln=`#### Source: Exec
|
|
34
|
-
|
|
35
|
-
Exec source can run any external application and expect data from it. Two transports are supported - **pipe** and **RTSP**.
|
|
36
|
-
|
|
37
|
-
If you want to use **RTSP** transport - the command must contain the \`{output}\` argument in any place. On launch, it will be replaced by the local address of the RTSP server.
|
|
38
|
-
|
|
39
|
-
**pipe** reads data from app stdout in different formats: **MJPEG**, **H.264/H.265 bitstream**, **MPEG-TS**. Also pipe can write data to app stdin in two formats: **PCMA** and **PCM/48000**.
|
|
40
|
-
|
|
41
|
-
The source can be used with:
|
|
42
|
-
|
|
43
|
-
- [FFmpeg](https://ffmpeg.org/) - go2rtc ffmpeg source just a shortcut to exec source
|
|
44
|
-
- [FFplay](https://ffmpeg.org/ffplay.html) - play audio on your server
|
|
45
|
-
- [GStreamer](https://gstreamer.freedesktop.org/)
|
|
46
|
-
- [Raspberry Pi Cameras](https://www.raspberrypi.com/documentation/computers/camera_software.html)
|
|
47
|
-
- any your own software
|
|
48
|
-
|
|
49
|
-
\`\`\`yaml
|
|
50
|
-
streams:
|
|
51
|
-
stream: exec:ffmpeg -re -i /media/BigBuckBunny.mp4 -c copy -rtsp_transport tcp -f rtsp {output}
|
|
52
|
-
picam_h264: exec:libcamera-vid -t 0 --inline -o -
|
|
53
|
-
picam_mjpeg: exec:libcamera-vid -t 0 --codec mjpeg -o -
|
|
54
|
-
pi5cam_h264: exec:libcamera-vid -t 0 --libav-format h264 -o -
|
|
55
|
-
canon: exec:gphoto2 --capture-movie --stdout#killsignal=2#killtimeout=5
|
|
56
|
-
play_pcma: exec:ffplay -fflags nobuffer -f alaw -ar 8000 -i -#backchannel=1
|
|
57
|
-
play_pcm48k: exec:ffplay -fflags nobuffer -f s16be -ar 48000 -i -#backchannel=1
|
|
58
|
-
\`\`\`
|
|
59
|
-
|
|
60
|
-
_Source: [Go2Rtc Exec](https://github.com/AlexxIT/go2rtc#source-exec)_
|
|
61
|
-
`,dn=`#### Source: Expr
|
|
62
|
-
|
|
63
|
-
[Expr](https://github.com/antonmedv/expr) - expression language and expression evaluation for Go.
|
|
64
|
-
|
|
65
|
-
- [language definition](https://expr.medv.io/docs/Language-Definition) - takes best from JS, Python, Jinja2 syntax
|
|
66
|
-
- your expression should return a link of any supported source
|
|
67
|
-
- expression supports multiple operation, but:
|
|
68
|
-
- all operations must be separated by a semicolon
|
|
69
|
-
- all operations, except the last one, must declare a new variable (\`let s = "abc";\`)
|
|
70
|
-
- the last operation should return a string
|
|
71
|
-
- go2rtc supports additional functions:
|
|
72
|
-
- \`fetch\` - JS-like HTTP requests
|
|
73
|
-
- \`match\` - JS-like RegExp queries
|
|
74
|
-
|
|
75
|
-
## Examples
|
|
76
|
-
|
|
77
|
-
**Two way audio for Dahua VTO**
|
|
78
|
-
|
|
79
|
-
\`\`\`yaml
|
|
80
|
-
streams:
|
|
81
|
-
dahua_vto: |
|
|
82
|
-
expr: let host = "admin:password@192.168.1.123";
|
|
83
|
-
fetch("http://"+host+"/cgi-bin/configManager.cgi?action=setConfig&Encode[0].MainFormat[0].Audio.Compression=G.711A&Encode[0].MainFormat[0].Audio.Frequency=8000").ok
|
|
84
|
-
? "rtsp://"+host+"/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif" : ""
|
|
85
|
-
\`\`\`
|
|
86
|
-
|
|
87
|
-
**dom.ru**
|
|
88
|
-
|
|
89
|
-
You can get credentials via:
|
|
90
|
-
|
|
91
|
-
- https://github.com/alexmorbo/domru (file \`/share/domru/accounts\`)
|
|
92
|
-
- https://github.com/ad/domru
|
|
93
|
-
|
|
94
|
-
\`\`\`yaml
|
|
95
|
-
streams:
|
|
96
|
-
dom_ru: |
|
|
97
|
-
expr: let camera = "99999999"; let token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; let operator = 99;
|
|
98
|
-
fetch("https://myhome.novotelecom.ru/rest/v1/forpost/cameras/"+camera+"/video", {
|
|
99
|
-
headers: {Authorization: "Bearer "+token, Operator: operator}
|
|
100
|
-
}).json().data.URL
|
|
101
|
-
\`\`\`
|
|
102
|
-
|
|
103
|
-
**Parse HLS files from Apple**
|
|
104
|
-
|
|
105
|
-
Same example in two languages - python and expr.
|
|
106
|
-
|
|
107
|
-
\`\`\`yaml
|
|
108
|
-
streams:
|
|
109
|
-
example_python: |
|
|
110
|
-
echo:python -c 'from urllib.request import urlopen; import re
|
|
111
|
-
|
|
112
|
-
# url1 = "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8"
|
|
113
|
-
html1 = urlopen("https://developer.apple.com/streaming/examples/basic-stream-osx-ios5.html").read().decode("utf-8")
|
|
114
|
-
url1 = re.search(r"https.+?m3u8", html1)[0]
|
|
115
|
-
|
|
116
|
-
# url2 = "gear1/prog_index.m3u8"
|
|
117
|
-
html2 = urlopen(url1).read().decode("utf-8")
|
|
118
|
-
url2 = re.search(r"^[a-z0-1/_]+\\.m3u8$", html2, flags=re.MULTILINE)[0]
|
|
119
|
-
|
|
120
|
-
# url3 = "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_16x9/gear1/prog_index.m3u8"
|
|
121
|
-
url3 = url1[:url1.rindex("/")+1] + url2
|
|
122
|
-
|
|
123
|
-
print("ffmpeg:" + url3 + "#video=copy")'
|
|
124
|
-
|
|
125
|
-
example_expr: |
|
|
126
|
-
expr:
|
|
127
|
-
|
|
128
|
-
let html1 = fetch("https://developer.apple.com/streaming/examples/basic-stream-osx-ios5.html").text;
|
|
129
|
-
let url1 = match(html1, "https.+?m3u8")[0];
|
|
130
|
-
|
|
131
|
-
let html2 = fetch(url1).text;
|
|
132
|
-
let url2 = match(html2, "^[a-z0-1/_]+\\\\.m3u8$", "m")[0];
|
|
133
|
-
|
|
134
|
-
let url3 = url1[:lastIndexOf(url1, "/")+1] + url2;
|
|
135
|
-
|
|
136
|
-
"ffmpeg:" + url3 + "#video=copy"
|
|
137
|
-
\`\`\`
|
|
138
|
-
|
|
139
|
-
## Comparsion
|
|
140
|
-
|
|
141
|
-
| expr | python | js |
|
|
142
|
-
| ---------------------------- | -------------------------- | ------------------------------ |
|
|
143
|
-
| let x = 1; | x = 1 | let x = 1 |
|
|
144
|
-
| {a: 1, b: 2} | {"a": 1, "b": 2} | {a: 1, b: 2} |
|
|
145
|
-
| let r = fetch(url, {method}) | r = request(method, url) | r = await fetch(url, {method}) |
|
|
146
|
-
| r.ok | r.ok | r.ok |
|
|
147
|
-
| r.status | r.status_code | r.status |
|
|
148
|
-
| r.text | r.text | await r.text() |
|
|
149
|
-
| r.json() | r.json() | await r.json() |
|
|
150
|
-
| r.headers | r.headers | r.headers |
|
|
151
|
-
| let m = match(text, "abc") | m = re.search("abc", text) | let m = text.match(/abc/) |
|
|
152
|
-
|
|
153
|
-
_Source: [Go2Rtc Expr](https://github.com/AlexxIT/go2rtc#source-expr)_
|
|
154
|
-
`,un="#### Source: FFmpeg\n\nYou can get any stream or file or device via FFmpeg and push it to go2rtc. The app will automatically start FFmpeg with the proper arguments when someone starts watching the stream.\n\n- FFmpeg preistalled for **Docker** and **Hass Add-on** users\n- **Hass Add-on** users can target files from [/media](https://www.home-assistant.io/more-info/local-media/setup-media/) folder\n\nFormat: `ffmpeg:{input}#{param1}#{param2}#{param3}`. Examples:\n\n```yaml\nstreams:\n # [FILE] all tracks will be copied without transcoding codecs\n file1: ffmpeg:/media/BigBuckBunny.mp4\n\n # [FILE] video will be transcoded to H264, audio will be skipped\n file2: ffmpeg:/media/BigBuckBunny.mp4#video=h264\n\n # [FILE] video will be copied, audio will be transcoded to pcmu\n file3: ffmpeg:/media/BigBuckBunny.mp4#video=copy#audio=pcmu\n\n # [HLS] video will be copied, audio will be skipped\n hls: ffmpeg:https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_16x9/gear5/prog_index.m3u8#video=copy\n\n # [MJPEG] video will be transcoded to H264\n mjpeg: ffmpeg:http://185.97.122.128/cgi-bin/faststream.jpg#video=h264\n\n # [RTSP] video with rotation, should be transcoded, so select H264\n rotate: ffmpeg:rtsp://rtsp:12345678@192.168.1.123/av_stream/ch0#video=h264#rotate=90\n```\n\nAll trascoding formats has [built-in templates](https://github.com/AlexxIT/go2rtc/blob/master/internal/ffmpeg/ffmpeg.go): `h264`, `h265`, `opus`, `pcmu`, `pcmu/16000`, `pcmu/48000`, `pcma`, `pcma/16000`, `pcma/48000`, `aac`, `aac/16000`.\n\nBut you can override them via YAML config. You can also add your own formats to config and use them with source params.\n\n```yaml\nffmpeg:\n bin: ffmpeg # path to ffmpeg binary\n h264: '-codec:v libx264 -g:v 30 -preset:v superfast -tune:v zerolatency -profile:v main -level:v 4.1'\n mycodec: '-any args that supported by ffmpeg...'\n myinput: '-fflags nobuffer -flags low_delay -timeout 5000000 -i {input}'\n myraw: '-ss 00:00:20'\n```\n\n- You can use go2rtc stream name as ffmpeg input (ex. `ffmpeg:camera1#video=h264`)\n- You can use `video` and `audio` params multiple times (ex. `#video=copy#audio=copy#audio=pcmu`)\n- You can use `rotate` param with `90`, `180`, `270` or `-90` values, important with transcoding (ex. `#video=h264#rotate=90`)\n- You can use `width` and/or `height` params, important with transcoding (ex. `#video=h264#width=1280`)\n- You can use `drawtext` to add a timestamp (ex. `drawtext=x=2:y=2:fontsize=12:fontcolor=white:box=1:boxcolor=black`)\n - This will greatly increase the CPU of the server, even with hardware acceleration\n- You can use `raw` param for any additional FFmpeg arguments (ex. `#raw=-vf transpose=1`)\n- You can use `input` param to override default input template (ex. `#input=rtsp/udp` will change RTSP transport from TCP to UDP+TCP)\n - You can use raw input value (ex. `#input=-timeout 5000000 -i {input}`)\n - You can add your own input templates\n\nRead more about [hardware acceleration](https://github.com/AlexxIT/go2rtc/wiki/Hardware-acceleration).\n\n**PS.** It is recommended to check the available hardware in the WebUI add page.\n\n<hr>\n\n#### Source: FFmpeg Device\n\nYou can get video from any USB-camera or Webcam as RTSP or WebRTC stream. This is part of FFmpeg integration.\n\n- check available devices in Web interface\n- `video_size` and `framerate` must be supported by your camera!\n- for Linux supported only video for now\n- for macOS you can stream Facetime camera or whole Desktop!\n- for macOS important to set right framerate\n\nFormat: `ffmpeg:device?{input-params}#{param1}#{param2}#{param3}`\n\n```yaml\nstreams:\n linux_usbcam: ffmpeg:device?video=0&video_size=1280x720#video=h264\n windows_webcam: ffmpeg:device?video=0#video=h264\n macos_facetime: ffmpeg:device?video=0&audio=1&video_size=1280x720&framerate=30#video=h264#audio=pcma\n```\n\n**PS.** It is recommended to check the available devices in the WebUI add page.\n\n_Source: [Go2Rtc FFmpeg](https://github.com/AlexxIT/go2rtc#source-ffmpeg) & [Go2Rtc FFmpeg Device](https://github.com/AlexxIT/go2rtc#source-ffmpeg-device)_\n",mn=`#### Source: GoPro
|
|
155
|
-
|
|
156
|
-
Supported models: HERO9, HERO10, HERO11, HERO12.
|
|
157
|
-
Supported OS: Linux, Mac, Windows, [HassOS](https://www.home-assistant.io/installation/)
|
|
158
|
-
|
|
159
|
-
The other camera models have different APIs. I will try to add them in the next versions.
|
|
160
|
-
|
|
161
|
-
## Config
|
|
162
|
-
|
|
163
|
-
- USB-connected cameras create a new network interface in the system
|
|
164
|
-
- Linux users do not need to install anything
|
|
165
|
-
- Windows users should install the [network driver](https://community.gopro.com/s/article/GoPro-Webcam)
|
|
166
|
-
- if the camera is detected but the stream does not start - you need to disable firewall
|
|
167
|
-
|
|
168
|
-
1. Discover camera address: WebUI > Add > GoPro
|
|
169
|
-
2. Add camera to config
|
|
170
|
-
|
|
171
|
-
\`\`\`yaml
|
|
172
|
-
streams:
|
|
173
|
-
hero12: gopro://172.20.100.51
|
|
174
|
-
\`\`\`
|
|
175
|
-
|
|
176
|
-
## Useful links
|
|
177
|
-
|
|
178
|
-
- https://gopro.github.io/OpenGoPro/
|
|
179
|
-
|
|
180
|
-
_Source: [Go2Rtc Hass](https://github.com/AlexxIT/go2rtc#source-hass)_
|
|
181
|
-
`,pn=`#### Source: Hass
|
|
182
|
-
|
|
183
|
-
Support import camera links from [Home Assistant](https://www.home-assistant.io/) config files:
|
|
184
|
-
|
|
185
|
-
- [Generic Camera](https://www.home-assistant.io/integrations/generic/), setup via GUI
|
|
186
|
-
- [HomeKit Camera](https://www.home-assistant.io/integrations/homekit_controller/)
|
|
187
|
-
- [ONVIF](https://www.home-assistant.io/integrations/onvif/)
|
|
188
|
-
- [Roborock](https://github.com/humbertogontijo/homeassistant-roborock) vacuums with camera
|
|
189
|
-
|
|
190
|
-
\`\`\`yaml
|
|
191
|
-
hass:
|
|
192
|
-
config: '/config' # skip this setting if you Hass Add-on user
|
|
193
|
-
|
|
194
|
-
streams:
|
|
195
|
-
generic_camera: hass:Camera1 # Settings > Integrations > Integration Name
|
|
196
|
-
aqara_g3: hass:Camera-Hub-G3-AB12
|
|
197
|
-
\`\`\`
|
|
198
|
-
|
|
199
|
-
**WebRTC Cameras**
|
|
200
|
-
|
|
201
|
-
Any cameras in WebRTC format are supported. But at the moment Home Assistant only supports some [Nest](https://www.home-assistant.io/integrations/nest/) cameras in this fomat.
|
|
202
|
-
|
|
203
|
-
The Nest API only allows you to get a link to a stream for 5 minutes. So every 5 minutes the stream will be reconnected.
|
|
204
|
-
|
|
205
|
-
\`\`\`yaml
|
|
206
|
-
streams:
|
|
207
|
-
# link to Home Assistant Supervised
|
|
208
|
-
hass-webrtc1: hass://supervisor?entity_id=camera.nest_doorbell
|
|
209
|
-
# link to external Hass with Long-Lived Access Tokens
|
|
210
|
-
hass-webrtc2: hass://192.168.1.123:8123?entity_id=camera.nest_doorbell&token=eyXYZ...
|
|
211
|
-
\`\`\`
|
|
212
|
-
|
|
213
|
-
**RTSP Cameras**
|
|
214
|
-
|
|
215
|
-
By default, the Home Assistant API does not allow you to get dynamic RTSP link to a camera stream. So more cameras, like [Tuya](https://www.home-assistant.io/integrations/tuya/), and possibly others can also be imported by using [this method](https://github.com/felipecrs/hass-expose-camera-stream-source#importing-home-assistant-cameras-to-go2rtc-andor-frigate).
|
|
216
|
-
|
|
217
|
-
_Source: [Go2Rtc Hass](https://github.com/AlexxIT/go2rtc#source-hass)_
|
|
218
|
-
`,hn=`#### Source: HomeKit
|
|
219
|
-
|
|
220
|
-
**Important:**
|
|
221
|
-
|
|
222
|
-
- You can use HomeKit Cameras **without Apple devices** (iPhone, iPad, etc.), it's just a yet another protocol
|
|
223
|
-
- HomeKit device can be paired with only one ecosystem. So, if you have paired it to an iPhone (Apple Home) - you can't pair it with Home Assistant or go2rtc. Or if you have paired it to go2rtc - you can't pair it with iPhone
|
|
224
|
-
- HomeKit device should be in same network with working [mDNS](https://en.wikipedia.org/wiki/Multicast_DNS) between device and go2rtc
|
|
225
|
-
|
|
226
|
-
go2rtc support import paired HomeKit devices from [Home Assistant](#source-hass). So you can use HomeKit camera with Hass and go2rtc simultaneously. If you using Hass, I recommend pairing devices with it, it will give you more options.
|
|
227
|
-
|
|
228
|
-
You can pair device with go2rtc on the HomeKit page. If you can't see your devices - reload the page. Also try reboot your HomeKit device (power off). If you still can't see it - you have a problems with mDNS.
|
|
229
|
-
|
|
230
|
-
If you see a device but it does not have a pair button - it is paired to some ecosystem (Apple Home, Home Assistant, HomeBridge etc). You need to delete device from that ecosystem, and it will be available for pairing. If you cannot unpair device, you will have to reset it.
|
|
231
|
-
|
|
232
|
-
**Important:**
|
|
233
|
-
|
|
234
|
-
- HomeKit audio uses very non-standard **AAC-ELD** codec with very non-standard params and specification violation
|
|
235
|
-
- Audio can't be played in \`VLC\` and probably any other player
|
|
236
|
-
- Audio should be transcoded for using with MSE, WebRTC, etc.
|
|
237
|
-
|
|
238
|
-
Recommended settings for using HomeKit Camera with WebRTC, MSE, MP4, RTSP:
|
|
239
|
-
|
|
240
|
-
\`\`\`
|
|
241
|
-
streams:
|
|
242
|
-
aqara_g3:
|
|
243
|
-
- hass:Camera-Hub-G3-AB12
|
|
244
|
-
- ffmpeg:aqara_g3#audio=aac#audio=opus
|
|
245
|
-
\`\`\`
|
|
246
|
-
|
|
247
|
-
RTSP link with "normal" audio for any player: \`rtsp://192.168.1.123:8554/aqara_g3?video&audio=aac\`
|
|
248
|
-
|
|
249
|
-
**This source is in active development!** Tested only with [Aqara Camera Hub G3](https://www.aqara.com/eu/product/camera-hub-g3) (both EU and CN versions).
|
|
250
|
-
|
|
251
|
-
_Source: [Go2Rtc HomeKit](https://github.com/AlexxIT/go2rtc#source-homekit)_
|
|
252
|
-
`,fn=`#### Source: HTTP
|
|
253
|
-
|
|
254
|
-
Support Content-Type:
|
|
255
|
-
|
|
256
|
-
- **HTTP-FLV** (\`video/x-flv\`) - same as RTMP, but over HTTP
|
|
257
|
-
- **HTTP-JPEG** (\`image/jpeg\`) - camera snapshot link, can be converted by go2rtc to MJPEG stream
|
|
258
|
-
- **HTTP-MJPEG** (\`multipart/x\`) - simple MJPEG stream over HTTP
|
|
259
|
-
- **MPEG-TS** (\`video/mpeg\`) - legacy [streaming format](https://en.wikipedia.org/wiki/MPEG_transport_stream)
|
|
260
|
-
|
|
261
|
-
Source also support HTTP and TCP streams with autodetection for different formats: **MJPEG**, **H.264/H.265 bitstream**, **MPEG-TS**.
|
|
262
|
-
|
|
263
|
-
\`\`\`yaml
|
|
264
|
-
streams:
|
|
265
|
-
# [HTTP-FLV] stream in video/x-flv format
|
|
266
|
-
http_flv: http://192.168.1.123:20880/api/camera/stream/780900131155/657617
|
|
267
|
-
|
|
268
|
-
# [JPEG] snapshots from Dahua camera, will be converted to MJPEG stream
|
|
269
|
-
dahua_snap: http://admin:password@192.168.1.123/cgi-bin/snapshot.cgi?channel=1
|
|
270
|
-
|
|
271
|
-
# [MJPEG] stream will be proxied without modification
|
|
272
|
-
http_mjpeg: https://mjpeg.sanford.io/count.mjpeg
|
|
273
|
-
|
|
274
|
-
# [MJPEG or H.264/H.265 bitstream or MPEG-TS]
|
|
275
|
-
tcp_magic: tcp://192.168.1.123:12345
|
|
276
|
-
|
|
277
|
-
# Add custom header
|
|
278
|
-
custom_header: 'https://mjpeg.sanford.io/count.mjpeg#header=Authorization: Bearer XXX'
|
|
279
|
-
\`\`\`
|
|
280
|
-
|
|
281
|
-
**PS.** Dahua camera has bug: if you select MJPEG codec for RTSP second stream - snapshot won't work.
|
|
282
|
-
|
|
283
|
-
_Source: [Go2Rtc Http](https://github.com/AlexxIT/go2rtc#source-http)_
|
|
284
|
-
`,_n=`#### Source: ISAPI
|
|
285
|
-
|
|
286
|
-
This source type support only backchannel audio for Hikvision ISAPI protocol. So it should be used as second source in addition to the RTSP protocol.
|
|
287
|
-
|
|
288
|
-
\`\`\`yaml
|
|
289
|
-
streams:
|
|
290
|
-
hikvision1:
|
|
291
|
-
- rtsp://admin:password@192.168.1.123:554/Streaming/Channels/101
|
|
292
|
-
- isapi://admin:password@192.168.1.123:80/
|
|
293
|
-
\`\`\`
|
|
294
|
-
|
|
295
|
-
_Source: [Go2Rtc Isapi](https://github.com/AlexxIT/go2rtc#source-isapi)_
|
|
296
|
-
`,gn=`#### Source: Ivideon
|
|
297
|
-
|
|
298
|
-
Support public cameras from service [Ivideon](https://tv.ivideon.com/).
|
|
299
|
-
|
|
300
|
-
\`\`\`yaml
|
|
301
|
-
streams:
|
|
302
|
-
quailcam: ivideon:100-tu5dkUPct39cTp9oNEN2B6/0
|
|
303
|
-
\`\`\`
|
|
304
|
-
|
|
305
|
-
_Source: [Go2Rtc Ivideon](https://github.com/AlexxIT/go2rtc#source-ivideon)_
|
|
306
|
-
`,vn="#### Source: Kasa\n\n[TP-Link Kasa](https://www.kasasmart.com/) non-standard protocol [more info](https://medium.com/@hu3vjeen/reverse-engineering-tp-link-kc100-bac4641bf1cd).\n\n- `username` - urlsafe email, `alex@gmail.com` -> `alex%40gmail.com`\n- `password` - base64password, `secret1` -> `c2VjcmV0MQ==`\n\n```yaml\nstreams:\n kc401: kasa://username:password@192.168.1.123:19443/https/stream/mixed\n```\n\nTested: KD110, KC200, KC401, KC420WS, EC71.\n\n_Source: [Go2Rtc Kasa](https://github.com/AlexxIT/go2rtc#source-kasa)_\n",bn=`#### Source: Nest
|
|
307
|
-
|
|
308
|
-
Currently only WebRTC cameras are supported.
|
|
309
|
-
|
|
310
|
-
For simplicity, it is recommended to connect the Nest/WebRTC camera to the [Home Assistant](#source-hass). But if you can somehow get the below parameters - Nest/WebRTC source will work without Hass.
|
|
311
|
-
|
|
312
|
-
\`\`\`yaml
|
|
313
|
-
streams:
|
|
314
|
-
nest-doorbell: nest:?client_id=***&client_secret=***&refresh_token=***&project_id=***&device_id=***
|
|
315
|
-
\`\`\`
|
|
316
|
-
|
|
317
|
-
_Source: [Go2Rtc Nest](https://github.com/AlexxIT/go2rtc#source-nest)_
|
|
318
|
-
`,wn=`#### Source: ONVIF
|
|
319
|
-
|
|
320
|
-
The source is not very useful if you already know RTSP and snapshot links for your camera. But it can be useful if you don't.
|
|
321
|
-
|
|
322
|
-
**WebUI > Add** webpage support ONVIF autodiscovery. Your server must be on the same subnet as the camera. If you use docker, you must use "network host".
|
|
323
|
-
|
|
324
|
-
\`\`\`yaml
|
|
325
|
-
streams:
|
|
326
|
-
dahua1: onvif://admin:password@192.168.1.123
|
|
327
|
-
reolink1: onvif://admin:password@192.168.1.123:8000
|
|
328
|
-
tapo1: onvif://admin:password@192.168.1.123:2020
|
|
329
|
-
\`\`\`
|
|
330
|
-
|
|
331
|
-
_Source: [Go2Rtc Onvif](https://github.com/AlexxIT/go2rtc#source-onvif)_
|
|
332
|
-
`,yn=`#### Source: Ring
|
|
333
|
-
|
|
334
|
-
This source type support Ring cameras.
|
|
335
|
-
|
|
336
|
-
- \`device_id\` - camera ID, you can get it from go2rtc WebUI > Add webpage via 2FA.
|
|
337
|
-
- \`refresh_token\` - refresh token, you can get it from go2rtc WebUI > Add webpage via 2FA.
|
|
338
|
-
|
|
339
|
-
\`\`\`yaml
|
|
340
|
-
streams:
|
|
341
|
-
ring: ring:?device_id=***&refresh_token=***
|
|
342
|
-
\`\`\`
|
|
343
|
-
`,xn=`#### Source: Roborock
|
|
344
|
-
|
|
345
|
-
This source type support Roborock vacuums with cameras. Known working models:
|
|
346
|
-
|
|
347
|
-
- Roborock S6 MaxV - only video (the vacuum has no microphone)
|
|
348
|
-
- Roborock S7 MaxV - video and two way audio
|
|
349
|
-
- Roborock Qrevo MaxV - video and two way audio
|
|
350
|
-
|
|
351
|
-
Source support load Roborock credentials from Home Assistant [custom integration](https://github.com/humbertogontijo/homeassistant-roborock) or the [core integration](https://www.home-assistant.io/integrations/roborock). Otherwise, you need to log in to your Roborock account (MiHome account is not supported). Go to: go2rtc WebUI > Add webpage. Copy \`roborock://...\` source for your vacuum and paste it to \`go2rtc.yaml\` config.
|
|
352
|
-
|
|
353
|
-
If you have graphic pin for your vacuum - add it as numeric pin (lines: 123, 456, 789) to the end of the roborock-link.
|
|
354
|
-
|
|
355
|
-
_Source: [Go2Rtc Roborock](https://github.com/AlexxIT/go2rtc#source-roborock)_
|
|
356
|
-
`,kn=`#### Source: RTMP
|
|
357
|
-
|
|
358
|
-
You can get stream from RTMP server, for example [Nginx with nginx-rtmp-module](https://github.com/arut/nginx-rtmp-module).
|
|
359
|
-
|
|
360
|
-
\`\`\`yaml
|
|
361
|
-
streams:
|
|
362
|
-
rtmp_stream: rtmp://192.168.1.123/live/camera1
|
|
363
|
-
\`\`\`
|
|
364
|
-
|
|
365
|
-
_Source: [Go2Rtc RTMP](https://github.com/AlexxIT/go2rtc#source-rtmp)_
|
|
366
|
-
`,Cn=`#### Source: RTSP
|
|
367
|
-
|
|
368
|
-
\`\`\`yaml
|
|
369
|
-
streams:
|
|
370
|
-
sonoff_camera: rtsp://rtsp:12345678@192.168.1.123/av_stream/ch0
|
|
371
|
-
dahua_camera:
|
|
372
|
-
- rtsp://admin:password@192.168.1.123/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
|
|
373
|
-
- rtsp://admin:password@192.168.1.123/cam/realmonitor?channel=1&subtype=1
|
|
374
|
-
amcrest_doorbell:
|
|
375
|
-
- rtsp://username:password@192.168.1.123:554/cam/realmonitor?channel=1&subtype=0#backchannel=0
|
|
376
|
-
unifi_camera: rtspx://192.168.1.123:7441/fD6ouM72bWoFijxK
|
|
377
|
-
glichy_camera: ffmpeg:rtsp://username:password@192.168.1.123/live/ch00_1
|
|
378
|
-
\`\`\`
|
|
379
|
-
|
|
380
|
-
**Recommendations**
|
|
381
|
-
|
|
382
|
-
- **Amcrest Doorbell** users may want to disable two way audio, because with an active stream you won't have a call button working. You need to add \`#backchannel=0\` to the end of your RTSP link in YAML config file
|
|
383
|
-
- **Dahua Doorbell** users may want to change backchannel [audio codec](https://github.com/AlexxIT/go2rtc/issues/52)
|
|
384
|
-
- **Reolink** users may want NOT to use RTSP protocol at all, some camera models have a very awful unusable stream implementation
|
|
385
|
-
- **Ubiquiti UniFi** users may want to disable HTTPS verification. Use \`rtspx://\` prefix instead of \`rtsps://\`. And don't use \`?enableSrtp\` [suffix](https://github.com/AlexxIT/go2rtc/issues/81)
|
|
386
|
-
- **TP-Link Tapo** users may skip login and password, because go2rtc support login [without them](https://drmnsamoliu.github.io/video.html)
|
|
387
|
-
- If your camera has two RTSP links - you can add both of them as sources. This is useful when streams has different codecs, as example AAC audio with main stream and PCMU/PCMA audio with second stream
|
|
388
|
-
- If the stream from your camera is glitchy, try using [ffmpeg source](#source-ffmpeg). It will not add CPU load if you won't use transcoding
|
|
389
|
-
- If the stream from your camera is very glitchy, try to use transcoding with [ffmpeg source](#source-ffmpeg)
|
|
390
|
-
|
|
391
|
-
**Other options**
|
|
392
|
-
|
|
393
|
-
Format: \`rtsp...#{param1}#{param2}#{param3}\`
|
|
394
|
-
|
|
395
|
-
- Add custom timeout \`#timeout=30\` (in seconds)
|
|
396
|
-
- Ignore audio - \`#media=video\` or ignore video - \`#media=audio\`
|
|
397
|
-
- Ignore two way audio API \`#backchannel=0\` - important for some glitchy cameras
|
|
398
|
-
- Use WebSocket transport \`#transport=ws...\`
|
|
399
|
-
|
|
400
|
-
**RTSP over WebSocket**
|
|
401
|
-
|
|
402
|
-
\`\`\`yaml
|
|
403
|
-
streams:
|
|
404
|
-
# WebSocket with authorization, RTSP - without
|
|
405
|
-
axis-rtsp-ws: rtsp://192.168.1.123:4567/axis-media/media.amp?overview=0&camera=1&resolution=1280x720&videoframeskipmode=empty&Axis-Orig-Sw=true#transport=ws://user:pass@192.168.1.123:4567/rtsp-over-websocket
|
|
406
|
-
# WebSocket without authorization, RTSP - with
|
|
407
|
-
dahua-rtsp-ws: rtsp://user:pass@192.168.1.123/cam/realmonitor?channel=1&subtype=1&proto=Private3#transport=ws://192.168.1.123/rtspoverwebsocket
|
|
408
|
-
\`\`\`
|
|
409
|
-
|
|
410
|
-
_Source: [Go2Rtc RTSP](https://github.com/AlexxIT/go2rtc#source-rtsp)_
|
|
411
|
-
`,Sn=`#### Source: Tapo
|
|
412
|
-
|
|
413
|
-
[TP-Link Tapo](https://www.tapo.com/) proprietary camera protocol with **two way audio** support.
|
|
414
|
-
|
|
415
|
-
- stream quality is the same as [RTSP protocol](https://www.tapo.com/en/faq/34/)
|
|
416
|
-
- use the **cloud password**, this is not the RTSP password! you do not need to add a login!
|
|
417
|
-
- you can also use UPPERCASE MD5 hash from your cloud password with \`admin\` username
|
|
418
|
-
- some new camera firmwares requires SHA256 instead of MD5
|
|
419
|
-
|
|
420
|
-
\`\`\`yaml
|
|
421
|
-
streams:
|
|
422
|
-
# cloud password without username
|
|
423
|
-
camera1: tapo://cloud-password@192.168.1.123
|
|
424
|
-
# admin username and UPPERCASE MD5 cloud-password hash
|
|
425
|
-
camera2: tapo://admin:UPPERCASE-MD5@192.168.1.123
|
|
426
|
-
# admin username and UPPERCASE SHA256 cloud-password hash
|
|
427
|
-
camera3: tapo://admin:UPPERCASE-SHA256@192.168.1.123
|
|
428
|
-
\`\`\`
|
|
429
|
-
|
|
430
|
-
\`\`\`bash
|
|
431
|
-
echo -n "cloud password" | md5 | awk '{print toupper($0)}'
|
|
432
|
-
echo -n "cloud password" | shasum -a 256 | awk '{print toupper($0)}'
|
|
433
|
-
\`\`\`
|
|
434
|
-
|
|
435
|
-
_Source: [Go2Rtc Tapo](https://github.com/AlexxIT/go2rtc#source-tapo)_
|
|
436
|
-
`,$n="#### Source: Tuya\n\n[Tuya](https://www.tuya.com/solution/hardware/ip-camera) proprietary camera protocol with **two way audio** support.\n\n```yaml\nstreams:\n camera1: tuya://openapi.tuyaus.com?device_id=XXX&uid=XXX&client_id=XXX&secret=XXX\n```\n\n- `device_id` - The device ID of the Tuya camera\n- `uid` - User ID (UID) of the linked app account\n- `client_id` - Access/Client ID of the cloud project\n- `secret` - Access/Client secret of the cloud project\n- `resolution` - Optional, can be `0` (HD) or `1` (SD). Not all cameras support this option\n- `use_rtsp` - Optional, can be `1` or `0`. Use RTSP stream instead of Tuya's proprietary protocol. Not all cameras support this option\n\nMore information about the webrtc integration can be found in the [Tuya documentation](https://developer.tuya.com/en/docs/iot/webrtc?id=Kacsd4x2hl0se) and [Supported Tuya Regions](https://developer.tuya.com/en/docs/iot/api-request?id=Ka4a8uuo1j4t4#title-1-Endpoints)\n",Tn=`#### Source: WebRTC
|
|
437
|
-
|
|
438
|
-
This source type support four connection formats.
|
|
439
|
-
|
|
440
|
-
**whep**
|
|
441
|
-
|
|
442
|
-
[WebRTC/WHEP](https://datatracker.ietf.org/doc/draft-murillo-whep/) - is replaced by [WebRTC/WISH](https://datatracker.ietf.org/doc/charter-ietf-wish/02/) standard for WebRTC video/audio viewers. But it may already be supported in some third-party software. It is supported in go2rtc.
|
|
443
|
-
|
|
444
|
-
**go2rtc**
|
|
445
|
-
|
|
446
|
-
This format is only supported in go2rtc. Unlike WHEP it supports asynchronous WebRTC connection and two way audio.
|
|
447
|
-
|
|
448
|
-
**openipc**
|
|
449
|
-
|
|
450
|
-
Support connection to [OpenIPC](https://openipc.org/) cameras.
|
|
451
|
-
|
|
452
|
-
**wyze**
|
|
453
|
-
|
|
454
|
-
Supports connection to [Wyze](https://www.wyze.com/) cameras, using WebRTC protocol. You can use [docker-wyze-bridge](https://github.com/mrlt8/docker-wyze-bridge) project to get connection credentials.
|
|
455
|
-
|
|
456
|
-
**kinesis**
|
|
457
|
-
|
|
458
|
-
Supports [Amazon Kinesis Video Streams](https://aws.amazon.com/kinesis/video-streams/), using WebRTC protocol. You need to specify signalling WebSocket URL with all credentials in query params, \`client_id\` and \`ice_servers\` list in [JSON format](https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer).
|
|
459
|
-
|
|
460
|
-
\`\`\`yaml
|
|
461
|
-
streams:
|
|
462
|
-
webrtc-whep: webrtc:http://192.168.1.123:1984/api/webrtc?src=camera1
|
|
463
|
-
webrtc-go2rtc: webrtc:ws://192.168.1.123:1984/api/ws?src=camera1
|
|
464
|
-
webrtc-openipc: webrtc:ws://192.168.1.123/webrtc_ws#format=openipc#ice_servers=[{"urls":"stun:stun.kinesisvideo.eu-north-1.amazonaws.com:443"}]
|
|
465
|
-
webrtc-wyze: webrtc:http://192.168.1.123:5000/signaling/camera1?kvs#format=wyze
|
|
466
|
-
webrtc-kinesis: webrtc:wss://...amazonaws.com/?...#format=kinesis#client_id=...#ice_servers=[{...},{...}]
|
|
467
|
-
\`\`\`
|
|
468
|
-
|
|
469
|
-
**PS.** For \`kinesis\` sources you can use [echo](#source-echo) to get connection params using \`bash\`/\`python\` or any other script language.
|
|
470
|
-
|
|
471
|
-
_Source: [Go2Rtc WebRTC](https://github.com/AlexxIT/go2rtc#source-webrtc)_
|
|
472
|
-
`,Rn=`#### Source: WebTorrent
|
|
473
|
-
|
|
474
|
-
This source can get a stream from another go2rtc via [WebTorrent](#module-webtorrent) protocol.
|
|
475
|
-
|
|
476
|
-
\`\`\`yaml
|
|
477
|
-
streams:
|
|
478
|
-
webtorrent1: webtorrent:?share=huofssuxaty00izc&pwd=k3l2j9djeg8v8r7e
|
|
479
|
-
\`\`\`
|
|
480
|
-
|
|
481
|
-
_Source: [Go2Rtc Webtorrent](https://github.com/AlexxIT/go2rtc#source-webtorrent)_
|
|
482
|
-
`,oo={disabled:!1,name:"",info:{manufacturer:"",model:"",hardware:"",serialNumber:"",firmwareVersion:"",supportUrl:""},sources:[{_id:xe(8),name:"",role:"high-resolution",urls:[{protocol:"rtsp://",url:[]}],useForSnapshot:!1,hotMode:!0,preload:!0}],recording:{enabled:!1},interface:{streamingMode:"webrtc",streamingSource:"auto",aspectRatio:"16:9"},extensions:{hub:[],plugins:[]}},Pn={class:"card-title"},An={class:"flex flex-col gap-6"},In={for:"name",class:"cui-label"},Mn={class:"card-title"},Hn={class:"flex gap-2 items-center w-full"},jn={class:"flex gap-2 items-center w-full"},En={class:"text-color text-sm"},Ln={class:"flex flex-col gap-6"},Vn=["for"],Gn=["for"],Bn={class:"flex items-center gap-4"},On={class:"flex flex-col field-switch-gap"},Un=["for"],Dn={class:"flex items-center gap-4"},qn={class:"flex flex-col field-switch-gap"},Fn=["for"],zn={class:"flex items-center gap-4"},Wn={class:"flex flex-col field-switch-gap"},Nn=["for"],Kn={class:"flex flex-col gap-6"},Yn=["for"],Xn={class:"w-full flex flex-row my-1"},Qn={class:"w-full flex items-center justify-center"},Jn=se({__name:"AddCamera",props:{camera:{default:()=>oo}},setup($,{expose:d}){const j=new Se,E=Ke(),R=Ne(),{t:B}=Be(),{xsBreakpoint:P}=Ve(),T=$,{camera:L}=Ge(T),M=ue("formRef"),O=F(["high-resolution","mid-resolution","low-resolution","snapshot"]),y=F([0]),x=F([]),m=F(je(L.value)),{mutateAsync:C,isPending:H}=j.createCameraQuery(),{mutateAsync:u,isPending:S}=j.previewCameraQuery(),h=Q(()=>H.value||S.value),K=i=>{m.value.sources[i].urls.push({protocol:"rtsp://",url:[]})},oe=(i,a)=>{m.value.sources[i].urls.splice(a,1)},A=()=>{m.value.sources.push({_id:xe(8),name:"",role:null,urls:[{protocol:"rtsp://",url:[]}],useForSnapshot:!1,hotMode:!0,preload:!0}),y.value=[m.value.sources.length]},Z=i=>{m.value.sources.splice(i,1)},re=i=>{let a,c,I;switch(i){case"bubble://":a=[],c=Object.assign({"../../../../../markdowns/bubble.md":nn});break;case"cui://":a=[],c=Object.assign({"../../../../../markdowns/cui.md":an});break;case"doorbird://":a=[],c=Object.assign({"../../../../../markdowns/doorbird.md":sn});break;case"dvrip://":a=[],c=Object.assign({"../../../../../markdowns/dvrip.md":rn});break;case"echo:":a=[],c=Object.assign({"../../../../../markdowns/echo.md":cn});break;case"eseecloud://":a=[],c=Object.assign({});break;case"exec:":a=[],c=Object.assign({"../../../../../markdowns/exec.md":ln});break;case"expr:":a=[],c=Object.assign({"../../../../../markdowns/expr.md":dn});break;case"ffmpeg:":a=He,c=Object.assign({"../../../../../markdowns/ffmpeg.md":un});break;case"flussonic://":a=He,c=Object.assign({});break;case"gopro://":a=He,c=Object.assign({"../../../../../markdowns/gopro.md":mn});break;case"hass:":a=[],c=Object.assign({"../../../../../markdowns/hass.md":pn});break;case"homekit://":a=Uo,c=Object.assign({"../../../../../markdowns/homekit.md":hn});break;case"http://":case"https://":case"httpx://":case"tcp://":a=Do,c=Object.assign({"../../../../../markdowns/http.md":fn});break;case"isapi://":a=[],c=Object.assign({"../../../../../markdowns/isapi.md":_n});break;case"ivideon:":a=[],c=Object.assign({"../../../../../markdowns/ivideon.md":gn});break;case"kasa://":a=[],c=Object.assign({"../../../../../markdowns/kasa.md":vn});break;case"nest:":a=qo,c=Object.assign({"../../../../../markdowns/nest.md":bn});break;case"onvif://":a=[],c=Object.assign({"../../../../../markdowns/onvif.md":wn});break;case"ring:":a=Fo,c=Object.assign({"../../../../../markdowns/ring.md":yn});break;case"roborock://":a=[],c=Object.assign({"../../../../../markdowns/roborock.md":xn});break;case"rtmp://":a=[],c=Object.assign({"../../../../../markdowns/rtmp.md":kn});break;case"rtsp://":case"rtspx://":a=Oo,c=Object.assign({"../../../../../markdowns/rtsp.md":Cn});break;case"tapo://":a=[],c=Object.assign({"../../../../../markdowns/tapo.md":Sn});break;case"tuya://":a=[],c=Object.assign({"../../../../../markdowns/tuya.md":$n});break;case"webrtc:":a=zo,c=Object.assign({"../../../../../markdowns/webrtc.md":Tn});break;case"webtorrent:":a=[],c=Object.assign({"../../../../../markdowns/webtorrent.md":Rn});break;default:a=[],c=void 0;break}return c&&(I=Object.values(c)[0]),{presets:a,md:I}},ie=i=>{x.value=i},ce=(i,a)=>{a.protocol=i},f=async(i,a)=>{if(!(!i&&!a)){if(i){const c={url:w(i)};try{const I=await u({cameraData:c});E.openImageDialog({data:{title:B("components.dialog.title.preview"),src:`data:image/jpeg;base64,${I}`,hideConfirmButton:!0}})}catch{}}else if(a){const c=re(a);if(!c.md)return;E.openTextDialog({data:{title:B("components.dialog.title.information"),hideConfirmButton:!0,contentText:c.md,markdown:!0}})}}},w=i=>{let a=i.url.join("");switch(i.protocol){case"nest:":case"ring:":case"webtorrent:":!a.startsWith("?")&&!a.startsWith(i.protocol)&&(a=`?${a}`)}return a.startsWith(i.protocol)?a:`${i.protocol}${a}`};return d({isLoading:h,onSave:async()=>{var I;const i=await((I=M.value)==null?void 0:I.validate());if(!(i!=null&&i.valid))return R.add({severity:"error",summary:B("components.toast.title_error"),detail:B("components.toast.validation_failed"),life:3e3}),console.log("Validation failed",i),null;const a=je(m.value),c={...a,type:"camera",isCloud:!1,snapshotTTL:600,detectionZones:[],detectionSettings:{motion:{timeout:60},object:{confidence:.7}},frameWorkerSettings:{decoder:"rust",fps:10,resolution:"320x180"},sources:a.sources.map(U=>{const he=U.urls.map(ae=>{if(ae.url)return w(ae)}).filter(Boolean);return{...U,urls:he}})};await C({cameraData:c})}}),(i,a)=>{const c=qe,I=De,U=Ee,he=lo,ae=We,ee=Ce,$e=co,fe=mo,le=po,_e=ho,ve=Co,ge=Fe,Te=tn,Re=fo,be=Zt,Pe=uo,Ae=io,Ie=ro,X=Ye,de=Le;return s(),p("div",null,[o(e(eo),{ref_key:"formRef",ref:M,class:"flex flex-col w-full gap-6","validation-schema":e(ko)},{default:t(()=>[n("div",null,[n("span",Pn,v(i.$t("components.dialog.components.new_camera.camera")),1),o(U,{class:"cui-card"},{content:t(()=>[n("div",An,[o(e(q),{modelValue:e(m).name,"onUpdate:modelValue":a[0]||(a[0]=b=>e(m).name=b),modelModifiers:{trim:!0},name:"name",as:"div",class:"flex flex-col field-gap"},{default:t(({field:b,errors:r})=>[n("label",In,v(i.$t("components.form.label.name")),1),o(I,null,{default:t(()=>[o(c,Y(b,{invalid:r.length>0,loading:e(h),type:"text"}),null,16,["invalid","loading"])]),_:2},1024),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:"name",class:"cui-input-error"})]),_:1})]),_:1},8,["modelValue"])])]),_:1})]),n("div",null,[n("span",Mn,v(i.$t("components.form.label.sources")),1),o(U,{class:"cui-card border-color-inner",pt:{body:{class:"pb-0"}}},{content:t(()=>[o(Ie,{value:e(y),"onUpdate:value":a[2]||(a[2]=b=>ne(y)?y.value=b:null),multiple:""},{default:t(()=>[(s(!0),p(me,null,pe(e(m).sources,(b,r)=>(s(),g(Ae,{key:r,value:r,class:ke({"border-b-0":r===e(m).sources.length-1})},{default:t(()=>[o($e,{class:ke({"px-0 pt-0":r===0,"px-0":r!==0,"pb-5":r===e(m).sources.length-1})},{default:t(()=>[n("div",Hn,[n("div",jn,[n("span",En,v(i.$t("components.dialog.components.new_camera.source")+": "),1),o(he,{class:"text-color text-xs border-[1px] bg-primary-500/20 border-primary-500/30 py-2 px-3 rounded-full overflow-hidden",label:b.name!==""?b.name:i.$t("components.dialog.components.new_camera.unknown")},null,8,["label"])]),e(m).sources.length>1?(s(),g(ee,{key:0,text:"",rounded:"",severity:"danger",class:"cui-icon-md ml-auto mr-2",loading:e(h),onClick:l=>Z(r)},{icon:t(()=>[o(ae,{width:"100%",height:"100%"})]),_:2},1032,["loading","onClick"])):_("",!0)])]),_:2},1032,["class"]),o(Pe,{pt:{content:{class:{"px-0":!0,"pb-5":r===e(m).sources.length-1}}}},{default:t(()=>[n("div",Ln,[o(e(q),{modelValue:b.name,"onUpdate:modelValue":l=>b.name=l,modelModifiers:{trim:!0},name:`sources[${r}].name`,as:"div",class:"flex flex-col field-gap"},{default:t(({field:l,errors:k})=>[n("label",{for:`sources[${r}].name`,class:"cui-label"},v(i.$t("components.form.label.source_name")),9,Vn),o(I,null,{default:t(()=>[o(c,Y({ref_for:!0},l,{invalid:k.length>0,loading:e(h),type:"text"}),null,16,["invalid","loading"])]),_:2},1024),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:`sources[${r}].name`,class:"cui-input-error"},null,8,["name"])]),_:2},1024)]),_:2},1032,["modelValue","onUpdate:modelValue","name"]),o(e(q),{"model-value":b.role,name:`sources[${r}].role`,as:"div",class:"flex flex-col field-gap"},{default:t(({field:l,errors:k})=>[n("label",{for:`sources[${r}].role`,class:"cui-label"},v(i.$t("components.form.label.source_role")),9,Gn),o(I,null,{default:t(()=>[o(fe,Y({"model-value":b.role},{ref_for:!0},l,{options:e(O).filter(D=>!e(m).sources.some(te=>te.role===D&&te._id!==b._id)),invalid:k.length>0,loading:e(h),onValueChange:D=>b.role=D}),null,16,["model-value","options","invalid","loading","onValueChange"])]),_:2},1024),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:`sources[${r}].role`,class:"cui-input-error"},null,8,["name"])]),_:2},1024)]),_:2},1032,["model-value","name"]),b.role!=="snapshot"&&e(m).sources.length>1&&!e(m).sources.some(l=>(l.useForSnapshot||l.role==="snapshot")&&l._id!==b._id)?(s(),g(e(q),{key:0,"model-value":b.useForSnapshot,value:!0,"unchecked-value":!1,type:"checkbox",name:`sources[${r}].useForSnapshot`,as:"div",class:"flex flex-col field-gap"},{default:t(({field:l,errors:k})=>[n("div",Bn,[n("div",On,[n("label",{for:`sources[${r}].useForSnapshot`,class:"cui-label-switch"},v(i.$t("components.form.label.use_for_snapshot")),9,Un),o(le,{severity:"secondary",variant:"simple",size:"small",class:"cui-input-switch-hint"},{default:t(()=>[ye(v(i.$t("components.form.hint.use_for_snapshot")),1)]),_:1}),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:`sources[${r}].useForSnapshot`,class:"cui-input-switch-error"},null,8,["name"])]),_:2},1024)]),o(_e,Y({"model-value":b.useForSnapshot},{ref_for:!0},l,{invalid:k.length>0,loading:e(h),class:"ml-auto shrink-0",onValueChange:D=>b.useForSnapshot=D}),null,16,["model-value","invalid","loading","onValueChange"])])]),_:2},1032,["model-value","name"])):_("",!0),b.role!=="snapshot"?(s(),g(e(q),{key:1,"model-value":b.hotMode,value:!0,"unchecked-value":!1,type:"checkbox",name:`sources[${r}].hotMode`,as:"div",class:"flex flex-col field-gap"},{default:t(({field:l,errors:k})=>[n("div",Dn,[n("div",qn,[n("label",{for:`sources[${r}].hotMode`,class:"cui-label-switch"},v(i.$t("components.form.label.hot_mode")),9,Fn),o(le,{severity:"secondary",variant:"simple",size:"small",class:"cui-input-switch-hint"},{default:t(()=>[ye(v(i.$t("components.form.hint.hot_mode")),1)]),_:1}),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:`sources[${r}].hotMode`,class:"cui-input-switch-error"},null,8,["name"])]),_:2},1024)]),o(_e,Y({"model-value":b.hotMode},{ref_for:!0},l,{invalid:k.length>0,loading:e(h),class:"ml-auto shrink-0",onValueChange:D=>b.hotMode=D}),null,16,["model-value","invalid","loading","onValueChange"])])]),_:2},1032,["model-value","name"])):_("",!0),b.role!=="snapshot"?(s(),g(e(q),{key:2,"model-value":b.preload,value:!0,"unchecked-value":!1,type:"checkbox",name:`sources[${r}].preload`,as:"div",class:"flex flex-col field-gap"},{default:t(({field:l,errors:k})=>[n("div",zn,[n("div",Wn,[n("label",{for:`sources[${r}].preload`,class:"cui-label-switch"},v(i.$t("components.form.label.preload")),9,Nn),o(le,{severity:"secondary",variant:"simple",size:"small",class:"cui-input-switch-hint"},{default:t(()=>[ye(v(i.$t("components.form.hint.preload")),1)]),_:1}),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:`sources[${r}].preload`,class:"cui-input-switch-error"},null,8,["name"])]),_:2},1024)]),o(_e,Y({"model-value":b.preload},{ref_for:!0},l,{invalid:k.length>0,loading:e(h),class:"ml-auto shrink-0",onValueChange:D=>b.preload=D}),null,16,["model-value","invalid","loading","onValueChange"])])]),_:2},1032,["model-value","name"])):_("",!0),n("div",Kn,[(s(!0),p(me,null,pe(b.urls,(l,k)=>(s(),p("div",{key:k},[n("label",{for:`sources[${r}].urls[]`,class:"cui-label"},v(i.$t("components.form.label.source")),9,Yn),e(P)?(s(),g(e(q),{key:0,"model-value":l.protocol,name:`sources[${r}].urls[${k}].protocol`,as:"div",class:"flex flex-col field-gap"},{default:t(({field:D,errors:te})=>[o(I,null,{default:t(()=>[o(fe,Y({"model-value":l.protocol},{ref_for:!0},D,{options:e(Oe),invalid:te.length>0,loading:e(h),"onUpdate:modelValue":z=>ce(z,l)}),null,16,["model-value","options","invalid","loading","onUpdate:modelValue"]),o(ge,null,{default:t(()=>[G((s(),g(ee,{text:"",rounded:"",severity:"secondary",loading:e(h),onClick:z=>f(void 0,l.protocol)},{icon:t(()=>[o(ve)]),_:2},1032,["loading","onClick"])),[[de,{value:i.$t("components.dialog.components.new_camera.protocol_info")},void 0,{top:!0}]])]),_:2},1024)]),_:2},1024),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:`sources[${r}].urls[${k}].protocol`,class:"cui-input-error"},null,8,["name"])]),_:2},1024)]),_:2},1032,["model-value","name"])):_("",!0),n("div",Xn,[e(P)?_("",!0):(s(),g(e(q),{key:0,"model-value":l.protocol,name:`sources[${r}].urls[${k}].protocol`,as:"div",class:"flex flex-col field-gap"},{default:t(({field:D,errors:te})=>[o(I,null,{default:t(()=>[o(fe,Y({"model-value":l.protocol},{ref_for:!0},D,{options:e(Oe),invalid:te.length>0,loading:e(h),pt:{root:{class:"rounded-r-none"}},"onUpdate:modelValue":z=>ce(z,l)}),null,16,["model-value","options","invalid","loading","onUpdate:modelValue"])]),_:2},1024),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:`sources[${r}].urls[${k}].protocol`,class:"cui-input-error"},null,8,["name"])]),_:2},1024)]),_:2},1032,["model-value","name"])),o(e(q),{"model-value":l.url,name:`sources[${r}].urls[${k}].url`,as:"div",class:"flex flex-col field-gap w-full"},{default:t(({field:D,errors:te})=>[o(I,null,{default:t(()=>[o(Re,{"model-value":l.url,invalid:te.length>0,loading:e(h),multiple:"",fluid:"",typeahead:!1,suggestions:e(x),pt:{inputMultiple:{class:"rounded-none overflow-y-scroll max-h-[42px]"}},onComplete:z=>ie(re(l.protocol).presets),onHide:a[1]||(a[1]=z=>x.value=[]),onValueChange:z=>(D.value=z)&&(l.url=z)},{dropdown:t(({toggleCallback:z})=>[o(ge,null,{default:t(()=>[o(ee,{text:"",rounded:"",severity:"secondary",disabled:e(h),class:"border-right-color",onClick:z},{icon:t(()=>[e(h)?_("",!0):(s(),g(Te,{key:0}))]),_:2},1032,["disabled","onClick"])]),_:2},1024)]),_:2},1032,["model-value","invalid","loading","suggestions","onComplete","onValueChange"]),o(ge,null,{default:t(()=>[e(P)?_("",!0):G((s(),g(ee,{key:0,text:"",rounded:"",severity:"secondary",disabled:e(h),class:"border-right-color",onClick:z=>f(void 0,l.protocol)},{icon:t(()=>[o(ve)]),_:2},1032,["disabled","onClick"])),[[de,{value:i.$t("components.dialog.components.new_camera.protocol_info")},void 0,{top:!0}]]),G((s(),g(ee,{text:"",rounded:"",severity:"secondary",disabled:!l.protocol||!l.url.length||e(h),class:"border-right-color",onClick:z=>f(l)},{icon:t(()=>[o(be,{width:"100%",height:"100%"})]),_:2},1032,["disabled","onClick"])),[[de,{value:i.$t("components.dialog.components.new_camera.test_source")},void 0,{top:!0}]]),b.urls.length>1?(s(),g(ee,{key:1,text:"",rounded:"",severity:"danger",disabled:e(h),onClick:Lo(z=>oe(r,k),["prevent"])},{icon:t(()=>[o(ae,{width:"100%",height:"100%"})]),_:2},1032,["disabled","onClick"])):_("",!0)]),_:2},1024)]),_:2},1024),o(W,{name:"fade"},{default:t(()=>[o(e(N),{name:`sources[${r}].urls[${k}].url`,class:"cui-input-error"},null,8,["name"])]),_:2},1024),o(le,{severity:"secondary",variant:"simple",size:"small",class:"cui-input-hint"},{default:t(()=>[ye(v(i.$t("components.form.hint.type_and_enter")),1)]),_:1})]),_:2},1032,["model-value","name"])])]))),128)),o(ee,{loading:e(h),label:i.$t("components.form.button.add_source"),class:"ml-auto cui-button-medium",onClick:l=>K(r)},null,8,["loading","label","onClick"])])])]),_:2},1032,["pt"])]),_:2},1032,["value","class"]))),128))]),_:1},8,["value"])]),_:1})]),n("div",Qn,[o(ee,{text:"",rounded:"",loading:e(h),class:"cui-icon-2xl",onClick:A},{icon:t(()=>[o(X,{width:"100%",height:"100%"})]),_:1},8,["loading"])])]),_:1},8,["validation-schema"])])}}}),Zn={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ea($,d){return s(),p("svg",Zn,d[0]||(d[0]=[n("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",color:"currentColor"},[n("path",{d:"M2.5 12c0-4.478 0-6.718 1.391-8.109S7.521 2.5 12 2.5c4.478 0 6.718 0 8.109 1.391S21.5 7.521 21.5 12c0 4.478 0 6.718-1.391 8.109S16.479 21.5 12 21.5c-4.478 0-6.718 0-8.109-1.391S2.5 16.479 2.5 12"}),n("path",{d:"m15 15l2 2m-1-5.5a4.5 4.5 0 1 0-9 0a4.5 4.5 0 0 0 9 0"})],-1)]))}const oa=J({name:"hugeicons-search-square",render:ea}),ta={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function na($,d){return s(),p("svg",ta,d[0]||(d[0]=[n("path",{fill:"currentColor","fill-rule":"evenodd",d:"M9.451 3.25h.098c1.602 0 2.872 0 3.876.119c1.03.122 1.88.377 2.588.96q.361.296.659.658c.582.709.837 1.557.96 2.588q.04.348.064.739c.786-.392 1.452-.714 2.007-.896c.652-.213 1.343-.299 1.98.095s.87 1.05.97 1.728c.097.655.097 1.516.097 2.551v.416c0 1.035 0 1.896-.097 2.55c-.1.679-.333 1.335-.97 1.729s-1.328.308-1.98.095c-.555-.182-1.221-.504-2.007-.896q-.023.391-.065.739c-.122 1.03-.377 1.88-.96 2.588q-.296.361-.658.659c-.709.582-1.557.837-2.588.96c-1.005.118-2.274.118-3.876.118H9.45c-1.602 0-2.872 0-3.876-.119c-1.03-.122-1.88-.377-2.588-.96a5 5 0 0 1-.659-.658c-.582-.709-.837-1.557-.96-2.588c-.118-1.005-.118-2.274-.118-3.876V11.45c0-1.602 0-2.872.119-3.876c.122-1.03.377-1.88.96-2.588a5 5 0 0 1 .658-.659c.709-.582 1.557-.837 2.588-.96C6.58 3.25 7.85 3.25 9.451 3.25m6.799 9.25v-1c0-1.662-.001-2.843-.108-3.749c-.105-.889-.304-1.415-.63-1.813a3.3 3.3 0 0 0-.45-.45c-.398-.326-.924-.525-1.813-.63c-.906-.107-2.087-.108-3.749-.108s-2.843.001-3.749.108c-.889.105-1.415.304-1.813.63a3.3 3.3 0 0 0-.45.45c-.326.398-.525.924-.63 1.813c-.107.906-.108 2.087-.108 3.749v1c0 1.662.001 2.843.108 3.749c.105.889.304 1.415.63 1.813q.203.247.45.45c.398.326.924.525 1.813.63c.906.107 2.087.108 3.749.108s2.843-.001 3.749-.108c.889-.105 1.415-.304 1.813-.63q.247-.203.45-.45c.326-.398.525-.924.63-1.813c.107-.906.108-2.087.108-3.749m1.5 1.537l.244.121c.995.498 1.666.831 2.176.998c.499.163.65.1.724.055s.198-.153.275-.673c.079-.53.081-1.28.081-2.392v-.292c0-1.113-.002-1.862-.08-2.392c-.078-.52-.202-.627-.276-.673s-.225-.108-.724.055c-.51.167-1.18.5-2.176.998l-.244.122v4.072M9.5 8.75a.75.75 0 0 1 .75.75v1.75H12a.75.75 0 0 1 0 1.5h-1.75v1.75a.75.75 0 0 1-1.5 0v-1.75H7a.75.75 0 0 1 0-1.5h1.75V9.5a.75.75 0 0 1 .75-.75","clip-rule":"evenodd"},null,-1)]))}const aa=J({name:"solar-videocamera-add-outline",render:na}),sa={key:0,class:"flex flex-col items-center justify-center rounded-md",style:{background:"color-mix(in srgb, var(--card-inner-background), transparent 50%)"}},ra={class:"font-semibold text-base text-color"},ia={class:"text-xs text-muted"},ca={class:"font-semibold text-base text-color"},la={class:"text-xs text-muted"},da={key:1,class:"w-full h-full"},ua={key:2,class:"w-full h-full"},ma=se({__name:"NewCamera",setup($,{expose:d}){const j=Qe("dialogRefProps"),E=ue("addRef"),R=ue("discoverRef"),B=F(oo),{currentTab:P,goToTab:T}=So(),L=Q(()=>{var y,x;return!!((y=j.loading)!=null&&y.value||(x=E.value)!=null&&x.isLoading)});Ze(P,()=>{j.hideConfirmButton.value=P.value!=="add"},{immediate:!0});const M=y=>{B.value=y,T("add")};return d({isLoading:L,onConfirm:async()=>{var y;return(y=E.value)==null?void 0:y.onSave()}}),(y,x)=>{const m=aa,C=Ce,H=oa,u=Jn,S=Xt;return s(),p("div",null,[e(P)?_("",!0):(s(),p("div",sa,[o(C,{text:"",fluid:"",severity:"secondary",class:"flex flex-col items-center justify-center gap-2 rounded-b-none pb-6 border-b-[1px] border-color",onClick:x[0]||(x[0]=h=>e(T)("add"))},{default:t(()=>[o(m,{width:"60px",height:"60px",class:"text-primary"}),n("span",ra,v(y.$t("components.dialog.components.new_camera.add_camera")),1),n("span",ia,v(y.$t("components.dialog.components.new_camera.add_camera_description")),1)]),_:1}),o(C,{text:"",fluid:"",severity:"secondary",class:"flex flex-col items-center justify-center gap-2 py-3 rounded-t-none border-[1px] border-t-0 border-color",onClick:x[1]||(x[1]=h=>e(T)("discover"))},{default:t(()=>[o(H,{width:"60px",height:"60px",class:"text-primary"}),n("span",ca,v(y.$t("components.dialog.components.new_camera.discover_cameras")),1),n("span",la,v(y.$t("components.dialog.components.new_camera.discover_cameras_description")),1)]),_:1})])),e(P)==="add"?(s(),p("div",da,[o(u,{ref_key:"addRef",ref:E,camera:e(B)},null,8,["camera"])])):_("",!0),e(P)==="discover"?(s(),p("div",ua,[o(S,{ref_key:"discoverRef",ref:R,onAddCamera:M},null,512)])):_("",!0)])}}}),pa={class:"py-4 pb-1 sm:p-0"},ha={key:0,class:"page-title pl-4 sm:pl-0"},fa={class:"page-title pl-4 sm:pl-0"},_a={class:"w-full h-[60px] p-4 absolute bottom-0 z-1 flex items-center gap-1 justify-between pointer-events-none"},ga={class:"text-xs font-semibold p-2 bg-black/60 rounded-full text-white"},va={key:0},ba={class:"flex items-center justify-center w-full h-full"},wa={key:1,class:"text-muted"},ds=se({__name:"Cameras",setup($){const d=new Se,j=$o(),E=Ke(),R=To(),B=Ro(),{t:P}=Be(),{smBreakpoint:T}=Ve(),{uiSettings:L}=Bo(R),M=Je({}),{data:O,isFetching:y}=d.getCamerasQuery({page:1,pageSize:-1}),x=Q(()=>y.value),m=Q(()=>B.showBottombar.value?Po.HEIGHT:0),C=u=>{E.openComponentDialog(et,{data:{title:P("components.dialog.title.log"),confirmText:P("components.form.button.download"),loading:x,stayActive:!0,contentProps:{cameraName:u},dialogContentClass:"not-md:px-0 h-full md:h-[50vh]"}})},H=()=>{E.openStepperDialog(ma,{data:{title:P("components.dialog.components.new_camera.title"),fullscreen:!0,tabs:[{id:"add",title:P("components.dialog.components.new_camera.add_camera")},{id:"discover",title:P("components.dialog.components.new_camera.discover_cameras")}],contentProps:{}}})};return(u,S)=>{const h=Zo,K=Ue,oe=ze,A=Ce,Z=Ao,re=Io,ie=Mo,ce=Ye,f=Ee,w=_o,V=Le;return s(),p("div",pa,[e(L).cameras.showEvents?(s(),p("h1",ha,v(u.$t("views.cameras.events")),1)):_("",!0),e(L).cameras.showEvents?(s(),g(h,{key:1,class:"flex w-full mb-3 px-1 sm:px-0"})):_("",!0),n("h1",fa,v(u.$t(`views.${String(u.$route.name).toLowerCase()}.title`)),1),o(Vo,{name:"fade-2"},{default:t(()=>{var i,a;return[e(x)?(s(),p("div",{key:"loading",class:"grid w-full gap-2",style:Me({gridTemplateColumns:`repeat(auto-fill, minmax(${e(T)?"100%":"300px"}, 1fr))`})},[(s(),p(me,null,pe(15,c=>o(K,{key:c,class:ke(["aspect-video !h-auto cui-card",{"!rounded-none !border-0":e(T)}])},null,8,["class"])),64))],4)):(s(),p("div",{key:"cameraCards",class:"grid w-full gap-1",style:Me({gridTemplateColumns:`repeat(auto-fill, minmax(${e(T)?"100%":"300px"}, 1fr)) ${!e(O)||e(O).result.length<2?"50%":""}`})},[(s(!0),p(me,null,pe((i=e(O))==null?void 0:i.result,c=>(s(),p("div",{key:c.name,class:ke(["dark-mode rounded-xl overflow-hidden border-[1px] border-color relative",{"!border-0 !rounded-none":e(T)}])},[n("div",_a,[n("span",ga,v(c.name),1),G((s(),g(A,{severity:"secondary",rounded:"",class:"cui-icon-md pointer-events-auto ml-auto",onClick:I=>{var U;return(U=e(M)[c.name])==null?void 0:U.refresh()}},{icon:t(()=>[o(oe,{width:"100%",height:"100%"})]),_:2},1032,["onClick"])),[[V,{value:u.$t("components.player.refresh_snapshot")},void 0,{top:!0}]]),("useCuiPermission"in u?u.useCuiPermission:e(we))(void 0,"admin")?G((s(),g(A,{key:0,severity:"secondary",rounded:"",class:"cui-icon-md pointer-events-auto",onClick:I=>C(c.name)},{icon:t(()=>[o(Z,{width:"100%",height:"100%"})]),_:2},1032,["onClick"])),[[V,{value:u.$t("components.player.log")},void 0,{top:!0}]]):_("",!0),("useCuiPermission"in u?u.useCuiPermission:e(we))(void 0,"admin")?G((s(),g(A,{key:1,rounded:"",severity:"secondary",class:"cui-icon-md pointer-events-auto",onClick:I=>e(j).open({cameraName:c.name})},{icon:t(()=>[o(re,{width:"100%",height:"100%"})]),_:2},1032,["onClick"])),[[V,{value:u.$t("components.player.settings")},void 0,{top:!0}]]):_("",!0)]),o(ie,{ref_for:!0,ref:I=>{e(M)[c.name]=I},"camera-name":c.name,class:"cursor-pointer","image-container-class":"w-full h-full",onClick:I=>u.$router.push(`/cameras/${c.name}`)},null,8,["camera-name","onClick"])],2))),128)),("useCuiPermission"in u?u.useCuiPermission:e(we))(void 0,"admin")&&!e(T)?(s(),p("div",va,[o(f,{class:"cui-card aspect-video",pt:{root:{class:{"!rounded-none !border-0":e(T)}},body:{class:"h-full flex items-center justify-center"}}},{content:t(()=>[n("div",ba,[o(A,{text:"",rounded:"",class:"w-16 h-16 dark-mode",onClick:H},{icon:t(()=>[o(ce,{width:"100%",height:"100%"})]),_:1})])]),_:1},8,["pt"])])):!((a=e(O))!=null&&a.result.length)&&("useCuiPermission"in u?u.useCuiPermission:e(we))(void 0,"user",!0)?(s(),p("span",wa,v(u.$t("views.cameras.no_cameras")),1)):_("",!0)],4))]}),_:1}),e(T)?G((s(),g(A,{key:2,rounded:"",class:"transition-all cui-icon-3xl fixed right-safe-offset-5 z-10 shadow-lg text-white",style:Me({bottom:`calc(${e(m)}px + 1.25rem + env(safe-area-inset-bottom, 0px))`}),onClick:H},{icon:t(()=>[o(w,{width:"30px",height:"30px"})]),_:1},8,["style"])),[[V,{value:u.$t("views.cameras.add_camera")},void 0,{top:!0}]]):_("",!0)])}}});export{ds as default};
|