@camera.ui/server 0.0.110 → 0.0.112
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-CZDMFg2Z.js → 404-Dd3AyWdE.js} +1 -1
- package/dist/interface/assets/{About-TDIJXs5o.js → About-DAV31RZ5.js} +1 -1
- package/dist/interface/assets/{Adminpanel-Cciuxh1q.js → Adminpanel-zLLSmbSt.js} +1 -1
- package/dist/interface/assets/Automation-Dx--ghuY.js +2 -0
- package/dist/interface/assets/AutomationImport-chsxrEfX.js +2 -0
- package/dist/interface/assets/AutomationStore-BhL1O1qq.js +2 -0
- package/dist/interface/assets/AutomationStore-Q25Okhz8.css +1 -0
- package/dist/interface/assets/AutomationStoreDetail--egqUOqn.css +1 -0
- package/dist/interface/assets/AutomationStoreDetail-pW5g8G4I.js +2 -0
- package/dist/interface/assets/Automations-CQioiNmw.js +2 -0
- package/dist/interface/assets/{Camera-BlN_KppY.js → Camera-DVJbyl93.js} +2 -2
- package/dist/interface/assets/{CameraConsole-DGbeilsL.js → CameraConsole-DOiCJAQS.js} +1 -1
- package/dist/interface/assets/{Cameras-CVID1akl.js → Cameras-Dz7bZyRE.js} +2 -2
- package/dist/interface/assets/Camview-CBywGGI8.js +1 -0
- package/dist/interface/assets/{Camview-Gxca3bvT.css → Camview-CDM4Q_tc.css} +1 -1
- package/dist/interface/assets/Config-BfijMggp.js +2 -0
- package/dist/interface/assets/{ConfigActionCameraControl-BRgTU6MP.js → ConfigActionCameraControl-B2xFxVNO.js} +1 -1
- package/dist/interface/assets/{ConfigActionDelay-CYz0z9Od.js → ConfigActionDelay-DOUAx4lh.js} +1 -1
- package/dist/interface/assets/{ConfigActionHttp-C9nEQ-7w.js → ConfigActionHttp-BGz4r_Nr.js} +1 -1
- package/dist/interface/assets/{ConfigActionImageInput-D8ipnlfe.js → ConfigActionImageInput-BhO3ekJT.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-FzGgJM9i.js → ConfigActionNotification-hmTEfMw3.js} +1 -1
- package/dist/interface/assets/{ConfigActionOutput-BB-jkCdD.js → ConfigActionOutput-P0WY0DlF.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-C1OSUQ3_.js → ConfigActionPlugin-BgKKvqAy.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-C6DOrCYd.js → ConfigActionSensor-Du072tTI.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-k8RM-NMf.js → ConfigActionSnapshot-9aGopbuJ.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-D-1zVFz-.js → ConfigActionVariable-B2BoiQPb.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-pp0wRFeJ.js → ConfigConditionIfElse-Bhd2FYyz.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-CIbkk6LA.js → ConfigConditionSensorState-D2IIsthA.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSwitch-BPdEa--b.js → ConfigConditionSwitch-CC0w-Hvy.js} +1 -1
- package/dist/interface/assets/{ConfigConditionTime-bHKJ8kBR.js → ConfigConditionTime-lhWiIy2x.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerDetection-BrtBsd1t.js → ConfigTriggerDetection-CYJOEkHi.js} +1 -1
- package/dist/interface/assets/ConfigTriggerGeofence-4t1aW1Iw.js +1 -0
- package/dist/interface/assets/{ConfigTriggerManual-DDmBGqnC.js → ConfigTriggerManual-ChsUsNCK.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-vC9yyRct.js → ConfigTriggerSchedule-CE47WiIV.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-BbKksZMP.js → ConfigTriggerSensor-CVzeR8ac.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-CO06Crjg.js → ConfigTriggerSystem-5TI9H8mj.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-CrtHc6Q3.js → ConfigTriggerWebhook-D3cHvW8H.js} +1 -1
- package/dist/interface/assets/{Console-B4SQZA5X.js → Console-COaJF4Fu.js} +1 -1
- package/dist/interface/assets/{CuiActionButton-CNTiGrTt.js → CuiActionButton-Bl7gqhIV.js} +1 -1
- package/dist/interface/assets/{CuiAvatar-DUucUxIP.js → CuiAvatar-Drdaxxcm.js} +1 -1
- package/dist/interface/assets/{CuiBBoxPlayground-DOcoHCTQ.js → CuiBBoxPlayground-CIU5kteO.js} +1 -1
- package/dist/interface/assets/CuiBottomSheet-CrsJjITg.js +1 -0
- package/dist/interface/assets/{CuiBottomSheet-zPb4AI5w.js → CuiBottomSheet-ljGYA9W5.js} +1 -1
- package/dist/interface/assets/CuiCameraCard-O22PEfyi.js +1 -0
- package/dist/interface/assets/{CuiCameraPipCard-DehPfhfs.js → CuiCameraPipCard-BDZ3W5sh.js} +1 -1
- package/dist/interface/assets/{CuiCameraRecordings-bqChEXwx.js → CuiCameraRecordings-BWlxU4qP.js} +1 -1
- package/dist/interface/assets/{CuiCameraShares-BvwB4H_0.js → CuiCameraShares-BIXFV72I.js} +1 -1
- package/dist/interface/assets/{CuiCameraSnapshot-C33nUgVt.js → CuiCameraSnapshot-BAwo37N7.js} +1 -1
- package/dist/interface/assets/{CuiCameraTable-B5wQAGfM.js → CuiCameraTable-6tWx74Nl.js} +1 -1
- package/dist/interface/assets/{CuiDataTable-D9GqApg1.js → CuiDataTable-saRt0sBc.js} +1 -1
- package/dist/interface/assets/{CuiFloatingButton-BLCO4wJw.js → CuiFloatingButton-B5YMdr0X.js} +1 -1
- package/dist/interface/assets/{CuiImage-B3eMhhIS.js → CuiImage-KyBpvv-t.js} +1 -1
- package/dist/interface/assets/{CuiMarkdownContent-YieurDkL.js → CuiMarkdownContent-DaJ8HzaP.js} +1 -1
- package/dist/interface/assets/CuiMarkdownContent-qIS8eQHX.js +1 -0
- package/dist/interface/assets/{CuiMenu-BO2e4LK5.js → CuiMenu-BBequFn_.js} +1 -1
- package/dist/interface/assets/{CuiPluginCard-Bu_rNdQH.js → CuiPluginCard-Bnb0YKK1.js} +2 -2
- package/dist/interface/assets/CuiPluginCategoryChip-CdGrTCxH.css +1 -0
- package/dist/interface/assets/CuiPluginCategoryChip-rfdhCEi-.js +1 -0
- package/dist/interface/assets/{CuiPluginOAuthButton-Q2CBmZzv.js → CuiPluginOAuthButton-CvVnSP0h.js} +2 -2
- package/dist/interface/assets/CuiPluginTrustBadge-QHTLaN1n.css +1 -0
- package/dist/interface/assets/CuiPluginTrustBadge-YhfqGTyR.js +1 -0
- package/dist/interface/assets/{CuiQRCode-CVHjvjZP.js → CuiQRCode-Di0RLqfL.js} +1 -1
- package/dist/interface/assets/{CuiRecordingsGrid-BFHPh2dn.js → CuiRecordingsGrid-DNw21B-r.js} +1 -1
- package/dist/interface/assets/{CuiSchema-DEYDened.js → CuiSchema-Cr90oo-T.js} +1 -1
- package/dist/interface/assets/{CuiTopNavbarItem-CqM9AHmU.js → CuiTopNavbarItem-Q7M4nMw5.js} +1 -1
- package/dist/interface/assets/{CuiTopbarSlot-DbzQRnbt.js → CuiTopbarSlot-ac4GLLbf.js} +1 -1
- package/dist/interface/assets/{Faces-u9Rxm4Ti.js → Faces-CFN1J-o4.js} +1 -1
- package/dist/interface/assets/FirstSteps-uzffNroi.js +1 -0
- package/dist/interface/assets/{Instances-CWzMYIvB.js → Instances-CsAKq-HH.js} +1 -1
- package/dist/interface/assets/Logs-DKwNBSz9.js +6 -0
- package/dist/interface/assets/{Menu-uW8DUGLM.js → Menu-Db1mi08W.js} +1 -1
- package/dist/interface/assets/{OAuthDeviceFlow-CxJbM1jZ.js → OAuthDeviceFlow-B4cT3UTT.js} +1 -1
- package/dist/interface/assets/Plugin-BDwSHzi9.js +1 -0
- package/dist/interface/assets/{PluginConsole-C-ndOnmZ.js → PluginConsole-Bs9HqX_F.js} +1 -1
- package/dist/interface/assets/PluginDetail-B2odw9DA.css +1 -0
- package/dist/interface/assets/PluginDetail-C3j4zIxC.js +2 -0
- package/dist/interface/assets/{PluginSchema-BcLXAX-Q.js → PluginSchema-D3BCVJNa.js} +1 -1
- package/dist/interface/assets/PluginSearch-BLWXmn9w.js +2 -0
- package/dist/interface/assets/PluginSearch-BOWQC1zl.css +1 -0
- package/dist/interface/assets/PluginSearch-BwG61G-G.js +1 -0
- package/dist/interface/assets/Plugins-DD8FPbtv.js +1 -0
- package/dist/interface/assets/{Recordings-Daf0TCPA.js → Recordings-Bt8clj2R.js} +1 -1
- package/dist/interface/assets/{Settings-Bz7u44Pl.js → Settings-Bj_41fdw.js} +1 -1
- package/dist/interface/assets/{SettingsAccount-C_pQPGoW.js → SettingsAccount-CWVj8S8j.js} +1 -1
- package/dist/interface/assets/SettingsAccount-DnZKU_tM.js +1 -0
- package/dist/interface/assets/{SettingsAppearance-CwPSvzkX.js → SettingsAppearance-DNaNlO1q.js} +1 -1
- package/dist/interface/assets/SettingsAppearance-k5WMN34x.js +1 -0
- package/dist/interface/assets/{SettingsBackup-CCEtuJsQ.js → SettingsBackup-stUbnWJf.js} +1 -1
- package/dist/interface/assets/{SettingsNotifications-OV4-nraE.js → SettingsNotifications-Do2Cy2yf.js} +1 -1
- package/dist/interface/assets/{SettingsRecordings-uNRwROAh.js → SettingsRecordings-DWX69m9b.js} +1 -1
- package/dist/interface/assets/SettingsRemote-RqXtq3dF.js +1 -0
- package/dist/interface/assets/{SettingsSystem-DwXSeR_Z.js → SettingsSystem-BZ14jaFr.js} +2 -2
- package/dist/interface/assets/{SettingsUsers-CimG6HaL.js → SettingsUsers-Cb6zolu8.js} +1 -1
- package/dist/interface/assets/{Terminal-h5vqtN-o.js → Terminal-D2zkV1fJ.js} +1 -1
- package/dist/interface/assets/{VariableInput-tPI6hxP8.js → VariableInput-CFs-kzqd.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-K3CHs8XG.js → VariableSuggestions-PEzupqiE.js} +1 -1
- package/dist/interface/assets/VersionsHandler-nZK8BEJK.js +7 -0
- package/dist/interface/assets/{Workers-xo6c0O5M.js → Workers-CKR9yslJ.js} +1 -1
- package/dist/interface/assets/account-DqOHQKv8.js +1 -0
- package/dist/interface/assets/api-Cntxdwiu.js +2 -0
- package/dist/interface/assets/api-CrAOxyt8.css +2 -0
- package/dist/interface/assets/api-CvihG9kg.js +1 -0
- package/dist/interface/assets/{auth-Czmir2ST.js → auth-BeYrbk7B.js} +1 -1
- package/dist/interface/assets/automationBlueprint-DMjszOs4.js +1 -0
- package/dist/interface/assets/{automations-C2J4u5Uj.js → automations-C309DNNg.js} +1 -1
- package/dist/interface/assets/automations-egbiXwMx.js +1 -0
- package/dist/interface/assets/{backup-BcXXJ1y6.js → backup-82y2bZBX.js} +1 -1
- package/dist/interface/assets/bell-ring-CenQn4Yt.js +1 -0
- package/dist/interface/assets/bug-DPw8k4Lk.js +1 -0
- package/dist/interface/assets/cameras-DRRy289F.js +1 -0
- package/dist/interface/assets/{cameras.schema-CuVLJONJ.js → cameras.schema-qOAUe-E9.js} +1 -1
- package/dist/interface/assets/cctv-CBtg_v6o.js +1 -0
- package/dist/interface/assets/clock-outline-MhJC2-0d.js +1 -0
- package/dist/interface/assets/cloudHandoff-CiV159TL.js +1 -0
- package/dist/interface/assets/{deviceId-BM0pOHhg.js → deviceId-DXf6AlPA.js} +1 -1
- package/dist/interface/assets/github-DLhaVazy.js +1 -0
- package/dist/interface/assets/{hasPermission-B724PtFJ.js → hasPermission-CPgoH1JH.js} +1 -1
- package/dist/interface/assets/{instances-5MeVN25v.js → instances-Crs3gwnp.js} +1 -1
- package/dist/interface/assets/{locale-hdhgxXOX.js → locale-BCQeXbI8.js} +1 -1
- package/dist/interface/assets/main-D0vO1lt0.js +3 -0
- package/dist/interface/assets/motion-sensor-DD8SfD-m.js +1 -0
- package/dist/interface/assets/nodeDefinitions-Dvawtk76.js +1 -0
- package/dist/interface/assets/{notifications-Cq1bDRQk.js → notifications-AiaxATml.js} +1 -1
- package/dist/interface/assets/plugins-C_Mh_UEw.js +1 -0
- package/dist/interface/assets/puzzle-filled-C1z2qa5-.js +1 -0
- package/dist/interface/assets/refresh-rounded-Bqiw9DUu.js +1 -0
- package/dist/interface/assets/{round-restart-alt-bbbi50F4.js → round-restart-alt-BJAngKc7.js} +1 -1
- package/dist/interface/assets/router-C2x34pNg.js +2 -0
- package/dist/interface/assets/{routerState-ByP_jZ8E.js → routerState-dQtObsFs.js} +1 -1
- package/dist/interface/assets/{server-BW0jfXav.js → server-GaO6jF81.js} +1 -1
- package/dist/interface/assets/shares-Cw2NYamp.js +1 -0
- package/dist/interface/assets/source-branch-Cd8fHY0E.js +1 -0
- package/dist/interface/assets/{theme-B2fORWV9.js → theme-cGiCxaXN.js} +1 -1
- package/dist/interface/assets/types-6RvFwckU.js +1 -0
- package/dist/interface/assets/types-aZM1hCux.js +1 -0
- package/dist/interface/assets/types-v-mK9gdq.css +1 -0
- package/dist/interface/assets/{ui-CnzJLu9N.js → ui-DrzKhUXW.js} +1 -1
- package/dist/interface/assets/{useBiometricCredentials-BGl37Skw.js → useBiometricCredentials-CEmbsdFy.js} +1 -1
- package/dist/interface/assets/{useCameraOptions-D0rQaUuh.js → useCameraOptions-quplvW_7.js} +1 -1
- package/dist/interface/assets/{useCuiCameraDrawer-2I0LB3ff.js → useCuiCameraDrawer-DnN9lwiy.js} +1 -1
- package/dist/interface/assets/useCuiDialog-j9ybKsCK.js +2 -0
- package/dist/interface/assets/{useFileDownload-BLbAIlSX.js → useFileDownload-BcOErnCc.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-BnU6ynWU.js → useLogsSocket-gXiAENMr.js} +1 -1
- package/dist/interface/assets/{useSharedComposables-DjDddcdT.js → useSharedComposables-gpJ--qZh.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-Dy3K_ILd.js → useStreamStatus-bjptbs6u.js} +1 -1
- package/dist/interface/assets/useUserOptions-CA-AJeEh.js +1 -0
- package/dist/interface/assets/users.schema-DaXV2Jq7.js +1 -0
- package/dist/interface/assets/{vendor-cameraui-B9wC4-mi.js → vendor-cameraui-DgSMexWY.js} +1 -1
- package/dist/interface/assets/{vendor-core-CBFMCwgj.js → vendor-core-BKHiXSX7.js} +1 -1
- package/dist/interface/assets/{vendor-primevue-DYHQyonV.js → vendor-primevue-7iEzPOvf.js} +1 -1
- package/dist/interface/assets/{vendor-zod-V2qTUMVc.js → vendor-zod-DycFxUhi.js} +1 -1
- package/dist/interface/assets/{view-grid-D39XDBn9.js → view-grid-Coh7iX5e.js} +1 -1
- package/dist/interface/assets/webhook-Dgi5u5S_.js +1 -0
- package/dist/interface/index.html +49 -43
- package/dist/interface/sw.js +1 -1
- package/dist/interface/{workbox-5f44db27.js → workbox-778a14ff.js} +1 -1
- package/dist/server/package.json +2 -2
- package/dist/server/src/api/controllers/automations.controller.d.ts +3 -1
- package/dist/server/src/api/controllers/automations.controller.js +26 -1
- package/dist/server/src/api/controllers/automations.controller.js.map +1 -1
- package/dist/server/src/api/controllers/cameras.controller.d.ts +1 -5
- package/dist/server/src/api/controllers/cameras.controller.js +0 -359
- package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
- package/dist/server/src/api/controllers/plugins.controller.d.ts +4 -0
- package/dist/server/src/api/controllers/plugins.controller.js +165 -53
- package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
- package/dist/server/src/api/routes/automations.routes.js +23 -1
- package/dist/server/src/api/routes/automations.routes.js.map +1 -1
- package/dist/server/src/api/routes/cameras.routes.js +1 -12
- package/dist/server/src/api/routes/cameras.routes.js.map +1 -1
- package/dist/server/src/api/schemas/automations.schema.d.ts +8 -0
- package/dist/server/src/api/schemas/automations.schema.js +6 -0
- package/dist/server/src/api/schemas/automations.schema.js.map +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +0 -14
- package/dist/server/src/api/schemas/cameras.schema.js +0 -103
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/schemas/plugins.schema.d.ts +1 -0
- package/dist/server/src/api/schemas/plugins.schema.js +1 -0
- package/dist/server/src/api/schemas/plugins.schema.js.map +1 -1
- package/dist/server/src/api/services/backup.service.js +7 -1
- package/dist/server/src/api/services/backup.service.js.map +1 -1
- package/dist/server/src/api/services/cameras.service.d.ts +2 -3
- package/dist/server/src/api/services/cameras.service.js +0 -67
- package/dist/server/src/api/services/cameras.service.js.map +1 -1
- package/dist/server/src/api/types/index.d.ts +28 -29
- package/dist/server/src/api/types/index.js.map +1 -1
- package/dist/server/src/utils/automation-registry/index.d.ts +17 -0
- package/dist/server/src/utils/automation-registry/index.js +58 -0
- package/dist/server/src/utils/automation-registry/index.js.map +1 -0
- package/dist/server/src/utils/plugin-registry/index.d.ts +27 -0
- package/dist/server/src/utils/plugin-registry/index.js +127 -0
- package/dist/server/src/utils/plugin-registry/index.js.map +1 -0
- package/package.json +2 -2
- package/dist/interface/assets/Automation-CMMDPrn0.js +0 -2
- package/dist/interface/assets/Automations-by_LN5br.js +0 -1
- package/dist/interface/assets/Camview-B-Pqm0Fw.js +0 -1
- package/dist/interface/assets/Config-CfunWNtM.js +0 -2
- package/dist/interface/assets/ConfigTriggerGeofence-DCqAqAG3.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-DSG6iONb.js +0 -1
- package/dist/interface/assets/CuiCameraCard-kI_GNoa7.js +0 -1
- package/dist/interface/assets/FirstSteps-YNR-3tqt.js +0 -1
- package/dist/interface/assets/Logs-CpAkrsEJ.js +0 -6
- package/dist/interface/assets/Plugin-CWjFyBeK.js +0 -1
- package/dist/interface/assets/Plugins-B7ZOk3ld.js +0 -2
- package/dist/interface/assets/Plugins-s1k811lf.css +0 -1
- package/dist/interface/assets/SettingsAccount-BgpeeHsR.js +0 -1
- package/dist/interface/assets/SettingsAppearance-DSNXI3t4.js +0 -1
- package/dist/interface/assets/SettingsRemote-Dg3BfdmI.js +0 -1
- package/dist/interface/assets/VersionsHandler-BrfHmvOf.js +0 -7
- package/dist/interface/assets/api-B8LDDNgZ.js +0 -2
- package/dist/interface/assets/api-BB9AG_h5.css +0 -2
- package/dist/interface/assets/api-Cm9H8gwG.js +0 -1
- package/dist/interface/assets/automations-DVc4ovPU.js +0 -1
- package/dist/interface/assets/cameras-BEBBV7mz.js +0 -1
- package/dist/interface/assets/cloudHandoff-Cnd7f4Es.js +0 -1
- package/dist/interface/assets/github-DNzKZdHG.js +0 -1
- package/dist/interface/assets/main-D0dJIe_X.js +0 -3
- package/dist/interface/assets/nodeDefinitions-blmt-d7H.js +0 -1
- package/dist/interface/assets/plugins-BMys-WCs.js +0 -1
- package/dist/interface/assets/router-DUCivZj8.js +0 -2
- package/dist/interface/assets/shares-D0r3nTB0.js +0 -1
- package/dist/interface/assets/types-CztXMZ5X.js +0 -1
- package/dist/interface/assets/useCuiDialog-DZvxI8xi.js +0 -2
- package/dist/interface/assets/users.schema-2wYWhJ9W.js +0 -1
package/dist/interface/sw.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).href,e[l]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()}).then(()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s}));self.define=(i,a)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let n={};const u=s=>l(s,r),o={module:{uri:r},exports:n,require:u};e[r]=Promise.all(i.map(s=>o[s]||u(s))).then(s=>(a(...s),n))}}define(["./workbox-5f44db27"],function(s){"use strict";s.setCacheNameDetails({prefix:"camera-ui"}),self.addEventListener("message",s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()}),s.precacheAndRoute([{url:"robots.txt",revision:"f77c87f977e0fcce05a6df46c885a129"},{url:"og-share.png",revision:"0ca1dd15e2498de1d1423fe6134db452"},{url:"index.html",revision:"8f60a58f6acb50b54fe18bf5501ac5a1"},{url:"pwa/pwa-96x96.png",revision:"675ea863c25fa9ae31d4d76a47463c78"},{url:"pwa/pwa-88x88.png",revision:"6e8af0a85b0627a835b62067d5189cb4"},{url:"pwa/pwa-72x72.png",revision:"66698bb499639052ad337f7e9a7d7ea8"},{url:"pwa/pwa-64x64.png",revision:"f57763be3212fd4154c502d607e7ed38"},{url:"pwa/pwa-50x50.png",revision:"a20fc2e6f26aa548f9cae07911087f6c"},{url:"pwa/pwa-48x48.png",revision:"97d7369c892f1e0914c2617ff26feb3c"},{url:"pwa/pwa-36x36.png",revision:"4d08bb198d4e54e4d12a0810fc59f059"},{url:"pwa/pwa-300x300.png",revision:"7f79d74e34aedef57c98a1c9c156ba6b"},{url:"pwa/pwa-24x24.png",revision:"bdb25f68ca300283b37041e47d3e6ba8"},{url:"pwa/pwa-192x192.png",revision:"3d58c2dd940c535cc166cc8d0844429d"},{url:"pwa/pwa-180x180.png",revision:"225b42752632e2866c4f8fe4ab2f62ee"},{url:"pwa/pwa-167x167.png",revision:"de6a5ca921b45fb3bd30d27c707981c6"},{url:"pwa/pwa-152x152.png",revision:"4cf41c7b603d382e83e098affb7cb9da"},{url:"pwa/pwa-144x144.png",revision:"4fdf5c8fb085f764ed7dd5a26698bff5"},{url:"pwa/pwa-120x120.png",revision:"3f5ec31f6bd07910482227b259344110"},{url:"pwa/pwa-1024x1024.png",revision:"1ed367ae76416e79fd0bdd6ee70666bc"},{url:"pwa/maskable-icon-620x300.png",revision:"b4954ceadf0d6f2095c45f8cc8240337"},{url:"pwa/maskable-icon-512x512.png",revision:"e716feaa60f08d95d0909e1c85bf1f98"},{url:"pwa/maskable-icon-1240x600.png",revision:"f3188c7d8e5038f28068c7a3632dbe4b"},{url:"pwa/logo.svg",revision:"1aa262f4a37293a91083eea10794d2ca"},{url:"pwa/favicon-64.ico",revision:"6a697d7662ab5ee246918cdc7c412343"},{url:"pwa/favicon-48.ico",revision:"d0a27003af457cb85651c84c60c87ef0"},{url:"pwa/favicon-32.ico",revision:"6e711cbf0b53afe4a7d0057780fa42b9"},{url:"pwa/favicon-16.ico",revision:"163ae861c5ab9f68ed21324c19dfe35d"},{url:"pwa/apple-touch-icon-180x180.png",revision:"91aec7b3a553812fbd3cd72adb17fcc4"},{url:"pwa/apple-splash-portrait-light-828x1792.png",revision:"8deb1063185df6a2d3089a9fa33f6ad1"},{url:"pwa/apple-splash-portrait-light-750x1334.png",revision:"191c785b1e7b47ac1b1d6bc2a84bde85"},{url:"pwa/apple-splash-portrait-light-640x1136.png",revision:"588e312fd0851d5767972a1efc33e6a3"},{url:"pwa/apple-splash-portrait-light-2048x2732.png",revision:"cf9c75c2e56f8d3af7d914a00ce30286"},{url:"pwa/apple-splash-portrait-light-1668x2388.png",revision:"5db134deca3d2e8a1ae2d8e67c77c420"},{url:"pwa/apple-splash-portrait-light-1668x2224.png",revision:"a1b5adab2a71d0fa646e7b0e9a4fcb71"},{url:"pwa/apple-splash-portrait-light-1620x2160.png",revision:"41bdc2c492d374bf8c6b6875e2beb9f1"},{url:"pwa/apple-splash-portrait-light-1536x2048.png",revision:"42716fc23cfa58d3f154fea1875eb3f5"},{url:"pwa/apple-splash-portrait-light-1290x2796.png",revision:"d57711837cf7e3801a9e8126b1695aaa"},{url:"pwa/apple-splash-portrait-light-1284x2778.png",revision:"461b13cf0d9c293ca220700bb4148afa"},{url:"pwa/apple-splash-portrait-light-1242x2688.png",revision:"2b320f74bc7da7bf0d1be699183416c3"},{url:"pwa/apple-splash-portrait-light-1242x2208.png",revision:"8fd1367cac03e5798973cfa4e0dec5b0"},{url:"pwa/apple-splash-portrait-light-1179x2556.png",revision:"8d1fc622bdb48dda2461e4f47a49249a"},{url:"pwa/apple-splash-portrait-light-1170x2532.png",revision:"58d656b4de9b32a09fc2ea1028116dfb"},{url:"pwa/apple-splash-portrait-light-1125x2436.png",revision:"1a02e33add13bccc9f407efcfd2cf890"},{url:"pwa/apple-splash-portrait-dark-828x1792.png",revision:"543d10f74f6f098e49ba989899182dee"},{url:"pwa/apple-splash-portrait-dark-750x1334.png",revision:"54f99ba556f7cc149eb03fe6207d411d"},{url:"pwa/apple-splash-portrait-dark-640x1136.png",revision:"b901a6f04ef976aa81573ec0f3c8f32b"},{url:"pwa/apple-splash-portrait-dark-2048x2732.png",revision:"60acb5fbde5bb76a368238c5e079c717"},{url:"pwa/apple-splash-portrait-dark-1668x2388.png",revision:"fb7fb372580598abf8a1d8eb7305462a"},{url:"pwa/apple-splash-portrait-dark-1668x2224.png",revision:"1e7b39c9f5fdca7ddf23c1248f7628bf"},{url:"pwa/apple-splash-portrait-dark-1620x2160.png",revision:"1a9f84fba88d4cd5924cf5a39d541b46"},{url:"pwa/apple-splash-portrait-dark-1536x2048.png",revision:"0b26c0a578f6b13b3df06abecc81fb82"},{url:"pwa/apple-splash-portrait-dark-1290x2796.png",revision:"e7f2a468891736413b1e0622a510fd5a"},{url:"pwa/apple-splash-portrait-dark-1284x2778.png",revision:"d7230994de3c4c6016ac252431031ea7"},{url:"pwa/apple-splash-portrait-dark-1242x2688.png",revision:"c56eb0a4a8b4c7bb850cbfc35dd62bba"},{url:"pwa/apple-splash-portrait-dark-1242x2208.png",revision:"1b7f03eaab3cf8af8aa6057fd97278d8"},{url:"pwa/apple-splash-portrait-dark-1179x2556.png",revision:"8eac224083023d0d21374d9f9087bab5"},{url:"pwa/apple-splash-portrait-dark-1170x2532.png",revision:"476ac5131289040d8d88803c18dc20bb"},{url:"pwa/apple-splash-portrait-dark-1125x2436.png",revision:"53ddd8644a89bfc79c8d1bfbaa51527b"},{url:"pwa/apple-splash-landscape-light-2796x1290.png",revision:"a46e458259177e134ad383d133b29774"},{url:"pwa/apple-splash-landscape-light-2778x1284.png",revision:"95d2479cf715c2ea0104fd5f55fa62b3"},{url:"pwa/apple-splash-landscape-light-2732x2048.png",revision:"0e5ec355113efe5ce253583209a64bb8"},{url:"pwa/apple-splash-landscape-light-2688x1242.png",revision:"3757f5338eb50c9f6fb8ad0d72597465"},{url:"pwa/apple-splash-landscape-light-2556x1179.png",revision:"3f0efc9e8de850ae5d3a72a158d39055"},{url:"pwa/apple-splash-landscape-light-2532x1170.png",revision:"b9e11e5a3435cf159f240b5f6da5dc76"},{url:"pwa/apple-splash-landscape-light-2436x1125.png",revision:"459b9c158b3a52222787d00a276baa21"},{url:"pwa/apple-splash-landscape-light-2388x1668.png",revision:"3733608412963cb747e32b2790013523"},{url:"pwa/apple-splash-landscape-light-2224x1668.png",revision:"ecf0efece27d70815f7401f7f3e40a24"},{url:"pwa/apple-splash-landscape-light-2208x1242.png",revision:"653857094b0c183908571fea1aed7b2f"},{url:"pwa/apple-splash-landscape-light-2160x1620.png",revision:"31ac689a78386cf844e33f10fd5d2029"},{url:"pwa/apple-splash-landscape-light-2048x1536.png",revision:"1b27b72b070b260eceeaab092a82663d"},{url:"pwa/apple-splash-landscape-light-1792x828.png",revision:"c6e29d789061fc48eb9f3a54cb1950be"},{url:"pwa/apple-splash-landscape-light-1334x750.png",revision:"f513cdc13ffaf0c2a82bb207e2a9a397"},{url:"pwa/apple-splash-landscape-light-1136x640.png",revision:"c9b4c38f0a267051c0c83cc92c0f5767"},{url:"pwa/apple-splash-landscape-dark-2796x1290.png",revision:"22b9597a28c081730e3430e467b4e36d"},{url:"pwa/apple-splash-landscape-dark-2778x1284.png",revision:"19d1e7a02d9edd3354c61b7c54ea9c1e"},{url:"pwa/apple-splash-landscape-dark-2732x2048.png",revision:"dc9fbb966dfc3350466279749c2946d7"},{url:"pwa/apple-splash-landscape-dark-2688x1242.png",revision:"dcd13ed9567fa4d98867f5c97cc89695"},{url:"pwa/apple-splash-landscape-dark-2556x1179.png",revision:"02e2914d36b2aaf6da02799414a23738"},{url:"pwa/apple-splash-landscape-dark-2532x1170.png",revision:"b89d280148f1bcb816c6364c37daefb6"},{url:"pwa/apple-splash-landscape-dark-2436x1125.png",revision:"85613cc4f5040791ef13e4b2a1ecc840"},{url:"pwa/apple-splash-landscape-dark-2388x1668.png",revision:"e17cbe3b198574eb6fc822c17e22d935"},{url:"pwa/apple-splash-landscape-dark-2224x1668.png",revision:"1144751415d9c1f3d1bc34407b9a9539"},{url:"pwa/apple-splash-landscape-dark-2208x1242.png",revision:"2989b9f038112f8eed3694fa53b86e6a"},{url:"pwa/apple-splash-landscape-dark-2160x1620.png",revision:"ee54046f738fe4346d7febbfaa711244"},{url:"pwa/apple-splash-landscape-dark-2048x1536.png",revision:"70f0181b7e075e3b64e261c4d4e3eada"},{url:"pwa/apple-splash-landscape-dark-1792x828.png",revision:"281d292ea4448638bb250a3fca5f5f44"},{url:"pwa/apple-splash-landscape-dark-1334x750.png",revision:"d82dd37eb2bdf815c1e2ab367134cbbf"},{url:"pwa/apple-splash-landscape-dark-1136x640.png",revision:"c6b193de9bd234c81fdea1d28fe7b88c"},{url:"fonts/InterVariable.woff2",revision:"2bf3d951bf9d6109437ea0874bbf12fb"},{url:"assets/zoom-in-D2zo_jfL.js",revision:null},{url:"assets/worker-yaml-crtWQpDN.js",revision:null},{url:"assets/worker-base-ybazWkNy.js",revision:null},{url:"assets/workbox-window.prod.es5-CtK9nkTO.js",revision:null},{url:"assets/web-xDCdGu4q.js",revision:null},{url:"assets/web-iAcZCcyL.js",revision:null},{url:"assets/web-ERIfo5an.js",revision:null},{url:"assets/web-DohTQteu.js",revision:null},{url:"assets/web-Do1A1_Uv.js",revision:null},{url:"assets/web-DiteWocu.js",revision:null},{url:"assets/web-D4GUyvng.js",revision:null},{url:"assets/web-D2BwFPf_.js",revision:null},{url:"assets/web-CbVsSB6C.js",revision:null},{url:"assets/web-BpltzPRC.js",revision:null},{url:"assets/web-BjKL51lK-D9ETiyug.js",revision:null},{url:"assets/web-Bba8RmHI.js",revision:null},{url:"assets/web-B9fYUOqN.js",revision:null},{url:"assets/web-54_Wj9Me.js",revision:null},{url:"assets/view-grid-D39XDBn9.js",revision:null},{url:"assets/view-grid-D04t817d.css",revision:null},{url:"assets/vendor-zod-V2qTUMVc.js",revision:null},{url:"assets/vendor-xterm-BrP-ENHg.css",revision:null},{url:"assets/vendor-xterm-BRN-hOYD.js",revision:null},{url:"assets/vendor-vueflow-DSLHUKHF.js",revision:null},{url:"assets/vendor-primevue-DYHQyonV.js",revision:null},{url:"assets/vendor-markdown-UV_ycMZu.js",revision:null},{url:"assets/vendor-markdown-DtOhvyRx.css",revision:null},{url:"assets/vendor-leaflet-vh-t_kPv.css",revision:null},{url:"assets/vendor-leaflet-_2Z0GiOD.js",revision:null},{url:"assets/vendor-gridstack-Rg2RhwAc.css",revision:null},{url:"assets/vendor-gridstack-DD5uGA3X.js",revision:null},{url:"assets/vendor-draggabilly-Dl6FWJwx.js",revision:null},{url:"assets/vendor-dnd-_zxmhxjM.js",revision:null},{url:"assets/vendor-core-CBFMCwgj.js",revision:null},{url:"assets/vendor-chart-CBBmwsyM.js",revision:null},{url:"assets/vendor-capacitor-DgfjcZj-.js",revision:null},{url:"assets/vendor-cameraui-B9wC4-mi.js",revision:null},{url:"assets/vendor-ace-DdrK3_G3.js",revision:null},{url:"assets/vendor-DoIl6acN.js",revision:null},{url:"assets/users.schema-2wYWhJ9W.js",revision:null},{url:"assets/useStreamStatus-Dy3K_ILd.js",revision:null},{url:"assets/useSharedComposables-DjDddcdT.js",revision:null},{url:"assets/useLogsSocket-BnU6ynWU.js",revision:null},{url:"assets/useLogsSocket-4F2-d9fa.css",revision:null},{url:"assets/useFileDownload-BLbAIlSX.js",revision:null},{url:"assets/useElectron-mh8HQUAI.js",revision:null},{url:"assets/useCuiDialog-DZvxI8xi.js",revision:null},{url:"assets/useCuiCameraDrawer-2I0LB3ff.js",revision:null},{url:"assets/useCameraOptions-D0rQaUuh.js",revision:null},{url:"assets/useBiometricCredentials-BGl37Skw.js",revision:null},{url:"assets/upload-AGww_lJf.js",revision:null},{url:"assets/ui-CnzJLu9N.js",revision:null},{url:"assets/types-CztXMZ5X.js",revision:null},{url:"assets/types-ByBSoibP.js",revision:null},{url:"assets/types-BxFyoO54.js",revision:null},{url:"assets/trash2-CaXm_MmJ.js",revision:null},{url:"assets/trash-fill-Da1v18iA.js",revision:null},{url:"assets/trash-2-CkdsE6jp.js",revision:null},{url:"assets/theme-B2fORWV9.js",revision:null},{url:"assets/terminal-DbYAPed-.js",revision:null},{url:"assets/shield-check-ChlSHOnR.js",revision:null},{url:"assets/shares-D0r3nTB0.js",revision:null},{url:"assets/settings-uhDSoUhb.js",revision:null},{url:"assets/server-BW0jfXav.js",revision:null},{url:"assets/search-D-QOrChC.js",revision:null},{url:"assets/routerState-ByP_jZ8E.js",revision:null},{url:"assets/router-DUCivZj8.js",revision:null},{url:"assets/router-BUTKN1yM.css",revision:null},{url:"assets/round-restart-alt-fCNtJi_k.css",revision:null},{url:"assets/round-restart-alt-bbbi50F4.js",revision:null},{url:"assets/round-alt-arrow-left-bold-C-0SLIa9.js",revision:null},{url:"assets/rolldown-runtime-DAXXjFlN.js",revision:null},{url:"assets/ring-resize-DQajal-Z.js",revision:null},{url:"assets/power-BcSFRPtI.js",revision:null},{url:"assets/plus-Dqgz6pez.js",revision:null},{url:"assets/plus-BMt5ORD8.js",revision:null},{url:"assets/plugins-BMys-WCs.js",revision:null},{url:"assets/plugin-C1dsgk0N.js",revision:null},{url:"assets/play-solid-BOoBnMaN.js",revision:null},{url:"assets/notifications-Cq1bDRQk.js",revision:null},{url:"assets/nodeDefinitions-blmt-d7H.js",revision:null},{url:"assets/native-j1dyx58L.js",revision:null},{url:"assets/native-fQjIFjCA.js",revision:null},{url:"assets/mode-yaml-CIYL8U3d.js",revision:null},{url:"assets/microphone-CAVr4YFv.js",revision:null},{url:"assets/main-DudyqPaR.css",revision:null},{url:"assets/main-D0dJIe_X.js",revision:null},{url:"assets/logo-DmEiRk0z.png",revision:null},{url:"assets/logo-256-BCQk9H1-.png",revision:null},{url:"assets/locale-hdhgxXOX.js",revision:null},{url:"assets/lightbulb-outline-B0CFho4y.js",revision:null},{url:"assets/instances-5MeVN25v.js",revision:null},{url:"assets/information-outline-ChTb2u7w.js",revision:null},{url:"assets/home-Dey3bw1P.js",revision:null},{url:"assets/hasPermission-B724PtFJ.js",revision:null},{url:"assets/grid-fill-DBU_n60V.js",revision:null},{url:"assets/github-DNzKZdHG.js",revision:null},{url:"assets/face-recognition-D5evlO1d.js",revision:null},{url:"assets/eventIcons-CtTopM6B.js",revision:null},{url:"assets/eventIcons-2hVCNchU.css",revision:null},{url:"assets/esm-yIpeulKl.js",revision:null},{url:"assets/esm-u_3xdCfr.js",revision:null},{url:"assets/esm-edrype40.js",revision:null},{url:"assets/esm-M_oLCAXC.js",revision:null},{url:"assets/esm-Do9bGF06.js",revision:null},{url:"assets/esm-Dc3lKVtD.js",revision:null},{url:"assets/esm-CjzerNPk.js",revision:null},{url:"assets/esm-CWeEZr0g.js",revision:null},{url:"assets/esm-CIAIVgGo.js",revision:null},{url:"assets/esm-CA4iVOgN2.js",revision:null},{url:"assets/esm-C51W8e2w.js",revision:null},{url:"assets/esm-BUgHC3bC.js",revision:null},{url:"assets/esm-B2shpuvL.js",revision:null},{url:"assets/esm-B-_4iFTo.js",revision:null},{url:"assets/error-256-DLKVOU2S.png",revision:null},{url:"assets/download-CY-SlBan.js",revision:null},{url:"assets/dist-CQkfz2Dn.js",revision:null},{url:"assets/deviceId-BM0pOHhg.js",revision:null},{url:"assets/delete-5a2q7_46.js",revision:null},{url:"assets/copy-DcVDLQlM.js",revision:null},{url:"assets/copy-16-filled-CZzRMAt_.js",revision:null},{url:"assets/cog-Ce2a8uiA.js",revision:null},{url:"assets/cloudHandoff-Cnd7f4Es.js",revision:null},{url:"assets/cloud-outline-CzQmkpCY.js",revision:null},{url:"assets/cloud-outline-BPAJ6_kc.js",revision:null},{url:"assets/cloud-check-BbqgBLhK.js",revision:null},{url:"assets/close-circle-ClG7lNzZ.js",revision:null},{url:"assets/close-DuwOOM-P.js",revision:null},{url:"assets/circular-connection-BTKd-doI.js",revision:null},{url:"assets/chevron-right-CXZ4SFSg.js",revision:null},{url:"assets/chevron-down-KZwkCQ3v.js",revision:null},{url:"assets/check-BMoCATAa.js",revision:null},{url:"assets/cctv-BsGdaLfw.js",revision:null},{url:"assets/cameras.schema-CuVLJONJ.js",revision:null},{url:"assets/cameras-BEBBV7mz.js",revision:null},{url:"assets/camera-preview-C7GT5VHo.png",revision:null},{url:"assets/bell-outline-U3Gb4nI1.js",revision:null},{url:"assets/bell-ChE83DC8.js",revision:null},{url:"assets/backup-BcXXJ1y6.js",revision:null},{url:"assets/back-filled-DqCMpeEk.js",revision:null},{url:"assets/automations-DVc4ovPU.js",revision:null},{url:"assets/automations-C2J4u5Uj.js",revision:null},{url:"assets/automation-IpK710bv.js",revision:null},{url:"assets/auth-Czmir2ST.js",revision:null},{url:"assets/arrow-right-outline-CliUt84m.js",revision:null},{url:"assets/arrow-left-9W2BpRxA.js",revision:null},{url:"assets/api-Cm9H8gwG.js",revision:null},{url:"assets/api-BB9AG_h5.css",revision:null},{url:"assets/api-B8LDDNgZ.js",revision:null},{url:"assets/alert-outline-T8FhpQ9w.js",revision:null},{url:"assets/ace.config-D884GuRj.js",revision:null},{url:"assets/ace-DQ1lNH50.js",revision:null},{url:"assets/_plugin-vue_export-helper-BDNMzG2s.js",revision:null},{url:"assets/Workers-xo6c0O5M.js",revision:null},{url:"assets/VersionsHandler-BrfHmvOf.js",revision:null},{url:"assets/VariableSuggestions-K3CHs8XG.js",revision:null},{url:"assets/VariableInput-tPI6hxP8.js",revision:null},{url:"assets/Terminal-h5vqtN-o.js",revision:null},{url:"assets/Terminal-CrOfQJ-O.css",revision:null},{url:"assets/SettingsUsers-CimG6HaL.js",revision:null},{url:"assets/SettingsSystem-DwXSeR_Z.js",revision:null},{url:"assets/SettingsRemote-Dg3BfdmI.js",revision:null},{url:"assets/SettingsRemote-D9COJF4m.css",revision:null},{url:"assets/SettingsRecordings-uNRwROAh.js",revision:null},{url:"assets/SettingsNotifications-OV4-nraE.js",revision:null},{url:"assets/SettingsBackup-CX0rT0QJ.css",revision:null},{url:"assets/SettingsBackup-CCEtuJsQ.js",revision:null},{url:"assets/SettingsAppearance-DSNXI3t4.js",revision:null},{url:"assets/SettingsAppearance-CwPSvzkX.js",revision:null},{url:"assets/SettingsAccount-Y7hpH8Y3.css",revision:null},{url:"assets/SettingsAccount-C_pQPGoW.js",revision:null},{url:"assets/SettingsAccount-BgpeeHsR.js",revision:null},{url:"assets/Settings-bwLTNAxX.css",revision:null},{url:"assets/Settings-Bz7u44Pl.js",revision:null},{url:"assets/Recordings-Daf0TCPA.js",revision:null},{url:"assets/Recordings-Bt_GlPOK.css",revision:null},{url:"assets/Plugins-s1k811lf.css",revision:null},{url:"assets/Plugins-B7ZOk3ld.js",revision:null},{url:"assets/PluginSchema-BcLXAX-Q.js",revision:null},{url:"assets/PluginConsole-C-ndOnmZ.js",revision:null},{url:"assets/Plugin-CWjFyBeK.js",revision:null},{url:"assets/Plugin-CHdZvbiP.css",revision:null},{url:"assets/OAuthDeviceFlow-CxJbM1jZ.js",revision:null},{url:"assets/Menu-uW8DUGLM.js",revision:null},{url:"assets/Logs-CpAkrsEJ.js",revision:null},{url:"assets/Instances-CWzMYIvB.js",revision:null},{url:"assets/FirstSteps-YNR-3tqt.js",revision:null},{url:"assets/Faces-u9Rxm4Ti.js",revision:null},{url:"assets/CuiTopbarSlot-DbzQRnbt.js",revision:null},{url:"assets/CuiTopNavbarItem-CqM9AHmU.js",revision:null},{url:"assets/CuiTopNavbarItem-CJqOqVMt.css",revision:null},{url:"assets/CuiSchema-DEYDened.js",revision:null},{url:"assets/CuiSchema--yMBD996.css",revision:null},{url:"assets/CuiRecordingsGrid-lcLty5PV.css",revision:null},{url:"assets/CuiRecordingsGrid-BFHPh2dn.js",revision:null},{url:"assets/CuiQRCode-CVHjvjZP.js",revision:null},{url:"assets/CuiQRCode-BtErH65J.css",revision:null},{url:"assets/CuiPluginOAuthButton-Q2CBmZzv.js",revision:null},{url:"assets/CuiPluginCard-LxNHYHxa.css",revision:null},{url:"assets/CuiPluginCard-Bu_rNdQH.js",revision:null},{url:"assets/CuiMenu-BWUfWLQP.css",revision:null},{url:"assets/CuiMenu-BO2e4LK5.js",revision:null},{url:"assets/CuiMarkdownContent-YieurDkL.js",revision:null},{url:"assets/CuiImage-Bxf7z2N4.css",revision:null},{url:"assets/CuiImage-B3eMhhIS.js",revision:null},{url:"assets/CuiFloatingButton-BLCO4wJw.js",revision:null},{url:"assets/CuiDataTable-DWuXg9Zg.css",revision:null},{url:"assets/CuiDataTable-D9GqApg1.js",revision:null},{url:"assets/CuiCameraTable-B5wQAGfM.js",revision:null},{url:"assets/CuiCameraSnapshot-C33nUgVt.js",revision:null},{url:"assets/CuiCameraShares-BvwB4H_0.js",revision:null},{url:"assets/CuiCameraRecordings-bqChEXwx.js",revision:null},{url:"assets/CuiCameraRecordings-BHj7CUE7.css",revision:null},{url:"assets/CuiCameraPipCard-DehPfhfs.js",revision:null},{url:"assets/CuiCameraPipCard-D3o29_wc.css",revision:null},{url:"assets/CuiCameraCard-kI_GNoa7.js",revision:null},{url:"assets/CuiCameraCard-BxGmxXxZ.css",revision:null},{url:"assets/CuiBottomSheet-zPb4AI5w.js",revision:null},{url:"assets/CuiBottomSheet-DsjZEdig.css",revision:null},{url:"assets/CuiBottomSheet-DSG6iONb.js",revision:null},{url:"assets/CuiBBoxPlayground-EFkdOBvq.css",revision:null},{url:"assets/CuiBBoxPlayground-DOcoHCTQ.js",revision:null},{url:"assets/CuiAvatar-DUucUxIP.js",revision:null},{url:"assets/CuiAvatar-BtMXnhxd.css",revision:null},{url:"assets/CuiActionButton-CNTiGrTt.js",revision:null},{url:"assets/Console-B4SQZA5X.js",revision:null},{url:"assets/ConfigTriggerWebhook-CrtHc6Q3.js",revision:null},{url:"assets/ConfigTriggerSystem-CO06Crjg.js",revision:null},{url:"assets/ConfigTriggerSensor-BbKksZMP.js",revision:null},{url:"assets/ConfigTriggerSchedule-vC9yyRct.js",revision:null},{url:"assets/ConfigTriggerManual-DDmBGqnC.js",revision:null},{url:"assets/ConfigTriggerGeofence-DCqAqAG3.js",revision:null},{url:"assets/ConfigTriggerDetection-BrtBsd1t.js",revision:null},{url:"assets/ConfigConditionTime-bHKJ8kBR.js",revision:null},{url:"assets/ConfigConditionSwitch-BPdEa--b.js",revision:null},{url:"assets/ConfigConditionSensorState-CIbkk6LA.js",revision:null},{url:"assets/ConfigConditionIfElse-pp0wRFeJ.js",revision:null},{url:"assets/ConfigActionVariable-D-1zVFz-.js",revision:null},{url:"assets/ConfigActionSnapshot-k8RM-NMf.js",revision:null},{url:"assets/ConfigActionSensor-C6DOrCYd.js",revision:null},{url:"assets/ConfigActionPlugin-C1OSUQ3_.js",revision:null},{url:"assets/ConfigActionOutput-BB-jkCdD.js",revision:null},{url:"assets/ConfigActionNotification-FzGgJM9i.js",revision:null},{url:"assets/ConfigActionImageInput-D8ipnlfe.js",revision:null},{url:"assets/ConfigActionHttp-C9nEQ-7w.js",revision:null},{url:"assets/ConfigActionDelay-CYz0z9Od.js",revision:null},{url:"assets/ConfigActionCameraControl-BRgTU6MP.js",revision:null},{url:"assets/Config-JgftUZFe.css",revision:null},{url:"assets/Config-CfunWNtM.js",revision:null},{url:"assets/Camview-Gxca3bvT.css",revision:null},{url:"assets/Camview-B-Pqm0Fw.js",revision:null},{url:"assets/Cameras-CVID1akl.js",revision:null},{url:"assets/Cameras-54LaZPN3.css",revision:null},{url:"assets/CameraConsole-DGbeilsL.js",revision:null},{url:"assets/Camera-BlN_KppY.js",revision:null},{url:"assets/Camera-BG8K5bH_.css",revision:null},{url:"assets/Automations-by_LN5br.js",revision:null},{url:"assets/Automation-Csu8t0D7.css",revision:null},{url:"assets/Automation-CMMDPrn0.js",revision:null},{url:"assets/Adminpanel-Cciuxh1q.js",revision:null},{url:"assets/About-TDIJXs5o.js",revision:null},{url:"assets/404-CZDMFg2Z.js",revision:null},{url:"pwa/maskable-icon-1240x600.png",revision:"f3188c7d8e5038f28068c7a3632dbe4b"},{url:"pwa/maskable-icon-512x512.png",revision:"e716feaa60f08d95d0909e1c85bf1f98"},{url:"pwa/maskable-icon-620x300.png",revision:"b4954ceadf0d6f2095c45f8cc8240337"},{url:"pwa/pwa-1024x1024.png",revision:"1ed367ae76416e79fd0bdd6ee70666bc"},{url:"pwa/pwa-120x120.png",revision:"3f5ec31f6bd07910482227b259344110"},{url:"pwa/pwa-144x144.png",revision:"4fdf5c8fb085f764ed7dd5a26698bff5"},{url:"pwa/pwa-152x152.png",revision:"4cf41c7b603d382e83e098affb7cb9da"},{url:"pwa/pwa-167x167.png",revision:"de6a5ca921b45fb3bd30d27c707981c6"},{url:"pwa/pwa-180x180.png",revision:"225b42752632e2866c4f8fe4ab2f62ee"},{url:"pwa/pwa-192x192.png",revision:"3d58c2dd940c535cc166cc8d0844429d"},{url:"pwa/pwa-24x24.png",revision:"bdb25f68ca300283b37041e47d3e6ba8"},{url:"pwa/pwa-300x300.png",revision:"7f79d74e34aedef57c98a1c9c156ba6b"},{url:"pwa/pwa-36x36.png",revision:"4d08bb198d4e54e4d12a0810fc59f059"},{url:"pwa/pwa-48x48.png",revision:"97d7369c892f1e0914c2617ff26feb3c"},{url:"pwa/pwa-50x50.png",revision:"a20fc2e6f26aa548f9cae07911087f6c"},{url:"pwa/pwa-64x64.png",revision:"f57763be3212fd4154c502d607e7ed38"},{url:"pwa/pwa-72x72.png",revision:"66698bb499639052ad337f7e9a7d7ea8"},{url:"pwa/pwa-88x88.png",revision:"6e8af0a85b0627a835b62067d5189cb4"},{url:"pwa/pwa-96x96.png",revision:"675ea863c25fa9ae31d4d76a47463c78"},{url:"manifest.webmanifest",revision:"ed2b67044c80f7c0362cd73cde2f96c5"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"),{allowlist:[/^(?!\/api)/],denylist:[/[?&]session=/]}))});
|
|
1
|
+
if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).href,e[l]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()}).then(()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s}));self.define=(i,a)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let n={};const u=s=>l(s,r),o={module:{uri:r},exports:n,require:u};e[r]=Promise.all(i.map(s=>o[s]||u(s))).then(s=>(a(...s),n))}}define(["./workbox-778a14ff"],function(s){"use strict";s.setCacheNameDetails({prefix:"camera-ui"}),self.addEventListener("message",s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()}),s.clientsClaim(),s.precacheAndRoute([{url:"robots.txt",revision:"f77c87f977e0fcce05a6df46c885a129"},{url:"og-share.png",revision:"0ca1dd15e2498de1d1423fe6134db452"},{url:"index.html",revision:"e01a28d7d96dfa3ee73fccb2be3b4da0"},{url:"pwa/pwa-96x96.png",revision:"675ea863c25fa9ae31d4d76a47463c78"},{url:"pwa/pwa-88x88.png",revision:"6e8af0a85b0627a835b62067d5189cb4"},{url:"pwa/pwa-72x72.png",revision:"66698bb499639052ad337f7e9a7d7ea8"},{url:"pwa/pwa-64x64.png",revision:"f57763be3212fd4154c502d607e7ed38"},{url:"pwa/pwa-50x50.png",revision:"a20fc2e6f26aa548f9cae07911087f6c"},{url:"pwa/pwa-48x48.png",revision:"97d7369c892f1e0914c2617ff26feb3c"},{url:"pwa/pwa-36x36.png",revision:"4d08bb198d4e54e4d12a0810fc59f059"},{url:"pwa/pwa-300x300.png",revision:"7f79d74e34aedef57c98a1c9c156ba6b"},{url:"pwa/pwa-24x24.png",revision:"bdb25f68ca300283b37041e47d3e6ba8"},{url:"pwa/pwa-192x192.png",revision:"3d58c2dd940c535cc166cc8d0844429d"},{url:"pwa/pwa-180x180.png",revision:"225b42752632e2866c4f8fe4ab2f62ee"},{url:"pwa/pwa-167x167.png",revision:"de6a5ca921b45fb3bd30d27c707981c6"},{url:"pwa/pwa-152x152.png",revision:"4cf41c7b603d382e83e098affb7cb9da"},{url:"pwa/pwa-144x144.png",revision:"4fdf5c8fb085f764ed7dd5a26698bff5"},{url:"pwa/pwa-120x120.png",revision:"3f5ec31f6bd07910482227b259344110"},{url:"pwa/pwa-1024x1024.png",revision:"1ed367ae76416e79fd0bdd6ee70666bc"},{url:"pwa/maskable-icon-620x300.png",revision:"b4954ceadf0d6f2095c45f8cc8240337"},{url:"pwa/maskable-icon-512x512.png",revision:"e716feaa60f08d95d0909e1c85bf1f98"},{url:"pwa/maskable-icon-1240x600.png",revision:"f3188c7d8e5038f28068c7a3632dbe4b"},{url:"pwa/logo.svg",revision:"1aa262f4a37293a91083eea10794d2ca"},{url:"pwa/favicon-64.ico",revision:"6a697d7662ab5ee246918cdc7c412343"},{url:"pwa/favicon-48.ico",revision:"d0a27003af457cb85651c84c60c87ef0"},{url:"pwa/favicon-32.ico",revision:"6e711cbf0b53afe4a7d0057780fa42b9"},{url:"pwa/favicon-16.ico",revision:"163ae861c5ab9f68ed21324c19dfe35d"},{url:"pwa/apple-touch-icon-180x180.png",revision:"91aec7b3a553812fbd3cd72adb17fcc4"},{url:"pwa/apple-splash-portrait-light-828x1792.png",revision:"8deb1063185df6a2d3089a9fa33f6ad1"},{url:"pwa/apple-splash-portrait-light-750x1334.png",revision:"191c785b1e7b47ac1b1d6bc2a84bde85"},{url:"pwa/apple-splash-portrait-light-640x1136.png",revision:"588e312fd0851d5767972a1efc33e6a3"},{url:"pwa/apple-splash-portrait-light-2048x2732.png",revision:"cf9c75c2e56f8d3af7d914a00ce30286"},{url:"pwa/apple-splash-portrait-light-1668x2388.png",revision:"5db134deca3d2e8a1ae2d8e67c77c420"},{url:"pwa/apple-splash-portrait-light-1668x2224.png",revision:"a1b5adab2a71d0fa646e7b0e9a4fcb71"},{url:"pwa/apple-splash-portrait-light-1620x2160.png",revision:"41bdc2c492d374bf8c6b6875e2beb9f1"},{url:"pwa/apple-splash-portrait-light-1536x2048.png",revision:"42716fc23cfa58d3f154fea1875eb3f5"},{url:"pwa/apple-splash-portrait-light-1290x2796.png",revision:"d57711837cf7e3801a9e8126b1695aaa"},{url:"pwa/apple-splash-portrait-light-1284x2778.png",revision:"461b13cf0d9c293ca220700bb4148afa"},{url:"pwa/apple-splash-portrait-light-1242x2688.png",revision:"2b320f74bc7da7bf0d1be699183416c3"},{url:"pwa/apple-splash-portrait-light-1242x2208.png",revision:"8fd1367cac03e5798973cfa4e0dec5b0"},{url:"pwa/apple-splash-portrait-light-1179x2556.png",revision:"8d1fc622bdb48dda2461e4f47a49249a"},{url:"pwa/apple-splash-portrait-light-1170x2532.png",revision:"58d656b4de9b32a09fc2ea1028116dfb"},{url:"pwa/apple-splash-portrait-light-1125x2436.png",revision:"1a02e33add13bccc9f407efcfd2cf890"},{url:"pwa/apple-splash-portrait-dark-828x1792.png",revision:"543d10f74f6f098e49ba989899182dee"},{url:"pwa/apple-splash-portrait-dark-750x1334.png",revision:"54f99ba556f7cc149eb03fe6207d411d"},{url:"pwa/apple-splash-portrait-dark-640x1136.png",revision:"b901a6f04ef976aa81573ec0f3c8f32b"},{url:"pwa/apple-splash-portrait-dark-2048x2732.png",revision:"60acb5fbde5bb76a368238c5e079c717"},{url:"pwa/apple-splash-portrait-dark-1668x2388.png",revision:"fb7fb372580598abf8a1d8eb7305462a"},{url:"pwa/apple-splash-portrait-dark-1668x2224.png",revision:"1e7b39c9f5fdca7ddf23c1248f7628bf"},{url:"pwa/apple-splash-portrait-dark-1620x2160.png",revision:"1a9f84fba88d4cd5924cf5a39d541b46"},{url:"pwa/apple-splash-portrait-dark-1536x2048.png",revision:"0b26c0a578f6b13b3df06abecc81fb82"},{url:"pwa/apple-splash-portrait-dark-1290x2796.png",revision:"e7f2a468891736413b1e0622a510fd5a"},{url:"pwa/apple-splash-portrait-dark-1284x2778.png",revision:"d7230994de3c4c6016ac252431031ea7"},{url:"pwa/apple-splash-portrait-dark-1242x2688.png",revision:"c56eb0a4a8b4c7bb850cbfc35dd62bba"},{url:"pwa/apple-splash-portrait-dark-1242x2208.png",revision:"1b7f03eaab3cf8af8aa6057fd97278d8"},{url:"pwa/apple-splash-portrait-dark-1179x2556.png",revision:"8eac224083023d0d21374d9f9087bab5"},{url:"pwa/apple-splash-portrait-dark-1170x2532.png",revision:"476ac5131289040d8d88803c18dc20bb"},{url:"pwa/apple-splash-portrait-dark-1125x2436.png",revision:"53ddd8644a89bfc79c8d1bfbaa51527b"},{url:"pwa/apple-splash-landscape-light-2796x1290.png",revision:"a46e458259177e134ad383d133b29774"},{url:"pwa/apple-splash-landscape-light-2778x1284.png",revision:"95d2479cf715c2ea0104fd5f55fa62b3"},{url:"pwa/apple-splash-landscape-light-2732x2048.png",revision:"0e5ec355113efe5ce253583209a64bb8"},{url:"pwa/apple-splash-landscape-light-2688x1242.png",revision:"3757f5338eb50c9f6fb8ad0d72597465"},{url:"pwa/apple-splash-landscape-light-2556x1179.png",revision:"3f0efc9e8de850ae5d3a72a158d39055"},{url:"pwa/apple-splash-landscape-light-2532x1170.png",revision:"b9e11e5a3435cf159f240b5f6da5dc76"},{url:"pwa/apple-splash-landscape-light-2436x1125.png",revision:"459b9c158b3a52222787d00a276baa21"},{url:"pwa/apple-splash-landscape-light-2388x1668.png",revision:"3733608412963cb747e32b2790013523"},{url:"pwa/apple-splash-landscape-light-2224x1668.png",revision:"ecf0efece27d70815f7401f7f3e40a24"},{url:"pwa/apple-splash-landscape-light-2208x1242.png",revision:"653857094b0c183908571fea1aed7b2f"},{url:"pwa/apple-splash-landscape-light-2160x1620.png",revision:"31ac689a78386cf844e33f10fd5d2029"},{url:"pwa/apple-splash-landscape-light-2048x1536.png",revision:"1b27b72b070b260eceeaab092a82663d"},{url:"pwa/apple-splash-landscape-light-1792x828.png",revision:"c6e29d789061fc48eb9f3a54cb1950be"},{url:"pwa/apple-splash-landscape-light-1334x750.png",revision:"f513cdc13ffaf0c2a82bb207e2a9a397"},{url:"pwa/apple-splash-landscape-light-1136x640.png",revision:"c9b4c38f0a267051c0c83cc92c0f5767"},{url:"pwa/apple-splash-landscape-dark-2796x1290.png",revision:"22b9597a28c081730e3430e467b4e36d"},{url:"pwa/apple-splash-landscape-dark-2778x1284.png",revision:"19d1e7a02d9edd3354c61b7c54ea9c1e"},{url:"pwa/apple-splash-landscape-dark-2732x2048.png",revision:"dc9fbb966dfc3350466279749c2946d7"},{url:"pwa/apple-splash-landscape-dark-2688x1242.png",revision:"dcd13ed9567fa4d98867f5c97cc89695"},{url:"pwa/apple-splash-landscape-dark-2556x1179.png",revision:"02e2914d36b2aaf6da02799414a23738"},{url:"pwa/apple-splash-landscape-dark-2532x1170.png",revision:"b89d280148f1bcb816c6364c37daefb6"},{url:"pwa/apple-splash-landscape-dark-2436x1125.png",revision:"85613cc4f5040791ef13e4b2a1ecc840"},{url:"pwa/apple-splash-landscape-dark-2388x1668.png",revision:"e17cbe3b198574eb6fc822c17e22d935"},{url:"pwa/apple-splash-landscape-dark-2224x1668.png",revision:"1144751415d9c1f3d1bc34407b9a9539"},{url:"pwa/apple-splash-landscape-dark-2208x1242.png",revision:"2989b9f038112f8eed3694fa53b86e6a"},{url:"pwa/apple-splash-landscape-dark-2160x1620.png",revision:"ee54046f738fe4346d7febbfaa711244"},{url:"pwa/apple-splash-landscape-dark-2048x1536.png",revision:"70f0181b7e075e3b64e261c4d4e3eada"},{url:"pwa/apple-splash-landscape-dark-1792x828.png",revision:"281d292ea4448638bb250a3fca5f5f44"},{url:"pwa/apple-splash-landscape-dark-1334x750.png",revision:"d82dd37eb2bdf815c1e2ab367134cbbf"},{url:"pwa/apple-splash-landscape-dark-1136x640.png",revision:"c6b193de9bd234c81fdea1d28fe7b88c"},{url:"fonts/InterVariable.woff2",revision:"2bf3d951bf9d6109437ea0874bbf12fb"},{url:"assets/zoom-in-D2zo_jfL.js",revision:null},{url:"assets/worker-yaml-crtWQpDN.js",revision:null},{url:"assets/worker-base-ybazWkNy.js",revision:null},{url:"assets/workbox-window.prod.es5-CtK9nkTO.js",revision:null},{url:"assets/webhook-Dgi5u5S_.js",revision:null},{url:"assets/web-xDCdGu4q.js",revision:null},{url:"assets/web-iAcZCcyL.js",revision:null},{url:"assets/web-ERIfo5an.js",revision:null},{url:"assets/web-DohTQteu.js",revision:null},{url:"assets/web-Do1A1_Uv.js",revision:null},{url:"assets/web-DiteWocu.js",revision:null},{url:"assets/web-D4GUyvng.js",revision:null},{url:"assets/web-D2BwFPf_.js",revision:null},{url:"assets/web-CbVsSB6C.js",revision:null},{url:"assets/web-BpltzPRC.js",revision:null},{url:"assets/web-BjKL51lK-D9ETiyug.js",revision:null},{url:"assets/web-Bba8RmHI.js",revision:null},{url:"assets/web-B9fYUOqN.js",revision:null},{url:"assets/web-54_Wj9Me.js",revision:null},{url:"assets/view-grid-D04t817d.css",revision:null},{url:"assets/view-grid-Coh7iX5e.js",revision:null},{url:"assets/vendor-zod-DycFxUhi.js",revision:null},{url:"assets/vendor-xterm-BrP-ENHg.css",revision:null},{url:"assets/vendor-xterm-BRN-hOYD.js",revision:null},{url:"assets/vendor-vueflow-DSLHUKHF.js",revision:null},{url:"assets/vendor-primevue-7iEzPOvf.js",revision:null},{url:"assets/vendor-markdown-UV_ycMZu.js",revision:null},{url:"assets/vendor-markdown-DtOhvyRx.css",revision:null},{url:"assets/vendor-leaflet-vh-t_kPv.css",revision:null},{url:"assets/vendor-leaflet-_2Z0GiOD.js",revision:null},{url:"assets/vendor-gridstack-Rg2RhwAc.css",revision:null},{url:"assets/vendor-gridstack-DD5uGA3X.js",revision:null},{url:"assets/vendor-draggabilly-Dl6FWJwx.js",revision:null},{url:"assets/vendor-dnd-_zxmhxjM.js",revision:null},{url:"assets/vendor-core-BKHiXSX7.js",revision:null},{url:"assets/vendor-chart-CBBmwsyM.js",revision:null},{url:"assets/vendor-capacitor-DgfjcZj-.js",revision:null},{url:"assets/vendor-cameraui-DgSMexWY.js",revision:null},{url:"assets/vendor-ace-DdrK3_G3.js",revision:null},{url:"assets/vendor-DoIl6acN.js",revision:null},{url:"assets/users.schema-DaXV2Jq7.js",revision:null},{url:"assets/useUserOptions-CA-AJeEh.js",revision:null},{url:"assets/useStreamStatus-bjptbs6u.js",revision:null},{url:"assets/useSharedComposables-gpJ--qZh.js",revision:null},{url:"assets/useLogsSocket-gXiAENMr.js",revision:null},{url:"assets/useLogsSocket-4F2-d9fa.css",revision:null},{url:"assets/useFileDownload-BcOErnCc.js",revision:null},{url:"assets/useElectron-mh8HQUAI.js",revision:null},{url:"assets/useCuiDialog-j9ybKsCK.js",revision:null},{url:"assets/useCuiCameraDrawer-DnN9lwiy.js",revision:null},{url:"assets/useCameraOptions-quplvW_7.js",revision:null},{url:"assets/useBiometricCredentials-CEmbsdFy.js",revision:null},{url:"assets/upload-AGww_lJf.js",revision:null},{url:"assets/ui-DrzKhUXW.js",revision:null},{url:"assets/types-v-mK9gdq.css",revision:null},{url:"assets/types-aZM1hCux.js",revision:null},{url:"assets/types-ByBSoibP.js",revision:null},{url:"assets/types-BxFyoO54.js",revision:null},{url:"assets/types-6RvFwckU.js",revision:null},{url:"assets/trash2-CaXm_MmJ.js",revision:null},{url:"assets/trash-fill-Da1v18iA.js",revision:null},{url:"assets/trash-2-CkdsE6jp.js",revision:null},{url:"assets/theme-cGiCxaXN.js",revision:null},{url:"assets/terminal-DbYAPed-.js",revision:null},{url:"assets/source-branch-Cd8fHY0E.js",revision:null},{url:"assets/shield-check-ChlSHOnR.js",revision:null},{url:"assets/shares-Cw2NYamp.js",revision:null},{url:"assets/settings-uhDSoUhb.js",revision:null},{url:"assets/server-GaO6jF81.js",revision:null},{url:"assets/search-D-QOrChC.js",revision:null},{url:"assets/routerState-dQtObsFs.js",revision:null},{url:"assets/router-C2x34pNg.js",revision:null},{url:"assets/router-BUTKN1yM.css",revision:null},{url:"assets/round-restart-alt-fCNtJi_k.css",revision:null},{url:"assets/round-restart-alt-BJAngKc7.js",revision:null},{url:"assets/round-alt-arrow-left-bold-C-0SLIa9.js",revision:null},{url:"assets/rolldown-runtime-DAXXjFlN.js",revision:null},{url:"assets/ring-resize-DQajal-Z.js",revision:null},{url:"assets/refresh-rounded-Bqiw9DUu.js",revision:null},{url:"assets/puzzle-filled-C1z2qa5-.js",revision:null},{url:"assets/power-BcSFRPtI.js",revision:null},{url:"assets/plus-Dqgz6pez.js",revision:null},{url:"assets/plus-BMt5ORD8.js",revision:null},{url:"assets/plugins-C_Mh_UEw.js",revision:null},{url:"assets/plugin-C1dsgk0N.js",revision:null},{url:"assets/play-solid-BOoBnMaN.js",revision:null},{url:"assets/notifications-AiaxATml.js",revision:null},{url:"assets/nodeDefinitions-Dvawtk76.js",revision:null},{url:"assets/native-j1dyx58L.js",revision:null},{url:"assets/native-fQjIFjCA.js",revision:null},{url:"assets/motion-sensor-DD8SfD-m.js",revision:null},{url:"assets/mode-yaml-CIYL8U3d.js",revision:null},{url:"assets/microphone-CAVr4YFv.js",revision:null},{url:"assets/main-DudyqPaR.css",revision:null},{url:"assets/main-D0vO1lt0.js",revision:null},{url:"assets/logo-DmEiRk0z.png",revision:null},{url:"assets/logo-256-BCQk9H1-.png",revision:null},{url:"assets/locale-BCQeXbI8.js",revision:null},{url:"assets/lightbulb-outline-B0CFho4y.js",revision:null},{url:"assets/instances-Crs3gwnp.js",revision:null},{url:"assets/information-outline-ChTb2u7w.js",revision:null},{url:"assets/home-Dey3bw1P.js",revision:null},{url:"assets/hasPermission-CPgoH1JH.js",revision:null},{url:"assets/grid-fill-DBU_n60V.js",revision:null},{url:"assets/github-DLhaVazy.js",revision:null},{url:"assets/face-recognition-D5evlO1d.js",revision:null},{url:"assets/eventIcons-CtTopM6B.js",revision:null},{url:"assets/eventIcons-2hVCNchU.css",revision:null},{url:"assets/esm-yIpeulKl.js",revision:null},{url:"assets/esm-u_3xdCfr.js",revision:null},{url:"assets/esm-edrype40.js",revision:null},{url:"assets/esm-M_oLCAXC.js",revision:null},{url:"assets/esm-Do9bGF06.js",revision:null},{url:"assets/esm-Dc3lKVtD.js",revision:null},{url:"assets/esm-CjzerNPk.js",revision:null},{url:"assets/esm-CWeEZr0g.js",revision:null},{url:"assets/esm-CIAIVgGo.js",revision:null},{url:"assets/esm-CA4iVOgN2.js",revision:null},{url:"assets/esm-C51W8e2w.js",revision:null},{url:"assets/esm-BUgHC3bC.js",revision:null},{url:"assets/esm-B2shpuvL.js",revision:null},{url:"assets/esm-B-_4iFTo.js",revision:null},{url:"assets/error-256-DLKVOU2S.png",revision:null},{url:"assets/download-CY-SlBan.js",revision:null},{url:"assets/dist-CQkfz2Dn.js",revision:null},{url:"assets/deviceId-DXf6AlPA.js",revision:null},{url:"assets/delete-5a2q7_46.js",revision:null},{url:"assets/copy-DcVDLQlM.js",revision:null},{url:"assets/copy-16-filled-CZzRMAt_.js",revision:null},{url:"assets/cog-Ce2a8uiA.js",revision:null},{url:"assets/cloudHandoff-CiV159TL.js",revision:null},{url:"assets/cloud-outline-CzQmkpCY.js",revision:null},{url:"assets/cloud-outline-BPAJ6_kc.js",revision:null},{url:"assets/cloud-check-BbqgBLhK.js",revision:null},{url:"assets/close-circle-ClG7lNzZ.js",revision:null},{url:"assets/close-DuwOOM-P.js",revision:null},{url:"assets/clock-outline-MhJC2-0d.js",revision:null},{url:"assets/circular-connection-BTKd-doI.js",revision:null},{url:"assets/chevron-right-CXZ4SFSg.js",revision:null},{url:"assets/chevron-down-KZwkCQ3v.js",revision:null},{url:"assets/check-BMoCATAa.js",revision:null},{url:"assets/cctv-CBtg_v6o.js",revision:null},{url:"assets/cctv-BsGdaLfw.js",revision:null},{url:"assets/cameras.schema-qOAUe-E9.js",revision:null},{url:"assets/cameras-DRRy289F.js",revision:null},{url:"assets/camera-preview-C7GT5VHo.png",revision:null},{url:"assets/bug-DPw8k4Lk.js",revision:null},{url:"assets/bell-ring-CenQn4Yt.js",revision:null},{url:"assets/bell-outline-U3Gb4nI1.js",revision:null},{url:"assets/bell-ChE83DC8.js",revision:null},{url:"assets/backup-82y2bZBX.js",revision:null},{url:"assets/back-filled-DqCMpeEk.js",revision:null},{url:"assets/automations-egbiXwMx.js",revision:null},{url:"assets/automations-C309DNNg.js",revision:null},{url:"assets/automationBlueprint-DMjszOs4.js",revision:null},{url:"assets/automation-IpK710bv.js",revision:null},{url:"assets/auth-BeYrbk7B.js",revision:null},{url:"assets/arrow-right-outline-CliUt84m.js",revision:null},{url:"assets/arrow-left-9W2BpRxA.js",revision:null},{url:"assets/api-CvihG9kg.js",revision:null},{url:"assets/api-CrAOxyt8.css",revision:null},{url:"assets/api-Cntxdwiu.js",revision:null},{url:"assets/alert-outline-T8FhpQ9w.js",revision:null},{url:"assets/ace.config-D884GuRj.js",revision:null},{url:"assets/ace-DQ1lNH50.js",revision:null},{url:"assets/account-DqOHQKv8.js",revision:null},{url:"assets/_plugin-vue_export-helper-BDNMzG2s.js",revision:null},{url:"assets/Workers-CKR9yslJ.js",revision:null},{url:"assets/VersionsHandler-nZK8BEJK.js",revision:null},{url:"assets/VariableSuggestions-PEzupqiE.js",revision:null},{url:"assets/VariableInput-CFs-kzqd.js",revision:null},{url:"assets/Terminal-D2zkV1fJ.js",revision:null},{url:"assets/Terminal-CrOfQJ-O.css",revision:null},{url:"assets/SettingsUsers-Cb6zolu8.js",revision:null},{url:"assets/SettingsSystem-BZ14jaFr.js",revision:null},{url:"assets/SettingsRemote-RqXtq3dF.js",revision:null},{url:"assets/SettingsRemote-D9COJF4m.css",revision:null},{url:"assets/SettingsRecordings-DWX69m9b.js",revision:null},{url:"assets/SettingsNotifications-Do2Cy2yf.js",revision:null},{url:"assets/SettingsBackup-stUbnWJf.js",revision:null},{url:"assets/SettingsBackup-CX0rT0QJ.css",revision:null},{url:"assets/SettingsAppearance-k5WMN34x.js",revision:null},{url:"assets/SettingsAppearance-DNaNlO1q.js",revision:null},{url:"assets/SettingsAccount-Y7hpH8Y3.css",revision:null},{url:"assets/SettingsAccount-DnZKU_tM.js",revision:null},{url:"assets/SettingsAccount-CWVj8S8j.js",revision:null},{url:"assets/Settings-bwLTNAxX.css",revision:null},{url:"assets/Settings-Bj_41fdw.js",revision:null},{url:"assets/Recordings-Bt_GlPOK.css",revision:null},{url:"assets/Recordings-Bt8clj2R.js",revision:null},{url:"assets/Plugins-DD8FPbtv.js",revision:null},{url:"assets/PluginSearch-BwG61G-G.js",revision:null},{url:"assets/PluginSearch-BOWQC1zl.css",revision:null},{url:"assets/PluginSearch-BLWXmn9w.js",revision:null},{url:"assets/PluginSchema-D3BCVJNa.js",revision:null},{url:"assets/PluginDetail-C3j4zIxC.js",revision:null},{url:"assets/PluginDetail-B2odw9DA.css",revision:null},{url:"assets/PluginConsole-Bs9HqX_F.js",revision:null},{url:"assets/Plugin-CHdZvbiP.css",revision:null},{url:"assets/Plugin-BDwSHzi9.js",revision:null},{url:"assets/OAuthDeviceFlow-B4cT3UTT.js",revision:null},{url:"assets/Menu-Db1mi08W.js",revision:null},{url:"assets/Logs-DKwNBSz9.js",revision:null},{url:"assets/Instances-CsAKq-HH.js",revision:null},{url:"assets/FirstSteps-uzffNroi.js",revision:null},{url:"assets/Faces-CFN1J-o4.js",revision:null},{url:"assets/CuiTopbarSlot-ac4GLLbf.js",revision:null},{url:"assets/CuiTopNavbarItem-Q7M4nMw5.js",revision:null},{url:"assets/CuiTopNavbarItem-CJqOqVMt.css",revision:null},{url:"assets/CuiSchema-Cr90oo-T.js",revision:null},{url:"assets/CuiSchema--yMBD996.css",revision:null},{url:"assets/CuiRecordingsGrid-lcLty5PV.css",revision:null},{url:"assets/CuiRecordingsGrid-DNw21B-r.js",revision:null},{url:"assets/CuiQRCode-Di0RLqfL.js",revision:null},{url:"assets/CuiQRCode-BtErH65J.css",revision:null},{url:"assets/CuiPluginTrustBadge-YhfqGTyR.js",revision:null},{url:"assets/CuiPluginTrustBadge-QHTLaN1n.css",revision:null},{url:"assets/CuiPluginOAuthButton-CvVnSP0h.js",revision:null},{url:"assets/CuiPluginCategoryChip-rfdhCEi-.js",revision:null},{url:"assets/CuiPluginCategoryChip-CdGrTCxH.css",revision:null},{url:"assets/CuiPluginCard-LxNHYHxa.css",revision:null},{url:"assets/CuiPluginCard-Bnb0YKK1.js",revision:null},{url:"assets/CuiMenu-BWUfWLQP.css",revision:null},{url:"assets/CuiMenu-BBequFn_.js",revision:null},{url:"assets/CuiMarkdownContent-qIS8eQHX.js",revision:null},{url:"assets/CuiMarkdownContent-DaJ8HzaP.js",revision:null},{url:"assets/CuiImage-KyBpvv-t.js",revision:null},{url:"assets/CuiImage-Bxf7z2N4.css",revision:null},{url:"assets/CuiFloatingButton-B5YMdr0X.js",revision:null},{url:"assets/CuiDataTable-saRt0sBc.js",revision:null},{url:"assets/CuiDataTable-DWuXg9Zg.css",revision:null},{url:"assets/CuiCameraTable-6tWx74Nl.js",revision:null},{url:"assets/CuiCameraSnapshot-BAwo37N7.js",revision:null},{url:"assets/CuiCameraShares-BIXFV72I.js",revision:null},{url:"assets/CuiCameraRecordings-BWlxU4qP.js",revision:null},{url:"assets/CuiCameraRecordings-BHj7CUE7.css",revision:null},{url:"assets/CuiCameraPipCard-D3o29_wc.css",revision:null},{url:"assets/CuiCameraPipCard-BDZ3W5sh.js",revision:null},{url:"assets/CuiCameraCard-O22PEfyi.js",revision:null},{url:"assets/CuiCameraCard-BxGmxXxZ.css",revision:null},{url:"assets/CuiBottomSheet-ljGYA9W5.js",revision:null},{url:"assets/CuiBottomSheet-DsjZEdig.css",revision:null},{url:"assets/CuiBottomSheet-CrsJjITg.js",revision:null},{url:"assets/CuiBBoxPlayground-EFkdOBvq.css",revision:null},{url:"assets/CuiBBoxPlayground-CIU5kteO.js",revision:null},{url:"assets/CuiAvatar-Drdaxxcm.js",revision:null},{url:"assets/CuiAvatar-BtMXnhxd.css",revision:null},{url:"assets/CuiActionButton-Bl7gqhIV.js",revision:null},{url:"assets/Console-COaJF4Fu.js",revision:null},{url:"assets/ConfigTriggerWebhook-D3cHvW8H.js",revision:null},{url:"assets/ConfigTriggerSystem-5TI9H8mj.js",revision:null},{url:"assets/ConfigTriggerSensor-CVzeR8ac.js",revision:null},{url:"assets/ConfigTriggerSchedule-CE47WiIV.js",revision:null},{url:"assets/ConfigTriggerManual-ChsUsNCK.js",revision:null},{url:"assets/ConfigTriggerGeofence-4t1aW1Iw.js",revision:null},{url:"assets/ConfigTriggerDetection-CYJOEkHi.js",revision:null},{url:"assets/ConfigConditionTime-lhWiIy2x.js",revision:null},{url:"assets/ConfigConditionSwitch-CC0w-Hvy.js",revision:null},{url:"assets/ConfigConditionSensorState-D2IIsthA.js",revision:null},{url:"assets/ConfigConditionIfElse-Bhd2FYyz.js",revision:null},{url:"assets/ConfigActionVariable-B2BoiQPb.js",revision:null},{url:"assets/ConfigActionSnapshot-9aGopbuJ.js",revision:null},{url:"assets/ConfigActionSensor-Du072tTI.js",revision:null},{url:"assets/ConfigActionPlugin-BgKKvqAy.js",revision:null},{url:"assets/ConfigActionOutput-P0WY0DlF.js",revision:null},{url:"assets/ConfigActionNotification-hmTEfMw3.js",revision:null},{url:"assets/ConfigActionImageInput-BhO3ekJT.js",revision:null},{url:"assets/ConfigActionHttp-BGz4r_Nr.js",revision:null},{url:"assets/ConfigActionDelay-DOUAx4lh.js",revision:null},{url:"assets/ConfigActionCameraControl-B2xFxVNO.js",revision:null},{url:"assets/Config-JgftUZFe.css",revision:null},{url:"assets/Config-BfijMggp.js",revision:null},{url:"assets/Camview-CDM4Q_tc.css",revision:null},{url:"assets/Camview-CBywGGI8.js",revision:null},{url:"assets/Cameras-Dz7bZyRE.js",revision:null},{url:"assets/Cameras-54LaZPN3.css",revision:null},{url:"assets/CameraConsole-DOiCJAQS.js",revision:null},{url:"assets/Camera-DVJbyl93.js",revision:null},{url:"assets/Camera-BG8K5bH_.css",revision:null},{url:"assets/Automations-CQioiNmw.js",revision:null},{url:"assets/AutomationStoreDetail-pW5g8G4I.js",revision:null},{url:"assets/AutomationStoreDetail--egqUOqn.css",revision:null},{url:"assets/AutomationStore-Q25Okhz8.css",revision:null},{url:"assets/AutomationStore-BhL1O1qq.js",revision:null},{url:"assets/AutomationImport-chsxrEfX.js",revision:null},{url:"assets/Automation-Dx--ghuY.js",revision:null},{url:"assets/Automation-Csu8t0D7.css",revision:null},{url:"assets/Adminpanel-zLLSmbSt.js",revision:null},{url:"assets/About-DAV31RZ5.js",revision:null},{url:"assets/404-Dd3AyWdE.js",revision:null},{url:"pwa/maskable-icon-1240x600.png",revision:"f3188c7d8e5038f28068c7a3632dbe4b"},{url:"pwa/maskable-icon-512x512.png",revision:"e716feaa60f08d95d0909e1c85bf1f98"},{url:"pwa/maskable-icon-620x300.png",revision:"b4954ceadf0d6f2095c45f8cc8240337"},{url:"pwa/pwa-1024x1024.png",revision:"1ed367ae76416e79fd0bdd6ee70666bc"},{url:"pwa/pwa-120x120.png",revision:"3f5ec31f6bd07910482227b259344110"},{url:"pwa/pwa-144x144.png",revision:"4fdf5c8fb085f764ed7dd5a26698bff5"},{url:"pwa/pwa-152x152.png",revision:"4cf41c7b603d382e83e098affb7cb9da"},{url:"pwa/pwa-167x167.png",revision:"de6a5ca921b45fb3bd30d27c707981c6"},{url:"pwa/pwa-180x180.png",revision:"225b42752632e2866c4f8fe4ab2f62ee"},{url:"pwa/pwa-192x192.png",revision:"3d58c2dd940c535cc166cc8d0844429d"},{url:"pwa/pwa-24x24.png",revision:"bdb25f68ca300283b37041e47d3e6ba8"},{url:"pwa/pwa-300x300.png",revision:"7f79d74e34aedef57c98a1c9c156ba6b"},{url:"pwa/pwa-36x36.png",revision:"4d08bb198d4e54e4d12a0810fc59f059"},{url:"pwa/pwa-48x48.png",revision:"97d7369c892f1e0914c2617ff26feb3c"},{url:"pwa/pwa-50x50.png",revision:"a20fc2e6f26aa548f9cae07911087f6c"},{url:"pwa/pwa-64x64.png",revision:"f57763be3212fd4154c502d607e7ed38"},{url:"pwa/pwa-72x72.png",revision:"66698bb499639052ad337f7e9a7d7ea8"},{url:"pwa/pwa-88x88.png",revision:"6e8af0a85b0627a835b62067d5189cb4"},{url:"pwa/pwa-96x96.png",revision:"675ea863c25fa9ae31d4d76a47463c78"},{url:"manifest.webmanifest",revision:"ed2b67044c80f7c0362cd73cde2f96c5"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"),{allowlist:[/^(?!\/api)/],denylist:[/[?&]session=/]}))});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
define(["exports"],function(t){"use strict";try{self["workbox:core:7.4.0"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}const n={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},i=t=>[n.prefix,t,n.suffix].filter(t=>t&&t.length>0).join("-"),r=t=>{(t=>{for(const e of Object.keys(n))t(e)})(e=>{"string"==typeof t[e]&&(n[e]=t[e])})},o=t=>t||i(n.precache),c=t=>t||i(n.runtime);try{self["workbox:routing:7.4.0"]&&_()}catch(t){}const a=t=>t&&"object"==typeof t?t:{handle:t};class h{constructor(t,e,s="GET"){this.handler=a(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=a(t)}}class u extends h{constructor(t,e,s){super(({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)},e,s)}}class l{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)})}addCacheListener(){self.addEventListener("message",t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map(e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})}));t.waitUntil(s),t.ports&&t.ports[0]&&s.then(()=>t.ports[0].postMessage(!0))}})}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let o=r&&r.handler;const c=t.method;if(!o&&this.i.has(c)&&(o=this.i.get(c)),!o)return;let a;try{a=o.handle({url:s,request:t,event:e,params:i})}catch(t){a=Promise.reject(t)}const h=r&&r.catchHandler;return a instanceof Promise&&(this.o||h)&&(a=a.catch(async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:i})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n})),a}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const i=this.t.get(s.method)||[];for(const r of i){let i;const o=r.match({url:t,sameOrigin:e,request:s,event:n});if(o)return i=o,(Array.isArray(i)&&0===i.length||o.constructor===Object&&0===Object.keys(o).length||"boolean"==typeof o)&&(i=void 0),{route:r,params:i}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,a(t))}setCatchHandler(t){this.o=a(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let f;const w=()=>(f||(f=new l,f.addFetchListener(),f.addCacheListener()),f);function d(t,e,n){let i;if("string"==typeof t){const s=new URL(t,location.href);i=new h(({url:t})=>t.href===s.href,e,n)}else if(t instanceof RegExp)i=new u(t,e,n);else if("function"==typeof t)i=new h(t,e,n);else{if(!(t instanceof h))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});i=t}return w().registerRoute(i),i}function p(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:7.4.0"]&&_()}catch(t){}function y(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const i=new URL(n,location.href),r=new URL(n,location.href);return i.searchParams.set("__WB_REVISION__",e),{cacheKey:i.href,url:r.href}}class g{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class R{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.h.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.h=t}}let m;async function v(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const i=t.clone(),r={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=function(){if(void 0===m){const t=new Response("");if("body"in t)try{new Response(t.body),m=!0}catch(t){m=!1}m=!1}return m}()?i.body:await i.blob();return new Response(o,r)}function q(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class U{constructor(){this.promise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}}const b=new Set;try{self["workbox:strategies:7.4.0"]&&_()}catch(t){}function L(t){return"string"==typeof t?new Request(t):t}class C{constructor(t,e){this.u={},Object.assign(this,e),this.event=e.event,this.l=t,this.p=new U,this.R=[],this.m=[...t.plugins],this.v=new Map;for(const t of this.m)this.v.set(t,{});this.event.waitUntil(this.p.promise)}async fetch(t){const{event:e}=this;let n=L(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const i=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const r=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.l.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:r,response:t});return t}catch(t){throw i&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:i.clone(),request:r.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=L(t);let s;const{cacheName:n,matchOptions:i}=this.l,r=await this.getCacheKey(e,"read"),o=Object.assign(Object.assign({},i),{cacheName:n});s=await caches.match(r,o);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:i,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(t,e){const n=L(t);var i;await(i=0,new Promise(t=>setTimeout(t,i)));const r=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(o=r.url,new URL(String(o),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var o;const c=await this.q(e);if(!c)return!1;const{cacheName:a,matchOptions:h}=this.l,u=await self.caches.open(a),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const i=q(e.url,s);if(e.url===i)return t.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),o=await t.keys(e,r);for(const e of o)if(i===q(e.url,s))return t.match(e,n)}(u,r.clone(),["__WB_REVISION__"],h):null;try{await u.put(r,l?c.clone():c)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of b)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:a,oldResponse:f,newResponse:c.clone(),request:r,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.u[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=L(await t({mode:e,request:n,event:this.event,params:this.params}));this.u[s]=n}return this.u[s]}hasCallback(t){for(const e of this.l.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.l.plugins)if("function"==typeof e[t]){const s=this.v.get(e),n=n=>{const i=Object.assign(Object.assign({},n),{state:s});return e[t](i)};yield n}}waitUntil(t){return this.R.push(t),t}async doneWaiting(){for(;this.R.length;){const t=this.R.splice(0),e=(await Promise.allSettled(t)).find(t=>"rejected"===t.status);if(e)throw e.reason}}destroy(){this.p.resolve(null)}async q(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class E{constructor(t={}){this.cacheName=c(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,i=new C(this,{event:e,request:s,params:n}),r=this.U(i,s,e);return[r,this.L(r,i,s,e)]}async U(t,e,n){let i;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(i=await this._(e,t),!i||"error"===i.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const r of t.iterateCallbacks("handlerDidError"))if(i=await r({error:s,event:n,request:e}),i)break;if(!i)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))i=await s({event:n,request:e,response:i});return i}async L(t,e,s,n){let i,r;try{i=await t}catch(r){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:i}),await e.doneWaiting()}catch(t){t instanceof Error&&(r=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:i,error:r}),e.destroy(),r)throw r}}class O extends E{constructor(t={}){t.cacheName=o(t.cacheName),super(t),this.C=!1!==t.fallbackToNetwork,this.plugins.push(O.copyRedirectedCacheableResponsesPlugin)}async _(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.O(t,e):await this.N(t,e))}async N(t,e){let n;const i=e.params||{};if(!this.C)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=i.integrity,r=t.integrity,o=!r||r===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?r||s:void 0})),s&&o&&"no-cors"!==t.mode&&(this.j(),await e.cachePut(t,n.clone()))}return n}async O(t,e){this.j();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}j(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==O.copyRedirectedCacheableResponsesPlugin&&(n===O.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(O.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}O.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},O.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await v(t):t};class x{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.P=new Map,this.k=new Map,this.K=new Map,this.l=new O({cacheName:o(t),plugins:[...e,new R({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.l}precache(t){this.addToCacheList(t),this.T||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.T=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:i}=y(n),r="string"!=typeof n&&n.revision?"reload":"default";if(this.P.has(i)&&this.P.get(i)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.P.get(i),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.K.has(t)&&this.K.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:i});this.K.set(t,n.integrity)}if(this.P.set(i,t),this.k.set(i,r),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return p(t,async()=>{const e=new g;this.strategy.plugins.push(e);for(const[e,s]of this.P){const n=this.K.get(s),i=this.k.get(e),r=new Request(e,{integrity:n,cache:i,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:r,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}})}activate(t){return p(t,async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.P.values()),n=[];for(const i of e)s.has(i.url)||(await t.delete(i),n.push(i.url));return{deletedURLs:n}})}getURLsToCacheKeys(){return this.P}getCachedURLs(){return[...this.P.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.P.get(e.href)}getIntegrityForCacheKey(t){return this.K.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}let N;const j=()=>(N||(N=new x),N);class P extends h{constructor(t,e){super(({request:s})=>{const n=t.getURLsToCacheKeys();for(const i of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:i}={}){const r=new URL(t,location.href);r.hash="",yield r.href;const o=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some(t=>t.test(s))&&t.searchParams.delete(s);return t}(r,e);if(yield o.href,s&&o.pathname.endsWith("/")){const t=new URL(o.href);t.pathname+=s,yield t.href}if(n){const t=new URL(o.href);t.pathname+=".html",yield t.href}if(i){const t=i({url:r});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(i);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}},t.strategy)}}t.NavigationRoute=class extends h{constructor(t,{allowlist:e=[/./],denylist:s=[]}={}){super(t=>this.W(t),t),this.M=e,this.S=s}W({url:t,request:e}){if(e&&"navigate"!==e.mode)return!1;const s=t.pathname+t.search;for(const t of this.S)if(t.test(s))return!1;return!!this.M.some(t=>t.test(s))}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",t=>{const e=o();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter(s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t);return await Promise.all(s.map(t=>self.caches.delete(t))),s})(e).then(t=>{}))})},t.createHandlerBoundToURL=function(t){return j().createHandlerBoundToURL(t)},t.precacheAndRoute=function(t,e){!function(t){j().precache(t)}(t),function(t){const e=j();d(new P(e,t))}(e)},t.registerRoute=d,t.setCacheNameDetails=function(t){r(t)}});
|
|
1
|
+
define(["exports"],function(t){"use strict";try{self["workbox:core:7.4.0"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}const n={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},i=t=>[n.prefix,t,n.suffix].filter(t=>t&&t.length>0).join("-"),r=t=>{(t=>{for(const e of Object.keys(n))t(e)})(e=>{"string"==typeof t[e]&&(n[e]=t[e])})},o=t=>t||i(n.precache),c=t=>t||i(n.runtime);try{self["workbox:routing:7.4.0"]&&_()}catch(t){}const a=t=>t&&"object"==typeof t?t:{handle:t};class h{constructor(t,e,s="GET"){this.handler=a(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=a(t)}}class u extends h{constructor(t,e,s){super(({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)},e,s)}}class l{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)})}addCacheListener(){self.addEventListener("message",t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map(e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})}));t.waitUntil(s),t.ports&&t.ports[0]&&s.then(()=>t.ports[0].postMessage(!0))}})}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let o=r&&r.handler;const c=t.method;if(!o&&this.i.has(c)&&(o=this.i.get(c)),!o)return;let a;try{a=o.handle({url:s,request:t,event:e,params:i})}catch(t){a=Promise.reject(t)}const h=r&&r.catchHandler;return a instanceof Promise&&(this.o||h)&&(a=a.catch(async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:i})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n})),a}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const i=this.t.get(s.method)||[];for(const r of i){let i;const o=r.match({url:t,sameOrigin:e,request:s,event:n});if(o)return i=o,(Array.isArray(i)&&0===i.length||o.constructor===Object&&0===Object.keys(o).length||"boolean"==typeof o)&&(i=void 0),{route:r,params:i}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,a(t))}setCatchHandler(t){this.o=a(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let f;const w=()=>(f||(f=new l,f.addFetchListener(),f.addCacheListener()),f);function d(t,e,n){let i;if("string"==typeof t){const s=new URL(t,location.href);i=new h(({url:t})=>t.href===s.href,e,n)}else if(t instanceof RegExp)i=new u(t,e,n);else if("function"==typeof t)i=new h(t,e,n);else{if(!(t instanceof h))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});i=t}return w().registerRoute(i),i}function p(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:7.4.0"]&&_()}catch(t){}function y(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const i=new URL(n,location.href),r=new URL(n,location.href);return i.searchParams.set("__WB_REVISION__",e),{cacheKey:i.href,url:r.href}}class g{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class R{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.h.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.h=t}}let m;async function v(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const i=t.clone(),r={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=function(){if(void 0===m){const t=new Response("");if("body"in t)try{new Response(t.body),m=!0}catch(t){m=!1}m=!1}return m}()?i.body:await i.blob();return new Response(o,r)}function q(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class U{constructor(){this.promise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}}const b=new Set;try{self["workbox:strategies:7.4.0"]&&_()}catch(t){}function L(t){return"string"==typeof t?new Request(t):t}class C{constructor(t,e){this.u={},Object.assign(this,e),this.event=e.event,this.l=t,this.p=new U,this.R=[],this.m=[...t.plugins],this.v=new Map;for(const t of this.m)this.v.set(t,{});this.event.waitUntil(this.p.promise)}async fetch(t){const{event:e}=this;let n=L(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const i=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const r=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.l.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:r,response:t});return t}catch(t){throw i&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:i.clone(),request:r.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=L(t);let s;const{cacheName:n,matchOptions:i}=this.l,r=await this.getCacheKey(e,"read"),o=Object.assign(Object.assign({},i),{cacheName:n});s=await caches.match(r,o);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:i,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(t,e){const n=L(t);var i;await(i=0,new Promise(t=>setTimeout(t,i)));const r=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(o=r.url,new URL(String(o),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var o;const c=await this.q(e);if(!c)return!1;const{cacheName:a,matchOptions:h}=this.l,u=await self.caches.open(a),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const i=q(e.url,s);if(e.url===i)return t.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),o=await t.keys(e,r);for(const e of o)if(i===q(e.url,s))return t.match(e,n)}(u,r.clone(),["__WB_REVISION__"],h):null;try{await u.put(r,l?c.clone():c)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of b)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:a,oldResponse:f,newResponse:c.clone(),request:r,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.u[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=L(await t({mode:e,request:n,event:this.event,params:this.params}));this.u[s]=n}return this.u[s]}hasCallback(t){for(const e of this.l.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.l.plugins)if("function"==typeof e[t]){const s=this.v.get(e),n=n=>{const i=Object.assign(Object.assign({},n),{state:s});return e[t](i)};yield n}}waitUntil(t){return this.R.push(t),t}async doneWaiting(){for(;this.R.length;){const t=this.R.splice(0),e=(await Promise.allSettled(t)).find(t=>"rejected"===t.status);if(e)throw e.reason}}destroy(){this.p.resolve(null)}async q(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class E{constructor(t={}){this.cacheName=c(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,i=new C(this,{event:e,request:s,params:n}),r=this.U(i,s,e);return[r,this.L(r,i,s,e)]}async U(t,e,n){let i;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(i=await this._(e,t),!i||"error"===i.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const r of t.iterateCallbacks("handlerDidError"))if(i=await r({error:s,event:n,request:e}),i)break;if(!i)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))i=await s({event:n,request:e,response:i});return i}async L(t,e,s,n){let i,r;try{i=await t}catch(r){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:i}),await e.doneWaiting()}catch(t){t instanceof Error&&(r=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:i,error:r}),e.destroy(),r)throw r}}class O extends E{constructor(t={}){t.cacheName=o(t.cacheName),super(t),this.C=!1!==t.fallbackToNetwork,this.plugins.push(O.copyRedirectedCacheableResponsesPlugin)}async _(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.O(t,e):await this.N(t,e))}async N(t,e){let n;const i=e.params||{};if(!this.C)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=i.integrity,r=t.integrity,o=!r||r===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?r||s:void 0})),s&&o&&"no-cors"!==t.mode&&(this.j(),await e.cachePut(t,n.clone()))}return n}async O(t,e){this.j();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}j(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==O.copyRedirectedCacheableResponsesPlugin&&(n===O.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(O.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}O.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},O.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await v(t):t};class x{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.P=new Map,this.k=new Map,this.K=new Map,this.l=new O({cacheName:o(t),plugins:[...e,new R({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.l}precache(t){this.addToCacheList(t),this.T||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.T=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:i}=y(n),r="string"!=typeof n&&n.revision?"reload":"default";if(this.P.has(i)&&this.P.get(i)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.P.get(i),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.K.has(t)&&this.K.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:i});this.K.set(t,n.integrity)}if(this.P.set(i,t),this.k.set(i,r),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return p(t,async()=>{const e=new g;this.strategy.plugins.push(e);for(const[e,s]of this.P){const n=this.K.get(s),i=this.k.get(e),r=new Request(e,{integrity:n,cache:i,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:r,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}})}activate(t){return p(t,async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.P.values()),n=[];for(const i of e)s.has(i.url)||(await t.delete(i),n.push(i.url));return{deletedURLs:n}})}getURLsToCacheKeys(){return this.P}getCachedURLs(){return[...this.P.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.P.get(e.href)}getIntegrityForCacheKey(t){return this.K.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}let N;const j=()=>(N||(N=new x),N);class P extends h{constructor(t,e){super(({request:s})=>{const n=t.getURLsToCacheKeys();for(const i of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:i}={}){const r=new URL(t,location.href);r.hash="",yield r.href;const o=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some(t=>t.test(s))&&t.searchParams.delete(s);return t}(r,e);if(yield o.href,s&&o.pathname.endsWith("/")){const t=new URL(o.href);t.pathname+=s,yield t.href}if(n){const t=new URL(o.href);t.pathname+=".html",yield t.href}if(i){const t=i({url:r});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(i);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}},t.strategy)}}t.NavigationRoute=class extends h{constructor(t,{allowlist:e=[/./],denylist:s=[]}={}){super(t=>this.W(t),t),this.M=e,this.S=s}W({url:t,request:e}){if(e&&"navigate"!==e.mode)return!1;const s=t.pathname+t.search;for(const t of this.S)if(t.test(s))return!1;return!!this.M.some(t=>t.test(s))}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",t=>{const e=o();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter(s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t);return await Promise.all(s.map(t=>self.caches.delete(t))),s})(e).then(t=>{}))})},t.clientsClaim=function(){self.addEventListener("activate",()=>self.clients.claim())},t.createHandlerBoundToURL=function(t){return j().createHandlerBoundToURL(t)},t.precacheAndRoute=function(t,e){!function(t){j().precache(t)}(t),function(t){const e=j();d(new P(e,t))}(e)},t.registerRoute=d,t.setCacheNameDetails=function(t){r(t)}});
|
package/dist/server/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camera.ui/server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.112",
|
|
4
4
|
"description": "camera.ui server",
|
|
5
5
|
"author": "seydx (https://github.com/cameraui/camera.ui)",
|
|
6
6
|
"type": "module",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"semver": "^7.8.5",
|
|
71
71
|
"sharp": "^0.35.3",
|
|
72
72
|
"socket.io": "^4.8.3",
|
|
73
|
-
"systeminformation": "^5.31.
|
|
73
|
+
"systeminformation": "^5.31.12",
|
|
74
74
|
"tail": "^2.2.6",
|
|
75
75
|
"tar": "^7.5.19",
|
|
76
76
|
"tsyringe": "^4.10.0",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
|
|
2
|
-
import type { AuthLoginRequest, AutomationsCreateRequest, AutomationsImportRequest, AutomationsParamsGeofenceRequest, AutomationsParamsRequest, AutomationsParamsWebhookRequest, AutomationsPatchRequest } from '../types/index.js';
|
|
2
|
+
import type { AuthLoginRequest, AutomationsCreateRequest, AutomationsImportRequest, AutomationsParamsGeofenceRequest, AutomationsParamsRequest, AutomationsParamsWebhookRequest, AutomationsPatchRequest, AutomationsStoreParamsRequest, AutomationsStoreQueryRequest } from '../types/index.js';
|
|
3
3
|
export declare class AutomationsController {
|
|
4
4
|
private service;
|
|
5
5
|
constructor(_app: FastifyInstance);
|
|
@@ -10,6 +10,8 @@ export declare class AutomationsController {
|
|
|
10
10
|
delete(req: FastifyRequest<AuthLoginRequest & AutomationsParamsRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
11
11
|
importBlueprint(req: FastifyRequest<AuthLoginRequest & AutomationsImportRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
12
12
|
exportBlueprint(req: FastifyRequest<AuthLoginRequest & AutomationsParamsRequest>, reply: FastifyReply): FastifyReply;
|
|
13
|
+
storeList(req: FastifyRequest<AuthLoginRequest & AutomationsStoreQueryRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
14
|
+
storeItem(req: FastifyRequest<AuthLoginRequest & AutomationsStoreParamsRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
13
15
|
trigger(req: FastifyRequest<AuthLoginRequest & AutomationsParamsRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
14
16
|
pluginMethods(_req: FastifyRequest, reply: FastifyReply): FastifyReply;
|
|
15
17
|
webhook(req: FastifyRequest<AuthLoginRequest & AutomationsParamsRequest & AutomationsParamsWebhookRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { container } from 'tsyringe';
|
|
2
2
|
import { getPluginMethodsForClient } from '../../automations/pluginMethodRegistry.js';
|
|
3
|
+
import { getAutomationBlueprint, getAutomationCatalog, invalidateAutomationRegistry } from '../../utils/automation-registry/index.js';
|
|
3
4
|
import { AutomationsService } from '../services/automations.service.js';
|
|
4
5
|
function isAdminRequest(req) {
|
|
5
6
|
const role = req.locals.user?.role;
|
|
@@ -11,6 +12,7 @@ function maskAutomation(automation) {
|
|
|
11
12
|
nodes: automation.nodes.map((node) => {
|
|
12
13
|
const data = { ...node.data };
|
|
13
14
|
delete data.webhookSecret;
|
|
15
|
+
delete data.geofenceId;
|
|
14
16
|
delete data.geofenceUserSecrets;
|
|
15
17
|
return { ...node, data };
|
|
16
18
|
}),
|
|
@@ -91,12 +93,35 @@ export class AutomationsController {
|
|
|
91
93
|
if (!blueprint) {
|
|
92
94
|
return reply.code(404).send({ statusCode: 404, message: 'Automation not found' });
|
|
93
95
|
}
|
|
94
|
-
|
|
96
|
+
// a blueprint is shareable, so secrets are always stripped regardless of role
|
|
97
|
+
return reply.code(200).send(maskAutomation(blueprint));
|
|
95
98
|
}
|
|
96
99
|
catch (error) {
|
|
97
100
|
return reply.code(500).send({ statusCode: 500, message: error.message });
|
|
98
101
|
}
|
|
99
102
|
}
|
|
103
|
+
async storeList(req, reply) {
|
|
104
|
+
if (req.query.refresh) {
|
|
105
|
+
invalidateAutomationRegistry();
|
|
106
|
+
}
|
|
107
|
+
const catalog = await getAutomationCatalog();
|
|
108
|
+
const result = Object.entries(catalog).map(([id, entry]) => ({ id, ...entry }));
|
|
109
|
+
return reply.code(200).send(result);
|
|
110
|
+
}
|
|
111
|
+
async storeItem(req, reply) {
|
|
112
|
+
const catalog = await getAutomationCatalog();
|
|
113
|
+
const entry = catalog[req.params.id];
|
|
114
|
+
if (!entry) {
|
|
115
|
+
return reply.code(404).send({ statusCode: 404, message: 'Automation not found in store' });
|
|
116
|
+
}
|
|
117
|
+
// the catalog stores the blueprint path as `blueprints/<file>`; only the basename is fetched
|
|
118
|
+
const file = entry.blueprint.split('/').pop() ?? '';
|
|
119
|
+
const blueprint = await getAutomationBlueprint(file);
|
|
120
|
+
if (!blueprint) {
|
|
121
|
+
return reply.code(404).send({ statusCode: 404, message: 'Blueprint not found in store' });
|
|
122
|
+
}
|
|
123
|
+
return reply.code(200).send({ id: req.params.id, ...entry, blueprint });
|
|
124
|
+
}
|
|
100
125
|
async trigger(req, reply) {
|
|
101
126
|
try {
|
|
102
127
|
const engine = container.resolve('automationEngine');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automations.controller.js","sourceRoot":"","sources":["../../../../../src/api/controllers/automations.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"automations.controller.js","sourceRoot":"","sources":["../../../../../src/api/controllers/automations.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
|
|
2
2
|
import type { DBCamera } from '../database/types.js';
|
|
3
|
-
import type { AuthLoginRequest, CameraLineInsertPatchRequest,
|
|
3
|
+
import type { AuthLoginRequest, CameraLineInsertPatchRequest, CameraProbeSourceQueryRequest, CameraSnapshotQueryRequest, CameraSourceParamsRequest, CameraZoneInsertPatchRequest, CamerasExtensionsParamsRequest, CamerasExtensionsRequest, CamerasInsertRequest, CamerasParamsIdRequest, CamerasParamsRequest, CamerasPatchRequest, CamerasPreviewRequest, CamerasSensorStorageParamsRequest, CamerasStreamRequest, PaginationRequest, StoragePatchRequest, StorageSetRequest, StorageSubmitRequest } from '../types/index.js';
|
|
4
4
|
export declare class CamerasController {
|
|
5
5
|
private app;
|
|
6
6
|
private api;
|
|
@@ -8,7 +8,6 @@ export declare class CamerasController {
|
|
|
8
8
|
private configService;
|
|
9
9
|
private service;
|
|
10
10
|
private pluginsService;
|
|
11
|
-
private proxyServer;
|
|
12
11
|
constructor(app: FastifyInstance);
|
|
13
12
|
listRooms(_req: FastifyRequest, reply: FastifyReply): FastifyReply;
|
|
14
13
|
getByName(req: FastifyRequest<AuthLoginRequest & CamerasParamsRequest>, reply: FastifyReply): FastifyReply;
|
|
@@ -26,12 +25,9 @@ export declare class CamerasController {
|
|
|
26
25
|
getSnapshotByName(req: FastifyRequest<AuthLoginRequest & CamerasParamsRequest & CameraSnapshotQueryRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
27
26
|
getSnapshotById(req: FastifyRequest<AuthLoginRequest & CamerasParamsIdRequest & CameraSnapshotQueryRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
28
27
|
insert(req: FastifyRequest<AuthLoginRequest & CamerasInsertRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
29
|
-
pairCamera(req: FastifyRequest<AuthLoginRequest & CameraPairRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
30
28
|
preview(req: FastifyRequest<AuthLoginRequest & CamerasPreviewRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
31
29
|
list(_req: FastifyRequest<AuthLoginRequest & PaginationRequest>, reply: FastifyReply): FastifyReply | DBCamera[];
|
|
32
30
|
getStreamUrl(req: FastifyRequest<CamerasStreamRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
33
|
-
getDiscoverSchema(req: FastifyRequest<AuthLoginRequest & Go2rtcDiscoverSchemaQueryRequest>, reply: FastifyReply): FastifyReply;
|
|
34
|
-
connectDiscoveredCamera(req: FastifyRequest<AuthLoginRequest & Go2rtcDiscoverConnectRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
35
31
|
patchByName(req: FastifyRequest<AuthLoginRequest & CamerasParamsRequest & CamerasPatchRequest>, reply: FastifyReply): Promise<FastifyReply | void>;
|
|
36
32
|
clearLog(req: FastifyRequest<AuthLoginRequest & CamerasParamsRequest>, reply: FastifyReply): FastifyReply | void;
|
|
37
33
|
downloadLog(req: FastifyRequest<AuthLoginRequest & CamerasParamsRequest>, reply: FastifyReply): FastifyReply | void;
|