@camera.ui/server 0.0.22-alpha.1 → 0.0.22-alpha.3

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 (568) hide show
  1. package/dist/interface/@intlify.DXtFJcML.0.0.22-alpha.3.js +15 -0
  2. package/dist/interface/@mdi.C1UTQKuc.0.0.22-alpha.3.js +1 -0
  3. package/dist/interface/@tanstack.BQDLPv59.0.0.22-alpha.3.js +1 -0
  4. package/dist/interface/{@vee-validate.CBoqAk51.0.0.22-alpha.1.js → @vee-validate.B6iHt3KQ.0.0.22-alpha.3.js} +2 -2
  5. package/dist/interface/@vue.dAKyD-3P.0.0.22-alpha.3.js +17 -0
  6. package/dist/interface/{@vueform.20m7Hn_5.0.0.22-alpha.1.js → @vueform.fX_skaP7.0.0.22-alpha.3.js} +1 -1
  7. package/dist/interface/@vueuse.UomdiF5b.0.0.22-alpha.3.js +1 -0
  8. package/dist/interface/Account.CV0129ox.0.0.22-alpha.3.js +1 -0
  9. package/dist/interface/Adminpanel.BdWgx08_.0.0.22-alpha.3.js +2 -0
  10. package/dist/interface/Appearance.BIXs4v77.0.0.22-alpha.3.js +1 -0
  11. package/dist/interface/Backup.DD8_FKRe.0.0.22-alpha.3.js +1 -0
  12. package/dist/interface/Camera.D35ZcCy9.0.0.22-alpha.3.js +1 -0
  13. package/dist/interface/Cameras.DjHsEC_O.0.0.22-alpha.3.js +1 -0
  14. package/dist/interface/Camview.B7RlCn-N.0.0.22-alpha.3.js +1 -0
  15. package/dist/interface/Config.D59faV9o.0.0.22-alpha.3.js +1 -0
  16. package/dist/interface/Console.AYN2urXI.0.0.22-alpha.3.js +4 -0
  17. package/dist/interface/FirstSteps.GCJrwiwA.0.0.22-alpha.3.js +1 -0
  18. package/dist/interface/{NewCamera.BoQ_EpL5.0.0.22-alpha.1.js → NewCamera.vdINgQcu.0.0.22-alpha.3.js} +2 -2
  19. package/dist/interface/Plugin.CNSuNdoN.0.0.22-alpha.3.js +1 -0
  20. package/dist/interface/Plugins.CEuVE1ye.0.0.22-alpha.3.js +1 -0
  21. package/dist/interface/Recordings.9X_sLd-K.0.0.22-alpha.3.js +1 -0
  22. package/dist/interface/Recordings.Ci_Cay__.0.0.22-alpha.3.js +1 -0
  23. package/dist/interface/Settings.BoS_2afy.0.0.22-alpha.3.js +1 -0
  24. package/dist/interface/System.OQzLrmLL.0.0.22-alpha.3.js +4 -0
  25. package/dist/interface/User.3YvVz6r3.0.0.22-alpha.3.js +1 -0
  26. package/dist/interface/VConfigEditor.vue_vue_type_script_setup_true_lang.CIO7vqXE.0.0.22-alpha.3.js +2 -0
  27. package/dist/interface/VConsole.J4Bg7nPY.0.0.22-alpha.3.js +1 -0
  28. package/dist/interface/VPlayer.CEpiQ-rx.0.0.22-alpha.3.js +4 -0
  29. package/dist/interface/VPluginCard.D0qUSLbT.0.0.22-alpha.3.js +4 -0
  30. package/dist/interface/{ace-builds.GNWBVG5S.0.0.22-alpha.1.js → ace-builds.Ch6vRC6Y.0.0.22-alpha.3.js} +27 -27
  31. package/dist/interface/{apexcharts.BMrxVPFF.0.0.22-alpha.1.js → apexcharts.BzKjYm5L.0.0.22-alpha.3.js} +1 -1
  32. package/dist/interface/assets/Adminpanel.0.0.22-alpha.3.a3t1v3MB.css +1 -0
  33. package/dist/interface/assets/Camera.0.0.22-alpha.3.D1I-fW4q.css +1 -0
  34. package/dist/interface/assets/Cameras.0.0.22-alpha.3.Buf1Dgce.css +1 -0
  35. package/dist/interface/assets/Camview.0.0.22-alpha.3.B7Cja2ry.css +1 -0
  36. package/dist/interface/assets/Config.0.0.22-alpha.3.DNGo2krN.css +1 -0
  37. package/dist/interface/assets/Console.0.0.22-alpha.3.Bh8l9QnM.css +1 -0
  38. package/dist/interface/assets/FirstSteps.0.0.22-alpha.3.sPEcItZ6.css +1 -0
  39. package/dist/interface/assets/NewCamera.0.0.22-alpha.3.Cq8GzeJ7.css +1 -0
  40. package/dist/interface/assets/{Settings.0.0.22-alpha.1.DC_-E3CR.css → Settings.0.0.22-alpha.3.CVmui2kE.css} +1 -1
  41. package/dist/interface/assets/VConsole.0.0.22-alpha.3.BCqKHpmJ.css +1 -0
  42. package/dist/interface/assets/VPlayer.0.0.22-alpha.3.DNtDNhfg.css +1 -0
  43. package/dist/interface/assets/VPluginCard.0.0.22-alpha.3.C8Lj6X-J.css +1 -0
  44. package/dist/interface/assets/main.0.0.22-alpha.3.DNhh__S1.css +1 -0
  45. package/dist/interface/assets/{vuetify.0.0.22-alpha.1.Cd1awv3t.css → vuetify.0.0.22-alpha.3.CgGsw6iO.css} +2 -2
  46. package/dist/interface/birpc.l0sNRNKZ.0.0.22-alpha.3.js +1 -0
  47. package/dist/interface/{dnd-core.DMTh_43Y.0.0.22-alpha.1.js → dnd-core.B29WFSBv.0.0.22-alpha.3.js} +1 -1
  48. package/dist/interface/{draggabilly.Bp5rpROY.0.0.22-alpha.1.js → draggabilly.DqeTwBQP.0.0.22-alpha.3.js} +1 -1
  49. package/dist/interface/engine.io-client.JaCvSrgR.0.0.22-alpha.3.js +1 -0
  50. package/dist/interface/{ev-emitter.D9A4-Zp4.0.0.22-alpha.1.js → ev-emitter.Ctd6XSNq.0.0.22-alpha.3.js} +1 -1
  51. package/dist/interface/{fast-deep-equal.CynR0Ykh.0.0.22-alpha.1.js → fast-deep-equal.CFCsEgyF.0.0.22-alpha.3.js} +1 -1
  52. package/dist/interface/{highlight.js.BcAmtPT9.0.0.22-alpha.1.js → highlight.js.QZPea1Ru.0.0.22-alpha.3.js} +1 -1
  53. package/dist/interface/hookable.B8xFkYCm.0.0.22-alpha.3.js +1 -0
  54. package/dist/interface/index.html +34 -36
  55. package/dist/interface/{linkify-it.zJgnXBKD.0.0.22-alpha.1.js → linkify-it.BT40Wvw5.0.0.22-alpha.3.js} +1 -1
  56. package/dist/interface/main.BASwd6Tx.0.0.22-alpha.3.js +5 -0
  57. package/dist/interface/{markdown-it.DSn07YT-.0.0.22-alpha.1.js → markdown-it.DMx4rp8B.0.0.22-alpha.3.js} +1 -1
  58. package/dist/interface/{nprogress.B-sfF0qV.0.0.22-alpha.1.js → nprogress.Bqe-TtYa.0.0.22-alpha.3.js} +1 -1
  59. package/dist/interface/perfect-debounce.Cp2ysxOb.0.0.22-alpha.3.js +1 -0
  60. package/dist/interface/pinia.nQAfYRjL.0.0.22-alpha.3.js +5 -0
  61. package/dist/interface/plugins.CHFY7I4J.0.0.22-alpha.3.js +1 -0
  62. package/dist/interface/point-in-polygon-hao.l0sNRNKZ.0.0.22-alpha.3.js +1 -0
  63. package/dist/interface/{qrcode.BcJHYbhe.0.0.22-alpha.1.js → qrcode.BSQ3LbvQ.0.0.22-alpha.3.js} +1 -1
  64. package/dist/interface/{react-dnd-touch-backend.B9_17rX-.0.0.22-alpha.1.js → react-dnd-touch-backend.B_d86_Kg.0.0.22-alpha.3.js} +1 -1
  65. package/dist/interface/{rxjs.BlwZeIMX.0.0.22-alpha.1.js → rxjs.D2GEiPyD.0.0.22-alpha.3.js} +1 -1
  66. package/dist/interface/socket.io-client.DOo2Esna.0.0.22-alpha.3.js +1 -0
  67. package/dist/interface/{socket.io-parser.DbDzb_0x.0.0.22-alpha.1.js → socket.io-parser.q3PQfUUu.0.0.22-alpha.3.js} +1 -1
  68. package/dist/interface/sw.js +1 -1
  69. package/dist/interface/sweepline-intersections.l0sNRNKZ.0.0.22-alpha.3.js +1 -0
  70. package/dist/interface/system.szbtAGtP.0.0.22-alpha.3.js +1 -0
  71. package/dist/interface/types.Cz9TaZAP.0.0.22-alpha.3.js +1 -0
  72. package/dist/interface/{unidragger.BfsybYBO.0.0.22-alpha.1.js → unidragger.DwHLT_zc.0.0.22-alpha.3.js} +1 -1
  73. package/dist/interface/utils.mAKpSMLY.0.0.22-alpha.3.js +1 -0
  74. package/dist/interface/uuid.Ch9TGLTe.0.0.22-alpha.3.js +1 -0
  75. package/dist/interface/vee-validate.qxpwZY6E.0.0.22-alpha.3.js +5 -0
  76. package/dist/interface/vue-i18n.DMhK1_Az.0.0.22-alpha.3.js +5 -0
  77. package/dist/interface/{vue-inline-svg.Br_paQwQ.0.0.22-alpha.1.js → vue-inline-svg.Prc07HPO.0.0.22-alpha.3.js} +1 -1
  78. package/dist/interface/vue-router.C9BwSYH-.0.0.22-alpha.3.js +5 -0
  79. package/dist/interface/vue.l0sNRNKZ.0.0.22-alpha.3.js +1 -0
  80. package/dist/interface/vue3-apexcharts.hYX9eZBy.0.0.22-alpha.3.js +1 -0
  81. package/dist/interface/{vue3-dnd.DpYuZy8Q.0.0.22-alpha.1.js → vue3-dnd.DSl3niZz.0.0.22-alpha.3.js} +1 -1
  82. package/dist/interface/vue3-toastify.B5gZpsI3.0.0.22-alpha.3.js +1 -0
  83. package/dist/interface/vuetify.B9f2I1HK.0.0.22-alpha.3.js +5 -0
  84. package/dist/interface/zod.DnW1_kUe.0.0.22-alpha.3.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 +21 -29
  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 +5 -0
  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 +4 -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 +40 -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/localdeps.txt +6 -0
  283. package/package.json +44 -70
  284. package/dist/interface/@intlify.YW_pt133.0.0.22-alpha.1.js +0 -15
  285. package/dist/interface/@mdi.DnMbZhUH.0.0.22-alpha.1.js +0 -1
  286. package/dist/interface/@popperjs.BQBsAJpH.0.0.22-alpha.1.js +0 -1
  287. package/dist/interface/@tanstack.DlheOlVk.0.0.22-alpha.1.js +0 -1
  288. package/dist/interface/@vue.CvjRlaU6.0.0.22-alpha.1.js +0 -17
  289. package/dist/interface/@vueuse.-m94veKi.0.0.22-alpha.1.js +0 -1
  290. package/dist/interface/Account.CvNGInZy.0.0.22-alpha.1.js +0 -1
  291. package/dist/interface/Adminpanel.B38rrP4P.0.0.22-alpha.1.js +0 -2
  292. package/dist/interface/Appearance.kFVBM4J9.0.0.22-alpha.1.js +0 -1
  293. package/dist/interface/Backup.lo3nC5DR.0.0.22-alpha.1.js +0 -1
  294. package/dist/interface/Camera.BukjTYOy.0.0.22-alpha.1.js +0 -1
  295. package/dist/interface/Cameras.HNjLEphi.0.0.22-alpha.1.js +0 -1
  296. package/dist/interface/Camview.BXcJwv3e.0.0.22-alpha.1.js +0 -1
  297. package/dist/interface/Config.Bwtjrsr9.0.0.22-alpha.1.js +0 -1
  298. package/dist/interface/Console.DOkTKmKh.0.0.22-alpha.1.js +0 -4
  299. package/dist/interface/FirstSteps.BXQqfdBY.0.0.22-alpha.1.js +0 -1
  300. package/dist/interface/Plugin.DlATvyTj.0.0.22-alpha.1.js +0 -1
  301. package/dist/interface/Plugins.BekJdBK8.0.0.22-alpha.1.js +0 -1
  302. package/dist/interface/Recordings.B4YRWWi3.0.0.22-alpha.1.js +0 -1
  303. package/dist/interface/Recordings.U1858KpO.0.0.22-alpha.1.js +0 -1
  304. package/dist/interface/Settings.CiF0fVqP.0.0.22-alpha.1.js +0 -1
  305. package/dist/interface/System.Ca9T8x4i.0.0.22-alpha.1.js +0 -4
  306. package/dist/interface/User.C_3ugpqz.0.0.22-alpha.1.js +0 -1
  307. package/dist/interface/VConfigEditor.vue_vue_type_script_setup_true_lang.EB4E_zDr.0.0.22-alpha.1.js +0 -2
  308. package/dist/interface/VConsole.DJWV6CZ9.0.0.22-alpha.1.js +0 -1
  309. package/dist/interface/VPlayer.CpZzx0nW.0.0.22-alpha.1.js +0 -1
  310. package/dist/interface/VPluginCard.Cm4M7xYg.0.0.22-alpha.1.js +0 -4
  311. package/dist/interface/assets/Adminpanel.0.0.22-alpha.1.CXsTAXPL.css +0 -1
  312. package/dist/interface/assets/Camera.0.0.22-alpha.1.BDtUJ-lA.css +0 -1
  313. package/dist/interface/assets/Cameras.0.0.22-alpha.1.Djx0F2MM.css +0 -1
  314. package/dist/interface/assets/Camview.0.0.22-alpha.1.Ce_V-Nxj.css +0 -1
  315. package/dist/interface/assets/Config.0.0.22-alpha.1.k4QpWumg.css +0 -1
  316. package/dist/interface/assets/Console.0.0.22-alpha.1.DWrfRWs9.css +0 -1
  317. package/dist/interface/assets/FirstSteps.0.0.22-alpha.1.B3-pv8-a.css +0 -1
  318. package/dist/interface/assets/NewCamera.0.0.22-alpha.1.DJ3tUBT_.css +0 -1
  319. package/dist/interface/assets/VConsole.0.0.22-alpha.1.BZT1WyS-.css +0 -1
  320. package/dist/interface/assets/VPlayer.0.0.22-alpha.1.CZXlTn4I.css +0 -1
  321. package/dist/interface/assets/VPluginCard.0.0.22-alpha.1.CIL48ca_.css +0 -1
  322. package/dist/interface/assets/main.0.0.22-alpha.1.BOf8IWhK.css +0 -1
  323. package/dist/interface/assets/v-calendar.0.0.22-alpha.1.CtSuDYZU.css +0 -1
  324. package/dist/interface/engine.io-client.CY7UpWto.0.0.22-alpha.1.js +0 -1
  325. package/dist/interface/main.D-V5Qegn.0.0.22-alpha.1.js +0 -4
  326. package/dist/interface/pinia.Dn9R-5lV.0.0.22-alpha.1.js +0 -5
  327. package/dist/interface/plugins.9yif7gTi.0.0.22-alpha.1.js +0 -1
  328. package/dist/interface/socket.io-client.ZxUZ7LHn.0.0.22-alpha.1.js +0 -1
  329. package/dist/interface/system.D_1Xg-Sy.0.0.22-alpha.1.js +0 -1
  330. package/dist/interface/ui.BA2qa-Pn.0.0.22-alpha.1.js +0 -1
  331. package/dist/interface/utils.BvINh1mj.0.0.22-alpha.1.js +0 -1
  332. package/dist/interface/uuid.DvF23Exx.0.0.22-alpha.1.js +0 -1
  333. package/dist/interface/v-calendar.CemaWgJz.0.0.22-alpha.1.js +0 -1
  334. package/dist/interface/vee-validate.CpAAwmyb.0.0.22-alpha.1.js +0 -5
  335. package/dist/interface/vue-i18n.mw20Rif9.0.0.22-alpha.1.js +0 -5
  336. package/dist/interface/vue-router.BchJROVt.0.0.22-alpha.1.js +0 -5
  337. package/dist/interface/vue3-apexcharts.BiZhZbF2.0.0.22-alpha.1.js +0 -1
  338. package/dist/interface/vue3-toastify.DdCHHmXT.0.0.22-alpha.1.js +0 -1
  339. package/dist/interface/vuetify.red0JsnZ.0.0.22-alpha.1.js +0 -5
  340. package/dist/interface/zod.BaF2dDCd.0.0.22-alpha.1.js +0 -1
  341. package/dist/server/bin/cameraui.d.ts +0 -54
  342. package/dist/server/bin/cameraui.js +0 -622
  343. package/dist/server/bin/cameraui.js.map +0 -1
  344. package/dist/server/bin/fork.js +0 -13
  345. package/dist/server/bin/fork.js.map +0 -1
  346. package/dist/server/bin/installer/base.d.ts +0 -17
  347. package/dist/server/bin/installer/base.js +0 -45
  348. package/dist/server/bin/installer/base.js.map +0 -1
  349. package/dist/server/bin/installer/darwin.d.ts +0 -61
  350. package/dist/server/bin/installer/darwin.js +0 -249
  351. package/dist/server/bin/installer/darwin.js.map +0 -1
  352. package/dist/server/bin/installer/freebsd.d.ts +0 -64
  353. package/dist/server/bin/installer/freebsd.js +0 -254
  354. package/dist/server/bin/installer/freebsd.js.map +0 -1
  355. package/dist/server/bin/installer/linux.d.ts +0 -103
  356. package/dist/server/bin/installer/linux.js +0 -482
  357. package/dist/server/bin/installer/linux.js.map +0 -1
  358. package/dist/server/bin/installer/win32.d.ts +0 -45
  359. package/dist/server/bin/installer/win32.js +0 -178
  360. package/dist/server/bin/installer/win32.js.map +0 -1
  361. package/dist/server/src/api/plugins/cameraui.plugin.d.ts +0 -11
  362. package/dist/server/src/api/plugins/cameraui.plugin.js +0 -6
  363. package/dist/server/src/api/plugins/cameraui.plugin.js.map +0 -1
  364. package/dist/server/src/api/plugins/database.plugin.d.ts +0 -11
  365. package/dist/server/src/api/plugins/database.plugin.js +0 -12
  366. package/dist/server/src/api/plugins/database.plugin.js.map +0 -1
  367. package/dist/server/src/api/plugins/go2rtc.plugin.d.ts +0 -11
  368. package/dist/server/src/api/plugins/go2rtc.plugin.js +0 -11
  369. package/dist/server/src/api/plugins/go2rtc.plugin.js.map +0 -1
  370. package/dist/server/src/camera/device.d.ts +0 -29
  371. package/dist/server/src/camera/device.js +0 -20
  372. package/dist/server/src/camera/device.js.map +0 -1
  373. package/dist/server/src/camera/index.d.ts +0 -94
  374. package/dist/server/src/camera/index.js +0 -620
  375. package/dist/server/src/camera/index.js.map +0 -1
  376. package/dist/server/src/camera/interfaces/camera.d.ts +0 -10
  377. package/dist/server/src/camera/interfaces/camera.js +0 -23
  378. package/dist/server/src/camera/interfaces/camera.js.map +0 -1
  379. package/dist/server/src/camera/interfaces/prebuffer.d.ts +0 -11
  380. package/dist/server/src/camera/interfaces/prebuffer.js +0 -26
  381. package/dist/server/src/camera/interfaces/prebuffer.js.map +0 -1
  382. package/dist/server/src/camera/interfaces/ptz.d.ts +0 -13
  383. package/dist/server/src/camera/interfaces/ptz.js +0 -47
  384. package/dist/server/src/camera/interfaces/ptz.js.map +0 -1
  385. package/dist/server/src/camera/iou.d.ts +0 -2
  386. package/dist/server/src/camera/iou.js +0 -53
  387. package/dist/server/src/camera/iou.js.map +0 -1
  388. package/dist/server/src/camera/polygon.d.ts +0 -6
  389. package/dist/server/src/camera/polygon.js +0 -151
  390. package/dist/server/src/camera/polygon.js.map +0 -1
  391. package/dist/server/src/camera/streaming/peer-connection.d.ts +0 -55
  392. package/dist/server/src/camera/streaming/peer-connection.js +0 -203
  393. package/dist/server/src/camera/streaming/peer-connection.js.map +0 -1
  394. package/dist/server/src/camera/streaming/webrtc-connection.d.ts +0 -35
  395. package/dist/server/src/camera/streaming/webrtc-connection.js +0 -170
  396. package/dist/server/src/camera/streaming/webrtc-connection.js.map +0 -1
  397. package/dist/server/src/camera/streaming/werift-session.d.ts +0 -41
  398. package/dist/server/src/camera/streaming/werift-session.js +0 -179
  399. package/dist/server/src/camera/streaming/werift-session.js.map +0 -1
  400. package/dist/server/src/camera/videoFrame.d.ts +0 -24
  401. package/dist/server/src/camera/videoFrame.js +0 -104
  402. package/dist/server/src/camera/videoFrame.js.map +0 -1
  403. package/dist/server/src/decoder/index.d.ts +0 -11
  404. package/dist/server/src/decoder/index.js +0 -32
  405. package/dist/server/src/decoder/index.js.map +0 -1
  406. package/dist/server/src/decoder/types.d.ts +0 -151
  407. package/dist/server/src/decoder/types.js +0 -2
  408. package/dist/server/src/decoder/types.js.map +0 -1
  409. package/dist/server/src/decoder/worker.js +0 -245
  410. package/dist/server/src/decoder/worker.js.map +0 -1
  411. package/dist/server/src/index.d.ts +0 -18
  412. package/dist/server/src/index.js +0 -5
  413. package/dist/server/src/index.js.map +0 -1
  414. package/dist/server/src/nats/connection.d.ts +0 -17
  415. package/dist/server/src/nats/connection.js +0 -66
  416. package/dist/server/src/nats/connection.js.map +0 -1
  417. package/dist/server/src/nats/constants.d.ts +0 -1
  418. package/dist/server/src/nats/constants.js +0 -2
  419. package/dist/server/src/nats/constants.js.map +0 -1
  420. package/dist/server/src/nats/error.d.ts +0 -9
  421. package/dist/server/src/nats/error.js +0 -11
  422. package/dist/server/src/nats/error.js.map +0 -1
  423. package/dist/server/src/nats/messageQueue.d.ts +0 -20
  424. package/dist/server/src/nats/messageQueue.js +0 -132
  425. package/dist/server/src/nats/messageQueue.js.map +0 -1
  426. package/dist/server/src/nats/subscription.d.ts +0 -12
  427. package/dist/server/src/nats/subscription.js +0 -21
  428. package/dist/server/src/nats/subscription.js.map +0 -1
  429. package/dist/server/src/plugins/interfaces/audioDetection.d.ts +0 -7
  430. package/dist/server/src/plugins/interfaces/audioDetection.js +0 -4
  431. package/dist/server/src/plugins/interfaces/audioDetection.js.map +0 -1
  432. package/dist/server/src/plugins/interfaces/base.d.ts +0 -6
  433. package/dist/server/src/plugins/interfaces/base.js +0 -3
  434. package/dist/server/src/plugins/interfaces/base.js.map +0 -1
  435. package/dist/server/src/plugins/interfaces/motionDetection.d.ts +0 -6
  436. package/dist/server/src/plugins/interfaces/motionDetection.js +0 -4
  437. package/dist/server/src/plugins/interfaces/motionDetection.js.map +0 -1
  438. package/dist/server/src/plugins/interfaces/objectDetection.d.ts +0 -7
  439. package/dist/server/src/plugins/interfaces/objectDetection.js +0 -4
  440. package/dist/server/src/plugins/interfaces/objectDetection.js.map +0 -1
  441. package/dist/server/src/polyglot/node/decoder/child.d.ts +0 -1
  442. package/dist/server/src/polyglot/node/decoder/child.js +0 -644
  443. package/dist/server/src/polyglot/node/decoder/child.js.map +0 -1
  444. package/dist/server/src/polyglot/node/decoder/imageUtils.d.ts +0 -24
  445. package/dist/server/src/polyglot/node/decoder/imageUtils.js +0 -205
  446. package/dist/server/src/polyglot/node/decoder/imageUtils.js.map +0 -1
  447. package/dist/server/src/polyglot/node/decoder/wasm/build/decoder.d.ts +0 -144
  448. package/dist/server/src/polyglot/node/decoder/wasm/build/decoder.js +0 -65
  449. package/dist/server/src/polyglot/node/decoder/wasm/build/decoder.wasm +0 -0
  450. package/dist/server/src/polyglot/node/decoder/wasm/test/imageUtils.py +0 -106
  451. package/dist/server/src/polyglot/node/plugins/cameraStorage.d.ts +0 -107
  452. package/dist/server/src/polyglot/node/plugins/cameraStorage.js +0 -292
  453. package/dist/server/src/polyglot/node/plugins/cameraStorage.js.map +0 -1
  454. package/dist/server/src/polyglot/node/plugins/child.d.ts +0 -28
  455. package/dist/server/src/polyglot/node/plugins/child.js +0 -222
  456. package/dist/server/src/polyglot/node/plugins/child.js.map +0 -1
  457. package/dist/server/src/polyglot/node/plugins/configService.d.ts +0 -104
  458. package/dist/server/src/polyglot/node/plugins/configService.js +0 -213
  459. package/dist/server/src/polyglot/node/plugins/configService.js.map +0 -1
  460. package/dist/server/src/polyglot/node/plugins/pluginApi.d.ts +0 -35
  461. package/dist/server/src/polyglot/node/plugins/pluginApi.js +0 -23
  462. package/dist/server/src/polyglot/node/plugins/pluginApi.js.map +0 -1
  463. package/dist/server/src/polyglot/node/plugins/pluginLogger.d.ts +0 -18
  464. package/dist/server/src/polyglot/node/plugins/pluginLogger.js +0 -89
  465. package/dist/server/src/polyglot/node/plugins/pluginLogger.js.map +0 -1
  466. package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.d.ts +0 -69
  467. package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.js +0 -432
  468. package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.js.map +0 -1
  469. package/dist/server/src/polyglot/node/plugins/proxy/coreManager.d.ts +0 -40
  470. package/dist/server/src/polyglot/node/plugins/proxy/coreManager.js +0 -105
  471. package/dist/server/src/polyglot/node/plugins/proxy/coreManager.js.map +0 -1
  472. package/dist/server/src/polyglot/node/plugins/proxy/deviceManager.d.ts +0 -47
  473. package/dist/server/src/polyglot/node/plugins/proxy/deviceManager.js +0 -164
  474. package/dist/server/src/polyglot/node/plugins/proxy/deviceManager.js.map +0 -1
  475. package/dist/server/src/polyglot/node/plugins/schema.d.ts +0 -293
  476. package/dist/server/src/polyglot/node/plugins/schema.js +0 -740
  477. package/dist/server/src/polyglot/node/plugins/schema.js.map +0 -1
  478. package/dist/server/src/polyglot/node/plugins/storageController.d.ts +0 -30
  479. package/dist/server/src/polyglot/node/plugins/storageController.js +0 -40
  480. package/dist/server/src/polyglot/node/plugins/storageController.js.map +0 -1
  481. package/dist/server/src/polyglot/python/camera/interfaces/camera.py +0 -20
  482. package/dist/server/src/polyglot/python/camera/interfaces/prebuffer.py +0 -25
  483. package/dist/server/src/polyglot/python/camera/interfaces/ptz.py +0 -38
  484. package/dist/server/src/polyglot/python/camera/iou.py +0 -80
  485. package/dist/server/src/polyglot/python/camera/polygon.py +0 -173
  486. package/dist/server/src/polyglot/python/camera/video_frame.py +0 -188
  487. package/dist/server/src/polyglot/python/camera_ui_types/__init__.py +0 -1196
  488. package/dist/server/src/polyglot/python/decoder/child.py +0 -882
  489. package/dist/server/src/polyglot/python/decoder/image_utils.py +0 -149
  490. package/dist/server/src/polyglot/python/decoder/typings.py +0 -99
  491. package/dist/server/src/polyglot/python/plugins/camera_storage.py +0 -391
  492. package/dist/server/src/polyglot/python/plugins/child.py +0 -394
  493. package/dist/server/src/polyglot/python/plugins/config_service.py +0 -187
  494. package/dist/server/src/polyglot/python/plugins/constants.py +0 -1
  495. package/dist/server/src/polyglot/python/plugins/message_queue.py +0 -182
  496. package/dist/server/src/polyglot/python/plugins/plugin_api.py +0 -34
  497. package/dist/server/src/polyglot/python/plugins/plugin_logger.py +0 -111
  498. package/dist/server/src/polyglot/python/plugins/proxy/camera_device.py +0 -1677
  499. package/dist/server/src/polyglot/python/plugins/proxy/core_manager.py +0 -145
  500. package/dist/server/src/polyglot/python/plugins/proxy/device_manager.py +0 -226
  501. package/dist/server/src/polyglot/python/plugins/schema.py +0 -181
  502. package/dist/server/src/polyglot/python/plugins/storage_controller.py +0 -58
  503. package/dist/server/src/polyglot/python/plugins/typings.py +0 -253
  504. package/dist/server/src/polyglot/python/utilities/connection.py +0 -86
  505. package/dist/server/src/polyglot/python/utilities/json_lmdb.py +0 -19
  506. package/dist/server/src/polyglot/python/utilities/object_path.py +0 -195
  507. package/dist/server/src/polyglot/python/utilities/packer.py +0 -11
  508. package/dist/server/src/polyglot/python/utilities/subscriptions.py +0 -22
  509. package/dist/server/src/polyglot/python/utilities/task.py +0 -35
  510. package/dist/server/src/polyglot/python/utilities/thread.py +0 -10
  511. package/dist/server/src/polyglot/python/utilities/utils.py +0 -73
  512. package/dist/server/src/utils/ffmpeg.d.ts +0 -2
  513. package/dist/server/src/utils/ffmpeg.js +0 -61
  514. package/dist/server/src/utils/ffmpeg.js.map +0 -1
  515. package/dist/server/src/utils/network.d.ts +0 -12
  516. package/dist/server/src/utils/network.js +0 -92
  517. package/dist/server/src/utils/network.js.map +0 -1
  518. package/dist/server/src/utils/npm.d.ts +0 -4
  519. package/dist/server/src/utils/npm.js +0 -128
  520. package/dist/server/src/utils/npm.js.map +0 -1
  521. package/dist/server/src/utils/packer.d.ts +0 -2
  522. package/dist/server/src/utils/packer.js +0 -17
  523. package/dist/server/src/utils/packer.js.map +0 -1
  524. package/dist/server/src/utils/pythonInstaller.d.ts +0 -48
  525. package/dist/server/src/utils/pythonInstaller.js +0 -494
  526. package/dist/server/src/utils/pythonInstaller.js.map +0 -1
  527. package/dist/server/src/utils/reader.d.ts +0 -5
  528. package/dist/server/src/utils/reader.js +0 -41
  529. package/dist/server/src/utils/reader.js.map +0 -1
  530. package/dist/server/src/utils/subscribed.d.ts +0 -9
  531. package/dist/server/src/utils/subscribed.js +0 -17
  532. package/dist/server/src/utils/subscribed.js.map +0 -1
  533. package/dist/server/src/utils/utils.d.ts +0 -10
  534. package/dist/server/src/utils/utils.js +0 -165
  535. package/dist/server/src/utils/utils.js.map +0 -1
  536. package/upgrade-server.sh +0 -205
  537. /package/dist/interface/{@babel.l0sNRNKZ.0.0.22-alpha.1.js → @babel.l0sNRNKZ.0.0.22-alpha.3.js} +0 -0
  538. /package/dist/interface/{@react-dnd.CcwRs9xb.0.0.22-alpha.1.js → @react-dnd.CcwRs9xb.0.0.22-alpha.3.js} +0 -0
  539. /package/dist/interface/{@socket.io.Dkula2eQ.0.0.22-alpha.1.js → @socket.io.Dkula2eQ.0.0.22-alpha.3.js} +0 -0
  540. /package/dist/interface/{vue.l0sNRNKZ.0.0.22-alpha.1.js → @turf.l0sNRNKZ.0.0.22-alpha.3.js} +0 -0
  541. /package/dist/interface/{@xterm.DV-IE8JS.0.0.22-alpha.1.js → @xterm.nBWIhP-E.0.0.22-alpha.3.js} +0 -0
  542. /package/dist/interface/assets/{@vueform.0.0.22-alpha.1.h7tNX9p6.css → @vueform.0.0.22-alpha.3.CroAHJs8.css} +0 -0
  543. /package/dist/interface/assets/{@xterm.0.0.22-alpha.1.CGrrDQr5.css → @xterm.0.0.22-alpha.3.CFbL2ovg.css} +0 -0
  544. /package/dist/interface/assets/{Account.0.0.22-alpha.1.Ce3OmKrC.css → Account.0.0.22-alpha.3.J7oAjogS.css} +0 -0
  545. /package/dist/interface/assets/{Backup.0.0.22-alpha.1.BIwaSlv3.css → Backup.0.0.22-alpha.3.CX0rT0QJ.css} +0 -0
  546. /package/dist/interface/assets/{Plugin.0.0.22-alpha.1.BtRA6zDt.css → Plugin.0.0.22-alpha.3.DJbgaQc1.css} +0 -0
  547. /package/dist/interface/assets/{Plugins.0.0.22-alpha.1.Cwu0aGUO.css → Plugins.0.0.22-alpha.3.DXSoO9M1.css} +0 -0
  548. /package/dist/interface/assets/{User.0.0.22-alpha.1.DPDcJbx8.css → User.0.0.22-alpha.3.BiGtIFqt.css} +0 -0
  549. /package/dist/interface/assets/{highlight.0.0.22-alpha.1.DgoK_Xib.css → highlight.0.0.22-alpha.3.Ch2EwETz.css} +0 -0
  550. /package/dist/interface/assets/{logo-256.0.0.22-alpha.1.BCQk9H1-.png → logo-256.0.0.22-alpha.3.BCQk9H1-.png} +0 -0
  551. /package/dist/interface/assets/{logo-512.0.0.22-alpha.1.DLKVOU2S.png → logo-512.0.0.22-alpha.3.DLKVOU2S.png} +0 -0
  552. /package/dist/interface/assets/{logo.0.0.22-alpha.1.DmEiRk0z.png → logo.0.0.22-alpha.3.DmEiRk0z.png} +0 -0
  553. /package/dist/interface/assets/{mode-json.0.0.22-alpha.1.Br7xisR1.js → mode-json.0.0.22-alpha.3.Br7xisR1.js} +0 -0
  554. /package/dist/interface/assets/{mode-yaml.0.0.22-alpha.1.CIYL8U3d.js → mode-yaml.0.0.22-alpha.3.CIYL8U3d.js} +0 -0
  555. /package/dist/interface/assets/{vue3-toastify.0.0.22-alpha.1.DTY1DMRs.css → vue3-toastify.0.0.22-alpha.3.DHXAGmwn.css} +0 -0
  556. /package/dist/interface/{axios.C-n2IhIP.0.0.22-alpha.1.js → axios.C-n2IhIP.0.0.22-alpha.3.js} +0 -0
  557. /package/dist/interface/{compare-versions.DqEOhma6.0.0.22-alpha.1.js → compare-versions.DqEOhma6.0.0.22-alpha.3.js} +0 -0
  558. /package/dist/interface/{dijkstrajs.D_NXgYpA.0.0.22-alpha.1.js → dijkstrajs.D_NXgYpA.0.0.22-alpha.3.js} +0 -0
  559. /package/dist/interface/{engine.io-parser.BiEtp6m2.0.0.22-alpha.1.js → engine.io-parser.BiEtp6m2.0.0.22-alpha.3.js} +0 -0
  560. /package/dist/interface/{entities.C20TfXL6.0.0.22-alpha.1.js → entities.C20TfXL6.0.0.22-alpha.3.js} +0 -0
  561. /package/dist/interface/{get-size.D1dS-IaP.0.0.22-alpha.1.js → get-size.D1dS-IaP.0.0.22-alpha.3.js} +0 -0
  562. /package/dist/interface/{mdurl.k9Sl0PQj.0.0.22-alpha.1.js → mdurl.k9Sl0PQj.0.0.22-alpha.3.js} +0 -0
  563. /package/dist/interface/{punycode.js.Dj65hjkv.0.0.22-alpha.1.js → punycode.js.Dj65hjkv.0.0.22-alpha.3.js} +0 -0
  564. /package/dist/interface/{react-dnd-html5-backend.1HQjlkwI.0.0.22-alpha.1.js → react-dnd-html5-backend.1HQjlkwI.0.0.22-alpha.3.js} +0 -0
  565. /package/dist/interface/{redux.CuxFRhX_.0.0.22-alpha.1.js → redux.CuxFRhX_.0.0.22-alpha.3.js} +0 -0
  566. /package/dist/interface/{tslib.9k7AwCpt.0.0.22-alpha.1.js → tslib.9k7AwCpt.0.0.22-alpha.3.js} +0 -0
  567. /package/dist/interface/{uc.micro.kMc2yuuw.0.0.22-alpha.1.js → uc.micro.kMc2yuuw.0.0.22-alpha.3.js} +0 -0
  568. /package/dist/server/bin/{fork.d.ts → cameraui-server.d.ts} +0 -0
