@camera.ui/server 0.0.112 → 0.0.114

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 (290) hide show
  1. package/dist/interface/assets/{404-Dd3AyWdE.js → 404-CZtDF9in.js} +1 -1
  2. package/dist/interface/assets/{About-DAV31RZ5.js → About-BzuuHdW1.js} +1 -1
  3. package/dist/interface/assets/{Adminpanel-zLLSmbSt.js → Adminpanel-uj7eTmlN.js} +1 -1
  4. package/dist/interface/assets/{Automation-Dx--ghuY.js → Automation-D0ps_z9e.js} +2 -2
  5. package/dist/interface/assets/{AutomationImport-chsxrEfX.js → AutomationImport-CR4Vsxkb.js} +2 -2
  6. package/dist/interface/assets/AutomationStore-BcMX7WbG.js +2 -0
  7. package/dist/interface/assets/AutomationStoreDetail-D6Ugj8ba.js +2 -0
  8. package/dist/interface/assets/Automations-DBACrYHy.js +2 -0
  9. package/dist/interface/assets/{Camera-DVJbyl93.js → Camera-Cf4QZbsx.js} +2 -2
  10. package/dist/interface/assets/{CameraConsole-DOiCJAQS.js → CameraConsole-uD4aWou8.js} +1 -1
  11. package/dist/interface/assets/{Cameras-Dz7bZyRE.js → Cameras-DbBU5mou.js} +1 -1
  12. package/dist/interface/assets/{Camview-CDM4Q_tc.css → Camview-CS2a2okQ.css} +1 -1
  13. package/dist/interface/assets/{Camview-CBywGGI8.js → Camview-CoHrXLHW.js} +1 -1
  14. package/dist/interface/assets/{Config-BfijMggp.js → Config-B9jI0lTQ.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionCameraControl-B2xFxVNO.js → ConfigActionCameraControl-D4hJLWmj.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionNotification-hmTEfMw3.js → ConfigActionNotification-B5cCmBXr.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionPlugin-BgKKvqAy.js → ConfigActionPlugin-B7YAbFlf.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionSensor-Du072tTI.js → ConfigActionSensor-D_Dt1qtt.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionSnapshot-9aGopbuJ.js → ConfigActionSnapshot-ClyCQuB3.js} +1 -1
  20. package/dist/interface/assets/{ConfigConditionSensorState-D2IIsthA.js → ConfigConditionSensorState-x0M0kHwL.js} +1 -1
  21. package/dist/interface/assets/{ConfigTriggerDetection-CYJOEkHi.js → ConfigTriggerDetection-DWjlecON.js} +1 -1
  22. package/dist/interface/assets/{ConfigTriggerGeofence-4t1aW1Iw.js → ConfigTriggerGeofence-CTqptMUN.js} +1 -1
  23. package/dist/interface/assets/{ConfigTriggerSensor-CVzeR8ac.js → ConfigTriggerSensor-DuCtavZo.js} +1 -1
  24. package/dist/interface/assets/{ConfigTriggerSystem-5TI9H8mj.js → ConfigTriggerSystem-D1oGAhLn.js} +1 -1
  25. package/dist/interface/assets/{Console-COaJF4Fu.js → Console-DrDqDUtO.js} +1 -1
  26. package/dist/interface/assets/{CuiAvatar-Drdaxxcm.js → CuiAvatar-of_eVQsv.js} +1 -1
  27. package/dist/interface/assets/{CuiBottomSheet-ljGYA9W5.js → CuiBottomSheet-B7aQ7GCw.js} +1 -1
  28. package/dist/interface/assets/CuiBottomSheet-DKUg_g5x.js +1 -0
  29. package/dist/interface/assets/{CuiCameraCard-O22PEfyi.js → CuiCameraCard-IyJNZMGs.js} +1 -1
  30. package/dist/interface/assets/{CuiCameraPipCard-BDZ3W5sh.js → CuiCameraPipCard-KUBxGPoU.js} +1 -1
  31. package/dist/interface/assets/{CuiCameraRecordings-BWlxU4qP.js → CuiCameraRecordings-iWAFGo8e.js} +1 -1
  32. package/dist/interface/assets/{CuiCameraShares-BIXFV72I.js → CuiCameraShares-BCMYN11A.js} +1 -1
  33. package/dist/interface/assets/{CuiCameraSnapshot-BAwo37N7.js → CuiCameraSnapshot-DTtvEMy1.js} +1 -1
  34. package/dist/interface/assets/{CuiCameraTable-6tWx74Nl.js → CuiCameraTable-B7g53tPM.js} +1 -1
  35. package/dist/interface/assets/{CuiImage-KyBpvv-t.js → CuiImage-B97QDAl7.js} +1 -1
  36. package/dist/interface/assets/{CuiMenu-BBequFn_.js → CuiMenu-Ds6GufVn.js} +1 -1
  37. package/dist/interface/assets/{CuiPluginCard-Bnb0YKK1.js → CuiPluginCard-D1SylQbM.js} +2 -2
  38. package/dist/interface/assets/{CuiPluginOAuthButton-CvVnSP0h.js → CuiPluginOAuthButton-X8ZGFPwW.js} +2 -2
  39. package/dist/interface/assets/{CuiQRCode-Di0RLqfL.js → CuiQRCode-D_31ri5b.js} +1 -1
  40. package/dist/interface/assets/{CuiRecordingsGrid-DNw21B-r.js → CuiRecordingsGrid-CzMzhUXb.js} +1 -1
  41. package/dist/interface/assets/{CuiSchema-Cr90oo-T.js → CuiSchema-CfqOJmDH.js} +1 -1
  42. package/dist/interface/assets/{Faces-CFN1J-o4.js → Faces-IVmqcGuF.js} +1 -1
  43. package/dist/interface/assets/{FirstSteps-uzffNroi.js → FirstSteps-Boec1bzd.js} +1 -1
  44. package/dist/interface/assets/{Instances-CsAKq-HH.js → Instances-kmkRiBrV.js} +1 -1
  45. package/dist/interface/assets/{Logs-DKwNBSz9.js → Logs-DzR8mmLu.js} +1 -1
  46. package/dist/interface/assets/{Menu-Db1mi08W.js → Menu-Ct3W72Nu.js} +1 -1
  47. package/dist/interface/assets/{OAuthDeviceFlow-B4cT3UTT.js → OAuthDeviceFlow-Cp9uZWm1.js} +1 -1
  48. package/dist/interface/assets/Plugin-CeLrucXT.js +1 -0
  49. package/dist/interface/assets/Plugin-Yv0ZmTNZ.css +1 -0
  50. package/dist/interface/assets/{PluginConsole-Bs9HqX_F.js → PluginConsole-BdbmROpF.js} +1 -1
  51. package/dist/interface/assets/PluginDetail-DKywYzmS.js +2 -0
  52. package/dist/interface/assets/PluginDetail-DbYxVe3g.css +1 -0
  53. package/dist/interface/assets/{PluginSchema-D3BCVJNa.js → PluginSchema-CWcq67pj.js} +1 -1
  54. package/dist/interface/assets/PluginSearch-BC1L0-VN.js +1 -0
  55. package/dist/interface/assets/PluginSearch-DCuLwE3v.js +2 -0
  56. package/dist/interface/assets/{PluginSearch-BOWQC1zl.css → PluginSearch-XjGr5qdW.css} +1 -1
  57. package/dist/interface/assets/{Plugins-DD8FPbtv.js → Plugins-DMLQY_6J.js} +1 -1
  58. package/dist/interface/assets/{Recordings-Bt8clj2R.js → Recordings--XaVJZJi.js} +1 -1
  59. package/dist/interface/assets/{Settings-Bj_41fdw.js → Settings-BZDfWnB8.js} +1 -1
  60. package/dist/interface/assets/SettingsAccount-DFMOh1ci.js +1 -0
  61. package/dist/interface/assets/{SettingsAccount-CWVj8S8j.js → SettingsAccount-DKHO4mDj.js} +1 -1
  62. package/dist/interface/assets/SettingsAppearance-DzG2tlwK.js +1 -0
  63. package/dist/interface/assets/{SettingsAppearance-DNaNlO1q.js → SettingsAppearance-V5aeQ9c8.js} +1 -1
  64. package/dist/interface/assets/{SettingsBackup-stUbnWJf.js → SettingsBackup-CfOHDar8.js} +1 -1
  65. package/dist/interface/assets/{SettingsNotifications-Do2Cy2yf.js → SettingsNotifications-BZ1IXj0a.js} +1 -1
  66. package/dist/interface/assets/{SettingsRecordings-DWX69m9b.js → SettingsRecordings-BsJ9z-RE.js} +1 -1
  67. package/dist/interface/assets/{SettingsRemote-RqXtq3dF.js → SettingsRemote-Bf8bqXYs.js} +1 -1
  68. package/dist/interface/assets/SettingsSystem-obAYrm8J.js +2 -0
  69. package/dist/interface/assets/{SettingsUsers-Cb6zolu8.js → SettingsUsers-Ciu1ry18.js} +1 -1
  70. package/dist/interface/assets/{Terminal-D2zkV1fJ.js → Terminal-CD9he5xW.js} +1 -1
  71. package/dist/interface/assets/VersionsHandler-Dpo-L314.js +7 -0
  72. package/dist/interface/assets/Workers-DCx1wSq5.css +1 -0
  73. package/dist/interface/assets/Workers-DiIBLgfr.js +2 -0
  74. package/dist/interface/assets/alert-circle-azHizGIK.js +1 -0
  75. package/dist/interface/assets/{api-CvihG9kg.js → api-CbBOEbKQ.js} +1 -1
  76. package/dist/interface/assets/api-aSYFKxo6.js +2 -0
  77. package/dist/interface/assets/api-vCJ1T8Ow.css +2 -0
  78. package/dist/interface/assets/{auth-BeYrbk7B.js → auth-cdPNNpNC.js} +1 -1
  79. package/dist/interface/assets/{automations-egbiXwMx.js → automations-E7vwN3kw.js} +1 -1
  80. package/dist/interface/assets/{backup-82y2bZBX.js → backup-Co1bwdSv.js} +1 -1
  81. package/dist/interface/assets/{cameras-DRRy289F.js → cameras-CvJDLEZ3.js} +1 -1
  82. package/dist/interface/assets/{cameras.schema-qOAUe-E9.js → cameras.schema-Clwro_L9.js} +1 -1
  83. package/dist/interface/assets/check-circle-BauXcL6H.js +1 -0
  84. package/dist/interface/assets/cloudHandoff-Bym-XqR1.js +1 -0
  85. package/dist/interface/assets/{deviceId-DXf6AlPA.js → deviceId-OXLTtG-_.js} +1 -1
  86. package/dist/interface/assets/{hasPermission-CPgoH1JH.js → hasPermission-P1TgpAur.js} +1 -1
  87. package/dist/interface/assets/{instances-Crs3gwnp.js → instances-DwnEOXk1.js} +1 -1
  88. package/dist/interface/assets/{locale-BCQeXbI8.js → locale-BWvy9Nlz.js} +1 -1
  89. package/dist/interface/assets/{main-D0vO1lt0.js → main-DiF8p_7h.js} +2 -2
  90. package/dist/interface/assets/{notifications-AiaxATml.js → notifications-DHmx6O_s.js} +1 -1
  91. package/dist/interface/assets/platformLabels-D-cF6OTP.js +1 -0
  92. package/dist/interface/assets/{plugins-C_Mh_UEw.js → plugins-NVAodP6s.js} +1 -1
  93. package/dist/interface/assets/{round-restart-alt-BJAngKc7.js → round-restart-alt-c8MQjhLh.js} +1 -1
  94. package/dist/interface/assets/{router-C2x34pNg.js → router-6GfEM8TO.js} +2 -2
  95. package/dist/interface/assets/{server-GaO6jF81.js → server-CRxodRik.js} +1 -1
  96. package/dist/interface/assets/{shares-Cw2NYamp.js → shares-4w6GDwjp.js} +1 -1
  97. package/dist/interface/assets/{theme-cGiCxaXN.js → theme-DhaXe7yA.js} +1 -1
  98. package/dist/interface/assets/types-BXo-JDGR.js +1 -0
  99. package/dist/interface/assets/{useBiometricCredentials-CEmbsdFy.js → useBiometricCredentials-BGRyKe48.js} +1 -1
  100. package/dist/interface/assets/{useCameraOptions-quplvW_7.js → useCameraOptions-CO1HD_gL.js} +1 -1
  101. package/dist/interface/assets/{useCuiDialog-j9ybKsCK.js → useCuiDialog-DHktK-mZ.js} +1 -1
  102. package/dist/interface/assets/{useFileDownload-BcOErnCc.js → useFileDownload-Cp1oH80I.js} +1 -1
  103. package/dist/interface/assets/{useLogsSocket-gXiAENMr.js → useLogsSocket-OnTDnkPr.js} +1 -1
  104. package/dist/interface/assets/{useStreamStatus-bjptbs6u.js → useStreamStatus-N--czepD.js} +1 -1
  105. package/dist/interface/assets/{useUserOptions-CA-AJeEh.js → useUserOptions-CPkl1O0A.js} +1 -1
  106. package/dist/interface/assets/{users.schema-DaXV2Jq7.js → users.schema-BIL9DqRo.js} +1 -1
  107. package/dist/interface/assets/{view-grid-Coh7iX5e.js → view-grid-B0KB2pRf.js} +1 -1
  108. package/dist/interface/index.html +29 -29
  109. package/dist/interface/sw.js +1 -1
  110. package/dist/server/package.json +1 -1
  111. package/dist/server/src/api/controllers/plugins.controller.js +16 -3
  112. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  113. package/dist/server/src/api/controllers/server.controller.js +3 -2
  114. package/dist/server/src/api/controllers/server.controller.js.map +1 -1
  115. package/dist/server/src/api/controllers/workers.controller.d.ts +9 -4
  116. package/dist/server/src/api/controllers/workers.controller.js +132 -9
  117. package/dist/server/src/api/controllers/workers.controller.js.map +1 -1
  118. package/dist/server/src/api/database/index.d.ts +1 -2
  119. package/dist/server/src/api/database/index.js +5 -19
  120. package/dist/server/src/api/database/index.js.map +1 -1
  121. package/dist/server/src/api/database/types.d.ts +29 -1
  122. package/dist/server/src/api/routes/workers.routes.js +61 -7
  123. package/dist/server/src/api/routes/workers.routes.js.map +1 -1
  124. package/dist/server/src/api/schemas/config.schema.d.ts +8 -2
  125. package/dist/server/src/api/schemas/config.schema.js +8 -1
  126. package/dist/server/src/api/schemas/config.schema.js.map +1 -1
  127. package/dist/server/src/api/schemas/remote.schema.d.ts +1 -1
  128. package/dist/server/src/api/schemas/workers.schema.d.ts +19 -0
  129. package/dist/server/src/api/schemas/workers.schema.js +19 -0
  130. package/dist/server/src/api/schemas/workers.schema.js.map +1 -1
  131. package/dist/server/src/api/services/plugins.service.d.ts +2 -0
  132. package/dist/server/src/api/services/plugins.service.js +25 -3
  133. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  134. package/dist/server/src/api/services/server.service.d.ts +0 -2
  135. package/dist/server/src/api/services/server.service.js +0 -12
  136. package/dist/server/src/api/services/server.service.js.map +1 -1
  137. package/dist/server/src/api/services/workers.service.d.ts +15 -0
  138. package/dist/server/src/api/services/workers.service.js +95 -2
  139. package/dist/server/src/api/services/workers.service.js.map +1 -1
  140. package/dist/server/src/api/types/index.d.ts +37 -0
  141. package/dist/server/src/api/utils/cert.js +43 -9
  142. package/dist/server/src/api/utils/cert.js.map +1 -1
  143. package/dist/server/src/api/websocket/nsp/server.d.ts +0 -2
  144. package/dist/server/src/api/websocket/nsp/server.js +1 -8
  145. package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
  146. package/dist/server/src/api/websocket/nsp/workers.d.ts +0 -3
  147. package/dist/server/src/api/websocket/nsp/workers.js +4 -17
  148. package/dist/server/src/api/websocket/nsp/workers.js.map +1 -1
  149. package/dist/server/src/camera/decoder/worker.d.ts +3 -0
  150. package/dist/server/src/camera/decoder/worker.js +58 -36
  151. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  152. package/dist/server/src/go2rtc/index.js +3 -2
  153. package/dist/server/src/go2rtc/index.js.map +1 -1
  154. package/dist/server/src/main.js +11 -3
  155. package/dist/server/src/main.js.map +1 -1
  156. package/dist/server/src/manager/downloadManager.d.ts +6 -0
  157. package/dist/server/src/manager/downloadManager.js +162 -3
  158. package/dist/server/src/manager/downloadManager.js.map +1 -1
  159. package/dist/server/src/plugins/bundle.d.ts +2 -0
  160. package/dist/server/src/plugins/bundle.js +24 -0
  161. package/dist/server/src/plugins/bundle.js.map +1 -0
  162. package/dist/server/src/plugins/config-store.d.ts +16 -0
  163. package/dist/server/src/plugins/config-store.js +33 -0
  164. package/dist/server/src/plugins/config-store.js.map +1 -0
  165. package/dist/server/src/plugins/index.d.ts +1 -1
  166. package/dist/server/src/plugins/index.js +3 -17
  167. package/dist/server/src/plugins/index.js.map +1 -1
  168. package/dist/server/src/plugins/main-file.d.ts +2 -0
  169. package/dist/server/src/plugins/main-file.js +24 -0
  170. package/dist/server/src/plugins/main-file.js.map +1 -0
  171. package/dist/server/src/plugins/plugin.d.ts +0 -1
  172. package/dist/server/src/plugins/plugin.js +7 -25
  173. package/dist/server/src/plugins/plugin.js.map +1 -1
  174. package/dist/server/src/plugins/runtime/base.d.ts +23 -7
  175. package/dist/server/src/plugins/runtime/base.js +32 -29
  176. package/dist/server/src/plugins/runtime/base.js.map +1 -1
  177. package/dist/server/src/plugins/runtime/index.d.ts +2 -3
  178. package/dist/server/src/plugins/runtime/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 +24 -4
  181. package/dist/server/src/plugins/runtime/node/child.js.map +1 -1
  182. package/dist/server/src/plugins/runtime/node/configDb.d.ts +15 -0
  183. package/dist/server/src/plugins/runtime/node/configDb.js +18 -0
  184. package/dist/server/src/plugins/runtime/node/configDb.js.map +1 -0
  185. package/dist/server/src/plugins/runtime/node/index.d.ts +2 -2
  186. package/dist/server/src/plugins/runtime/node/index.js.map +1 -1
  187. package/dist/server/src/plugins/runtime/node/pluginApi.d.ts +2 -2
  188. package/dist/server/src/plugins/runtime/node/pluginApi.js.map +1 -1
  189. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +2 -0
  190. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
  191. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +5 -0
  192. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
  193. package/dist/server/src/plugins/runtime/node/proxy/downloadManager.js +6 -2
  194. package/dist/server/src/plugins/runtime/node/proxy/downloadManager.js.map +1 -1
  195. package/dist/server/src/plugins/runtime/node/proxy/fileServe.d.ts +13 -0
  196. package/dist/server/src/plugins/runtime/node/proxy/fileServe.js +82 -0
  197. package/dist/server/src/plugins/runtime/node/proxy/fileServe.js.map +1 -0
  198. package/dist/server/src/plugins/runtime/node/remoteUrls.d.ts +1 -0
  199. package/dist/server/src/plugins/runtime/node/remoteUrls.js +32 -0
  200. package/dist/server/src/plugins/runtime/node/remoteUrls.js.map +1 -0
  201. package/dist/server/src/plugins/runtime/node/storage.d.ts +2 -2
  202. package/dist/server/src/plugins/runtime/node/storage.js +1 -1
  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 -2
  205. package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -1
  206. package/dist/server/src/plugins/runtime/python/child.py +16 -4
  207. package/dist/server/src/plugins/runtime/python/config_db.py +42 -0
  208. package/dist/server/src/plugins/runtime/python/index.d.ts +2 -2
  209. package/dist/server/src/plugins/runtime/python/index.js +3 -1
  210. package/dist/server/src/plugins/runtime/python/index.js.map +1 -1
  211. package/dist/server/src/plugins/runtime/python/namespaces.py +2 -0
  212. package/dist/server/src/plugins/runtime/python/plugin_api.py +2 -2
  213. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +5 -0
  214. package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +6 -0
  215. package/dist/server/src/plugins/runtime/python/remote_urls.py +42 -0
  216. package/dist/server/src/plugins/runtime/python/storage.py +2 -2
  217. package/dist/server/src/plugins/runtime/python/storage_controller.py +2 -2
  218. package/dist/server/src/plugins/types.d.ts +2 -1
  219. package/dist/server/src/plugins/types.js +1 -0
  220. package/dist/server/src/plugins/types.js.map +1 -1
  221. package/dist/server/src/plugins/worker.d.ts +8 -0
  222. package/dist/server/src/plugins/worker.js +109 -3
  223. package/dist/server/src/plugins/worker.js.map +1 -1
  224. package/dist/server/src/remote/tunnel/client.js +3 -2
  225. package/dist/server/src/remote/tunnel/client.js.map +1 -1
  226. package/dist/server/src/rpc/index.d.ts +2 -1
  227. package/dist/server/src/rpc/index.js +43 -23
  228. package/dist/server/src/rpc/index.js.map +1 -1
  229. package/dist/server/src/rpc/interfaces/download.d.ts +10 -0
  230. package/dist/server/src/rpc/namespaces.d.ts +5 -1
  231. package/dist/server/src/rpc/namespaces.js +12 -2
  232. package/dist/server/src/rpc/namespaces.js.map +1 -1
  233. package/dist/server/src/rpc/server.d.ts +16 -3
  234. package/dist/server/src/rpc/server.js +150 -22
  235. package/dist/server/src/rpc/server.js.map +1 -1
  236. package/dist/server/src/rpc/utils.d.ts +1 -1
  237. package/dist/server/src/rpc/utils.js +2 -0
  238. package/dist/server/src/rpc/utils.js.map +1 -1
  239. package/dist/server/src/services/config/constants.js +4 -1
  240. package/dist/server/src/services/config/constants.js.map +1 -1
  241. package/dist/server/src/services/config/index.d.ts +1 -0
  242. package/dist/server/src/services/config/index.js +16 -10
  243. package/dist/server/src/services/config/index.js.map +1 -1
  244. package/dist/server/src/services/config/types.d.ts +5 -1
  245. package/dist/server/src/shutdown-state.d.ts +3 -0
  246. package/dist/server/src/shutdown-state.js +11 -0
  247. package/dist/server/src/shutdown-state.js.map +1 -0
  248. package/dist/server/src/utils/platform.d.ts +2 -0
  249. package/dist/server/src/utils/platform.js +26 -0
  250. package/dist/server/src/utils/platform.js.map +1 -0
  251. package/dist/server/src/workers/agent.d.ts +15 -9
  252. package/dist/server/src/workers/agent.js +157 -64
  253. package/dist/server/src/workers/agent.js.map +1 -1
  254. package/dist/server/src/workers/capabilities/frame-decoding.d.ts +7 -3
  255. package/dist/server/src/workers/capabilities/frame-decoding.js +44 -10
  256. package/dist/server/src/workers/capabilities/frame-decoding.js.map +1 -1
  257. package/dist/server/src/workers/capabilities/handler.d.ts +1 -0
  258. package/dist/server/src/workers/capabilities/plugin-host.d.ts +23 -0
  259. package/dist/server/src/workers/capabilities/plugin-host.js +161 -0
  260. package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -0
  261. package/dist/server/src/workers/manager.d.ts +28 -3
  262. package/dist/server/src/workers/manager.js +316 -92
  263. package/dist/server/src/workers/manager.js.map +1 -1
  264. package/dist/server/src/workers/pairing.d.ts +3 -0
  265. package/dist/server/src/workers/pairing.js +80 -0
  266. package/dist/server/src/workers/pairing.js.map +1 -0
  267. package/dist/server/src/workers/types.d.ts +42 -17
  268. package/dist/server/src/workers/types.js +4 -0
  269. package/dist/server/src/workers/types.js.map +1 -1
  270. package/package.json +1 -1
  271. package/dist/interface/assets/AutomationStore-BhL1O1qq.js +0 -2
  272. package/dist/interface/assets/AutomationStoreDetail-pW5g8G4I.js +0 -2
  273. package/dist/interface/assets/Automations-CQioiNmw.js +0 -2
  274. package/dist/interface/assets/CuiBottomSheet-CrsJjITg.js +0 -1
  275. package/dist/interface/assets/Plugin-BDwSHzi9.js +0 -1
  276. package/dist/interface/assets/Plugin-CHdZvbiP.css +0 -1
  277. package/dist/interface/assets/PluginDetail-B2odw9DA.css +0 -1
  278. package/dist/interface/assets/PluginDetail-C3j4zIxC.js +0 -2
  279. package/dist/interface/assets/PluginSearch-BLWXmn9w.js +0 -2
  280. package/dist/interface/assets/PluginSearch-BwG61G-G.js +0 -1
  281. package/dist/interface/assets/SettingsAccount-DnZKU_tM.js +0 -1
  282. package/dist/interface/assets/SettingsAppearance-k5WMN34x.js +0 -1
  283. package/dist/interface/assets/SettingsSystem-BZ14jaFr.js +0 -2
  284. package/dist/interface/assets/VersionsHandler-nZK8BEJK.js +0 -7
  285. package/dist/interface/assets/Workers-CKR9yslJ.js +0 -1
  286. package/dist/interface/assets/api-Cntxdwiu.js +0 -2
  287. package/dist/interface/assets/api-CrAOxyt8.css +0 -2
  288. package/dist/interface/assets/cloudHandoff-CiV159TL.js +0 -1
  289. package/dist/interface/assets/types-aZM1hCux.js +0 -1
  290. /package/dist/interface/assets/{error-256-DLKVOU2S.png → logo-512-DLKVOU2S.png} +0 -0
