@camera.ui/server 0.0.50-internal.0 → 0.0.50-internal.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/dist/interface/index.html +44 -44
  2. package/dist/interface/js/{@primevue.OhxoO3MD.0.0.50-internal.0.js → @primevue.BAIU_p3r.0.0.50-internal.2.js} +1 -1
  3. package/dist/interface/js/{@tanstack.D1IL6eOv.0.0.50-internal.0.js → @tanstack.mdCorqzE.0.0.50-internal.2.js} +1 -1
  4. package/dist/interface/js/{@vee-validate.BGPyWWTh.0.0.50-internal.0.js → @vee-validate.D0vsSsly.0.0.50-internal.2.js} +1 -1
  5. package/dist/interface/js/{@vueuse.BsKtqdiG.0.0.50-internal.0.js → @vueuse.we5ZpWr2.0.0.50-internal.2.js} +1 -1
  6. package/dist/interface/js/{Adminpanel.D93Kvbwp.0.0.50-internal.0.js → Adminpanel.9AEBJ3H1.0.0.50-internal.2.js} +1 -1
  7. package/dist/interface/js/{Camera.DF2l3OMA.0.0.50-internal.0.js → Camera.CZcnEH0C.0.0.50-internal.2.js} +1 -1
  8. package/dist/interface/js/{Cameras.YzvZccdv.0.0.50-internal.0.js → Cameras.DE0LkcGu.0.0.50-internal.2.js} +2 -2
  9. package/dist/interface/js/Cammesh.CVvmkelB.0.0.50-internal.2.js +1 -0
  10. package/dist/interface/js/{Camview.CB7_HnoQ.0.0.50-internal.0.js → Camview.CUr4pGoU.0.0.50-internal.2.js} +1 -1
  11. package/dist/interface/js/{Config.BwflsWTm.0.0.50-internal.0.js → Config.CaJhu4fF.0.0.50-internal.2.js} +2 -2
  12. package/dist/interface/js/{Console.DZM8pN8Q.0.0.50-internal.0.js → Console.5VUmgryj.0.0.50-internal.2.js} +1 -1
  13. package/dist/interface/js/{CuiConsole.BXXU7Gth.0.0.50-internal.0.js → CuiConsole.iYmUxAR5.0.0.50-internal.2.js} +1 -1
  14. package/dist/interface/js/{CuiPluginCard.YFOrpbVD.0.0.50-internal.0.js → CuiPluginCard.DXPyE5mF.0.0.50-internal.2.js} +1 -1
  15. package/dist/interface/js/{CuiTimeline.VV5KSJd5.0.0.50-internal.0.js → CuiTimeline.BqtlOFnV.0.0.50-internal.2.js} +1 -1
  16. package/dist/interface/js/{FirstSteps.b-nvymgb.0.0.50-internal.0.js → FirstSteps.C_RI-SDQ.0.0.50-internal.2.js} +1 -1
  17. package/dist/interface/js/{Plugin.BOMpVEwM.0.0.50-internal.0.js → Plugin.Ch_v02eN.0.0.50-internal.2.js} +1 -1
  18. package/dist/interface/js/{Plugins.DdPwaUDA.0.0.50-internal.0.js → Plugins.BpXAYgSG.0.0.50-internal.2.js} +1 -1
  19. package/dist/interface/js/Recordings.CIKHJytH.0.0.50-internal.2.js +1 -0
  20. package/dist/interface/js/{Settings.D24ttaPu.0.0.50-internal.0.js → Settings.BcLoGNEy.0.0.50-internal.2.js} +1 -1
  21. package/dist/interface/js/{SettingsAccount.ms3aqz4E.0.0.50-internal.0.js → SettingsAccount.DMROW8kx.0.0.50-internal.2.js} +1 -1
  22. package/dist/interface/js/SettingsAppearance.CUaHpihp.0.0.50-internal.2.js +1 -0
  23. package/dist/interface/js/{SettingsAppearance.vue_vue_type_script_setup_true_lang.CBQ6lL3T.0.0.50-internal.0.js → SettingsAppearance.vue_vue_type_script_setup_true_lang.BuKZ-Uco.0.0.50-internal.2.js} +1 -1
  24. package/dist/interface/js/{SettingsBackup.BPEc4Rjg.0.0.50-internal.0.js → SettingsBackup.0QdwFSpv.0.0.50-internal.2.js} +1 -1
  25. package/dist/interface/js/SettingsRecordings.B-aj0U8_.0.0.50-internal.2.js +1 -0
  26. package/dist/interface/js/{SettingsRemote.BL5nXbUT.0.0.50-internal.0.js → SettingsRemote.Bi1YAJ76.0.0.50-internal.2.js} +1 -1
  27. package/dist/interface/js/{SettingsSystem.D7T0AIpm.0.0.50-internal.0.js → SettingsSystem.CAx66Iir.0.0.50-internal.2.js} +1 -1
  28. package/dist/interface/js/{SettingsUsers.1u0vCOVG.0.0.50-internal.0.js → SettingsUsers.CQcDtGy1.0.0.50-internal.2.js} +1 -1
  29. package/dist/interface/js/{VersionsHandler.vue_vue_type_script_setup_true_lang.xDishkkS.0.0.50-internal.0.js → VersionsHandler.vue_vue_type_script_setup_true_lang.BhXMzIhV.0.0.50-internal.2.js} +1 -1
  30. package/dist/interface/js/{ace-builds.D1nmvCwb.0.0.50-internal.0.js → ace-builds.C0sCXSu5.0.0.50-internal.2.js} +2 -2
  31. package/dist/interface/js/{ace.config.G96T2z54.0.0.50-internal.0.js → ace.config.DNqPWa0Q.0.0.50-internal.2.js} +1 -1
  32. package/dist/interface/js/{backup.B_Gzxtp_.0.0.50-internal.0.js → backup.DAXgG3bP.0.0.50-internal.2.js} +1 -1
  33. package/dist/interface/js/{chart.js.CP_nMnnf.0.0.50-internal.0.js → chart.js.Bq3YocRX.0.0.50-internal.2.js} +1 -1
  34. package/dist/interface/js/{close-circle.DYLuVIOg.0.0.50-internal.0.js → close-circle.9rxyNw0z.0.0.50-internal.2.js} +1 -1
  35. package/dist/interface/js/{dnd-core.T9OeW7mu.0.0.50-internal.0.js → dnd-core.BuEvHAsS.0.0.50-internal.2.js} +1 -1
  36. package/dist/interface/js/{draggabilly.D3zGcBb3.0.0.50-internal.0.js → draggabilly.DUdE08x8.0.0.50-internal.2.js} +1 -1
  37. package/dist/interface/js/{engine.io-client.kITRnq-g.0.0.50-internal.0.js → engine.io-client.DWU6YI8o.0.0.50-internal.2.js} +1 -1
  38. package/dist/interface/js/{fast-deep-equal.Bpc9mIsj.0.0.50-internal.0.js → fast-deep-equal.BpPyC6E4.0.0.50-internal.2.js} +1 -1
  39. package/dist/interface/js/{highlight.js.BlSXU-Wb.0.0.50-internal.0.js → highlight.js.BoR2Rhdd.0.0.50-internal.2.js} +1 -1
  40. package/dist/interface/js/{linkify-it.C3N1lWsJ.0.0.50-internal.0.js → linkify-it.BXzPONHs.0.0.50-internal.2.js} +1 -1
  41. package/dist/interface/js/{main.D0YR3Jat.0.0.50-internal.0.js → main.DwcBYfWc.0.0.50-internal.2.js} +3 -3
  42. package/dist/interface/js/{markdown-it.Dj0dt5s2.0.0.50-internal.0.js → markdown-it.BUDVOjPt.0.0.50-internal.2.js} +1 -1
  43. package/dist/interface/js/{nprogress.BwQWDcGj.0.0.50-internal.0.js → nprogress.CsG-OBoI.0.0.50-internal.2.js} +1 -1
  44. package/dist/interface/js/{pinia.DRh7plEC.0.0.50-internal.0.js → pinia.CqEQao5R.0.0.50-internal.2.js} +1 -1
  45. package/dist/interface/js/{primevue.Cl58krXf.0.0.50-internal.0.js → primevue.D91sslRx.0.0.50-internal.2.js} +1 -1
  46. package/dist/interface/js/{qrcode.C1sDj6P8.0.0.50-internal.0.js → qrcode.SdSTPzZO.0.0.50-internal.2.js} +1 -1
  47. package/dist/interface/js/{react-dnd-touch-backend.BA4WhUJo.0.0.50-internal.0.js → react-dnd-touch-backend.BwroebQ4.0.0.50-internal.2.js} +1 -1
  48. package/dist/interface/js/{refresh-rounded.D_SmhhUf.0.0.50-internal.0.js → refresh-rounded.DxM48YSv.0.0.50-internal.2.js} +1 -1
  49. package/dist/interface/js/{rxjs.C-fTBwEO.0.0.50-internal.0.js → rxjs.Cmpbnzo4.0.0.50-internal.2.js} +1 -1
  50. package/dist/interface/js/{socket.io-client.DKrRxgjP.0.0.50-internal.0.js → socket.io-client.DF2YgZo1.0.0.50-internal.2.js} +1 -1
  51. package/dist/interface/js/{socket.io-parser.EXj3YDH2.0.0.50-internal.0.js → socket.io-parser.BUs2ineY.0.0.50-internal.2.js} +1 -1
  52. package/dist/interface/js/{system.CY8rGd-Q.0.0.50-internal.0.js → system.DmkT2LKx.0.0.50-internal.2.js} +1 -1
  53. package/dist/interface/js/{trash-fill.CMnCN3Oy.0.0.50-internal.0.js → trash-fill.dPzyZDVa.0.0.50-internal.2.js} +1 -1
  54. package/dist/interface/js/{unidragger.D0w6Tqtt.0.0.50-internal.0.js → unidragger.y2ZlFveS.0.0.50-internal.2.js} +1 -1
  55. package/dist/interface/js/{vee-validate.BeiObIH8.0.0.50-internal.0.js → vee-validate.Y-alCADW.0.0.50-internal.2.js} +1 -1
  56. package/dist/interface/js/{vue-chartjs.DtdZdiYw.0.0.50-internal.0.js → vue-chartjs.sRVFTqDf.0.0.50-internal.2.js} +1 -1
  57. package/dist/interface/js/{vue-i18n.BW2bx_6z.0.0.50-internal.0.js → vue-i18n.D5WrXOZa.0.0.50-internal.2.js} +1 -1
  58. package/dist/interface/js/{vue-inline-svg.BJkQGmKz.0.0.50-internal.0.js → vue-inline-svg.R0uz_abA.0.0.50-internal.2.js} +1 -1
  59. package/dist/interface/js/{vue-router.B2mOXHaC.0.0.50-internal.0.js → vue-router.65mnGy-o.0.0.50-internal.2.js} +1 -1
  60. package/dist/interface/js/{vue-zoomable.BKDyCJE7.0.0.50-internal.0.js → vue-zoomable.B1Qop6Uu.0.0.50-internal.2.js} +1 -1
  61. package/dist/interface/js/{vue3-dnd.DRK24CBp.0.0.50-internal.0.js → vue3-dnd.CwmyAcir.0.0.50-internal.2.js} +1 -1
  62. package/dist/interface/js/{zoom-out.DxvzgVEo.0.0.50-internal.0.js → zoom-out.CMPALvRh.0.0.50-internal.2.js} +1 -1
  63. package/dist/interface/sw.js +1 -1
  64. package/dist/server/package.json +1 -1
  65. package/dist/server/src/rpc/server.js +4 -1
  66. package/dist/server/src/rpc/server.js.map +1 -1
  67. package/package.json +1 -1
  68. package/.prettierignore +0 -12
  69. package/.prettierrc.json +0 -12
  70. package/artillery.yaml +0 -29
  71. package/bin/cameraui-server.ts +0 -11
  72. package/dist/interface/js/Cammesh.D-6dAROQ.0.0.50-internal.0.js +0 -1
  73. package/dist/interface/js/Recordings.DhxjIW7e.0.0.50-internal.0.js +0 -1
  74. package/dist/interface/js/SettingsAppearance.DsTjKXk1.0.0.50-internal.0.js +0 -1
  75. package/dist/interface/js/SettingsRecordings.DgW7M0jj.0.0.50-internal.0.js +0 -1
  76. package/eslint.config.js +0 -103
  77. package/localdeps.txt +0 -10
  78. package/mypy.ini +0 -30
  79. package/requirements.txt +0 -15
  80. package/ruff.toml +0 -90
  81. package/src/__init__.py +0 -0
  82. package/src/_camera_ui_tools/__init__.py +0 -0
  83. package/src/_camera_ui_tools/__pycache__/__init__.cpython-311.pyc +0 -0
  84. package/src/api/controllers/api.controller.ts +0 -19
  85. package/src/api/controllers/auth.controller.ts +0 -294
  86. package/src/api/controllers/backup.controller.ts +0 -72
  87. package/src/api/controllers/cameras.controller.ts +0 -1029
  88. package/src/api/controllers/config.controller.ts +0 -102
  89. package/src/api/controllers/files.controller.ts +0 -35
  90. package/src/api/controllers/frameWorkers.controller.ts +0 -109
  91. package/src/api/controllers/plugins.controller.ts +0 -1206
  92. package/src/api/controllers/system.controller.ts +0 -273
  93. package/src/api/controllers/users.controller.ts +0 -648
  94. package/src/api/database/checks.ts +0 -268
  95. package/src/api/database/constants.ts +0 -8
  96. package/src/api/database/index.ts +0 -262
  97. package/src/api/database/migration.ts +0 -62
  98. package/src/api/database/selfcheck.ts +0 -492
  99. package/src/api/database/types.ts +0 -104
  100. package/src/api/go2rtc/api/application.ts +0 -48
  101. package/src/api/go2rtc/api/config.ts +0 -61
  102. package/src/api/go2rtc/api/discover.ts +0 -197
  103. package/src/api/go2rtc/api/index.ts +0 -49
  104. package/src/api/go2rtc/api/snapshot.ts +0 -44
  105. package/src/api/go2rtc/api/streams.ts +0 -168
  106. package/src/api/go2rtc/index.ts +0 -43
  107. package/src/api/go2rtc/queue.ts +0 -50
  108. package/src/api/go2rtc/types.ts +0 -174
  109. package/src/api/index.ts +0 -286
  110. package/src/api/middlewares/authPermission.middleware.ts +0 -46
  111. package/src/api/middlewares/authValidation.middleware.ts +0 -160
  112. package/src/api/middlewares/pagination.middleware.ts +0 -67
  113. package/src/api/middlewares/socketAuth.middleware.ts +0 -136
  114. package/src/api/plugins/header.plugin.ts +0 -15
  115. package/src/api/plugins/logger.plugin.ts +0 -44
  116. package/src/api/plugins/proxy.plugin.ts +0 -255
  117. package/src/api/plugins/socket.plugin.ts +0 -28
  118. package/src/api/plugins/system.plugin.ts +0 -48
  119. package/src/api/plugins/useragent.plugin.ts +0 -19
  120. package/src/api/routes/api.routes.ts +0 -10
  121. package/src/api/routes/auth.routes.ts +0 -56
  122. package/src/api/routes/backup.routes.ts +0 -28
  123. package/src/api/routes/cameras.routes.ts +0 -281
  124. package/src/api/routes/config.routes.ts +0 -66
  125. package/src/api/routes/files.routes.ts +0 -15
  126. package/src/api/routes/frameWorkers.routes.ts +0 -39
  127. package/src/api/routes/index.ts +0 -37
  128. package/src/api/routes/plugins.routes.ts +0 -420
  129. package/src/api/routes/system.routes.ts +0 -101
  130. package/src/api/routes/users.routes.ts +0 -167
  131. package/src/api/schemas/backup.schema.ts +0 -112
  132. package/src/api/schemas/cameras.schema.ts +0 -479
  133. package/src/api/schemas/config.schema.ts +0 -38
  134. package/src/api/schemas/go2rtc.schema.ts +0 -189
  135. package/src/api/schemas/plugins.schema.ts +0 -126
  136. package/src/api/schemas/storage.schema.ts +0 -11
  137. package/src/api/schemas/system.schema.ts +0 -45
  138. package/src/api/schemas/users.schema.ts +0 -185
  139. package/src/api/services/auth.service.ts +0 -210
  140. package/src/api/services/backup.service.ts +0 -144
  141. package/src/api/services/cameras.service.ts +0 -671
  142. package/src/api/services/plugins.service.ts +0 -470
  143. package/src/api/services/system.service.ts +0 -85
  144. package/src/api/services/users.service.ts +0 -276
  145. package/src/api/types/index.ts +0 -675
  146. package/src/api/utils/cert.ts +0 -254
  147. package/src/api/utils/constants.ts +0 -17
  148. package/src/api/utils/fetch.ts +0 -21
  149. package/src/api/utils/moveFiles.ts +0 -45
  150. package/src/api/utils/parse.ts +0 -17
  151. package/src/api/websocket/index.ts +0 -110
  152. package/src/api/websocket/nsp/logs.ts +0 -240
  153. package/src/api/websocket/nsp/main.ts +0 -27
  154. package/src/api/websocket/nsp/metrics.ts +0 -301
  155. package/src/api/websocket/nsp/notifications.ts +0 -43
  156. package/src/api/websocket/nsp/plugins.ts +0 -37
  157. package/src/api/websocket/nsp/server.ts +0 -220
  158. package/src/api/websocket/nsp/status.ts +0 -77
  159. package/src/api/websocket/types.ts +0 -55
  160. package/src/api.ts +0 -163
  161. package/src/camera/classes.ts +0 -32
  162. package/src/camera/controller.ts +0 -579
  163. package/src/camera/device.ts +0 -422
  164. package/src/camera/frameWorker.ts +0 -403
  165. package/src/camera/index.ts +0 -679
  166. package/src/camera/interfaces.ts +0 -95
  167. package/src/camera/iou.ts +0 -153
  168. package/src/camera/polygon.ts +0 -226
  169. package/src/camera/python/__init__.py +0 -0
  170. package/src/camera/python/__pycache__/__init__.cpython-311.pyc +0 -0
  171. package/src/camera/python/__pycache__/classes.cpython-311.pyc +0 -0
  172. package/src/camera/python/__pycache__/delegate_controller.cpython-311.pyc +0 -0
  173. package/src/camera/python/__pycache__/interfaces.cpython-311.pyc +0 -0
  174. package/src/camera/python/__pycache__/iou.cpython-310.pyc +0 -0
  175. package/src/camera/python/__pycache__/iou.cpython-311.pyc +0 -0
  176. package/src/camera/python/__pycache__/iou2.cpython-310.pyc +0 -0
  177. package/src/camera/python/__pycache__/polygon.cpython-311.pyc +0 -0
  178. package/src/camera/python/__pycache__/typings.cpython-311.pyc +0 -0
  179. package/src/camera/python/__pycache__/video_frame.cpython-311.pyc +0 -0
  180. package/src/camera/python/classes.py +0 -41
  181. package/src/camera/python/interfaces.py +0 -130
  182. package/src/camera/python/iou.py +0 -158
  183. package/src/camera/python/polygon.py +0 -230
  184. package/src/camera/python/test/__pycache__/polygon.cpython-310.pyc +0 -0
  185. package/src/camera/python/test/iou_test.py +0 -799
  186. package/src/camera/python/test/polygon.py +0 -238
  187. package/src/camera/python/test/polygon_test.py +0 -256
  188. package/src/camera/python/test/polygon_test2.py +0 -484
  189. package/src/camera/python/typings.py +0 -50
  190. package/src/camera/python/video_frame.py +0 -143
  191. package/src/camera/session.ts +0 -192
  192. package/src/camera/streaming/fmp4-session.ts +0 -390
  193. package/src/camera/streaming/peer-connection.ts +0 -273
  194. package/src/camera/streaming/rtsp-session.ts +0 -331
  195. package/src/camera/streaming/webrtc-connection.ts +0 -260
  196. package/src/camera/streaming/werift-session.ts +0 -317
  197. package/src/camera/test/iou_test.ts +0 -761
  198. package/src/camera/test/polygon.test.ts +0 -611
  199. package/src/camera/test/polygon_test.ts +0 -210
  200. package/src/camera/types.ts +0 -48
  201. package/src/camera/utils.ts +0 -489
  202. package/src/camera/videoFrame.ts +0 -123
  203. package/src/cloud/index.ts +0 -61
  204. package/src/cloud/remote/cloudflare.ts +0 -18
  205. package/src/cloud/remote/upnp.ts +0 -18
  206. package/src/cloud/remote/utils.ts +0 -24
  207. package/src/cloud/types.ts +0 -16
  208. package/src/decoder/child.ts +0 -883
  209. package/src/decoder/imageUtils.ts +0 -275
  210. package/src/decoder/manager.ts +0 -251
  211. package/src/decoder/python/__init__.py +0 -0
  212. package/src/decoder/python/__pycache__/__init__.cpython-311.pyc +0 -0
  213. package/src/decoder/python/__pycache__/image_utils.cpython-311.pyc +0 -0
  214. package/src/decoder/python/__pycache__/typings.cpython-311.pyc +0 -0
  215. package/src/decoder/python/__pycache__/utils.cpython-311.pyc +0 -0
  216. package/src/decoder/python/child.py +0 -903
  217. package/src/decoder/python/image_utils.py +0 -196
  218. package/src/decoder/python/pool.py +0 -45
  219. package/src/decoder/python/test/group.py +0 -62
  220. package/src/decoder/python/test/motion.mp4 +0 -0
  221. package/src/decoder/python/test/motion2.mp4 +0 -0
  222. package/src/decoder/python/test/opencl.cl +0 -70
  223. package/src/decoder/python/test/opencl2.cl +0 -130
  224. package/src/decoder/python/test/test.py +0 -427
  225. package/src/decoder/python/test/test1.jpg +0 -0
  226. package/src/decoder/python/test/test1_resized.jpg +0 -0
  227. package/src/decoder/python/test/test2.jpg +0 -0
  228. package/src/decoder/python/test/test2.py +0 -451
  229. package/src/decoder/python/test/test2_resized.jpg +0 -0
  230. package/src/decoder/python/test/test3.jpg +0 -0
  231. package/src/decoder/python/test/utils.py +0 -50
  232. package/src/decoder/python/typings.py +0 -57
  233. package/src/decoder/python/utils.py +0 -70
  234. package/src/decoder/test/child.ts +0 -117
  235. package/src/decoder/test/ffmpeg.ts +0 -371
  236. package/src/decoder/test/test.ts +0 -182
  237. package/src/decoder/types.ts +0 -27
  238. package/src/decoder/utils.ts +0 -64
  239. package/src/decoder/wasm/asconfig.json +0 -28
  240. package/src/decoder/wasm/assembly/console.ts +0 -1
  241. package/src/decoder/wasm/assembly/index.ts +0 -890
  242. package/src/decoder/wasm/build/decoder.d.ts +0 -43
  243. package/src/decoder/wasm/build/decoder.js +0 -108
  244. package/src/decoder/wasm/build/decoder.wasm +0 -0
  245. package/src/decoder/wasm/tsconfig.json +0 -5
  246. package/src/decoder/worker.ts +0 -113
  247. package/src/go2rtc/index.ts +0 -324
  248. package/src/go2rtc/types.ts +0 -88
  249. package/src/main.ts +0 -267
  250. package/src/manager/coreManager.ts +0 -78
  251. package/src/manager/deviceManager.ts +0 -132
  252. package/src/manager/types.ts +0 -17
  253. package/src/plugins/index.ts +0 -443
  254. package/src/plugins/plugin.ts +0 -177
  255. package/src/plugins/runtime/base.ts +0 -282
  256. package/src/plugins/runtime/index.ts +0 -15
  257. package/src/plugins/runtime/node/child.ts +0 -193
  258. package/src/plugins/runtime/node/index.ts +0 -67
  259. package/src/plugins/runtime/node/plugin.ts +0 -122
  260. package/src/plugins/runtime/node/pluginApi.ts +0 -27
  261. package/src/plugins/runtime/node/proxy/cameraDevice.ts +0 -299
  262. package/src/plugins/runtime/node/proxy/coreManager.ts +0 -128
  263. package/src/plugins/runtime/node/proxy/deviceManager.ts +0 -187
  264. package/src/plugins/runtime/node/storage.ts +0 -312
  265. package/src/plugins/runtime/node/storageController.ts +0 -91
  266. package/src/plugins/runtime/python/__init__.py +0 -0
  267. package/src/plugins/runtime/python/__pycache__/__init__.cpython-311.pyc +0 -0
  268. package/src/plugins/runtime/python/__pycache__/camera_storage.cpython-311.pyc +0 -0
  269. package/src/plugins/runtime/python/__pycache__/config_service.cpython-311.pyc +0 -0
  270. package/src/plugins/runtime/python/__pycache__/constants.cpython-311.pyc +0 -0
  271. package/src/plugins/runtime/python/__pycache__/ipc.cpython-311.pyc +0 -0
  272. package/src/plugins/runtime/python/__pycache__/logger.cpython-311.pyc +0 -0
  273. package/src/plugins/runtime/python/__pycache__/message_queue.cpython-311.pyc +0 -0
  274. package/src/plugins/runtime/python/__pycache__/namespaces.cpython-311.pyc +0 -0
  275. package/src/plugins/runtime/python/__pycache__/plugin.cpython-311.pyc +0 -0
  276. package/src/plugins/runtime/python/__pycache__/plugin_api.cpython-311.pyc +0 -0
  277. package/src/plugins/runtime/python/__pycache__/plugin_logger.cpython-311.pyc +0 -0
  278. package/src/plugins/runtime/python/__pycache__/proxy_utils.cpython-311.pyc +0 -0
  279. package/src/plugins/runtime/python/__pycache__/schema.cpython-311.pyc +0 -0
  280. package/src/plugins/runtime/python/__pycache__/storage.cpython-311.pyc +0 -0
  281. package/src/plugins/runtime/python/__pycache__/storage_controller.cpython-311.pyc +0 -0
  282. package/src/plugins/runtime/python/__pycache__/typings.cpython-311.pyc +0 -0
  283. package/src/plugins/runtime/python/child.py +0 -248
  284. package/src/plugins/runtime/python/index.ts +0 -73
  285. package/src/plugins/runtime/python/namespaces.py +0 -101
  286. package/src/plugins/runtime/python/plugin.py +0 -155
  287. package/src/plugins/runtime/python/plugin_api.py +0 -29
  288. package/src/plugins/runtime/python/proxy/__pycache__/camera_device.cpython-310.pyc +0 -0
  289. package/src/plugins/runtime/python/proxy/__pycache__/camera_device.cpython-311.pyc +0 -0
  290. package/src/plugins/runtime/python/proxy/__pycache__/camera_device.cpython-38.pyc +0 -0
  291. package/src/plugins/runtime/python/proxy/__pycache__/camera_device.cpython-39.pyc +0 -0
  292. package/src/plugins/runtime/python/proxy/__pycache__/constants.cpython-311.pyc +0 -0
  293. package/src/plugins/runtime/python/proxy/__pycache__/constants.cpython-39.pyc +0 -0
  294. package/src/plugins/runtime/python/proxy/__pycache__/core_manager.cpython-311.pyc +0 -0
  295. package/src/plugins/runtime/python/proxy/__pycache__/device_manager.cpython-310.pyc +0 -0
  296. package/src/plugins/runtime/python/proxy/__pycache__/device_manager.cpython-311.pyc +0 -0
  297. package/src/plugins/runtime/python/proxy/__pycache__/device_manager.cpython-38.pyc +0 -0
  298. package/src/plugins/runtime/python/proxy/__pycache__/device_manager.cpython-39.pyc +0 -0
  299. package/src/plugins/runtime/python/proxy/__pycache__/generate_keys.cpython-310.pyc +0 -0
  300. package/src/plugins/runtime/python/proxy/__pycache__/generate_keys.cpython-311.pyc +0 -0
  301. package/src/plugins/runtime/python/proxy/__pycache__/generate_keys.cpython-38.pyc +0 -0
  302. package/src/plugins/runtime/python/proxy/__pycache__/generate_keys.cpython-39.pyc +0 -0
  303. package/src/plugins/runtime/python/proxy/__pycache__/message_queue.cpython-310.pyc +0 -0
  304. package/src/plugins/runtime/python/proxy/__pycache__/message_queue.cpython-311.pyc +0 -0
  305. package/src/plugins/runtime/python/proxy/__pycache__/message_queue.cpython-38.pyc +0 -0
  306. package/src/plugins/runtime/python/proxy/__pycache__/message_queue.cpython-39.pyc +0 -0
  307. package/src/plugins/runtime/python/proxy/__pycache__/plugins_manager.cpython-310.pyc +0 -0
  308. package/src/plugins/runtime/python/proxy/__pycache__/plugins_manager.cpython-311.pyc +0 -0
  309. package/src/plugins/runtime/python/proxy/__pycache__/plugins_manager.cpython-38.pyc +0 -0
  310. package/src/plugins/runtime/python/proxy/__pycache__/plugins_manager.cpython-39.pyc +0 -0
  311. package/src/plugins/runtime/python/proxy/__pycache__/system_manager.cpython-310.pyc +0 -0
  312. package/src/plugins/runtime/python/proxy/__pycache__/system_manager.cpython-311.pyc +0 -0
  313. package/src/plugins/runtime/python/proxy/__pycache__/system_manager.cpython-38.pyc +0 -0
  314. package/src/plugins/runtime/python/proxy/__pycache__/system_manager.cpython-39.pyc +0 -0
  315. package/src/plugins/runtime/python/proxy/camera_device.py +0 -1732
  316. package/src/plugins/runtime/python/proxy/core_manager.py +0 -126
  317. package/src/plugins/runtime/python/proxy/device_manager.py +0 -197
  318. package/src/plugins/runtime/python/schema.py +0 -99
  319. package/src/plugins/runtime/python/storage.py +0 -353
  320. package/src/plugins/runtime/python/storage_controller.py +0 -102
  321. package/src/plugins/runtime/python/typings.py +0 -195
  322. package/src/plugins/schema.ts +0 -472
  323. package/src/plugins/types.ts +0 -60
  324. package/src/plugins/worker.ts +0 -250
  325. package/src/rpc/index.ts +0 -149
  326. package/src/rpc/namespaces.ts +0 -79
  327. package/src/rpc/server.ts +0 -422
  328. package/src/rpc/types.ts +0 -119
  329. package/src/rpc/utils.ts +0 -16
  330. package/src/services/config/constants.ts +0 -47
  331. package/src/services/config/defaults.ts +0 -57
  332. package/src/services/config/index.ts +0 -744
  333. package/src/services/config/types.ts +0 -211
  334. package/src/services/logger/index.ts +0 -96
  335. package/src/types.ts +0 -47
  336. package/src/utils/path.ts +0 -16
  337. package/src/utils/pythonInstaller.ts +0 -597
  338. package/tsconfig.json +0 -37
  339. package/types/fastify.d.ts +0 -14
  340. package/updates.config.js +0 -3
  341. /package/dist/interface/assets/{@xterm.DYP7pi_n.0.0.50-internal.0.css → @xterm.DYP7pi_n.0.0.50-internal.2.css} +0 -0
  342. /package/dist/interface/assets/{Adminpanel.BKek2EMH.0.0.50-internal.0.css → Adminpanel.BKek2EMH.0.0.50-internal.2.css} +0 -0
  343. /package/dist/interface/assets/{Cameras.BDWZJqPN.0.0.50-internal.0.css → Cameras.BDWZJqPN.0.0.50-internal.2.css} +0 -0
  344. /package/dist/interface/assets/{Camview.BFUFMoNX.0.0.50-internal.0.css → Camview.BFUFMoNX.0.0.50-internal.2.css} +0 -0
  345. /package/dist/interface/assets/{CuiConsole.DCYyxdVg.0.0.50-internal.0.css → CuiConsole.DCYyxdVg.0.0.50-internal.2.css} +0 -0
  346. /package/dist/interface/assets/{CuiPluginCard.yF8V0SZY.0.0.50-internal.0.css → CuiPluginCard.yF8V0SZY.0.0.50-internal.2.css} +0 -0
  347. /package/dist/interface/assets/{CuiTimeline.BkIwlYtw.0.0.50-internal.0.css → CuiTimeline.BkIwlYtw.0.0.50-internal.2.css} +0 -0
  348. /package/dist/interface/assets/{Plugin.DJElsAn5.0.0.50-internal.0.css → Plugin.DJElsAn5.0.0.50-internal.2.css} +0 -0
  349. /package/dist/interface/assets/{Plugins.0h77qnmN.0.0.50-internal.0.css → Plugins.0h77qnmN.0.0.50-internal.2.css} +0 -0
  350. /package/dist/interface/assets/{Settings.CkgfRkQr.0.0.50-internal.0.css → Settings.CkgfRkQr.0.0.50-internal.2.css} +0 -0
  351. /package/dist/interface/assets/{SettingsAccount.DeFul3eQ.0.0.50-internal.0.css → SettingsAccount.DeFul3eQ.0.0.50-internal.2.css} +0 -0
  352. /package/dist/interface/assets/{SettingsBackup.CX0rT0QJ.0.0.50-internal.0.css → SettingsBackup.CX0rT0QJ.0.0.50-internal.2.css} +0 -0
  353. /package/dist/interface/assets/{highlight.Ch2EwETz.0.0.50-internal.0.css → highlight.Ch2EwETz.0.0.50-internal.2.css} +0 -0
  354. /package/dist/interface/assets/{logo-256.BCQk9H1-.0.0.50-internal.0.png → logo-256.BCQk9H1-.0.0.50-internal.2.png} +0 -0
  355. /package/dist/interface/assets/{logo-512.DLKVOU2S.0.0.50-internal.0.png → logo-512.DLKVOU2S.0.0.50-internal.2.png} +0 -0
  356. /package/dist/interface/assets/{logo.DmEiRk0z.0.0.50-internal.0.png → logo.DmEiRk0z.0.0.50-internal.2.png} +0 -0
  357. /package/dist/interface/assets/{main.Cip9LkS3.0.0.50-internal.0.css → main.Cip9LkS3.0.0.50-internal.2.css} +0 -0
  358. /package/dist/interface/assets/{mode-json.Br7xisR1.0.0.50-internal.0.js → mode-json.Br7xisR1.0.0.50-internal.2.js} +0 -0
  359. /package/dist/interface/assets/{mode-yaml.CIYL8U3d.0.0.50-internal.0.js → mode-yaml.CIYL8U3d.0.0.50-internal.2.js} +0 -0
  360. /package/dist/interface/assets/{worker-base.jEXLGV2h.0.0.50-internal.0.js → worker-base.jEXLGV2h.0.0.50-internal.2.js} +0 -0
  361. /package/dist/interface/assets/{worker-json.DgwNIOck.0.0.50-internal.0.js → worker-json.DgwNIOck.0.0.50-internal.2.js} +0 -0
  362. /package/dist/interface/assets/{worker-yaml.B3uUYINB.0.0.50-internal.0.js → worker-yaml.B3uUYINB.0.0.50-internal.2.js} +0 -0
  363. /package/dist/interface/js/{@babel.l0sNRNKZ.0.0.50-internal.0.js → @babel.l0sNRNKZ.0.0.50-internal.2.js} +0 -0
  364. /package/dist/interface/js/{@intlify.BkGPX90O.0.0.50-internal.0.js → @intlify.BkGPX90O.0.0.50-internal.2.js} +0 -0
  365. /package/dist/interface/js/{@kurkle.D8fDXNIl.0.0.50-internal.0.js → @kurkle.D8fDXNIl.0.0.50-internal.2.js} +0 -0
  366. /package/dist/interface/js/{@primeuix.BFAY2Bk9.0.0.50-internal.0.js → @primeuix.BFAY2Bk9.0.0.50-internal.2.js} +0 -0
  367. /package/dist/interface/js/{@react-dnd.CcwRs9xb.0.0.50-internal.0.js → @react-dnd.CcwRs9xb.0.0.50-internal.2.js} +0 -0
  368. /package/dist/interface/js/{@socket.io.Dkula2eQ.0.0.50-internal.0.js → @socket.io.Dkula2eQ.0.0.50-internal.2.js} +0 -0
  369. /package/dist/interface/js/{@vue.B5vqhCp2.0.0.50-internal.0.js → @vue.B5vqhCp2.0.0.50-internal.2.js} +0 -0
  370. /package/dist/interface/js/{@xterm.CAa7rpjv.0.0.50-internal.0.js → @xterm.C-5Lxnx_.0.0.50-internal.2.js} +0 -0
  371. /package/dist/interface/js/{axios.DHr9lByg.0.0.50-internal.0.js → axios.DHr9lByg.0.0.50-internal.2.js} +0 -0
  372. /package/dist/interface/js/{birpc.l0sNRNKZ.0.0.50-internal.0.js → birpc.l0sNRNKZ.0.0.50-internal.2.js} +0 -0
  373. /package/dist/interface/js/{compare-versions.DqEOhma6.0.0.50-internal.0.js → compare-versions.DqEOhma6.0.0.50-internal.2.js} +0 -0
  374. /package/dist/interface/js/{dijkstrajs.C00ieaqj.0.0.50-internal.0.js → dijkstrajs.C00ieaqj.0.0.50-internal.2.js} +0 -0
  375. /package/dist/interface/js/{engine.io-parser.BiEtp6m2.0.0.50-internal.0.js → engine.io-parser.BiEtp6m2.0.0.50-internal.2.js} +0 -0
  376. /package/dist/interface/js/{entities.C20TfXL6.0.0.50-internal.0.js → entities.C20TfXL6.0.0.50-internal.2.js} +0 -0
  377. /package/dist/interface/js/{ev-emitter.X5f1qa-c.0.0.50-internal.0.js → ev-emitter.X5f1qa-c.0.0.50-internal.2.js} +0 -0
  378. /package/dist/interface/js/{get-size.D1dS-IaP.0.0.50-internal.0.js → get-size.D1dS-IaP.0.0.50-internal.2.js} +0 -0
  379. /package/dist/interface/js/{hookable.l0sNRNKZ.0.0.50-internal.0.js → hookable.l0sNRNKZ.0.0.50-internal.2.js} +0 -0
  380. /package/dist/interface/js/{mdurl.k9Sl0PQj.0.0.50-internal.0.js → mdurl.k9Sl0PQj.0.0.50-internal.2.js} +0 -0
  381. /package/dist/interface/js/{perfect-debounce.l0sNRNKZ.0.0.50-internal.0.js → perfect-debounce.l0sNRNKZ.0.0.50-internal.2.js} +0 -0
  382. /package/dist/interface/js/{primelocale.Bga3dOQu.0.0.50-internal.0.js → primelocale.Bga3dOQu.0.0.50-internal.2.js} +0 -0
  383. /package/dist/interface/js/{punycode.js.Dj65hjkv.0.0.50-internal.0.js → punycode.js.Dj65hjkv.0.0.50-internal.2.js} +0 -0
  384. /package/dist/interface/js/{react-dnd-html5-backend.1HQjlkwI.0.0.50-internal.0.js → react-dnd-html5-backend.1HQjlkwI.0.0.50-internal.2.js} +0 -0
  385. /package/dist/interface/js/{redux.BFxtlG_c.0.0.50-internal.0.js → redux.BFxtlG_c.0.0.50-internal.2.js} +0 -0
  386. /package/dist/interface/js/{tslib.9k7AwCpt.0.0.50-internal.0.js → tslib.9k7AwCpt.0.0.50-internal.2.js} +0 -0
  387. /package/dist/interface/js/{uc.micro.kMc2yuuw.0.0.50-internal.0.js → uc.micro.kMc2yuuw.0.0.50-internal.2.js} +0 -0
  388. /package/dist/interface/js/{uuid.C6aID195.0.0.50-internal.0.js → uuid.C6aID195.0.0.50-internal.2.js} +0 -0
  389. /package/dist/interface/js/{vue.l0sNRNKZ.0.0.50-internal.0.js → vue.l0sNRNKZ.0.0.50-internal.2.js} +0 -0
  390. /package/dist/interface/js/{zod.SKKegNRO.0.0.50-internal.0.js → zod.SKKegNRO.0.0.50-internal.2.js} +0 -0
