@camera.ui/server 2.0.4 → 2.0.5

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.
Files changed (281) hide show
  1. package/dist/interface/assets/{404-B8P9h05I.js → 404-DRRPa9Hr.js} +1 -1
  2. package/dist/interface/assets/About-Db5MifHo.js +1 -0
  3. package/dist/interface/assets/{Adminpanel-BTIcUxWm.js → Adminpanel-ByDZ8Xpn.js} +1 -1
  4. package/dist/interface/assets/{Automation-BNbTehB5.js → Automation-BqJ8PyPa.js} +2 -2
  5. package/dist/interface/assets/{AutomationImport-BEm0hc0d.js → AutomationImport-BvuLSZcZ.js} +2 -2
  6. package/dist/interface/assets/{AutomationStore-qLsO1tHb.js → AutomationStore-Ca07W8uH.js} +2 -2
  7. package/dist/interface/assets/{AutomationStoreDetail-BAW2nfPd.js → AutomationStoreDetail-DmFvT2az.js} +2 -2
  8. package/dist/interface/assets/{Automations-CUCVYZSr.js → Automations-Dr8K-cDz.js} +2 -2
  9. package/dist/interface/assets/{Camera-eIsFEdVo.js → Camera-Bu1U8Oal.js} +2 -2
  10. package/dist/interface/assets/{CameraConsole-t6nY7h-V.js → CameraConsole-BcvP76iJ.js} +1 -1
  11. package/dist/interface/assets/{Cameras-Bswv6ojJ.js → Cameras-Dwr5fbzg.js} +2 -2
  12. package/dist/interface/assets/{Camview-DMywoy_4.js → Camview-F0vVBWeZ.js} +1 -1
  13. package/dist/interface/assets/Config-CIAVylkc.js +2 -0
  14. package/dist/interface/assets/{ConfigActionCameraControl-C0hvC4QW.js → ConfigActionCameraControl-C1dsQnYF.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionDelay-Rnxk--Qt.js → ConfigActionDelay-DTjjadCG.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionHttp-BF8vrrHR.js → ConfigActionHttp-IFqZaHDZ.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionImageInput-C8_H3ubM.js → ConfigActionImageInput-DY8RQJ2h.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionNotification-4VYN5Hkr.js → ConfigActionNotification-CJL8uNR-.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionOutput-CxB3eLLl.js → ConfigActionOutput-Butmz0jI.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionPlugin-DrPmBv9V.js → ConfigActionPlugin-D5oE8oXm.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionSensor-CyaEZRfx.js → ConfigActionSensor-CJ-mk6eS.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionSnapshot-l7VvnulO.js → ConfigActionSnapshot-DCCiYu-s.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionVariable-DIlUMHDy.js → ConfigActionVariable-F28sicqK.js} +1 -1
  24. package/dist/interface/assets/{ConfigConditionIfElse-0XRDQcTw.js → ConfigConditionIfElse-BJhRgP7t.js} +1 -1
  25. package/dist/interface/assets/{ConfigConditionSensorState-BvygRJ79.js → ConfigConditionSensorState-B6MdgPfo.js} +1 -1
  26. package/dist/interface/assets/{ConfigConditionSwitch-C7pp1EZI.js → ConfigConditionSwitch-BKToCaFK.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionTime-B0zctDc4.js → ConfigConditionTime-ChXeDbZB.js} +1 -1
  28. package/dist/interface/assets/{ConfigTriggerDetection-CKw-fo2n.js → ConfigTriggerDetection-BWd3QqYf.js} +1 -1
  29. package/dist/interface/assets/{ConfigTriggerGeofence-DjBRl2tE.js → ConfigTriggerGeofence-BoT9t-8V.js} +1 -1
  30. package/dist/interface/assets/{ConfigTriggerManual-BpBTh3CS.js → ConfigTriggerManual-Bt62nmi8.js} +1 -1
  31. package/dist/interface/assets/{ConfigTriggerSchedule-DZG10NcA.js → ConfigTriggerSchedule-oBDIqAMo.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerSensor-CpFa6nUj.js → ConfigTriggerSensor-BlTHlstZ.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerSystem-BsQElCAL.js → ConfigTriggerSystem--nEg_iQ0.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerWebhook-BKPOGAs3.js → ConfigTriggerWebhook-83rLUOjQ.js} +1 -1
  35. package/dist/interface/assets/{Console-DHlNpv-R.js → Console-2sHljg8h.js} +1 -1
  36. package/dist/interface/assets/{CuiActionButton-BSy6VaJ6.js → CuiActionButton-CNjL01gn.js} +1 -1
  37. package/dist/interface/assets/{CuiAvatar-8AhiddF1.js → CuiAvatar-BDT9c-UI.js} +1 -1
  38. package/dist/interface/assets/{CuiBBoxPlayground-BUPzZ0sI.js → CuiBBoxPlayground-CMnBcPwI.js} +1 -1
  39. package/dist/interface/assets/CuiBottomSheet-WuxFsOrw.js +1 -0
  40. package/dist/interface/assets/{CuiBottomSheet-BNCym-11.js → CuiBottomSheet-h5sjwTf4.js} +1 -1
  41. package/dist/interface/assets/{CuiCameraCard-BGAQxNHs.js → CuiCameraCard-Bip9OIZO.js} +1 -1
  42. package/dist/interface/assets/{CuiCameraPipCard-CUPWEo3r.js → CuiCameraPipCard-DElQvAB0.js} +1 -1
  43. package/dist/interface/assets/{CuiCameraRecordings-B25441dH.js → CuiCameraRecordings-Bf5IG7OM.js} +1 -1
  44. package/dist/interface/assets/{CuiCameraShares-oA3ockIQ.js → CuiCameraShares-Cw-Mffg8.js} +1 -1
  45. package/dist/interface/assets/{CuiCameraSnapshot-BLM8v7rY.js → CuiCameraSnapshot-BS-_U34M.js} +1 -1
  46. package/dist/interface/assets/{CuiCameraTable-3joRnfiM.js → CuiCameraTable-DY_unr4m.js} +1 -1
  47. package/dist/interface/assets/{CuiDataTable-DhnQRMXG.js → CuiDataTable-C5qi7zpz.js} +1 -1
  48. package/dist/interface/assets/{CuiFloatingButton-YIEmTfno.js → CuiFloatingButton-Pmur2pAJ.js} +1 -1
  49. package/dist/interface/assets/{CuiImage-CzYVSrkC.js → CuiImage-DVoYtgtl.js} +1 -1
  50. package/dist/interface/assets/{CuiMenu-CEaJl-MF.js → CuiMenu-B7AhQbgB.js} +1 -1
  51. package/dist/interface/assets/{CuiPluginCard-De_cbBBe.js → CuiPluginCard-B5PhaGoF.js} +2 -2
  52. package/dist/interface/assets/{CuiPluginCategoryChip-BwL2qCTM.js → CuiPluginCategoryChip-nEwIiKiK.js} +1 -1
  53. package/dist/interface/assets/{CuiPluginOAuthButton-BmBW2Pdf.js → CuiPluginOAuthButton-CJGsl-89.js} +2 -2
  54. package/dist/interface/assets/{CuiPluginTrustBadge-KcOasEJH.js → CuiPluginTrustBadge-DExKttfC.js} +1 -1
  55. package/dist/interface/assets/{CuiQRCode-BUSzb3ek.js → CuiQRCode-DkRZ5hfS.js} +1 -1
  56. package/dist/interface/assets/{CuiRecordingsGrid-DHSABYJb.js → CuiRecordingsGrid-mFXSsuG8.js} +1 -1
  57. package/dist/interface/assets/{CuiSchema-D35n-DE5.js → CuiSchema-BSv1nUun.js} +1 -1
  58. package/dist/interface/assets/{CuiTopNavbarItem-DVwItfbG.js → CuiTopNavbarItem-w21c3xtQ.js} +1 -1
  59. package/dist/interface/assets/{CuiTopbarSlot-h5_1cb9v.js → CuiTopbarSlot-CYPUqVPx.js} +1 -1
  60. package/dist/interface/assets/{Faces-BJlHL3gp.js → Faces-DLpVsIkY.js} +1 -1
  61. package/dist/interface/assets/{FirstSteps-D1Zf1CYN.js → FirstSteps-BDDy9x_6.js} +1 -1
  62. package/dist/interface/assets/{Instances-BNasTbK_.js → Instances-FeIAnJix.js} +1 -1
  63. package/dist/interface/assets/{Logs-CW5EqpAL.js → Logs-CIUyuGwj.js} +1 -1
  64. package/dist/interface/assets/{Menu-DTC3IWLc.js → Menu-Gqs2UiSW.js} +1 -1
  65. package/dist/interface/assets/{OAuthDeviceFlow-BOIY4kBt.js → OAuthDeviceFlow-hNJ_UrdG.js} +1 -1
  66. package/dist/interface/assets/{Plugin-DIPGTrNi.js → Plugin-BKItJas0.js} +1 -1
  67. package/dist/interface/assets/{PluginConsole-DwNRvKqW.js → PluginConsole-Bwd5Mktk.js} +1 -1
  68. package/dist/interface/assets/PluginDetail-BBh5y9qU.js +2 -0
  69. package/dist/interface/assets/{PluginSchema-DWnYqRll.js → PluginSchema-D92qcqf9.js} +1 -1
  70. package/dist/interface/assets/PluginSearch-BN3U3NY6.js +2 -0
  71. package/dist/interface/assets/PluginSearch-nHAFKMX0.js +1 -0
  72. package/dist/interface/assets/Plugins-gxyxkQ5i.js +1 -0
  73. package/dist/interface/assets/Recordings-B3Xw23vh.js +1 -0
  74. package/dist/interface/assets/{Settings-CfiNEl95.js → Settings-D2LHMohy2.js} +1 -1
  75. package/dist/interface/assets/SettingsAccount-DUN1oTTn.js +1 -0
  76. package/dist/interface/assets/{SettingsAccount-Ch2SR80X.js → SettingsAccount-b4eVxI3M.js} +1 -1
  77. package/dist/interface/assets/{SettingsAppearance-Ck4VcB-w.js → SettingsAppearance--Eidr-fz.js} +1 -1
  78. package/dist/interface/assets/SettingsAppearance-CLVMmnR_.js +1 -0
  79. package/dist/interface/assets/{SettingsBackup-BigThNuk.js → SettingsBackup-DUYVdKjD.js} +1 -1
  80. package/dist/interface/assets/{SettingsNotifications-XLBjwgwX.js → SettingsNotifications-xYOuLZsr.js} +1 -1
  81. package/dist/interface/assets/SettingsRecordings-BQDf4Zeg.js +1 -0
  82. package/dist/interface/assets/{SettingsRemote-B5jm7MdB.js → SettingsRemote-BXr1HLHm.js} +1 -1
  83. package/dist/interface/assets/SettingsSystem-DAjNwp4I.js +2 -0
  84. package/dist/interface/assets/{SettingsUsers-QuUercEC.js → SettingsUsers-DJ-eMMWe.js} +1 -1
  85. package/dist/interface/assets/{Terminal-BTfYdYuv.js → Terminal-P3yVGG8s.js} +1 -1
  86. package/dist/interface/assets/{VariableInput-DmE1m9Il.js → VariableInput-DdVw4SIR.js} +1 -1
  87. package/dist/interface/assets/{VariableSuggestions-eII-1Bd_.js → VariableSuggestions-SJPd5c8d.js} +1 -1
  88. package/dist/interface/assets/VersionsHandler-DcZ3RtHV.js +7 -0
  89. package/dist/interface/assets/{Workers-Bj_tLx-1.js → Workers-DWSJsRko.js} +1 -1
  90. package/dist/interface/assets/api-CKqAhmSC.css +2 -0
  91. package/dist/interface/assets/{api-CltBUyci.js → api-Cv3vt1pa.js} +1 -1
  92. package/dist/interface/assets/api-Ex2VUVD1.js +2 -0
  93. package/dist/interface/assets/{auth-BiWutL3Z.js → auth-W-JA6GOD.js} +1 -1
  94. package/dist/interface/assets/{automations-hsi5MCtT.js → automations-d_B5L3sO.js} +1 -1
  95. package/dist/interface/assets/{automations-73X55Wxy.js → automations-irBgx9Ew.js} +1 -1
  96. package/dist/interface/assets/{backup-CHJIDGvl.js → backup-BT-P0duG.js} +1 -1
  97. package/dist/interface/assets/{cameras-Crvf7J3t.js → cameras-DxjpuzW1.js} +1 -1
  98. package/dist/interface/assets/{cameras.schema-CQPF4BCK.js → cameras.schema-7ex1wBck.js} +1 -1
  99. package/dist/interface/assets/cloudHandoff-Cu1sRatW.js +1 -0
  100. package/dist/interface/assets/config-DwlSsbcP.js +1 -0
  101. package/dist/interface/assets/{deviceId-BJm8lmpp.js → deviceId-I24oaPe6.js} +1 -1
  102. package/dist/interface/assets/{hasPermission-LUHh3i2_.js → hasPermission-Cz0dkfyp.js} +1 -1
  103. package/dist/interface/assets/{instances-A-hAMJRC.js → instances-D6wHW9_0.js} +1 -1
  104. package/dist/interface/assets/main-C-WCGnJh.js +3 -0
  105. package/dist/interface/assets/{notifications-eX5p2YaS.js → notifications-DLNUbEKC.js} +1 -1
  106. package/dist/interface/assets/{plugins-DfuM5k5Q.js → plugins-D-tGC0mr.js} +1 -1
  107. package/dist/interface/assets/{round-restart-alt-rDMgoX7-.js → round-restart-alt-CaOjUTav.js} +1 -1
  108. package/dist/interface/assets/router-Cbt2STjH.js +2 -0
  109. package/dist/interface/assets/{routerState-DxipV4mY.js → routerState-_BXrxePY.js} +1 -1
  110. package/dist/interface/assets/{server-CoQ6jFok.js → server-ACfR-bOw.js} +1 -1
  111. package/dist/interface/assets/{shares-VWzmq1V-.js → shares-Ut3rTZUx.js} +1 -1
  112. package/dist/interface/assets/{theme-BzXEv5Er.js → theme-CDU91XW5.js} +1 -1
  113. package/dist/interface/assets/{types-CAW47AJe.js → types-Blh_1COV.js} +1 -1
  114. package/dist/interface/assets/{ui-Dg-QtLMl.js → ui-SZnjYe2F.js} +1 -1
  115. package/dist/interface/assets/useAppVersion-Bo_n0OVQ.js +1 -0
  116. package/dist/interface/assets/{useBiometricCredentials-Buylkybs.js → useBiometricCredentials-XyEQbPBo.js} +1 -1
  117. package/dist/interface/assets/{useCameraOptions-GAeXCTvO.js → useCameraOptions-C3-ZVV2A.js} +1 -1
  118. package/dist/interface/assets/{useCuiCameraDrawer-DwlhaZ2i.js → useCuiCameraDrawer-CebQFNWX.js} +1 -1
  119. package/dist/interface/assets/useCuiDialog-ClphnG79.js +2 -0
  120. package/dist/interface/assets/{useFileDownload-Bhdbhy_2.js → useFileDownload-CdDprX3v.js} +1 -1
  121. package/dist/interface/assets/{useLogsSocket-81hTPkwS.js → useLogsSocket-DKU0kKe_.js} +1 -1
  122. package/dist/interface/assets/{useServerRestart-3pT0h7CH.js → useServerRestart-CgCmTap7.js} +1 -1
  123. package/dist/interface/assets/{useSharedComposables-Ki01kFNJ.js → useSharedComposables-BcUR_c17.js} +1 -1
  124. package/dist/interface/assets/{useStreamStatus-CHITNYE7.js → useStreamStatus-BTa-XXZJ.js} +1 -1
  125. package/dist/interface/assets/useUpdateChannel-WznJBL9L.js +1 -0
  126. package/dist/interface/assets/{useUserOptions-CUvE4OL9.js → useUserOptions-DffxmIf7.js} +1 -1
  127. package/dist/interface/assets/{users.schema-DWL8-tZN.js → users.schema-BcwArBbH.js} +1 -1
  128. package/dist/interface/assets/{vendor-cameraui-DhctzD3V.js → vendor-cameraui-zHth8Pa5.js} +2 -2
  129. package/dist/interface/assets/{vendor-chart-BjXPY6za.js → vendor-chart-CTk1N5fJ.js} +1 -1
  130. package/dist/interface/assets/{vendor-core-DnC_SdtD.js → vendor-core-_UeC1YMQ.js} +1 -1
  131. package/dist/interface/assets/{vendor-primevue-OV61z06m.js → vendor-primevue-BXMgwPEu.js} +1 -1
  132. package/dist/interface/assets/{view-grid-_whxsqcn.js → view-grid-CX0RwdlE.js} +1 -1
  133. package/dist/interface/index.html +44 -43
  134. package/dist/interface/sw.js +1 -1
  135. package/dist/server/package.json +26 -16
  136. package/dist/server/requirements.txt +3 -2
  137. package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/signal_handler.py +17 -9
  138. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +10 -0
  139. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/event_emitter.py +45 -0
  140. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/storage/__init__.py +47 -12
  141. package/dist/server/src/api/controllers/plugins.controller.js +11 -3
  142. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  143. package/dist/server/src/api/schemas/cameras.schema.d.ts +27 -0
  144. package/dist/server/src/api/schemas/cameras.schema.js +6 -0
  145. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  146. package/dist/server/src/api/schemas/config.schema.d.ts +2 -0
  147. package/dist/server/src/api/schemas/config.schema.js +1 -0
  148. package/dist/server/src/api/schemas/config.schema.js.map +1 -1
  149. package/dist/server/src/api/services/plugins.service.js +1 -1
  150. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  151. package/dist/server/src/api.d.ts +1 -0
  152. package/dist/server/src/api.js +11 -3
  153. package/dist/server/src/api.js.map +1 -1
  154. package/dist/server/src/camera/decoder/ptz-autotracker.js +51 -78
  155. package/dist/server/src/camera/decoder/ptz-autotracker.js.map +1 -1
  156. package/dist/server/src/go2rtc/api/routes/streams.js +5 -6
  157. package/dist/server/src/go2rtc/api/routes/streams.js.map +1 -1
  158. package/dist/server/src/go2rtc/index.js +1 -0
  159. package/dist/server/src/go2rtc/index.js.map +1 -1
  160. package/dist/server/src/go2rtc/types.d.ts +3 -0
  161. package/dist/server/src/go2rtc/types.js.map +1 -1
  162. package/dist/server/src/main.js +1 -1
  163. package/dist/server/src/main.js.map +1 -1
  164. package/dist/server/src/manager/deviceManager.js +4 -1
  165. package/dist/server/src/manager/deviceManager.js.map +1 -1
  166. package/dist/server/src/manager/discoveryManager.d.ts +3 -2
  167. package/dist/server/src/manager/discoveryManager.js +58 -29
  168. package/dist/server/src/manager/discoveryManager.js.map +1 -1
  169. package/dist/server/src/plugins/config-store.d.ts +1 -1
  170. package/dist/server/src/plugins/config-store.js +17 -10
  171. package/dist/server/src/plugins/config-store.js.map +1 -1
  172. package/dist/server/src/plugins/index.d.ts +1 -0
  173. package/dist/server/src/plugins/index.js +38 -2
  174. package/dist/server/src/plugins/index.js.map +1 -1
  175. package/dist/server/src/plugins/runtime/base.js +10 -5
  176. package/dist/server/src/plugins/runtime/base.js.map +1 -1
  177. package/dist/server/src/plugins/runtime/go/index.js +1 -0
  178. package/dist/server/src/plugins/runtime/go/index.js.map +1 -1
  179. package/dist/server/src/plugins/runtime/node/child.d.ts +1 -0
  180. package/dist/server/src/plugins/runtime/node/child.js +62 -19
  181. package/dist/server/src/plugins/runtime/node/child.js.map +1 -1
  182. package/dist/server/src/plugins/runtime/node/configDb.d.ts +8 -0
  183. package/dist/server/src/plugins/runtime/node/configDb.js +15 -0
  184. package/dist/server/src/plugins/runtime/node/configDb.js.map +1 -1
  185. package/dist/server/src/plugins/runtime/node/pluginApi.d.ts +4 -0
  186. package/dist/server/src/plugins/runtime/node/pluginApi.js +13 -5
  187. package/dist/server/src/plugins/runtime/node/pluginApi.js.map +1 -1
  188. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.d.ts +1 -2
  189. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +2 -8
  190. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
  191. package/dist/server/src/plugins/runtime/node/proxy/coreManager.d.ts +3 -2
  192. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +9 -13
  193. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
  194. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.d.ts +3 -2
  195. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js +14 -12
  196. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js.map +1 -1
  197. package/dist/server/src/plugins/runtime/node/proxy/fileServe.js +4 -9
  198. package/dist/server/src/plugins/runtime/node/proxy/fileServe.js.map +1 -1
  199. package/dist/server/src/plugins/runtime/node/proxy/notificationManager.js +3 -0
  200. package/dist/server/src/plugins/runtime/node/proxy/notificationManager.js.map +1 -1
  201. package/dist/server/src/plugins/runtime/node/storage.d.ts +5 -2
  202. package/dist/server/src/plugins/runtime/node/storage.js +92 -67
  203. package/dist/server/src/plugins/runtime/node/storage.js.map +1 -1
  204. package/dist/server/src/plugins/runtime/node/storageController.d.ts +2 -0
  205. package/dist/server/src/plugins/runtime/node/storageController.js +12 -4
  206. package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -1
  207. package/dist/server/src/plugins/runtime/python/child.py +47 -38
  208. package/dist/server/src/plugins/runtime/python/config_db.py +28 -17
  209. package/dist/server/src/plugins/runtime/python/index.js +1 -0
  210. package/dist/server/src/plugins/runtime/python/index.js.map +1 -1
  211. package/dist/server/src/plugins/runtime/python/plugin_api.py +5 -5
  212. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +14 -13
  213. package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +11 -14
  214. package/dist/server/src/plugins/runtime/python/proxy/device_manager.py +23 -18
  215. package/dist/server/src/plugins/runtime/python/remote_urls.py +3 -7
  216. package/dist/server/src/plugins/runtime/python/storage.py +157 -126
  217. package/dist/server/src/plugins/runtime/python/storage_controller.py +28 -13
  218. package/dist/server/src/plugins/runtime/python/store.py +513 -0
  219. package/dist/server/src/plugins/runtime/python/store_migrate.py +59 -0
  220. package/dist/server/src/plugins/store/coalescingWriter.d.ts +7 -0
  221. package/dist/server/src/plugins/store/coalescingWriter.js +52 -0
  222. package/dist/server/src/plugins/store/coalescingWriter.js.map +1 -0
  223. package/dist/server/src/plugins/store/envelope.d.ts +5 -0
  224. package/dist/server/src/plugins/store/envelope.js +40 -0
  225. package/dist/server/src/plugins/store/envelope.js.map +1 -0
  226. package/dist/server/src/plugins/store/layout.d.ts +2 -0
  227. package/dist/server/src/plugins/store/layout.js +60 -0
  228. package/dist/server/src/plugins/store/layout.js.map +1 -0
  229. package/dist/server/src/plugins/store/location.d.ts +14 -0
  230. package/dist/server/src/plugins/store/location.js +55 -0
  231. package/dist/server/src/plugins/store/location.js.map +1 -0
  232. package/dist/server/src/plugins/store/migrate.d.ts +1 -0
  233. package/dist/server/src/plugins/store/migrate.js +22 -0
  234. package/dist/server/src/plugins/store/migrate.js.map +1 -0
  235. package/dist/server/src/plugins/store/pluginStoreFile.d.ts +14 -0
  236. package/dist/server/src/plugins/store/pluginStoreFile.js +58 -0
  237. package/dist/server/src/plugins/store/pluginStoreFile.js.map +1 -0
  238. package/dist/server/src/plugins/store/storeFile.d.ts +5 -0
  239. package/dist/server/src/plugins/store/storeFile.js +112 -0
  240. package/dist/server/src/plugins/store/storeFile.js.map +1 -0
  241. package/dist/server/src/plugins/store/validate.d.ts +1 -0
  242. package/dist/server/src/plugins/store/validate.js +49 -0
  243. package/dist/server/src/plugins/store/validate.js.map +1 -0
  244. package/dist/server/src/plugins/worker.js +9 -8
  245. package/dist/server/src/plugins/worker.js.map +1 -1
  246. package/dist/server/src/remote/services/cloudflare-managed.js +2 -2
  247. package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -1
  248. package/dist/server/src/remote/services/cloudflare.js +1 -0
  249. package/dist/server/src/remote/services/cloudflare.js.map +1 -1
  250. package/dist/server/src/remote/tunnel/client.js +1 -0
  251. package/dist/server/src/remote/tunnel/client.js.map +1 -1
  252. package/dist/server/src/rpc/server.js +12 -5
  253. package/dist/server/src/rpc/server.js.map +1 -1
  254. package/dist/server/src/services/config/defaults.js +1 -0
  255. package/dist/server/src/services/config/defaults.js.map +1 -1
  256. package/dist/server/src/services/config/types.d.ts +1 -0
  257. package/dist/server/src/utils/npm/index.d.ts +1 -1
  258. package/dist/server/src/utils/npm/index.js +7 -4
  259. package/dist/server/src/utils/npm/index.js.map +1 -1
  260. package/dist/server/src/workers/capabilities/plugin-host.js +1 -1
  261. package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -1
  262. package/package.json +26 -16
  263. package/dist/interface/assets/About-CjQs3rZw.js +0 -1
  264. package/dist/interface/assets/Config-C7H5amm4.js +0 -2
  265. package/dist/interface/assets/CuiBottomSheet-ChG_av5z.js +0 -1
  266. package/dist/interface/assets/PluginDetail-D1TJZJhY.js +0 -2
  267. package/dist/interface/assets/PluginSearch-C5bkQgYA.js +0 -1
  268. package/dist/interface/assets/PluginSearch-DqwgO886.js +0 -2
  269. package/dist/interface/assets/Plugins-o7IfSFjd.js +0 -1
  270. package/dist/interface/assets/Recordings-DTw5IG8W.js +0 -1
  271. package/dist/interface/assets/SettingsAccount-DIwWUyp6.js +0 -1
  272. package/dist/interface/assets/SettingsAppearance-CkF7biyP.js +0 -1
  273. package/dist/interface/assets/SettingsRecordings-Dp9tJdHk.js +0 -1
  274. package/dist/interface/assets/SettingsSystem-Isy5hiDl.js +0 -2
  275. package/dist/interface/assets/VersionsHandler-BYj7-lpw.js +0 -7
  276. package/dist/interface/assets/api-D7tGlI-z.css +0 -2
  277. package/dist/interface/assets/api-DoPgGqHU.js +0 -2
  278. package/dist/interface/assets/cloudHandoff-lLBGqrXl.js +0 -1
  279. package/dist/interface/assets/main-DEbfQmxF.js +0 -3
  280. package/dist/interface/assets/router-D1e_o7wa.js +0 -2
  281. package/dist/interface/assets/useCuiDialog-yRn5B1oO.js +0 -2
