@camera.ui/server 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (652) hide show
  1. package/dist/interface/assets/@babel-l0sNRNKZ.js +1 -0
  2. package/dist/interface/assets/@camera.ui-2NVnv26v.js +8 -0
  3. package/dist/interface/assets/@intlify-Ck2ZoCVz.js +15 -0
  4. package/dist/interface/assets/@mdi-C-QA1nE3.js +1 -0
  5. package/dist/interface/assets/@popperjs-BQBsAJpH.js +1 -0
  6. package/dist/interface/assets/@react-dnd-CcwRs9xb.js +1 -0
  7. package/dist/interface/assets/@socket.io-Dkula2eQ.js +1 -0
  8. package/dist/interface/assets/@tanstack-BqH4GyO-.js +1 -0
  9. package/dist/interface/assets/@vee-validate-DCBdnGo-.js +5 -0
  10. package/dist/interface/assets/@vue-C7-KaDG4.js +17 -0
  11. package/dist/interface/assets/@vueform-arggO0eF.js +1 -0
  12. package/dist/interface/assets/@vueform-h7tNX9p6.css +1 -0
  13. package/dist/interface/assets/@vueuse-C3WMTDqL.js +1 -0
  14. package/dist/interface/assets/@xterm-B4Ga69iL.js +9 -0
  15. package/dist/interface/assets/@xterm-CGrrDQr5.css +32 -0
  16. package/dist/interface/assets/Account-B_tHnXoX.css +1 -0
  17. package/dist/interface/assets/Account-gJpkf0nE.js +1 -0
  18. package/dist/interface/assets/Adminpanel-B_SY1GJM.css +0 -0
  19. package/dist/interface/assets/Adminpanel-Bge9nu5N.js +1 -0
  20. package/dist/interface/assets/Appearance-D22q-X_I.js +1 -0
  21. package/dist/interface/assets/Backup-DBv9xFPh.css +1 -0
  22. package/dist/interface/assets/Backup-pJm6s10G.js +1 -0
  23. package/dist/interface/assets/Camera-BgO2yRjb.js +1 -0
  24. package/dist/interface/assets/Camera-CWiLco3W.css +1 -0
  25. package/dist/interface/assets/Cameras-BM3vSM_R.css +1 -0
  26. package/dist/interface/assets/Cameras-DjeKruR_.js +1 -0
  27. package/dist/interface/assets/Camview-DfzlprzN.js +1 -0
  28. package/dist/interface/assets/Camview-vUAs5YHU.css +1 -0
  29. package/dist/interface/assets/Config-BKIOIkjC.js +1 -0
  30. package/dist/interface/assets/Config-DAiKsG7W.css +1 -0
  31. package/dist/interface/assets/Console-BsyX2S3R.css +1 -0
  32. package/dist/interface/assets/Console-Caz7y-T0.js +4 -0
  33. package/dist/interface/assets/FirstSteps-DNHhyDSw.css +1 -0
  34. package/dist/interface/assets/FirstSteps-mQK4XFTs.js +1 -0
  35. package/dist/interface/assets/NewCamera-B9t-0NCc.js +448 -0
  36. package/dist/interface/assets/NewCamera-CHMgUDbC.css +1 -0
  37. package/dist/interface/assets/Plugin-BSHKKjrl.css +1 -0
  38. package/dist/interface/assets/Plugin-Di_bBsg-.js +1 -0
  39. package/dist/interface/assets/Plugins-BsMITags.css +1 -0
  40. package/dist/interface/assets/Plugins-DhmzMNuO.js +1 -0
  41. package/dist/interface/assets/Recordings-Bu53bSBp.js +1 -0
  42. package/dist/interface/assets/Recordings-XY20w8yp.js +1 -0
  43. package/dist/interface/assets/Settings-JES2wb8p.css +1 -0
  44. package/dist/interface/assets/Settings-gGRBRVST.js +1 -0
  45. package/dist/interface/assets/System-ZDrcLNk0.js +1 -0
  46. package/dist/interface/assets/User-BXColIbU.css +1 -0
  47. package/dist/interface/assets/User-D4vEhhzi.js +1 -0
  48. package/dist/interface/assets/VConfigEditor.vue_vue_type_script_setup_true_lang-CXFI-IeE.js +2 -0
  49. package/dist/interface/assets/VConsole-BHo3xprq.js +1 -0
  50. package/dist/interface/assets/VConsole-f-nUkOuD.css +1 -0
  51. package/dist/interface/assets/VPlayer-D3KhRfx-.css +1 -0
  52. package/dist/interface/assets/VPlayer-YdRn97Bs.js +1 -0
  53. package/dist/interface/assets/VPluginCard--3bx6UJb.js +4 -0
  54. package/dist/interface/assets/VPluginCard-BJYMuCLk.css +1 -0
  55. package/dist/interface/assets/ace-builds-CigWTak4.js +956 -0
  56. package/dist/interface/assets/axios--Jv2L996.js +6 -0
  57. package/dist/interface/assets/dijkstrajs-D_NXgYpA.js +1 -0
  58. package/dist/interface/assets/dnd-core-SnWOpY0X.js +1 -0
  59. package/dist/interface/assets/draggabilly-Arakw9Dk.js +6 -0
  60. package/dist/interface/assets/encode-utf8-Cn5aGd7v.js +1 -0
  61. package/dist/interface/assets/engine.io-client-DBBxzneW.js +1 -0
  62. package/dist/interface/assets/engine.io-parser-BiEtp6m2.js +1 -0
  63. package/dist/interface/assets/entities-C20TfXL6.js +1 -0
  64. package/dist/interface/assets/ev-emitter-CXYwG0eJ.js +1 -0
  65. package/dist/interface/assets/fast-deep-equal-5pvsDbwX.js +1 -0
  66. package/dist/interface/assets/get-size-D1dS-IaP.js +5 -0
  67. package/dist/interface/assets/highlight-DgoK_Xib.css +1 -0
  68. package/dist/interface/assets/highlight.js-TxRCSjhv.js +2 -0
  69. package/dist/interface/assets/linkify-it-DmNjr4Kv.js +1 -0
  70. package/dist/interface/assets/logo-256-BCQk9H1-.png +0 -0
  71. package/dist/interface/assets/logo-512-DLKVOU2S.png +0 -0
  72. package/dist/interface/assets/logo-DmEiRk0z.png +0 -0
  73. package/dist/interface/assets/main-B3IVLctZ.css +1 -0
  74. package/dist/interface/assets/main-C4rYiRNz.js +2 -0
  75. package/dist/interface/assets/markdown-it-DI8MEbma.js +15 -0
  76. package/dist/interface/assets/mdurl-k9Sl0PQj.js +2 -0
  77. package/dist/interface/assets/mode-json-Br7xisR1.js +275 -0
  78. package/dist/interface/assets/mode-yaml-CIYL8U3d.js +395 -0
  79. package/dist/interface/assets/nprogress-DSyAi0LF.js +2 -0
  80. package/dist/interface/assets/pinia-D8MtiGcH.js +5 -0
  81. package/dist/interface/assets/plugins-Bf03y242.js +1 -0
  82. package/dist/interface/assets/punycode.js-Dj65hjkv.js +1 -0
  83. package/dist/interface/assets/qrcode-CGiDONbL.js +8 -0
  84. package/dist/interface/assets/react-dnd-html5-backend-1HQjlkwI.js +2 -0
  85. package/dist/interface/assets/react-dnd-touch-backend-NgACaG8W.js +1 -0
  86. package/dist/interface/assets/redux-CuxFRhX_.js +1 -0
  87. package/dist/interface/assets/rxjs-B53o3e_J.js +3 -0
  88. package/dist/interface/assets/socket.io-client-Bq_SHkin.js +1 -0
  89. package/dist/interface/assets/socket.io-parser-BBkuslX-.js +1 -0
  90. package/dist/interface/assets/system-BONnDA4y.js +1 -0
  91. package/dist/interface/assets/tslib-9k7AwCpt.js +1 -0
  92. package/dist/interface/assets/uc.micro-kMc2yuuw.js +1 -0
  93. package/dist/interface/assets/ui-CNpIJotI.js +1 -0
  94. package/dist/interface/assets/unidragger-BYtqgAQ0.js +5 -0
  95. package/dist/interface/assets/utils-BvINh1mj.js +1 -0
  96. package/dist/interface/assets/uuid-DvF23Exx.js +1 -0
  97. package/dist/interface/assets/v-calendar-CtSuDYZU.css +1 -0
  98. package/dist/interface/assets/v-calendar-uh0aTGqP.js +1 -0
  99. package/dist/interface/assets/vee-validate-D3FqbChK.js +5 -0
  100. package/dist/interface/assets/vue-i18n-1AU8MPys.js +5 -0
  101. package/dist/interface/assets/vue-inline-svg-2DDwYW6V.js +1 -0
  102. package/dist/interface/assets/vue-l0sNRNKZ.js +1 -0
  103. package/dist/interface/assets/vue-router-DfeQ8s4I.js +5 -0
  104. package/dist/interface/assets/vue3-dnd-BwxcSU9Z.js +1 -0
  105. package/dist/interface/assets/vue3-toastify-DTY1DMRs.css +1 -0
  106. package/dist/interface/assets/vue3-toastify-Ul-rf53I.js +1 -0
  107. package/dist/interface/assets/vuetify-B__3Y-at.css +5 -0
  108. package/dist/interface/assets/vuetify-_-Oqac3B.js +5 -0
  109. package/dist/interface/assets/zod-BaF2dDCd.js +1 -0
  110. package/dist/interface/browserconfig.xml +11 -0
  111. package/dist/interface/fonts/Inter/Inter-Regular.ttf +0 -0
  112. package/dist/interface/index.html +377 -0
  113. package/dist/interface/manifest.webmanifest +1 -0
  114. package/dist/interface/pwa/apple-splash-landscape-dark-1136x640.png +0 -0
  115. package/dist/interface/pwa/apple-splash-landscape-dark-1334x750.png +0 -0
  116. package/dist/interface/pwa/apple-splash-landscape-dark-1792x828.png +0 -0
  117. package/dist/interface/pwa/apple-splash-landscape-dark-2048x1536.png +0 -0
  118. package/dist/interface/pwa/apple-splash-landscape-dark-2160x1620.png +0 -0
  119. package/dist/interface/pwa/apple-splash-landscape-dark-2208x1242.png +0 -0
  120. package/dist/interface/pwa/apple-splash-landscape-dark-2224x1668.png +0 -0
  121. package/dist/interface/pwa/apple-splash-landscape-dark-2388x1668.png +0 -0
  122. package/dist/interface/pwa/apple-splash-landscape-dark-2436x1125.png +0 -0
  123. package/dist/interface/pwa/apple-splash-landscape-dark-2532x1170.png +0 -0
  124. package/dist/interface/pwa/apple-splash-landscape-dark-2556x1179.png +0 -0
  125. package/dist/interface/pwa/apple-splash-landscape-dark-2688x1242.png +0 -0
  126. package/dist/interface/pwa/apple-splash-landscape-dark-2732x2048.png +0 -0
  127. package/dist/interface/pwa/apple-splash-landscape-dark-2778x1284.png +0 -0
  128. package/dist/interface/pwa/apple-splash-landscape-dark-2796x1290.png +0 -0
  129. package/dist/interface/pwa/apple-splash-landscape-light-1136x640.png +0 -0
  130. package/dist/interface/pwa/apple-splash-landscape-light-1334x750.png +0 -0
  131. package/dist/interface/pwa/apple-splash-landscape-light-1792x828.png +0 -0
  132. package/dist/interface/pwa/apple-splash-landscape-light-2048x1536.png +0 -0
  133. package/dist/interface/pwa/apple-splash-landscape-light-2160x1620.png +0 -0
  134. package/dist/interface/pwa/apple-splash-landscape-light-2208x1242.png +0 -0
  135. package/dist/interface/pwa/apple-splash-landscape-light-2224x1668.png +0 -0
  136. package/dist/interface/pwa/apple-splash-landscape-light-2388x1668.png +0 -0
  137. package/dist/interface/pwa/apple-splash-landscape-light-2436x1125.png +0 -0
  138. package/dist/interface/pwa/apple-splash-landscape-light-2532x1170.png +0 -0
  139. package/dist/interface/pwa/apple-splash-landscape-light-2556x1179.png +0 -0
  140. package/dist/interface/pwa/apple-splash-landscape-light-2688x1242.png +0 -0
  141. package/dist/interface/pwa/apple-splash-landscape-light-2732x2048.png +0 -0
  142. package/dist/interface/pwa/apple-splash-landscape-light-2778x1284.png +0 -0
  143. package/dist/interface/pwa/apple-splash-landscape-light-2796x1290.png +0 -0
  144. package/dist/interface/pwa/apple-splash-portrait-dark-1125x2436.png +0 -0
  145. package/dist/interface/pwa/apple-splash-portrait-dark-1170x2532.png +0 -0
  146. package/dist/interface/pwa/apple-splash-portrait-dark-1179x2556.png +0 -0
  147. package/dist/interface/pwa/apple-splash-portrait-dark-1242x2208.png +0 -0
  148. package/dist/interface/pwa/apple-splash-portrait-dark-1242x2688.png +0 -0
  149. package/dist/interface/pwa/apple-splash-portrait-dark-1284x2778.png +0 -0
  150. package/dist/interface/pwa/apple-splash-portrait-dark-1290x2796.png +0 -0
  151. package/dist/interface/pwa/apple-splash-portrait-dark-1536x2048.png +0 -0
  152. package/dist/interface/pwa/apple-splash-portrait-dark-1620x2160.png +0 -0
  153. package/dist/interface/pwa/apple-splash-portrait-dark-1668x2224.png +0 -0
  154. package/dist/interface/pwa/apple-splash-portrait-dark-1668x2388.png +0 -0
  155. package/dist/interface/pwa/apple-splash-portrait-dark-2048x2732.png +0 -0
  156. package/dist/interface/pwa/apple-splash-portrait-dark-640x1136.png +0 -0
  157. package/dist/interface/pwa/apple-splash-portrait-dark-750x1334.png +0 -0
  158. package/dist/interface/pwa/apple-splash-portrait-dark-828x1792.png +0 -0
  159. package/dist/interface/pwa/apple-splash-portrait-light-1125x2436.png +0 -0
  160. package/dist/interface/pwa/apple-splash-portrait-light-1170x2532.png +0 -0
  161. package/dist/interface/pwa/apple-splash-portrait-light-1179x2556.png +0 -0
  162. package/dist/interface/pwa/apple-splash-portrait-light-1242x2208.png +0 -0
  163. package/dist/interface/pwa/apple-splash-portrait-light-1242x2688.png +0 -0
  164. package/dist/interface/pwa/apple-splash-portrait-light-1284x2778.png +0 -0
  165. package/dist/interface/pwa/apple-splash-portrait-light-1290x2796.png +0 -0
  166. package/dist/interface/pwa/apple-splash-portrait-light-1536x2048.png +0 -0
  167. package/dist/interface/pwa/apple-splash-portrait-light-1620x2160.png +0 -0
  168. package/dist/interface/pwa/apple-splash-portrait-light-1668x2224.png +0 -0
  169. package/dist/interface/pwa/apple-splash-portrait-light-1668x2388.png +0 -0
  170. package/dist/interface/pwa/apple-splash-portrait-light-2048x2732.png +0 -0
  171. package/dist/interface/pwa/apple-splash-portrait-light-640x1136.png +0 -0
  172. package/dist/interface/pwa/apple-splash-portrait-light-750x1334.png +0 -0
  173. package/dist/interface/pwa/apple-splash-portrait-light-828x1792.png +0 -0
  174. package/dist/interface/pwa/apple-touch-icon-180x180.png +0 -0
  175. package/dist/interface/pwa/favicon-16.ico +0 -0
  176. package/dist/interface/pwa/favicon-32.ico +0 -0
  177. package/dist/interface/pwa/favicon-48.ico +0 -0
  178. package/dist/interface/pwa/favicon-64.ico +0 -0
  179. package/dist/interface/pwa/logo.svg +1 -0
  180. package/dist/interface/pwa/maskable-icon-1240x600.png +0 -0
  181. package/dist/interface/pwa/maskable-icon-512x512.png +0 -0
  182. package/dist/interface/pwa/maskable-icon-620x300.png +0 -0
  183. package/dist/interface/pwa/pwa-1024x1024.png +0 -0
  184. package/dist/interface/pwa/pwa-120x120.png +0 -0
  185. package/dist/interface/pwa/pwa-144x144.png +0 -0
  186. package/dist/interface/pwa/pwa-152x152.png +0 -0
  187. package/dist/interface/pwa/pwa-167x167.png +0 -0
  188. package/dist/interface/pwa/pwa-180x180.png +0 -0
  189. package/dist/interface/pwa/pwa-192x192.png +0 -0
  190. package/dist/interface/pwa/pwa-24x24.png +0 -0
  191. package/dist/interface/pwa/pwa-300x300.png +0 -0
  192. package/dist/interface/pwa/pwa-36x36.png +0 -0
  193. package/dist/interface/pwa/pwa-48x48.png +0 -0
  194. package/dist/interface/pwa/pwa-50x50.png +0 -0
  195. package/dist/interface/pwa/pwa-64x64.png +0 -0
  196. package/dist/interface/pwa/pwa-72x72.png +0 -0
  197. package/dist/interface/pwa/pwa-88x88.png +0 -0
  198. package/dist/interface/pwa/pwa-96x96.png +0 -0
  199. package/dist/interface/registerSW.js +1 -0
  200. package/dist/interface/robots.txt +2 -0
  201. package/dist/interface/sw.js +1 -0
  202. package/dist/interface/workbox-3e911b1d.js +1 -0
  203. package/dist/server/bin/cui-service.d.ts +43 -0
  204. package/dist/server/bin/cui-service.js +472 -0
  205. package/dist/server/bin/cui-service.js.map +1 -0
  206. package/dist/server/bin/cui.d.ts +2 -0
  207. package/dist/server/bin/cui.js +8 -0
  208. package/dist/server/bin/cui.js.map +1 -0
  209. package/dist/server/bin/installer/base.d.ts +16 -0
  210. package/dist/server/bin/installer/base.js +41 -0
  211. package/dist/server/bin/installer/base.js.map +1 -0
  212. package/dist/server/bin/installer/darwin.d.ts +49 -0
  213. package/dist/server/bin/installer/darwin.js +200 -0
  214. package/dist/server/bin/installer/darwin.js.map +1 -0
  215. package/dist/server/bin/installer/freebsd.d.ts +61 -0
  216. package/dist/server/bin/installer/freebsd.js +252 -0
  217. package/dist/server/bin/installer/freebsd.js.map +1 -0
  218. package/dist/server/bin/installer/linux.d.ts +92 -0
  219. package/dist/server/bin/installer/linux.js +386 -0
  220. package/dist/server/bin/installer/linux.js.map +1 -0
  221. package/dist/server/bin/installer/win32.d.ts +37 -0
  222. package/dist/server/bin/installer/win32.js +158 -0
  223. package/dist/server/bin/installer/win32.js.map +1 -0
  224. package/dist/server/package.json +142 -0
  225. package/dist/server/requirements.txt +13 -0
  226. package/dist/server/src/api/controllers/api.controller.d.ts +6 -0
  227. package/dist/server/src/api/controllers/api.controller.js +11 -0
  228. package/dist/server/src/api/controllers/api.controller.js.map +1 -0
  229. package/dist/server/src/api/controllers/auth.controller.d.ts +20 -0
  230. package/dist/server/src/api/controllers/auth.controller.js +263 -0
  231. package/dist/server/src/api/controllers/auth.controller.js.map +1 -0
  232. package/dist/server/src/api/controllers/backup.controller.d.ts +10 -0
  233. package/dist/server/src/api/controllers/backup.controller.js +52 -0
  234. package/dist/server/src/api/controllers/backup.controller.js.map +1 -0
  235. package/dist/server/src/api/controllers/cameras.controller.d.ts +34 -0
  236. package/dist/server/src/api/controllers/cameras.controller.js +522 -0
  237. package/dist/server/src/api/controllers/cameras.controller.js.map +1 -0
  238. package/dist/server/src/api/controllers/config.controller.d.ts +14 -0
  239. package/dist/server/src/api/controllers/config.controller.js +89 -0
  240. package/dist/server/src/api/controllers/config.controller.js.map +1 -0
  241. package/dist/server/src/api/controllers/files.controller.d.ts +8 -0
  242. package/dist/server/src/api/controllers/files.controller.js +28 -0
  243. package/dist/server/src/api/controllers/files.controller.js.map +1 -0
  244. package/dist/server/src/api/controllers/frameWorkers.controller.d.ts +16 -0
  245. package/dist/server/src/api/controllers/frameWorkers.controller.js +85 -0
  246. package/dist/server/src/api/controllers/frameWorkers.controller.js.map +1 -0
  247. package/dist/server/src/api/controllers/plugins.controller.d.ts +59 -0
  248. package/dist/server/src/api/controllers/plugins.controller.js +1178 -0
  249. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -0
  250. package/dist/server/src/api/controllers/system.controller.d.ts +14 -0
  251. package/dist/server/src/api/controllers/system.controller.js +149 -0
  252. package/dist/server/src/api/controllers/system.controller.js.map +1 -0
  253. package/dist/server/src/api/controllers/users.controller.d.ts +28 -0
  254. package/dist/server/src/api/controllers/users.controller.js +463 -0
  255. package/dist/server/src/api/controllers/users.controller.js.map +1 -0
  256. package/dist/server/src/api/database/index.d.ts +34 -0
  257. package/dist/server/src/api/database/index.js +185 -0
  258. package/dist/server/src/api/database/index.js.map +1 -0
  259. package/dist/server/src/api/database/migration.d.ts +12 -0
  260. package/dist/server/src/api/database/migration.js +47 -0
  261. package/dist/server/src/api/database/migration.js.map +1 -0
  262. package/dist/server/src/api/database/types.d.ts +209 -0
  263. package/dist/server/src/api/database/types.js +2 -0
  264. package/dist/server/src/api/database/types.js.map +1 -0
  265. package/dist/server/src/api/go2rtc/api/application.d.ts +9 -0
  266. package/dist/server/src/api/go2rtc/api/application.js +38 -0
  267. package/dist/server/src/api/go2rtc/api/application.js.map +1 -0
  268. package/dist/server/src/api/go2rtc/api/config.d.ts +8 -0
  269. package/dist/server/src/api/go2rtc/api/config.js +44 -0
  270. package/dist/server/src/api/go2rtc/api/config.js.map +1 -0
  271. package/dist/server/src/api/go2rtc/api/index.d.ts +1 -0
  272. package/dist/server/src/api/go2rtc/api/index.js +28 -0
  273. package/dist/server/src/api/go2rtc/api/index.js.map +1 -0
  274. package/dist/server/src/api/go2rtc/api/snapshot.d.ts +8 -0
  275. package/dist/server/src/api/go2rtc/api/snapshot.js +34 -0
  276. package/dist/server/src/api/go2rtc/api/snapshot.js.map +1 -0
  277. package/dist/server/src/api/go2rtc/api/streams.d.ts +10 -0
  278. package/dist/server/src/api/go2rtc/api/streams.js +67 -0
  279. package/dist/server/src/api/go2rtc/api/streams.js.map +1 -0
  280. package/dist/server/src/api/go2rtc/index.d.ts +13 -0
  281. package/dist/server/src/api/go2rtc/index.js +25 -0
  282. package/dist/server/src/api/go2rtc/index.js.map +1 -0
  283. package/dist/server/src/api/go2rtc/queue.d.ts +10 -0
  284. package/dist/server/src/api/go2rtc/queue.js +38 -0
  285. package/dist/server/src/api/go2rtc/queue.js.map +1 -0
  286. package/dist/server/src/api/go2rtc/types.d.ts +60 -0
  287. package/dist/server/src/api/go2rtc/types.js +2 -0
  288. package/dist/server/src/api/go2rtc/types.js.map +1 -0
  289. package/dist/server/src/api/index.d.ts +20 -0
  290. package/dist/server/src/api/index.js +233 -0
  291. package/dist/server/src/api/index.js.map +1 -0
  292. package/dist/server/src/api/middlewares/authPermission.middleware.d.ts +5 -0
  293. package/dist/server/src/api/middlewares/authPermission.middleware.js +28 -0
  294. package/dist/server/src/api/middlewares/authPermission.middleware.js.map +1 -0
  295. package/dist/server/src/api/middlewares/authValidation.middleware.d.ts +4 -0
  296. package/dist/server/src/api/middlewares/authValidation.middleware.js +129 -0
  297. package/dist/server/src/api/middlewares/authValidation.middleware.js.map +1 -0
  298. package/dist/server/src/api/middlewares/pagination.middleware.d.ts +3 -0
  299. package/dist/server/src/api/middlewares/pagination.middleware.js +65 -0
  300. package/dist/server/src/api/middlewares/pagination.middleware.js.map +1 -0
  301. package/dist/server/src/api/middlewares/socketAuth.middleware.d.ts +41 -0
  302. package/dist/server/src/api/middlewares/socketAuth.middleware.js +81 -0
  303. package/dist/server/src/api/middlewares/socketAuth.middleware.js.map +1 -0
  304. package/dist/server/src/api/plugins/cameraui.plugin.d.ts +11 -0
  305. package/dist/server/src/api/plugins/cameraui.plugin.js +6 -0
  306. package/dist/server/src/api/plugins/cameraui.plugin.js.map +1 -0
  307. package/dist/server/src/api/plugins/database.plugin.d.ts +11 -0
  308. package/dist/server/src/api/plugins/database.plugin.js +12 -0
  309. package/dist/server/src/api/plugins/database.plugin.js.map +1 -0
  310. package/dist/server/src/api/plugins/go2rtc.plugin.d.ts +11 -0
  311. package/dist/server/src/api/plugins/go2rtc.plugin.js +11 -0
  312. package/dist/server/src/api/plugins/go2rtc.plugin.js.map +1 -0
  313. package/dist/server/src/api/plugins/logger.plugin.d.ts +7 -0
  314. package/dist/server/src/api/plugins/logger.plugin.js +29 -0
  315. package/dist/server/src/api/plugins/logger.plugin.js.map +1 -0
  316. package/dist/server/src/api/plugins/socket.plugin.d.ts +11 -0
  317. package/dist/server/src/api/plugins/socket.plugin.js +12 -0
  318. package/dist/server/src/api/plugins/socket.plugin.js.map +1 -0
  319. package/dist/server/src/api/plugins/system.plugin.d.ts +21 -0
  320. package/dist/server/src/api/plugins/system.plugin.js +33 -0
  321. package/dist/server/src/api/plugins/system.plugin.js.map +1 -0
  322. package/dist/server/src/api/plugins/useragent.plugin.d.ts +8 -0
  323. package/dist/server/src/api/plugins/useragent.plugin.js +10 -0
  324. package/dist/server/src/api/plugins/useragent.plugin.js.map +1 -0
  325. package/dist/server/src/api/routes/api.routes.d.ts +2 -0
  326. package/dist/server/src/api/routes/api.routes.js +6 -0
  327. package/dist/server/src/api/routes/api.routes.js.map +1 -0
  328. package/dist/server/src/api/routes/auth.routes.d.ts +2 -0
  329. package/dist/server/src/api/routes/auth.routes.js +47 -0
  330. package/dist/server/src/api/routes/auth.routes.js.map +1 -0
  331. package/dist/server/src/api/routes/backup.routes.d.ts +2 -0
  332. package/dist/server/src/api/routes/backup.routes.js +23 -0
  333. package/dist/server/src/api/routes/backup.routes.js.map +1 -0
  334. package/dist/server/src/api/routes/cameras.routes.d.ts +2 -0
  335. package/dist/server/src/api/routes/cameras.routes.js +181 -0
  336. package/dist/server/src/api/routes/cameras.routes.js.map +1 -0
  337. package/dist/server/src/api/routes/config.routes.d.ts +2 -0
  338. package/dist/server/src/api/routes/config.routes.js +55 -0
  339. package/dist/server/src/api/routes/config.routes.js.map +1 -0
  340. package/dist/server/src/api/routes/files.routes.d.ts +2 -0
  341. package/dist/server/src/api/routes/files.routes.js +12 -0
  342. package/dist/server/src/api/routes/files.routes.js.map +1 -0
  343. package/dist/server/src/api/routes/frameWorkers.routes.d.ts +2 -0
  344. package/dist/server/src/api/routes/frameWorkers.routes.js +33 -0
  345. package/dist/server/src/api/routes/frameWorkers.routes.js.map +1 -0
  346. package/dist/server/src/api/routes/index.d.ts +6 -0
  347. package/dist/server/src/api/routes/index.js +32 -0
  348. package/dist/server/src/api/routes/index.js.map +1 -0
  349. package/dist/server/src/api/routes/plugins.routes.d.ts +2 -0
  350. package/dist/server/src/api/routes/plugins.routes.js +339 -0
  351. package/dist/server/src/api/routes/plugins.routes.js.map +1 -0
  352. package/dist/server/src/api/routes/system.routes.d.ts +2 -0
  353. package/dist/server/src/api/routes/system.routes.js +43 -0
  354. package/dist/server/src/api/routes/system.routes.js.map +1 -0
  355. package/dist/server/src/api/routes/users.routes.d.ts +2 -0
  356. package/dist/server/src/api/routes/users.routes.js +139 -0
  357. package/dist/server/src/api/routes/users.routes.js.map +1 -0
  358. package/dist/server/src/api/schemas/backup.schema.d.ts +118 -0
  359. package/dist/server/src/api/schemas/backup.schema.js +75 -0
  360. package/dist/server/src/api/schemas/backup.schema.js.map +1 -0
  361. package/dist/server/src/api/schemas/cameras.schema.d.ts +932 -0
  362. package/dist/server/src/api/schemas/cameras.schema.js +271 -0
  363. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -0
  364. package/dist/server/src/api/schemas/config.schema.d.ts +202 -0
  365. package/dist/server/src/api/schemas/config.schema.js +68 -0
  366. package/dist/server/src/api/schemas/config.schema.js.map +1 -0
  367. package/dist/server/src/api/schemas/go2rtc.schema.d.ts +703 -0
  368. package/dist/server/src/api/schemas/go2rtc.schema.js +188 -0
  369. package/dist/server/src/api/schemas/go2rtc.schema.js.map +1 -0
  370. package/dist/server/src/api/schemas/plugins.schema.d.ts +72 -0
  371. package/dist/server/src/api/schemas/plugins.schema.js +103 -0
  372. package/dist/server/src/api/schemas/plugins.schema.js.map +1 -0
  373. package/dist/server/src/api/schemas/users.schema.d.ts +1008 -0
  374. package/dist/server/src/api/schemas/users.schema.js +151 -0
  375. package/dist/server/src/api/schemas/users.schema.js.map +1 -0
  376. package/dist/server/src/api/services/auth.service.d.ts +19 -0
  377. package/dist/server/src/api/services/auth.service.js +115 -0
  378. package/dist/server/src/api/services/auth.service.js.map +1 -0
  379. package/dist/server/src/api/services/backup.service.d.ts +11 -0
  380. package/dist/server/src/api/services/backup.service.js +108 -0
  381. package/dist/server/src/api/services/backup.service.js.map +1 -0
  382. package/dist/server/src/api/services/cameras.service.d.ts +55 -0
  383. package/dist/server/src/api/services/cameras.service.js +700 -0
  384. package/dist/server/src/api/services/cameras.service.js.map +1 -0
  385. package/dist/server/src/api/services/plugins.service.d.ts +25 -0
  386. package/dist/server/src/api/services/plugins.service.js +145 -0
  387. package/dist/server/src/api/services/plugins.service.js.map +1 -0
  388. package/dist/server/src/api/services/users.service.d.ts +25 -0
  389. package/dist/server/src/api/services/users.service.js +197 -0
  390. package/dist/server/src/api/services/users.service.js.map +1 -0
  391. package/dist/server/src/api/types/index.d.ts +580 -0
  392. package/dist/server/src/api/types/index.js +9 -0
  393. package/dist/server/src/api/types/index.js.map +1 -0
  394. package/dist/server/src/api/utils/cert.d.ts +11 -0
  395. package/dist/server/src/api/utils/cert.js +411 -0
  396. package/dist/server/src/api/utils/cert.js.map +1 -0
  397. package/dist/server/src/api/utils/constants.d.ts +15 -0
  398. package/dist/server/src/api/utils/constants.js +17 -0
  399. package/dist/server/src/api/utils/constants.js.map +1 -0
  400. package/dist/server/src/api/utils/fetch.d.ts +2 -0
  401. package/dist/server/src/api/utils/fetch.js +24 -0
  402. package/dist/server/src/api/utils/fetch.js.map +1 -0
  403. package/dist/server/src/api/utils/moveFiles.d.ts +1 -0
  404. package/dist/server/src/api/utils/moveFiles.js +38 -0
  405. package/dist/server/src/api/utils/moveFiles.js.map +1 -0
  406. package/dist/server/src/api/utils/parse.d.ts +2 -0
  407. package/dist/server/src/api/utils/parse.js +12 -0
  408. package/dist/server/src/api/utils/parse.js.map +1 -0
  409. package/dist/server/src/api/websocket/index.d.ts +15 -0
  410. package/dist/server/src/api/websocket/index.js +69 -0
  411. package/dist/server/src/api/websocket/index.js.map +1 -0
  412. package/dist/server/src/api/websocket/nsp/frameWorker.d.ts +13 -0
  413. package/dist/server/src/api/websocket/nsp/frameWorker.js +29 -0
  414. package/dist/server/src/api/websocket/nsp/frameWorker.js.map +1 -0
  415. package/dist/server/src/api/websocket/nsp/logs.d.ts +11 -0
  416. package/dist/server/src/api/websocket/nsp/logs.js +113 -0
  417. package/dist/server/src/api/websocket/nsp/logs.js.map +1 -0
  418. package/dist/server/src/api/websocket/nsp/metrics.d.ts +38 -0
  419. package/dist/server/src/api/websocket/nsp/metrics.js +266 -0
  420. package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -0
  421. package/dist/server/src/api/websocket/nsp/notifications.d.ts +11 -0
  422. package/dist/server/src/api/websocket/nsp/notifications.js +35 -0
  423. package/dist/server/src/api/websocket/nsp/notifications.js.map +1 -0
  424. package/dist/server/src/api/websocket/nsp/plugins.d.ts +13 -0
  425. package/dist/server/src/api/websocket/nsp/plugins.js +29 -0
  426. package/dist/server/src/api/websocket/nsp/plugins.js.map +1 -0
  427. package/dist/server/src/api/websocket/nsp/server.d.ts +9 -0
  428. package/dist/server/src/api/websocket/nsp/server.js +48 -0
  429. package/dist/server/src/api/websocket/nsp/server.js.map +1 -0
  430. package/dist/server/src/api/websocket/nsp/status.d.ts +26 -0
  431. package/dist/server/src/api/websocket/nsp/status.js +59 -0
  432. package/dist/server/src/api/websocket/nsp/status.js.map +1 -0
  433. package/dist/server/src/api/websocket/types.d.ts +86 -0
  434. package/dist/server/src/api/websocket/types.js +2 -0
  435. package/dist/server/src/api/websocket/types.js.map +1 -0
  436. package/dist/server/src/api.d.ts +43 -0
  437. package/dist/server/src/api.js +90 -0
  438. package/dist/server/src/api.js.map +1 -0
  439. package/dist/server/src/camera/controller.d.ts +41 -0
  440. package/dist/server/src/camera/controller.js +220 -0
  441. package/dist/server/src/camera/controller.js.map +1 -0
  442. package/dist/server/src/camera/device.d.ts +18 -0
  443. package/dist/server/src/camera/device.js +21 -0
  444. package/dist/server/src/camera/device.js.map +1 -0
  445. package/dist/server/src/camera/index.d.ts +121 -0
  446. package/dist/server/src/camera/index.js +643 -0
  447. package/dist/server/src/camera/index.js.map +1 -0
  448. package/dist/server/src/camera/interfaces/camera.d.ts +11 -0
  449. package/dist/server/src/camera/interfaces/camera.js +31 -0
  450. package/dist/server/src/camera/interfaces/camera.js.map +1 -0
  451. package/dist/server/src/camera/interfaces/prebuffer.d.ts +11 -0
  452. package/dist/server/src/camera/interfaces/prebuffer.js +26 -0
  453. package/dist/server/src/camera/interfaces/prebuffer.js.map +1 -0
  454. package/dist/server/src/camera/interfaces/ptz.d.ts +13 -0
  455. package/dist/server/src/camera/interfaces/ptz.js +47 -0
  456. package/dist/server/src/camera/interfaces/ptz.js.map +1 -0
  457. package/dist/server/src/camera/polygon.d.ts +6 -0
  458. package/dist/server/src/camera/polygon.js +151 -0
  459. package/dist/server/src/camera/polygon.js.map +1 -0
  460. package/dist/server/src/camera/streaming/peer-connection.d.ts +46 -0
  461. package/dist/server/src/camera/streaming/peer-connection.js +150 -0
  462. package/dist/server/src/camera/streaming/peer-connection.js.map +1 -0
  463. package/dist/server/src/camera/streaming/webrtc-connection.d.ts +34 -0
  464. package/dist/server/src/camera/streaming/webrtc-connection.js +152 -0
  465. package/dist/server/src/camera/streaming/webrtc-connection.js.map +1 -0
  466. package/dist/server/src/camera/streaming/werift-session.d.ts +31 -0
  467. package/dist/server/src/camera/streaming/werift-session.js +168 -0
  468. package/dist/server/src/camera/streaming/werift-session.js.map +1 -0
  469. package/dist/server/src/camera/types.d.ts +202 -0
  470. package/dist/server/src/camera/types.js +7 -0
  471. package/dist/server/src/camera/types.js.map +1 -0
  472. package/dist/server/src/camera/videoFrame.d.ts +24 -0
  473. package/dist/server/src/camera/videoFrame.js +105 -0
  474. package/dist/server/src/camera/videoFrame.js.map +1 -0
  475. package/dist/server/src/decoder/ffmpeg.d.ts +2 -0
  476. package/dist/server/src/decoder/ffmpeg.js +61 -0
  477. package/dist/server/src/decoder/ffmpeg.js.map +1 -0
  478. package/dist/server/src/decoder/index.d.ts +11 -0
  479. package/dist/server/src/decoder/index.js +32 -0
  480. package/dist/server/src/decoder/index.js.map +1 -0
  481. package/dist/server/src/decoder/types.d.ts +156 -0
  482. package/dist/server/src/decoder/types.js +2 -0
  483. package/dist/server/src/decoder/types.js.map +1 -0
  484. package/dist/server/src/decoder/worker.d.ts +42 -0
  485. package/dist/server/src/decoder/worker.js +273 -0
  486. package/dist/server/src/decoder/worker.js.map +1 -0
  487. package/dist/server/src/go2rtc/index.d.ts +25 -0
  488. package/dist/server/src/go2rtc/index.js +211 -0
  489. package/dist/server/src/go2rtc/index.js.map +1 -0
  490. package/dist/server/src/go2rtc/types.d.ts +14 -0
  491. package/dist/server/src/go2rtc/types.js +73 -0
  492. package/dist/server/src/go2rtc/types.js.map +1 -0
  493. package/dist/server/src/index.d.ts +16 -0
  494. package/dist/server/src/index.js +5 -0
  495. package/dist/server/src/index.js.map +1 -0
  496. package/dist/server/src/main.d.ts +18 -0
  497. package/dist/server/src/main.js +118 -0
  498. package/dist/server/src/main.js.map +1 -0
  499. package/dist/server/src/nats/constants.d.ts +1 -0
  500. package/dist/server/src/nats/constants.js +2 -0
  501. package/dist/server/src/nats/constants.js.map +1 -0
  502. package/dist/server/src/nats/index.d.ts +35 -0
  503. package/dist/server/src/nats/index.js +150 -0
  504. package/dist/server/src/nats/index.js.map +1 -0
  505. package/dist/server/src/nats/messageQueue.d.ts +17 -0
  506. package/dist/server/src/nats/messageQueue.js +148 -0
  507. package/dist/server/src/nats/messageQueue.js.map +1 -0
  508. package/dist/server/src/nats/proxy/cameraDevice.d.ts +30 -0
  509. package/dist/server/src/nats/proxy/cameraDevice.js +252 -0
  510. package/dist/server/src/nats/proxy/cameraDevice.js.map +1 -0
  511. package/dist/server/src/nats/proxy/deviceManager.d.ts +16 -0
  512. package/dist/server/src/nats/proxy/deviceManager.js +110 -0
  513. package/dist/server/src/nats/proxy/deviceManager.js.map +1 -0
  514. package/dist/server/src/nats/proxy/index.d.ts +2 -0
  515. package/dist/server/src/nats/proxy/index.js +3 -0
  516. package/dist/server/src/nats/proxy/index.js.map +1 -0
  517. package/dist/server/src/nats/server.d.ts +38 -0
  518. package/dist/server/src/nats/server.js +325 -0
  519. package/dist/server/src/nats/server.js.map +1 -0
  520. package/dist/server/src/nats/types.d.ts +125 -0
  521. package/dist/server/src/nats/types.js +11 -0
  522. package/dist/server/src/nats/types.js.map +1 -0
  523. package/dist/server/src/nats/utils.d.ts +4 -0
  524. package/dist/server/src/nats/utils.js +12 -0
  525. package/dist/server/src/nats/utils.js.map +1 -0
  526. package/dist/server/src/nats/websocket.d.ts +27 -0
  527. package/dist/server/src/nats/websocket.js +214 -0
  528. package/dist/server/src/nats/websocket.js.map +1 -0
  529. package/dist/server/src/plugins/index.d.ts +32 -0
  530. package/dist/server/src/plugins/index.js +326 -0
  531. package/dist/server/src/plugins/index.js.map +1 -0
  532. package/dist/server/src/plugins/interfaces/audioDetection.d.ts +7 -0
  533. package/dist/server/src/plugins/interfaces/audioDetection.js +4 -0
  534. package/dist/server/src/plugins/interfaces/audioDetection.js.map +1 -0
  535. package/dist/server/src/plugins/interfaces/base.d.ts +6 -0
  536. package/dist/server/src/plugins/interfaces/base.js +3 -0
  537. package/dist/server/src/plugins/interfaces/base.js.map +1 -0
  538. package/dist/server/src/plugins/interfaces/motionDetection.d.ts +6 -0
  539. package/dist/server/src/plugins/interfaces/motionDetection.js +4 -0
  540. package/dist/server/src/plugins/interfaces/motionDetection.js.map +1 -0
  541. package/dist/server/src/plugins/interfaces/objectDetection.d.ts +7 -0
  542. package/dist/server/src/plugins/interfaces/objectDetection.js +4 -0
  543. package/dist/server/src/plugins/interfaces/objectDetection.js.map +1 -0
  544. package/dist/server/src/plugins/plugin.d.ts +42 -0
  545. package/dist/server/src/plugins/plugin.js +207 -0
  546. package/dist/server/src/plugins/plugin.js.map +1 -0
  547. package/dist/server/src/plugins/types.d.ts +181 -0
  548. package/dist/server/src/plugins/types.js +18 -0
  549. package/dist/server/src/plugins/types.js.map +1 -0
  550. package/dist/server/src/plugins/worker.d.ts +35 -0
  551. package/dist/server/src/plugins/worker.js +309 -0
  552. package/dist/server/src/plugins/worker.js.map +1 -0
  553. package/dist/server/src/polyglot/node/decoder/child.d.ts +1 -0
  554. package/dist/server/src/polyglot/node/decoder/child.js +703 -0
  555. package/dist/server/src/polyglot/node/decoder/child.js.map +1 -0
  556. package/dist/server/src/polyglot/node/decoder/imageUtils.d.ts +24 -0
  557. package/dist/server/src/polyglot/node/decoder/imageUtils.js +203 -0
  558. package/dist/server/src/polyglot/node/decoder/imageUtils.js.map +1 -0
  559. package/dist/server/src/polyglot/node/decoder/reader.d.ts +5 -0
  560. package/dist/server/src/polyglot/node/decoder/reader.js +41 -0
  561. package/dist/server/src/polyglot/node/decoder/reader.js.map +1 -0
  562. package/dist/server/src/polyglot/node/decoder/wasm/build/decoder.d.ts +144 -0
  563. package/dist/server/src/polyglot/node/decoder/wasm/build/decoder.js +65 -0
  564. package/dist/server/src/polyglot/node/decoder/wasm/build/decoder.wasm +0 -0
  565. package/dist/server/src/polyglot/node/decoder/wasm/test/imageUtils.py +106 -0
  566. package/dist/server/src/polyglot/node/plugins/api.d.ts +37 -0
  567. package/dist/server/src/polyglot/node/plugins/api.js +34 -0
  568. package/dist/server/src/polyglot/node/plugins/api.js.map +1 -0
  569. package/dist/server/src/polyglot/node/plugins/cameraStorage.d.ts +108 -0
  570. package/dist/server/src/polyglot/node/plugins/cameraStorage.js +310 -0
  571. package/dist/server/src/polyglot/node/plugins/cameraStorage.js.map +1 -0
  572. package/dist/server/src/polyglot/node/plugins/child.d.ts +25 -0
  573. package/dist/server/src/polyglot/node/plugins/child.js +206 -0
  574. package/dist/server/src/polyglot/node/plugins/child.js.map +1 -0
  575. package/dist/server/src/polyglot/node/plugins/config.d.ts +104 -0
  576. package/dist/server/src/polyglot/node/plugins/config.js +213 -0
  577. package/dist/server/src/polyglot/node/plugins/config.js.map +1 -0
  578. package/dist/server/src/polyglot/node/plugins/logger.d.ts +16 -0
  579. package/dist/server/src/polyglot/node/plugins/logger.js +128 -0
  580. package/dist/server/src/polyglot/node/plugins/logger.js.map +1 -0
  581. package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.d.ts +75 -0
  582. package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.js +474 -0
  583. package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.js.map +1 -0
  584. package/dist/server/src/polyglot/node/plugins/proxy/deviceManager.d.ts +49 -0
  585. package/dist/server/src/polyglot/node/plugins/proxy/deviceManager.js +194 -0
  586. package/dist/server/src/polyglot/node/plugins/proxy/deviceManager.js.map +1 -0
  587. package/dist/server/src/polyglot/node/plugins/proxy/index.d.ts +2 -0
  588. package/dist/server/src/polyglot/node/plugins/proxy/index.js +3 -0
  589. package/dist/server/src/polyglot/node/plugins/proxy/index.js.map +1 -0
  590. package/dist/server/src/polyglot/node/plugins/proxy/messageQueue.d.ts +20 -0
  591. package/dist/server/src/polyglot/node/plugins/proxy/messageQueue.js +152 -0
  592. package/dist/server/src/polyglot/node/plugins/proxy/messageQueue.js.map +1 -0
  593. package/dist/server/src/polyglot/node/plugins/schema.d.ts +280 -0
  594. package/dist/server/src/polyglot/node/plugins/schema.js +719 -0
  595. package/dist/server/src/polyglot/node/plugins/schema.js.map +1 -0
  596. package/dist/server/src/polyglot/node/plugins/storageController.d.ts +28 -0
  597. package/dist/server/src/polyglot/node/plugins/storageController.js +38 -0
  598. package/dist/server/src/polyglot/node/plugins/storageController.js.map +1 -0
  599. package/dist/server/src/polyglot/python/camera/interfaces/camera.py +26 -0
  600. package/dist/server/src/polyglot/python/camera/interfaces/prebuffer.py +25 -0
  601. package/dist/server/src/polyglot/python/camera/interfaces/ptz.py +38 -0
  602. package/dist/server/src/polyglot/python/camera/polygon.py +173 -0
  603. package/dist/server/src/polyglot/python/camera/video_frame.py +196 -0
  604. package/dist/server/src/polyglot/python/camera_ui_types/__init__.py +1221 -0
  605. package/dist/server/src/polyglot/python/decoder/child.py +922 -0
  606. package/dist/server/src/polyglot/python/decoder/image_utils.py +149 -0
  607. package/dist/server/src/polyglot/python/decoder/typings.py +99 -0
  608. package/dist/server/src/polyglot/python/plugins/camera_storage.py +459 -0
  609. package/dist/server/src/polyglot/python/plugins/child.py +267 -0
  610. package/dist/server/src/polyglot/python/plugins/config_service.py +180 -0
  611. package/dist/server/src/polyglot/python/plugins/constants.py +2 -0
  612. package/dist/server/src/polyglot/python/plugins/logger.py +111 -0
  613. package/dist/server/src/polyglot/python/plugins/plugin_api.py +114 -0
  614. package/dist/server/src/polyglot/python/plugins/proxy/camera_device.py +1722 -0
  615. package/dist/server/src/polyglot/python/plugins/proxy/device_manager.py +265 -0
  616. package/dist/server/src/polyglot/python/plugins/proxy/message_queue.py +213 -0
  617. package/dist/server/src/polyglot/python/plugins/schema.py +392 -0
  618. package/dist/server/src/polyglot/python/plugins/storage_controller.py +57 -0
  619. package/dist/server/src/polyglot/python/plugins/typings.py +248 -0
  620. package/dist/server/src/polyglot/python/utilities/object_path.py +187 -0
  621. package/dist/server/src/polyglot/python/utilities/packer.py +11 -0
  622. package/dist/server/src/polyglot/python/utilities/task.py +25 -0
  623. package/dist/server/src/polyglot/python/utilities/thread.py +10 -0
  624. package/dist/server/src/polyglot/python/utilities/utils.py +48 -0
  625. package/dist/server/src/services/config/constants.d.ts +4 -0
  626. package/dist/server/src/services/config/constants.js +58 -0
  627. package/dist/server/src/services/config/constants.js.map +1 -0
  628. package/dist/server/src/services/config/index.d.ts +54 -0
  629. package/dist/server/src/services/config/index.js +288 -0
  630. package/dist/server/src/services/config/index.js.map +1 -0
  631. package/dist/server/src/services/config/types.d.ts +162 -0
  632. package/dist/server/src/services/config/types.js +11 -0
  633. package/dist/server/src/services/config/types.js.map +1 -0
  634. package/dist/server/src/services/logger/index.d.ts +30 -0
  635. package/dist/server/src/services/logger/index.js +179 -0
  636. package/dist/server/src/services/logger/index.js.map +1 -0
  637. package/dist/server/src/types.d.ts +4 -0
  638. package/dist/server/src/types.js +2 -0
  639. package/dist/server/src/types.js.map +1 -0
  640. package/dist/server/src/utils/packer.d.ts +2 -0
  641. package/dist/server/src/utils/packer.js +17 -0
  642. package/dist/server/src/utils/packer.js.map +1 -0
  643. package/dist/server/src/utils/pythonInstaller.d.ts +48 -0
  644. package/dist/server/src/utils/pythonInstaller.js +465 -0
  645. package/dist/server/src/utils/pythonInstaller.js.map +1 -0
  646. package/dist/server/src/utils/subscribed.d.ts +9 -0
  647. package/dist/server/src/utils/subscribed.js +17 -0
  648. package/dist/server/src/utils/subscribed.js.map +1 -0
  649. package/dist/server/src/utils/utils.d.ts +10 -0
  650. package/dist/server/src/utils/utils.js +165 -0
  651. package/dist/server/src/utils/utils.js.map +1 -0
  652. package/package.json +142 -0
