@camera.ui/server 2.0.8 → 2.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/interface/assets/{404-Bwt4L1PJ.js → 404-ChR2IVti.js} +1 -1
- package/dist/interface/assets/{About-DXvLHUof.js → About-CDQ55crC.js} +1 -1
- package/dist/interface/assets/{Adminpanel-BIcl_Mwn.js → Adminpanel-CiJGwx7_.js} +1 -1
- package/dist/interface/assets/{Automation-Csu8t0D7.css → Automation-Cm62xfWQ.css} +1 -1
- package/dist/interface/assets/Automation-Kt6pl4MS.js +2 -0
- package/dist/interface/assets/{AutomationImport-BlBlNStY.js → AutomationImport-DWQkfeuR.js} +2 -2
- package/dist/interface/assets/{AutomationStore-CkSq2Gra.js → AutomationStore-FbQdggSq.js} +2 -2
- package/dist/interface/assets/{AutomationStoreDetail-BT1wMcK2.js → AutomationStoreDetail-D15G_MQy.js} +2 -2
- package/dist/interface/assets/{Automations-DSeK-PfA.js → Automations-urwh-nzl.js} +2 -2
- package/dist/interface/assets/{Camera-osDYTJPw.js → Camera-Brp9vdg2.js} +2 -2
- package/dist/interface/assets/{CameraConsole-DGQ3V0iM.js → CameraConsole-dx9vB5ht.js} +1 -1
- package/dist/interface/assets/{Cameras-DNsE3_T0.js → Cameras-DDut77Xv.js} +2 -2
- package/dist/interface/assets/{Camview-Dpe-mn9j.js → Camview-ChimIRuL.js} +1 -1
- package/dist/interface/assets/{Config-o6JSaUcr.js → Config-Cy5j6yf_.js} +1 -1
- package/dist/interface/assets/{ConfigActionCameraControl-N-w9YidE.js → ConfigActionCameraControl-CrWmGvdE.js} +1 -1
- package/dist/interface/assets/ConfigActionHttp-XY-r_hEX.js +1 -0
- package/dist/interface/assets/ConfigActionImageInput-DJovQd4V.js +1 -0
- package/dist/interface/assets/ConfigActionMqtt-DsX-q9M_.js +1 -0
- package/dist/interface/assets/ConfigActionNotification-BM2X-K-D.js +1 -0
- package/dist/interface/assets/ConfigActionOutput-DMYPThT1.js +1 -0
- package/dist/interface/assets/ConfigActionPlugin-rCaB0HjK.js +1 -0
- package/dist/interface/assets/ConfigActionSensor-gxpOX2DC.js +1 -0
- package/dist/interface/assets/{ConfigActionSnapshot-MHiUaSA7.js → ConfigActionSnapshot-8vrwtN10.js} +1 -1
- package/dist/interface/assets/ConfigActionVariable-Dy8ZnhCO.js +1 -0
- package/dist/interface/assets/ConfigConditionIfElse-DK9Z6-kN.js +1 -0
- package/dist/interface/assets/ConfigConditionSensorState-BaFj9WYl.js +1 -0
- package/dist/interface/assets/{ConfigConditionSwitch-Dfr-9vLZ.js → ConfigConditionSwitch-_Gxu6OYc.js} +1 -1
- package/dist/interface/assets/ConfigSensorValueInput-BIiQ8NN6.js +1 -0
- package/dist/interface/assets/{ConfigTriggerDetection-Cv22vFn6.js → ConfigTriggerDetection-CCCi-Tof.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerGeofence-BtPyKte4.js → ConfigTriggerGeofence-DOxaQSWM.js} +1 -1
- package/dist/interface/assets/ConfigTriggerMqtt-4Gp-qhCg.js +1 -0
- package/dist/interface/assets/{ConfigTriggerSensor-BrYITWwc.js → ConfigTriggerSensor-CLnC2yvE.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-DJ0lU8F0.js → ConfigTriggerSystem-Gae5o59O.js} +1 -1
- package/dist/interface/assets/{Console-ChT_3diZ.js → Console-DBJHlPg2.js} +1 -1
- package/dist/interface/assets/{CuiAvatar-1UQTTFMr.js → CuiAvatar-DeBKq6dT.js} +1 -1
- package/dist/interface/assets/CuiBottomSheet-B1jcfI0o.js +1 -0
- package/dist/interface/assets/{CuiBottomSheet-D1F_ll0S.js → CuiBottomSheet-udULz0wI.js} +1 -1
- package/dist/interface/assets/{CuiCameraCard-8iX_qqBM.js → CuiCameraCard-HEi3Hoe-.js} +1 -1
- package/dist/interface/assets/{CuiCameraPipCard-ULjqsCqF.js → CuiCameraPipCard-BxbUK-93.js} +1 -1
- package/dist/interface/assets/{CuiCameraRecordings-D2SS0ZeD.js → CuiCameraRecordings-C5bd4VAf.js} +1 -1
- package/dist/interface/assets/{CuiCameraShares-DoX75x2g.js → CuiCameraShares-BNjnm9yr.js} +1 -1
- package/dist/interface/assets/{CuiCameraSnapshot-Duouoet1.js → CuiCameraSnapshot-C-iPOB3g.js} +1 -1
- package/dist/interface/assets/{CuiCameraTable-BZbdmy4s.js → CuiCameraTable-CDpfm8fi.js} +1 -1
- package/dist/interface/assets/{CuiImage-BVVPyvep.js → CuiImage-DBQAYfn1.js} +1 -1
- package/dist/interface/assets/{CuiMenu-D9y4WDoP.js → CuiMenu--tB8FqMF.js} +1 -1
- package/dist/interface/assets/{CuiPluginCard-BkhKzqHn.js → CuiPluginCard-Cb0XSLIr.js} +2 -2
- package/dist/interface/assets/{CuiPluginOAuthButton-BzoWSejV.js → CuiPluginOAuthButton-CuppMPTq.js} +2 -2
- package/dist/interface/assets/{CuiQRCode-CBD3pXKm.js → CuiQRCode-D9QNUEmx.js} +1 -1
- package/dist/interface/assets/{CuiRecordingsGrid-C7b258rk.js → CuiRecordingsGrid-DlKUfbeS.js} +1 -1
- package/dist/interface/assets/{CuiSchema-sipNW_5x.js → CuiSchema-B6q285jE.js} +1 -1
- package/dist/interface/assets/{Faces-BV-dx0a6.js → Faces-DtJmIku2.js} +1 -1
- package/dist/interface/assets/{FirstSteps-L8ko4cum.js → FirstSteps-CsMSK_YI.js} +1 -1
- package/dist/interface/assets/{Instances-CWdIVekg.js → Instances-BTNzUfGz.js} +1 -1
- package/dist/interface/assets/{Logs-DjtSfpCe.js → Logs-Bic2YIta.js} +1 -1
- package/dist/interface/assets/{Menu-Ci8FIulr.js → Menu-GbuCaA_6.js} +1 -1
- package/dist/interface/assets/{OAuthDeviceFlow-bevFeCiw.js → OAuthDeviceFlow-DwSJHrqc.js} +1 -1
- package/dist/interface/assets/{Plugin-DYR_1oRT.js → Plugin-B8656Gzo.js} +1 -1
- package/dist/interface/assets/{PluginConsole-C8GuAzBZ.js → PluginConsole-CLGkDl1F.js} +1 -1
- package/dist/interface/assets/{PluginDetail-COgvgpQg.js → PluginDetail-DS8wUbYr.js} +2 -2
- package/dist/interface/assets/{PluginSchema-DM406ULU.js → PluginSchema-Dy9kDPML.js} +1 -1
- package/dist/interface/assets/PluginSearch-DBdp5Ifo.js +1 -0
- package/dist/interface/assets/{PluginSearch-DowK0yhn.js → PluginSearch-DFtTwd_R.js} +2 -2
- package/dist/interface/assets/{Plugins-BUgOxY_-.js → Plugins-C_kdqAp4.js} +1 -1
- package/dist/interface/assets/{Recordings-DvECWzpM.js → Recordings-Cz4uWsI9.js} +1 -1
- package/dist/interface/assets/{Settings-nhIKBth_2.js → Settings-is528I5i2.js} +1 -1
- package/dist/interface/assets/{SettingsAccount-Bh6QsmCo.js → SettingsAccount-CALY2rH0.js} +1 -1
- package/dist/interface/assets/SettingsAccount-_zSgGuBE.js +1 -0
- package/dist/interface/assets/{SettingsAppearance-D9VGcz8w.js → SettingsAppearance-CGaG9lml.js} +1 -1
- package/dist/interface/assets/SettingsAppearance-z9tBty3q.js +1 -0
- package/dist/interface/assets/{SettingsBackup-kZQoQ4RY.js → SettingsBackup-JI_xqcVS.js} +1 -1
- package/dist/interface/assets/{SettingsMqtt-C234dN5h.js → SettingsMqtt-B_tzet_5.js} +1 -1
- package/dist/interface/assets/{SettingsNotifications-CZigp16N.js → SettingsNotifications-FWWveQMH.js} +1 -1
- package/dist/interface/assets/{SettingsRecordings-CLk_8Yeo.js → SettingsRecordings-D-S7rofE.js} +1 -1
- package/dist/interface/assets/{SettingsRemote-HTQY2mvW.js → SettingsRemote-CVuDUBMM.js} +1 -1
- package/dist/interface/assets/{SettingsSystem-D52Vn9V5.js → SettingsSystem-J7ZT7oRr.js} +2 -2
- package/dist/interface/assets/{SettingsUsers-CUd4VvGK.js → SettingsUsers-DvuiYjNg.js} +1 -1
- package/dist/interface/assets/{Terminal-1yUKu_cE.js → Terminal-CNzw8wk3.js} +1 -1
- package/dist/interface/assets/VariableInput-DW39Zo4d.js +1 -0
- package/dist/interface/assets/{VersionsHandler-CuV7deaY.js → VersionsHandler-CsXazSWK.js} +1 -1
- package/dist/interface/assets/{Workers-FgWY2jig.js → Workers-BXH8IccG.js} +1 -1
- package/dist/interface/assets/{api-BkmWxHU6.js → api-Br3Jmdj6.js} +1 -1
- package/dist/interface/assets/api-DR6W2XWy.js +2 -0
- package/dist/interface/assets/{auth-DZBJ2qjy.js → auth-BJf6VFls.js} +1 -1
- package/dist/interface/assets/{automations-BnCx_cHm.js → automations-Dt5J3kkY.js} +1 -1
- package/dist/interface/assets/availableVariables-D9VhvJZ1.js +1 -0
- package/dist/interface/assets/{cameras-C0LS9WsX.js → cameras-DCMMwuui.js} +1 -1
- package/dist/interface/assets/cameras.schema-99F6GE0u.js +1 -0
- package/dist/interface/assets/cloudHandoff-Yc4FJv_l.js +1 -0
- package/dist/interface/assets/{config-C6KVzOJb.js → config-BiEjYldh.js} +1 -1
- package/dist/interface/assets/{deviceId-DT9HiB_U.js → deviceId-sq3mLBKa.js} +1 -1
- package/dist/interface/assets/{hasPermission-DWgF7Hjs.js → hasPermission-Dm18Z17u.js} +1 -1
- package/dist/interface/assets/{instances-BURHqdgB.js → instances-MscZjRfc.js} +1 -1
- package/dist/interface/assets/{main-Dk5JAon5.js → main-4pJkMgxg.js} +3 -3
- package/dist/interface/assets/nodeDefinitions-5BjF3SJ8.js +1 -0
- package/dist/interface/assets/{notifications-CeVyOoSN.js → notifications-D87Lhlir.js} +1 -1
- package/dist/interface/assets/{plugins-DmYBke-a.js → plugins-VeCjoaEi.js} +1 -1
- package/dist/interface/assets/{round-restart-alt-BfvIzoUm.js → round-restart-alt-CcJGggln.js} +1 -1
- package/dist/interface/assets/{router-Cfm3yxgM.js → router-BFG1ClJo.js} +2 -2
- package/dist/interface/assets/{server-DWE6V3df.js → server-D7bl4wSy.js} +1 -1
- package/dist/interface/assets/{shares-Cz-SRsRm.js → shares-D5xo0sht.js} +1 -1
- package/dist/interface/assets/{theme-57Z8cefl.js → theme-BG6n3TRA.js} +1 -1
- package/dist/interface/assets/{useAppVersion-DSG8IzPH.js → useAppVersion-DCmhFeIs.js} +1 -1
- package/dist/interface/assets/{useBackupRestore-Cjv5ehJg.js → useBackupRestore-B-yCV4DL.js} +1 -1
- package/dist/interface/assets/{useBiometricCredentials-Cq0kbhwW.js → useBiometricCredentials-Tq1nEG8V.js} +1 -1
- package/dist/interface/assets/{useCameraOptions-DBsYZ6gv.js → useCameraOptions-B2lIc9JO.js} +1 -1
- package/dist/interface/assets/{useCuiDialog-BrXNUR_F.js → useCuiDialog-DLoFzodG.js} +1 -1
- package/dist/interface/assets/{useFileDownload-DmEs3ezY.js → useFileDownload-C5quSdZR.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-CochcRpr.js → useLogsSocket-B1sCzRXK.js} +1 -1
- package/dist/interface/assets/{useServerRestart-7GFofrfB.js → useServerRestart-DnT0ZOYm.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-CELgmbpk.js → useStreamStatus-CD18kTqt.js} +1 -1
- package/dist/interface/assets/{useUpdateChannel-BscyY2G0.js → useUpdateChannel-DbBXpySY.js} +1 -1
- package/dist/interface/assets/{useUserOptions-CVGaxYdb.js → useUserOptions-Bb0ACtxn.js} +1 -1
- package/dist/interface/assets/{users.schema-DiUkDzPj.js → users.schema-BGeyXreN.js} +1 -1
- package/dist/interface/assets/variable-C2Yu30iz.js +1 -0
- package/dist/interface/assets/{view-grid-DIwBs1jl.js → view-grid-DRwNJzxD.js} +1 -1
- package/dist/interface/index.html +30 -30
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +5 -5
- package/dist/server/requirements.txt +2 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +4 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +2 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/camera_config_internal.py +2 -0
- package/dist/server/src/api/database/index.js +11 -12
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/index.js +4 -1
- package/dist/server/src/api/index.js.map +1 -1
- package/dist/server/src/api/schemas/automations.schema.d.ts +6 -0
- package/dist/server/src/api/schemas/automations.schema.js +2 -0
- package/dist/server/src/api/schemas/automations.schema.js.map +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +9 -0
- package/dist/server/src/api/schemas/cameras.schema.js +2 -0
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/services/cameras.service.js +10 -17
- package/dist/server/src/api/services/cameras.service.js.map +1 -1
- package/dist/server/src/automations/triggers/mqtt.js +50 -3
- package/dist/server/src/automations/triggers/mqtt.js.map +1 -1
- package/dist/server/src/camera/controller.js +2 -2
- package/dist/server/src/camera/controller.js.map +1 -1
- package/dist/server/src/camera/streaming/fmp4-session.js +1 -0
- package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -1
- package/dist/server/src/go2rtc/api/routes/snapshot.js +5 -1
- package/dist/server/src/go2rtc/api/routes/snapshot.js.map +1 -1
- package/dist/server/src/go2rtc/api/routes/streams.js +5 -2
- package/dist/server/src/go2rtc/api/routes/streams.js.map +1 -1
- package/dist/server/src/go2rtc/types.d.ts +1 -1
- package/dist/server/src/manager/discoveryManager.d.ts +2 -2
- package/dist/server/src/manager/discoveryManager.js +23 -25
- package/dist/server/src/manager/discoveryManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/index.js +2 -1
- package/dist/server/src/plugins/runtime/python/index.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +1 -0
- package/dist/server/src/services/config/defaults.d.ts +1 -1
- package/dist/server/src/services/config/defaults.js +1 -1
- package/dist/server/src/services/config/defaults.js.map +1 -1
- package/dist/server/src/utils/camera.d.ts +4 -0
- package/dist/server/src/utils/camera.js +17 -0
- package/dist/server/src/utils/camera.js.map +1 -1
- package/dist/server/src/utils/pythonInstaller.d.ts +1 -0
- package/dist/server/src/utils/pythonInstaller.js +12 -0
- package/dist/server/src/utils/pythonInstaller.js.map +1 -1
- package/package.json +5 -5
- package/dist/interface/assets/Automation-DZIieg3O.js +0 -2
- package/dist/interface/assets/ConfigActionHttp-qUm57oW4.js +0 -1
- package/dist/interface/assets/ConfigActionImageInput-Cr8faOB5.js +0 -1
- package/dist/interface/assets/ConfigActionMqtt-uRSh5B2A.js +0 -1
- package/dist/interface/assets/ConfigActionNotification-DrWQGvXh.js +0 -1
- package/dist/interface/assets/ConfigActionOutput-NPiNPB7G.js +0 -1
- package/dist/interface/assets/ConfigActionPlugin-fETPjKeY.js +0 -1
- package/dist/interface/assets/ConfigActionSensor-BU01CTIY.js +0 -1
- package/dist/interface/assets/ConfigActionVariable-Du5R50EA.js +0 -1
- package/dist/interface/assets/ConfigConditionIfElse-DjNPMKsc.js +0 -1
- package/dist/interface/assets/ConfigConditionSensorState-CAAfaSvc.js +0 -1
- package/dist/interface/assets/ConfigSensorValueInput-MZiAptuc.js +0 -1
- package/dist/interface/assets/ConfigTriggerMqtt-p4FUGJg6.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-1GDyn88O.js +0 -1
- package/dist/interface/assets/PluginSearch-dkPdwrjj.js +0 -1
- package/dist/interface/assets/SettingsAccount-B3yFFMS8.js +0 -1
- package/dist/interface/assets/SettingsAppearance-CWAGTnDU.js +0 -1
- package/dist/interface/assets/VariableInput-fT57kg7f.js +0 -1
- package/dist/interface/assets/api-BxUTlh4_.js +0 -2
- package/dist/interface/assets/cameras.schema-B1jQYShz.js +0 -1
- package/dist/interface/assets/cloudHandoff-CHjHRMBL.js +0 -1
- package/dist/interface/assets/nodeDefinitions-DSoFiL7W.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,Dt as t,E as n,T as r,xt as i}from"./api-
|
|
1
|
+
import{C as e,Dt as t,E as n,T as r,xt as i}from"./api-DR6W2XWy.js";import{J as a,Q as o,Sr as s,mr as c}from"./vendor-ClrOISZp.js";async function l(e){let n=i().endpoint.value??window.location.origin;return(await t.get(`/tunnel/check`,{signal:e,baseURL:n})).data}async function u({parameter:e,signal:n}){return(await t.get(`/auth/sessions`,{params:e,signal:n})).data.result??[]}async function d({parameter:e,signal:n}){return(await t.get(`/auth/sessions/all`,{params:e,signal:n})).data.result??[]}async function f({id:e}){await t.delete(`/auth/sessions/${e}`)}async function p(){await t.delete(`/auth/sessions`)}async function m({loginInformation:e}){return(await t.post(`/auth/login`,e)).data}async function h({tempToken:e,code:n}){return(await t.post(`/auth/verify-2fa`,{tempToken:e,code:n})).data}async function g(e){return(await t.get(`/auth/2fa/status`,{signal:e})).data}async function _(){return(await t.post(`/auth/2fa/setup`)).data}async function v({code:e}){return(await t.post(`/auth/2fa/enable`,{code:e})).data}async function y({code:e}){await t.post(`/auth/2fa/disable`,{code:e})}async function b({code:e}){return(await t.post(`/auth/2fa/backup-codes`,{code:e})).data}async function x(){return(await t.post(`/auth/logout`)).data}async function S({refresh_token:e,signal:n}){return(await t.post(`/auth/refresh`,{refresh_token:e},{timeout:1e4,signal:n})).data}var C=class{_queryClient=o();t=n.global.t;toast=r();queryActivator=c([{name:`checkQuery`,enabled:!0},{name:`listSessionsQuery`,enabled:!0},{name:`listAllSessionsQuery`,enabled:!0},{name:`get2FAStatusQuery`,enabled:!0}]);get queryClient(){return this._queryClient}checkQuery(){return e({queryKey:[`auth`,`check`],queryFn:({signal:e})=>l(e),enabled:()=>this.queryActivator.value.some(e=>e.name===`checkQuery`&&e.enabled)})}listSessionsQuery(t){return e({queryKey:[`auth`,`sessions`,t],queryFn:({signal:e})=>u({parameter:s(t),signal:e}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`listSessionsQuery`&&e.enabled)})}listAllSessionsQuery(t){return e({queryKey:[`auth`,`sessions`,`all`,t],queryFn:({signal:e})=>d({parameter:s(t),signal:e}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`listAllSessionsQuery`&&e.enabled)})}loginQuery(){return a({mutationFn:m,onError:()=>{}})}logoutQuery(){return a({mutationFn:x})}revokeSessionQuery(){return a({mutationFn:f,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`auth`,`sessions`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.user_logged_out`),life:3e3})}})}revokeOtherSessionsQuery(){return a({mutationFn:p,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`auth`,`sessions`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.active_sessions.revoke_others_success`),life:3e3})}})}refreshQuery(){return a({mutationFn:S})}verify2FAQuery(){return a({mutationFn:h,onError:()=>{}})}get2FAStatusQuery(){return e({queryKey:[`auth`,`2fa`,`status`],queryFn:({signal:e})=>g(e),enabled:()=>this.queryActivator.value.some(e=>e.name===`get2FAStatusQuery`&&e.enabled)})}setup2FAQuery(){return a({mutationFn:_})}enable2FAQuery(){return a({mutationFn:v,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`auth`,`2fa`,`status`]})}})}disable2FAQuery(){return a({mutationFn:y,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`auth`,`2fa`,`status`]})}})}regenerateBackupCodesQuery(){return a({mutationFn:b})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{C as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,Dt as t,E as n,T as r}from"./api-
|
|
1
|
+
import{C as e,Dt as t,E as n,T as r}from"./api-DR6W2XWy.js";import{J as i,Q as a,Sr as o,mr as s}from"./vendor-ClrOISZp.js";async function c({signal:e}){return(await t.get(`/automations`,{signal:e})).data}async function l({id:e,signal:n}){return(await t.get(`/automations/${e}`,{signal:n})).data}async function u({data:e}){return(await t.post(`/automations`,e)).data}async function d({id:e,data:n}){return(await t.patch(`/automations/${e}`,n)).data}async function f({id:e}){await t.delete(`/automations/${e}`)}async function p({id:e}){let{data:n}=await t.post(`/automations/${e}/trigger`);return n}async function m({blueprint:e}){return(await t.post(`/automations/import`,e)).data}async function h({signal:e}){return(await t.get(`/automations/plugin-methods`,{signal:e})).data}async function g({refresh:e,signal:n}){return(await t.get(`/automations/store`,{params:e?{refresh:!0}:{},signal:n})).data}async function _({id:e,signal:n}){return(await t.get(`/automations/store/${e}`,{signal:n})).data}var v=class{_queryClient=a();t=n.global.t;toast=r();queryActivator=s([{name:`getAutomationsQuery`,enabled:!0},{name:`getAutomationQuery`,enabled:!0}]);getAutomationsQuery(){return e({queryKey:[`automationsList`],queryFn:({signal:e})=>c({signal:e}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getAutomationsQuery`&&e.enabled)})}getAutomationQuery(t){return e({queryKey:[`automation`,t],queryFn:({signal:e})=>l({id:o(t),signal:e}),enabled:()=>!!o(t)&&o(t)!==`new`&&this.queryActivator.value.some(e=>e.name===`getAutomationQuery`&&e.enabled)})}createAutomationQuery(){return i({mutationFn:u,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]}),this.toast.add({severity:`success`,detail:this.t(`views.automation.saved`),life:3e3})}})}patchAutomationQuery(){return i({mutationFn:d,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]}),await this._queryClient.refetchQueries({queryKey:[`automation`,t.id]})}})}deleteAutomationQuery(){return i({mutationFn:f,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]})}})}triggerAutomationQuery(){return i({mutationFn:p,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]}),await this._queryClient.refetchQueries({queryKey:[`automation`,t.id]})}})}getPluginMethodsQuery(){return e({queryKey:[`automationPluginMethods`],queryFn:({signal:e})=>h({signal:e})})}getAutomationStoreQuery(t){return e({queryKey:[`automationStore`],queryFn:({signal:e})=>g({refresh:o(t),signal:e}),placeholderData:e=>e})}getAutomationStoreItemQuery(t){return e({queryKey:[`automationStoreItem`,t],queryFn:({signal:e})=>_({id:o(t),signal:e}),enabled:()=>!!o(t)})}importBlueprintQuery(){return i({mutationFn:m,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]}),this.toast.add({severity:`success`,detail:this.t(`views.automations.import_success`),life:3e3})}})}};export{v as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,n){if(!e)return[];let r=[];return t(e,n,r,new Set),r}function t(e,i,a,o){if(o.has(i))return;o.add(i);let s=e.edges,c=e.nodes,l=s.filter(e=>e.target===i).map(e=>e.source);for(let i of l){let l=c.find(e=>e.id===i);if(!l?.type)continue;let u=l.data,d=u?.alias;if(r(l.type,a,u,d),l.type===`action-loop`){let t=s.filter(e=>e.source===i&&e.sourceHandle===`body`).map(e=>e.target);for(let r of t)n(e,r,a,new Set(o))}t(e,i,a,o)}}function n(e,t,i,a){if(a.has(t))return;a.add(t);let o=e.nodes.find(e=>e.id===t);if(!o?.type)return;r(o.type,i);let s=e.edges.filter(e=>e.source===t).map(e=>e.target);for(let t of s)n(e,t,i,a)}function r(e,t,n,r){let i=new Set(t.map(e=>e.value)),a=(e,n)=>{if(r){let a=n.replace(/\{\{/,`{{${r}.`),o=`${r}: ${e}`;i.has(a)||(t.push({label:o,value:a}),i.add(a))}i.has(n)||(t.push({label:e,value:n}),i.add(n))};switch(n?.repeat&&Number(n.repeat)>1&&(a(`Repeat — Index (0-based)`,`{{repeat.index}}`),a(`Repeat — Iteration (1-based)`,`{{repeat.iteration}}`),a(`Repeat — Total`,`{{repeat.total}}`),a(`Repeat — Total Calls`,`{{repeat.totalCalls}}`),a(`Repeat — Elapsed (ms)`,`{{repeat.elapsedMs}}`),a(`Repeat — Elapsed (sec)`,`{{repeat.elapsedSec}}`)),e){case`trigger-detection`:a(`Event — Confidence`,`{{event.confidence}}`),a(`Event — Detection Type`,`{{event.type}}`),a(`Event — Label`,`{{event.label}}`),a(`Event — Camera`,`{{event.cameraId}}`),a(`Event — State`,`{{event.state}}`),a(`Event — Faces`,`{{event.faces}}`),a(`Event — License Plates`,`{{event.plates}}`);break;case`trigger-sensor`:a(`Sensor — Value`,`{{sensor.value}}`),a(`Sensor — Previous Value`,`{{sensor.previousValue}}`),a(`Sensor — Property`,`{{sensor.property}}`);break;case`trigger-webhook`:a(`Webhook — Body`,`{{webhook.body}}`),a(`Webhook — Data (binary)`,`{{webhook.data}}`),a(`Webhook — Method`,`{{webhook.method}}`);break;case`trigger-mqtt`:a(`MQTT — Topic`,`{{mqtt.topic}}`),a(`MQTT — Payload`,`{{mqtt.payload}}`);break;case`trigger-geofence`:a(`Geo — User`,`{{geo.user}}`),a(`Geo — Event`,`{{geo.event}}`),a(`Geo — Zone`,`{{geo.zone}}`),a(`Geo — Latitude`,`{{geo.lat}}`),a(`Geo — Longitude`,`{{geo.lon}}`),a(`Geo — Distance (m)`,`{{geo.distance}}`);break;case`trigger-system`:a(`System — Event Type`,`{{system.eventType}}`),a(`System — Camera ID`,`{{system.cameraId}}`),a(`System — Camera Name`,`{{system.cameraName}}`),a(`System — Plugin Name`,`{{system.pluginName}}`),a(`System — Plugin ID`,`{{system.pluginId}}`),a(`System — Status`,`{{system.status}}`),a(`System — Property`,`{{system.property}}`),a(`System — Sensor ID`,`{{system.sensorId}}`),a(`System — Sensor Type`,`{{system.sensorType}}`),a(`System — Sensor Name`,`{{system.sensorName}}`);break;case`action-snapshot`:a(`Snapshot (base64)`,`{{snapshot}}`),a(`Snapshot (data URI)`,`{{snapshot.base64}}`);break;case`action-http`:a(`HTTP — Status`,`{{http.status}}`),a(`HTTP — Body`,`{{http.body}}`),a(`HTTP — Base64 (binary)`,`{{http.base64}}`);break;case`action-plugin`:a(`Plugin — Detected`,`{{plugin.detected}}`),a(`Plugin — Labels`,`{{plugin.labels}}`),a(`Plugin — Detections (JSON)`,`{{plugin.detections}}`),a(`Plugin — Result (JSON)`,`{{plugin.result}}`),a(`Plugin — Duration (ms)`,`{{plugin.durationMs}}`);break;case`action-image-input`:a(`Image (base64)`,`{{image}}`);break;case`action-camera-control`:a(`Camera — ID`,`{{camera.id}}`),a(`Camera — Name`,`{{camera.name}}`);break;case`action-variable`:break}}export{e as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,Dt as t,E as n,T as r}from"./api-BxUTlh4_.js";import{J as i,Q as a,Sr as o,mr as s}from"./vendor-ClrOISZp.js";async function c({cameraData:e}){return(await t.post(`/cameras`,e)).data}async function l({cameraData:e}){return(await t.post(`/cameras/preview`,e)).data}async function u({signal:e}){return(await t.get(`/cameras/rooms`,{signal:e})).data}async function d({cameraname:e,signal:n}){return(await t.get(`/cameras/${e}`,{signal:n})).data}async function f({cameraname:e}){return(await t.delete(`/cameras/${e}/log`)).data}async function p({cameraname:e,signal:n}){return(await t.get(`/cameras/${e}/log/download`,{signal:n})).data}async function m({cameraname:e,sourcename:n,signal:r}){return(await t.get(`/cameras/${e}/info/${n}`,{signal:r})).data}async function h({cameraname:e,sourcename:n,probeConfig:r,force:i,signal:a}){return(await t.get(`/cameras/${e}/probe/${n}`,{params:{...r,...i?{refresh:!0}:{}},signal:a})).data}async function g({cameraname:e,forceNew:n,signal:r}){return(await t.get(`/cameras/${e}/snapshot`,{signal:r,params:{forceNew:n}})).data}async function _({parameter:e,signal:n}){return(await t.get(`/cameras`,{params:e,signal:n})).data}async function v({cameraname:e,cameraData:n}){return(await t.patch(`/cameras/${e}`,n)).data}async function y({cameraname:e,signal:n}){return(await t.get(`/cameras/${e}/extensions`,{signal:n})).data}async function b({cameraname:e,pluginname:n,signal:r}){return(await t.get(`/cameras/${e}/${n}/config`,{signal:r})).data}async function x({cameraname:e,pluginname:n,configData:r}){return(await t.patch(`/cameras/${e}/${n}/config`,r)).data}async function S({cameraname:e,pluginname:n,configData:r}){return(await t.put(`/cameras/${e}/${n}/config`,r)).data}async function C({cameraname:e,pluginname:n,configData:r}){return(await t.post(`/cameras/${e}/${n}/config`,r)).data}async function w({cameraname:e,pluginname:n,sensorId:r,signal:i}){return(await t.get(`/cameras/${e}/${n}/sensor/${r}/config`,{signal:i})).data}async function T({cameraname:e,pluginname:n,sensorId:r,configData:i}){return(await t.patch(`/cameras/${e}/${n}/sensor/${r}/config`,i)).data}async function E({cameraname:e,pluginname:n,sensorId:r,configData:i}){return(await t.put(`/cameras/${e}/${n}/sensor/${r}/config`,i)).data}async function D({cameraname:e,pluginname:n,sensorId:r,configData:i}){return(await t.post(`/cameras/${e}/${n}/sensor/${r}/config`,i)).data}async function O({cameraname:e,pluginname:n,type:r}){return(await t.put(`/cameras/${e}/${n}/enable`,null,{params:{type:r}})).data}async function k({cameraname:e,pluginname:n,type:r}){return(await t.put(`/cameras/${e}/${n}/disable`,null,{params:{type:r}})).data}async function A({cameraname:e,pluginname:n,type:r}){return(await t.post(`/cameras/${e}/${n}`,null,{params:{type:r}})).data}async function j({cameraname:e,pluginname:n,type:r}){return(await t.delete(`/cameras/${e}/${n}`,{params:{type:r}})).data}async function M({cameraname:e,pluginname:n}){return(await t.post(`/cameras/${e}/${n}/activate`)).data}async function N({cameraname:e,pluginname:n}){return(await t.delete(`/cameras/${e}/${n}/deactivate`)).data}async function P({cameraname:e,signal:n}){return(await t.get(`/cameras/${e}/zones`,{signal:n})).data}async function F({cameraname:e,zoneData:n}){return(await t.patch(`/cameras/${e}/zones`,n)).data}async function I({cameraname:e,lineData:n}){return(await t.patch(`/cameras/${e}/lines`,n)).data}async function L({cameraname:e}){return(await t.delete(`/cameras/${e}`)).data}async function R(){return(await t.delete(`/cameras`)).data}var z=class{_queryClient=a();t=n.global.t;toast=r();queryActivator=s([{name:`getCameraQuery`,enabled:!0},{name:`getCamerasQuery`,enabled:!0},{name:`getCameraSnapshotQuery`,enabled:!0},{name:`getCameraExtensionsQuery`,enabled:!0},{name:`getCameraExtensionConfigQuery`,enabled:!0},{name:`getZonesQuery`,enabled:!0},{name:`streamSourceInfoQuery`,enabled:!0},{name:`probeCameraSourceQuery`,enabled:!0},{name:`downloadLogQuery`,enabled:!0},{name:`getSensorConfigQuery`,enabled:!0}]);get queryClient(){return this._queryClient}createCameraQuery(){return i({mutationFn:c,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_added`),life:3e3})}})}previewCameraQuery(){return i({mutationFn:l})}getCameraQuery(t){return e({queryKey:[`cameras`,t],queryFn:({signal:e})=>d({cameraname:o(t),signal:e}),initialData:()=>{let e=o(t),n=this._queryClient.getQueriesData({queryKey:[`camerasList`]});for(let[,t]of n){let n=t?.result?.find(t=>t.name===e);if(n)return n}},initialDataUpdatedAt:0,enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraQuery`&&e.enabled)})}getCameraExtensionsQuery(t){return e({queryKey:[`camerasExtensions`,t],queryFn:({signal:e})=>y({cameraname:o(t),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraExtensionsQuery`&&e.enabled)})}streamSourceInfoQuery(t,n){return e({queryKey:[`cameras`,t,`info`,n],queryFn:({signal:e})=>m({cameraname:o(t),sourcename:o(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`streamSourceInfoQuery`&&e.enabled)})}probeCameraSourceQuery(t,n,r){return e({queryKey:[`cameras`,t,`probe`,n],queryFn:({signal:e})=>h({cameraname:o(t),sourcename:o(n),probeConfig:o(r),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`probeCameraSourceQuery`&&e.enabled)})}getCameraSnapshotQuery(t,n){return e({queryKey:[`camerasSnapshot`,t],queryFn:({signal:e})=>g({cameraname:o(t),forceNew:o(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraSnapshotQuery`&&e.enabled),retry:!1})}getCamerasQuery(t){return e({queryKey:[`camerasList`,t],queryFn:({signal:e})=>_({parameter:o(t),signal:e}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getCamerasQuery`&&e.enabled)})}getRoomsQuery(){return e({queryKey:[`camerasRooms`],queryFn:({signal:e})=>u({signal:e})})}patchCameraQuery(){return i({mutationFn:v,onSuccess:async(e,t)=>{let n=t.cameraData.name&&t.cameraData.name!==t.cameraname,r=t.cameraData.room!==void 0;if(n){let e=t.cameraname;await this._queryClient.invalidateQueries({queryKey:[e]}),await this._queryClient.refetchQueries({queryKey:[`camerasList`]})}else await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),r&&(await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),await this._queryClient.refetchQueries({queryKey:[`camerasRooms`]}));this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_updated`),life:3e3})}})}getCameraExtensionConfigQuery(t,n,r){return e({queryKey:[`cameras`,`extensions`,t,n],queryFn:({signal:e})=>b({cameraname:o(t),pluginname:o(n),signal:e}),enabled:()=>!!o(n)&&this.queryActivator.value.some(e=>e.name===`getCameraExtensionConfigQuery`&&e.enabled),refetchInterval(){if(r.value)return 1e4},retry:10,retryDelay:500,staleTime:0})}patchCameraExtensionConfigQuery(){return i({mutationFn:x,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}setCameraExtensionConfigQuery(){return i({mutationFn:S,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}submitCameraExtensionConfigQuery(){return i({mutationFn:C,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}getSensorConfigQuery(t,n,r,i){return e({queryKey:[`cameras`,`sensor`,t,n,r],queryFn:({signal:e})=>w({cameraname:o(t),pluginname:o(n),sensorId:o(r),signal:e}),enabled:()=>{let e=o(n),t=o(r);return!e||!t?!1:this.queryActivator.value.some(e=>e.name===`getSensorConfigQuery`&&e.enabled)},refetchInterval(){if(i.value)return 1e4},retry:3,retryDelay:500,staleTime:0})}patchSensorConfigQuery(){return i({mutationFn:T,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}setSensorConfigQuery(){return i({mutationFn:E,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}submitSensorConfigQuery(){return i({mutationFn:D,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}enableCameraExtensionQuery(){return i({mutationFn:O,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}disableCameraExtensionQuery(){return i({mutationFn:k,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}addCameraExtensionQuery(){return i({mutationFn:A,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}activateCameraExtensionQuery(){return i({mutationFn:M,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}deactivateCameraExtensionQuery(){return i({mutationFn:N,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}getZonesQuery(t){return e({queryKey:[`cameras`,t,`zones`],queryFn:({signal:e})=>P({cameraname:o(t),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getZonesQuery`&&e.enabled)})}patchZonesQuery(){return i({mutationFn:F,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.zone_updated`),life:3e3})}})}patchLinesQuery(){return i({mutationFn:I,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.line_updated`),life:3e3})}})}removeCameraExtensionQuery(){return i({mutationFn:j,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}removeCameraQuery(){return i({mutationFn:L,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_removed`),life:3e3})}})}removeCamerasQuery(){return i({mutationFn:R,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.cameras_removed`),life:3e3})}})}downloadLogQuery(t){return e({queryKey:[`logs`,t],queryFn:({signal:e})=>p({cameraname:o(t),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`downloadLogQuery`&&e.enabled)})}clearLogQuery(){return i({mutationFn:f,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`logs`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.log_cleared`),life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{h as a,d as i,f as n,p as r,z as t};
|
|
1
|
+
import{C as e,Dt as t,E as n,T as r}from"./api-DR6W2XWy.js";import{J as i,Q as a,Sr as o,mr as s}from"./vendor-ClrOISZp.js";async function c({cameraData:e}){return(await t.post(`/cameras`,e)).data}async function l({cameraData:e}){return(await t.post(`/cameras/preview`,e)).data}async function u({signal:e}){return(await t.get(`/cameras/rooms`,{signal:e})).data}async function d({cameraname:e,signal:n}){return(await t.get(`/cameras/${e}`,{signal:n})).data}async function f({cameraname:e}){return(await t.delete(`/cameras/${e}/log`)).data}async function p({cameraname:e,signal:n}){return(await t.get(`/cameras/${e}/log/download`,{signal:n})).data}async function m({cameraname:e,sourcename:n,signal:r}){return(await t.get(`/cameras/${e}/info/${n}`,{signal:r})).data}async function h({cameraname:e,sourcename:n,probeConfig:r,force:i,signal:a}){return(await t.get(`/cameras/${e}/probe/${n}`,{params:{...r,...i?{refresh:!0}:{}},signal:a})).data}async function g({cameraname:e,forceNew:n,signal:r}){return(await t.get(`/cameras/${e}/snapshot`,{signal:r,params:{forceNew:n}})).data}async function _({parameter:e,signal:n}){return(await t.get(`/cameras`,{params:e,signal:n})).data}async function v({cameraname:e,cameraData:n}){return(await t.patch(`/cameras/${e}`,n)).data}async function y({cameraname:e,signal:n}){return(await t.get(`/cameras/${e}/extensions`,{signal:n})).data}async function b({cameraname:e,pluginname:n,signal:r}){return(await t.get(`/cameras/${e}/${n}/config`,{signal:r})).data}async function x({cameraname:e,pluginname:n,configData:r}){return(await t.patch(`/cameras/${e}/${n}/config`,r)).data}async function S({cameraname:e,pluginname:n,configData:r}){return(await t.put(`/cameras/${e}/${n}/config`,r)).data}async function C({cameraname:e,pluginname:n,configData:r}){return(await t.post(`/cameras/${e}/${n}/config`,r)).data}async function w({cameraname:e,pluginname:n,sensorId:r,signal:i}){return(await t.get(`/cameras/${e}/${n}/sensor/${r}/config`,{signal:i})).data}async function T({cameraname:e,pluginname:n,sensorId:r,configData:i}){return(await t.patch(`/cameras/${e}/${n}/sensor/${r}/config`,i)).data}async function E({cameraname:e,pluginname:n,sensorId:r,configData:i}){return(await t.put(`/cameras/${e}/${n}/sensor/${r}/config`,i)).data}async function D({cameraname:e,pluginname:n,sensorId:r,configData:i}){return(await t.post(`/cameras/${e}/${n}/sensor/${r}/config`,i)).data}async function O({cameraname:e,pluginname:n,type:r}){return(await t.put(`/cameras/${e}/${n}/enable`,null,{params:{type:r}})).data}async function k({cameraname:e,pluginname:n,type:r}){return(await t.put(`/cameras/${e}/${n}/disable`,null,{params:{type:r}})).data}async function A({cameraname:e,pluginname:n,type:r}){return(await t.post(`/cameras/${e}/${n}`,null,{params:{type:r}})).data}async function j({cameraname:e,pluginname:n,type:r}){return(await t.delete(`/cameras/${e}/${n}`,{params:{type:r}})).data}async function M({cameraname:e,pluginname:n}){return(await t.post(`/cameras/${e}/${n}/activate`)).data}async function N({cameraname:e,pluginname:n}){return(await t.delete(`/cameras/${e}/${n}/deactivate`)).data}async function P({cameraname:e,signal:n}){return(await t.get(`/cameras/${e}/zones`,{signal:n})).data}async function F({cameraname:e,zoneData:n}){return(await t.patch(`/cameras/${e}/zones`,n)).data}async function I({cameraname:e,lineData:n}){return(await t.patch(`/cameras/${e}/lines`,n)).data}async function L({cameraname:e}){return(await t.delete(`/cameras/${e}`)).data}async function R(){return(await t.delete(`/cameras`)).data}var z=class{_queryClient=a();t=n.global.t;toast=r();queryActivator=s([{name:`getCameraQuery`,enabled:!0},{name:`getCamerasQuery`,enabled:!0},{name:`getCameraSnapshotQuery`,enabled:!0},{name:`getCameraExtensionsQuery`,enabled:!0},{name:`getCameraExtensionConfigQuery`,enabled:!0},{name:`getZonesQuery`,enabled:!0},{name:`streamSourceInfoQuery`,enabled:!0},{name:`probeCameraSourceQuery`,enabled:!0},{name:`downloadLogQuery`,enabled:!0},{name:`getSensorConfigQuery`,enabled:!0}]);get queryClient(){return this._queryClient}createCameraQuery(){return i({mutationFn:c,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_added`),life:3e3})}})}previewCameraQuery(){return i({mutationFn:l})}getCameraQuery(t){return e({queryKey:[`cameras`,t],queryFn:({signal:e})=>d({cameraname:o(t),signal:e}),initialData:()=>{let e=o(t),n=this._queryClient.getQueriesData({queryKey:[`camerasList`]});for(let[,t]of n){let n=t?.result?.find(t=>t.name===e);if(n)return n}},initialDataUpdatedAt:0,enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraQuery`&&e.enabled)})}getCameraExtensionsQuery(t){return e({queryKey:[`camerasExtensions`,t],queryFn:({signal:e})=>y({cameraname:o(t),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraExtensionsQuery`&&e.enabled)})}streamSourceInfoQuery(t,n){return e({queryKey:[`cameras`,t,`info`,n],queryFn:({signal:e})=>m({cameraname:o(t),sourcename:o(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`streamSourceInfoQuery`&&e.enabled)})}probeCameraSourceQuery(t,n,r){return e({queryKey:[`cameras`,t,`probe`,n],queryFn:({signal:e})=>h({cameraname:o(t),sourcename:o(n),probeConfig:o(r),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`probeCameraSourceQuery`&&e.enabled)})}getCameraSnapshotQuery(t,n){return e({queryKey:[`camerasSnapshot`,t],queryFn:({signal:e})=>g({cameraname:o(t),forceNew:o(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraSnapshotQuery`&&e.enabled),retry:!1})}getCamerasQuery(t){return e({queryKey:[`camerasList`,t],queryFn:({signal:e})=>_({parameter:o(t),signal:e}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getCamerasQuery`&&e.enabled)})}getRoomsQuery(){return e({queryKey:[`camerasRooms`],queryFn:({signal:e})=>u({signal:e})})}patchCameraQuery(){return i({mutationFn:v,onSuccess:async(e,t)=>{let n=t.cameraData.name&&t.cameraData.name!==t.cameraname,r=t.cameraData.room!==void 0;if(n){let e=t.cameraname;await this._queryClient.invalidateQueries({queryKey:[e]}),await this._queryClient.refetchQueries({queryKey:[`camerasList`]})}else await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),r&&(await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),await this._queryClient.refetchQueries({queryKey:[`camerasRooms`]}));this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_updated`),life:3e3})}})}getCameraExtensionConfigQuery(t,n,r){return e({queryKey:[`cameras`,`extensions`,t,n],queryFn:({signal:e})=>b({cameraname:o(t),pluginname:o(n),signal:e}),enabled:()=>!!o(n)&&this.queryActivator.value.some(e=>e.name===`getCameraExtensionConfigQuery`&&e.enabled),refetchInterval(){if(r.value)return 1e4},retry:10,retryDelay:500,staleTime:0})}patchCameraExtensionConfigQuery(){return i({mutationFn:x,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}setCameraExtensionConfigQuery(){return i({mutationFn:S,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}submitCameraExtensionConfigQuery(){return i({mutationFn:C,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}getSensorConfigQuery(t,n,r,i){return e({queryKey:[`cameras`,`sensor`,t,n,r],queryFn:({signal:e})=>w({cameraname:o(t),pluginname:o(n),sensorId:o(r),signal:e}),enabled:()=>{let e=o(n),t=o(r);return!e||!t?!1:this.queryActivator.value.some(e=>e.name===`getSensorConfigQuery`&&e.enabled)},refetchInterval(){if(i.value)return 1e4},retry:3,retryDelay:500,staleTime:0})}patchSensorConfigQuery(){return i({mutationFn:T,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}setSensorConfigQuery(){return i({mutationFn:E,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}submitSensorConfigQuery(){return i({mutationFn:D,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}enableCameraExtensionQuery(){return i({mutationFn:O,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}disableCameraExtensionQuery(){return i({mutationFn:k,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}addCameraExtensionQuery(){return i({mutationFn:A,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}activateCameraExtensionQuery(){return i({mutationFn:M,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}deactivateCameraExtensionQuery(){return i({mutationFn:N,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}getZonesQuery(t){return e({queryKey:[`cameras`,t,`zones`],queryFn:({signal:e})=>P({cameraname:o(t),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getZonesQuery`&&e.enabled)})}patchZonesQuery(){return i({mutationFn:F,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.zone_updated`),life:3e3})}})}patchLinesQuery(){return i({mutationFn:I,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.line_updated`),life:3e3})}})}removeCameraExtensionQuery(){return i({mutationFn:j,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}removeCameraQuery(){return i({mutationFn:L,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_removed`),life:3e3})}})}removeCamerasQuery(){return i({mutationFn:R,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.cameras_removed`),life:3e3})}})}downloadLogQuery(t){return e({queryKey:[`logs`,t],queryFn:({signal:e})=>p({cameraname:o(t),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`downloadLogQuery`&&e.enabled)})}clearLogQuery(){return i({mutationFn:f,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`logs`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.log_cleared`),life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{h as a,d as i,f as n,p as r,z as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{O as e}from"./vendor-cameraui-DDdtrYBn.js";import{_t as t,bt as n,gt as r,ht as i,vt as a,yt as o}from"./api-DR6W2XWy.js";import{Er as s,Sr as c,dn as l,lr as u,mn as d,mr as f,xn as p,yn as m,zn as h}from"./vendor-ClrOISZp.js";import{n as g,r as _,t as v}from"./vendor-zod-XsuaxHRY.js";var y={class:`flex flex-col gap-2 w-full`},b={for:`roomName`,class:`cui-label`},x=p({__name:`CreateRoom`,setup(t,{expose:n}){let r=f(``);return n({onConfirm:async()=>r.value.trim()||null}),(t,n)=>{let i=e;return h(),d(`div`,y,[l(`label`,b,s(t.$t(`components.form.label.name`)),1),m(i,{id:`roomName`,modelValue:c(r),"onUpdate:modelValue":n[0]||=e=>u(r)?r.value=e:null,class:`w-full`,placeholder:t.$t(`components.form.hint.room_select`),autofocus:``},null,8,[`modelValue`,`placeholder`])])}}}),S=RegExp(`^(${i.join(`|`)})`),C=_().trim().min(1,`Camera Source is required`).regex(S,`Unsupported protocol — start the URL with a supported one (e.g. rtsp://)`),w=g({name:_().trim().min(1,`Camera Source Name is required`),urls:C.array(),role:o,useForSnapshot:v().default(!1),hotMode:v().default(!0),preload:v().default(!0),muted:v().default(!1),childSourceId:_().trim().optional()}).strict(),T=g({...r.shape,sources:w.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.useForSnapshot),{message:`Snapshot source can not be used with useForSnapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.hotMode),{message:`Snapshot source can not be used with hotMode`}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.preload),{message:`Snapshot source can not be used with preload`}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]})}).strict(),E=n,D=a,O=t;export{x as a,E as i,D as n,T as r,O as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as e}from"./api-DR6W2XWy.js";export{e as bounceToCloudFrontend};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,Dt as t,E as n,T as r}from"./api-
|
|
1
|
+
import{C as e,Dt as t,E as n,T as r}from"./api-DR6W2XWy.js";import{J as i,Q as a,Sr as o,mr as s}from"./vendor-ClrOISZp.js";async function c({json:e,signal:n}){return(await t.get(`/config`,{params:{json:e},signal:n})).data}async function l({json:e,signal:n}){return(await t.get(`/config/go2rtc`,{params:{json:e},signal:n})).data}async function u({configData:e}){return(await t.patch(`/config`,e,{headers:{"Content-Type":`text/yaml`}})).data}async function d({configData:e}){return(await t.patch(`/config/go2rtc`,e,{headers:{"Content-Type":`text/yaml`}})).data}async function f(){return(await t.delete(`/config`)).data}async function p(){return(await t.delete(`/config/go2rtc`)).data}var m=class{_queryClient=a();t=n.global.t;toast=r();queryActivator=s([{name:`getConfigQuery`,enabled:!0},{name:`getGo2RtcConfigQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getConfigQuery(t=!1){return e({queryKey:[`config`,{json:t}],queryFn:({signal:e})=>c({json:o(t),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConfigQuery`&&e.enabled)})}getGo2RtcConfigQuery(t=!1){return e({queryKey:[`go2rtcConfig`],queryFn:({signal:e})=>l({json:o(t),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getGo2RtcConfigQuery`&&e.enabled)})}patchConfigQuery(){return i({mutationFn:u,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`config`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_updated`),life:3e3})}})}patchGo2RtcConfigQuery(){return i({mutationFn:d,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`go2rtcConfig`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_go2rtc_updated`),life:3e3})}})}delteConfigQuery(){return i({mutationFn:f,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`config`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_deleted`),life:3e3})}})}delteGo2RtcConfigQuery(){return i({mutationFn:p,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`go2rtcConfig`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_go2rtc_deleted`),life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{m as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./api-
|
|
1
|
+
import"./api-DR6W2XWy.js";import"./vendor-ClrOISZp.js";var e=`cameraui:web-push-id`;function t(){if(typeof crypto<`u`&&typeof crypto.randomUUID==`function`)return crypto.randomUUID();if(typeof window<`u`&&window.crypto!==void 0&&typeof window.crypto.randomUUID==`function`)return window.crypto.randomUUID();let e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}async function n(){let n=localStorage.getItem(e);return n||(n=t(),localStorage.setItem(e,n)),n}export{n,t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e}from"./api-
|
|
1
|
+
import{p as e}from"./api-DR6W2XWy.js";import{c as t,f as n}from"./vendor-core-CZuWsjWr.js";var r={user:0,admin:1,master:2};function i(e,t){return(r[e]??0)>=(r[t]??0)}function a(r,a,o){let{user:s}=n(e()),c=s.value?.role??`user`;if(a&&!r)return o?c===a:i(c,a);r??=t();let l=!r?.meta?.auth||r?.meta?.auth.requiresAuth===!1,u=a??r.meta?.auth?.role??`user`;return l||u===`none`?!0:o?c===u:i(c,u)}export{a as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Fi as e,Ti as t,o as n,rt as r,y as i}from"./vendor-cameraui-DDdtrYBn.js";import{At as a,C as o,Ct as s,Dt as c,E as l,Ot as u,T as d,p as f}from"./api-BxUTlh4_.js";import{J as p,Q as m,Y as h,dn as g,mn as _,mr as v,pr as y,un as b,ur as x,xr as S,zn as C}from"./vendor-ClrOISZp.js";import{d as w,l as ee}from"./vendor-core-CZuWsjWr.js";import{t as te}from"./hasPermission-DWgF7Hjs.js";import{t as T}from"./useCuiDialog-BrXNUR_F.js";var E={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function D(e,t){return C(),_(`svg`,E,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M20.916 9.564a1 1 0 0 0-.513-1.316L7.328 2.492c-.995-.438-2.22.051-2.645 1.042l-2.21 5.154a2 2 0 0 0 1.052 2.624L9.563 13.9L8.323 17H4v-3H2v8h2v-3h4.323c.823 0 1.552-.494 1.856-1.258l1.222-3.054l5.205 2.23a1 1 0 0 0 1.31-.517l.312-.71l1.701.68l2-5l-1.536-.613zm-4.434 5.126L4.313 9.475l2.208-5.152l12.162 5.354z`},null,-1)]])}var O=x({name:`bx-cctv`,render:D}),k={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function A(e,t){return C(),_(`svg`,k,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M20 3H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m-5 5h-2V6h2zm4 0h-2V6h2zm1 5H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2m-5 5h-2v-2h2zm4 0h-2v-2h2z`},null,-1)]])}var j=x({name:`bxs-server`,render:A});async function M(e){return(await c.get(`/instances`,{signal:e})).data}async function N(e){return(await c.post(`/instances`,e)).data}async function P({id:e,data:t}){return(await c.put(`/instances/${e}`,t)).data}async function F(e){await c.delete(`/instances/${e}`)}async function I(e){return(await c.patch(`/instances/${e}/favorite`)).data}async function L(e){return(await c.post(`/instances/${e}/login`)).data}async function R(e,t){return(await c.get(`/instances/${e}/status`,{signal:t})).data}var z=class{_queryClient=m();toast=d();t=l.global.t;listQuery(){return o({queryKey:[`instances`],queryFn:({signal:e})=>M(e)})}statusQueries(e){return h({queries:b(()=>S(e).map(e=>({queryKey:[`instances`,e.id,`status`],queryFn:({signal:t})=>R(e.id,t),refetchInterval:15e3,retry:!1})))})}createMutation(){return p({mutationFn:N,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.added`),life:3e3})}})}updateMutation(){return p({mutationFn:P,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.updated`),life:3e3})}})}deleteMutation(){return p({mutationFn:async e=>{await F(e),await this._queryClient.cancelQueries({queryKey:[`instances`,e,`status`]}),this._queryClient.removeQueries({queryKey:[`instances`,e,`status`]})},onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.removed`),life:3e3})}})}toggleFavoriteMutation(){return p({mutationFn:I,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]})}})}loginMutation(){return p({mutationFn:L,onError:()=>{}})}},B=3e4,V=5e3,H=`__home__`,U=new Set([`localhost`,`127.0.0.1`,`::1`]),W=s(`Instances`);async function G(e,t){try{let n=AbortSignal.timeout(V),r=t?AbortSignal.any([n,t]):n,i=await fetch(`${e}/api/health`,{signal:r});return W.debug(`[probe]`,`${e} → ${i.ok?`OK`:`HTTP ${i.status}`}`),i.ok}catch(t){let n=t instanceof Error?t.message:String(t);return W.debug(`[probe]`,`${e} → FAIL`,n),!1}}function K(e){return{access:e.access_token,accessExpiresAt:e.access_token_expires_at,refresh:e.refresh_token,refreshExpiresAt:e.refresh_token_expires_at}}function ne(e,t){return{_id:t?._id??``,username:t?.username??``,email:t?.email,role:t?.role??``,firstLogin:t?.firstLogin,avatar:t?.avatar,language:`auto`,access_token:e.access,refresh_token:e.refresh??``,token_type:`Bearer`,access_token_expires_at:e.accessExpiresAt??0,refresh_token_expires_at:e.refreshExpiresAt??0,internalAddresses:[],externalAddresses:[]}}var q=w(`instances`,()=>{let o=f(),s=ee(),c=d(),p=T(),h=m(),{t:g}=l.global,_=t(`instanceTokens`,{}),x=t(`activeInstanceId`,null),S=v(!1),C=v(null),w=v(0),E=0,D=v(null),O=v([]),k=e(`redirectInfo`,null,{serializer:{read:e=>e?JSON.parse(e):null,write:e=>JSON.stringify(e)}}),A=b(()=>x.value===null),j=b(()=>x.value===null?null:O.value.find(e=>e.id===x.value)?.url??null);async function R(){try{if(!te(void 0,`admin`))return;let e=await M();O.value=e.instances,D.value=e.homeId,W.debug(`[fetch]`,`loaded ${e.instances.length} instances`,{homeId:e.homeId})}catch(e){W.warn(`[fetch]`,`failed`,e)}}let z=b(()=>{let e=D.value;return O.value.filter(t=>!(e&&t.remoteHomeId&&t.remoteHomeId===e)).map(e=>{let t=_.value[e.id];return{id:e.id,name:e.name,url:e.url,hasCredentials:!!e.credentials,favorite:e.favorite??!0,userData:t?.userData??null,lastConnectedAt:t?.lastConnectedAt??null,isHome:!1}})});function V(){let e=_.value[H],t=x.value===null?u().target.value?.endpoint.url??e?.url??window.location.origin:e?.url??window.location.origin;return{id:`home`,name:g(`navigation.home`),url:t,hasCredentials:!1,favorite:!1,userData:e?.userData??null,lastConnectedAt:e?.lastConnectedAt??null,isHome:!0}}let q=b(()=>{if(x.value!==null){let e=z.value.find(e=>e.id===x.value);if(e)return e}return V()}),J=b(()=>z.value.filter(e=>e.favorite)),Y=b(()=>J.value.length>0||x.value!==null||k.value!==null);function X(e){return O.value.find(t=>t.id===e)?.favorite??!0}async function re(e){let{favorite:t}=await I(e),n=O.value.find(t=>t.id===e);n&&(n.favorite=t)}async function ie(e){let t=await N(e);return O.value=[...O.value,t],t}async function ae(e){await F(e),O.value=O.value.filter(t=>t.id!==e),delete _.value[e]}async function oe(e,t){let n=await P({id:e,data:t}),r=O.value.findIndex(t=>t.id===e);r!==-1&&(O.value[r]=n)}async function se(e,t){let n=O.value.find(t=>t.id===e);return n?G(n.url,t):!1}function Z(){let e=u().target.value;if(!e?.tokens.access){W.debug(`[save-tokens]`,`skipped — no live access token`);return}let t=x.value??H;_.value[t]={userData:ne(e.tokens,o.user??void 0),lastConnectedAt:Date.now(),url:e.endpoint.url},W.debug(`[save-tokens]`,`slot=${t} url=${e.endpoint.url}`)}function ce(){if(x.value===null){a.value=null,W.debug(`[restore-override]`,`no active instance — home target`);return}let e=_.value[x.value],t=e?.url??e?.userData?.internalAddresses?.[0]??e?.userData?.externalAddresses?.[0]??null;a.value=t,W.debug(`[restore-override]`,`activeId=${x.value} → ${t??`no cached url`}`)}async function Q(e){if(S.value){W.warn(`[switch]`,`ignored — another switch is already in progress`);return}let t=e===null?V():z.value.find(t=>t.id===e)??V();if(e!==null&&$(t.url)&&!await ue(t.name)){W.debug(`[switch]`,`URL handoff declined by user`);return}let l=++E;S.value=!0,C.value=t.name,W.debug(`[switch]`,`START targetId=${e??`home`} gen=${l}`),W.debug(`[switch]`,`target resolved — name="${t.name}" url=${t.url} hasCreds=${t.hasCredentials}`);try{if(e!==null){let e=await G(t.url);if(l!==E){W.debug(`[switch]`,`aborted after probe — newer gen=${E}`);return}if(!e){W.warn(`[switch]`,`target unreachable — ${t.url}`),c.add({severity:`warn`,detail:g(`instances.unreachable`,{name:t.name}),life:3e3});return}}let d=null;if(e!==null&&t.hasCredentials)try{d=await L(e),W.debug(`[switch]`,`backend relay login OK`)}catch(e){W.warn(`[switch]`,`backend relay login FAILED — will try cached tokens`,e)}if(l!==E){W.debug(`[switch]`,`aborted after relay-login — newer gen=${E}`);return}Z();let f=e??H,p=d?K(d):le(f);if(W.debug(`[switch]`,`tokens source: ${d?`fresh`:p?`cached`:`none`} (slot=${f})`),e!==null&&$(t.url)){W.debug(`[switch]`,`URL handoff required — leaving SPA`),await de(t,d);return}let m=u();if(m.reset(),W.debug(`[switch]`,`kernel RESET`),r(),i(),n(),h.clear(),W.debug(`[switch]`,`vue-query cleared`),x.value=e,a.value=e===null?null:t.url,W.debug(`[switch]`,`activeId=${e} instanceOverride=${a.value??`null`}`),p&&d&&(_.value[f]={userData:d,lastConnectedAt:Date.now(),url:t.url},o.user={_id:d._id,username:d.username,role:d.role,firstLogin:d.firstLogin,avatar:d.avatar}),p){let n={url:t.url,mode:`direct-lan`,priority:0};W.debug(`[switch]`,`seedAndRetry → ${n.url}`),await Promise.race([m.seedAndRetry({endpoint:n,tokens:p},e??`home`),new Promise((e,t)=>setTimeout(()=>t(Error(`switch_timeout`)),B))])}else{W.warn(`[switch]`,`no tokens — boot + route to login`),m.boot(e??`home`),o.user=null,s.push(`/`);return}if(l!==E){W.debug(`[switch]`,`aborted after seedAndRetry — newer gen=${E}`);return}w.value++,W.debug(`[switch]`,`DONE gen=${l} → /home`),s.push(`/home`)}catch(e){(e instanceof Error?e.message:String(e))===`switch_timeout`?(W.error(`[switch]`,`TIMEOUT after ${B}ms`),c.add({severity:`error`,detail:g(`instances.switch_timeout`,{name:C.value??``}),life:3e3})):(W.error(`[switch]`,`failed`,e),c.add({severity:`error`,detail:e,life:3e3}))}finally{l===E&&(S.value=!1,C.value=null)}}function le(e){let t=_.value[e];return t?.userData?.access_token?K(t.userData):null}function $(e){try{let t=new URL(e),n=new URL(window.location.origin),r=n.protocol===`https:`&&t.protocol===`http:`,i=U.has(t.hostname)&&!U.has(n.hostname);return r||i}catch{return!1}}function ue(e){return W.warn(`[switch]`,`target "${e}" requires URL handoff — asking user confirmation`),new Promise(t=>{let n=!1,r=e=>{n||(n=!0,t(e))};p.openTextDialog({data:{title:g(`instances.insecure_handoff_title`),confirmText:g(`instances.insecure_handoff_confirm`),contentText:g(`instances.insecure_handoff_message`,{name:e}),confirmButtonProps:{severity:`danger`}},onConfirm:()=>r(!0),onCancel:()=>r(!1)})})}async function de(e,t){let n={_reset:!0,_sourceUrl:window.location.origin,_instanceName:e.name};t&&Object.assign(n,t);let r=encodeURIComponent(btoa(JSON.stringify(n))),i=`${e.url.split(`#`)[0]}#auth=${r}`;W.debug(`[url-handoff]`,`→ ${e.url} (with token=${t?`yes`:`no`})`),window.location.href=i}function fe(){_.value={},x.value=null,a.value=null,k.value=null,O.value=[],D.value=null,W.debug(`[reset]`,`store cleared`)}return{instances:z,activeInstance:q,activeId:x,activeUrl:j,isHomeActive:A,isMultiInstance:Y,isSwitching:y(S),switchTargetName:y(C),switchKey:y(w),serverHomeId:D,redirectInfo:k,serverInstances:O,instanceTokens:_,favoriteInstances:J,isFavorite:X,toggleFavorite:re,fetchInstances:R,addInstance:ie,removeInstance:ae,updateInstance:oe,switchInstance:Q,probeInstance:se,reset:fe,saveCurrentTokens:Z,restoreActiveOverride:ce}});export{O as i,z as n,j as r,q as t};
|
|
1
|
+
import{Fi as e,Ti as t,o as n,rt as r,y as i}from"./vendor-cameraui-DDdtrYBn.js";import{At as a,C as o,Ct as s,Dt as c,E as l,Ot as u,T as d,p as f}from"./api-DR6W2XWy.js";import{J as p,Q as m,Y as h,dn as g,mn as _,mr as v,pr as y,un as b,ur as x,xr as S,zn as C}from"./vendor-ClrOISZp.js";import{d as w,l as ee}from"./vendor-core-CZuWsjWr.js";import{t as te}from"./hasPermission-Dm18Z17u.js";import{t as T}from"./useCuiDialog-DLoFzodG.js";var E={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function D(e,t){return C(),_(`svg`,E,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M20.916 9.564a1 1 0 0 0-.513-1.316L7.328 2.492c-.995-.438-2.22.051-2.645 1.042l-2.21 5.154a2 2 0 0 0 1.052 2.624L9.563 13.9L8.323 17H4v-3H2v8h2v-3h4.323c.823 0 1.552-.494 1.856-1.258l1.222-3.054l5.205 2.23a1 1 0 0 0 1.31-.517l.312-.71l1.701.68l2-5l-1.536-.613zm-4.434 5.126L4.313 9.475l2.208-5.152l12.162 5.354z`},null,-1)]])}var O=x({name:`bx-cctv`,render:D}),k={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function A(e,t){return C(),_(`svg`,k,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M20 3H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m-5 5h-2V6h2zm4 0h-2V6h2zm1 5H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2m-5 5h-2v-2h2zm4 0h-2v-2h2z`},null,-1)]])}var j=x({name:`bxs-server`,render:A});async function M(e){return(await c.get(`/instances`,{signal:e})).data}async function N(e){return(await c.post(`/instances`,e)).data}async function P({id:e,data:t}){return(await c.put(`/instances/${e}`,t)).data}async function F(e){await c.delete(`/instances/${e}`)}async function I(e){return(await c.patch(`/instances/${e}/favorite`)).data}async function L(e){return(await c.post(`/instances/${e}/login`)).data}async function R(e,t){return(await c.get(`/instances/${e}/status`,{signal:t})).data}var z=class{_queryClient=m();toast=d();t=l.global.t;listQuery(){return o({queryKey:[`instances`],queryFn:({signal:e})=>M(e)})}statusQueries(e){return h({queries:b(()=>S(e).map(e=>({queryKey:[`instances`,e.id,`status`],queryFn:({signal:t})=>R(e.id,t),refetchInterval:15e3,retry:!1})))})}createMutation(){return p({mutationFn:N,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.added`),life:3e3})}})}updateMutation(){return p({mutationFn:P,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.updated`),life:3e3})}})}deleteMutation(){return p({mutationFn:async e=>{await F(e),await this._queryClient.cancelQueries({queryKey:[`instances`,e,`status`]}),this._queryClient.removeQueries({queryKey:[`instances`,e,`status`]})},onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.removed`),life:3e3})}})}toggleFavoriteMutation(){return p({mutationFn:I,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]})}})}loginMutation(){return p({mutationFn:L,onError:()=>{}})}},B=3e4,V=5e3,H=`__home__`,U=new Set([`localhost`,`127.0.0.1`,`::1`]),W=s(`Instances`);async function G(e,t){try{let n=AbortSignal.timeout(V),r=t?AbortSignal.any([n,t]):n,i=await fetch(`${e}/api/health`,{signal:r});return W.debug(`[probe]`,`${e} → ${i.ok?`OK`:`HTTP ${i.status}`}`),i.ok}catch(t){let n=t instanceof Error?t.message:String(t);return W.debug(`[probe]`,`${e} → FAIL`,n),!1}}function K(e){return{access:e.access_token,accessExpiresAt:e.access_token_expires_at,refresh:e.refresh_token,refreshExpiresAt:e.refresh_token_expires_at}}function ne(e,t){return{_id:t?._id??``,username:t?.username??``,email:t?.email,role:t?.role??``,firstLogin:t?.firstLogin,avatar:t?.avatar,language:`auto`,access_token:e.access,refresh_token:e.refresh??``,token_type:`Bearer`,access_token_expires_at:e.accessExpiresAt??0,refresh_token_expires_at:e.refreshExpiresAt??0,internalAddresses:[],externalAddresses:[]}}var q=w(`instances`,()=>{let o=f(),s=ee(),c=d(),p=T(),h=m(),{t:g}=l.global,_=t(`instanceTokens`,{}),x=t(`activeInstanceId`,null),S=v(!1),C=v(null),w=v(0),E=0,D=v(null),O=v([]),k=e(`redirectInfo`,null,{serializer:{read:e=>e?JSON.parse(e):null,write:e=>JSON.stringify(e)}}),A=b(()=>x.value===null),j=b(()=>x.value===null?null:O.value.find(e=>e.id===x.value)?.url??null);async function R(){try{if(!te(void 0,`admin`))return;let e=await M();O.value=e.instances,D.value=e.homeId,W.debug(`[fetch]`,`loaded ${e.instances.length} instances`,{homeId:e.homeId})}catch(e){W.warn(`[fetch]`,`failed`,e)}}let z=b(()=>{let e=D.value;return O.value.filter(t=>!(e&&t.remoteHomeId&&t.remoteHomeId===e)).map(e=>{let t=_.value[e.id];return{id:e.id,name:e.name,url:e.url,hasCredentials:!!e.credentials,favorite:e.favorite??!0,userData:t?.userData??null,lastConnectedAt:t?.lastConnectedAt??null,isHome:!1}})});function V(){let e=_.value[H],t=x.value===null?u().target.value?.endpoint.url??e?.url??window.location.origin:e?.url??window.location.origin;return{id:`home`,name:g(`navigation.home`),url:t,hasCredentials:!1,favorite:!1,userData:e?.userData??null,lastConnectedAt:e?.lastConnectedAt??null,isHome:!0}}let q=b(()=>{if(x.value!==null){let e=z.value.find(e=>e.id===x.value);if(e)return e}return V()}),J=b(()=>z.value.filter(e=>e.favorite)),Y=b(()=>J.value.length>0||x.value!==null||k.value!==null);function X(e){return O.value.find(t=>t.id===e)?.favorite??!0}async function re(e){let{favorite:t}=await I(e),n=O.value.find(t=>t.id===e);n&&(n.favorite=t)}async function ie(e){let t=await N(e);return O.value=[...O.value,t],t}async function ae(e){await F(e),O.value=O.value.filter(t=>t.id!==e),delete _.value[e]}async function oe(e,t){let n=await P({id:e,data:t}),r=O.value.findIndex(t=>t.id===e);r!==-1&&(O.value[r]=n)}async function se(e,t){let n=O.value.find(t=>t.id===e);return n?G(n.url,t):!1}function Z(){let e=u().target.value;if(!e?.tokens.access){W.debug(`[save-tokens]`,`skipped — no live access token`);return}let t=x.value??H;_.value[t]={userData:ne(e.tokens,o.user??void 0),lastConnectedAt:Date.now(),url:e.endpoint.url},W.debug(`[save-tokens]`,`slot=${t} url=${e.endpoint.url}`)}function ce(){if(x.value===null){a.value=null,W.debug(`[restore-override]`,`no active instance — home target`);return}let e=_.value[x.value],t=e?.url??e?.userData?.internalAddresses?.[0]??e?.userData?.externalAddresses?.[0]??null;a.value=t,W.debug(`[restore-override]`,`activeId=${x.value} → ${t??`no cached url`}`)}async function Q(e){if(S.value){W.warn(`[switch]`,`ignored — another switch is already in progress`);return}let t=e===null?V():z.value.find(t=>t.id===e)??V();if(e!==null&&$(t.url)&&!await ue(t.name)){W.debug(`[switch]`,`URL handoff declined by user`);return}let l=++E;S.value=!0,C.value=t.name,W.debug(`[switch]`,`START targetId=${e??`home`} gen=${l}`),W.debug(`[switch]`,`target resolved — name="${t.name}" url=${t.url} hasCreds=${t.hasCredentials}`);try{if(e!==null){let e=await G(t.url);if(l!==E){W.debug(`[switch]`,`aborted after probe — newer gen=${E}`);return}if(!e){W.warn(`[switch]`,`target unreachable — ${t.url}`),c.add({severity:`warn`,detail:g(`instances.unreachable`,{name:t.name}),life:3e3});return}}let d=null;if(e!==null&&t.hasCredentials)try{d=await L(e),W.debug(`[switch]`,`backend relay login OK`)}catch(e){W.warn(`[switch]`,`backend relay login FAILED — will try cached tokens`,e)}if(l!==E){W.debug(`[switch]`,`aborted after relay-login — newer gen=${E}`);return}Z();let f=e??H,p=d?K(d):le(f);if(W.debug(`[switch]`,`tokens source: ${d?`fresh`:p?`cached`:`none`} (slot=${f})`),e!==null&&$(t.url)){W.debug(`[switch]`,`URL handoff required — leaving SPA`),await de(t,d);return}let m=u();if(m.reset(),W.debug(`[switch]`,`kernel RESET`),r(),i(),n(),h.clear(),W.debug(`[switch]`,`vue-query cleared`),x.value=e,a.value=e===null?null:t.url,W.debug(`[switch]`,`activeId=${e} instanceOverride=${a.value??`null`}`),p&&d&&(_.value[f]={userData:d,lastConnectedAt:Date.now(),url:t.url},o.user={_id:d._id,username:d.username,role:d.role,firstLogin:d.firstLogin,avatar:d.avatar}),p){let n={url:t.url,mode:`direct-lan`,priority:0};W.debug(`[switch]`,`seedAndRetry → ${n.url}`),await Promise.race([m.seedAndRetry({endpoint:n,tokens:p},e??`home`),new Promise((e,t)=>setTimeout(()=>t(Error(`switch_timeout`)),B))])}else{W.warn(`[switch]`,`no tokens — boot + route to login`),m.boot(e??`home`),o.user=null,s.push(`/`);return}if(l!==E){W.debug(`[switch]`,`aborted after seedAndRetry — newer gen=${E}`);return}w.value++,W.debug(`[switch]`,`DONE gen=${l} → /home`),s.push(`/home`)}catch(e){(e instanceof Error?e.message:String(e))===`switch_timeout`?(W.error(`[switch]`,`TIMEOUT after ${B}ms`),c.add({severity:`error`,detail:g(`instances.switch_timeout`,{name:C.value??``}),life:3e3})):(W.error(`[switch]`,`failed`,e),c.add({severity:`error`,detail:e,life:3e3}))}finally{l===E&&(S.value=!1,C.value=null)}}function le(e){let t=_.value[e];return t?.userData?.access_token?K(t.userData):null}function $(e){try{let t=new URL(e),n=new URL(window.location.origin),r=n.protocol===`https:`&&t.protocol===`http:`,i=U.has(t.hostname)&&!U.has(n.hostname);return r||i}catch{return!1}}function ue(e){return W.warn(`[switch]`,`target "${e}" requires URL handoff — asking user confirmation`),new Promise(t=>{let n=!1,r=e=>{n||(n=!0,t(e))};p.openTextDialog({data:{title:g(`instances.insecure_handoff_title`),confirmText:g(`instances.insecure_handoff_confirm`),contentText:g(`instances.insecure_handoff_message`,{name:e}),confirmButtonProps:{severity:`danger`}},onConfirm:()=>r(!0),onCancel:()=>r(!1)})})}async function de(e,t){let n={_reset:!0,_sourceUrl:window.location.origin,_instanceName:e.name};t&&Object.assign(n,t);let r=encodeURIComponent(btoa(JSON.stringify(n))),i=`${e.url.split(`#`)[0]}#auth=${r}`;W.debug(`[url-handoff]`,`→ ${e.url} (with token=${t?`yes`:`no`})`),window.location.href=i}function fe(){_.value={},x.value=null,a.value=null,k.value=null,O.value=[],D.value=null,W.debug(`[reset]`,`store cleared`)}return{instances:z,activeInstance:q,activeId:x,activeUrl:j,isHomeActive:A,isMultiInstance:Y,isSwitching:y(S),switchTargetName:y(C),switchKey:y(w),serverHomeId:D,redirectInfo:k,serverInstances:O,instanceTokens:_,favoriteInstances:J,isFavorite:X,toggleFavorite:re,fetchInstances:R,addInstance:ie,removeInstance:ae,updateInstance:oe,switchInstance:Q,probeInstance:se,reset:fe,saveCurrentTokens:Z,restoreActiveOverride:ce}});export{O as i,z as n,j as r,q as t};
|