camera.ui3 0.0.3-1.alpha.0

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 (531) hide show
  1. package/dist/interface/@babel.l0sNRNKZ.0.0.31.alpha.0.js +1 -0
  2. package/dist/interface/@camera.ui.DiVLAlWa.0.0.31.alpha.0.js +3 -0
  3. package/dist/interface/@intlify.D-zKcAzQ.0.0.31.alpha.0.js +19 -0
  4. package/dist/interface/@mdi.DVdKciOk.0.0.31.alpha.0.js +1 -0
  5. package/dist/interface/@popperjs.BQBsAJpH.0.0.31.alpha.0.js +1 -0
  6. package/dist/interface/@react-dnd.CcwRs9xb.0.0.31.alpha.0.js +1 -0
  7. package/dist/interface/@socket.io.Dkula2eQ.0.0.31.alpha.0.js +1 -0
  8. package/dist/interface/@tanstack.JA82H5vk.0.0.31.alpha.0.js +1 -0
  9. package/dist/interface/@vee-validate.CA1ZbSb8.0.0.31.alpha.0.js +5 -0
  10. package/dist/interface/@vue.DawUEI-_.0.0.31.alpha.0.js +17 -0
  11. package/dist/interface/@vueform.7BwteSAI.0.0.31.alpha.0.js +1 -0
  12. package/dist/interface/@vueuse.CxhADbVS.0.0.31.alpha.0.js +1 -0
  13. package/dist/interface/@xterm.DEGikZnR.0.0.31.alpha.0.js +66 -0
  14. package/dist/interface/Account.BWV7axVK.0.0.31.alpha.0.js +1 -0
  15. package/dist/interface/Adminpanel.Cat3Re-m.0.0.31.alpha.0.js +2 -0
  16. package/dist/interface/Appearance.Cy-OjBQU.0.0.31.alpha.0.js +1 -0
  17. package/dist/interface/Backup.DT-lEb0w.0.0.31.alpha.0.js +1 -0
  18. package/dist/interface/Camera.BA2pdfOk.0.0.31.alpha.0.js +1 -0
  19. package/dist/interface/Cameras.Cd5PwZGj.0.0.31.alpha.0.js +1 -0
  20. package/dist/interface/Camview.B_SYtZBE.0.0.31.alpha.0.js +1 -0
  21. package/dist/interface/Config.lwJ4SPlI.0.0.31.alpha.0.js +1 -0
  22. package/dist/interface/Console.DcB6i6K8.0.0.31.alpha.0.js +4 -0
  23. package/dist/interface/FirstSteps.T_0B6C8R.0.0.31.alpha.0.js +1 -0
  24. package/dist/interface/NewCamera.DHO1TCd9.0.0.31.alpha.0.js +448 -0
  25. package/dist/interface/Plugin.DDu7vOMq.0.0.31.alpha.0.js +1 -0
  26. package/dist/interface/Plugins.Bd6tuB3h.0.0.31.alpha.0.js +1 -0
  27. package/dist/interface/Recordings.BD3bPJtl.0.0.31.alpha.0.js +1 -0
  28. package/dist/interface/Recordings.DHA-Tow3.0.0.31.alpha.0.js +1 -0
  29. package/dist/interface/Settings.DfhNSXuH.0.0.31.alpha.0.js +1 -0
  30. package/dist/interface/System.DG6Xdmy5.0.0.31.alpha.0.js +4 -0
  31. package/dist/interface/User.DZlqgjtQ.0.0.31.alpha.0.js +1 -0
  32. package/dist/interface/VConfigEditor.vue_vue_type_script_setup_true_lang.DTxqNgDe.0.0.31.alpha.0.js +2 -0
  33. package/dist/interface/VConsole.AQlLk_M_.0.0.31.alpha.0.js +1 -0
  34. package/dist/interface/VPlayer.S4oDmoQc.0.0.31.alpha.0.js +1 -0
  35. package/dist/interface/VPluginCard.CSvdGcaM.0.0.31.alpha.0.js +4 -0
  36. package/dist/interface/ace-builds.C-7gpKoK.0.0.31.alpha.0.js +970 -0
  37. package/dist/interface/apexcharts.DQhLo52f.0.0.31.alpha.0.js +795 -0
  38. package/dist/interface/assets/@vueform.0.0.31.alpha.0.h7tNX9p6.css +1 -0
  39. package/dist/interface/assets/@xterm.0.0.31.alpha.0.CGrrDQr5.css +32 -0
  40. package/dist/interface/assets/Account.0.0.31.alpha.0.Ce3OmKrC.css +1 -0
  41. package/dist/interface/assets/Adminpanel.0.0.31.alpha.0.CXsTAXPL.css +1 -0
  42. package/dist/interface/assets/Backup.0.0.31.alpha.0.BIwaSlv3.css +1 -0
  43. package/dist/interface/assets/Camera.0.0.31.alpha.0.BDtUJ-lA.css +1 -0
  44. package/dist/interface/assets/Cameras.0.0.31.alpha.0.Djx0F2MM.css +1 -0
  45. package/dist/interface/assets/Camview.0.0.31.alpha.0.Ce_V-Nxj.css +1 -0
  46. package/dist/interface/assets/Config.0.0.31.alpha.0.xOTKGJ5Y.css +1 -0
  47. package/dist/interface/assets/Console.0.0.31.alpha.0.DWrfRWs9.css +1 -0
  48. package/dist/interface/assets/FirstSteps.0.0.31.alpha.0.CCo2y-sU.css +1 -0
  49. package/dist/interface/assets/NewCamera.0.0.31.alpha.0.BWK7TkdY.css +1 -0
  50. package/dist/interface/assets/Plugin.0.0.31.alpha.0.BtRA6zDt.css +1 -0
  51. package/dist/interface/assets/Plugins.0.0.31.alpha.0.Cwu0aGUO.css +1 -0
  52. package/dist/interface/assets/Settings.0.0.31.alpha.0.DC_-E3CR.css +1 -0
  53. package/dist/interface/assets/User.0.0.31.alpha.0.DPDcJbx8.css +1 -0
  54. package/dist/interface/assets/VConsole.0.0.31.alpha.0.BZT1WyS-.css +1 -0
  55. package/dist/interface/assets/VPlayer.0.0.31.alpha.0.BQMP8JwH.css +1 -0
  56. package/dist/interface/assets/VPluginCard.0.0.31.alpha.0.CyNvwFGk.css +1 -0
  57. package/dist/interface/assets/highlight.0.0.31.alpha.0.DgoK_Xib.css +1 -0
  58. package/dist/interface/assets/logo-256.0.0.31.alpha.0.BCQk9H1-.png +0 -0
  59. package/dist/interface/assets/logo-512.0.0.31.alpha.0.DLKVOU2S.png +0 -0
  60. package/dist/interface/assets/logo.0.0.31.alpha.0.DmEiRk0z.png +0 -0
  61. package/dist/interface/assets/main.0.0.31.alpha.0.CqDyfc1x.css +1 -0
  62. package/dist/interface/assets/mode-json.0.0.31.alpha.0.Br7xisR1.js +275 -0
  63. package/dist/interface/assets/mode-yaml.0.0.31.alpha.0.CIYL8U3d.js +395 -0
  64. package/dist/interface/assets/v-calendar.0.0.31.alpha.0.CtSuDYZU.css +1 -0
  65. package/dist/interface/assets/vue3-toastify.0.0.31.alpha.0.DTY1DMRs.css +1 -0
  66. package/dist/interface/assets/vuetify.0.0.31.alpha.0.Cd1awv3t.css +5 -0
  67. package/dist/interface/axios.C-n2IhIP.0.0.31.alpha.0.js +6 -0
  68. package/dist/interface/browserconfig.xml +11 -0
  69. package/dist/interface/compare-versions.DqEOhma6.0.0.31.alpha.0.js +1 -0
  70. package/dist/interface/dijkstrajs.D_NXgYpA.0.0.31.alpha.0.js +1 -0
  71. package/dist/interface/dnd-core.ulJ0mknj.0.0.31.alpha.0.js +1 -0
  72. package/dist/interface/draggabilly.eq53ylJ3.0.0.31.alpha.0.js +6 -0
  73. package/dist/interface/engine.io-client.BWNiR0rU.0.0.31.alpha.0.js +1 -0
  74. package/dist/interface/engine.io-parser.BiEtp6m2.0.0.31.alpha.0.js +1 -0
  75. package/dist/interface/entities.C20TfXL6.0.0.31.alpha.0.js +1 -0
  76. package/dist/interface/ev-emitter.s441qML4.0.0.31.alpha.0.js +1 -0
  77. package/dist/interface/fast-deep-equal.D-ZniTWc.0.0.31.alpha.0.js +1 -0
  78. package/dist/interface/fonts/Inter/Inter-Regular.ttf +0 -0
  79. package/dist/interface/get-size.D1dS-IaP.0.0.31.alpha.0.js +5 -0
  80. package/dist/interface/highlight.js.BPsCA8BI.0.0.31.alpha.0.js +2 -0
  81. package/dist/interface/index.html +376 -0
  82. package/dist/interface/linkify-it.CYQWol_J.0.0.31.alpha.0.js +1 -0
  83. package/dist/interface/main.BF6AA77k.0.0.31.alpha.0.js +2 -0
  84. package/dist/interface/manifest.webmanifest +1 -0
  85. package/dist/interface/markdown-it.1DZlV4JT.0.0.31.alpha.0.js +15 -0
  86. package/dist/interface/mdurl.k9Sl0PQj.0.0.31.alpha.0.js +2 -0
  87. package/dist/interface/nprogress.B9MKHEWD.0.0.31.alpha.0.js +2 -0
  88. package/dist/interface/pinia.DTboBXXN.0.0.31.alpha.0.js +5 -0
  89. package/dist/interface/plugins.DQaBHq32.0.0.31.alpha.0.js +1 -0
  90. package/dist/interface/punycode.js.Dj65hjkv.0.0.31.alpha.0.js +1 -0
  91. package/dist/interface/pwa/apple-splash-landscape-dark-1136x640.png +0 -0
  92. package/dist/interface/pwa/apple-splash-landscape-dark-1334x750.png +0 -0
  93. package/dist/interface/pwa/apple-splash-landscape-dark-1792x828.png +0 -0
  94. package/dist/interface/pwa/apple-splash-landscape-dark-2048x1536.png +0 -0
  95. package/dist/interface/pwa/apple-splash-landscape-dark-2160x1620.png +0 -0
  96. package/dist/interface/pwa/apple-splash-landscape-dark-2208x1242.png +0 -0
  97. package/dist/interface/pwa/apple-splash-landscape-dark-2224x1668.png +0 -0
  98. package/dist/interface/pwa/apple-splash-landscape-dark-2388x1668.png +0 -0
  99. package/dist/interface/pwa/apple-splash-landscape-dark-2436x1125.png +0 -0
  100. package/dist/interface/pwa/apple-splash-landscape-dark-2532x1170.png +0 -0
  101. package/dist/interface/pwa/apple-splash-landscape-dark-2556x1179.png +0 -0
  102. package/dist/interface/pwa/apple-splash-landscape-dark-2688x1242.png +0 -0
  103. package/dist/interface/pwa/apple-splash-landscape-dark-2732x2048.png +0 -0
  104. package/dist/interface/pwa/apple-splash-landscape-dark-2778x1284.png +0 -0
  105. package/dist/interface/pwa/apple-splash-landscape-dark-2796x1290.png +0 -0
  106. package/dist/interface/pwa/apple-splash-landscape-light-1136x640.png +0 -0
  107. package/dist/interface/pwa/apple-splash-landscape-light-1334x750.png +0 -0
  108. package/dist/interface/pwa/apple-splash-landscape-light-1792x828.png +0 -0
  109. package/dist/interface/pwa/apple-splash-landscape-light-2048x1536.png +0 -0
  110. package/dist/interface/pwa/apple-splash-landscape-light-2160x1620.png +0 -0
  111. package/dist/interface/pwa/apple-splash-landscape-light-2208x1242.png +0 -0
  112. package/dist/interface/pwa/apple-splash-landscape-light-2224x1668.png +0 -0
  113. package/dist/interface/pwa/apple-splash-landscape-light-2388x1668.png +0 -0
  114. package/dist/interface/pwa/apple-splash-landscape-light-2436x1125.png +0 -0
  115. package/dist/interface/pwa/apple-splash-landscape-light-2532x1170.png +0 -0
  116. package/dist/interface/pwa/apple-splash-landscape-light-2556x1179.png +0 -0
  117. package/dist/interface/pwa/apple-splash-landscape-light-2688x1242.png +0 -0
  118. package/dist/interface/pwa/apple-splash-landscape-light-2732x2048.png +0 -0
  119. package/dist/interface/pwa/apple-splash-landscape-light-2778x1284.png +0 -0
  120. package/dist/interface/pwa/apple-splash-landscape-light-2796x1290.png +0 -0
  121. package/dist/interface/pwa/apple-splash-portrait-dark-1125x2436.png +0 -0
  122. package/dist/interface/pwa/apple-splash-portrait-dark-1170x2532.png +0 -0
  123. package/dist/interface/pwa/apple-splash-portrait-dark-1179x2556.png +0 -0
  124. package/dist/interface/pwa/apple-splash-portrait-dark-1242x2208.png +0 -0
  125. package/dist/interface/pwa/apple-splash-portrait-dark-1242x2688.png +0 -0
  126. package/dist/interface/pwa/apple-splash-portrait-dark-1284x2778.png +0 -0
  127. package/dist/interface/pwa/apple-splash-portrait-dark-1290x2796.png +0 -0
  128. package/dist/interface/pwa/apple-splash-portrait-dark-1536x2048.png +0 -0
  129. package/dist/interface/pwa/apple-splash-portrait-dark-1620x2160.png +0 -0
  130. package/dist/interface/pwa/apple-splash-portrait-dark-1668x2224.png +0 -0
  131. package/dist/interface/pwa/apple-splash-portrait-dark-1668x2388.png +0 -0
  132. package/dist/interface/pwa/apple-splash-portrait-dark-2048x2732.png +0 -0
  133. package/dist/interface/pwa/apple-splash-portrait-dark-640x1136.png +0 -0
  134. package/dist/interface/pwa/apple-splash-portrait-dark-750x1334.png +0 -0
  135. package/dist/interface/pwa/apple-splash-portrait-dark-828x1792.png +0 -0
  136. package/dist/interface/pwa/apple-splash-portrait-light-1125x2436.png +0 -0
  137. package/dist/interface/pwa/apple-splash-portrait-light-1170x2532.png +0 -0
  138. package/dist/interface/pwa/apple-splash-portrait-light-1179x2556.png +0 -0
  139. package/dist/interface/pwa/apple-splash-portrait-light-1242x2208.png +0 -0
  140. package/dist/interface/pwa/apple-splash-portrait-light-1242x2688.png +0 -0
  141. package/dist/interface/pwa/apple-splash-portrait-light-1284x2778.png +0 -0
  142. package/dist/interface/pwa/apple-splash-portrait-light-1290x2796.png +0 -0
  143. package/dist/interface/pwa/apple-splash-portrait-light-1536x2048.png +0 -0
  144. package/dist/interface/pwa/apple-splash-portrait-light-1620x2160.png +0 -0
  145. package/dist/interface/pwa/apple-splash-portrait-light-1668x2224.png +0 -0
  146. package/dist/interface/pwa/apple-splash-portrait-light-1668x2388.png +0 -0
  147. package/dist/interface/pwa/apple-splash-portrait-light-2048x2732.png +0 -0
  148. package/dist/interface/pwa/apple-splash-portrait-light-640x1136.png +0 -0
  149. package/dist/interface/pwa/apple-splash-portrait-light-750x1334.png +0 -0
  150. package/dist/interface/pwa/apple-splash-portrait-light-828x1792.png +0 -0
  151. package/dist/interface/pwa/apple-touch-icon-180x180.png +0 -0
  152. package/dist/interface/pwa/favicon-16.ico +0 -0
  153. package/dist/interface/pwa/favicon-32.ico +0 -0
  154. package/dist/interface/pwa/favicon-48.ico +0 -0
  155. package/dist/interface/pwa/favicon-64.ico +0 -0
  156. package/dist/interface/pwa/logo.svg +1 -0
  157. package/dist/interface/pwa/maskable-icon-1240x600.png +0 -0
  158. package/dist/interface/pwa/maskable-icon-512x512.png +0 -0
  159. package/dist/interface/pwa/maskable-icon-620x300.png +0 -0
  160. package/dist/interface/pwa/pwa-1024x1024.png +0 -0
  161. package/dist/interface/pwa/pwa-120x120.png +0 -0
  162. package/dist/interface/pwa/pwa-144x144.png +0 -0
  163. package/dist/interface/pwa/pwa-152x152.png +0 -0
  164. package/dist/interface/pwa/pwa-167x167.png +0 -0
  165. package/dist/interface/pwa/pwa-180x180.png +0 -0
  166. package/dist/interface/pwa/pwa-192x192.png +0 -0
  167. package/dist/interface/pwa/pwa-24x24.png +0 -0
  168. package/dist/interface/pwa/pwa-300x300.png +0 -0
  169. package/dist/interface/pwa/pwa-36x36.png +0 -0
  170. package/dist/interface/pwa/pwa-48x48.png +0 -0
  171. package/dist/interface/pwa/pwa-50x50.png +0 -0
  172. package/dist/interface/pwa/pwa-64x64.png +0 -0
  173. package/dist/interface/pwa/pwa-72x72.png +0 -0
  174. package/dist/interface/pwa/pwa-88x88.png +0 -0
  175. package/dist/interface/pwa/pwa-96x96.png +0 -0
  176. package/dist/interface/qrcode.DIpB2cN9.0.0.31.alpha.0.js +8 -0
  177. package/dist/interface/react-dnd-html5-backend.1HQjlkwI.0.0.31.alpha.0.js +2 -0
  178. package/dist/interface/react-dnd-touch-backend.B1qQXtk5.0.0.31.alpha.0.js +1 -0
  179. package/dist/interface/redux.CuxFRhX_.0.0.31.alpha.0.js +1 -0
  180. package/dist/interface/registerSW.js +1 -0
  181. package/dist/interface/robots.txt +2 -0
  182. package/dist/interface/rxjs.D3x1dEbj.0.0.31.alpha.0.js +3 -0
  183. package/dist/interface/socket.io-client.Bb26UC3A.0.0.31.alpha.0.js +1 -0
  184. package/dist/interface/socket.io-parser.Cg20fkq3.0.0.31.alpha.0.js +1 -0
  185. package/dist/interface/sw.js +1 -0
  186. package/dist/interface/system.z_YWfuXO.0.0.31.alpha.0.js +1 -0
  187. package/dist/interface/tslib.9k7AwCpt.0.0.31.alpha.0.js +1 -0
  188. package/dist/interface/types.Cz9TaZAP.0.0.31.alpha.0.js +1 -0
  189. package/dist/interface/uc.micro.kMc2yuuw.0.0.31.alpha.0.js +1 -0
  190. package/dist/interface/ui.EWScThRV.0.0.31.alpha.0.js +1 -0
  191. package/dist/interface/unidragger.CFLVmDeU.0.0.31.alpha.0.js +5 -0
  192. package/dist/interface/utils.mAKpSMLY.0.0.31.alpha.0.js +1 -0
  193. package/dist/interface/uuid.DvF23Exx.0.0.31.alpha.0.js +1 -0
  194. package/dist/interface/v-calendar.C7xnHLY1.0.0.31.alpha.0.js +1 -0
  195. package/dist/interface/vee-validate.CIbc50Ub.0.0.31.alpha.0.js +5 -0
  196. package/dist/interface/vue-i18n.DR91v838.0.0.31.alpha.0.js +9 -0
  197. package/dist/interface/vue-inline-svg.BfskkdgC.0.0.31.alpha.0.js +1 -0
  198. package/dist/interface/vue-router.ZwJI20Fm.0.0.31.alpha.0.js +5 -0
  199. package/dist/interface/vue.l0sNRNKZ.0.0.31.alpha.0.js +1 -0
  200. package/dist/interface/vue3-apexcharts.D_cl2oKo.0.0.31.alpha.0.js +1 -0
  201. package/dist/interface/vue3-dnd.ImnQytSf.0.0.31.alpha.0.js +1 -0
  202. package/dist/interface/vue3-toastify.DB_3YzbA.0.0.31.alpha.0.js +1 -0
  203. package/dist/interface/vuetify.DSEe9Drp.0.0.31.alpha.0.js +5 -0
  204. package/dist/interface/workbox-3e911b1d.js +1 -0
  205. package/dist/interface/zod.DnW1_kUe.0.0.31.alpha.0.js +1 -0
  206. package/dist/server/bin/cameraui.d.ts +54 -0
  207. package/dist/server/bin/cameraui.js +625 -0
  208. package/dist/server/bin/cameraui.js.map +1 -0
  209. package/dist/server/bin/fork.d.ts +2 -0
  210. package/dist/server/bin/fork.js +13 -0
  211. package/dist/server/bin/fork.js.map +1 -0
  212. package/dist/server/bin/installer/base.d.ts +17 -0
  213. package/dist/server/bin/installer/base.js +45 -0
  214. package/dist/server/bin/installer/base.js.map +1 -0
  215. package/dist/server/bin/installer/darwin.d.ts +61 -0
  216. package/dist/server/bin/installer/darwin.js +249 -0
  217. package/dist/server/bin/installer/darwin.js.map +1 -0
  218. package/dist/server/bin/installer/freebsd.d.ts +64 -0
  219. package/dist/server/bin/installer/freebsd.js +254 -0
  220. package/dist/server/bin/installer/freebsd.js.map +1 -0
  221. package/dist/server/bin/installer/linux.d.ts +103 -0
  222. package/dist/server/bin/installer/linux.js +482 -0
  223. package/dist/server/bin/installer/linux.js.map +1 -0
  224. package/dist/server/bin/installer/win32.d.ts +45 -0
  225. package/dist/server/bin/installer/win32.js +178 -0
  226. package/dist/server/bin/installer/win32.js.map +1 -0
  227. package/dist/server/package.json +137 -0
  228. package/dist/server/requirements.txt +13 -0
  229. package/dist/server/src/api/controllers/api.controller.d.ts +7 -0
  230. package/dist/server/src/api/controllers/api.controller.js +14 -0
  231. package/dist/server/src/api/controllers/api.controller.js.map +1 -0
  232. package/dist/server/src/api/controllers/auth.controller.d.ts +16 -0
  233. package/dist/server/src/api/controllers/auth.controller.js +233 -0
  234. package/dist/server/src/api/controllers/auth.controller.js.map +1 -0
  235. package/dist/server/src/api/controllers/backup.controller.d.ts +10 -0
  236. package/dist/server/src/api/controllers/backup.controller.js +52 -0
  237. package/dist/server/src/api/controllers/backup.controller.js.map +1 -0
  238. package/dist/server/src/api/controllers/cameras.controller.d.ts +36 -0
  239. package/dist/server/src/api/controllers/cameras.controller.js +586 -0
  240. package/dist/server/src/api/controllers/cameras.controller.js.map +1 -0
  241. package/dist/server/src/api/controllers/config.controller.d.ts +14 -0
  242. package/dist/server/src/api/controllers/config.controller.js +89 -0
  243. package/dist/server/src/api/controllers/config.controller.js.map +1 -0
  244. package/dist/server/src/api/controllers/files.controller.d.ts +8 -0
  245. package/dist/server/src/api/controllers/files.controller.js +28 -0
  246. package/dist/server/src/api/controllers/files.controller.js.map +1 -0
  247. package/dist/server/src/api/controllers/frameWorkers.controller.d.ts +11 -0
  248. package/dist/server/src/api/controllers/frameWorkers.controller.js +85 -0
  249. package/dist/server/src/api/controllers/frameWorkers.controller.js.map +1 -0
  250. package/dist/server/src/api/controllers/plugins.controller.d.ts +58 -0
  251. package/dist/server/src/api/controllers/plugins.controller.js +1282 -0
  252. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -0
  253. package/dist/server/src/api/controllers/system.controller.d.ts +21 -0
  254. package/dist/server/src/api/controllers/system.controller.js +228 -0
  255. package/dist/server/src/api/controllers/system.controller.js.map +1 -0
  256. package/dist/server/src/api/controllers/users.controller.d.ts +28 -0
  257. package/dist/server/src/api/controllers/users.controller.js +507 -0
  258. package/dist/server/src/api/controllers/users.controller.js.map +1 -0
  259. package/dist/server/src/api/database/constants.d.ts +8 -0
  260. package/dist/server/src/api/database/constants.js +9 -0
  261. package/dist/server/src/api/database/constants.js.map +1 -0
  262. package/dist/server/src/api/database/index.d.ts +32 -0
  263. package/dist/server/src/api/database/index.js +274 -0
  264. package/dist/server/src/api/database/index.js.map +1 -0
  265. package/dist/server/src/api/database/migration.d.ts +12 -0
  266. package/dist/server/src/api/database/migration.js +48 -0
  267. package/dist/server/src/api/database/migration.js.map +1 -0
  268. package/dist/server/src/api/database/types.d.ts +105 -0
  269. package/dist/server/src/api/database/types.js +2 -0
  270. package/dist/server/src/api/database/types.js.map +1 -0
  271. package/dist/server/src/api/go2rtc/api/application.d.ts +9 -0
  272. package/dist/server/src/api/go2rtc/api/application.js +38 -0
  273. package/dist/server/src/api/go2rtc/api/application.js.map +1 -0
  274. package/dist/server/src/api/go2rtc/api/config.d.ts +8 -0
  275. package/dist/server/src/api/go2rtc/api/config.js +44 -0
  276. package/dist/server/src/api/go2rtc/api/config.js.map +1 -0
  277. package/dist/server/src/api/go2rtc/api/index.d.ts +1 -0
  278. package/dist/server/src/api/go2rtc/api/index.js +28 -0
  279. package/dist/server/src/api/go2rtc/api/index.js.map +1 -0
  280. package/dist/server/src/api/go2rtc/api/snapshot.d.ts +8 -0
  281. package/dist/server/src/api/go2rtc/api/snapshot.js +34 -0
  282. package/dist/server/src/api/go2rtc/api/snapshot.js.map +1 -0
  283. package/dist/server/src/api/go2rtc/api/streams.d.ts +11 -0
  284. package/dist/server/src/api/go2rtc/api/streams.js +57 -0
  285. package/dist/server/src/api/go2rtc/api/streams.js.map +1 -0
  286. package/dist/server/src/api/go2rtc/index.d.ts +13 -0
  287. package/dist/server/src/api/go2rtc/index.js +25 -0
  288. package/dist/server/src/api/go2rtc/index.js.map +1 -0
  289. package/dist/server/src/api/go2rtc/queue.d.ts +10 -0
  290. package/dist/server/src/api/go2rtc/queue.js +38 -0
  291. package/dist/server/src/api/go2rtc/queue.js.map +1 -0
  292. package/dist/server/src/api/go2rtc/types.d.ts +108 -0
  293. package/dist/server/src/api/go2rtc/types.js +2 -0
  294. package/dist/server/src/api/go2rtc/types.js.map +1 -0
  295. package/dist/server/src/api/index.d.ts +20 -0
  296. package/dist/server/src/api/index.js +223 -0
  297. package/dist/server/src/api/index.js.map +1 -0
  298. package/dist/server/src/api/middlewares/authPermission.middleware.d.ts +5 -0
  299. package/dist/server/src/api/middlewares/authPermission.middleware.js +28 -0
  300. package/dist/server/src/api/middlewares/authPermission.middleware.js.map +1 -0
  301. package/dist/server/src/api/middlewares/authValidation.middleware.d.ts +4 -0
  302. package/dist/server/src/api/middlewares/authValidation.middleware.js +129 -0
  303. package/dist/server/src/api/middlewares/authValidation.middleware.js.map +1 -0
  304. package/dist/server/src/api/middlewares/pagination.middleware.d.ts +3 -0
  305. package/dist/server/src/api/middlewares/pagination.middleware.js +65 -0
  306. package/dist/server/src/api/middlewares/pagination.middleware.js.map +1 -0
  307. package/dist/server/src/api/middlewares/socketAuth.middleware.d.ts +41 -0
  308. package/dist/server/src/api/middlewares/socketAuth.middleware.js +81 -0
  309. package/dist/server/src/api/middlewares/socketAuth.middleware.js.map +1 -0
  310. package/dist/server/src/api/plugins/cameraui.plugin.d.ts +11 -0
  311. package/dist/server/src/api/plugins/cameraui.plugin.js +6 -0
  312. package/dist/server/src/api/plugins/cameraui.plugin.js.map +1 -0
  313. package/dist/server/src/api/plugins/database.plugin.d.ts +11 -0
  314. package/dist/server/src/api/plugins/database.plugin.js +12 -0
  315. package/dist/server/src/api/plugins/database.plugin.js.map +1 -0
  316. package/dist/server/src/api/plugins/go2rtc.plugin.d.ts +11 -0
  317. package/dist/server/src/api/plugins/go2rtc.plugin.js +11 -0
  318. package/dist/server/src/api/plugins/go2rtc.plugin.js.map +1 -0
  319. package/dist/server/src/api/plugins/logger.plugin.d.ts +7 -0
  320. package/dist/server/src/api/plugins/logger.plugin.js +29 -0
  321. package/dist/server/src/api/plugins/logger.plugin.js.map +1 -0
  322. package/dist/server/src/api/plugins/socket.plugin.d.ts +11 -0
  323. package/dist/server/src/api/plugins/socket.plugin.js +12 -0
  324. package/dist/server/src/api/plugins/socket.plugin.js.map +1 -0
  325. package/dist/server/src/api/plugins/system.plugin.d.ts +18 -0
  326. package/dist/server/src/api/plugins/system.plugin.js +22 -0
  327. package/dist/server/src/api/plugins/system.plugin.js.map +1 -0
  328. package/dist/server/src/api/plugins/useragent.plugin.d.ts +8 -0
  329. package/dist/server/src/api/plugins/useragent.plugin.js +10 -0
  330. package/dist/server/src/api/plugins/useragent.plugin.js.map +1 -0
  331. package/dist/server/src/api/routes/api.routes.d.ts +2 -0
  332. package/dist/server/src/api/routes/api.routes.js +7 -0
  333. package/dist/server/src/api/routes/api.routes.js.map +1 -0
  334. package/dist/server/src/api/routes/auth.routes.d.ts +2 -0
  335. package/dist/server/src/api/routes/auth.routes.js +47 -0
  336. package/dist/server/src/api/routes/auth.routes.js.map +1 -0
  337. package/dist/server/src/api/routes/backup.routes.d.ts +2 -0
  338. package/dist/server/src/api/routes/backup.routes.js +23 -0
  339. package/dist/server/src/api/routes/backup.routes.js.map +1 -0
  340. package/dist/server/src/api/routes/cameras.routes.d.ts +2 -0
  341. package/dist/server/src/api/routes/cameras.routes.js +205 -0
  342. package/dist/server/src/api/routes/cameras.routes.js.map +1 -0
  343. package/dist/server/src/api/routes/config.routes.d.ts +2 -0
  344. package/dist/server/src/api/routes/config.routes.js +55 -0
  345. package/dist/server/src/api/routes/config.routes.js.map +1 -0
  346. package/dist/server/src/api/routes/files.routes.d.ts +2 -0
  347. package/dist/server/src/api/routes/files.routes.js +12 -0
  348. package/dist/server/src/api/routes/files.routes.js.map +1 -0
  349. package/dist/server/src/api/routes/frameWorkers.routes.d.ts +2 -0
  350. package/dist/server/src/api/routes/frameWorkers.routes.js +33 -0
  351. package/dist/server/src/api/routes/frameWorkers.routes.js.map +1 -0
  352. package/dist/server/src/api/routes/index.d.ts +6 -0
  353. package/dist/server/src/api/routes/index.js +32 -0
  354. package/dist/server/src/api/routes/index.js.map +1 -0
  355. package/dist/server/src/api/routes/plugins.routes.d.ts +2 -0
  356. package/dist/server/src/api/routes/plugins.routes.js +339 -0
  357. package/dist/server/src/api/routes/plugins.routes.js.map +1 -0
  358. package/dist/server/src/api/routes/system.routes.d.ts +2 -0
  359. package/dist/server/src/api/routes/system.routes.js +83 -0
  360. package/dist/server/src/api/routes/system.routes.js.map +1 -0
  361. package/dist/server/src/api/routes/users.routes.d.ts +2 -0
  362. package/dist/server/src/api/routes/users.routes.js +139 -0
  363. package/dist/server/src/api/routes/users.routes.js.map +1 -0
  364. package/dist/server/src/api/schemas/backup.schema.d.ts +118 -0
  365. package/dist/server/src/api/schemas/backup.schema.js +75 -0
  366. package/dist/server/src/api/schemas/backup.schema.js.map +1 -0
  367. package/dist/server/src/api/schemas/cameras.schema.d.ts +960 -0
  368. package/dist/server/src/api/schemas/cameras.schema.js +316 -0
  369. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -0
  370. package/dist/server/src/api/schemas/config.schema.d.ts +122 -0
  371. package/dist/server/src/api/schemas/config.schema.js +44 -0
  372. package/dist/server/src/api/schemas/config.schema.js.map +1 -0
  373. package/dist/server/src/api/schemas/go2rtc.schema.d.ts +703 -0
  374. package/dist/server/src/api/schemas/go2rtc.schema.js +180 -0
  375. package/dist/server/src/api/schemas/go2rtc.schema.js.map +1 -0
  376. package/dist/server/src/api/schemas/plugins.schema.d.ts +72 -0
  377. package/dist/server/src/api/schemas/plugins.schema.js +103 -0
  378. package/dist/server/src/api/schemas/plugins.schema.js.map +1 -0
  379. package/dist/server/src/api/schemas/system.schema.d.ts +9 -0
  380. package/dist/server/src/api/schemas/system.schema.js +8 -0
  381. package/dist/server/src/api/schemas/system.schema.js.map +1 -0
  382. package/dist/server/src/api/schemas/users.schema.d.ts +1013 -0
  383. package/dist/server/src/api/schemas/users.schema.js +157 -0
  384. package/dist/server/src/api/schemas/users.schema.js.map +1 -0
  385. package/dist/server/src/api/services/auth.service.d.ts +24 -0
  386. package/dist/server/src/api/services/auth.service.js +191 -0
  387. package/dist/server/src/api/services/auth.service.js.map +1 -0
  388. package/dist/server/src/api/services/backup.service.d.ts +11 -0
  389. package/dist/server/src/api/services/backup.service.js +109 -0
  390. package/dist/server/src/api/services/backup.service.js.map +1 -0
  391. package/dist/server/src/api/services/cameras.service.d.ts +53 -0
  392. package/dist/server/src/api/services/cameras.service.js +743 -0
  393. package/dist/server/src/api/services/cameras.service.js.map +1 -0
  394. package/dist/server/src/api/services/plugins.service.d.ts +25 -0
  395. package/dist/server/src/api/services/plugins.service.js +143 -0
  396. package/dist/server/src/api/services/plugins.service.js.map +1 -0
  397. package/dist/server/src/api/services/system.service.d.ts +7 -0
  398. package/dist/server/src/api/services/system.service.js +23 -0
  399. package/dist/server/src/api/services/system.service.js.map +1 -0
  400. package/dist/server/src/api/services/users.service.d.ts +25 -0
  401. package/dist/server/src/api/services/users.service.js +198 -0
  402. package/dist/server/src/api/services/users.service.js.map +1 -0
  403. package/dist/server/src/api/types/index.d.ts +599 -0
  404. package/dist/server/src/api/types/index.js +9 -0
  405. package/dist/server/src/api/types/index.js.map +1 -0
  406. package/dist/server/src/api/utils/cameraSource.d.ts +2 -0
  407. package/dist/server/src/api/utils/cameraSource.js +34 -0
  408. package/dist/server/src/api/utils/cameraSource.js.map +1 -0
  409. package/dist/server/src/api/utils/cert.d.ts +11 -0
  410. package/dist/server/src/api/utils/cert.js +411 -0
  411. package/dist/server/src/api/utils/cert.js.map +1 -0
  412. package/dist/server/src/api/utils/constants.d.ts +15 -0
  413. package/dist/server/src/api/utils/constants.js +17 -0
  414. package/dist/server/src/api/utils/constants.js.map +1 -0
  415. package/dist/server/src/api/utils/fetch.d.ts +2 -0
  416. package/dist/server/src/api/utils/fetch.js +24 -0
  417. package/dist/server/src/api/utils/fetch.js.map +1 -0
  418. package/dist/server/src/api/utils/moveFiles.d.ts +1 -0
  419. package/dist/server/src/api/utils/moveFiles.js +39 -0
  420. package/dist/server/src/api/utils/moveFiles.js.map +1 -0
  421. package/dist/server/src/api/utils/parse.d.ts +2 -0
  422. package/dist/server/src/api/utils/parse.js +12 -0
  423. package/dist/server/src/api/utils/parse.js.map +1 -0
  424. package/dist/server/src/api/websocket/index.d.ts +16 -0
  425. package/dist/server/src/api/websocket/index.js +75 -0
  426. package/dist/server/src/api/websocket/index.js.map +1 -0
  427. package/dist/server/src/api/websocket/nsp/logs.d.ts +11 -0
  428. package/dist/server/src/api/websocket/nsp/logs.js +114 -0
  429. package/dist/server/src/api/websocket/nsp/logs.js.map +1 -0
  430. package/dist/server/src/api/websocket/nsp/main.d.ts +7 -0
  431. package/dist/server/src/api/websocket/nsp/main.js +8 -0
  432. package/dist/server/src/api/websocket/nsp/main.js.map +1 -0
  433. package/dist/server/src/api/websocket/nsp/metrics.d.ts +24 -0
  434. package/dist/server/src/api/websocket/nsp/metrics.js +166 -0
  435. package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -0
  436. package/dist/server/src/api/websocket/nsp/notifications.d.ts +12 -0
  437. package/dist/server/src/api/websocket/nsp/notifications.js +30 -0
  438. package/dist/server/src/api/websocket/nsp/notifications.js.map +1 -0
  439. package/dist/server/src/api/websocket/nsp/plugins.d.ts +13 -0
  440. package/dist/server/src/api/websocket/nsp/plugins.js +29 -0
  441. package/dist/server/src/api/websocket/nsp/plugins.js.map +1 -0
  442. package/dist/server/src/api/websocket/nsp/server.d.ts +21 -0
  443. package/dist/server/src/api/websocket/nsp/server.js +134 -0
  444. package/dist/server/src/api/websocket/nsp/server.js.map +1 -0
  445. package/dist/server/src/api/websocket/nsp/status.d.ts +15 -0
  446. package/dist/server/src/api/websocket/nsp/status.js +53 -0
  447. package/dist/server/src/api/websocket/nsp/status.js.map +1 -0
  448. package/dist/server/src/api/websocket/types.d.ts +47 -0
  449. package/dist/server/src/api/websocket/types.js +2 -0
  450. package/dist/server/src/api/websocket/types.js.map +1 -0
  451. package/dist/server/src/api.d.ts +37 -0
  452. package/dist/server/src/api.js +90 -0
  453. package/dist/server/src/api.js.map +1 -0
  454. package/dist/server/src/camera/controller.d.ts +49 -0
  455. package/dist/server/src/camera/controller.js +454 -0
  456. package/dist/server/src/camera/controller.js.map +1 -0
  457. package/dist/server/src/camera/types.d.ts +11 -0
  458. package/dist/server/src/camera/types.js +2 -0
  459. package/dist/server/src/camera/types.js.map +1 -0
  460. package/dist/server/src/decoder/index.d.ts +11 -0
  461. package/dist/server/src/decoder/index.js +32 -0
  462. package/dist/server/src/decoder/index.js.map +1 -0
  463. package/dist/server/src/decoder/types.d.ts +7 -0
  464. package/dist/server/src/decoder/types.js +2 -0
  465. package/dist/server/src/decoder/types.js.map +1 -0
  466. package/dist/server/src/decoder/worker.d.ts +40 -0
  467. package/dist/server/src/decoder/worker.js +233 -0
  468. package/dist/server/src/decoder/worker.js.map +1 -0
  469. package/dist/server/src/go2rtc/index.d.ts +25 -0
  470. package/dist/server/src/go2rtc/index.js +220 -0
  471. package/dist/server/src/go2rtc/index.js.map +1 -0
  472. package/dist/server/src/go2rtc/types.d.ts +14 -0
  473. package/dist/server/src/go2rtc/types.js +73 -0
  474. package/dist/server/src/go2rtc/types.js.map +1 -0
  475. package/dist/server/src/main.d.ts +1 -0
  476. package/dist/server/src/main.js +132 -0
  477. package/dist/server/src/main.js.map +1 -0
  478. package/dist/server/src/nats/index.d.ts +39 -0
  479. package/dist/server/src/nats/index.js +162 -0
  480. package/dist/server/src/nats/index.js.map +1 -0
  481. package/dist/server/src/nats/proxy/cameraDevice.d.ts +21 -0
  482. package/dist/server/src/nats/proxy/cameraDevice.js +262 -0
  483. package/dist/server/src/nats/proxy/cameraDevice.js.map +1 -0
  484. package/dist/server/src/nats/proxy/coreManager.d.ts +14 -0
  485. package/dist/server/src/nats/proxy/coreManager.js +70 -0
  486. package/dist/server/src/nats/proxy/coreManager.js.map +1 -0
  487. package/dist/server/src/nats/proxy/deviceManager.d.ts +14 -0
  488. package/dist/server/src/nats/proxy/deviceManager.js +101 -0
  489. package/dist/server/src/nats/proxy/deviceManager.js.map +1 -0
  490. package/dist/server/src/nats/server.d.ts +38 -0
  491. package/dist/server/src/nats/server.js +316 -0
  492. package/dist/server/src/nats/server.js.map +1 -0
  493. package/dist/server/src/nats/types.d.ts +18 -0
  494. package/dist/server/src/nats/types.js +2 -0
  495. package/dist/server/src/nats/types.js.map +1 -0
  496. package/dist/server/src/nats/utils.d.ts +2 -0
  497. package/dist/server/src/nats/utils.js +12 -0
  498. package/dist/server/src/nats/utils.js.map +1 -0
  499. package/dist/server/src/nats/websocket.d.ts +27 -0
  500. package/dist/server/src/nats/websocket.js +217 -0
  501. package/dist/server/src/nats/websocket.js.map +1 -0
  502. package/dist/server/src/plugins/index.d.ts +30 -0
  503. package/dist/server/src/plugins/index.js +244 -0
  504. package/dist/server/src/plugins/index.js.map +1 -0
  505. package/dist/server/src/plugins/plugin.d.ts +33 -0
  506. package/dist/server/src/plugins/plugin.js +159 -0
  507. package/dist/server/src/plugins/plugin.js.map +1 -0
  508. package/dist/server/src/plugins/types.d.ts +7 -0
  509. package/dist/server/src/plugins/types.js +3 -0
  510. package/dist/server/src/plugins/types.js.map +1 -0
  511. package/dist/server/src/plugins/worker.d.ts +36 -0
  512. package/dist/server/src/plugins/worker.js +293 -0
  513. package/dist/server/src/plugins/worker.js.map +1 -0
  514. package/dist/server/src/services/config/constants.d.ts +5 -0
  515. package/dist/server/src/services/config/constants.js +59 -0
  516. package/dist/server/src/services/config/constants.js.map +1 -0
  517. package/dist/server/src/services/config/index.d.ts +62 -0
  518. package/dist/server/src/services/config/index.js +399 -0
  519. package/dist/server/src/services/config/index.js.map +1 -0
  520. package/dist/server/src/services/config/types.d.ts +157 -0
  521. package/dist/server/src/services/config/types.js +11 -0
  522. package/dist/server/src/services/config/types.js.map +1 -0
  523. package/dist/server/src/services/logger/index.d.ts +11 -0
  524. package/dist/server/src/services/logger/index.js +35 -0
  525. package/dist/server/src/services/logger/index.js.map +1 -0
  526. package/dist/server/src/types.d.ts +7 -0
  527. package/dist/server/src/types.js +2 -0
  528. package/dist/server/src/types.js.map +1 -0
  529. package/localdeps.txt +5 -0
  530. package/package.json +137 -0
  531. package/upgrade-server.sh +205 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/websocket/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Namespace, Server, Socket } from 'socket.io';