@@ -0,0 +1,1221 @@
1
+ from abc import ABCMeta, abstractmethod
2
+ from collections.abc import AsyncGenerator, Awaitable, Coroutine
3
+ from typing import Any, Callable, Generic, Optional, TypeVar, Union, overload, runtime_checkable
4
+
5
+ from PIL import Image
6
+ from reactivex import Observable
7
+ from typing_extensions import (
8
+ Literal,
9
+ NotRequired,
10
+ Protocol,
11
+ TypedDict,
12
+ )
13
+
14
+ Callback = Union[
15
+ Callable[..., Any],
16
+ Callable[..., Coroutine[Any, Any, Any]],
17
+ ]
18
+
19
+
20
+ # schema
21
+ JsonSchemaType = Literal["string", "number", "boolean", "object", "array"]
22
+
23
+
24
+ class JsonBaseSchema(TypedDict):
25
+ key: NotRequired[Optional[str]]
26
+ title: NotRequired[Optional[str]]
27
+ description: NotRequired[Optional[str]]
28
+ required: NotRequired[Optional[bool]]
29
+ readonly: NotRequired[Optional[bool]]
30
+ placeholder: NotRequired[Optional[str]]
31
+ hidden: NotRequired[Optional[bool]]
32
+ group: NotRequired[Optional[str]]
33
+ defaultValue: NotRequired[Optional[Union[str, int, bool]]]
34
+ store: NotRequired[Optional[bool]]
35
+
36
+
37
+ class PluginJsonBaseSchema(JsonBaseSchema):
38
+ onSet: NotRequired[
39
+ Union[Callable[[Any, Any], Awaitable[Union[None, Any]]], Callable[[Any, Any], Union[None, Any]]]
40
+ ]
41
+ onGet: NotRequired[Union[Callable[[], Awaitable[Union[Any, None]]], Callable[[], Union[Any, None]]]]
42
+
43
+
44
+ class PluginJsonSchemaString(PluginJsonBaseSchema):
45
+ type: Literal["string"]
46
+ format: NotRequired[str]
47
+ minLength: NotRequired[int]
48
+ maxLength: NotRequired[int]
49
+
50
+
51
+ class PluginJsonSchemaNumber(PluginJsonBaseSchema):
52
+ type: Literal["number"]
53
+ minimum: NotRequired[int]
54
+ maximum: NotRequired[int]
55
+ step: NotRequired[float]
56
+
57
+
58
+ class PluginJsonSchemaBoolean(PluginJsonBaseSchema):
59
+ type: Literal["boolean"]
60
+
61
+
62
+ class PluginJsonSchemaEnum(PluginJsonBaseSchema):
63
+ type: Literal["string"]
64
+ enum: list[str]
65
+ multiple: NotRequired[bool]
66
+
67
+
68
+ class PluginJsonSchemaObject(PluginJsonBaseSchema):
69
+ type: Literal["object"]
70
+ opened: NotRequired[bool]
71
+ properties: NotRequired["PluginJsonSchemaForm"]
72
+
73
+
74
+ PluginJsonSchema = Union[
75
+ PluginJsonSchemaString,
76
+ PluginJsonSchemaNumber,
77
+ PluginJsonSchemaBoolean,
78
+ PluginJsonSchemaEnum,
79
+ PluginJsonSchemaObject,
80
+ ]
81
+
82
+
83
+ PluginJsonSchemaForm = dict[str, PluginJsonSchema]
84
+
85
+
86
+ class PluginRootSchema(TypedDict):
87
+ schema: PluginJsonSchemaForm
88
+
89
+
90
+ class JsonSchemaString(JsonBaseSchema):
91
+ type: Literal["string"]
92
+ format: NotRequired[
93
+ Literal["date-time", "date", "time", "email", "uuid", "ipv4", "ipv6", "password", "qrCode", "image"]
94
+ ]
95
+ minLength: NotRequired[int]
96
+ maxLength: NotRequired[int]
97
+
98
+
99
+ class JsonSchemaNumber(JsonBaseSchema):
100
+ type: Literal["number"]
101
+ minimum: NotRequired[int]
102
+ maximum: NotRequired[int]
103
+ step: NotRequired[float]
104
+
105
+
106
+ class JsonSchemaBoolean(JsonBaseSchema):
107
+ type: Literal["boolean"]
108
+
109
+
110
+ class JsonSchemaEnum(JsonBaseSchema):
111
+ type: Literal["string"]
112
+ enum: list[str]
113
+ multiple: NotRequired[bool]
114
+
115
+
116
+ class JsonSchemaObject(JsonBaseSchema):
117
+ type: Literal["object"]
118
+ opened: NotRequired[bool]
119
+ properties: NotRequired["JsonSchemaForm"]
120
+
121
+
122
+ class JsonSchemaButton(TypedDict):
123
+ label: str
124
+ onSubmit: str
125
+
126
+
127
+ class JsonSchemaObjectWithButtons(JsonSchemaObject):
128
+ buttons: tuple[JsonSchemaButton, NotRequired[JsonSchemaButton]]
129
+
130
+
131
+ class JsonSchemaArray(JsonBaseSchema):
132
+ type: Literal["array"]
133
+ opened: NotRequired[bool]
134
+ items: NotRequired["JsonSchema"]
135
+
136
+
137
+ JsonSchema = Union[
138
+ JsonSchemaString,
139
+ JsonSchemaNumber,
140
+ JsonSchemaBoolean,
141
+ JsonSchemaEnum,
142
+ JsonSchemaObject,
143
+ JsonSchemaObjectWithButtons,
144
+ JsonSchemaArray,
145
+ ]
146
+
147
+
148
+ JsonSchemaForm = dict[str, JsonSchema]
149
+
150
+
151
+ class RootSchema(TypedDict):
152
+ schema: JsonSchemaForm
153
+
154
+
155
+ class SchemaConfig(TypedDict):
156
+ rootSchema: PluginRootSchema
157
+ config: dict[str, Union[str, int, bool]]
158
+
159
+
160
+ # camera object
161
+ class Go2RtcFFMPEGSource(TypedDict):
162
+ aac: str
163
+ opus: str
164
+
165
+
166
+ class Go2RtcWSSource(TypedDict):
167
+ webrtc: str
168
+
169
+
170
+ class Go2RtcRTSPSource(TypedDict):
171
+ single: str
172
+ default: str
173
+ mp4: str
174
+
175
+
176
+ class Go2RtcEndpoint(TypedDict):
177
+ webrtc: str
178
+ mse: str
179
+ lmp4: str
180
+ mmp4: str
181
+ mp4: str
182
+ mp4Snapshot: str
183
+ jpegSnapshot: str
184
+ lHlsTs: str
185
+ lHlsFmp4: str
186
+ mHlsFmp4: str
187
+ mjpeg: str
188
+ mjpegHtml: str
189
+
190
+
191
+ class StreamUrls(TypedDict):
192
+ ws: Go2RtcWSSource
193
+ rtsp: Go2RtcRTSPSource
194
+ transcoded: Go2RtcFFMPEGSource
195
+ www: Go2RtcEndpoint
196
+
197
+
198
+ class CameraInput(TypedDict):
199
+ _id: str
200
+ name: str
201
+ roles: list["CameraRoles"]
202
+ urls: StreamUrls
203
+
204
+
205
+ CameraRoles = Literal["high-resolution", "mid-resolution", "low-resolution", "snapshot"]
206
+
207
+ CameraExtensionWithoutHub = Literal[
208
+ "prebuffer",
209
+ "motionDetection",
210
+ "objectDetection",
211
+ "audioDetection",
212
+ "ptz",
213
+ ]
214
+
215
+ CameraExtension = Union[CameraExtensionWithoutHub, Literal["hub"]]
216
+
217
+
218
+ class PluginContract(TypedDict):
219
+ extension: NotRequired[CameraExtension]
220
+ supportAdditionalCameras: NotRequired[bool]
221
+ builtIns: NotRequired[list[CameraExtensionWithoutHub]]
222
+ dependencies: list[str]
223
+ pythonVersion: NotRequired[str]
224
+
225
+
226
+ Point = tuple[float, float]
227
+
228
+ ZoneType = Literal["intersect", "contain"]
229
+
230
+ ZoneFilter = Literal["include", "exclude"]
231
+
232
+
233
+ class DetectionZone(TypedDict):
234
+ name: str
235
+ points: list[Point]
236
+ type: ZoneType
237
+ filter: ZoneFilter
238
+ classes: list[str]
239
+ isPrivacyMask: bool
240
+
241
+
242
+ class CameraInformation(TypedDict):
243
+ model: str
244
+ manufacturer: str
245
+ hardware: str
246
+ serialNumber: str
247
+ firmwareVersion: str
248
+ supportUrl: str
249
+
250
+
251
+ class MotionDetectionSettings(TypedDict):
252
+ timeout: int
253
+
254
+
255
+ class ObjectDetectionSettings(TypedDict):
256
+ confidence: float
257
+
258
+
259
+ class CameraActivitySettings(TypedDict):
260
+ motion: MotionDetectionSettings
261
+ object: ObjectDetectionSettings
262
+
263
+
264
+ CameraType = Literal["camera", "doorbell"]
265
+
266
+ CameraFrameWorkerDecoder = Literal["pillow", "wasm"]
267
+
268
+ CameraFrameWorkerResolution = Literal[640, 480, 320]
269
+
270
+
271
+ class CameraFrameWorkerSettings(TypedDict):
272
+ decoder: CameraFrameWorkerDecoder
273
+ fps: int
274
+ resolution: CameraFrameWorkerResolution
275
+
276
+
277
+ class Camera(TypedDict):
278
+ _id: str
279
+ nativeId: NotRequired[Optional[str]]
280
+ pluginId: str
281
+ name: str
282
+ disabled: bool
283
+ isCloud: bool
284
+ hasLight: bool
285
+ hasSiren: bool
286
+ hasBinarySensor: bool
287
+ hasBattery: bool
288
+ info: CameraInformation
289
+ type: CameraType
290
+ activityZones: list[DetectionZone]
291
+ activitySettings: CameraActivitySettings
292
+ hasAudioDetector: bool
293
+ hasMotionDetector: bool
294
+ hasObjectDetector: bool
295
+ hasPrebuffer: bool
296
+ hasPtz: bool
297
+ sources: list[CameraInput]
298
+ frameWorkerSettings: CameraFrameWorkerSettings
299
+
300
+
301
+ CameraPublicProperties = Literal[
302
+ "_id",
303
+ "nativeId",
304
+ "pluginId",
305
+ "name",
306
+ "disabled",
307
+ "isCloud",
308
+ "hasLight",
309
+ "hasSiren",
310
+ "hasBinarySensor",
311
+ "hasBattery",
312
+ "info",
313
+ "type",
314
+ "activityZones",
315
+ "activitySettings",
316
+ "hasAudioDetector",
317
+ "hasMotionDetector",
318
+ "hasObjectDetector",
319
+ "hasPrebuffer",
320
+ "hasPtz",
321
+ "sources",
322
+ "frameWorkerSettings",
323
+ ]
324
+
325
+
326
+ # camera device
327
+ ObjectClass = Literal[
328
+ "person",
329
+ "bicycle",
330
+ "car",
331
+ "motorcycle",
332
+ "airplane",
333
+ "bus",
334
+ "train",
335
+ "truck",
336
+ "boat",
337
+ "traffic light",
338
+ "fire hydrant",
339
+ "stop sign",
340
+ "parking meter",
341
+ "bench",
342
+ "bird",
343
+ "cat",
344
+ "dog",
345
+ "horse",
346
+ "sheep",
347
+ "cow",
348
+ "elephant",
349
+ "bear",
350
+ "zebra",
351
+ "giraffe",
352
+ "backpack",
353
+ "umbrella",
354
+ "handbag",
355
+ "tie",
356
+ "suitcase",
357
+ "frisbee",
358
+ "skis",
359
+ "snowboard",
360
+ "sports ball",
361
+ "kite",
362
+ "baseball bat",
363
+ "baseball glove",
364
+ "skateboard",
365
+ "surfboard",
366
+ "tennis racket",
367
+ "bottle",
368
+ "wine glass",
369
+ "cup",
370
+ "fork",
371
+ "knife",
372
+ "spoon",
373
+ "bowl",
374
+ "banana",
375
+ "apple",
376
+ "sandwich",
377
+ "orange",
378
+ "broccoli",
379
+ "carrot",
380
+ "hot dog",
381
+ "pizza",
382
+ "donut",
383
+ "cake",
384
+ "chair",
385
+ "couch",
386
+ "potted plant",
387
+ "bed",
388
+ "dining table",
389
+ "toilet",
390
+ "tv",
391
+ "laptop",
392
+ "mouse",
393
+ "remote",
394
+ "keyboard",
395
+ "cell phone",
396
+ "microwave",
397
+ "oven",
398
+ "toaster",
399
+ "sink",
400
+ "refrigerator",
401
+ "book",
402
+ "clock",
403
+ "vase",
404
+ "scissors",
405
+ "teddy bear",
406
+ "hair drier",
407
+ "toothbrush",
408
+ "motion",
409
+ ]
410
+
411
+
412
+ class Detection(TypedDict):
413
+ id: NotRequired[str]
414
+ label: ObjectClass
415
+ confidence: float
416
+ boundingBox: tuple[float, float, float, float]
417
+ inputWidth: int
418
+ inputHeight: int
419
+ origWidth: int
420
+ origHeight: int
421
+
422
+
423
+ class BaseStateLight(TypedDict):
424
+ timestamp: int
425
+ lastEvent: NotRequired[Optional["LightStateWithoutLastEvent"]]
426
+
427
+
428
+ class BaseStateMotion(TypedDict):
429
+ timestamp: int
430
+ lastEvent: NotRequired[Optional["MotionStateWithoutLastEvent"]]
431
+
432
+
433
+ class BaseStateAudio(TypedDict):
434
+ timestamp: int
435
+ lastEvent: NotRequired[Optional["AudioStateWithoutLastEvent"]]
436
+
437
+
438
+ class BaseStateObject(TypedDict):
439
+ timestamp: int
440
+ lastEvent: NotRequired[Optional["ObjectStateWithoutLastEvent"]]
441
+
442
+
443
+ class BaseStateDoorbell(TypedDict):
444
+ timestamp: int
445
+ lastEvent: NotRequired[Optional["DoorbellStateWithoutLastEvent"]]
446
+
447
+
448
+ class BaseStateSiren(TypedDict):
449
+ timestamp: int
450
+ lastEvent: NotRequired[Optional["SirenStateWithoutLastEvent"]]
451
+
452
+
453
+ class BaseStateBattery(TypedDict):
454
+ timestamp: int
455
+ lastEvent: NotRequired[Optional["BatteryStateWithoutLastEvent"]]
456
+
457
+
458
+ class BaseStateWithoutLastEvent(TypedDict):
459
+ timestamp: int
460
+
461
+
462
+ class MotionSetEvent(TypedDict):
463
+ state: NotRequired[bool]
464
+ detections: list[Detection]
465
+
466
+
467
+ class AudioSetEvent(TypedDict):
468
+ state: bool
469
+ db: NotRequired[Optional[int]]
470
+
471
+
472
+ class ObjectSetEvent(TypedDict):
473
+ detections: list[Detection]
474
+
475
+
476
+ class LightSetEvent(TypedDict):
477
+ state: bool
478
+
479
+
480
+ class DoorbellSetEvent(TypedDict):
481
+ state: bool
482
+
483
+
484
+ class SirenSetEvent(TypedDict):
485
+ state: bool
486
+ level: NotRequired[Optional[int]]
487
+
488
+
489
+ class BatterySetEvent(TypedDict):
490
+ level: int
491
+ charging: NotRequired[Optional[bool]]
492
+ lowBattery: NotRequired[Optional[bool]]
493
+
494
+
495
+ class LightState(BaseStateLight, LightSetEvent): ...
496
+
497
+
498
+ class LightStateWithoutLastEvent(BaseStateWithoutLastEvent, LightSetEvent): ...
499
+
500
+
501
+ class MotionState(BaseStateMotion, MotionSetEvent): ...
502
+
503
+
504
+ class MotionStateWithoutLastEvent(BaseStateWithoutLastEvent, MotionSetEvent): ...
505
+
506
+
507
+ class AudioState(BaseStateAudio, AudioSetEvent): ...
508
+
509
+
510
+ class AudioStateWithoutLastEvent(BaseStateWithoutLastEvent, AudioSetEvent): ...
511
+
512
+
513
+ class DoorbellState(BaseStateDoorbell, DoorbellSetEvent): ...
514
+
515
+
516
+ class DoorbellStateWithoutLastEvent(BaseStateWithoutLastEvent, DoorbellSetEvent): ...
517
+
518
+
519
+ class SirenState(BaseStateSiren, SirenSetEvent): ...
520
+
521
+
522
+ class SirenStateWithoutLastEvent(BaseStateWithoutLastEvent, SirenSetEvent): ...
523
+
524
+
525
+ class ObjectState(BaseStateObject, ObjectSetEvent): ...
526
+
527
+
528
+ class ObjectStateWithoutLastEvent(BaseStateWithoutLastEvent, ObjectSetEvent): ...
529
+
530
+
531
+ class BatteryState(BaseStateBattery, BatterySetEvent): ...
532
+
533
+
534
+ class BatteryStateWithoutLastEvent(BaseStateWithoutLastEvent, BatterySetEvent): ...
535
+
536
+
537
+ class FrameState(MotionState):
538
+ frameData: "FrameData"
539
+ metadata: "FrameMetadata"
540
+
541
+
542
+ T = TypeVar(
543
+ "T",
544
+ LightState,
545
+ MotionState,
546
+ AudioState,
547
+ DoorbellState,
548
+ SirenState,
549
+ ObjectState,
550
+ BatteryState,
551
+ )
552
+
553
+
554
+ class StateValues(Protocol):
555
+ light: LightState
556
+ motion: MotionState
557
+ audio: AudioState
558
+ object: ObjectState
559
+ doorbell: DoorbellState
560
+ siren: SirenState
561
+ battery: BatteryState
562
+
563
+
564
+ class SetValues(Protocol):
565
+ light: LightSetEvent
566
+ motion: MotionSetEvent
567
+ audio: AudioSetEvent
568
+ object: ObjectSetEvent
569
+ doorbell: DoorbellSetEvent
570
+ siren: SirenSetEvent
571
+ battery: BatterySetEvent
572
+
573
+
574
+ CameraStateCallbacks = dict[str, Callable[[T], None]]
575
+
576
+ StateValue = Union[
577
+ LightState,
578
+ MotionState,
579
+ AudioState,
580
+ DoorbellState,
581
+ SirenState,
582
+ ObjectState,
583
+ BatteryState,
584
+ ]
585
+
586
+ SetValue = Union[
587
+ LightSetEvent,
588
+ MotionSetEvent,
589
+ AudioSetEvent,
590
+ DoorbellSetEvent,
591
+ SirenSetEvent,
592
+ BatterySetEvent,
593
+ ObjectSetEvent,
594
+ ]
595
+
596
+ StateNames = Literal["light", "motion", "audio", "doorbell", "siren", "battery", "object"]
597
+
598
+ OnChangeCallback = Callable[[T, T], None]
599
+
600
+
601
+ class AudioStreamOptions(TypedDict):
602
+ enabled: NotRequired[bool]
603
+ codec: NotRequired[str]
604
+ bitrate: NotRequired[int]
605
+ sampleRate: NotRequired[int]
606
+
607
+
608
+ class VideoStreamOptions(TypedDict):
609
+ codec: NotRequired[str]
610
+ width: NotRequired[int]
611
+ height: NotRequired[int]
612
+ bitrate: NotRequired[int]
613
+ fps: NotRequired[int]
614
+ idrInterval: NotRequired[int]
615
+
616
+
617
+ class StreamInfo(TypedDict):
618
+ audio: AudioStreamOptions
619
+ video: VideoStreamOptions
620
+
621
+
622
+ class BasePrebufferState(TypedDict):
623
+ duration: int
624
+
625
+
626
+ class PrebufferStateTrue(BasePrebufferState):
627
+ state: bool
628
+ url: str
629
+
630
+
631
+ class PrebufferStateFalse(BasePrebufferState):
632
+ state: bool
633
+
634
+
635
+ PrebufferState = Union[PrebufferStateTrue, PrebufferStateFalse]
636
+
637
+ Container = Literal["mpegts", "mp4"]
638
+
639
+
640
+ TalkbackCodec = Literal["PCMA", "PCMU", "opus"]
641
+
642
+ Interfaces = Literal["camera", "ptz", "prebuffer", "audioDetector", "motionDetector", "objectDetector"]
643
+
644
+
645
+ class CameraDelegate(metaclass=ABCMeta):
646
+ @abstractmethod
647
+ async def snapshot(self) -> bytes: ...
648
+
649
+ @abstractmethod
650
+ async def reboot(self) -> None: ...
651
+
652
+
653
+ CameraDelegateMethodNames = Literal["reboot", "snapshot"]
654
+
655
+
656
+ class CameraPrebufferDelegate(metaclass=ABCMeta):
657
+ @abstractmethod
658
+ async def getStreamInfo(self, source_name: str) -> Optional[StreamInfo]: ...
659
+
660
+
661
+ CameraPrebufferDelegateMethodNames = Literal["getStreamInfo"]
662
+
663
+
664
+ class CameraPTZDelegate(metaclass=ABCMeta):
665
+ @abstractmethod
666
+ async def moveAbsolute(self, pan: float, tilt: float, zoom: float) -> None: ...
667
+
668
+ @abstractmethod
669
+ async def moveRelative(self, pan: float, tilt: float, zoom: float) -> None: ...
670
+
671
+ @abstractmethod
672
+ async def moveContinuous(self, pan: float, tilt: float, zoom: float) -> None: ...
673
+
674
+ @abstractmethod
675
+ async def stop(self) -> None: ...
676
+
677
+
678
+ CameraPTZDelegateMethodNames = Literal["moveAbsolute", "moveRelative", "moveContinuous", "stop"]
679
+
680
+
681
+ class CameraSource(Protocol):
682
+ # from CameraInput
683
+ id: str # _id
684
+ name: str
685
+ roles: list["CameraRoles"]
686
+ urls: StreamUrls
687
+ # end
688
+
689
+ async def update_prebuffering_state(self, container: Container, state: PrebufferState) -> None: ...
690
+ def get_prebuffering_state(self, container: Container) -> PrebufferState: ...
691
+ def on_prebuffering(self, container: Container) -> Observable[PrebufferState]: ...
692
+ async def get_stream_info(self) -> Optional[StreamInfo]: ...
693
+
694
+
695
+ ImageInputFormat = Literal["yuv", "rgb", "rgba", "gray"]
696
+ ImageOutputFormat = Literal["rgb", "rgba", "gray"]
697
+
698
+
699
+ class ImageFormat(TypedDict):
700
+ to: ImageOutputFormat
701
+
702
+
703
+ class ImageCrop(TypedDict):
704
+ top: int
705
+ left: int
706
+ width: int
707
+ height: int
708
+
709
+
710
+ class ImageResize(TypedDict):
711
+ width: NotRequired[int]
712
+ height: NotRequired[int]
713
+
714
+
715
+ class ImageOptions(TypedDict):
716
+ format: NotRequired[ImageFormat]
717
+ crop: NotRequired[ImageCrop]
718
+ resize: NotRequired[ImageResize]
719
+
720
+
721
+ class IceServer(TypedDict):
722
+ urls: list[str]
723
+ username: NotRequired[str]
724
+ credential: NotRequired[str]
725
+
726
+
727
+ DecoderFormat = Literal["yuv", "rgb"]
728
+
729
+
730
+ class ImageMetadata(TypedDict):
731
+ width: int
732
+ height: int
733
+
734
+
735
+ class AudioMetadata(TypedDict):
736
+ mimeType: Literal["audio/mpeg", "audio/wav", "audio/ogg"]
737
+
738
+
739
+ class FrameMetadata(TypedDict):
740
+ format: DecoderFormat
741
+ frameSize: float
742
+ width: int
743
+ height: int
744
+ origWidth: int
745
+ origHeight: int
746
+
747
+
748
+ class FrameData(TypedDict):
749
+ frameId: str
750
+ timestamp: int
751
+
752
+
753
+ class ImageInformation(TypedDict):
754
+ width: int
755
+ height: int
756
+ channels: Literal[1, 3, 4]
757
+ format: ImageInputFormat
758
+
759
+
760
+ class FrameBuffer(TypedDict):
761
+ image: bytes
762
+ info: ImageInformation
763
+
764
+
765
+ class FrameImage(TypedDict):
766
+ image: Image.Image
767
+ info: ImageInformation
768
+
769
+
770
+ class VideoFrame(Protocol):
771
+ frame_data: FrameData
772
+ metadata: FrameMetadata
773
+ input_width: int
774
+ input_height: int
775
+ input_format: DecoderFormat
776
+
777
+ async def save(self, path: str, options: Optional[ImageOptions] = {}) -> None: ...
778
+ async def to_buffer(self, options: Optional[ImageOptions] = {}) -> FrameBuffer: ...
779
+ async def to_image(self, options: Optional[ImageOptions] = {}) -> FrameImage: ...
780
+
781
+
782
+ class MotionFrame(VideoFrame):
783
+ motion: MotionState
784
+
785
+
786
+ SV = TypeVar("SV", bound=StateValue)
787
+
788
+
789
+ class CameraStateChangedObject(Generic[SV], dict[str, SV]):
790
+ old_state: SV
791
+ new_state: SV
792
+
793
+
794
+ class CameraPropertyObservableObject(TypedDict):
795
+ property: str
796
+ old_state: Any
797
+ new_state: Any
798
+
799
+
800
+ class CameraDevice(Protocol):
801
+ id: str
802
+ plugin_id: str
803
+ native_id: Optional[str] = None
804
+ connected: bool
805
+ disabled: bool
806
+ name: str
807
+ type: CameraType
808
+ info: CameraInformation
809
+ sources: list[CameraSource]
810
+ activity_zones: list[DetectionZone]
811
+ activity_settings: CameraActivitySettings
812
+ frameworker_settings: CameraFrameWorkerSettings
813
+ is_cloud: bool
814
+ has_light: bool
815
+ has_siren: bool
816
+ has_binary_sensor: bool
817
+ has_battery: bool
818
+ has_motion_detector: bool
819
+ has_audio_detector: bool
820
+ has_object_detector: bool
821
+ has_ptz: bool
822
+ has_prebuffer: bool
823
+
824
+ on_connected: Observable[bool]
825
+ on_light_switched: Observable[LightState]
826
+ on_motion_detected: Observable[MotionState]
827
+ on_audio_detected: Observable[AudioState]
828
+ on_object_detected: Observable[ObjectState]
829
+ on_doorbell_pressed: Observable[DoorbellState]
830
+ on_siren_detected: Observable[SirenState]
831
+ on_battery_changed: Observable[BatteryState]
832
+
833
+ stream_source: CameraSource
834
+ snapshot_source: Optional[CameraSource]
835
+ high_resolution_source: Optional[CameraSource]
836
+ mid_resolution_source: Optional[CameraSource]
837
+ low_resolution_source: Optional[CameraSource]
838
+
839
+ cameraDelegate: CameraDelegate
840
+ ptzDelegate: CameraPTZDelegate
841
+
842
+ @overload
843
+ def set_delegate(self, name: Literal["cameraDelegate"], delegate: CameraDelegate) -> None: ...
844
+ @overload
845
+ def set_delegate(self, name: Literal["prebufferDelegate"], delegate: CameraPrebufferDelegate) -> None: ...
846
+ @overload
847
+ def set_delegate(self, name: Literal["ptzDelegate"], delegate: CameraPTZDelegate) -> None: ...
848
+
849
+ async def connect(self) -> None: ...
850
+ async def disconnect(self) -> None: ...
851
+ async def snapshot(self, force_new: Optional[bool] = None) -> bytes: ...
852
+ async def get_frames(self, prebuffer_duration: int = 0) -> AsyncGenerator[VideoFrame, None]: ...
853
+ async def get_motion_frames(self) -> AsyncGenerator[MotionFrame, None]: ...
854
+ async def get_ffmpeg_path(self) -> str: ...
855
+ async def get_ice_servers(self) -> list[IceServer]: ...
856
+
857
+ async def get_value(
858
+ self, state_name: str
859
+ ) -> Union[
860
+ LightState,
861
+ MotionState,
862
+ AudioState,
863
+ ObjectState,
864
+ DoorbellState,
865
+ SirenState,
866
+ BatteryState,
867
+ ]: ...
868
+
869
+ async def add_camera_source(self, source: "CameraConfigInputSettings") -> None: ...
870
+ async def update_camera_source(
871
+ self, source_id: str, source: "CameraConfigInputSettingsPartial"
872
+ ) -> None: ...
873
+ async def remove_camera_source(self, source_id: str) -> None: ...
874
+
875
+ @overload
876
+ async def update_state(
877
+ self,
878
+ state_name: Literal["light"],
879
+ event_data: LightSetEvent,
880
+ ) -> None: ...
881
+ @overload
882
+ async def update_state(
883
+ self,
884
+ state_name: Literal["motion"],
885
+ event_data: MotionSetEvent,
886
+ frame: Optional[VideoFrame] = None,
887
+ ) -> None: ...
888
+ @overload
889
+ async def update_state(
890
+ self,
891
+ state_name: Literal["audio"],
892
+ event_data: AudioSetEvent,
893
+ ) -> None: ...
894
+ @overload
895
+ async def update_state(
896
+ self,
897
+ state_name: Literal["object"],
898
+ event_data: ObjectSetEvent,
899
+ ) -> None: ...
900
+ @overload
901
+ async def update_state(
902
+ self,
903
+ state_name: Literal["doorbell"],
904
+ event_data: DoorbellSetEvent,
905
+ ) -> None: ...
906
+ @overload
907
+ async def update_state(
908
+ self,
909
+ state_name: Literal["siren"],
910
+ event_data: SirenSetEvent,
911
+ ) -> None: ...
912
+ @overload
913
+ async def update_state(
914
+ self,
915
+ state_name: Literal["battery"],
916
+ event_data: BatterySetEvent,
917
+ ) -> None: ...
918
+ async def update_state(
919
+ self, state_name: str, event_data: Any, frame: Optional[VideoFrame] = None
920
+ ) -> None: ...
921
+
922
+ @overload
923
+ def on_state_change(
924
+ self, state_name: Literal["light"]
925
+ ) -> Observable[CameraStateChangedObject[LightState]]: ...
926
+ @overload
927
+ def on_state_change(
928
+ self, state_name: Literal["motion"]
929
+ ) -> Observable[CameraStateChangedObject[MotionState]]: ...
930
+ @overload
931
+ def on_state_change(
932
+ self, state_name: Literal["audio"]
933
+ ) -> Observable[CameraStateChangedObject[AudioState]]: ...
934
+ @overload
935
+ def on_state_change(
936
+ self, state_name: Literal["doorbell"]
937
+ ) -> Observable[CameraStateChangedObject[DoorbellState]]: ...
938
+ @overload
939
+ def on_state_change(
940
+ self, state_name: Literal["siren"]
941
+ ) -> Observable[CameraStateChangedObject[SirenState]]: ...
942
+ @overload
943
+ def on_state_change(
944
+ self, state_name: Literal["battery"]
945
+ ) -> Observable[CameraStateChangedObject[BatteryState]]: ...
946
+ @overload
947
+ def on_state_change(
948
+ self, state_name: Literal["object"]
949
+ ) -> Observable[CameraStateChangedObject[ObjectState]]: ...
950
+ def on_state_change( # type: ignore
951
+ self, state_name: StateNames
952
+ ) -> Observable[CameraStateChangedObject[StateValue]]: ...
953
+ def on_property_change(
954
+ self, property: Union[CameraPublicProperties, list[CameraPublicProperties]]
955
+ ) -> Observable[CameraPropertyObservableObject]: ...
956
+
957
+ def remove_all_listeners(self) -> None: ...
958
+
959
+
960
+ # camera create config
961
+ class BaseCameraConfig(TypedDict):
962
+ name: str
963
+ nativeId: NotRequired[str]
964
+ isCloud: NotRequired[bool]
965
+ hasLight: NotRequired[bool]
966
+ hasSiren: NotRequired[bool]
967
+ hasBinarySensor: NotRequired[bool]
968
+ hasBattery: NotRequired[bool]
969
+ disabled: NotRequired[bool]
970
+ info: NotRequired[CameraInformation]
971
+
972
+
973
+ class CameraConfigInputSettingsPartial(TypedDict, total=False):
974
+ # _id: str
975
+ name: str
976
+ roles: list[CameraRoles]
977
+ urls: list[str]
978
+
979
+
980
+ class CameraConfigInputSettings(TypedDict):
981
+ name: str
982
+ roles: list[CameraRoles]
983
+ urls: list[str]
984
+
985
+
986
+ class CameraConfig(BaseCameraConfig):
987
+ sources: list[CameraConfigInputSettings]
988
+
989
+
990
+ # events and callbacks
991
+ CameraSelectedCallback = Union[
992
+ Callable[[CameraDevice, CameraExtension], None],
993
+ Callable[[CameraDevice, CameraExtension], Coroutine[None, None, None]],
994
+ ]
995
+ CameraDeselectedCallback = Union[
996
+ Callable[[str, CameraExtension], None],
997
+ Callable[[str, CameraExtension], Coroutine[None, None, None]],
998
+ ]
999
+
1000
+
1001
+ # DeviceManager
1002
+ DeviceManagerEventType = Literal[
1003
+ "cameraSelected",
1004
+ "cameraDeselected",
1005
+ ]
1006
+
1007
+
1008
+ @runtime_checkable
1009
+ class DeviceManager(Protocol):
1010
+ async def get_camera_by_id(self, id: str) -> Optional[CameraDevice]: ...
1011
+ async def get_camera_by_name(self, name: str) -> Optional[CameraDevice]: ...
1012
+ async def create_camera(self, config: CameraConfig) -> CameraDevice: ...
1013
+ async def remove_camera_by_id(self, id: str) -> None: ...
1014
+ async def remove_camera_by_name(self, name: str) -> None: ...
1015
+
1016
+ @overload
1017
+ def on(self, event: Literal["cameraSelected"], listener: CameraSelectedCallback) -> "DeviceManager": ...
1018
+ @overload
1019
+ def on(
1020
+ self, event: Literal["cameraDeselected"], listener: CameraDeselectedCallback
1021
+ ) -> "DeviceManager": ...
1022
+
1023
+ @overload
1024
+ def once(self, event: Literal["cameraSelected"], listener: CameraSelectedCallback) -> "DeviceManager": ...
1025
+ @overload
1026
+ def once(
1027
+ self, event: Literal["cameraDeselected"], listener: CameraDeselectedCallback
1028
+ ) -> "DeviceManager": ...
1029
+
1030
+ @overload
1031
+ def remove_listener(
1032
+ self, event: Literal["cameraSelected"], listener: CameraSelectedCallback
1033
+ ) -> "DeviceManager": ...
1034
+ @overload
1035
+ def remove_listener(
1036
+ self, event: Literal["cameraDeselected"], listener: CameraDeselectedCallback
1037
+ ) -> "DeviceManager": ...
1038
+
1039
+ def remove_all_listeners(self, event: Optional[DeviceManagerEventType] = None) -> "DeviceManager": ...
1040
+
1041
+
1042
+ # camera storage
1043
+ P = TypeVar("P")
1044
+
1045
+
1046
+ @runtime_checkable
1047
+ class CameraStorage(Protocol):
1048
+ values: dict[str, Any]
1049
+
1050
+ async def initialize_storage(self) -> None: ...
1051
+ @overload
1052
+ def get_value(self, path: str) -> Union[Awaitable[P], P, None]: ...
1053
+ @overload
1054
+ def get_value(self, path: str, default_value: P) -> Union[Awaitable[P], P]: ...
1055
+ def get_value(self, path: str, default_value: Optional[P] = None) -> Union[Awaitable[P], P, None]: ...
1056
+ async def set_value(self, path: str, new_value: Any) -> None: ...
1057
+ def has_value(self, path: str) -> bool: ...
1058
+ async def getConfig(self) -> SchemaConfig: ...
1059
+ async def setConfig(self, new_config: dict[str, Any]) -> None: ...
1060
+ @overload
1061
+ async def add_schema(self, schema_or_path: PluginJsonSchemaForm) -> None: ...
1062
+ @overload
1063
+ async def add_schema(self, schema_or_path: str, schema: PluginJsonSchema) -> None: ...
1064
+ async def add_schema(
1065
+ self,
1066
+ schema_or_path: Union[PluginJsonSchemaForm, str],
1067
+ schema: Optional[PluginJsonSchema] = None,
1068
+ ) -> None: ...
1069
+ def remove_schema(self, path: str) -> None: ...
1070
+ async def change_schema(self, path: str, new_schema: dict[str, Any]) -> None: ...
1071
+ def get_schema(self, path: str) -> Optional[PluginJsonSchema]: ...
1072
+ def has_schema(self, path: str) -> bool: ...
1073
+
1074
+
1075
+ # StorageController
1076
+ @runtime_checkable
1077
+ class StorageController(Protocol):
1078
+ def create_camera_storage(
1079
+ self,
1080
+ instance: Any,
1081
+ camera_id: str,
1082
+ schema: Optional[PluginJsonSchemaForm] = None,
1083
+ ) -> CameraStorage: ...
1084
+ def get_camera_storage(self, camera_id: str) -> Optional[CameraStorage]: ...
1085
+ def remove_camera_storage(self, camera_id: str) -> None: ...
1086
+
1087
+
1088
+ # config service
1089
+ @runtime_checkable
1090
+ class PluginConfigService(Protocol):
1091
+ def get(
1092
+ self,
1093
+ key: str,
1094
+ default: Optional[Any] = None,
1095
+ validate: Optional[Callable[[Any], bool]] = None,
1096
+ refresh: bool = False,
1097
+ write_if_not_valid: bool = False,
1098
+ ) -> Any: ...
1099
+
1100
+ def has(self, key: str, refresh: bool = False) -> bool: ...
1101
+ def ensure_exists(self, key: str, default: Optional[Any] = None, write: bool = False) -> None: ...
1102
+ def set(self, key: str, value: Any, write: bool = False) -> None: ...
1103
+ def insert(self, key: str, value: Any, index: Optional[int] = None, write: bool = False) -> None: ...
1104
+ def push(self, key: str, *values: Any, write: bool = False) -> None: ...
1105
+ def delete(self, key: str, write: bool = False) -> None: ...
1106
+ def all(self, refresh: bool = False) -> dict[str, Any]: ...
1107
+ def replace(self, new_config: dict[str, Any], write: bool = False) -> None: ...
1108
+ def update_value(
1109
+ self,
1110
+ path: str,
1111
+ search_key: str,
1112
+ search_value: Any,
1113
+ target_key: str,
1114
+ new_value: Any,
1115
+ write: bool = False,
1116
+ ) -> None: ...
1117
+ def replace_or_add_item(
1118
+ self,
1119
+ path: str,
1120
+ search_key: str,
1121
+ search_value: Any,
1122
+ new_item: Any,
1123
+ write: bool = False,
1124
+ ) -> None: ...
1125
+
1126
+
1127
+ # Plugin API
1128
+ APIEventType = Literal["finishLaunching", "shutdown"]
1129
+
1130
+
1131
+ @runtime_checkable
1132
+ class PluginAPI(Protocol):
1133
+ storage_path: str
1134
+ config_file: str
1135
+ config_service: PluginConfigService
1136
+ storage_controller: StorageController
1137
+ device_manager: DeviceManager
1138
+
1139
+ def on(self, event: APIEventType, listener: Callback) -> "PluginAPI": ...
1140
+ def once(self, event: APIEventType, listener: Callback) -> "PluginAPI": ...
1141
+ def off(self, event: APIEventType, listener: Callback) -> "PluginAPI": ...
1142
+ def remove_listener(self, event: APIEventType, listener: Callback) -> "PluginAPI": ...
1143
+ def remove_all_listeners(self, event: Optional[APIEventType] = None) -> "PluginAPI": ...
1144
+
1145
+
1146
+ # logger
1147
+ @runtime_checkable
1148
+ class PluginLogger(Protocol):
1149
+ def log(self, *args: Any) -> None: ...
1150
+ def error(self, *args: Any) -> None: ...
1151
+ def warn(self, *args: Any) -> None: ...
1152
+ def attention(self, *args: Any) -> None: ...
1153
+ def debug(self, *args: Any) -> None: ...
1154
+ def trace(self, *args: Any) -> None: ...
1155
+
1156
+
1157
+ # plugin
1158
+ PluginConfig = dict[str, Any]
1159
+ JSONValue = Union[str, int, float, bool, dict[str, Any], list[Any]]
1160
+
1161
+
1162
+ class ToastMessage(TypedDict):
1163
+ type: Literal["info", "success", "warning", "error"]
1164
+ message: str
1165
+
1166
+
1167
+ class FormSubmitSchema(TypedDict):
1168
+ config: JsonSchemaObjectWithButtons
1169
+
1170
+
1171
+ class FormSubmitResponse(TypedDict):
1172
+ toast: NotRequired[ToastMessage]
1173
+ schema: NotRequired[FormSubmitSchema]
1174
+
1175
+
1176
+ class MotionDetectionPluginResponse(TypedDict):
1177
+ filePath: str
1178
+
1179
+
1180
+ class ObjectDetectionPluginResponse(TypedDict):
1181
+ detections: list[Detection]
1182
+
1183
+
1184
+ class AudioDetectionPluginResponse(TypedDict):
1185
+ detected: bool
1186
+
1187
+
1188
+ class BasePlugin(metaclass=ABCMeta):
1189
+ @abstractmethod
1190
+ def __init__(self, logger: PluginLogger, api_instance: PluginAPI) -> None: ...
1191
+ @abstractmethod
1192
+ async def onFormSubmit(self, action_id: str, payload: Any) -> Union[FormSubmitResponse, None]: ...
1193
+ @abstractmethod
1194
+ def configure_cameras(self, cameras: list[CameraDevice]) -> None: ...
1195
+
1196
+
1197
+ class MotionDetectionPlugin(BasePlugin):
1198
+ @abstractmethod
1199
+ def interfaceSchema(self) -> Optional[RootSchema]: ...
1200
+ @abstractmethod
1201
+ async def detectMotion(
1202
+ self, video_path: str, config: dict[str, Any]
1203
+ ) -> MotionDetectionPluginResponse: ...
1204
+
1205
+
1206
+ class ObjectDetectionPlugin(BasePlugin):
1207
+ @abstractmethod
1208
+ def interfaceSchema(self) -> Optional[RootSchema]: ...
1209
+ @abstractmethod
1210
+ async def detectObjects(
1211
+ self, image_path: str, metadata: ImageMetadata, config: dict[str, Any]
1212
+ ) -> ObjectDetectionPluginResponse: ...
1213
+
1214
+
1215
+ class AudioDetectionPlugin(BasePlugin):
1216
+ @abstractmethod
1217
+ def interfaceSchema(self) -> Optional[RootSchema]: ...
1218
+ @abstractmethod
1219
+ async def detectAudio(
1220
+ self, audio_path: str, metadata: AudioMetadata, config: dict[str, Any]
1221
+ ) -> AudioDetectionPluginResponse: ...