@camera.ui/server 0.0.112 → 0.0.113

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 (282) hide show
  1. package/dist/interface/assets/{404-Dd3AyWdE.js → 404-CZtDF9in.js} +1 -1
  2. package/dist/interface/assets/{About-DAV31RZ5.js → About-BzuuHdW1.js} +1 -1
  3. package/dist/interface/assets/{Adminpanel-zLLSmbSt.js → Adminpanel-uj7eTmlN.js} +1 -1
  4. package/dist/interface/assets/{Automation-Dx--ghuY.js → Automation-D0ps_z9e.js} +2 -2
  5. package/dist/interface/assets/{AutomationImport-chsxrEfX.js → AutomationImport-CR4Vsxkb.js} +2 -2
  6. package/dist/interface/assets/AutomationStore-BcMX7WbG.js +2 -0
  7. package/dist/interface/assets/AutomationStoreDetail-D6Ugj8ba.js +2 -0
  8. package/dist/interface/assets/Automations-DBACrYHy.js +2 -0
  9. package/dist/interface/assets/{Camera-DVJbyl93.js → Camera-Cf4QZbsx.js} +2 -2
  10. package/dist/interface/assets/{CameraConsole-DOiCJAQS.js → CameraConsole-uD4aWou8.js} +1 -1
  11. package/dist/interface/assets/{Cameras-Dz7bZyRE.js → Cameras-DbBU5mou.js} +1 -1
  12. package/dist/interface/assets/{Camview-CBywGGI8.js → Camview-DD9jLT7-.js} +1 -1
  13. package/dist/interface/assets/{Config-BfijMggp.js → Config-B9jI0lTQ.js} +1 -1
  14. package/dist/interface/assets/{ConfigActionCameraControl-B2xFxVNO.js → ConfigActionCameraControl-D4hJLWmj.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionNotification-hmTEfMw3.js → ConfigActionNotification-B5cCmBXr.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionPlugin-BgKKvqAy.js → ConfigActionPlugin-B7YAbFlf.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionSensor-Du072tTI.js → ConfigActionSensor-D_Dt1qtt.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionSnapshot-9aGopbuJ.js → ConfigActionSnapshot-ClyCQuB3.js} +1 -1
  19. package/dist/interface/assets/{ConfigConditionSensorState-D2IIsthA.js → ConfigConditionSensorState-x0M0kHwL.js} +1 -1
  20. package/dist/interface/assets/{ConfigTriggerDetection-CYJOEkHi.js → ConfigTriggerDetection-DWjlecON.js} +1 -1
  21. package/dist/interface/assets/{ConfigTriggerGeofence-4t1aW1Iw.js → ConfigTriggerGeofence-CTqptMUN.js} +1 -1
  22. package/dist/interface/assets/{ConfigTriggerSensor-CVzeR8ac.js → ConfigTriggerSensor-DuCtavZo.js} +1 -1
  23. package/dist/interface/assets/{ConfigTriggerSystem-5TI9H8mj.js → ConfigTriggerSystem-D1oGAhLn.js} +1 -1
  24. package/dist/interface/assets/{Console-COaJF4Fu.js → Console-DrDqDUtO.js} +1 -1
  25. package/dist/interface/assets/{CuiAvatar-Drdaxxcm.js → CuiAvatar-of_eVQsv.js} +1 -1
  26. package/dist/interface/assets/{CuiBottomSheet-ljGYA9W5.js → CuiBottomSheet-B7aQ7GCw.js} +1 -1
  27. package/dist/interface/assets/CuiBottomSheet-DKUg_g5x.js +1 -0
  28. package/dist/interface/assets/{CuiCameraCard-O22PEfyi.js → CuiCameraCard-IyJNZMGs.js} +1 -1
  29. package/dist/interface/assets/{CuiCameraPipCard-BDZ3W5sh.js → CuiCameraPipCard-KUBxGPoU.js} +1 -1
  30. package/dist/interface/assets/{CuiCameraRecordings-BWlxU4qP.js → CuiCameraRecordings-iWAFGo8e.js} +1 -1
  31. package/dist/interface/assets/{CuiCameraShares-BIXFV72I.js → CuiCameraShares-BCMYN11A.js} +1 -1
  32. package/dist/interface/assets/{CuiCameraSnapshot-BAwo37N7.js → CuiCameraSnapshot-DTtvEMy1.js} +1 -1
  33. package/dist/interface/assets/{CuiCameraTable-6tWx74Nl.js → CuiCameraTable-B7g53tPM.js} +1 -1
  34. package/dist/interface/assets/{CuiImage-KyBpvv-t.js → CuiImage-B97QDAl7.js} +1 -1
  35. package/dist/interface/assets/{CuiMenu-BBequFn_.js → CuiMenu-Ds6GufVn.js} +1 -1
  36. package/dist/interface/assets/{CuiPluginCard-Bnb0YKK1.js → CuiPluginCard-D1SylQbM.js} +2 -2
  37. package/dist/interface/assets/{CuiPluginOAuthButton-CvVnSP0h.js → CuiPluginOAuthButton-X8ZGFPwW.js} +2 -2
  38. package/dist/interface/assets/{CuiQRCode-Di0RLqfL.js → CuiQRCode-D_31ri5b.js} +1 -1
  39. package/dist/interface/assets/{CuiRecordingsGrid-DNw21B-r.js → CuiRecordingsGrid-CzMzhUXb.js} +1 -1
  40. package/dist/interface/assets/{CuiSchema-Cr90oo-T.js → CuiSchema-CfqOJmDH.js} +1 -1
  41. package/dist/interface/assets/{Faces-CFN1J-o4.js → Faces-IVmqcGuF.js} +1 -1
  42. package/dist/interface/assets/{FirstSteps-uzffNroi.js → FirstSteps-Boec1bzd.js} +1 -1
  43. package/dist/interface/assets/{Instances-CsAKq-HH.js → Instances-kmkRiBrV.js} +1 -1
  44. package/dist/interface/assets/{Logs-DKwNBSz9.js → Logs-DzR8mmLu.js} +1 -1
  45. package/dist/interface/assets/{Menu-Db1mi08W.js → Menu-Cl-biyd7.js} +1 -1
  46. package/dist/interface/assets/{OAuthDeviceFlow-B4cT3UTT.js → OAuthDeviceFlow-Cp9uZWm1.js} +1 -1
  47. package/dist/interface/assets/Plugin-CeLrucXT.js +1 -0
  48. package/dist/interface/assets/Plugin-Yv0ZmTNZ.css +1 -0
  49. package/dist/interface/assets/{PluginConsole-Bs9HqX_F.js → PluginConsole-BdbmROpF.js} +1 -1
  50. package/dist/interface/assets/PluginDetail-DKywYzmS.js +2 -0
  51. package/dist/interface/assets/PluginDetail-DbYxVe3g.css +1 -0
  52. package/dist/interface/assets/{PluginSchema-D3BCVJNa.js → PluginSchema-CWcq67pj.js} +1 -1
  53. package/dist/interface/assets/PluginSearch-BC1L0-VN.js +1 -0
  54. package/dist/interface/assets/PluginSearch-DCuLwE3v.js +2 -0
  55. package/dist/interface/assets/{PluginSearch-BOWQC1zl.css → PluginSearch-XjGr5qdW.css} +1 -1
  56. package/dist/interface/assets/{Plugins-DD8FPbtv.js → Plugins-DMLQY_6J.js} +1 -1
  57. package/dist/interface/assets/{Recordings-Bt8clj2R.js → Recordings--XaVJZJi.js} +1 -1
  58. package/dist/interface/assets/{Settings-Bj_41fdw.js → Settings-BljKDhYY.js} +1 -1
  59. package/dist/interface/assets/SettingsAccount-DFMOh1ci.js +1 -0
  60. package/dist/interface/assets/{SettingsAccount-CWVj8S8j.js → SettingsAccount-DKHO4mDj.js} +1 -1
  61. package/dist/interface/assets/SettingsAppearance-DzG2tlwK.js +1 -0
  62. package/dist/interface/assets/{SettingsAppearance-DNaNlO1q.js → SettingsAppearance-V5aeQ9c8.js} +1 -1
  63. package/dist/interface/assets/{SettingsBackup-stUbnWJf.js → SettingsBackup-CfOHDar8.js} +1 -1
  64. package/dist/interface/assets/{SettingsNotifications-Do2Cy2yf.js → SettingsNotifications-BZ1IXj0a.js} +1 -1
  65. package/dist/interface/assets/{SettingsRecordings-DWX69m9b.js → SettingsRecordings-BsJ9z-RE.js} +1 -1
  66. package/dist/interface/assets/{SettingsRemote-RqXtq3dF.js → SettingsRemote-Bf8bqXYs.js} +1 -1
  67. package/dist/interface/assets/SettingsSystem-obAYrm8J.js +2 -0
  68. package/dist/interface/assets/{SettingsUsers-Cb6zolu8.js → SettingsUsers-Ciu1ry18.js} +1 -1
  69. package/dist/interface/assets/{Terminal-D2zkV1fJ.js → Terminal-CD9he5xW.js} +1 -1
  70. package/dist/interface/assets/VersionsHandler-Dpo-L314.js +7 -0
  71. package/dist/interface/assets/Workers-DCx1wSq5.css +1 -0
  72. package/dist/interface/assets/Workers-DiIBLgfr.js +2 -0
  73. package/dist/interface/assets/alert-circle-azHizGIK.js +1 -0
  74. package/dist/interface/assets/{api-CvihG9kg.js → api-CbBOEbKQ.js} +1 -1
  75. package/dist/interface/assets/api-aSYFKxo6.js +2 -0
  76. package/dist/interface/assets/api-vCJ1T8Ow.css +2 -0
  77. package/dist/interface/assets/{auth-BeYrbk7B.js → auth-cdPNNpNC.js} +1 -1
  78. package/dist/interface/assets/{automations-egbiXwMx.js → automations-E7vwN3kw.js} +1 -1
  79. package/dist/interface/assets/{backup-82y2bZBX.js → backup-Co1bwdSv.js} +1 -1
  80. package/dist/interface/assets/{cameras-DRRy289F.js → cameras-CvJDLEZ3.js} +1 -1
  81. package/dist/interface/assets/{cameras.schema-qOAUe-E9.js → cameras.schema-Clwro_L9.js} +1 -1
  82. package/dist/interface/assets/check-circle-BauXcL6H.js +1 -0
  83. package/dist/interface/assets/cloudHandoff-Bym-XqR1.js +1 -0
  84. package/dist/interface/assets/{deviceId-DXf6AlPA.js → deviceId-OXLTtG-_.js} +1 -1
  85. package/dist/interface/assets/{hasPermission-CPgoH1JH.js → hasPermission-P1TgpAur.js} +1 -1
  86. package/dist/interface/assets/{instances-Crs3gwnp.js → instances-DwnEOXk1.js} +1 -1
  87. package/dist/interface/assets/{locale-BCQeXbI8.js → locale-BWvy9Nlz.js} +1 -1
  88. package/dist/interface/assets/{main-D0vO1lt0.js → main-CIorSaV7.js} +2 -2
  89. package/dist/interface/assets/{notifications-AiaxATml.js → notifications-DHmx6O_s.js} +1 -1
  90. package/dist/interface/assets/platformLabels-D-cF6OTP.js +1 -0
  91. package/dist/interface/assets/{plugins-C_Mh_UEw.js → plugins-NVAodP6s.js} +1 -1
  92. package/dist/interface/assets/{round-restart-alt-BJAngKc7.js → round-restart-alt-c8MQjhLh.js} +1 -1
  93. package/dist/interface/assets/{router-C2x34pNg.js → router-i0r3QZvk.js} +2 -2
  94. package/dist/interface/assets/{server-GaO6jF81.js → server-CRxodRik.js} +1 -1
  95. package/dist/interface/assets/{shares-Cw2NYamp.js → shares-4w6GDwjp.js} +1 -1
  96. package/dist/interface/assets/{theme-cGiCxaXN.js → theme-DhaXe7yA.js} +1 -1
  97. package/dist/interface/assets/types-BXo-JDGR.js +1 -0
  98. package/dist/interface/assets/{useBiometricCredentials-CEmbsdFy.js → useBiometricCredentials-BGRyKe48.js} +1 -1
  99. package/dist/interface/assets/{useCameraOptions-quplvW_7.js → useCameraOptions-CO1HD_gL.js} +1 -1
  100. package/dist/interface/assets/{useCuiDialog-j9ybKsCK.js → useCuiDialog-DHktK-mZ.js} +1 -1
  101. package/dist/interface/assets/{useFileDownload-BcOErnCc.js → useFileDownload-Cp1oH80I.js} +1 -1
  102. package/dist/interface/assets/{useLogsSocket-gXiAENMr.js → useLogsSocket-OnTDnkPr.js} +1 -1
  103. package/dist/interface/assets/{useStreamStatus-bjptbs6u.js → useStreamStatus-N--czepD.js} +1 -1
  104. package/dist/interface/assets/{useUserOptions-CA-AJeEh.js → useUserOptions-CPkl1O0A.js} +1 -1
  105. package/dist/interface/assets/{users.schema-DaXV2Jq7.js → users.schema-BIL9DqRo.js} +1 -1
  106. package/dist/interface/assets/{view-grid-Coh7iX5e.js → view-grid-B0KB2pRf.js} +1 -1
  107. package/dist/interface/index.html +29 -29
  108. package/dist/interface/sw.js +1 -1
  109. package/dist/server/package.json +1 -1
  110. package/dist/server/src/api/controllers/plugins.controller.js +16 -3
  111. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  112. package/dist/server/src/api/controllers/server.controller.js +3 -2
  113. package/dist/server/src/api/controllers/server.controller.js.map +1 -1
  114. package/dist/server/src/api/controllers/workers.controller.d.ts +9 -4
  115. package/dist/server/src/api/controllers/workers.controller.js +132 -9
  116. package/dist/server/src/api/controllers/workers.controller.js.map +1 -1
  117. package/dist/server/src/api/database/index.d.ts +0 -1
  118. package/dist/server/src/api/database/index.js +0 -14
  119. package/dist/server/src/api/database/index.js.map +1 -1
  120. package/dist/server/src/api/database/types.d.ts +29 -1
  121. package/dist/server/src/api/routes/workers.routes.js +61 -7
  122. package/dist/server/src/api/routes/workers.routes.js.map +1 -1
  123. package/dist/server/src/api/schemas/config.schema.d.ts +8 -2
  124. package/dist/server/src/api/schemas/config.schema.js +8 -1
  125. package/dist/server/src/api/schemas/config.schema.js.map +1 -1
  126. package/dist/server/src/api/schemas/remote.schema.d.ts +1 -1
  127. package/dist/server/src/api/schemas/workers.schema.d.ts +19 -0
  128. package/dist/server/src/api/schemas/workers.schema.js +19 -0
  129. package/dist/server/src/api/schemas/workers.schema.js.map +1 -1
  130. package/dist/server/src/api/services/plugins.service.d.ts +2 -0
  131. package/dist/server/src/api/services/plugins.service.js +25 -3
  132. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  133. package/dist/server/src/api/services/server.service.d.ts +0 -2
  134. package/dist/server/src/api/services/server.service.js +0 -12
  135. package/dist/server/src/api/services/server.service.js.map +1 -1
  136. package/dist/server/src/api/services/workers.service.d.ts +15 -0
  137. package/dist/server/src/api/services/workers.service.js +95 -2
  138. package/dist/server/src/api/services/workers.service.js.map +1 -1
  139. package/dist/server/src/api/types/index.d.ts +37 -0
  140. package/dist/server/src/api/utils/cert.js +43 -9
  141. package/dist/server/src/api/utils/cert.js.map +1 -1
  142. package/dist/server/src/api/websocket/nsp/server.d.ts +0 -2
  143. package/dist/server/src/api/websocket/nsp/server.js +1 -8
  144. package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
  145. package/dist/server/src/api/websocket/nsp/workers.d.ts +0 -3
  146. package/dist/server/src/api/websocket/nsp/workers.js +4 -17
  147. package/dist/server/src/api/websocket/nsp/workers.js.map +1 -1
  148. package/dist/server/src/camera/decoder/worker.d.ts +3 -0
  149. package/dist/server/src/camera/decoder/worker.js +55 -34
  150. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  151. package/dist/server/src/main.js +5 -3
  152. package/dist/server/src/main.js.map +1 -1
  153. package/dist/server/src/manager/downloadManager.d.ts +6 -0
  154. package/dist/server/src/manager/downloadManager.js +162 -3
  155. package/dist/server/src/manager/downloadManager.js.map +1 -1
  156. package/dist/server/src/plugins/bundle.d.ts +2 -0
  157. package/dist/server/src/plugins/bundle.js +24 -0
  158. package/dist/server/src/plugins/bundle.js.map +1 -0
  159. package/dist/server/src/plugins/config-store.d.ts +16 -0
  160. package/dist/server/src/plugins/config-store.js +33 -0
  161. package/dist/server/src/plugins/config-store.js.map +1 -0
  162. package/dist/server/src/plugins/index.d.ts +1 -1
  163. package/dist/server/src/plugins/index.js +3 -17
  164. package/dist/server/src/plugins/index.js.map +1 -1
  165. package/dist/server/src/plugins/main-file.d.ts +2 -0
  166. package/dist/server/src/plugins/main-file.js +24 -0
  167. package/dist/server/src/plugins/main-file.js.map +1 -0
  168. package/dist/server/src/plugins/plugin.d.ts +0 -1
  169. package/dist/server/src/plugins/plugin.js +7 -25
  170. package/dist/server/src/plugins/plugin.js.map +1 -1
  171. package/dist/server/src/plugins/runtime/base.d.ts +23 -7
  172. package/dist/server/src/plugins/runtime/base.js +32 -29
  173. package/dist/server/src/plugins/runtime/base.js.map +1 -1
  174. package/dist/server/src/plugins/runtime/index.d.ts +2 -3
  175. package/dist/server/src/plugins/runtime/index.js.map +1 -1
  176. package/dist/server/src/plugins/runtime/node/child.d.ts +1 -0
  177. package/dist/server/src/plugins/runtime/node/child.js +24 -4
  178. package/dist/server/src/plugins/runtime/node/child.js.map +1 -1
  179. package/dist/server/src/plugins/runtime/node/configDb.d.ts +15 -0
  180. package/dist/server/src/plugins/runtime/node/configDb.js +18 -0
  181. package/dist/server/src/plugins/runtime/node/configDb.js.map +1 -0
  182. package/dist/server/src/plugins/runtime/node/index.d.ts +2 -2
  183. package/dist/server/src/plugins/runtime/node/index.js.map +1 -1
  184. package/dist/server/src/plugins/runtime/node/pluginApi.d.ts +2 -2
  185. package/dist/server/src/plugins/runtime/node/pluginApi.js.map +1 -1
  186. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +2 -0
  187. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
  188. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +5 -0
  189. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
  190. package/dist/server/src/plugins/runtime/node/proxy/downloadManager.js +6 -2
  191. package/dist/server/src/plugins/runtime/node/proxy/downloadManager.js.map +1 -1
  192. package/dist/server/src/plugins/runtime/node/proxy/fileServe.d.ts +13 -0
  193. package/dist/server/src/plugins/runtime/node/proxy/fileServe.js +82 -0
  194. package/dist/server/src/plugins/runtime/node/proxy/fileServe.js.map +1 -0
  195. package/dist/server/src/plugins/runtime/node/remoteUrls.d.ts +1 -0
  196. package/dist/server/src/plugins/runtime/node/remoteUrls.js +32 -0
  197. package/dist/server/src/plugins/runtime/node/remoteUrls.js.map +1 -0
  198. package/dist/server/src/plugins/runtime/node/storage.d.ts +2 -2
  199. package/dist/server/src/plugins/runtime/node/storage.js +1 -1
  200. package/dist/server/src/plugins/runtime/node/storage.js.map +1 -1
  201. package/dist/server/src/plugins/runtime/node/storageController.d.ts +2 -2
  202. package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -1
  203. package/dist/server/src/plugins/runtime/python/child.py +16 -4
  204. package/dist/server/src/plugins/runtime/python/config_db.py +42 -0
  205. package/dist/server/src/plugins/runtime/python/index.d.ts +2 -2
  206. package/dist/server/src/plugins/runtime/python/index.js +3 -1
  207. package/dist/server/src/plugins/runtime/python/index.js.map +1 -1
  208. package/dist/server/src/plugins/runtime/python/namespaces.py +2 -0
  209. package/dist/server/src/plugins/runtime/python/plugin_api.py +2 -2
  210. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +5 -0
  211. package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +6 -0
  212. package/dist/server/src/plugins/runtime/python/remote_urls.py +42 -0
  213. package/dist/server/src/plugins/runtime/python/storage.py +2 -2
  214. package/dist/server/src/plugins/runtime/python/storage_controller.py +2 -2
  215. package/dist/server/src/plugins/types.d.ts +2 -1
  216. package/dist/server/src/plugins/types.js +1 -0
  217. package/dist/server/src/plugins/types.js.map +1 -1
  218. package/dist/server/src/plugins/worker.d.ts +8 -0
  219. package/dist/server/src/plugins/worker.js +104 -2
  220. package/dist/server/src/plugins/worker.js.map +1 -1
  221. package/dist/server/src/rpc/index.d.ts +2 -1
  222. package/dist/server/src/rpc/index.js +43 -23
  223. package/dist/server/src/rpc/index.js.map +1 -1
  224. package/dist/server/src/rpc/interfaces/download.d.ts +10 -0
  225. package/dist/server/src/rpc/namespaces.d.ts +5 -1
  226. package/dist/server/src/rpc/namespaces.js +12 -2
  227. package/dist/server/src/rpc/namespaces.js.map +1 -1
  228. package/dist/server/src/rpc/server.d.ts +16 -2
  229. package/dist/server/src/rpc/server.js +146 -17
  230. package/dist/server/src/rpc/server.js.map +1 -1
  231. package/dist/server/src/rpc/utils.d.ts +1 -1
  232. package/dist/server/src/rpc/utils.js +2 -0
  233. package/dist/server/src/rpc/utils.js.map +1 -1
  234. package/dist/server/src/services/config/constants.js +4 -1
  235. package/dist/server/src/services/config/constants.js.map +1 -1
  236. package/dist/server/src/services/config/index.d.ts +1 -0
  237. package/dist/server/src/services/config/index.js +16 -10
  238. package/dist/server/src/services/config/index.js.map +1 -1
  239. package/dist/server/src/services/config/types.d.ts +5 -1
  240. package/dist/server/src/utils/platform.d.ts +2 -0
  241. package/dist/server/src/utils/platform.js +26 -0
  242. package/dist/server/src/utils/platform.js.map +1 -0
  243. package/dist/server/src/workers/agent.d.ts +15 -9
  244. package/dist/server/src/workers/agent.js +157 -64
  245. package/dist/server/src/workers/agent.js.map +1 -1
  246. package/dist/server/src/workers/capabilities/frame-decoding.d.ts +7 -3
  247. package/dist/server/src/workers/capabilities/frame-decoding.js +44 -10
  248. package/dist/server/src/workers/capabilities/frame-decoding.js.map +1 -1
  249. package/dist/server/src/workers/capabilities/handler.d.ts +1 -0
  250. package/dist/server/src/workers/capabilities/plugin-host.d.ts +23 -0
  251. package/dist/server/src/workers/capabilities/plugin-host.js +160 -0
  252. package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -0
  253. package/dist/server/src/workers/manager.d.ts +28 -3
  254. package/dist/server/src/workers/manager.js +316 -92
  255. package/dist/server/src/workers/manager.js.map +1 -1
  256. package/dist/server/src/workers/pairing.d.ts +3 -0
  257. package/dist/server/src/workers/pairing.js +80 -0
  258. package/dist/server/src/workers/pairing.js.map +1 -0
  259. package/dist/server/src/workers/types.d.ts +42 -17
  260. package/dist/server/src/workers/types.js +4 -0
  261. package/dist/server/src/workers/types.js.map +1 -1
  262. package/package.json +1 -1
  263. package/dist/interface/assets/AutomationStore-BhL1O1qq.js +0 -2
  264. package/dist/interface/assets/AutomationStoreDetail-pW5g8G4I.js +0 -2
  265. package/dist/interface/assets/Automations-CQioiNmw.js +0 -2
  266. package/dist/interface/assets/CuiBottomSheet-CrsJjITg.js +0 -1
  267. package/dist/interface/assets/Plugin-BDwSHzi9.js +0 -1
  268. package/dist/interface/assets/Plugin-CHdZvbiP.css +0 -1
  269. package/dist/interface/assets/PluginDetail-B2odw9DA.css +0 -1
  270. package/dist/interface/assets/PluginDetail-C3j4zIxC.js +0 -2
  271. package/dist/interface/assets/PluginSearch-BLWXmn9w.js +0 -2
  272. package/dist/interface/assets/PluginSearch-BwG61G-G.js +0 -1
  273. package/dist/interface/assets/SettingsAccount-DnZKU_tM.js +0 -1
  274. package/dist/interface/assets/SettingsAppearance-k5WMN34x.js +0 -1
  275. package/dist/interface/assets/SettingsSystem-BZ14jaFr.js +0 -2
  276. package/dist/interface/assets/VersionsHandler-nZK8BEJK.js +0 -7
  277. package/dist/interface/assets/Workers-CKR9yslJ.js +0 -1
  278. package/dist/interface/assets/api-Cntxdwiu.js +0 -2
  279. package/dist/interface/assets/api-CrAOxyt8.css +0 -2
  280. package/dist/interface/assets/cloudHandoff-CiV159TL.js +0 -1
  281. package/dist/interface/assets/types-aZM1hCux.js +0 -1
  282. /package/dist/interface/assets/{error-256-DLKVOU2S.png → logo-512-DLKVOU2S.png} +0 -0