@@ -1 +1 @@
1
- import{Pt as e}from"./api-DoPgGqHU.js";async function t(t){return(await e.post(`/backup/download`,{localStorage:t},{responseType:`arraybuffer`})).data}async function n(t){return(await e.post(`/backup/restore`,t)).data}async function r(){return(await e.get(`/backup/scheduler`)).data}async function i(t){return(await e.patch(`/backup/scheduler`,t)).data}async function a(){return(await e.post(`/backup/scheduler/run`)).data}async function o(t){return(await e.get(`/backup/scheduler/backups/${encodeURIComponent(t)}`,{responseType:`arraybuffer`})).data}async function s(t){await e.delete(`/backup/scheduler/backups/${encodeURIComponent(t)}`)}export{i as a,r as i,t as n,n as o,o as r,a as s,s as t};
1
+ import{Pt as e}from"./api-Ex2VUVD1.js";async function t(t){return(await e.post(`/backup/download`,{localStorage:t},{responseType:`arraybuffer`})).data}async function n(t){return(await e.post(`/backup/restore`,t)).data}async function r(){return(await e.get(`/backup/scheduler`)).data}async function i(t){return(await e.patch(`/backup/scheduler`,t)).data}async function a(){return(await e.post(`/backup/scheduler/run`)).data}async function o(t){return(await e.get(`/backup/scheduler/backups/${encodeURIComponent(t)}`,{responseType:`arraybuffer`})).data}async function s(t){await e.delete(`/backup/scheduler/backups/${encodeURIComponent(t)}`)}export{i as a,r as i,t as n,n as o,o as r,a as s,s as t};
@@ -1 +1 @@
1
- import{D as e,O as t,Pt as n,T as r}from"./api-DoPgGqHU.js";import{J as i,Q as a,Sr as o,mr as s}from"./vendor-c9Zhw4pk.js";async function c({cameraData:e}){return(await n.post(`/cameras`,e)).data}async function l({cameraData:e}){return(await n.post(`/cameras/preview`,e)).data}async function u({signal:e}){return(await n.get(`/cameras/rooms`,{signal:e})).data}async function d({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}`,{signal:t})).data}async function f({cameraname:e}){return(await n.delete(`/cameras/${e}/log`)).data}async function p({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}/log/download`,{signal:t})).data}async function m({cameraname:e,sourcename:t,signal:r}){return(await n.get(`/cameras/${e}/info/${t}`,{signal:r})).data}async function h({cameraname:e,sourcename:t,probeConfig:r,force:i,signal:a}){return(await n.get(`/cameras/${e}/probe/${t}`,{params:{...r,...i?{refresh:!0}:{}},signal:a})).data}async function g({cameraname:e,forceNew:t,signal:r}){return(await n.get(`/cameras/${e}/snapshot`,{signal:r,params:{forceNew:t}})).data}async function _({parameter:e,signal:t}){return(await n.get(`/cameras`,{params:e,signal:t})).data}async function v({cameraname:e,cameraData:t}){return(await n.patch(`/cameras/${e}`,t)).data}async function y({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}/extensions`,{signal:t})).data}async function b({cameraname:e,pluginname:t,signal:r}){return(await n.get(`/cameras/${e}/${t}/config`,{signal:r})).data}async function x({cameraname:e,pluginname:t,configData:r}){return(await n.patch(`/cameras/${e}/${t}/config`,r)).data}async function S({cameraname:e,pluginname:t,configData:r}){return(await n.put(`/cameras/${e}/${t}/config`,r)).data}async function C({cameraname:e,pluginname:t,configData:r}){return(await n.post(`/cameras/${e}/${t}/config`,r)).data}async function w({cameraname:e,pluginname:t,sensorId:r,signal:i}){return(await n.get(`/cameras/${e}/${t}/sensor/${r}/config`,{signal:i})).data}async function T({cameraname:e,pluginname:t,sensorId:r,configData:i}){return(await n.patch(`/cameras/${e}/${t}/sensor/${r}/config`,i)).data}async function E({cameraname:e,pluginname:t,sensorId:r,configData:i}){return(await n.put(`/cameras/${e}/${t}/sensor/${r}/config`,i)).data}async function D({cameraname:e,pluginname:t,sensorId:r,configData:i}){return(await n.post(`/cameras/${e}/${t}/sensor/${r}/config`,i)).data}async function O({cameraname:e,pluginname:t,type:r}){return(await n.put(`/cameras/${e}/${t}/enable`,null,{params:{type:r}})).data}async function k({cameraname:e,pluginname:t,type:r}){return(await n.put(`/cameras/${e}/${t}/disable`,null,{params:{type:r}})).data}async function A({cameraname:e,pluginname:t,type:r}){return(await n.post(`/cameras/${e}/${t}`,null,{params:{type:r}})).data}async function j({cameraname:e,pluginname:t,type:r}){return(await n.delete(`/cameras/${e}/${t}`,{params:{type:r}})).data}async function M({cameraname:e,pluginname:t}){return(await n.post(`/cameras/${e}/${t}/activate`)).data}async function N({cameraname:e,pluginname:t}){return(await n.delete(`/cameras/${e}/${t}/deactivate`)).data}async function P({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}/zones`,{signal:t})).data}async function F({cameraname:e,zoneData:t}){return(await n.patch(`/cameras/${e}/zones`,t)).data}async function I({cameraname:e,lineData:t}){return(await n.patch(`/cameras/${e}/lines`,t)).data}async function L({cameraname:e}){return(await n.delete(`/cameras/${e}`)).data}async function R(){return(await n.delete(`/cameras`)).data}var z=class{_queryClient=a();t=t.global.t;toast=e();queryActivator=s([{name:`getCameraQuery`,enabled:!0},{name:`getCamerasQuery`,enabled:!0},{name:`getCameraSnapshotQuery`,enabled:!0},{name:`getCameraExtensionsQuery`,enabled:!0},{name:`getCameraExtensionConfigQuery`,enabled:!0},{name:`getZonesQuery`,enabled:!0},{name:`streamSourceInfoQuery`,enabled:!0},{name:`probeCameraSourceQuery`,enabled:!0},{name:`downloadLogQuery`,enabled:!0},{name:`getSensorConfigQuery`,enabled:!0}]);get queryClient(){return this._queryClient}createCameraQuery(){return i({mutationFn:c,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_added`),life:3e3})}})}previewCameraQuery(){return i({mutationFn:l})}getCameraQuery(e){return r({queryKey:[`cameras`,e],queryFn:({signal:t})=>d({cameraname:o(e),signal:t}),initialData:()=>{let t=o(e),n=this._queryClient.getQueriesData({queryKey:[`camerasList`]});for(let[,e]of n){let n=e?.result?.find(e=>e.name===t);if(n)return n}},initialDataUpdatedAt:0,enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraQuery`&&e.enabled)})}getCameraExtensionsQuery(e){return r({queryKey:[`camerasExtensions`,e],queryFn:({signal:t})=>y({cameraname:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraExtensionsQuery`&&e.enabled)})}streamSourceInfoQuery(e,t){return r({queryKey:[`cameras`,e,`info`,t],queryFn:({signal:n})=>m({cameraname:o(e),sourcename:o(t),signal:n}),enabled:()=>this.queryActivator.value.some(e=>e.name===`streamSourceInfoQuery`&&e.enabled)})}probeCameraSourceQuery(e,t,n){return r({queryKey:[`cameras`,e,`probe`,t],queryFn:({signal:r})=>h({cameraname:o(e),sourcename:o(t),probeConfig:o(n),signal:r}),enabled:()=>this.queryActivator.value.some(e=>e.name===`probeCameraSourceQuery`&&e.enabled)})}getCameraSnapshotQuery(e,t){return r({queryKey:[`camerasSnapshot`,e],queryFn:({signal:n})=>g({cameraname:o(e),forceNew:o(t),signal:n}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraSnapshotQuery`&&e.enabled),retry:!1})}getCamerasQuery(e){return r({queryKey:[`camerasList`,e],queryFn:({signal:t})=>_({parameter:o(e),signal:t}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getCamerasQuery`&&e.enabled)})}getRoomsQuery(){return r({queryKey:[`camerasRooms`],queryFn:({signal:e})=>u({signal:e})})}patchCameraQuery(){return i({mutationFn:v,onSuccess:async(e,t)=>{let n=t.cameraData.name&&t.cameraData.name!==t.cameraname,r=t.cameraData.room!==void 0;if(n){let e=t.cameraname;await this._queryClient.invalidateQueries({queryKey:[e]}),await this._queryClient.refetchQueries({queryKey:[`camerasList`]})}else await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),r&&(await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),await this._queryClient.refetchQueries({queryKey:[`camerasRooms`]}));this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_updated`),life:3e3})}})}getCameraExtensionConfigQuery(e,t,n){return r({queryKey:[`cameras`,`extensions`,e,t],queryFn:({signal:n})=>b({cameraname:o(e),pluginname:o(t),signal:n}),enabled:()=>!!o(t)&&this.queryActivator.value.some(e=>e.name===`getCameraExtensionConfigQuery`&&e.enabled),refetchInterval(){if(n.value)return 1e4},retry:10,retryDelay:500,staleTime:0})}patchCameraExtensionConfigQuery(){return i({mutationFn:x,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}setCameraExtensionConfigQuery(){return i({mutationFn:S,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}submitCameraExtensionConfigQuery(){return i({mutationFn:C,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}getSensorConfigQuery(e,t,n,i){return r({queryKey:[`cameras`,`sensor`,e,t,n],queryFn:({signal:r})=>w({cameraname:o(e),pluginname:o(t),sensorId:o(n),signal:r}),enabled:()=>{let e=o(t),r=o(n);return!e||!r?!1:this.queryActivator.value.some(e=>e.name===`getSensorConfigQuery`&&e.enabled)},refetchInterval(){if(i.value)return 1e4},retry:3,retryDelay:500,staleTime:0})}patchSensorConfigQuery(){return i({mutationFn:T,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}setSensorConfigQuery(){return i({mutationFn:E,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}submitSensorConfigQuery(){return i({mutationFn:D,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}enableCameraExtensionQuery(){return i({mutationFn:O,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}disableCameraExtensionQuery(){return i({mutationFn:k,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}addCameraExtensionQuery(){return i({mutationFn:A,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}activateCameraExtensionQuery(){return i({mutationFn:M,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}deactivateCameraExtensionQuery(){return i({mutationFn:N,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}getZonesQuery(e){return r({queryKey:[`cameras`,e,`zones`],queryFn:({signal:t})=>P({cameraname:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getZonesQuery`&&e.enabled)})}patchZonesQuery(){return i({mutationFn:F,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.zone_updated`),life:3e3})}})}patchLinesQuery(){return i({mutationFn:I,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.line_updated`),life:3e3})}})}removeCameraExtensionQuery(){return i({mutationFn:j,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}removeCameraQuery(){return i({mutationFn:L,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_removed`),life:3e3})}})}removeCamerasQuery(){return i({mutationFn:R,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.cameras_removed`),life:3e3})}})}downloadLogQuery(e){return r({queryKey:[`logs`,e],queryFn:({signal:t})=>p({cameraname:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`downloadLogQuery`&&e.enabled)})}clearLogQuery(){return i({mutationFn:f,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`logs`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.log_cleared`),life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{h as a,d as i,f as n,p as r,z as t};
1
+ import{D as e,O as t,Pt as n,T as r}from"./api-Ex2VUVD1.js";import{J as i,Q as a,Sr as o,mr as s}from"./vendor-c9Zhw4pk.js";async function c({cameraData:e}){return(await n.post(`/cameras`,e)).data}async function l({cameraData:e}){return(await n.post(`/cameras/preview`,e)).data}async function u({signal:e}){return(await n.get(`/cameras/rooms`,{signal:e})).data}async function d({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}`,{signal:t})).data}async function f({cameraname:e}){return(await n.delete(`/cameras/${e}/log`)).data}async function p({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}/log/download`,{signal:t})).data}async function m({cameraname:e,sourcename:t,signal:r}){return(await n.get(`/cameras/${e}/info/${t}`,{signal:r})).data}async function h({cameraname:e,sourcename:t,probeConfig:r,force:i,signal:a}){return(await n.get(`/cameras/${e}/probe/${t}`,{params:{...r,...i?{refresh:!0}:{}},signal:a})).data}async function g({cameraname:e,forceNew:t,signal:r}){return(await n.get(`/cameras/${e}/snapshot`,{signal:r,params:{forceNew:t}})).data}async function _({parameter:e,signal:t}){return(await n.get(`/cameras`,{params:e,signal:t})).data}async function v({cameraname:e,cameraData:t}){return(await n.patch(`/cameras/${e}`,t)).data}async function y({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}/extensions`,{signal:t})).data}async function b({cameraname:e,pluginname:t,signal:r}){return(await n.get(`/cameras/${e}/${t}/config`,{signal:r})).data}async function x({cameraname:e,pluginname:t,configData:r}){return(await n.patch(`/cameras/${e}/${t}/config`,r)).data}async function S({cameraname:e,pluginname:t,configData:r}){return(await n.put(`/cameras/${e}/${t}/config`,r)).data}async function C({cameraname:e,pluginname:t,configData:r}){return(await n.post(`/cameras/${e}/${t}/config`,r)).data}async function w({cameraname:e,pluginname:t,sensorId:r,signal:i}){return(await n.get(`/cameras/${e}/${t}/sensor/${r}/config`,{signal:i})).data}async function T({cameraname:e,pluginname:t,sensorId:r,configData:i}){return(await n.patch(`/cameras/${e}/${t}/sensor/${r}/config`,i)).data}async function E({cameraname:e,pluginname:t,sensorId:r,configData:i}){return(await n.put(`/cameras/${e}/${t}/sensor/${r}/config`,i)).data}async function D({cameraname:e,pluginname:t,sensorId:r,configData:i}){return(await n.post(`/cameras/${e}/${t}/sensor/${r}/config`,i)).data}async function O({cameraname:e,pluginname:t,type:r}){return(await n.put(`/cameras/${e}/${t}/enable`,null,{params:{type:r}})).data}async function k({cameraname:e,pluginname:t,type:r}){return(await n.put(`/cameras/${e}/${t}/disable`,null,{params:{type:r}})).data}async function A({cameraname:e,pluginname:t,type:r}){return(await n.post(`/cameras/${e}/${t}`,null,{params:{type:r}})).data}async function j({cameraname:e,pluginname:t,type:r}){return(await n.delete(`/cameras/${e}/${t}`,{params:{type:r}})).data}async function M({cameraname:e,pluginname:t}){return(await n.post(`/cameras/${e}/${t}/activate`)).data}async function N({cameraname:e,pluginname:t}){return(await n.delete(`/cameras/${e}/${t}/deactivate`)).data}async function P({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}/zones`,{signal:t})).data}async function F({cameraname:e,zoneData:t}){return(await n.patch(`/cameras/${e}/zones`,t)).data}async function I({cameraname:e,lineData:t}){return(await n.patch(`/cameras/${e}/lines`,t)).data}async function L({cameraname:e}){return(await n.delete(`/cameras/${e}`)).data}async function R(){return(await n.delete(`/cameras`)).data}var z=class{_queryClient=a();t=t.global.t;toast=e();queryActivator=s([{name:`getCameraQuery`,enabled:!0},{name:`getCamerasQuery`,enabled:!0},{name:`getCameraSnapshotQuery`,enabled:!0},{name:`getCameraExtensionsQuery`,enabled:!0},{name:`getCameraExtensionConfigQuery`,enabled:!0},{name:`getZonesQuery`,enabled:!0},{name:`streamSourceInfoQuery`,enabled:!0},{name:`probeCameraSourceQuery`,enabled:!0},{name:`downloadLogQuery`,enabled:!0},{name:`getSensorConfigQuery`,enabled:!0}]);get queryClient(){return this._queryClient}createCameraQuery(){return i({mutationFn:c,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_added`),life:3e3})}})}previewCameraQuery(){return i({mutationFn:l})}getCameraQuery(e){return r({queryKey:[`cameras`,e],queryFn:({signal:t})=>d({cameraname:o(e),signal:t}),initialData:()=>{let t=o(e),n=this._queryClient.getQueriesData({queryKey:[`camerasList`]});for(let[,e]of n){let n=e?.result?.find(e=>e.name===t);if(n)return n}},initialDataUpdatedAt:0,enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraQuery`&&e.enabled)})}getCameraExtensionsQuery(e){return r({queryKey:[`camerasExtensions`,e],queryFn:({signal:t})=>y({cameraname:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraExtensionsQuery`&&e.enabled)})}streamSourceInfoQuery(e,t){return r({queryKey:[`cameras`,e,`info`,t],queryFn:({signal:n})=>m({cameraname:o(e),sourcename:o(t),signal:n}),enabled:()=>this.queryActivator.value.some(e=>e.name===`streamSourceInfoQuery`&&e.enabled)})}probeCameraSourceQuery(e,t,n){return r({queryKey:[`cameras`,e,`probe`,t],queryFn:({signal:r})=>h({cameraname:o(e),sourcename:o(t),probeConfig:o(n),signal:r}),enabled:()=>this.queryActivator.value.some(e=>e.name===`probeCameraSourceQuery`&&e.enabled)})}getCameraSnapshotQuery(e,t){return r({queryKey:[`camerasSnapshot`,e],queryFn:({signal:n})=>g({cameraname:o(e),forceNew:o(t),signal:n}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraSnapshotQuery`&&e.enabled),retry:!1})}getCamerasQuery(e){return r({queryKey:[`camerasList`,e],queryFn:({signal:t})=>_({parameter:o(e),signal:t}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getCamerasQuery`&&e.enabled)})}getRoomsQuery(){return r({queryKey:[`camerasRooms`],queryFn:({signal:e})=>u({signal:e})})}patchCameraQuery(){return i({mutationFn:v,onSuccess:async(e,t)=>{let n=t.cameraData.name&&t.cameraData.name!==t.cameraname,r=t.cameraData.room!==void 0;if(n){let e=t.cameraname;await this._queryClient.invalidateQueries({queryKey:[e]}),await this._queryClient.refetchQueries({queryKey:[`camerasList`]})}else await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),r&&(await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),await this._queryClient.refetchQueries({queryKey:[`camerasRooms`]}));this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_updated`),life:3e3})}})}getCameraExtensionConfigQuery(e,t,n){return r({queryKey:[`cameras`,`extensions`,e,t],queryFn:({signal:n})=>b({cameraname:o(e),pluginname:o(t),signal:n}),enabled:()=>!!o(t)&&this.queryActivator.value.some(e=>e.name===`getCameraExtensionConfigQuery`&&e.enabled),refetchInterval(){if(n.value)return 1e4},retry:10,retryDelay:500,staleTime:0})}patchCameraExtensionConfigQuery(){return i({mutationFn:x,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}setCameraExtensionConfigQuery(){return i({mutationFn:S,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}submitCameraExtensionConfigQuery(){return i({mutationFn:C,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}getSensorConfigQuery(e,t,n,i){return r({queryKey:[`cameras`,`sensor`,e,t,n],queryFn:({signal:r})=>w({cameraname:o(e),pluginname:o(t),sensorId:o(n),signal:r}),enabled:()=>{let e=o(t),r=o(n);return!e||!r?!1:this.queryActivator.value.some(e=>e.name===`getSensorConfigQuery`&&e.enabled)},refetchInterval(){if(i.value)return 1e4},retry:3,retryDelay:500,staleTime:0})}patchSensorConfigQuery(){return i({mutationFn:T,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}setSensorConfigQuery(){return i({mutationFn:E,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}submitSensorConfigQuery(){return i({mutationFn:D,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}enableCameraExtensionQuery(){return i({mutationFn:O,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}disableCameraExtensionQuery(){return i({mutationFn:k,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}addCameraExtensionQuery(){return i({mutationFn:A,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}activateCameraExtensionQuery(){return i({mutationFn:M,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}deactivateCameraExtensionQuery(){return i({mutationFn:N,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}getZonesQuery(e){return r({queryKey:[`cameras`,e,`zones`],queryFn:({signal:t})=>P({cameraname:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getZonesQuery`&&e.enabled)})}patchZonesQuery(){return i({mutationFn:F,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.zone_updated`),life:3e3})}})}patchLinesQuery(){return i({mutationFn:I,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.line_updated`),life:3e3})}})}removeCameraExtensionQuery(){return i({mutationFn:j,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}removeCameraQuery(){return i({mutationFn:L,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_removed`),life:3e3})}})}removeCamerasQuery(){return i({mutationFn:R,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.cameras_removed`),life:3e3})}})}downloadLogQuery(e){return r({queryKey:[`logs`,e],queryFn:({signal:t})=>p({cameraname:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`downloadLogQuery`&&e.enabled)})}clearLogQuery(){return i({mutationFn:f,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`logs`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.log_cleared`),life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{h as a,d as i,f as n,p as r,z as t};
@@ -1 +1 @@
1
- import{O as e}from"./vendor-cameraui-DhctzD3V.js";import{Ct as t,Dt as n,Et as r,St as i,Tt as a,wt as o}from"./api-DoPgGqHU.js";import{Er as s,Sr as c,dn as l,lr as u,mn as d,mr as f,xn as p,yn as m,zn as h}from"./vendor-c9Zhw4pk.js";import{n as g,r as _,t as v}from"./vendor-zod-XsuaxHRY.js";var y={class:`flex flex-col gap-2 w-full`},b={for:`roomName`,class:`cui-label`},x=p({__name:`CreateRoom`,setup(t,{expose:n}){let r=f(``);return n({onConfirm:async()=>r.value.trim()||null}),(t,n)=>{let i=e;return h(),d(`div`,y,[l(`label`,b,s(t.$t(`components.form.label.name`)),1),m(i,{id:`roomName`,modelValue:c(r),"onUpdate:modelValue":n[0]||=e=>u(r)?r.value=e:null,class:`w-full`,placeholder:t.$t(`components.form.hint.room_select`),autofocus:``},null,8,[`modelValue`,`placeholder`])])}}}),S=g({protocol:a,url:_().trim().min(1,`Camera Source is required`).array().nonempty(`Camera Source is required`)}).strict(),C=g({name:_().trim().min(1,`Camera Source Name is required`),urls:S.array(),role:r,useForSnapshot:v().default(!1),hotMode:v().default(!0),preload:v().default(!0),childSourceId:_().trim().optional()}).strict(),w=g({...i.shape,sources:C.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.useForSnapshot),{message:`Snapshot source can not be used with useForSnapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.hotMode),{message:`Snapshot source can not be used with hotMode`}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.preload),{message:`Snapshot source can not be used with preload`}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]})}).strict(),T=n,E=o,D=t;export{x as a,T as i,E as n,w as r,D as t};
1
+ import{O as e}from"./vendor-cameraui-zHth8Pa5.js";import{Ct as t,Dt as n,Et as r,St as i,Tt as a,wt as o}from"./api-Ex2VUVD1.js";import{Er as s,Sr as c,dn as l,lr as u,mn as d,mr as f,xn as p,yn as m,zn as h}from"./vendor-c9Zhw4pk.js";import{n as g,r as _,t as v}from"./vendor-zod-XsuaxHRY.js";var y={class:`flex flex-col gap-2 w-full`},b={for:`roomName`,class:`cui-label`},x=p({__name:`CreateRoom`,setup(t,{expose:n}){let r=f(``);return n({onConfirm:async()=>r.value.trim()||null}),(t,n)=>{let i=e;return h(),d(`div`,y,[l(`label`,b,s(t.$t(`components.form.label.name`)),1),m(i,{id:`roomName`,modelValue:c(r),"onUpdate:modelValue":n[0]||=e=>u(r)?r.value=e:null,class:`w-full`,placeholder:t.$t(`components.form.hint.room_select`),autofocus:``},null,8,[`modelValue`,`placeholder`])])}}}),S=g({protocol:a,url:_().trim().min(1,`Camera Source is required`).array().nonempty(`Camera Source is required`)}).strict(),C=g({name:_().trim().min(1,`Camera Source Name is required`),urls:S.array(),role:r,useForSnapshot:v().default(!1),hotMode:v().default(!0),preload:v().default(!0),childSourceId:_().trim().optional()}).strict(),w=g({...i.shape,sources:C.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.useForSnapshot),{message:`Snapshot source can not be used with useForSnapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.hotMode),{message:`Snapshot source can not be used with hotMode`}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.preload),{message:`Snapshot source can not be used with preload`}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]})}).strict(),T=n,E=o,D=t;export{x as a,T as i,E as n,w as r,D as t};
@@ -0,0 +1 @@
1
+ import{_ as e}from"./api-Ex2VUVD1.js";export{e as bounceToCloudFrontend};
@@ -0,0 +1 @@
1
+ import{D as e,O as t,Pt as n,T as r}from"./api-Ex2VUVD1.js";import{J as i,Q as a,Sr as o,mr as s}from"./vendor-c9Zhw4pk.js";async function c({json:e,signal:t}){return(await n.get(`/config`,{params:{json:e},signal:t})).data}async function l({json:e,signal:t}){return(await n.get(`/config/go2rtc`,{params:{json:e},signal:t})).data}async function u({configData:e}){return(await n.patch(`/config`,e,{headers:{"Content-Type":`text/yaml`}})).data}async function d({configData:e}){return(await n.patch(`/config/go2rtc`,e,{headers:{"Content-Type":`text/yaml`}})).data}async function f(){return(await n.delete(`/config`)).data}async function p(){return(await n.delete(`/config/go2rtc`)).data}var m=class{_queryClient=a();t=t.global.t;toast=e();queryActivator=s([{name:`getConfigQuery`,enabled:!0},{name:`getGo2RtcConfigQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getConfigQuery(e=!1){return r({queryKey:[`config`,{json:e}],queryFn:({signal:t})=>c({json:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConfigQuery`&&e.enabled)})}getGo2RtcConfigQuery(e=!1){return r({queryKey:[`go2rtcConfig`],queryFn:({signal:t})=>l({json:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getGo2RtcConfigQuery`&&e.enabled)})}patchConfigQuery(){return i({mutationFn:u,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`config`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_updated`),life:3e3})}})}patchGo2RtcConfigQuery(){return i({mutationFn:d,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`go2rtcConfig`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_go2rtc_updated`),life:3e3})}})}delteConfigQuery(){return i({mutationFn:f,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`config`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_deleted`),life:3e3})}})}delteGo2RtcConfigQuery(){return i({mutationFn:p,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`go2rtcConfig`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_go2rtc_deleted`),life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{m as t};
@@ -1 +1 @@
1
- import"./api-DoPgGqHU.js";import"./vendor-c9Zhw4pk.js";var e=`cameraui:web-push-id`;function t(){if(typeof crypto<`u`&&typeof crypto.randomUUID==`function`)return crypto.randomUUID();if(typeof window<`u`&&window.crypto!==void 0&&typeof window.crypto.randomUUID==`function`)return window.crypto.randomUUID();let e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}async function n(){let n=localStorage.getItem(e);return n||(n=t(),localStorage.setItem(e,n)),n}export{n,t};
1
+ import"./api-Ex2VUVD1.js";import"./vendor-c9Zhw4pk.js";var e=`cameraui:web-push-id`;function t(){if(typeof crypto<`u`&&typeof crypto.randomUUID==`function`)return crypto.randomUUID();if(typeof window<`u`&&window.crypto!==void 0&&typeof window.crypto.randomUUID==`function`)return window.crypto.randomUUID();let e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}async function n(){let n=localStorage.getItem(e);return n||(n=t(),localStorage.setItem(e,n)),n}export{n,t};
@@ -1 +1 @@
1
- import{m as e}from"./api-DoPgGqHU.js";import{c as t,f as n}from"./vendor-core-DnC_SdtD.js";var r={user:0,admin:1,master:2};function i(e,t){return(r[e]??0)>=(r[t]??0)}function a(r,a,o){let{user:s}=n(e()),c=s.value?.role??`user`;if(a&&!r)return o?c===a:i(c,a);r??=t();let l=!r?.meta?.auth||r?.meta?.auth.requiresAuth===!1,u=a??r.meta?.auth?.role??`user`;return l||u===`none`?!0:o?c===u:i(c,u)}export{a as t};
1
+ import{m as e}from"./api-Ex2VUVD1.js";import{c as t,f as n}from"./vendor-core-_UeC1YMQ.js";var r={user:0,admin:1,master:2};function i(e,t){return(r[e]??0)>=(r[t]??0)}function a(r,a,o){let{user:s}=n(e()),c=s.value?.role??`user`;if(a&&!r)return o?c===a:i(c,a);r??=t();let l=!r?.meta?.auth||r?.meta?.auth.requiresAuth===!1,u=a??r.meta?.auth?.role??`user`;return l||u===`none`?!0:o?c===u:i(c,u)}export{a as t};
@@ -1 +1 @@
1
- import{Oi as e,Ri as t,o as n,rt as r,y as i}from"./vendor-cameraui-DhctzD3V.js";import{At as a,D as o,Ft as s,Lt as c,O as l,Pt as u,T as d,m as f}from"./api-DoPgGqHU.js";import{J as p,Q as m,Y as h,dn as g,mn as _,mr as v,pr as y,un as b,ur as x,xr as S,zn as C}from"./vendor-c9Zhw4pk.js";import{d as w,l as ee}from"./vendor-core-DnC_SdtD.js";import{t as te}from"./hasPermission-LUHh3i2_.js";import{t as T}from"./useCuiDialog-yRn5B1oO.js";var E={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function D(e,t){return C(),_(`svg`,E,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M20.916 9.564a1 1 0 0 0-.513-1.316L7.328 2.492c-.995-.438-2.22.051-2.645 1.042l-2.21 5.154a2 2 0 0 0 1.052 2.624L9.563 13.9L8.323 17H4v-3H2v8h2v-3h4.323c.823 0 1.552-.494 1.856-1.258l1.222-3.054l5.205 2.23a1 1 0 0 0 1.31-.517l.312-.71l1.701.68l2-5l-1.536-.613zm-4.434 5.126L4.313 9.475l2.208-5.152l12.162 5.354z`},null,-1)]])}var O=x({name:`bx-cctv`,render:D}),k={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function A(e,t){return C(),_(`svg`,k,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M20 3H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m-5 5h-2V6h2zm4 0h-2V6h2zm1 5H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2m-5 5h-2v-2h2zm4 0h-2v-2h2z`},null,-1)]])}var j=x({name:`bxs-server`,render:A});async function M(e){return(await u.get(`/instances`,{signal:e})).data}async function N(e){return(await u.post(`/instances`,e)).data}async function P({id:e,data:t}){return(await u.put(`/instances/${e}`,t)).data}async function F(e){await u.delete(`/instances/${e}`)}async function I(e){return(await u.patch(`/instances/${e}/favorite`)).data}async function L(e){return(await u.post(`/instances/${e}/login`)).data}async function R(e,t){return(await u.get(`/instances/${e}/status`,{signal:t})).data}var z=class{_queryClient=m();toast=o();t=l.global.t;listQuery(){return d({queryKey:[`instances`],queryFn:({signal:e})=>M(e)})}statusQueries(e){return h({queries:b(()=>S(e).map(e=>({queryKey:[`instances`,e.id,`status`],queryFn:({signal:t})=>R(e.id,t),refetchInterval:15e3,retry:!1})))})}createMutation(){return p({mutationFn:N,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.added`),life:3e3})}})}updateMutation(){return p({mutationFn:P,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.updated`),life:3e3})}})}deleteMutation(){return p({mutationFn:async e=>{await F(e),await this._queryClient.cancelQueries({queryKey:[`instances`,e,`status`]}),this._queryClient.removeQueries({queryKey:[`instances`,e,`status`]})},onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.removed`),life:3e3})}})}toggleFavoriteMutation(){return p({mutationFn:I,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]})}})}loginMutation(){return p({mutationFn:L,onError:()=>{}})}},B=3e4,V=5e3,H=`__home__`,U=new Set([`localhost`,`127.0.0.1`,`::1`]),W=a(`Instances`);async function G(e,t){try{let n=AbortSignal.timeout(V),r=t?AbortSignal.any([n,t]):n,i=await fetch(`${e}/api/health`,{signal:r});return W.debug(`[probe]`,`${e} → ${i.ok?`OK`:`HTTP ${i.status}`}`),i.ok}catch(t){let n=t instanceof Error?t.message:String(t);return W.debug(`[probe]`,`${e} → FAIL`,n),!1}}function K(e){return{access:e.access_token,accessExpiresAt:e.access_token_expires_at,refresh:e.refresh_token,refreshExpiresAt:e.refresh_token_expires_at}}function ne(e,t){return{_id:t?._id??``,username:t?.username??``,email:t?.email,role:t?.role??``,firstLogin:t?.firstLogin,avatar:t?.avatar,language:`auto`,access_token:e.access,refresh_token:e.refresh??``,token_type:`Bearer`,access_token_expires_at:e.accessExpiresAt??0,refresh_token_expires_at:e.refreshExpiresAt??0,internalAddresses:[],externalAddresses:[]}}var q=w(`instances`,()=>{let a=f(),u=ee(),d=o(),p=T(),h=m(),{t:g}=l.global,_=e(`instanceTokens`,{}),x=e(`activeInstanceId`,null),S=v(!1),C=v(null),w=v(0),E=0,D=v(null),O=v([]),k=t(`redirectInfo`,null,{serializer:{read:e=>e?JSON.parse(e):null,write:e=>JSON.stringify(e)}}),A=b(()=>x.value===null),j=b(()=>x.value===null?null:O.value.find(e=>e.id===x.value)?.url??null);async function R(){try{if(!te(void 0,`admin`))return;let e=await M();O.value=e.instances,D.value=e.homeId,W.debug(`[fetch]`,`loaded ${e.instances.length} instances`,{homeId:e.homeId})}catch(e){W.warn(`[fetch]`,`failed`,e)}}let z=b(()=>{let e=D.value;return O.value.filter(t=>!(e&&t.remoteHomeId&&t.remoteHomeId===e)).map(e=>{let t=_.value[e.id];return{id:e.id,name:e.name,url:e.url,hasCredentials:!!e.credentials,favorite:e.favorite??!0,userData:t?.userData??null,lastConnectedAt:t?.lastConnectedAt??null,isHome:!1}})});function V(){let e=_.value[H],t=x.value===null?s().target.value?.endpoint.url??e?.url??window.location.origin:e?.url??window.location.origin;return{id:`home`,name:g(`navigation.home`),url:t,hasCredentials:!1,favorite:!1,userData:e?.userData??null,lastConnectedAt:e?.lastConnectedAt??null,isHome:!0}}let q=b(()=>{if(x.value!==null){let e=z.value.find(e=>e.id===x.value);if(e)return e}return V()}),J=b(()=>z.value.filter(e=>e.favorite)),Y=b(()=>J.value.length>0||x.value!==null||k.value!==null);function X(e){return O.value.find(t=>t.id===e)?.favorite??!0}async function re(e){let{favorite:t}=await I(e),n=O.value.find(t=>t.id===e);n&&(n.favorite=t)}async function ie(e){let t=await N(e);return O.value=[...O.value,t],t}async function ae(e){await F(e),O.value=O.value.filter(t=>t.id!==e),delete _.value[e]}async function oe(e,t){let n=await P({id:e,data:t}),r=O.value.findIndex(t=>t.id===e);r!==-1&&(O.value[r]=n)}async function se(e,t){let n=O.value.find(t=>t.id===e);return n?G(n.url,t):!1}function Z(){let e=s().target.value;if(!e?.tokens.access){W.debug(`[save-tokens]`,`skipped — no live access token`);return}let t=x.value??H;_.value[t]={userData:ne(e.tokens,a.user??void 0),lastConnectedAt:Date.now(),url:e.endpoint.url},W.debug(`[save-tokens]`,`slot=${t} url=${e.endpoint.url}`)}function ce(){if(x.value===null){c.value=null,W.debug(`[restore-override]`,`no active instance — home target`);return}let e=_.value[x.value],t=e?.url??e?.userData?.internalAddresses?.[0]??e?.userData?.externalAddresses?.[0]??null;c.value=t,W.debug(`[restore-override]`,`activeId=${x.value} → ${t??`no cached url`}`)}async function Q(e){if(S.value){W.warn(`[switch]`,`ignored — another switch is already in progress`);return}let t=e===null?V():z.value.find(t=>t.id===e)??V();if(e!==null&&$(t.url)&&!await ue(t.name)){W.debug(`[switch]`,`URL handoff declined by user`);return}let o=++E;S.value=!0,C.value=t.name,W.debug(`[switch]`,`START targetId=${e??`home`} gen=${o}`),W.debug(`[switch]`,`target resolved — name="${t.name}" url=${t.url} hasCreds=${t.hasCredentials}`);try{if(e!==null){let e=await G(t.url);if(o!==E){W.debug(`[switch]`,`aborted after probe — newer gen=${E}`);return}if(!e){W.warn(`[switch]`,`target unreachable — ${t.url}`),d.add({severity:`warn`,detail:g(`instances.unreachable`,{name:t.name}),life:3e3});return}}let l=null;if(e!==null&&t.hasCredentials)try{l=await L(e),W.debug(`[switch]`,`backend relay login OK`)}catch(e){W.warn(`[switch]`,`backend relay login FAILED — will try cached tokens`,e)}if(o!==E){W.debug(`[switch]`,`aborted after relay-login — newer gen=${E}`);return}Z();let f=e??H,p=l?K(l):le(f);if(W.debug(`[switch]`,`tokens source: ${l?`fresh`:p?`cached`:`none`} (slot=${f})`),e!==null&&$(t.url)){W.debug(`[switch]`,`URL handoff required — leaving SPA`),await de(t,l);return}let m=s();if(m.reset(),W.debug(`[switch]`,`kernel RESET`),r(),i(),n(),h.clear(),W.debug(`[switch]`,`vue-query cleared`),x.value=e,c.value=e===null?null:t.url,W.debug(`[switch]`,`activeId=${e} instanceOverride=${c.value??`null`}`),p&&l&&(_.value[f]={userData:l,lastConnectedAt:Date.now(),url:t.url},a.user={_id:l._id,username:l.username,role:l.role,firstLogin:l.firstLogin,avatar:l.avatar}),p){let n={url:t.url,mode:`direct-lan`,priority:0};W.debug(`[switch]`,`seedAndRetry → ${n.url}`),await Promise.race([m.seedAndRetry({endpoint:n,tokens:p},e??`home`),new Promise((e,t)=>setTimeout(()=>t(Error(`switch_timeout`)),B))])}else{W.warn(`[switch]`,`no tokens — boot + route to login`),m.boot(e??`home`),a.user=null,u.push(`/`);return}if(o!==E){W.debug(`[switch]`,`aborted after seedAndRetry — newer gen=${E}`);return}w.value++,W.debug(`[switch]`,`DONE gen=${o} → /home`),u.push(`/home`)}catch(e){(e instanceof Error?e.message:String(e))===`switch_timeout`?(W.error(`[switch]`,`TIMEOUT after ${B}ms`),d.add({severity:`error`,detail:g(`instances.switch_timeout`,{name:C.value??``}),life:3e3})):(W.error(`[switch]`,`failed`,e),d.add({severity:`error`,detail:e,life:3e3}))}finally{o===E&&(S.value=!1,C.value=null)}}function le(e){let t=_.value[e];return t?.userData?.access_token?K(t.userData):null}function $(e){try{let t=new URL(e),n=new URL(window.location.origin),r=n.protocol===`https:`&&t.protocol===`http:`,i=U.has(t.hostname)&&!U.has(n.hostname);return r||i}catch{return!1}}function ue(e){return W.warn(`[switch]`,`target "${e}" requires URL handoff — asking user confirmation`),new Promise(t=>{let n=!1,r=e=>{n||(n=!0,t(e))};p.openTextDialog({data:{title:g(`instances.insecure_handoff_title`),confirmText:g(`instances.insecure_handoff_confirm`),contentText:g(`instances.insecure_handoff_message`,{name:e}),confirmButtonProps:{severity:`danger`}},onConfirm:()=>r(!0),onCancel:()=>r(!1)})})}async function de(e,t){let n={_reset:!0,_sourceUrl:window.location.origin,_instanceName:e.name};t&&Object.assign(n,t);let r=encodeURIComponent(btoa(JSON.stringify(n))),i=`${e.url.split(`#`)[0]}#auth=${r}`;W.debug(`[url-handoff]`,`→ ${e.url} (with token=${t?`yes`:`no`})`),window.location.href=i}function fe(){_.value={},x.value=null,c.value=null,k.value=null,O.value=[],D.value=null,W.debug(`[reset]`,`store cleared`)}return{instances:z,activeInstance:q,activeId:x,activeUrl:j,isHomeActive:A,isMultiInstance:Y,isSwitching:y(S),switchTargetName:y(C),switchKey:y(w),serverHomeId:D,redirectInfo:k,serverInstances:O,instanceTokens:_,favoriteInstances:J,isFavorite:X,toggleFavorite:re,fetchInstances:R,addInstance:ie,removeInstance:ae,updateInstance:oe,switchInstance:Q,probeInstance:se,reset:fe,saveCurrentTokens:Z,restoreActiveOverride:ce}});export{O as i,z as n,j as r,q as t};
1
+ import{Oi as e,Ri as t,o as n,rt as r,y as i}from"./vendor-cameraui-zHth8Pa5.js";import{At as a,D as o,Ft as s,Lt as c,O as l,Pt as u,T as d,m as f}from"./api-Ex2VUVD1.js";import{J as p,Q as m,Y as h,dn as g,mn as _,mr as v,pr as y,un as b,ur as x,xr as S,zn as C}from"./vendor-c9Zhw4pk.js";import{d as w,l as ee}from"./vendor-core-_UeC1YMQ.js";import{t as te}from"./hasPermission-Cz0dkfyp.js";import{t as T}from"./useCuiDialog-ClphnG79.js";var E={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function D(e,t){return C(),_(`svg`,E,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M20.916 9.564a1 1 0 0 0-.513-1.316L7.328 2.492c-.995-.438-2.22.051-2.645 1.042l-2.21 5.154a2 2 0 0 0 1.052 2.624L9.563 13.9L8.323 17H4v-3H2v8h2v-3h4.323c.823 0 1.552-.494 1.856-1.258l1.222-3.054l5.205 2.23a1 1 0 0 0 1.31-.517l.312-.71l1.701.68l2-5l-1.536-.613zm-4.434 5.126L4.313 9.475l2.208-5.152l12.162 5.354z`},null,-1)]])}var O=x({name:`bx-cctv`,render:D}),k={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function A(e,t){return C(),_(`svg`,k,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M20 3H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m-5 5h-2V6h2zm4 0h-2V6h2zm1 5H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2m-5 5h-2v-2h2zm4 0h-2v-2h2z`},null,-1)]])}var j=x({name:`bxs-server`,render:A});async function M(e){return(await u.get(`/instances`,{signal:e})).data}async function N(e){return(await u.post(`/instances`,e)).data}async function P({id:e,data:t}){return(await u.put(`/instances/${e}`,t)).data}async function F(e){await u.delete(`/instances/${e}`)}async function I(e){return(await u.patch(`/instances/${e}/favorite`)).data}async function L(e){return(await u.post(`/instances/${e}/login`)).data}async function R(e,t){return(await u.get(`/instances/${e}/status`,{signal:t})).data}var z=class{_queryClient=m();toast=o();t=l.global.t;listQuery(){return d({queryKey:[`instances`],queryFn:({signal:e})=>M(e)})}statusQueries(e){return h({queries:b(()=>S(e).map(e=>({queryKey:[`instances`,e.id,`status`],queryFn:({signal:t})=>R(e.id,t),refetchInterval:15e3,retry:!1})))})}createMutation(){return p({mutationFn:N,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.added`),life:3e3})}})}updateMutation(){return p({mutationFn:P,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.updated`),life:3e3})}})}deleteMutation(){return p({mutationFn:async e=>{await F(e),await this._queryClient.cancelQueries({queryKey:[`instances`,e,`status`]}),this._queryClient.removeQueries({queryKey:[`instances`,e,`status`]})},onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.removed`),life:3e3})}})}toggleFavoriteMutation(){return p({mutationFn:I,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]})}})}loginMutation(){return p({mutationFn:L,onError:()=>{}})}},B=3e4,V=5e3,H=`__home__`,U=new Set([`localhost`,`127.0.0.1`,`::1`]),W=a(`Instances`);async function G(e,t){try{let n=AbortSignal.timeout(V),r=t?AbortSignal.any([n,t]):n,i=await fetch(`${e}/api/health`,{signal:r});return W.debug(`[probe]`,`${e} → ${i.ok?`OK`:`HTTP ${i.status}`}`),i.ok}catch(t){let n=t instanceof Error?t.message:String(t);return W.debug(`[probe]`,`${e} → FAIL`,n),!1}}function K(e){return{access:e.access_token,accessExpiresAt:e.access_token_expires_at,refresh:e.refresh_token,refreshExpiresAt:e.refresh_token_expires_at}}function ne(e,t){return{_id:t?._id??``,username:t?.username??``,email:t?.email,role:t?.role??``,firstLogin:t?.firstLogin,avatar:t?.avatar,language:`auto`,access_token:e.access,refresh_token:e.refresh??``,token_type:`Bearer`,access_token_expires_at:e.accessExpiresAt??0,refresh_token_expires_at:e.refreshExpiresAt??0,internalAddresses:[],externalAddresses:[]}}var q=w(`instances`,()=>{let a=f(),u=ee(),d=o(),p=T(),h=m(),{t:g}=l.global,_=e(`instanceTokens`,{}),x=e(`activeInstanceId`,null),S=v(!1),C=v(null),w=v(0),E=0,D=v(null),O=v([]),k=t(`redirectInfo`,null,{serializer:{read:e=>e?JSON.parse(e):null,write:e=>JSON.stringify(e)}}),A=b(()=>x.value===null),j=b(()=>x.value===null?null:O.value.find(e=>e.id===x.value)?.url??null);async function R(){try{if(!te(void 0,`admin`))return;let e=await M();O.value=e.instances,D.value=e.homeId,W.debug(`[fetch]`,`loaded ${e.instances.length} instances`,{homeId:e.homeId})}catch(e){W.warn(`[fetch]`,`failed`,e)}}let z=b(()=>{let e=D.value;return O.value.filter(t=>!(e&&t.remoteHomeId&&t.remoteHomeId===e)).map(e=>{let t=_.value[e.id];return{id:e.id,name:e.name,url:e.url,hasCredentials:!!e.credentials,favorite:e.favorite??!0,userData:t?.userData??null,lastConnectedAt:t?.lastConnectedAt??null,isHome:!1}})});function V(){let e=_.value[H],t=x.value===null?s().target.value?.endpoint.url??e?.url??window.location.origin:e?.url??window.location.origin;return{id:`home`,name:g(`navigation.home`),url:t,hasCredentials:!1,favorite:!1,userData:e?.userData??null,lastConnectedAt:e?.lastConnectedAt??null,isHome:!0}}let q=b(()=>{if(x.value!==null){let e=z.value.find(e=>e.id===x.value);if(e)return e}return V()}),J=b(()=>z.value.filter(e=>e.favorite)),Y=b(()=>J.value.length>0||x.value!==null||k.value!==null);function X(e){return O.value.find(t=>t.id===e)?.favorite??!0}async function re(e){let{favorite:t}=await I(e),n=O.value.find(t=>t.id===e);n&&(n.favorite=t)}async function ie(e){let t=await N(e);return O.value=[...O.value,t],t}async function ae(e){await F(e),O.value=O.value.filter(t=>t.id!==e),delete _.value[e]}async function oe(e,t){let n=await P({id:e,data:t}),r=O.value.findIndex(t=>t.id===e);r!==-1&&(O.value[r]=n)}async function se(e,t){let n=O.value.find(t=>t.id===e);return n?G(n.url,t):!1}function Z(){let e=s().target.value;if(!e?.tokens.access){W.debug(`[save-tokens]`,`skipped — no live access token`);return}let t=x.value??H;_.value[t]={userData:ne(e.tokens,a.user??void 0),lastConnectedAt:Date.now(),url:e.endpoint.url},W.debug(`[save-tokens]`,`slot=${t} url=${e.endpoint.url}`)}function ce(){if(x.value===null){c.value=null,W.debug(`[restore-override]`,`no active instance — home target`);return}let e=_.value[x.value],t=e?.url??e?.userData?.internalAddresses?.[0]??e?.userData?.externalAddresses?.[0]??null;c.value=t,W.debug(`[restore-override]`,`activeId=${x.value} → ${t??`no cached url`}`)}async function Q(e){if(S.value){W.warn(`[switch]`,`ignored — another switch is already in progress`);return}let t=e===null?V():z.value.find(t=>t.id===e)??V();if(e!==null&&$(t.url)&&!await ue(t.name)){W.debug(`[switch]`,`URL handoff declined by user`);return}let o=++E;S.value=!0,C.value=t.name,W.debug(`[switch]`,`START targetId=${e??`home`} gen=${o}`),W.debug(`[switch]`,`target resolved — name="${t.name}" url=${t.url} hasCreds=${t.hasCredentials}`);try{if(e!==null){let e=await G(t.url);if(o!==E){W.debug(`[switch]`,`aborted after probe — newer gen=${E}`);return}if(!e){W.warn(`[switch]`,`target unreachable — ${t.url}`),d.add({severity:`warn`,detail:g(`instances.unreachable`,{name:t.name}),life:3e3});return}}let l=null;if(e!==null&&t.hasCredentials)try{l=await L(e),W.debug(`[switch]`,`backend relay login OK`)}catch(e){W.warn(`[switch]`,`backend relay login FAILED — will try cached tokens`,e)}if(o!==E){W.debug(`[switch]`,`aborted after relay-login — newer gen=${E}`);return}Z();let f=e??H,p=l?K(l):le(f);if(W.debug(`[switch]`,`tokens source: ${l?`fresh`:p?`cached`:`none`} (slot=${f})`),e!==null&&$(t.url)){W.debug(`[switch]`,`URL handoff required — leaving SPA`),await de(t,l);return}let m=s();if(m.reset(),W.debug(`[switch]`,`kernel RESET`),r(),i(),n(),h.clear(),W.debug(`[switch]`,`vue-query cleared`),x.value=e,c.value=e===null?null:t.url,W.debug(`[switch]`,`activeId=${e} instanceOverride=${c.value??`null`}`),p&&l&&(_.value[f]={userData:l,lastConnectedAt:Date.now(),url:t.url},a.user={_id:l._id,username:l.username,role:l.role,firstLogin:l.firstLogin,avatar:l.avatar}),p){let n={url:t.url,mode:`direct-lan`,priority:0};W.debug(`[switch]`,`seedAndRetry → ${n.url}`),await Promise.race([m.seedAndRetry({endpoint:n,tokens:p},e??`home`),new Promise((e,t)=>setTimeout(()=>t(Error(`switch_timeout`)),B))])}else{W.warn(`[switch]`,`no tokens — boot + route to login`),m.boot(e??`home`),a.user=null,u.push(`/`);return}if(o!==E){W.debug(`[switch]`,`aborted after seedAndRetry — newer gen=${E}`);return}w.value++,W.debug(`[switch]`,`DONE gen=${o} → /home`),u.push(`/home`)}catch(e){(e instanceof Error?e.message:String(e))===`switch_timeout`?(W.error(`[switch]`,`TIMEOUT after ${B}ms`),d.add({severity:`error`,detail:g(`instances.switch_timeout`,{name:C.value??``}),life:3e3})):(W.error(`[switch]`,`failed`,e),d.add({severity:`error`,detail:e,life:3e3}))}finally{o===E&&(S.value=!1,C.value=null)}}function le(e){let t=_.value[e];return t?.userData?.access_token?K(t.userData):null}function $(e){try{let t=new URL(e),n=new URL(window.location.origin),r=n.protocol===`https:`&&t.protocol===`http:`,i=U.has(t.hostname)&&!U.has(n.hostname);return r||i}catch{return!1}}function ue(e){return W.warn(`[switch]`,`target "${e}" requires URL handoff — asking user confirmation`),new Promise(t=>{let n=!1,r=e=>{n||(n=!0,t(e))};p.openTextDialog({data:{title:g(`instances.insecure_handoff_title`),confirmText:g(`instances.insecure_handoff_confirm`),contentText:g(`instances.insecure_handoff_message`,{name:e}),confirmButtonProps:{severity:`danger`}},onConfirm:()=>r(!0),onCancel:()=>r(!1)})})}async function de(e,t){let n={_reset:!0,_sourceUrl:window.location.origin,_instanceName:e.name};t&&Object.assign(n,t);let r=encodeURIComponent(btoa(JSON.stringify(n))),i=`${e.url.split(`#`)[0]}#auth=${r}`;W.debug(`[url-handoff]`,`→ ${e.url} (with token=${t?`yes`:`no`})`),window.location.href=i}function fe(){_.value={},x.value=null,c.value=null,k.value=null,O.value=[],D.value=null,W.debug(`[reset]`,`store cleared`)}return{instances:z,activeInstance:q,activeId:x,activeUrl:j,isHomeActive:A,isMultiInstance:Y,isSwitching:y(S),switchTargetName:y(C),switchKey:y(w),serverHomeId:D,redirectInfo:k,serverInstances:O,instanceTokens:_,favoriteInstances:J,isFavorite:X,toggleFavorite:re,fetchInstances:R,addInstance:ie,removeInstance:ae,updateInstance:oe,switchInstance:Q,probeInstance:se,reset:fe,saveCurrentTokens:Z,restoreActiveOverride:ce}});export{O as i,z as n,j as r,q as t};