@camera.ui/server 0.0.49 → 0.0.50-internal.1

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 (605) hide show
  1. package/dist/interface/assets/@xterm.DYP7pi_n.0.0.50-internal.1.css +32 -0
  2. package/dist/interface/assets/Adminpanel.BKek2EMH.0.0.50-internal.1.css +1 -0
  3. package/dist/interface/assets/Cameras.BDWZJqPN.0.0.50-internal.1.css +1 -0
  4. package/dist/interface/assets/Camview.BFUFMoNX.0.0.50-internal.1.css +1 -0
  5. package/dist/interface/assets/CuiConsole.DCYyxdVg.0.0.50-internal.1.css +1 -0
  6. package/dist/interface/assets/CuiPluginCard.yF8V0SZY.0.0.50-internal.1.css +1 -0
  7. package/dist/interface/assets/CuiTimeline.BkIwlYtw.0.0.50-internal.1.css +1 -0
  8. package/dist/interface/assets/Plugin.DJElsAn5.0.0.50-internal.1.css +1 -0
  9. package/dist/interface/assets/Plugins.0h77qnmN.0.0.50-internal.1.css +1 -0
  10. package/dist/interface/assets/Settings.CkgfRkQr.0.0.50-internal.1.css +1 -0
  11. package/dist/interface/assets/SettingsAccount.DeFul3eQ.0.0.50-internal.1.css +1 -0
  12. package/dist/interface/assets/main.Cip9LkS3.0.0.50-internal.1.css +1 -0
  13. package/dist/interface/assets/worker-base.jEXLGV2h.0.0.50-internal.1.js +1332 -0
  14. package/dist/interface/assets/worker-json.DgwNIOck.0.0.50-internal.1.js +1626 -0
  15. package/dist/interface/assets/worker-yaml.B3uUYINB.0.0.50-internal.1.js +5819 -0
  16. package/dist/interface/fonts/InterVariable.woff2 +0 -0
  17. package/dist/interface/index.html +48 -38
  18. package/dist/interface/js/@intlify.BkGPX90O.0.0.50-internal.1.js +15 -0
  19. package/dist/interface/js/@kurkle.D8fDXNIl.0.0.50-internal.1.js +6 -0
  20. package/dist/interface/js/@primeuix.BFAY2Bk9.0.0.50-internal.1.js +5722 -0
  21. package/dist/interface/js/@primevue.CiB2EGly.0.0.50-internal.1.js +57 -0
  22. package/dist/interface/js/@tanstack.DxMw_rJn.0.0.50-internal.1.js +1 -0
  23. package/dist/interface/{@vee-validate.DHkwupr6.0.0.49.js → js/@vee-validate.RxZ3hn6V.0.0.50-internal.1.js} +2 -2
  24. package/dist/interface/js/@vue.B5vqhCp2.0.0.50-internal.1.js +17 -0
  25. package/dist/interface/js/@vueuse.C-k73ACm.0.0.50-internal.1.js +1 -0
  26. package/dist/interface/{@xterm.D6R4zI7m.0.0.49.js → js/@xterm.DIUBesyz.0.0.50-internal.1.js} +8 -8
  27. package/dist/interface/js/Adminpanel.DumNu6GD.0.0.50-internal.1.js +1 -0
  28. package/dist/interface/js/Camera.BuosoqFl.0.0.50-internal.1.js +1 -0
  29. package/dist/interface/js/Cameras.A7NJflGG.0.0.50-internal.1.js +482 -0
  30. package/dist/interface/js/Cammesh.Dv3C0UiR.0.0.50-internal.1.js +1 -0
  31. package/dist/interface/js/Camview.GgjJp7JR.0.0.50-internal.1.js +1 -0
  32. package/dist/interface/js/Config.BL3L-BFE.0.0.50-internal.1.js +2 -0
  33. package/dist/interface/js/Console.CxwRmUVF.0.0.50-internal.1.js +4 -0
  34. package/dist/interface/js/CuiConsole.D16kkT6R.0.0.50-internal.1.js +1 -0
  35. package/dist/interface/js/CuiPluginCard.Bkp__d8n.0.0.50-internal.1.js +4 -0
  36. package/dist/interface/js/CuiTimeline.C9HKvo0G.0.0.50-internal.1.js +1 -0
  37. package/dist/interface/js/FirstSteps.QuJjtAtF.0.0.50-internal.1.js +1 -0
  38. package/dist/interface/js/Plugin.BLUUbEej.0.0.50-internal.1.js +1 -0
  39. package/dist/interface/js/Plugins.DviCIk7w.0.0.50-internal.1.js +1 -0
  40. package/dist/interface/js/Recordings.Dsp07cHs.0.0.50-internal.1.js +1 -0
  41. package/dist/interface/js/Settings.Clx4y9gP.0.0.50-internal.1.js +1 -0
  42. package/dist/interface/js/SettingsAccount.cfY4-PYd.0.0.50-internal.1.js +1 -0
  43. package/dist/interface/js/SettingsAppearance.CBGZAazb.0.0.50-internal.1.js +1 -0
  44. package/dist/interface/js/SettingsAppearance.vue_vue_type_script_setup_true_lang.kxAPXcBy.0.0.50-internal.1.js +1 -0
  45. package/dist/interface/js/SettingsBackup.DOaJA4pp.0.0.50-internal.1.js +1 -0
  46. package/dist/interface/js/SettingsRecordings.BGcwL6tk.0.0.50-internal.1.js +1 -0
  47. package/dist/interface/js/SettingsRemote.BVU_w1Jm.0.0.50-internal.1.js +1 -0
  48. package/dist/interface/js/SettingsSystem.P0vy90vA.0.0.50-internal.1.js +1 -0
  49. package/dist/interface/js/SettingsUsers.DaP5m7eo.0.0.50-internal.1.js +1 -0
  50. package/dist/interface/js/VersionsHandler.vue_vue_type_script_setup_true_lang.MmrWYW3K.0.0.50-internal.1.js +4 -0
  51. package/dist/interface/js/ace-builds.C0aqA_3x.0.0.50-internal.1.js +1090 -0
  52. package/dist/interface/js/ace.config.C9wgzklI.0.0.50-internal.1.js +1 -0
  53. package/dist/interface/js/axios.DHr9lByg.0.0.50-internal.1.js +6 -0
  54. package/dist/interface/js/backup.BeH6lJ5t.0.0.50-internal.1.js +1 -0
  55. package/dist/interface/js/chart.js.BQHSWV_g.0.0.50-internal.1.js +13 -0
  56. package/dist/interface/js/close-circle.DDKMxauw.0.0.50-internal.1.js +1 -0
  57. package/dist/interface/js/dnd-core.dWz9rJqH.0.0.50-internal.1.js +1 -0
  58. package/dist/interface/{draggabilly.C0hZWkL0.0.0.49.js → js/draggabilly.D-iZIS1n.0.0.50-internal.1.js} +1 -1
  59. package/dist/interface/js/engine.io-client.BwxOddB_.0.0.50-internal.1.js +1 -0
  60. package/dist/interface/js/fast-deep-equal.Dz96RC_N.0.0.50-internal.1.js +1 -0
  61. package/dist/interface/js/highlight.js.CmcM8OM6.0.0.50-internal.1.js +3 -0
  62. package/dist/interface/js/linkify-it.BgLcBzlw.0.0.50-internal.1.js +1 -0
  63. package/dist/interface/js/main.6bOgRV7D.0.0.50-internal.1.js +31 -0
  64. package/dist/interface/{markdown-it.64FJJcTG.0.0.49.js → js/markdown-it.CTgfs-3p.0.0.50-internal.1.js} +1 -1
  65. package/dist/interface/{nprogress.DkWvUoHh.0.0.49.js → js/nprogress.CMhnq8jS.0.0.50-internal.1.js} +1 -1
  66. package/dist/interface/js/perfect-debounce.l0sNRNKZ.0.0.50-internal.1.js +1 -0
  67. package/dist/interface/js/pinia.CuC5ZfNs.0.0.50-internal.1.js +5 -0
  68. package/dist/interface/js/primelocale.Bga3dOQu.0.0.50-internal.1.js +1 -0
  69. package/dist/interface/js/primevue.DmwjJ4xV.0.0.50-internal.1.js +142 -0
  70. package/dist/interface/{qrcode.BixA_YE2.0.0.49.js → js/qrcode.DGZO3j1c.0.0.50-internal.1.js} +1 -1
  71. package/dist/interface/js/react-dnd-touch-backend.CEGHlD-T.0.0.50-internal.1.js +1 -0
  72. package/dist/interface/js/refresh-rounded.D0keXzBc.0.0.50-internal.1.js +1 -0
  73. package/dist/interface/js/rxjs.CiDbFOB0.0.0.50-internal.1.js +3 -0
  74. package/dist/interface/js/socket.io-client.BPcXPAHG.0.0.50-internal.1.js +1 -0
  75. package/dist/interface/js/socket.io-parser.DSGzrW_l.0.0.50-internal.1.js +1 -0
  76. package/dist/interface/js/system.BKlEObmx.0.0.50-internal.1.js +1 -0
  77. package/dist/interface/js/trash-fill.BDFILs86.0.0.50-internal.1.js +1 -0
  78. package/dist/interface/{unidragger.C8ueS-PW.0.0.49.js → js/unidragger.DcxsxHCS.0.0.50-internal.1.js} +1 -1
  79. package/dist/interface/js/uuid.C6aID195.0.0.50-internal.1.js +1 -0
  80. package/dist/interface/js/vee-validate.BGRg3oQ8.0.0.50-internal.1.js +5 -0
  81. package/dist/interface/js/vue-chartjs.B9yk2de7.0.0.50-internal.1.js +1 -0
  82. package/dist/interface/js/vue-i18n.DXDZITpf.0.0.50-internal.1.js +5 -0
  83. package/dist/interface/js/vue-inline-svg.BDYaTfbi.0.0.50-internal.1.js +1 -0
  84. package/dist/interface/js/vue-router.CFEDA008.0.0.50-internal.1.js +5 -0
  85. package/dist/interface/js/vue-zoomable.zqTafMgD.0.0.50-internal.1.js +1 -0
  86. package/dist/interface/js/vue.l0sNRNKZ.0.0.50-internal.1.js +1 -0
  87. package/dist/interface/js/vue3-dnd.BxM3dbYs.0.0.50-internal.1.js +1 -0
  88. package/dist/interface/js/zod.SKKegNRO.0.0.50-internal.1.js +1 -0
  89. package/dist/interface/js/zoom-out.B6SY9IIj.0.0.50-internal.1.js +1 -0
  90. package/dist/interface/manifest.webmanifest +1 -1
  91. package/dist/interface/pwa/favicon-32.ico +0 -0
  92. package/dist/interface/pwa/favicon-48.ico +0 -0
  93. package/dist/interface/sw.js +1 -1
  94. package/dist/server/package.json +57 -45
  95. package/dist/server/requirements.txt +12 -11
  96. package/dist/server/src/__init__.py +0 -0
  97. package/dist/server/src/_camera_ui_tools/__init__.py +0 -0
  98. package/dist/server/src/_camera_ui_tools/camera_ui_common/__init__.py +28 -0
  99. package/dist/server/src/_camera_ui_tools/camera_ui_common/camera_utils/utils.py +52 -0
  100. package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/__init__.py +0 -0
  101. package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/object_path.py +198 -0
  102. package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/reactive.py +42 -0
  103. package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/signal_handler.py +92 -0
  104. package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/subscribed.py +21 -0
  105. package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/task.py +39 -0
  106. package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/thread.py +10 -0
  107. package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/utils.py +91 -0
  108. package/dist/server/src/_camera_ui_tools/camera_ui_common/logger_service/__init__.py +0 -0
  109. package/dist/server/src/_camera_ui_tools/camera_ui_common/logger_service/ansicolor.py +62 -0
  110. package/dist/server/src/_camera_ui_tools/camera_ui_common/logger_service/logger.py +178 -0
  111. package/dist/server/src/_camera_ui_tools/camera_ui_common/logger_service/test.py +116 -0
  112. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/__init__.py +350 -0
  113. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/__init__.py +0 -0
  114. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/base.py +237 -0
  115. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/client.py +256 -0
  116. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/connection.py +784 -0
  117. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/errors.py +745 -0
  118. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/messaging.py +57 -0
  119. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/rpc.py +227 -0
  120. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/rpc_generator.py +584 -0
  121. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/constants.py +96 -0
  122. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/typings.py +218 -0
  123. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/__init__.py +0 -0
  124. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/connection_state.py +86 -0
  125. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/logger.py +30 -0
  126. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/metrics.py +152 -0
  127. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/packer.py +20 -0
  128. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/routing.py +75 -0
  129. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/rpc.py +177 -0
  130. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/subscriptions.py +24 -0
  131. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/tasks.py +39 -0
  132. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/uid.py +37 -0
  133. package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/validate.py +119 -0
  134. package/dist/server/src/_camera_ui_tools/camera_ui_types/__init__.py +1360 -0
  135. package/dist/server/src/_camera_ui_tools/camera_ui_types/hybrid_observer.py +338 -0
  136. package/dist/server/src/_camera_ui_tools/camera_ui_types/test.py +196 -0
  137. package/dist/server/src/api/controllers/auth.controller.d.ts +2 -2
  138. package/dist/server/src/api/controllers/auth.controller.js +49 -43
  139. package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
  140. package/dist/server/src/api/controllers/backup.controller.js +1 -2
  141. package/dist/server/src/api/controllers/backup.controller.js.map +1 -1
  142. package/dist/server/src/api/controllers/cameras.controller.d.ts +13 -11
  143. package/dist/server/src/api/controllers/cameras.controller.js +314 -105
  144. package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
  145. package/dist/server/src/api/controllers/plugins.controller.d.ts +8 -8
  146. package/dist/server/src/api/controllers/plugins.controller.js +208 -244
  147. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  148. package/dist/server/src/api/controllers/system.controller.d.ts +1 -0
  149. package/dist/server/src/api/controllers/system.controller.js +22 -8
  150. package/dist/server/src/api/controllers/system.controller.js.map +1 -1
  151. package/dist/server/src/api/controllers/users.controller.d.ts +2 -2
  152. package/dist/server/src/api/controllers/users.controller.js +13 -25
  153. package/dist/server/src/api/controllers/users.controller.js.map +1 -1
  154. package/dist/server/src/api/database/checks.js +2 -2
  155. package/dist/server/src/api/database/checks.js.map +1 -1
  156. package/dist/server/src/api/database/index.d.ts +4 -7
  157. package/dist/server/src/api/database/index.js +59 -86
  158. package/dist/server/src/api/database/index.js.map +1 -1
  159. package/dist/server/src/api/database/migration.js +5 -141
  160. package/dist/server/src/api/database/migration.js.map +1 -1
  161. package/dist/server/src/api/database/selfcheck.js +5 -5
  162. package/dist/server/src/api/database/selfcheck.js.map +1 -1
  163. package/dist/server/src/api/database/types.d.ts +17 -25
  164. package/dist/server/src/api/go2rtc/api/discover.d.ts +30 -0
  165. package/dist/server/src/api/go2rtc/api/discover.js +162 -0
  166. package/dist/server/src/api/go2rtc/api/discover.js.map +1 -0
  167. package/dist/server/src/api/go2rtc/api/index.d.ts +1 -1
  168. package/dist/server/src/api/go2rtc/api/index.js +15 -4
  169. package/dist/server/src/api/go2rtc/api/index.js.map +1 -1
  170. package/dist/server/src/api/go2rtc/api/streams.d.ts +3 -1
  171. package/dist/server/src/api/go2rtc/api/streams.js +66 -9
  172. package/dist/server/src/api/go2rtc/api/streams.js.map +1 -1
  173. package/dist/server/src/api/go2rtc/index.d.ts +2 -0
  174. package/dist/server/src/api/go2rtc/index.js +3 -0
  175. package/dist/server/src/api/go2rtc/index.js.map +1 -1
  176. package/dist/server/src/api/go2rtc/queue.js +3 -3
  177. package/dist/server/src/api/go2rtc/queue.js.map +1 -1
  178. package/dist/server/src/api/go2rtc/types.d.ts +66 -11
  179. package/dist/server/src/api/index.d.ts +4 -0
  180. package/dist/server/src/api/index.js +45 -9
  181. package/dist/server/src/api/index.js.map +1 -1
  182. package/dist/server/src/api/middlewares/authPermission.middleware.d.ts +1 -0
  183. package/dist/server/src/api/middlewares/authPermission.middleware.js +11 -2
  184. package/dist/server/src/api/middlewares/authPermission.middleware.js.map +1 -1
  185. package/dist/server/src/api/middlewares/authValidation.middleware.js +20 -12
  186. package/dist/server/src/api/middlewares/authValidation.middleware.js.map +1 -1
  187. package/dist/server/src/api/middlewares/pagination.middleware.js +45 -53
  188. package/dist/server/src/api/middlewares/pagination.middleware.js.map +1 -1
  189. package/dist/server/src/api/plugins/proxy.plugin.d.ts +14 -0
  190. package/dist/server/src/api/plugins/proxy.plugin.js +200 -0
  191. package/dist/server/src/api/plugins/proxy.plugin.js.map +1 -0
  192. package/dist/server/src/api/routes/cameras.routes.js +56 -30
  193. package/dist/server/src/api/routes/cameras.routes.js.map +1 -1
  194. package/dist/server/src/api/routes/plugins.routes.js +65 -63
  195. package/dist/server/src/api/routes/plugins.routes.js.map +1 -1
  196. package/dist/server/src/api/routes/system.routes.js +7 -1
  197. package/dist/server/src/api/routes/system.routes.js.map +1 -1
  198. package/dist/server/src/api/routes/users.routes.js +8 -8
  199. package/dist/server/src/api/routes/users.routes.js.map +1 -1
  200. package/dist/server/src/api/schemas/backup.schema.d.ts +3 -3
  201. package/dist/server/src/api/schemas/backup.schema.js +1 -1
  202. package/dist/server/src/api/schemas/backup.schema.js.map +1 -1
  203. package/dist/server/src/api/schemas/cameras.schema.d.ts +1413 -529
  204. package/dist/server/src/api/schemas/cameras.schema.js +228 -182
  205. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  206. package/dist/server/src/api/schemas/config.schema.d.ts +29 -41
  207. package/dist/server/src/api/schemas/config.schema.js +10 -21
  208. package/dist/server/src/api/schemas/config.schema.js.map +1 -1
  209. package/dist/server/src/api/schemas/go2rtc.schema.d.ts +194 -162
  210. package/dist/server/src/api/schemas/go2rtc.schema.js +33 -58
  211. package/dist/server/src/api/schemas/go2rtc.schema.js.map +1 -1
  212. package/dist/server/src/api/schemas/plugins.schema.d.ts +17 -17
  213. package/dist/server/src/api/schemas/plugins.schema.js +1 -1
  214. package/dist/server/src/api/schemas/plugins.schema.js.map +1 -1
  215. package/dist/server/src/api/schemas/storage.schema.d.ts +22 -0
  216. package/dist/server/src/api/schemas/storage.schema.js +5 -0
  217. package/dist/server/src/api/schemas/storage.schema.js.map +1 -0
  218. package/dist/server/src/api/schemas/system.schema.d.ts +171 -3
  219. package/dist/server/src/api/schemas/system.schema.js +30 -3
  220. package/dist/server/src/api/schemas/system.schema.js.map +1 -1
  221. package/dist/server/src/api/schemas/users.schema.d.ts +98 -254
  222. package/dist/server/src/api/schemas/users.schema.js +6 -6
  223. package/dist/server/src/api/schemas/users.schema.js.map +1 -1
  224. package/dist/server/src/api/services/auth.service.d.ts +5 -5
  225. package/dist/server/src/api/services/auth.service.js +26 -35
  226. package/dist/server/src/api/services/auth.service.js.map +1 -1
  227. package/dist/server/src/api/services/cameras.service.d.ts +11 -16
  228. package/dist/server/src/api/services/cameras.service.js +143 -310
  229. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  230. package/dist/server/src/api/services/plugins.service.d.ts +3 -1
  231. package/dist/server/src/api/services/plugins.service.js +48 -50
  232. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  233. package/dist/server/src/api/services/users.service.d.ts +1 -0
  234. package/dist/server/src/api/services/users.service.js +20 -14
  235. package/dist/server/src/api/services/users.service.js.map +1 -1
  236. package/dist/server/src/api/types/index.d.ts +57 -46
  237. package/dist/server/src/api/types/index.js +0 -4
  238. package/dist/server/src/api/types/index.js.map +1 -1
  239. package/dist/server/src/api/utils/cert.d.ts +5 -1
  240. package/dist/server/src/api/utils/cert.js +24 -26
  241. package/dist/server/src/api/utils/cert.js.map +1 -1
  242. package/dist/server/src/api/utils/constants.d.ts +4 -2
  243. package/dist/server/src/api/utils/constants.js +4 -2
  244. package/dist/server/src/api/utils/constants.js.map +1 -1
  245. package/dist/server/src/api/utils/fetch.d.ts +1 -1
  246. package/dist/server/src/api/utils/fetch.js +2 -2
  247. package/dist/server/src/api/utils/fetch.js.map +1 -1
  248. package/dist/server/src/api/websocket/index.d.ts +1 -0
  249. package/dist/server/src/api/websocket/index.js +14 -9
  250. package/dist/server/src/api/websocket/index.js.map +1 -1
  251. package/dist/server/src/api/websocket/nsp/logs.d.ts +10 -2
  252. package/dist/server/src/api/websocket/nsp/logs.js +75 -27
  253. package/dist/server/src/api/websocket/nsp/logs.js.map +1 -1
  254. package/dist/server/src/api/websocket/nsp/metrics.d.ts +20 -12
  255. package/dist/server/src/api/websocket/nsp/metrics.js +188 -117
  256. package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -1
  257. package/dist/server/src/api/websocket/nsp/plugins.d.ts +1 -1
  258. package/dist/server/src/api/websocket/nsp/plugins.js +3 -5
  259. package/dist/server/src/api/websocket/nsp/plugins.js.map +1 -1
  260. package/dist/server/src/api/websocket/nsp/server.js +6 -0
  261. package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
  262. package/dist/server/src/api/websocket/types.d.ts +4 -2
  263. package/dist/server/src/api.d.ts +3 -4
  264. package/dist/server/src/api.js +13 -13
  265. package/dist/server/src/api.js.map +1 -1
  266. package/dist/server/src/camera/classes.d.ts +2 -0
  267. package/dist/server/src/camera/classes.js +24 -0
  268. package/dist/server/src/camera/classes.js.map +1 -0
  269. package/dist/server/src/camera/controller.d.ts +30 -18
  270. package/dist/server/src/camera/controller.js +236 -202
  271. package/dist/server/src/camera/controller.js.map +1 -1
  272. package/dist/server/src/camera/device.d.ts +34 -0
  273. package/dist/server/src/camera/device.js +327 -0
  274. package/dist/server/src/camera/device.js.map +1 -0
  275. package/dist/server/src/camera/frameWorker.d.ts +32 -31
  276. package/dist/server/src/camera/frameWorker.js +257 -247
  277. package/dist/server/src/camera/frameWorker.js.map +1 -1
  278. package/dist/server/src/camera/index.d.ts +92 -0
  279. package/dist/server/src/camera/index.js +531 -0
  280. package/dist/server/src/camera/index.js.map +1 -0
  281. package/dist/server/src/camera/interfaces.d.ts +17 -0
  282. package/dist/server/src/camera/interfaces.js +99 -0
  283. package/dist/server/src/camera/interfaces.js.map +1 -0
  284. package/dist/server/src/camera/iou.d.ts +2 -0
  285. package/dist/server/src/camera/iou.js +123 -0
  286. package/dist/server/src/camera/iou.js.map +1 -0
  287. package/dist/server/src/camera/polygon.d.ts +4 -0
  288. package/dist/server/src/camera/polygon.js +192 -0
  289. package/dist/server/src/camera/polygon.js.map +1 -0
  290. package/dist/server/src/camera/python/__init__.py +0 -0
  291. package/dist/server/src/camera/python/classes.py +41 -0
  292. package/dist/server/src/camera/python/interfaces.py +130 -0
  293. package/dist/server/src/camera/python/iou.py +158 -0
  294. package/dist/server/src/camera/python/polygon.py +230 -0
  295. package/dist/server/src/camera/python/typings.py +50 -0
  296. package/dist/server/src/camera/python/video_frame.py +143 -0
  297. package/dist/server/src/camera/session.d.ts +37 -0
  298. package/dist/server/src/camera/session.js +160 -0
  299. package/dist/server/src/camera/session.js.map +1 -0
  300. package/dist/server/src/camera/streaming/fmp4-session.d.ts +17 -0
  301. package/dist/server/src/camera/streaming/fmp4-session.js +308 -0
  302. package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -0
  303. package/dist/server/src/camera/streaming/peer-connection.d.ts +26 -0
  304. package/dist/server/src/camera/streaming/peer-connection.js +213 -0
  305. package/dist/server/src/camera/streaming/peer-connection.js.map +1 -0
  306. package/dist/server/src/camera/streaming/rtsp-session.d.ts +19 -0
  307. package/dist/server/src/camera/streaming/rtsp-session.js +253 -0
  308. package/dist/server/src/camera/streaming/rtsp-session.js.map +1 -0
  309. package/dist/server/src/camera/streaming/webrtc-connection.d.ts +44 -0
  310. package/dist/server/src/camera/streaming/webrtc-connection.js +177 -0
  311. package/dist/server/src/camera/streaming/webrtc-connection.js.map +1 -0
  312. package/dist/server/src/camera/streaming/werift-session.d.ts +19 -0
  313. package/dist/server/src/camera/streaming/werift-session.js +246 -0
  314. package/dist/server/src/camera/streaming/werift-session.js.map +1 -0
  315. package/dist/server/src/camera/types.d.ts +16 -10
  316. package/dist/server/src/camera/utils.d.ts +9 -0
  317. package/dist/server/src/camera/utils.js +416 -0
  318. package/dist/server/src/camera/utils.js.map +1 -0
  319. package/dist/server/src/camera/videoFrame.d.ts +18 -0
  320. package/dist/server/src/camera/videoFrame.js +88 -0
  321. package/dist/server/src/camera/videoFrame.js.map +1 -0
  322. package/dist/server/src/cloud/index.d.ts +12 -0
  323. package/dist/server/src/cloud/index.js +49 -0
  324. package/dist/server/src/cloud/index.js.map +1 -0
  325. package/dist/server/src/cloud/remote/cloudflare.d.ts +7 -0
  326. package/dist/server/src/cloud/remote/cloudflare.js +12 -0
  327. package/dist/server/src/cloud/remote/cloudflare.js.map +1 -0
  328. package/dist/server/src/cloud/remote/upnp.d.ts +7 -0
  329. package/dist/server/src/cloud/remote/upnp.js +12 -0
  330. package/dist/server/src/cloud/remote/upnp.js.map +1 -0
  331. package/dist/server/src/cloud/remote/utils.d.ts +3 -0
  332. package/dist/server/src/cloud/remote/utils.js +20 -0
  333. package/dist/server/src/cloud/remote/utils.js.map +1 -0
  334. package/dist/server/src/cloud/types.d.ts +15 -0
  335. package/dist/server/src/cloud/types.js +11 -0
  336. package/dist/server/src/cloud/types.js.map +1 -0
  337. package/dist/server/src/decoder/child.d.ts +1 -0
  338. package/dist/server/src/decoder/child.js +749 -0
  339. package/dist/server/src/decoder/child.js.map +1 -0
  340. package/dist/server/src/decoder/imageUtils.d.ts +22 -0
  341. package/dist/server/src/decoder/imageUtils.js +196 -0
  342. package/dist/server/src/decoder/imageUtils.js.map +1 -0
  343. package/dist/server/src/decoder/manager.d.ts +19 -0
  344. package/dist/server/src/decoder/manager.js +208 -0
  345. package/dist/server/src/decoder/manager.js.map +1 -0
  346. package/dist/server/src/decoder/python/__init__.py +0 -0
  347. package/dist/server/src/decoder/python/child.py +903 -0
  348. package/dist/server/src/decoder/python/image_utils.py +196 -0
  349. package/dist/server/src/decoder/python/pool.py +45 -0
  350. package/dist/server/src/decoder/python/typings.py +57 -0
  351. package/dist/server/src/decoder/python/utils.py +70 -0
  352. package/dist/server/src/decoder/types.d.ts +23 -0
  353. package/dist/server/src/decoder/types.js.map +1 -0
  354. package/dist/server/src/decoder/utils.d.ts +13 -0
  355. package/dist/server/src/decoder/utils.js +45 -0
  356. package/dist/server/src/decoder/utils.js.map +1 -0
  357. package/dist/server/src/decoder/wasm/build/decoder.d.ts +43 -0
  358. package/dist/server/src/decoder/wasm/build/decoder.js +108 -0
  359. package/dist/server/src/decoder/wasm/build/decoder.wasm +0 -0
  360. package/dist/server/src/decoder/worker.d.ts +1 -0
  361. package/dist/server/src/decoder/worker.js +79 -0
  362. package/dist/server/src/decoder/worker.js.map +1 -0
  363. package/dist/server/src/go2rtc/index.d.ts +1 -0
  364. package/dist/server/src/go2rtc/index.js +27 -9
  365. package/dist/server/src/go2rtc/index.js.map +1 -1
  366. package/dist/server/src/go2rtc/types.d.ts +5 -4
  367. package/dist/server/src/go2rtc/types.js +6 -2
  368. package/dist/server/src/go2rtc/types.js.map +1 -1
  369. package/dist/server/src/main.js +19 -5
  370. package/dist/server/src/main.js.map +1 -1
  371. package/dist/server/src/manager/coreManager.d.ts +16 -0
  372. package/dist/server/src/manager/coreManager.js +95 -0
  373. package/dist/server/src/manager/coreManager.js.map +1 -0
  374. package/dist/server/src/manager/deviceManager.d.ts +12 -0
  375. package/dist/server/src/manager/deviceManager.js +130 -0
  376. package/dist/server/src/manager/deviceManager.js.map +1 -0
  377. package/dist/server/src/manager/types.d.ts +15 -0
  378. package/dist/server/src/manager/types.js +2 -0
  379. package/dist/server/src/manager/types.js.map +1 -0
  380. package/dist/server/src/plugins/index.d.ts +3 -1
  381. package/dist/server/src/plugins/index.js +42 -21
  382. package/dist/server/src/plugins/index.js.map +1 -1
  383. package/dist/server/src/plugins/plugin.d.ts +3 -3
  384. package/dist/server/src/plugins/plugin.js +13 -20
  385. package/dist/server/src/plugins/plugin.js.map +1 -1
  386. package/dist/server/src/plugins/runtime/base.d.ts +54 -0
  387. package/dist/server/src/plugins/runtime/base.js +223 -0
  388. package/dist/server/src/plugins/runtime/base.js.map +1 -0
  389. package/dist/server/src/plugins/runtime/index.d.ts +5 -0
  390. package/dist/server/src/plugins/runtime/index.js +13 -0
  391. package/dist/server/src/plugins/runtime/index.js.map +1 -0
  392. package/dist/server/src/plugins/runtime/node/child.d.ts +22 -0
  393. package/dist/server/src/plugins/runtime/node/child.js +152 -0
  394. package/dist/server/src/plugins/runtime/node/child.js.map +1 -0
  395. package/dist/server/src/plugins/runtime/node/index.d.ts +7 -0
  396. package/dist/server/src/plugins/runtime/node/index.js +54 -0
  397. package/dist/server/src/plugins/runtime/node/index.js.map +1 -0
  398. package/dist/server/src/plugins/runtime/node/plugin.d.ts +24 -0
  399. package/dist/server/src/plugins/runtime/node/plugin.js +128 -0
  400. package/dist/server/src/plugins/runtime/node/plugin.js.map +1 -0
  401. package/dist/server/src/plugins/runtime/node/pluginApi.d.ts +16 -0
  402. package/dist/server/src/plugins/runtime/node/pluginApi.js +18 -0
  403. package/dist/server/src/plugins/runtime/node/pluginApi.js.map +1 -0
  404. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.d.ts +25 -0
  405. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +230 -0
  406. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -0
  407. package/dist/server/src/plugins/runtime/node/proxy/coreManager.d.ts +16 -0
  408. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +98 -0
  409. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -0
  410. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.d.ts +19 -0
  411. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js +144 -0
  412. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js.map +1 -0
  413. package/dist/server/src/plugins/runtime/node/storage.d.ts +34 -0
  414. package/dist/server/src/plugins/runtime/node/storage.js +313 -0
  415. package/dist/server/src/plugins/runtime/node/storage.js.map +1 -0
  416. package/dist/server/src/plugins/runtime/node/storageController.d.ts +18 -0
  417. package/dist/server/src/plugins/runtime/node/storageController.js +67 -0
  418. package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -0
  419. package/dist/server/src/plugins/runtime/python/__init__.py +0 -0
  420. package/dist/server/src/plugins/runtime/python/child.py +248 -0
  421. package/dist/server/src/plugins/runtime/python/index.d.ts +9 -0
  422. package/dist/server/src/plugins/runtime/python/index.js +57 -0
  423. package/dist/server/src/plugins/runtime/python/index.js.map +1 -0
  424. package/dist/server/src/plugins/runtime/python/namespaces.py +101 -0
  425. package/dist/server/src/plugins/runtime/python/plugin.py +155 -0
  426. package/dist/server/src/plugins/runtime/python/plugin_api.py +29 -0
  427. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +1732 -0
  428. package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +126 -0
  429. package/dist/server/src/plugins/runtime/python/proxy/device_manager.py +197 -0
  430. package/dist/server/src/plugins/runtime/python/schema.py +99 -0
  431. package/dist/server/src/plugins/runtime/python/storage.py +353 -0
  432. package/dist/server/src/plugins/runtime/python/storage_controller.py +102 -0
  433. package/dist/server/src/plugins/runtime/python/typings.py +195 -0
  434. package/dist/server/src/plugins/schema.d.ts +27 -34
  435. package/dist/server/src/plugins/schema.js +358 -369
  436. package/dist/server/src/plugins/schema.js.map +1 -1
  437. package/dist/server/src/plugins/types.d.ts +43 -1
  438. package/dist/server/src/plugins/types.js +16 -0
  439. package/dist/server/src/plugins/types.js.map +1 -1
  440. package/dist/server/src/plugins/worker.d.ts +12 -31
  441. package/dist/server/src/plugins/worker.js +89 -343
  442. package/dist/server/src/plugins/worker.js.map +1 -1
  443. package/dist/server/src/rpc/index.d.ts +32 -0
  444. package/dist/server/src/rpc/index.js +103 -0
  445. package/dist/server/src/rpc/index.js.map +1 -0
  446. package/dist/server/src/rpc/namespaces.d.ts +35 -0
  447. package/dist/server/src/rpc/namespaces.js +42 -0
  448. package/dist/server/src/rpc/namespaces.js.map +1 -0
  449. package/dist/server/src/{nats → rpc}/server.d.ts +6 -2
  450. package/dist/server/src/{nats → rpc}/server.js +76 -55
  451. package/dist/server/src/rpc/server.js.map +1 -0
  452. package/dist/server/src/rpc/types.d.ts +111 -0
  453. package/dist/server/src/rpc/types.js +2 -0
  454. package/dist/server/src/{nats → rpc}/types.js.map +1 -1
  455. package/dist/server/src/{nats → rpc}/utils.d.ts +1 -1
  456. package/dist/server/src/rpc/utils.js.map +1 -0
  457. package/dist/server/src/services/config/constants.js +12 -48
  458. package/dist/server/src/services/config/constants.js.map +1 -1
  459. package/dist/server/src/services/config/defaults.d.ts +12 -0
  460. package/dist/server/src/services/config/defaults.js +55 -0
  461. package/dist/server/src/services/config/defaults.js.map +1 -0
  462. package/dist/server/src/services/config/index.d.ts +57 -9
  463. package/dist/server/src/services/config/index.js +277 -130
  464. package/dist/server/src/services/config/index.js.map +1 -1
  465. package/dist/server/src/services/config/types.d.ts +10 -4
  466. package/dist/server/src/types.d.ts +3 -0
  467. package/dist/server/src/utils/path.d.ts +5 -0
  468. package/dist/server/src/utils/path.js +12 -0
  469. package/dist/server/src/utils/path.js.map +1 -0
  470. package/dist/server/src/utils/pythonInstaller.d.ts +46 -0
  471. package/dist/server/src/utils/pythonInstaller.js +463 -0
  472. package/dist/server/src/utils/pythonInstaller.js.map +1 -0
  473. package/package.json +57 -45
  474. package/types/fastify.d.ts +14 -0
  475. package/dist/interface/@intlify.Do1-T-x0.0.0.49.js +0 -15
  476. package/dist/interface/@mdi.CbjpODVZ.0.0.49.js +0 -1
  477. package/dist/interface/@tanstack.CgZ4BVuY.0.0.49.js +0 -1
  478. package/dist/interface/@vue.DeX8WChi.0.0.49.js +0 -17
  479. package/dist/interface/@vueform.WCJNykTK.0.0.49.js +0 -1
  480. package/dist/interface/@vueuse.fmA4o7MO.0.0.49.js +0 -1
  481. package/dist/interface/Account.D_hgF7as.0.0.49.js +0 -1
  482. package/dist/interface/Adminpanel.Cr2ysRnk.0.0.49.js +0 -2
  483. package/dist/interface/Appearance.DJPnnakw.0.0.49.js +0 -1
  484. package/dist/interface/Backup.DWrnTw65.0.0.49.js +0 -1
  485. package/dist/interface/Camera.Cm8bv5Jw.0.0.49.js +0 -1
  486. package/dist/interface/Cameras.BdMnnB_B.0.0.49.js +0 -1
  487. package/dist/interface/Camview.CvyTACeS.0.0.49.js +0 -1
  488. package/dist/interface/Config.R58trs6R.0.0.49.js +0 -1
  489. package/dist/interface/Console.ByS6OcfG.0.0.49.js +0 -4
  490. package/dist/interface/FirstSteps.BSZVBND8.0.0.49.js +0 -1
  491. package/dist/interface/NewCamera.CpKY8-_z.0.0.49.js +0 -469
  492. package/dist/interface/Plugin.ucDXXC6d.0.0.49.js +0 -1
  493. package/dist/interface/Plugins.Bl6Yy3fd.0.0.49.js +0 -1
  494. package/dist/interface/Recordings.Bm-_HDqk.0.0.49.js +0 -1
  495. package/dist/interface/Recordings.CVFqRJTQ.0.0.49.js +0 -1
  496. package/dist/interface/Settings.ClbXnv3j.0.0.49.js +0 -1
  497. package/dist/interface/System.BE0hX95Q.0.0.49.js +0 -4
  498. package/dist/interface/User.Ih1R_8u4.0.0.49.js +0 -1
  499. package/dist/interface/VConfigEditor.vue_vue_type_script_setup_true_lang.CAHg6HiL.0.0.49.js +0 -2
  500. package/dist/interface/VConsole.B9yVZ89i.0.0.49.js +0 -1
  501. package/dist/interface/VPlayer.DWJVzwuw.0.0.49.js +0 -4
  502. package/dist/interface/VPluginCard.pJNHjHpP.0.0.49.js +0 -4
  503. package/dist/interface/ace-builds.S1varnlI.0.0.49.js +0 -970
  504. package/dist/interface/apexcharts.BQn4Fbzn.0.0.49.js +0 -838
  505. package/dist/interface/assets/@vueform.0.0.49.CroAHJs8.css +0 -1
  506. package/dist/interface/assets/@xterm.0.0.49.CFbL2ovg.css +0 -32
  507. package/dist/interface/assets/Account.0.0.49.Bnw6Lbtd.css +0 -1
  508. package/dist/interface/assets/Adminpanel.0.0.49.a3t1v3MB.css +0 -1
  509. package/dist/interface/assets/Camera.0.0.49.Br9s6-lM.css +0 -1
  510. package/dist/interface/assets/Cameras.0.0.49.Buf1Dgce.css +0 -1
  511. package/dist/interface/assets/Camview.0.0.49.B7Cja2ry.css +0 -1
  512. package/dist/interface/assets/Config.0.0.49.DNGo2krN.css +0 -1
  513. package/dist/interface/assets/Console.0.0.49.Bh8l9QnM.css +0 -1
  514. package/dist/interface/assets/FirstSteps.0.0.49.Mu8VPl13.css +0 -1
  515. package/dist/interface/assets/NewCamera.0.0.49.DtjxW0Pf.css +0 -1
  516. package/dist/interface/assets/Plugin.0.0.49.YIpAU1_n.css +0 -1
  517. package/dist/interface/assets/Plugins.0.0.49.DXSoO9M1.css +0 -1
  518. package/dist/interface/assets/Settings.0.0.49.CVmui2kE.css +0 -1
  519. package/dist/interface/assets/User.0.0.49.BiGtIFqt.css +0 -1
  520. package/dist/interface/assets/VConsole.0.0.49.BCqKHpmJ.css +0 -1
  521. package/dist/interface/assets/VPlayer.0.0.49.C4lm2rVR.css +0 -1
  522. package/dist/interface/assets/VPluginCard.0.0.49.C8Lj6X-J.css +0 -1
  523. package/dist/interface/assets/main.0.0.49.OJngntGT.css +0 -1
  524. package/dist/interface/assets/vue3-toastify.0.0.49.DHXAGmwn.css +0 -1
  525. package/dist/interface/assets/vuetify.0.0.49.Dua9WSqa.css +0 -5
  526. package/dist/interface/axios.DIsA03vz.0.0.49.js +0 -6
  527. package/dist/interface/backup.DO02r0Uq.0.0.49.js +0 -1
  528. package/dist/interface/dnd-core.De50QAoi.0.0.49.js +0 -1
  529. package/dist/interface/engine.io-client.BkCVneko.0.0.49.js +0 -1
  530. package/dist/interface/fast-deep-equal.Cba0yG7P.0.0.49.js +0 -1
  531. package/dist/interface/fonts/Inter/Inter-Regular.ttf +0 -0
  532. package/dist/interface/highlight.js.B_E0LW5C.0.0.49.js +0 -2
  533. package/dist/interface/hookable.B8xFkYCm.0.0.49.js +0 -1
  534. package/dist/interface/linkify-it.B6s2BWlj.0.0.49.js +0 -1
  535. package/dist/interface/main.BBe3SGhH.0.0.49.js +0 -4
  536. package/dist/interface/perfect-debounce.Cp2ysxOb.0.0.49.js +0 -1
  537. package/dist/interface/pinia.ggULzsrQ.0.0.49.js +0 -5
  538. package/dist/interface/plugins.D11FBqVV.0.0.49.js +0 -1
  539. package/dist/interface/react-dnd-touch-backend.Bu6wFEmw.0.0.49.js +0 -1
  540. package/dist/interface/rxjs.BoFuGUYG.0.0.49.js +0 -3
  541. package/dist/interface/socket.io-client.DkEQDv7C.0.0.49.js +0 -1
  542. package/dist/interface/socket.io-parser.DIURoCw8.0.0.49.js +0 -1
  543. package/dist/interface/system.D_LabhBl.0.0.49.js +0 -1
  544. package/dist/interface/types.Cz9TaZAP.0.0.49.js +0 -1
  545. package/dist/interface/utils.mAKpSMLY.0.0.49.js +0 -1
  546. package/dist/interface/uuid.Ch9TGLTe.0.0.49.js +0 -1
  547. package/dist/interface/vee-validate.8pUAwQ7T.0.0.49.js +0 -5
  548. package/dist/interface/vue-i18n.CBqdKRmG.0.0.49.js +0 -5
  549. package/dist/interface/vue-inline-svg.ZWpe_tFT.0.0.49.js +0 -1
  550. package/dist/interface/vue-router.DvFvaoP2.0.0.49.js +0 -5
  551. package/dist/interface/vue3-apexcharts.BHSDC9pf.0.0.49.js +0 -1
  552. package/dist/interface/vue3-dnd.DbCy3Qbj.0.0.49.js +0 -1
  553. package/dist/interface/vue3-toastify.JJyrPHKk.0.0.49.js +0 -1
  554. package/dist/interface/vuetify.kkqUjVJA.0.0.49.js +0 -5
  555. package/dist/interface/zod.bkdEMpUp.0.0.49.js +0 -1
  556. package/dist/server/src/api/utils/cameraSource.d.ts +0 -6
  557. package/dist/server/src/api/utils/cameraSource.js +0 -51
  558. package/dist/server/src/api/utils/cameraSource.js.map +0 -1
  559. package/dist/server/src/api/websocket/go2rtc.d.ts +0 -21
  560. package/dist/server/src/api/websocket/go2rtc.js +0 -88
  561. package/dist/server/src/api/websocket/go2rtc.js.map +0 -1
  562. package/dist/server/src/api/websocket/nsp/proxy.d.ts +0 -27
  563. package/dist/server/src/api/websocket/nsp/proxy.js +0 -127
  564. package/dist/server/src/api/websocket/nsp/proxy.js.map +0 -1
  565. package/dist/server/src/nats/index.d.ts +0 -40
  566. package/dist/server/src/nats/index.js +0 -164
  567. package/dist/server/src/nats/index.js.map +0 -1
  568. package/dist/server/src/nats/proxy/cameraDevice.d.ts +0 -22
  569. package/dist/server/src/nats/proxy/cameraDevice.js +0 -249
  570. package/dist/server/src/nats/proxy/cameraDevice.js.map +0 -1
  571. package/dist/server/src/nats/proxy/coreManager.d.ts +0 -14
  572. package/dist/server/src/nats/proxy/coreManager.js +0 -68
  573. package/dist/server/src/nats/proxy/coreManager.js.map +0 -1
  574. package/dist/server/src/nats/proxy/deviceManager.d.ts +0 -14
  575. package/dist/server/src/nats/proxy/deviceManager.js +0 -101
  576. package/dist/server/src/nats/proxy/deviceManager.js.map +0 -1
  577. package/dist/server/src/nats/server.js.map +0 -1
  578. package/dist/server/src/nats/types.d.ts +0 -18
  579. package/dist/server/src/nats/utils.js.map +0 -1
  580. /package/dist/interface/assets/{Backup.0.0.49.CX0rT0QJ.css → SettingsBackup.CX0rT0QJ.0.0.50-internal.1.css} +0 -0
  581. /package/dist/interface/assets/{highlight.0.0.49.Ch2EwETz.css → highlight.Ch2EwETz.0.0.50-internal.1.css} +0 -0
  582. /package/dist/interface/assets/{logo-256.0.0.49.BCQk9H1-.png → logo-256.BCQk9H1-.0.0.50-internal.1.png} +0 -0
  583. /package/dist/interface/assets/{logo-512.0.0.49.DLKVOU2S.png → logo-512.DLKVOU2S.0.0.50-internal.1.png} +0 -0
  584. /package/dist/interface/assets/{logo.0.0.49.DmEiRk0z.png → logo.DmEiRk0z.0.0.50-internal.1.png} +0 -0
  585. /package/dist/interface/assets/{mode-json.0.0.49.Br7xisR1.js → mode-json.Br7xisR1.0.0.50-internal.1.js} +0 -0
  586. /package/dist/interface/assets/{mode-yaml.0.0.49.CIYL8U3d.js → mode-yaml.CIYL8U3d.0.0.50-internal.1.js} +0 -0
  587. /package/dist/interface/{@babel.l0sNRNKZ.0.0.49.js → js/@babel.l0sNRNKZ.0.0.50-internal.1.js} +0 -0
  588. /package/dist/interface/{@react-dnd.CcwRs9xb.0.0.49.js → js/@react-dnd.CcwRs9xb.0.0.50-internal.1.js} +0 -0
  589. /package/dist/interface/{@socket.io.Dkula2eQ.0.0.49.js → js/@socket.io.Dkula2eQ.0.0.50-internal.1.js} +0 -0
  590. /package/dist/interface/{birpc.l0sNRNKZ.0.0.49.js → js/birpc.l0sNRNKZ.0.0.50-internal.1.js} +0 -0
  591. /package/dist/interface/{compare-versions.DqEOhma6.0.0.49.js → js/compare-versions.DqEOhma6.0.0.50-internal.1.js} +0 -0
  592. /package/dist/interface/{dijkstrajs.C00ieaqj.0.0.49.js → js/dijkstrajs.C00ieaqj.0.0.50-internal.1.js} +0 -0
  593. /package/dist/interface/{engine.io-parser.BiEtp6m2.0.0.49.js → js/engine.io-parser.BiEtp6m2.0.0.50-internal.1.js} +0 -0
  594. /package/dist/interface/{entities.C20TfXL6.0.0.49.js → js/entities.C20TfXL6.0.0.50-internal.1.js} +0 -0
  595. /package/dist/interface/{ev-emitter.X5f1qa-c.0.0.49.js → js/ev-emitter.X5f1qa-c.0.0.50-internal.1.js} +0 -0
  596. /package/dist/interface/{get-size.D1dS-IaP.0.0.49.js → js/get-size.D1dS-IaP.0.0.50-internal.1.js} +0 -0
  597. /package/dist/interface/{vue.l0sNRNKZ.0.0.49.js → js/hookable.l0sNRNKZ.0.0.50-internal.1.js} +0 -0
  598. /package/dist/interface/{mdurl.k9Sl0PQj.0.0.49.js → js/mdurl.k9Sl0PQj.0.0.50-internal.1.js} +0 -0
  599. /package/dist/interface/{punycode.js.Dj65hjkv.0.0.49.js → js/punycode.js.Dj65hjkv.0.0.50-internal.1.js} +0 -0
  600. /package/dist/interface/{react-dnd-html5-backend.1HQjlkwI.0.0.49.js → js/react-dnd-html5-backend.1HQjlkwI.0.0.50-internal.1.js} +0 -0
  601. /package/dist/interface/{redux.BFxtlG_c.0.0.49.js → js/redux.BFxtlG_c.0.0.50-internal.1.js} +0 -0
  602. /package/dist/interface/{tslib.9k7AwCpt.0.0.49.js → js/tslib.9k7AwCpt.0.0.50-internal.1.js} +0 -0
  603. /package/dist/interface/{uc.micro.kMc2yuuw.0.0.49.js → js/uc.micro.kMc2yuuw.0.0.50-internal.1.js} +0 -0
  604. /package/dist/server/src/{nats → decoder}/types.js +0 -0
  605. /package/dist/server/src/{nats → rpc}/utils.js +0 -0