@@ -0,0 +1,13 @@
1
+ import type { RPCClient } from '@camera.ui/rpc';
2
+ import type { FileServeStat, PluginFileServeInterface } from '../../../../rpc/interfaces/download.js';
3
+ export declare class PluginFileServer implements PluginFileServeInterface {
4
+ #private;
5
+ private readonly proxy;
6
+ private readonly pluginId;
7
+ constructor(proxy: RPCClient, pluginId: string);
8
+ register(): Promise<void>;
9
+ close(): Promise<void>;
10
+ statFile(filePath: string): Promise<FileServeStat>;
11
+ readFileChunk(filePath: string, offset: number, length: number): Promise<Uint8Array>;
12
+ deleteFile(filePath: string): Promise<void>;
13
+ }
@@ -0,0 +1,82 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { close, open, read, stat, unlink } from 'node:fs';
11
+ import { promisify } from 'node:util';
12
+ import { RPCClass, RPCMethod } from '@camera.ui/rpc';
13
+ import { NamespaceManager } from '../../../../rpc/namespaces.js';
14
+ const statAsync = promisify(stat);
15
+ const openAsync = promisify(open);
16
+ const readAsync = promisify(read);
17
+ const closeAsync = promisify(close);
18
+ const unlinkAsync = promisify(unlink);
19
+ let PluginFileServer = class PluginFileServer {
20
+ proxy;
21
+ pluginId;
22
+ #closeHandler;
23
+ constructor(proxy, pluginId) {
24
+ this.proxy = proxy;
25
+ this.pluginId = pluginId;
26
+ }
27
+ async register() {
28
+ const subject = NamespaceManager.pluginFileServeRpc(this.pluginId);
29
+ this.#closeHandler = await this.proxy.registerHandler(subject, this, { withoutDecorators: true });
30
+ }
31
+ async close() {
32
+ await this.#closeHandler?.();
33
+ this.#closeHandler = undefined;
34
+ }
35
+ async statFile(filePath) {
36
+ try {
37
+ const stats = await statAsync(filePath);
38
+ return { exists: stats.isFile(), size: stats.size };
39
+ }
40
+ catch {
41
+ return { exists: false, size: 0 };
42
+ }
43
+ }
44
+ async readFileChunk(filePath, offset, length) {
45
+ const fd = await openAsync(filePath, 'r');
46
+ try {
47
+ const buffer = Buffer.allocUnsafe(length);
48
+ const { bytesRead } = await readAsync(fd, buffer, 0, length, offset);
49
+ return buffer.subarray(0, bytesRead);
50
+ }
51
+ finally {
52
+ await closeAsync(fd);
53
+ }
54
+ }
55
+ async deleteFile(filePath) {
56
+ await unlinkAsync(filePath).catch(() => { });
57
+ }
58
+ };
59
+ __decorate([
60
+ RPCMethod,
61
+ __metadata("design:type", Function),
62
+ __metadata("design:paramtypes", [String]),
63
+ __metadata("design:returntype", Promise)
64
+ ], PluginFileServer.prototype, "statFile", null);
65
+ __decorate([
66
+ RPCMethod,
67
+ __metadata("design:type", Function),
68
+ __metadata("design:paramtypes", [String, Number, Number]),
69
+ __metadata("design:returntype", Promise)
70
+ ], PluginFileServer.prototype, "readFileChunk", null);
71
+ __decorate([
72
+ RPCMethod,
73
+ __metadata("design:type", Function),
74
+ __metadata("design:paramtypes", [String]),
75
+ __metadata("design:returntype", Promise)
76
+ ], PluginFileServer.prototype, "deleteFile", null);
77
+ PluginFileServer = __decorate([
78
+ RPCClass,
79
+ __metadata("design:paramtypes", [Object, String])
80
+ ], PluginFileServer);
81
+ export { PluginFileServer };
82
+ //# sourceMappingURL=fileServe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileServe.js","sourceRoot":"","sources":["../../../../../../../src/plugins/runtime/node/proxy/fileServe.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AACpC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAG/B,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAIR;IACA;IAJnB,aAAa,CAAuB;IAEpC,YACmB,KAAgB,EAChB,QAAgB;QADhB,UAAK,GAAL,KAAK,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAAQ;IAChC,CAAC;IAEG,KAAK,CAAC,QAAQ;QACnB,MAAM,OAAO,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IACpG,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;IAGY,AAAN,KAAK,CAAC,QAAQ,CAAC,QAAgB;QACpC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAGY,AAAN,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,MAAc,EAAE,MAAc;QACzE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACrE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAGY,AAAN,KAAK,CAAC,UAAU,CAAC,QAAgB;QACtC,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAzBc;IADZ,SAAS;;;;gDAQT;AAGY;IADZ,SAAS;;;;qDAUT;AAGY;IADZ,SAAS;;;;kDAGT;AA3CU,gBAAgB;IAD5B,QAAQ;;GACI,gBAAgB,CA4C5B"}
@@ -0,0 +1 @@
1
+ export declare function rewriteSourceUrlsForRemote<T>(urls: T): T;
@@ -0,0 +1,32 @@
1
+ const LOCALHOST_PATTERN = /127\.0\.0\.1|localhost/g;
2
+ function rewriteUrl(url, masterAddress, rtspUsername, rtspPassword) {
3
+ let rewritten = url.replace(LOCALHOST_PATTERN, masterAddress);
4
+ if (rtspUsername && rewritten.startsWith('rtsp://') && !rewritten.slice(7).split('/')[0].includes('@')) {
5
+ rewritten = rewritten.replace('rtsp://', `rtsp://${rtspUsername}:${rtspPassword ?? ''}@`);
6
+ }
7
+ return rewritten;
8
+ }
9
+ function walk(value, masterAddress, rtspUsername, rtspPassword) {
10
+ if (typeof value === 'string') {
11
+ return rewriteUrl(value, masterAddress, rtspUsername, rtspPassword);
12
+ }
13
+ if (Array.isArray(value)) {
14
+ return value.map((entry) => walk(entry, masterAddress, rtspUsername, rtspPassword));
15
+ }
16
+ if (value && typeof value === 'object') {
17
+ const result = {};
18
+ for (const [key, entry] of Object.entries(value)) {
19
+ result[key] = walk(entry, masterAddress, rtspUsername, rtspPassword);
20
+ }
21
+ return result;
22
+ }
23
+ return value;
24
+ }
25
+ export function rewriteSourceUrlsForRemote(urls) {
26
+ const masterAddress = process.env.CAMERAUI_MASTER_ADDRESS;
27
+ if (!process.env.PLUGIN_REMOTE_MODE || !masterAddress) {
28
+ return urls;
29
+ }
30
+ return walk(urls, masterAddress, process.env.CAMERAUI_RTSP_USERNAME, process.env.CAMERAUI_RTSP_PASSWORD);
31
+ }
32
+ //# sourceMappingURL=remoteUrls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remoteUrls.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/remoteUrls.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAEpD,SAAS,UAAU,CAAC,GAAW,EAAE,aAAqB,EAAE,YAAqB,EAAE,YAAqB;IAClG,IAAI,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAE9D,IAAI,YAAY,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvG,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,YAAY,IAAI,YAAY,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,IAAI,CAAI,KAAQ,EAAE,aAAqB,EAAE,YAAqB,EAAE,YAAqB;IAC5F,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAM,CAAC;IAC3E,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC,CAAM,CAAC;IAC3F,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,MAAW,CAAC;IACrB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAI,IAAO;IACnD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,aAAa,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC3G,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import type { RPCClient } from '@camera.ui/rpc';
2
2
  import type { DeviceStorage as DeviceStorageInterface, FormSubmitResponse, JsonSchema, PluginInfo, SchemaConfig } from '@camera.ui/sdk';