@@ -1,189 +0,0 @@
1
- import * as zod from 'zod';
2
-
3
- import {
4
- DEFAULT_GO2RTC_CONFIG_API,
5
- DEFAULT_GO2RTC_CONFIG_FFMPEG,
6
- DEFAULT_GO2RTC_CONFIG_LOGGER,
7
- DEFAULT_GO2RTC_CONFIG_RTMP,
8
- DEFAULT_GO2RTC_CONFIG_RTSP,
9
- DEFAULT_GO2RTC_CONFIG_SRTP,
10
- DEFAULT_GO2RTC_CONFIG_WEBRTC,
11
- } from '../../services/config/defaults.js';
12
-
13
- // GO2RTC - Logger
14
- export const logLevelGo2rtcSchema = zod.union([
15
- zod.literal('info'),
16
- zod.literal('debug'),
17
- zod.literal('trace'),
18
- zod.literal('warn'),
19
- zod.literal('error'),
20
- zod.literal('fatal'),
21
- ]);
22
-
23
- export const logSchema = zod
24
- .object({
25
- format: zod.string().default(DEFAULT_GO2RTC_CONFIG_LOGGER.format!),
26
- level: logLevelGo2rtcSchema.default(DEFAULT_GO2RTC_CONFIG_LOGGER.level!),
27
- api: logLevelGo2rtcSchema,
28
- exec: logLevelGo2rtcSchema,
29
- ngrok: logLevelGo2rtcSchema,
30
- rtsp: logLevelGo2rtcSchema,
31
- rtmp: logLevelGo2rtcSchema,
32
- homekit: logLevelGo2rtcSchema,
33
- webtorrent: logLevelGo2rtcSchema,
34
- hass: logLevelGo2rtcSchema.default(DEFAULT_GO2RTC_CONFIG_LOGGER.hass!),
35
- mp4: logLevelGo2rtcSchema,
36
- hls: logLevelGo2rtcSchema,
37
- mjpeg: logLevelGo2rtcSchema,
38
- streams: logLevelGo2rtcSchema,
39
- webrtc: logLevelGo2rtcSchema,
40
- })
41
- .strict();
42
-
43
- // GO2RTC - API
44
- export const apiSchema = zod
45
- .object({
46
- listen: zod.string().transform(() => ''),
47
- username: zod.string().optional(),
48
- password: zod.string().optional(),
49
- origin: zod.string().default(DEFAULT_GO2RTC_CONFIG_API.origin),
50
- // base_path: zod.string(), // dont allow to change these
51
- // static_dir: zod.string(), // dont allow to change these
52
- tls_listen: zod.string().default(DEFAULT_GO2RTC_CONFIG_API.tls_listen),
53
- tls_cert: zod.string(),
54
- tls_key: zod.string(),
55
- tls_ca: zod.string(),
56
- })
57
- .strict();
58
-
59
- // GO2RTC - Streams
60
- export const streamsSchema = zod.record(
61
- zod.string().transform((val) => val.replace(/ /g, '_').toLowerCase()),
62
- zod.union([zod.string(), zod.string().array()]),
63
- );
64
-
65
- // GO2RTC - SRTP
66
- export const srtpSchema = zod
67
- .object({
68
- listen: zod.string().default(DEFAULT_GO2RTC_CONFIG_SRTP.listen),
69
- })
70
- .strict();
71
-
72
- // GO2RTC - RTMP
73
- export const rtmpSchema = zod
74
- .object({
75
- listen: zod.string().default(DEFAULT_GO2RTC_CONFIG_RTMP.listen),
76
- })
77
- .strict();
78
-
79
- // GO2RTC - RTSP
80
- export const rtspSchema = zod
81
- .object({
82
- listen: zod.string().default(DEFAULT_GO2RTC_CONFIG_RTSP.listen),
83
- username: zod.string().optional().default(DEFAULT_GO2RTC_CONFIG_RTSP.username!),
84
- password: zod.string().optional().default(DEFAULT_GO2RTC_CONFIG_RTSP.password!),
85
- default_query: zod.string().default(DEFAULT_GO2RTC_CONFIG_RTSP.default_query),
86
- })
87
- .strict();
88
-
89
- // GO2RTC - FFmpeg
90
- export const ffmpegSchema = zod.record(zod.string(), zod.string()).and(
91
- zod.object({
92
- bin: zod.string().default(DEFAULT_GO2RTC_CONFIG_FFMPEG.bin),
93
- global: zod.string().default(DEFAULT_GO2RTC_CONFIG_FFMPEG.global),
94
- file: zod.string().default(DEFAULT_GO2RTC_CONFIG_FFMPEG.file),
95
- http: zod.string().default(DEFAULT_GO2RTC_CONFIG_FFMPEG.http),
96
- rtsp: zod.string().default(DEFAULT_GO2RTC_CONFIG_FFMPEG.rtsp),
97
- output: zod.string().default(DEFAULT_GO2RTC_CONFIG_FFMPEG.output),
98
- }),
99
- );
100
-
101
- // GO2RTC - HASS
102
- export const hassSchema = zod
103
- .object({
104
- config: zod.string(),
105
- })
106
- .strict();
107
-
108
- // GO2RTC - Ngrok
109
- export const ngrokSchema = zod
110
- .object({
111
- command: zod.string(),
112
- })
113
- .strict();
114
-
115
- // GO2RTC - WebRTC
116
- export const filterSchema = zod
117
- .object({
118
- candidates: zod.string().array().optional(),
119
- networks: zod.string().array().optional(),
120
- interfaces: zod.string().array().optional(),
121
- ips: zod.string().array().optional(),
122
- udp_ports: zod.string().array().optional(),
123
- })
124
- .strict();
125
-
126
- export const iceServerSchema = zod
127
- .object({
128
- urls: zod.string().array(),
129
- username: zod.string().optional(),
130
- credential: zod.string().optional(),
131
- })
132
- .strict();
133
-
134
- export const webrtcSchema = zod
135
- .object({
136
- listen: zod.string().default(DEFAULT_GO2RTC_CONFIG_WEBRTC.listen),
137
- candidates: zod.string().array().optional(),
138
- ice_servers: iceServerSchema.array().optional(),
139
- filters: filterSchema.optional(),
140
- })
141
- .strict();
142
-
143
- // GO2RTC - HomeKit
144
- export const homeKitSettingsSchema = zod
145
- .object({
146
- pin: zod.number(),
147
- name: zod.string(),
148
- device_id: zod.string(),
149
- device_private: zod.string(),
150
- })
151
- .strict();
152
-
153
- export const homeKitSchema = zod.record(zod.string(), homeKitSettingsSchema.partial().optional().or(zod.undefined()).or(zod.null()));
154
-
155
- // GO2RTC - Webtorrent
156
- export const shareSettingsSchema = zod
157
- .object({
158
- pwd: zod.string(),
159
- src: zod.string(),
160
- })
161
- .strict();
162
-
163
- export const sharesSchema = zod.record(zod.string(), shareSettingsSchema);
164
-
165
- export const webtorrentSchema = zod
166
- .object({
167
- shares: sharesSchema,
168
- })
169
- .strict();
170
-
171
- // GO2RTC - Schema
172
- export const patchGo2RtcSchema = zod
173
- .object({
174
- log: logSchema.partial(),
175
- api: apiSchema,
176
- rtsp: rtspSchema,
177
- srtp: srtpSchema,
178
- rtmp: rtmpSchema,
179
- webrtc: webrtcSchema,
180
- ffmpeg: ffmpegSchema,
181
- streams: streamsSchema.optional(),
182
- homekit: homeKitSchema.optional(),
183
- hass: hassSchema.partial().optional(),
184
- webtorrent: webtorrentSchema.partial().optional(),
185
- ngrok: ngrokSchema.partial().optional(),
186
- })
187
- .strict();
188
-
189
- export type PatchGo2RtcConfigInput = zod.TypeOf<typeof patchGo2RtcSchema>;
@@ -1,126 +0,0 @@
1
- import * as zod from 'zod';
2
-
3
- import { PLUGIN_IDENTIFIER_PATTERN } from '../../plugins/types.js';
4
-
5
- import type { AudioMetadata, ImageMetadata } from '@camera.ui/types';
6
- import type { MultipartFile, MultipartValue } from '@fastify/multipart';
7
-
8
- export const ACCEPTED_OBJECT_IMAGE_TYPES = ['image/jpeg', 'image/png'];
9
- export const MAX_OBJECT_FILE_SIZE = 1024 * 1024 * 2; // 2mb
10
-
11
- export const ACCEPTED_MOTION_VIDEO_TYPES = ['video/mp4', 'video/quicktime'];
12
- export const MAX_MOTION_FILE_SIZE = 1024 * 1024 * 10; // 10mb
13
-
14
- export const ACCEPTED_AUDIO_TYPES = ['audio/mpeg', 'audio/wav', 'audio/ogg'];
15
- export const MAX_AUDIO_FILE_SIZE = 1024 * 1024 * 2; // 2mb
16
-
17
- type ConfigFormData = MultipartValue<string>;
18
- type ImageMetadataFormData = MultipartValue<string>;
19
- type AudioMetadataFormData = MultipartValue<string>;
20
-
21
- export const installPluginSchema = zod
22
- .object({
23
- pluginname: zod.string().refine((pluginname) => PLUGIN_IDENTIFIER_PATTERN.test(pluginname), 'Not a valid plugin name'),
24
- pluginversion: zod.string().optional().default('latest'),
25
- })
26
- .strict();
27
-
28
- export const actionPluginSchema = zod
29
- .object({
30
- actionId: zod.string(),
31
- payload: zod.any(),
32
- })
33
- .strict();
34
-
35
- export const patchPluginConfigJsonSchema = zod.record(zod.any(), zod.any());
36
-
37
- export const detectObjectSchema = zod.object({
38
- upload: zod
39
- .custom<MultipartFile | File>()
40
- .refine((file) => {
41
- const isMultipartFile = (x: any): x is MultipartFile => x.mimetype !== undefined;
42
-
43
- if (isMultipartFile(file)) {
44
- return Buffer.byteLength((file as any)._buf) <= MAX_OBJECT_FILE_SIZE;
45
- } else {
46
- return file.size <= MAX_OBJECT_FILE_SIZE;
47
- }
48
- }, 'Max file size is 2 MB')
49
- .refine((file) => {
50
- const isMultipartFile = (x: any): x is MultipartFile => x.mimetype !== undefined;
51
-
52
- if (isMultipartFile(file)) {
53
- return ACCEPTED_OBJECT_IMAGE_TYPES.includes(file.mimetype);
54
- } else {
55
- return ACCEPTED_OBJECT_IMAGE_TYPES.includes(file.type);
56
- }
57
- }, '.jpeg and .png files are accepted') as zod.ZodType<MultipartFile>,
58
- metadata: zod.custom<ImageMetadataFormData>().transform((metadata) => {
59
- return JSON.parse(metadata.value);
60
- }) as unknown as zod.ZodType<ImageMetadata>,
61
- config: zod.custom<ConfigFormData>().transform((config) => {
62
- return JSON.parse(config.value);
63
- }) as unknown as zod.ZodType<Record<string, any>>,
64
- });
65
-
66
- export const detectAudioSchema = zod.object({
67
- upload: zod
68
- .custom<MultipartFile | File>()
69
- .refine((file) => {
70
- const isMultipartFile = (x: any): x is MultipartFile => x.mimetype !== undefined;
71
-
72
- if (isMultipartFile(file)) {
73
- return Buffer.byteLength((file as any)._buf) <= MAX_AUDIO_FILE_SIZE;
74
- } else {
75
- return file.size <= MAX_AUDIO_FILE_SIZE;
76
- }
77
- }, 'Max file size is 2 MB')
78
- .refine((file) => {
79
- const isMultipartFile = (x: any): x is MultipartFile => x.mimetype !== undefined;
80
-
81
- if (isMultipartFile(file)) {
82
- return ACCEPTED_AUDIO_TYPES.includes(file.mimetype);
83
- } else {
84
- return ACCEPTED_AUDIO_TYPES.includes(file.type);
85
- }
86
- }, '.mp3, .wav and .ogg files are accepted') as zod.ZodType<MultipartFile>,
87
- metadata: zod.custom<AudioMetadataFormData>().transform((metadata) => {
88
- return JSON.parse(metadata.value);
89
- }) as unknown as zod.ZodType<AudioMetadata>,
90
- config: zod.custom<ConfigFormData>().transform((config) => {
91
- return JSON.parse(config.value);
92
- }) as unknown as zod.ZodType<Record<string, any>>,
93
- });
94
-
95
- export const detectMotionSchema = zod.object({
96
- upload: zod
97
- .custom<MultipartFile | File>()
98
- .refine((file) => {
99
- const isMultipartFile = (x: any): x is MultipartFile => x.mimetype !== undefined;
100
-
101
- if (isMultipartFile(file)) {
102
- return Buffer.byteLength((file as any)._buf) <= MAX_MOTION_FILE_SIZE;
103
- } else {
104
- return file.size <= MAX_MOTION_FILE_SIZE;
105
- }
106
- }, 'Max file size is 5 MB')
107
- .refine((file) => {
108
- const isMultipartFile = (x: any): x is MultipartFile => x.mimetype !== undefined;
109
-
110
- if (isMultipartFile(file)) {
111
- return ACCEPTED_MOTION_VIDEO_TYPES.includes(file.mimetype);
112
- } else {
113
- return ACCEPTED_MOTION_VIDEO_TYPES.includes(file.type);
114
- }
115
- }, '.mp4 files are accepted') as zod.ZodType<MultipartFile>,
116
- config: zod.custom<ConfigFormData>().transform((config) => {
117
- return JSON.parse(config.value);
118
- }) as unknown as zod.ZodType<Record<string, any>>,
119
- });
120
-
121
- export type InstallPluginInput = zod.TypeOf<typeof installPluginSchema>;
122
- export type ActionPluginInput = zod.TypeOf<typeof actionPluginSchema>;
123
- export type PatchPluginConfigJsonInput = zod.TypeOf<typeof patchPluginConfigJsonSchema>;
124
- export type DetectObjectInput = zod.TypeOf<typeof detectObjectSchema>;
125
- export type DetectMotionInput = zod.TypeOf<typeof detectMotionSchema>;
126
- export type DetectAudioInput = zod.TypeOf<typeof detectAudioSchema>;
@@ -1,11 +0,0 @@
1
- import * as zod from 'zod';
2
-
3
- export const patchStorageSchema = zod.record(zod.string(), zod.any());
4
-
5
- export const setStorageSchema = zod.object({ key: zod.string() }).strict();
6
-
7
- export const submitStorageSchema = zod.object({ key: zod.string(), payload: zod.any() }).strict();
8
-
9
- export type PatchStorateInput = zod.TypeOf<typeof patchStorageSchema>;
10
- export type SetStorageInput = zod.TypeOf<typeof setStorageSchema>;
11
- export type SubmitStorageInput = zod.TypeOf<typeof submitStorageSchema>;
@@ -1,45 +0,0 @@
1
- import * as zod from 'zod';
2
-
3
- export const updateServerSchema = zod
4
- .object({
5
- version: zod.string().optional().default('latest'),
6
- })
7
- .strict();
8
-
9
- export const remoteAccessSchema = zod
10
- .object({
11
- mode: zod
12
- .union([zod.literal('disabled'), zod.literal('port-forward'), zod.literal('router-forward'), zod.literal('cloudflare'), zod.literal('custom-domain')])
13
- .default('disabled'),
14
- cloudflare: zod
15
- .object({
16
- tunnelToken: zod.string(),
17
- customDomain: zod.string(),
18
- tunnelUrl: zod.string(),
19
- tunnelCredentials: zod
20
- .object({
21
- username: zod.string(),
22
- password: zod.string(),
23
- })
24
- .partial(),
25
- })
26
- .partial()
27
- .strict(),
28
- customDomain: zod
29
- .object({
30
- url: zod.string().optional(),
31
- })
32
- .partial()
33
- .strict(),
34
- })
35
- .strict();
36
-
37
- export const patchSystemSchema = zod
38
- .object({
39
- serverAddresses: zod.string().ip().array().default([]),
40
- remoteAccess: remoteAccessSchema,
41
- })
42
- .strict();
43
-
44
- export type PatchSystemInput = zod.TypeOf<typeof patchSystemSchema>;
45
- export type UpdateServerInput = zod.TypeOf<typeof updateServerSchema>;
@@ -1,185 +0,0 @@
1
- import { v4 as uuidv4 } from 'uuid';
2
- import * as zod from 'zod';
3
-
4
- import { pointsSchema } from './cameras.schema.js';
5
-
6
- import type { MultipartFile } from '@fastify/multipart';
7
-
8
- export const ACCEPTED_IMAGE_TYPES = ['image/jpeg', 'image/jpg', 'image/png'];
9
- export const MAX_IMAGE_FILE_SIZE = 1024 * 1024 * 5;
10
-
11
- export const userPreferencesCamviewViewsLayoutCameras = zod.object({
12
- index: zod.number(),
13
- cameraId: zod.string(),
14
- });
15
-
16
- export const camviewViewSizeSchema = zod.union([
17
- zod.literal(1),
18
- zod.literal(4),
19
- zod.literal(6),
20
- zod.literal(7),
21
- zod.literal(9),
22
- zod.literal(10),
23
- zod.literal(12),
24
- zod.literal(13),
25
- zod.literal(15),
26
- zod.literal(16),
27
- zod.literal(20),
28
- zod.literal(26),
29
- ]);
30
-
31
- export const camviewViewTypeSchema = zod.union([zod.literal('dnd'), zod.literal('view')]);
32
-
33
- export const userPreferencesCamviewViewsLayout = zod.object({
34
- _id: zod
35
- .string()
36
- .default(uuidv4())
37
- .transform(() => uuidv4()),
38
- name: zod.string().min(1, 'Layout name is required'),
39
- viewSize: camviewViewSizeSchema,
40
- cameras: userPreferencesCamviewViewsLayoutCameras.array(),
41
- type: camviewViewTypeSchema,
42
- });
43
-
44
- export const patchPreferencesCamviewViewsLayout = zod
45
- .object({
46
- name: zod.string().min(1, 'Layout name is required'),
47
- viewSize: camviewViewSizeSchema,
48
- cameras: userPreferencesCamviewViewsLayoutCameras.array(),
49
- })
50
- .partial()
51
- .optional();
52
-
53
- export const userPreferencesCamview = zod.object({
54
- views: userPreferencesCamviewViewsLayout.array(),
55
- });
56
-
57
- export const userPreferencesCameraShortcutLayout = zod.object({
58
- _id: zod
59
- .string()
60
- .default(uuidv4())
61
- .transform(() => uuidv4()),
62
- cameraId: zod.string(),
63
- points: pointsSchema,
64
- });
65
-
66
- export const patchPreferencesCameraShortcutLayout = zod
67
- .object({
68
- cameraId: zod.string(),
69
- points: pointsSchema,
70
- })
71
- .partial()
72
- .optional();
73
-
74
- export const userPreferencesCameras = zod.object({
75
- shortcuts: userPreferencesCameraShortcutLayout.array(),
76
- });
77
-
78
- export const userPreferences = zod.object({
79
- camview: userPreferencesCamview,
80
- cameras: zod.record(zod.string(), userPreferencesCameras),
81
- });
82
-
83
- export const createUserSchema = zod
84
- .object({
85
- _id: zod
86
- .string()
87
- .default(uuidv4())
88
- .transform(() => uuidv4()),
89
- username: zod.string().min(1, 'Username is required'),
90
- password: zod
91
- .string()
92
- .min(10, 'Password must be at least 10 characters long')
93
- .regex(/[A-Z]/, 'Password must contain at least one uppercase letter')
94
- .regex(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/, 'Password must contain at least one special character (!@#$%^&*()_+-=[]{};:\'"\\|,.<>/?)')
95
- .max(32, 'Password cannot be more than 32 characters'),
96
- passwordConfirm: zod.string().min(1, 'Please confirm your password'),
97
- role: zod.union([zod.literal('admin'), zod.literal('user')]),
98
- sessionTimer: zod
99
- .number()
100
- .min(3600, 'Session timer must not be less than 3600 seconds (1h)')
101
- .max(86400, 'Session timer must not be greater than 86400 seconds (24h)')
102
- .default(14400),
103
- rememberMe: zod.boolean().default(false),
104
- singleSession: zod.boolean().default(false),
105
- firstLogin: zod.boolean().default(true),
106
- preferences: userPreferences.default({
107
- camview: {
108
- views: [],
109
- },
110
- cameras: {},
111
- }),
112
- })
113
- .strict()
114
- .refine((data) => data.password === data.passwordConfirm, {
115
- path: ['passwordConfirm'],
116
- message: 'Passwords do not match',
117
- });
118
-
119
- export const loginUserSchema = zod
120
- .object({
121
- username: zod.string().min(1, 'Username is required'),
122
- password: zod.string().min(1, 'Password is required'),
123
- rememberMe: zod.boolean().default(false),
124
- })
125
- .strict();
126
-
127
- export const patchUserSchema = zod
128
- .object({
129
- username: zod.string().min(1, 'Username is required').optional(),
130
- password: zod
131
- .string()
132
- .min(10, 'Password must be at least 10 characters long')
133
- .regex(/[A-Z]/, 'Password must contain at least one uppercase letter')
134
- .regex(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/, 'Password must contain at least one special character (!@#$%^&*()_+-=[]{};:\'"\\|,.<>/?)')
135
- .max(32, 'Password cannot be more than 32 characters')
136
- .optional(),
137
- passwordConfirm: zod.string().optional(),
138
- role: zod.union([zod.literal('admin'), zod.literal('user')]).optional(),
139
- sessionTimer: zod
140
- .number()
141
- .min(3600, 'Session timer must not be less than 3600 seconds (1h)')
142
- .max(86400, 'Session timer must not be greater than 86400 seconds (24h)')
143
- .optional(),
144
- upload: zod.optional(
145
- zod
146
- .custom<MultipartFile | File>()
147
- .refine((file) => {
148
- const isMultipartFile = (x: any): x is MultipartFile => x.mimetype !== undefined;
149
-
150
- if (isMultipartFile(file)) {
151
- return Buffer.byteLength((file as any)._buf) <= MAX_IMAGE_FILE_SIZE;
152
- } else {
153
- return file.size <= MAX_IMAGE_FILE_SIZE;
154
- }
155
- }, 'Max file size is 5MB.')
156
- .refine((file) => {
157
- const isMultipartFile = (x: any): x is MultipartFile => x.mimetype !== undefined;
158
-
159
- if (isMultipartFile(file)) {
160
- return ACCEPTED_IMAGE_TYPES.includes(file.mimetype);
161
- } else {
162
- return ACCEPTED_IMAGE_TYPES.includes(file.type);
163
- }
164
- }, '.jpg, .jpeg, .png files are accepted.') as zod.ZodType<MultipartFile>,
165
- ),
166
- rememberMe: zod.boolean().optional(),
167
- singleSession: zod.boolean().optional(),
168
- firstLogin: zod.boolean().optional(),
169
- preferences: userPreferences.partial().optional(),
170
- })
171
- .strict()
172
- .refine((data) => data.password === data.passwordConfirm, {
173
- path: ['passwordConfirm'],
174
- message: 'Passwords do not match',
175
- });
176
-
177
- export type CreateUserInput = zod.TypeOf<typeof createUserSchema>;
178
- export type LoginUserInput = zod.TypeOf<typeof loginUserSchema>;
179
- export type PatchUserInput = zod.TypeOf<typeof patchUserSchema>;
180
-
181
- export type CreateViewInput = zod.TypeOf<typeof userPreferencesCamviewViewsLayout>;
182
- export type PatchViewInput = zod.TypeOf<typeof patchPreferencesCamviewViewsLayout>;
183
-
184
- export type CreateShortcutInput = zod.TypeOf<typeof userPreferencesCameraShortcutLayout>;
185
- export type PatchShortcutInput = zod.TypeOf<typeof patchPreferencesCameraShortcutLayout>;