2
+ import type { SocketNsp } from '../types.js';
3
+ export declare class LogsNamespace {
4
+ nsp: Namespace;
5
+ nspName: SocketNsp;
6
+ private nativeTail?;
7
+ private configService;
8
+ constructor(io: Server);
9
+ connect(socket: Socket, filter?: string[]): void;
10
+ private tailLogFromFileNative;
11
+ }
@@ -0,0 +1,114 @@
1
+ import { cyan, red, strip } from 'ansicolor';
2
+ import { createReadStream, existsSync } from 'node:fs';
3
+ import { stat } from 'node:fs/promises';
4
+ import { Tail } from 'tail';
5
+ import { container } from 'tsyringe';
6
+ export class LogsNamespace {
7
+ nsp;
8
+ nspName = '/logs';
9
+ nativeTail;
10
+ configService;
11
+ constructor(io) {
12
+ this.configService = container.resolve('configService');
13
+ this.nsp = io.of(this.nspName);
14
+ this.nsp.on('connection', (socket) => {
15
+ socket.on('get-log', (filter) => this.connect(socket, filter));
16
+ });
17
+ }
18
+ connect(socket, filter) {
19
+ socket.emit('stdout', cyan('Loading logs using native method...\r\n'));
20
+ if (filter)
21
+ socket.emit('stdout', cyan(`Filter: ${filter}\r\n`));
22
+ socket.emit('stdout', cyan(`File: ${this.configService.LOG_FILE}\r\n\r\n`));
23
+ this.tailLogFromFileNative(socket, filter);
24
+ }
25
+ async tailLogFromFileNative(socket, filter) {
26
+ if (!existsSync(this.configService.LOG_FILE)) {
27
+ socket.emit('stdout', '\n\r');
28
+ socket.emit('stdout', red(`No log file exists at path: ${this.configService.LOG_FILE}\n\r`));
29
+ }
30
+ let isRelatedToFilter = false;
31
+ const filterRegex = /(?:\\x1B\[\d+(?:;\d+)*m|\x1B\[\d+(?:;\d+)*m)*\[camera\.ui\](?:\\x1B\[\d+(?:;\d+)*m|\x1B\[\d+(?:;\d+)*m)*\s*/g;
32
+ const isNewEntry = (line) => {
33
+ return /^\[\d{2}\.\d{2}\.\d{4}, \d{2}:\d{2}:\d{2}\]/.test(line);
34
+ };
35
+ // read the first 50000 bytes of the log and emit to the client
36
+ try {
37
+ const logStats = await stat(this.configService.LOG_FILE);
38
+ const logStartPosition = logStats.size <= 50000 ? 0 : logStats.size - 50000;
39
+ const logStream = createReadStream(this.configService.LOG_FILE, { start: logStartPosition });
40
+ logStream.on('data', (buffer) => {
41
+ if (filter) {
42
+ const lines = buffer.toString('utf8').replace(filterRegex, '').split('\n');
43
+ const filteredLines = lines.filter((line) => {
44
+ const clearLine = strip(line);
45
+ if (isNewEntry(clearLine)) {
46
+ isRelatedToFilter = filter.some((key) => clearLine.includes(key));
47
+ }
48
+ if (isRelatedToFilter) {
49
+ return line;
50
+ }
51
+ });
52
+ socket.emit('stdout', filteredLines.join('\n\r') + '\n\r');
53
+ }
54
+ else {
55
+ socket.emit('stdout', buffer.toString('utf8').split('\n').join('\n\r') + '\n\r');
56
+ }
57
+ });
58
+ logStream.on('end', () => {
59
+ logStream.close();
60
+ });
61
+ }
62
+ catch (error) {
63
+ socket.emit('stdout', red(`Failed to read log file: ${error.message}\n\r`));
64
+ return;
65
+ }
66
+ if (!this.nativeTail) {
67
+ this.nativeTail = new Tail(this.configService.LOG_FILE, {
68
+ fromBeginning: false,
69
+ useWatchFile: true,
70
+ fsWatchOptions: {
71
+ interval: 200,
72
+ },
73
+ });
74
+ }
75
+ else if (this.nativeTail?.listenerCount('line') === 0) {
76
+ this.nativeTail.watch();
77
+ }
78
+ // watch for lines and emit to client
79
+ const onLine = (line) => {
80
+ if (filter) {
81
+ const newLine = line.replace(filterRegex, '');
82
+ const clearLine = strip(line);
83
+ if (isNewEntry(clearLine)) {
84
+ isRelatedToFilter = filter.some((key) => clearLine.includes(key));
85
+ }
86
+ if (isRelatedToFilter) {
87
+ socket.emit('stdout', newLine + '\n\r');
88
+ }
89
+ }
90
+ else {
91
+ socket.emit('stdout', line + '\n\r');
92
+ }
93
+ };
94
+ const onError = (err) => {
95
+ socket.emit('stdout', err.message + '\n\r');
96
+ };
97
+ this.nativeTail?.on('line', onLine);
98
+ this.nativeTail?.on('error', onError);
99
+ // cleanup on disconnect
100
+ const onEnd = () => {
101
+ this.nativeTail?.removeListener('line', onLine);
102
+ this.nativeTail?.removeListener('error', onError);
103
+ // stop watching the file if there are no other watchers
104
+ if (this.nativeTail?.listenerCount('line') === 0) {
105
+ this.nativeTail.unwatch();
106
+ }
107
+ socket.removeAllListeners('end');
108
+ socket.removeAllListeners('disconnect');
109
+ };
110
+ socket.on('end', onEnd.bind(this));
111
+ socket.on('disconnect', onEnd.bind(this));
112
+ }
113
+ }
114
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../../../../src/api/websocket/nsp/logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Namespace, Server } from 'socket.io';
2
+ import type { SocketNsp } from '../types.js';
3
+ export declare class MainNamespace {
4
+ nsp: Namespace;
5
+ nspName: SocketNsp;
6
+ constructor(io: Server);
7
+ }
@@ -0,0 +1,8 @@
1
+ export class MainNamespace {
2
+ nsp;
3
+ nspName = '/camera.ui';
4
+ constructor(io) {
5
+ this.nsp = io.of(this.nspName);
6
+ }
7
+ }
8
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../../../src/api/websocket/nsp/main.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,aAAa;IACjB,GAAG,CAAY;IACf,OAAO,GAAc,YAAY,CAAC;IAEzC,YAAY,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ import type { Namespace, Server } from 'socket.io';
2
+ import type { ProcessInfo, ServerProcesses, SocketNsp, WorkerProcesses } from '../types.js';
3
+ export declare class MetricsNamespace {
4
+ nsp: Namespace;
5
+ nspName: SocketNsp;
6
+ private pluginManager;
7
+ private frameManager;
8
+ private go2rtc;
9
+ private natsServer;
10
+ private processServerHistory;
11
+ private processGo2RtcHistory;
12
+ private processNatHistory;
13
+ private processPluginsHistory;
14
+ private processFrameWorkerHistory;
15
+ private systemHistory;
16
+ constructor(io: Server);
17
+ getSystemInfos(payload: any, callback?: Function): Promise<ProcessInfo[]>;
18
+ getServerProcessesInfos(payload: any, callback?: Function): Promise<ServerProcesses>;
19
+ getPluginsProcessesInfo(payload: any, callback?: Function): Promise<WorkerProcesses>;
20
+ getFrameWorkerProcessesInfo(payload: any, callback?: Function): Promise<WorkerProcesses>;
21
+ private getProcesses;
22
+ private getSystemLoad;
23
+ private getSystemLoadAlt;
24
+ }
@@ -0,0 +1,166 @@
1
+ import { cpus, loadavg, platform } from 'node:os';
2
+ import { currentLoad, mem, processes } from 'systeminformation';
3
+ import { container } from 'tsyringe';
4
+ export class MetricsNamespace {
5
+ nsp;
6
+ nspName = '/metrics';
7
+ pluginManager;
8
+ frameManager;
9
+ go2rtc;
10
+ natsServer;
11
+ processServerHistory = [];
12
+ processGo2RtcHistory = [];
13
+ processNatHistory = [];
14
+ processPluginsHistory = {};
15
+ processFrameWorkerHistory = {};
16
+ systemHistory = [];
17
+ constructor(io) {
18
+ this.pluginManager = container.resolve('pluginManager');
19
+ this.frameManager = container.resolve('frameManager');
20
+ this.go2rtc = container.resolve('go2rtc');
21
+ this.natsServer = container.resolve('natsServer');
22
+ this.nsp = io.of(this.nspName);
23
+ this.nsp.on('connection', (socket) => {
24
+ socket.on('get-system-info', this.getSystemInfos.bind(this));
25
+ socket.on('get-server-process-info', this.getServerProcessesInfos.bind(this));
26
+ socket.on('get-plugins-process-info', this.getPluginsProcessesInfo.bind(this));
27
+ socket.on('get-frameworker-process-info', this.getFrameWorkerProcessesInfo.bind(this));
28
+ });
29
+ if (platform() === 'freebsd') {
30
+ this.getSystemLoad = this.getSystemLoadAlt;
31
+ }
32
+ setInterval(async () => {
33
+ this.getProcesses();
34
+ this.getSystemLoad();
35
+ }, 60000);
36
+ }
37
+ async getSystemInfos(payload, callback) {
38
+ if (!this.systemHistory.length) {
39
+ await this.getSystemLoad();
40
+ }
41
+ callback?.(this.systemHistory);
42
+ return this.systemHistory;
43
+ }
44
+ async getServerProcessesInfos(payload, callback) {
45
+ if (!this.processServerHistory.length || !this.processGo2RtcHistory.length || !this.processNatHistory.length) {
46
+ await this.getProcesses();
47
+ }
48
+ const data = {
49
+ server: this.processServerHistory,
50
+ go2rtc: this.processGo2RtcHistory,
51
+ nats: this.processNatHistory,
52
+ };
53
+ callback?.(data);
54
+ return data;
55
+ }
56
+ async getPluginsProcessesInfo(payload, callback) {
57
+ if (this.pluginManager.pluginWorkers.size > 0 && !Object.keys(this.processPluginsHistory).length) {
58
+ await this.getProcesses();
59
+ }
60
+ callback?.(this.processPluginsHistory);
61
+ return this.processPluginsHistory;
62
+ }
63
+ async getFrameWorkerProcessesInfo(payload, callback) {
64
+ if (this.frameManager.frameWorkers.size > 0 && !Object.keys(this.processFrameWorkerHistory).length) {
65
+ await this.getProcesses();
66
+ }
67
+ callback?.(this.processFrameWorkerHistory);
68
+ return this.processFrameWorkerHistory;
69
+ }
70
+ async getProcesses() {
71
+ const allProcesses = await processes();
72
+ const currentTime = Date.now();
73
+ const updateProcessHistory = (process, name, history) => {
74
+ const processInfo = {
75
+ name,
76
+ pid: process.pid,
77
+ cpuLoad: (process.cpu || 0.1).toFixed(2),
78
+ memLoad: (process.mem || 0.1).toFixed(2),
79
+ timestamp: currentTime,
80
+ };
81
+ history.push(processInfo);
82
+ history.splice(0, Math.max(0, history.length - 60)); // Keep only the last 60 entries
83
+ };
84
+ const updateWorkerHistory = (process, name, history) => {
85
+ if (!history[name]) {
86
+ history[name] = [];
87
+ }
88
+ updateProcessHistory(process, name, history[name]);
89
+ };
90
+ const processList = allProcesses.list;
91
+ const pluginWorkers = Array.from(this.pluginManager.pluginWorkers);
92
+ const frameWorkers = Array.from(this.frameManager.frameWorkers);
93
+ // Update server process
94
+ const serverProcess = processList.find((p) => p.pid === process.pid);
95
+ if (serverProcess)
96
+ updateProcessHistory(serverProcess, 'server', this.processServerHistory);
97
+ // Update go2rtc process
98
+ const go2rtcProcess = processList.find((p) => p.pid === this.go2rtc.getPID());
99
+ if (go2rtcProcess)
100
+ updateProcessHistory(go2rtcProcess, 'go2rtc', this.processGo2RtcHistory);
101
+ // Update NATS process
102
+ const natsProcess = processList.find((p) => p.pid === this.natsServer.getPID());
103
+ if (natsProcess)
104
+ updateProcessHistory(natsProcess, 'nats', this.processNatHistory);
105
+ // Update plugin processes
106
+ pluginWorkers.forEach(([pluginName, worker]) => {
107
+ const pluginProcess = processList.find((p) => p.pid === worker.getPID());
108
+ if (pluginProcess)
109
+ updateWorkerHistory(pluginProcess, pluginName, this.processPluginsHistory);
110
+ });
111
+ // Clean up old plugin entries
112
+ Object.keys(this.processPluginsHistory).forEach((name) => {
113
+ if (!pluginWorkers.some(([pluginName]) => pluginName === name)) {
114
+ delete this.processPluginsHistory[name];
115
+ }
116
+ });
117
+ // Update frame worker processes
118
+ frameWorkers.forEach(([, worker]) => {
119
+ const frameProcess = processList.find((p) => p.pid === worker.getPID());
120
+ if (frameProcess)
121
+ updateWorkerHistory(frameProcess, worker.name, this.processFrameWorkerHistory);
122
+ });
123
+ // Clean up old frame worker entries
124
+ Object.keys(this.processFrameWorkerHistory).forEach((name) => {
125
+ if (!frameWorkers.some(([, worker]) => worker.name === name)) {
126
+ delete this.processFrameWorkerHistory[name];
127
+ }
128
+ });
129
+ // Prepare data for emission
130
+ const data = {
131
+ server: this.processServerHistory[this.processServerHistory.length - 1],
132
+ go2rtc: this.processGo2RtcHistory[this.processGo2RtcHistory.length - 1],
133
+ nats: this.processNatHistory[this.processNatHistory.length - 1],
134
+ plugins: Object.fromEntries(Object.entries(this.processPluginsHistory).map(([name, history]) => [name, history[history.length - 1]])),
135
+ workers: Object.fromEntries(Object.entries(this.processFrameWorkerHistory).map(([name, history]) => [name, history[history.length - 1]])),
136
+ };
137
+ this.nsp.emit('process-infos', data);
138
+ }
139
+ async getSystemLoad() {
140
+ const load = (await currentLoad()).currentLoad;
141
+ const memory = await mem();
142
+ const memoryFreePercent = ((memory.total - memory.available) / memory.total) * 100;
143
+ this.systemHistory.push({
144
+ name: 'system',
145
+ cpuLoad: load.toFixed(2),
146
+ memLoad: memoryFreePercent.toFixed(2),
147
+ timestamp: Date.now(),
148
+ });
149
+ this.systemHistory.splice(0, Math.max(0, this.systemHistory.length - 60)); // Keep only the last 60 entries
150
+ this.nsp.emit('system-infos', this.systemHistory[this.systemHistory.length - 1]);
151
+ }
152
+ async getSystemLoadAlt() {
153
+ const load = (loadavg()[0] * 100) / cpus().length;
154
+ const memory = await mem();
155
+ const memoryFreePercent = ((memory.total - memory.available) / memory.total) * 100;
156
+ this.systemHistory.push({
157
+ name: 'system',
158
+ cpuLoad: load.toFixed(2),
159
+ memLoad: memoryFreePercent.toFixed(2),
160
+ timestamp: Date.now(),
161
+ });
162
+ this.systemHistory.splice(0, Math.max(0, this.systemHistory.length - 60)); // Keep only the last 60 entries
163
+ this.nsp.emit('system-infos', this.systemHistory[this.systemHistory.length - 1]);
164
+ }
165
+ }
166
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../../../src/api/websocket/nsp/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Namespace, Server } from 'socket.io';
2
+ import type { UiNotification } from '../../types/index.js';
3
+ import type { SocketNsp } from '../types.js';
4
+ export declare class NotificationsNamespace {
5
+ nsp: Namespace;
6
+ nspName: SocketNsp;
7
+ private logger;
8
+ constructor(io: Server);
9
+ clearNotifications(): void;
10
+ getNotifications(payload: any, callback?: Function): UiNotification[];
11
+ removeNotification(id?: string): void;
12
+ }
@@ -0,0 +1,30 @@
1
+ import { container } from 'tsyringe';
2
+ export class NotificationsNamespace {
3
+ nsp;
4
+ nspName = '/notifications';
5
+ logger;
6
+ constructor(io) {
7
+ this.logger = container.resolve('logger');
8
+ this.nsp = io.of(this.nspName);
9
+ this.nsp.on('connection', (socket) => {
10
+ socket.on('clear-notifications', this.clearNotifications.bind(this));
11
+ socket.on('get-notifications', this.getNotifications.bind(this));
12
+ socket.on('remove-notification', (id) => this.removeNotification(id));
13
+ });
14
+ }
15
+ clearNotifications() {
16
+ this.logger.notifications.splice(0, this.logger.notifications.length);
17
+ }
18
+ getNotifications(payload, callback) {
19
+ const notifications = this.logger.notifications;
20
+ callback?.(notifications);
21
+ return notifications;
22
+ }
23
+ removeNotification(id) {
24
+ const notificationIndex = this.logger.notifications.findIndex((notification) => notification._id === id);
25
+ if (notificationIndex !== -1) {
26
+ this.logger.notifications.splice(notificationIndex, 1);
27
+ }
28
+ }
29
+ }
30
+ //# sourceMappingURL=notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../../../../src/api/websocket/nsp/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAOrC,MAAM,OAAO,sBAAsB;IAC1B,GAAG,CAAY;IACf,OAAO,GAAc,gBAAgB,CAAC;IAErC,MAAM,CAAgB;IAE9B,YAAY,EAAU;QACpB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,CAAgB,QAAQ,CAAC,CAAC;QAEzD,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAc,EAAE,EAAE;YAC3C,MAAM,CAAC,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,kBAAkB;QACvB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAEM,gBAAgB,CAAC,OAAY,EAAE,QAAmB;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAEhD,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC;QAC1B,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,kBAAkB,CAAC,EAAW;QACnC,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QAEzG,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { PLUGIN_STATUS } from '@camera.ui/plugineer';
2
+ import type { Namespace, Server } from 'socket.io';
3
+ import type { SocketNsp } from '../types.js';
4
+ export declare class PluginsNamespace {
5
+ nsp: Namespace;
6
+ nspName: SocketNsp;
7
+ private pluginManager;
8
+ constructor(io: Server);
9
+ pluginStatus(pluginName: string, callback?: Function): Promise<void | {
10
+ pluginName: string;
11
+ status: PLUGIN_STATUS;
12
+ }>;
13
+ }
@@ -0,0 +1,29 @@
1
+ import { container } from 'tsyringe';
2
+ export class PluginsNamespace {
3
+ nsp;
4
+ nspName = '/plugins';
5
+ pluginManager;
6
+ constructor(io) {
7
+ this.pluginManager = container.resolve('pluginManager');
8
+ this.nsp = io.of(this.nspName);
9
+ this.nsp.on('connection', (socket) => {
10
+ // socket.on('get-plugin-info', () => this.pluginInfo(socket));
11
+ socket.on('get-plugin-status', this.pluginStatus.bind(this));
12
+ });
13
+ }
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ // public async pluginInfo(socket: Socket) {}
16
+ async pluginStatus(pluginName, callback) {
17
+ const pluginWorker = this.pluginManager.pluginWorkers.get(pluginName);
18
+ if (pluginWorker) {
19
+ const status = pluginWorker.status;
20
+ const data = {
21
+ pluginName,
22
+ status,
23
+ };
24
+ callback?.(data);
25
+ return data;
26
+ }
27
+ }
28
+ }
29
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../../../../src/api/websocket/nsp/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAOrC,MAAM,OAAO,gBAAgB;IACpB,GAAG,CAAY;IACf,OAAO,GAAc,UAAU,CAAC;IAE/B,aAAa,CAAgB;IAErC,YAAY,EAAU;QACpB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,OAAO,CAAgB,eAAe,CAAC,CAAC;QAEvE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAc,EAAE,EAAE;YAC3C,+DAA+D;YAC/D,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,6CAA6C;IAEtC,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAmB;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEtE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;YACnC,MAAM,IAAI,GAAG;gBACX,UAAU;gBACV,MAAM;aACP,CAAC;YAEF,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import type { Namespace, Server } from 'socket.io';
2
+ import type { INpmPluginState } from '../../types/index.js';
3
+ import type { SocketNsp } from '../types.js';
4
+ export declare class ServerNamespace {
5
+ nsp: Namespace;
6
+ nspName: SocketNsp;
7
+ private logger;
8
+ private pluginsService;
9
+ private serverUpdate;
10
+ private pluginUpdates;
11
+ constructor(io: Server);
12
+ getUpdates(payload: any, callback?: Function): {
13
+ server?: INpmPluginState;
14
+ plugins: INpmPluginState[];
15
+ };
16
+ checkUpdate(): Promise<void>;
17
+ checkServerUpdate(): Promise<void>;
18
+ checkPluginUpdates(): Promise<void>;
19
+ private getPluginFromNpm;
20
+ private getAvailablePluginVersions;
21
+ }
@@ -0,0 +1,134 @@
1
+ import { getNpmPath } from '@camera.ui/common/npm';
2
+ import { compareVersions } from 'compare-versions';
3
+ import { exec } from 'node:child_process';
4
+ import { promisify } from 'node:util';
5
+ import { gt, parse } from 'semver';
6
+ import { container } from 'tsyringe';
7
+ import { ConfigService } from '../../../services/config/index.js';
8
+ import { PluginsService } from '../../services/plugins.service.js';
9
+ import fetchInstance from '../../utils/fetch.js';
10
+ const execAsync = promisify(exec);
11
+ export class ServerNamespace {
12
+ nsp;
13
+ nspName = '/server';
14
+ logger;
15
+ pluginsService;
16
+ serverUpdate;
17
+ pluginUpdates = [];
18
+ constructor(io) {
19
+ this.logger = container.resolve('logger');
20
+ this.pluginsService = new PluginsService();
21
+ this.nsp = io.of(this.nspName);
22
+ this.nsp.on('connection', (socket) => {
23
+ socket.on('get-updates', this.getUpdates.bind(this));
24
+ });
25
+ setInterval(() => {
26
+ this.checkUpdate();
27
+ }, 60000);
28
+ this.checkUpdate();
29
+ }
30
+ getUpdates(payload, callback) {
31
+ const data = {
32
+ server: this.serverUpdate,
33
+ plugins: this.pluginUpdates,
34
+ };
35
+ callback?.(data);
36
+ return data;
37
+ }
38
+ async checkUpdate() {
39
+ await Promise.allSettled([this.checkServerUpdate(), this.checkPluginUpdates()]);
40
+ this.nsp.emit('updates', this.getUpdates({}));
41
+ }
42
+ async checkServerUpdate() {
43
+ try {
44
+ // TODO: Change on release
45
+ const npmPath = getNpmPath().join(' ');
46
+ const { stdout, stderr } = await execAsync(`${npmPath} view camera.ui3 versions dist-tags --json`);
47
+ if (stderr) {
48
+ return;
49
+ }
50
+ const data = JSON.parse(stdout);
51
+ const currentVersion = ConfigService.VERSION;
52
+ const latestVersion = data['dist-tags'].latest;
53
+ const latestAlpha = data['dist-tags'].alpha;
54
+ const updateAvailableLatest = compareVersions(latestVersion, currentVersion) === 1;
55
+ const updateAvailableAlpha = compareVersions(latestAlpha, currentVersion) === 1;
56
+ const updateAvailable = updateAvailableLatest ? latestVersion : updateAvailableAlpha ? latestAlpha : undefined;
57
+ this.serverUpdate = {
58
+ updateAvailable: updateAvailableLatest,
59
+ betaUpdateAvailable: updateAvailableAlpha,
60
+ latestVersion: updateAvailable,
61
+ };
62
+ if (updateAvailable) {
63
+ this.logger.notify('Update', 'New system update available', 'info', '/settings/system');
64
+ }
65
+ }
66
+ catch {
67
+ //
68
+ }
69
+ }
70
+ async checkPluginUpdates() {
71
+ try {
72
+ const plugins = this.pluginsService.listPlugins();
73
+ const pluginStates = [];
74
+ for (const plugin of plugins) {
75
+ const pluginState = await this.getPluginFromNpm(plugin.info);
76
+ if (pluginState.updateAvailable || pluginState.betaUpdateAvailable) {
77
+ pluginStates.push(pluginState);
78
+ }
79
+ }
80
+ this.pluginUpdates = pluginStates;
81
+ if (pluginStates.length > 0) {
82
+ this.logger.notify('Plugin Update', 'New plugin updates available', 'info', '/plugins');
83
+ }
84
+ }
85
+ catch {
86
+ //
87
+ }
88
+ }
89
+ async getPluginFromNpm(plugin) {
90
+ const pluginState = {
91
+ updateAvailable: false,
92
+ betaUpdateAvailable: false,
93
+ };
94
+ try {
95
+ const response = await fetchInstance(`https://registry.npmjs.org/${encodeURIComponent(plugin.pluginName).replace(/%40/g, '@')}/latest`, {
96
+ method: 'GET',
97
+ });
98
+ const pkg = (await response.json());
99
+ pluginState.latestVersion = pkg.version;
100
+ pluginState.updateAvailable = gt(pkg.version, plugin.installedVersion);
101
+ // check for beta updates, if no latest version is available
102
+ if (!pluginState.updateAvailable) {
103
+ const pluginVersion = parse(plugin.installedVersion);
104
+ if (pluginVersion?.prerelease[0] === 'beta' && gt(plugin.installedVersion, pluginState.latestVersion || '0.0.1')) {
105
+ const versions = await this.getAvailablePluginVersions(plugin.pluginName);
106
+ if (versions.tags.beta && gt(versions.tags.beta, plugin.installedVersion)) {
107
+ pluginState.betaUpdateAvailable = true;
108
+ pluginState.latestVersion = versions.tags.beta;
109
+ }
110
+ }
111
+ }
112
+ }
113
+ catch {
114
+ pluginState.latestVersion = undefined;
115
+ pluginState.updateAvailable = false;
116
+ pluginState.betaUpdateAvailable = false;
117
+ }
118
+ return pluginState;
119
+ }
120
+ async getAvailablePluginVersions(pluginName) {
121
+ const response = await fetchInstance(`https://registry.npmjs.org/${encodeURIComponent(pluginName).replace(/%40/g, '@')}`, {
122
+ method: 'GET',
123
+ headers: {
124
+ accept: 'application/vnd.npm.install-v1+json', // only return minimal information
125
+ },
126
+ });
127
+ const pkg = (await response.json());
128
+ return {
129
+ tags: pkg['dist-tags'],
130
+ versions: Object.keys(pkg.versions).reverse(),
131
+ };
132
+ }
133
+ }
134
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../../../src/api/websocket/nsp/server.ts"],"names":[],"mappings":"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"}