@camera.ui/server 0.0.22-alpha.0 → 0.0.22-alpha.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 (569) hide show
  1. package/dist/interface/@intlify.DXtFJcML.0.0.22-alpha.2.js +15 -0
  2. package/dist/interface/@mdi.C1UTQKuc.0.0.22-alpha.2.js +1 -0
  3. package/dist/interface/@tanstack.B6ZKNODP.0.0.22-alpha.2.js +1 -0
  4. package/dist/interface/{@vee-validate.BgtYefC2.0.0.22-alpha.0.js → @vee-validate.BLOXgupV.0.0.22-alpha.2.js} +2 -2
  5. package/dist/interface/@vue.DYBoJLkm.0.0.22-alpha.2.js +17 -0
  6. package/dist/interface/{@vueform.BbHIRROu.0.0.22-alpha.0.js → @vueform.BNEdNEfe.0.0.22-alpha.2.js} +1 -1
  7. package/dist/interface/@vueuse.DLeXr990.0.0.22-alpha.2.js +1 -0
  8. package/dist/interface/Account.CJmkOolZ.0.0.22-alpha.2.js +1 -0
  9. package/dist/interface/Adminpanel.Tg7HwSe9.0.0.22-alpha.2.js +2 -0
  10. package/dist/interface/Appearance.Bu1bU0wi.0.0.22-alpha.2.js +1 -0
  11. package/dist/interface/Backup.8VdHTNcr.0.0.22-alpha.2.js +1 -0
  12. package/dist/interface/Camera.Dg8hy2Yt.0.0.22-alpha.2.js +1 -0
  13. package/dist/interface/Cameras.BIlZs0XL.0.0.22-alpha.2.js +1 -0
  14. package/dist/interface/Camview.BOntwhuV.0.0.22-alpha.2.js +1 -0
  15. package/dist/interface/Config.jsnOhEqZ.0.0.22-alpha.2.js +1 -0
  16. package/dist/interface/Console.D9pK-qBL.0.0.22-alpha.2.js +4 -0
  17. package/dist/interface/FirstSteps.Cb5a8AUL.0.0.22-alpha.2.js +1 -0
  18. package/dist/interface/{NewCamera.CB2ARQ7q.0.0.22-alpha.0.js → NewCamera.Dz60UmLc.0.0.22-alpha.2.js} +2 -2
  19. package/dist/interface/Plugin.DsAb_cep.0.0.22-alpha.2.js +1 -0
  20. package/dist/interface/Plugins.bxGkXmVc.0.0.22-alpha.2.js +1 -0
  21. package/dist/interface/Recordings.BTkAhv1T.0.0.22-alpha.2.js +1 -0
  22. package/dist/interface/Recordings.C_TDdsbp.0.0.22-alpha.2.js +1 -0
  23. package/dist/interface/Settings.Br20f1vP.0.0.22-alpha.2.js +1 -0
  24. package/dist/interface/System.WdQgcjx6.0.0.22-alpha.2.js +4 -0
  25. package/dist/interface/User.BUO6E9hO.0.0.22-alpha.2.js +1 -0
  26. package/dist/interface/VConfigEditor.vue_vue_type_script_setup_true_lang.V-YCJXF9.0.0.22-alpha.2.js +2 -0
  27. package/dist/interface/VConsole.efu2RLE4.0.0.22-alpha.2.js +1 -0
  28. package/dist/interface/VPlayer.7xACf1AA.0.0.22-alpha.2.js +4 -0
  29. package/dist/interface/VPluginCard.DObvo0pi.0.0.22-alpha.2.js +4 -0
  30. package/dist/interface/{ace-builds.BJA55oyY.0.0.22-alpha.0.js → ace-builds.CYuWji3-.0.0.22-alpha.2.js} +27 -27
  31. package/dist/interface/{apexcharts.CDIQ8dOe.0.0.22-alpha.0.js → apexcharts.BjVuUwvF.0.0.22-alpha.2.js} +1 -1
  32. package/dist/interface/assets/Adminpanel.0.0.22-alpha.2.a3t1v3MB.css +1 -0
  33. package/dist/interface/assets/Camera.0.0.22-alpha.2.D1I-fW4q.css +1 -0
  34. package/dist/interface/assets/Cameras.0.0.22-alpha.2.Buf1Dgce.css +1 -0
  35. package/dist/interface/assets/Camview.0.0.22-alpha.2.B7Cja2ry.css +1 -0
  36. package/dist/interface/assets/Config.0.0.22-alpha.2.DNGo2krN.css +1 -0
  37. package/dist/interface/assets/Console.0.0.22-alpha.2.Bh8l9QnM.css +1 -0
  38. package/dist/interface/assets/FirstSteps.0.0.22-alpha.2.sPEcItZ6.css +1 -0
  39. package/dist/interface/assets/NewCamera.0.0.22-alpha.2.Cq8GzeJ7.css +1 -0
  40. package/dist/interface/assets/{Settings.0.0.22-alpha.0.DC_-E3CR.css → Settings.0.0.22-alpha.2.CVmui2kE.css} +1 -1
  41. package/dist/interface/assets/VConsole.0.0.22-alpha.2.BCqKHpmJ.css +1 -0
  42. package/dist/interface/assets/VPlayer.0.0.22-alpha.2.DNtDNhfg.css +1 -0
  43. package/dist/interface/assets/VPluginCard.0.0.22-alpha.2.C8Lj6X-J.css +1 -0
  44. package/dist/interface/assets/main.0.0.22-alpha.2.DNhh__S1.css +1 -0
  45. package/dist/interface/assets/{vuetify.0.0.22-alpha.0.Cd1awv3t.css → vuetify.0.0.22-alpha.2.CgGsw6iO.css} +2 -2
  46. package/dist/interface/birpc.l0sNRNKZ.0.0.22-alpha.2.js +1 -0
  47. package/dist/interface/{dnd-core.BOxrARjV.0.0.22-alpha.0.js → dnd-core.CInfibuN.0.0.22-alpha.2.js} +1 -1
  48. package/dist/interface/{draggabilly.BEF5LqAH.0.0.22-alpha.0.js → draggabilly.D1IWfp_b.0.0.22-alpha.2.js} +1 -1
  49. package/dist/interface/engine.io-client.DefPnTEq.0.0.22-alpha.2.js +1 -0
  50. package/dist/interface/{ev-emitter.CsrKKb5x.0.0.22-alpha.0.js → ev-emitter.Dc-aWf7P.0.0.22-alpha.2.js} +1 -1
  51. package/dist/interface/{fast-deep-equal.CU36Z4X8.0.0.22-alpha.0.js → fast-deep-equal.B5b3SrkT.0.0.22-alpha.2.js} +1 -1
  52. package/dist/interface/{highlight.js.Cj98Ckpw.0.0.22-alpha.0.js → highlight.js.UlfE9jpO.0.0.22-alpha.2.js} +1 -1
  53. package/dist/interface/hookable.B8xFkYCm.0.0.22-alpha.2.js +1 -0
  54. package/dist/interface/index.html +34 -36
  55. package/dist/interface/{linkify-it.DIkWfPNS.0.0.22-alpha.0.js → linkify-it.Fi_bpuck.0.0.22-alpha.2.js} +1 -1
  56. package/dist/interface/main.oy2O2TRy.0.0.22-alpha.2.js +5 -0
  57. package/dist/interface/{markdown-it.DZ_JRYr5.0.0.22-alpha.0.js → markdown-it.DJgGU14J.0.0.22-alpha.2.js} +1 -1
  58. package/dist/interface/{nprogress.BKgW3YbN.0.0.22-alpha.0.js → nprogress.tJ-b_-wu.0.0.22-alpha.2.js} +1 -1
  59. package/dist/interface/perfect-debounce.Cp2ysxOb.0.0.22-alpha.2.js +1 -0
  60. package/dist/interface/pinia.yZCOO45u.0.0.22-alpha.2.js +5 -0
  61. package/dist/interface/plugins.Cfyqqots.0.0.22-alpha.2.js +1 -0
  62. package/dist/interface/point-in-polygon-hao.l0sNRNKZ.0.0.22-alpha.2.js +1 -0
  63. package/dist/interface/{qrcode.EjmMHZZR.0.0.22-alpha.0.js → qrcode.9XoqawvO.0.0.22-alpha.2.js} +1 -1
  64. package/dist/interface/{react-dnd-touch-backend.CU5Ax-9G.0.0.22-alpha.0.js → react-dnd-touch-backend.C6RhMT4L.0.0.22-alpha.2.js} +1 -1
  65. package/dist/interface/{rxjs.Cj9LQ_6u.0.0.22-alpha.0.js → rxjs.1CAxveb4.0.0.22-alpha.2.js} +1 -1
  66. package/dist/interface/socket.io-client.e8QnYieU.0.0.22-alpha.2.js +1 -0
  67. package/dist/interface/{socket.io-parser.CjxGsMQx.0.0.22-alpha.0.js → socket.io-parser.BLk6IoUZ.0.0.22-alpha.2.js} +1 -1
  68. package/dist/interface/sw.js +1 -1
  69. package/dist/interface/sweepline-intersections.l0sNRNKZ.0.0.22-alpha.2.js +1 -0
  70. package/dist/interface/system.CxMAOYjs.0.0.22-alpha.2.js +1 -0
  71. package/dist/interface/types.Cz9TaZAP.0.0.22-alpha.2.js +1 -0
  72. package/dist/interface/{unidragger.DTWO4kXE.0.0.22-alpha.0.js → unidragger.D9uoooG_.0.0.22-alpha.2.js} +1 -1
  73. package/dist/interface/utils.mAKpSMLY.0.0.22-alpha.2.js +1 -0
  74. package/dist/interface/uuid.Ch9TGLTe.0.0.22-alpha.2.js +1 -0
  75. package/dist/interface/vee-validate.DnRu3xAR.0.0.22-alpha.2.js +5 -0
  76. package/dist/interface/vue-i18n.DNPn_WN3.0.0.22-alpha.2.js +5 -0
  77. package/dist/interface/{vue-inline-svg.DF4jsptY.0.0.22-alpha.0.js → vue-inline-svg.BxDq9WpB.0.0.22-alpha.2.js} +1 -1
  78. package/dist/interface/vue-router.Ci1GIRoh.0.0.22-alpha.2.js +5 -0
  79. package/dist/interface/vue.l0sNRNKZ.0.0.22-alpha.2.js +1 -0
  80. package/dist/interface/vue3-apexcharts.4RpZv9AC.0.0.22-alpha.2.js +1 -0
  81. package/dist/interface/{vue3-dnd.CsLnkm-l.0.0.22-alpha.0.js → vue3-dnd.CyNbBiuS.0.0.22-alpha.2.js} +1 -1
  82. package/dist/interface/vue3-toastify.Jtf1C0Kw.0.0.22-alpha.2.js +1 -0
  83. package/dist/interface/vuetify.D4io05br.0.0.22-alpha.2.js +5 -0
  84. package/dist/interface/zod.DnW1_kUe.0.0.22-alpha.2.js +1 -0
  85. package/dist/server/bin/cameraui-server.js +8 -0
  86. package/dist/server/bin/cameraui-server.js.map +1 -0
  87. package/dist/server/package.json +44 -70
  88. package/dist/server/requirements.txt +6 -5
  89. package/dist/server/src/api/controllers/auth.controller.js +1 -1
  90. package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
  91. package/dist/server/src/api/controllers/backup.controller.js +2 -2
  92. package/dist/server/src/api/controllers/backup.controller.js.map +1 -1
  93. package/dist/server/src/api/controllers/cameras.controller.d.ts +4 -2
  94. package/dist/server/src/api/controllers/cameras.controller.js +88 -42
  95. package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
  96. package/dist/server/src/api/controllers/files.controller.js.map +1 -1
  97. package/dist/server/src/api/controllers/frameWorkers.controller.d.ts +1 -1
  98. package/dist/server/src/api/controllers/frameWorkers.controller.js +15 -7
  99. package/dist/server/src/api/controllers/frameWorkers.controller.js.map +1 -1
  100. package/dist/server/src/api/controllers/plugins.controller.d.ts +3 -4
  101. package/dist/server/src/api/controllers/plugins.controller.js +141 -202
  102. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  103. package/dist/server/src/api/controllers/system.controller.d.ts +9 -3
  104. package/dist/server/src/api/controllers/system.controller.js +73 -53
  105. package/dist/server/src/api/controllers/system.controller.js.map +1 -1
  106. package/dist/server/src/api/controllers/users.controller.js +12 -10
  107. package/dist/server/src/api/controllers/users.controller.js.map +1 -1
  108. package/dist/server/src/api/database/checks.d.ts +55 -0
  109. package/dist/server/src/api/database/checks.js +183 -0
  110. package/dist/server/src/api/database/checks.js.map +1 -0
  111. package/dist/server/src/api/database/constants.d.ts +8 -0
  112. package/dist/server/src/api/database/constants.js +9 -0
  113. package/dist/server/src/api/database/constants.js.map +1 -0
  114. package/dist/server/src/api/database/index.d.ts +4 -13
  115. package/dist/server/src/api/database/index.js +61 -39
  116. package/dist/server/src/api/database/index.js.map +1 -1
  117. package/dist/server/src/api/database/migration.d.ts +1 -0
  118. package/dist/server/src/api/database/migration.js +73 -7
  119. package/dist/server/src/api/database/migration.js.map +1 -1
  120. package/dist/server/src/api/database/selfcheck.d.ts +48 -0
  121. package/dist/server/src/api/database/selfcheck.js +398 -0
  122. package/dist/server/src/api/database/selfcheck.js.map +1 -0
  123. package/dist/server/src/api/database/types.d.ts +15 -141
  124. package/dist/server/src/api/go2rtc/api/application.js +3 -2
  125. package/dist/server/src/api/go2rtc/api/application.js.map +1 -1
  126. package/dist/server/src/api/go2rtc/api/index.js +3 -2
  127. package/dist/server/src/api/go2rtc/api/index.js.map +1 -1
  128. package/dist/server/src/api/go2rtc/api/streams.d.ts +1 -1
  129. package/dist/server/src/api/go2rtc/api/streams.js +4 -2
  130. package/dist/server/src/api/go2rtc/api/streams.js.map +1 -1
  131. package/dist/server/src/api/go2rtc/index.d.ts +1 -0
  132. package/dist/server/src/api/go2rtc/index.js +6 -1
  133. package/dist/server/src/api/go2rtc/index.js.map +1 -1
  134. package/dist/server/src/api/go2rtc/types.d.ts +2 -18
  135. package/dist/server/src/api/index.d.ts +1 -0
  136. package/dist/server/src/api/index.js +23 -31
  137. package/dist/server/src/api/index.js.map +1 -1
  138. package/dist/server/src/api/middlewares/authPermission.middleware.d.ts +3 -3
  139. package/dist/server/src/api/middlewares/authPermission.middleware.js.map +1 -1
  140. package/dist/server/src/api/middlewares/authValidation.middleware.d.ts +2 -2
  141. package/dist/server/src/api/middlewares/authValidation.middleware.js +3 -3
  142. package/dist/server/src/api/middlewares/authValidation.middleware.js.map +1 -1
  143. package/dist/server/src/api/middlewares/socketAuth.middleware.d.ts +1 -1
  144. package/dist/server/src/api/middlewares/socketAuth.middleware.js +1 -1
  145. package/dist/server/src/api/plugins/header.plugin.d.ts +2 -0
  146. package/dist/server/src/api/plugins/header.plugin.js +13 -0
  147. package/dist/server/src/api/plugins/header.plugin.js.map +1 -0
  148. package/dist/server/src/api/plugins/logger.plugin.js +1 -1
  149. package/dist/server/src/api/plugins/logger.plugin.js.map +1 -1
  150. package/dist/server/src/api/plugins/system.plugin.d.ts +3 -1
  151. package/dist/server/src/api/plugins/system.plugin.js +6 -1
  152. package/dist/server/src/api/plugins/system.plugin.js.map +1 -1
  153. package/dist/server/src/api/plugins/useragent.plugin.d.ts +1 -1
  154. package/dist/server/src/api/plugins/useragent.plugin.js +1 -1
  155. package/dist/server/src/api/plugins/useragent.plugin.js.map +1 -1
  156. package/dist/server/src/api/routes/cameras.routes.js +12 -0
  157. package/dist/server/src/api/routes/cameras.routes.js.map +1 -1
  158. package/dist/server/src/api/routes/plugins.routes.js +24 -0
  159. package/dist/server/src/api/routes/plugins.routes.js.map +1 -1
  160. package/dist/server/src/api/routes/system.routes.js +3 -6
  161. package/dist/server/src/api/routes/system.routes.js.map +1 -1
  162. package/dist/server/src/api/schemas/backup.schema.js.map +1 -1
  163. package/dist/server/src/api/schemas/cameras.schema.d.ts +227 -187
  164. package/dist/server/src/api/schemas/cameras.schema.js +25 -6
  165. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  166. package/dist/server/src/api/schemas/config.schema.d.ts +12 -20
  167. package/dist/server/src/api/schemas/config.schema.js +0 -2
  168. package/dist/server/src/api/schemas/config.schema.js.map +1 -1
  169. package/dist/server/src/api/schemas/go2rtc.schema.d.ts +143 -143
  170. package/dist/server/src/api/schemas/plugins.schema.d.ts +5 -5
  171. package/dist/server/src/api/schemas/plugins.schema.js +1 -1
  172. package/dist/server/src/api/schemas/plugins.schema.js.map +1 -1
  173. package/dist/server/src/api/schemas/system.schema.d.ts +8 -0
  174. package/dist/server/src/api/schemas/system.schema.js +6 -1
  175. package/dist/server/src/api/schemas/system.schema.js.map +1 -1
  176. package/dist/server/src/api/schemas/users.schema.d.ts +170 -170
  177. package/dist/server/src/api/schemas/users.schema.js.map +1 -1
  178. package/dist/server/src/api/services/auth.service.js +17 -17
  179. package/dist/server/src/api/services/auth.service.js.map +1 -1
  180. package/dist/server/src/api/services/backup.service.js.map +1 -1
  181. package/dist/server/src/api/services/cameras.service.d.ts +10 -5
  182. package/dist/server/src/api/services/cameras.service.js +166 -89
  183. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  184. package/dist/server/src/api/services/plugins.service.d.ts +1 -0
  185. package/dist/server/src/api/services/plugins.service.js +16 -11
  186. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  187. package/dist/server/src/api/services/system.service.js +5 -4
  188. package/dist/server/src/api/services/system.service.js.map +1 -1
  189. package/dist/server/src/api/services/users.service.js +29 -29
  190. package/dist/server/src/api/services/users.service.js.map +1 -1
  191. package/dist/server/src/api/types/index.d.ts +127 -129
  192. package/dist/server/src/api/types/index.js.map +1 -1
  193. package/dist/server/src/api/utils/cameraSource.d.ts +2 -0
  194. package/dist/server/src/api/utils/cameraSource.js +34 -0
  195. package/dist/server/src/api/utils/cameraSource.js.map +1 -0
  196. package/dist/server/src/api/utils/cert.d.ts +7 -7
  197. package/dist/server/src/api/utils/cert.js +178 -385
  198. package/dist/server/src/api/utils/cert.js.map +1 -1
  199. package/dist/server/src/api/utils/constants.d.ts +0 -2
  200. package/dist/server/src/api/utils/constants.js +4 -7
  201. package/dist/server/src/api/utils/constants.js.map +1 -1
  202. package/dist/server/src/api/websocket/index.js +2 -1
  203. package/dist/server/src/api/websocket/index.js.map +1 -1
  204. package/dist/server/src/api/websocket/nsp/logs.d.ts +10 -2
  205. package/dist/server/src/api/websocket/nsp/logs.js +110 -76
  206. package/dist/server/src/api/websocket/nsp/logs.js.map +1 -1
  207. package/dist/server/src/api/websocket/nsp/metrics.d.ts +1 -1
  208. package/dist/server/src/api/websocket/nsp/metrics.js +19 -16
  209. package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -1
  210. package/dist/server/src/api/websocket/nsp/notifications.js +1 -1
  211. package/dist/server/src/api/websocket/nsp/notifications.js.map +1 -1
  212. package/dist/server/src/api/websocket/nsp/plugins.d.ts +1 -1
  213. package/dist/server/src/api/websocket/nsp/plugins.js +3 -4
  214. package/dist/server/src/api/websocket/nsp/plugins.js.map +1 -1
  215. package/dist/server/src/api/websocket/nsp/server.d.ts +9 -4
  216. package/dist/server/src/api/websocket/nsp/server.js +57 -20
  217. package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
  218. package/dist/server/src/api/websocket/nsp/status.d.ts +1 -1
  219. package/dist/server/src/api/websocket/nsp/status.js +9 -7
  220. package/dist/server/src/api/websocket/nsp/status.js.map +1 -1
  221. package/dist/server/src/api/websocket/types.d.ts +7 -13
  222. package/dist/server/src/api.d.ts +8 -23
  223. package/dist/server/src/api.js +43 -24
  224. package/dist/server/src/api.js.map +1 -1
  225. package/dist/server/src/camera/controller.d.ts +31 -14
  226. package/dist/server/src/camera/controller.js +371 -68
  227. package/dist/server/src/camera/controller.js.map +1 -1
  228. package/dist/server/src/{decoder/worker.d.ts → camera/frameWorker.d.ts} +11 -8
  229. package/dist/server/src/camera/frameWorker.js +305 -0
  230. package/dist/server/src/camera/frameWorker.js.map +1 -0
  231. package/dist/server/src/camera/types.d.ts +1 -199
  232. package/dist/server/src/camera/types.js +1 -6
  233. package/dist/server/src/camera/types.js.map +1 -1
  234. package/dist/server/src/go2rtc/index.js +23 -11
  235. package/dist/server/src/go2rtc/index.js.map +1 -1
  236. package/dist/server/src/main.d.ts +21 -0
  237. package/dist/server/src/main.js +130 -74
  238. package/dist/server/src/main.js.map +1 -1
  239. package/dist/server/src/nats/index.d.ts +5 -5
  240. package/dist/server/src/nats/index.js +5 -6
  241. package/dist/server/src/nats/index.js.map +1 -1
  242. package/dist/server/src/nats/proxy/cameraDevice.d.ts +4 -4
  243. package/dist/server/src/nats/proxy/cameraDevice.js +41 -58
  244. package/dist/server/src/nats/proxy/cameraDevice.js.map +1 -1
  245. package/dist/server/src/nats/proxy/coreManager.d.ts +4 -4
  246. package/dist/server/src/nats/proxy/coreManager.js +6 -1
  247. package/dist/server/src/nats/proxy/coreManager.js.map +1 -1
  248. package/dist/server/src/nats/proxy/deviceManager.d.ts +5 -7
  249. package/dist/server/src/nats/proxy/deviceManager.js +4 -2
  250. package/dist/server/src/nats/proxy/deviceManager.js.map +1 -1
  251. package/dist/server/src/nats/server.js +33 -22
  252. package/dist/server/src/nats/server.js.map +1 -1
  253. package/dist/server/src/nats/types.d.ts +3 -121
  254. package/dist/server/src/nats/utils.d.ts +1 -1
  255. package/dist/server/src/nats/websocket.d.ts +2 -2
  256. package/dist/server/src/nats/websocket.js +7 -6
  257. package/dist/server/src/nats/websocket.js.map +1 -1
  258. package/dist/server/src/plugins/index.d.ts +3 -4
  259. package/dist/server/src/plugins/index.js +39 -38
  260. package/dist/server/src/plugins/index.js.map +1 -1
  261. package/dist/server/src/plugins/plugin.d.ts +6 -3
  262. package/dist/server/src/plugins/plugin.js +59 -23
  263. package/dist/server/src/plugins/plugin.js.map +1 -1
  264. package/dist/server/src/plugins/types.d.ts +1 -148
  265. package/dist/server/src/plugins/types.js +0 -15
  266. package/dist/server/src/plugins/types.js.map +1 -1
  267. package/dist/server/src/plugins/worker.d.ts +22 -3
  268. package/dist/server/src/plugins/worker.js +201 -59
  269. package/dist/server/src/plugins/worker.js.map +1 -1
  270. package/dist/server/src/services/config/constants.d.ts +3 -1
  271. package/dist/server/src/services/config/constants.js +12 -8
  272. package/dist/server/src/services/config/constants.js.map +1 -1
  273. package/dist/server/src/services/config/index.d.ts +15 -9
  274. package/dist/server/src/services/config/index.js +135 -46
  275. package/dist/server/src/services/config/index.js.map +1 -1
  276. package/dist/server/src/services/config/types.d.ts +10 -15
  277. package/dist/server/src/services/config/types.js.map +1 -1
  278. package/dist/server/src/services/logger/index.d.ts +10 -17
  279. package/dist/server/src/services/logger/index.js +44 -91
  280. package/dist/server/src/services/logger/index.js.map +1 -1
  281. package/dist/server/src/types.d.ts +24 -0
  282. package/eslint.config.js +89 -0
  283. package/localdeps.txt +6 -0
  284. package/package.json +44 -70
  285. package/dist/interface/@intlify.YW_pt133.0.0.22-alpha.0.js +0 -15
  286. package/dist/interface/@mdi.DnMbZhUH.0.0.22-alpha.0.js +0 -1
  287. package/dist/interface/@popperjs.BQBsAJpH.0.0.22-alpha.0.js +0 -1
  288. package/dist/interface/@tanstack.Dk7F0Vz0.0.0.22-alpha.0.js +0 -1
  289. package/dist/interface/@vue.CvjRlaU6.0.0.22-alpha.0.js +0 -17
  290. package/dist/interface/@vueuse.XquUZgtp.0.0.22-alpha.0.js +0 -1
  291. package/dist/interface/Account.Bv7AmbuK.0.0.22-alpha.0.js +0 -1
  292. package/dist/interface/Adminpanel.DsGsXBHH.0.0.22-alpha.0.js +0 -2
  293. package/dist/interface/Appearance.C6Qj2C_l.0.0.22-alpha.0.js +0 -1
  294. package/dist/interface/Backup.BlSlgkpW.0.0.22-alpha.0.js +0 -1
  295. package/dist/interface/Camera.CC08IZ17.0.0.22-alpha.0.js +0 -1
  296. package/dist/interface/Cameras.BqEpCuCR.0.0.22-alpha.0.js +0 -1
  297. package/dist/interface/Camview.u79SRE7s.0.0.22-alpha.0.js +0 -1
  298. package/dist/interface/Config.CE50Q8KG.0.0.22-alpha.0.js +0 -1
  299. package/dist/interface/Console.DDlXS_WH.0.0.22-alpha.0.js +0 -4
  300. package/dist/interface/FirstSteps.CHLswquo.0.0.22-alpha.0.js +0 -1
  301. package/dist/interface/Plugin.CtrAxCQv.0.0.22-alpha.0.js +0 -1
  302. package/dist/interface/Plugins.CunIvSJv.0.0.22-alpha.0.js +0 -1
  303. package/dist/interface/Recordings.Bsbb3cLA.0.0.22-alpha.0.js +0 -1
  304. package/dist/interface/Recordings.CnclYToJ.0.0.22-alpha.0.js +0 -1
  305. package/dist/interface/Settings.CnMXEIf2.0.0.22-alpha.0.js +0 -1
  306. package/dist/interface/System.BnPrdvN0.0.0.22-alpha.0.js +0 -4
  307. package/dist/interface/User.DBaos4b8.0.0.22-alpha.0.js +0 -1
  308. package/dist/interface/VConfigEditor.vue_vue_type_script_setup_true_lang.CFukh5l5.0.0.22-alpha.0.js +0 -2
  309. package/dist/interface/VConsole.BgptXj79.0.0.22-alpha.0.js +0 -1
  310. package/dist/interface/VPlayer.C5vExb2M.0.0.22-alpha.0.js +0 -1
  311. package/dist/interface/VPluginCard.B-Rum4A2.0.0.22-alpha.0.js +0 -4
  312. package/dist/interface/assets/Adminpanel.0.0.22-alpha.0.CXsTAXPL.css +0 -1
  313. package/dist/interface/assets/Camera.0.0.22-alpha.0.BDtUJ-lA.css +0 -1
  314. package/dist/interface/assets/Cameras.0.0.22-alpha.0.Djx0F2MM.css +0 -1
  315. package/dist/interface/assets/Camview.0.0.22-alpha.0.Ce_V-Nxj.css +0 -1
  316. package/dist/interface/assets/Config.0.0.22-alpha.0.k4QpWumg.css +0 -1
  317. package/dist/interface/assets/Console.0.0.22-alpha.0.DWrfRWs9.css +0 -1
  318. package/dist/interface/assets/FirstSteps.0.0.22-alpha.0.B3-pv8-a.css +0 -1
  319. package/dist/interface/assets/NewCamera.0.0.22-alpha.0.DJ3tUBT_.css +0 -1
  320. package/dist/interface/assets/VConsole.0.0.22-alpha.0.BZT1WyS-.css +0 -1
  321. package/dist/interface/assets/VPlayer.0.0.22-alpha.0.CZXlTn4I.css +0 -1
  322. package/dist/interface/assets/VPluginCard.0.0.22-alpha.0.CIL48ca_.css +0 -1
  323. package/dist/interface/assets/main.0.0.22-alpha.0.BOf8IWhK.css +0 -1
  324. package/dist/interface/assets/v-calendar.0.0.22-alpha.0.CtSuDYZU.css +0 -1
  325. package/dist/interface/engine.io-client.BMIamAQC.0.0.22-alpha.0.js +0 -1
  326. package/dist/interface/main.BdLkotV4.0.0.22-alpha.0.js +0 -4
  327. package/dist/interface/pinia.DA4R8TFr.0.0.22-alpha.0.js +0 -5
  328. package/dist/interface/plugins.BcX2DDRp.0.0.22-alpha.0.js +0 -1
  329. package/dist/interface/socket.io-client.C9LJ1Zls.0.0.22-alpha.0.js +0 -1
  330. package/dist/interface/system.-IyAtje9.0.0.22-alpha.0.js +0 -1
  331. package/dist/interface/ui.Cu_G5h1z.0.0.22-alpha.0.js +0 -1
  332. package/dist/interface/utils.BvINh1mj.0.0.22-alpha.0.js +0 -1
  333. package/dist/interface/uuid.DvF23Exx.0.0.22-alpha.0.js +0 -1
  334. package/dist/interface/v-calendar.CmvG-vVL.0.0.22-alpha.0.js +0 -1
  335. package/dist/interface/vee-validate.DTObZ862.0.0.22-alpha.0.js +0 -5
  336. package/dist/interface/vue-i18n.CGodlogN.0.0.22-alpha.0.js +0 -5
  337. package/dist/interface/vue-router.CxSRaAvj.0.0.22-alpha.0.js +0 -5
  338. package/dist/interface/vue3-apexcharts.DAlcrhmw.0.0.22-alpha.0.js +0 -1
  339. package/dist/interface/vue3-toastify.CEJWJskm.0.0.22-alpha.0.js +0 -1
  340. package/dist/interface/vuetify.Cn9UEwpM.0.0.22-alpha.0.js +0 -5
  341. package/dist/interface/zod.BaF2dDCd.0.0.22-alpha.0.js +0 -1
  342. package/dist/server/bin/cameraui.d.ts +0 -54
  343. package/dist/server/bin/cameraui.js +0 -622
  344. package/dist/server/bin/cameraui.js.map +0 -1
  345. package/dist/server/bin/fork.js +0 -13
  346. package/dist/server/bin/fork.js.map +0 -1
  347. package/dist/server/bin/installer/base.d.ts +0 -17
  348. package/dist/server/bin/installer/base.js +0 -45
  349. package/dist/server/bin/installer/base.js.map +0 -1
  350. package/dist/server/bin/installer/darwin.d.ts +0 -61
  351. package/dist/server/bin/installer/darwin.js +0 -249
  352. package/dist/server/bin/installer/darwin.js.map +0 -1
  353. package/dist/server/bin/installer/freebsd.d.ts +0 -64
  354. package/dist/server/bin/installer/freebsd.js +0 -254
  355. package/dist/server/bin/installer/freebsd.js.map +0 -1
  356. package/dist/server/bin/installer/linux.d.ts +0 -103
  357. package/dist/server/bin/installer/linux.js +0 -482
  358. package/dist/server/bin/installer/linux.js.map +0 -1
  359. package/dist/server/bin/installer/win32.d.ts +0 -45
  360. package/dist/server/bin/installer/win32.js +0 -178
  361. package/dist/server/bin/installer/win32.js.map +0 -1
  362. package/dist/server/src/api/plugins/cameraui.plugin.d.ts +0 -11
  363. package/dist/server/src/api/plugins/cameraui.plugin.js +0 -6
  364. package/dist/server/src/api/plugins/cameraui.plugin.js.map +0 -1
  365. package/dist/server/src/api/plugins/database.plugin.d.ts +0 -11
  366. package/dist/server/src/api/plugins/database.plugin.js +0 -12
  367. package/dist/server/src/api/plugins/database.plugin.js.map +0 -1
  368. package/dist/server/src/api/plugins/go2rtc.plugin.d.ts +0 -11
  369. package/dist/server/src/api/plugins/go2rtc.plugin.js +0 -11
  370. package/dist/server/src/api/plugins/go2rtc.plugin.js.map +0 -1
  371. package/dist/server/src/camera/device.d.ts +0 -29
  372. package/dist/server/src/camera/device.js +0 -20
  373. package/dist/server/src/camera/device.js.map +0 -1
  374. package/dist/server/src/camera/index.d.ts +0 -94
  375. package/dist/server/src/camera/index.js +0 -620
  376. package/dist/server/src/camera/index.js.map +0 -1
  377. package/dist/server/src/camera/interfaces/camera.d.ts +0 -10
  378. package/dist/server/src/camera/interfaces/camera.js +0 -23
  379. package/dist/server/src/camera/interfaces/camera.js.map +0 -1
  380. package/dist/server/src/camera/interfaces/prebuffer.d.ts +0 -11
  381. package/dist/server/src/camera/interfaces/prebuffer.js +0 -26
  382. package/dist/server/src/camera/interfaces/prebuffer.js.map +0 -1
  383. package/dist/server/src/camera/interfaces/ptz.d.ts +0 -13
  384. package/dist/server/src/camera/interfaces/ptz.js +0 -47
  385. package/dist/server/src/camera/interfaces/ptz.js.map +0 -1
  386. package/dist/server/src/camera/iou.d.ts +0 -2
  387. package/dist/server/src/camera/iou.js +0 -53
  388. package/dist/server/src/camera/iou.js.map +0 -1
  389. package/dist/server/src/camera/polygon.d.ts +0 -6
  390. package/dist/server/src/camera/polygon.js +0 -151
  391. package/dist/server/src/camera/polygon.js.map +0 -1
  392. package/dist/server/src/camera/streaming/peer-connection.d.ts +0 -55
  393. package/dist/server/src/camera/streaming/peer-connection.js +0 -203
  394. package/dist/server/src/camera/streaming/peer-connection.js.map +0 -1
  395. package/dist/server/src/camera/streaming/webrtc-connection.d.ts +0 -35
  396. package/dist/server/src/camera/streaming/webrtc-connection.js +0 -170
  397. package/dist/server/src/camera/streaming/webrtc-connection.js.map +0 -1
  398. package/dist/server/src/camera/streaming/werift-session.d.ts +0 -41
  399. package/dist/server/src/camera/streaming/werift-session.js +0 -179
  400. package/dist/server/src/camera/streaming/werift-session.js.map +0 -1
  401. package/dist/server/src/camera/videoFrame.d.ts +0 -24
  402. package/dist/server/src/camera/videoFrame.js +0 -104
  403. package/dist/server/src/camera/videoFrame.js.map +0 -1
  404. package/dist/server/src/decoder/index.d.ts +0 -11
  405. package/dist/server/src/decoder/index.js +0 -32
  406. package/dist/server/src/decoder/index.js.map +0 -1
  407. package/dist/server/src/decoder/types.d.ts +0 -151
  408. package/dist/server/src/decoder/types.js +0 -2
  409. package/dist/server/src/decoder/types.js.map +0 -1
  410. package/dist/server/src/decoder/worker.js +0 -245
  411. package/dist/server/src/decoder/worker.js.map +0 -1
  412. package/dist/server/src/index.d.ts +0 -18
  413. package/dist/server/src/index.js +0 -5
  414. package/dist/server/src/index.js.map +0 -1
  415. package/dist/server/src/nats/connection.d.ts +0 -17
  416. package/dist/server/src/nats/connection.js +0 -66
  417. package/dist/server/src/nats/connection.js.map +0 -1
  418. package/dist/server/src/nats/constants.d.ts +0 -1
  419. package/dist/server/src/nats/constants.js +0 -2
  420. package/dist/server/src/nats/constants.js.map +0 -1
  421. package/dist/server/src/nats/error.d.ts +0 -9
  422. package/dist/server/src/nats/error.js +0 -11
  423. package/dist/server/src/nats/error.js.map +0 -1
  424. package/dist/server/src/nats/messageQueue.d.ts +0 -20
  425. package/dist/server/src/nats/messageQueue.js +0 -132
  426. package/dist/server/src/nats/messageQueue.js.map +0 -1
  427. package/dist/server/src/nats/subscription.d.ts +0 -12
  428. package/dist/server/src/nats/subscription.js +0 -21
  429. package/dist/server/src/nats/subscription.js.map +0 -1
  430. package/dist/server/src/plugins/interfaces/audioDetection.d.ts +0 -7
  431. package/dist/server/src/plugins/interfaces/audioDetection.js +0 -4
  432. package/dist/server/src/plugins/interfaces/audioDetection.js.map +0 -1
  433. package/dist/server/src/plugins/interfaces/base.d.ts +0 -6
  434. package/dist/server/src/plugins/interfaces/base.js +0 -3
  435. package/dist/server/src/plugins/interfaces/base.js.map +0 -1
  436. package/dist/server/src/plugins/interfaces/motionDetection.d.ts +0 -6
  437. package/dist/server/src/plugins/interfaces/motionDetection.js +0 -4
  438. package/dist/server/src/plugins/interfaces/motionDetection.js.map +0 -1
  439. package/dist/server/src/plugins/interfaces/objectDetection.d.ts +0 -7
  440. package/dist/server/src/plugins/interfaces/objectDetection.js +0 -4
  441. package/dist/server/src/plugins/interfaces/objectDetection.js.map +0 -1
  442. package/dist/server/src/polyglot/node/decoder/child.d.ts +0 -1
  443. package/dist/server/src/polyglot/node/decoder/child.js +0 -644
  444. package/dist/server/src/polyglot/node/decoder/child.js.map +0 -1
  445. package/dist/server/src/polyglot/node/decoder/imageUtils.d.ts +0 -24
  446. package/dist/server/src/polyglot/node/decoder/imageUtils.js +0 -205
  447. package/dist/server/src/polyglot/node/decoder/imageUtils.js.map +0 -1
  448. package/dist/server/src/polyglot/node/decoder/wasm/build/decoder.d.ts +0 -144
  449. package/dist/server/src/polyglot/node/decoder/wasm/build/decoder.js +0 -65
  450. package/dist/server/src/polyglot/node/decoder/wasm/build/decoder.wasm +0 -0
  451. package/dist/server/src/polyglot/node/decoder/wasm/test/imageUtils.py +0 -106
  452. package/dist/server/src/polyglot/node/plugins/cameraStorage.d.ts +0 -107
  453. package/dist/server/src/polyglot/node/plugins/cameraStorage.js +0 -292
  454. package/dist/server/src/polyglot/node/plugins/cameraStorage.js.map +0 -1
  455. package/dist/server/src/polyglot/node/plugins/child.d.ts +0 -28
  456. package/dist/server/src/polyglot/node/plugins/child.js +0 -222
  457. package/dist/server/src/polyglot/node/plugins/child.js.map +0 -1
  458. package/dist/server/src/polyglot/node/plugins/configService.d.ts +0 -104
  459. package/dist/server/src/polyglot/node/plugins/configService.js +0 -213
  460. package/dist/server/src/polyglot/node/plugins/configService.js.map +0 -1
  461. package/dist/server/src/polyglot/node/plugins/pluginApi.d.ts +0 -35
  462. package/dist/server/src/polyglot/node/plugins/pluginApi.js +0 -23
  463. package/dist/server/src/polyglot/node/plugins/pluginApi.js.map +0 -1
  464. package/dist/server/src/polyglot/node/plugins/pluginLogger.d.ts +0 -18
  465. package/dist/server/src/polyglot/node/plugins/pluginLogger.js +0 -89
  466. package/dist/server/src/polyglot/node/plugins/pluginLogger.js.map +0 -1
  467. package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.d.ts +0 -69
  468. package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.js +0 -432
  469. package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.js.map +0 -1
  470. package/dist/server/src/polyglot/node/plugins/proxy/coreManager.d.ts +0 -40
  471. package/dist/server/src/polyglot/node/plugins/proxy/coreManager.js +0 -105
  472. package/dist/server/src/polyglot/node/plugins/proxy/coreManager.js.map +0 -1
  473. package/dist/server/src/polyglot/node/plugins/proxy/deviceManager.d.ts +0 -47
  474. package/dist/server/src/polyglot/node/plugins/proxy/deviceManager.js +0 -164
  475. package/dist/server/src/polyglot/node/plugins/proxy/deviceManager.js.map +0 -1
  476. package/dist/server/src/polyglot/node/plugins/schema.d.ts +0 -293
  477. package/dist/server/src/polyglot/node/plugins/schema.js +0 -740
  478. package/dist/server/src/polyglot/node/plugins/schema.js.map +0 -1
  479. package/dist/server/src/polyglot/node/plugins/storageController.d.ts +0 -30
  480. package/dist/server/src/polyglot/node/plugins/storageController.js +0 -40
  481. package/dist/server/src/polyglot/node/plugins/storageController.js.map +0 -1
  482. package/dist/server/src/polyglot/python/camera/interfaces/camera.py +0 -20
  483. package/dist/server/src/polyglot/python/camera/interfaces/prebuffer.py +0 -25
  484. package/dist/server/src/polyglot/python/camera/interfaces/ptz.py +0 -38
  485. package/dist/server/src/polyglot/python/camera/iou.py +0 -80
  486. package/dist/server/src/polyglot/python/camera/polygon.py +0 -173
  487. package/dist/server/src/polyglot/python/camera/video_frame.py +0 -188
  488. package/dist/server/src/polyglot/python/camera_ui_types/__init__.py +0 -1196
  489. package/dist/server/src/polyglot/python/decoder/child.py +0 -882
  490. package/dist/server/src/polyglot/python/decoder/image_utils.py +0 -149
  491. package/dist/server/src/polyglot/python/decoder/typings.py +0 -99
  492. package/dist/server/src/polyglot/python/plugins/camera_storage.py +0 -391
  493. package/dist/server/src/polyglot/python/plugins/child.py +0 -394
  494. package/dist/server/src/polyglot/python/plugins/config_service.py +0 -187
  495. package/dist/server/src/polyglot/python/plugins/constants.py +0 -1
  496. package/dist/server/src/polyglot/python/plugins/message_queue.py +0 -182
  497. package/dist/server/src/polyglot/python/plugins/plugin_api.py +0 -34
  498. package/dist/server/src/polyglot/python/plugins/plugin_logger.py +0 -111
  499. package/dist/server/src/polyglot/python/plugins/proxy/camera_device.py +0 -1677
  500. package/dist/server/src/polyglot/python/plugins/proxy/core_manager.py +0 -145
  501. package/dist/server/src/polyglot/python/plugins/proxy/device_manager.py +0 -226
  502. package/dist/server/src/polyglot/python/plugins/schema.py +0 -181
  503. package/dist/server/src/polyglot/python/plugins/storage_controller.py +0 -58
  504. package/dist/server/src/polyglot/python/plugins/typings.py +0 -253
  505. package/dist/server/src/polyglot/python/utilities/connection.py +0 -86
  506. package/dist/server/src/polyglot/python/utilities/json_lmdb.py +0 -19
  507. package/dist/server/src/polyglot/python/utilities/object_path.py +0 -195
  508. package/dist/server/src/polyglot/python/utilities/packer.py +0 -11
  509. package/dist/server/src/polyglot/python/utilities/subscriptions.py +0 -22
  510. package/dist/server/src/polyglot/python/utilities/task.py +0 -35
  511. package/dist/server/src/polyglot/python/utilities/thread.py +0 -10
  512. package/dist/server/src/polyglot/python/utilities/utils.py +0 -73
  513. package/dist/server/src/utils/ffmpeg.d.ts +0 -2
  514. package/dist/server/src/utils/ffmpeg.js +0 -61
  515. package/dist/server/src/utils/ffmpeg.js.map +0 -1
  516. package/dist/server/src/utils/network.d.ts +0 -12
  517. package/dist/server/src/utils/network.js +0 -92
  518. package/dist/server/src/utils/network.js.map +0 -1
  519. package/dist/server/src/utils/npm.d.ts +0 -4
  520. package/dist/server/src/utils/npm.js +0 -128
  521. package/dist/server/src/utils/npm.js.map +0 -1
  522. package/dist/server/src/utils/packer.d.ts +0 -2
  523. package/dist/server/src/utils/packer.js +0 -17
  524. package/dist/server/src/utils/packer.js.map +0 -1
  525. package/dist/server/src/utils/pythonInstaller.d.ts +0 -48
  526. package/dist/server/src/utils/pythonInstaller.js +0 -494
  527. package/dist/server/src/utils/pythonInstaller.js.map +0 -1
  528. package/dist/server/src/utils/reader.d.ts +0 -5
  529. package/dist/server/src/utils/reader.js +0 -41
  530. package/dist/server/src/utils/reader.js.map +0 -1
  531. package/dist/server/src/utils/subscribed.d.ts +0 -9
  532. package/dist/server/src/utils/subscribed.js +0 -17
  533. package/dist/server/src/utils/subscribed.js.map +0 -1
  534. package/dist/server/src/utils/utils.d.ts +0 -10
  535. package/dist/server/src/utils/utils.js +0 -165
  536. package/dist/server/src/utils/utils.js.map +0 -1
  537. package/upgrade-server.sh +0 -205
  538. /package/dist/interface/{@babel.l0sNRNKZ.0.0.22-alpha.0.js → @babel.l0sNRNKZ.0.0.22-alpha.2.js} +0 -0
  539. /package/dist/interface/{@react-dnd.CcwRs9xb.0.0.22-alpha.0.js → @react-dnd.CcwRs9xb.0.0.22-alpha.2.js} +0 -0
  540. /package/dist/interface/{@socket.io.Dkula2eQ.0.0.22-alpha.0.js → @socket.io.Dkula2eQ.0.0.22-alpha.2.js} +0 -0
  541. /package/dist/interface/{vue.l0sNRNKZ.0.0.22-alpha.0.js → @turf.l0sNRNKZ.0.0.22-alpha.2.js} +0 -0
  542. /package/dist/interface/{@xterm.DBtVaaEV.0.0.22-alpha.0.js → @xterm.CRKo0AGB.0.0.22-alpha.2.js} +0 -0
  543. /package/dist/interface/assets/{@vueform.0.0.22-alpha.0.h7tNX9p6.css → @vueform.0.0.22-alpha.2.CroAHJs8.css} +0 -0
  544. /package/dist/interface/assets/{@xterm.0.0.22-alpha.0.CGrrDQr5.css → @xterm.0.0.22-alpha.2.CFbL2ovg.css} +0 -0
  545. /package/dist/interface/assets/{Account.0.0.22-alpha.0.Ce3OmKrC.css → Account.0.0.22-alpha.2.J7oAjogS.css} +0 -0
  546. /package/dist/interface/assets/{Backup.0.0.22-alpha.0.BIwaSlv3.css → Backup.0.0.22-alpha.2.CX0rT0QJ.css} +0 -0
  547. /package/dist/interface/assets/{Plugin.0.0.22-alpha.0.BtRA6zDt.css → Plugin.0.0.22-alpha.2.DJbgaQc1.css} +0 -0
  548. /package/dist/interface/assets/{Plugins.0.0.22-alpha.0.Cwu0aGUO.css → Plugins.0.0.22-alpha.2.DXSoO9M1.css} +0 -0
  549. /package/dist/interface/assets/{User.0.0.22-alpha.0.DPDcJbx8.css → User.0.0.22-alpha.2.BiGtIFqt.css} +0 -0
  550. /package/dist/interface/assets/{highlight.0.0.22-alpha.0.DgoK_Xib.css → highlight.0.0.22-alpha.2.Ch2EwETz.css} +0 -0
  551. /package/dist/interface/assets/{logo-256.0.0.22-alpha.0.BCQk9H1-.png → logo-256.0.0.22-alpha.2.BCQk9H1-.png} +0 -0
  552. /package/dist/interface/assets/{logo-512.0.0.22-alpha.0.DLKVOU2S.png → logo-512.0.0.22-alpha.2.DLKVOU2S.png} +0 -0
  553. /package/dist/interface/assets/{logo.0.0.22-alpha.0.DmEiRk0z.png → logo.0.0.22-alpha.2.DmEiRk0z.png} +0 -0
  554. /package/dist/interface/assets/{mode-json.0.0.22-alpha.0.Br7xisR1.js → mode-json.0.0.22-alpha.2.Br7xisR1.js} +0 -0
  555. /package/dist/interface/assets/{mode-yaml.0.0.22-alpha.0.CIYL8U3d.js → mode-yaml.0.0.22-alpha.2.CIYL8U3d.js} +0 -0
  556. /package/dist/interface/assets/{vue3-toastify.0.0.22-alpha.0.DTY1DMRs.css → vue3-toastify.0.0.22-alpha.2.DHXAGmwn.css} +0 -0
  557. /package/dist/interface/{axios.C-n2IhIP.0.0.22-alpha.0.js → axios.C-n2IhIP.0.0.22-alpha.2.js} +0 -0
  558. /package/dist/interface/{compare-versions.DqEOhma6.0.0.22-alpha.0.js → compare-versions.DqEOhma6.0.0.22-alpha.2.js} +0 -0
  559. /package/dist/interface/{dijkstrajs.D_NXgYpA.0.0.22-alpha.0.js → dijkstrajs.D_NXgYpA.0.0.22-alpha.2.js} +0 -0
  560. /package/dist/interface/{engine.io-parser.BiEtp6m2.0.0.22-alpha.0.js → engine.io-parser.BiEtp6m2.0.0.22-alpha.2.js} +0 -0
  561. /package/dist/interface/{entities.C20TfXL6.0.0.22-alpha.0.js → entities.C20TfXL6.0.0.22-alpha.2.js} +0 -0
  562. /package/dist/interface/{get-size.D1dS-IaP.0.0.22-alpha.0.js → get-size.D1dS-IaP.0.0.22-alpha.2.js} +0 -0
  563. /package/dist/interface/{mdurl.k9Sl0PQj.0.0.22-alpha.0.js → mdurl.k9Sl0PQj.0.0.22-alpha.2.js} +0 -0
  564. /package/dist/interface/{punycode.js.Dj65hjkv.0.0.22-alpha.0.js → punycode.js.Dj65hjkv.0.0.22-alpha.2.js} +0 -0
  565. /package/dist/interface/{react-dnd-html5-backend.1HQjlkwI.0.0.22-alpha.0.js → react-dnd-html5-backend.1HQjlkwI.0.0.22-alpha.2.js} +0 -0
  566. /package/dist/interface/{redux.CuxFRhX_.0.0.22-alpha.0.js → redux.CuxFRhX_.0.0.22-alpha.2.js} +0 -0
  567. /package/dist/interface/{tslib.9k7AwCpt.0.0.22-alpha.0.js → tslib.9k7AwCpt.0.0.22-alpha.2.js} +0 -0
  568. /package/dist/interface/{uc.micro.kMc2yuuw.0.0.22-alpha.0.js → uc.micro.kMc2yuuw.0.0.22-alpha.2.js} +0 -0
  569. /package/dist/server/bin/{fork.d.ts → cameraui-server.d.ts} +0 -0