@@ -1,149 +0,0 @@
1
- from typing import Any, Literal, Union
2
-
3
- import numpy as np
4
- from camera_ui_types import DecoderFormat, ImageCrop, ImageFormat, ImageOptions, ImageResize
5
- from PIL import Image
6
- from utilities.thread import to_thread
7
-
8
-
9
- async def process_image_threaded(
10
- image_data: bytes,
11
- input_width: int,
12
- input_height: int,
13
- input_format: Union[DecoderFormat, Literal["rgba"], Literal["gray"]],
14
- options: ImageOptions,
15
- ) -> bytes:
16
- return await to_thread(
17
- lambda: process_image(image_data, input_width, input_height, input_format, options)
18
- )
19
-
20
-
21
- def process_image(
22
- image_data: bytes,
23
- input_width: int,
24
- input_height: int,
25
- input_format: Union[DecoderFormat, Literal["rgba"], Literal["gray"]],
26
- options: ImageOptions,
27
- ) -> bytes:
28
- image: Union[Image.Image, None] = None
29
-
30
- crop = options.get("crop", None)
31
- resize = options.get("resize", None)
32
- format = options.get("format", None)
33
-
34
- if format and format["to"] == "gray":
35
- if input_format == "yuv":
36
- gray = yuv420_to_gray(image_data, input_width, input_height)
37
- image = Image.fromarray(gray)
38
- elif input_format == "rgb":
39
- image = Image.frombytes("RGB", (input_width, input_height), image_data).convert("L")
40
- elif input_format == "rgba":
41
- image = Image.frombytes("RGBA", (input_width, input_height), image_data).convert("L")
42
- else:
43
- image = Image.frombytes("L", (input_width, input_height), image_data)
44
-
45
- format = None
46
- elif format and format["to"] == "rgba":
47
- if input_format == "yuv":
48
- rgba = yuv420_to_rgba(image_data, input_width, input_height)
49
- image = Image.fromarray(rgba)
50
- elif input_format == "rgb":
51
- image = Image.frombytes("RGB", (input_width, input_height), image_data).convert("RGBA")
52
- elif input_format == "gray":
53
- image = Image.frombytes("L", (input_width, input_height), image_data).convert("RGBA")
54
- else:
55
- image = Image.frombytes("RGBA", (input_width, input_height), image_data)
56
-
57
- format = None
58
- else:
59
- if input_format == "yuv":
60
- rgb = yuv420_to_rgb(image_data, input_width, input_height)
61
- image = Image.fromarray(rgb)
62
- elif input_format == "rgb":
63
- image = Image.frombytes("RGB", (input_width, input_height), image_data)
64
- elif input_format == "gray":
65
- image = Image.frombytes("L", (input_width, input_height), image_data)
66
- else:
67
- image = Image.frombytes("RGBA", (input_width, input_height), image_data)
68
-
69
- if crop:
70
- image = crop_image(image, crop)
71
- input_width = crop["width"]
72
- input_height = crop["height"]
73
-
74
- if resize:
75
- image = resize_image(image, input_width, input_height, resize)
76
- input_width = resize.get("width", input_width)
77
- input_height = resize.get("height", input_height)
78
-
79
- if format:
80
- image = format_image(image, format)
81
-
82
- return image.tobytes()
83
-
84
-
85
- def crop_image(image: Image.Image, crop: ImageCrop) -> Image.Image:
86
- crop_box = (
87
- int(crop["left"]),
88
- int(crop["top"]),
89
- int(crop["left"] + crop["width"]),
90
- int(crop["top"] + crop["height"]),
91
- )
92
-
93
- return image.crop(crop_box)
94
-
95
-
96
- def resize_image(image: Image.Image, input_width: int, input_height: int, resize: ImageResize) -> Image.Image:
97
- width = resize.get("width", input_width)
98
- height = resize.get("height", input_height)
99
-
100
- if width and height and (width != input_width and height != input_height):
101
- image = image.resize((int(width), int(height)), resample=Image.Resampling.BILINEAR)
102
-
103
- return image
104
-
105
-
106
- def format_image(image: Image.Image, format: ImageFormat) -> Image.Image:
107
- if format["to"] == "rgba":
108
- image = image.convert("RGBA")
109
- elif format["to"] == "gray":
110
- image = image.convert("L")
111
-
112
- return image
113
-
114
-
115
- def yuv420_to_rgb(yuv_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
116
- frame_size = width * height
117
- uv_size = frame_size // 4
118
-
119
- raw_data = np.frombuffer(yuv_bytes, dtype=np.uint8)
120
-
121
- y = raw_data[:frame_size].reshape((height, width)).astype(np.float32) - 16.0
122
- u = (
123
- raw_data[frame_size : frame_size + uv_size].reshape((height // 2, width // 2)).astype(np.float32)
124
- - 128.0
125
- )
126
- v = raw_data[frame_size + uv_size :].reshape((height // 2, width // 2)).astype(np.float32) - 128.0
127
-
128
- u = u.repeat(2, axis=0).repeat(2, axis=1)
129
- v = v.repeat(2, axis=0).repeat(2, axis=1)
130
-
131
- r = y + 1.402 * v
132
- g = y - 0.344136 * u - 0.714136 * v
133
- b = y + 1.772 * u
134
-
135
- rgb = np.stack((r, g, b), axis=-1)
136
- return np.clip(rgb, 0, 255).astype(np.uint8)
137
-
138
-
139
- def yuv420_to_rgba(yuv_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
140
- rgb = yuv420_to_rgb(yuv_bytes, width, height)
141
- alpha = np.full((height, width, 1), 255, dtype=np.uint8)
142
- rgba = np.concatenate((rgb, alpha), axis=-1)
143
- return rgba
144
-
145
-
146
- def yuv420_to_gray(yuv_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
147
- frame_size = width * height
148
- raw_data = np.frombuffer(yuv_bytes, dtype=np.uint8)
149
- return raw_data[:frame_size].reshape((height, width)).astype(np.uint8)
@@ -1,99 +0,0 @@
1
- from typing import Any
2
-
3
- from camera_ui_types import FrameMetadata
4
- from typing_extensions import Literal, NotRequired, TypedDict
5
-
6
- WorkerMessage = Literal["started", "getFFmpegArgs", "updateClient", "removeClient"]
7
-
8
- MainMessage = Literal["setCameraName", "recoverClients"]
9
-
10
-
11
- class AuthConfig(TypedDict):
12
- user: str
13
- password: str
14
-
15
-
16
- class BaseFrameWorkerConfig(TypedDict):
17
- frameWorkerId: str
18
- cameraId: str
19
- cameraName: str
20
- ffmpegPath: str
21
- logLevel: str
22
- disableTimestamps: bool
23
- auth: AuthConfig
24
- proxyEndpoints: list[str]
25
- fps: int
26
- resolution: int
27
-
28
-
29
- class MainToWorkerMessage(TypedDict):
30
- message: MainMessage
31
- data: dict[str, Any]
32
-
33
-
34
- class WorkerToMainResponse(TypedDict):
35
- response: NotRequired[dict[str, Any]]
36
-
37
-
38
- class WorkerToMainMessage(TypedDict):
39
- message: WorkerMessage
40
- data: dict[str, Any]
41
-
42
-
43
- class MainToWorkerResponse(TypedDict):
44
- response: NotRequired[dict[str, Any]]
45
-
46
-
47
- class FfmpegArgs(TypedDict):
48
- hwaccel: str
49
- hwaccelArgs: list[str]
50
- hwaccelFilter: str
51
- threads: str
52
-
53
-
54
- class FfmpegArgsResponse(TypedDict):
55
- cameraSource: str
56
- ffmpegArgs: FfmpegArgs
57
-
58
-
59
- SignalingMessageType = Literal["connect", "disconnect", "metadata"]
60
-
61
-
62
- class SignalingRequest(TypedDict):
63
- type: SignalingMessageType
64
- requestId: str
65
- cameraId: str
66
- pluginId: str
67
-
68
-
69
- class SignalingResponse(TypedDict):
70
- type: SignalingMessageType
71
- requestId: str
72
- metadata: NotRequired[FrameMetadata]
73
-
74
-
75
- class PingMessage(TypedDict):
76
- type: Literal["ping"]
77
- requestId: str
78
-
79
-
80
- class PongMessage(TypedDict):
81
- type: Literal["pong"]
82
- requestId: str
83
-
84
-
85
- class FrameWorkerClient:
86
- def __init__(self, plugin_id: str, request_ids: list[str]):
87
- self.plugin_id = plugin_id
88
- self.request_ids = request_ids
89
-
90
-
91
- class RecoveredClient(TypedDict):
92
- pluginId: str
93
- requestIds: list[str]
94
-
95
-
96
- class PrebufferContainer(TypedDict):
97
- frame_id: str
98
- time: float
99
- frame: bytes
@@ -1,391 +0,0 @@
1
- import inspect
2
- from contextlib import suppress
3
- from copy import deepcopy
4
- from typing import Any, Optional, TypeVar, Union, cast
5
-
6
- from camera_ui_types import (
7
- JsonBaseSchema,
8
- JsonSchema,
9
- JsonSchemaForm,
10
- RootSchema,
11
- SchemaConfig,
12
- )
13
- from deepdiff import DeepDiff
14
- from lmdbm import Lmdb
15
- from plugin_api import PluginAPI
16
- from schema import (
17
- config_path_to_schema_path,
18
- generate_json_from_root_schema,
19
- get_value_by_path,
20
- remove_functions_from_schema_form,
21
- schema_path_to_config_path,
22
- )
23
- from typing_extensions import Literal, overload
24
- from utilities.object_path import ObjectPath
25
- from utilities.utils import merge, merge_with
26
-
27
- P = TypeVar("P", str, int, float, bool, dict[Any, Any], list[Any], None)
28
-
29
-
30
- class CameraStorage:
31
- def __init__(
32
- self,
33
- api: PluginAPI,
34
- plugin_db: Lmdb[Literal["config"], dict[str, Any]],
35
- instance: Any,
36
- camera_id: str,
37
- schema: Optional[JsonSchemaForm] = None,
38
- ) -> None:
39
- if schema is None:
40
- schema = {}
41
- self.__api = api
42
- self.__plugin_db = plugin_db
43
- self.__instance = instance
44
- self.__camera_id = camera_id
45
- self.schema: JsonSchemaForm = schema or {}
46
- self.values: dict[str, Any] = {}
47
-
48
- self.__api.once("shutdown", self.__close)
49
-
50
- def initializeStorage(self) -> None:
51
- """
52
- Initialize the storage.
53
- This will load the configuration from the database.
54
- """
55
-
56
- config: Any = self.__plugin_db.get("config") or {}
57
- camera_config = config.get(self.__camera_id, {})
58
- schema_config = generate_json_from_root_schema({"schema": self.schema})
59
- self.values = merge_with(schema_config, camera_config, merge)
60
-
61
- self.__save_db()
62
-
63
- @overload
64
- async def getValue(self, path: str) -> Union[Any, None]: ...
65
- @overload
66
- async def getValue(self, path: str, default_value: P) -> P: ...
67
- async def getValue(self, path: str, default_value: Optional[P] = None) -> Union[P, None]:
68
- """
69
- Get a value from the configuration by its key/path.
70
- If the schema has an onGet function, the onGet function will be called.
71
- If the onGet function is undefined, the value from the configuration will be returned.
72
- If the schema has a default value, and the configuration value is undefined, the default value will be returned.
73
-
74
- :param path: The path to the configuration value.
75
- :param default_value: The default value to return if the actual value is undefined.
76
- :return: The value from the configuration.
77
- """
78
-
79
- schema_path = config_path_to_schema_path(path)
80
- schema: JsonBaseSchema = ObjectPath.get(self.schema, schema_path)
81
- config_value = ObjectPath.get(self.values, path)
82
-
83
- if schema:
84
- on_get_function = schema.get("onGet", None)
85
- if on_get_function is not None:
86
- if inspect.iscoroutinefunction(on_get_function):
87
- return await on_get_function()
88
- else:
89
- return on_get_function() # type: ignore
90
- if config_value is not None:
91
- return config_value
92
- if "default" in schema:
93
- return schema["default"]
94
- else:
95
- return default_value
96
-
97
- async def setValue(self, path: str, new_value: Any) -> None:
98
- """
99
- Set a new value for a given key/path in the configuration.
100
- If the schema of the value has an onSet function, and the value has changed, the onSet function will be called.
101
- If the schema of the value is declared as storable, the value will be saved to the database.
102
-
103
- :param path: The path to the configuration value.
104
- :param new_value: The new value to set.
105
- """
106
-
107
- schema_path = config_path_to_schema_path(path)
108
- schema: JsonSchema = ObjectPath.get(self.schema, schema_path)
109
-
110
- if schema:
111
- old_config = deepcopy(self.values)
112
- ObjectPath.set(self.values, path, new_value)
113
-
114
- await self.__trigger_on_set_for_changes(old_config, self.values)
115
-
116
- if self.__contains_storable_schema(schema):
117
- self.__save_db()
118
-
119
- def hasValue(self, path: str) -> bool:
120
- """
121
- Check if a value exists by its config path/key.
122
-
123
- :param path: The path to the value to check.
124
- :return: True if the value exists, false otherwise.
125
- """
126
-
127
- config_value = ObjectPath.get(self.values, path)
128
- return config_value is not None
129
-
130
- async def getConfig(self) -> SchemaConfig:
131
- """
132
- Get the root schema and configuration.
133
- This will also call the onGet functions for the schema.
134
-
135
- :return: The root schema and configuration.
136
- """
137
-
138
- filtered_schema = remove_functions_from_schema_form(self.schema)
139
- root_schema: RootSchema = {"schema": filtered_schema}
140
-
141
- await self.__resolve_on_get_functions(self.schema)
142
-
143
- return {"rootSchema": root_schema, "config": self.values}
144
-
145
- async def setConfig(self, new_config: dict[str, Any]) -> None:
146
- """
147
- Set a new configuration.
148
- If the schema of a value which has been changed has an onSet function, the onSet function will be called.
149
-
150
- :param new_config: The new configuration to set.
151
- """
152
-
153
- old_config = deepcopy(self.values)
154
- self.values = new_config
155
-
156
- await self.__trigger_on_set_for_changes(old_config, self.values)
157
- self.__save_db()
158
-
159
- @overload
160
- async def addSchema(self, schema_or_path: JsonSchemaForm) -> None: ...
161
- @overload
162
- async def addSchema(self, schema_or_path: str, schema: JsonSchema) -> None: ...
163
- async def addSchema(
164
- self,
165
- schema_or_path: Union[JsonSchemaForm, str],
166
- schema: Optional[JsonSchema] = None,
167
- ) -> None:
168
- """
169
- Add a new schema to the existing schema.
170
- It will also add the value to the configuration.
171
- If the schema is declared as storable, the value will be saved to the database.
172
-
173
- :param schema: The new schema to add.
174
- :param path: The path to the schema to add, optional.
175
- """
176
-
177
- should_save = False
178
-
179
- if isinstance(schema_or_path, str) and schema is not None:
180
- path = schema_or_path
181
- schema_path = config_path_to_schema_path(path)
182
-
183
- ObjectPath.set(self.schema, schema_path, schema)
184
-
185
- await self.__resolve_on_get_functions(schema, schema_path)
186
-
187
- if self.__contains_storable_schema(schema):
188
- should_save = True
189
-
190
- elif isinstance(schema_or_path, dict) and schema is None:
191
- new_schema = schema_or_path
192
-
193
- self.schema = merge_with(self.schema, new_schema, merge)
194
-
195
- await self.__resolve_on_get_functions(new_schema)
196
-
197
- if self.__contains_storable_schema(new_schema):
198
- should_save = True
199
-
200
- else:
201
- raise Exception("Invalid arguments for addSchema")
202
-
203
- if should_save:
204
- self.__save_db()
205
-
206
- def removeSchema(self, path: str) -> None:
207
- """
208
- Remove a schema by its config path/key from the existing schema.
209
- It will also remove the value from the configuration.
210
- If the schema is declared as storable, the value will be removed from the database.
211
-
212
- :param path: The path to the schema to remove.
213
- """
214
-
215
- schema_path = config_path_to_schema_path(path)
216
- schema: Optional[JsonSchema] = ObjectPath.get(self.schema, schema_path) or None
217
-
218
- if schema:
219
- ObjectPath.delete(self.schema, schema_path)
220
- ObjectPath.delete(self.values, path)
221
-
222
- if self.__contains_storable_schema(schema):
223
- self.__save_db()
224
-
225
- async def changeSchema(self, path: str, new_schema: dict[str, Any]) -> None:
226
- """
227
- Change a schema by its config path/key from the existing schema.
228
- It will also change the value from the configuration.
229
- If the schema is declared as storable, the value will be saved to the database.
230
-
231
- :param path: The path to the schema to change.
232
- :param schema: The new schema to set.
233
- """
234
-
235
- schema_path = config_path_to_schema_path(path)
236
- schema: Optional[JsonSchema] = ObjectPath.get(self.schema, schema_path) or None
237
-
238
- if schema:
239
- merge_with(schema, new_schema, merge)
240
- ObjectPath.set(self.schema, schema_path, schema)
241
-
242
- await self.__resolve_on_get_functions(schema, schema_path)
243
-
244
- if self.__contains_storable_schema(schema):
245
- self.__save_db()
246
-
247
- def getSchema(self, path: str) -> Optional[JsonSchema]:
248
- """
249
- Get a schema by its config path/key.
250
-
251
- :param path: The path to the schema to get.
252
- :return: The schema.
253
- """
254
-
255
- schema_path = config_path_to_schema_path(path)
256
- schema: Optional[JsonSchema] = ObjectPath.get(self.schema, schema_path) or None
257
-
258
- return schema
259
-
260
- def hasSchema(self, path: str) -> bool:
261
- """
262
- Check if a schema exists by its config path/key.
263
-
264
- :param path: The path to the schema to check.
265
- :return: True if the schema exists, false otherwise.
266
- """
267
-
268
- schema_path = config_path_to_schema_path(path)
269
- schema: Optional[JsonSchema] = ObjectPath.get(self.schema, schema_path) or None
270
-
271
- return schema is not None
272
-
273
- async def __resolve_on_get_functions(
274
- self,
275
- schema: Union[JsonSchemaForm, JsonSchema],
276
- base_schema_path: str = "",
277
- ) -> None:
278
- if "onGet" in schema or "onSet" in schema:
279
- await self.__resolve_on_get_functions_for_schema(base_schema_path)
280
- elif "type" in schema and schema["type"] == "object":
281
- if "properties" in schema:
282
- await self.___resolve_on_get_functions_for_object(
283
- schema["properties"], # type: ignore
284
- base_schema_path,
285
- )
286
- else:
287
- _schema = cast(JsonSchemaForm, schema)
288
-
289
- for key, value in _schema.items():
290
- schema_path = f"{base_schema_path}.{key}" if base_schema_path else key
291
-
292
- if "type" in value and value["type"] == "object":
293
- if "properties" in value:
294
- s: Any = value["properties"]
295
- await self.__resolve_on_get_functions(s, schema_path)
296
- else:
297
- await self.__resolve_on_get_functions_for_schema(schema_path)
298
-
299
- async def ___resolve_on_get_functions_for_object(
300
- self,
301
- schema: JsonSchemaForm,
302
- base_schema_path: str,
303
- ) -> None:
304
- for key, _ in schema.items():
305
- schema_path = f"{base_schema_path}.{key}" if base_schema_path else key
306
- await self.__resolve_on_get_functions_for_schema(schema_path)
307
-
308
- async def __resolve_on_get_functions_for_schema(self, schema_path: str) -> None:
309
- config_path = schema_path_to_config_path(schema_path)
310
- schema_value = await self.getValue(config_path)
311
-
312
- if schema_value is not None:
313
- ObjectPath.set(self.values, config_path, schema_value)
314
-
315
- async def __trigger_on_set_for_changes(
316
- self, old_config: dict[str, Any], new_config: dict[str, Any], path: str = ""
317
- ) -> None:
318
- for key, _ in new_config.items():
319
- new_path = f"{path}.{key}" if path else key
320
- old_value: Any = get_value_by_path(old_config, key) or {}
321
- new_value: Any = new_config[key]
322
-
323
- if DeepDiff(old_value, new_value, ignore_order=True) != {}:
324
- schema_path = config_path_to_schema_path(new_path)
325
- schema_item: Optional[JsonBaseSchema] = get_value_by_path(self.schema, schema_path)
326
-
327
- if schema_item and schema_item["type"] != "button":
328
- on_set_function = schema_item.get("onSet", None)
329
- if on_set_function:
330
- if inspect.iscoroutinefunction(on_set_function):
331
- await on_set_function(old_value, new_value)
332
- else:
333
- on_set_function(old_value, new_value)
334
-
335
- if new_value and isinstance(new_value, dict):
336
- nv: Any = new_value
337
- await self.__trigger_on_set_for_changes(old_value, nv, new_path)
338
-
339
- def __filter_storable_values(
340
- self,
341
- schema: JsonSchemaForm,
342
- base_schema_path: str = "",
343
- result: dict[str, Any] = {},
344
- ) -> dict[str, Any]:
345
- for key, value in schema.items():
346
- if value["type"] == "button":
347
- continue
348
-
349
- if value["type"] == "object":
350
- if "properties" in value:
351
- s: Any = value["properties"]
352
- path = f"{base_schema_path}.{key}" if base_schema_path else key
353
- self.__filter_storable_values(s, path, result)
354
- elif "store" in value and value["store"]:
355
- schema_path = f"{base_schema_path}.{key}" if base_schema_path else key
356
- config_path = schema_path_to_config_path(schema_path)
357
- config_value = get_value_by_path(self.values, config_path)
358
-
359
- ObjectPath.set(result, config_path, config_value)
360
-
361
- return result
362
-
363
- def __contains_storable_schema(
364
- self,
365
- schema: Union[JsonSchemaForm, JsonSchema],
366
- ) -> bool:
367
- if schema["type"] == "boolean":
368
- return False
369
-
370
- if "store" in schema and schema["store"]:
371
- return True
372
-
373
- if schema["type"] == "object" and "properties" in schema:
374
- schema_values: Any = schema["properties"].values()
375
- return any(self.__contains_storable_schema(sub_schema) for sub_schema in schema_values)
376
- elif schema["type"] == "array" and "items" in schema:
377
- return self.__contains_storable_schema(schema["items"])
378
-
379
- return False
380
-
381
- def __save_db(self) -> None:
382
- config: Any = self.__plugin_db.get("config") or {}
383
- storable_config = self.__filter_storable_values(self.schema)
384
-
385
- config[self.__camera_id] = storable_config
386
-
387
- self.__plugin_db.update({"config": config})
388
-
389
- def __close(self) -> None:
390
- with suppress(Exception):
391
- self.__save_db()