3
- import type { RootDatabase } from 'lmdb';
3
+ import type { PluginConfigDb } from './configDb.js';
4
4
  import type { PluginAPI } from './pluginApi.js';
5
5
  export declare class DeviceStorage<T extends Record<string, any> = Record<string, any>> implements DeviceStorageInterface<T> {
6
6
  #private;
7
7
  schemas: JsonSchema[];
8
8
  values: T;
9
- constructor(api: PluginAPI, proxy: RPCClient, plugin: PluginInfo, pluginDb: RootDatabase<Record<string, any>, 'config'>, deviceId: string, schemas: JsonSchema[] | undefined, isPluginStorage: boolean, sensorId?: string, cameraId?: string);
9
+ constructor(api: PluginAPI, proxy: RPCClient, plugin: PluginInfo, pluginDb: PluginConfigDb, deviceId: string, schemas: JsonSchema[] | undefined, isPluginStorage: boolean, sensorId?: string, cameraId?: string);
10
10
  getValue<T = string>(key: string): Promise<T> | undefined;
11
11
  getValue<T = string>(key: string, defaultValue: T): Promise<T>;
12
12
  setValue<T = string>(key: string, newValue: T): Promise<void>;
@@ -330,7 +330,7 @@ __decorate([
330
330
  ], DeviceStorage.prototype, "destroy", null);
331
331
  DeviceStorage = __decorate([
332
332
  RPCClass,
333
- __metadata("design:paramtypes", [Function, Object, Object, Function, String, Array, Boolean, String, String])
333
+ __metadata("design:paramtypes", [Function, Object, Object, Object, String, Array, Boolean, String, String])
334
334
  ], DeviceStorage);
335
335
  export { DeviceStorage };
336
336
  //# sourceMappingURL=storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/storage.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAQ5H,IAAM,aAAa,GAAnB,MAAM,aAAa;IAsBf;IArBF,MAAM,GAAM,EAAO,CAAC;IAE3B,SAAS,CAAS;IAClB,IAAI,CAAY;IAChB,MAAM,CAAY;IAClB,OAAO,CAAa;IACpB,SAAS,CAA8C;IAEvD,iBAAiB,CAAS;IAC1B,gBAAgB,CAAU;IAC1B,SAAS,CAAU;IACnB,SAAS,CAAU;IAEnB,WAAW,CAAuB;IAElC,YACE,GAAc,EACd,KAAgB,EAChB,MAAkB,EAClB,QAAqD,EACrD,QAAgB,EACT,UAAwB,EAAE,EACjC,eAAwB,EACxB,QAAiB,EACjB,QAAiB;QAHV,YAAO,GAAP,OAAO,CAAmB;QAKjC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,6DAA6D;YAC7D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1G,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QACrD,CAAC;aAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,uCAAuC;YACvC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1F,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAKM,QAAQ,CAAa,GAAW,EAAE,YAAgB;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrD,OAAQ,MAAc,EAAE,KAAK,EAAE,EAAE,IAAI,WAAW,IAAK,MAAc,EAAE,YAAY,IAAI,YAAY,CAAC;IACpG,CAAC;IAGY,AAAN,KAAK,CAAC,QAAQ,CAAa,GAAW,EAAE,QAAW;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAEjE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAClD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC3C,MAAO,MAAc,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAElD,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAGY,AAAN,KAAK,CAAC,WAAW,CAAC,GAAW,EAAE,QAAa;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAEjE,IAAI,MAAM,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAGY,AAAN,KAAK,CAAC,gBAAgB,CAAC,GAAW,EAAE,KAAc;QACvD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAGM,QAAQ,CAAC,GAAW;QACzB,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrD,OAAO,WAAW,KAAK,SAAS,CAAC;IACnC,CAAC;IAGY,AAAN,KAAK,CAAC,SAAS;QACpB,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,YAAY,GAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QACnF,OAAO,YAAY,CAAC;IACtB,CAAC;IAGY,AAAN,KAAK,CAAC,SAAS,CAAC,SAAY;QACjC,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,MAAW,EAAE,MAAW,EAAE,EAAE;YAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAEM,aAAa,CAAC,OAAqB;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAGY,AAAN,KAAK,CAAC,SAAS,CAAC,MAAkB;QACvC,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAGY,AAAN,KAAK,CAAC,YAAY,CAAC,GAAW;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACnE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAEjC,IAAI,MAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAGY,AAAN,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,SAA8B;QACnE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC;QAE3E,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,MAAW,EAAE,MAAW,EAAE,EAAE;gBACxD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAE1C,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAGM,SAAS,CAAI,GAAW;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAkB,CAAC;IAC5E,CAAC;IAGM,SAAS,CAAC,GAAW;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,CAAC,MAAM,CAAC;IAClB,CAAC;IAGY,AAAN,KAAK,CAAC,OAAO;QAClB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,EAAO,CAAC;QACtB,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACpG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC;QACxC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEM,YAAY,CAAC,UAAwB,EAAE;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,eAAe;QAC1B,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACrF,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,OAAkC;QAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpD,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACtD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,SAA8B,EAAE,SAA8B;QAC1F,MAAM,QAAQ,GAAoB,EAAE,CAAC;QAErC,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YAEtC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;gBACvE,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;oBAC1E,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,qBAAqB,CAAC,OAAqB,EAAE,SAA8B,EAAE;QAC3E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjD,SAAS;YACX,CAAC;YAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3D,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uBAAuB,CAAC,MAAkB;QACxC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7D,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,MAAW,EAAE,MAAW,EAAE,EAAE;YAC/E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,EAAE;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA7PQ;IADN,SAAS;;;;6CAKT;AAGY;IADZ,SAAS;;;;6CAaT;AAGY;IADZ,SAAS;;;;gDAOT;AAGY;IADZ,SAAS;;;;qDAIT;AAGM;IADN,SAAS;;;;6CAIT;AAGY;IADZ,SAAS;;;;8CAMT;AAGY;IADZ,SAAS;;;;8CAYT;AAQY;IADZ,SAAS;;;;8CAoBT;AAGY;IADZ,SAAS;;;;iDAST;AAGY;IADZ,SAAS;;;;iDAkBT;AAGM;IADN,SAAS;;;;8CAGT;AAGM;IADN,SAAS;;;;8CAIT;AAGY;IADZ,SAAS;;;;4CAOT;AApMU,aAAa;IADzB,QAAQ;;GACI,aAAa,CAqTzB"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/storage.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { DeviceStorage } from './storage.js';
2
2
  import type { RPCClient } from '@camera.ui/rpc';
3
3
  import type { JsonSchema, PluginInfo, SensorType } from '@camera.ui/sdk';
4
- import type { RootDatabase } from 'lmdb';
4
+ import type { PluginConfigDb } from './configDb.js';
5
5
  import type { PluginAPI } from './pluginApi.js';
6
6
  export declare class StorageController {
7
7
  #private;
8
- constructor(api: PluginAPI, proxy: RPCClient, plugin: PluginInfo, pluginDb: RootDatabase<Record<string, any>, 'config'>);
8
+ constructor(api: PluginAPI, proxy: RPCClient, plugin: PluginInfo, pluginDb: PluginConfigDb);
9
9
  createCameraStorage<T extends Record<string, any> = Record<string, any>>(cameraId: string, schemas?: JsonSchema[]): DeviceStorage<T>;
10
10
  createPluginStorage<T extends Record<string, any> = Record<string, any>>(schemas?: JsonSchema[]): DeviceStorage<T>;
11
11
  getCameraStorage<T extends Record<string, any> = Record<string, any>>(deviceId: string): DeviceStorage<T> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"storageController.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/storageController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storageController.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/storageController.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ from _camera_ui_tools.camera_ui_common import (
23
23
  from _camera_ui_tools.camera_ui_rpc import CloseHandler, RPCClient, create_rpc_client
24
24
  from _camera_ui_tools.camera_ui_sdk import API_EVENT, BasePlugin, Camera
25
25
  from _camera_ui_tools.camera_ui_sdk import CameraDevice as CameraDeviceInterface
26
+ from plugins.runtime.python.config_db import PluginConfigDb, PluginConfigStoreRPC, RemotePluginConfigDb
26
27
  from plugins.runtime.python.namespaces import NamespaceManager
27
28
  from plugins.runtime.python.plugin_api import PluginAPI
28
29
  from plugins.runtime.python.proxy.camera_device import CameraDeviceProxy
@@ -88,7 +89,7 @@ class PluginChild:
88
89
  self.api: PluginAPI | None = None
89
90
  self.plugin: BasePlugin | None = None
90
91
  self.close_proxy: CloseHandler | None = None
91
- self.plugin_db: Lmdb[Literal["config"], dict[str, Any]] | None = None
92
+ self.plugin_db: PluginConfigDb | None = None
92
93
 
93
94
  self.stopped = False
94
95
 
@@ -122,11 +123,13 @@ class PluginChild:
122
123
 
123
124
  async def start_plugin(self, data: ProcessLoadMessage) -> None:
124
125
  try:
125
- storage_path = data["storage"]["storagePath"]
126
+ # Host-local writable dir - on a remote worker the master's path from
127
+ # the START message would point at the wrong machine.
128
+ storage_path = os.environ.get("PLUGIN_STORAGE_PATH") or data["storage"]["storagePath"]
126
129
  plugin_info = data["plugin"]
127
130
  cameras = data["cameras"]
128
131
 
129
- self.plugin_db = await self.configure_plugin_db(storage_path)
132
+ self.plugin_db = await self.configure_plugin_db(storage_path, plugin_info["id"])
130
133
 
131
134
  self.api = PluginAPI(
132
135
  self.proxy,
@@ -209,7 +212,16 @@ class PluginChild:
209
212
  case _:
210
213
  pass
211
214
 
212
- async def configure_plugin_db(self, storage_path: str) -> Lmdb[Literal["config"], dict[str, Any]]:
215
+ async def configure_plugin_db(self, storage_path: str, plugin_id: str) -> PluginConfigDb:
216
+ # Remote-hosted: config lives on the master (re-homing safe) - persist
217
+ # through its config store instead of a worker-local file.
218
+ if os.environ.get("PLUGIN_CONFIG_STORE_RPC"):
219
+ namespaces = NamespaceManager.plugin_namespaces(plugin_id)
220
+ store = self.proxy.create_proxy(namespaces.plugin_config_store_rpc, PluginConfigStoreRPC)
221
+ remote_db = RemotePluginConfigDb(store)
222
+ await remote_db.init()
223
+ return remote_db
224
+
213
225
  db_path = Path(storage_path) / "volume"
214
226
  Path(db_path).mkdir(parents=True, exist_ok=True)
215
227
 
@@ -0,0 +1,42 @@
1
+ import asyncio
2
+ from typing import Any, Literal, Protocol
3
+
4
+
5
+ class PluginConfigStoreRPC(Protocol):
6
+ async def get(self) -> dict[str, Any] | None: ...
7
+
8
+ async def put(self, config: dict[str, Any]) -> None: ...
9
+
10
+
11
+ class PluginConfigDb(Protocol):
12
+ def get(self, key: Literal["config"]) -> dict[str, Any] | None: ...
13
+
14
+ def update(self, mapping: dict[Literal["config"], dict[str, Any]], /) -> None: ...
15
+
16
+ def close(self) -> None: ...
17
+
18
+
19
+ class RemotePluginConfigDb:
20
+ def __init__(self, store: PluginConfigStoreRPC) -> None:
21
+ self._store = store
22
+ self._cache: dict[str, Any] = {}
23
+
24
+ async def init(self) -> None:
25
+ self._cache = (await self._store.get()) or {}
26
+
27
+ def get(self, _key: Literal["config"]) -> dict[str, Any]:
28
+ return self._cache
29
+
30
+ def update(self, mapping: dict[Literal["config"], dict[str, Any]], /) -> None:
31
+ config = mapping["config"]
32
+ self._cache = config
33
+ # Lmdb-compatible sync signature — persistence is fire-and-forget; the
34
+ # cache is already current and errors only cost durability of this write.
35
+ task = asyncio.create_task(self._persist(dict(config)))
36
+ task.add_done_callback(lambda t: t.exception())
37
+
38
+ def close(self) -> None:
39
+ return None
40
+
41
+ async def _persist(self, config: dict[str, Any]) -> None:
42
+ await self._store.put(config)
@@ -1,8 +1,8 @@
1
1
  import { BasePluginRuntime } from '../base.js';
2
- import type { Plugin } from '../../plugin.js';
2
+ import type { RuntimePlugin } from '../base.js';
3
3
  export declare class PythonPluginRuntime extends BasePluginRuntime {
4
4
  private py;
5
- constructor(plugin: Plugin);
5
+ constructor(plugin: RuntimePlugin);
6
6
  start(): Promise<void>;
7
7
  private updatePython;
8
8
  private createPythonPath;
@@ -44,7 +44,9 @@ export class PythonPluginRuntime extends BasePluginRuntime {
44
44
  if (existsSync(requirementsPath) && statSync(requirementsPath).size > 0) {
45
45
  await this.py.updatePluginDependencies(requirementsPath);
46
46
  }
47
- if (!this.pluginManager.installedPythonVersions.has(this.plugin.contract.pythonVersion ?? DEFAULT_PY_VERSION)) {
47
+ // pluginManager only exists on the master; on a worker installPluginPython
48
+ // above already provisioned the interpreter.
49
+ if (this.pluginManager && !this.pluginManager.installedPythonVersions.has(this.plugin.contract.pythonVersion ?? DEFAULT_PY_VERSION)) {
48
50
  throw new Error(`Python version ${this.plugin.contract.pythonVersion ?? DEFAULT_PY_VERSION} is not installed! Cannot start ${this.plugin.pluginName}.`);
49
51
  }
50
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/python/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/python/index.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ class PluginNamespaces:
25
25
  plugin_child_rpc: str
26
26
  plugin_child: str
27
27
  plugin_storage_rpc: str
28
+ plugin_config_store_rpc: str
28
29
 
29
30
 
30
31
  @dataclass(frozen=True, slots=True)
@@ -128,6 +129,7 @@ class NamespaceManager:
128
129
  plugin_child_rpc=f"plugin.{plugin_id}.child.rpc",
129
130
  plugin_child=f"plugin.{plugin_id}.child",
130
131
  plugin_storage_rpc=f"plugin.{plugin_id}.storage.rpc",
132
+ plugin_config_store_rpc=f"plugin.{plugin_id}.configstore.rpc",
131
133
  )
132
134
 
133
135
  @staticmethod
@@ -1,6 +1,6 @@
1
1
  from typing import Any, Literal, cast
2
2
 
3
- from lmdbm import Lmdb
3
+ from plugins.runtime.python.config_db import PluginConfigDb
4
4
 
5
5
  from _camera_ui_tools.camera_ui_common import LoggerService
6
6
  from _camera_ui_tools.camera_ui_rpc import RPCClient
@@ -29,7 +29,7 @@ class PluginAPI(AsyncEventEmitter, PluginAPIInterface):
29
29
  plugin: PluginInfo,
30
30
  storage_path: str,
31
31
  logger: LoggerService,
32
- plugin_db: Lmdb[Literal["config"], dict[str, Any]],
32
+ plugin_db: PluginConfigDb,
33
33
  ) -> None:
34
34
  super().__init__()
35
35
 
@@ -53,6 +53,7 @@ from _camera_ui_tools.camera_ui_sdk import (
53
53
  from _camera_ui_tools.camera_ui_sdk import CameraDevice as CameraDeviceInterface
54
54
  from _camera_ui_tools.camera_ui_sdk.internal import SensorJSON
55
55
  from plugins.runtime.python.camera.utils import build_snapshot_url, build_target_url
56
+ from plugins.runtime.python.remote_urls import rewrite_source_urls_for_remote
56
57
  from plugins.runtime.python.namespaces import (
57
58
  CameraNamespaces,
58
59
  FrameWorkerDetectionNamespaces,
@@ -299,6 +300,10 @@ class CameraDeviceProxy(Subscribed, CameraDeviceInterface):
299
300
  @property
300
301
  def sources(self) -> list[CameraDeviceSource]:
301
302
  sources = deepcopy(self._camera_subject.value["sources"])
303
+ # Single funnel for all URL consumers - remote-hosted plugins get
304
+ # reachable URLs (see remote_urls.py).
305
+ for source in sources:
306
+ source["urls"] = rewrite_source_urls_for_remote(source["urls"])
302
307
  return [CameraDeviceSourceImpl(source, self) for source in sources]
303
308
 
304
309
  @property
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import asyncio
4
+ import os
4
5
  from typing import TYPE_CHECKING, Any, TypedDict
5
6
 
6
7
  from _camera_ui_tools.camera_ui_common import LoggerService
@@ -95,6 +96,11 @@ class CoreManagerProxy(CoreManager):
95
96
  return None
96
97
 
97
98
  async def getFFmpegPath(self) -> str:
99
+ # Remote-hosted: the master's path points at the wrong machine - the
100
+ # worker injects its own bundled ffmpeg at spawn time.
101
+ ffmpeg_path = os.environ.get("CAMERAUI_FFMPEG_PATH")
102
+ if ffmpeg_path:
103
+ return ffmpeg_path
98
104
  return await self.__core_manager_proxy.getFFmpegPath()
99
105
 
100
106
  async def getServerAddresses(self) -> list[str]:
@@ -0,0 +1,42 @@
1
+ import os
2
+ import re
3
+ from typing import Any
4
+
5
+ _LOCALHOST = re.compile(r"127\.0\.0\.1|localhost")
6
+
7
+
8
+ def _rewrite_url(url: str, master: str, user: str | None, password: str | None) -> str:
9
+ rewritten = _LOCALHOST.sub(master, url)
10
+
11
+ if (
12
+ user
13
+ and rewritten.startswith("rtsp://")
14
+ and "@" not in rewritten[7:].split("/")[0]
15
+ ):
16
+ rewritten = rewritten.replace("rtsp://", f"rtsp://{user}:{password or ''}@", 1)
17
+
18
+ return rewritten
19
+
20
+
21
+ def _walk(value: Any, master: str, user: str | None, password: str | None) -> Any:
22
+ if isinstance(value, str):
23
+ return _rewrite_url(value, master, user, password)
24
+ if isinstance(value, list):
25
+ return [_walk(v, master, user, password) for v in value]
26
+ if isinstance(value, dict):
27
+ return {k: _walk(v, master, user, password) for k, v in value.items()}
28
+ return value
29
+
30
+
31
+ def rewrite_source_urls_for_remote(urls: Any) -> Any:
32
+ """No-op unless running remote-hosted with a known master address."""
33
+ master = os.environ.get("CAMERAUI_MASTER_ADDRESS")
34
+ if not os.environ.get("PLUGIN_REMOTE_MODE") or not master:
35
+ return urls
36
+
37
+ return _walk(
38
+ urls,
39
+ master,
40
+ os.environ.get("CAMERAUI_RTSP_USERNAME"),
41
+ os.environ.get("CAMERAUI_RTSP_PASSWORD"),
42
+ )
@@ -6,7 +6,7 @@ from copy import deepcopy
6
6
  from typing import Any, Literal, cast
7
7
 
8
8
  from deepdiff.diff import DeepDiff
9
- from lmdbm import Lmdb
9
+ from plugins.runtime.python.config_db import PluginConfigDb
10
10
 
11
11
  from _camera_ui_tools.camera_ui_common import ObjectPath, merge, merge_with
12
12
  from _camera_ui_tools.camera_ui_rpc import CloseHandler, RPCClient, RPCMethod
@@ -58,7 +58,7 @@ class DeviceStorage(DeviceStorageInterface):
58
58
  api: PluginAPI,
59
59
  proxy: RPCClient,
60
60
  plugin: PluginInfo,
61
- plugin_db: Lmdb[Literal["config"], dict[str, Any]],
61
+ plugin_db: PluginConfigDb,
62
62
  device_id: str,
63
63
  schemas: list[JsonSchema] | None = [],
64
64
  is_plugin_storage: bool = False,
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from typing import TYPE_CHECKING, Any, Literal, overload
4
4
 
5
- from lmdbm import Lmdb
5
+ from plugins.runtime.python.config_db import PluginConfigDb
6
6
 
7
7
  from _camera_ui_tools.camera_ui_rpc import RPCClient
8
8
  from _camera_ui_tools.camera_ui_sdk import JsonSchema, SensorType
@@ -23,7 +23,7 @@ class StorageController:
23
23
  api: PluginAPI,
24
24
  proxy: RPCClient,
25
25
  plugin: PluginInfo,
26
- plugin_db: Lmdb[Literal["config"], dict[str, Any]],
26
+ plugin_db: PluginConfigDb,
27
27
  ) -> None:
28
28
  self.__api: PluginAPI = api
29
29
  self.__proxy = proxy
@@ -25,7 +25,8 @@ export declare enum PLUGIN_STATUS {
25
25
  STOPPED = "stopped",
26
26
  ERROR = "error",
27
27
  UNKNOWN = "unknown",
28
- DISABLED = "disabled"
28
+ DISABLED = "disabled",
29
+ INCOMPATIBLE = "incompatible"
29
30
  }
30
31
  export declare enum PLUGIN_COMMAND {
31
32
  START = "start",
@@ -9,6 +9,7 @@ export var PLUGIN_STATUS;
9
9
  PLUGIN_STATUS["ERROR"] = "error";
10
10
  PLUGIN_STATUS["UNKNOWN"] = "unknown";
11
11
  PLUGIN_STATUS["DISABLED"] = "disabled";
12
+ PLUGIN_STATUS["INCOMPATIBLE"] = "incompatible";
12
13
  })(PLUGIN_STATUS || (PLUGIN_STATUS = {}));
13
14
  export var PLUGIN_COMMAND;
14
15
  (function (PLUGIN_COMMAND) {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/plugins/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG,qCAAqC,CAAC;AAuB/E,MAAM,CAAN,IAAY,aASX;AATD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;AACvB,CAAC,EATW,aAAa,KAAb,aAAa,QASxB;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/plugins/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG,qCAAqC,CAAC;AAuB/E,MAAM,CAAN,IAAY,aAUX;AAVD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,8CAA6B,CAAA;AAC/B,CAAC,EAVW,aAAa,KAAb,aAAa,QAUxB;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB"}
@@ -11,6 +11,9 @@ export declare class PluginWorker {
11
11
  private runtime;
12
12
  private started;
13
13
  private shuttingDown;
14
+ private isRemote;
15
+ private remoteStartTimeout?;
16
+ private configStore?;
14
17
  private opChain;
15
18
  private channel?;
16
19
  private namespaces;
@@ -25,10 +28,15 @@ export declare class PluginWorker {
25
28
  disable(): void;
26
29
  getPID(): number;
27
30
  isRunning(): boolean;
31
+ get isRemoteWorker(): boolean;
28
32
  isReady(): boolean;
29
33
  cleanup(): Promise<void>;
30
34
  private runExclusive;
31
35
  private doStart;
36
+ private openChannel;
37
+ private ensureConfigStore;
38
+ private workerManagerRef;
39
+ private armRemoteFallback;
32
40
  private doTeardown;
33
41
  private doRestart;
34
42
  private sendMessage;