@@ -7,14 +7,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
+ import { createSourceName, isEqual, mergeWith } from '@camera.ui/common/utils';
11
+ import TTLCache from '@isaacs/ttlcache';
10
12
  import { container, delay, registry } from 'tsyringe';
11
13
  import { CAMERA_EXTENSIONS } from '../../plugins/types.js';
12
14
  import { ConfigService } from '../../services/config/index.js';
13
- import { createSourceName, isEqual, mergeWith } from '../../utils/utils.js';
14
15
  import { Database } from '../database/index.js';
15
16
  import { cameraZonesSchema } from '../schemas/cameras.schema.js';
17
+ import { generateInternalCameraSources } from '../utils/cameraSource.js';
16
18
  import { PluginsService } from './plugins.service.js';
17
19
  import { UsersService } from './users.service.js';
20
+ const cameraSourceProbeCache = new TTLCache({ max: 100, ttl: Infinity });
18
21
  let CamerasService = class CamerasService {
19
22
  configService;
20
23
  api;
@@ -31,7 +34,7 @@ let CamerasService = class CamerasService {
31
34
  this.pluginsService = new PluginsService();
32
35
  }
33
36
  async createCamera(cameraData) {
34
- const cameras = this.dbs.camerasDB.get('cameras') || [];
37
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
35
38
  const plugin = this.pluginsService.getPluginById(cameraData.pluginId);
36
39
  if (plugin?.contract.builtIns) {
37
40
  plugin.contract.builtIns.forEach((extensionType) => {
@@ -41,15 +44,16 @@ let CamerasService = class CamerasService {
41
44
  });
42
45
  }
43
46
  cameraData.activityZones = [this.defaultZone()];
47
+ this.addInternalSources(cameraData);
48
+ await this.addCameraSourcesToConfig(cameraData.name, cameraData.sources);
44
49
  cameras.push(cameraData);
45
- const transformedCamera = this.transformCamera(cameraData);
46
50
  await this.dbs.camerasDB.put('cameras', cameras);
47
- await this.addCameraSources(cameraData.name, cameraData.sources);
51
+ const transformedCamera = this.transformCamera(cameraData);
48
52
  await this.api.addCamera(transformedCamera);
49
53
  return cameraData;
50
54
  }
51
55
  async createZone(cameraname, zoneData) {
52
- const cameras = this.dbs.camerasDB.get('cameras') || [];
56
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
53
57
  const camera = cameras.find((camera) => camera.name === cameraname);
54
58
  if (camera) {
55
59
  camera.activityZones.push(zoneData);
@@ -59,14 +63,14 @@ let CamerasService = class CamerasService {
59
63
  return camera;
60
64
  }
61
65
  async patchZoneByName(cameraname, zonename, zoneData) {
62
- const cameras = this.dbs.camerasDB.get('cameras') || [];
66
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
63
67
  const camera = cameras.find((camera) => camera.name === cameraname);
64
68
  if (camera) {
65
69
  const zone = camera.activityZones.find((zone) => zone.name === zonename);
66
70
  if (zone) {
67
- mergeWith(zone, zoneData, (objValue, srcValue) => {
68
- if (Array.isArray(objValue)) {
69
- return srcValue;
71
+ mergeWith(zone, zoneData, (source, target) => {
72
+ if (Array.isArray(source)) {
73
+ return target;
70
74
  }
71
75
  });
72
76
  await this.dbs.camerasDB.put('cameras', cameras);
@@ -76,7 +80,7 @@ let CamerasService = class CamerasService {
76
80
  return camera;
77
81
  }
78
82
  async removeZoneByName(cameraname, zonename) {
79
- const cameras = this.dbs.camerasDB.get('cameras') || [];
83
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
80
84
  const camera = cameras.find((cameraObj) => cameraObj.name === cameraname);
81
85
  if (camera) {
82
86
  const zoneExists = camera.activityZones.some((zone) => zone.name === zonename);
@@ -115,30 +119,30 @@ let CamerasService = class CamerasService {
115
119
  }
116
120
  }
117
121
  list() {
118
- const cameras = this.dbs.camerasDB.get('cameras') || [];
122
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
119
123
  return cameras;
120
124
  }
121
125
  listTransformed() {
122
- const cameras = this.dbs.camerasDB.get('cameras') || [];
126
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
123
127
  const transformedCameras = cameras.map((camera) => this.transformCamera(camera));
124
128
  return transformedCameras;
125
129
  }
126
130
  listByPluginId(pluginId) {
127
- const cameras = this.dbs.camerasDB.get('cameras') || [];
131
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
128
132
  return cameras.filter((camera) => camera.pluginId === pluginId);
129
133
  }
130
134
  listTransformedByPluginId(pluginId) {
131
- const cameras = this.dbs.camerasDB.get('cameras') || [];
135
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
132
136
  const filteredCameras = cameras.filter((camera) => camera.pluginId === pluginId);
133
137
  const transformedCameras = filteredCameras.map((camera) => this.transformCamera(camera));
134
138
  return transformedCameras;
135
139
  }
136
140
  listByExtension(pluginName) {
137
- const cameras = this.dbs.camerasDB.get('cameras') || [];
141
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
138
142
  return cameras.filter((camera) => camera.extensions.plugins.includes(pluginName));
139
143
  }
140
144
  listTransformedByExtension(pluginName, extensions) {
141
- const cameras = this.dbs.camerasDB.get('cameras') || [];
145
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
142
146
  const camerasMap = new Map();
143
147
  for (const type of extensions) {
144
148
  let dbCameras = [];
@@ -153,76 +157,82 @@ let CamerasService = class CamerasService {
153
157
  return Array.from(camerasMap.values());
154
158
  }
155
159
  findById(id) {
156
- const cameras = this.dbs.camerasDB.get('cameras') || [];
160
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
157
161
  return cameras?.find((cameraObj) => cameraObj._id === id);
158
162
  }
159
163
  findTransformedById(id) {
160
- const cameras = this.dbs.camerasDB.get('cameras') || [];
164
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
161
165
  const camera = cameras?.find((cameraObj) => cameraObj._id === id);
162
166
  if (camera) {
163
167
  return this.transformCamera(camera);
164
168
  }
165
169
  }
166
170
  findByName(cameraname) {
167
- const cameras = this.dbs.camerasDB.get('cameras') || [];
171
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
168
172
  return cameras?.find((cameraObj) => cameraObj.name === cameraname);
169
173
  }
170
174
  findTransformedByName(cameraname) {
171
- const cameras = this.dbs.camerasDB.get('cameras') || [];
175
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
172
176
  const camera = cameras?.find((cameraObj) => cameraObj.name === cameraname);
173
177
  if (camera) {
174
178
  return this.transformCamera(camera);
175
179
  }
176
180
  }
177
181
  findByPluginAndName(cameraname, pluginId) {
178
- const cameras = this.dbs.camerasDB.get('cameras') || [];
182
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
179
183
  return cameras?.find((cameraObj) => cameraObj.name === cameraname && cameraObj.pluginId === pluginId);
180
184
  }
181
185
  findTransformedByPluginAndName(cameraname, pluginId) {
182
- const cameras = this.dbs.camerasDB.get('cameras') || [];
186
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
183
187
  const camera = cameras?.find((cameraObj) => cameraObj.name === cameraname && cameraObj.pluginId === pluginId);
184
188
  if (camera) {
185
189
  return this.transformCamera(camera);
186
190
  }
187
191
  }
188
192
  async patchCameraByName(cameraname, cameraData) {
189
- const cameras = this.dbs.camerasDB.get('cameras') || [];
193
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
190
194
  const camera = cameras.find((camera) => camera.name === cameraname);
195
+ const cameraController = this.api.getCamera(camera?._id ?? '');
191
196
  const cameraOld = structuredClone(camera);
192
- if (camera && cameraOld) {
193
- mergeWith(camera, cameraData, (objValue, srcValue, key) => {
197
+ if (camera && cameraOld && cameraController) {
198
+ mergeWith(camera, cameraData, (source, target, key) => {
194
199
  if (key === 'sources') {
195
- return srcValue.map((srcItem) => {
196
- const objItem = objValue.find((o) => o.name === srcItem.name);
197
- const sourceId = objItem?._id || srcItem._id;
200
+ return target.map((srcItem) => {
201
+ const objItem = source.find((o) => o.name === srcItem.name);
202
+ const sourceId = objItem?._id ?? srcItem._id;
198
203
  return objItem ? { ...objItem, ...srcItem, _id: sourceId, name: objItem.name } : srcItem;
199
204
  });
200
205
  }
201
206
  if (key === 'extensions') {
202
207
  return cameraOld.extensions;
203
208
  }
204
- if (Array.isArray(objValue)) {
205
- return srcValue;
209
+ if (Array.isArray(source)) {
210
+ return target;
206
211
  }
207
212
  });
208
- await this.dbs.camerasDB.put('cameras', cameras);
209
213
  if (!isEqual(cameraOld, camera, true)) {
210
214
  if (cameraOld.name !== camera.name) {
211
- await this.removeCameraSources(cameraOld.name, cameraOld.sources);
215
+ await this.removeCameraSourcesFromConfig(cameraOld.name, cameraOld.sources);
212
216
  }
213
217
  const orphanedSources = cameraOld.sources.filter((source) => !camera.sources.find((s) => s.name === source.name));
214
218
  if (orphanedSources.length) {
215
- await this.removeCameraSources(camera.name, orphanedSources);
219
+ orphanedSources.forEach((source) => {
220
+ cameraController.streamInfos.delete(source._id);
221
+ cameraController.streamInfos.delete(source._id);
222
+ });
223
+ await this.removeCameraSourcesFromConfig(camera.name, orphanedSources);
216
224
  }
217
- await this.addCameraSources(camera.name, camera.sources);
225
+ this.addInternalSources(camera);
226
+ await this.addCameraSourcesToConfig(camera.name, camera.sources);
218
227
  }
228
+ await this.dbs.camerasDB.put('cameras', cameras);
219
229
  this.api.updateCamera(this.transformCamera(camera));
220
230
  }
221
231
  return camera;
222
232
  }
223
233
  async enableExtensionByName(cameraname, pluginNameOrId, extensionType) {
224
- const cameras = this.dbs.camerasDB.get('cameras') || [];
225
- const plugin = this.pluginsService.getPluginByName(pluginNameOrId) || this.pluginsService.getPluginById(pluginNameOrId);
234
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
235
+ const plugin = this.pluginsService.getPluginByName(pluginNameOrId) ?? this.pluginsService.getPluginById(pluginNameOrId);
226
236
  const camera = cameras.find((camera) => camera.name === cameraname);
227
237
  const cameraOld = structuredClone(camera);
228
238
  if (camera && cameraOld && plugin) {
@@ -245,8 +255,8 @@ let CamerasService = class CamerasService {
245
255
  return camera;
246
256
  }
247
257
  async disableExtensionByName(cameraname, pluginNameOrId, extensionType) {
248
- const cameras = this.dbs.camerasDB.get('cameras') || [];
249
- const plugin = this.pluginsService.getPluginByName(pluginNameOrId) || this.pluginsService.getPluginById(pluginNameOrId);
258
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
259
+ const plugin = this.pluginsService.getPluginByName(pluginNameOrId) ?? this.pluginsService.getPluginById(pluginNameOrId);
250
260
  const camera = cameras.find((camera) => camera.name === cameraname);
251
261
  const cameraOld = structuredClone(camera);
252
262
  if (camera && cameraOld && plugin) {
@@ -264,8 +274,8 @@ let CamerasService = class CamerasService {
264
274
  return camera;
265
275
  }
266
276
  async addExtensionByName(cameraname, pluginNameOrId) {
267
- const cameras = this.dbs.camerasDB.get('cameras') || [];
268
- const plugin = this.pluginsService.getPluginByName(pluginNameOrId) || this.pluginsService.getPluginById(pluginNameOrId);
277
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
278
+ const plugin = this.pluginsService.getPluginByName(pluginNameOrId) ?? this.pluginsService.getPluginById(pluginNameOrId);
269
279
  const camera = cameras.find((camera) => camera.name === cameraname);
270
280
  const cameraOld = structuredClone(camera);
271
281
  if (camera && cameraOld && (plugin?.contract.extension || plugin?.contract.supportAdditionalCameras) && !camera.extensions.plugins.includes(plugin.pluginName)) {
@@ -306,8 +316,8 @@ let CamerasService = class CamerasService {
306
316
  return camera;
307
317
  }
308
318
  async removeExtensionByName(cameraname, pluginNameOrId) {
309
- const cameras = this.dbs.camerasDB.get('cameras') || [];
310
- const plugin = this.pluginsService.getPluginByName(pluginNameOrId) || this.pluginsService.getPluginById(pluginNameOrId);
319
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
320
+ const plugin = this.pluginsService.getPluginByName(pluginNameOrId) ?? this.pluginsService.getPluginById(pluginNameOrId);
311
321
  const camera = cameras.find((camera) => camera.name === cameraname);
312
322
  const cameraOld = structuredClone(camera);
313
323
  if (camera && cameraOld && (plugin?.contract.extension || plugin?.contract.supportAdditionalCameras) && camera.extensions.plugins.includes(plugin.pluginName)) {
@@ -348,9 +358,9 @@ let CamerasService = class CamerasService {
348
358
  return camera;
349
359
  }
350
360
  async removeExtension(pluginNameOrId) {
351
- const cameras = this.dbs.camerasDB.get('cameras') || [];
361
+ const cameras = this.dbs.camerasDB.get('cameras') ?? [];
352
362
  for (const camera of cameras) {
353
- const plugin = this.pluginsService.getPluginByName(pluginNameOrId) || this.pluginsService.getPluginById(pluginNameOrId);
363
+ const plugin = this.pluginsService.getPluginByName(pluginNameOrId) ?? this.pluginsService.getPluginById(pluginNameOrId);
354
364
  if ((plugin?.contract.extension || plugin?.contract.supportAdditionalCameras) && camera.extensions.plugins.includes(plugin.pluginName)) {
355
365
  camera.extensions.plugins = camera.extensions.plugins.filter((extension) => extension !== plugin.pluginName);
356
366
  const removedExtensions = new Set();
@@ -389,24 +399,30 @@ let CamerasService = class CamerasService {
389
399
  }
390
400
  }
391
401
  async removeByName(cameraname) {
392
- let cameras = this.dbs.camerasDB.get('cameras') || [];
402
+ let cameras = this.dbs.camerasDB.get('cameras') ?? [];
393
403
  const camera = cameras.find((cameraObj) => cameraObj.name === cameraname);
394
404
  if (camera) {
395
405
  cameras = cameras.filter((cameraObj) => cameraObj.name !== camera.name);
406
+ for (const source of camera.sources) {
407
+ cameraSourceProbeCache.delete(source._id);
408
+ }
396
409
  await this.usersService.removeCameraFromPreferences(camera._id);
397
410
  await this.dbs.camerasDB.put('cameras', cameras);
398
- await this.removeCameraSources(camera.name, camera.sources);
411
+ await this.removeCameraSourcesFromConfig(camera.name, camera.sources);
399
412
  await this.api.removeCamera(this.transformCamera(camera), camera.extensions);
400
413
  }
401
414
  }
402
415
  async removeById(id) {
403
- let cameras = this.dbs.camerasDB.get('cameras') || [];
416
+ let cameras = this.dbs.camerasDB.get('cameras') ?? [];
404
417
  const camera = cameras.find((cameraObj) => cameraObj._id === id);
405
418
  if (camera) {
406
419
  cameras = cameras.filter((cameraObj) => cameraObj.name !== camera.name);
420
+ for (const source of camera.sources) {
421
+ cameraSourceProbeCache.delete(source._id);
422
+ }
407
423
  await this.usersService.removeCameraFromPreferences(camera._id);
408
424
  await this.dbs.camerasDB.put('cameras', cameras);
409
- await this.removeCameraSources(camera.name, camera.sources);
425
+ await this.removeCameraSourcesFromConfig(camera.name, camera.sources);
410
426
  await this.api.removeCamera(this.transformCamera(camera), camera.extensions);
411
427
  }
412
428
  }
@@ -417,39 +433,57 @@ let CamerasService = class CamerasService {
417
433
  }
418
434
  }
419
435
  async removeByPluginId(pluginId) {
420
- let cameras = this.dbs.camerasDB.get('cameras') || [];
436
+ let cameras = this.dbs.camerasDB.get('cameras') ?? [];
421
437
  const camera = cameras.find((cameraObj) => cameraObj.pluginId === pluginId);
422
438
  if (camera) {
423
439
  cameras = cameras.filter((cameraObj) => cameraObj._id !== camera._id);
440
+ for (const source of camera.sources) {
441
+ cameraSourceProbeCache.delete(source._id);
442
+ }
424
443
  await this.usersService.removeCameraFromPreferences(camera._id);
425
444
  await this.dbs.camerasDB.put('cameras', cameras);
426
- await this.removeCameraSources(camera.name, camera.sources);
445
+ await this.removeCameraSourcesFromConfig(camera.name, camera.sources);
427
446
  await this.api.removeCamera(this.transformCamera(camera), camera.extensions);
428
447
  }
429
448
  }
430
449
  async removeByPluginIdAndName(cameraname, pluginId) {
431
- let cameras = this.dbs.camerasDB.get('cameras') || [];
450
+ let cameras = this.dbs.camerasDB.get('cameras') ?? [];
432
451
  const camera = cameras.find((cameraObj) => cameraObj.name === cameraname && cameraObj.pluginId === pluginId);
433
452
  if (camera) {
434
453
  cameras = cameras.filter((cameraObj) => cameraObj._id !== camera._id);
454
+ for (const source of camera.sources) {
455
+ cameraSourceProbeCache.delete(source._id);
456
+ }
435
457
  await this.usersService.removeCameraFromPreferences(camera._id);
436
458
  await this.dbs.camerasDB.put('cameras', cameras);
437
- await this.removeCameraSources(camera.name, camera.sources);
459
+ await this.removeCameraSourcesFromConfig(camera.name, camera.sources);
438
460
  await this.api.removeCamera(this.transformCamera(camera), camera.extensions);
439
461
  }
440
462
  }
441
463
  async removeAll() {
442
- let cameras = this.dbs.camerasDB.get('cameras') || [];
464
+ let cameras = this.dbs.camerasDB.get('cameras') ?? [];
443
465
  const camerasToRemove = [];
444
466
  cameras.forEach((camera) => camerasToRemove.push(camera));
445
467
  cameras = [];
468
+ cameraSourceProbeCache.clear();
446
469
  await this.usersService.resetAllPreferences();
447
470
  await this.dbs.camerasDB.put('cameras', cameras);
448
471
  for (const camera of camerasToRemove) {
449
- await this.removeCameraSources(camera.name, camera.sources);
472
+ await this.removeCameraSourcesFromConfig(camera.name, camera.sources);
450
473
  }
451
474
  await Promise.all(camerasToRemove.map((camera) => this.api.removeCamera(this.transformCamera(camera), camera.extensions)));
452
475
  }
476
+ async probeCameraSource(camera, source) {
477
+ cameraSourceProbeCache.purgeStale();
478
+ const inCache = cameraSourceProbeCache.get(source._id);
479
+ if (inCache) {
480
+ return inCache;
481
+ }
482
+ const src = createSourceName(camera.name, source.name);
483
+ const probe = await this.go2rtcApi.streamsApi.probeStreamSource({ src });
484
+ cameraSourceProbeCache.set(source._id, probe);
485
+ return probe;
486
+ }
453
487
  transformCamera(camera) {
454
488
  const transformedCamera = {
455
489
  _id: camera._id,
@@ -459,6 +493,7 @@ let CamerasService = class CamerasService {
459
493
  disabled: camera.disabled,
460
494
  info: camera.info,
461
495
  type: camera.type,
496
+ snapshotTTL: camera.snapshotTTL,
462
497
  isCloud: camera.isCloud,
463
498
  hasLight: camera.hasLight,
464
499
  hasSiren: camera.hasSiren,
@@ -466,6 +501,7 @@ let CamerasService = class CamerasService {
466
501
  hasBattery: camera.hasBattery,
467
502
  hasAudioDetector: this.extensionIsEnabled(camera.extensions.audioDetection, 'audioDetection'),
468
503
  hasMotionDetector: this.extensionIsEnabled(camera.extensions.motionDetection, 'motionDetection'),
504
+ extendedMotionDetector: this.isExtendedMotionDetector(camera.extensions.motionDetection),
469
505
  hasObjectDetector: this.extensionIsEnabled(camera.extensions.objectDetection, 'objectDetection'),
470
506
  hasPtz: this.extensionIsEnabled(camera.extensions.ptz, 'ptz'),
471
507
  hasPrebuffer: this.extensionIsEnabled(camera.extensions.prebuffer, 'prebuffer'),
@@ -479,26 +515,54 @@ let CamerasService = class CamerasService {
479
515
  urls: {
480
516
  ws: this.generateWsUrls(camera, source),
481
517
  rtsp: this.generateRTSPUrls(camera, source),
482
- transcoded: this.generateFFmpegUrls(camera, source),
483
518
  www: this.generateWWWUrls(camera, source),
484
519
  },
520
+ internal: this.isInternalSource(source.name),
485
521
  })),
486
522
  };
487
523
  return transformedCamera;
488
524
  }
489
- async addCameraSources(cameraname, sources) {
525
+ addInternalSources(camera) {
526
+ const sourcesToAdd = [];
527
+ camera.sources = camera.sources.filter((source) => !source.internal && !this.isInternalSource(source.name));
528
+ for (const source of camera.sources) {
529
+ if (source.internal) {
530
+ continue;
531
+ }
532
+ const defaultInternalSources = generateInternalCameraSources(camera.name, source.name, source.roles);
533
+ defaultInternalSources.forEach((internalSource) => {
534
+ sourcesToAdd.push(internalSource);
535
+ });
536
+ }
537
+ camera.sources.push(...sourcesToAdd);
538
+ }
539
+ async addCameraSourcesToConfig(cameraname, sources) {
490
540
  for (const source of sources) {
541
+ if (source.internal) {
542
+ continue;
543
+ }
491
544
  const sourceName = createSourceName(cameraname, source.name);
545
+ const ffmpegSourceNameAAC = `${sourceName}_aac`;
546
+ const ffmpegSourceNameOPUS = `${sourceName}_opus`;
547
+ const ffmpegSourceNamePCMA = `${sourceName}_pcma`;
548
+ const ffmpegSourceUrlAAC = `ffmpeg:${sourceName}#video=copy#audio=aac`;
549
+ const ffmpegSourceUrlOPUS = `ffmpeg:${sourceName}#video=copy#audio=opus`;
550
+ const ffmpegSourceUrlPCMA = `ffmpeg:${sourceName}#video=copy#audio=pcma`;
492
551
  const ffmpegAACSource = {
493
- name: `${sourceName}_aac`,
494
- src: [`ffmpeg:${sourceName}#video=copy#audio=aac`],
552
+ name: ffmpegSourceNameAAC,
553
+ src: [ffmpegSourceUrlAAC],
495
554
  // src: Array.from(new Set([`ffmpeg:${sourceName}#video=copy#audio=aac`, ...source.urls.filter((url) => !url.startsWith('ffmpeg'))])),
496
555
  };
497
556
  const ffmpegOPUSSource = {
498
- name: `${sourceName}_opus`,
499
- src: [`ffmpeg:${sourceName}#video=copy#audio=opus`],
557
+ name: ffmpegSourceNameOPUS,
558
+ src: [ffmpegSourceUrlOPUS],
500
559
  // src: Array.from(new Set([`ffmpeg:${sourceName}#video=copy#audio=opus`, ...source.urls.filter((url) => !url.startsWith('ffmpeg'))])),
501
560
  };
561
+ const ffmpegPCMAAudioSource = {
562
+ name: ffmpegSourceNamePCMA,
563
+ src: [ffmpegSourceUrlPCMA],
564
+ // src: Array.from(new Set([`ffmpeg:${sourceName}#video=copy#audio=pcma`, ...source.urls.filter((url) => !url.startsWith('ffmpeg'))])),
565
+ };
502
566
  const cameraSources = [];
503
567
  if (!this.sourceExistAndEqual(sourceName, source.urls)) {
504
568
  cameraSources.push({ name: sourceName, src: source.urls });
@@ -511,6 +575,9 @@ let CamerasService = class CamerasService {
511
575
  if (!this.configService.go2rtcConfig.streams?.[ffmpegOPUSSource.name]) {
512
576
  cameraSources.push(ffmpegOPUSSource);
513
577
  }
578
+ if (!this.configService.go2rtcConfig.streams?.[ffmpegPCMAAudioSource.name]) {
579
+ cameraSources.push(ffmpegPCMAAudioSource);
580
+ }
514
581
  }
515
582
  for (const sourceData of cameraSources) {
516
583
  // fix after go2rtc update
@@ -538,11 +605,15 @@ let CamerasService = class CamerasService {
538
605
  });
539
606
  }
540
607
  }
541
- async removeCameraSources(cameraname, sources) {
542
- for (const source of sources) {
608
+ async removeCameraSourcesFromConfig(cameraname, oldSources) {
609
+ for (const source of oldSources) {
610
+ if (source.internal) {
611
+ continue;
612
+ }
543
613
  const sourceName = createSourceName(cameraname, source.name);
544
614
  const ffmpegSourceNameAAC = `${sourceName}_aac`;
545
615
  const ffmpegSourceNameOPUS = `${sourceName}_opus`;
616
+ const ffmpegSourceNamePCMA = `${sourceName}_pcma`;
546
617
  const sourcesToRemove = [];
547
618
  if (this.configService.go2rtcConfig.streams?.[sourceName]) {
548
619
  sourcesToRemove.push(sourceName);
@@ -553,6 +624,9 @@ let CamerasService = class CamerasService {
553
624
  if (this.configService.go2rtcConfig.streams?.[ffmpegSourceNameOPUS]) {
554
625
  sourcesToRemove.push(ffmpegSourceNameOPUS);
555
626
  }
627
+ if (this.configService.go2rtcConfig.streams?.[ffmpegSourceNamePCMA]) {
628
+ sourcesToRemove.push(ffmpegSourceNamePCMA);
629
+ }
556
630
  for (const src of sourcesToRemove) {
557
631
  await this.go2rtcApi.streamsApi.deleteStream({ src });
558
632
  }
@@ -578,47 +652,28 @@ let CamerasService = class CamerasService {
578
652
  }
579
653
  generateWsUrls(camera, source) {
580
654
  const sourceName = createSourceName(camera.name, source.name);
581
- const baseWebRtcUrl = `ws://${this.configService.go2rtcConfig.api.listen}/api/ws?src=${sourceName}`;
655
+ const baseWebRtcUrl = `ws://${this.go2rtcAddress()}/api/ws?src=${sourceName}`;
582
656
  return {
583
657
  webrtc: baseWebRtcUrl,
584
658
  };
585
659
  }
586
660
  generateRTSPUrls(camera, source) {
587
661
  const sourceName = createSourceName(camera.name, source.name);
588
- const baseRtspUrl = `rtsp://${this.configService.go2rtcConfig.rtsp.listen}/${sourceName}`;
662
+ const baseRtspUrl = `rtsp://${this.go2rtcAddress('rtsp')}/${sourceName}`;
589
663
  return {
590
664
  single: baseRtspUrl,
591
665
  default: `${baseRtspUrl}?video=all&audio=all`,
592
666
  mp4: `${baseRtspUrl}?mp4`,
593
667
  };
594
668
  }
595
- generateFFmpegUrls(camera, source) {
596
- const sourceName = createSourceName(camera.name, source.name);
597
- const ffmpegSourceNameAAC = `${sourceName}_aac`;
598
- const ffmpegSourceNameOPUS = `${sourceName}_opus`;
599
- const baseRtspFFmpegAACUrl = `rtsp://${this.configService.go2rtcConfig.rtsp.listen}/${ffmpegSourceNameAAC}`;
600
- const baseRtspFFmpegOPUSUrl = `rtsp://${this.configService.go2rtcConfig.rtsp.listen}/${ffmpegSourceNameOPUS}`;
601
- return {
602
- aac: {
603
- name: ffmpegSourceNameAAC,
604
- src: `${baseRtspFFmpegAACUrl}?video&audio=aac`,
605
- ws: `ws://${this.configService.go2rtcConfig.api.listen}/api/ws?src=${ffmpegSourceNameAAC}`,
606
- },
607
- opus: {
608
- name: ffmpegSourceNameOPUS,
609
- src: `${baseRtspFFmpegOPUSUrl}?video&audio=opus`,
610
- ws: `ws://${this.configService.go2rtcConfig.api.listen}/api/ws?src=${ffmpegSourceNameOPUS}`,
611
- },
612
- };
613
- }
614
669
  generateWWWUrls(camera, source) {
615
670
  const sourceName = createSourceName(camera.name, source.name);
616
- const baseStreamUrl = `http://${this.configService.go2rtcConfig.api.listen}/stream.html?src=${sourceName}`;
617
- const baseMjpegStreamUrl = `http://${this.configService.go2rtcConfig.api.listen}/api/stream.mjpeg?src=${sourceName}`;
618
- const baseMp4StreamUrl = `http://${this.configService.go2rtcConfig.api.listen}/api/stream.mp4?src=${sourceName}`;
619
- const baseFrameMp4StreamUrl = `http://${this.configService.go2rtcConfig.api.listen}/api/frame.mp4?src=${sourceName}`;
620
- const baseFrameJpegStreamUrl = `http://${this.configService.go2rtcConfig.api.listen}/api/frame.jpeg?src=${sourceName}`;
621
- const baseHlsStreamUrl = `http://${this.configService.go2rtcConfig.api.listen}/api/stream.m3u8?src=${sourceName}`;
671
+ const baseStreamUrl = `http://${this.go2rtcAddress()}/stream.html?src=${sourceName}`;
672
+ const baseMjpegStreamUrl = `http://${this.go2rtcAddress()}/api/stream.mjpeg?src=${sourceName}`;
673
+ const baseMp4StreamUrl = `http://${this.go2rtcAddress()}/api/stream.mp4?src=${sourceName}`;
674
+ const baseFrameMp4StreamUrl = `http://${this.go2rtcAddress()}/api/frame.mp4?src=${sourceName}`;
675
+ const baseFrameJpegStreamUrl = `http://${this.go2rtcAddress()}/api/frame.jpeg?src=${sourceName}`;
676
+ const baseHlsStreamUrl = `http://${this.go2rtcAddress()}/api/stream.m3u8?src=${sourceName}`;
622
677
  return {
623
678
  webrtc: `${baseStreamUrl}&mode=webrtc`,
624
679
  mse: `${baseStreamUrl}&mode=mse`,
@@ -644,6 +699,16 @@ let CamerasService = class CamerasService {
644
699
  }
645
700
  return false;
646
701
  }
702
+ isExtendedMotionDetector(extension) {
703
+ if (!extension) {
704
+ return false;
705
+ }
706
+ const plugin = this.pluginsService.getPluginByName(extension);
707
+ if (plugin && !plugin.disabled && (plugin.contract.extension === 'motionDetection' || plugin.contract.builtIns?.includes('motionDetection'))) {
708
+ return plugin.contract.options?.extendedMotionDetection ?? false;
709
+ }
710
+ return false;
711
+ }
647
712
  defaultZone() {
648
713
  return cameraZonesSchema.parse({
649
714
  name: 'Default',
@@ -699,6 +764,18 @@ let CamerasService = class CamerasService {
699
764
  }
700
765
  return zones;
701
766
  }
767
+ isInternalSource(sourceName) {
768
+ return (sourceName.endsWith(' AAC') ||
769
+ sourceName.endsWith(' OPUS') ||
770
+ sourceName.endsWith(' PCMA') ||
771
+ sourceName.endsWith('_aac') ||
772
+ sourceName.endsWith('_opus') ||
773
+ sourceName.endsWith('_pcma'));
774
+ }
775
+ go2rtcAddress(mod = 'api') {
776
+ const go2rtcPort = parseInt(this.configService.go2rtcConfig[mod].listen.split(':')[1], 10);
777
+ return `127.0.0.1:${go2rtcPort}`;
778
+ }
702
779
  };
703
780
  CamerasService = __decorate([
704
781
  registry([