@@ -0,0 +1 @@
1
+ import{C as e,D as t,E as n,S as r,T as i,_ as a,a as ee,b as te,c as ne,d as re,f as ie,g as ae,h as oe,i as se,l as ce,m as le,n as ue,o as de,p as fe,r as pe,s as me,t as he,u as ge,v as _e,w as o,x as ve,y as ye}from"./vendor-cameraui-DgSMexWY.js";import{I as s}from"./vendor-DoIl6acN.js";import{_ as c,a as l,b as u,c as d,d as be,f,g as p,h as xe,i as m,l as Se,m as h,n as g,o as _,p as v,r as y,s as b,t as x,u as Ce,v as S,y as C}from"./vendor-zod-DycFxUhi.js";h({tempToken:c().trim().min(1,`Temporary token is required`),code:c().trim().min(1,`Code is required`)}).strict(),h({code:c().trim().length(6,`Code must be 6 digits`)}).strict(),h({code:c().trim().min(1,`Code is required`)}).strict(),h({code:c().trim().min(1,`Code is required`)}).strict(),h({grant_type:c().optional(),username:c().trim().min(1,`Username is required`),password:c().min(1,`Password is required`),scope:c().optional(),client_id:c().optional(),client_secret:c().optional()}),h({refresh_token:c().min(1,`Refresh token is required`)}),h({id:c()});function w(e){let t=[`kasa://`,`nest:`,`ring:`,`tapo://`];return e.some(e=>t.some(t=>e.startsWith(t)))}var T=[`#df2a4c`,`#2a7fdf`,`#2adf7f`,`#df7f2a`,`#7f2adf`,`#2adfdf`,`#df2adf`,`#7fdf2a`];function we(){return T[Math.floor(Math.random()*T.length)]}function Te(){return{name:`Default Zone`,points:[[0,0],[100,0],[100,100],[0,100]],type:`contain`,filter:`include`,labels:[`motion`,`person`,`vehicle`,`animal`],isPrivacyMask:!1,color:we()}}h({enabled:b().default(!1)}).strict();var E=c().trim().min(1,`Detection label is required`),D=S([v(),v()]),O=h({name:c().trim().min(1,`Zone Name is required`),points:D.array().min(3,`At least 3 points are required`),type:C([f(`intersect`),f(`contain`)]),filter:C([f(`include`),f(`exclude`)]),labels:E.array(),isPrivacyMask:b(),color:c().trim().regex(/^#([0-9A-Fa-f]{3}){1,2}$/,`Must be a valid hex color (e.g. #FF0000 or #F00)`).default(`#df2a4c`)}).array(),k=h({name:c().trim().min(1,`Line Name is required`),points:S([D,D]),direction:C([f(`both`),f(`a-to-b`),f(`b-to-a`)]),labels:E.array(),color:c().trim().regex(/^#([0-9A-Fa-f]{3}){1,2}$/,`Must be a valid hex color (e.g. #FF0000 or #F00)`).default(`#df2a4c`)}).array(),A=h({motion:h({resolution:C([f(`low`),f(`medium`),f(`high`)]),timeout:v().min(10,`Minimum 10 seconds`)}),object:h({confidence:v().min(.3,`Minimum 0.3`).max(1,`Maximum 1`)}),audio:h({minDecibels:v().min(-100,`Minimum -100 dBFS`).max(0,`Maximum 0 dBFS`),timeout:v().min(10,`Minimum 10 seconds`)}),sensor:h({timeout:v().min(10,`Minimum 10 seconds`),triggers:_(h({sensorType:c().trim().min(1,`Sensor type is required`),sensorName:c().trim().min(1,`Sensor name is required`),pluginId:c().trim().min(1,`Plugin ID is required`)})).default([])}),cascadeDetection:b().default(!0),cascadeTimeout:v().min(1,`Minimum 1 second`).max(300,`Maximum 300 seconds`).default(10),snooze:b().default(!1)}),Ee={enabled:!1,targetLabels:[`person`],minConfidence:.5,triggerDeadZone:.05,returnToHome:!1,homeWaitMs:1e4},j=h({enabled:b().default(!1),targetLabels:c().trim().min(1,`Target label is required`).array().default([`person`]),minConfidence:v().min(.3,`Minimum 0.3`).max(1,`Maximum 1`).default(.5),triggerDeadZone:v().min(0,`Minimum 0`).max(.3,`Maximum 0.3`).default(.05),returnToHome:b().default(!1),homeWaitMs:v().min(1e3,`Minimum 1000 ms`).max(6e4,`Maximum 60000 ms`).default(1e4)}),M=C([f(`high-resolution`),f(`mid-resolution`),f(`low-resolution`),f(`snapshot`)]),De=C([f(`high-resolution`),f(`mid-resolution`),f(`low-resolution`)]),N=C([f(`bubble://`),f(`cui://`),f(`doorbird://`),f(`dvrip://`),f(`eseecloud://`),f(`ffmpeg:`),f(`flussonic://`),f(`gopro://`),f(`hass:`),f(`homekit://`),f(`http://`),f(`https://`),f(`httpx://`),f(`isapi://`),f(`ivideon:`),f(`kasa://`),f(`nest:`),f(`onvif://`),f(`ring:`),f(`roborock://`),f(`rtmp://`),f(`rtsp://`),f(`rtspx://`),f(`tapo://`),f(`tcp://`),f(`tuya://`),f(`xiaomi://`),f(`yandex:`),f(`webrtc:`),f(`webtorrent:`),f(`wyze://`)]),Oe=N.options.map(e=>e.value),ke=RegExp(`^(${Oe.join(`|`)})`),P=c().refine(e=>{if(!ke.test(e))return!1;try{return new URL(e),!0}catch{return!1}},{message:`Invalid URL format or unsupported protocol`}),Ae=h({_id:c().default(s()).transform(()=>s()),name:c().trim().min(1,`Camera Source Name is required`).transform(e=>e.replace(/ /g,`_`).toLowerCase()),role:M,useForSnapshot:b().default(!1),hotMode:b().default(!0),preload:b().default(!0),urls:P.array().min(1,`At least one valid URL is required`),childSourceId:c().trim().min(1,`Child Source ID is required`).optional()}).strict(),je=h({_id:c().default(s()).transform(()=>s()),name:c().trim().min(1,`Camera Source Name is required`).transform(e=>e.replace(/ /g,`_`).toLowerCase()),role:M,useForSnapshot:b().default(!1),hotMode:b().default(!0),preload:b().default(!0),urls:P.array().min(1,`At least one valid URL is required`),childSourceId:c().trim().min(1,`Child Source ID is required`).optional()}).strict(),F=h({id:c(),name:c().trim()}),I=h({motion:F.optional(),object:F.optional(),audio:F.optional(),face:F.optional(),licensePlate:F.optional(),ptz:F.optional(),battery:F.optional(),cameraController:F.optional(),classifier:F.array().optional(),light:F.array().optional(),siren:F.array().optional(),switch:F.array().optional(),securitySystem:F.array().optional(),contact:F.array().optional(),doorbell:F.array().optional(),hub:F.array().optional()}).strict(),Me=C([f(`auto`),f(`mse`),f(`webrtc`),f(`webrtc/tcp`)]),Ne=C([f(`16:9`),f(`9:16`),f(`8:3`),f(`4:3`),f(`1:1`)]),L=h({fps:v().min(0,`Minimum 0 fps`).max(30,`Maximum 30 fps`)}),R=C([f(`camera`),f(`doorbell`)]),z=h({streamingMode:Me,streamingSource:De,aspectRatio:Ne}),Pe=h({model:c().trim().optional(),manufacturer:c().trim().optional(),hardware:c().trim().optional(),serialNumber:c().trim().optional(),firmwareVersion:c().trim().optional(),supportUrl:c().trim().optional()}),Fe=h({id:c(),name:c().trim()}).strict(),Ie=h({autoRefresh:b().default(!0),ttl:v().min(10,`Minimum 10 seconds`).max(60,`Maximum 60 seconds`).default(50),interval:v().min(10,`Minimum 10 seconds`).max(60,`Maximum 60 seconds`).default(60)}).strict(),Le=h({_id:c().default(s()).transform(()=>s()),nativeId:c().trim().optional(),pluginInfo:Fe.optional(),disabled:b().default(!1),name:c().trim().min(1,`Camera name is required`),room:c().trim().min(1,`Room is required`).default(`Default`),type:R.default(`camera`),isCloud:b().default(!1),snapshotSettings:Ie.default({autoRefresh:!0,ttl:50,interval:60}),info:Pe.default({model:`IP Camera`,manufacturer:`camera.ui`,hardware:`Camera`,serialNumber:`Unknown`,firmwareVersion:`Unknown`,supportUrl:`Unknown`}),sources:Ae.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`]}),plugins:F.array().default([]),assignments:I.default({}),interfaceSettings:z.default({streamingMode:`webrtc`,streamingSource:`high-resolution`,aspectRatio:`16:9`}),detectionZones:O.default([]),detectionLines:k.default([]),detectionSettings:A.default({motion:{resolution:`low`,timeout:30},object:{confidence:.5},audio:{minDecibels:-40,timeout:30},sensor:{timeout:30,triggers:[]},cascadeDetection:!0,cascadeTimeout:10,snooze:!1}),ptzAutotrack:j.default(Ee),frameWorkerSettings:L.default({fps:10})}).strict();Le.transform(e=>{let t=e.sources.flatMap(e=>e.urls),n=e.detectionZones.length===0?[Te()]:e.detectionZones;return e.isCloud||w(t)?{...e,isCloud:!0,detectionZones:n}:{...e,detectionZones:n}});var Re=h({disabled:b().optional(),type:R.optional(),name:c().trim().min(1,`Camera name is required`).optional(),room:c().trim().min(1,`Room is required`).optional(),isCloud:b().optional(),snapshotSettings:Ie.partial().optional(),info:Pe.partial().optional(),sources:je.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`]}).optional(),plugins:F.array().optional(),assignments:I.partial().optional(),interfaceSettings:z.partial().optional(),detectionZones:O.optional(),detectionLines:k.optional(),detectionSettings:A.partial().optional(),ptzAutotrack:j.partial().optional(),frameWorkerSettings:L.partial().optional()}).strict().transform(e=>{if(e.sources){let t=e.sources.flatMap(e=>e.urls);if(e.isCloud===!0||w(t))return{...e,isCloud:!0}}return e});h({url:c().trim().refine(e=>!/^\s*(exec|echo|expr):/i.test(e),`Command-execution stream sources are not allowed`)}).strict(),h({cameraname:c()}),h({cameraname:c(),sourcename:c()}),h({cameraid:c(),sourcename:c()}),h({cameraname:c(),pluginname:c()}),h({cameraname:c(),scope:c(),pluginname:c()}),h({cameraname:c(),pluginname:c(),sensorId:c()}),h({cameraname:c(),scope:c(),pluginname:c(),sensorId:c()}),h({type:c().optional()}),h({video:x().optional(),audio:x().optional(),microphone:x().optional(),refresh:x().optional()}),h({forceNew:x().optional()}),h({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`),url:u(`Must be a valid URL`).trim(),credentials:h({username:c().trim().min(1,`Username is required`),password:c().min(1,`Password is required`)})}),h({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional(),url:u(`Must be a valid URL`).trim().optional(),credentials:h({username:c().trim().min(1,`Username is required`),password:c().min(1,`Password is required`)}).nullable().optional()}),h({id:c().min(1,`ID is required`)});var ze=/^((@[\w-.]*)\/)?(camera-ui-[\w-]*)$/,Be=function(e){return e.READY=`ready`,e.STARTING=`starting`,e.STARTED=`started`,e.STOPPING=`stopping`,e.STOPPED=`stopped`,e.ERROR=`error`,e.UNKNOWN=`unknown`,e.DISABLED=`disabled`,e.INCOMPATIBLE=`incompatible`,e}({});function Ve(e){return e.mimetype!==void 0}function He(e){return Ve(e)?Buffer.byteLength(e._buf):e.size}function Ue(e){return Ve(e)?e.mimetype:e.type}function B(e,t,n,r){return d().refine(t=>He(t)<=e,n).refine(e=>t.includes(Ue(e)),r)}var We=h({start:g().optional(),page:g().optional(),pageSize:g().optional()}),Ge=[`image/jpeg`,`image/png`],Ke=1024*1024*2,qe=[`video/mp4`,`video/quicktime`],Je=1024*1024*10,V=[`audio/mpeg`,`audio/wav`,`audio/ogg`],Ye=1024*1024*2,H=()=>B(Ke,Ge,`Max file size is 2 MB`,`.jpeg and .png files are accepted`),U=d().transform(e=>JSON.parse(e.value)),W=d().transform(e=>JSON.parse(e.value)),Xe=d().transform(e=>JSON.parse(e.value));h({pluginname:c().trim().refine(e=>ze.test(e),`Not a valid plugin name`),pluginversion:c().trim().refine(e=>/^[a-z][\w-]*$/i.test(e)||/^v?\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/i.test(e),`Not a valid plugin version (expected a dist-tag or exact semver)`).optional().default(`latest`)}).strict(),h({actionId:c(),payload:l()}).strict(),p(l(),l()),h({upload:H(),metadata:W,config:U}),h({upload:B(Ye,V,`Max file size is 2 MB`,`.mp3, .wav and .ogg files are accepted`),metadata:Xe,config:U}),h({upload:B(Je,qe,`Max file size is 5 MB`,`.mp4 files are accepted`),config:U}),h({upload:H(),metadata:W,config:U}),h({upload:H(),metadata:W,config:U}),h({upload:H(),metadata:W,config:U}),h({pluginname:c()}),h({scope:c(),pluginname:c()}),We.extend({pluginname:c().trim().optional(),refresh:x().optional()}),h({removeStorage:x().optional()}),h({pluginversion:c().trim().optional()});var Ze=h({enabled:b().optional(),directEnabled:b().optional(),directMode:m([`cloudflare`,`customDomain`]).optional(),customDomain:h({url:u(`Must be a valid URL`).trim().nullable()}).strict().optional(),cloudflare:h({mode:m([`quick`,`token`,`managed`]).optional(),hostname:c().trim().min(1,`Hostname is required`).max(253,`Hostname cannot be more than 253 characters`).nullable().optional(),token:c().trim().min(1,`Token is required`).nullable().optional()}).strict().optional()}).strict().refine(e=>!(e.directMode===`customDomain`&&!e.customDomain?.url),{message:`Custom domain URL is required when directMode is "customDomain"`,path:[`customDomain`,`url`]}).refine(e=>!(e.cloudflare?.mode===`token`&&!e.cloudflare?.token),{message:`Token is required when cloudflare.mode is "token"`,path:[`cloudflare`,`token`]}).refine(e=>!(e.cloudflare?.mode&&e.cloudflare.mode!==`quick`&&!e.cloudflare?.hostname),{message:`Hostname is required when cloudflare.mode is "token" or "managed"`,path:[`cloudflare`,`hostname`]});h({mode:m([`cloudflare`,`customDomain`])}).strict(),h({hostname:c().trim().min(1,`Hostname is required`).max(253,`Hostname cannot be more than 253 characters`).regex(/^[a-z0-9.-]+\.[a-z]{2,}$/i,`Invalid hostname`)}).strict(),h({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional()}).strict(),h({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional()}).strict(),h({name:c().trim().min(1,`Server name is required`).max(100,`Server name cannot be more than 100 characters`)}).strict(),h({version:c().trim().optional().default(`latest`)}).strict();var Qe=h({serverAddresses:C([Ce().trim(),be().trim()]).array().default([])}).strict();p(c(),l()),h({key:c()}).strict(),h({key:c(),payload:l()}).strict();var $e=[`image/jpeg`,`image/jpg`,`image/png`],et=1024*1024*5,tt=h({index:v(),cameraId:c(),colSpan:v().optional(),rowSpan:v().optional(),x:v().optional(),y:v().optional()}),nt=C([f(1),f(4),f(6),f(7),f(9),f(10),f(12),f(13),f(15),f(16),f(20),f(26)]),rt=C([f(`dnd`),f(`view`)]),it=h({_id:c().default(s()).transform(()=>s()),name:c().trim().min(1,`Layout name is required`),viewSize:nt,cameras:tt.array(),type:rt});h({name:c().trim().min(1,`Layout name is required`),viewSize:nt,cameras:tt.array()}).partial().optional();var at=h({views:it.array()}),ot=m([`contact`,`temperature`,`humidity`,`occupancy`,`smoke`,`leak`,`light`,`siren`,`switch`,`lock`,`garage`,`doorbell`,`securitySystem`,`battery`]),st=Se(`type`,[h({_id:c().default(s()).transform(()=>s()),type:f(`camera`),cameraId:c(),points:D}),h({_id:c().default(s()).transform(()=>s()),type:f(`sensor`),sensorType:ot,sensorName:c(),sensorPluginId:c(),sensorCameraId:c(),points:D})]);C([h({type:f(`camera`),cameraId:c(),points:D}).partial(),h({type:f(`sensor`),sensorType:ot,sensorName:c(),sensorPluginId:c(),sensorCameraId:c(),points:D}).partial()]).optional();var ct=h({shortcuts:st.array()}),lt=h({camview:at,cameras:p(c().trim(),ct)}),G=c().trim().min(10,`Password must be at least 10 characters long`).regex(/[A-Z]/,`Password must contain at least one uppercase letter`).regex(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/,`Password must contain at least one special character (!@#$%^&*()_+-=[]{};:'"\\|,.<>/?)`).max(32,`Password cannot be more than 32 characters`),ut=h({_id:c().default(s()).transform(()=>s()),username:c().trim().min(1,`Username is required`),password:G,passwordConfirm:c().trim().min(1,`Please confirm your password`),role:C([f(`admin`),f(`user`)]),firstLogin:b().default(!0),preferences:lt.default({camview:{views:[]},cameras:{}})}).strict().refine(e=>e.password===e.passwordConfirm,{path:[`passwordConfirm`],message:`Passwords do not match`});h({username:c().trim().min(1,`Username is required`),password:c().trim().min(1,`Password is required`),kind:m([`native`,`web`]),persistent:b().default(!1),device:h({id:c().min(1,`Device id is required`).max(128,`Device id cannot be more than 128 characters`),name:c().trim().min(1,`Device name is required`).max(100,`Device name cannot be more than 100 characters`)})}).strict();var dt=h({username:c().trim().min(1,`Username is required`).optional(),password:G.optional(),passwordConfirm:c().trim().optional(),role:C([f(`admin`),f(`user`)]).optional(),upload:xe(B(et,$e,`Max file size is 5MB.`,`.jpg, .jpeg, .png files are accepted.`)),firstLogin:b().optional(),preferences:lt.partial().optional()}).strict().refine(e=>e.password===e.passwordConfirm,{path:[`passwordConfirm`],message:`Passwords do not match`});h({username:c()}),h({username:c(),cameraname:c()}),h({username:c(),cameraname:c(),shortcutid:c()}),h({username:c(),viewid:c()}),h({username:c()});var K={[t.Motion]:{category:n.Sensor,assignmentKey:`motion`,multiProvider:!1,isDetectionType:!0},[t.Object]:{category:n.Sensor,assignmentKey:`object`,multiProvider:!1,isDetectionType:!0},[t.Audio]:{category:n.Sensor,assignmentKey:`audio`,multiProvider:!1,isDetectionType:!0},[t.Face]:{category:n.Sensor,assignmentKey:`face`,multiProvider:!1,isDetectionType:!0},[t.LicensePlate]:{category:n.Sensor,assignmentKey:`licensePlate`,multiProvider:!1,isDetectionType:!0},[t.Classifier]:{category:n.Sensor,assignmentKey:`classifier`,multiProvider:!0,isDetectionType:!0},[t.Clip]:{category:n.Sensor,assignmentKey:`clip`,multiProvider:!1,isDetectionType:!0},[t.Contact]:{category:n.Sensor,assignmentKey:`contact`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`detected`,value:!0,sustained:!0}},[t.Light]:{category:n.Control,assignmentKey:`light`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`on`,value:!0,sustained:!0}},[t.Siren]:{category:n.Control,assignmentKey:`siren`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`active`,value:!0,sustained:!0}},[t.Switch]:{category:n.Control,assignmentKey:`switch`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`on`,value:!0,sustained:!0}},[t.PTZ]:{category:n.Control,assignmentKey:`ptz`,multiProvider:!1,isDetectionType:!1},[t.Lock]:{category:n.Control,assignmentKey:`lock`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`currentState`,value:1,sustained:!0}},[t.SecuritySystem]:{category:n.Control,assignmentKey:`securitySystem`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`currentState`,value:4,sustained:!0}},[t.Doorbell]:{category:n.Trigger,assignmentKey:`doorbell`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`ring`,value:!0,sustained:!1}},[t.Temperature]:{category:n.Info,assignmentKey:`temperature`,multiProvider:!0,isDetectionType:!1},[t.Humidity]:{category:n.Info,assignmentKey:`humidity`,multiProvider:!0,isDetectionType:!1},[t.Occupancy]:{category:n.Sensor,assignmentKey:`occupancy`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`detected`,value:!0,sustained:!0}},[t.Smoke]:{category:n.Sensor,assignmentKey:`smoke`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`detected`,value:!0,sustained:!0}},[t.Leak]:{category:n.Sensor,assignmentKey:`leak`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`detected`,value:!0,sustained:!0}},[t.Garage]:{category:n.Control,assignmentKey:`garage`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`currentState`,value:0,sustained:!0}},[t.Battery]:{category:n.Info,assignmentKey:`battery`,multiProvider:!1,isDetectionType:!1}};t.Battery,o.Charging,e.Charging,o.Low,e.LowBattery,t.Light,le.Brightness,fe.Brightness,t.Siren,de.Volume,ee.Volume;function ft(){return Object.entries(K).filter(([,e])=>e.multiProvider).map(([e])=>e)}function pt(){return Object.entries(K).filter(([,e])=>e.isDetectionType).map(([e])=>e)}function mt(e){return K[e].assignmentKey}function ht(){return Object.entries(K).filter(([,e])=>e.category===n.Sensor&&!e.multiProvider).map(([e])=>e)}function gt(){return Object.entries(K).filter(([,e])=>!e.multiProvider&&e.category!==n.Sensor).map(([e])=>e)}function _t(){return Object.entries(K).filter(([,e])=>e.multiProvider).map(([e])=>e)}function vt(e){return!K[e].multiProvider}var yt={[t.Motion]:Object.values(re),[t.Object]:Object.values(ge),[t.Audio]:Object.values(i),[t.Face]:Object.values(ye),[t.LicensePlate]:Object.values(oe),[t.Classifier]:Object.values(r),[t.Clip]:[],[t.Contact]:Object.values(ve),[t.Temperature]:Object.values(ue),[t.Humidity]:Object.values(a),[t.Occupancy]:Object.values(ce),[t.Smoke]:Object.values(se),[t.Leak]:Object.values(ae),[t.Light]:Object.values(le),[t.Siren]:Object.values(de),[t.Switch]:Object.values(pe),[t.Lock]:Object.values(ie),[t.Garage]:Object.values(_e),[t.PTZ]:Object.values(ne),[t.SecuritySystem]:Object.values(me),[t.Doorbell]:Object.values(te),[t.Battery]:Object.values(o)};function bt(e){return yt[e]??[]}new Set(ft()),new Set(pt());var xt=`bubble://.cui://.doorbird://.dvrip://.echo:.eseecloud://.exec:.expr:.ffmpeg:.flussonic://.gopro://.hass:.homekit://.http://.https://.httpx://.isapi://.ivideon:.kasa://.nest:.onvif://.ring:.roborock://.rtmp://.rtsp://.rtspx://.tapo://.tcp://.tuya://.xiaomi://.yandex:.webrtc:.webtorrent:.wyze://`.split(`.`),St=[`#backchannel=`,`#header=`,`#media=audio`,`#media=video`,`#timeout=10`,`#timeout=20`,`#timeout=30`,`#transport=`],Ct=`#audio=aac.#audio=aac/16000.#audio=mp3.#audio=opus.#audio=pcm.#audio=pcm/8000.#audio=pcm/16000.#audio=pcm/48000.#audio=pcma.#audio=pcma/8000.#audio=pcma/16000.#audio=pcma/48000.#audio=pcml.#audio=pcml/8000.#audio=pcml/44100.#audio=pcmu.#audio=pcmu/8000.#audio=pcmu/16000.#audio=pcmu/48000.#drawtext.#hardware.#hardware=cuda.#hardware=dxva2.#hardware=rkmpp.#hardware=v4l2m2m.#hardware=vaapi.#hardware=videotoolbox.#height=.#raw=.#rotate=-90.#rotate=90.#rotate=180.#rotate=270.#video=copy.#video=h264.#video=h265.#video=mjpeg.#width=`.split(`.`),wt=[`client_id=`,`client_private=`,`device_id=`,`device_public=`],Tt=[`#header=`],Et=[`client_id=`,`client_secret=`,`refresh_token=`,`project_id=`,`device_id=`],Dt=[`device_id=`,`refresh_token=`],Ot=[`#client_id=`,`#format=openipc`,`#format=wyze`,`#format=kinesis`,`#ice_servers=`];function kt(e){return e.type===`string`&&!(`enum`in e)}function At(e){return e.type===`number`}function jt(e){return e.type===`boolean`}function q(e){return e.type===`string`&&`enum`in e}function Mt(e){return e.type===`array`}function J(e){return e.type===`button`}function Y(e){return e.type===`submit`}function Nt(e){return kt(e)&&(!e.format||e.format!==`qrCode`&&e.format!==`image`)}var Pt=(e,t)=>{let n=Q(t,e.key),r=e.value;switch(e.operator??`eq`){case`eq`:return n===r;case`neq`:return n==null||n===``?!1:n!==r;case`gt`:return typeof n==`number`&&typeof r==`number`&&n>r;case`lt`:return typeof n==`number`&&typeof r==`number`&&n<r;case`in`:return(Array.isArray(r)?r:[r]).includes(n);case`nin`:return n==null||n===``?!1:!(Array.isArray(r)?r:[r]).includes(n);default:return!0}};function X(e,t){return Array.isArray(e)?e.every(e=>Pt(e,t)):Pt(e,t)}function Ft(e,t){if(!e||Object.keys(e).length===0)return!0;let n=t.filter(e=>!J(e)&&!Y(e));for(let t of n){let n=Q(e,t.key),r=Z(t);if(n!==void 0&&!he(n,r,!0))return!1}return!0}function Z(e){if(`defaultValue`in e&&e.defaultValue!==void 0)return e.defaultValue;switch(e.type){case`string`:return q(e)?e.multiple?[]:e.required?e.enum[0]:``:``;case`number`:return 0;case`boolean`:return!1;case`array`:return[];default:return}}function It(e){let t={};for(let n of e)J(n)||Y(n)||(t[n.key]=Z(n));return t}function Q(e={},t){if(!t.includes(`.`)&&!t.includes(`[`))return e[t];let n=t.split(`.`).reduce((e,t)=>{if(t.includes(`[`)){let[n,r]=t.split(`[`);e.push(n,r.slice(0,-1))}else e.push(t);return e},[]),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}function Lt(e,t,n){if(!t.includes(`.`)&&!t.includes(`[`)){e[t]=n;return}let r=t.split(`.`).reduce((e,t)=>{if(t.includes(`[`)){let[n,r]=t.split(`[`);e.push(n,r.slice(0,-1))}else e.push(t);return e},[]),i=r.pop();if(!i)return;let a=e;for(let e of r){if(a[e]===void 0||a[e]===null){let t=r[r.indexOf(e)+1];a[e]=isNaN(Number(t))?{}:[]}a=a[e]}a[i]=n}function Rt(e,t){let n={};for(let r of e)if(`store`in r&&r.store&&!J(r)&&!Y(r)){let e=Q(t,r.key);e!==void 0&&(n[r.key]=e)}return n}function zt(e,t){return t?e.filter(e=>`group`in e&&e.group===t):e}function Bt(e,t){let n=zt(e,t);return n.length>0&&n.every(e=>`readonly`in e&&e.readonly)}function Vt(e,t){let n=zt(e,t);return n.length>0&&n.some(e=>`store`in e&&e.store)}function Ht(e,t){if(!t)return!0;let n={"date-time":e=>/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d+)?(Z|[+-]\d{2}:\d{2})?$/.test(e),date:e=>/^\d{4}-\d{2}-\d{2}$/.test(e),time:e=>/^([01]?[0-9]|2[0-3]):([0-5][0-9])(:([0-5][0-9]))?$/.test(e),email:e=>/^\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b$/.test(e),uuid:e=>/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/.test(e),ipv4:e=>/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/.test(e),ipv6:e=>/^\s*([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4})\s*$/.test(e)};return t in n?n[t](e):!0}function $(e){if(J(e)||Y(e))return l();switch(e.type){case`string`:if(q(e))if(e.multiple){let t=_(c().trim().refine(t=>e.enum.includes(t),{error:`Invalid selection`}));return e.required&&(t=t.min(1,{error:`Required`})),e.required?t:t.optional()}else{let t=m(e.enum);return e.required?t:t.optional()}let t=c().trim();return e.required&&(t=t.nonempty(`Required`)),e.minLength!==void 0&&(t=t.min(e.minLength)),e.maxLength!==void 0&&(t=t.max(e.maxLength)),e.format&&(t=t.refine(t=>!t||t.trim()===``||Ht(t,e.format),{message:`Invalid ${e.format} format`})),e.required?t:t.optional();case`number`:let n=v();return e.minimum!==void 0&&(n=n.min(e.minimum)),e.maximum!==void 0&&(n=n.max(e.maximum)),e.required&&(n=n.refine(e=>e!=null,{error:`Required`})),e.required?n:n.optional();case`boolean`:return e.required?b():b().optional();case`array`:let r=_($(e.items));return e.required?r:r.optional();default:return e.required?l():l().optional()}}var Ut=(e,t,n)=>t.filter(e=>`group`in e&&e.group===n).some(t=>{let n=e[t.key];return n!=null&&n!==``});function Wt(e){let t={},n=new Set;e.forEach(e=>{`group`in e&&e.group&&n.add(e.group)}),e.forEach(e=>{if(!J(e)&&!Y(e)){let n=`group`in e&&e.group,r=`condition`in e&&e.condition;(n||r)&&e.required?t[e.key]=$({...e,required:!1}):t[e.key]=$(e)}});let r=h(t),i=e.filter(e=>`condition`in e&&e.condition&&`required`in e&&e.required&&!J(e)&&!Y(e));return(n.size>0||i.length>0)&&(r=r.superRefine((t,r)=>{for(let i of n)if(Ut(t,e,i)){let n=e.filter(e=>`group`in e&&e.group===i);for(let e of n)if(`required`in e&&e.required){if(`condition`in e&&e.condition&&!X(e.condition,t))continue;let n=t[e.key];(n==null||n===``)&&r.addIssue({code:y.custom,message:`Required`,path:[e.key]})}}for(let e of i)if(!(`group`in e&&e.group)&&`condition`in e&&e.condition&&X(e.condition,t)){let n=t[e.key];(n==null||n===``)&&r.addIssue({code:y.custom,message:`Required`,path:[e.key]})}})),r}var Gt=function(e){return e.READY=`ready`,e.RESTARTING=`restarting`,e.STARTING=`starting`,e.STARTED=`started`,e.STOPPED=`stopped`,e.ERROR=`error`,e.UNKNOWN=`unknown`,e}({});export{Re as $,mt as A,Qe as B,Et as C,Ot as D,xt as E,et as F,Ye as G,V as H,ut as I,Le as J,Je as K,G as L,ht as M,bt as N,K as O,vt as P,M as Q,dt as R,Tt as S,St as T,qe as U,Ze as V,Ge as W,O as X,k as Y,N as Z,Bt as _,Rt as a,Ct as b,Mt as c,Ft as d,q as f,Nt as g,Y as h,Z as i,gt as j,_t as k,jt as l,kt as m,X as n,Wt as o,At as p,Be as q,It as r,Q as s,Gt as t,J as u,Vt as v,Dt as w,wt as x,Lt as y,it as z};
@@ -1 +1 @@
1
- import"./api-Cntxdwiu.js";import"./vendor-DoIl6acN.js";async function e(){return{available:!1,enrolled:!1}}async function t(e){return!1}async function n(e,t){}async function r(e){}async function i(e,t){return null}export{i as a,n as i,r as n,t as r,e as t};
1
+ import"./api-aSYFKxo6.js";import"./vendor-DoIl6acN.js";async function e(){return{available:!1,enrolled:!1}}async function t(e){return!1}async function n(e,t){}async function r(e){}async function i(e,t){return null}export{i as a,n as i,r as n,t as r,e as t};
@@ -1 +1 @@
1
- import{Dn as e,qt as t}from"./vendor-cameraui-DgSMexWY.js";import{un as n}from"./vendor-DoIl6acN.js";import{t as r}from"./cameras-DRRy289F.js";import{A as i,N as a,O as o}from"./types-aZM1hCux.js";function s(){let{data:s}=new r().getCamerasQuery({page:1,pageSize:-1}),c=n(()=>s.value?.result??[]),l=n(()=>c.value.map(e=>({label:e.name,value:e._id})));function u(t){let n=c.value.find(e=>e._id===t);return n?.assignments?Object.values(e).filter(e=>{let t=i(e),r=n.assignments[t];return r?Array.isArray(r)?r.length>0:!0:!1}).map(e=>({label:e,value:e,meta:o[e]})):[]}function d(e,r){let{sensors:i,isLoading:a}=t(e,r);return{instanceOptions:n(()=>i.value.map(e=>({label:e.displayName.value||e.name,sensorName:e.name,pluginId:e.pluginId}))),isLoading:a}}function f(e){return a(e).map(e=>({label:e,value:e}))}return{cameras:c,cameraOptions:l,getSensorTypes:u,useSensorInstances:d,getPropertiesForSensor:f}}export{s as t};
1
+ import{Dn as e,qt as t}from"./vendor-cameraui-DgSMexWY.js";import{un as n}from"./vendor-DoIl6acN.js";import{t as r}from"./cameras-CvJDLEZ3.js";import{A as i,N as a,O as o}from"./types-BXo-JDGR.js";function s(){let{data:s}=new r().getCamerasQuery({page:1,pageSize:-1}),c=n(()=>s.value?.result??[]),l=n(()=>c.value.map(e=>({label:e.name,value:e._id})));function u(t){let n=c.value.find(e=>e._id===t);return n?.assignments?Object.values(e).filter(e=>{let t=i(e),r=n.assignments[t];return r?Array.isArray(r)?r.length>0:!0:!1}).map(e=>({label:e,value:e,meta:o[e]})):[]}function d(e,r){let{sensors:i,isLoading:a}=t(e,r);return{instanceOptions:n(()=>i.value.map(e=>({label:e.displayName.value||e.name,sensorName:e.name,pluginId:e.pluginId}))),isLoading:a}}function f(e){return a(e).map(e=>({label:e,value:e}))}return{cameras:c,cameraOptions:l,getSensorTypes:u,useSensorInstances:d,getPropertiesForSensor:f}}export{s as t};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/CuiMarkdownContent-qIS8eQHX.js","assets/CuiMarkdownContent-DaJ8HzaP.js","assets/vendor-DoIl6acN.js","assets/rolldown-runtime-DAXXjFlN.js","assets/vendor-markdown-UV_ycMZu.js","assets/vendor-markdown-DtOhvyRx.css"])))=>i.map(i=>d[i]);
2
- import{Hn as e,Qt as t,Si as n,Vn as r,fi as i,yi as a}from"./vendor-cameraui-DgSMexWY.js";import{T as o,f as s}from"./api-Cntxdwiu.js";import{$n as c,$t as l,An as u,Bn as d,Cr as f,En as ee,Er as p,Gn as m,Kn as h,Ln as g,Rn as _,Sr as v,Tr as te,Vn as ne,Wt as re,Zn as ie,bn as y,br as ae,dn as b,fn as x,fr as S,mn as C,mr as w,nr as T,on as oe,pn as E,rr as D,un as O,ur as k,wn as A,xn as j,xr as se,yn as M,zn as N}from"./vendor-DoIl6acN.js";import{l as ce}from"./vendor-core-BKHiXSX7.js";import{a as le,t as ue}from"./useSharedComposables-gpJ--qZh.js";import{t as de}from"./close-DuwOOM-P.js";import{t as fe}from"./useElectron-mh8HQUAI.js";import{A as P,J as pe}from"./vendor-primevue-7iEzPOvf.js";import{t as me}from"./CuiImage-KyBpvv-t.js";var he={viewBox:`0 0 16 16`,width:`1.2em`,height:`1.2em`};function F(e,t){return N(),C(`svg`,he,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M4.75 3.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h6.5c.69 0 1.25-.56 1.25-1.25v-1.5a.75.75 0 0 1 1.5 0v1.5A2.75 2.75 0 0 1 11.25 14h-6.5A2.75 2.75 0 0 1 2 11.25v-6.5A2.75 2.75 0 0 1 4.75 2h1.5a.75.75 0 0 1 0 1.5zM8 2.75A.75.75 0 0 1 8.75 2h4.5a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-1.5 0V4.561l-3.22 3.22A.75.75 0 1 1 8.22 6.72l3.22-3.22H8.75A.75.75 0 0 1 8 2.75`},null,-1)]])}var I=k({name:`fluent-open16-filled`,render:F}),L={viewBox:`0 0 16 16`,width:`1.2em`,height:`1.2em`};function R(e,t){return N(),C(`svg`,L,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M9.78 12.78a.75.75 0 0 1-1.06 0L4.47 8.53a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.042.018a.75.75 0 0 1 .018 1.042L6.06 8l3.72 3.72a.75.75 0 0 1 0 1.06`},null,-1)]])}var ge=k({name:`octicon-chevron-left16`,render:R}),z=j({render(){return A(`div`,{class:`flex items-center justify-center w-full h-full min-h-[100px]`},[A(r,{class:`w-[24px] h-[24px] m-0`,strokeWidth:`5`})])}});function _e(e,t){return y({loader:e,loadingComponent:z,delay:t?.delay??150})}var ve=Symbol(`DialogStepper`);function ye(e){let t=w(e),n=w(void 0),r={},i=(e,t)=>{r[e]||(r[e]=[]),r[e].push(t)},a=(e,t)=>{let n=r[e];if(n){let e=n.indexOf(t);e!==-1&&n.splice(e,1)}},o=(e,t)=>{let n=r[e];n&&n.forEach(e=>{e(t)})},s={currentTab:n,tabs:t,isMainTab:O(()=>!n.value),goToTab:e=>{let r=t.value.find(t=>t.id===e);r&&(n.value=e,o(`tabChange`,r))},goToMainTab:()=>{n.value=void 0,o(`tabChange`,void 0)},registerTab:e=>{t.value.some(t=>t.id===e.id)||t.value.push(e)},updateTabConfig:(e,n)=>{let r=t.value.findIndex(t=>t.id===e);r!==-1&&(t.value[r]={...t.value[r],...n},n.title&&o(`updateTabTitle`,{tabId:e,title:n.title}))},on:i,off:a,emit:o};return d(ve,s),s}var be={class:`p-dialog-content`},xe={key:0,class:`p-dialog-header-actions`},Se={class:`p-dialog-title truncate min-w-0 flex-1`},Ce={class:`p-dialog-header-actions ml-auto gap-2`},we={key:0,class:`text-wrap`},Te={key:0,class:`flex items-center justify-center shrink-0 w-full p-5 pb-safe-offset-5 mt-5 self-end`,style:{background:`var(--border-color)`}},Ee=j({__name:`CuiDialog`,setup(t){let r=_e(()=>re(()=>import(`./CuiMarkdownContent-qIS8eQHX.js`),__vite__mapDeps([0,1,2,3,4,5]))),s=ce(),y=o(),{t:k}=i(),{mdBreakpoint:A}=ue(),{width:j,height:P}=le(),{isElectronApp:he}=fe(),F=ee(`dialogRef`),L=ie(`dialogHeader`),R=ae(F.value.data),{contentText:z,contentProps:ve,loading:Ee,disabled:B,cancelButtonProps:V,confirmButtonProps:H,hideCancelButton:U,hideConfirmButton:W,dialogContentClass:De,dialogContentStyle:Oe,cancelText:ke,confirmText:Ae,stayActive:je,src:Me,title:G,fullscreen:Ne,tabs:K,goTo:Pe,draggable:Fe,rootId:q,markdown:Ie,headerActions:Le}=R;d(`dialogRefProps`,R);let J=S({});d(`dialogHeaderToggles`,J);let Re=F.value.options.templates,ze=n(document.getElementById(`app`)),Y=w(!1),X=w(null),Be=w(!1),Z=w(G.value),Ve=w(!1),Q,{style:He,x:Ue,y:We}=a(L,{disabled:!Fe?.value,containerElement(){return document.getElementById(`app`)},onStart(){Ve.value=!0}}),Ge=O(()=>{let e=document.getElementById(q?.value||``);if(!e)return 1/0;let t=e.offsetWidth;return ze.width.value-t}),Ke=O(()=>{let e=document.getElementById(q?.value||``);if(!e)return 1/0;let t=e.offsetHeight;return ze.height.value-t}),qe=O(()=>!!(Y.value||Ee?.value||se(X.value?.isLoading))),Je=O(()=>K.value!==void 0&&K.value.length>0),Ye=O(()=>ke?.value?ke.value:k(`components.form.button.close`)),Xe=O(()=>Ae?.value?Ae.value:k(`components.form.button.save`)),Ze=O(()=>({...V?.value,label:Ye.value,loading:void 0,size:`small`,severity:V?.value&&`severity`in V.value?V.value.severity:`secondary`,class:void 0})),Qe=O(()=>({...H?.value,label:Xe.value,loading:void 0,size:`small`,severity:H?.value&&`severity`in H.value?H.value.severity:`success`,class:`ml-auto`,disabled:B.value}));function $e(e){let t=X.value?.resolveGoTo?.();F.value.close(),s.push(t??e)}async function et(){try{Y.value=!0;let e=await X.value?.onCancel?.();F.value.close({status:`cancel`,data:e})}catch(e){y.add({severity:`error`,detail:e,life:3e3})}finally{Y.value=!1}}async function tt(){try{Y.value=!0;let e=await X.value?.onConfirm?.();if(e===null)return;je?.value?F.value.options.onConfirm?.(e):F.value.close({status:`confirm`,data:e})}catch(e){y.add({severity:`error`,detail:e,life:3e3})}finally{Y.value=!1}}function $(){let e=document.getElementById(q?.value||``)?.closest(`.p-dialog-mask`);if(!e)return;let t=Array.from(document.querySelectorAll(`.p-dialog-mask`)),n=0;for(let e of t){let t=parseInt(e.style.zIndex,10)||0;t>n&&(n=t)}(parseInt(e.style.zIndex,10)||0)<n&&(e.style.zIndex=String(n+1))}return Je.value&&(Q=ye(K.value??[]),c(Q.isMainTab,e=>{Be.value=!e},{immediate:!0}),Q.on(`updateTabTitle`,({tabId:e,title:t})=>{Q?.currentTab.value===e&&G?.value&&(Z.value=t)}),Q.on(`tabChange`,e=>{Z.value=e?.title??G.value})),c([He,j,P],()=>{if(!Ve.value)return;let e=document.getElementById(q?.value||``);if(e){let t=Math.max(0,Math.min(Ue.value,Ge.value)),n=Math.max(0,Math.min(We.value,Ke.value));e.style.left=`${t}px`,e.style.top=`${n}px`}}),g(()=>{let e=document.getElementById(q?.value||``)?.closest(`.p-dialog-mask`);e&&(e.addEventListener(`pointerdown`,$),$())}),_(()=>{let e=document.getElementById(q?.value||``)?.closest(`.p-dialog-mask`);e&&e.removeEventListener(`pointerdown`,$)}),(t,n)=>{let i=ge,a=e,o=I,s=de,c=me,d=pe;return N(),C(`div`,be,[b(`div`,{ref_key:`dialogHeader`,ref:L,class:f([`p-dialog-header justify-start gap-1`,{"cursor-move":v(Fe),"pt-6!":v(he)&&(v(Ne)||v(A))}])},[M(l,{name:`slide-left`},{default:T(()=>[v(Be)?(N(),C(`div`,xe,[M(a,{severity:`secondary`,text:``,rounded:``,class:`p-dialog-back-button`,onClick:v(Q)?.goToMainTab},{icon:T(()=>[M(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])])):E(``,!0)]),_:1}),b(`span`,Se,p(v(Z)),1),b(`div`,Ce,[(N(!0),C(oe,null,ne(v(Le)??[],(e,t)=>D((N(),x(a,{key:t,severity:`secondary`,text:``,rounded:``,loading:e.loading,class:f([`p-dialog-close-button`,{"!text-primary":e.toggle&&v(J)[t]}]),onClick:()=>{e.toggle&&(v(J)[t]=!v(J)[t]),e.onClick()}},{icon:T(()=>[(N(),x(m(e.icon),{width:`100%`,height:`100%`}))]),_:2},1032,[`loading`,`class`,`onClick`])),[[d,e.tooltip?{value:e.tooltip}:void 0,void 0,{bottom:!0}]])),128)),v(Pe)?D((N(),x(a,{key:0,severity:`secondary`,text:``,rounded:``,class:`p-dialog-close-button`,onClick:n[0]||=e=>$e(v(Pe))},{icon:T(()=>[M(o,{width:`100%`,height:`100%`})]),_:1})),[[d,{value:t.$t(`components.dialog.open`)},void 0,{bottom:!0}]]):E(``,!0),M(a,{severity:`secondary`,text:``,rounded:``,class:`p-dialog-close-button`,onClick:v(F).close},{icon:T(()=>[M(s,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])])],2),b(`div`,{class:f([`p-dialog-body flex justify-center w-full overflow-y-auto px-5 py-1 text-balance`,{"h-full":v(Ne)},v(De)]),style:te(v(Oe))},[v(z)&&!v(Ie)?(N(),C(`span`,we,p(v(z)),1)):v(z)&&v(Ie)?(N(),x(v(r),{key:1,content:v(z)},null,8,[`content`])):v(Me)?(N(),x(c,{key:2,src:v(Me),"image-container-class":`w-full h-full`},null,8,[`src`])):(N(),x(m(v(Re)?.content),u({key:3,ref_key:`componentRef`,ref:X,class:`w-full h-full relative`},v(ve),h(v(F).options.events||{})),null,16))],6),n[2]||=b(`div`,{class:`mt-auto`},null,-1),!v(U)||!v(W)?(N(),C(`div`,Te,[v(U)?E(``,!0):(N(),x(a,u({key:0},v(Ze),{class:`cui-button-medium`,onClick:et}),null,16)),n[1]||=b(`div`,{class:`ml-auto`},null,-1),v(W)?E(``,!0):(N(),x(a,u({key:1},v(Qe),{loading:v(qe),disabled:v(B),class:`cui-button-medium`,onClick:tt}),null,16,[`loading`,`disabled`]))])):E(``,!0)])}}}),B={modal:!0,closable:!0,blockScroll:!0,draggable:!1,dismissableMask:!0,baseZIndex:1100,showHeader:!1},V={pt:{root:{class:`p-dialog-maximized pt-safe border-none`}}},H={pt:{root:{class:`shadow-xl shadow-black/30 overflow-hidden`}}},U={mobile:{textDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V},imageDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V},componentDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V},stepperDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V}},desktop:{textDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`auto`},...H},imageDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`70vw`},...H},componentDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`70vw`},...H},stepperDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`70vw`},...H}}};function W(){return{open:(e,t)=>{let n={content:e&&k(e),options:t||{},data:t&&t.data,close:e=>{P.emit(`close`,{instance:n,params:e})}};return P.emit(`open`,{instance:n}),n}}}function De(){let e=W(),{mdBreakpoint:n}=ue(),r=(e,n,r)=>{let i=S({...e});r&&(n.pt.root.class=(n.pt.root.class?n.pt.root.class+` `:``)+`fixed mt-0`),t(i.options.props,n)},i=(e,t,i,a)=>{let o={mobile:a?.mobile?{style:{...a.mobile},...V}:void 0,desktop:a?.desktop?{style:{...a.desktop},...H}:void 0};return c(n,n=>{if(n)switch(t){case`text`:r(e,o.mobile??U.mobile.textDialog,i);break;case`image`:r(e,o.mobile??U.mobile.imageDialog,i);break;case`component`:r(e,o.mobile??U.mobile.componentDialog,i);break;case`stepper`:r(e,o.mobile??U.mobile.stepperDialog,i);break;default:break}else switch(t){case`text`:r(e,o.desktop??U.desktop.textDialog,i);break;case`image`:r(e,o.desktop??U.desktop.imageDialog,i);break;case`component`:r(e,o.desktop??U.desktop.componentDialog,i);break;case`stepper`:r(e,o.desktop??U.desktop.stepperDialog,i);break;default:break}},{immediate:!0}),e};function a(t,n,r){let{component:a,data:o,onConfirm:c,onCancel:l,onSettled:u,events:d,...f}=n,ee={content:a?k(a):void 0};r?.pt||(r={...r,pt:{root:{}}});let p=v(o.draggable)??!1;p&&(r.draggable=!0);let m=v(o.dismissableMask);m!==void 0&&(r.dismissableMask=m);let h=v(o.modal);h!==void 0&&(r.modal=h);let g=o.rootId??s(10);r.pt.root.id=g;let _=e.open(Ee,{data:ae(S({confirmText:o.confirmText??void 0,cancelText:o.cancelText??void 0,hideConfirmButton:o.hideConfirmButton??!1,hideCancelButton:o.hideCancelButton??!1,loading:o.loading??!1,disabled:o.disabled??!1,confirmButtonProps:o.confirmButtonProps??void 0,cancelButtonProps:o.cancelButtonProps??void 0,dialogContentClass:o.dialogContentClass??void 0,dialogContentStyle:o.dialogContentStyle??void 0,stayActive:o.stayActive??!1,fullscreen:o.fullscreen??!1,contentText:o.contentText??void 0,src:o.src??void 0,markdown:o.markdown??!1,contentProps:o.contentProps??void 0,tabs:o.tabs??void 0,rootId:g,...o})),props:r,templates:ee,events:d,onConfirm:c,onCancel:l,onClose:e=>{if(e?.data?.status===`confirm`){let{status:t,...n}=e.data;c?.(n?.data??n)}else l?.();u?.(e?.data?.data??e?.data)}});return o.fullscreen?_:i(_,t,p,f?.dialogSize)}function o(e){let{data:t,...n}=e,r=structuredClone(B);return r.style={...B.style,width:`auto`,minWidth:`400px`},t.fullscreen&&(r.style={...r.style,maxWidth:`none`,maxHeight:`100vh`},r.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`text`,{data:t,...n},r)}function l(e){let{data:t,...n}=e,r=structuredClone(B);return t.fullscreen&&(r.style={...r.style,maxWidth:`none`,maxHeight:`100vh`},r.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`image`,{data:t,...n},r)}function u(e,t){let{data:n,...r}=t,i=structuredClone(B);return n.fullscreen&&(i.style={...i.style,maxWidth:`none`,maxHeight:`100vh`},i.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`component`,{component:e,data:n,...r},i)}function d(e,t){let{data:n,...r}=t,i=structuredClone(B);return n.fullscreen&&(i.style={...i.style,maxWidth:`none`,maxHeight:`100vh`},i.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`stepper`,{component:e,data:n,...r},i)}return{openTextDialog:o,openImageDialog:l,openComponentDialog:u,openStepperDialog:d}}export{_e as n,I as r,De as t};
2
+ import{Hn as e,Qt as t,Si as n,Vn as r,fi as i,yi as a}from"./vendor-cameraui-DgSMexWY.js";import{T as o,f as s}from"./api-aSYFKxo6.js";import{$n as c,$t as l,An as u,Bn as d,Cr as f,En as ee,Er as p,Gn as m,Kn as h,Ln as g,Rn as _,Sr as v,Tr as te,Vn as ne,Wt as re,Zn as ie,bn as y,br as ae,dn as b,fn as x,fr as S,mn as C,mr as w,nr as T,on as oe,pn as E,rr as D,un as O,ur as k,wn as A,xn as j,xr as se,yn as M,zn as N}from"./vendor-DoIl6acN.js";import{l as ce}from"./vendor-core-BKHiXSX7.js";import{a as le,t as ue}from"./useSharedComposables-gpJ--qZh.js";import{t as de}from"./close-DuwOOM-P.js";import{t as fe}from"./useElectron-mh8HQUAI.js";import{A as P,J as pe}from"./vendor-primevue-7iEzPOvf.js";import{t as me}from"./CuiImage-B97QDAl7.js";var he={viewBox:`0 0 16 16`,width:`1.2em`,height:`1.2em`};function F(e,t){return N(),C(`svg`,he,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M4.75 3.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h6.5c.69 0 1.25-.56 1.25-1.25v-1.5a.75.75 0 0 1 1.5 0v1.5A2.75 2.75 0 0 1 11.25 14h-6.5A2.75 2.75 0 0 1 2 11.25v-6.5A2.75 2.75 0 0 1 4.75 2h1.5a.75.75 0 0 1 0 1.5zM8 2.75A.75.75 0 0 1 8.75 2h4.5a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-1.5 0V4.561l-3.22 3.22A.75.75 0 1 1 8.22 6.72l3.22-3.22H8.75A.75.75 0 0 1 8 2.75`},null,-1)]])}var I=k({name:`fluent-open16-filled`,render:F}),L={viewBox:`0 0 16 16`,width:`1.2em`,height:`1.2em`};function R(e,t){return N(),C(`svg`,L,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M9.78 12.78a.75.75 0 0 1-1.06 0L4.47 8.53a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.042.018a.75.75 0 0 1 .018 1.042L6.06 8l3.72 3.72a.75.75 0 0 1 0 1.06`},null,-1)]])}var ge=k({name:`octicon-chevron-left16`,render:R}),z=j({render(){return A(`div`,{class:`flex items-center justify-center w-full h-full min-h-[100px]`},[A(r,{class:`w-[24px] h-[24px] m-0`,strokeWidth:`5`})])}});function _e(e,t){return y({loader:e,loadingComponent:z,delay:t?.delay??150})}var ve=Symbol(`DialogStepper`);function ye(e){let t=w(e),n=w(void 0),r={},i=(e,t)=>{r[e]||(r[e]=[]),r[e].push(t)},a=(e,t)=>{let n=r[e];if(n){let e=n.indexOf(t);e!==-1&&n.splice(e,1)}},o=(e,t)=>{let n=r[e];n&&n.forEach(e=>{e(t)})},s={currentTab:n,tabs:t,isMainTab:O(()=>!n.value),goToTab:e=>{let r=t.value.find(t=>t.id===e);r&&(n.value=e,o(`tabChange`,r))},goToMainTab:()=>{n.value=void 0,o(`tabChange`,void 0)},registerTab:e=>{t.value.some(t=>t.id===e.id)||t.value.push(e)},updateTabConfig:(e,n)=>{let r=t.value.findIndex(t=>t.id===e);r!==-1&&(t.value[r]={...t.value[r],...n},n.title&&o(`updateTabTitle`,{tabId:e,title:n.title}))},on:i,off:a,emit:o};return d(ve,s),s}var be={class:`p-dialog-content`},xe={key:0,class:`p-dialog-header-actions`},Se={class:`p-dialog-title truncate min-w-0 flex-1`},Ce={class:`p-dialog-header-actions ml-auto gap-2`},we={key:0,class:`text-wrap`},Te={key:0,class:`flex items-center justify-center shrink-0 w-full p-5 pb-safe-offset-5 mt-5 self-end`,style:{background:`var(--border-color)`}},Ee=j({__name:`CuiDialog`,setup(t){let r=_e(()=>re(()=>import(`./CuiMarkdownContent-qIS8eQHX.js`),__vite__mapDeps([0,1,2,3,4,5]))),s=ce(),y=o(),{t:k}=i(),{mdBreakpoint:A}=ue(),{width:j,height:P}=le(),{isElectronApp:he}=fe(),F=ee(`dialogRef`),L=ie(`dialogHeader`),R=ae(F.value.data),{contentText:z,contentProps:ve,loading:Ee,disabled:B,cancelButtonProps:V,confirmButtonProps:H,hideCancelButton:U,hideConfirmButton:W,dialogContentClass:De,dialogContentStyle:Oe,cancelText:ke,confirmText:Ae,stayActive:je,src:Me,title:G,fullscreen:Ne,tabs:K,goTo:Pe,draggable:Fe,rootId:q,markdown:Ie,headerActions:Le}=R;d(`dialogRefProps`,R);let J=S({});d(`dialogHeaderToggles`,J);let Re=F.value.options.templates,ze=n(document.getElementById(`app`)),Y=w(!1),X=w(null),Be=w(!1),Z=w(G.value),Ve=w(!1),Q,{style:He,x:Ue,y:We}=a(L,{disabled:!Fe?.value,containerElement(){return document.getElementById(`app`)},onStart(){Ve.value=!0}}),Ge=O(()=>{let e=document.getElementById(q?.value||``);if(!e)return 1/0;let t=e.offsetWidth;return ze.width.value-t}),Ke=O(()=>{let e=document.getElementById(q?.value||``);if(!e)return 1/0;let t=e.offsetHeight;return ze.height.value-t}),qe=O(()=>!!(Y.value||Ee?.value||se(X.value?.isLoading))),Je=O(()=>K.value!==void 0&&K.value.length>0),Ye=O(()=>ke?.value?ke.value:k(`components.form.button.close`)),Xe=O(()=>Ae?.value?Ae.value:k(`components.form.button.save`)),Ze=O(()=>({...V?.value,label:Ye.value,loading:void 0,size:`small`,severity:V?.value&&`severity`in V.value?V.value.severity:`secondary`,class:void 0})),Qe=O(()=>({...H?.value,label:Xe.value,loading:void 0,size:`small`,severity:H?.value&&`severity`in H.value?H.value.severity:`success`,class:`ml-auto`,disabled:B.value}));function $e(e){let t=X.value?.resolveGoTo?.();F.value.close(),s.push(t??e)}async function et(){try{Y.value=!0;let e=await X.value?.onCancel?.();F.value.close({status:`cancel`,data:e})}catch(e){y.add({severity:`error`,detail:e,life:3e3})}finally{Y.value=!1}}async function tt(){try{Y.value=!0;let e=await X.value?.onConfirm?.();if(e===null)return;je?.value?F.value.options.onConfirm?.(e):F.value.close({status:`confirm`,data:e})}catch(e){y.add({severity:`error`,detail:e,life:3e3})}finally{Y.value=!1}}function $(){let e=document.getElementById(q?.value||``)?.closest(`.p-dialog-mask`);if(!e)return;let t=Array.from(document.querySelectorAll(`.p-dialog-mask`)),n=0;for(let e of t){let t=parseInt(e.style.zIndex,10)||0;t>n&&(n=t)}(parseInt(e.style.zIndex,10)||0)<n&&(e.style.zIndex=String(n+1))}return Je.value&&(Q=ye(K.value??[]),c(Q.isMainTab,e=>{Be.value=!e},{immediate:!0}),Q.on(`updateTabTitle`,({tabId:e,title:t})=>{Q?.currentTab.value===e&&G?.value&&(Z.value=t)}),Q.on(`tabChange`,e=>{Z.value=e?.title??G.value})),c([He,j,P],()=>{if(!Ve.value)return;let e=document.getElementById(q?.value||``);if(e){let t=Math.max(0,Math.min(Ue.value,Ge.value)),n=Math.max(0,Math.min(We.value,Ke.value));e.style.left=`${t}px`,e.style.top=`${n}px`}}),g(()=>{let e=document.getElementById(q?.value||``)?.closest(`.p-dialog-mask`);e&&(e.addEventListener(`pointerdown`,$),$())}),_(()=>{let e=document.getElementById(q?.value||``)?.closest(`.p-dialog-mask`);e&&e.removeEventListener(`pointerdown`,$)}),(t,n)=>{let i=ge,a=e,o=I,s=de,c=me,d=pe;return N(),C(`div`,be,[b(`div`,{ref_key:`dialogHeader`,ref:L,class:f([`p-dialog-header justify-start gap-1`,{"cursor-move":v(Fe),"pt-6!":v(he)&&(v(Ne)||v(A))}])},[M(l,{name:`slide-left`},{default:T(()=>[v(Be)?(N(),C(`div`,xe,[M(a,{severity:`secondary`,text:``,rounded:``,class:`p-dialog-back-button`,onClick:v(Q)?.goToMainTab},{icon:T(()=>[M(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])])):E(``,!0)]),_:1}),b(`span`,Se,p(v(Z)),1),b(`div`,Ce,[(N(!0),C(oe,null,ne(v(Le)??[],(e,t)=>D((N(),x(a,{key:t,severity:`secondary`,text:``,rounded:``,loading:e.loading,class:f([`p-dialog-close-button`,{"!text-primary":e.toggle&&v(J)[t]}]),onClick:()=>{e.toggle&&(v(J)[t]=!v(J)[t]),e.onClick()}},{icon:T(()=>[(N(),x(m(e.icon),{width:`100%`,height:`100%`}))]),_:2},1032,[`loading`,`class`,`onClick`])),[[d,e.tooltip?{value:e.tooltip}:void 0,void 0,{bottom:!0}]])),128)),v(Pe)?D((N(),x(a,{key:0,severity:`secondary`,text:``,rounded:``,class:`p-dialog-close-button`,onClick:n[0]||=e=>$e(v(Pe))},{icon:T(()=>[M(o,{width:`100%`,height:`100%`})]),_:1})),[[d,{value:t.$t(`components.dialog.open`)},void 0,{bottom:!0}]]):E(``,!0),M(a,{severity:`secondary`,text:``,rounded:``,class:`p-dialog-close-button`,onClick:v(F).close},{icon:T(()=>[M(s,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])])],2),b(`div`,{class:f([`p-dialog-body flex justify-center w-full overflow-y-auto px-5 py-1 text-balance`,{"h-full":v(Ne)},v(De)]),style:te(v(Oe))},[v(z)&&!v(Ie)?(N(),C(`span`,we,p(v(z)),1)):v(z)&&v(Ie)?(N(),x(v(r),{key:1,content:v(z)},null,8,[`content`])):v(Me)?(N(),x(c,{key:2,src:v(Me),"image-container-class":`w-full h-full`},null,8,[`src`])):(N(),x(m(v(Re)?.content),u({key:3,ref_key:`componentRef`,ref:X,class:`w-full h-full relative`},v(ve),h(v(F).options.events||{})),null,16))],6),n[2]||=b(`div`,{class:`mt-auto`},null,-1),!v(U)||!v(W)?(N(),C(`div`,Te,[v(U)?E(``,!0):(N(),x(a,u({key:0},v(Ze),{class:`cui-button-medium`,onClick:et}),null,16)),n[1]||=b(`div`,{class:`ml-auto`},null,-1),v(W)?E(``,!0):(N(),x(a,u({key:1},v(Qe),{loading:v(qe),disabled:v(B),class:`cui-button-medium`,onClick:tt}),null,16,[`loading`,`disabled`]))])):E(``,!0)])}}}),B={modal:!0,closable:!0,blockScroll:!0,draggable:!1,dismissableMask:!0,baseZIndex:1100,showHeader:!1},V={pt:{root:{class:`p-dialog-maximized pt-safe border-none`}}},H={pt:{root:{class:`shadow-xl shadow-black/30 overflow-hidden`}}},U={mobile:{textDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V},imageDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V},componentDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V},stepperDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V}},desktop:{textDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`auto`},...H},imageDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`70vw`},...H},componentDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`70vw`},...H},stepperDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`70vw`},...H}}};function W(){return{open:(e,t)=>{let n={content:e&&k(e),options:t||{},data:t&&t.data,close:e=>{P.emit(`close`,{instance:n,params:e})}};return P.emit(`open`,{instance:n}),n}}}function De(){let e=W(),{mdBreakpoint:n}=ue(),r=(e,n,r)=>{let i=S({...e});r&&(n.pt.root.class=(n.pt.root.class?n.pt.root.class+` `:``)+`fixed mt-0`),t(i.options.props,n)},i=(e,t,i,a)=>{let o={mobile:a?.mobile?{style:{...a.mobile},...V}:void 0,desktop:a?.desktop?{style:{...a.desktop},...H}:void 0};return c(n,n=>{if(n)switch(t){case`text`:r(e,o.mobile??U.mobile.textDialog,i);break;case`image`:r(e,o.mobile??U.mobile.imageDialog,i);break;case`component`:r(e,o.mobile??U.mobile.componentDialog,i);break;case`stepper`:r(e,o.mobile??U.mobile.stepperDialog,i);break;default:break}else switch(t){case`text`:r(e,o.desktop??U.desktop.textDialog,i);break;case`image`:r(e,o.desktop??U.desktop.imageDialog,i);break;case`component`:r(e,o.desktop??U.desktop.componentDialog,i);break;case`stepper`:r(e,o.desktop??U.desktop.stepperDialog,i);break;default:break}},{immediate:!0}),e};function a(t,n,r){let{component:a,data:o,onConfirm:c,onCancel:l,onSettled:u,events:d,...f}=n,ee={content:a?k(a):void 0};r?.pt||(r={...r,pt:{root:{}}});let p=v(o.draggable)??!1;p&&(r.draggable=!0);let m=v(o.dismissableMask);m!==void 0&&(r.dismissableMask=m);let h=v(o.modal);h!==void 0&&(r.modal=h);let g=o.rootId??s(10);r.pt.root.id=g;let _=e.open(Ee,{data:ae(S({confirmText:o.confirmText??void 0,cancelText:o.cancelText??void 0,hideConfirmButton:o.hideConfirmButton??!1,hideCancelButton:o.hideCancelButton??!1,loading:o.loading??!1,disabled:o.disabled??!1,confirmButtonProps:o.confirmButtonProps??void 0,cancelButtonProps:o.cancelButtonProps??void 0,dialogContentClass:o.dialogContentClass??void 0,dialogContentStyle:o.dialogContentStyle??void 0,stayActive:o.stayActive??!1,fullscreen:o.fullscreen??!1,contentText:o.contentText??void 0,src:o.src??void 0,markdown:o.markdown??!1,contentProps:o.contentProps??void 0,tabs:o.tabs??void 0,rootId:g,...o})),props:r,templates:ee,events:d,onConfirm:c,onCancel:l,onClose:e=>{if(e?.data?.status===`confirm`){let{status:t,...n}=e.data;c?.(n?.data??n)}else l?.();u?.(e?.data?.data??e?.data)}});return o.fullscreen?_:i(_,t,p,f?.dialogSize)}function o(e){let{data:t,...n}=e,r=structuredClone(B);return r.style={...B.style,width:`auto`,minWidth:`400px`},t.fullscreen&&(r.style={...r.style,maxWidth:`none`,maxHeight:`100vh`},r.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`text`,{data:t,...n},r)}function l(e){let{data:t,...n}=e,r=structuredClone(B);return t.fullscreen&&(r.style={...r.style,maxWidth:`none`,maxHeight:`100vh`},r.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`image`,{data:t,...n},r)}function u(e,t){let{data:n,...r}=t,i=structuredClone(B);return n.fullscreen&&(i.style={...i.style,maxWidth:`none`,maxHeight:`100vh`},i.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`component`,{component:e,data:n,...r},i)}function d(e,t){let{data:n,...r}=t,i=structuredClone(B);return n.fullscreen&&(i.style={...i.style,maxWidth:`none`,maxHeight:`100vh`},i.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`stepper`,{component:e,data:n,...r},i)}return{openTextDialog:o,openImageDialog:l,openComponentDialog:u,openStepperDialog:d}}export{_e as n,I as r,De as t};
@@ -1 +1 @@
1
- import{F as e}from"./api-Cntxdwiu.js";import"./vendor-DoIl6acN.js";async function t(e){let t=await i(e);a()&&await o(t,e.filename)||s(t,e.filename)}function n(t){return/^https?:\/\//i.test(t)?t:`${e().target.value?.endpoint.url??window.location.origin}${t.startsWith(`/`)?``:`/`}${t}`}function r(){let t={},n=e().target.value?.tokens;return n?.access&&(t.Authorization=`Bearer ${n.access}`),n?.proxySession&&(t[`X-Proxy-Session`]=n.proxySession),t}async function i(e){if(`blob`in e)return e.blob;if(`dataUrl`in e)return(await fetch(e.dataUrl)).blob();let t=await fetch(n(e.url),{headers:r(),credentials:`include`});if(!t.ok)throw Error(`Download failed: ${t.status} ${t.statusText}`);return t.blob()}function a(){return typeof window>`u`?!1:window.matchMedia(`(display-mode: standalone)`).matches?!0:!!window.navigator.standalone}async function o(e,t){if(typeof navigator>`u`||!navigator.canShare||!navigator.share)return!1;let n=new File([e],t,{type:e.type||`application/octet-stream`});if(!navigator.canShare({files:[n]}))return!1;try{return await navigator.share({files:[n]}),!0}catch(e){return e instanceof Error&&e.name===`AbortError`}}function s(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}export{t};
1
+ import{F as e}from"./api-aSYFKxo6.js";import"./vendor-DoIl6acN.js";async function t(e){let t=await i(e);a()&&await o(t,e.filename)||s(t,e.filename)}function n(t){return/^https?:\/\//i.test(t)?t:`${e().target.value?.endpoint.url??window.location.origin}${t.startsWith(`/`)?``:`/`}${t}`}function r(){let t={},n=e().target.value?.tokens;return n?.access&&(t.Authorization=`Bearer ${n.access}`),n?.proxySession&&(t[`X-Proxy-Session`]=n.proxySession),t}async function i(e){if(`blob`in e)return e.blob;if(`dataUrl`in e)return(await fetch(e.dataUrl)).blob();let t=await fetch(n(e.url),{headers:r(),credentials:`include`});if(!t.ok)throw Error(`Download failed: ${t.status} ${t.statusText}`);return t.blob()}function a(){return typeof window>`u`?!1:window.matchMedia(`(display-mode: standalone)`).matches?!0:!!window.navigator.standalone}async function o(e,t){if(typeof navigator>`u`||!navigator.canShare||!navigator.share)return!1;let n=new File([e],t,{type:e.type||`application/octet-stream`});if(!navigator.canShare({files:[n]}))return!1;try{return await navigator.share({files:[n]}),!0}catch(e){return e instanceof Error&&e.name===`AbortError`}}function s(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}export{t};
@@ -1,4 +1,4 @@
1
- import{Si as e,Ti as t,Yi as n,fi as r,qi as i,vi as a}from"./vendor-cameraui-DgSMexWY.js";import{T as o,b as s}from"./api-Cntxdwiu.js";import{$n as c,Cr as l,Ln as u,Rn as d,Sr as f,Zn as p,_r as m,br as h,mn as g,mr as _,un as v,xn as y,zn as b}from"./vendor-DoIl6acN.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ee}from"./useSharedComposables-gpJ--qZh.js";import{a as te,i as S,n as C,r as w,t as T}from"./vendor-xterm-BRN-hOYD.js";var E=x(y({__name:`CuiConsole`,props:{options:{default:()=>({fontSize:14})},ignoreBreakpoint:{type:Boolean}},emits:[`resize`],setup(s,{expose:y,emit:x}){let E=s,D=x,{smBreakpoint:ne}=ee(),{t:re}=r(),ie=o(),{copy:ae}=a({legacy:!0}),{options:O,ignoreBreakpoint:k}=h(E),A={fontSize:14,scrollback:5e3,allowTransparency:!1,smoothScrollDuration:0,disableStdin:!0,allowProposedApi:!0},j=p(`terminalContainerRef`),M=_(0),N=m(null),P=_(!1),F=null,I=null,L=null,R=null,z,B=``,V=!1,H=!0,U=e(j),W=v(()=>{if(!N.value)return!0;let e=N.value.buffer.active.length-N.value.rows;return M.value>=e});function G(){N.value&&(M.value=N.value.buffer.active.viewportY)}function K(){!N.value||!F||(F.fit(),G(),N.value.cols&&D(`resize`,N.value.cols))}function q(){K(),N.value?.scrollToBottom(),G()}let J=i(G,16),Y=i(q,100),{start:oe,stop:se,isPending:ce}=n(()=>{N.value&&B&&(N.value.write(B),B=``,J())},16,{immediate:!1});function le(e){if(H){if(e=e.replace(/^[\r\n]+/,``),!e)return;H=!1}V&&=(B+=`
1
+ import{Si as e,Ti as t,Yi as n,fi as r,qi as i,vi as a}from"./vendor-cameraui-DgSMexWY.js";import{T as o,b as s}from"./api-aSYFKxo6.js";import{$n as c,Cr as l,Ln as u,Rn as d,Sr as f,Zn as p,_r as m,br as h,mn as g,mr as _,un as v,xn as y,zn as b}from"./vendor-DoIl6acN.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ee}from"./useSharedComposables-gpJ--qZh.js";import{a as te,i as S,n as C,r as w,t as T}from"./vendor-xterm-BRN-hOYD.js";var E=x(y({__name:`CuiConsole`,props:{options:{default:()=>({fontSize:14})},ignoreBreakpoint:{type:Boolean}},emits:[`resize`],setup(s,{expose:y,emit:x}){let E=s,D=x,{smBreakpoint:ne}=ee(),{t:re}=r(),ie=o(),{copy:ae}=a({legacy:!0}),{options:O,ignoreBreakpoint:k}=h(E),A={fontSize:14,scrollback:5e3,allowTransparency:!1,smoothScrollDuration:0,disableStdin:!0,allowProposedApi:!0},j=p(`terminalContainerRef`),M=_(0),N=m(null),P=_(!1),F=null,I=null,L=null,R=null,z,B=``,V=!1,H=!0,U=e(j),W=v(()=>{if(!N.value)return!0;let e=N.value.buffer.active.length-N.value.rows;return M.value>=e});function G(){N.value&&(M.value=N.value.buffer.active.viewportY)}function K(){!N.value||!F||(F.fit(),G(),N.value.cols&&D(`resize`,N.value.cols))}function q(){K(),N.value?.scrollToBottom(),G()}let J=i(G,16),Y=i(q,100),{start:oe,stop:se,isPending:ce}=n(()=>{N.value&&B&&(N.value.write(B),B=``,J())},16,{immediate:!1});function le(e){if(H){if(e=e.replace(/^[\r\n]+/,``),!e)return;H=!1}V&&=(B+=`
2
2
  `,!1),e.endsWith(`
3
3
  `)?(B+=e.slice(0,-1),V=!0):e.endsWith(`\r
4
4
  `)?(B+=e.slice(0,-2),V=!0):B+=e,ce.value||oe()}function X(){requestAnimationFrame(()=>{N.value?.scrollToBottom(),J()})}function ue(){se(),B=``,V=!1,H=!0,N.value?.reset(),J()}function de(){if(!N.value)return``;let e=N.value.buffer.active,t=[];for(let n=0;n<e.length;n++)t.push(e.getLine(n)?.translateToString(!0)??``);return t.join(`
@@ -1 +1 @@
1
- import{b as e}from"./api-Cntxdwiu.js";import{ar as t,fr as n,un as r}from"./vendor-DoIl6acN.js";var i=1e4,a=n({streamStatus:{}}),o=null,s=null,c;function l(){s?.emit(`get-stream-status`)}function u(){return s||(o=t(!0),o.run(()=>{let t=e(`/camera.ui`);s=t,t.on(`stream-status`,e=>{a.streamStatus=e}),t.onReady(()=>{l()})}),c||=setInterval(l,i),s)}function d(e){let t=Object.values(e);if(t.length===0)return`idle`;let n=t.filter(e=>e===`connected`).length,r=t.filter(e=>e===`error`).length,i=t.filter(e=>e===`connecting`).length;return n===t.length?`connected`:r===t.length?`error`:i>0&&n===0&&r===0?`connecting`:n>0&&(r>0||t.some(e=>e===`idle`))?`partial`:n>0?`connected`:i>0?`connecting`:`idle`}function f(){function e(){u()}function t(){}function n(e){let t=a.streamStatus[e];return t?d(t):`idle`}function i(e){return a.streamStatus[e]}function o(e,t){return a.streamStatus[e]?.[t]??`idle`}return{streamStatus:r(()=>a.streamStatus),getCameraStatus:n,getCameraSources:i,getSourceStatus:o,connect:e,disconnect:t,refresh:l}}export{f as t};
1
+ import{b as e}from"./api-aSYFKxo6.js";import{ar as t,fr as n,un as r}from"./vendor-DoIl6acN.js";var i=1e4,a=n({streamStatus:{}}),o=null,s=null,c;function l(){s?.emit(`get-stream-status`)}function u(){return s||(o=t(!0),o.run(()=>{let t=e(`/camera.ui`);s=t,t.on(`stream-status`,e=>{a.streamStatus=e}),t.onReady(()=>{l()})}),c||=setInterval(l,i),s)}function d(e){let t=Object.values(e);if(t.length===0)return`idle`;let n=t.filter(e=>e===`connected`).length,r=t.filter(e=>e===`error`).length,i=t.filter(e=>e===`connecting`).length;return n===t.length?`connected`:r===t.length?`error`:i>0&&n===0&&r===0?`connecting`:n>0&&(r>0||t.some(e=>e===`idle`))?`partial`:n>0?`connected`:i>0?`connecting`:`idle`}function f(){function e(){u()}function t(){}function n(e){let t=a.streamStatus[e];return t?d(t):`idle`}function i(e){return a.streamStatus[e]}function o(e,t){return a.streamStatus[e]?.[t]??`idle`}return{streamStatus:r(()=>a.streamStatus),getCameraStatus:n,getCameraSources:i,getSourceStatus:o,connect:e,disconnect:t,refresh:l}}export{f as t};
@@ -1 +1 @@
1
- import{S as e}from"./api-Cntxdwiu.js";import{un as t}from"./vendor-DoIl6acN.js";function n(){let{data:n}=new e().getUsersQuery({page:1,pageSize:-1});return{userOptions:t(()=>(n.value?.result??[]).map(e=>({label:e.username,value:e.username})))}}export{n as t};
1
+ import{S as e}from"./api-aSYFKxo6.js";import{un as t}from"./vendor-DoIl6acN.js";function n(){let{data:n}=new e().getUsersQuery({page:1,pageSize:-1});return{userOptions:t(()=>(n.value?.result??[]).map(e=>({label:e.username,value:e.username})))}}export{n as t};
@@ -1 +1 @@
1
- import{C as e,S as t,x as n}from"./vendor-zod-DycFxUhi.js";import{I as r,L as i,R as a,z as o}from"./types-aZM1hCux.js";var s=t({username:e().trim().min(1,`Username is required`),password:e().trim().min(1,`Password is required`),rememberMe:n().optional()}).strict(),c=r,l=a,u=i,d=o;export{d as a,l as i,c as n,u as r,s as t};
1
+ import{C as e,S as t,x as n}from"./vendor-zod-DycFxUhi.js";import{I as r,L as i,R as a,z as o}from"./types-BXo-JDGR.js";var s=t({username:e().trim().min(1,`Username is required`),password:e().trim().min(1,`Password is required`),rememberMe:n().optional()}).strict(),c=r,l=a,u=i,d=o;export{d as a,l as i,c as n,u as r,s as t};
@@ -1 +1 @@
1
- import{K as e,N as t,Ut as n,fi as r}from"./vendor-cameraui-DgSMexWY.js";import{A as i}from"./api-Cntxdwiu.js";import{$n as a,$t as o,Cr as s,En as c,Er as l,Ln as u,Sr as d,Zn as f,br as p,dn as m,fn as h,lr as g,mn as _,mr as v,nr as y,pn as b,un as x,ur as S,xn as C,yn as w,zn as T}from"./vendor-DoIl6acN.js";import{t as E}from"./CuiCameraCard-O22PEfyi.js";import{t as D}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as O}from"./useSharedComposables-gpJ--qZh.js";import{b as k}from"./vendor-primevue-7iEzPOvf.js";import{t as A}from"./useFileDownload-BcOErnCc.js";import{n as j}from"./types-ByBSoibP.js";import{t as M}from"./download-CY-SlBan.js";var N={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function P(e,t){return T(),_(`svg`,N,[...t[0]||=[m(`g`,{fill:`none`,"fill-rule":`evenodd`},[m(`path`,{d:`m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z`}),m(`path`,{fill:`currentColor`,d:`M5 3a3 3 0 0 0-3 3v10a2 2 0 0 0 2 2V6a1 1 0 0 1 1-1h14a2 2 0 0 0-2-2zm0 5a2 2 0 0 1 2-2h13a2 2 0 0 1 2 2v11.333a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2zm15 0H7v7.848L10.848 12a1.25 1.25 0 0 1 1.768 0l3.241 3.24l.884-.883a1.25 1.25 0 0 1 1.768 0L20 15.848zm-2 3a1.5 1.5 0 1 1-3 0a1.5 1.5 0 0 1 3 0`})],-1)]])}var F=S({name:`mingcute-photo-album-fill`,render:P}),ee={class:`camera-stream-event-container`},te={class:`stream-wrapper`},ne={key:0,class:`ai-description-overlay`},re={class:`min-w-0`},I={class:`text-sm font-semibold text-white`},L={class:`text-xs text-white/85 mt-1`},R=D(C({__name:`CameraStreamEvent`,props:{camera:{},eventTimestamp:{}},setup(S,{expose:C}){let D=S,N=i(),P=r(),{t:F}=P,R=k(),{mdBreakpoint:z}=O(),B=c(`dialogRefProps`),V=c(`dialogHeaderToggles`,{}),{plugin:H}=n(`@camera.ui/camera-ui-nvr`),{camera:U,eventTimestamp:W}=p(D),G=f(`cameraCardRef`),K=f(`cuiTimelineRef`),q=v(!1),J=v(),Y=v(!1),X=!1,Z=e(x(()=>U.value._id),{sourceRole:J}),ie=x(()=>!!B.loading?.value),ae=x(()=>V[0]??!1),Q=x(()=>K.value?.currentEventDescription),oe=x(()=>!!K.value?.currentEvent),$=x(()=>K.value?.isLive??!0),se=x(()=>({locale:P.locale.value,dayNames:R.config.locale?.dayNames,dayNamesShort:R.config.locale?.dayNamesShort,monthNames:R.config.locale?.monthNames,monthNamesShort:R.config.locale?.monthNamesShort}));async function ce(){if(Y.value)return;let e=K.value?.currentEvent;if(!e)return;let t=H.value;if(t?.nvrExport){Y.value=!0;try{let n=await t.nvrExport(e.cameraId,e.startMs*1e3,e.endMs*1e3);await A({url:n.url,filename:n.filename})}catch(e){N.error(`Download failed:`,e)}finally{Y.value=!1}}}function le(e){G.value?.timelineScroll(e)}function ue(){let e=Z.currentTimestamp.value>0?Math.floor(Z.currentTimestamp.value/1e3):W.value;return e?`/cameras/${U.value.name}?startTs=${e}`:`/cameras/${U.value.name}`}return a([oe,$,Y],([e,t])=>{if(!B.headerActions)return;let n=[];n.push({icon:j,tooltip:F(`components.player.ai_descriptions`),toggle:!0,onClick:()=>{}}),!t&&e&&H.value&&n.push({icon:M,tooltip:F(`views.recordings.download`),onClick:ce,loading:Y.value}),B.headerActions.value=n},{immediate:!0}),W.value&&(Z.mode.value=`play`,Z.loading.value=!0),a([H,W],([e,t])=>{!e||!t||X||(X=!0,Z.play(t*1e3))},{immediate:!0}),u(()=>{setTimeout(()=>{q.value=!0},300)}),C({isLoading:ie,resolveGoTo:ue}),(e,n)=>{let r=E,i=j;return T(),_(`div`,ee,[m(`div`,te,[(T(),h(r,{ref_key:`cameraCardRef`,ref:G,key:d(U).name,"source-role":d(J),"onUpdate:sourceRole":n[0]||=e=>g(J)?J.value=e:null,"streaming-mode":`webrtc`,"camera-info":d(U).name,"flat-card":``,"card-props":{pt:{root:{class:{"!rounded-md":!0}}}},"camera-name-overlay":!1,toolbar:!1,subcontrol:!0,"subcontrol-quality-button":!0,"subcontrol-activity-mode-button":!1,"subcontrol-ptz-button":!1,"subcontrol-streaming-mode-button":!1,"control-pip-button":!1,"control-microphone-button":!1},null,8,[`source-role`,`camera-info`])),w(o,{"enter-active-class":`transition-all duration-300 ease-out`,"enter-from-class":`opacity-0 -translate-y-2`,"enter-to-class":`opacity-100 translate-y-0`,"leave-active-class":`transition-all duration-200 ease-in`,"leave-from-class":`opacity-100 translate-y-0`,"leave-to-class":`opacity-0 -translate-y-2`},{default:y(()=>[d(Q)&&d(ae)?(T(),_(`div`,ne,[w(i,{class:`w-4 h-4 text-white/90 shrink-0 mt-0.5`}),m(`div`,re,[m(`p`,I,l(d(Q).title),1),m(`p`,L,l(d(Q).description),1)])])):b(``,!0)]),_:1})]),(T(),h(d(t),{ref_key:`cuiTimelineRef`,ref:K,key:d(U).name,"camera-ids":[d(U)._id],"initial-timestamp":d(W),loading:!d(q),type:d(z)?`vertical`:`horizontal`,"ignore-bottom-safe-area":d(z),"show-segments":!1,"show-zoom":!1,"show-date":!1,"md-breakpoint":d(z),class:s([`flex w-full border-t-[1px] border-color shrink-0`,d(z)?`h-full`:`h-[200px]`]),"card-class":{"mt-auto":!d(z)},"flat-card":``,"locale-settings":d(se),onScrolling:le},null,8,[`camera-ids`,`initial-timestamp`,`loading`,`type`,`ignore-bottom-safe-area`,`md-breakpoint`,`class`,`card-class`,`locale-settings`]))])}}}),[[`__scopeId`,`data-v-77d3f849`]]),z={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function B(e,t){return T(),_(`svg`,z,[...t[0]||=[m(`path`,{fill:`currentColor`,d:`M3 11h8V3H3m0 18h8v-8H3m10 8h8v-8h-8m0-10v8h8V3`},null,-1)]])}var V=S({name:`mdi-view-grid`,render:B});export{R as n,F as r,V as t};
1
+ import{K as e,N as t,Ut as n,fi as r}from"./vendor-cameraui-DgSMexWY.js";import{A as i}from"./api-aSYFKxo6.js";import{$n as a,$t as o,Cr as s,En as c,Er as l,Ln as u,Sr as d,Zn as f,br as p,dn as m,fn as h,lr as g,mn as _,mr as v,nr as y,pn as b,un as x,ur as S,xn as C,yn as w,zn as T}from"./vendor-DoIl6acN.js";import{t as E}from"./CuiCameraCard-IyJNZMGs.js";import{t as D}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as O}from"./useSharedComposables-gpJ--qZh.js";import{b as k}from"./vendor-primevue-7iEzPOvf.js";import{t as A}from"./useFileDownload-Cp1oH80I.js";import{n as j}from"./types-ByBSoibP.js";import{t as M}from"./download-CY-SlBan.js";var N={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function P(e,t){return T(),_(`svg`,N,[...t[0]||=[m(`g`,{fill:`none`,"fill-rule":`evenodd`},[m(`path`,{d:`m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z`}),m(`path`,{fill:`currentColor`,d:`M5 3a3 3 0 0 0-3 3v10a2 2 0 0 0 2 2V6a1 1 0 0 1 1-1h14a2 2 0 0 0-2-2zm0 5a2 2 0 0 1 2-2h13a2 2 0 0 1 2 2v11.333a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2zm15 0H7v7.848L10.848 12a1.25 1.25 0 0 1 1.768 0l3.241 3.24l.884-.883a1.25 1.25 0 0 1 1.768 0L20 15.848zm-2 3a1.5 1.5 0 1 1-3 0a1.5 1.5 0 0 1 3 0`})],-1)]])}var F=S({name:`mingcute-photo-album-fill`,render:P}),ee={class:`camera-stream-event-container`},te={class:`stream-wrapper`},ne={key:0,class:`ai-description-overlay`},re={class:`min-w-0`},I={class:`text-sm font-semibold text-white`},L={class:`text-xs text-white/85 mt-1`},R=D(C({__name:`CameraStreamEvent`,props:{camera:{},eventTimestamp:{}},setup(S,{expose:C}){let D=S,N=i(),P=r(),{t:F}=P,R=k(),{mdBreakpoint:z}=O(),B=c(`dialogRefProps`),V=c(`dialogHeaderToggles`,{}),{plugin:H}=n(`@camera.ui/camera-ui-nvr`),{camera:U,eventTimestamp:W}=p(D),G=f(`cameraCardRef`),K=f(`cuiTimelineRef`),q=v(!1),J=v(),Y=v(!1),X=!1,Z=e(x(()=>U.value._id),{sourceRole:J}),ie=x(()=>!!B.loading?.value),ae=x(()=>V[0]??!1),Q=x(()=>K.value?.currentEventDescription),oe=x(()=>!!K.value?.currentEvent),$=x(()=>K.value?.isLive??!0),se=x(()=>({locale:P.locale.value,dayNames:R.config.locale?.dayNames,dayNamesShort:R.config.locale?.dayNamesShort,monthNames:R.config.locale?.monthNames,monthNamesShort:R.config.locale?.monthNamesShort}));async function ce(){if(Y.value)return;let e=K.value?.currentEvent;if(!e)return;let t=H.value;if(t?.nvrExport){Y.value=!0;try{let n=await t.nvrExport(e.cameraId,e.startMs*1e3,e.endMs*1e3);await A({url:n.url,filename:n.filename})}catch(e){N.error(`Download failed:`,e)}finally{Y.value=!1}}}function le(e){G.value?.timelineScroll(e)}function ue(){let e=Z.currentTimestamp.value>0?Math.floor(Z.currentTimestamp.value/1e3):W.value;return e?`/cameras/${U.value.name}?startTs=${e}`:`/cameras/${U.value.name}`}return a([oe,$,Y],([e,t])=>{if(!B.headerActions)return;let n=[];n.push({icon:j,tooltip:F(`components.player.ai_descriptions`),toggle:!0,onClick:()=>{}}),!t&&e&&H.value&&n.push({icon:M,tooltip:F(`views.recordings.download`),onClick:ce,loading:Y.value}),B.headerActions.value=n},{immediate:!0}),W.value&&(Z.mode.value=`play`,Z.loading.value=!0),a([H,W],([e,t])=>{!e||!t||X||(X=!0,Z.play(t*1e3))},{immediate:!0}),u(()=>{setTimeout(()=>{q.value=!0},300)}),C({isLoading:ie,resolveGoTo:ue}),(e,n)=>{let r=E,i=j;return T(),_(`div`,ee,[m(`div`,te,[(T(),h(r,{ref_key:`cameraCardRef`,ref:G,key:d(U).name,"source-role":d(J),"onUpdate:sourceRole":n[0]||=e=>g(J)?J.value=e:null,"streaming-mode":`webrtc`,"camera-info":d(U).name,"flat-card":``,"card-props":{pt:{root:{class:{"!rounded-md":!0}}}},"camera-name-overlay":!1,toolbar:!1,subcontrol:!0,"subcontrol-quality-button":!0,"subcontrol-activity-mode-button":!1,"subcontrol-ptz-button":!1,"subcontrol-streaming-mode-button":!1,"control-pip-button":!1,"control-microphone-button":!1},null,8,[`source-role`,`camera-info`])),w(o,{"enter-active-class":`transition-all duration-300 ease-out`,"enter-from-class":`opacity-0 -translate-y-2`,"enter-to-class":`opacity-100 translate-y-0`,"leave-active-class":`transition-all duration-200 ease-in`,"leave-from-class":`opacity-100 translate-y-0`,"leave-to-class":`opacity-0 -translate-y-2`},{default:y(()=>[d(Q)&&d(ae)?(T(),_(`div`,ne,[w(i,{class:`w-4 h-4 text-white/90 shrink-0 mt-0.5`}),m(`div`,re,[m(`p`,I,l(d(Q).title),1),m(`p`,L,l(d(Q).description),1)])])):b(``,!0)]),_:1})]),(T(),h(d(t),{ref_key:`cuiTimelineRef`,ref:K,key:d(U).name,"camera-ids":[d(U)._id],"initial-timestamp":d(W),loading:!d(q),type:d(z)?`vertical`:`horizontal`,"ignore-bottom-safe-area":d(z),"show-segments":!1,"show-zoom":!1,"show-date":!1,"md-breakpoint":d(z),class:s([`flex w-full border-t-[1px] border-color shrink-0`,d(z)?`h-full`:`h-[200px]`]),"card-class":{"mt-auto":!d(z)},"flat-card":``,"locale-settings":d(se),onScrolling:le},null,8,[`camera-ids`,`initial-timestamp`,`loading`,`type`,`ignore-bottom-safe-area`,`md-breakpoint`,`class`,`card-class`,`locale-settings`]))])}}}),[[`__scopeId`,`data-v-77d3f849`]]),z={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function B(e,t){return T(),_(`svg`,z,[...t[0]||=[m(`path`,{fill:`currentColor`,d:`M3 11h8V3H3m0 18h8v-8H3m10 8h8v-8h-8m0-10v8h8V3`},null,-1)]])}var V=S({name:`mdi-view-grid`,render:B});export{R as n,F as r,V as t};
@@ -347,12 +347,12 @@
347
347
  media="screen and (prefers-color-scheme: dark) and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
348
348
  href="/pwa/apple-splash-portrait-dark-640x1136.png"
349
349
  />
350
- <script type="module" crossorigin src="/assets/main-D0vO1lt0.js"></script>
350
+ <script type="module" crossorigin src="/assets/main-DiF8p_7h.js"></script>
351
351
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-DAXXjFlN.js">
352
352
  <link rel="modulepreload" crossorigin href="/assets/vendor-DoIl6acN.js">
353
353
  <link rel="modulepreload" crossorigin href="/assets/vendor-cameraui-DgSMexWY.js">
354
354
  <link rel="modulepreload" crossorigin href="/assets/vendor-core-BKHiXSX7.js">
355
- <link rel="modulepreload" crossorigin href="/assets/api-Cntxdwiu.js">
355
+ <link rel="modulepreload" crossorigin href="/assets/api-aSYFKxo6.js">
356
356
  <link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-BDNMzG2s.js">
357
357
  <link rel="modulepreload" crossorigin href="/assets/ui-DrzKhUXW.js">
358
358
  <link rel="modulepreload" crossorigin href="/assets/useSharedComposables-gpJ--qZh.js">
@@ -360,29 +360,29 @@
360
360
  <link rel="modulepreload" crossorigin href="/assets/vendor-primevue-7iEzPOvf.js">
361
361
  <link rel="modulepreload" crossorigin href="/assets/cog-Ce2a8uiA.js">
362
362
  <link rel="modulepreload" crossorigin href="/assets/lightbulb-outline-B0CFho4y.js">
363
- <link rel="modulepreload" crossorigin href="/assets/useFileDownload-BcOErnCc.js">
364
- <link rel="modulepreload" crossorigin href="/assets/CuiImage-KyBpvv-t.js">
365
- <link rel="modulepreload" crossorigin href="/assets/CuiCameraSnapshot-BAwo37N7.js">
366
- <link rel="modulepreload" crossorigin href="/assets/hasPermission-CPgoH1JH.js">
363
+ <link rel="modulepreload" crossorigin href="/assets/useFileDownload-Cp1oH80I.js">
364
+ <link rel="modulepreload" crossorigin href="/assets/CuiImage-B97QDAl7.js">
365
+ <link rel="modulepreload" crossorigin href="/assets/CuiCameraSnapshot-DTtvEMy1.js">
366
+ <link rel="modulepreload" crossorigin href="/assets/hasPermission-P1TgpAur.js">
367
367
  <link rel="modulepreload" crossorigin href="/assets/types-ByBSoibP.js">
368
- <link rel="modulepreload" crossorigin href="/assets/CuiAvatar-Drdaxxcm.js">
369
- <link rel="modulepreload" crossorigin href="/assets/CuiMenu-BBequFn_.js">
368
+ <link rel="modulepreload" crossorigin href="/assets/CuiAvatar-of_eVQsv.js">
369
+ <link rel="modulepreload" crossorigin href="/assets/CuiMenu-Ds6GufVn.js">
370
370
  <link rel="modulepreload" crossorigin href="/assets/play-solid-BOoBnMaN.js">
371
371
  <link rel="modulepreload" crossorigin href="/assets/face-recognition-D5evlO1d.js">
372
372
  <link rel="modulepreload" crossorigin href="/assets/CuiBBoxPlayground-CIU5kteO.js">
373
373
  <link rel="modulepreload" crossorigin href="/assets/shield-check-ChlSHOnR.js">
374
374
  <link rel="modulepreload" crossorigin href="/assets/motion-sensor-DD8SfD-m.js">
375
375
  <link rel="modulepreload" crossorigin href="/assets/vendor-draggabilly-Dl6FWJwx.js">
376
- <link rel="modulepreload" crossorigin href="/assets/cameras-DRRy289F.js">
376
+ <link rel="modulepreload" crossorigin href="/assets/cameras-CvJDLEZ3.js">
377
377
  <link rel="modulepreload" crossorigin href="/assets/CuiActionButton-Bl7gqhIV.js">
378
378
  <link rel="modulepreload" crossorigin href="/assets/copy-16-filled-CZzRMAt_.js">
379
- <link rel="modulepreload" crossorigin href="/assets/shares-Cw2NYamp.js">
379
+ <link rel="modulepreload" crossorigin href="/assets/shares-4w6GDwjp.js">
380
380
  <link rel="modulepreload" crossorigin href="/assets/useCuiCameraDrawer-DnN9lwiy.js">
381
381
  <link rel="modulepreload" crossorigin href="/assets/useElectron-mh8HQUAI.js">
382
- <link rel="modulepreload" crossorigin href="/assets/useCuiDialog-j9ybKsCK.js">
383
- <link rel="modulepreload" crossorigin href="/assets/CuiCameraCard-O22PEfyi.js">
382
+ <link rel="modulepreload" crossorigin href="/assets/useCuiDialog-DHktK-mZ.js">
383
+ <link rel="modulepreload" crossorigin href="/assets/CuiCameraCard-IyJNZMGs.js">
384
384
  <link rel="modulepreload" crossorigin href="/assets/cloud-outline-BPAJ6_kc.js">
385
- <link rel="modulepreload" crossorigin href="/assets/instances-Crs3gwnp.js">
385
+ <link rel="modulepreload" crossorigin href="/assets/instances-DwnEOXk1.js">
386
386
  <link rel="modulepreload" crossorigin href="/assets/cctv-BsGdaLfw.js">
387
387
  <link rel="modulepreload" crossorigin href="/assets/terminal-DbYAPed-.js">
388
388
  <link rel="modulepreload" crossorigin href="/assets/circular-connection-BTKd-doI.js">
@@ -393,7 +393,7 @@
393
393
  <link rel="modulepreload" crossorigin href="/assets/bug-DPw8k4Lk.js">
394
394
  <link rel="modulepreload" crossorigin href="/assets/grid-fill-DBU_n60V.js">
395
395
  <link rel="modulepreload" crossorigin href="/assets/download-CY-SlBan.js">
396
- <link rel="modulepreload" crossorigin href="/assets/view-grid-Coh7iX5e.js">
396
+ <link rel="modulepreload" crossorigin href="/assets/view-grid-B0KB2pRf.js">
397
397
  <link rel="modulepreload" crossorigin href="/assets/eventIcons-CtTopM6B.js">
398
398
  <link rel="modulepreload" crossorigin href="/assets/puzzle-filled-C1z2qa5-.js">
399
399
  <link rel="modulepreload" crossorigin href="/assets/CuiFloatingButton-B5YMdr0X.js">
@@ -401,36 +401,36 @@
401
401
  <link rel="modulepreload" crossorigin href="/assets/vendor-dnd-_zxmhxjM.js">
402
402
  <link rel="modulepreload" crossorigin href="/assets/CuiTopbarSlot-ac4GLLbf.js">
403
403
  <link rel="modulepreload" crossorigin href="/assets/github-DLhaVazy.js">
404
- <link rel="modulepreload" crossorigin href="/assets/useBiometricCredentials-CEmbsdFy.js">
405
- <link rel="modulepreload" crossorigin href="/assets/deviceId-DXf6AlPA.js">
404
+ <link rel="modulepreload" crossorigin href="/assets/useBiometricCredentials-BGRyKe48.js">
405
+ <link rel="modulepreload" crossorigin href="/assets/deviceId-OXLTtG-_.js">
406
406
  <link rel="modulepreload" crossorigin href="/assets/vendor-zod-DycFxUhi.js">
407
- <link rel="modulepreload" crossorigin href="/assets/types-aZM1hCux.js">
408
- <link rel="modulepreload" crossorigin href="/assets/users.schema-DaXV2Jq7.js">
407
+ <link rel="modulepreload" crossorigin href="/assets/types-BXo-JDGR.js">
408
+ <link rel="modulepreload" crossorigin href="/assets/users.schema-BIL9DqRo.js">
409
409
  <link rel="modulepreload" crossorigin href="/assets/routerState-dQtObsFs.js">
410
- <link rel="modulepreload" crossorigin href="/assets/router-C2x34pNg.js">
410
+ <link rel="modulepreload" crossorigin href="/assets/router-6GfEM8TO.js">
411
411
  <link rel="modulepreload" crossorigin href="/assets/chevron-down-KZwkCQ3v.js">
412
412
  <link rel="modulepreload" crossorigin href="/assets/power-BcSFRPtI.js">
413
- <link rel="modulepreload" crossorigin href="/assets/api-CvihG9kg.js">
414
- <link rel="modulepreload" crossorigin href="/assets/theme-cGiCxaXN.js">
413
+ <link rel="modulepreload" crossorigin href="/assets/api-CbBOEbKQ.js">
414
+ <link rel="modulepreload" crossorigin href="/assets/theme-DhaXe7yA.js">
415
415
  <link rel="modulepreload" crossorigin href="/assets/check-BMoCATAa.js">
416
416
  <link rel="modulepreload" crossorigin href="/assets/trash2-CaXm_MmJ.js">
417
- <link rel="modulepreload" crossorigin href="/assets/notifications-AiaxATml.js">
417
+ <link rel="modulepreload" crossorigin href="/assets/notifications-DHmx6O_s.js">
418
418
  <link rel="modulepreload" crossorigin href="/assets/microphone-CAVr4YFv.js">
419
- <link rel="modulepreload" crossorigin href="/assets/CuiSchema-Cr90oo-T.js">
420
- <link rel="modulepreload" crossorigin href="/assets/plugins-C_Mh_UEw.js">
421
- <link rel="modulepreload" crossorigin href="/assets/PluginSchema-D3BCVJNa.js">
419
+ <link rel="modulepreload" crossorigin href="/assets/CuiSchema-CfqOJmDH.js">
420
+ <link rel="modulepreload" crossorigin href="/assets/plugins-NVAodP6s.js">
421
+ <link rel="modulepreload" crossorigin href="/assets/PluginSchema-CWcq67pj.js">
422
422
  <link rel="modulepreload" crossorigin href="/assets/information-outline-ChTb2u7w.js">
423
423
  <link rel="modulepreload" crossorigin href="/assets/plus-Dqgz6pez.js">
424
- <link rel="modulepreload" crossorigin href="/assets/cameras.schema-qOAUe-E9.js">
424
+ <link rel="modulepreload" crossorigin href="/assets/cameras.schema-Clwro_L9.js">
425
425
  <link rel="modulepreload" crossorigin href="/assets/cctv-CBtg_v6o.js">
426
426
  <link rel="modulepreload" crossorigin href="/assets/delete-5a2q7_46.js">
427
- <link rel="modulepreload" crossorigin href="/assets/useStreamStatus-bjptbs6u.js">
427
+ <link rel="modulepreload" crossorigin href="/assets/useStreamStatus-N--czepD.js">
428
428
  <link rel="modulepreload" crossorigin href="/assets/bell-ring-CenQn4Yt.js">
429
429
  <link rel="modulepreload" crossorigin href="/assets/home-Dey3bw1P.js">
430
430
  <link rel="modulepreload" crossorigin href="/assets/arrow-right-outline-CliUt84m.js">
431
431
  <link rel="modulepreload" crossorigin href="/assets/CuiDataTable-saRt0sBc.js">
432
- <link rel="modulepreload" crossorigin href="/assets/locale-BCQeXbI8.js">
433
- <link rel="stylesheet" crossorigin href="/assets/api-CrAOxyt8.css">
432
+ <link rel="modulepreload" crossorigin href="/assets/locale-BWvy9Nlz.js">
433
+ <link rel="stylesheet" crossorigin href="/assets/api-vCJ1T8Ow.css">
434
434
  <link rel="stylesheet" crossorigin href="/assets/CuiImage-Bxf7z2N4.css">
435
435
  <link rel="stylesheet" crossorigin href="/assets/CuiAvatar-BtMXnhxd.css">
436
436
  <link rel="stylesheet" crossorigin href="/assets/CuiMenu-BWUfWLQP.css">
@@ -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-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
+ 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,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(e[a])return;let n={};const u=s=>l(s,a),o={module:{uri:a},exports:n,require:u};e[a]=Promise.all(i.map(s=>o[s]||u(s))).then(s=>(r(...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:"0b5e17920ff16c4bf3da116d51160c61"},{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-B0KB2pRf.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-BIL9DqRo.js",revision:null},{url:"assets/useUserOptions-CPkl1O0A.js",revision:null},{url:"assets/useStreamStatus-N--czepD.js",revision:null},{url:"assets/useSharedComposables-gpJ--qZh.js",revision:null},{url:"assets/useLogsSocket-OnTDnkPr.js",revision:null},{url:"assets/useLogsSocket-4F2-d9fa.css",revision:null},{url:"assets/useFileDownload-Cp1oH80I.js",revision:null},{url:"assets/useElectron-mh8HQUAI.js",revision:null},{url:"assets/useCuiDialog-DHktK-mZ.js",revision:null},{url:"assets/useCuiCameraDrawer-DnN9lwiy.js",revision:null},{url:"assets/useCameraOptions-CO1HD_gL.js",revision:null},{url:"assets/useBiometricCredentials-BGRyKe48.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-ByBSoibP.js",revision:null},{url:"assets/types-BxFyoO54.js",revision:null},{url:"assets/types-BXo-JDGR.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-DhaXe7yA.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-4w6GDwjp.js",revision:null},{url:"assets/settings-uhDSoUhb.js",revision:null},{url:"assets/server-CRxodRik.js",revision:null},{url:"assets/search-D-QOrChC.js",revision:null},{url:"assets/routerState-dQtObsFs.js",revision:null},{url:"assets/router-BUTKN1yM.css",revision:null},{url:"assets/router-6GfEM8TO.js",revision:null},{url:"assets/round-restart-alt-fCNtJi_k.css",revision:null},{url:"assets/round-restart-alt-c8MQjhLh.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-NVAodP6s.js",revision:null},{url:"assets/plugin-C1dsgk0N.js",revision:null},{url:"assets/play-solid-BOoBnMaN.js",revision:null},{url:"assets/platformLabels-D-cF6OTP.js",revision:null},{url:"assets/notifications-DHmx6O_s.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-DiF8p_7h.js",revision:null},{url:"assets/logo-DmEiRk0z.png",revision:null},{url:"assets/logo-512-DLKVOU2S.png",revision:null},{url:"assets/logo-256-BCQk9H1-.png",revision:null},{url:"assets/locale-BWvy9Nlz.js",revision:null},{url:"assets/lightbulb-outline-B0CFho4y.js",revision:null},{url:"assets/instances-DwnEOXk1.js",revision:null},{url:"assets/information-outline-ChTb2u7w.js",revision:null},{url:"assets/home-Dey3bw1P.js",revision:null},{url:"assets/hasPermission-P1TgpAur.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/download-CY-SlBan.js",revision:null},{url:"assets/dist-CQkfz2Dn.js",revision:null},{url:"assets/deviceId-OXLTtG-_.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-Bym-XqR1.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-circle-BauXcL6H.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-Clwro_L9.js",revision:null},{url:"assets/cameras-CvJDLEZ3.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-Co1bwdSv.js",revision:null},{url:"assets/back-filled-DqCMpeEk.js",revision:null},{url:"assets/automations-E7vwN3kw.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-cdPNNpNC.js",revision:null},{url:"assets/arrow-right-outline-CliUt84m.js",revision:null},{url:"assets/arrow-left-9W2BpRxA.js",revision:null},{url:"assets/api-vCJ1T8Ow.css",revision:null},{url:"assets/api-aSYFKxo6.js",revision:null},{url:"assets/api-CbBOEbKQ.js",revision:null},{url:"assets/alert-outline-T8FhpQ9w.js",revision:null},{url:"assets/alert-circle-azHizGIK.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-DiIBLgfr.js",revision:null},{url:"assets/Workers-DCx1wSq5.css",revision:null},{url:"assets/VersionsHandler-Dpo-L314.js",revision:null},{url:"assets/VariableSuggestions-PEzupqiE.js",revision:null},{url:"assets/VariableInput-CFs-kzqd.js",revision:null},{url:"assets/Terminal-CrOfQJ-O.css",revision:null},{url:"assets/Terminal-CD9he5xW.js",revision:null},{url:"assets/SettingsUsers-Ciu1ry18.js",revision:null},{url:"assets/SettingsSystem-obAYrm8J.js",revision:null},{url:"assets/SettingsRemote-D9COJF4m.css",revision:null},{url:"assets/SettingsRemote-Bf8bqXYs.js",revision:null},{url:"assets/SettingsRecordings-BsJ9z-RE.js",revision:null},{url:"assets/SettingsNotifications-BZ1IXj0a.js",revision:null},{url:"assets/SettingsBackup-CfOHDar8.js",revision:null},{url:"assets/SettingsBackup-CX0rT0QJ.css",revision:null},{url:"assets/SettingsAppearance-V5aeQ9c8.js",revision:null},{url:"assets/SettingsAppearance-DzG2tlwK.js",revision:null},{url:"assets/SettingsAccount-Y7hpH8Y3.css",revision:null},{url:"assets/SettingsAccount-DKHO4mDj.js",revision:null},{url:"assets/SettingsAccount-DFMOh1ci.js",revision:null},{url:"assets/Settings-bwLTNAxX.css",revision:null},{url:"assets/Settings-BZDfWnB8.js",revision:null},{url:"assets/Recordings-Bt_GlPOK.css",revision:null},{url:"assets/Recordings--XaVJZJi.js",revision:null},{url:"assets/Plugins-DMLQY_6J.js",revision:null},{url:"assets/PluginSearch-XjGr5qdW.css",revision:null},{url:"assets/PluginSearch-DCuLwE3v.js",revision:null},{url:"assets/PluginSearch-BC1L0-VN.js",revision:null},{url:"assets/PluginSchema-CWcq67pj.js",revision:null},{url:"assets/PluginDetail-DbYxVe3g.css",revision:null},{url:"assets/PluginDetail-DKywYzmS.js",revision:null},{url:"assets/PluginConsole-BdbmROpF.js",revision:null},{url:"assets/Plugin-Yv0ZmTNZ.css",revision:null},{url:"assets/Plugin-CeLrucXT.js",revision:null},{url:"assets/OAuthDeviceFlow-Cp9uZWm1.js",revision:null},{url:"assets/Menu-Ct3W72Nu.js",revision:null},{url:"assets/Logs-DzR8mmLu.js",revision:null},{url:"assets/Instances-kmkRiBrV.js",revision:null},{url:"assets/FirstSteps-Boec1bzd.js",revision:null},{url:"assets/Faces-IVmqcGuF.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-CfqOJmDH.js",revision:null},{url:"assets/CuiSchema--yMBD996.css",revision:null},{url:"assets/CuiRecordingsGrid-lcLty5PV.css",revision:null},{url:"assets/CuiRecordingsGrid-CzMzhUXb.js",revision:null},{url:"assets/CuiQRCode-D_31ri5b.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-X8ZGFPwW.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-D1SylQbM.js",revision:null},{url:"assets/CuiMenu-Ds6GufVn.js",revision:null},{url:"assets/CuiMenu-BWUfWLQP.css",revision:null},{url:"assets/CuiMarkdownContent-qIS8eQHX.js",revision:null},{url:"assets/CuiMarkdownContent-DaJ8HzaP.js",revision:null},{url:"assets/CuiImage-Bxf7z2N4.css",revision:null},{url:"assets/CuiImage-B97QDAl7.js",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-B7g53tPM.js",revision:null},{url:"assets/CuiCameraSnapshot-DTtvEMy1.js",revision:null},{url:"assets/CuiCameraShares-BCMYN11A.js",revision:null},{url:"assets/CuiCameraRecordings-iWAFGo8e.js",revision:null},{url:"assets/CuiCameraRecordings-BHj7CUE7.css",revision:null},{url:"assets/CuiCameraPipCard-KUBxGPoU.js",revision:null},{url:"assets/CuiCameraPipCard-D3o29_wc.css",revision:null},{url:"assets/CuiCameraCard-IyJNZMGs.js",revision:null},{url:"assets/CuiCameraCard-BxGmxXxZ.css",revision:null},{url:"assets/CuiBottomSheet-DsjZEdig.css",revision:null},{url:"assets/CuiBottomSheet-DKUg_g5x.js",revision:null},{url:"assets/CuiBottomSheet-B7aQ7GCw.js",revision:null},{url:"assets/CuiBBoxPlayground-EFkdOBvq.css",revision:null},{url:"assets/CuiBBoxPlayground-CIU5kteO.js",revision:null},{url:"assets/CuiAvatar-of_eVQsv.js",revision:null},{url:"assets/CuiAvatar-BtMXnhxd.css",revision:null},{url:"assets/CuiActionButton-Bl7gqhIV.js",revision:null},{url:"assets/Console-DrDqDUtO.js",revision:null},{url:"assets/ConfigTriggerWebhook-D3cHvW8H.js",revision:null},{url:"assets/ConfigTriggerSystem-D1oGAhLn.js",revision:null},{url:"assets/ConfigTriggerSensor-DuCtavZo.js",revision:null},{url:"assets/ConfigTriggerSchedule-CE47WiIV.js",revision:null},{url:"assets/ConfigTriggerManual-ChsUsNCK.js",revision:null},{url:"assets/ConfigTriggerGeofence-CTqptMUN.js",revision:null},{url:"assets/ConfigTriggerDetection-DWjlecON.js",revision:null},{url:"assets/ConfigConditionTime-lhWiIy2x.js",revision:null},{url:"assets/ConfigConditionSwitch-CC0w-Hvy.js",revision:null},{url:"assets/ConfigConditionSensorState-x0M0kHwL.js",revision:null},{url:"assets/ConfigConditionIfElse-Bhd2FYyz.js",revision:null},{url:"assets/ConfigActionVariable-B2BoiQPb.js",revision:null},{url:"assets/ConfigActionSnapshot-ClyCQuB3.js",revision:null},{url:"assets/ConfigActionSensor-D_Dt1qtt.js",revision:null},{url:"assets/ConfigActionPlugin-B7YAbFlf.js",revision:null},{url:"assets/ConfigActionOutput-P0WY0DlF.js",revision:null},{url:"assets/ConfigActionNotification-B5cCmBXr.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-D4hJLWmj.js",revision:null},{url:"assets/Config-JgftUZFe.css",revision:null},{url:"assets/Config-B9jI0lTQ.js",revision:null},{url:"assets/Camview-CoHrXLHW.js",revision:null},{url:"assets/Camview-CS2a2okQ.css",revision:null},{url:"assets/Cameras-DbBU5mou.js",revision:null},{url:"assets/Cameras-54LaZPN3.css",revision:null},{url:"assets/CameraConsole-uD4aWou8.js",revision:null},{url:"assets/Camera-Cf4QZbsx.js",revision:null},{url:"assets/Camera-BG8K5bH_.css",revision:null},{url:"assets/Automations-DBACrYHy.js",revision:null},{url:"assets/AutomationStoreDetail-D6Ugj8ba.js",revision:null},{url:"assets/AutomationStoreDetail--egqUOqn.css",revision:null},{url:"assets/AutomationStore-Q25Okhz8.css",revision:null},{url:"assets/AutomationStore-BcMX7WbG.js",revision:null},{url:"assets/AutomationImport-CR4Vsxkb.js",revision:null},{url:"assets/Automation-D0ps_z9e.js",revision:null},{url:"assets/Automation-Csu8t0D7.css",revision:null},{url:"assets/Adminpanel-uj7eTmlN.js",revision:null},{url:"assets/About-BzuuHdW1.js",revision:null},{url:"assets/404-CZtDF9in.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,6 +1,6 @@
1
1
  {
2
2
  "name": "@camera.ui/server",
3
- "version": "0.0.112",
3
+ "version": "0.0.114",
4
4
  "description": "camera.ui server",
5
5
  "author": "seydx (https://github.com/cameraui/camera.ui)",
6
6
  "type": "module",
@@ -12,6 +12,7 @@ import { container } from 'tsyringe';
12
12
  import { PluginManager } from '../../plugins/index.js';
13
13
  import { ConfigService } from '../../services/config/index.js';
14
14
  import { checkEngineCompatibility } from '../../utils/engines.js';
15
+ import { isPlatformCompatible } from '../../utils/platform.js';
15
16
  import { checkForUpdate, extractPackage, getManifest, getPackument, getVersionsAndDistTags, invalidatePackage, searchPackages } from '../../utils/npm/index.js';
16
17
  import { computeTrust, getBlock, getBlocklist, getCatalog, getVerified, getWeeklyDownloads, invalidateRegistry } from '../../utils/plugin-registry/index.js';
17
18
  import { CamerasService } from '../services/cameras.service.js';
@@ -170,16 +171,20 @@ export class PluginsController {
170
171
  const pluginName = resolvePluginName(req.params);
171
172
  const pluginVersion = req.query.pluginversion ?? 'latest';
172
173
  let engines;
174
+ let os;
175
+ let cpu;
173
176
  try {
174
177
  const manifest = await getManifest(`${pluginName}@${pluginVersion}`);
175
178
  engines = manifest.engines;
179
+ os = manifest.os;
180
+ cpu = manifest.cpu;
176
181
  }
177
182
  catch (error) {
178
183
  this.logger.warn(`Failed to resolve engines for ${pluginName}@${pluginVersion}: ${error.message}`);
179
- return reply.code(200).send({ compatible: true, issues: [] });
184
+ return reply.code(200).send({ compatible: true, issues: [], platformCompatible: true });
180
185
  }
181
186
  const issues = checkEngineCompatibility(engines, ConfigService.VERSION, process.version);
182
- return reply.code(200).send({ compatible: issues.length === 0, issues });
187
+ return reply.code(200).send({ compatible: issues.length === 0, issues, os, cpu, platformCompatible: isPlatformCompatible(os, cpu) });
183
188
  }
184
189
  catch (error) {
185
190
  return reply.code(500).send({
@@ -430,7 +435,10 @@ export class PluginsController {
430
435
  list(_req, reply) {
431
436
  try {
432
437
  const installedPlugins = this.service.listPlugins();
433
- const plugins = installedPlugins.map((plugin) => plugin.info);
438
+ const plugins = installedPlugins.map((plugin) => ({
439
+ ...plugin.info,
440
+ workerAgentId: this.service.getPluginDbByName(plugin.pluginName)?.workerAgentId,
441
+ }));
434
442
  return orderBy(plugins, ['displayName'], ['asc']);
435
443
  }
436
444
  catch (error) {
@@ -600,6 +608,8 @@ export class PluginsController {
600
608
  interfaces: [],
601
609
  name: '',
602
610
  },
611
+ // npm search results carry no platform data — resolved at install.
612
+ compatible: true,
603
613
  };
604
614
  this.enrichPlugin(plugin, pkg, catalog, verified);
605
615
  result.push(plugin);
@@ -916,6 +926,9 @@ export class PluginsController {
916
926
  interfaces: [],
917
927
  name: '',
918
928
  },
929
+ os: manifest?.os,
930
+ cpu: manifest?.cpu,
931
+ compatible: isPlatformCompatible(manifest?.os, manifest?.cpu),
919
932
  };
920
933
  this.enrichPlugin(plugin, searchPkg, catalog, verified);
921
934
  const downloads = await getWeeklyDownloads([pkg.name]);