@camera.ui/server 2.4.1 → 2.4.2

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 (1582) hide show
  1. package/dist/interface/assets/404-DjAi7TGJ.js +1 -0
  2. package/dist/interface/assets/404-DjAi7TGJ.js.br +0 -0
  3. package/dist/interface/assets/404-DjAi7TGJ.js.gz +0 -0
  4. package/dist/interface/assets/About-DgFgNzrr.js +1 -0
  5. package/dist/interface/assets/About-DgFgNzrr.js.br +0 -0
  6. package/dist/interface/assets/About-DgFgNzrr.js.gz +0 -0
  7. package/dist/interface/assets/Assistant-DFyCH8rW.js +1 -0
  8. package/dist/interface/assets/Assistant-DFyCH8rW.js.br +0 -0
  9. package/dist/interface/assets/Assistant-DFyCH8rW.js.gz +0 -0
  10. package/dist/interface/assets/Automation-Y7gnBVsz.js +3 -0
  11. package/dist/interface/assets/Automation-Y7gnBVsz.js.br +0 -0
  12. package/dist/interface/assets/Automation-Y7gnBVsz.js.gz +0 -0
  13. package/dist/interface/assets/AutomationImport-BAWCUNSF.js +2 -0
  14. package/dist/interface/assets/AutomationImport-BAWCUNSF.js.br +0 -0
  15. package/dist/interface/assets/AutomationImport-BAWCUNSF.js.gz +0 -0
  16. package/dist/interface/assets/AutomationStore-CLFRjxqB.js +2 -0
  17. package/dist/interface/assets/AutomationStore-CLFRjxqB.js.br +0 -0
  18. package/dist/interface/assets/AutomationStore-CLFRjxqB.js.gz +0 -0
  19. package/dist/interface/assets/AutomationStoreDetail-Da_OF8Zw.js +2 -0
  20. package/dist/interface/assets/AutomationStoreDetail-Da_OF8Zw.js.br +0 -0
  21. package/dist/interface/assets/AutomationStoreDetail-Da_OF8Zw.js.gz +0 -0
  22. package/dist/interface/assets/Automations-Dj4vxoes.js +2 -0
  23. package/dist/interface/assets/Automations-Dj4vxoes.js.br +0 -0
  24. package/dist/interface/assets/Automations-Dj4vxoes.js.gz +0 -0
  25. package/dist/interface/assets/BackupRestore-DbHPYoLQ.js +1 -0
  26. package/dist/interface/assets/BackupRestore-DbHPYoLQ.js.br +0 -0
  27. package/dist/interface/assets/BackupRestore-DbHPYoLQ.js.gz +0 -0
  28. package/dist/interface/assets/Camera-DD42OSkZ.js +2 -0
  29. package/dist/interface/assets/Camera-DD42OSkZ.js.br +0 -0
  30. package/dist/interface/assets/Camera-DD42OSkZ.js.gz +0 -0
  31. package/dist/interface/assets/CameraConsole-Cn8I2sC6.js +7 -0
  32. package/dist/interface/assets/CameraConsole-Cn8I2sC6.js.br +0 -0
  33. package/dist/interface/assets/CameraConsole-Cn8I2sC6.js.gz +0 -0
  34. package/dist/interface/assets/Cameras-BA4ZtLCN.js +651 -0
  35. package/dist/interface/assets/Cameras-BA4ZtLCN.js.br +0 -0
  36. package/dist/interface/assets/Cameras-BA4ZtLCN.js.gz +0 -0
  37. package/dist/interface/assets/Camview-CEEyXExJ.js +1 -0
  38. package/dist/interface/assets/Camview-CEEyXExJ.js.br +0 -0
  39. package/dist/interface/assets/Camview-CEEyXExJ.js.gz +0 -0
  40. package/dist/interface/assets/Config-7VDhtZly.js +2 -0
  41. package/dist/interface/assets/Config-7VDhtZly.js.br +0 -0
  42. package/dist/interface/assets/Config-7VDhtZly.js.gz +0 -0
  43. package/dist/interface/assets/ConfigActionAssistant-B_v8QtHd.js +1 -0
  44. package/dist/interface/assets/ConfigActionAssistant-B_v8QtHd.js.br +0 -0
  45. package/dist/interface/assets/ConfigActionAssistant-B_v8QtHd.js.gz +0 -0
  46. package/dist/interface/assets/ConfigActionCameraControl-Cp9htIfC.js +1 -0
  47. package/dist/interface/assets/ConfigActionCameraControl-Cp9htIfC.js.br +0 -0
  48. package/dist/interface/assets/ConfigActionCameraControl-Cp9htIfC.js.gz +0 -0
  49. package/dist/interface/assets/ConfigActionHttp-BrzVENpN.js +1 -0
  50. package/dist/interface/assets/ConfigActionHttp-BrzVENpN.js.br +0 -0
  51. package/dist/interface/assets/ConfigActionHttp-BrzVENpN.js.gz +0 -0
  52. package/dist/interface/assets/ConfigActionImageInput-CH0TW4SM.js +1 -0
  53. package/dist/interface/assets/ConfigActionImageInput-CH0TW4SM.js.br +0 -0
  54. package/dist/interface/assets/ConfigActionImageInput-CH0TW4SM.js.gz +0 -0
  55. package/dist/interface/assets/ConfigActionMqtt-CCMPJXSw.js +1 -0
  56. package/dist/interface/assets/ConfigActionMqtt-CCMPJXSw.js.br +0 -0
  57. package/dist/interface/assets/ConfigActionMqtt-CCMPJXSw.js.gz +0 -0
  58. package/dist/interface/assets/ConfigActionNotification-C2Tu80Lc.js +1 -0
  59. package/dist/interface/assets/ConfigActionNotification-C2Tu80Lc.js.br +0 -0
  60. package/dist/interface/assets/ConfigActionNotification-C2Tu80Lc.js.gz +0 -0
  61. package/dist/interface/assets/ConfigActionNotificationControl-CgED5yJ1.js +1 -0
  62. package/dist/interface/assets/ConfigActionNotificationControl-CgED5yJ1.js.br +0 -0
  63. package/dist/interface/assets/ConfigActionNotificationControl-CgED5yJ1.js.gz +0 -0
  64. package/dist/interface/assets/ConfigActionOutput-CCl-Kmbr.js +1 -0
  65. package/dist/interface/assets/ConfigActionOutput-CCl-Kmbr.js.br +0 -0
  66. package/dist/interface/assets/ConfigActionOutput-CCl-Kmbr.js.gz +0 -0
  67. package/dist/interface/assets/ConfigActionPlugin-D0mqVxPX.js +1 -0
  68. package/dist/interface/assets/ConfigActionPlugin-D0mqVxPX.js.br +0 -0
  69. package/dist/interface/assets/ConfigActionPlugin-D0mqVxPX.js.gz +0 -0
  70. package/dist/interface/assets/ConfigActionSensor-e7FD2s99.js +1 -0
  71. package/dist/interface/assets/ConfigActionSensor-e7FD2s99.js.br +0 -0
  72. package/dist/interface/assets/ConfigActionSensor-e7FD2s99.js.gz +0 -0
  73. package/dist/interface/assets/ConfigActionSnapshot-i5bUsx36.js +1 -0
  74. package/dist/interface/assets/ConfigActionSnapshot-i5bUsx36.js.br +0 -0
  75. package/dist/interface/assets/ConfigActionSnapshot-i5bUsx36.js.gz +0 -0
  76. package/dist/interface/assets/ConfigActionVariable-CVLSQ7C-.js +1 -0
  77. package/dist/interface/assets/ConfigActionVariable-CVLSQ7C-.js.br +0 -0
  78. package/dist/interface/assets/ConfigActionVariable-CVLSQ7C-.js.gz +0 -0
  79. package/dist/interface/assets/ConfigConditionIfElse-CiBQjdcM.js +1 -0
  80. package/dist/interface/assets/ConfigConditionIfElse-CiBQjdcM.js.br +0 -0
  81. package/dist/interface/assets/ConfigConditionIfElse-CiBQjdcM.js.gz +0 -0
  82. package/dist/interface/assets/ConfigConditionSensorState-BsoyEGCq.js +1 -0
  83. package/dist/interface/assets/ConfigConditionSensorState-BsoyEGCq.js.br +0 -0
  84. package/dist/interface/assets/ConfigConditionSensorState-BsoyEGCq.js.gz +0 -0
  85. package/dist/interface/assets/ConfigConditionSwitch-B_nuglnE.js +1 -0
  86. package/dist/interface/assets/ConfigConditionSwitch-B_nuglnE.js.br +0 -0
  87. package/dist/interface/assets/ConfigConditionSwitch-B_nuglnE.js.gz +0 -0
  88. package/dist/interface/assets/ConfigSensorValueInput-CUbuCYJc.js +1 -0
  89. package/dist/interface/assets/ConfigSensorValueInput-CUbuCYJc.js.br +0 -0
  90. package/dist/interface/assets/ConfigSensorValueInput-CUbuCYJc.js.gz +0 -0
  91. package/dist/interface/assets/ConfigTriggerDetection-Bl8KDz38.js +1 -0
  92. package/dist/interface/assets/ConfigTriggerDetection-Bl8KDz38.js.br +0 -0
  93. package/dist/interface/assets/ConfigTriggerDetection-Bl8KDz38.js.gz +0 -0
  94. package/dist/interface/assets/ConfigTriggerGeofence-Cq2fqDc1.js +1 -0
  95. package/dist/interface/assets/ConfigTriggerGeofence-Cq2fqDc1.js.br +0 -0
  96. package/dist/interface/assets/ConfigTriggerGeofence-Cq2fqDc1.js.gz +0 -0
  97. package/dist/interface/assets/ConfigTriggerMqtt-CxJ2kuT0.js +1 -0
  98. package/dist/interface/assets/ConfigTriggerMqtt-CxJ2kuT0.js.br +0 -0
  99. package/dist/interface/assets/ConfigTriggerMqtt-CxJ2kuT0.js.gz +0 -0
  100. package/dist/interface/assets/ConfigTriggerSensor-rxkiy0es.js +1 -0
  101. package/dist/interface/assets/ConfigTriggerSensor-rxkiy0es.js.br +0 -0
  102. package/dist/interface/assets/ConfigTriggerSensor-rxkiy0es.js.gz +0 -0
  103. package/dist/interface/assets/ConfigTriggerSystem-ZqkR-n7U.js +1 -0
  104. package/dist/interface/assets/ConfigTriggerSystem-ZqkR-n7U.js.br +0 -0
  105. package/dist/interface/assets/ConfigTriggerSystem-ZqkR-n7U.js.gz +0 -0
  106. package/dist/interface/assets/ConfigTriggerWebhook-Bwk3dOMV.js +1 -0
  107. package/dist/interface/assets/ConfigTriggerWebhook-Bwk3dOMV.js.br +0 -0
  108. package/dist/interface/assets/ConfigTriggerWebhook-Bwk3dOMV.js.gz +0 -0
  109. package/dist/interface/assets/Console-B1IGz3XF.js +1 -0
  110. package/dist/interface/assets/Console-B1IGz3XF.js.br +0 -0
  111. package/dist/interface/assets/Console-B1IGz3XF.js.gz +0 -0
  112. package/dist/interface/assets/CuiAssistantConversation-COHgYzWP.js +5 -0
  113. package/dist/interface/assets/CuiAssistantConversation-COHgYzWP.js.br +0 -0
  114. package/dist/interface/assets/CuiAssistantConversation-COHgYzWP.js.gz +0 -0
  115. package/dist/interface/assets/CuiAutomationRunsDialog-DHCxr6ag.js +1 -0
  116. package/dist/interface/assets/CuiAutomationRunsDialog-DHCxr6ag.js.br +0 -0
  117. package/dist/interface/assets/CuiAutomationRunsDialog-DHCxr6ag.js.gz +0 -0
  118. package/dist/interface/assets/CuiBottomSheet-BYifCbSl.js +1 -0
  119. package/dist/interface/assets/CuiBottomSheet-BYifCbSl.js.br +0 -0
  120. package/dist/interface/assets/CuiBottomSheet-BYifCbSl.js.gz +0 -0
  121. package/dist/interface/assets/CuiBottomSheet-Dlk-laff.js +1 -0
  122. package/dist/interface/assets/CuiBottomSheet-Dlk-laff.js.br +0 -0
  123. package/dist/interface/assets/CuiBottomSheet-Dlk-laff.js.gz +0 -0
  124. package/dist/interface/assets/CuiCameraPipCard-DiAAKOB3.js +1 -0
  125. package/dist/interface/assets/CuiCameraPipCard-DiAAKOB3.js.br +0 -0
  126. package/dist/interface/assets/CuiCameraPipCard-DiAAKOB3.js.gz +0 -0
  127. package/dist/interface/assets/CuiCameraRecordings-cr_gatvr.js +1 -0
  128. package/dist/interface/assets/CuiCameraRecordings-cr_gatvr.js.br +0 -0
  129. package/dist/interface/assets/CuiCameraRecordings-cr_gatvr.js.gz +0 -0
  130. package/dist/interface/assets/CuiCameraShares-Bs0rA-xA.js +1 -0
  131. package/dist/interface/assets/CuiCameraShares-Bs0rA-xA.js.br +0 -0
  132. package/dist/interface/assets/CuiCameraShares-Bs0rA-xA.js.gz +0 -0
  133. package/dist/interface/assets/CuiCameraTable-CMQYM_iK.js +2 -0
  134. package/dist/interface/assets/CuiCameraTable-CMQYM_iK.js.br +0 -0
  135. package/dist/interface/assets/CuiCameraTable-CMQYM_iK.js.gz +0 -0
  136. package/dist/interface/assets/CuiCameraTable-Zn0xVNzU.js +1 -0
  137. package/dist/interface/assets/CuiCameraTable-Zn0xVNzU.js.br +1 -0
  138. package/dist/interface/assets/CuiCameraTable-Zn0xVNzU.js.gz +0 -0
  139. package/dist/interface/assets/CuiChartTable-Dnr59YcD.js +1 -0
  140. package/dist/interface/assets/CuiChartTable-Dnr59YcD.js.br +0 -0
  141. package/dist/interface/assets/CuiChartTable-Dnr59YcD.js.gz +0 -0
  142. package/dist/interface/assets/CuiConsole-DvxwlxJS.js +5 -0
  143. package/dist/interface/assets/CuiConsole-DvxwlxJS.js.br +0 -0
  144. package/dist/interface/assets/CuiConsole-DvxwlxJS.js.gz +0 -0
  145. package/dist/interface/assets/CuiDataTable-UUvO2yqR.js +1 -0
  146. package/dist/interface/assets/CuiDataTable-UUvO2yqR.js.br +0 -0
  147. package/dist/interface/assets/CuiDataTable-UUvO2yqR.js.gz +0 -0
  148. package/dist/interface/assets/CuiLightControl-X27HMxwD.js +1 -0
  149. package/dist/interface/assets/CuiLightControl-X27HMxwD.js.br +0 -0
  150. package/dist/interface/assets/CuiLightControl-X27HMxwD.js.gz +0 -0
  151. package/dist/interface/assets/CuiMoveCodeForm-D8tUtI-h.js +1 -0
  152. package/dist/interface/assets/CuiMoveCodeForm-D8tUtI-h.js.br +0 -0
  153. package/dist/interface/assets/CuiMoveCodeForm-D8tUtI-h.js.gz +0 -0
  154. package/dist/interface/assets/CuiPluginCard-quiY2N5M.js +2 -0
  155. package/dist/interface/assets/CuiPluginCard-quiY2N5M.js.br +0 -0
  156. package/dist/interface/assets/CuiPluginCard-quiY2N5M.js.gz +0 -0
  157. package/dist/interface/assets/CuiPluginCategoryChip-TPE8kEfF.js +1 -0
  158. package/dist/interface/assets/CuiPluginCategoryChip-TPE8kEfF.js.br +0 -0
  159. package/dist/interface/assets/CuiPluginCategoryChip-TPE8kEfF.js.gz +0 -0
  160. package/dist/interface/assets/CuiPluginOAuthButton-OAaZwA8I.js +2 -0
  161. package/dist/interface/assets/CuiPluginOAuthButton-OAaZwA8I.js.br +0 -0
  162. package/dist/interface/assets/CuiPluginOAuthButton-OAaZwA8I.js.gz +0 -0
  163. package/dist/interface/assets/CuiPluginTrustBadge-DGE2Rk83.js +1 -0
  164. package/dist/interface/assets/CuiPluginTrustBadge-DGE2Rk83.js.br +0 -0
  165. package/dist/interface/assets/CuiPluginTrustBadge-DGE2Rk83.js.gz +0 -0
  166. package/dist/interface/assets/CuiQRCode-lR7MLV88.js +1 -0
  167. package/dist/interface/assets/CuiQRCode-lR7MLV88.js.br +0 -0
  168. package/dist/interface/assets/CuiQRCode-lR7MLV88.js.gz +0 -0
  169. package/dist/interface/assets/CuiSchema-XtfUw6ph.js +1 -0
  170. package/dist/interface/assets/CuiSchema-XtfUw6ph.js.br +0 -0
  171. package/dist/interface/assets/CuiSchema-XtfUw6ph.js.gz +0 -0
  172. package/dist/interface/assets/CuiTopNavbarItem-DTcQlETL.js +1 -0
  173. package/dist/interface/assets/CuiTopNavbarItem-DTcQlETL.js.br +0 -0
  174. package/dist/interface/assets/CuiTopNavbarItem-DTcQlETL.js.gz +0 -0
  175. package/dist/interface/assets/Faces-CTGfzxVA.js +1 -0
  176. package/dist/interface/assets/Faces-CTGfzxVA.js.br +0 -0
  177. package/dist/interface/assets/Faces-CTGfzxVA.js.gz +0 -0
  178. package/dist/interface/assets/FirstSteps-Co4eY2L1.js +1 -0
  179. package/dist/interface/assets/FirstSteps-Co4eY2L1.js.br +0 -0
  180. package/dist/interface/assets/FirstSteps-Co4eY2L1.js.gz +0 -0
  181. package/dist/interface/assets/Floorplan-DKNUfJ1z.js +1 -0
  182. package/dist/interface/assets/Floorplan-DKNUfJ1z.js.br +0 -0
  183. package/dist/interface/assets/Floorplan-DKNUfJ1z.js.gz +0 -0
  184. package/dist/interface/assets/Instances-s7y4bMLZ.js +1 -0
  185. package/dist/interface/assets/Instances-s7y4bMLZ.js.br +0 -0
  186. package/dist/interface/assets/Instances-s7y4bMLZ.js.gz +0 -0
  187. package/dist/interface/assets/Logs-LXnQHfYz.js +6 -0
  188. package/dist/interface/assets/Logs-LXnQHfYz.js.br +0 -0
  189. package/dist/interface/assets/Logs-LXnQHfYz.js.gz +0 -0
  190. package/dist/interface/assets/Menu-CUBh0as4.js +1 -0
  191. package/dist/interface/assets/Menu-CUBh0as4.js.br +0 -0
  192. package/dist/interface/assets/Menu-CUBh0as4.js.gz +0 -0
  193. package/dist/interface/assets/Metrics-BZeB3ViS.js +12 -0
  194. package/dist/interface/assets/Metrics-BZeB3ViS.js.br +0 -0
  195. package/dist/interface/assets/Metrics-BZeB3ViS.js.gz +0 -0
  196. package/dist/interface/assets/OAuthDeviceFlow-B4UyugZs.js +1 -0
  197. package/dist/interface/assets/OAuthDeviceFlow-B4UyugZs.js.br +0 -0
  198. package/dist/interface/assets/OAuthDeviceFlow-B4UyugZs.js.gz +0 -0
  199. package/dist/interface/assets/Plugin-tIUUIABi.js +1 -0
  200. package/dist/interface/assets/Plugin-tIUUIABi.js.br +0 -0
  201. package/dist/interface/assets/Plugin-tIUUIABi.js.gz +0 -0
  202. package/dist/interface/assets/PluginConsole-BNnLHoE0.js +7 -0
  203. package/dist/interface/assets/PluginConsole-BNnLHoE0.js.br +4 -0
  204. package/dist/interface/assets/PluginConsole-BNnLHoE0.js.gz +0 -0
  205. package/dist/interface/assets/PluginDetail-BNNHJ6VT.js +2 -0
  206. package/dist/interface/assets/PluginDetail-BNNHJ6VT.js.br +0 -0
  207. package/dist/interface/assets/PluginDetail-BNNHJ6VT.js.gz +0 -0
  208. package/dist/interface/assets/PluginSchema-BRhnXEuo.js +1 -0
  209. package/dist/interface/assets/PluginSchema-BRhnXEuo.js.br +0 -0
  210. package/dist/interface/assets/PluginSchema-BRhnXEuo.js.gz +0 -0
  211. package/dist/interface/assets/PluginSearch-C4enqdv2.js +2 -0
  212. package/dist/interface/assets/PluginSearch-C4enqdv2.js.br +0 -0
  213. package/dist/interface/assets/PluginSearch-C4enqdv2.js.gz +0 -0
  214. package/dist/interface/assets/PluginSearch-C7HjU4oV.js +1 -0
  215. package/dist/interface/assets/PluginSearch-C7HjU4oV.js.br +1 -0
  216. package/dist/interface/assets/PluginSearch-C7HjU4oV.js.gz +0 -0
  217. package/dist/interface/assets/PluginUpdateProgress-DpJR1951.js +1 -0
  218. package/dist/interface/assets/PluginUpdateProgress-DpJR1951.js.br +0 -0
  219. package/dist/interface/assets/PluginUpdateProgress-DpJR1951.js.gz +0 -0
  220. package/dist/interface/assets/Plugins-d4IPovAj.js +1 -0
  221. package/dist/interface/assets/Plugins-d4IPovAj.js.br +0 -0
  222. package/dist/interface/assets/Plugins-d4IPovAj.js.gz +0 -0
  223. package/dist/interface/assets/RecentEventsFilter-CjRJnw2W.js +1 -0
  224. package/dist/interface/assets/RecentEventsFilter-CjRJnw2W.js.br +0 -0
  225. package/dist/interface/assets/RecentEventsFilter-CjRJnw2W.js.gz +0 -0
  226. package/dist/interface/assets/Recordings-0XmIQL9c.js +1 -0
  227. package/dist/interface/assets/Recordings-0XmIQL9c.js.br +0 -0
  228. package/dist/interface/assets/Recordings-0XmIQL9c.js.gz +0 -0
  229. package/dist/interface/assets/SensorEdit-9nlxNGSS.js +1 -0
  230. package/dist/interface/assets/SensorEdit-9nlxNGSS.js.br +0 -0
  231. package/dist/interface/assets/SensorEdit-9nlxNGSS.js.gz +0 -0
  232. package/dist/interface/assets/SensorHistory-DHa4mmXp.js +1 -0
  233. package/dist/interface/assets/SensorHistory-DHa4mmXp.js.br +0 -0
  234. package/dist/interface/assets/SensorHistory-DHa4mmXp.js.gz +0 -0
  235. package/dist/interface/assets/Sensors-BkI7JNPH.js +2 -0
  236. package/dist/interface/assets/Sensors-BkI7JNPH.js.br +0 -0
  237. package/dist/interface/assets/Sensors-BkI7JNPH.js.gz +0 -0
  238. package/dist/interface/assets/Settings-B4-Rn_Fh.js +1 -0
  239. package/dist/interface/assets/Settings-B4-Rn_Fh.js.br +0 -0
  240. package/dist/interface/assets/Settings-B4-Rn_Fh.js.gz +0 -0
  241. package/dist/interface/assets/SettingsAccount-7Yd2_xCe.js +1 -0
  242. package/dist/interface/assets/SettingsAccount-7Yd2_xCe.js.br +0 -0
  243. package/dist/interface/assets/SettingsAccount-7Yd2_xCe.js.gz +0 -0
  244. package/dist/interface/assets/SettingsAccount-C5TbJjlz.css +1 -0
  245. package/dist/interface/assets/SettingsAccount-C5TbJjlz.css.br +0 -0
  246. package/dist/interface/assets/SettingsAccount-C5TbJjlz.css.gz +0 -0
  247. package/dist/interface/assets/SettingsAccount-Cp56tnsV.js +1 -0
  248. package/dist/interface/assets/SettingsAccount-Cp56tnsV.js.br +0 -0
  249. package/dist/interface/assets/SettingsAccount-Cp56tnsV.js.gz +0 -0
  250. package/dist/interface/assets/SettingsAppearance-BWnr6fl7.js +1 -0
  251. package/dist/interface/assets/SettingsAppearance-BWnr6fl7.js.br +0 -0
  252. package/dist/interface/assets/SettingsAppearance-BWnr6fl7.js.gz +0 -0
  253. package/dist/interface/assets/SettingsAppearance-Bna45w8P.js +1 -0
  254. package/dist/interface/assets/SettingsAppearance-Bna45w8P.js.br +0 -0
  255. package/dist/interface/assets/SettingsAppearance-Bna45w8P.js.gz +0 -0
  256. package/dist/interface/assets/SettingsAssistant-Dy_fTPCt.js +1 -0
  257. package/dist/interface/assets/SettingsAssistant-Dy_fTPCt.js.br +0 -0
  258. package/dist/interface/assets/SettingsAssistant-Dy_fTPCt.js.gz +0 -0
  259. package/dist/interface/assets/SettingsBackup-DCW1lM-Z.js +1 -0
  260. package/dist/interface/assets/SettingsBackup-DCW1lM-Z.js.br +0 -0
  261. package/dist/interface/assets/SettingsBackup-DCW1lM-Z.js.gz +0 -0
  262. package/dist/interface/assets/SettingsList-DcvafqMi.js +1 -0
  263. package/dist/interface/assets/SettingsList-DcvafqMi.js.br +0 -0
  264. package/dist/interface/assets/SettingsList-DcvafqMi.js.gz +0 -0
  265. package/dist/interface/assets/SettingsMqtt-BuPLGzAI.js +1 -0
  266. package/dist/interface/assets/SettingsMqtt-BuPLGzAI.js.br +0 -0
  267. package/dist/interface/assets/SettingsMqtt-BuPLGzAI.js.gz +0 -0
  268. package/dist/interface/assets/SettingsNotifications-CtXPMwEL.js +1 -0
  269. package/dist/interface/assets/SettingsNotifications-CtXPMwEL.js.br +0 -0
  270. package/dist/interface/assets/SettingsNotifications-CtXPMwEL.js.gz +0 -0
  271. package/dist/interface/assets/SettingsPermissions-CskWvMC-.js +1 -0
  272. package/dist/interface/assets/SettingsPermissions-CskWvMC-.js.br +0 -0
  273. package/dist/interface/assets/SettingsPermissions-CskWvMC-.js.gz +0 -0
  274. package/dist/interface/assets/SettingsRecordings-Cw3hykd4.js +1 -0
  275. package/dist/interface/assets/SettingsRecordings-Cw3hykd4.js.br +0 -0
  276. package/dist/interface/assets/SettingsRecordings-Cw3hykd4.js.gz +0 -0
  277. package/dist/interface/assets/SettingsRemote-C5pT1BpH.js +2 -0
  278. package/dist/interface/assets/SettingsRemote-C5pT1BpH.js.br +0 -0
  279. package/dist/interface/assets/SettingsRemote-C5pT1BpH.js.gz +0 -0
  280. package/dist/interface/assets/SettingsSystem-CPpKePdR.js +2 -0
  281. package/dist/interface/assets/SettingsSystem-CPpKePdR.js.br +0 -0
  282. package/dist/interface/assets/SettingsSystem-CPpKePdR.js.gz +0 -0
  283. package/dist/interface/assets/SettingsUsers-DHyf9Fh2.js +1 -0
  284. package/dist/interface/assets/SettingsUsers-DHyf9Fh2.js.br +0 -0
  285. package/dist/interface/assets/SettingsUsers-DHyf9Fh2.js.gz +0 -0
  286. package/dist/interface/assets/Terminal-PSzgxyUK.js +4 -0
  287. package/dist/interface/assets/Terminal-PSzgxyUK.js.br +0 -0
  288. package/dist/interface/assets/Terminal-PSzgxyUK.js.gz +0 -0
  289. package/dist/interface/assets/Training-B8y5oggc.js +1 -0
  290. package/dist/interface/assets/Training-B8y5oggc.js.br +0 -0
  291. package/dist/interface/assets/Training-B8y5oggc.js.gz +0 -0
  292. package/dist/interface/assets/Updates-DM0Q2isz.js +2 -0
  293. package/dist/interface/assets/Updates-DM0Q2isz.js.br +0 -0
  294. package/dist/interface/assets/Updates-DM0Q2isz.js.gz +0 -0
  295. package/dist/interface/assets/VariableInput-CEEKNFMa.js +1 -0
  296. package/dist/interface/assets/VariableInput-CEEKNFMa.js.br +0 -0
  297. package/dist/interface/assets/VariableInput-CEEKNFMa.js.gz +0 -0
  298. package/dist/interface/assets/VersionsHandler-BX_H4fKa.js +7 -0
  299. package/dist/interface/assets/VersionsHandler-BX_H4fKa.js.br +0 -0
  300. package/dist/interface/assets/VersionsHandler-BX_H4fKa.js.gz +0 -0
  301. package/dist/interface/assets/VirtualSensorCreate-V1Ge5Ua1.js +1 -0
  302. package/dist/interface/assets/VirtualSensorCreate-V1Ge5Ua1.js.br +0 -0
  303. package/dist/interface/assets/VirtualSensorCreate-V1Ge5Ua1.js.gz +0 -0
  304. package/dist/interface/assets/Workers-CuICoAdY.js +2 -0
  305. package/dist/interface/assets/Workers-CuICoAdY.js.br +0 -0
  306. package/dist/interface/assets/Workers-CuICoAdY.js.gz +0 -0
  307. package/dist/interface/assets/api-DrGMJXjR.js +1 -0
  308. package/dist/interface/assets/api-DrGMJXjR.js.br +0 -0
  309. package/dist/interface/assets/api-DrGMJXjR.js.gz +0 -0
  310. package/dist/interface/assets/api-TS3iFwhp.js +4 -0
  311. package/dist/interface/assets/api-TS3iFwhp.js.br +0 -0
  312. package/dist/interface/assets/api-TS3iFwhp.js.gz +0 -0
  313. package/dist/interface/assets/api-bOGDCWMd.css +2 -0
  314. package/dist/interface/assets/api-bOGDCWMd.css.br +0 -0
  315. package/dist/interface/assets/api-bOGDCWMd.css.gz +0 -0
  316. package/dist/interface/assets/assistant-BPhn6mY4.js +1 -0
  317. package/dist/interface/assets/assistant-BPhn6mY4.js.br +0 -0
  318. package/dist/interface/assets/assistant-BPhn6mY4.js.gz +0 -0
  319. package/dist/interface/assets/auth-DIf-rMc2.js +1 -0
  320. package/dist/interface/assets/auth-DIf-rMc2.js.br +0 -0
  321. package/dist/interface/assets/auth-DIf-rMc2.js.gz +0 -0
  322. package/dist/interface/assets/automations-LH5xFY2x.js +1 -0
  323. package/dist/interface/assets/automations-LH5xFY2x.js.br +0 -0
  324. package/dist/interface/assets/automations-LH5xFY2x.js.gz +0 -0
  325. package/dist/interface/assets/cameraSources-DlHjs6nH.js +1 -0
  326. package/dist/interface/assets/cameraSources-DlHjs6nH.js.br +0 -0
  327. package/dist/interface/assets/cameraSources-DlHjs6nH.js.gz +0 -0
  328. package/dist/interface/assets/cloudHandoff-CVVUJLRm.js +1 -0
  329. package/dist/interface/assets/cloudHandoff-CVVUJLRm.js.br +1 -0
  330. package/dist/interface/assets/cloudHandoff-CVVUJLRm.js.gz +0 -0
  331. package/dist/interface/assets/config-DN5_kiR_.js +1 -0
  332. package/dist/interface/assets/config-DN5_kiR_.js.br +0 -0
  333. package/dist/interface/assets/config-DN5_kiR_.js.gz +0 -0
  334. package/dist/interface/assets/flowSchema-Bmgr2vJ6.js +1 -0
  335. package/dist/interface/assets/flowSchema-Bmgr2vJ6.js.br +0 -0
  336. package/dist/interface/assets/flowSchema-Bmgr2vJ6.js.gz +0 -0
  337. package/dist/interface/assets/intercomService-Dmpnyb2n.js +1 -0
  338. package/dist/interface/assets/intercomService-Dmpnyb2n.js.br +0 -0
  339. package/dist/interface/assets/intercomService-Dmpnyb2n.js.gz +0 -0
  340. package/dist/interface/assets/main-BsuMuoqd.js +3 -0
  341. package/dist/interface/assets/main-BsuMuoqd.js.br +0 -0
  342. package/dist/interface/assets/main-BsuMuoqd.js.gz +0 -0
  343. package/dist/interface/assets/mqtt-BQ12PoIy.js +1 -0
  344. package/dist/interface/assets/mqtt-BQ12PoIy.js.br +3 -0
  345. package/dist/interface/assets/mqtt-BQ12PoIy.js.gz +0 -0
  346. package/dist/interface/assets/notifications-BboM5nUI.js +1 -0
  347. package/dist/interface/assets/notifications-BboM5nUI.js.br +0 -0
  348. package/dist/interface/assets/notifications-BboM5nUI.js.gz +0 -0
  349. package/dist/interface/assets/plugins-DYcMG0ja.js +1 -0
  350. package/dist/interface/assets/plugins-DYcMG0ja.js.br +0 -0
  351. package/dist/interface/assets/plugins-DYcMG0ja.js.gz +0 -0
  352. package/dist/interface/assets/rooms-D19GFS0T.js +1 -0
  353. package/dist/interface/assets/rooms-D19GFS0T.js.br +4 -0
  354. package/dist/interface/assets/rooms-D19GFS0T.js.gz +0 -0
  355. package/dist/interface/assets/sensorIcons-CG4oAxFn.js +1 -0
  356. package/dist/interface/assets/sensorIcons-CG4oAxFn.js.br +0 -0
  357. package/dist/interface/assets/sensorIcons-CG4oAxFn.js.gz +0 -0
  358. package/dist/interface/assets/sensorSlots-W8up8ZKb.js +1 -0
  359. package/dist/interface/assets/sensorSlots-W8up8ZKb.js.br +1 -0
  360. package/dist/interface/assets/sensorSlots-W8up8ZKb.js.gz +0 -0
  361. package/dist/interface/assets/sensors-BV0Trrvb.js +1 -0
  362. package/dist/interface/assets/sensors-BV0Trrvb.js.br +0 -0
  363. package/dist/interface/assets/sensors-BV0Trrvb.js.gz +0 -0
  364. package/dist/interface/assets/server-DK3nj5jh.js +1 -0
  365. package/dist/interface/assets/server-DK3nj5jh.js.br +0 -0
  366. package/dist/interface/assets/server-DK3nj5jh.js.gz +0 -0
  367. package/dist/interface/assets/theme-1Z9zEekC.js +1 -0
  368. package/dist/interface/assets/theme-1Z9zEekC.js.br +0 -0
  369. package/dist/interface/assets/theme-1Z9zEekC.js.gz +0 -0
  370. package/dist/interface/assets/types-B2RZ2n73.js +1 -0
  371. package/dist/interface/assets/types-B2RZ2n73.js.br +0 -0
  372. package/dist/interface/assets/types-B2RZ2n73.js.gz +0 -0
  373. package/dist/interface/assets/types-C4g382tE.js +1 -0
  374. package/dist/interface/assets/types-C4g382tE.js.br +0 -0
  375. package/dist/interface/assets/types-C4g382tE.js.gz +0 -0
  376. package/dist/interface/assets/types-CWY4rVYg.js +1 -0
  377. package/dist/interface/assets/types-CWY4rVYg.js.br +0 -0
  378. package/dist/interface/assets/types-CWY4rVYg.js.gz +0 -0
  379. package/dist/interface/assets/updates-C8KPyVl4.js +2 -0
  380. package/dist/interface/assets/updates-C8KPyVl4.js.br +0 -0
  381. package/dist/interface/assets/updates-C8KPyVl4.js.gz +0 -0
  382. package/dist/interface/assets/useAppVersion-B5cYcDW5.js +1 -0
  383. package/dist/interface/assets/useAppVersion-B5cYcDW5.js.br +0 -0
  384. package/dist/interface/assets/useAppVersion-B5cYcDW5.js.gz +0 -0
  385. package/dist/interface/assets/useCameraOptions-DnC7rx7V.js +1 -0
  386. package/dist/interface/assets/useCameraOptions-DnC7rx7V.js.br +0 -0
  387. package/dist/interface/assets/useCameraOptions-DnC7rx7V.js.gz +0 -0
  388. package/dist/interface/assets/useKeyboardInset-DzWAPvpD.js +1 -0
  389. package/dist/interface/assets/useKeyboardInset-DzWAPvpD.js.br +0 -0
  390. package/dist/interface/assets/useKeyboardInset-DzWAPvpD.js.gz +0 -0
  391. package/dist/interface/assets/useLogsSocket-DRCl-9rN.js +1 -0
  392. package/dist/interface/assets/useLogsSocket-DRCl-9rN.js.br +0 -0
  393. package/dist/interface/assets/useLogsSocket-DRCl-9rN.js.gz +0 -0
  394. package/dist/interface/assets/useNavLayout-DNoKsxiD.js +1 -0
  395. package/dist/interface/assets/useNavLayout-DNoKsxiD.js.br +0 -0
  396. package/dist/interface/assets/useNavLayout-DNoKsxiD.js.gz +0 -0
  397. package/dist/interface/assets/usePermissions-BhN_r4yu.js +1 -0
  398. package/dist/interface/assets/usePermissions-BhN_r4yu.js.br +0 -0
  399. package/dist/interface/assets/usePermissions-BhN_r4yu.js.gz +0 -0
  400. package/dist/interface/assets/usePlacementLabel-Dnd48LTa.js +1 -0
  401. package/dist/interface/assets/usePlacementLabel-Dnd48LTa.js.br +0 -0
  402. package/dist/interface/assets/usePlacementLabel-Dnd48LTa.js.gz +0 -0
  403. package/dist/interface/assets/usePlacementSocket-DyS_dG0O.js +1 -0
  404. package/dist/interface/assets/usePlacementSocket-DyS_dG0O.js.br +0 -0
  405. package/dist/interface/assets/usePlacementSocket-DyS_dG0O.js.gz +0 -0
  406. package/dist/interface/assets/usePluginUpdates-C9KRZVbI.js +1 -0
  407. package/dist/interface/assets/usePluginUpdates-C9KRZVbI.js.br +0 -0
  408. package/dist/interface/assets/usePluginUpdates-C9KRZVbI.js.gz +0 -0
  409. package/dist/interface/assets/usePluginsSocket-Dkrwgo_a.js +1 -0
  410. package/dist/interface/assets/usePluginsSocket-Dkrwgo_a.js.br +0 -0
  411. package/dist/interface/assets/usePluginsSocket-Dkrwgo_a.js.gz +0 -0
  412. package/dist/interface/assets/usePushRegistration-419l1m2J.js +2 -0
  413. package/dist/interface/assets/usePushRegistration-419l1m2J.js.br +0 -0
  414. package/dist/interface/assets/usePushRegistration-419l1m2J.js.gz +0 -0
  415. package/dist/interface/assets/useServerRestart-svjj-eQC.js +1 -0
  416. package/dist/interface/assets/useServerRestart-svjj-eQC.js.br +0 -0
  417. package/dist/interface/assets/useServerRestart-svjj-eQC.js.gz +0 -0
  418. package/dist/interface/assets/useTabSwipe-Bdr_wGrE.js +1 -0
  419. package/dist/interface/assets/useTabSwipe-Bdr_wGrE.js.br +0 -0
  420. package/dist/interface/assets/useTabSwipe-Bdr_wGrE.js.gz +0 -0
  421. package/dist/interface/assets/useUpdateChannel-DWQGivak.js +1 -0
  422. package/dist/interface/assets/useUpdateChannel-DWQGivak.js.br +0 -0
  423. package/dist/interface/assets/useUpdateChannel-DWQGivak.js.gz +0 -0
  424. package/dist/interface/assets/useUpdatesSocket-CjZRZpB7.js +1 -0
  425. package/dist/interface/assets/useUpdatesSocket-CjZRZpB7.js.br +0 -0
  426. package/dist/interface/assets/useUpdatesSocket-CjZRZpB7.js.gz +0 -0
  427. package/dist/interface/assets/useUserOptions-DrUS3Xze.js +1 -0
  428. package/dist/interface/assets/useUserOptions-DrUS3Xze.js.br +0 -0
  429. package/dist/interface/assets/useUserOptions-DrUS3Xze.js.gz +0 -0
  430. package/dist/interface/assets/vendor-cameraui-CA-wgTPI.css +1 -0
  431. package/dist/interface/assets/vendor-cameraui-CA-wgTPI.css.br +0 -0
  432. package/dist/interface/assets/vendor-cameraui-CA-wgTPI.css.gz +0 -0
  433. package/dist/interface/assets/vendor-cameraui-q2C0VTDU.js +8 -0
  434. package/dist/interface/assets/vendor-cameraui-q2C0VTDU.js.br +0 -0
  435. package/dist/interface/assets/vendor-cameraui-q2C0VTDU.js.gz +0 -0
  436. package/dist/interface/ha/404-Bl_FHw4S.js +60 -0
  437. package/dist/interface/ha/404-Bl_FHw4S.js.br +0 -0
  438. package/dist/interface/ha/404-Bl_FHw4S.js.gz +0 -0
  439. package/dist/interface/ha/About-C3LSLeW5.js +55 -0
  440. package/dist/interface/ha/About-C3LSLeW5.js.br +0 -0
  441. package/dist/interface/ha/About-C3LSLeW5.js.gz +0 -0
  442. package/dist/interface/ha/Assistant-BqTjwNPd.js +11071 -0
  443. package/dist/interface/ha/Assistant-BqTjwNPd.js.br +0 -0
  444. package/dist/interface/ha/Assistant-BqTjwNPd.js.gz +0 -0
  445. package/dist/interface/ha/Automation-Bt8_5TEo.js +2009 -0
  446. package/dist/interface/ha/Automation-Bt8_5TEo.js.br +0 -0
  447. package/dist/interface/ha/Automation-Bt8_5TEo.js.gz +0 -0
  448. package/dist/interface/ha/AutomationImport-CFunRLgJ.js +206 -0
  449. package/dist/interface/ha/AutomationImport-CFunRLgJ.js.br +0 -0
  450. package/dist/interface/ha/AutomationImport-CFunRLgJ.js.gz +0 -0
  451. package/dist/interface/ha/AutomationStore-C4DEABhG.js +336 -0
  452. package/dist/interface/ha/AutomationStore-C4DEABhG.js.br +0 -0
  453. package/dist/interface/ha/AutomationStore-C4DEABhG.js.gz +0 -0
  454. package/dist/interface/ha/AutomationStoreDetail-CfoXG1MC.js +121 -0
  455. package/dist/interface/ha/AutomationStoreDetail-CfoXG1MC.js.br +0 -0
  456. package/dist/interface/ha/AutomationStoreDetail-CfoXG1MC.js.gz +0 -0
  457. package/dist/interface/ha/Automations-BQ2bkyX_.js +423 -0
  458. package/dist/interface/ha/Automations-BQ2bkyX_.js.br +0 -0
  459. package/dist/interface/ha/Automations-BQ2bkyX_.js.gz +0 -0
  460. package/dist/interface/ha/Camera-B2B4G4od.js +740 -0
  461. package/dist/interface/ha/Camera-B2B4G4od.js.br +0 -0
  462. package/dist/interface/ha/Camera-B2B4G4od.js.gz +0 -0
  463. package/dist/interface/ha/CameraConsole-xFpvIWw_.js +52 -0
  464. package/dist/interface/ha/CameraConsole-xFpvIWw_.js.br +0 -0
  465. package/dist/interface/ha/CameraConsole-xFpvIWw_.js.gz +0 -0
  466. package/dist/interface/ha/Cameras-mQarYEDa.js +1934 -0
  467. package/dist/interface/ha/Cameras-mQarYEDa.js.br +0 -0
  468. package/dist/interface/ha/Cameras-mQarYEDa.js.gz +0 -0
  469. package/dist/interface/ha/Camview-Cxi3KsgB.js +1368 -0
  470. package/dist/interface/ha/Camview-Cxi3KsgB.js.br +0 -0
  471. package/dist/interface/ha/Camview-Cxi3KsgB.js.gz +0 -0
  472. package/dist/interface/ha/Config-CDmB9WLz.js +354 -0
  473. package/dist/interface/ha/Config-CDmB9WLz.js.br +0 -0
  474. package/dist/interface/ha/Config-CDmB9WLz.js.gz +0 -0
  475. package/dist/interface/ha/ConfigActionAssistant-4bgOEfWc.js +182 -0
  476. package/dist/interface/ha/ConfigActionAssistant-4bgOEfWc.js.br +0 -0
  477. package/dist/interface/ha/ConfigActionAssistant-4bgOEfWc.js.gz +0 -0
  478. package/dist/interface/ha/ConfigActionCameraControl-DHb4TaeM.js +152 -0
  479. package/dist/interface/ha/ConfigActionCameraControl-DHb4TaeM.js.br +0 -0
  480. package/dist/interface/ha/ConfigActionCameraControl-DHb4TaeM.js.gz +0 -0
  481. package/dist/interface/ha/ConfigActionHttp-Cf-KsMnx.js +134 -0
  482. package/dist/interface/ha/ConfigActionHttp-Cf-KsMnx.js.br +0 -0
  483. package/dist/interface/ha/ConfigActionHttp-Cf-KsMnx.js.gz +0 -0
  484. package/dist/interface/ha/ConfigActionImageInput-BojghoLq.js +170 -0
  485. package/dist/interface/ha/ConfigActionImageInput-BojghoLq.js.br +0 -0
  486. package/dist/interface/ha/ConfigActionImageInput-BojghoLq.js.gz +0 -0
  487. package/dist/interface/ha/ConfigActionMqtt-8I3xv7mW.js +78 -0
  488. package/dist/interface/ha/ConfigActionMqtt-8I3xv7mW.js.br +0 -0
  489. package/dist/interface/ha/ConfigActionMqtt-8I3xv7mW.js.gz +0 -0
  490. package/dist/interface/ha/ConfigActionNotification-CJ8AMA6m.js +198 -0
  491. package/dist/interface/ha/ConfigActionNotification-CJ8AMA6m.js.br +0 -0
  492. package/dist/interface/ha/ConfigActionNotification-CJ8AMA6m.js.gz +0 -0
  493. package/dist/interface/ha/ConfigActionNotificationControl-Jmal0N0N.js +111 -0
  494. package/dist/interface/ha/ConfigActionNotificationControl-Jmal0N0N.js.br +0 -0
  495. package/dist/interface/ha/ConfigActionNotificationControl-Jmal0N0N.js.gz +0 -0
  496. package/dist/interface/ha/ConfigActionOutput-Tjb8_M61.js +98 -0
  497. package/dist/interface/ha/ConfigActionOutput-Tjb8_M61.js.br +0 -0
  498. package/dist/interface/ha/ConfigActionOutput-Tjb8_M61.js.gz +0 -0
  499. package/dist/interface/ha/ConfigActionPlugin-BIZABnsj.js +171 -0
  500. package/dist/interface/ha/ConfigActionPlugin-BIZABnsj.js.br +0 -0
  501. package/dist/interface/ha/ConfigActionPlugin-BIZABnsj.js.gz +0 -0
  502. package/dist/interface/ha/ConfigActionSensor-CfdmXrhC.js +138 -0
  503. package/dist/interface/ha/ConfigActionSensor-CfdmXrhC.js.br +0 -0
  504. package/dist/interface/ha/ConfigActionSensor-CfdmXrhC.js.gz +0 -0
  505. package/dist/interface/ha/ConfigActionSnapshot-DZfadRAR.js +45 -0
  506. package/dist/interface/ha/ConfigActionSnapshot-DZfadRAR.js.br +0 -0
  507. package/dist/interface/ha/ConfigActionSnapshot-DZfadRAR.js.gz +0 -0
  508. package/dist/interface/ha/ConfigActionVariable-Bs6GAr-a.js +88 -0
  509. package/dist/interface/ha/ConfigActionVariable-Bs6GAr-a.js.br +0 -0
  510. package/dist/interface/ha/ConfigActionVariable-Bs6GAr-a.js.gz +0 -0
  511. package/dist/interface/ha/ConfigConditionIfElse-Djycw0JW.js +124 -0
  512. package/dist/interface/ha/ConfigConditionIfElse-Djycw0JW.js.br +0 -0
  513. package/dist/interface/ha/ConfigConditionIfElse-Djycw0JW.js.gz +0 -0
  514. package/dist/interface/ha/ConfigConditionSensorState-CMU8ZqA0.js +190 -0
  515. package/dist/interface/ha/ConfigConditionSensorState-CMU8ZqA0.js.br +0 -0
  516. package/dist/interface/ha/ConfigConditionSensorState-CMU8ZqA0.js.gz +0 -0
  517. package/dist/interface/ha/ConfigConditionSwitch-CgJOmOpa.js +128 -0
  518. package/dist/interface/ha/ConfigConditionSwitch-CgJOmOpa.js.br +0 -0
  519. package/dist/interface/ha/ConfigConditionSwitch-CgJOmOpa.js.gz +0 -0
  520. package/dist/interface/ha/ConfigSensorValueInput-Bf6Ok4pI.js +173 -0
  521. package/dist/interface/ha/ConfigSensorValueInput-Bf6Ok4pI.js.br +0 -0
  522. package/dist/interface/ha/ConfigSensorValueInput-Bf6Ok4pI.js.gz +0 -0
  523. package/dist/interface/ha/ConfigTriggerDetection-Dw1CThHp.js +241 -0
  524. package/dist/interface/ha/ConfigTriggerDetection-Dw1CThHp.js.br +0 -0
  525. package/dist/interface/ha/ConfigTriggerDetection-Dw1CThHp.js.gz +0 -0
  526. package/dist/interface/ha/ConfigTriggerGeofence-DdPHZNwK.js +4836 -0
  527. package/dist/interface/ha/ConfigTriggerGeofence-DdPHZNwK.js.br +0 -0
  528. package/dist/interface/ha/ConfigTriggerGeofence-DdPHZNwK.js.gz +0 -0
  529. package/dist/interface/ha/ConfigTriggerMqtt-Ca5Nyw3p.js +134 -0
  530. package/dist/interface/ha/ConfigTriggerMqtt-Ca5Nyw3p.js.br +0 -0
  531. package/dist/interface/ha/ConfigTriggerMqtt-Ca5Nyw3p.js.gz +0 -0
  532. package/dist/interface/ha/ConfigTriggerSensor-D9HhDzY2.js +73 -0
  533. package/dist/interface/ha/ConfigTriggerSensor-D9HhDzY2.js.br +0 -0
  534. package/dist/interface/ha/ConfigTriggerSensor-D9HhDzY2.js.gz +0 -0
  535. package/dist/interface/ha/ConfigTriggerSystem-DwjzJNEe.js +192 -0
  536. package/dist/interface/ha/ConfigTriggerSystem-DwjzJNEe.js.br +0 -0
  537. package/dist/interface/ha/ConfigTriggerSystem-DwjzJNEe.js.gz +0 -0
  538. package/dist/interface/ha/ConfigTriggerWebhook-BH4Tf_gl.js +94 -0
  539. package/dist/interface/ha/ConfigTriggerWebhook-BH4Tf_gl.js.br +0 -0
  540. package/dist/interface/ha/ConfigTriggerWebhook-BH4Tf_gl.js.gz +0 -0
  541. package/dist/interface/ha/Console--Fph-cv4.js +347 -0
  542. package/dist/interface/ha/Console--Fph-cv4.js.br +0 -0
  543. package/dist/interface/ha/Console--Fph-cv4.js.gz +0 -0
  544. package/dist/interface/ha/CuiAutomationRunsDialog-DTa_aU4B.js +129 -0
  545. package/dist/interface/ha/CuiAutomationRunsDialog-DTa_aU4B.js.br +0 -0
  546. package/dist/interface/ha/CuiAutomationRunsDialog-DTa_aU4B.js.gz +0 -0
  547. package/dist/interface/ha/CuiBottomSheet-C06koVFt.js +270 -0
  548. package/dist/interface/ha/CuiBottomSheet-C06koVFt.js.br +0 -0
  549. package/dist/interface/ha/CuiBottomSheet-C06koVFt.js.gz +0 -0
  550. package/dist/interface/ha/CuiCameraRecordings-DanVT3UG.js +575 -0
  551. package/dist/interface/ha/CuiCameraRecordings-DanVT3UG.js.br +0 -0
  552. package/dist/interface/ha/CuiCameraRecordings-DanVT3UG.js.gz +0 -0
  553. package/dist/interface/ha/CuiCameraShares-BdodP9gm.js +120 -0
  554. package/dist/interface/ha/CuiCameraShares-BdodP9gm.js.br +0 -0
  555. package/dist/interface/ha/CuiCameraShares-BdodP9gm.js.gz +0 -0
  556. package/dist/interface/ha/CuiCameraTable-DwKFkM_u.js +105 -0
  557. package/dist/interface/ha/CuiCameraTable-DwKFkM_u.js.br +0 -0
  558. package/dist/interface/ha/CuiCameraTable-DwKFkM_u.js.gz +0 -0
  559. package/dist/interface/ha/CuiChartTable-DRXQfdr1.js +6797 -0
  560. package/dist/interface/ha/CuiChartTable-DRXQfdr1.js.br +0 -0
  561. package/dist/interface/ha/CuiChartTable-DRXQfdr1.js.gz +0 -0
  562. package/dist/interface/ha/CuiConsole-Doi5SxCk.js +234 -0
  563. package/dist/interface/ha/CuiConsole-Doi5SxCk.js.br +0 -0
  564. package/dist/interface/ha/CuiConsole-Doi5SxCk.js.gz +0 -0
  565. package/dist/interface/ha/CuiDataTable-BFI82F5E.js +8860 -0
  566. package/dist/interface/ha/CuiDataTable-BFI82F5E.js.br +0 -0
  567. package/dist/interface/ha/CuiDataTable-BFI82F5E.js.gz +0 -0
  568. package/dist/interface/ha/CuiMoveCodeForm-CnghWGPw.js +89 -0
  569. package/dist/interface/ha/CuiMoveCodeForm-CnghWGPw.js.br +0 -0
  570. package/dist/interface/ha/CuiMoveCodeForm-CnghWGPw.js.gz +0 -0
  571. package/dist/interface/ha/CuiPluginCard-CGgQxSl7.js +778 -0
  572. package/dist/interface/ha/CuiPluginCard-CGgQxSl7.js.br +0 -0
  573. package/dist/interface/ha/CuiPluginCard-CGgQxSl7.js.gz +0 -0
  574. package/dist/interface/ha/CuiPluginOAuthButton-D8FJdgy9.js +74 -0
  575. package/dist/interface/ha/CuiPluginOAuthButton-D8FJdgy9.js.br +0 -0
  576. package/dist/interface/ha/CuiPluginOAuthButton-D8FJdgy9.js.gz +0 -0
  577. package/dist/interface/ha/CuiPluginTrustBadge-BnxyMthN.js +122 -0
  578. package/dist/interface/ha/CuiPluginTrustBadge-BnxyMthN.js.br +0 -0
  579. package/dist/interface/ha/CuiPluginTrustBadge-BnxyMthN.js.gz +0 -0
  580. package/dist/interface/ha/CuiQRCode-JSiQ_0PB.js +86 -0
  581. package/dist/interface/ha/CuiQRCode-JSiQ_0PB.js.br +0 -0
  582. package/dist/interface/ha/CuiQRCode-JSiQ_0PB.js.gz +0 -0
  583. package/dist/interface/ha/CuiSchema-DWR2Cu3w.js +952 -0
  584. package/dist/interface/ha/CuiSchema-DWR2Cu3w.js.br +0 -0
  585. package/dist/interface/ha/CuiSchema-DWR2Cu3w.js.gz +0 -0
  586. package/dist/interface/ha/CuiTopNavbarItem-DkijXvxk.js +141 -0
  587. package/dist/interface/ha/CuiTopNavbarItem-DkijXvxk.js.br +0 -0
  588. package/dist/interface/ha/CuiTopNavbarItem-DkijXvxk.js.gz +0 -0
  589. package/dist/interface/ha/Faces-foOYGnts.js +1659 -0
  590. package/dist/interface/ha/Faces-foOYGnts.js.br +0 -0
  591. package/dist/interface/ha/Faces-foOYGnts.js.gz +0 -0
  592. package/dist/interface/ha/FirstSteps-BC5oP04p.js +254 -0
  593. package/dist/interface/ha/FirstSteps-BC5oP04p.js.br +0 -0
  594. package/dist/interface/ha/FirstSteps-BC5oP04p.js.gz +0 -0
  595. package/dist/interface/ha/Floorplan-CBHoSOlq.js +3707 -0
  596. package/dist/interface/ha/Floorplan-CBHoSOlq.js.br +0 -0
  597. package/dist/interface/ha/Floorplan-CBHoSOlq.js.gz +0 -0
  598. package/dist/interface/ha/Instances-Bl_4pf1g.js +670 -0
  599. package/dist/interface/ha/Instances-Bl_4pf1g.js.br +0 -0
  600. package/dist/interface/ha/Instances-Bl_4pf1g.js.gz +0 -0
  601. package/dist/interface/ha/Logs-CqcG22n0.js +417 -0
  602. package/dist/interface/ha/Logs-CqcG22n0.js.br +0 -0
  603. package/dist/interface/ha/Logs-CqcG22n0.js.gz +0 -0
  604. package/dist/interface/ha/Menu-K235AI9d.js +159 -0
  605. package/dist/interface/ha/Menu-K235AI9d.js.br +0 -0
  606. package/dist/interface/ha/Menu-K235AI9d.js.gz +0 -0
  607. package/dist/interface/ha/Metrics-B9LmdPb8.js +1484 -0
  608. package/dist/interface/ha/Metrics-B9LmdPb8.js.br +0 -0
  609. package/dist/interface/ha/Metrics-B9LmdPb8.js.gz +0 -0
  610. package/dist/interface/ha/OAuthDeviceFlow-BRfNQrto.js +112 -0
  611. package/dist/interface/ha/OAuthDeviceFlow-BRfNQrto.js.br +0 -0
  612. package/dist/interface/ha/OAuthDeviceFlow-BRfNQrto.js.gz +0 -0
  613. package/dist/interface/ha/Plugin-DOfqAHfD.js +1746 -0
  614. package/dist/interface/ha/Plugin-DOfqAHfD.js.br +0 -0
  615. package/dist/interface/ha/Plugin-DOfqAHfD.js.gz +0 -0
  616. package/dist/interface/ha/PluginConsole-HCq1TtGP.js +56 -0
  617. package/dist/interface/ha/PluginConsole-HCq1TtGP.js.br +0 -0
  618. package/dist/interface/ha/PluginConsole-HCq1TtGP.js.gz +0 -0
  619. package/dist/interface/ha/PluginDetail-qmjMJZ6-.js +804 -0
  620. package/dist/interface/ha/PluginDetail-qmjMJZ6-.js.br +0 -0
  621. package/dist/interface/ha/PluginDetail-qmjMJZ6-.js.gz +0 -0
  622. package/dist/interface/ha/PluginSearch-CLuHh8A_.js +462 -0
  623. package/dist/interface/ha/PluginSearch-CLuHh8A_.js.br +0 -0
  624. package/dist/interface/ha/PluginSearch-CLuHh8A_.js.gz +0 -0
  625. package/dist/interface/ha/PluginUpdateProgress-ZUrKsC_B.js +34 -0
  626. package/dist/interface/ha/PluginUpdateProgress-ZUrKsC_B.js.br +0 -0
  627. package/dist/interface/ha/PluginUpdateProgress-ZUrKsC_B.js.gz +0 -0
  628. package/dist/interface/ha/Plugins-BzLdxtIt.js +697 -0
  629. package/dist/interface/ha/Plugins-BzLdxtIt.js.br +0 -0
  630. package/dist/interface/ha/Plugins-BzLdxtIt.js.gz +0 -0
  631. package/dist/interface/ha/Recordings-CIFmOqK1.js +1916 -0
  632. package/dist/interface/ha/Recordings-CIFmOqK1.js.br +0 -0
  633. package/dist/interface/ha/Recordings-CIFmOqK1.js.gz +0 -0
  634. package/dist/interface/ha/SensorEdit-NmH5BT2-.js +1466 -0
  635. package/dist/interface/ha/SensorEdit-NmH5BT2-.js.br +0 -0
  636. package/dist/interface/ha/SensorEdit-NmH5BT2-.js.gz +0 -0
  637. package/dist/interface/ha/SensorHistory-yJNAhOsS.js +54 -0
  638. package/dist/interface/ha/SensorHistory-yJNAhOsS.js.br +0 -0
  639. package/dist/interface/ha/SensorHistory-yJNAhOsS.js.gz +0 -0
  640. package/dist/interface/ha/Sensors-BWiodX1x.js +1400 -0
  641. package/dist/interface/ha/Sensors-BWiodX1x.js.br +0 -0
  642. package/dist/interface/ha/Sensors-BWiodX1x.js.gz +0 -0
  643. package/dist/interface/ha/Settings-BI81b55S.js +218 -0
  644. package/dist/interface/ha/Settings-BI81b55S.js.br +0 -0
  645. package/dist/interface/ha/Settings-BI81b55S.js.gz +0 -0
  646. package/dist/interface/ha/SettingsAccount-CdjWQCPu.js +968 -0
  647. package/dist/interface/ha/SettingsAccount-CdjWQCPu.js.br +0 -0
  648. package/dist/interface/ha/SettingsAccount-CdjWQCPu.js.gz +0 -0
  649. package/dist/interface/ha/SettingsAppearance-XIYoSRsN.js +201 -0
  650. package/dist/interface/ha/SettingsAppearance-XIYoSRsN.js.br +0 -0
  651. package/dist/interface/ha/SettingsAppearance-XIYoSRsN.js.gz +0 -0
  652. package/dist/interface/ha/SettingsAssistant-kyqD6iRN.js +2134 -0
  653. package/dist/interface/ha/SettingsAssistant-kyqD6iRN.js.br +0 -0
  654. package/dist/interface/ha/SettingsAssistant-kyqD6iRN.js.gz +0 -0
  655. package/dist/interface/ha/SettingsBackup-CwQZCEBK.js +1047 -0
  656. package/dist/interface/ha/SettingsBackup-CwQZCEBK.js.br +0 -0
  657. package/dist/interface/ha/SettingsBackup-CwQZCEBK.js.gz +0 -0
  658. package/dist/interface/ha/SettingsList-DGFZj9DR.js +40 -0
  659. package/dist/interface/ha/SettingsList-DGFZj9DR.js.br +0 -0
  660. package/dist/interface/ha/SettingsList-DGFZj9DR.js.gz +0 -0
  661. package/dist/interface/ha/SettingsMqtt-C3LiDHjt.js +512 -0
  662. package/dist/interface/ha/SettingsMqtt-C3LiDHjt.js.br +0 -0
  663. package/dist/interface/ha/SettingsMqtt-C3LiDHjt.js.gz +0 -0
  664. package/dist/interface/ha/SettingsNotifications-1nOlxIiU.js +514 -0
  665. package/dist/interface/ha/SettingsNotifications-1nOlxIiU.js.br +0 -0
  666. package/dist/interface/ha/SettingsNotifications-1nOlxIiU.js.gz +0 -0
  667. package/dist/interface/ha/SettingsRecordings-JNunCb_2.js +152 -0
  668. package/dist/interface/ha/SettingsRecordings-JNunCb_2.js.br +0 -0
  669. package/dist/interface/ha/SettingsRecordings-JNunCb_2.js.gz +0 -0
  670. package/dist/interface/ha/SettingsRemote-BMPH9q5l.js +1523 -0
  671. package/dist/interface/ha/SettingsRemote-BMPH9q5l.js.br +0 -0
  672. package/dist/interface/ha/SettingsRemote-BMPH9q5l.js.gz +0 -0
  673. package/dist/interface/ha/SettingsSystem-DDH4f0Vx.js +382 -0
  674. package/dist/interface/ha/SettingsSystem-DDH4f0Vx.js.br +0 -0
  675. package/dist/interface/ha/SettingsSystem-DDH4f0Vx.js.gz +0 -0
  676. package/dist/interface/ha/SettingsUsers-CFTsI0cg.js +370 -0
  677. package/dist/interface/ha/SettingsUsers-CFTsI0cg.js.br +0 -0
  678. package/dist/interface/ha/SettingsUsers-CFTsI0cg.js.gz +0 -0
  679. package/dist/interface/ha/Terminal-DSDOuCjQ.js +611 -0
  680. package/dist/interface/ha/Terminal-DSDOuCjQ.js.br +0 -0
  681. package/dist/interface/ha/Terminal-DSDOuCjQ.js.gz +0 -0
  682. package/dist/interface/ha/Training-Bz7zeaiv.js +1829 -0
  683. package/dist/interface/ha/Training-Bz7zeaiv.js.br +0 -0
  684. package/dist/interface/ha/Training-Bz7zeaiv.js.gz +0 -0
  685. package/dist/interface/ha/Updates-Dia2pdZq.js +357 -0
  686. package/dist/interface/ha/Updates-Dia2pdZq.js.br +0 -0
  687. package/dist/interface/ha/Updates-Dia2pdZq.js.gz +0 -0
  688. package/dist/interface/ha/VariableInput-BJNBozvt.js +52 -0
  689. package/dist/interface/ha/VariableInput-BJNBozvt.js.br +0 -0
  690. package/dist/interface/ha/VariableInput-BJNBozvt.js.gz +0 -0
  691. package/dist/interface/ha/VersionsHandler-nZZLPTIy.js +221 -0
  692. package/dist/interface/ha/VersionsHandler-nZZLPTIy.js.br +0 -0
  693. package/dist/interface/ha/VersionsHandler-nZZLPTIy.js.gz +0 -0
  694. package/dist/interface/ha/VirtualSensorCreate-BEY_5Moy.js +102 -0
  695. package/dist/interface/ha/VirtualSensorCreate-BEY_5Moy.js.br +0 -0
  696. package/dist/interface/ha/VirtualSensorCreate-BEY_5Moy.js.gz +0 -0
  697. package/dist/interface/ha/Workers-Cz7uqDB1.js +1270 -0
  698. package/dist/interface/ha/Workers-Cz7uqDB1.js.br +0 -0
  699. package/dist/interface/ha/Workers-Cz7uqDB1.js.gz +0 -0
  700. package/dist/interface/ha/api-CQn_HFOl.js +29 -0
  701. package/dist/interface/ha/api-CQn_HFOl.js.br +0 -0
  702. package/dist/interface/ha/api-CQn_HFOl.js.gz +0 -0
  703. package/dist/interface/ha/api-DUn3L5D7.js +69083 -0
  704. package/dist/interface/ha/api-DUn3L5D7.js.br +0 -0
  705. package/dist/interface/ha/api-DUn3L5D7.js.gz +0 -0
  706. package/dist/interface/ha/assistant-BN7Ii0r0.js +349 -0
  707. package/dist/interface/ha/assistant-BN7Ii0r0.js.br +0 -0
  708. package/dist/interface/ha/assistant-BN7Ii0r0.js.gz +0 -0
  709. package/dist/interface/ha/auth-BPmMlAAg.js +271 -0
  710. package/dist/interface/ha/auth-BPmMlAAg.js.br +0 -0
  711. package/dist/interface/ha/auth-BPmMlAAg.js.gz +0 -0
  712. package/dist/interface/ha/automationBlueprint-DLWpQex2.js +250 -0
  713. package/dist/interface/ha/automationBlueprint-DLWpQex2.js.br +0 -0
  714. package/dist/interface/ha/automationBlueprint-DLWpQex2.js.gz +0 -0
  715. package/dist/interface/ha/cameraui-cards.js +2 -2
  716. package/dist/interface/ha/cards-DESDf3mL.js +13315 -0
  717. package/dist/interface/ha/cards-DESDf3mL.js.br +0 -0
  718. package/dist/interface/ha/cards-DESDf3mL.js.gz +0 -0
  719. package/dist/interface/ha/config-D8j5zflt.js +116 -0
  720. package/dist/interface/ha/config-D8j5zflt.js.br +0 -0
  721. package/dist/interface/ha/config-D8j5zflt.js.gz +0 -0
  722. package/dist/interface/ha/dist-DTq7_9I6.js +4434 -0
  723. package/dist/interface/ha/dist-DTq7_9I6.js.br +0 -0
  724. package/dist/interface/ha/dist-DTq7_9I6.js.gz +0 -0
  725. package/dist/interface/ha/mqtt-e7J98M0X.js +56 -0
  726. package/dist/interface/ha/mqtt-e7J98M0X.js.br +0 -0
  727. package/dist/interface/ha/mqtt-e7J98M0X.js.gz +0 -0
  728. package/dist/interface/ha/notifications-CKfUQZcf.js +159 -0
  729. package/dist/interface/ha/notifications-CKfUQZcf.js.br +0 -0
  730. package/dist/interface/ha/notifications-CKfUQZcf.js.gz +0 -0
  731. package/dist/interface/ha/plugins-DHEWLE-_.js +592 -0
  732. package/dist/interface/ha/plugins-DHEWLE-_.js.br +0 -0
  733. package/dist/interface/ha/plugins-DHEWLE-_.js.gz +0 -0
  734. package/dist/interface/ha/rooms-B8un3Qdi.js +45 -0
  735. package/dist/interface/ha/rooms-B8un3Qdi.js.br +0 -0
  736. package/dist/interface/ha/rooms-B8un3Qdi.js.gz +0 -0
  737. package/dist/interface/ha/server-D2PcGC9A.js +244 -0
  738. package/dist/interface/ha/server-D2PcGC9A.js.br +0 -0
  739. package/dist/interface/ha/server-D2PcGC9A.js.gz +0 -0
  740. package/dist/interface/ha/speeddial-Cxa_1lY2.js +941 -0
  741. package/dist/interface/ha/speeddial-Cxa_1lY2.js.br +0 -0
  742. package/dist/interface/ha/speeddial-Cxa_1lY2.js.gz +0 -0
  743. package/dist/interface/ha/types-4TNJU75d.js +1073 -0
  744. package/dist/interface/ha/types-4TNJU75d.js.br +0 -0
  745. package/dist/interface/ha/types-4TNJU75d.js.gz +0 -0
  746. package/dist/interface/ha/updates-C7C7vE8R.js +414 -0
  747. package/dist/interface/ha/updates-C7C7vE8R.js.br +0 -0
  748. package/dist/interface/ha/updates-C7C7vE8R.js.gz +0 -0
  749. package/dist/interface/ha/useAppVersion-BJg6yGaM.js +22 -0
  750. package/dist/interface/ha/useAppVersion-BJg6yGaM.js.br +3 -0
  751. package/dist/interface/ha/useAppVersion-BJg6yGaM.js.gz +0 -0
  752. package/dist/interface/ha/useKeyboardInset-B4Ta0MYT.js +27 -0
  753. package/dist/interface/ha/useKeyboardInset-B4Ta0MYT.js.br +0 -0
  754. package/dist/interface/ha/useKeyboardInset-B4Ta0MYT.js.gz +0 -0
  755. package/dist/interface/ha/useLogsSocket-B_i59MM_.js +74 -0
  756. package/dist/interface/ha/useLogsSocket-B_i59MM_.js.br +0 -0
  757. package/dist/interface/ha/useLogsSocket-B_i59MM_.js.gz +0 -0
  758. package/dist/interface/ha/useNavLayout-DboStdqA.js +125 -0
  759. package/dist/interface/ha/useNavLayout-DboStdqA.js.br +0 -0
  760. package/dist/interface/ha/useNavLayout-DboStdqA.js.gz +0 -0
  761. package/dist/interface/ha/usePlacementLabel-DCu74x82.js +49 -0
  762. package/dist/interface/ha/usePlacementLabel-DCu74x82.js.br +0 -0
  763. package/dist/interface/ha/usePlacementLabel-DCu74x82.js.gz +0 -0
  764. package/dist/interface/ha/useTabSwipe-DjexjTaU.js +45 -0
  765. package/dist/interface/ha/useTabSwipe-DjexjTaU.js.br +0 -0
  766. package/dist/interface/ha/useTabSwipe-DjexjTaU.js.gz +0 -0
  767. package/dist/interface/ha/useUpdateChannel-BPWUr4Hf.js +22 -0
  768. package/dist/interface/ha/useUpdateChannel-BPWUr4Hf.js.br +0 -0
  769. package/dist/interface/ha/useUpdateChannel-BPWUr4Hf.js.gz +0 -0
  770. package/dist/interface/ha/useUpdatesSocket-M7K1vFu-.js +34 -0
  771. package/dist/interface/ha/useUpdatesSocket-M7K1vFu-.js.br +0 -0
  772. package/dist/interface/ha/useUpdatesSocket-M7K1vFu-.js.gz +0 -0
  773. package/dist/interface/ha/useUserOptions-BYC5YXhG.js +15 -0
  774. package/dist/interface/ha/useUserOptions-BYC5YXhG.js.br +0 -0
  775. package/dist/interface/ha/useUserOptions-BYC5YXhG.js.gz +0 -0
  776. package/dist/interface/index.html +29 -29
  777. package/dist/interface/sw.js +1 -1
  778. package/dist/server/assets/docs.json +1 -1
  779. package/dist/server/package.json +5 -5
  780. package/dist/server/requirements.txt +1 -1
  781. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +16 -1
  782. package/dist/server/src/api/controllers/cameras.controller.js +1 -2
  783. package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
  784. package/dist/server/src/assistant/tools/cameras.js +1 -2
  785. package/dist/server/src/assistant/tools/cameras.js.map +1 -1
  786. package/dist/server/src/automations/actions/snapshot.js +2 -4
  787. package/dist/server/src/automations/actions/snapshot.js.map +1 -1
  788. package/dist/server/src/camera/controller.d.ts +0 -1
  789. package/dist/server/src/camera/controller.js +4 -8
  790. package/dist/server/src/camera/controller.js.map +1 -1
  791. package/dist/server/src/camera/decoder/worker.js +2 -3
  792. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  793. package/dist/server/src/camera/index.d.ts +4 -2
  794. package/dist/server/src/camera/index.js +8 -1
  795. package/dist/server/src/camera/index.js.map +1 -1
  796. package/dist/server/src/camera/snapshot-store.d.ts +1 -1
  797. package/dist/server/src/camera/snapshot-store.js +6 -2
  798. package/dist/server/src/camera/snapshot-store.js.map +1 -1
  799. package/dist/server/src/camera/streaming/fmp4-session.js +7 -1
  800. package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -1
  801. package/dist/server/src/camera/streaming/rtp-session.d.ts +1 -0
  802. package/dist/server/src/camera/streaming/rtp-session.js +7 -0
  803. package/dist/server/src/camera/streaming/rtp-session.js.map +1 -1
  804. package/dist/server/src/mqtt/bridge.js +1 -1
  805. package/dist/server/src/mqtt/bridge.js.map +1 -1
  806. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +12 -4
  807. package/npm-shrinkwrap.json +66 -66
  808. package/package.json +5 -5
  809. package/dist/interface/assets/404-DX4XH2LB.js +0 -1
  810. package/dist/interface/assets/404-DX4XH2LB.js.br +0 -0
  811. package/dist/interface/assets/404-DX4XH2LB.js.gz +0 -0
  812. package/dist/interface/assets/About-TKX85HMQ.js +0 -1
  813. package/dist/interface/assets/About-TKX85HMQ.js.br +0 -0
  814. package/dist/interface/assets/About-TKX85HMQ.js.gz +0 -0
  815. package/dist/interface/assets/Assistant-DoIUDprL.js +0 -1
  816. package/dist/interface/assets/Assistant-DoIUDprL.js.br +0 -0
  817. package/dist/interface/assets/Assistant-DoIUDprL.js.gz +0 -0
  818. package/dist/interface/assets/Automation-txjKQVyV.js +0 -3
  819. package/dist/interface/assets/Automation-txjKQVyV.js.br +0 -0
  820. package/dist/interface/assets/Automation-txjKQVyV.js.gz +0 -0
  821. package/dist/interface/assets/AutomationImport-C64Ut7T_.js +0 -2
  822. package/dist/interface/assets/AutomationImport-C64Ut7T_.js.br +0 -0
  823. package/dist/interface/assets/AutomationImport-C64Ut7T_.js.gz +0 -0
  824. package/dist/interface/assets/AutomationStore-Q01bLhts.js +0 -2
  825. package/dist/interface/assets/AutomationStore-Q01bLhts.js.br +0 -0
  826. package/dist/interface/assets/AutomationStore-Q01bLhts.js.gz +0 -0
  827. package/dist/interface/assets/AutomationStoreDetail-BaoJ9HK2.js +0 -2
  828. package/dist/interface/assets/AutomationStoreDetail-BaoJ9HK2.js.br +0 -0
  829. package/dist/interface/assets/AutomationStoreDetail-BaoJ9HK2.js.gz +0 -0
  830. package/dist/interface/assets/Automations-DrbmawaF.js +0 -2
  831. package/dist/interface/assets/Automations-DrbmawaF.js.br +0 -0
  832. package/dist/interface/assets/Automations-DrbmawaF.js.gz +0 -0
  833. package/dist/interface/assets/BackupRestore-28xfEYA4.js +0 -1
  834. package/dist/interface/assets/BackupRestore-28xfEYA4.js.br +0 -0
  835. package/dist/interface/assets/BackupRestore-28xfEYA4.js.gz +0 -0
  836. package/dist/interface/assets/Camera-BWG1t1eV.js +0 -2
  837. package/dist/interface/assets/Camera-BWG1t1eV.js.br +0 -0
  838. package/dist/interface/assets/Camera-BWG1t1eV.js.gz +0 -0
  839. package/dist/interface/assets/CameraConsole-DTU2a_Ts.js +0 -7
  840. package/dist/interface/assets/CameraConsole-DTU2a_Ts.js.br +0 -0
  841. package/dist/interface/assets/CameraConsole-DTU2a_Ts.js.gz +0 -0
  842. package/dist/interface/assets/Cameras-D_Mile0G.js +0 -651
  843. package/dist/interface/assets/Cameras-D_Mile0G.js.br +0 -0
  844. package/dist/interface/assets/Cameras-D_Mile0G.js.gz +0 -0
  845. package/dist/interface/assets/Camview-O9fMv2IM.js +0 -1
  846. package/dist/interface/assets/Camview-O9fMv2IM.js.br +0 -0
  847. package/dist/interface/assets/Camview-O9fMv2IM.js.gz +0 -0
  848. package/dist/interface/assets/Config-Z5OwrRYV.js +0 -2
  849. package/dist/interface/assets/Config-Z5OwrRYV.js.br +0 -0
  850. package/dist/interface/assets/Config-Z5OwrRYV.js.gz +0 -0
  851. package/dist/interface/assets/ConfigActionAssistant-CQCL2Am2.js +0 -1
  852. package/dist/interface/assets/ConfigActionAssistant-CQCL2Am2.js.br +0 -0
  853. package/dist/interface/assets/ConfigActionAssistant-CQCL2Am2.js.gz +0 -0
  854. package/dist/interface/assets/ConfigActionCameraControl-D_-J3WO0.js +0 -1
  855. package/dist/interface/assets/ConfigActionCameraControl-D_-J3WO0.js.br +0 -0
  856. package/dist/interface/assets/ConfigActionCameraControl-D_-J3WO0.js.gz +0 -0
  857. package/dist/interface/assets/ConfigActionHttp-BnJFthTT.js +0 -1
  858. package/dist/interface/assets/ConfigActionHttp-BnJFthTT.js.br +0 -0
  859. package/dist/interface/assets/ConfigActionHttp-BnJFthTT.js.gz +0 -0
  860. package/dist/interface/assets/ConfigActionImageInput-ALM7KAw2.js +0 -1
  861. package/dist/interface/assets/ConfigActionImageInput-ALM7KAw2.js.br +0 -0
  862. package/dist/interface/assets/ConfigActionImageInput-ALM7KAw2.js.gz +0 -0
  863. package/dist/interface/assets/ConfigActionMqtt-C0XsqWGy.js +0 -1
  864. package/dist/interface/assets/ConfigActionMqtt-C0XsqWGy.js.br +0 -0
  865. package/dist/interface/assets/ConfigActionMqtt-C0XsqWGy.js.gz +0 -0
  866. package/dist/interface/assets/ConfigActionNotification-CtiiN-5F.js +0 -1
  867. package/dist/interface/assets/ConfigActionNotification-CtiiN-5F.js.br +0 -0
  868. package/dist/interface/assets/ConfigActionNotification-CtiiN-5F.js.gz +0 -0
  869. package/dist/interface/assets/ConfigActionNotificationControl-DD8Irm7I.js +0 -1
  870. package/dist/interface/assets/ConfigActionNotificationControl-DD8Irm7I.js.br +0 -0
  871. package/dist/interface/assets/ConfigActionNotificationControl-DD8Irm7I.js.gz +0 -0
  872. package/dist/interface/assets/ConfigActionOutput-D4Wel3De.js +0 -1
  873. package/dist/interface/assets/ConfigActionOutput-D4Wel3De.js.br +0 -0
  874. package/dist/interface/assets/ConfigActionOutput-D4Wel3De.js.gz +0 -0
  875. package/dist/interface/assets/ConfigActionPlugin-CIesNnFQ.js +0 -1
  876. package/dist/interface/assets/ConfigActionPlugin-CIesNnFQ.js.br +0 -0
  877. package/dist/interface/assets/ConfigActionPlugin-CIesNnFQ.js.gz +0 -0
  878. package/dist/interface/assets/ConfigActionSensor-BcYL0qkL.js +0 -1
  879. package/dist/interface/assets/ConfigActionSensor-BcYL0qkL.js.br +0 -0
  880. package/dist/interface/assets/ConfigActionSensor-BcYL0qkL.js.gz +0 -0
  881. package/dist/interface/assets/ConfigActionSnapshot-DJdvQulG.js +0 -1
  882. package/dist/interface/assets/ConfigActionSnapshot-DJdvQulG.js.br +0 -0
  883. package/dist/interface/assets/ConfigActionSnapshot-DJdvQulG.js.gz +0 -0
  884. package/dist/interface/assets/ConfigActionVariable-BhIOexZq.js +0 -1
  885. package/dist/interface/assets/ConfigActionVariable-BhIOexZq.js.br +0 -0
  886. package/dist/interface/assets/ConfigActionVariable-BhIOexZq.js.gz +0 -0
  887. package/dist/interface/assets/ConfigConditionIfElse-smevwPDS.js +0 -1
  888. package/dist/interface/assets/ConfigConditionIfElse-smevwPDS.js.br +0 -0
  889. package/dist/interface/assets/ConfigConditionIfElse-smevwPDS.js.gz +0 -0
  890. package/dist/interface/assets/ConfigConditionSensorState-Cwn8aC7y.js +0 -1
  891. package/dist/interface/assets/ConfigConditionSensorState-Cwn8aC7y.js.br +0 -0
  892. package/dist/interface/assets/ConfigConditionSensorState-Cwn8aC7y.js.gz +0 -0
  893. package/dist/interface/assets/ConfigConditionSwitch-BarJmiQY.js +0 -1
  894. package/dist/interface/assets/ConfigConditionSwitch-BarJmiQY.js.br +0 -0
  895. package/dist/interface/assets/ConfigConditionSwitch-BarJmiQY.js.gz +0 -0
  896. package/dist/interface/assets/ConfigSensorValueInput-C4afzn70.js +0 -1
  897. package/dist/interface/assets/ConfigSensorValueInput-C4afzn70.js.br +0 -0
  898. package/dist/interface/assets/ConfigSensorValueInput-C4afzn70.js.gz +0 -0
  899. package/dist/interface/assets/ConfigTriggerDetection-D0g5ZMbd.js +0 -1
  900. package/dist/interface/assets/ConfigTriggerDetection-D0g5ZMbd.js.br +0 -0
  901. package/dist/interface/assets/ConfigTriggerDetection-D0g5ZMbd.js.gz +0 -0
  902. package/dist/interface/assets/ConfigTriggerGeofence-eWJC6ILP.js +0 -1
  903. package/dist/interface/assets/ConfigTriggerGeofence-eWJC6ILP.js.br +0 -0
  904. package/dist/interface/assets/ConfigTriggerGeofence-eWJC6ILP.js.gz +0 -0
  905. package/dist/interface/assets/ConfigTriggerMqtt-DiKTbPu6.js +0 -1
  906. package/dist/interface/assets/ConfigTriggerMqtt-DiKTbPu6.js.br +0 -0
  907. package/dist/interface/assets/ConfigTriggerMqtt-DiKTbPu6.js.gz +0 -0
  908. package/dist/interface/assets/ConfigTriggerSensor-CS8gsL0m.js +0 -1
  909. package/dist/interface/assets/ConfigTriggerSensor-CS8gsL0m.js.br +0 -0
  910. package/dist/interface/assets/ConfigTriggerSensor-CS8gsL0m.js.gz +0 -0
  911. package/dist/interface/assets/ConfigTriggerSystem-CmuIY_0y.js +0 -1
  912. package/dist/interface/assets/ConfigTriggerSystem-CmuIY_0y.js.br +0 -0
  913. package/dist/interface/assets/ConfigTriggerSystem-CmuIY_0y.js.gz +0 -0
  914. package/dist/interface/assets/ConfigTriggerWebhook-BMFuGGYj.js +0 -1
  915. package/dist/interface/assets/ConfigTriggerWebhook-BMFuGGYj.js.br +0 -0
  916. package/dist/interface/assets/ConfigTriggerWebhook-BMFuGGYj.js.gz +0 -0
  917. package/dist/interface/assets/Console-BymhygMI.js +0 -1
  918. package/dist/interface/assets/Console-BymhygMI.js.br +0 -0
  919. package/dist/interface/assets/Console-BymhygMI.js.gz +0 -0
  920. package/dist/interface/assets/CuiAssistantConversation-Beennkmh.js +0 -5
  921. package/dist/interface/assets/CuiAssistantConversation-Beennkmh.js.br +0 -0
  922. package/dist/interface/assets/CuiAssistantConversation-Beennkmh.js.gz +0 -0
  923. package/dist/interface/assets/CuiAutomationRunsDialog-BUkNp6wR.js +0 -1
  924. package/dist/interface/assets/CuiAutomationRunsDialog-BUkNp6wR.js.br +0 -0
  925. package/dist/interface/assets/CuiAutomationRunsDialog-BUkNp6wR.js.gz +0 -0
  926. package/dist/interface/assets/CuiBottomSheet-Clh6xrtY.js +0 -1
  927. package/dist/interface/assets/CuiBottomSheet-Clh6xrtY.js.br +0 -1
  928. package/dist/interface/assets/CuiBottomSheet-Clh6xrtY.js.gz +0 -0
  929. package/dist/interface/assets/CuiBottomSheet-DHzBdeKE.js +0 -1
  930. package/dist/interface/assets/CuiBottomSheet-DHzBdeKE.js.br +0 -0
  931. package/dist/interface/assets/CuiBottomSheet-DHzBdeKE.js.gz +0 -0
  932. package/dist/interface/assets/CuiCameraPipCard-DV9NVvdU.js +0 -1
  933. package/dist/interface/assets/CuiCameraPipCard-DV9NVvdU.js.br +0 -0
  934. package/dist/interface/assets/CuiCameraPipCard-DV9NVvdU.js.gz +0 -0
  935. package/dist/interface/assets/CuiCameraRecordings-Dgabyi8C.js +0 -1
  936. package/dist/interface/assets/CuiCameraRecordings-Dgabyi8C.js.br +0 -0
  937. package/dist/interface/assets/CuiCameraRecordings-Dgabyi8C.js.gz +0 -0
  938. package/dist/interface/assets/CuiCameraShares-D-CEbeu7.js +0 -1
  939. package/dist/interface/assets/CuiCameraShares-D-CEbeu7.js.br +0 -0
  940. package/dist/interface/assets/CuiCameraShares-D-CEbeu7.js.gz +0 -0
  941. package/dist/interface/assets/CuiCameraTable-CQmKrbaK.js +0 -1
  942. package/dist/interface/assets/CuiCameraTable-CQmKrbaK.js.br +0 -1
  943. package/dist/interface/assets/CuiCameraTable-CQmKrbaK.js.gz +0 -0
  944. package/dist/interface/assets/CuiCameraTable-DJ6BT3GR.js +0 -2
  945. package/dist/interface/assets/CuiCameraTable-DJ6BT3GR.js.br +0 -0
  946. package/dist/interface/assets/CuiCameraTable-DJ6BT3GR.js.gz +0 -0
  947. package/dist/interface/assets/CuiChartTable-D74cis32.js +0 -1
  948. package/dist/interface/assets/CuiChartTable-D74cis32.js.br +0 -0
  949. package/dist/interface/assets/CuiChartTable-D74cis32.js.gz +0 -0
  950. package/dist/interface/assets/CuiConsole-CEckyUH_.js +0 -5
  951. package/dist/interface/assets/CuiConsole-CEckyUH_.js.br +0 -0
  952. package/dist/interface/assets/CuiConsole-CEckyUH_.js.gz +0 -0
  953. package/dist/interface/assets/CuiDataTable-D2CX_Dae.js +0 -1
  954. package/dist/interface/assets/CuiDataTable-D2CX_Dae.js.br +0 -0
  955. package/dist/interface/assets/CuiDataTable-D2CX_Dae.js.gz +0 -0
  956. package/dist/interface/assets/CuiLightControl-DwC2A1_z.js +0 -1
  957. package/dist/interface/assets/CuiLightControl-DwC2A1_z.js.br +0 -0
  958. package/dist/interface/assets/CuiLightControl-DwC2A1_z.js.gz +0 -0
  959. package/dist/interface/assets/CuiMoveCodeForm-9uLXz6E4.js +0 -1
  960. package/dist/interface/assets/CuiMoveCodeForm-9uLXz6E4.js.br +0 -0
  961. package/dist/interface/assets/CuiMoveCodeForm-9uLXz6E4.js.gz +0 -0
  962. package/dist/interface/assets/CuiPluginCard-7Zaj4gGb.js +0 -2
  963. package/dist/interface/assets/CuiPluginCard-7Zaj4gGb.js.br +0 -0
  964. package/dist/interface/assets/CuiPluginCard-7Zaj4gGb.js.gz +0 -0
  965. package/dist/interface/assets/CuiPluginCategoryChip-NZO3F0dE.js +0 -1
  966. package/dist/interface/assets/CuiPluginCategoryChip-NZO3F0dE.js.br +0 -0
  967. package/dist/interface/assets/CuiPluginCategoryChip-NZO3F0dE.js.gz +0 -0
  968. package/dist/interface/assets/CuiPluginOAuthButton-BtXeLBCE.js +0 -2
  969. package/dist/interface/assets/CuiPluginOAuthButton-BtXeLBCE.js.br +0 -0
  970. package/dist/interface/assets/CuiPluginOAuthButton-BtXeLBCE.js.gz +0 -0
  971. package/dist/interface/assets/CuiPluginTrustBadge-DhTB-x34.js +0 -1
  972. package/dist/interface/assets/CuiPluginTrustBadge-DhTB-x34.js.br +0 -0
  973. package/dist/interface/assets/CuiPluginTrustBadge-DhTB-x34.js.gz +0 -0
  974. package/dist/interface/assets/CuiQRCode-CqGj0s6U.js +0 -1
  975. package/dist/interface/assets/CuiQRCode-CqGj0s6U.js.br +0 -0
  976. package/dist/interface/assets/CuiQRCode-CqGj0s6U.js.gz +0 -0
  977. package/dist/interface/assets/CuiSchema-BTF_3aRE.js +0 -1
  978. package/dist/interface/assets/CuiSchema-BTF_3aRE.js.br +0 -0
  979. package/dist/interface/assets/CuiSchema-BTF_3aRE.js.gz +0 -0
  980. package/dist/interface/assets/CuiTopNavbarItem-BWcrLyui.js +0 -1
  981. package/dist/interface/assets/CuiTopNavbarItem-BWcrLyui.js.br +0 -0
  982. package/dist/interface/assets/CuiTopNavbarItem-BWcrLyui.js.gz +0 -0
  983. package/dist/interface/assets/Faces-CSuw4tlQ.js +0 -1
  984. package/dist/interface/assets/Faces-CSuw4tlQ.js.br +0 -0
  985. package/dist/interface/assets/Faces-CSuw4tlQ.js.gz +0 -0
  986. package/dist/interface/assets/FirstSteps-D8MXHO4s.js +0 -1
  987. package/dist/interface/assets/FirstSteps-D8MXHO4s.js.br +0 -0
  988. package/dist/interface/assets/FirstSteps-D8MXHO4s.js.gz +0 -0
  989. package/dist/interface/assets/Floorplan-CJvf82Yr.js +0 -1
  990. package/dist/interface/assets/Floorplan-CJvf82Yr.js.br +0 -0
  991. package/dist/interface/assets/Floorplan-CJvf82Yr.js.gz +0 -0
  992. package/dist/interface/assets/Instances-CGmnFbAU.js +0 -1
  993. package/dist/interface/assets/Instances-CGmnFbAU.js.br +0 -0
  994. package/dist/interface/assets/Instances-CGmnFbAU.js.gz +0 -0
  995. package/dist/interface/assets/Logs-DzRjFZwp.js +0 -6
  996. package/dist/interface/assets/Logs-DzRjFZwp.js.br +0 -0
  997. package/dist/interface/assets/Logs-DzRjFZwp.js.gz +0 -0
  998. package/dist/interface/assets/Menu-CBDRm_I7.js +0 -1
  999. package/dist/interface/assets/Menu-CBDRm_I7.js.br +0 -0
  1000. package/dist/interface/assets/Menu-CBDRm_I7.js.gz +0 -0
  1001. package/dist/interface/assets/Metrics-DyvjZEl4.js +0 -12
  1002. package/dist/interface/assets/Metrics-DyvjZEl4.js.br +0 -0
  1003. package/dist/interface/assets/Metrics-DyvjZEl4.js.gz +0 -0
  1004. package/dist/interface/assets/OAuthDeviceFlow-CDjuIKJO.js +0 -1
  1005. package/dist/interface/assets/OAuthDeviceFlow-CDjuIKJO.js.br +0 -0
  1006. package/dist/interface/assets/OAuthDeviceFlow-CDjuIKJO.js.gz +0 -0
  1007. package/dist/interface/assets/Plugin-CXtetRIB.js +0 -1
  1008. package/dist/interface/assets/Plugin-CXtetRIB.js.br +0 -0
  1009. package/dist/interface/assets/Plugin-CXtetRIB.js.gz +0 -0
  1010. package/dist/interface/assets/PluginConsole-6TRc3i3n.js +0 -7
  1011. package/dist/interface/assets/PluginConsole-6TRc3i3n.js.br +0 -0
  1012. package/dist/interface/assets/PluginConsole-6TRc3i3n.js.gz +0 -0
  1013. package/dist/interface/assets/PluginDetail-DBYTEg5y.js +0 -2
  1014. package/dist/interface/assets/PluginDetail-DBYTEg5y.js.br +0 -0
  1015. package/dist/interface/assets/PluginDetail-DBYTEg5y.js.gz +0 -0
  1016. package/dist/interface/assets/PluginSchema-BW_3Fyqe.js +0 -1
  1017. package/dist/interface/assets/PluginSchema-BW_3Fyqe.js.br +0 -0
  1018. package/dist/interface/assets/PluginSchema-BW_3Fyqe.js.gz +0 -0
  1019. package/dist/interface/assets/PluginSearch--ZnY67-0.js +0 -2
  1020. package/dist/interface/assets/PluginSearch--ZnY67-0.js.br +0 -0
  1021. package/dist/interface/assets/PluginSearch--ZnY67-0.js.gz +0 -0
  1022. package/dist/interface/assets/PluginSearch-C53VwojP.js +0 -1
  1023. package/dist/interface/assets/PluginSearch-C53VwojP.js.br +0 -0
  1024. package/dist/interface/assets/PluginSearch-C53VwojP.js.gz +0 -0
  1025. package/dist/interface/assets/PluginUpdateProgress-DwkFjcgH.js +0 -1
  1026. package/dist/interface/assets/PluginUpdateProgress-DwkFjcgH.js.br +0 -0
  1027. package/dist/interface/assets/PluginUpdateProgress-DwkFjcgH.js.gz +0 -0
  1028. package/dist/interface/assets/Plugins-CV1x_hss.js +0 -1
  1029. package/dist/interface/assets/Plugins-CV1x_hss.js.br +0 -0
  1030. package/dist/interface/assets/Plugins-CV1x_hss.js.gz +0 -0
  1031. package/dist/interface/assets/RecentEventsFilter-BFlbTCVN.js +0 -1
  1032. package/dist/interface/assets/RecentEventsFilter-BFlbTCVN.js.br +0 -0
  1033. package/dist/interface/assets/RecentEventsFilter-BFlbTCVN.js.gz +0 -0
  1034. package/dist/interface/assets/Recordings-BNByf_Or.js +0 -1
  1035. package/dist/interface/assets/Recordings-BNByf_Or.js.br +0 -0
  1036. package/dist/interface/assets/Recordings-BNByf_Or.js.gz +0 -0
  1037. package/dist/interface/assets/SensorEdit-DBpz5jrO.js +0 -1
  1038. package/dist/interface/assets/SensorEdit-DBpz5jrO.js.br +0 -0
  1039. package/dist/interface/assets/SensorEdit-DBpz5jrO.js.gz +0 -0
  1040. package/dist/interface/assets/SensorHistory-DwQQ6nFI.js +0 -1
  1041. package/dist/interface/assets/SensorHistory-DwQQ6nFI.js.br +0 -0
  1042. package/dist/interface/assets/SensorHistory-DwQQ6nFI.js.gz +0 -0
  1043. package/dist/interface/assets/Sensors-DTIZnOsc.js +0 -2
  1044. package/dist/interface/assets/Sensors-DTIZnOsc.js.br +0 -0
  1045. package/dist/interface/assets/Sensors-DTIZnOsc.js.gz +0 -0
  1046. package/dist/interface/assets/Settings-BpmZZZ5X.js +0 -1
  1047. package/dist/interface/assets/Settings-BpmZZZ5X.js.br +0 -0
  1048. package/dist/interface/assets/Settings-BpmZZZ5X.js.gz +0 -0
  1049. package/dist/interface/assets/SettingsAccount-BZvGNzRb.js +0 -1
  1050. package/dist/interface/assets/SettingsAccount-BZvGNzRb.js.br +0 -0
  1051. package/dist/interface/assets/SettingsAccount-BZvGNzRb.js.gz +0 -0
  1052. package/dist/interface/assets/SettingsAccount-UaKygscf.css +0 -1
  1053. package/dist/interface/assets/SettingsAccount-UaKygscf.css.br +0 -0
  1054. package/dist/interface/assets/SettingsAccount-UaKygscf.css.gz +0 -0
  1055. package/dist/interface/assets/SettingsAccount-jb4-Xc6f.js +0 -1
  1056. package/dist/interface/assets/SettingsAccount-jb4-Xc6f.js.br +0 -0
  1057. package/dist/interface/assets/SettingsAccount-jb4-Xc6f.js.gz +0 -0
  1058. package/dist/interface/assets/SettingsAppearance-B5785pDk.js +0 -1
  1059. package/dist/interface/assets/SettingsAppearance-B5785pDk.js.br +0 -0
  1060. package/dist/interface/assets/SettingsAppearance-B5785pDk.js.gz +0 -0
  1061. package/dist/interface/assets/SettingsAppearance-BxlHCftL.js +0 -1
  1062. package/dist/interface/assets/SettingsAppearance-BxlHCftL.js.br +0 -0
  1063. package/dist/interface/assets/SettingsAppearance-BxlHCftL.js.gz +0 -0
  1064. package/dist/interface/assets/SettingsAssistant-BqvP2AP3.js +0 -1
  1065. package/dist/interface/assets/SettingsAssistant-BqvP2AP3.js.br +0 -0
  1066. package/dist/interface/assets/SettingsAssistant-BqvP2AP3.js.gz +0 -0
  1067. package/dist/interface/assets/SettingsBackup-BJqeVFG4.js +0 -1
  1068. package/dist/interface/assets/SettingsBackup-BJqeVFG4.js.br +0 -0
  1069. package/dist/interface/assets/SettingsBackup-BJqeVFG4.js.gz +0 -0
  1070. package/dist/interface/assets/SettingsList-Dy_mA9K2.js +0 -1
  1071. package/dist/interface/assets/SettingsList-Dy_mA9K2.js.br +0 -0
  1072. package/dist/interface/assets/SettingsList-Dy_mA9K2.js.gz +0 -0
  1073. package/dist/interface/assets/SettingsMqtt-BYvn5IYr.js +0 -1
  1074. package/dist/interface/assets/SettingsMqtt-BYvn5IYr.js.br +0 -0
  1075. package/dist/interface/assets/SettingsMqtt-BYvn5IYr.js.gz +0 -0
  1076. package/dist/interface/assets/SettingsNotifications-BGaX9Ksi.js +0 -1
  1077. package/dist/interface/assets/SettingsNotifications-BGaX9Ksi.js.br +0 -0
  1078. package/dist/interface/assets/SettingsNotifications-BGaX9Ksi.js.gz +0 -0
  1079. package/dist/interface/assets/SettingsPermissions-GDUHm4Dy.js +0 -1
  1080. package/dist/interface/assets/SettingsPermissions-GDUHm4Dy.js.br +0 -0
  1081. package/dist/interface/assets/SettingsPermissions-GDUHm4Dy.js.gz +0 -0
  1082. package/dist/interface/assets/SettingsRecordings-DYKsAGHM.js +0 -1
  1083. package/dist/interface/assets/SettingsRecordings-DYKsAGHM.js.br +0 -0
  1084. package/dist/interface/assets/SettingsRecordings-DYKsAGHM.js.gz +0 -0
  1085. package/dist/interface/assets/SettingsRemote-Dq65gMYr.js +0 -2
  1086. package/dist/interface/assets/SettingsRemote-Dq65gMYr.js.br +0 -0
  1087. package/dist/interface/assets/SettingsRemote-Dq65gMYr.js.gz +0 -0
  1088. package/dist/interface/assets/SettingsSystem-Ct8hqB0Q.js +0 -2
  1089. package/dist/interface/assets/SettingsSystem-Ct8hqB0Q.js.br +0 -0
  1090. package/dist/interface/assets/SettingsSystem-Ct8hqB0Q.js.gz +0 -0
  1091. package/dist/interface/assets/SettingsUsers-BaY-mpI0.js +0 -1
  1092. package/dist/interface/assets/SettingsUsers-BaY-mpI0.js.br +0 -0
  1093. package/dist/interface/assets/SettingsUsers-BaY-mpI0.js.gz +0 -0
  1094. package/dist/interface/assets/Terminal-BwZVJsrs.js +0 -4
  1095. package/dist/interface/assets/Terminal-BwZVJsrs.js.br +0 -0
  1096. package/dist/interface/assets/Terminal-BwZVJsrs.js.gz +0 -0
  1097. package/dist/interface/assets/Training-Bn0X2TTy.js +0 -1
  1098. package/dist/interface/assets/Training-Bn0X2TTy.js.br +0 -0
  1099. package/dist/interface/assets/Training-Bn0X2TTy.js.gz +0 -0
  1100. package/dist/interface/assets/Updates-C7F84E2k.js +0 -2
  1101. package/dist/interface/assets/Updates-C7F84E2k.js.br +0 -0
  1102. package/dist/interface/assets/Updates-C7F84E2k.js.gz +0 -0
  1103. package/dist/interface/assets/VariableInput-BmTqWbr7.js +0 -1
  1104. package/dist/interface/assets/VariableInput-BmTqWbr7.js.br +0 -4
  1105. package/dist/interface/assets/VariableInput-BmTqWbr7.js.gz +0 -0
  1106. package/dist/interface/assets/VersionsHandler-DLKfxVjW.js +0 -7
  1107. package/dist/interface/assets/VersionsHandler-DLKfxVjW.js.br +0 -0
  1108. package/dist/interface/assets/VersionsHandler-DLKfxVjW.js.gz +0 -0
  1109. package/dist/interface/assets/VirtualSensorCreate-rTcEcAhh.js +0 -1
  1110. package/dist/interface/assets/VirtualSensorCreate-rTcEcAhh.js.br +0 -0
  1111. package/dist/interface/assets/VirtualSensorCreate-rTcEcAhh.js.gz +0 -0
  1112. package/dist/interface/assets/Workers-BmCpS11X.js +0 -2
  1113. package/dist/interface/assets/Workers-BmCpS11X.js.br +0 -0
  1114. package/dist/interface/assets/Workers-BmCpS11X.js.gz +0 -0
  1115. package/dist/interface/assets/api-BnIHl_ph.js +0 -1
  1116. package/dist/interface/assets/api-BnIHl_ph.js.br +0 -2
  1117. package/dist/interface/assets/api-BnIHl_ph.js.gz +0 -0
  1118. package/dist/interface/assets/api-Cr35WxQ9.js +0 -4
  1119. package/dist/interface/assets/api-Cr35WxQ9.js.br +0 -0
  1120. package/dist/interface/assets/api-Cr35WxQ9.js.gz +0 -0
  1121. package/dist/interface/assets/api-Dh8jUlae.css +0 -2
  1122. package/dist/interface/assets/api-Dh8jUlae.css.br +0 -0
  1123. package/dist/interface/assets/api-Dh8jUlae.css.gz +0 -0
  1124. package/dist/interface/assets/assistant-D3LA-H2B.js +0 -1
  1125. package/dist/interface/assets/assistant-D3LA-H2B.js.br +0 -0
  1126. package/dist/interface/assets/assistant-D3LA-H2B.js.gz +0 -0
  1127. package/dist/interface/assets/auth-H0IrVJ07.js +0 -1
  1128. package/dist/interface/assets/auth-H0IrVJ07.js.br +0 -0
  1129. package/dist/interface/assets/auth-H0IrVJ07.js.gz +0 -0
  1130. package/dist/interface/assets/automations-DVloYi1F.js +0 -1
  1131. package/dist/interface/assets/automations-DVloYi1F.js.br +0 -0
  1132. package/dist/interface/assets/automations-DVloYi1F.js.gz +0 -0
  1133. package/dist/interface/assets/cameraSources-C-oeWnEa.js +0 -1
  1134. package/dist/interface/assets/cameraSources-C-oeWnEa.js.br +0 -0
  1135. package/dist/interface/assets/cameraSources-C-oeWnEa.js.gz +0 -0
  1136. package/dist/interface/assets/cloudHandoff-7kajbWnb.js +0 -1
  1137. package/dist/interface/assets/cloudHandoff-7kajbWnb.js.br +0 -1
  1138. package/dist/interface/assets/cloudHandoff-7kajbWnb.js.gz +0 -0
  1139. package/dist/interface/assets/config-CYPq0jKV.js +0 -1
  1140. package/dist/interface/assets/config-CYPq0jKV.js.br +0 -0
  1141. package/dist/interface/assets/config-CYPq0jKV.js.gz +0 -0
  1142. package/dist/interface/assets/flowSchema-DDR5Bkwp.js +0 -1
  1143. package/dist/interface/assets/flowSchema-DDR5Bkwp.js.br +0 -0
  1144. package/dist/interface/assets/flowSchema-DDR5Bkwp.js.gz +0 -0
  1145. package/dist/interface/assets/intercomService-CrNJqjSQ.js +0 -1
  1146. package/dist/interface/assets/intercomService-CrNJqjSQ.js.br +0 -0
  1147. package/dist/interface/assets/intercomService-CrNJqjSQ.js.gz +0 -0
  1148. package/dist/interface/assets/main-DkZ5J9f-.js +0 -3
  1149. package/dist/interface/assets/main-DkZ5J9f-.js.br +0 -0
  1150. package/dist/interface/assets/main-DkZ5J9f-.js.gz +0 -0
  1151. package/dist/interface/assets/mqtt-awK-0sPa.js +0 -1
  1152. package/dist/interface/assets/mqtt-awK-0sPa.js.br +0 -3
  1153. package/dist/interface/assets/mqtt-awK-0sPa.js.gz +0 -0
  1154. package/dist/interface/assets/notifications-C3dI-Mb2.js +0 -1
  1155. package/dist/interface/assets/notifications-C3dI-Mb2.js.br +0 -0
  1156. package/dist/interface/assets/notifications-C3dI-Mb2.js.gz +0 -0
  1157. package/dist/interface/assets/plugins-DNe-IpyD.js +0 -1
  1158. package/dist/interface/assets/plugins-DNe-IpyD.js.br +0 -0
  1159. package/dist/interface/assets/plugins-DNe-IpyD.js.gz +0 -0
  1160. package/dist/interface/assets/rooms-aZ-1yqux.js +0 -1
  1161. package/dist/interface/assets/rooms-aZ-1yqux.js.br +0 -0
  1162. package/dist/interface/assets/rooms-aZ-1yqux.js.gz +0 -0
  1163. package/dist/interface/assets/sensorIcons-B2n8mSA1.js +0 -1
  1164. package/dist/interface/assets/sensorIcons-B2n8mSA1.js.br +0 -0
  1165. package/dist/interface/assets/sensorIcons-B2n8mSA1.js.gz +0 -0
  1166. package/dist/interface/assets/sensorSlots-CZ1jzvW0.js +0 -1
  1167. package/dist/interface/assets/sensorSlots-CZ1jzvW0.js.br +0 -0
  1168. package/dist/interface/assets/sensorSlots-CZ1jzvW0.js.gz +0 -0
  1169. package/dist/interface/assets/sensors-WvDabknx.js +0 -1
  1170. package/dist/interface/assets/sensors-WvDabknx.js.br +0 -0
  1171. package/dist/interface/assets/sensors-WvDabknx.js.gz +0 -0
  1172. package/dist/interface/assets/server-CS00Piad.js +0 -1
  1173. package/dist/interface/assets/server-CS00Piad.js.br +0 -0
  1174. package/dist/interface/assets/server-CS00Piad.js.gz +0 -0
  1175. package/dist/interface/assets/theme-Pa8YlYGw.js +0 -1
  1176. package/dist/interface/assets/theme-Pa8YlYGw.js.br +0 -0
  1177. package/dist/interface/assets/theme-Pa8YlYGw.js.gz +0 -0
  1178. package/dist/interface/assets/types-Bo-NWCAC.js +0 -1
  1179. package/dist/interface/assets/types-Bo-NWCAC.js.br +0 -0
  1180. package/dist/interface/assets/types-Bo-NWCAC.js.gz +0 -0
  1181. package/dist/interface/assets/types-CVAA-zJR.js +0 -1
  1182. package/dist/interface/assets/types-CVAA-zJR.js.br +0 -0
  1183. package/dist/interface/assets/types-CVAA-zJR.js.gz +0 -0
  1184. package/dist/interface/assets/types-OT17v6kT.js +0 -1
  1185. package/dist/interface/assets/types-OT17v6kT.js.br +0 -0
  1186. package/dist/interface/assets/types-OT17v6kT.js.gz +0 -0
  1187. package/dist/interface/assets/updates-B_2JKJzB.js +0 -2
  1188. package/dist/interface/assets/updates-B_2JKJzB.js.br +0 -0
  1189. package/dist/interface/assets/updates-B_2JKJzB.js.gz +0 -0
  1190. package/dist/interface/assets/useAppVersion-CuEpmZ_O.js +0 -1
  1191. package/dist/interface/assets/useAppVersion-CuEpmZ_O.js.br +0 -0
  1192. package/dist/interface/assets/useAppVersion-CuEpmZ_O.js.gz +0 -0
  1193. package/dist/interface/assets/useCameraOptions-CRwLXMIc.js +0 -1
  1194. package/dist/interface/assets/useCameraOptions-CRwLXMIc.js.br +0 -0
  1195. package/dist/interface/assets/useCameraOptions-CRwLXMIc.js.gz +0 -0
  1196. package/dist/interface/assets/useKeyboardInset-e2TuYFch.js +0 -1
  1197. package/dist/interface/assets/useKeyboardInset-e2TuYFch.js.br +0 -0
  1198. package/dist/interface/assets/useKeyboardInset-e2TuYFch.js.gz +0 -0
  1199. package/dist/interface/assets/useLogsSocket-DApiCIRx.js +0 -1
  1200. package/dist/interface/assets/useLogsSocket-DApiCIRx.js.br +0 -0
  1201. package/dist/interface/assets/useLogsSocket-DApiCIRx.js.gz +0 -0
  1202. package/dist/interface/assets/useNavLayout-DDcpWBKr.js +0 -1
  1203. package/dist/interface/assets/useNavLayout-DDcpWBKr.js.br +0 -0
  1204. package/dist/interface/assets/useNavLayout-DDcpWBKr.js.gz +0 -0
  1205. package/dist/interface/assets/usePermissions-Bh_myrIK.js +0 -1
  1206. package/dist/interface/assets/usePermissions-Bh_myrIK.js.br +0 -0
  1207. package/dist/interface/assets/usePermissions-Bh_myrIK.js.gz +0 -0
  1208. package/dist/interface/assets/usePlacementLabel-CeAIoypC.js +0 -1
  1209. package/dist/interface/assets/usePlacementLabel-CeAIoypC.js.br +0 -4
  1210. package/dist/interface/assets/usePlacementLabel-CeAIoypC.js.gz +0 -0
  1211. package/dist/interface/assets/usePlacementSocket-BdUxTN8u.js +0 -1
  1212. package/dist/interface/assets/usePlacementSocket-BdUxTN8u.js.br +0 -0
  1213. package/dist/interface/assets/usePlacementSocket-BdUxTN8u.js.gz +0 -0
  1214. package/dist/interface/assets/usePluginUpdates-CzJHo-c7.js +0 -1
  1215. package/dist/interface/assets/usePluginUpdates-CzJHo-c7.js.br +0 -0
  1216. package/dist/interface/assets/usePluginUpdates-CzJHo-c7.js.gz +0 -0
  1217. package/dist/interface/assets/usePluginsSocket-ClsgHCK0.js +0 -1
  1218. package/dist/interface/assets/usePluginsSocket-ClsgHCK0.js.br +0 -0
  1219. package/dist/interface/assets/usePluginsSocket-ClsgHCK0.js.gz +0 -0
  1220. package/dist/interface/assets/usePushRegistration-CXChru-H.js +0 -2
  1221. package/dist/interface/assets/usePushRegistration-CXChru-H.js.br +0 -0
  1222. package/dist/interface/assets/usePushRegistration-CXChru-H.js.gz +0 -0
  1223. package/dist/interface/assets/useServerRestart-CjwXpwtq.js +0 -1
  1224. package/dist/interface/assets/useServerRestart-CjwXpwtq.js.br +0 -0
  1225. package/dist/interface/assets/useServerRestart-CjwXpwtq.js.gz +0 -0
  1226. package/dist/interface/assets/useTabSwipe-D7mGV0pr.js +0 -1
  1227. package/dist/interface/assets/useTabSwipe-D7mGV0pr.js.br +0 -0
  1228. package/dist/interface/assets/useTabSwipe-D7mGV0pr.js.gz +0 -0
  1229. package/dist/interface/assets/useUpdateChannel-Ba1im3eb.js +0 -1
  1230. package/dist/interface/assets/useUpdateChannel-Ba1im3eb.js.br +0 -0
  1231. package/dist/interface/assets/useUpdateChannel-Ba1im3eb.js.gz +0 -0
  1232. package/dist/interface/assets/useUpdatesSocket-D37pbc6H.js +0 -1
  1233. package/dist/interface/assets/useUpdatesSocket-D37pbc6H.js.br +0 -0
  1234. package/dist/interface/assets/useUpdatesSocket-D37pbc6H.js.gz +0 -0
  1235. package/dist/interface/assets/useUserOptions-CDYyeM93.js +0 -1
  1236. package/dist/interface/assets/useUserOptions-CDYyeM93.js.br +0 -0
  1237. package/dist/interface/assets/useUserOptions-CDYyeM93.js.gz +0 -0
  1238. package/dist/interface/assets/vendor-cameraui-CFuqYfdj.js +0 -8
  1239. package/dist/interface/assets/vendor-cameraui-CFuqYfdj.js.br +0 -0
  1240. package/dist/interface/assets/vendor-cameraui-CFuqYfdj.js.gz +0 -0
  1241. package/dist/interface/assets/vendor-cameraui-zEcMwDN6.css +0 -1
  1242. package/dist/interface/assets/vendor-cameraui-zEcMwDN6.css.br +0 -0
  1243. package/dist/interface/assets/vendor-cameraui-zEcMwDN6.css.gz +0 -0
  1244. package/dist/interface/ha/404-BywY4Jvr.js +0 -60
  1245. package/dist/interface/ha/404-BywY4Jvr.js.br +0 -0
  1246. package/dist/interface/ha/404-BywY4Jvr.js.gz +0 -0
  1247. package/dist/interface/ha/About-8PFRh-Sf.js +0 -55
  1248. package/dist/interface/ha/About-8PFRh-Sf.js.br +0 -0
  1249. package/dist/interface/ha/About-8PFRh-Sf.js.gz +0 -0
  1250. package/dist/interface/ha/Assistant-C77OjjFX.js +0 -11071
  1251. package/dist/interface/ha/Assistant-C77OjjFX.js.br +0 -0
  1252. package/dist/interface/ha/Assistant-C77OjjFX.js.gz +0 -0
  1253. package/dist/interface/ha/Automation-BJMHiGPH.js +0 -2009
  1254. package/dist/interface/ha/Automation-BJMHiGPH.js.br +0 -0
  1255. package/dist/interface/ha/Automation-BJMHiGPH.js.gz +0 -0
  1256. package/dist/interface/ha/AutomationImport-BHuK66Kc.js +0 -206
  1257. package/dist/interface/ha/AutomationImport-BHuK66Kc.js.br +0 -0
  1258. package/dist/interface/ha/AutomationImport-BHuK66Kc.js.gz +0 -0
  1259. package/dist/interface/ha/AutomationStore-CGod8A1N.js +0 -336
  1260. package/dist/interface/ha/AutomationStore-CGod8A1N.js.br +0 -0
  1261. package/dist/interface/ha/AutomationStore-CGod8A1N.js.gz +0 -0
  1262. package/dist/interface/ha/AutomationStoreDetail-6I678hDH.js +0 -121
  1263. package/dist/interface/ha/AutomationStoreDetail-6I678hDH.js.br +0 -0
  1264. package/dist/interface/ha/AutomationStoreDetail-6I678hDH.js.gz +0 -0
  1265. package/dist/interface/ha/Automations-9ppBO6CN.js +0 -423
  1266. package/dist/interface/ha/Automations-9ppBO6CN.js.br +0 -0
  1267. package/dist/interface/ha/Automations-9ppBO6CN.js.gz +0 -0
  1268. package/dist/interface/ha/Camera-DjAyDYgY.js +0 -740
  1269. package/dist/interface/ha/Camera-DjAyDYgY.js.br +0 -0
  1270. package/dist/interface/ha/Camera-DjAyDYgY.js.gz +0 -0
  1271. package/dist/interface/ha/CameraConsole-BM5rWzey.js +0 -52
  1272. package/dist/interface/ha/CameraConsole-BM5rWzey.js.br +0 -0
  1273. package/dist/interface/ha/CameraConsole-BM5rWzey.js.gz +0 -0
  1274. package/dist/interface/ha/Cameras-CBRTfWbL.js +0 -1934
  1275. package/dist/interface/ha/Cameras-CBRTfWbL.js.br +0 -0
  1276. package/dist/interface/ha/Cameras-CBRTfWbL.js.gz +0 -0
  1277. package/dist/interface/ha/Camview-B5cIFdGC.js +0 -1368
  1278. package/dist/interface/ha/Camview-B5cIFdGC.js.br +0 -0
  1279. package/dist/interface/ha/Camview-B5cIFdGC.js.gz +0 -0
  1280. package/dist/interface/ha/Config-DhSdVsF7.js +0 -354
  1281. package/dist/interface/ha/Config-DhSdVsF7.js.br +0 -0
  1282. package/dist/interface/ha/Config-DhSdVsF7.js.gz +0 -0
  1283. package/dist/interface/ha/ConfigActionAssistant-Bw4vlUC0.js +0 -182
  1284. package/dist/interface/ha/ConfigActionAssistant-Bw4vlUC0.js.br +0 -0
  1285. package/dist/interface/ha/ConfigActionAssistant-Bw4vlUC0.js.gz +0 -0
  1286. package/dist/interface/ha/ConfigActionCameraControl-RrZvG6KM.js +0 -152
  1287. package/dist/interface/ha/ConfigActionCameraControl-RrZvG6KM.js.br +0 -0
  1288. package/dist/interface/ha/ConfigActionCameraControl-RrZvG6KM.js.gz +0 -0
  1289. package/dist/interface/ha/ConfigActionHttp-CEiCUR_V.js +0 -134
  1290. package/dist/interface/ha/ConfigActionHttp-CEiCUR_V.js.br +0 -0
  1291. package/dist/interface/ha/ConfigActionHttp-CEiCUR_V.js.gz +0 -0
  1292. package/dist/interface/ha/ConfigActionImageInput-BO0wSY56.js +0 -170
  1293. package/dist/interface/ha/ConfigActionImageInput-BO0wSY56.js.br +0 -0
  1294. package/dist/interface/ha/ConfigActionImageInput-BO0wSY56.js.gz +0 -0
  1295. package/dist/interface/ha/ConfigActionMqtt-CCtnhVk9.js +0 -78
  1296. package/dist/interface/ha/ConfigActionMqtt-CCtnhVk9.js.br +0 -0
  1297. package/dist/interface/ha/ConfigActionMqtt-CCtnhVk9.js.gz +0 -0
  1298. package/dist/interface/ha/ConfigActionNotification-70DQpmHo.js +0 -198
  1299. package/dist/interface/ha/ConfigActionNotification-70DQpmHo.js.br +0 -0
  1300. package/dist/interface/ha/ConfigActionNotification-70DQpmHo.js.gz +0 -0
  1301. package/dist/interface/ha/ConfigActionNotificationControl-DK-3aXGI.js +0 -111
  1302. package/dist/interface/ha/ConfigActionNotificationControl-DK-3aXGI.js.br +0 -0
  1303. package/dist/interface/ha/ConfigActionNotificationControl-DK-3aXGI.js.gz +0 -0
  1304. package/dist/interface/ha/ConfigActionOutput-B0ib6a16.js +0 -98
  1305. package/dist/interface/ha/ConfigActionOutput-B0ib6a16.js.br +0 -0
  1306. package/dist/interface/ha/ConfigActionOutput-B0ib6a16.js.gz +0 -0
  1307. package/dist/interface/ha/ConfigActionPlugin-QkF9yHeH.js +0 -171
  1308. package/dist/interface/ha/ConfigActionPlugin-QkF9yHeH.js.br +0 -0
  1309. package/dist/interface/ha/ConfigActionPlugin-QkF9yHeH.js.gz +0 -0
  1310. package/dist/interface/ha/ConfigActionSensor-CE1DOevQ.js +0 -138
  1311. package/dist/interface/ha/ConfigActionSensor-CE1DOevQ.js.br +0 -0
  1312. package/dist/interface/ha/ConfigActionSensor-CE1DOevQ.js.gz +0 -0
  1313. package/dist/interface/ha/ConfigActionSnapshot-B7dlBztR.js +0 -45
  1314. package/dist/interface/ha/ConfigActionSnapshot-B7dlBztR.js.br +0 -0
  1315. package/dist/interface/ha/ConfigActionSnapshot-B7dlBztR.js.gz +0 -0
  1316. package/dist/interface/ha/ConfigActionVariable-DErggfIp.js +0 -88
  1317. package/dist/interface/ha/ConfigActionVariable-DErggfIp.js.br +0 -0
  1318. package/dist/interface/ha/ConfigActionVariable-DErggfIp.js.gz +0 -0
  1319. package/dist/interface/ha/ConfigConditionIfElse-BIeovH2W.js +0 -124
  1320. package/dist/interface/ha/ConfigConditionIfElse-BIeovH2W.js.br +0 -0
  1321. package/dist/interface/ha/ConfigConditionIfElse-BIeovH2W.js.gz +0 -0
  1322. package/dist/interface/ha/ConfigConditionSensorState-CJpeowpG.js +0 -190
  1323. package/dist/interface/ha/ConfigConditionSensorState-CJpeowpG.js.br +0 -0
  1324. package/dist/interface/ha/ConfigConditionSensorState-CJpeowpG.js.gz +0 -0
  1325. package/dist/interface/ha/ConfigConditionSwitch-CBbPCmwW.js +0 -128
  1326. package/dist/interface/ha/ConfigConditionSwitch-CBbPCmwW.js.br +0 -0
  1327. package/dist/interface/ha/ConfigConditionSwitch-CBbPCmwW.js.gz +0 -0
  1328. package/dist/interface/ha/ConfigSensorValueInput-DQ34op2F.js +0 -173
  1329. package/dist/interface/ha/ConfigSensorValueInput-DQ34op2F.js.br +0 -0
  1330. package/dist/interface/ha/ConfigSensorValueInput-DQ34op2F.js.gz +0 -0
  1331. package/dist/interface/ha/ConfigTriggerDetection-DRKhDMwq.js +0 -241
  1332. package/dist/interface/ha/ConfigTriggerDetection-DRKhDMwq.js.br +0 -0
  1333. package/dist/interface/ha/ConfigTriggerDetection-DRKhDMwq.js.gz +0 -0
  1334. package/dist/interface/ha/ConfigTriggerGeofence-qIlay2IL.js +0 -4836
  1335. package/dist/interface/ha/ConfigTriggerGeofence-qIlay2IL.js.br +0 -0
  1336. package/dist/interface/ha/ConfigTriggerGeofence-qIlay2IL.js.gz +0 -0
  1337. package/dist/interface/ha/ConfigTriggerMqtt-v4qtTZky.js +0 -134
  1338. package/dist/interface/ha/ConfigTriggerMqtt-v4qtTZky.js.br +0 -0
  1339. package/dist/interface/ha/ConfigTriggerMqtt-v4qtTZky.js.gz +0 -0
  1340. package/dist/interface/ha/ConfigTriggerSensor-D41IjJmD.js +0 -73
  1341. package/dist/interface/ha/ConfigTriggerSensor-D41IjJmD.js.br +0 -0
  1342. package/dist/interface/ha/ConfigTriggerSensor-D41IjJmD.js.gz +0 -0
  1343. package/dist/interface/ha/ConfigTriggerSystem-r8UntVtC.js +0 -192
  1344. package/dist/interface/ha/ConfigTriggerSystem-r8UntVtC.js.br +0 -0
  1345. package/dist/interface/ha/ConfigTriggerSystem-r8UntVtC.js.gz +0 -0
  1346. package/dist/interface/ha/ConfigTriggerWebhook-BdB-5oa1.js +0 -94
  1347. package/dist/interface/ha/ConfigTriggerWebhook-BdB-5oa1.js.br +0 -0
  1348. package/dist/interface/ha/ConfigTriggerWebhook-BdB-5oa1.js.gz +0 -0
  1349. package/dist/interface/ha/Console--T_nKTS8.js +0 -347
  1350. package/dist/interface/ha/Console--T_nKTS8.js.br +0 -0
  1351. package/dist/interface/ha/Console--T_nKTS8.js.gz +0 -0
  1352. package/dist/interface/ha/CuiAutomationRunsDialog-Cf606jHZ.js +0 -129
  1353. package/dist/interface/ha/CuiAutomationRunsDialog-Cf606jHZ.js.br +0 -0
  1354. package/dist/interface/ha/CuiAutomationRunsDialog-Cf606jHZ.js.gz +0 -0
  1355. package/dist/interface/ha/CuiBottomSheet-CJEhDFzJ.js +0 -270
  1356. package/dist/interface/ha/CuiBottomSheet-CJEhDFzJ.js.br +0 -0
  1357. package/dist/interface/ha/CuiBottomSheet-CJEhDFzJ.js.gz +0 -0
  1358. package/dist/interface/ha/CuiCameraRecordings-CrmTwIX1.js +0 -575
  1359. package/dist/interface/ha/CuiCameraRecordings-CrmTwIX1.js.br +0 -0
  1360. package/dist/interface/ha/CuiCameraRecordings-CrmTwIX1.js.gz +0 -0
  1361. package/dist/interface/ha/CuiCameraShares-Cr1pVgZz.js +0 -120
  1362. package/dist/interface/ha/CuiCameraShares-Cr1pVgZz.js.br +0 -0
  1363. package/dist/interface/ha/CuiCameraShares-Cr1pVgZz.js.gz +0 -0
  1364. package/dist/interface/ha/CuiCameraTable-ZX4L7FCs.js +0 -105
  1365. package/dist/interface/ha/CuiCameraTable-ZX4L7FCs.js.br +0 -0
  1366. package/dist/interface/ha/CuiCameraTable-ZX4L7FCs.js.gz +0 -0
  1367. package/dist/interface/ha/CuiChartTable-BW62b9Qq.js +0 -6797
  1368. package/dist/interface/ha/CuiChartTable-BW62b9Qq.js.br +0 -0
  1369. package/dist/interface/ha/CuiChartTable-BW62b9Qq.js.gz +0 -0
  1370. package/dist/interface/ha/CuiConsole-DiwBwttJ.js +0 -234
  1371. package/dist/interface/ha/CuiConsole-DiwBwttJ.js.br +0 -0
  1372. package/dist/interface/ha/CuiConsole-DiwBwttJ.js.gz +0 -0
  1373. package/dist/interface/ha/CuiDataTable-CV5ePNzg.js +0 -8860
  1374. package/dist/interface/ha/CuiDataTable-CV5ePNzg.js.br +0 -0
  1375. package/dist/interface/ha/CuiDataTable-CV5ePNzg.js.gz +0 -0
  1376. package/dist/interface/ha/CuiMoveCodeForm-BWx1Cq-F.js +0 -89
  1377. package/dist/interface/ha/CuiMoveCodeForm-BWx1Cq-F.js.br +0 -0
  1378. package/dist/interface/ha/CuiMoveCodeForm-BWx1Cq-F.js.gz +0 -0
  1379. package/dist/interface/ha/CuiPluginCard-BGDlbiOg.js +0 -778
  1380. package/dist/interface/ha/CuiPluginCard-BGDlbiOg.js.br +0 -0
  1381. package/dist/interface/ha/CuiPluginCard-BGDlbiOg.js.gz +0 -0
  1382. package/dist/interface/ha/CuiPluginOAuthButton-BIHbzHVh.js +0 -74
  1383. package/dist/interface/ha/CuiPluginOAuthButton-BIHbzHVh.js.br +0 -0
  1384. package/dist/interface/ha/CuiPluginOAuthButton-BIHbzHVh.js.gz +0 -0
  1385. package/dist/interface/ha/CuiPluginTrustBadge-zofcBVHD.js +0 -122
  1386. package/dist/interface/ha/CuiPluginTrustBadge-zofcBVHD.js.br +0 -0
  1387. package/dist/interface/ha/CuiPluginTrustBadge-zofcBVHD.js.gz +0 -0
  1388. package/dist/interface/ha/CuiQRCode-Ci5CO-6f.js +0 -86
  1389. package/dist/interface/ha/CuiQRCode-Ci5CO-6f.js.br +0 -0
  1390. package/dist/interface/ha/CuiQRCode-Ci5CO-6f.js.gz +0 -0
  1391. package/dist/interface/ha/CuiSchema-2zcLy55L.js +0 -952
  1392. package/dist/interface/ha/CuiSchema-2zcLy55L.js.br +0 -0
  1393. package/dist/interface/ha/CuiSchema-2zcLy55L.js.gz +0 -0
  1394. package/dist/interface/ha/CuiTopNavbarItem-B0732iHw.js +0 -141
  1395. package/dist/interface/ha/CuiTopNavbarItem-B0732iHw.js.br +0 -0
  1396. package/dist/interface/ha/CuiTopNavbarItem-B0732iHw.js.gz +0 -0
  1397. package/dist/interface/ha/Faces-B4aKBeyA.js +0 -1659
  1398. package/dist/interface/ha/Faces-B4aKBeyA.js.br +0 -0
  1399. package/dist/interface/ha/Faces-B4aKBeyA.js.gz +0 -0
  1400. package/dist/interface/ha/FirstSteps-Ctp9YBZ6.js +0 -254
  1401. package/dist/interface/ha/FirstSteps-Ctp9YBZ6.js.br +0 -0
  1402. package/dist/interface/ha/FirstSteps-Ctp9YBZ6.js.gz +0 -0
  1403. package/dist/interface/ha/Floorplan-CXzOZKsI.js +0 -3707
  1404. package/dist/interface/ha/Floorplan-CXzOZKsI.js.br +0 -0
  1405. package/dist/interface/ha/Floorplan-CXzOZKsI.js.gz +0 -0
  1406. package/dist/interface/ha/Instances-CNsMxi15.js +0 -670
  1407. package/dist/interface/ha/Instances-CNsMxi15.js.br +0 -0
  1408. package/dist/interface/ha/Instances-CNsMxi15.js.gz +0 -0
  1409. package/dist/interface/ha/Logs-EnUf7xcF.js +0 -417
  1410. package/dist/interface/ha/Logs-EnUf7xcF.js.br +0 -0
  1411. package/dist/interface/ha/Logs-EnUf7xcF.js.gz +0 -0
  1412. package/dist/interface/ha/Menu-DuJ0iKHi.js +0 -159
  1413. package/dist/interface/ha/Menu-DuJ0iKHi.js.br +0 -0
  1414. package/dist/interface/ha/Menu-DuJ0iKHi.js.gz +0 -0
  1415. package/dist/interface/ha/Metrics-CSnvk_qW.js +0 -1484
  1416. package/dist/interface/ha/Metrics-CSnvk_qW.js.br +0 -0
  1417. package/dist/interface/ha/Metrics-CSnvk_qW.js.gz +0 -0
  1418. package/dist/interface/ha/OAuthDeviceFlow-JM34RDhw.js +0 -112
  1419. package/dist/interface/ha/OAuthDeviceFlow-JM34RDhw.js.br +0 -0
  1420. package/dist/interface/ha/OAuthDeviceFlow-JM34RDhw.js.gz +0 -0
  1421. package/dist/interface/ha/Plugin-BIkF3weH.js +0 -1746
  1422. package/dist/interface/ha/Plugin-BIkF3weH.js.br +0 -0
  1423. package/dist/interface/ha/Plugin-BIkF3weH.js.gz +0 -0
  1424. package/dist/interface/ha/PluginConsole-DPO3htV-.js +0 -56
  1425. package/dist/interface/ha/PluginConsole-DPO3htV-.js.br +0 -0
  1426. package/dist/interface/ha/PluginConsole-DPO3htV-.js.gz +0 -0
  1427. package/dist/interface/ha/PluginDetail-Cud7M8Qx.js +0 -804
  1428. package/dist/interface/ha/PluginDetail-Cud7M8Qx.js.br +0 -0
  1429. package/dist/interface/ha/PluginDetail-Cud7M8Qx.js.gz +0 -0
  1430. package/dist/interface/ha/PluginSearch-DpbGVKcN.js +0 -462
  1431. package/dist/interface/ha/PluginSearch-DpbGVKcN.js.br +0 -0
  1432. package/dist/interface/ha/PluginSearch-DpbGVKcN.js.gz +0 -0
  1433. package/dist/interface/ha/PluginUpdateProgress-Cm8b1STp.js +0 -34
  1434. package/dist/interface/ha/PluginUpdateProgress-Cm8b1STp.js.br +0 -0
  1435. package/dist/interface/ha/PluginUpdateProgress-Cm8b1STp.js.gz +0 -0
  1436. package/dist/interface/ha/Plugins-BmQpdq53.js +0 -697
  1437. package/dist/interface/ha/Plugins-BmQpdq53.js.br +0 -0
  1438. package/dist/interface/ha/Plugins-BmQpdq53.js.gz +0 -0
  1439. package/dist/interface/ha/Recordings-DiyffWNR.js +0 -1916
  1440. package/dist/interface/ha/Recordings-DiyffWNR.js.br +0 -0
  1441. package/dist/interface/ha/Recordings-DiyffWNR.js.gz +0 -0
  1442. package/dist/interface/ha/SensorEdit-7ooblzTY.js +0 -1466
  1443. package/dist/interface/ha/SensorEdit-7ooblzTY.js.br +0 -0
  1444. package/dist/interface/ha/SensorEdit-7ooblzTY.js.gz +0 -0
  1445. package/dist/interface/ha/SensorHistory-BL5BX7az.js +0 -54
  1446. package/dist/interface/ha/SensorHistory-BL5BX7az.js.br +0 -0
  1447. package/dist/interface/ha/SensorHistory-BL5BX7az.js.gz +0 -0
  1448. package/dist/interface/ha/Sensors-Cx69JhE8.js +0 -1400
  1449. package/dist/interface/ha/Sensors-Cx69JhE8.js.br +0 -0
  1450. package/dist/interface/ha/Sensors-Cx69JhE8.js.gz +0 -0
  1451. package/dist/interface/ha/Settings-BOPHH2KY.js +0 -218
  1452. package/dist/interface/ha/Settings-BOPHH2KY.js.br +0 -0
  1453. package/dist/interface/ha/Settings-BOPHH2KY.js.gz +0 -0
  1454. package/dist/interface/ha/SettingsAccount-CtLqZVdb.js +0 -968
  1455. package/dist/interface/ha/SettingsAccount-CtLqZVdb.js.br +0 -0
  1456. package/dist/interface/ha/SettingsAccount-CtLqZVdb.js.gz +0 -0
  1457. package/dist/interface/ha/SettingsAppearance-uDWU75lw.js +0 -201
  1458. package/dist/interface/ha/SettingsAppearance-uDWU75lw.js.br +0 -0
  1459. package/dist/interface/ha/SettingsAppearance-uDWU75lw.js.gz +0 -0
  1460. package/dist/interface/ha/SettingsAssistant-DvvdE6OG.js +0 -2134
  1461. package/dist/interface/ha/SettingsAssistant-DvvdE6OG.js.br +0 -0
  1462. package/dist/interface/ha/SettingsAssistant-DvvdE6OG.js.gz +0 -0
  1463. package/dist/interface/ha/SettingsBackup-BmdfMnIU.js +0 -1047
  1464. package/dist/interface/ha/SettingsBackup-BmdfMnIU.js.br +0 -0
  1465. package/dist/interface/ha/SettingsBackup-BmdfMnIU.js.gz +0 -0
  1466. package/dist/interface/ha/SettingsList-Da4qc9Bj.js +0 -40
  1467. package/dist/interface/ha/SettingsList-Da4qc9Bj.js.br +0 -0
  1468. package/dist/interface/ha/SettingsList-Da4qc9Bj.js.gz +0 -0
  1469. package/dist/interface/ha/SettingsMqtt-CxvlT_-F.js +0 -512
  1470. package/dist/interface/ha/SettingsMqtt-CxvlT_-F.js.br +0 -0
  1471. package/dist/interface/ha/SettingsMqtt-CxvlT_-F.js.gz +0 -0
  1472. package/dist/interface/ha/SettingsNotifications-e7seCZzS.js +0 -514
  1473. package/dist/interface/ha/SettingsNotifications-e7seCZzS.js.br +0 -0
  1474. package/dist/interface/ha/SettingsNotifications-e7seCZzS.js.gz +0 -0
  1475. package/dist/interface/ha/SettingsRecordings-DsbNW8h3.js +0 -152
  1476. package/dist/interface/ha/SettingsRecordings-DsbNW8h3.js.br +0 -0
  1477. package/dist/interface/ha/SettingsRecordings-DsbNW8h3.js.gz +0 -0
  1478. package/dist/interface/ha/SettingsRemote-BhOZCRFm.js +0 -1523
  1479. package/dist/interface/ha/SettingsRemote-BhOZCRFm.js.br +0 -0
  1480. package/dist/interface/ha/SettingsRemote-BhOZCRFm.js.gz +0 -0
  1481. package/dist/interface/ha/SettingsSystem-BTjdaej-.js +0 -382
  1482. package/dist/interface/ha/SettingsSystem-BTjdaej-.js.br +0 -0
  1483. package/dist/interface/ha/SettingsSystem-BTjdaej-.js.gz +0 -0
  1484. package/dist/interface/ha/SettingsUsers-66Bn-ZuP.js +0 -370
  1485. package/dist/interface/ha/SettingsUsers-66Bn-ZuP.js.br +0 -0
  1486. package/dist/interface/ha/SettingsUsers-66Bn-ZuP.js.gz +0 -0
  1487. package/dist/interface/ha/Terminal-Gb4DqytJ.js +0 -611
  1488. package/dist/interface/ha/Terminal-Gb4DqytJ.js.br +0 -0
  1489. package/dist/interface/ha/Terminal-Gb4DqytJ.js.gz +0 -0
  1490. package/dist/interface/ha/Training-B0_5KTik.js +0 -1829
  1491. package/dist/interface/ha/Training-B0_5KTik.js.br +0 -0
  1492. package/dist/interface/ha/Training-B0_5KTik.js.gz +0 -0
  1493. package/dist/interface/ha/Updates-BChc7gSL.js +0 -357
  1494. package/dist/interface/ha/Updates-BChc7gSL.js.br +0 -0
  1495. package/dist/interface/ha/Updates-BChc7gSL.js.gz +0 -0
  1496. package/dist/interface/ha/VariableInput-CF0npLOt.js +0 -52
  1497. package/dist/interface/ha/VariableInput-CF0npLOt.js.br +0 -2
  1498. package/dist/interface/ha/VariableInput-CF0npLOt.js.gz +0 -0
  1499. package/dist/interface/ha/VersionsHandler-DpFooo74.js +0 -221
  1500. package/dist/interface/ha/VersionsHandler-DpFooo74.js.br +0 -0
  1501. package/dist/interface/ha/VersionsHandler-DpFooo74.js.gz +0 -0
  1502. package/dist/interface/ha/VirtualSensorCreate-cGwMMnUa.js +0 -102
  1503. package/dist/interface/ha/VirtualSensorCreate-cGwMMnUa.js.br +0 -0
  1504. package/dist/interface/ha/VirtualSensorCreate-cGwMMnUa.js.gz +0 -0
  1505. package/dist/interface/ha/Workers-0BvEZt5t.js +0 -1270
  1506. package/dist/interface/ha/Workers-0BvEZt5t.js.br +0 -0
  1507. package/dist/interface/ha/Workers-0BvEZt5t.js.gz +0 -0
  1508. package/dist/interface/ha/api-BCqn9EdE.js +0 -69075
  1509. package/dist/interface/ha/api-BCqn9EdE.js.br +0 -0
  1510. package/dist/interface/ha/api-BCqn9EdE.js.gz +0 -0
  1511. package/dist/interface/ha/api-BysLRFXx.js +0 -29
  1512. package/dist/interface/ha/api-BysLRFXx.js.br +0 -0
  1513. package/dist/interface/ha/api-BysLRFXx.js.gz +0 -0
  1514. package/dist/interface/ha/assistant-A23QDBcR.js +0 -349
  1515. package/dist/interface/ha/assistant-A23QDBcR.js.br +0 -0
  1516. package/dist/interface/ha/assistant-A23QDBcR.js.gz +0 -0
  1517. package/dist/interface/ha/auth-DhFoGtmO.js +0 -271
  1518. package/dist/interface/ha/auth-DhFoGtmO.js.br +0 -0
  1519. package/dist/interface/ha/auth-DhFoGtmO.js.gz +0 -0
  1520. package/dist/interface/ha/automationBlueprint-DBXBbXBW.js +0 -250
  1521. package/dist/interface/ha/automationBlueprint-DBXBbXBW.js.br +0 -0
  1522. package/dist/interface/ha/automationBlueprint-DBXBbXBW.js.gz +0 -0
  1523. package/dist/interface/ha/cards-CHOFxf6N.js +0 -13296
  1524. package/dist/interface/ha/cards-CHOFxf6N.js.br +0 -0
  1525. package/dist/interface/ha/cards-CHOFxf6N.js.gz +0 -0
  1526. package/dist/interface/ha/config-CMdrWwWe.js +0 -116
  1527. package/dist/interface/ha/config-CMdrWwWe.js.br +0 -0
  1528. package/dist/interface/ha/config-CMdrWwWe.js.gz +0 -0
  1529. package/dist/interface/ha/dist-rrvfmgLd.js +0 -4425
  1530. package/dist/interface/ha/dist-rrvfmgLd.js.br +0 -0
  1531. package/dist/interface/ha/dist-rrvfmgLd.js.gz +0 -0
  1532. package/dist/interface/ha/mqtt-mSBMQfvC.js +0 -56
  1533. package/dist/interface/ha/mqtt-mSBMQfvC.js.br +0 -0
  1534. package/dist/interface/ha/mqtt-mSBMQfvC.js.gz +0 -0
  1535. package/dist/interface/ha/notifications-Dm7vixDw.js +0 -159
  1536. package/dist/interface/ha/notifications-Dm7vixDw.js.br +0 -0
  1537. package/dist/interface/ha/notifications-Dm7vixDw.js.gz +0 -0
  1538. package/dist/interface/ha/plugins-kJK_P4Pe.js +0 -592
  1539. package/dist/interface/ha/plugins-kJK_P4Pe.js.br +0 -0
  1540. package/dist/interface/ha/plugins-kJK_P4Pe.js.gz +0 -0
  1541. package/dist/interface/ha/rooms-Bgn_uCWa.js +0 -45
  1542. package/dist/interface/ha/rooms-Bgn_uCWa.js.br +0 -0
  1543. package/dist/interface/ha/rooms-Bgn_uCWa.js.gz +0 -0
  1544. package/dist/interface/ha/server-6F-1q6ok.js +0 -244
  1545. package/dist/interface/ha/server-6F-1q6ok.js.br +0 -0
  1546. package/dist/interface/ha/server-6F-1q6ok.js.gz +0 -0
  1547. package/dist/interface/ha/speeddial-C2PO8aXW.js +0 -941
  1548. package/dist/interface/ha/speeddial-C2PO8aXW.js.br +0 -0
  1549. package/dist/interface/ha/speeddial-C2PO8aXW.js.gz +0 -0
  1550. package/dist/interface/ha/types-DcpmATCY.js +0 -1073
  1551. package/dist/interface/ha/types-DcpmATCY.js.br +0 -0
  1552. package/dist/interface/ha/types-DcpmATCY.js.gz +0 -0
  1553. package/dist/interface/ha/updates-D7suFAEb.js +0 -414
  1554. package/dist/interface/ha/updates-D7suFAEb.js.br +0 -0
  1555. package/dist/interface/ha/updates-D7suFAEb.js.gz +0 -0
  1556. package/dist/interface/ha/useAppVersion-BOHQPGyU.js +0 -22
  1557. package/dist/interface/ha/useAppVersion-BOHQPGyU.js.br +0 -0
  1558. package/dist/interface/ha/useAppVersion-BOHQPGyU.js.gz +0 -0
  1559. package/dist/interface/ha/useKeyboardInset-DqEXi6cU.js +0 -27
  1560. package/dist/interface/ha/useKeyboardInset-DqEXi6cU.js.br +0 -0
  1561. package/dist/interface/ha/useKeyboardInset-DqEXi6cU.js.gz +0 -0
  1562. package/dist/interface/ha/useLogsSocket-BYndIF9P.js +0 -74
  1563. package/dist/interface/ha/useLogsSocket-BYndIF9P.js.br +0 -0
  1564. package/dist/interface/ha/useLogsSocket-BYndIF9P.js.gz +0 -0
  1565. package/dist/interface/ha/useNavLayout-C6BUwrGr.js +0 -125
  1566. package/dist/interface/ha/useNavLayout-C6BUwrGr.js.br +0 -0
  1567. package/dist/interface/ha/useNavLayout-C6BUwrGr.js.gz +0 -0
  1568. package/dist/interface/ha/usePlacementLabel-3Zm9fB6D.js +0 -49
  1569. package/dist/interface/ha/usePlacementLabel-3Zm9fB6D.js.br +0 -0
  1570. package/dist/interface/ha/usePlacementLabel-3Zm9fB6D.js.gz +0 -0
  1571. package/dist/interface/ha/useTabSwipe-geIocKKy.js +0 -45
  1572. package/dist/interface/ha/useTabSwipe-geIocKKy.js.br +0 -0
  1573. package/dist/interface/ha/useTabSwipe-geIocKKy.js.gz +0 -0
  1574. package/dist/interface/ha/useUpdateChannel-Czo47qYZ.js +0 -22
  1575. package/dist/interface/ha/useUpdateChannel-Czo47qYZ.js.br +0 -0
  1576. package/dist/interface/ha/useUpdateChannel-Czo47qYZ.js.gz +0 -0
  1577. package/dist/interface/ha/useUpdatesSocket-JwSk5MXu.js +0 -34
  1578. package/dist/interface/ha/useUpdatesSocket-JwSk5MXu.js.br +0 -0
  1579. package/dist/interface/ha/useUpdatesSocket-JwSk5MXu.js.gz +0 -0
  1580. package/dist/interface/ha/useUserOptions-BVYgtZEC.js +0 -15
  1581. package/dist/interface/ha/useUserOptions-BVYgtZEC.js.br +0 -0
  1582. package/dist/interface/ha/useUserOptions-BVYgtZEC.js.gz +0 -0
@@ -1,4425 +0,0 @@
1
- import { Ct as e, D as t, I as n, St as r, Tt as i, ft as a, kt as o, l as s, ot as c, vt as l, xt as u } from "./runtime-core.esm-bundler-CrWKbcD2.js";
2
- import { B as d, K as f, N as p, t as m } from "./protocol-BB4jdtUC-CGK3LRf3.js";
3
- import { D as h } from "./dist-euRmladF.js";
4
- //#region node_modules/@camera.ui/transport/dist/closeCodes-CltSRjdJ.js
5
- function g(e) {
6
- if (e === "insufficient_role" || e === "user_not_found") return "forbidden";
7
- if (e === "invalid_token" || e === "unauthenticated" || e.startsWith("credentials_")) return "auth-expired";
8
- }
9
- function _(e) {
10
- let t = typeof e == "string" ? void 0 : e, n = t?.wsCloseCode ?? t?.code;
11
- if (n === 4401) return "auth-expired";
12
- if (n === 4403 || n === 4400) return "forbidden";
13
- let r = typeof t?.data == "object" && t.data !== null ? t.data.code : void 0, i = typeof r == "string" ? g(r) : void 0;
14
- if (i) return i;
15
- let a = (typeof e == "string" ? e : t?.reason ?? t?.message ?? "").toLowerCase();
16
- return a ? a.includes("forbidden") || a.includes("403") ? "forbidden" : a.includes("unauthorized") || a.includes("unauthenticated") || a.includes("401") ? "auth-expired" : "other" : "other";
17
- }
18
- function v(e) {
19
- if (typeof e != "object" || !e) return !1;
20
- let { wsCloseCode: t, code: n, data: r } = e;
21
- return _({
22
- wsCloseCode: t,
23
- code: n,
24
- data: r
25
- }) === "forbidden";
26
- }
27
- //#endregion
28
- //#region node_modules/@camera.ui/rpc/dist/errors.js
29
- var y = Symbol("rpc.localNoResponders"), b = class e extends Error {
30
- code;
31
- data;
32
- constructor(e, t, n) {
33
- super(t), this.name = "RPCException", this.code = e, this.data = n;
34
- }
35
- static fromJSON(t) {
36
- return new e(t.code, t.message, t.data);
37
- }
38
- toJSON() {
39
- return {
40
- code: this.code,
41
- message: this.message,
42
- data: this.data
43
- };
44
- }
45
- };
46
- function x(e, t, n) {
47
- return new b(e, t, n);
48
- }
49
- function S(e, t) {
50
- return Object.defineProperty(e, y, { value: t }), e;
51
- }
52
- function C(e) {
53
- if (typeof e != "object" || !e) return;
54
- let t = e[y];
55
- return typeof t == "string" ? t : void 0;
56
- }
57
- function w(e) {
58
- if (!e || typeof e != "object") return !1;
59
- if (e.name === "NoRespondersError") return !0;
60
- let t = e.message;
61
- return typeof t == "string" && t.includes("no responders");
62
- }
63
- //#endregion
64
- //#region node_modules/@camera.ui/browser/dist/index.js
65
- function T(e = {}) {
66
- let { releaseDelay: t = 1e3, onRelease: n } = e, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
67
- function a(e) {
68
- let t = i.get(e);
69
- t && (clearTimeout(t), i.delete(e));
70
- }
71
- function o(e) {
72
- let t = r.get(e);
73
- if (t) {
74
- try {
75
- n?.(e, t.value);
76
- } catch {}
77
- r.delete(e);
78
- }
79
- i.delete(e);
80
- }
81
- function s(e, t) {
82
- a(e);
83
- let n = r.get(e);
84
- if (n) return n.refCount++, n.value;
85
- let i = t();
86
- return r.set(e, {
87
- value: i,
88
- refCount: 1
89
- }), i;
90
- }
91
- function c(e, n) {
92
- let a = r.get(e);
93
- if (!(!a || a.refCount <= 0) && (n === void 0 || a.value === n) && (a.refCount--, a.refCount === 0)) {
94
- let n = setTimeout(() => {
95
- let t = r.get(e);
96
- t && t.refCount <= 0 ? o(e) : i.delete(e);
97
- }, t);
98
- i.set(e, n);
99
- }
100
- }
101
- function l(e) {
102
- return r.get(e)?.value;
103
- }
104
- function u(e) {
105
- return r.has(e);
106
- }
107
- function d(e) {
108
- a(e), o(e);
109
- }
110
- function f() {
111
- for (let e of i.keys()) a(e);
112
- for (let e of r.keys()) o(e);
113
- }
114
- function p(e) {
115
- return r.get(e)?.refCount ?? 0;
116
- }
117
- function m(e) {
118
- for (let [t, n] of r) e(n.value, t);
119
- }
120
- return {
121
- acquire: s,
122
- release: c,
123
- get: l,
124
- has: u,
125
- forceRelease: d,
126
- clear: f,
127
- getRefCount: p,
128
- forEachValue: m
129
- };
130
- }
131
- var E = 1e3, D = 3e4;
132
- function O() {
133
- let e, t = E;
134
- function n(n) {
135
- e || (e = setTimeout(() => {
136
- e = void 0, n();
137
- }, t), t = Math.min(t * 2, D));
138
- }
139
- function r() {
140
- clearTimeout(e), e = void 0;
141
- }
142
- function i() {
143
- t = E;
144
- }
145
- return {
146
- schedule: n,
147
- cancel: r,
148
- reset: i
149
- };
150
- }
151
- function k() {
152
- let e = t(Zn);
153
- if (!e) throw Error("[camera.ui] useCameraUi() called without CameraUiPlugin installed. Make sure to call app.use(createCameraUiPlugin({ ... })) before using this composable.");
154
- return e;
155
- }
156
- function A(e) {
157
- return e.replace(/ /g, "_").toLowerCase();
158
- }
159
- function j(e, t) {
160
- return `cui_${A(e)}_${A(t)}`;
161
- }
162
- var M = class {
163
- static coreManagerNamespaces() {
164
- return {
165
- coreManagerSubject: "coreManager.subscriber",
166
- coreManagerRpc: "coreManager.rpc"
167
- };
168
- }
169
- static deviceManagerNamespaces() {
170
- return {
171
- deviceManagerSubject: "deviceManager.subscriber",
172
- deviceManagerRpc: "deviceManager.rpc"
173
- };
174
- }
175
- static sensorDiscoveryNamespaces() {
176
- return { sensorDiscoverySubject: "sensorDiscovery.subscriber" };
177
- }
178
- static discoveryManagerNamespaces() {
179
- return {
180
- discoveryManagerSubject: "discoveryManager.subscriber",
181
- discoveryManagerRpc: "discoveryManager.rpc"
182
- };
183
- }
184
- static pluginNamespaces(e) {
185
- return {
186
- pluginDeviceManagerSubject: `plugin.${e}.deviceManager.subscriber`,
187
- pluginChildRpc: `plugin.${e}.child.rpc`,
188
- pluginChild: `plugin.${e}.child`,
189
- pluginStorageRpc: `plugin.${e}.storage.rpc`,
190
- pluginConfigStoreRpc: `plugin.${e}.configstore.rpc`
191
- };
192
- }
193
- static pluginFileServeRpc(e) {
194
- return `plugin.${e}.fileserve.rpc`;
195
- }
196
- static cameraNamespaces(e) {
197
- return {
198
- cameraSubject: `camera.${e}.subscriber`,
199
- cameraStateSubject: `camera.${e}.state`,
200
- cameraControllerRpc: `camera.${e}.controller.rpc`
201
- };
202
- }
203
- static frameWorkerNamespaces(e) {
204
- return {
205
- frameWorkerChildRpc: `camera.${e}.frameWorker.child.rpc`,
206
- frameWorkerChild: `camera.${e}.frameWorker.child`
207
- };
208
- }
209
- static pluginCameraNamespaces(e, t) {
210
- return {
211
- cameraInterfacesRpc: `plugin.${e}.camera.${t}.cameraInterfaces.rpc`,
212
- cameraStorageRpc: `plugin.${e}.camera.${t}.cameraStorage.rpc`,
213
- cameraImplRpc: `plugin.${e}.camera.${t}.impl.rpc`
214
- };
215
- }
216
- static pluginSensorNamespaces(e, t) {
217
- return { sensorStorageRpc: `plugin.${e}.sensor.${t}.storage.rpc` };
218
- }
219
- static sensorRegistryNamespaces() {
220
- return {
221
- sensorsSubject: "sensors.subject",
222
- sensorsRpc: "sensors.rpc"
223
- };
224
- }
225
- static sensorCameraViewNamespaces(e) {
226
- return { sensorWriteSubject: `camera.${e}.sensors.writes` };
227
- }
228
- static sensorEventNamespaces(e) {
229
- return {
230
- sensorSubject: `sensor.${e}.subject`,
231
- sensorStateSubject: `sensor.${e}.state`
232
- };
233
- }
234
- static sensorProviderNamespaces(e, t) {
235
- return { sensorRpc: `plugin.${e}.sensor.${t}.rpc` };
236
- }
237
- static frameWorkerDetectionNamespaces(e) {
238
- return { detectionRpc: `camera.${e}.frameWorker.detection.rpc` };
239
- }
240
- static detectionEventNamespaces(e) {
241
- return { detectionEventSubject: `camera.${e}.events.subject` };
242
- }
243
- static terminalManagerNamespaces() {
244
- return {
245
- terminalManagerSubject: "terminalManager.subscriber",
246
- terminalManagerRpc: "terminalManager.rpc"
247
- };
248
- }
249
- static downloadManagerNamespaces() {
250
- return { downloadManagerRpc: "downloadManager.rpc" };
251
- }
252
- static notificationManagerNamespaces() {
253
- return { notificationsPublishSubject: "notifications.publish" };
254
- }
255
- static workerAgentRpc(e) {
256
- return `worker.${e}.rpc`;
257
- }
258
- static workerManagerRpc(e) {
259
- return `workers.${e}.manager.rpc`;
260
- }
261
- static sharedWorkerManagerRpc() {
262
- return "workers.manager.rpc";
263
- }
264
- static workerSync(e) {
265
- return `worker.${e}.sync`;
266
- }
267
- static workerLinkSubject(e) {
268
- return `worker.${e}.link`;
269
- }
270
- static workerDisconnect(e) {
271
- return `workers.${e}.disconnect`;
272
- }
273
- static sharedWorkerDisconnect() {
274
- return "workers.disconnect";
275
- }
276
- static workerLogs(e) {
277
- return `workers.${e}.logs`;
278
- }
279
- static sharedWorkerLogs() {
280
- return "workers.logs";
281
- }
282
- }, ee = 3, te = 3e4, N = 3e4, P = /* @__PURE__ */ new Set(["Not connected", "rpc: not connected"]), ne = /* @__PURE__ */ new WeakMap();
283
- function re(e) {
284
- ne.set(e, Date.now());
285
- }
286
- function F(e) {
287
- return Date.now() - (ne.get(e) ?? -Infinity) < N;
288
- }
289
- function ie(e) {
290
- return e instanceof Error && e.code === void 0 && e.name === "NoResponders";
291
- }
292
- async function I(e, t, n = {}) {
293
- let r = n.maxRetries ?? ee, i = n.awaitConnect ?? !0, a = n.connectTimeoutMs ?? te, o = n.retryDelayMs ?? L, s = n.shouldRetry, c = n.retryOnTimeout ?? !1, l = n.signal, u = 0, d = z(e, () => u++, { flush: "sync" }), f;
294
- try {
295
- for (let n = 0; n <= r; n++) {
296
- if (l?.aborted) throw V();
297
- let d = e.value;
298
- if (!d) {
299
- if (!i) throw Error("rpc: not connected");
300
- d = await B(e, a, l);
301
- }
302
- let p = u;
303
- try {
304
- return await t(d);
305
- } catch (t) {
306
- if (f = t, n >= r || !(s ? s(t, n) : R(t, d, e, u !== p, c))) throw t;
307
- await ae(o(n), l);
308
- }
309
- }
310
- } finally {
311
- d();
312
- }
313
- throw f ?? /* @__PURE__ */ Error("rpc: max retries exceeded");
314
- }
315
- function L(e) {
316
- return Math.min(100 * 2 ** e, 1e3);
317
- }
318
- function R(e, t, n, r, i) {
319
- if (n.value !== t || t.isConnected === !1 && t.isClosed === !1) return !0;
320
- if (!(e instanceof Error)) return !1;
321
- let a = e.code;
322
- return a === void 0 && P.has(e.message) || ie(e) && F(n) ? !0 : a === "TIMEOUT" && (i || r);
323
- }
324
- function z(e, t, n) {
325
- let r = a(!0);
326
- return r.run(() => c(e, t, n)), () => r.stop();
327
- }
328
- async function B(e, t, n) {
329
- return e.value ? e.value : new Promise((r, i) => {
330
- let a = setTimeout(() => {
331
- s(), n?.removeEventListener("abort", o), i(/* @__PURE__ */ Error("rpc: connect timeout"));
332
- }, t), o = () => {
333
- clearTimeout(a), s(), i(V());
334
- };
335
- n?.addEventListener("abort", o, { once: !0 });
336
- let s = z(e, (e) => {
337
- e && (clearTimeout(a), s(), n?.removeEventListener("abort", o), r(e));
338
- });
339
- });
340
- }
341
- async function ae(e, t) {
342
- return new Promise((n, r) => {
343
- if (t?.aborted) {
344
- r(V());
345
- return;
346
- }
347
- let i = setTimeout(() => {
348
- t?.removeEventListener("abort", a), n();
349
- }, e), a = () => {
350
- clearTimeout(i), r(V());
351
- };
352
- t?.addEventListener("abort", a, { once: !0 });
353
- });
354
- }
355
- function V() {
356
- if (typeof DOMException < "u") return new DOMException("Aborted", "AbortError");
357
- let e = /* @__PURE__ */ Error("Aborted");
358
- return e.name = "AbortError", e;
359
- }
360
- var H = 2e3, oe = 6e4, se = /* @__PURE__ */ new WeakMap(), ce = /* @__PURE__ */ new WeakMap();
361
- function le(e) {
362
- let t = e?.value;
363
- if (!e || !t) return;
364
- let n = se.get(e);
365
- if (!n || n.client !== t) return t;
366
- performance.now() - n.since >= oe && !ce.has(t) && me(e, n);
367
- }
368
- function ue(e, t) {
369
- if (e.value !== t || se.has(e)) return;
370
- let n = z(e, () => he(e), { flush: "sync" });
371
- se.set(e, {
372
- client: t,
373
- since: performance.now(),
374
- stop: n
375
- });
376
- }
377
- function de(e, t) {
378
- e.value !== t || se.has(e) || fe(t).then((n) => {
379
- n || ue(e, t);
380
- });
381
- }
382
- function fe(e) {
383
- let t = ce.get(e);
384
- return t || (t = pe(e), ce.set(e, t), t.then(() => ce.delete(e))), t;
385
- }
386
- async function pe(e) {
387
- try {
388
- return await e.flush(H), !0;
389
- } catch {
390
- return !1;
391
- }
392
- }
393
- function me(e, t) {
394
- fe(t.client).then((n) => {
395
- se.get(e) === t && (n ? he(e) : t.since = performance.now());
396
- });
397
- }
398
- function he(e) {
399
- se.get(e)?.stop(), se.delete(e);
400
- }
401
- var ge = 5e3, _e = 6e4, U = /* @__PURE__ */ new Map(), ve = /* @__PURE__ */ new Map(), ye = /* @__PURE__ */ new Map(), be = /* @__PURE__ */ new Map(), xe = /* @__PURE__ */ new Map(), W = /* @__PURE__ */ new Map(), G = /* @__PURE__ */ new Map();
402
- function Se(e) {
403
- W.get(e)?.forEach((e) => e());
404
- }
405
- function Ce(e, t, n = !1) {
406
- let r = G.get(t);
407
- if (r) return r;
408
- let i = (async () => {
409
- let r = await qe(e, t);
410
- try {
411
- return r ? await r.fetchSnapshot(void 0, n ? !0 : void 0) ?? void 0 : void 0;
412
- } finally {
413
- r && Ye(r);
414
- }
415
- })().finally(() => G.delete(t));
416
- return G.set(t, i), i;
417
- }
418
- var we = /* @__PURE__ */ new WeakSet();
419
- function K(e, t) {
420
- we.has(e) || (we.add(e), e.on("reconnected", () => {
421
- setTimeout(() => {
422
- let e = 0;
423
- for (let n of W.keys()) {
424
- if ((W.get(n)?.size ?? 0) === 0) continue;
425
- let r = n;
426
- setTimeout(() => {
427
- (W.get(r)?.size ?? 0) !== 0 && Ce(t, r).catch(() => void 0);
428
- }, e), e += 150;
429
- }
430
- }, 0);
431
- }));
432
- }
433
- function Te(e) {
434
- setTimeout(() => URL.revokeObjectURL(e), ge);
435
- }
436
- function Ee(e, t, n) {
437
- let r = be.get(e);
438
- if (n && r) {
439
- let e = r.fetchedAt - n.fetchedAt;
440
- return e > 0 && e <= _e;
441
- }
442
- return t !== void 0 && t < (ye.get(e) ?? -Infinity);
443
- }
444
- function De(e, t, n, r, i) {
445
- if (!Ee(e, r, i)) {
446
- if (ye.set(e, r ?? Date.now()), i ? be.set(e, i) : be.delete(e), U.get(e) !== t) {
447
- let n = xe.get(e);
448
- n && (Te(n), xe.delete(e)), U.set(e, t);
449
- }
450
- n !== void 0 && ve.set(e, n), Se(e);
451
- }
452
- }
453
- function Oe(e) {
454
- return U.get(e);
455
- }
456
- function ke(e, t) {
457
- let n = be.get(e);
458
- return n?.sourceId === t ? n.fetchedAt : void 0;
459
- }
460
- function Ae(e, t) {
461
- return W.has(e) || W.set(e, /* @__PURE__ */ new Set()), W.get(e).add(t), () => {
462
- W.get(e)?.delete(t);
463
- };
464
- }
465
- function je(e) {
466
- let t = U.get(e);
467
- if (!t) return;
468
- let n = xe.get(e);
469
- return n || (n = URL.createObjectURL(new Blob([t], { type: "image/jpeg" })), xe.set(e, n)), n;
470
- }
471
- function Me() {
472
- for (let e of xe.values()) URL.revokeObjectURL(e);
473
- xe.clear(), U.clear(), ve.clear(), ye.clear(), be.clear();
474
- }
475
- function Ne(e) {
476
- let t = k(), { isConnected: n } = t, a = ze(), l = i(), u = r(!1), d = r(!1);
477
- K(t, a);
478
- let f = s(() => {
479
- if (!l.value) return;
480
- let t = o(e);
481
- return je(typeof t == "string" ? t : t._id);
482
- }), m = s(() => {
483
- if (!l.value) return;
484
- let t = o(e), n = typeof t == "string" ? t : t._id;
485
- return ve.get(n);
486
- });
487
- function h(e) {
488
- W.has(e) || W.set(e, /* @__PURE__ */ new Set());
489
- let t = () => {
490
- l.value = U.get(e);
491
- };
492
- return W.get(e).add(t), () => {
493
- W.get(e)?.delete(t);
494
- };
495
- }
496
- let g, _, v, y, b = O(), x = !1;
497
- function S() {
498
- let t = o(e);
499
- return typeof t == "string" ? t : t._id;
500
- }
501
- async function C(e) {
502
- if (_ !== e && y !== e) {
503
- y = e;
504
- try {
505
- let t = await qe(a, e);
506
- if (!t) return;
507
- if (x || S() !== e || _ === e) {
508
- Ye(t);
509
- return;
510
- }
511
- E(), _ = e, v = t, T();
512
- } catch {
513
- S() === e && w(e);
514
- } finally {
515
- y = void 0;
516
- }
517
- }
518
- }
519
- function w(t) {
520
- x || b.schedule(() => {
521
- n.value && S() === t && !j(o(e)) && C(t).then(() => {
522
- if (_ === t) return A(t);
523
- });
524
- });
525
- }
526
- function T() {
527
- b.cancel(), b.reset();
528
- }
529
- function E() {
530
- _ && (v && Ye(v), _ = void 0, v = void 0);
531
- }
532
- function D(e) {
533
- let t = U.get(e);
534
- return t ? (l.value = t, d.value = !0, !0) : !1;
535
- }
536
- async function A(e, t = !1) {
537
- if (n.value && e && (t || !D(e))) {
538
- u.value = !0;
539
- try {
540
- let t = await Ce(a, e);
541
- t && (l.value = U.get(e) ?? t);
542
- } catch {} finally {
543
- u.value = !1, d.value = !0;
544
- }
545
- }
546
- }
547
- function j(e) {
548
- return typeof e == "object" && e?.disabled === !0;
549
- }
550
- async function M() {
551
- let t = o(e), r = typeof t == "string" ? t : t._id;
552
- if (r && n.value && !j(t)) {
553
- u.value = !0;
554
- try {
555
- let e = await Ce(a, r, !0);
556
- e && (l.value = U.get(r) ?? e);
557
- } catch {} finally {
558
- u.value = !1, d.value = !0;
559
- }
560
- }
561
- }
562
- return c([
563
- n,
564
- () => o(e),
565
- () => j(o(e))
566
- ], async ([e, t, n]) => {
567
- T(), g?.(), g = void 0;
568
- let r = typeof t == "string" ? t : t._id;
569
- e && r && !n ? (typeof t == "object" && Ue(t.name, r), g = h(r), D(r), await C(r), await A(r)) : r ? (E(), l.value = U.get(r), d.value = !0) : (E(), l.value = void 0);
570
- }, { immediate: !0 }), p(() => {
571
- x = !0, T(), g?.(), E();
572
- }), {
573
- snapshot: l,
574
- snapshotSrc: f,
575
- snapshotTimestamp: m,
576
- isLoading: s(() => u.value || !d.value),
577
- refresh: M
578
- };
579
- }
580
- var Pe = "not-modified", Fe = /* @__PURE__ */ new WeakMap(), q = /* @__PURE__ */ new WeakMap();
581
- async function Ie(e, t) {
582
- let n = M.cameraNamespaces(t._id), a = "rpc" in e && "value" in e.rpc ? e : void 0, o = a ? a.rpc : i(e), c = a?.bulkRpc, l, u, d = !1, f, p = !1, m = O(), g = 0, _ = 0, v, y, b = !1, x = i(t), S = r(!1), C = r(!1), w = i(Oe(t._id)), T = r(!1), E = r({}), D = Ae(t._id, () => {
583
- w.value = Oe(t._id);
584
- }), k = s(() => x.value.name), A = s(() => x.value.room), j = s(() => x.value.nativeId), ee = s(() => x.value.disabled), te = s(() => x.value.detectionSettings?.snooze ?? !1), N = s(() => x.value.isCloud), P = s(() => JSON.parse(JSON.stringify(x.value.sources)).map((e) => ({
585
- ...e,
586
- snapshot: async (t) => he(e._id, t),
587
- probeStream: async (t, n = !1) => ye(e._id, t, n)
588
- }))), ne = s(() => P.value.find((e) => e.role === "high-resolution")), re = s(() => P.value.find((e) => e.role === "mid-resolution")), L = s(() => P.value.find((e) => e.role === "low-resolution")), R = s(() => ne.value ?? re.value ?? L.value), z = s(() => P.value.find((e) => e.role === "snapshot") ?? P.value.find((e) => e.useForSnapshot)), B = s(() => {
589
- let e = /* @__PURE__ */ new Set();
590
- for (let t of Object.values(E.value)) e.add(t.type);
591
- return e;
592
- }), ae = s(() => Array.from(B.value)), V = s(() => B.value.has(h.Light)), H = s(() => B.value.has(h.Siren)), oe = s(() => B.value.has(h.Doorbell)), se = s(() => B.value.has(h.Battery)), ce = s(() => B.value.has(h.Audio)), de = s(() => B.value.has(h.Motion)), pe = s(() => B.value.has(h.Object)), me = s(() => B.value.has(h.PTZ));
593
- async function he(e, n) {
594
- T.value = !0;
595
- let r = Date.now();
596
- try {
597
- let i = await ge(e, n);
598
- if (i === Pe) return Oe(t._id);
599
- if (i && i.data.byteLength > 0) {
600
- let n = i.stamp === void 0 ? void 0 : {
601
- sourceId: e,
602
- fetchedAt: i.stamp
603
- };
604
- return De(t._id, i.data, i.fetchedAt, i.fetchedAt ?? r, n), i.data;
605
- }
606
- return;
607
- } finally {
608
- T.value = !1;
609
- }
610
- }
611
- async function ge(e, t) {
612
- let n, r = !1;
613
- try {
614
- return await I(o, async (i) => {
615
- n = _e(i, r);
616
- try {
617
- return await U(n, e, t);
618
- } catch (a) {
619
- if (!c || n === i || a.code !== "TIMEOUT" || await fe(n)) throw a;
620
- return r = !0, ue(c, n), n = i, U(i, e, t);
621
- }
622
- }, { retryOnTimeout: !t });
623
- } catch (i) {
624
- if (i.code !== "TIMEOUT" || !n || Fe.has(n)) throw i;
625
- return I(o, (n) => ve(_e(n, r), e, t));
626
- }
627
- }
628
- function _e(e, t = !1) {
629
- return t ? e : le(c) ?? e;
630
- }
631
- async function U(e, r, i) {
632
- let a = Fe.get(e);
633
- if (a === !1) return ve(e, r, i);
634
- try {
635
- let a = e.createProxy(n.cameraControllerRpc), o = i ? void 0 : ke(t._id, r), s = o === void 0 ? await a.snapshotWithMeta(r, i) : await a.snapshotWithMeta(r, i, o);
636
- return Fe.set(e, !0), s?.notModified ? Pe : s?.data ? {
637
- data: s.data,
638
- fetchedAt: Date.now() - (s.ageMs ?? 0),
639
- stamp: s.fetchedAt
640
- } : void 0;
641
- } catch (t) {
642
- if (t.code === "METHOD_NOT_FOUND") return Fe.set(e, !1), ve(e, r, i);
643
- if (a || !ie(t)) throw t;
644
- }
645
- let s = await ve(e, r, i);
646
- return F(o) || Fe.set(e, !1), s;
647
- }
648
- async function ve(e, t, r) {
649
- let i = await e.createProxy(n.cameraControllerRpc).snapshot(t, r);
650
- return i ? {
651
- data: i,
652
- fetchedAt: r ? Date.now() : void 0
653
- } : void 0;
654
- }
655
- async function ye(e, t, r = !1) {
656
- return I(o, (i) => i.createProxy(n.cameraControllerRpc).probeStream(e, t, r), { retryOnTimeout: !r });
657
- }
658
- async function be(e) {
659
- return I(o, (t) => t.createProxy(n.cameraControllerRpc).streamUrl(e));
660
- }
661
- function xe() {
662
- return y = void 0, G();
663
- }
664
- function W() {
665
- if (y) return y;
666
- if (!v) return G();
667
- let e = g;
668
- return y = v.catch(() => {}).then(() => g === e ? (y = void 0, G()) : v), y;
669
- }
670
- function G() {
671
- let e = Se(++g).finally(() => {
672
- v === e && (v = void 0);
673
- });
674
- return v = e, e;
675
- }
676
- async function Se(e) {
677
- let t = await I(o, (e) => e.createProxy(n.cameraControllerRpc).refreshStates());
678
- e < _ || (_ = e, x.value = t.camera, S.value = t.cameraState, C.value = t.frameWorkerState, E.value = t.sensorStates);
679
- }
680
- function Ce() {
681
- b || d || (b = !0, queueMicrotask(() => {
682
- b = !1, d || W().catch(() => {});
683
- }));
684
- }
685
- function we(e) {
686
- if (E.value[e] === void 0) return;
687
- let t = { ...E.value };
688
- delete t[e], E.value = t;
689
- }
690
- async function K(e) {
691
- switch (e.type) {
692
- case "removed":
693
- await q();
694
- break;
695
- case "updated":
696
- x.value = e.data;
697
- break;
698
- case "cameraState":
699
- S.value = e.data;
700
- break;
701
- case "frameWorkerState":
702
- C.value = e.data;
703
- break;
704
- case "snapshot:updated": {
705
- let { sourceId: n, snapshot: r, fetchedAt: i } = e.data;
706
- De(t._id, r, i, void 0, n && i !== void 0 ? {
707
- sourceId: n,
708
- fetchedAt: i
709
- } : void 0);
710
- break;
711
- }
712
- }
713
- }
714
- function Te(e) {
715
- if (e.type === "sensor:added") {
716
- let n = e.data;
717
- if (!n.sensor.assignedCameraIds.includes(t._id) || !n.sensor.connected) return;
718
- E.value = {
719
- ...E.value,
720
- [n.sensor.id]: n.state
721
- };
722
- } else if (e.type === "sensor:deleted") we(e.data.sensorId);
723
- else if (e.type === "sensor:connected:changed") {
724
- let n = e.data;
725
- if (n.connected) {
726
- if (n.assignedCameraIds && !n.assignedCameraIds.includes(t._id)) return;
727
- Ce();
728
- } else we(n.sensorId);
729
- } else if (e.type === "sensor:assignment:changed") {
730
- let n = e.data;
731
- if (n.cameraId !== t._id) return;
732
- n.assigned ? Ce() : we(n.sensorId);
733
- }
734
- }
735
- async function Ee() {
736
- l?.(), l = void 0, u?.(), u = void 0;
737
- let e = await I(o, (e) => e.subscribe(n.cameraSubject, K));
738
- if (d) {
739
- e();
740
- return;
741
- }
742
- l = e;
743
- let t = await I(o, (e) => Le(e, Te));
744
- d ? t() : (u = t, await xe());
745
- }
746
- function je() {
747
- return d ? Promise.resolve() : (m.cancel(), f ? (p = !0, f) : (f = Me(), f));
748
- }
749
- async function Me() {
750
- try {
751
- do
752
- p = !1, await Ee();
753
- while (p && !d);
754
- m.reset();
755
- } catch (e) {
756
- throw Ne(), e;
757
- } finally {
758
- f = void 0;
759
- }
760
- }
761
- function Ne() {
762
- d || m.schedule(() => {
763
- je().catch(() => {});
764
- });
765
- }
766
- async function q() {
767
- d = !0, m.cancel(), l?.(), l = void 0, u?.(), u = void 0, D();
768
- }
769
- async function Ie(e, t) {
770
- let n = P.value.find((e) => e.useForSnapshot), r = P.value.find((e) => e.role === "snapshot"), i = e ?? r?._id ?? n?._id ?? L.value?._id ?? re.value?._id ?? ne.value?._id ?? R.value?._id;
771
- return i ? he(i, t) : Promise.resolve(void 0);
772
- }
773
- async function Re(e, t, n = !1) {
774
- let r = e ?? R.value?._id;
775
- return r ? ye(r, t, n) : Promise.resolve(void 0);
776
- }
777
- try {
778
- await Ee();
779
- } catch (e) {
780
- throw await q(), e;
781
- }
782
- return {
783
- id: t._id,
784
- name: k,
785
- room: A,
786
- nativeId: j,
787
- disabled: ee,
788
- snooze: te,
789
- isCloud: N,
790
- connected: S,
791
- frameWorkerConnected: C,
792
- sources: P,
793
- streamSource: R,
794
- snapshotSource: z,
795
- highResolutionSource: ne,
796
- midResolutionSource: re,
797
- lowResolutionSource: L,
798
- capabilities: ae,
799
- hasLight: V,
800
- hasSiren: H,
801
- hasDoorbell: oe,
802
- hasBattery: se,
803
- hasAudioSensor: ce,
804
- hasMotionSensor: de,
805
- hasObjectSensor: pe,
806
- hasPtz: me,
807
- camera: x,
808
- snapshot: w,
809
- snapshotLoading: T,
810
- fetchSnapshot: Ie,
811
- probeStream: Re,
812
- streamUrl: be,
813
- refreshStates: xe,
814
- reconnect: je,
815
- close: q
816
- };
817
- }
818
- async function Le(e, t) {
819
- let n = q.get(e);
820
- if (!n) {
821
- let t = /* @__PURE__ */ new Set(), r = M.sensorRegistryNamespaces().sensorsSubject;
822
- n = {
823
- handlers: t,
824
- subscribed: e.subscribe(r, (e) => {
825
- for (let n of t) try {
826
- n(e);
827
- } catch {}
828
- })
829
- }, q.set(e, n);
830
- }
831
- let r = n;
832
- r.handlers.add(t);
833
- try {
834
- await r.subscribed;
835
- } catch (n) {
836
- throw r.handlers.delete(t), q.get(e) === r && q.delete(e), n;
837
- }
838
- return () => Re(e, r, t);
839
- }
840
- function Re(e, t, n) {
841
- !t.handlers.delete(n) || t.handlers.size > 0 || (q.get(e) === t && q.delete(e), t.subscribed.then((e) => e()).catch(() => {}));
842
- }
843
- function ze() {
844
- let e = k(), t = M.deviceManagerNamespaces();
845
- async function n(n) {
846
- let r = await I(e.rpc, (e) => e.createProxy(t.deviceManagerRpc).getCamera(n, "@camera.ui/browser"));
847
- if (r) return Ie(e, r);
848
- }
849
- return { getCamera: n };
850
- }
851
- var J = T({
852
- releaseDelay: 1e3,
853
- onRelease: (e, t) => t.close()
854
- }), Be = /* @__PURE__ */ new Map(), Ve = /* @__PURE__ */ new Map();
855
- function He() {
856
- J.clear(), Be.clear(), Ve.clear();
857
- }
858
- function Ue(e, t) {
859
- e && t && e !== t && Ve.set(e, t);
860
- }
861
- function We(e) {
862
- if (J.has(e)) return e;
863
- let t;
864
- return J.forEachValue((n, r) => {
865
- t === void 0 && n.name.value === e && (t = r);
866
- }), t;
867
- }
868
- function Ge(e) {
869
- let t = Be.get(e);
870
- if (t) return t;
871
- for (let [t, n] of Ve) {
872
- let r = n === e ? Be.get(t) : t === e ? Be.get(n) : void 0;
873
- if (r) return r;
874
- }
875
- }
876
- function Ke(e) {
877
- let t = We(e);
878
- if (t !== void 0) return J.acquire(t, () => {
879
- throw Error("Should not create - already cached");
880
- });
881
- }
882
- async function qe(e, t) {
883
- let n = Ke(t);
884
- if (n) return n;
885
- let r = Ge(t);
886
- if (r) {
887
- let e = await r, n = Ke(t);
888
- if (n || !e) return n;
889
- }
890
- let i = e.getCamera(t);
891
- Be.set(t, i);
892
- try {
893
- let e = await i;
894
- return e ? Je(e) : void 0;
895
- } finally {
896
- Be.get(t) === i && Be.delete(t);
897
- }
898
- }
899
- function Je(e) {
900
- let t = J.acquire(e.id, () => e);
901
- return t !== e && e.close(), t;
902
- }
903
- function Ye(e) {
904
- J.release(e.id, e);
905
- }
906
- function Xe() {
907
- J.forEachValue((e) => {
908
- e.reconnect().catch(() => {});
909
- });
910
- }
911
- function Ze() {
912
- J.forEachValue((e) => {
913
- e.refreshStates().catch(() => e.reconnect().catch(() => {}));
914
- });
915
- }
916
- function Qe(e) {
917
- let { isConnected: t } = k(), n = ze(), a = i(), l = r(!1), u = r(!1), d = r(), f, m = O(), h = !1;
918
- function g(e, t) {
919
- f = e, a.value = t, d.value = void 0, b();
920
- }
921
- function _() {
922
- a.value && Ye(a.value), a.value = void 0, f = void 0;
923
- }
924
- function v(e, t) {
925
- d.value = t instanceof Error ? t : Error(String(t)), y(e);
926
- }
927
- function y(n) {
928
- h || m.schedule(() => {
929
- t.value && o(e) === n && f !== n && x(n, !0).catch(() => {});
930
- });
931
- }
932
- function b() {
933
- m.cancel(), m.reset();
934
- }
935
- async function x(r, i = !1) {
936
- if (h || !t.value || !r) return;
937
- if (f !== void 0 && f !== r) {
938
- if (a.value && (a.value.id === r || a.value.name.value === r)) {
939
- f = r;
940
- return;
941
- }
942
- _();
943
- }
944
- if (a.value) return;
945
- let s = Ke(r);
946
- if (s) g(r, s), u.value = !0;
947
- else {
948
- i || (l.value = !0, d.value = void 0);
949
- try {
950
- let t = await qe(n, r);
951
- if (!t) return;
952
- if (h || o(e) !== r || a.value) {
953
- Ye(t);
954
- return;
955
- }
956
- g(r, t);
957
- } catch (e) {
958
- v(r, e);
959
- } finally {
960
- l.value = !1, u.value = !0;
961
- }
962
- }
963
- }
964
- async function S() {
965
- let t = o(e);
966
- if (!t) return;
967
- let n = a.value;
968
- n && (J.get(n.id) === n && J.getRefCount(n.id) <= 1 ? J.forceRelease(n.id) : Ye(n), a.value = void 0, f = void 0), await x(t);
969
- }
970
- return c([t, () => o(e)], async ([e, t]) => {
971
- b(), e && t ? await x(t) : !e && f !== void 0 && _();
972
- }, { immediate: !0 }), p(() => {
973
- h = !0, b(), _();
974
- }), {
975
- camera: a,
976
- isLoading: s(() => l.value || !u.value),
977
- error: d,
978
- refresh: S
979
- };
980
- }
981
- var $e = /* @__PURE__ */ new Map(), et = /* @__PURE__ */ new Map(), tt = /* @__PURE__ */ new Map();
982
- function nt() {
983
- $e.clear(), et.clear();
984
- }
985
- function rt(e) {
986
- return et.get(e);
987
- }
988
- function it(e) {
989
- $e.delete(e);
990
- }
991
- async function at(e, t) {
992
- let n = $e.get(t);
993
- if (n) return n;
994
- let r = tt.get(t);
995
- if (r) return r;
996
- let i = (async () => {
997
- let n = M.coreManagerNamespaces(), r = await I(e, (e) => e.createProxy(n.coreManagerRpc).getPlugin(t));
998
- if (r) return $e.set(t, r.id), et.set(r.id, t), r.id;
999
- })().finally(() => tt.delete(t));
1000
- return tt.set(t, i), i;
1001
- }
1002
- var ot = 1500, st = 3e4, ct = /* @__PURE__ */ new Map();
1003
- function lt() {
1004
- for (let e of ct.values()) e.stop();
1005
- ct.clear();
1006
- }
1007
- function ut(e) {
1008
- let t = k(), n = r({ status: "disconnected" }), i = r(null), a, o = 0, s = 0, c = !1, l = 0, u = 0;
1009
- function d(e, t) {
1010
- return e.createProxy(M.pluginNamespaces(t).pluginChildRpc);
1011
- }
1012
- let f = (n) => I(t.rpc, async (r) => {
1013
- let i = await at(t.rpc, e);
1014
- if (!i) throw Error(`Plugin "${e}" not found`);
1015
- try {
1016
- return await n(d(r, i));
1017
- } catch (a) {
1018
- if (!w(a)) throw a;
1019
- it(e);
1020
- let o = await at(t.rpc, e);
1021
- if (!o || o === i) throw a;
1022
- return n(d(r, o));
1023
- }
1024
- });
1025
- function p(e, t = ++l) {
1026
- t < u || (u = t, n.value = e, g());
1027
- }
1028
- async function m() {
1029
- let e = ++l;
1030
- p(await f((e) => e.getOAuthState()), e), i.value ||= await f((e) => e.getOAuthMetadata());
1031
- }
1032
- function h() {
1033
- c || (c = !0, m().catch(() => void 0).finally(() => {
1034
- c = !1;
1035
- }));
1036
- }
1037
- function g() {
1038
- let { status: e } = n.value, t = s === 0 ? 0 : e === "awaiting_user" || e === "polling" ? ot : st;
1039
- t !== o && (clearInterval(a), a = t ? setInterval(h, t) : void 0, o = t);
1040
- }
1041
- function _() {
1042
- s++ > 0 || (g(), h());
1043
- }
1044
- function v() {
1045
- s !== 0 && (s--, g());
1046
- }
1047
- function y() {
1048
- s = 0, g();
1049
- }
1050
- return {
1051
- state: n,
1052
- metadata: i,
1053
- call: f,
1054
- refresh: m,
1055
- apply: p,
1056
- retain: _,
1057
- release: v,
1058
- stop: y
1059
- };
1060
- }
1061
- function dt(e) {
1062
- ct.has(e) || ct.set(e, ut(e));
1063
- let t = ct.get(e), { state: n, metadata: r, call: i, refresh: a, apply: o } = t;
1064
- t.retain(), p(t.release);
1065
- async function s(e) {
1066
- o(await i((t) => t.startDeviceFlow(e)));
1067
- }
1068
- async function c(e) {
1069
- o(await i((t) => t.startAuthCodeFlow(e)));
1070
- }
1071
- async function l() {
1072
- (n.value.status === "awaiting_user" || n.value.status === "polling") && await i((e) => e.cancelDeviceFlow?.() ?? e.cancelAuthCodeFlow?.() ?? Promise.resolve()), await a();
1073
- }
1074
- async function u() {
1075
- await i((e) => e.disconnect()), await a();
1076
- }
1077
- return {
1078
- state: n,
1079
- metadata: r,
1080
- startDeviceFlow: s,
1081
- startAuthCodeFlow: c,
1082
- cancel: l,
1083
- disconnect: u,
1084
- refresh: a
1085
- };
1086
- }
1087
- var ft = 2e3, pt = 3e4, Y = T({ releaseDelay: 1e3 }), mt = /* @__PURE__ */ new Map(), ht = /* @__PURE__ */ new Map(), gt = /* @__PURE__ */ new Set(), _t = /* @__PURE__ */ new Set(), vt = /* @__PURE__ */ new Map(), yt = /* @__PURE__ */ new Map(), bt = /* @__PURE__ */ new Map(), xt = /* @__PURE__ */ new Map(), St, Ct;
1088
- function wt() {
1089
- Y.clear(), mt.clear(), ht.clear(), At();
1090
- for (let e of gt) try {
1091
- e();
1092
- } catch {}
1093
- }
1094
- function Tt(e) {
1095
- for (let t of [...yt.get(e) ?? []]) t();
1096
- }
1097
- function Et(e) {
1098
- let t = bt.get(e);
1099
- t && clearTimeout(t), bt.delete(e), xt.delete(e);
1100
- }
1101
- function Dt(e) {
1102
- if (bt.has(e)) return;
1103
- let t = xt.get(e) ?? 0;
1104
- xt.set(e, t + 1);
1105
- let n = setTimeout(() => {
1106
- bt.delete(e), Tt(e);
1107
- }, Math.min(ft * 2 ** t, pt));
1108
- bt.set(e, n);
1109
- }
1110
- function Ot(e) {
1111
- return _t.add(e), () => {
1112
- _t.delete(e);
1113
- };
1114
- }
1115
- function kt(e) {
1116
- return vt.get(e) === !1;
1117
- }
1118
- function At() {
1119
- vt.clear();
1120
- }
1121
- function jt(e, t, n = !t) {
1122
- vt.set(e, t), n && (Y.forceRelease(e), it(e)), Et(e), Tt(e);
1123
- for (let n of [..._t]) try {
1124
- n(e, t);
1125
- } catch {}
1126
- }
1127
- function Mt(e) {
1128
- e?.type === "pluginStatusChanged" && jt(e.data.pluginName, e.data.running);
1129
- }
1130
- function Nt(e, t) {
1131
- let n = Y.get(e);
1132
- if (!n || ht.has(e)) return;
1133
- let r = I(t, (t) => t.createProxy(M.coreManagerNamespaces().coreManagerRpc).getPlugin(e)).then((t) => {
1134
- let r = t;
1135
- if (Y.get(e) !== n) return;
1136
- let i = !!r && r.running !== !1, a = i && M.pluginNamespaces(r.id).pluginChildRpc !== n.namespace;
1137
- (!i || a) && jt(e, i, !0);
1138
- }).catch(() => {}).finally(() => {
1139
- ht.get(e) === r && ht.delete(e);
1140
- });
1141
- ht.set(e, r);
1142
- }
1143
- function Pt(e, t, n) {
1144
- let r = /* @__PURE__ */ new WeakMap();
1145
- return new Proxy(t, { get(i, a) {
1146
- let o = le(n);
1147
- if (!o) return Reflect.get(t, a);
1148
- let s = r.get(o);
1149
- s || (s = o.createProxy(e), r.set(o, s));
1150
- let c = Reflect.get(s, a);
1151
- return typeof c == "function" ? Ft(c, n, o) : c;
1152
- } });
1153
- }
1154
- function Ft(e, t, n) {
1155
- return new Proxy(e, { apply(e, r, i) {
1156
- let a = Reflect.apply(e, r, i);
1157
- return a instanceof Promise ? a.catch((e) => {
1158
- throw e?.code === "TIMEOUT" && de(t, n), e;
1159
- }) : a;
1160
- } });
1161
- }
1162
- async function It(e) {
1163
- let t = e.value;
1164
- if (t && t !== St) {
1165
- Ct?.(), Ct = void 0, St = t;
1166
- try {
1167
- Ct = await t.subscribe(M.coreManagerNamespaces().coreManagerSubject, Mt);
1168
- } catch {
1169
- St = void 0;
1170
- }
1171
- }
1172
- }
1173
- function Lt(e, t = {}) {
1174
- let n = k(), { rpc: a, bulkRpc: l, isConnected: u } = n, d = t.lane === "bulk" ? l : void 0, f = i(), m = r(), h = r(!1), g = r(!1), _ = r(), v, y, b;
1175
- function x(e) {
1176
- if (Y.has(e)) return Y.acquire(e, () => {
1177
- throw Error("Should not create - already cached");
1178
- });
1179
- }
1180
- function S(e) {
1181
- Y.release(e, y), y = void 0;
1182
- }
1183
- function C(e) {
1184
- if (b === e) return;
1185
- b && w(b);
1186
- let t = yt.get(e) ?? /* @__PURE__ */ new Set();
1187
- t.add(T), yt.set(e, t), b = e;
1188
- }
1189
- function w(e) {
1190
- let t = yt.get(e);
1191
- t && (t.delete(T), t.size === 0 && (yt.delete(e), Et(e))), b === e && (b = void 0);
1192
- }
1193
- function T() {
1194
- let t = o(e);
1195
- t && O(t, !0);
1196
- }
1197
- function E(e) {
1198
- v &&= (S(v), void 0), f.value = void 0, m.value = void 0, Dt(e);
1199
- }
1200
- function D(e, t) {
1201
- v = e, y = t, d && (t.bulkProxy ??= Pt(t.namespace, t.proxy, d)), f.value = d ? t.bulkProxy : t.proxy, m.value = t.contract, _.value = void 0, Et(e);
1202
- }
1203
- async function O(t, n = !1) {
1204
- if (!u.value || !t) return;
1205
- if (v && v !== t && (w(v), S(v), f.value = void 0, m.value = void 0, v = void 0), C(t), It(a), v === t && Y.get(t) !== y) v = void 0, y = void 0, f.value = void 0, m.value = void 0;
1206
- else if (v === t && f.value) return;
1207
- let r = x(t);
1208
- if (r) {
1209
- D(t, r), g.value = !0;
1210
- return;
1211
- }
1212
- let i = mt.get(t);
1213
- if (i) {
1214
- n || (h.value = !0);
1215
- try {
1216
- let n = await i;
1217
- if (o(e) !== t) return;
1218
- if (n) {
1219
- let e = x(t);
1220
- e && D(t, e);
1221
- } else E(t);
1222
- } catch (e) {
1223
- n || (_.value = e instanceof Error ? e : Error(String(e))), E(t);
1224
- } finally {
1225
- n || (h.value = !1), g.value = !0;
1226
- }
1227
- return;
1228
- }
1229
- n || (h.value = !0, _.value = void 0);
1230
- let s = I(a, async (e) => {
1231
- let n = M.coreManagerNamespaces(), r = await e.createProxy(n.coreManagerRpc).getPlugin(t);
1232
- if (!r) throw Error(`Plugin "${t}" not found`);
1233
- if (r.running === !1) return;
1234
- let i = M.pluginNamespaces(r.id).pluginChildRpc;
1235
- return {
1236
- proxy: e.createProxy(i),
1237
- contract: r.contract,
1238
- namespace: i,
1239
- client: e
1240
- };
1241
- });
1242
- mt.set(t, s);
1243
- try {
1244
- let n = await s;
1245
- if (vt.set(t, !!n), n) {
1246
- let r = Y.acquire(t, () => n);
1247
- if (o(e) !== t) {
1248
- Y.release(t, r);
1249
- return;
1250
- }
1251
- D(t, r);
1252
- } else o(e) === t && E(t);
1253
- } catch (e) {
1254
- n || (_.value = e instanceof Error ? e : Error(String(e))), E(t);
1255
- } finally {
1256
- mt.delete(t), n || (h.value = !1), g.value = !0;
1257
- }
1258
- }
1259
- async function A() {
1260
- let t = o(e);
1261
- t && (v &&= (Y.get(v) === y && Y.getRefCount(v) <= 1 ? (Y.forceRelease(v), y = void 0) : S(v), f.value = void 0, m.value = void 0, void 0), await O(t));
1262
- }
1263
- let j = () => {
1264
- v && (f.value = void 0, m.value = void 0, v = void 0, y = void 0);
1265
- };
1266
- gt.add(j);
1267
- function ee() {
1268
- v && Nt(v, a);
1269
- }
1270
- return n.on("reconnected", ee), c([
1271
- u,
1272
- () => o(e),
1273
- a
1274
- ], async ([e, t, n]) => {
1275
- let r = !!v && t !== v;
1276
- v && (r || n && y && y.client !== n) && (r && w(v), S(v), f.value = void 0, m.value = void 0, v = void 0), e && t && n ? await O(t) : !e && v && (w(v), S(v), f.value = void 0, m.value = void 0, v = void 0);
1277
- }, { immediate: !0 }), p(() => {
1278
- gt.delete(j), n.off("reconnected", ee), w(o(e)), v &&= (w(v), S(v), f.value = void 0, m.value = void 0, void 0);
1279
- }), {
1280
- plugin: f,
1281
- contract: m,
1282
- isLoading: s(() => h.value || !g.value),
1283
- error: _,
1284
- refresh: A
1285
- };
1286
- }
1287
- function Rt(e) {
1288
- if (e) return typeof e == "string" ? e : e.id;
1289
- }
1290
- function X(e) {
1291
- return (t) => t.type === e;
1292
- }
1293
- var zt = X(h.Light), Bt = X(h.Siren), Vt = X(h.Battery), Ht = X(h.Doorbell), Ut = X(h.Contact);
1294
- h.Motion, h.Object, h.Audio, h.Face, h.LicensePlate, h.Classifier, h.PTZ;
1295
- var Wt = X(h.Switch), Gt = X(h.Lock), Kt = X(h.SecuritySystem), qt = X(h.Temperature), Jt = X(h.Humidity), Yt = X(h.Occupancy), Xt = X(h.Smoke), Zt = X(h.Leak);
1296
- h.Gas, h.CarbonMonoxide, h.Heat, h.Cold, h.Vibration, h.Tamper, h.Problem, h.Power, h.Illuminance, h.CarbonDioxide;
1297
- var Qt = X(h.Garage);
1298
- function $t(e, t) {
1299
- return e.length === t.length && e.every((e, n) => e === t[n]);
1300
- }
1301
- function en(e, t) {
1302
- return e.type === t.type && e.name === t.name && e.pluginId === t.pluginId && e.nativeId === t.nativeId && e.boundCameraId === t.boundCameraId;
1303
- }
1304
- function tn(t, n, i) {
1305
- let a = r(n.displayName ?? t.displayName ?? t.name), o = r(n.capabilities ?? t.capabilities ?? []), s = r([...t.assignedCameraIds]), c = r(t.exposed), l = r(t.connected), u = e({ ...n.properties }), d = [];
1306
- function f() {
1307
- for (let e of d) e(o.value);
1308
- }
1309
- return {
1310
- id: t.id,
1311
- type: t.type,
1312
- name: t.name,
1313
- displayName: a,
1314
- nativeId: t.nativeId,
1315
- pluginId: t.pluginId,
1316
- boundCameraId: t.boundCameraId,
1317
- assignedCameraIds: s,
1318
- exposed: c,
1319
- connected: l,
1320
- capabilities: o,
1321
- properties: u,
1322
- getProperty(e) {
1323
- return u[e];
1324
- },
1325
- async setProperty(e, n) {
1326
- let r = `plugin.${t.pluginId}.sensor.${t.id}.rpc`;
1327
- await I(i, (t) => t.createProxy(r).updateValue(e, n));
1328
- },
1329
- async setDisplayName(e) {
1330
- let n = M.sensorRegistryNamespaces();
1331
- await I(i, (r) => r.createProxy(n.sensorsRpc).setDisplayName(t.id, e));
1332
- },
1333
- hasCapability(e) {
1334
- return o.value.includes(e);
1335
- },
1336
- onCapabilitiesChanged(e) {
1337
- return d.push(e), () => {
1338
- let t = d.indexOf(e);
1339
- t !== -1 && d.splice(t, 1);
1340
- };
1341
- },
1342
- _notifyCapabilitiesChanged: f,
1343
- _update(e, t) {
1344
- a.value = t.displayName ?? e.displayName ?? e.name, $t(s.value, e.assignedCameraIds) || (s.value = [...e.assignedCameraIds]), c.value = e.exposed, l.value = e.connected;
1345
- let n = t.properties ?? {};
1346
- for (let e of Object.keys(u)) e in n || delete u[e];
1347
- Object.assign(u, n);
1348
- let r = t.capabilities ?? e.capabilities ?? [];
1349
- $t(o.value, r) || (o.value = r, f());
1350
- }
1351
- };
1352
- }
1353
- var nn = 1e3, rn = "all";
1354
- function an(e) {
1355
- return `camera:${e}`;
1356
- }
1357
- function on(e) {
1358
- return `sensor:${e}`;
1359
- }
1360
- function sn(e) {
1361
- let { sensorsSubject: t, sensorsRpc: n } = M.sensorRegistryNamespaces(), a = "rpc" in e && "value" in e.rpc ? e : void 0, o = a ? a.rpc : i(e), c = i(/* @__PURE__ */ new Map()), l, u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Set(), f = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Set(), m, h = /* @__PURE__ */ new Set(), g = O(), _ = /* @__PURE__ */ new Set(), v = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map(), b = 0, x = r(!1), S, C = 0, w = O();
1362
- function T(e, t) {
1363
- let n = c.value.get(e);
1364
- if (n) {
1365
- if (f.get(e)?.add(t.type === "property:changed" ? t.data.property : t.type), t.type === "property:changed") {
1366
- let e = t.data;
1367
- n.properties[e.property] = e.value;
1368
- } else if (t.type === "sensor:displayName:changed") {
1369
- let e = t.data;
1370
- n.displayName.value = e.displayName;
1371
- } else if (t.type === "sensor:capabilities:changed") {
1372
- let e = t.data;
1373
- n.capabilities.value = e.capabilities, n._notifyCapabilitiesChanged();
1374
- }
1375
- }
1376
- }
1377
- function E(e) {
1378
- if (v.has(rn) || v.has(on(e.id))) return !0;
1379
- let t = e.assignedCameraIds.value;
1380
- return t.length === 0 || t.some((e) => v.has(an(e)));
1381
- }
1382
- function D(e, t) {
1383
- if (!(u.has(e.id) || d.has(e.id))) {
1384
- if (t) for (let t of Object.keys(e.properties)) delete e.properties[t];
1385
- k(e.id, P(e.id).catch(() => void 0));
1386
- }
1387
- }
1388
- function k(e, t) {
1389
- let n = /* @__PURE__ */ new Set();
1390
- if (f.set(e, n), !m) {
1391
- let e = [];
1392
- m = e;
1393
- let t = Promise.resolve().then(() => (m = void 0, A(e))).catch(() => {}).finally(() => p.delete(t));
1394
- p.add(t);
1395
- }
1396
- m.push({
1397
- sensorId: e,
1398
- changed: n,
1399
- subscribed: t
1400
- });
1401
- }
1402
- async function A(e) {
1403
- let t = await Promise.all(e.map((e) => e.subscribed)), r = e.flatMap((e, n) => {
1404
- let r = t[n];
1405
- return r && u.get(e.sensorId) === r ? [{
1406
- ...e,
1407
- unsubscribe: r
1408
- }] : [];
1409
- }), i;
1410
- if (r.length > 0) try {
1411
- i = await I(o, (e) => e.createProxy(n).getSensorStates()), g.reset();
1412
- } catch {
1413
- i = void 0;
1414
- }
1415
- for (let { sensorId: e, unsubscribe: t, changed: n } of r) j(e, t, n, i);
1416
- for (let { sensorId: t, changed: n } of e) f.get(t) === n && f.delete(t);
1417
- }
1418
- function j(e, t, n, r) {
1419
- let i = c.value.get(e);
1420
- if (!i || u.get(e) !== t) return;
1421
- let a = r?.[e];
1422
- if (!a) {
1423
- r && !i.connected.value ? _.add(e) : ee(e);
1424
- return;
1425
- }
1426
- for (let [e, t] of Object.entries(a.properties ?? {})) n.has(e) || (i.properties[e] = t);
1427
- a.displayName !== void 0 && !n.has("sensor:displayName:changed") && (i.displayName.value = a.displayName);
1428
- let o = i.capabilities.value, s = a.capabilities ?? o;
1429
- !n.has("sensor:capabilities:changed") && !$t(s, o) && (i.capabilities.value = s, i._notifyCapabilitiesChanged());
1430
- }
1431
- function ee(e) {
1432
- h.add(e), g.schedule(() => {
1433
- let e = [...h];
1434
- h.clear();
1435
- for (let t of e) te(t);
1436
- });
1437
- }
1438
- function te(e) {
1439
- let t = u.get(e);
1440
- t && k(e, Promise.resolve(t));
1441
- }
1442
- function N() {
1443
- return Promise.all(p).then(() => {});
1444
- }
1445
- async function P(e) {
1446
- let t = b, n = M.sensorEventNamespaces(e);
1447
- d.add(e);
1448
- let r;
1449
- try {
1450
- r = await I(o, (t) => t.subscribe(n.sensorSubject, (t) => T(e, t)));
1451
- } finally {
1452
- t === b && d.delete(e);
1453
- }
1454
- let i = c.value.get(e);
1455
- if (t !== b || !i || !E(i)) r();
1456
- else return u.set(e, r), r;
1457
- }
1458
- function ne(e, t) {
1459
- x.value && (E(e) ? D(e, t) : L(e.id));
1460
- }
1461
- function re() {
1462
- for (let e of c.value.values()) ne(e, !0);
1463
- }
1464
- function F(e) {
1465
- clearTimeout(y.get(e)), y.delete(e);
1466
- let t = v.has(e);
1467
- v.set(e, (v.get(e) ?? 0) + 1), t || re();
1468
- }
1469
- function ie(e) {
1470
- let t = v.get(e);
1471
- t && (v.set(e, t - 1), !(t > 1) && y.set(e, setTimeout(() => {
1472
- y.delete(e), v.delete(e), re();
1473
- }, nn)));
1474
- }
1475
- function L(e) {
1476
- let t = u.get(e);
1477
- t && (t(), u.delete(e)), h.delete(e), _.delete(e);
1478
- }
1479
- function R(e) {
1480
- if (e.type === "sensor:added") {
1481
- let t = e.data;
1482
- if (c.value.has(t.sensor.id)) return;
1483
- let n = tn(t.sensor, t.state, o), r = new Map(c.value);
1484
- r.set(t.sensor.id, n), c.value = r, ne(n, !1);
1485
- } else if (e.type === "sensor:deleted") {
1486
- let t = e.data;
1487
- L(t.sensorId);
1488
- let n = new Map(c.value);
1489
- n.delete(t.sensorId), c.value = n;
1490
- } else if (e.type === "sensor:connected:changed") {
1491
- let t = e.data, n = c.value.get(t.sensorId);
1492
- if (!n) return;
1493
- n.connected.value = t.connected, t.connected && _.delete(n.id) && te(n.id);
1494
- } else if (e.type === "sensor:assignment:changed") {
1495
- let t = e.data, n = c.value.get(t.sensorId);
1496
- if (!n) return;
1497
- let r = new Set(n.assignedCameraIds.value);
1498
- t.assigned ? r.add(t.cameraId) : r.delete(t.cameraId), n.assignedCameraIds.value = [...r], ne(n, !0);
1499
- } else if (e.type === "sensor:exposed:changed") {
1500
- let t = e.data, n = c.value.get(t.sensorId);
1501
- n && (n.exposed.value = t.exposed);
1502
- }
1503
- }
1504
- function z() {
1505
- l?.(), l = void 0;
1506
- for (let e of u.values()) e();
1507
- u.clear(), b++, d.clear(), f.clear(), h.clear(), _.clear(), g.cancel(), g.reset();
1508
- }
1509
- function B(e) {
1510
- if (e !== C) throw Error("sensor manager closed");
1511
- }
1512
- function ae() {
1513
- w.schedule(() => {
1514
- !x.value && !S && H().catch(() => {});
1515
- });
1516
- }
1517
- async function V(e) {
1518
- B(e), z();
1519
- let r = c.value, i = [];
1520
- try {
1521
- l = await I(o, (e) => e.subscribe(t, (e) => {
1522
- i ? i.push(e) : R(e);
1523
- })), B(e);
1524
- let [a, s] = await I(o, async (e) => {
1525
- let t = e.createProxy(n);
1526
- return Promise.all([t.getSensors(), t.getSensorStates()]);
1527
- });
1528
- B(e);
1529
- let u = /* @__PURE__ */ new Map();
1530
- for (let e of a) {
1531
- let t = s[e.id] ?? {
1532
- properties: {},
1533
- capabilities: [],
1534
- type: e.type
1535
- }, n = r.get(e.id);
1536
- n && en(n, e) ? (n._update(e, t), u.set(e.id, n)) : u.set(e.id, tn(e, t, o));
1537
- }
1538
- c.value = u;
1539
- for (let t of u.values()) E(t) && (await P(t.id), B(e));
1540
- } catch (t) {
1541
- throw z(), e === C && (c.value = r, ae()), t;
1542
- }
1543
- let a = i;
1544
- i = void 0;
1545
- for (let e of a) R(e);
1546
- w.reset(), x.value = !0, re();
1547
- }
1548
- function H() {
1549
- let e = V(C).finally(() => {
1550
- S === e && (S = void 0);
1551
- });
1552
- return S = e, e;
1553
- }
1554
- async function oe() {
1555
- if (!x.value) return S || H(), S;
1556
- }
1557
- async function se() {
1558
- if (x.value = !1, S) {
1559
- let e = S, t = C, n = e.catch(() => {}).then(() => V(t)).finally(() => {
1560
- S === n && (S = void 0);
1561
- });
1562
- return S = n, n;
1563
- }
1564
- return H();
1565
- }
1566
- function ce() {
1567
- C++, w.cancel(), z(), c.value = /* @__PURE__ */ new Map(), x.value = !1, S = void 0;
1568
- }
1569
- let le = s(() => Array.from(c.value.values()));
1570
- return {
1571
- sensors: le,
1572
- isInitialized: s(() => x.value),
1573
- getSensor(e) {
1574
- return c.value.get(e);
1575
- },
1576
- getSensorsByType(e) {
1577
- return le.value.filter((t) => t.type === e);
1578
- },
1579
- hasSensorType(e) {
1580
- return le.value.some((t) => t.type === e);
1581
- },
1582
- async setDisplayName(e, t) {
1583
- await I(o, (r) => r.createProxy(n).setDisplayName(e, t));
1584
- },
1585
- ensureInitialized: oe,
1586
- reconnect: se,
1587
- close: ce,
1588
- retainLive: F,
1589
- releaseLive: ie,
1590
- whenRefreshed: N
1591
- };
1592
- }
1593
- var cn = T({
1594
- releaseDelay: 1e3,
1595
- onRelease: (e, t) => t.manager.close()
1596
- });
1597
- function ln() {
1598
- cn.clear();
1599
- }
1600
- function un() {
1601
- cn.forEachValue((e) => {
1602
- e.manager.reconnect().catch(() => {});
1603
- });
1604
- }
1605
- var dn = "sensors";
1606
- function fn(e) {
1607
- return cn.acquire(dn, () => ({ manager: sn(e) }));
1608
- }
1609
- function pn(e) {
1610
- let t = cn.get(dn);
1611
- !t || e && t.manager !== e || cn.release(dn, t);
1612
- }
1613
- function mn() {
1614
- return {
1615
- acquired: !1,
1616
- cachedManager: void 0,
1617
- liveScope: void 0
1618
- };
1619
- }
1620
- function hn(e, t) {
1621
- return e.sensors.value.filter((e) => e.assignedCameraIds.value.includes(t));
1622
- }
1623
- async function gn(e, t, n, r, i, a) {
1624
- if (n) {
1625
- r.value = !0, i.value = void 0;
1626
- try {
1627
- vn(e) || (e.cachedManager = fn(t).manager, e.acquired = !0, e.liveScope = void 0), yn(e, a), await e.cachedManager?.ensureInitialized(), await e.cachedManager?.whenRefreshed();
1628
- } catch (e) {
1629
- i.value = e instanceof Error ? e : Error(String(e));
1630
- } finally {
1631
- r.value = !1;
1632
- }
1633
- return e.cachedManager;
1634
- }
1635
- }
1636
- function _n(e, t) {
1637
- c(() => e.value?.isInitialized.value, (e) => {
1638
- e && (t.value = void 0);
1639
- });
1640
- }
1641
- function vn(e) {
1642
- return e.acquired && cn.get(dn)?.manager === e.cachedManager;
1643
- }
1644
- function yn(e, t) {
1645
- e.liveScope !== t && (e.cachedManager?.retainLive(t), e.liveScope && e.cachedManager?.releaseLive(e.liveScope), e.liveScope = t);
1646
- }
1647
- function bn(e) {
1648
- vn(e) && (e.liveScope && e.cachedManager?.releaseLive(e.liveScope), pn(e.cachedManager)), e.acquired = !1, e.cachedManager = void 0, e.liveScope = void 0;
1649
- }
1650
- function xn(e) {
1651
- let t = k(), { isConnected: n } = t, a = i([]), l = i(), u = r(!1), d = r(!1), f = r(), m = mn();
1652
- c([n, () => Rt(o(e))], async ([e, n]) => {
1653
- if (e && n) {
1654
- let r = await gn(m, t, e, u, f, an(n));
1655
- l.value = r, a.value = r ? hn(r, n) : [], d.value = !0;
1656
- } else bn(m), a.value = [], l.value = void 0;
1657
- }, { immediate: !0 });
1658
- let h = s(() => {
1659
- if (!l.value) return [];
1660
- let t = Rt(o(e));
1661
- return t ? hn(l.value, t) : [];
1662
- });
1663
- return _n(l, f), p(() => {
1664
- bn(m), a.value = [];
1665
- }), {
1666
- sensors: h,
1667
- isLoading: s(() => u.value || !d.value),
1668
- error: f
1669
- };
1670
- }
1671
- function Sn() {
1672
- let e = k(), { isConnected: t } = e, n = i(), a = r(!1), o = r(!1), l = r(), u = mn();
1673
- c([t], async ([t]) => {
1674
- t ? (n.value = await gn(u, e, t, a, l, rn), o.value = !0) : (bn(u), n.value = void 0);
1675
- }, { immediate: !0 });
1676
- let d = s(() => n.value?.sensors.value ?? []);
1677
- return _n(n, l), p(() => {
1678
- bn(u);
1679
- }), {
1680
- sensors: d,
1681
- isLoading: s(() => a.value || !o.value),
1682
- error: l
1683
- };
1684
- }
1685
- function Cn(e, t, n) {
1686
- let r = e.filter((e) => e.type === t);
1687
- if (n) {
1688
- let e = r.find((e) => e.pluginId === n);
1689
- if (e) return e;
1690
- }
1691
- return r[0];
1692
- }
1693
- function wn(e, t, n) {
1694
- let a = k(), { isConnected: l } = a, u = i(), d = i(), f = r(!1), m = r(!1), h = r(), g = mn();
1695
- function _() {
1696
- let r = Rt(o(e));
1697
- if (d.value && r) return Cn(hn(d.value, r), t, o(n));
1698
- }
1699
- return c([
1700
- l,
1701
- () => Rt(o(e)),
1702
- () => o(n)
1703
- ], async ([e, t]) => {
1704
- e && t ? (d.value = await gn(g, a, e, f, h, an(t)), u.value = _(), m.value = !0) : (bn(g), d.value = void 0, u.value = void 0);
1705
- }, { immediate: !0 }), c(_, (e) => {
1706
- u.value = e;
1707
- }), _n(d, h), p(() => {
1708
- bn(g), u.value = void 0;
1709
- }), {
1710
- sensor: u,
1711
- isLoading: s(() => f.value || !m.value),
1712
- error: h
1713
- };
1714
- }
1715
- function Tn(e, t) {
1716
- return wn(e, h.Motion, t);
1717
- }
1718
- function En(e, t) {
1719
- return wn(e, h.Object, t);
1720
- }
1721
- function Dn(e, t) {
1722
- return wn(e, h.Face, t);
1723
- }
1724
- function On(e, t) {
1725
- return wn(e, h.LicensePlate, t);
1726
- }
1727
- function kn(e) {
1728
- return wn(e, h.PTZ);
1729
- }
1730
- function An(e) {
1731
- let t = k(), { isConnected: n } = t, a = i([]), l = i(), u = r(!1), d = r(!1), f = r(), m = mn();
1732
- c([n, () => Rt(o(e))], async ([e, n]) => {
1733
- if (e && n) {
1734
- let r = await gn(m, t, e, u, f, an(n));
1735
- l.value = r, a.value = r ? hn(r, n).filter((e) => e.type === h.Classifier) : [], d.value = !0;
1736
- } else bn(m), a.value = [], l.value = void 0;
1737
- }, { immediate: !0 });
1738
- let g = s(() => {
1739
- if (!l.value) return [];
1740
- let t = Rt(o(e));
1741
- return t ? hn(l.value, t).filter((e) => e.type === h.Classifier) : [];
1742
- });
1743
- return _n(l, f), p(() => {
1744
- bn(m), a.value = [];
1745
- }), {
1746
- sensors: g,
1747
- isLoading: s(() => u.value || !d.value),
1748
- error: f
1749
- };
1750
- }
1751
- function jn(e, t) {
1752
- let n = i(), a = r(!1), o = r(), s = null;
1753
- async function c() {
1754
- if (s) return s;
1755
- a.value = !0, o.value = void 0;
1756
- try {
1757
- return s = e.getConfig().finally(() => {
1758
- s = null;
1759
- }), n.value = await s, n.value;
1760
- } catch (e) {
1761
- o.value = e instanceof Error ? e : Error(String(e));
1762
- return;
1763
- } finally {
1764
- a.value = !1;
1765
- }
1766
- }
1767
- async function l(t, n) {
1768
- a.value = !0, o.value = void 0;
1769
- try {
1770
- await e.setValue(t, n), await c();
1771
- } catch (e) {
1772
- throw o.value = e instanceof Error ? e : Error(String(e)), e;
1773
- } finally {
1774
- a.value = !1;
1775
- }
1776
- }
1777
- async function u(t) {
1778
- a.value = !0, o.value = void 0;
1779
- try {
1780
- await e.setConfig(t), await c();
1781
- } catch (e) {
1782
- throw o.value = e instanceof Error ? e : Error(String(e)), e;
1783
- } finally {
1784
- a.value = !1;
1785
- }
1786
- }
1787
- async function d(t, n) {
1788
- a.value = !0, o.value = void 0;
1789
- try {
1790
- let r = await e.submitValue(t, n);
1791
- return (!r?.toast || r.toast.type !== "error") && await c(), r;
1792
- } catch (e) {
1793
- throw o.value = e instanceof Error ? e : Error(String(e)), e;
1794
- } finally {
1795
- a.value = !1;
1796
- }
1797
- }
1798
- return {
1799
- proxy: e,
1800
- client: t,
1801
- config: n,
1802
- isLoading: a,
1803
- error: o,
1804
- getConfig: c,
1805
- setValue: l,
1806
- setConfig: u,
1807
- submitValue: d
1808
- };
1809
- }
1810
- var Mn = T({ releaseDelay: 1e3 });
1811
- function Nn(e) {
1812
- return `plugin:${e}`;
1813
- }
1814
- function Pn(e, t) {
1815
- return `plugin:${e}:camera:${t}`;
1816
- }
1817
- function Fn(e, t) {
1818
- return `plugin:${e}:sensor:${t}`;
1819
- }
1820
- function In(e, t, n) {
1821
- let r = Mn.get(e);
1822
- return r && r.client !== t && Mn.forceRelease(e), Mn.acquire(e, () => jn(n(), t));
1823
- }
1824
- function Ln(e, t) {
1825
- Mn.release(e, t);
1826
- }
1827
- function Rn() {
1828
- Mn.clear(), nt();
1829
- }
1830
- function zn() {
1831
- return {
1832
- currentStorageKey: void 0,
1833
- cachedStorage: void 0,
1834
- load: void 0,
1835
- disposed: !1
1836
- };
1837
- }
1838
- function Bn(e, t) {
1839
- let n = e.load;
1840
- n && (clearTimeout(n.timer), e.load = void 0, n.settle(t));
1841
- }
1842
- function Vn(e, t, n) {
1843
- Bn(e, void 0), e.currentStorageKey &&= (Ln(e.currentStorageKey, e.cachedStorage), void 0), t.value = !1, e.cachedStorage = void 0, n.value = void 0;
1844
- }
1845
- function Hn(e, t, n, r, i) {
1846
- (e.currentStorageKey !== t || e.cachedStorage?.client !== n) && (e.currentStorageKey && e.currentStorageKey !== t && (Ln(e.currentStorageKey, e.cachedStorage), r.value = void 0), e.currentStorageKey = t, e.cachedStorage = In(t, n, i));
1847
- }
1848
- var Un = [
1849
- 2e3,
1850
- 5e3,
1851
- 1e4,
1852
- 15e3,
1853
- 15e3,
1854
- 15e3,
1855
- 15e3,
1856
- 15e3
1857
- ];
1858
- function Wn(e, t, n, r, i, a) {
1859
- let o = 0;
1860
- a && p(Ot(s));
1861
- function s(t, n) {
1862
- t === a?.pluginName() && (n ? (e.load || r.value) && c() : e.load?.timer && Bn(e, void 0));
1863
- }
1864
- function c() {
1865
- if (!e.cachedStorage) return Promise.resolve(void 0);
1866
- a && It(a.rpc), e.load && e.load.key !== e.currentStorageKey && Bn(e, void 0);
1867
- let t = e.load ?? l();
1868
- return t.retries = 0, t.rebound = !1, t.storage !== e.cachedStorage && (clearTimeout(t.timer), t.timer = void 0, u(t, !0)), t.result;
1869
- }
1870
- function l() {
1871
- let t, n = new Promise((e) => t = e), r = {
1872
- key: e.currentStorageKey,
1873
- result: n,
1874
- settle: t,
1875
- storage: void 0,
1876
- retries: 0,
1877
- rebound: !1,
1878
- timer: void 0
1879
- };
1880
- return e.load = r, r;
1881
- }
1882
- async function u(a, s) {
1883
- let c = e.cachedStorage;
1884
- if (!c) Bn(e, void 0);
1885
- else {
1886
- a.storage = c, s && (o++, n.value = !0);
1887
- try {
1888
- let n = await c.getConfig();
1889
- if (e.load !== a || e.cachedStorage !== c) return;
1890
- if (i && !a.rebound && w(c.error.value)) {
1891
- if (a.rebound = !0, await i()) {
1892
- if (e.load !== a) return;
1893
- a.key = e.currentStorageKey, await u(a, s);
1894
- return;
1895
- }
1896
- if (e.load !== a || e.cachedStorage !== c) return;
1897
- }
1898
- t.value = c.config.value, r.value = c.error.value, c.error.value ? d(a) : Bn(e, n);
1899
- } finally {
1900
- a.storage === c && (a.storage = void 0), s && --o === 0 && (n.value = !1);
1901
- }
1902
- }
1903
- }
1904
- function d(t) {
1905
- let n = a?.pluginName(), r = n && kt(n) ? void 0 : Un[t.retries++];
1906
- r === void 0 ? Bn(e, void 0) : t.timer = setTimeout(() => {
1907
- t.timer = void 0, t.key === e.currentStorageKey ? u(t, !1) : Bn(e, void 0);
1908
- }, r);
1909
- }
1910
- async function f(i, a) {
1911
- let o = e.cachedStorage;
1912
- if (!o) throw Error("Storage not connected");
1913
- n.value = !0, r.value = void 0;
1914
- try {
1915
- await o.setValue(i, a), e.cachedStorage === o && (t.value = o.config.value);
1916
- } catch (e) {
1917
- throw r.value = e instanceof Error ? e : Error(String(e)), e;
1918
- } finally {
1919
- n.value = !1;
1920
- }
1921
- }
1922
- async function m(i) {
1923
- let a = e.cachedStorage;
1924
- if (!a) throw Error("Storage not connected");
1925
- n.value = !0, r.value = void 0;
1926
- try {
1927
- await a.setConfig(i), e.cachedStorage === a && (t.value = a.config.value);
1928
- } catch (e) {
1929
- throw r.value = e instanceof Error ? e : Error(String(e)), e;
1930
- } finally {
1931
- n.value = !1;
1932
- }
1933
- }
1934
- async function h(i, a) {
1935
- let o = e.cachedStorage;
1936
- if (!o) throw Error("Storage not connected");
1937
- n.value = !0, r.value = void 0;
1938
- try {
1939
- let n = await o.submitValue(i, a);
1940
- return e.cachedStorage === o && (t.value = o.config.value), n;
1941
- } catch (e) {
1942
- throw r.value = e instanceof Error ? e : Error(String(e)), e;
1943
- } finally {
1944
- n.value = !1;
1945
- }
1946
- }
1947
- return {
1948
- getConfig: c,
1949
- setValue: f,
1950
- setConfig: m,
1951
- submitValue: h
1952
- };
1953
- }
1954
- function Gn(e) {
1955
- let t = k(), { rpc: n, isConnected: a } = t, l = i(), u = r(!1), d = r(!1), f = r(), m = r(!1), h = zn(), g = Wn(h, l, u, f, y, {
1956
- rpc: n,
1957
- pluginName: () => o(e)
1958
- });
1959
- function _(e, t) {
1960
- Hn(h, Nn(e), t, l, () => {
1961
- let n = M.pluginNamespaces(e);
1962
- return t.createProxy(n.pluginStorageRpc);
1963
- });
1964
- }
1965
- async function v(e) {
1966
- let t = n.value;
1967
- if (!t || !a.value) return !1;
1968
- try {
1969
- let r = await at(n, e);
1970
- if (h.disposed) return !1;
1971
- if (!r) throw Error(`Plugin "${e}" not found`);
1972
- return _(r, t), m.value = !0, !0;
1973
- } catch (e) {
1974
- return f.value = e instanceof Error ? e : Error(String(e)), m.value = !1, !1;
1975
- }
1976
- }
1977
- async function y() {
1978
- let t = o(e), r = h.cachedStorage;
1979
- if (!t || !r) return !1;
1980
- it(t);
1981
- let i = await at(n, t).catch(() => void 0);
1982
- if (!i || h.disposed || h.cachedStorage !== r) return !1;
1983
- let a = h.currentStorageKey;
1984
- return _(i, r.client), h.currentStorageKey !== a;
1985
- }
1986
- async function b() {
1987
- let t = o(e);
1988
- if (t && await v(t)) return g.getConfig();
1989
- }
1990
- async function x() {
1991
- let t = o(e);
1992
- a.value && t ? (await v(t), g.getConfig()) : Vn(h, m, l), d.value = !0;
1993
- }
1994
- return c([a, () => o(e)], x, { immediate: !0 }), t.on("reconnected", x), p(() => {
1995
- h.disposed = !0, t.off("reconnected", x), Vn(h, m, l);
1996
- }), {
1997
- config: l,
1998
- isLoading: s(() => u.value || !d.value),
1999
- error: f,
2000
- isConnected: m,
2001
- getConfig: b,
2002
- setValue: g.setValue,
2003
- setConfig: g.setConfig,
2004
- submitValue: g.submitValue
2005
- };
2006
- }
2007
- function Kn(e, t) {
2008
- let n = k(), { rpc: a, isConnected: l } = n, u = i(), d = r(!1), f = r(!1), m = r(), h = r(!1), g = zn(), _ = Wn(g, u, d, m, b, {
2009
- rpc: a,
2010
- pluginName: () => o(t)
2011
- });
2012
- function v(e, t, n) {
2013
- Hn(g, Pn(e, t), n, u, () => {
2014
- let r = M.pluginCameraNamespaces(e, t);
2015
- return n.createProxy(r.cameraStorageRpc);
2016
- });
2017
- }
2018
- async function y(e, t) {
2019
- let n = a.value;
2020
- if (!n || !l.value) return !1;
2021
- try {
2022
- let r = await at(a, t);
2023
- if (g.disposed) return !1;
2024
- if (!r) throw Error(`Plugin "${t}" not found`);
2025
- return v(r, e, n), h.value = !0, !0;
2026
- } catch (e) {
2027
- return m.value = e instanceof Error ? e : Error(String(e)), h.value = !1, !1;
2028
- }
2029
- }
2030
- async function b() {
2031
- let n = Rt(o(e)), r = o(t), i = g.cachedStorage;
2032
- if (!n || !r || !i) return !1;
2033
- it(r);
2034
- let s = await at(a, r).catch(() => void 0);
2035
- if (!s || g.disposed || g.cachedStorage !== i) return !1;
2036
- let c = g.currentStorageKey;
2037
- return v(s, n, i.client), g.currentStorageKey !== c;
2038
- }
2039
- async function x() {
2040
- let n = Rt(o(e)), r = o(t);
2041
- if (n && r && await y(n, r)) return _.getConfig();
2042
- }
2043
- async function S() {
2044
- let n = Rt(o(e)), r = o(t);
2045
- l.value && n && r ? (await y(n, r), _.getConfig()) : Vn(g, h, u), f.value = !0;
2046
- }
2047
- return c([
2048
- l,
2049
- () => Rt(o(e)),
2050
- () => o(t)
2051
- ], S, { immediate: !0 }), n.on("reconnected", S), p(() => {
2052
- g.disposed = !0, n.off("reconnected", S), Vn(g, h, u);
2053
- }), {
2054
- config: u,
2055
- isLoading: s(() => d.value || !f.value),
2056
- error: m,
2057
- isConnected: h,
2058
- getConfig: x,
2059
- setValue: _.setValue,
2060
- setConfig: _.setConfig,
2061
- submitValue: _.submitValue
2062
- };
2063
- }
2064
- function qn(e, t) {
2065
- let n = k(), { rpc: a, isConnected: l } = n, u = i(), d = r(!1), f = r(!1), m = r(), h = r(!1), g = zn(), _ = Wn(g, u, d, m, void 0, {
2066
- rpc: a,
2067
- pluginName: () => {
2068
- let e = o(t);
2069
- return e ? rt(e) : void 0;
2070
- }
2071
- });
2072
- function v(e, t) {
2073
- let n = a.value;
2074
- if (!n || !l.value) return !1;
2075
- try {
2076
- return Hn(g, Fn(t, e), n, u, () => {
2077
- let r = M.pluginSensorNamespaces(t, e);
2078
- return n.createProxy(r.sensorStorageRpc);
2079
- }), h.value = !0, !0;
2080
- } catch (e) {
2081
- return m.value = e instanceof Error ? e : Error(String(e)), h.value = !1, !1;
2082
- }
2083
- }
2084
- async function y() {
2085
- let n = o(e), r = o(t);
2086
- if (n && r && v(n, r)) return _.getConfig();
2087
- }
2088
- function b() {
2089
- let n = o(e), r = o(t);
2090
- l.value && n && r ? (v(n, r), _.getConfig()) : Vn(g, h, u), f.value = !0;
2091
- }
2092
- return c([
2093
- l,
2094
- () => o(e),
2095
- () => o(t)
2096
- ], b, { immediate: !0 }), n.on("reconnected", b), p(() => {
2097
- g.disposed = !0, n.off("reconnected", b), Vn(g, h, u);
2098
- }), {
2099
- config: u,
2100
- isLoading: s(() => d.value || !f.value),
2101
- error: m,
2102
- isConnected: h,
2103
- getConfig: y,
2104
- setValue: _.setValue,
2105
- setConfig: _.setConfig,
2106
- submitValue: _.submitValue
2107
- };
2108
- }
2109
- function Jn() {
2110
- wt(), He(), Rn(), ln(), Me(), lt();
2111
- }
2112
- function Yn() {
2113
- wt(), Xe(), un();
2114
- }
2115
- function Xn() {
2116
- At(), Ze();
2117
- }
2118
- var Zn = Symbol("camera-ui"), Qn = new m("plugin");
2119
- function $n(e) {
2120
- return "rpc" in e && "isConnected" in e;
2121
- }
2122
- var er = 4e3;
2123
- function tr(e) {
2124
- let { natsTransport: t, bulkTransport: n, target: a, wsTransport: o } = e, c = t.getClient() !== null, d = t.getClient(), f = null, p = !1, m = i(t.getClient() ?? void 0), h = r(t.getClient()?.isConnected ?? !1), g = r(void 0), _ = s(() => a.value?.endpoint.url), v = s(() => a.value?.tokens.access), y = s(() => void 0), b = /* @__PURE__ */ new Map();
2125
- function x(e, t) {
2126
- let n = b.get(e);
2127
- n || (n = /* @__PURE__ */ new Set(), b.set(e, n)), n.add(t);
2128
- }
2129
- function S(e, t) {
2130
- b.get(e)?.delete(t);
2131
- }
2132
- function C(e) {
2133
- let t = b.get(e);
2134
- if (t) for (let e of t) try {
2135
- e();
2136
- } catch (e) {
2137
- Qn.warn("context listener threw:", e);
2138
- }
2139
- }
2140
- t.subscribeClient((e) => {
2141
- if (e) {
2142
- f !== null && (clearTimeout(f), f = null);
2143
- let t = h.value, n = e !== d;
2144
- d = e, m.value = e, h.value = !0, g.value = void 0, c && (!t || n || p) && re(m), !t || n ? (Yn(), c && C("reconnected"), c = !0) : p && c && (Xn(), C("reconnected")), p = !1;
2145
- } else {
2146
- if (p = !0, m.value = void 0, f !== null || !h.value) return;
2147
- f = setTimeout(() => {
2148
- f = null, h.value = !1, C("disconnected");
2149
- }, er);
2150
- }
2151
- }), t.on("auth-error", (e) => {
2152
- g.value = Error(e.message ?? "auth-error");
2153
- }), t.on("down", (e) => {
2154
- g.value ||= Error(e.reason);
2155
- }), t.on("up", () => {
2156
- g.value = void 0;
2157
- });
2158
- let w;
2159
- if (n) {
2160
- let e = i();
2161
- n.subscribeClient((t) => {
2162
- e.value = t ?? void 0;
2163
- }), w = e;
2164
- }
2165
- return l({
2166
- rpc: m,
2167
- bulkRpc: w,
2168
- target: u(a),
2169
- isConnected: u(h),
2170
- endpoint: _,
2171
- token: v,
2172
- extraProxyQuery: y,
2173
- error: u(g),
2174
- wsTransport: o,
2175
- on: x,
2176
- off: S
2177
- });
2178
- }
2179
- function nr(e) {
2180
- return { install(t) {
2181
- let n = $n(e) ? e : tr(e);
2182
- t.provide(Zn, n);
2183
- } };
2184
- }
2185
- var rr = {
2186
- standbyTimeout: 5e3,
2187
- activityTimeout: 5e3,
2188
- wakeTimeout: 3e4
2189
- };
2190
- function ir(e) {
2191
- let { initialMode: t = "always-on", config: n = {}, onStreamStart: i, onStreamStop: a, isStreamPlaying: o } = e, s = {
2192
- ...rr,
2193
- ...n
2194
- }, c = r(t), l = r(!1), u = r(!1), d, f, p = !1, m = !1;
2195
- function h() {
2196
- d &&= (clearTimeout(d), void 0);
2197
- }
2198
- function g() {
2199
- f &&= (clearTimeout(f), void 0);
2200
- }
2201
- function _() {
2202
- h(), g();
2203
- }
2204
- function v() {
2205
- l.value || (l.value = !0, a());
2206
- }
2207
- function y() {
2208
- l.value && (l.value = !1, i());
2209
- }
2210
- function b() {
2211
- switch (_(), c.value) {
2212
- case "always-on":
2213
- l.value = !1, o() || i();
2214
- break;
2215
- case "standby":
2216
- l.value || (o() || i(), x());
2217
- break;
2218
- case "activity": u.value ? (l.value = !1, o() || i()) : d = setTimeout(() => {
2219
- c.value === "activity" && !u.value && v();
2220
- }, s.activityTimeout);
2221
- }
2222
- }
2223
- function x() {
2224
- if (g(), p) return;
2225
- let e = o() ? s.standbyTimeout : s.wakeTimeout;
2226
- f = setTimeout(() => {
2227
- c.value === "standby" && v();
2228
- }, e);
2229
- }
2230
- function S(e) {
2231
- c.value !== e && (c.value = e, m && b());
2232
- }
2233
- function C() {
2234
- m = !0, (c.value === "standby" || c.value === "activity" && !u.value) && !o() ? (_(), v()) : b();
2235
- }
2236
- function w(e) {
2237
- c.value === "activity" && (e ? (u.value = !0, h(), l.value ? y() : o() || i()) : (u.value = !1, h(), d = setTimeout(() => {
2238
- u.value || v();
2239
- }, s.activityTimeout)));
2240
- }
2241
- function T() {
2242
- if (l.value) switch (y(), c.value) {
2243
- case "standby":
2244
- x();
2245
- break;
2246
- case "activity": h(), u.value || (d = setTimeout(() => {
2247
- v();
2248
- }, s.activityTimeout));
2249
- }
2250
- }
2251
- function E() {
2252
- m && c.value === "standby" && !l.value && x();
2253
- }
2254
- function D(e) {
2255
- p !== e && (p = e, e ? g() : E());
2256
- }
2257
- function O() {
2258
- _();
2259
- }
2260
- return {
2261
- mode: c,
2262
- inStandby: l,
2263
- hasActivity: u,
2264
- setMode: S,
2265
- engage: C,
2266
- reportActivity: w,
2267
- resumeFromStandby: T,
2268
- resetIdleTimer: E,
2269
- setKeepAwake: D,
2270
- dispose: O
2271
- };
2272
- }
2273
- var ar = 3e4, or = new m("TabVisibility"), sr = r(typeof document > "u" || document.visibilityState === "visible"), cr = null, lr = /* @__PURE__ */ new Set(), ur = /* @__PURE__ */ new Set(), dr = /* @__PURE__ */ new Set(), fr = !1;
2274
- function pr(e) {
2275
- or.debug(`paused listener fired (delay ${e.delayMs}ms reached)`);
2276
- try {
2277
- e.cb();
2278
- } catch (e) {
2279
- or.error("onTabPaused listener threw:", e);
2280
- }
2281
- }
2282
- function mr(e) {
2283
- or.debug(`paused listener scheduled in ${e.delayMs}ms`), e.timer = setTimeout(() => {
2284
- e.timer = null, sr.value ? or.debug("paused listener skipped — tab visible before delay") : pr(e);
2285
- }, e.delayMs);
2286
- }
2287
- function hr() {
2288
- for (let e of ur) e.timer !== null && (clearTimeout(e.timer), e.timer = null);
2289
- }
2290
- function gr() {
2291
- fr || typeof document > "u" || (fr = !0, document.addEventListener("visibilitychange", () => {
2292
- let e = document.visibilityState === "visible";
2293
- if (!e && sr.value) {
2294
- sr.value = !1, cr = Date.now(), or.debug(`tab → hidden (hidden=${lr.size} paused=${ur.size})`);
2295
- for (let e of lr) try {
2296
- e.cb();
2297
- } catch (e) {
2298
- or.error("onTabHidden listener threw:", e);
2299
- }
2300
- for (let e of ur) e.delayMs <= 0 ? pr(e) : mr(e);
2301
- } else if (e && !sr.value) {
2302
- hr();
2303
- let e = cr == null ? 0 : Date.now() - cr;
2304
- cr = null, sr.value = !0, or.debug(`tab → visible (hiddenMs=${e}, visible-listeners=${dr.size})`);
2305
- for (let { cb: t } of dr) try {
2306
- t({ hiddenMs: e });
2307
- } catch (e) {
2308
- or.error("onTabVisible listener threw:", e);
2309
- }
2310
- }
2311
- }), document.addEventListener("freeze", () => {
2312
- for (let e of ur) e.timer !== null && (clearTimeout(e.timer), e.timer = null, pr(e));
2313
- }));
2314
- }
2315
- function _r() {
2316
- gr();
2317
- let e = s(() => sr.value);
2318
- function t(e) {
2319
- let t = { cb: e };
2320
- lr.add(t);
2321
- let n = () => {
2322
- lr.delete(t);
2323
- };
2324
- return p(n), n;
2325
- }
2326
- function n(e, t = {}) {
2327
- let n = {
2328
- cb: e,
2329
- delayMs: t.delayMs ?? 3e4,
2330
- timer: null
2331
- };
2332
- ur.add(n);
2333
- let r = () => {
2334
- n.timer !== null && (clearTimeout(n.timer), n.timer = null), ur.delete(n);
2335
- };
2336
- return p(r), r;
2337
- }
2338
- function r(e) {
2339
- let t = { cb: e };
2340
- dr.add(t);
2341
- let n = () => {
2342
- dr.delete(t);
2343
- };
2344
- return p(n), n;
2345
- }
2346
- return {
2347
- isVisible: e,
2348
- onTabHidden: t,
2349
- onTabPaused: n,
2350
- onTabVisible: r
2351
- };
2352
- }
2353
- var Z = {
2354
- WEBRTC: {
2355
- RECONNECT_DELAY: 1e3,
2356
- CONNECT_TIMEOUT: 1e4,
2357
- WS_CONNECT_TIMEOUT: 5e3,
2358
- ICE_SERVERS: [{ urls: "stun:stun.l.google.com:19302" }]
2359
- },
2360
- MSE: {
2361
- BUFFER_SIZE: 2097152,
2362
- BUFFER_WINDOW: 5,
2363
- MAX_BUFFER_WINDOW: 60
2364
- },
2365
- CODECS: {
2366
- DEFAULT: [
2367
- "avc1.640029",
2368
- "avc1.64002A",
2369
- "avc1.640033",
2370
- "hvc1.1.6.L153.B0",
2371
- "mp4a.40.2",
2372
- "mp4a.40.5",
2373
- "flac",
2374
- "opus"
2375
- ],
2376
- WEBRTC_VIDEO: [
2377
- "H264",
2378
- "VP8",
2379
- "VP9"
2380
- ],
2381
- WEBRTC_AUDIO: [
2382
- "opus",
2383
- "G722",
2384
- "PCMU",
2385
- "PCMA"
2386
- ]
2387
- }
2388
- };
2389
- function vr(e) {
2390
- if (e.byteLength < 2) return !1;
2391
- let t = new Uint8Array(e, 0, 2);
2392
- return t[0] === 255 && t[1] === 216;
2393
- }
2394
- function yr(e) {
2395
- let { signal: t } = e, n = document.createElement("canvas"), r = n.getContext("2d", { alpha: !1 }), i = n.captureStream(), a = 0, o = !1, s, c = !1;
2396
- function l(e) {
2397
- c || t.aborted || (o ? s = e : u(e));
2398
- }
2399
- async function u(e) {
2400
- o = !0;
2401
- try {
2402
- let t = await createImageBitmap(new Blob([e], { type: "image/jpeg" }));
2403
- c || d(t), t.close();
2404
- } catch {}
2405
- o = !1;
2406
- let t = s;
2407
- s = void 0, t && !c && u(t);
2408
- }
2409
- function d(e) {
2410
- r && ((n.width !== e.width || n.height !== e.height) && (n.width = e.width, n.height = e.height), r.drawImage(e, 0, 0), a++);
2411
- }
2412
- function f() {
2413
- c = !0, s = void 0;
2414
- for (let e of i.getTracks()) e.stop();
2415
- }
2416
- return t.addEventListener("abort", f, { once: !0 }), {
2417
- stream: i,
2418
- get frames() {
2419
- return a;
2420
- },
2421
- appendFrame: l,
2422
- close: f
2423
- };
2424
- }
2425
- var br = 1836019574, xr = 1953653099, Sr = 1953196132, Cr = 1835297121, wr = 1835296868, Tr = 1751411826, Er = 1836475768, Dr = 1953654136, Or = 1836019558, kr = 1953653094, Ar = 1952868452, jr = 1952867444, Mr = 1953658222, Nr = 1986618469, Pr = 65536, Fr = 4096;
2426
- function Ir() {
2427
- let e = /* @__PURE__ */ new Map(), t;
2428
- function n(n, r, i) {
2429
- let a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
2430
- Lr(n, r, i, (e, t, r) => {
2431
- if (e === xr) {
2432
- let e = {
2433
- id: -1,
2434
- timescale: 0,
2435
- video: !1
2436
- };
2437
- Lr(n, t, r, (t, r, i) => {
2438
- t === Sr && r + 24 <= i ? e.id = n.getUint32(r + (n.getUint8(r) === 1 ? 20 : 12)) : t === Cr && Lr(n, r, i, (t, r, i) => {
2439
- t === wr && r + 24 <= i ? e.timescale = n.getUint32(r + (n.getUint8(r) === 1 ? 20 : 12)) : t === Tr && r + 12 <= i && (e.video = n.getUint32(r + 8) === Nr);
2440
- });
2441
- }), e.id >= 0 && e.timescale > 0 && a.set(e.id, e);
2442
- } else e === Er && Lr(n, t, r, (e, t, r) => {
2443
- e === Dr && t + 24 <= r && o.set(n.getUint32(t + 4), {
2444
- duration: n.getUint32(t + 12),
2445
- flags: n.getUint32(t + 20)
2446
- });
2447
- });
2448
- }), e.clear();
2449
- for (let [t, { timescale: n, video: r }] of a) {
2450
- let i = o.get(t);
2451
- e.set(t, {
2452
- timescale: n,
2453
- video: r,
2454
- defaultDuration: i?.duration ?? 0,
2455
- defaultFlags: i?.flags ?? 0
2456
- });
2457
- }
2458
- t = [...e.values()].some((e) => e.video);
2459
- }
2460
- function r(t, n, r, i) {
2461
- let a = {
2462
- duration: 0,
2463
- flags: 0
2464
- };
2465
- Lr(t, n, r, (n, r, o) => {
2466
- if (n === Ar && r + 8 <= o) {
2467
- let n = e.get(t.getUint32(r + 4)), i = t.getUint32(r) & 16777215, s = 8 + (i & 1 ? 8 : 0) + (i & 2 ? 4 : 0) + (i & 8 ? 4 : 0) + (i & 16 ? 4 : 0) + (i & 32 ? 4 : 0);
2468
- if (!n?.video || r + s > o) return;
2469
- let c = r + 8 + (i & 1 ? 8 : 0) + (i & 2 ? 4 : 0);
2470
- a.duration = n.defaultDuration, a.flags = n.defaultFlags, i & 8 && (a.duration = t.getUint32(c), c += 4), i & 16 && (c += 4), i & 32 && (a.flags = t.getUint32(c)), a.track = n;
2471
- } else n === jr && r + 8 <= o ? t.getUint8(r) === 0 ? a.baseTime = t.getUint32(r + 4) : r + 12 <= o && (a.baseTime = t.getUint32(r + 4) * 2 ** 32 + t.getUint32(r + 8)) : n === Mr && Rr(a) && (a.baseTime = zr(t, r, o, a, i));
2472
- });
2473
- }
2474
- function i(e, i) {
2475
- let a = new DataView(e);
2476
- Lr(a, 0, a.byteLength, (e, o, s) => {
2477
- e === br ? n(a, o, s) : e === Or && t && Lr(a, o, s, (e, t, n) => {
2478
- e === kr && r(a, t, n, i);
2479
- });
2480
- });
2481
- }
2482
- return {
2483
- get hasVideo() {
2484
- return t;
2485
- },
2486
- scan: i
2487
- };
2488
- }
2489
- function Lr(e, t, n, r) {
2490
- let i = t;
2491
- for (; i + 8 <= n;) {
2492
- let t = e.getUint32(i), a = 8;
2493
- if (t === 1) {
2494
- if (i + 16 > n) return;
2495
- t = e.getUint32(i + 8) * 2 ** 32 + e.getUint32(i + 12), a = 16;
2496
- } else t === 0 && (t = n - i);
2497
- if (t < a || i + t > n) return;
2498
- r(e.getUint32(i + 4), i + a, i + t), i += t;
2499
- }
2500
- }
2501
- function Rr(e) {
2502
- return e.track !== void 0 && e.baseTime !== void 0;
2503
- }
2504
- function zr(e, t, n, r, i) {
2505
- if (t + 8 > n) return r.baseTime;
2506
- let a = e.getUint8(t), o = e.getUint32(t) & 16777215, s = e.getUint32(t + 4), c = t + 8;
2507
- o & 1 && (c += 4);
2508
- let l;
2509
- if (o & 4) {
2510
- if (c + 4 > n) return r.baseTime;
2511
- l = e.getUint32(c), c += 4;
2512
- }
2513
- let u = (o & 256 ? 4 : 0) + (o & 512 ? 4 : 0) + (o & 1024 ? 4 : 0) + (o & 2048 ? 4 : 0);
2514
- if (s > Fr || c + s * u > n) return r.baseTime;
2515
- let d = r.baseTime;
2516
- for (let t = 0; t < s; t++) {
2517
- let n = r.duration, s = t === 0 && l !== void 0 ? l : r.flags, u = 0;
2518
- o & 256 && (n = e.getUint32(c), c += 4), o & 512 && (c += 4), o & 1024 && (s = e.getUint32(c), c += 4), o & 2048 && (u = a === 0 ? e.getUint32(c) : e.getInt32(c), c += 4), s & Pr || i((d + u) / r.track.timescale), d += n;
2519
- }
2520
- return d;
2521
- }
2522
- var Br = "hvc1.1.6.L153.B0";
2523
- function Vr() {
2524
- return navigator.userAgent.match(/version\/(\d+)/i);
2525
- }
2526
- function Hr() {
2527
- return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
2528
- }
2529
- function Ur() {
2530
- return globalThis.Capacitor?.isNativePlatform?.() ? !0 : typeof navigator > "u" ? !1 : Hr() || /Macintosh/i.test(navigator.userAgent) && navigator.maxTouchPoints > 1;
2531
- }
2532
- function Wr() {
2533
- let e = [...Z.CODECS.DEFAULT], t = Vr();
2534
- if (t?.[1]) {
2535
- let n = parseInt(t[1], 10);
2536
- if (n < 13) {
2537
- let t = e.indexOf("mp4a.40.2");
2538
- t > -1 && e.splice(t);
2539
- } else if (n < 14) {
2540
- let t = e.indexOf("flac");
2541
- t > -1 && e.splice(t);
2542
- } else {
2543
- let t = e.indexOf("opus");
2544
- t > -1 && e.splice(t);
2545
- }
2546
- }
2547
- return e;
2548
- }
2549
- function Gr(e, t) {
2550
- return e.filter((e) => t(`video/mp4; codecs="${e}"`)).join(",");
2551
- }
2552
- function Kr(e) {
2553
- return Z.CODECS.WEBRTC_AUDIO.includes(e);
2554
- }
2555
- function qr(e) {
2556
- return Z.CODECS.WEBRTC_VIDEO.includes(e) ? !0 : e === "H265" && $r();
2557
- }
2558
- var Jr, Yr;
2559
- function Xr(e) {
2560
- if (e === "auto") return Xr("webrtc") || Xr("mse");
2561
- if (e === "mse") return Jr === void 0 && (Jr = !!ni()?.isTypeSupported(`video/mp4; codecs="${Br}"`)), Jr;
2562
- if (Yr === void 0) try {
2563
- Yr = !!(RTCRtpReceiver?.getCapabilities("video")?.codecs)?.some((e) => e.mimeType.toLowerCase().includes("h265") || e.mimeType.toLowerCase().includes("hevc"));
2564
- } catch {
2565
- Yr = !1;
2566
- }
2567
- return Yr;
2568
- }
2569
- function Zr() {
2570
- return typeof createImageBitmap == "function" && typeof HTMLCanvasElement == "function" && typeof HTMLCanvasElement.prototype.captureStream == "function";
2571
- }
2572
- function Qr(e) {
2573
- e === "mse" ? Jr = !1 : Yr = !1;
2574
- }
2575
- function $r() {
2576
- return Xr("webrtc");
2577
- }
2578
- function ei(e) {
2579
- let t = e.audio.filter((e) => e.direction === "sendonly"), n = e.video.filter((e) => e.direction === "sendonly"), r = t.length === 0 || t.some((e) => Kr(e.codec)), i = n.length === 0 || n.some((e) => qr(e.codec)), a = [];
2580
- return r || a.push(...t.map((e) => e.codec)), i || a.push(...n.map((e) => e.codec)), {
2581
- compatible: r && i,
2582
- audioCompatible: r,
2583
- videoCompatible: i,
2584
- incompatibleCodecs: a
2585
- };
2586
- }
2587
- function ti() {
2588
- return "ManagedMediaSource" in window;
2589
- }
2590
- function ni() {
2591
- if (ti()) return window.ManagedMediaSource;
2592
- if ("MediaSource" in window) return window.MediaSource;
2593
- }
2594
- function ri(e) {
2595
- return e ? typeof document < "u" && "pictureInPictureElement" in document && document.pictureInPictureElement === e || e.webkitPresentationMode === "picture-in-picture" : !1;
2596
- }
2597
- function ii(e, t) {
2598
- return new Promise((n, r) => {
2599
- if (t.aborted) {
2600
- r(new DOMException("Aborted", "AbortError"));
2601
- return;
2602
- }
2603
- let i = setTimeout(n, e);
2604
- t.addEventListener("abort", () => {
2605
- clearTimeout(i), r(new DOMException("Aborted", "AbortError"));
2606
- }, { once: !0 });
2607
- });
2608
- }
2609
- var ai = .001, oi = 256, si = .3, ci = 262144;
2610
- function li(e) {
2611
- let { videoElement: t, onReady: n, onFirstData: r, onError: i, signal: a } = e, o = null, s = null, c = null, l = !1, u = !1, d = !1, f = /* @__PURE__ */ new Uint8Array(), p = 0, m = [], h = Wr(), g = Ir(), _ = [];
2612
- function v() {
2613
- if (a.aborted) return;
2614
- let e = ni();
2615
- if (!e) {
2616
- A(/* @__PURE__ */ Error("MediaSource not supported"), "setup");
2617
- return;
2618
- }
2619
- o = new e();
2620
- let n = ti(), r = t.src;
2621
- return o.addEventListener("sourceopen", () => {
2622
- a.aborted || !n && r && r.startsWith("blob:") && r !== t.src && URL.revokeObjectURL(r);
2623
- }, { once: !0 }), n ? (t.disableRemotePlayback = !0, t.srcObject = o) : (c = URL.createObjectURL(o), t.src = c, t.srcObject = null), t.addEventListener("error", k), Gr(h, e.isTypeSupported.bind(e));
2624
- }
2625
- function y(e) {
2626
- if (a.aborted || !o) return;
2627
- if (o.readyState !== "open") {
2628
- o.addEventListener("sourceopen", () => {
2629
- a.aborted || y(e);
2630
- }, { once: !0 });
2631
- return;
2632
- }
2633
- p = 0, _.length = 0;
2634
- let t = ni();
2635
- if (t && !t.isTypeSupported(e)) A(/* @__PURE__ */ Error(`MIME type not supported: ${e}`), "setup");
2636
- else try {
2637
- if (s = o.addSourceBuffer(e), s.mode = "segments", s.addEventListener("updateend", b), s.addEventListener("error", O), l = !0, m.length > 0) {
2638
- for (let e of m) x(e);
2639
- m.length = 0;
2640
- }
2641
- if (d || a.aborted) return;
2642
- n();
2643
- } catch (e) {
2644
- A(e, l ? "runtime" : "setup");
2645
- }
2646
- }
2647
- function b() {
2648
- if (!a.aborted && !d && s && o) {
2649
- if (!s.updating && p > 0) try {
2650
- s.appendBuffer(f.subarray(0, p)), p = 0;
2651
- } catch (e) {
2652
- if (!C(e)) {
2653
- A(e, "runtime");
2654
- return;
2655
- }
2656
- }
2657
- if (!s.updating && s.buffered?.length) {
2658
- let e = s.buffered.end(s.buffered.length - 1), n = s.buffered.start(0), i = Z.MSE.BUFFER_WINDOW;
2659
- u || (u = !0, r());
2660
- let a = E(Math.min(t.currentTime, e) - i);
2661
- if (e - n > Z.MSE.MAX_BUFFER_WINDOW) {
2662
- let t = E(e - i);
2663
- a = t !== void 0 && t > n + ai ? t : e - i;
2664
- }
2665
- if (a !== void 0 && a > n + ai) {
2666
- try {
2667
- s.remove(n, a - ai), o.setLiveSeekableRange(a, e);
2668
- } catch {}
2669
- T(a);
2670
- }
2671
- if (t.currentTime < e - i) {
2672
- let n = D(e - i, e);
2673
- n > t.currentTime && (t.currentTime = n);
2674
- }
2675
- let c = e - t.currentTime;
2676
- c > 1 ? t.playbackRate = 1.1 : c < .1 ? t.playbackRate = .9 : t.playbackRate = 1;
2677
- }
2678
- }
2679
- }
2680
- function x(e) {
2681
- if (!(a.aborted || d)) {
2682
- if (!s) m.push(e);
2683
- else if (o?.readyState === "closed" || o?.readyState === "ended") A(/* @__PURE__ */ Error(`MediaSource ${o.readyState}`), "runtime");
2684
- else if (g.scan(e, w), s.updating || p > 0) {
2685
- if (!S(new Uint8Array(e))) {
2686
- p = 0, A(/* @__PURE__ */ Error("MSE pending buffer overflow"), "runtime");
2687
- return;
2688
- }
2689
- } else try {
2690
- s.appendBuffer(e);
2691
- } catch (t) {
2692
- C(t) ? S(new Uint8Array(e)) : A(t, "runtime");
2693
- }
2694
- }
2695
- }
2696
- function S(e) {
2697
- let t = p + e.byteLength;
2698
- if (t > Z.MSE.BUFFER_SIZE) return !1;
2699
- if (t > f.byteLength) {
2700
- let e = Math.max(f.byteLength, ci);
2701
- for (; e < t;) e *= 2;
2702
- let n = new Uint8Array(Math.min(e, Z.MSE.BUFFER_SIZE));
2703
- n.set(f.subarray(0, p)), f = n;
2704
- }
2705
- return f.set(e, p), p = t, !0;
2706
- }
2707
- function C(e) {
2708
- if (e?.name !== "QuotaExceededError" || !s || s.updating || !s.buffered?.length) return !1;
2709
- try {
2710
- let e = s.buffered.start(0), n = s.buffered.end(s.buffered.length - 1), r = E(Math.min(t.currentTime, n)) ?? Math.max(e + 1, n - Z.MSE.BUFFER_WINDOW);
2711
- return r <= e + ai ? !1 : (s.remove(e, r - ai), T(r), !0);
2712
- } catch {
2713
- return !1;
2714
- }
2715
- }
2716
- function w(e) {
2717
- for (; _.length && _[_.length - 1] >= e;) _.pop();
2718
- _.push(e), _.length > oi && _.shift();
2719
- }
2720
- function T(e) {
2721
- for (; _.length && _[0] < e;) _.shift();
2722
- }
2723
- function E(e) {
2724
- if (g.hasVideo === !1) return e;
2725
- for (let t = _.length - 1; t >= 0; t--) if (_[t] <= e) return _[t];
2726
- }
2727
- function D(e, t) {
2728
- if (!g.hasVideo) return e;
2729
- let n = e;
2730
- for (let r of _) if (r > t || (n = r, r >= e)) break;
2731
- return n;
2732
- }
2733
- function O() {
2734
- A(/* @__PURE__ */ Error("SourceBuffer error"), "runtime");
2735
- }
2736
- function k() {
2737
- let e = t.error;
2738
- A(Error(e?.message || `Video element error ${e?.code ?? "unknown"}`), "runtime");
2739
- }
2740
- function A(e, t) {
2741
- d || a.aborted || (d = !0, i(e instanceof Error ? e : Error(String(e)), t));
2742
- }
2743
- function j() {
2744
- if (t.removeEventListener("error", k), s) {
2745
- if (s.removeEventListener("updateend", b), s.removeEventListener("error", O), o?.readyState === "open") try {
2746
- o.removeSourceBuffer(s);
2747
- } catch {}
2748
- s = null;
2749
- }
2750
- if (o?.readyState === "open") try {
2751
- o.endOfStream();
2752
- } catch {}
2753
- o = null, c &&= (URL.revokeObjectURL(c), null), l = !1, u = !1, p = 0, m.length = 0, _.length = 0;
2754
- }
2755
- return a.addEventListener("abort", j, { once: !0 }), {
2756
- get mediaSource() {
2757
- return o;
2758
- },
2759
- get sourceBuffer() {
2760
- return s;
2761
- },
2762
- get isReady() {
2763
- return l;
2764
- },
2765
- setup: v,
2766
- initializeBuffer: y,
2767
- appendBuffer: x,
2768
- close: j
2769
- };
2770
- }
2771
- function ui(e) {
2772
- if (e.buffered.length > 0) {
2773
- let t = e.buffered.end(e.buffered.length - 1);
2774
- t - e.currentTime > 1 && (e.currentTime = t - si);
2775
- }
2776
- }
2777
- async function di(e) {
2778
- try {
2779
- await e.play();
2780
- } catch {
2781
- e.muted || (e.muted = !0, await di(e));
2782
- }
2783
- }
2784
- function fi(e, t, n) {
2785
- let r = new RTCPeerConnection({
2786
- bundlePolicy: "max-bundle",
2787
- iceServers: [...Z.WEBRTC.ICE_SERVERS]
2788
- });
2789
- return r.onicecandidate = (r) => {
2790
- if (e.aborted || n && r.candidate?.protocol === "udp") return;
2791
- let i = r.candidate?.toJSON().candidate ?? "";
2792
- i && t(i);
2793
- }, r;
2794
- }
2795
- async function pi(e, t, n) {
2796
- !t.aborted && e && await e.setRemoteDescription({
2797
- type: "answer",
2798
- sdp: n
2799
- });
2800
- }
2801
- async function mi(e, t, n, r) {
2802
- !t.aborted && e && (r && n.includes(" udp ") || await e.addIceCandidate({
2803
- candidate: n,
2804
- sdpMid: "0"
2805
- }));
2806
- }
2807
- async function hi(e, t, n) {
2808
- if (!t.aborted && e) try {
2809
- await e.sender.replaceTrack(n);
2810
- } catch {}
2811
- }
2812
- function gi(e) {
2813
- e.micTransceiver &&= (e.micTransceiver.sender.replaceTrack(null).catch(() => {}), null), e.pc &&= (e.pc.getTransceivers().forEach((e) => e.sender?.track?.stop()), e.pc.close(), null), e.isConnected = !1;
2814
- }
2815
- function _i(e) {
2816
- let { mode: t, onConnected: n, onDisconnected: r, onFailed: i, onCandidate: a, signal: o } = e, s = {
2817
- pc: null,
2818
- micTransceiver: null,
2819
- isConnected: !1
2820
- }, c = t === "webrtc/tcp";
2821
- function l() {
2822
- let e = fi(o, a, c);
2823
- return e.onconnectionstatechange = () => {
2824
- if (o.aborted) return;
2825
- let t = e.connectionState;
2826
- if (t === "connected") {
2827
- s.isConnected = !0;
2828
- let t = new MediaStream(e.getTransceivers().filter((e) => e.currentDirection === "recvonly").map((e) => e.receiver.track));
2829
- n(t);
2830
- } else t === "failed" ? (s.isConnected = !1, i()) : t === "disconnected" && (s.isConnected = !1, r());
2831
- }, e.addTransceiver("video", { direction: "recvonly" }), e.addTransceiver("audio", { direction: "recvonly" }), e;
2832
- }
2833
- async function u() {
2834
- if (o.aborted) return;
2835
- s.pc = l();
2836
- let e = await s.pc.createOffer();
2837
- return await s.pc.setLocalDescription(e), e.sdp;
2838
- }
2839
- function d() {
2840
- gi(s);
2841
- }
2842
- return o.addEventListener("abort", d, { once: !0 }), {
2843
- get pc() {
2844
- return s.pc;
2845
- },
2846
- get isConnected() {
2847
- return s.isConnected;
2848
- },
2849
- createOffer: u,
2850
- handleAnswer: (e) => pi(s.pc, o, e),
2851
- handleCandidate: (e) => mi(s.pc, o, e, c),
2852
- close: d
2853
- };
2854
- }
2855
- function vi(e) {
2856
- let { filterUdp: t, onConnected: n, onFailed: r, onCandidate: i, signal: a } = e, o = {
2857
- pc: null,
2858
- micTransceiver: null,
2859
- isConnected: !1
2860
- }, s = !1, c = [];
2861
- function l(e) {
2862
- s ? i(e) : c.push(e);
2863
- }
2864
- async function u(e) {
2865
- if (!a.aborted && o.pc) {
2866
- s = !0;
2867
- for (let e of c.splice(0)) i(e);
2868
- await o.pc.setRemoteDescription({
2869
- type: "answer",
2870
- sdp: e
2871
- });
2872
- }
2873
- }
2874
- function d() {
2875
- let e = fi(a, l, t);
2876
- return e.onconnectionstatechange = () => {
2877
- if (a.aborted) return;
2878
- let t = e.connectionState;
2879
- t === "connected" ? (o.isConnected = !0, n()) : t === "disconnected" ? o.isConnected = !1 : t === "failed" && (o.isConnected = !1, r());
2880
- }, o.micTransceiver = e.addTransceiver("audio", { direction: "sendonly" }), e;
2881
- }
2882
- async function f() {
2883
- if (a.aborted) return;
2884
- o.pc = d();
2885
- let e = await o.pc.createOffer();
2886
- return await o.pc.setLocalDescription(e), e.sdp;
2887
- }
2888
- function p() {
2889
- gi(o);
2890
- }
2891
- return a.addEventListener("abort", p, { once: !0 }), {
2892
- get isConnected() {
2893
- return o.isConnected;
2894
- },
2895
- createOffer: f,
2896
- handleAnswer: u,
2897
- handleCandidate: (e) => mi(o.pc, a, e, t),
2898
- setMicrophoneTrack: (e) => hi(o.micTransceiver, a, e),
2899
- close: p
2900
- };
2901
- }
2902
- async function yi(e, t) {
2903
- switch (t.type) {
2904
- case "webrtc/answer":
2905
- await e.handleAnswer(t.value);
2906
- break;
2907
- case "webrtc/candidate": t.value && await e.handleCandidate(t.value);
2908
- }
2909
- }
2910
- var Q = new m("StreamConnection"), bi = /mp4a|opus|flac|mp3/i, xi = 1e3, Si = 3e4, Ci = 3e4, wi = 15e3, Ti = 1e3, Ei = 3e3, Di = 15e3, Oi = 2, ki = 2e3;
2911
- function Ai() {
2912
- return typeof document < "u" && document.visibilityState === "hidden";
2913
- }
2914
- function ji(e) {
2915
- return typeof e.getVideoPlaybackQuality == "function" ? e.getVideoPlaybackQuality().totalVideoFrames : void 0;
2916
- }
2917
- function Mi(e) {
2918
- return e * (1 - Math.random() / 2);
2919
- }
2920
- var Ni = class {
2921
- status;
2922
- activeMode;
2923
- requestedMode;
2924
- activeResolution;
2925
- requestedResolution;
2926
- degradedFrom;
2927
- degradeReason;
2928
- source;
2929
- hasVideo;
2930
- hasAudio;
2931
- hasBackchannel;
2932
- isPlaying;
2933
- stalled;
2934
- error;
2935
- probeInfo;
2936
- muted;
2937
- paused;
2938
- nativeWidth;
2939
- nativeHeight;
2940
- camera;
2941
- videoElement;
2942
- containerElement;
2943
- target;
2944
- isReady;
2945
- triedSourceIds = /* @__PURE__ */ new Set();
2946
- options;
2947
- wsTransport;
2948
- scope = a(!0);
2949
- stopsWhenHidden = Ur();
2950
- connectionGeneration = 0;
2951
- abortController = new AbortController();
2952
- probedSourceId;
2953
- probeInFlight;
2954
- probing;
2955
- wasPausedByVisibility = !1;
2956
- hiddenPauseRan = !1;
2957
- disarmPipWatch = null;
2958
- wsHandle;
2959
- wsOpenedAt = 0;
2960
- webrtcHandler;
2961
- mseHandler;
2962
- mjpegHandler;
2963
- audioHandler;
2964
- audioElement;
2965
- cancelFirstFrameWatch;
2966
- awaitingWebRTCFrame = !1;
2967
- backchannelHandler;
2968
- pendingMicTrack = null;
2969
- offerPeer;
2970
- answeredPeer;
2971
- lastMediaStream = null;
2972
- stopWatchers = [];
2973
- failures = 0;
2974
- playingSince;
2975
- connectToken;
2976
- rejectedToken;
2977
- lastError;
2978
- mseRejected = !1;
2979
- mseAnswerPending = !1;
2980
- mseStopPending = !1;
2981
- healthInterval;
2982
- lastProgressAt = 0;
2983
- lastMediaTime = 0;
2984
- lastFrameCount;
2985
- frameCounterLive = !1;
2986
- offTabVisible;
2987
- offTabPaused;
2988
- onVideoPauseBound;
2989
- onVideoPlayBound;
2990
- onVideoResizeBound;
2991
- startWsConnectTimeout;
2992
- stopWsConnectTimeout;
2993
- startConnectTimeout;
2994
- stopConnectTimeout;
2995
- startMseConnectTimeout;
2996
- stopMseConnectTimeout;
2997
- constructor(e) {
2998
- this.options = e;
2999
- let t = k();
3000
- if (!t.wsTransport) throw Error("[camera.ui] StreamConnection requires a wsTransport on CameraUiContext — pass `wsTransport` to createCameraUiPlugin.");
3001
- this.target = t.target, this.wsTransport = t.wsTransport;
3002
- let { autoStart: n = !0 } = e;
3003
- this.status = r("idle"), this.activeMode = r("webrtc"), this.activeResolution = r("low-resolution"), this.degradedFrom = r(null), this.degradeReason = r(null), this.source = i(), this.hasVideo = r(!1), this.hasAudio = r(!1), this.hasBackchannel = r(!1), this.isPlaying = r(!1), this.stalled = r(!1), this.error = r(), this.probeInfo = i(), this.muted = r(!0), this.paused = r(!1), this.nativeWidth = r(0), this.nativeHeight = r(0), this.requestedMode = r(o(e.mode) ?? "auto"), this.requestedResolution = r(o(e.resolution) ?? "high-resolution"), this.camera = s(() => o(e.camera)), this.videoElement = s(() => o(e.videoElement)), this.containerElement = s(() => o(e.containerElement)), this.isReady = s(() => !!this.camera.value && !!this.videoElement.value && !!this.target.value), this.scope.run(() => {
3004
- let { onTabPaused: e, onTabVisible: t } = _r(), r = this.stopsWhenHidden ? 0 : ar, i = d(() => {
3005
- let e = this.wsHandle;
3006
- e && e.readyState !== WebSocket.OPEN && (e.readyState === WebSocket.CLOSED && performance.now() - this.wsOpenedAt < wi ? this.startWsConnectTimeout() : (this.disconnectWebSocket(), !this.abortController.signal.aborted && this.status.value !== "closed" && this.retryLater()));
3007
- }, Z.WEBRTC.WS_CONNECT_TIMEOUT, { immediate: !1 }), a = d(() => {
3008
- if (!this.abortController.signal.aborted) {
3009
- if (this.webrtcHandler && !this.webrtcHandler.isConnected) this.requestedMode.value === "auto" ? this.fallBackToMSE() : this.retryAfterNoMedia();
3010
- else if (this.webrtcHandler && this.awaitingWebRTCFrame || this.mjpegHandler && !this.isPlaying.value || this.status.value === "connected" && !this.isPlaying.value) {
3011
- if (Ai()) {
3012
- this.startConnectTimeout();
3013
- return;
3014
- }
3015
- this.handleNoFramesWhileConnected();
3016
- }
3017
- }
3018
- }, () => this.webrtcTookOver() ? Di : Z.WEBRTC.CONNECT_TIMEOUT, { immediate: !1 }), o = d(() => {
3019
- this.abortController.signal.aborted || this.status.value === "connected" || this.status.value === "closed" || this.mseHandler && !this.mseHandler.isReady && this.retryAfterNoMedia();
3020
- }, Z.WEBRTC.CONNECT_TIMEOUT, { immediate: !1 });
3021
- this.startWsConnectTimeout = i.start, this.stopWsConnectTimeout = i.stop, this.startConnectTimeout = a.start, this.stopConnectTimeout = a.stop, this.startMseConnectTimeout = o.start, this.stopMseConnectTimeout = o.stop, this.setupWatchers(), this.offTabPaused = e(() => {
3022
- Q.debug(`onTabPaused fired — status=${this.status.value}, isReady=${this.isReady.value}, target=${!!this.target.value}`), this.hiddenPauseRan = !0, this.status.value === "idle" || this.status.value === "closed" ? Q.debug(`onTabPaused — already in ${this.status.value}, skipping stop()`) : ri(this.videoElement.value) ? (Q.debug("onTabPaused — video is in picture-in-picture, keeping the stream"), this.watchPipLeave()) : (this.wasPausedByVisibility = !0, this.stop(), Q.debug("onTabPaused — stop() done, wasPausedByVisibility=true"));
3023
- }, { delayMs: r }), this.offTabVisible = t(({ hiddenMs: e }) => {
3024
- Q.debug(`onTabVisible fired — wasPausedByVisibility=${this.wasPausedByVisibility}, status=${this.status.value}, isReady=${this.isReady.value}, target=${!!this.target.value}`), this.disarmPipWatch?.();
3025
- let t = this.hiddenPauseRan;
3026
- this.hiddenPauseRan = !1, this.wasPausedByVisibility ? (this.wasPausedByVisibility = !1, this.startWhenReady()) : !t && e >= r && this.status.value === "connected" ? (Q.debug(`onTabVisible: hidden for ${e}ms without a stop, reconnecting`), this.restart()) : Q.debug("onTabVisible — not paused by visibility, no-op");
3027
- }), n && f(this.isReady, () => {
3028
- (this.status.value === "idle" || this.status.value === "closed") && this.start();
3029
- }, { immediate: !0 });
3030
- });
3031
- }
3032
- watchPipLeave() {
3033
- if (this.disarmPipWatch) return;
3034
- let e = this.videoElement.value;
3035
- if (!e) return;
3036
- let t = () => {
3037
- ri(e) || (this.disarmPipWatch?.(), (typeof document > "u" || document.visibilityState !== "visible") && this.status.value !== "idle" && this.status.value !== "closed" && (Q.debug("picture-in-picture closed while tab hidden — stopping the stream"), this.wasPausedByVisibility = !0, this.stop()));
3038
- };
3039
- e.addEventListener("leavepictureinpicture", t), e.addEventListener("webkitpresentationmodechanged", t), this.disarmPipWatch = () => {
3040
- e.removeEventListener("leavepictureinpicture", t), e.removeEventListener("webkitpresentationmodechanged", t), this.disarmPipWatch = null;
3041
- };
3042
- }
3043
- async start() {
3044
- if (Q.debug(`start() called — status=${this.status.value}, isReady=${this.isReady.value}`), this.status.value !== "idle" && this.status.value !== "closed") {
3045
- Q.debug(`start() — skipped, status is ${this.status.value}`);
3046
- return;
3047
- }
3048
- if (!this.isReady.value) {
3049
- Q.debug("start() — skipped, isReady=false");
3050
- return;
3051
- }
3052
- if (this.stopsWhenHidden && Ai()) {
3053
- Q.debug("start() — page hidden, starting once it is visible"), this.wasPausedByVisibility = !0;
3054
- return;
3055
- }
3056
- this.cleanup(), this.abortController = new AbortController();
3057
- let e = ++this.connectionGeneration;
3058
- this.triedSourceIds.clear(), this.failures = 0, this.playingSince = void 0, this.status.value = "connecting", this.error.value = void 0, this.isPlaying.value = !1;
3059
- try {
3060
- let t = this.initializeSource();
3061
- if (t === "unsupported") {
3062
- Q.debug("start() — no source with a playable codec"), this.setUnsupported();
3063
- return;
3064
- }
3065
- if (!t) {
3066
- Q.debug("start() — no streaming source available"), this.error.value = /* @__PURE__ */ Error("No streaming source available"), this.status.value = "error";
3067
- return;
3068
- }
3069
- let n;
3070
- for (let t = 0; t < 3; t++) {
3071
- let t = this.source.value?._id;
3072
- n = t, Q.debug("start(): connecting WebSocket");
3073
- let r = await this.dialWithProbe();
3074
- if (e !== this.connectionGeneration) {
3075
- Q.debug("start() — generation stale after probe, aborting");
3076
- return;
3077
- }
3078
- r && t && this.probeSaysUnplayable(r) && this.triedSourceIds.add(t);
3079
- let i = this.initializeSource();
3080
- if (i === "unsupported") {
3081
- this.disconnectWebSocket(), this.setUnsupported();
3082
- return;
3083
- }
3084
- if (!i) {
3085
- this.disconnectWebSocket(), this.error.value = /* @__PURE__ */ Error("No streaming source available"), this.status.value = "error";
3086
- return;
3087
- }
3088
- if (!r || this.source.value?._id === t) break;
3089
- }
3090
- this.source.value?._id !== n && this.dialWithProbe();
3091
- } catch (t) {
3092
- if (e !== this.connectionGeneration) return;
3093
- Q.debug("start() — error:", t), this.error.value = t instanceof Error ? t : Error(String(t)), this.status.value = "error";
3094
- }
3095
- }
3096
- stop() {
3097
- this.status.value === "closed" ? Q.debug("stop() — already closed, no-op") : (Q.debug(`stop() — was ${this.status.value}, transitioning to closed`), ++this.connectionGeneration, this.status.value = "closed", this.isPlaying.value = !1, this.cleanup());
3098
- }
3099
- async setMode(e) {
3100
- this.requestedMode.value !== e && (this.requestedMode.value = e, this.activeMode.value = e === "auto" ? "webrtc" : e, this.status.value === "unsupported" ? (this.stop(), await this.start()) : this.status.value === "connected" && await this.restart());
3101
- }
3102
- async setResolution(e) {
3103
- if (this.requestedResolution.value === e) return;
3104
- if (this.requestedResolution.value = e, this.status.value === "unsupported") {
3105
- this.stop(), await this.start();
3106
- return;
3107
- }
3108
- let t = this.getSourceForResolution(e);
3109
- t && t !== "unsupported" && t.source._id !== this.source.value?._id && (this.source.value = t.source, this.activeResolution.value = t.effectiveResolution, this.degradedFrom.value = t.degradedFrom, this.degradeReason.value = t.degradedFrom ? "codec" : null, this.status.value === "connected" && await this.restart());
3110
- }
3111
- async setMicrophone(e) {
3112
- e ? this.hasBackchannel.value && (this.pendingMicTrack = e, this.backchannelHandler ? this.backchannelHandler.isConnected && await this.backchannelHandler.setMicrophoneTrack(e) : await this.startBackchannel()) : this.closeBackchannel();
3113
- }
3114
- setMuted(e) {
3115
- this.muted.value = e;
3116
- let t = this.videoElement.value;
3117
- t && (t.muted = e), this.audioElement && (this.audioElement.muted = e);
3118
- }
3119
- async play() {
3120
- this.paused.value = !1;
3121
- let e = this.videoElement.value;
3122
- if (!e) return;
3123
- try {
3124
- await e.play();
3125
- } catch {
3126
- if (!e.muted) {
3127
- e.muted = !0, this.muted.value = !0;
3128
- try {
3129
- await e.play();
3130
- } catch {}
3131
- }
3132
- }
3133
- let t = this.audioElement;
3134
- t && (t.muted = this.muted.value, t.play().catch(() => {}));
3135
- }
3136
- pause() {
3137
- this.paused.value = !0;
3138
- let e = this.videoElement.value;
3139
- e && e.pause(), this.audioElement?.pause();
3140
- }
3141
- destroy() {
3142
- for (let e of this.stopWatchers) e();
3143
- this.stopWatchers = [], this.offTabVisible?.(), this.offTabVisible = void 0, this.offTabPaused?.(), this.offTabPaused = void 0, this.disarmPipWatch?.();
3144
- let e = this.videoElement.value;
3145
- e && (this.onVideoPauseBound && e.removeEventListener("pause", this.onVideoPauseBound), this.onVideoPlayBound && e.removeEventListener("play", this.onVideoPlayBound), this.onVideoResizeBound && e.removeEventListener("resize", this.onVideoResizeBound)), this.stop(), this.scope.stop();
3146
- }
3147
- restart() {
3148
- return this.reconnect(1e3);
3149
- }
3150
- invalidateProbe() {
3151
- this.probeInfo.value = void 0, this.probeInFlight = void 0;
3152
- }
3153
- async reconnect(e, t = "reconnecting") {
3154
- this.status.value = t, this.isPlaying.value = !1, this.cleanup(), this.abortController = new AbortController();
3155
- let n = ++this.connectionGeneration;
3156
- try {
3157
- await ii(e, this.abortController.signal);
3158
- } catch {
3159
- return;
3160
- }
3161
- if (n === this.connectionGeneration) {
3162
- if (!this.isReady.value) this.status.value = "idle";
3163
- else {
3164
- this.status.value = "reconnecting";
3165
- try {
3166
- let e = this.initializeSource();
3167
- if (e === "unsupported") {
3168
- this.setUnsupported();
3169
- return;
3170
- }
3171
- if (!e) {
3172
- this.error.value = /* @__PURE__ */ Error("No streaming source available"), this.status.value = "error";
3173
- return;
3174
- }
3175
- this.dialWithProbe();
3176
- } catch (e) {
3177
- if (n !== this.connectionGeneration) return;
3178
- this.error.value = e instanceof Error ? e : Error(String(e)), this.status.value = "error";
3179
- }
3180
- }
3181
- }
3182
- }
3183
- retryLater(e) {
3184
- let t = this.nextRetryDelay();
3185
- e && (this.error.value = e), this.reconnect(t, e ? "error" : "reconnecting");
3186
- }
3187
- nextRetryDelay() {
3188
- this.playingSince !== void 0 && performance.now() - this.playingSince >= Ci && (this.failures = 0), this.playingSince = void 0;
3189
- let e = Math.min(xi * 2 ** this.failures, Si);
3190
- return this.failures++, Mi(e);
3191
- }
3192
- retryAfterNoMedia() {
3193
- this.markSourceUndecodable() ? this.restart() : this.retryLater(this.lastError);
3194
- }
3195
- startWhenReady() {
3196
- if (this.isReady.value) {
3197
- Q.debug("startWhenReady — already ready, calling start() now"), this.start();
3198
- return;
3199
- }
3200
- Q.debug(`startWhenReady — not ready (camera=${!!this.camera.value}, video=${!!this.videoElement.value}, target=${!!this.target.value}), watching isReady`);
3201
- let e = c(this.isReady, (t) => {
3202
- t && (Q.debug("startWhenReady — isReady → true, calling start()"), e(), this.start());
3203
- });
3204
- this.stopWatchers.push(e);
3205
- }
3206
- setupWatchers() {
3207
- let e = c(() => this.target.value?.endpoint.url ?? null, (e, t) => {
3208
- e && t && e !== t && this.status.value !== "idle" && this.status.value !== "closed" && this.restart();
3209
- });
3210
- this.stopWatchers.push(e);
3211
- let t = c(() => this.target.value?.tokens.access, (e) => {
3212
- this.rejectedToken !== void 0 && e && e !== this.rejectedToken && (this.rejectedToken = void 0, this.status.value !== "idle" && this.status.value !== "closed" && this.reconnect(0));
3213
- });
3214
- this.stopWatchers.push(t);
3215
- let n = c(() => this.camera.value?.sources.value, () => {
3216
- this.status.value === "unsupported" && (this.stop(), this.start());
3217
- });
3218
- this.stopWatchers.push(n);
3219
- let r = c(() => o(this.options.mode), (e) => {
3220
- e !== void 0 && e !== this.requestedMode.value && this.setMode(e);
3221
- });
3222
- this.stopWatchers.push(r);
3223
- let i = c(() => o(this.options.resolution), (e) => {
3224
- e !== void 0 && e !== this.requestedResolution.value && this.setResolution(e);
3225
- });
3226
- this.stopWatchers.push(i);
3227
- let a = c(this.videoElement, (e, t) => {
3228
- t && (this.onVideoPauseBound && t.removeEventListener("pause", this.onVideoPauseBound), this.onVideoPlayBound && t.removeEventListener("play", this.onVideoPlayBound), this.onVideoResizeBound && t.removeEventListener("resize", this.onVideoResizeBound)), e && (this.onVideoPauseBound = () => {
3229
- this.paused.value || e.play().catch(() => {});
3230
- }, this.onVideoPlayBound = () => {
3231
- this.paused.value = !1;
3232
- }, this.onVideoResizeBound = () => {
3233
- e.videoWidth > 0 && e.videoHeight > 0 && (this.nativeWidth.value = e.videoWidth, this.nativeHeight.value = e.videoHeight);
3234
- }, e.addEventListener("pause", this.onVideoPauseBound), e.addEventListener("play", this.onVideoPlayBound), e.addEventListener("resize", this.onVideoResizeBound), e.videoWidth > 0 && e.videoHeight > 0 && (this.nativeWidth.value = e.videoWidth, this.nativeHeight.value = e.videoHeight));
3235
- }, { immediate: !0 });
3236
- this.stopWatchers.push(a);
3237
- let s = c(() => this.status.value === "connected" && this.isPlaying.value, (e) => {
3238
- this.stopHealthCheck(), e && this.startHealthCheck();
3239
- }, { immediate: !0 });
3240
- this.stopWatchers.push(s);
3241
- let l = c([
3242
- this.camera,
3243
- this.videoElement,
3244
- () => this.target.value
3245
- ], ([e, t, n], [r, i]) => {
3246
- if (e !== r) this.status.value === "connected" ? e && t && n && this.restart() : this.status.value === "unsupported" && e && t && n && (this.stop(), this.start());
3247
- else if (t !== i && t) {
3248
- if (t.srcObject instanceof MediaStream) {
3249
- let e = t.srcObject;
3250
- if (e.active && e.getTracks().some((e) => e.readyState === "live")) {
3251
- di(t), this.lastMediaStream = e;
3252
- return;
3253
- }
3254
- }
3255
- if (this.status.value === "connected" && this.activeMode.value !== "mse") {
3256
- let e = this.lastMediaStream;
3257
- e?.active && e.getTracks().some((e) => e.readyState === "live") ? (t.srcObject = e, di(t)) : this.restart();
3258
- } else if (this.status.value === "connected" && this.activeMode.value === "mse") this.restart();
3259
- else if (this.status.value === "connecting" || this.status.value === "reconnecting") {
3260
- let e = c(() => this.isPlaying.value, (t) => {
3261
- let n = this.videoElement.value;
3262
- t && n?.srcObject instanceof MediaStream ? (di(n), e()) : t && n && !n.srcObject && this.lastMediaStream?.active && (n.srcObject = this.lastMediaStream, di(n), e());
3263
- }, { immediate: !0 });
3264
- this.stopWatchers.push(e);
3265
- }
3266
- }
3267
- });
3268
- this.stopWatchers.push(l);
3269
- }
3270
- isSourcePlayable(e) {
3271
- if (this.triedSourceIds.has(e._id)) return !1;
3272
- if (e.videoCodec === "JPEG") return Zr();
3273
- if (e.videoCodec !== "H265") return !0;
3274
- let t = this.requestedMode.value;
3275
- return Xr(t === "auto" ? "auto" : t === "mse" ? "mse" : "webrtc");
3276
- }
3277
- getSourceForResolution(e) {
3278
- let t = this.camera.value;
3279
- if (!t) return;
3280
- let n = [
3281
- "high-resolution",
3282
- "mid-resolution",
3283
- "low-resolution"
3284
- ], r = Math.max(0, n.indexOf(e)), i = !1;
3285
- for (let a = r; a < n.length; a++) {
3286
- let r = t.sources.value.find((e) => e.role === n[a]);
3287
- if (r) {
3288
- if (!this.isSourcePlayable(r)) i = !0;
3289
- else return {
3290
- source: r,
3291
- effectiveResolution: n[a],
3292
- degradedFrom: i ? e : null
3293
- };
3294
- }
3295
- }
3296
- let a = t.streamSource.value;
3297
- if (a && this.isSourcePlayable(a)) return {
3298
- source: a,
3299
- effectiveResolution: a.role ?? "low-resolution",
3300
- degradedFrom: i ? e : null
3301
- };
3302
- if (i || a) return "unsupported";
3303
- }
3304
- initializeSource() {
3305
- let e = this.getSourceForResolution(this.requestedResolution.value);
3306
- return e ? e === "unsupported" ? "unsupported" : (this.source.value = e.source, this.activeResolution.value = e.effectiveResolution, this.degradedFrom.value = e.degradedFrom, this.degradeReason.value = e.degradedFrom ? "codec" : null, this.probedSourceId && this.probedSourceId !== e.source._id && (this.probeInfo.value = void 0, this.probedSourceId = void 0, this.hasVideo.value = !1, this.hasAudio.value = !1, this.hasBackchannel.value = !1), !0) : !1;
3307
- }
3308
- setUnsupported() {
3309
- let e = this.camera.value?.sources.value.find((e) => e.videoCodec)?.videoCodec ?? "H265";
3310
- this.error.value = /* @__PURE__ */ Error(`${e} cannot be played on this device`), this.status.value = "unsupported";
3311
- }
3312
- probeSaysUnplayable(e) {
3313
- let t = e.video.filter((e) => e.direction === "sendonly");
3314
- if (!t.length) return !1;
3315
- if (t.every((e) => e.codec === "JPEG")) return !Zr();
3316
- if (!t.every((e) => e.codec === "H265")) return !1;
3317
- let n = this.requestedMode.value;
3318
- return !Xr(n === "auto" ? "auto" : n === "mse" ? "mse" : "webrtc");
3319
- }
3320
- sourceLikelyH265() {
3321
- let e = this.source.value;
3322
- if (!e) return !1;
3323
- if (e.videoCodec === "H265") return !0;
3324
- if (e.videoCodec !== void 0) return !1;
3325
- let t = this.probeInfo.value?.video.filter((e) => e.direction === "sendonly") ?? [];
3326
- return t.length > 0 && t.every((e) => e.codec === "H265");
3327
- }
3328
- markSourceUndecodable() {
3329
- let e = this.source.value;
3330
- return !e || !this.sourceLikelyH265() ? !1 : (this.triedSourceIds.add(e._id), this.invalidateProbe(), !0);
3331
- }
3332
- handleNoFramesWhileConnected() {
3333
- this.sourceLikelyH265() && !this.webrtcTookOver() && Qr(this.activeMode.value === "mse" ? "mse" : "webrtc"), this.requestedMode.value === "auto" && this.activeMode.value !== "mse" && !this.mjpegHandler && !this.mseRejected ? (this.webrtcHandler?.close(), this.webrtcHandler = void 0, this.awaitingWebRTCFrame = !1, this.activeMode.value = "mse", this.isPlaying.value = !1, this.status.value = "reconnecting", this.startMSE(), this.resumeBackchannel()) : this.retryAfterNoMedia();
3334
- }
3335
- webrtcTookOver() {
3336
- return this.awaitingWebRTCFrame && this.isPlaying.value;
3337
- }
3338
- noteDeliveredAudio(e) {
3339
- e && !this.hasAudio.value && (this.hasAudio.value = !0);
3340
- }
3341
- probeStream() {
3342
- let e = this.camera.value, t = this.source.value;
3343
- if (!e || !t || this.abortController.signal.aborted) return Promise.resolve(void 0);
3344
- if (this.probeInFlight?.sourceId === t._id) return this.probeInFlight.result;
3345
- let n = {
3346
- sourceId: t._id,
3347
- result: Promise.resolve(void 0)
3348
- };
3349
- return this.probeInFlight = n, n.result = this.askProbe(e, n), n.result;
3350
- }
3351
- async askProbe(e, t) {
3352
- try {
3353
- let n = await e.probeStream(t.sourceId, {
3354
- video: !0,
3355
- audio: ["pcma", "opus"],
3356
- microphone: !0
3357
- });
3358
- return n && this.probeInFlight === t && !this.abortController.signal.aborted && (this.probeInfo.value = n, this.probedSourceId = t.sourceId, this.hasBackchannel.value = n.audio.some((e) => e.direction === "recvonly"), this.hasAudio.value = n.audio.filter((e) => e.direction === "sendonly").length > 0, this.hasVideo.value = n.video.filter((e) => e.direction === "sendonly").length > 0), n;
3359
- } catch {
3360
- return;
3361
- } finally {
3362
- this.probeInFlight === t && (this.probeInFlight = void 0);
3363
- }
3364
- }
3365
- dialWithProbe() {
3366
- let e = this.settledProbe(this.probeForSource());
3367
- return this.probing = e, this.connectWebSocket(), e;
3368
- }
3369
- probeForSource() {
3370
- let e = this.source.value, t = this.probeInfo.value;
3371
- return t && e && this.probedSourceId === e._id ? Promise.resolve(t) : this.probeStream();
3372
- }
3373
- settledProbe(e) {
3374
- return new Promise((t) => {
3375
- let n = setTimeout(() => t(void 0), ki), r = (e) => {
3376
- clearTimeout(n), t(e);
3377
- };
3378
- e.then(r, () => r(void 0));
3379
- });
3380
- }
3381
- connectWebSocket() {
3382
- this.disconnectWebSocket();
3383
- let e = this.camera.value;
3384
- if (this.abortController.signal.aborted || !e || !this.source.value || !this.target.value) return;
3385
- let t = this.source.value.name ?? this.source.value.role ?? this.source.value._id, n = j(e.name.value, t);
3386
- this.connectToken = this.target.value.tokens.access, this.rejectedToken = void 0, this.lastError = void 0, this.mseRejected = !1, this.mseAnswerPending = !1, this.mseStopPending = !1, this.offerPeer = void 0, this.answeredPeer = void 0, this.wsOpenedAt = performance.now(), this.startWsConnectTimeout(), this.wsHandle = this.wsTransport.open({
3387
- path: "/api/go2rtc",
3388
- query: { src: n },
3389
- binaryType: "arraybuffer"
3390
- }), this.wsHandle.on("open", () => this.handleWsOpen()), this.wsHandle.on("close", (e) => this.handleWsClose(e)), this.wsHandle.on("message", (e) => this.handleWsMessage(e)), this.wsHandle.on("error", () => {});
3391
- }
3392
- disconnectWebSocket() {
3393
- this.stopWsConnectTimeout(), this.wsHandle &&= (this.wsHandle.dispose(), void 0);
3394
- }
3395
- sendWsMessage(e) {
3396
- this.wsHandle?.readyState === WebSocket.OPEN && this.wsHandle.send(JSON.stringify(e));
3397
- }
3398
- handleWsOpen() {
3399
- if (this.abortController.signal.aborted) return;
3400
- this.stopWsConnectTimeout(), this.status.value = "connecting";
3401
- let e = this.wsHandle;
3402
- (this.probing ?? Promise.resolve(void 0)).then(() => {
3403
- this.abortController.signal.aborted || this.wsHandle !== e || this.requestStream();
3404
- });
3405
- }
3406
- requestStream() {
3407
- if (this.sourceIsMjpeg()) {
3408
- this.startMjpeg();
3409
- return;
3410
- }
3411
- let e = this.requestedMode.value;
3412
- e === "auto" ? this.startAutoMode() : e === "webrtc" || e === "webrtc/tcp" ? this.startWebRTC(e) : e === "mse" && this.startMSE();
3413
- }
3414
- handleWsClose(e) {
3415
- if (this.status.value === "closed" || this.abortController.signal.aborted) return;
3416
- let t = e ? _(e) : "other";
3417
- if (t === "other") {
3418
- this.retryLater();
3419
- return;
3420
- }
3421
- let n = this.connectToken;
3422
- Q.debug(`go2rtc socket closed (${e?.code}): ${e?.reason}`), t === "forbidden" ? (this.error.value = Error(e?.reason || `Stream refused (${e?.code})`), this.status.value = "error", this.isPlaying.value = !1, this.cleanup(), this.rejectedToken = n) : this.target.value?.tokens.access === n ? (this.reconnect(Mi(Si)), this.rejectedToken = n) : this.reconnect(0);
3423
- }
3424
- handleWsMessage(e) {
3425
- if (!this.abortController.signal.aborted) {
3426
- if (typeof e.data == "string") {
3427
- let t;
3428
- try {
3429
- t = JSON.parse(e.data);
3430
- } catch {
3431
- return;
3432
- }
3433
- this.handleMessage(t);
3434
- } else this.mjpegHandler && vr(e.data) ? this.mjpegHandler.appendFrame(e.data) : (this.mseHandler ?? this.audioHandler)?.appendBuffer(e.data);
3435
- }
3436
- }
3437
- handleMessage(e) {
3438
- switch (e.type) {
3439
- case "webrtc/answer":
3440
- this.answeredPeer = this.takeOfferReply(), this.answeredPeer && yi(this.answeredPeer, e), this.resumeBackchannel();
3441
- break;
3442
- case "webrtc/candidate":
3443
- this.answeredPeer && this.isCurrentPeer(this.answeredPeer) && yi(this.answeredPeer, e);
3444
- break;
3445
- case "mse":
3446
- if (this.mseAnswerPending = !1, this.mseStopPending && (this.mseStopPending = !1, this.sendWsMessage({ type: "mse/stop" })), typeof e.value == "string") {
3447
- let t = this.mseHandler ?? this.audioHandler;
3448
- if (!t) break;
3449
- this.noteDeliveredAudio(bi.test(e.value)), t.initializeBuffer(e.value);
3450
- }
3451
- break;
3452
- case "mjpeg":
3453
- this.mjpegHandler && (this.status.value = "connected");
3454
- break;
3455
- case "error": this.handleGo2rtcError(String(e.value));
3456
- }
3457
- }
3458
- handleGo2rtcError(e) {
3459
- let t = e.slice(0, Math.max(0, e.indexOf(":"))), n = Error(e);
3460
- if (Q.debug(`go2rtc error: ${e}`), t === "webrtc/offer") {
3461
- let e = this.takeOfferReply();
3462
- if (e && e === this.webrtcHandler && !e.isConnected) {
3463
- this.lastError = n, this.stopConnectTimeout(), this.requestedMode.value === "auto" ? this.fallBackToMSE() : this.retryLater(n);
3464
- return;
3465
- }
3466
- e && e === this.backchannelHandler && this.closeBackchannel(), this.resumeBackchannel();
3467
- } else if (t === "mjpeg") this.mjpegHandler && this.retryLater(n);
3468
- else if (t === "mse") {
3469
- if (this.mseAnswerPending = !1, this.mseStopPending = !1, this.audioHandler) {
3470
- this.closeAudio();
3471
- return;
3472
- }
3473
- if (!this.mseHandler) return;
3474
- if (this.lastError = n, this.mseRejected = !0, this.requestedMode.value === "auto" && this.webrtcHandler) {
3475
- this.dropMSE();
3476
- return;
3477
- }
3478
- this.retryLater(n);
3479
- } else t.startsWith("webrtc") || (this.lastError = n);
3480
- }
3481
- async startWebRTC(e) {
3482
- if (this.abortController.signal.aborted) return;
3483
- this.startConnectTimeout();
3484
- let t = _i({
3485
- mode: e,
3486
- signal: this.abortController.signal,
3487
- onConnected: (e) => this.handleWebRTCConnected(e),
3488
- onDisconnected: () => this.handleWebRTCDisconnected(),
3489
- onFailed: () => this.handleWebRTCFailed(),
3490
- onCandidate: (e) => this.sendWsMessage({
3491
- type: "webrtc/candidate",
3492
- value: e
3493
- })
3494
- });
3495
- this.webrtcHandler = t;
3496
- let n = await t.createOffer();
3497
- n && !this.abortController.signal.aborted && this.webrtcHandler === t && this.sendOffer(t, n);
3498
- }
3499
- handleWebRTCConnected(e) {
3500
- if (this.abortController.signal.aborted) return;
3501
- let t = this.videoElement.value;
3502
- t && (this.hasVideo.value && e.getVideoTracks().length === 0 ? this.handleWebRTCFailed() : (this.noteDeliveredAudio(e.getAudioTracks().length > 0), this.activeMode.value = this.requestedMode.value === "auto" ? "webrtc" : this.requestedMode.value, this.lastMediaStream = e, t.srcObject = e, t.muted = this.muted.value, di(t), this.status.value = "connected", e.getVideoTracks().length > 0 ? (this.awaitingWebRTCFrame = !0, this.webrtcTookOver() && this.startConnectTimeout(), this.resetHealthBaseline(t), this.watchFirstFrame(t)) : this.handleFirstFrame(), this.requestedMode.value === "auto" && this.mseHandler && this.dropMSE()));
3503
- }
3504
- handleWebRTCDisconnected() {
3505
- this.status.value !== "closed" && !this.abortController.signal.aborted && (this.status.value = "reconnecting", this.requestedMode.value === "auto" && this.mseHandler?.isReady ? (this.webrtcHandler?.close(), this.webrtcHandler = void 0, this.activeMode.value = "mse", this.status.value = "connected", this.resumeBackchannel()) : this.retryLater());
3506
- }
3507
- handleWebRTCFailed() {
3508
- this.abortController.signal.aborted || (this.stopConnectTimeout(), this.requestedMode.value === "auto" ? this.fallBackToMSE() : this.retryLater(this.lastError ?? /* @__PURE__ */ Error("WebRTC connection failed")));
3509
- }
3510
- fallBackToMSE() {
3511
- this.webrtcHandler?.close(), this.webrtcHandler = void 0, this.awaitingWebRTCFrame = !1, this.mseRejected ? this.retryLater(this.lastError) : (this.activeMode.value = "mse", this.mseHandler?.isReady ? this.handleMSEReady() : this.startMSE(), this.resumeBackchannel());
3512
- }
3513
- startMSE() {
3514
- if (this.mseHandler) return;
3515
- let e = this.videoElement.value;
3516
- if (this.abortController.signal.aborted || !e) return;
3517
- this.mseHandler = li({
3518
- videoElement: e,
3519
- signal: this.abortController.signal,
3520
- onReady: () => this.handleMSEReady(),
3521
- onFirstData: () => this.handleMSEFirstData(),
3522
- onError: (e, t) => this.handleMSEError(e, t)
3523
- });
3524
- let t = this.mseHandler.setup();
3525
- t && (this.mseStopPending && (this.mseStopPending = !1, this.sendWsMessage({ type: "mse/stop" })), this.sendWsMessage({
3526
- type: "mse",
3527
- value: t
3528
- }), this.mseAnswerPending = !0, this.startMseConnectTimeout());
3529
- }
3530
- handleMSEReady() {
3531
- this.abortController.signal.aborted || (this.stopMseConnectTimeout(), this.requestedMode.value === "auto" && this.webrtcHandler?.isConnected || (this.activeMode.value = "mse", this.status.value = "connected"), !this.webrtcHandler && !this.isPlaying.value && this.startConnectTimeout());
3532
- }
3533
- handleMSEFirstData() {
3534
- if (this.abortController.signal.aborted) return;
3535
- let e = this.videoElement.value;
3536
- e && (this.watchFirstFrame(e), di(e));
3537
- }
3538
- handleMSEError(e, t) {
3539
- if (this.abortController.signal.aborted) return;
3540
- if (Q.debug(`MSE ${t} error:`, e), this.requestedMode.value === "auto" && this.webrtcHandler) {
3541
- let e = this.isPlaying.value || this.status.value === "connected";
3542
- this.dropMSE(), e && (this.isPlaying.value = !1, this.status.value = "reconnecting");
3543
- return;
3544
- }
3545
- let n = this.videoElement.value, r = !n || n.readyState < Oi;
3546
- (t === "setup" || r) && this.sourceLikelyH265() ? (Qr("mse"), this.markSourceUndecodable(), this.restart()) : t === "setup" ? (this.error.value = e, this.status.value = "error", this.cleanup()) : this.retryLater();
3547
- }
3548
- dropMSE() {
3549
- this.mseHandler?.close(), this.mseHandler = void 0, this.stopMseConnectTimeout(), this.mseAnswerPending ? this.mseStopPending = !0 : this.sendWsMessage({ type: "mse/stop" });
3550
- }
3551
- startAutoMode() {
3552
- if (this.abortController.signal.aborted) return;
3553
- let e = this.probeInfo.value;
3554
- e && !ei(e).compatible ? (this.activeMode.value = "mse", this.startMSE()) : (this.startWebRTC("webrtc"), this.startMSE());
3555
- }
3556
- sourceIsMjpeg() {
3557
- let e = this.probeInfo.value?.video.filter((e) => e.direction === "sendonly") ?? [];
3558
- return e.length ? e.every((e) => e.codec === "JPEG") : this.source.value?.videoCodec === "JPEG";
3559
- }
3560
- startMjpeg() {
3561
- let e = this.videoElement.value;
3562
- if (this.abortController.signal.aborted || !e) return;
3563
- let t = yr({ signal: this.abortController.signal });
3564
- this.mjpegHandler = t, this.activeMode.value = "mjpeg", this.lastMediaStream = t.stream, e.srcObject = t.stream, di(e), this.sendWsMessage({ type: "mjpeg" }), this.startConnectTimeout(), this.watchFirstFrame(e), this.hasAudio.value && this.startAudio();
3565
- }
3566
- startAudio() {
3567
- if (this.audioHandler || this.abortController.signal.aborted) return;
3568
- let e = document.createElement("audio");
3569
- e.muted = this.muted.value;
3570
- let t = li({
3571
- videoElement: e,
3572
- signal: this.abortController.signal,
3573
- onReady: () => {},
3574
- onFirstData: () => di(e),
3575
- onError: (e) => {
3576
- Q.debug("MJPEG audio error:", e), this.dropAudio();
3577
- }
3578
- }), n = t.setup()?.split(",").filter((e) => bi.test(e)).join(",");
3579
- n ? (this.audioElement = e, this.audioHandler = t, this.sendWsMessage({
3580
- type: "mse",
3581
- value: n
3582
- }), this.mseAnswerPending = !0) : t.close();
3583
- }
3584
- dropAudio() {
3585
- this.audioHandler && (this.closeAudio(), this.mseAnswerPending ? this.mseStopPending = !0 : this.sendWsMessage({ type: "mse/stop" }));
3586
- }
3587
- closeAudio() {
3588
- this.audioHandler?.close(), this.audioHandler = void 0;
3589
- let e = this.audioElement;
3590
- e && (this.audioElement = void 0, e.pause(), e.removeAttribute("src"), e.load());
3591
- }
3592
- handleFirstFrame() {
3593
- this.abortController.signal.aborted || ((!this.webrtcHandler || this.webrtcHandler.isConnected) && (this.stopConnectTimeout(), this.awaitingWebRTCFrame = !1, this.resumeBackchannel()), this.error.value = void 0, this.isPlaying.value || (this.isPlaying.value = !0, this.playingSince = performance.now()));
3594
- }
3595
- watchFirstFrame(e) {
3596
- if (this.cancelFirstFrameWatch?.(), e.readyState >= Oi) {
3597
- this.handleFirstFrame();
3598
- return;
3599
- }
3600
- let t = e, n = () => {
3601
- this.cancelFirstFrameWatch?.(), this.handleFirstFrame();
3602
- }, r = t.requestVideoFrameCallback?.(n);
3603
- e.addEventListener("loadeddata", n), this.cancelFirstFrameWatch = () => {
3604
- this.cancelFirstFrameWatch = void 0, e.removeEventListener("loadeddata", n), r !== void 0 && t.cancelVideoFrameCallback?.(r);
3605
- };
3606
- }
3607
- startHealthCheck() {
3608
- let e = this.videoElement.value;
3609
- e && this.resetHealthBaseline(e), this.healthInterval = setInterval(() => this.checkHealth(), Ti);
3610
- }
3611
- stopHealthCheck() {
3612
- this.healthInterval !== void 0 && (clearInterval(this.healthInterval), this.healthInterval = void 0), this.stalled.value = !1;
3613
- }
3614
- resetHealthBaseline(e) {
3615
- this.lastProgressAt = performance.now(), this.lastMediaTime = e.currentTime, this.lastFrameCount = this.frameCount(e), this.frameCounterLive = !1, this.stalled.value = !1;
3616
- }
3617
- checkHealth() {
3618
- let e = this.videoElement.value;
3619
- if (!e) return;
3620
- let t = this.activeMode.value === "mse", n = this.frameCount(e);
3621
- n !== void 0 && n > 0 && (this.frameCounterLive = !0);
3622
- let r = n !== this.lastFrameCount || t && e.currentTime !== this.lastMediaTime;
3623
- t && ui(e), this.audioElement && ui(this.audioElement), this.lastMediaTime = e.currentTime, this.lastFrameCount = n;
3624
- let i = performance.now();
3625
- if (r || !this.expectsFrames(e)) {
3626
- this.lastProgressAt = i, this.stalled.value = !1;
3627
- return;
3628
- }
3629
- let a = i - this.lastProgressAt;
3630
- a >= Di ? (Q.debug(`no frame for ${Math.round(a)}ms, reconnecting`), this.retryLater()) : a >= Ei && (this.stalled.value = !0);
3631
- }
3632
- frameCount(e) {
3633
- return this.mjpegHandler ? this.mjpegHandler.frames : ji(e);
3634
- }
3635
- expectsFrames(e) {
3636
- return this.paused.value || e.paused || ri(e) || Ai() ? !1 : this.activeMode.value === "mse" || this.frameCounterLive;
3637
- }
3638
- cleanup() {
3639
- this.abortController.abort(), this.stopConnectTimeout(), this.stopWsConnectTimeout(), this.stopMseConnectTimeout(), this.stopHealthCheck(), this.cancelFirstFrameWatch?.(), this.awaitingWebRTCFrame = !1, this.lastMediaStream = null, this.webrtcHandler?.close(), this.webrtcHandler = void 0, this.mseHandler?.close(), this.mseHandler = void 0, this.mjpegHandler?.close(), this.mjpegHandler = void 0, this.closeAudio(), this.closeBackchannel(), this.disconnectWebSocket();
3640
- let e = this.videoElement.value;
3641
- e && (e.style.display = "", e.pause(), e.srcObject = null, e.removeAttribute("src"), e.load());
3642
- }
3643
- async startBackchannel() {
3644
- if (this.abortController.signal.aborted || !this.wsHandle || this.wsHandle.readyState !== WebSocket.OPEN || this.offerPeer || this.webrtcHandler && (!this.webrtcHandler.isConnected || this.awaitingWebRTCFrame)) return;
3645
- let e = vi({
3646
- filterUdp: this.requestedMode.value === "webrtc/tcp",
3647
- signal: this.abortController.signal,
3648
- onCandidate: (e) => this.sendWsMessage({
3649
- type: "webrtc/candidate",
3650
- value: e
3651
- }),
3652
- onConnected: async () => {
3653
- this.pendingMicTrack && this.backchannelHandler === e && await e.setMicrophoneTrack(this.pendingMicTrack);
3654
- },
3655
- onFailed: () => this.closeBackchannel(e)
3656
- });
3657
- this.backchannelHandler = e;
3658
- let t;
3659
- try {
3660
- t = await e.createOffer();
3661
- } catch {
3662
- this.closeBackchannel(e);
3663
- return;
3664
- }
3665
- t && !this.abortController.signal.aborted && this.backchannelHandler === e && this.sendOffer(e, t);
3666
- }
3667
- resumeBackchannel() {
3668
- this.pendingMicTrack && !this.backchannelHandler && this.startBackchannel();
3669
- }
3670
- sendOffer(e, t) {
3671
- this.wsHandle?.readyState === WebSocket.OPEN && (this.offerPeer = e, this.wsHandle.send(JSON.stringify({
3672
- type: "webrtc/offer",
3673
- value: t
3674
- })));
3675
- }
3676
- takeOfferReply() {
3677
- let e = this.offerPeer;
3678
- return this.offerPeer = void 0, e && this.isCurrentPeer(e) ? e : void 0;
3679
- }
3680
- isCurrentPeer(e) {
3681
- return e === this.webrtcHandler || e === this.backchannelHandler;
3682
- }
3683
- closeBackchannel(e = this.backchannelHandler) {
3684
- e?.close(), e === this.backchannelHandler && (this.backchannelHandler = void 0, this.pendingMicTrack = null);
3685
- }
3686
- };
3687
- function Pi(e) {
3688
- return new Ni(e);
3689
- }
3690
- var Fi = class {
3691
- streams = /* @__PURE__ */ new Map();
3692
- standalone = /* @__PURE__ */ new Set();
3693
- releaseTimers = /* @__PURE__ */ new Map();
3694
- releaseDelay;
3695
- DEFAULT_RELEASE_DELAY = 2e3;
3696
- constructor(e = {}) {
3697
- this.releaseDelay = e.releaseDelay ?? this.DEFAULT_RELEASE_DELAY;
3698
- }
3699
- has(e) {
3700
- return this.streams.has(e);
3701
- }
3702
- getRefCount(e) {
3703
- return this.streams.get(e)?.refCount ?? 0;
3704
- }
3705
- get(e) {
3706
- return this.streams.get(e);
3707
- }
3708
- acquire(e, t) {
3709
- this.cancelRelease(e);
3710
- let n = this.streams.get(e);
3711
- if (n) return n.refCount++, t && n.consumerContainerRefs.add(t), n;
3712
- }
3713
- register(e, t, n, r, i, a) {
3714
- this.cancelRelease(e);
3715
- let o = {
3716
- stream: t,
3717
- videoElementRef: n,
3718
- cameraDeviceRef: r,
3719
- containerElementRef: i,
3720
- consumerContainerRefs: /* @__PURE__ */ new Set([i]),
3721
- sharedVideoElement: a,
3722
- mediaStream: null,
3723
- refCount: 1
3724
- };
3725
- return this.streams.set(e, o), o;
3726
- }
3727
- updateContainerElement(e, t) {
3728
- let n = this.streams.get(e);
3729
- n && (n.containerElementRef.value = t);
3730
- }
3731
- updateSharedVideoElement(e, t) {
3732
- let n = this.streams.get(e);
3733
- n && (n.sharedVideoElement = t);
3734
- }
3735
- updateMediaStream(e, t) {
3736
- let n = this.streams.get(e);
3737
- n && (n.mediaStream = t);
3738
- }
3739
- release(e, t, n) {
3740
- let r = this.streams.get(e);
3741
- if (r) {
3742
- if (r.refCount--, n) {
3743
- r.consumerContainerRefs.delete(n);
3744
- let e = r.sharedVideoElement, t = n.value, i = e?.parentElement ?? null;
3745
- if (r.refCount > 0 && e && (i === t || i === null || !i.isConnected)) {
3746
- let n = this.pickVisibleConsumer(r, t);
3747
- n && (r.containerElementRef = n.ref, e.parentElement !== n.el && (n.el.appendChild(e), e.play().catch(() => {})));
3748
- }
3749
- }
3750
- if (r.refCount <= 0) {
3751
- let t = setTimeout(() => {
3752
- this.doRelease(e);
3753
- }, this.releaseDelay);
3754
- this.releaseTimers.set(e, t);
3755
- }
3756
- }
3757
- }
3758
- track(e) {
3759
- return this.standalone.add(e), () => {
3760
- this.standalone.delete(e);
3761
- };
3762
- }
3763
- restartConnected() {
3764
- let e = new Set(this.standalone);
3765
- for (let t of this.streams.values()) e.add(t.stream);
3766
- let t = 0;
3767
- for (let n of e) n.status.value !== "connected" || n.paused.value || (n.restart().catch(() => {}), t++);
3768
- return t;
3769
- }
3770
- forceRelease(e) {
3771
- this.cancelRelease(e), this.doRelease(e);
3772
- }
3773
- clear() {
3774
- for (let e of this.releaseTimers.values()) clearTimeout(e);
3775
- this.releaseTimers.clear();
3776
- for (let [e, t] of this.streams) Ii(t.stream), this.streams.delete(e);
3777
- }
3778
- getDebugInfo() {
3779
- return Array.from(this.streams.entries()).map(([e, t]) => ({
3780
- cameraName: e,
3781
- refCount: t.refCount,
3782
- mode: t.stream.activeMode.value,
3783
- resolution: t.stream.activeResolution.value
3784
- }));
3785
- }
3786
- pickVisibleConsumer(e, t) {
3787
- let n;
3788
- for (let r of e.consumerContainerRefs) {
3789
- let e = r.value;
3790
- if (e && e !== t && e.isConnected) {
3791
- if (e.checkVisibility?.() ?? e.offsetParent !== null) return {
3792
- ref: r,
3793
- el: e
3794
- };
3795
- n ??= {
3796
- ref: r,
3797
- el: e
3798
- };
3799
- }
3800
- }
3801
- return n;
3802
- }
3803
- cancelRelease(e) {
3804
- let t = this.releaseTimers.get(e);
3805
- t && (clearTimeout(t), this.releaseTimers.delete(e));
3806
- }
3807
- doRelease(e) {
3808
- let t = this.streams.get(e);
3809
- t && (t.refCount <= 0 && (Ii(t.stream), this.streams.delete(e)), this.releaseTimers.delete(e));
3810
- }
3811
- };
3812
- function Ii(e) {
3813
- let t = e;
3814
- typeof t.destroy == "function" ? t.destroy() : t.stop();
3815
- }
3816
- var $ = new Fi();
3817
- function Li() {
3818
- return $.restartConnected();
3819
- }
3820
- var Ri = /* @__PURE__ */ new WeakMap(), zi = null;
3821
- function Bi(e) {
3822
- zi = e;
3823
- }
3824
- var Vi = [], Hi = i(null);
3825
- function Ui() {
3826
- Hi.value = Vi[Vi.length - 1] ?? null;
3827
- }
3828
- function Wi() {
3829
- return s(() => Hi.value);
3830
- }
3831
- function Gi(e, t = {}) {
3832
- let n = t.mode ?? "fit", a = r(!1), l = i(null);
3833
- c(() => o(e), (e) => {
3834
- l.value = e ?? null;
3835
- }, { immediate: !0 });
3836
- function u(e) {
3837
- e.key === "Escape" && a.value && f();
3838
- }
3839
- async function d() {
3840
- let e = l.value;
3841
- if (!e || a.value) return;
3842
- let t = document.createElement("div");
3843
- t.className = `cui-fullscreen cui-fullscreen-${n}`, Ki(t, n);
3844
- let r = document.createComment("cui-fullscreen");
3845
- e.before(r);
3846
- let i = {
3847
- wrapper: t,
3848
- parent: e.parentElement,
3849
- placeholder: r,
3850
- bodyOverflow: document.body.style.overflow,
3851
- htmlOverflow: document.documentElement.style.overflow,
3852
- scrollY: window.scrollY
3853
- };
3854
- Ri.set(e, i), e.setAttribute("data-cui-fullscreen", n), (zi ?? document.body).appendChild(t), t.appendChild(e), document.body.style.overflow = "hidden", document.documentElement.style.overflow = "hidden", window.scrollTo({
3855
- top: 0,
3856
- behavior: "instant"
3857
- }), document.addEventListener("keydown", u), Vi.push(t), Ui(), a.value = !0;
3858
- }
3859
- async function f() {
3860
- let e = l.value;
3861
- if (!e || !a.value) return;
3862
- let t = Ri.get(e);
3863
- if (!t) return;
3864
- Ri.delete(e), e.removeAttribute("data-cui-fullscreen"), t.placeholder.parentNode ? t.placeholder.replaceWith(e) : t.parent?.appendChild(e), t.wrapper.remove(), document.body.style.overflow = t.bodyOverflow, document.documentElement.style.overflow = t.htmlOverflow, window.scrollTo({
3865
- top: t.scrollY,
3866
- behavior: "instant"
3867
- }), document.removeEventListener("keydown", u);
3868
- let n = Vi.indexOf(t.wrapper);
3869
- n !== -1 && Vi.splice(n, 1), Ui(), a.value = !1;
3870
- }
3871
- async function m() {
3872
- a.value ? await f() : await d();
3873
- }
3874
- return p(() => {
3875
- a.value && l.value && f(), document.removeEventListener("keydown", u);
3876
- }), {
3877
- isFullscreen: s(() => a.value),
3878
- isSupported: s(() => !0),
3879
- enter: d,
3880
- exit: f,
3881
- toggle: m
3882
- };
3883
- }
3884
- function Ki(e, t) {
3885
- let n = {
3886
- position: "fixed",
3887
- top: "0",
3888
- right: "0",
3889
- bottom: "0",
3890
- left: "0",
3891
- zIndex: "2147483647",
3892
- margin: "0",
3893
- background: "black",
3894
- paddingTop: "env(safe-area-inset-top)",
3895
- paddingRight: "env(safe-area-inset-right)",
3896
- paddingBottom: "env(safe-area-inset-bottom)",
3897
- paddingLeft: "env(safe-area-inset-left)",
3898
- boxSizing: "border-box"
3899
- };
3900
- t === "fit" ? Object.assign(e.style, n, {
3901
- display: "flex",
3902
- alignItems: "center",
3903
- justifyContent: "center",
3904
- overflow: "hidden"
3905
- }) : Object.assign(e.style, n, {
3906
- display: "block",
3907
- overflowY: "auto",
3908
- overflowX: "hidden",
3909
- WebkitOverflowScrolling: "touch",
3910
- overscrollBehavior: "contain"
3911
- });
3912
- }
3913
- var qi = 75, Ji = 500, Yi = 1e4, Xi = 2, Zi = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=", Qi = 0, $i = 0;
3914
- function ea() {
3915
- let e = performance.now();
3916
- e - $i > Ji && (Qi = 0);
3917
- let t = Qi * qi;
3918
- return Qi++, $i = e, t;
3919
- }
3920
- function ta(e) {
3921
- return !e || !e.isConnected ? !1 : e.checkVisibility?.() ?? e.offsetParent !== null;
3922
- }
3923
- function na(e) {
3924
- let { activityConfig: t, autoStart: a = !0, isolated: l = !1 } = e, u = l, d, f = () => o(a), m = e.startDelay ?? ea(), h = [], { isConnected: g } = k(), _ = s(() => o(e.camera)), v = s(() => typeof _.value == "string"), y = s(() => {
3925
- let e = _.value;
3926
- return typeof e == "string" ? e : e.name.value;
3927
- }), { camera: b, isLoading: x } = Qe(s(() => v.value ? y.value : "")), S = s(() => v.value && x.value), C = s(() => v.value ? b.value : _.value), w, T, E, D = i(), O = i(), A = i(), j = i(), M = i(), ee = i(), te = r(!1), N = r(!1), P = r(!1), ne = r(0), re = r(0), F = r(!1), ie = r(!1), I = r(!1), L = r(m <= 0), R, z, B = !1, ae = !1;
3928
- m > 0 && (w = setTimeout(() => {
3929
- L.value = !0;
3930
- }, m)), c(C, (e) => {
3931
- ee.value = e;
3932
- }, { immediate: !0 });
3933
- let V = s(() => ee.value?.disabled.value === !0), H = s(() => M.value?.status.value ?? "idle"), oe = s(() => M.value?.isPlaying.value ?? !1), se = s(() => M.value?.stalled?.value ?? !1), ce = s(() => M.value?.activeMode.value ?? "webrtc"), le = s(() => M.value?.activeResolution.value ?? "low-resolution"), ue = s(() => M.value?.degradedFrom.value ?? null), de = s(() => H.value === "unsupported"), fe = s(() => M.value?.hasAudio.value ?? !1), pe = s(() => M.value?.hasBackchannel.value ?? !1), me = s(() => M.value?.error.value), he = s(() => H.value === "reconnecting"), ge = s(() => S.value || !oe.value && H.value !== "error" && H.value !== "unsupported"), _e = s(() => fe.value && H.value === "connected"), U = s(() => !!(typeof navigator < "u" && navigator.mediaDevices) && pe.value), ve = s(() => M.value?.muted.value ?? !0), ye = s(() => M.value?.paused.value ?? !1), be = s(() => typeof document < "u" && document.pictureInPictureEnabled && !!A.value), xe = s(() => A.value), W = s(() => O.value ?? D.value), G = ir({
3934
- initialMode: o(e.activityMode) ?? "always-on",
3935
- config: t,
3936
- onStreamStart: () => {
3937
- !V.value && !q() && M.value?.start();
3938
- },
3939
- onStreamStop: () => {
3940
- if (te.value) {
3941
- let e = E ?? y.value;
3942
- if (e && $.getRefCount(e) > 1) return;
3943
- }
3944
- M.value?.stop();
3945
- },
3946
- isStreamPlaying: () => oe.value
3947
- }), { isFullscreen: Se, toggle: Ce } = Gi(W);
3948
- function we() {
3949
- return T = Pi({
3950
- camera: ee,
3951
- videoElement: j,
3952
- containerElement: D,
3953
- mode: s(() => o(e.mode) ?? "auto"),
3954
- resolution: s(() => o(e.resolution) ?? "high-resolution"),
3955
- autoStart: !1
3956
- }), T;
3957
- }
3958
- let K = we();
3959
- function Te() {
3960
- let e = document.createElement("video");
3961
- return e.autoplay = !0, e.playsInline = !0, e.muted = !0, e.disablePictureInPicture = !1, e.preload = "auto", e.poster = Zi, e.style.position = "absolute", e.style.width = "100%", e.style.height = "100%", e.style.inset = "0", e.style.objectFit = "fill", e;
3962
- }
3963
- function Ee(e, t) {
3964
- e.parentElement && e.parentElement !== t && e.parentElement.removeChild(e), e.parentElement !== t && t.appendChild(e);
3965
- }
3966
- function De() {
3967
- if (u) return;
3968
- let e = D.value, t = A.value;
3969
- if (!e || !t || t.parentElement === e || !ta(e) || ta(t.parentElement)) return;
3970
- Ee(t, e), t.play().catch(() => {});
3971
- let n = y.value, r = n ? $.get(n) : void 0;
3972
- r && (r.containerElementRef = D);
3973
- }
3974
- function Oe() {
3975
- F.value = !0;
3976
- }
3977
- function ke() {
3978
- F.value = !1;
3979
- }
3980
- function Ae() {
3981
- F.value = ri(A.value);
3982
- }
3983
- function je() {
3984
- return H.value !== "idle" && H.value !== "closed" && H.value !== "unsupported";
3985
- }
3986
- function Me() {
3987
- let e = A.value;
3988
- if (!e || e.readyState < Xi || !e.videoWidth || !e.videoHeight) return;
3989
- let t = Math.round((D.value?.clientWidth || e.videoWidth) * (globalThis.devicePixelRatio || 1)), n = document.createElement("canvas");
3990
- n.width = Math.min(e.videoWidth, t), n.height = Math.round(e.videoHeight * n.width / e.videoWidth);
3991
- try {
3992
- n.getContext("2d")?.drawImage(e, 0, 0, n.width, n.height), e.poster = n.toDataURL("image/jpeg", .8);
3993
- } catch {}
3994
- }
3995
- function Ne() {
3996
- clearTimeout(R), R = void 0;
3997
- }
3998
- function Pe() {
3999
- clearTimeout(z), z = void 0;
4000
- }
4001
- function Fe() {
4002
- I.value ? (Pe(), F.value || ie.value || ye.value || !je() ? Ne() : R ??= setTimeout(Ie, ae ? Yi : 0)) : (Ne(), B && Le());
4003
- }
4004
- function q() {
4005
- return !I.value || ae ? !1 : (B = !0, !0);
4006
- }
4007
- function Ie() {
4008
- R = void 0, !(!I.value || F.value || ie.value || ye.value || G.inStandby.value || !je()) && (ri(A.value) ? F.value = !0 : E && $.getRefCount(E) > 1 ? R = setTimeout(Ie, Yi) : (Me(), M.value?.stop(), B = !0));
4009
- }
4010
- function Le() {
4011
- z ??= setTimeout(() => {
4012
- z = void 0, !I.value && B && (B = !1, !(V.value || !f() || G.inStandby.value) && (H.value === "idle" || H.value === "closed") && M.value?.start());
4013
- }, ea());
4014
- }
4015
- function Re() {
4016
- if (N.value) return;
4017
- let e = D.value, t = C.value;
4018
- if (!e || !t || !g.value) return;
4019
- N.value = !0, te.value = !1, M.value = K, h.push($.track(K));
4020
- let n = Te();
4021
- A.value = n, j.value = n, f() && L.value && G.mode.value === "always-on" && !V.value && !q() && K.start();
4022
- }
4023
- function ze() {
4024
- if (N.value) return;
4025
- if (u) {
4026
- Re();
4027
- return;
4028
- }
4029
- let e = D.value, t = y.value, n = C.value;
4030
- if (!e || !t || !g.value) return;
4031
- let r = $.get(t);
4032
- if (r && r.refCount > 0) {
4033
- let n = r.containerElementRef.value;
4034
- if (n && n !== e && ta(n)) {
4035
- d || (d = setTimeout(() => {
4036
- if (d = void 0, P.value || N.value) return;
4037
- let e = $.get(t), n = e?.containerElementRef.value;
4038
- e && e.refCount > 0 && n && n !== D.value && ta(n) && (u = !0), ze();
4039
- }, 200), h.push(() => {
4040
- d && clearTimeout(d), d = void 0;
4041
- }));
4042
- return;
4043
- }
4044
- }
4045
- let i = $.acquire(t, D);
4046
- if (i) {
4047
- N.value = !0, E = t, te.value = !0, M.value = i.stream, n && i.cameraDeviceRef && (i.cameraDeviceRef.value = n);
4048
- let r = i.sharedVideoElement;
4049
- r || (r = Te(), i.sharedVideoElement = r, $.updateSharedVideoElement(t, r)), i.mediaStream?.active && (r.srcObject = i.mediaStream), e && (i.containerElementRef = D), A.value = r, i.videoElementRef.value = r, Ve(i.stream, r, t), f() && L.value && G.mode.value === "always-on" && !V.value && !q() && (i.stream.activeMode.value === "mse" ? r.play().catch(() => {}) : J(i, r, t));
4050
- } else if (n) {
4051
- N.value = !0, E = t, te.value = !1, M.value = K;
4052
- let e = Te();
4053
- A.value = e, j.value = e, $.register(t, K, j, ee, D, e), f() && L.value && G.mode.value === "always-on" && !V.value && !q() && K.start();
4054
- let n = c(() => K.isPlaying.value, (n) => {
4055
- n && e.srcObject instanceof MediaStream && $.updateMediaStream(t, e.srcObject);
4056
- }, { immediate: !0 });
4057
- h.push(n);
4058
- let r = c(() => K.status.value, (n) => {
4059
- n === "connected" && e.srcObject instanceof MediaStream && $.updateMediaStream(t, e.srcObject);
4060
- });
4061
- h.push(r);
4062
- }
4063
- }
4064
- function J(e, t, n) {
4065
- if (!e) return;
4066
- let r = e.stream, i = r.activeMode.value, a = r.status.value, o = e.mediaStream?.active && e.mediaStream.getTracks().some((e) => e.readyState === "live");
4067
- i === "mse" ? ($.updateMediaStream(n, null), r.restart()) : o && e.mediaStream ? (t.srcObject = e.mediaStream, t.play().catch(() => {})) : a === "idle" || a === "closed" ? (r.start(), Be(r, t, n)) : (a === "connected" && r.restart(), Be(r, t, n));
4068
- }
4069
- function Be(e, t, n) {
4070
- let r = c([() => e.isPlaying.value, () => e.status.value], ([e, i]) => {
4071
- if (i === "connected" || e) {
4072
- let e = $.get(n)?.mediaStream;
4073
- e?.active && e.getTracks().some((e) => e.readyState === "live") ? (t.srcObject = e, t.play().catch(() => {}), r()) : t.srcObject instanceof MediaStream && ($.updateMediaStream(n, t.srcObject), t.play().catch(() => {}), r());
4074
- }
4075
- }, { immediate: !0 });
4076
- h.push(r);
4077
- }
4078
- function Ve(e, t, n) {
4079
- let r = e.status.value !== "connected", i = c(() => e.status.value, (e) => {
4080
- e === "reconnecting" || e === "connecting" ? r = !0 : e === "connected" && r && (r = !1, setTimeout(() => {
4081
- t.srcObject instanceof MediaStream && ($.updateMediaStream(n, t.srcObject), t.play().catch(() => {}));
4082
- }, 100));
4083
- }, { immediate: !0 });
4084
- h.push(i);
4085
- let a = c(() => e.isPlaying.value, (r) => {
4086
- r && e.activeMode.value !== "mse" && t.srcObject instanceof MediaStream && ($.updateMediaStream(n, t.srcObject), t.play().catch(() => {}));
4087
- }, { immediate: !0 });
4088
- h.push(a);
4089
- }
4090
- async function He() {
4091
- V.value || (G.inStandby.value ? G.resumeFromStandby() : await M.value?.start());
4092
- }
4093
- function Ue() {
4094
- M.value?.stop();
4095
- }
4096
- async function We() {
4097
- await M.value?.restart();
4098
- }
4099
- function Ge() {
4100
- V.value || G.resumeFromStandby();
4101
- }
4102
- async function Ke(e) {
4103
- let t = y.value;
4104
- t && $.updateMediaStream(t, null), await M.value?.setMode(e);
4105
- }
4106
- async function qe(e) {
4107
- await M.value?.setResolution(e);
4108
- }
4109
- async function Je(e) {
4110
- await M.value?.setMicrophone(e);
4111
- }
4112
- function Ye(e) {
4113
- G.setMode(e);
4114
- }
4115
- function Xe() {
4116
- let t = o(e.activityMode);
4117
- t && t !== G.mode.value && G.setMode(t);
4118
- }
4119
- function Ze(e) {
4120
- G.reportActivity(e);
4121
- }
4122
- function $e() {
4123
- G.resetIdleTimer();
4124
- }
4125
- function et(e) {
4126
- ie.value = e, G.setKeepAwake(e);
4127
- }
4128
- function tt(e) {
4129
- M.value?.setMuted(e);
4130
- let t = A.value;
4131
- t && (t.muted = e);
4132
- }
4133
- async function nt() {
4134
- await M.value?.play();
4135
- }
4136
- function rt() {
4137
- M.value?.pause();
4138
- }
4139
- function it() {
4140
- document.pictureInPictureElement ? document.exitPictureInPicture() : document.pictureInPictureEnabled && A.value && A.value.requestPictureInPicture();
4141
- }
4142
- function at() {
4143
- let e = A.value;
4144
- if (!e || e.videoWidth === 0) return null;
4145
- let t = document.createElement("canvas");
4146
- return t.width = e.videoWidth, t.height = e.videoHeight, t.getContext("2d")?.drawImage(e, 0, 0), t.toDataURL("image/png");
4147
- }
4148
- function ot() {
4149
- if (P.value) return;
4150
- P.value = !0, w &&= (clearTimeout(w), void 0), Ne(), Pe(), M.value?.setMuted(!0);
4151
- let e = A.value;
4152
- e && (e.muted = !0);
4153
- for (let e of h) e();
4154
- if (h.length = 0, u) T?.destroy();
4155
- else {
4156
- let e = E, t = A.value;
4157
- e && N.value && $.release(e, t, D), (!N.value || M.value !== K) && T?.destroy();
4158
- }
4159
- G.dispose();
4160
- }
4161
- function st(t) {
4162
- let n = o(e.canvasStyle), r = o(e.canvasClass);
4163
- if (n) {
4164
- if (typeof n == "string") t.style.cssText += ";" + n;
4165
- else if (Array.isArray(n)) for (let e of n) typeof e == "string" ? t.style.cssText += ";" + e : e && Object.assign(t.style, e);
4166
- else Object.assign(t.style, n);
4167
- }
4168
- if (r) {
4169
- if (typeof r == "string") t.className = r;
4170
- else if (Array.isArray(r)) t.className = r.filter(Boolean).join(" ");
4171
- else for (let [e, n] of Object.entries(r)) t.classList.toggle(e, !!n);
4172
- }
4173
- }
4174
- if (typeof IntersectionObserver < "u") {
4175
- let e, t = c(D, (t) => {
4176
- if (e?.disconnect(), e = void 0, !t) return;
4177
- let n = Math.round(t.getBoundingClientRect().height), r = n > 0 ? `${n}px 0px` : "25% 0px";
4178
- e = new IntersectionObserver((e) => {
4179
- let t = e[e.length - 1];
4180
- t && (I.value = !t.isIntersecting, t.isIntersecting && (ae = !0, De()));
4181
- }, {
4182
- rootMargin: r,
4183
- scrollMargin: r
4184
- }), e.observe(t);
4185
- }, { immediate: !0 }), n = c([
4186
- I,
4187
- H,
4188
- F,
4189
- ie,
4190
- ye
4191
- ], Fe);
4192
- h.push(() => {
4193
- t(), n(), e?.disconnect();
4194
- });
4195
- }
4196
- if (e.canvasStyle !== void 0 || e.canvasClass !== void 0) {
4197
- let e, t = c(D, (t) => {
4198
- if (e?.(), e = void 0, !t) return;
4199
- Array.from(t.querySelectorAll("canvas")).forEach((e) => {
4200
- st(e);
4201
- });
4202
- let n = new MutationObserver((e) => {
4203
- for (let t of e) Array.from(t.addedNodes).forEach((e) => {
4204
- e instanceof HTMLCanvasElement ? st(e) : e instanceof HTMLElement && Array.from(e.querySelectorAll("canvas")).forEach((e) => st(e));
4205
- });
4206
- });
4207
- n.observe(t, {
4208
- childList: !0,
4209
- subtree: !0
4210
- }), e = () => n.disconnect();
4211
- }, { immediate: !0 });
4212
- h.push(() => {
4213
- t(), e?.();
4214
- });
4215
- }
4216
- if (e.videoStyle !== void 0 || e.videoClass !== void 0) {
4217
- let t = c([
4218
- A,
4219
- () => o(e.videoStyle),
4220
- () => o(e.videoClass)
4221
- ], ([e, t, n]) => {
4222
- if (e) {
4223
- if (t) {
4224
- if (typeof t == "string") e.style.cssText += ";" + t;
4225
- else if (Array.isArray(t)) for (let n of t) typeof n == "string" ? e.style.cssText += ";" + n : n && Object.assign(e.style, n);
4226
- else Object.assign(e.style, t);
4227
- }
4228
- if (n) {
4229
- if (typeof n == "string") e.className = n;
4230
- else if (Array.isArray(n)) e.className = n.filter(Boolean).join(" ");
4231
- else for (let [t, r] of Object.entries(n)) e.classList.toggle(t, r);
4232
- }
4233
- }
4234
- }, { immediate: !0 });
4235
- h.push(t);
4236
- }
4237
- let ct = c([() => M.value?.nativeWidth.value, () => M.value?.nativeHeight.value], ([e, t]) => {
4238
- e && e > 0 && (ne.value = e), t && t > 0 && (re.value = t);
4239
- });
4240
- h.push(ct);
4241
- let lt = c(A, (e, t) => {
4242
- t && (t.removeEventListener("enterpictureinpicture", Oe), t.removeEventListener("leavepictureinpicture", ke), t.removeEventListener("webkitpresentationmodechanged", Ae)), e && (e.addEventListener("enterpictureinpicture", Oe), e.addEventListener("leavepictureinpicture", ke), e.addEventListener("webkitpresentationmodechanged", Ae));
4243
- }, { immediate: !0 });
4244
- h.push(lt), c([D, A], ([e, t]) => {
4245
- e && t && Ee(t, e);
4246
- }, { immediate: !0 }), c(() => o(e.activityMode), Xe), c([
4247
- D,
4248
- C,
4249
- g,
4250
- L
4251
- ], () => {
4252
- N.value ? L.value && f() && G.mode.value === "always-on" && !oe.value && H.value === "idle" && !V.value && !q() && M.value?.start() : ze();
4253
- }, { immediate: !0 });
4254
- let ut = !1;
4255
- return c(() => N.value && L.value && f() && !V.value, (e) => {
4256
- e && !ut && (ut = !0, Xe(), G.engage());
4257
- }, { immediate: !0 }), c(oe, (e) => {
4258
- if (!e) return;
4259
- G.resetIdleTimer();
4260
- let t = A.value;
4261
- t && t.poster !== Zi && (t.poster = Zi);
4262
- }), c(V, (e, t) => {
4263
- N.value && (!t && e ? M.value?.stop() : t && !e && f() && !G.inStandby.value && M.value?.restart());
4264
- }), n(ot), p(ot), {
4265
- status: H,
4266
- isPlaying: oe,
4267
- stalled: se,
4268
- activeMode: ce,
4269
- activeResolution: le,
4270
- degradedFrom: ue,
4271
- unsupported: de,
4272
- hasAudio: fe,
4273
- hasBackchannel: pe,
4274
- error: me,
4275
- isReconnecting: he,
4276
- activityMode: G.mode,
4277
- inStandby: G.inStandby,
4278
- hasActivity: G.hasActivity,
4279
- isBusy: ge,
4280
- hasSound: _e,
4281
- hasIntercom: U,
4282
- videoElement: A,
4283
- containerElement: D,
4284
- fullscreenElement: O,
4285
- renderElement: xe,
4286
- stream: M,
4287
- muted: ve,
4288
- paused: ye,
4289
- nativeWidth: ne,
4290
- nativeHeight: re,
4291
- isPip: F,
4292
- supportsPip: be,
4293
- isFullscreen: Se,
4294
- start: He,
4295
- stop: Ue,
4296
- restart: We,
4297
- resumeFromStandby: Ge,
4298
- setMode: Ke,
4299
- setResolution: qe,
4300
- setMicrophone: Je,
4301
- setActivityMode: Ye,
4302
- reportActivity: Ze,
4303
- resetIdleTimer: $e,
4304
- setKeepAwake: et,
4305
- setMuted: tt,
4306
- play: nt,
4307
- pause: rt,
4308
- togglePip: it,
4309
- isCameraDisabled: V,
4310
- toggleFullscreen: Ce,
4311
- captureScreenshot: at
4312
- };
4313
- }
4314
- function ra() {
4315
- let e = k(), t = M.coreManagerNamespaces(), n = (e) => e.createProxy(t.coreManagerRpc);
4316
- return {
4317
- getFFmpegPath: () => I(e.rpc, (e) => n(e).getFFmpegPath()),
4318
- getServerAddresses: () => I(e.rpc, (e) => n(e).getServerAddresses()),
4319
- getPluginsByInterface: (t) => I(e.rpc, (e) => n(e).getPluginsByInterface(t)),
4320
- getCloudServerId: () => I(e.rpc, (e) => n(e).getCloudServerId()),
4321
- getRestoreGeneration: () => I(e.rpc, (e) => n(e).getRestoreGeneration()),
4322
- getInstanceId: () => I(e.rpc, (e) => n(e).getInstanceId())
4323
- };
4324
- }
4325
- function ia() {
4326
- let e = k(), { rpc: t, isConnected: n } = e, a = M.terminalManagerNamespaces(), o = i(), s = r(!1), c = r(!1), l = r(), d = r({
4327
- cols: 80,
4328
- rows: 24
4329
- }), f, m, h = 0, g, _, v = !1, y = !1, b = (e) => e.createProxy(a.terminalManagerRpc);
4330
- async function x(e) {
4331
- if (!(c.value || s.value)) {
4332
- c.value = !0, l.value = void 0, m = e;
4333
- try {
4334
- let n = await I(t, (t) => b(t).createSession({
4335
- cols: e?.cols ?? 80,
4336
- rows: e?.rows ?? 24,
4337
- cwd: e?.cwd,
4338
- shell: e?.shell,
4339
- env: e?.env
4340
- }), { maxRetries: 0 });
4341
- o.value = n.sessionId, d.value = n.dimensions, s.value = !0, f = new AbortController(), v = !1, y = !1;
4342
- let r = ++h;
4343
- S(n.sessionId, e, r);
4344
- } catch (t) {
4345
- l.value = t instanceof Error ? t : Error(String(t)), e?.onError?.(l.value);
4346
- } finally {
4347
- c.value = !1;
4348
- }
4349
- }
4350
- }
4351
- async function S(e, n, r) {
4352
- try {
4353
- let i = t.value;
4354
- if (!i) return;
4355
- let a = b(i).generateOutput(e);
4356
- g = a, _ = i;
4357
- for await (let e of a) {
4358
- if (r !== h || f?.signal.aborted) break;
4359
- n?.onData?.(e);
4360
- }
4361
- } catch (e) {
4362
- if (r === h && !f?.signal.aborted) {
4363
- if (y) {
4364
- O();
4365
- return;
4366
- }
4367
- l.value = e instanceof Error ? e : Error(String(e)), n?.onError?.(l.value);
4368
- }
4369
- } finally {
4370
- r === h && !f?.signal.aborted && (s.value = !1, D(e), n?.onClose?.());
4371
- }
4372
- }
4373
- async function C(e) {
4374
- if (o.value && s.value) try {
4375
- await I(t, (t) => b(t).writeInput(o.value, e));
4376
- } catch (e) {
4377
- l.value = e instanceof Error ? e : Error(String(e)), m?.onError?.(l.value);
4378
- }
4379
- }
4380
- async function w(e) {
4381
- if (o.value && s.value) try {
4382
- await I(t, (t) => b(t).resize(o.value, e)), d.value = e;
4383
- } catch (e) {
4384
- l.value = e instanceof Error ? e : Error(String(e)), m?.onError?.(l.value);
4385
- }
4386
- }
4387
- async function T() {
4388
- E(), o.value && await D(o.value), o.value = void 0, s.value = !1, m = void 0;
4389
- }
4390
- function E() {
4391
- f?.abort(), h++, g?.return(void 0).catch(() => void 0), g = void 0, _ = void 0, y = !1;
4392
- }
4393
- function D(e) {
4394
- return I(t, (t) => b(t).closeSession(e), {
4395
- awaitConnect: !1,
4396
- maxRetries: 0
4397
- }).catch(() => void 0);
4398
- }
4399
- function O() {
4400
- let e = m, t = o.value;
4401
- E(), t && D(t), o.value = void 0, s.value = !1, m = void 0, e?.onClose?.(), e && x(e);
4402
- }
4403
- function A() {
4404
- (o.value || s.value) && (s.value && !v && t.value === _ ? y = !0 : O());
4405
- }
4406
- function j() {
4407
- v = !0;
4408
- }
4409
- return e.on("reconnected", A), e.on("disconnected", j), p(() => {
4410
- e.off("reconnected", A), e.off("disconnected", j), T();
4411
- }), {
4412
- sessionId: u(o),
4413
- isConnected: u(s),
4414
- isConnecting: u(c),
4415
- isClientConnected: u(n),
4416
- error: u(l),
4417
- dimensions: u(d),
4418
- connect: x,
4419
- write: C,
4420
- resize: w,
4421
- close: T
4422
- };
4423
- }
4424
- //#endregion
4425
- export { dt as A, Wi as B, k as C, Dn as D, Gi as E, qn as F, _ as G, x as H, xn as I, v as K, Ne as L, kn as M, Lt as N, On as O, Gn as P, _r as R, na as S, ra as T, C as U, b as V, S as W, Li as _, Qt as a, Qe as b, zt as c, Kt as d, Bt as f, Jn as g, qt as h, Ht as i, En as j, Tn as k, Gt as l, Wt as m, Vt as n, Jt as o, Xt as p, Ut as r, Zt as s, nr as t, Yt as u, Bi as v, An as w, Kn as x, Sn as y, ia as z };