@@ -0,0 +1,144 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import { API_EVENT } from '../../../../api.js';
3
+ import { NamespaceManager } from '../../../../rpc/namespaces.js';
4
+ import { CameraDeviceProxy } from './cameraDevice.js';
5
+ export class DeviceManagerProxy extends EventEmitter {
6
+ #api;
7
+ #proxy;
8
+ #storageController;
9
+ #logger;
10
+ #plugin;
11
+ #initialized = false;
12
+ #requests;
13
+ #namespaces;
14
+ #devices = new Map();
15
+ constructor(proxy, api, storageController, plugin, logger) {
16
+ super();
17
+ this.#api = api;
18
+ this.#proxy = proxy;
19
+ this.#storageController = storageController;
20
+ this.#logger = logger;
21
+ this.#plugin = plugin;
22
+ this.#namespaces = {
23
+ ...NamespaceManager.deviceManagerNamespaces(),
24
+ ...NamespaceManager.pluginNamespaces(this.#plugin.id),
25
+ };
26
+ this.#api.once(API_EVENT.SHUTDOWN, this.#close.bind(this));
27
+ }
28
+ async init() {
29
+ if (this.#initialized) {
30
+ return;
31
+ }
32
+ this.#initialized = true;
33
+ this.#requests = this.#proxy.handleRequest(this.#namespaces.pluginDeviceManagerSubject, this.#onEventMessage.bind(this));
34
+ }
35
+ async getCamera(cameraIdOrName) {
36
+ let cameraDevice = await this.#getCameraDevice(cameraIdOrName);
37
+ if (!cameraDevice) {
38
+ const deviceManagerProxy = await this.#deviceManagerProxy();
39
+ const camera = await deviceManagerProxy.getCamera(cameraIdOrName, this.#plugin.id);
40
+ if (camera) {
41
+ cameraDevice = await this.#getCameraDevice(camera);
42
+ }
43
+ }
44
+ return cameraDevice;
45
+ }
46
+ async createCamera(cameraConfig) {
47
+ const deviceManagerProxy = await this.#deviceManagerProxy();
48
+ const camera = await deviceManagerProxy.createCamera(cameraConfig, this.#plugin.id);
49
+ const cameraDevice = await this.#getCameraDevice(camera);
50
+ return cameraDevice;
51
+ }
52
+ async updateCamera(cameraIdOrName, cameraConfig) {
53
+ const deviceManagerProxy = await this.#deviceManagerProxy();
54
+ const camera = await deviceManagerProxy.updateCamera(cameraIdOrName, cameraConfig, this.#plugin.id);
55
+ const cameraDevice = await this.#getCameraDevice(camera);
56
+ return cameraDevice;
57
+ }
58
+ async removeCamera(cameraIdOrName) {
59
+ const deviceManagerProxy = await this.#deviceManagerProxy();
60
+ const camera = await deviceManagerProxy.getCamera(cameraIdOrName, this.#plugin.id);
61
+ if (camera) {
62
+ await deviceManagerProxy.removeCamera(cameraIdOrName, this.#plugin.id);
63
+ this.#devices.delete(camera._id);
64
+ }
65
+ }
66
+ emit() {
67
+ return true;
68
+ }
69
+ async configureCameras(cameraDevices) {
70
+ await Promise.all(cameraDevices.map((cameraDevice) => this.#getCameraDevice(cameraDevice)));
71
+ }
72
+ async #deviceManagerProxy() {
73
+ return await this.#proxy.createRPCProxy(this.#namespaces.deviceManagerRpc);
74
+ }
75
+ async #onEventMessage(event) {
76
+ const message = event.data;
77
+ switch (message.type) {
78
+ case 'cameraSelected': {
79
+ const { camera, extension } = message.data;
80
+ const cameraDevice = await this.#getCameraDevice(camera);
81
+ super.emit(message.type, cameraDevice, extension);
82
+ break;
83
+ }
84
+ case 'cameraDeselected': {
85
+ const { camera, extension } = message.data;
86
+ super.emit(message.type, camera._id, extension);
87
+ const cameraDevice = this.#devices.get(camera._id);
88
+ await cameraDevice?.cleanup();
89
+ await this.#removeCameraStorage(camera._id);
90
+ this.#devices.delete(camera._id);
91
+ break;
92
+ }
93
+ }
94
+ }
95
+ async #getCameraDevice(cameraOrIdentifier) {
96
+ let cameraDevice;
97
+ if (typeof cameraOrIdentifier === 'string') {
98
+ cameraDevice = Array.from(this.#devices.values()).find((cameraDevice) => cameraDevice.id === cameraOrIdentifier || cameraDevice.name === cameraOrIdentifier);
99
+ }
100
+ else if (cameraOrIdentifier instanceof CameraDeviceProxy) {
101
+ cameraDevice = cameraOrIdentifier;
102
+ if (this.#devices.has(cameraDevice.id)) {
103
+ cameraDevice = this.#devices.get(cameraDevice.id);
104
+ }
105
+ else {
106
+ this.#devices.set(cameraDevice.id, cameraDevice);
107
+ }
108
+ }
109
+ else {
110
+ const camera = cameraOrIdentifier;
111
+ if (this.#devices.has(camera._id)) {
112
+ cameraDevice = this.#devices.get(camera._id);
113
+ }
114
+ else {
115
+ const cameraLogger = this.#logger.createLogger({ suffix: camera.name, loggerId: camera._id });
116
+ cameraDevice = new CameraDeviceProxy(this.#proxy, this.#api, camera, this.#plugin, cameraLogger);
117
+ this.#devices.set(camera._id, cameraDevice);
118
+ }
119
+ }
120
+ if (cameraDevice) {
121
+ await this.#createCameraStorage(cameraDevice.id);
122
+ await cameraDevice?.init();
123
+ }
124
+ return cameraDevice;
125
+ }
126
+ async #createCameraStorage(cameraId) {
127
+ await this.#storageController.createStorage('camera', cameraId);
128
+ }
129
+ async #removeCameraStorage(cameraId) {
130
+ await this.#storageController.removeStorage('camera', cameraId);
131
+ }
132
+ async #close() {
133
+ this.#initialized = false;
134
+ this.removeAllListeners();
135
+ this.#api.removeListener('shutdown', this.#close.bind(this));
136
+ this.#requests?.unsubscribe();
137
+ this.#requests = undefined;
138
+ await this.#disconnectRpc();
139
+ }
140
+ async #disconnectRpc() {
141
+ await this.#proxy.disconnectRPCConnection(this.#namespaces.deviceManagerRpc);
142
+ }
143
+ }
144
+ //# sourceMappingURL=deviceManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceManager.js","sourceRoot":"","sources":["../../../../../../../src/plugins/runtime/node/proxy/deviceManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { ClientInstance } from '@camera.ui/rpc-client';
2
+ import type { DeviceStorage as DeviceStorageInterface, FormSubmitResponse, JsonSchema, SchemaConfig } from '@camera.ui/types';
3
+ import type { RootDatabase } from 'lmdb';
4
+ import type { PluginInfo } from '../../types.js';
5
+ import type { PluginAPI } from './pluginApi.js';
6
+ export declare class DeviceStorage<T extends Record<string, any> = Record<string, any>> implements DeviceStorageInterface<T> {
7
+ #private;
8
+ schemas: JsonSchema[];
9
+ values: T;
10
+ constructor(api: PluginAPI, proxy: ClientInstance, plugin: PluginInfo, pluginDb: RootDatabase<Record<string, any>, 'config'>, instance: any, deviceId: string, schemas: JsonSchema[] | undefined, isPluginStorage: boolean);
11
+ getValue<T = string>(key: string): Promise<T> | undefined;
12
+ getValue<T = string>(key: string, defaultValue: T): Promise<T>;
13
+ setValue<T = string>(key: string, newValue: T): Promise<void>;
14
+ submitValue(key: string, newValue: any): Promise<FormSubmitResponse | void>;
15
+ hasValue(key: string): boolean;
16
+ getConfig(): Promise<SchemaConfig>;
17
+ setConfig(newConfig: T): Promise<void>;
18
+ addSchema(schema: JsonSchema): Promise<void>;
19
+ removeSchema(key: string): Promise<void>;
20
+ changeSchema(key: string, newSchema: Partial<JsonSchema>): Promise<void>;
21
+ getSchema<T>(key: string): T | undefined;
22
+ /**
23
+ * Check if a schema exists by its config path/key.
24
+ *
25
+ * @param path - The path to the schema to check.
26
+ * @returns True if the schema exists, false otherwise.
27
+ */
28
+ hasSchema(key: string): boolean;
29
+ destroy(): Promise<void>;
30
+ save(): Promise<void>;
31
+ updateSchema(instance: any, schemas?: JsonSchema[]): void;
32
+ registerStorage(): Promise<void>;
33
+ unregisterStorage(): Promise<void>;
34
+ }
@@ -0,0 +1,313 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { isEqual, mergeWith, structuredClone } from '@camera.ui/common/utils';
11
+ import { rpc } from '@camera.ui/rpc-common';
12
+ import objectPath from 'object-path';
13
+ import { API_EVENT } from '../../../api.js';
14
+ import { NamespaceManager } from '../../../rpc/namespaces.js';
15
+ import { generateConfigFromSchemas, getValueByKey, isButtonType, isSubmitType, removeCallbacksFromSchemas } from '../../schema.js';
16
+ export class DeviceStorage {
17
+ schemas;
18
+ values = {};
19
+ #deviceId;
20
+ #instance;
21
+ #api;
22
+ #proxy;
23
+ #plugin;
24
+ #pluginDb;
25
+ #storageNamespace;
26
+ #isPluginStorage;
27
+ constructor(api, proxy, plugin, pluginDb, instance, deviceId, schemas = [], isPluginStorage) {
28
+ this.schemas = schemas;
29
+ this.#api = api;
30
+ this.#proxy = proxy;
31
+ this.#plugin = plugin;
32
+ this.#pluginDb = pluginDb;
33
+ this.#instance = instance;
34
+ this.#deviceId = deviceId;
35
+ this.#isPluginStorage = isPluginStorage;
36
+ const namespaces = {
37
+ ...NamespaceManager.pluginCameraNamespaces(this.#plugin.id, this.#deviceId),
38
+ ...NamespaceManager.pluginNamespaces(this.#plugin.id),
39
+ };
40
+ this.#storageNamespace = !this.#isPluginStorage ? namespaces.cameraStorageRpc : namespaces.pluginStorageRpc;
41
+ this.#api.once(API_EVENT.SHUTDOWN, this.#close.bind(this));
42
+ }
43
+ getValue(key, defaultValue) {
44
+ const schema = this.schemas.find((schema) => schema.key === key);
45
+ const configValue = objectPath.get(this.values, key);
46
+ return schema?.onGet?.call(this.#instance) ?? configValue ?? schema?.defaultValue ?? defaultValue;
47
+ }
48
+ async setValue(key, newValue) {
49
+ const schema = this.schemas.find((schema) => schema.key === key);
50
+ if (schema) {
51
+ const oldValue = objectPath.get(this.values, key);
52
+ objectPath.set(this.values, key, newValue);
53
+ await schema.onSet?.call(this.#instance, newValue, oldValue);
54
+ if (this.#containsStorableSchema(schema)) {
55
+ await this.save();
56
+ }
57
+ }
58
+ }
59
+ async submitValue(key, newValue) {
60
+ const schema = this.schemas.find((schema) => schema.key === key);
61
+ if (schema?.type === 'submit') {
62
+ // objectPath.set(this.values, bracketsToDot(configPath), newValue);
63
+ return schema.onClick.call(this.#instance, newValue);
64
+ // if (this.#containsStorableSchema(schema)) {
65
+ // await this.save();
66
+ // }
67
+ }
68
+ }
69
+ hasValue(key) {
70
+ const configValue = objectPath.get(this.values, key);
71
+ return configValue !== undefined;
72
+ }
73
+ async getConfig() {
74
+ await this.#resolveOnGetFunctions(this.schemas);
75
+ const filteredSchema = removeCallbacksFromSchemas(this.schemas);
76
+ const schemaConfig = { schema: filteredSchema, config: this.values };
77
+ return schemaConfig;
78
+ }
79
+ async setConfig(newConfig) {
80
+ const oldConfig = structuredClone(this.values);
81
+ this.values = mergeWith(this.values, newConfig, (source, target) => {
82
+ if (Array.isArray(source)) {
83
+ return target;
84
+ }
85
+ });
86
+ await this.#triggerOnSetForChanges(oldConfig, this.values);
87
+ await this.save();
88
+ }
89
+ async addSchema(schema) {
90
+ let shouldSave = false;
91
+ const schemaExist = this.hasSchema(schema.key);
92
+ if (schemaExist) {
93
+ // this.schemas = this.schemas.map((s) => (s.key === schema.key ? schema : s));
94
+ throw new Error(`Schema with key ${schema.key} already exists`);
95
+ }
96
+ else {
97
+ this.schemas.push(schema);
98
+ }
99
+ await this.#resolveOnGetFunctions(schema);
100
+ if (this.#containsStorableSchema(schema)) {
101
+ shouldSave = true;
102
+ }
103
+ if (shouldSave) {
104
+ await this.save();
105
+ }
106
+ }
107
+ async removeSchema(key) {
108
+ const schema = this.schemas.find((schema) => schema.key === key);
109
+ this.schemas = this.schemas.filter((schema) => schema.key !== key);
110
+ objectPath.del(this.values, key);
111
+ if (schema && this.#containsStorableSchema(schema)) {
112
+ await this.save();
113
+ }
114
+ }
115
+ async changeSchema(key, newSchema) {
116
+ newSchema.key = key;
117
+ const schema = this.schemas.find((schema) => schema.key === newSchema.key);
118
+ if (schema) {
119
+ mergeWith(schema, newSchema, (source, target) => {
120
+ if (Array.isArray(source)) {
121
+ return target;
122
+ }
123
+ });
124
+ await this.#resolveOnGetFunctions(schema);
125
+ if (this.#containsStorableSchema(schema)) {
126
+ await this.save();
127
+ }
128
+ }
129
+ }
130
+ getSchema(key) {
131
+ return this.schemas.find((schema) => schema.key === key);
132
+ }
133
+ /**
134
+ * Check if a schema exists by its config path/key.
135
+ *
136
+ * @param path - The path to the schema to check.
137
+ * @returns True if the schema exists, false otherwise.
138
+ */
139
+ hasSchema(key) {
140
+ const schema = this.schemas.find((schema) => schema.key === key);
141
+ return !!schema;
142
+ }
143
+ async destroy() {
144
+ this.#api.removeListener(API_EVENT.SHUTDOWN, this.#close.bind(this));
145
+ const config = this.#pluginDb.get('config') ?? {};
146
+ delete config[this.#deviceId];
147
+ this.values = {};
148
+ await this.#pluginDb.put('config', config);
149
+ }
150
+ async save() {
151
+ const config = this.#pluginDb.get('config') ?? {};
152
+ const storableConfig = this.schemas.length ? this.#filterStorableValues(this.schemas) : this.values;
153
+ config[this.#deviceId] = storableConfig;
154
+ await this.#pluginDb.put('config', config);
155
+ }
156
+ // Internal method
157
+ updateSchema(instance, schemas = []) {
158
+ this.#instance = instance;
159
+ this.schemas = schemas;
160
+ this.#initializeStorage();
161
+ }
162
+ // Internal method
163
+ async registerStorage() {
164
+ await this.#proxy.registerRPCHandler(this.#storageNamespace, this);
165
+ }
166
+ // Internal method
167
+ async unregisterStorage() {
168
+ await this.#proxy.unregisterRPCHandler(this.#storageNamespace);
169
+ }
170
+ async #resolveOnGetFunctions(schemas) {
171
+ if (!Array.isArray(schemas)) {
172
+ schemas = [schemas];
173
+ }
174
+ for (const schema of schemas) {
175
+ if (!isButtonType(schema) && !isSubmitType(schema) && typeof schema.onGet === 'function') {
176
+ const schemaValue = await this.getValue(schema.key);
177
+ if (schemaValue !== undefined && schemaValue !== null) {
178
+ objectPath.set(this.values, schema.key, schemaValue);
179
+ }
180
+ }
181
+ }
182
+ }
183
+ async #triggerOnSetForChanges(oldConfig, newConfig) {
184
+ const promises = [];
185
+ for (const configKey in newConfig) {
186
+ const oldValue = getValueByKey(oldConfig, configKey);
187
+ const newValue = newConfig[configKey];
188
+ if (!isEqual(oldValue, newValue, true)) {
189
+ const schema = this.schemas.find((schema) => schema.key === configKey);
190
+ if (schema && !isSubmitType(schema) && typeof schema.onSet === 'function') {
191
+ promises.push(schema.onSet.call(this.#instance, newValue, oldValue));
192
+ }
193
+ }
194
+ }
195
+ await Promise.all(promises);
196
+ }
197
+ #filterStorableValues(schemas, result = {}) {
198
+ for (const schema of schemas) {
199
+ if (isButtonType(schema) || isSubmitType(schema)) {
200
+ continue;
201
+ }
202
+ if (schema.store) {
203
+ const configValue = getValueByKey(this.values, schema.key);
204
+ objectPath.set(result, schema.key, configValue);
205
+ }
206
+ }
207
+ return result;
208
+ }
209
+ #containsStorableSchema(schema) {
210
+ if (schema.type === 'button' || schema.type === 'submit') {
211
+ return false;
212
+ }
213
+ if ('store' in schema && schema.store) {
214
+ return true;
215
+ }
216
+ return false;
217
+ }
218
+ async #initializeStorage() {
219
+ const config = this.#pluginDb.get('config') ?? {};
220
+ const deviceConfig = config[this.#deviceId] ?? {};
221
+ const schemaConfig = generateConfigFromSchemas(this.schemas);
222
+ this.values = mergeWith(schemaConfig, deviceConfig, (source, target) => {
223
+ if (Array.isArray(source)) {
224
+ return target;
225
+ }
226
+ if (target === undefined) {
227
+ return source;
228
+ }
229
+ });
230
+ }
231
+ async #close() {
232
+ try {
233
+ await this.save();
234
+ await this.unregisterStorage();
235
+ }
236
+ catch {
237
+ //
238
+ }
239
+ }
240
+ }
241
+ __decorate([
242
+ rpc({ public: true }),
243
+ __metadata("design:type", Function),
244
+ __metadata("design:paramtypes", [String, Object]),
245
+ __metadata("design:returntype", Object)
246
+ ], DeviceStorage.prototype, "getValue", null);
247
+ __decorate([
248
+ rpc({ public: true }),
249
+ __metadata("design:type", Function),
250
+ __metadata("design:paramtypes", [String, Object]),
251
+ __metadata("design:returntype", Promise)
252
+ ], DeviceStorage.prototype, "setValue", null);
253
+ __decorate([
254
+ rpc({ public: true }),
255
+ __metadata("design:type", Function),
256
+ __metadata("design:paramtypes", [String, Object]),
257
+ __metadata("design:returntype", Promise)
258
+ ], DeviceStorage.prototype, "submitValue", null);
259
+ __decorate([
260
+ rpc({ public: true }),
261
+ __metadata("design:type", Function),
262
+ __metadata("design:paramtypes", [String]),
263
+ __metadata("design:returntype", Boolean)
264
+ ], DeviceStorage.prototype, "hasValue", null);
265
+ __decorate([
266
+ rpc({ public: true }),
267
+ __metadata("design:type", Function),
268
+ __metadata("design:paramtypes", []),
269
+ __metadata("design:returntype", Promise)
270
+ ], DeviceStorage.prototype, "getConfig", null);
271
+ __decorate([
272
+ rpc({ public: true }),
273
+ __metadata("design:type", Function),
274
+ __metadata("design:paramtypes", [Object]),
275
+ __metadata("design:returntype", Promise)
276
+ ], DeviceStorage.prototype, "setConfig", null);
277
+ __decorate([
278
+ rpc({ public: true }),
279
+ __metadata("design:type", Function),
280
+ __metadata("design:paramtypes", [Object]),
281
+ __metadata("design:returntype", Promise)
282
+ ], DeviceStorage.prototype, "addSchema", null);
283
+ __decorate([
284
+ rpc({ public: true }),
285
+ __metadata("design:type", Function),
286
+ __metadata("design:paramtypes", [String]),
287
+ __metadata("design:returntype", Promise)
288
+ ], DeviceStorage.prototype, "removeSchema", null);
289
+ __decorate([
290
+ rpc({ public: true }),
291
+ __metadata("design:type", Function),
292
+ __metadata("design:paramtypes", [String, Object]),
293
+ __metadata("design:returntype", Promise)
294
+ ], DeviceStorage.prototype, "changeSchema", null);
295
+ __decorate([
296
+ rpc({ public: true }),
297
+ __metadata("design:type", Function),
298
+ __metadata("design:paramtypes", [String]),
299
+ __metadata("design:returntype", Object)
300
+ ], DeviceStorage.prototype, "getSchema", null);
301
+ __decorate([
302
+ rpc({ public: true }),
303
+ __metadata("design:type", Function),
304
+ __metadata("design:paramtypes", [String]),
305
+ __metadata("design:returntype", Boolean)
306
+ ], DeviceStorage.prototype, "hasSchema", null);
307
+ __decorate([
308
+ rpc({ public: true }),
309
+ __metadata("design:type", Function),
310
+ __metadata("design:paramtypes", []),
311
+ __metadata("design:returntype", Promise)
312
+ ], DeviceStorage.prototype, "destroy", null);
313
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { DeviceStorage } from './storage.js';
2
+ import type { ClientInstance } from '@camera.ui/rpc-client';
3
+ import type { JsonSchema, StorageController as StorageControllerInterface } from '@camera.ui/types';
4
+ import type { RootDatabase } from 'lmdb';
5
+ import type { PluginInfo } from '../../types.js';
6
+ import type { PluginAPI } from './pluginApi.js';
7
+ export declare class StorageController implements StorageControllerInterface {
8
+ #private;
9
+ constructor(api: PluginAPI, proxy: ClientInstance, plugin: PluginInfo, pluginDb: RootDatabase<Record<string, any>, 'config'>);
10
+ createCameraStorage<T extends Record<string, any> = Record<string, any>>(instance: any, cameraId: string, schemas?: JsonSchema[]): DeviceStorage<T>;
11
+ createPluginStorage<T extends Record<string, any> = Record<string, any>>(instance: any, schemas?: JsonSchema[]): DeviceStorage<T>;
12
+ getCameraStorage<T extends Record<string, any> = Record<string, any>>(deviceId: string): DeviceStorage<T> | undefined;
13
+ getPluginStorage<T extends Record<string, any> = Record<string, any>>(): DeviceStorage<T> | undefined;
14
+ createStorage(type: 'camera', deviceId: string): Promise<DeviceStorage<any>>;
15
+ createStorage(type: 'plugin'): Promise<DeviceStorage<any>>;
16
+ removeStorage(type: 'camera', deviceId: string): Promise<void>;
17
+ removeStorage(type: 'plugin'): Promise<void>;
18
+ }
@@ -0,0 +1,67 @@
1
+ import { DeviceStorage } from './storage.js';
2
+ export class StorageController {
3
+ #api;
4
+ #proxy;
5
+ #plugin;
6
+ #pluginDb;
7
+ #storages = new Map();
8
+ constructor(api, proxy, plugin, pluginDb) {
9
+ this.#api = api;
10
+ this.#proxy = proxy;
11
+ this.#plugin = plugin;
12
+ this.#pluginDb = pluginDb;
13
+ }
14
+ createCameraStorage(instance, cameraId, schemas = []) {
15
+ let cameraStorage = this.#storages.get(cameraId);
16
+ if (!cameraStorage) {
17
+ cameraStorage = new DeviceStorage(this.#api, this.#proxy, this.#plugin, this.#pluginDb, instance, cameraId, schemas, false);
18
+ this.#storages.set(cameraId, cameraStorage);
19
+ }
20
+ else {
21
+ cameraStorage.updateSchema(instance, schemas);
22
+ }
23
+ return cameraStorage;
24
+ }
25
+ createPluginStorage(instance, schemas = []) {
26
+ let pluginStorage = this.#storages.get('storage');
27
+ if (!pluginStorage) {
28
+ pluginStorage = new DeviceStorage(this.#api, this.#proxy, this.#plugin, this.#pluginDb, instance, 'storage', schemas, true);
29
+ this.#storages.set('storage', pluginStorage);
30
+ }
31
+ else {
32
+ pluginStorage.updateSchema(instance, schemas);
33
+ }
34
+ return pluginStorage;
35
+ }
36
+ getCameraStorage(deviceId) {
37
+ return this.#storages.get(deviceId);
38
+ }
39
+ getPluginStorage() {
40
+ return this.#storages.get('storage');
41
+ }
42
+ async createStorage(type, deviceId) {
43
+ let storage;
44
+ if (type === 'camera') {
45
+ if (!deviceId) {
46
+ throw new Error('ID is required for storage creation');
47
+ }
48
+ storage = this.createCameraStorage(undefined, deviceId);
49
+ }
50
+ else {
51
+ storage = this.createPluginStorage(deviceId);
52
+ }
53
+ await storage.registerStorage();
54
+ return storage;
55
+ }
56
+ async removeStorage(type, deviceId) {
57
+ const id = type === 'camera' ? deviceId : 'storage';
58
+ if (!id) {
59
+ throw new Error('ID is required for storage removal');
60
+ }
61
+ const deviceStorage = this.#storages.get(id);
62
+ await deviceStorage?.destroy();
63
+ await deviceStorage?.unregisterStorage();
64
+ this.#storages.delete(id);
65
+ }
66
+ }
67
+ //# sourceMappingURL=storageController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storageController.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/storageController.ts"],"names":[],"mappings":"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"}