@camera.ui/server 2.0.3 → 2.0.5

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 (285) hide show
  1. package/dist/interface/assets/{404-4kT4tezJ.js → 404-DRRPa9Hr.js} +1 -1
  2. package/dist/interface/assets/About-Db5MifHo.js +1 -0
  3. package/dist/interface/assets/{Adminpanel-B38Z5X54.js → Adminpanel-ByDZ8Xpn.js} +1 -1
  4. package/dist/interface/assets/{Automation-BbX3-xf_.js → Automation-BqJ8PyPa.js} +2 -2
  5. package/dist/interface/assets/{AutomationImport-D5Ov1XoG.js → AutomationImport-BvuLSZcZ.js} +2 -2
  6. package/dist/interface/assets/{AutomationStore-CVQpLFae.js → AutomationStore-Ca07W8uH.js} +2 -2
  7. package/dist/interface/assets/{AutomationStoreDetail-NNXJ16cM.js → AutomationStoreDetail-DmFvT2az.js} +2 -2
  8. package/dist/interface/assets/{Automations-w8GvcQRP.js → Automations-Dr8K-cDz.js} +2 -2
  9. package/dist/interface/assets/{Camera-Bx-Fc8Rk.js → Camera-Bu1U8Oal.js} +2 -2
  10. package/dist/interface/assets/{CameraConsole-Br1Ot4HR.js → CameraConsole-BcvP76iJ.js} +1 -1
  11. package/dist/interface/assets/{Cameras-C-NQYdbQ.js → Cameras-Dwr5fbzg.js} +2 -2
  12. package/dist/interface/assets/{Camview-DWgaBueW.js → Camview-F0vVBWeZ.js} +1 -1
  13. package/dist/interface/assets/Config-CIAVylkc.js +2 -0
  14. package/dist/interface/assets/{ConfigActionCameraControl-Cvjyd2Rq.js → ConfigActionCameraControl-C1dsQnYF.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionDelay-Rnxk--Qt.js → ConfigActionDelay-DTjjadCG.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionHttp-BF8vrrHR.js → ConfigActionHttp-IFqZaHDZ.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionImageInput-C8_H3ubM.js → ConfigActionImageInput-DY8RQJ2h.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionNotification-T35A9o6f.js → ConfigActionNotification-CJL8uNR-.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionOutput-CxB3eLLl.js → ConfigActionOutput-Butmz0jI.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionPlugin-BHdyn9Te.js → ConfigActionPlugin-D5oE8oXm.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionSensor-CMrg6h2b.js → ConfigActionSensor-CJ-mk6eS.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionSnapshot-Dz6LdZsA.js → ConfigActionSnapshot-DCCiYu-s.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionVariable-DIlUMHDy.js → ConfigActionVariable-F28sicqK.js} +1 -1
  24. package/dist/interface/assets/{ConfigConditionIfElse-0XRDQcTw.js → ConfigConditionIfElse-BJhRgP7t.js} +1 -1
  25. package/dist/interface/assets/{ConfigConditionSensorState-BzFQHkML.js → ConfigConditionSensorState-B6MdgPfo.js} +1 -1
  26. package/dist/interface/assets/{ConfigConditionSwitch-C7pp1EZI.js → ConfigConditionSwitch-BKToCaFK.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionTime-B0zctDc4.js → ConfigConditionTime-ChXeDbZB.js} +1 -1
  28. package/dist/interface/assets/{ConfigTriggerDetection-DOS-gNhG.js → ConfigTriggerDetection-BWd3QqYf.js} +1 -1
  29. package/dist/interface/assets/{ConfigTriggerGeofence-YggfZUFH.js → ConfigTriggerGeofence-BoT9t-8V.js} +1 -1
  30. package/dist/interface/assets/{ConfigTriggerManual-BpBTh3CS.js → ConfigTriggerManual-Bt62nmi8.js} +1 -1
  31. package/dist/interface/assets/{ConfigTriggerSchedule-DZG10NcA.js → ConfigTriggerSchedule-oBDIqAMo.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerSensor-Cu657NGX.js → ConfigTriggerSensor-BlTHlstZ.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerSystem-BfIHn9AZ.js → ConfigTriggerSystem--nEg_iQ0.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerWebhook-BKPOGAs3.js → ConfigTriggerWebhook-83rLUOjQ.js} +1 -1
  35. package/dist/interface/assets/{Console-C6A7MqYh.js → Console-2sHljg8h.js} +1 -1
  36. package/dist/interface/assets/{CuiActionButton-BSy6VaJ6.js → CuiActionButton-CNjL01gn.js} +1 -1
  37. package/dist/interface/assets/{CuiAvatar-BwAVgBUB.js → CuiAvatar-BDT9c-UI.js} +1 -1
  38. package/dist/interface/assets/{CuiBBoxPlayground-BUPzZ0sI.js → CuiBBoxPlayground-CMnBcPwI.js} +1 -1
  39. package/dist/interface/assets/CuiBottomSheet-WuxFsOrw.js +1 -0
  40. package/dist/interface/assets/{CuiBottomSheet-CxYeW_sq.js → CuiBottomSheet-h5sjwTf4.js} +1 -1
  41. package/dist/interface/assets/{CuiCameraCard-Ci09TTwg.js → CuiCameraCard-Bip9OIZO.js} +1 -1
  42. package/dist/interface/assets/{CuiCameraPipCard-fYyJQ9DL.js → CuiCameraPipCard-DElQvAB0.js} +1 -1
  43. package/dist/interface/assets/{CuiCameraRecordings-75jdIwEG.js → CuiCameraRecordings-Bf5IG7OM.js} +1 -1
  44. package/dist/interface/assets/{CuiCameraShares-C2HDYSGy.js → CuiCameraShares-Cw-Mffg8.js} +1 -1
  45. package/dist/interface/assets/{CuiCameraSnapshot-Cz8aYjoo.js → CuiCameraSnapshot-BS-_U34M.js} +1 -1
  46. package/dist/interface/assets/{CuiCameraTable-DrIhSgmU.js → CuiCameraTable-DY_unr4m.js} +1 -1
  47. package/dist/interface/assets/{CuiDataTable-DhnQRMXG.js → CuiDataTable-C5qi7zpz.js} +1 -1
  48. package/dist/interface/assets/{CuiFloatingButton-DRKyDsPh.js → CuiFloatingButton-Pmur2pAJ.js} +1 -1
  49. package/dist/interface/assets/{CuiImage-i_fTDsHd.js → CuiImage-DVoYtgtl.js} +1 -1
  50. package/dist/interface/assets/{CuiMenu-DSTlEsg9.js → CuiMenu-B7AhQbgB.js} +1 -1
  51. package/dist/interface/assets/{CuiPluginCard-XmOOko_4.js → CuiPluginCard-B5PhaGoF.js} +2 -2
  52. package/dist/interface/assets/{CuiPluginCategoryChip-BwL2qCTM.js → CuiPluginCategoryChip-nEwIiKiK.js} +1 -1
  53. package/dist/interface/assets/{CuiPluginOAuthButton-CmW7OY0L.js → CuiPluginOAuthButton-CJGsl-89.js} +2 -2
  54. package/dist/interface/assets/{CuiPluginTrustBadge-KcOasEJH.js → CuiPluginTrustBadge-DExKttfC.js} +1 -1
  55. package/dist/interface/assets/{CuiQRCode-DgaxwrkH.js → CuiQRCode-DkRZ5hfS.js} +1 -1
  56. package/dist/interface/assets/{CuiRecordingsGrid-BxoJSn6Z.js → CuiRecordingsGrid-mFXSsuG8.js} +1 -1
  57. package/dist/interface/assets/{CuiSchema-BDrsTIqf.js → CuiSchema-BSv1nUun.js} +1 -1
  58. package/dist/interface/assets/{CuiTopNavbarItem-DVwItfbG.js → CuiTopNavbarItem-w21c3xtQ.js} +1 -1
  59. package/dist/interface/assets/{CuiTopbarSlot-BT6XOANB.js → CuiTopbarSlot-CYPUqVPx.js} +1 -1
  60. package/dist/interface/assets/{Faces-DvYCASPC.js → Faces-DLpVsIkY.js} +1 -1
  61. package/dist/interface/assets/{FirstSteps-DAsmDJJE.js → FirstSteps-BDDy9x_6.js} +1 -1
  62. package/dist/interface/assets/{Instances-D4fzQrI3.js → Instances-FeIAnJix.js} +1 -1
  63. package/dist/interface/assets/{Logs-DYXtlueg.js → Logs-CIUyuGwj.js} +1 -1
  64. package/dist/interface/assets/{Menu-BcBthWK9.js → Menu-Gqs2UiSW.js} +1 -1
  65. package/dist/interface/assets/{OAuthDeviceFlow-C70vC26b.js → OAuthDeviceFlow-hNJ_UrdG.js} +1 -1
  66. package/dist/interface/assets/{Plugin-Ek8CJHb3.js → Plugin-BKItJas0.js} +1 -1
  67. package/dist/interface/assets/{PluginConsole-n1wMznj9.js → PluginConsole-Bwd5Mktk.js} +1 -1
  68. package/dist/interface/assets/PluginDetail-BBh5y9qU.js +2 -0
  69. package/dist/interface/assets/{PluginSchema-DDpK-w_q.js → PluginSchema-D92qcqf9.js} +1 -1
  70. package/dist/interface/assets/PluginSearch-BN3U3NY6.js +2 -0
  71. package/dist/interface/assets/PluginSearch-nHAFKMX0.js +1 -0
  72. package/dist/interface/assets/Plugins-gxyxkQ5i.js +1 -0
  73. package/dist/interface/assets/Recordings-B3Xw23vh.js +1 -0
  74. package/dist/interface/assets/{Settings-DqA1TU3I.js → Settings-D2LHMohy2.js} +1 -1
  75. package/dist/interface/assets/SettingsAccount-DUN1oTTn.js +1 -0
  76. package/dist/interface/assets/{SettingsAccount-BEVxkPFS.js → SettingsAccount-b4eVxI3M.js} +1 -1
  77. package/dist/interface/assets/{SettingsAppearance-B9KzFCdx.js → SettingsAppearance--Eidr-fz.js} +1 -1
  78. package/dist/interface/assets/SettingsAppearance-CLVMmnR_.js +1 -0
  79. package/dist/interface/assets/{SettingsBackup-j_z4sOId.js → SettingsBackup-DUYVdKjD.js} +1 -1
  80. package/dist/interface/assets/{SettingsNotifications-D2WgP9Pd.js → SettingsNotifications-xYOuLZsr.js} +1 -1
  81. package/dist/interface/assets/SettingsRecordings-BQDf4Zeg.js +1 -0
  82. package/dist/interface/assets/{SettingsRemote-C7wTY9EH.js → SettingsRemote-BXr1HLHm.js} +1 -1
  83. package/dist/interface/assets/SettingsSystem-DAjNwp4I.js +2 -0
  84. package/dist/interface/assets/{SettingsUsers-CdVrMc0h.js → SettingsUsers-DJ-eMMWe.js} +1 -1
  85. package/dist/interface/assets/{Terminal-pyMSi5jh.js → Terminal-P3yVGG8s.js} +1 -1
  86. package/dist/interface/assets/{VariableInput-DmE1m9Il.js → VariableInput-DdVw4SIR.js} +1 -1
  87. package/dist/interface/assets/{VariableSuggestions-eII-1Bd_.js → VariableSuggestions-SJPd5c8d.js} +1 -1
  88. package/dist/interface/assets/VersionsHandler-DcZ3RtHV.js +7 -0
  89. package/dist/interface/assets/{Workers-KL_fb-Ki.js → Workers-DWSJsRko.js} +1 -1
  90. package/dist/interface/assets/api-CKqAhmSC.css +2 -0
  91. package/dist/interface/assets/{api-DVDZCfaM.js → api-Cv3vt1pa.js} +1 -1
  92. package/dist/interface/assets/api-Ex2VUVD1.js +2 -0
  93. package/dist/interface/assets/{auth-pmpjgGBQ.js → auth-W-JA6GOD.js} +1 -1
  94. package/dist/interface/assets/{automations-xpnVYpRH.js → automations-d_B5L3sO.js} +1 -1
  95. package/dist/interface/assets/{automations-73X55Wxy.js → automations-irBgx9Ew.js} +1 -1
  96. package/dist/interface/assets/{backup-G0wpvhtl.js → backup-BT-P0duG.js} +1 -1
  97. package/dist/interface/assets/{cameras-CURX5SWn.js → cameras-DxjpuzW1.js} +1 -1
  98. package/dist/interface/assets/{cameras.schema-UcmqaqCT.js → cameras.schema-7ex1wBck.js} +1 -1
  99. package/dist/interface/assets/cloudHandoff-Cu1sRatW.js +1 -0
  100. package/dist/interface/assets/config-DwlSsbcP.js +1 -0
  101. package/dist/interface/assets/{deviceId-DRtZsFhF.js → deviceId-I24oaPe6.js} +1 -1
  102. package/dist/interface/assets/{hasPermission-DKf8cjsF.js → hasPermission-Cz0dkfyp.js} +1 -1
  103. package/dist/interface/assets/{instances-DvkGEhQ9.js → instances-D6wHW9_0.js} +1 -1
  104. package/dist/interface/assets/{main-D8ZyVvgT.css → main-BjuXWRyJ.css} +1 -1
  105. package/dist/interface/assets/main-C-WCGnJh.js +3 -0
  106. package/dist/interface/assets/{notifications-CThoWQfW.js → notifications-DLNUbEKC.js} +1 -1
  107. package/dist/interface/assets/{plugins-DN9592Gw.js → plugins-D-tGC0mr.js} +1 -1
  108. package/dist/interface/assets/{round-restart-alt-C6cWOig8.js → round-restart-alt-CaOjUTav.js} +1 -1
  109. package/dist/interface/assets/router-Cbt2STjH.js +2 -0
  110. package/dist/interface/assets/{routerState-DxipV4mY.js → routerState-_BXrxePY.js} +1 -1
  111. package/dist/interface/assets/{server-BaJ0ampx.js → server-ACfR-bOw.js} +1 -1
  112. package/dist/interface/assets/{shares-B6eaflmY.js → shares-Ut3rTZUx.js} +1 -1
  113. package/dist/interface/assets/{theme-Dbkvi1e_.js → theme-CDU91XW5.js} +1 -1
  114. package/dist/interface/assets/{types-CAW47AJe.js → types-Blh_1COV.js} +1 -1
  115. package/dist/interface/assets/ui-SZnjYe2F.js +1 -0
  116. package/dist/interface/assets/useAppVersion-Bo_n0OVQ.js +1 -0
  117. package/dist/interface/assets/{useBiometricCredentials-BJheacnv.js → useBiometricCredentials-XyEQbPBo.js} +1 -1
  118. package/dist/interface/assets/{useCameraOptions-r_TT2WJk.js → useCameraOptions-C3-ZVV2A.js} +1 -1
  119. package/dist/interface/assets/{useCuiCameraDrawer-DwlhaZ2i.js → useCuiCameraDrawer-CebQFNWX.js} +1 -1
  120. package/dist/interface/assets/useCuiDialog-ClphnG79.js +2 -0
  121. package/dist/interface/assets/{useFileDownload-BE32i7R1.js → useFileDownload-CdDprX3v.js} +1 -1
  122. package/dist/interface/assets/{useLogsSocket-CLSJzN6z.js → useLogsSocket-DKU0kKe_.js} +1 -1
  123. package/dist/interface/assets/{useServerRestart-DCJcb-IB.js → useServerRestart-CgCmTap7.js} +1 -1
  124. package/dist/interface/assets/{useSharedComposables-CWxbvFAw.js → useSharedComposables-BcUR_c17.js} +1 -1
  125. package/dist/interface/assets/{useStreamStatus-DH9KQ7aE.js → useStreamStatus-BTa-XXZJ.js} +1 -1
  126. package/dist/interface/assets/useUpdateChannel-WznJBL9L.js +1 -0
  127. package/dist/interface/assets/{useUserOptions-GzbPgMnC.js → useUserOptions-DffxmIf7.js} +1 -1
  128. package/dist/interface/assets/{users.schema-DKf9LQAY.js → users.schema-BcwArBbH.js} +1 -1
  129. package/dist/interface/assets/{vendor-cameraui-DhctzD3V.js → vendor-cameraui-zHth8Pa5.js} +2 -2
  130. package/dist/interface/assets/{vendor-chart-BjXPY6za.js → vendor-chart-CTk1N5fJ.js} +1 -1
  131. package/dist/interface/assets/{vendor-core-DnC_SdtD.js → vendor-core-_UeC1YMQ.js} +1 -1
  132. package/dist/interface/assets/{vendor-primevue-OV61z06m.js → vendor-primevue-BXMgwPEu.js} +1 -1
  133. package/dist/interface/assets/{view-grid-Y-11W6nc.js → view-grid-CX0RwdlE.js} +1 -1
  134. package/dist/interface/index.html +45 -44
  135. package/dist/interface/sw.js +1 -1
  136. package/dist/server/package.json +26 -16
  137. package/dist/server/requirements.txt +3 -2
  138. package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/signal_handler.py +17 -9
  139. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +10 -0
  140. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/event_emitter.py +45 -0
  141. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/storage/__init__.py +47 -12
  142. package/dist/server/src/api/controllers/plugins.controller.js +11 -3
  143. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  144. package/dist/server/src/api/schemas/cameras.schema.d.ts +27 -0
  145. package/dist/server/src/api/schemas/cameras.schema.js +6 -0
  146. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  147. package/dist/server/src/api/schemas/config.schema.d.ts +2 -0
  148. package/dist/server/src/api/schemas/config.schema.js +1 -0
  149. package/dist/server/src/api/schemas/config.schema.js.map +1 -1
  150. package/dist/server/src/api/services/plugins.service.js +1 -1
  151. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  152. package/dist/server/src/api/types/index.d.ts +1 -1
  153. package/dist/server/src/api.d.ts +1 -0
  154. package/dist/server/src/api.js +11 -3
  155. package/dist/server/src/api.js.map +1 -1
  156. package/dist/server/src/camera/decoder/ptz-autotracker.js +51 -78
  157. package/dist/server/src/camera/decoder/ptz-autotracker.js.map +1 -1
  158. package/dist/server/src/go2rtc/api/routes/streams.js +5 -6
  159. package/dist/server/src/go2rtc/api/routes/streams.js.map +1 -1
  160. package/dist/server/src/go2rtc/index.js +1 -0
  161. package/dist/server/src/go2rtc/index.js.map +1 -1
  162. package/dist/server/src/go2rtc/types.d.ts +3 -0
  163. package/dist/server/src/go2rtc/types.js.map +1 -1
  164. package/dist/server/src/main.js +1 -1
  165. package/dist/server/src/main.js.map +1 -1
  166. package/dist/server/src/manager/deviceManager.js +4 -1
  167. package/dist/server/src/manager/deviceManager.js.map +1 -1
  168. package/dist/server/src/manager/discoveryManager.d.ts +3 -2
  169. package/dist/server/src/manager/discoveryManager.js +58 -29
  170. package/dist/server/src/manager/discoveryManager.js.map +1 -1
  171. package/dist/server/src/plugins/config-store.d.ts +1 -1
  172. package/dist/server/src/plugins/config-store.js +17 -10
  173. package/dist/server/src/plugins/config-store.js.map +1 -1
  174. package/dist/server/src/plugins/index.d.ts +1 -0
  175. package/dist/server/src/plugins/index.js +38 -2
  176. package/dist/server/src/plugins/index.js.map +1 -1
  177. package/dist/server/src/plugins/runtime/base.js +10 -5
  178. package/dist/server/src/plugins/runtime/base.js.map +1 -1
  179. package/dist/server/src/plugins/runtime/go/index.js +1 -0
  180. package/dist/server/src/plugins/runtime/go/index.js.map +1 -1
  181. package/dist/server/src/plugins/runtime/node/child.d.ts +1 -0
  182. package/dist/server/src/plugins/runtime/node/child.js +62 -19
  183. package/dist/server/src/plugins/runtime/node/child.js.map +1 -1
  184. package/dist/server/src/plugins/runtime/node/configDb.d.ts +8 -0
  185. package/dist/server/src/plugins/runtime/node/configDb.js +15 -0
  186. package/dist/server/src/plugins/runtime/node/configDb.js.map +1 -1
  187. package/dist/server/src/plugins/runtime/node/pluginApi.d.ts +4 -0
  188. package/dist/server/src/plugins/runtime/node/pluginApi.js +13 -5
  189. package/dist/server/src/plugins/runtime/node/pluginApi.js.map +1 -1
  190. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.d.ts +1 -2
  191. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +2 -8
  192. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
  193. package/dist/server/src/plugins/runtime/node/proxy/coreManager.d.ts +3 -2
  194. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +9 -13
  195. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
  196. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.d.ts +3 -2
  197. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js +14 -12
  198. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js.map +1 -1
  199. package/dist/server/src/plugins/runtime/node/proxy/fileServe.js +4 -9
  200. package/dist/server/src/plugins/runtime/node/proxy/fileServe.js.map +1 -1
  201. package/dist/server/src/plugins/runtime/node/proxy/notificationManager.js +3 -0
  202. package/dist/server/src/plugins/runtime/node/proxy/notificationManager.js.map +1 -1
  203. package/dist/server/src/plugins/runtime/node/storage.d.ts +5 -2
  204. package/dist/server/src/plugins/runtime/node/storage.js +92 -67
  205. package/dist/server/src/plugins/runtime/node/storage.js.map +1 -1
  206. package/dist/server/src/plugins/runtime/node/storageController.d.ts +2 -0
  207. package/dist/server/src/plugins/runtime/node/storageController.js +12 -4
  208. package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -1
  209. package/dist/server/src/plugins/runtime/python/child.py +47 -38
  210. package/dist/server/src/plugins/runtime/python/config_db.py +28 -17
  211. package/dist/server/src/plugins/runtime/python/index.js +1 -0
  212. package/dist/server/src/plugins/runtime/python/index.js.map +1 -1
  213. package/dist/server/src/plugins/runtime/python/plugin_api.py +5 -5
  214. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +14 -13
  215. package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +11 -14
  216. package/dist/server/src/plugins/runtime/python/proxy/device_manager.py +23 -18
  217. package/dist/server/src/plugins/runtime/python/remote_urls.py +3 -7
  218. package/dist/server/src/plugins/runtime/python/storage.py +157 -126
  219. package/dist/server/src/plugins/runtime/python/storage_controller.py +28 -13
  220. package/dist/server/src/plugins/runtime/python/store.py +513 -0
  221. package/dist/server/src/plugins/runtime/python/store_migrate.py +59 -0
  222. package/dist/server/src/plugins/store/coalescingWriter.d.ts +7 -0
  223. package/dist/server/src/plugins/store/coalescingWriter.js +52 -0
  224. package/dist/server/src/plugins/store/coalescingWriter.js.map +1 -0
  225. package/dist/server/src/plugins/store/envelope.d.ts +5 -0
  226. package/dist/server/src/plugins/store/envelope.js +40 -0
  227. package/dist/server/src/plugins/store/envelope.js.map +1 -0
  228. package/dist/server/src/plugins/store/layout.d.ts +2 -0
  229. package/dist/server/src/plugins/store/layout.js +60 -0
  230. package/dist/server/src/plugins/store/layout.js.map +1 -0
  231. package/dist/server/src/plugins/store/location.d.ts +14 -0
  232. package/dist/server/src/plugins/store/location.js +55 -0
  233. package/dist/server/src/plugins/store/location.js.map +1 -0
  234. package/dist/server/src/plugins/store/migrate.d.ts +1 -0
  235. package/dist/server/src/plugins/store/migrate.js +22 -0
  236. package/dist/server/src/plugins/store/migrate.js.map +1 -0
  237. package/dist/server/src/plugins/store/pluginStoreFile.d.ts +14 -0
  238. package/dist/server/src/plugins/store/pluginStoreFile.js +58 -0
  239. package/dist/server/src/plugins/store/pluginStoreFile.js.map +1 -0
  240. package/dist/server/src/plugins/store/storeFile.d.ts +5 -0
  241. package/dist/server/src/plugins/store/storeFile.js +112 -0
  242. package/dist/server/src/plugins/store/storeFile.js.map +1 -0
  243. package/dist/server/src/plugins/store/validate.d.ts +1 -0
  244. package/dist/server/src/plugins/store/validate.js +49 -0
  245. package/dist/server/src/plugins/store/validate.js.map +1 -0
  246. package/dist/server/src/plugins/worker.js +9 -8
  247. package/dist/server/src/plugins/worker.js.map +1 -1
  248. package/dist/server/src/remote/services/cloudflare-managed.js +2 -2
  249. package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -1
  250. package/dist/server/src/remote/services/cloudflare.js +1 -0
  251. package/dist/server/src/remote/services/cloudflare.js.map +1 -1
  252. package/dist/server/src/remote/tunnel/client.js +1 -0
  253. package/dist/server/src/remote/tunnel/client.js.map +1 -1
  254. package/dist/server/src/rpc/server.js +12 -5
  255. package/dist/server/src/rpc/server.js.map +1 -1
  256. package/dist/server/src/services/config/defaults.js +1 -0
  257. package/dist/server/src/services/config/defaults.js.map +1 -1
  258. package/dist/server/src/services/config/types.d.ts +1 -0
  259. package/dist/server/src/utils/npm/index.d.ts +1 -1
  260. package/dist/server/src/utils/npm/index.js +7 -4
  261. package/dist/server/src/utils/npm/index.js.map +1 -1
  262. package/dist/server/src/workers/capabilities/plugin-host.js +1 -1
  263. package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -1
  264. package/package.json +26 -16
  265. package/dist/interface/assets/About-CMxNy7no.js +0 -1
  266. package/dist/interface/assets/Config-CcQUpeLe.js +0 -2
  267. package/dist/interface/assets/CuiBottomSheet-CFGurpP0.js +0 -1
  268. package/dist/interface/assets/PluginDetail-COURDgOk.js +0 -2
  269. package/dist/interface/assets/PluginSearch-Czyt4or9.js +0 -2
  270. package/dist/interface/assets/PluginSearch-SpzDNe08.js +0 -1
  271. package/dist/interface/assets/Plugins-C0YqC8-O.js +0 -1
  272. package/dist/interface/assets/Recordings-CdJm5exh.js +0 -1
  273. package/dist/interface/assets/SettingsAccount-BZaLHEXI.js +0 -1
  274. package/dist/interface/assets/SettingsAppearance-DX4C4Xxw.js +0 -1
  275. package/dist/interface/assets/SettingsRecordings-DyMo9O0s.js +0 -1
  276. package/dist/interface/assets/SettingsSystem-CrrqIGPM.js +0 -2
  277. package/dist/interface/assets/VersionsHandler-C6NlIR5o.js +0 -7
  278. package/dist/interface/assets/api-BOvysXhM.js +0 -2
  279. package/dist/interface/assets/api-D7tGlI-z.css +0 -2
  280. package/dist/interface/assets/cloudHandoff-BFhzjzv4.js +0 -1
  281. package/dist/interface/assets/main-DL335xeQ.js +0 -3
  282. package/dist/interface/assets/router-UepCX3sI.js +0 -2
  283. package/dist/interface/assets/ui-CH55JEcY.js +0 -1
  284. package/dist/interface/assets/useCuiDialog-DSyAPuxQ.js +0 -2
  285. /package/dist/interface/assets/{logo-512-DLKVOU2S.png → error-256-DLKVOU2S.png} +0 -0
@@ -0,0 +1,60 @@
1
+ const CANONICAL_SECTIONS = new Set(['plugin', 'cameras', 'sensors']);
2
+ const LEGACY_SENSOR_MARKER = ':sensor:';
3
+ export function isCanonicalLayout(payload) {
4
+ return Object.keys(payload).every((key) => CANONICAL_SECTIONS.has(key));
5
+ }
6
+ function isGoLegacyLayout(payload, pluginId) {
7
+ const keys = Object.keys(payload);
8
+ return keys.length > 0 && keys.every((key) => key.startsWith(`${pluginId}.`));
9
+ }
10
+ export function remapLegacyLayout(payload, pluginId) {
11
+ if (isCanonicalLayout(payload) || isGoLegacyLayout(payload, pluginId)) {
12
+ return payload;
13
+ }
14
+ const canonical = {};
15
+ for (const section of CANONICAL_SECTIONS) {
16
+ if (payload[section] !== undefined) {
17
+ canonical[section] = payload[section];
18
+ }
19
+ }
20
+ for (const [key, values] of Object.entries(payload)) {
21
+ if (CANONICAL_SECTIONS.has(key)) {
22
+ continue;
23
+ }
24
+ if (key === 'storage') {
25
+ if (canonical.plugin !== undefined) {
26
+ continue;
27
+ }
28
+ canonical.plugin = values;
29
+ continue;
30
+ }
31
+ const sensorIdx = key.indexOf(LEGACY_SENSOR_MARKER);
32
+ if (sensorIdx !== -1) {
33
+ // <camId>:sensor:<type>:<pluginId>:<name> — type and pluginId contain no
34
+ // colons; the name keeps everything after them verbatim.
35
+ const cameraId = key.slice(0, sensorIdx);
36
+ const rest = key.slice(sensorIdx + LEGACY_SENSOR_MARKER.length);
37
+ const typeEnd = rest.indexOf(':');
38
+ const pluginEnd = rest.indexOf(':', typeEnd + 1);
39
+ if (typeEnd !== -1 && pluginEnd !== -1) {
40
+ const sensorType = rest.slice(0, typeEnd);
41
+ const sensorName = rest.slice(pluginEnd + 1);
42
+ if (canonical.sensors?.[cameraId]?.[sensorType]?.[sensorName] !== undefined) {
43
+ continue;
44
+ }
45
+ canonical.sensors ??= {};
46
+ canonical.sensors[cameraId] ??= {};
47
+ canonical.sensors[cameraId][sensorType] ??= {};
48
+ canonical.sensors[cameraId][sensorType][sensorName] = values;
49
+ continue;
50
+ }
51
+ }
52
+ if (canonical.cameras?.[key] !== undefined) {
53
+ continue;
54
+ }
55
+ canonical.cameras ??= {};
56
+ canonical.cameras[key] = values;
57
+ }
58
+ return canonical;
59
+ }
60
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../../src/plugins/store/layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type StoreLocation = {
2
+ kind: 'plugin';
3
+ } | {
4
+ kind: 'camera';
5
+ cameraId: string;
6
+ } | {
7
+ kind: 'sensor';
8
+ cameraId: string;
9
+ sensorType: string;
10
+ sensorName: string;
11
+ };
12
+ export declare function readLocation(config: Record<string, any>, location: StoreLocation): Record<string, any> | undefined;
13
+ export declare function writeLocation(config: Record<string, any>, location: StoreLocation, values: Record<string, any>): void;
14
+ export declare function deleteLocation(config: Record<string, any>, location: StoreLocation): void;
@@ -0,0 +1,55 @@
1
+ export function readLocation(config, location) {
2
+ switch (location.kind) {
3
+ case 'plugin':
4
+ return config.plugin;
5
+ case 'camera':
6
+ return config.cameras?.[location.cameraId];
7
+ case 'sensor':
8
+ return config.sensors?.[location.cameraId]?.[location.sensorType]?.[location.sensorName];
9
+ }
10
+ }
11
+ export function writeLocation(config, location, values) {
12
+ switch (location.kind) {
13
+ case 'plugin':
14
+ config.plugin = values;
15
+ return;
16
+ case 'camera':
17
+ config.cameras ??= {};
18
+ config.cameras[location.cameraId] = values;
19
+ return;
20
+ case 'sensor':
21
+ config.sensors ??= {};
22
+ config.sensors[location.cameraId] ??= {};
23
+ config.sensors[location.cameraId][location.sensorType] ??= {};
24
+ config.sensors[location.cameraId][location.sensorType][location.sensorName] = values;
25
+ return;
26
+ }
27
+ }
28
+ export function deleteLocation(config, location) {
29
+ switch (location.kind) {
30
+ case 'plugin':
31
+ delete config.plugin;
32
+ return;
33
+ case 'camera':
34
+ delete config.cameras?.[location.cameraId];
35
+ pruneIfEmpty(config, 'cameras');
36
+ return;
37
+ case 'sensor': {
38
+ const byType = config.sensors?.[location.cameraId]?.[location.sensorType];
39
+ if (byType) {
40
+ delete byType[location.sensorName];
41
+ pruneIfEmpty(config.sensors[location.cameraId], location.sensorType);
42
+ pruneIfEmpty(config.sensors, location.cameraId);
43
+ pruneIfEmpty(config, 'sensors');
44
+ }
45
+ return;
46
+ }
47
+ }
48
+ }
49
+ function pruneIfEmpty(parent, key) {
50
+ const child = parent[key];
51
+ if (child && typeof child === 'object' && Object.keys(child).length === 0) {
52
+ delete parent[key];
53
+ }
54
+ }
55
+ //# sourceMappingURL=location.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"location.js","sourceRoot":"","sources":["../../../../../src/plugins/store/location.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,MAA2B,EAAE,QAAuB;IAC/E,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7C,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAA2B,EAAE,QAAuB,EAAE,MAA2B;IAC7G,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACvB,OAAO;QACT,KAAK,QAAQ;YACX,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;YAC3C,OAAO;QACT,KAAK,QAAQ;YACX,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC9D,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;YACrF,OAAO;IACX,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAA2B,EAAE,QAAuB;IACjF,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,MAAM,CAAC;YACrB,OAAO;QACT,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC3C,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAChC,OAAO;QACT,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC1E,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACnC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACrE,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAChD,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAClC,CAAC;YACD,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAA2B,EAAE,GAAW;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function migrateLmdbToStoreFile(volumeDir: string, storePath: string): Promise<boolean>;
@@ -0,0 +1,22 @@
1
+ import { open } from 'lmdb';
2
+ import { existsSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { writeStoreFile } from './storeFile.js';
5
+ export async function migrateLmdbToStoreFile(volumeDir, storePath) {
6
+ if (existsSync(storePath) || !existsSync(join(volumeDir, 'data.mdb'))) {
7
+ return false;
8
+ }
9
+ const db = open(volumeDir, { name: 'plugins' });
10
+ try {
11
+ const config = db.get('config');
12
+ if (!config || Object.keys(config).length === 0) {
13
+ return false;
14
+ }
15
+ await writeStoreFile(storePath, config);
16
+ return true;
17
+ }
18
+ finally {
19
+ await db.close();
20
+ }
21
+ }
22
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../../../src/plugins/store/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,SAAiB,EAAE,SAAiB;IAC/E,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAoC,CAAC;QACnE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare const STORE_FILE_NAME = "store.cui";
2
+ export declare class PluginStoreFile {
3
+ private readonly volumeDir;
4
+ private readonly pluginId;
5
+ private readonly path;
6
+ private readonly writer;
7
+ private payload;
8
+ private closed;
9
+ constructor(volumeDir: string, pluginId: string);
10
+ open(): Promise<void>;
11
+ get(): Record<string, any>;
12
+ put(payload: Record<string, any>): Promise<void>;
13
+ close(): Promise<void>;
14
+ }
@@ -0,0 +1,58 @@
1
+ import { mkdir } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { CoalescingWriter } from './coalescingWriter.js';
4
+ import { remapLegacyLayout } from './layout.js';
5
+ import { migrateLmdbToStoreFile } from './migrate.js';
6
+ import { backupStoreFile, readStoreFile, removeOrphanedTmpFiles, writeStoreFile } from './storeFile.js';
7
+ export const STORE_FILE_NAME = 'store.cui';
8
+ export class PluginStoreFile {
9
+ volumeDir;
10
+ pluginId;
11
+ path;
12
+ writer;
13
+ payload = {};
14
+ closed = true;
15
+ constructor(volumeDir, pluginId) {
16
+ this.volumeDir = volumeDir;
17
+ this.pluginId = pluginId;
18
+ this.path = join(volumeDir, STORE_FILE_NAME);
19
+ this.writer = new CoalescingWriter((snapshot) => writeStoreFile(this.path, snapshot));
20
+ }
21
+ async open() {
22
+ await mkdir(this.volumeDir, { recursive: true });
23
+ await removeOrphanedTmpFiles(this.path);
24
+ let payload = await readStoreFile(this.path);
25
+ if (payload === undefined) {
26
+ const migrated = await migrateLmdbToStoreFile(this.volumeDir, this.path);
27
+ payload = migrated ? await readStoreFile(this.path) : undefined;
28
+ if (payload === undefined) {
29
+ payload = {};
30
+ await writeStoreFile(this.path, payload);
31
+ }
32
+ }
33
+ const remapped = remapLegacyLayout(payload, this.pluginId);
34
+ if (remapped !== payload) {
35
+ await writeStoreFile(this.path, remapped);
36
+ }
37
+ this.payload = remapped;
38
+ await backupStoreFile(this.path);
39
+ this.closed = false;
40
+ }
41
+ get() {
42
+ return this.payload;
43
+ }
44
+ async put(payload) {
45
+ if (this.closed) {
46
+ // A silently "successful" no-op here would lose the write during
47
+ // shutdown windows. Fail loudly instead.
48
+ throw new Error(`store: put on closed store ${this.path}`);
49
+ }
50
+ this.payload = payload;
51
+ await this.writer.write(payload);
52
+ }
53
+ async close() {
54
+ this.closed = true;
55
+ await this.writer.idle();
56
+ }
57
+ }
58
+ //# sourceMappingURL=pluginStoreFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginStoreFile.js","sourceRoot":"","sources":["../../../../../src/plugins/store/pluginStoreFile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Logger } from '@camera.ui/common';
2
+ export declare function writeStoreFile(path: string, payload: Record<string, any>): Promise<void>;
3
+ export declare function readStoreFile(path: string): Promise<Record<string, any> | undefined>;
4
+ export declare function backupStoreFile(path: string, log?: Logger): Promise<void>;
5
+ export declare function removeOrphanedTmpFiles(path: string): Promise<void>;
@@ -0,0 +1,112 @@
1
+ import { copyFile, open, readFile, readdir, rename, unlink } from 'node:fs/promises';
2
+ import { basename, dirname, join } from 'node:path';
3
+ import { setTimeout as delay } from 'node:timers/promises';
4
+ import { StoreCorruptError, decodeEnvelope, encodeEnvelope } from './envelope.js';
5
+ // Windows AV scanners / the search indexer transiently hold the rename target
6
+ // open; EPERM/EACCES there is retryable within a small budget (~0.5s total).
7
+ const RENAME_RETRY_DELAYS_MS = [10, 25, 60, 150, 300];
8
+ async function renameWithRetry(tmpPath, path) {
9
+ for (let attempt = 0;; attempt++) {
10
+ try {
11
+ await rename(tmpPath, path);
12
+ return;
13
+ }
14
+ catch (error) {
15
+ const code = error.code;
16
+ const retryable = process.platform === 'win32' && (code === 'EPERM' || code === 'EACCES');
17
+ if (!retryable || attempt >= RENAME_RETRY_DELAYS_MS.length) {
18
+ throw error;
19
+ }
20
+ await delay(RENAME_RETRY_DELAYS_MS[attempt]);
21
+ }
22
+ }
23
+ }
24
+ export async function writeStoreFile(path, payload) {
25
+ const buf = encodeEnvelope(payload);
26
+ const tmpPath = `${path}.tmp-${process.pid}`;
27
+ try {
28
+ const handle = await open(tmpPath, 'w');
29
+ try {
30
+ await handle.writeFile(buf);
31
+ await handle.sync();
32
+ }
33
+ finally {
34
+ await handle.close();
35
+ }
36
+ await renameWithRetry(tmpPath, path);
37
+ }
38
+ catch (error) {
39
+ await unlink(tmpPath).catch(() => { });
40
+ throw error;
41
+ }
42
+ }
43
+ export async function readStoreFile(path) {
44
+ let buf;
45
+ try {
46
+ buf = await readFile(path);
47
+ }
48
+ catch (error) {
49
+ if (error.code === 'ENOENT') {
50
+ return undefined;
51
+ }
52
+ throw error;
53
+ }
54
+ try {
55
+ const payload = decodeEnvelope(buf);
56
+ return payload;
57
+ }
58
+ catch (error) {
59
+ if (!(error instanceof StoreCorruptError)) {
60
+ throw error;
61
+ }
62
+ }
63
+ // A corrupt store must never silently become an empty one — that would
64
+ // wipe the plugin's persisted state. Recover from the backup generation or
65
+ // fail the open loudly.
66
+ const bakPath = `${path}.bak`;
67
+ let bakBuf;
68
+ try {
69
+ bakBuf = await readFile(bakPath);
70
+ }
71
+ catch {
72
+ bakBuf = undefined;
73
+ }
74
+ if (bakBuf) {
75
+ const payload = decodeEnvelope(bakBuf);
76
+ await writeStoreFile(path, payload);
77
+ return payload;
78
+ }
79
+ throw new StoreCorruptError(`${path} unreadable and no usable backup`);
80
+ }
81
+ export async function backupStoreFile(path, log) {
82
+ // Copy to a temp sibling first — a crash mid-copy must never leave a
83
+ // truncated .bak, it may be the only recovery generation.
84
+ const tmpPath = `${path}.bak.tmp-${process.pid}`;
85
+ try {
86
+ await copyFile(path, tmpPath);
87
+ await renameWithRetry(tmpPath, `${path}.bak`);
88
+ }
89
+ catch (error) {
90
+ await unlink(tmpPath).catch(() => { });
91
+ if (error.code !== 'ENOENT') {
92
+ log?.warn(`store: backup for ${path} failed: ${error instanceof Error ? error.message : error}`);
93
+ }
94
+ }
95
+ }
96
+ export async function removeOrphanedTmpFiles(path) {
97
+ const dir = dirname(path);
98
+ const prefix = basename(path);
99
+ let names;
100
+ try {
101
+ names = await readdir(dir);
102
+ }
103
+ catch {
104
+ return;
105
+ }
106
+ for (const name of names) {
107
+ if (name.startsWith(prefix) && name.includes('.tmp-')) {
108
+ await unlink(join(dir, name)).catch(() => { });
109
+ }
110
+ }
111
+ }
112
+ //# sourceMappingURL=storeFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storeFile.js","sourceRoot":"","sources":["../../../../../src/plugins/store/storeFile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function validateStoreValue(key: string, value: unknown): void;
@@ -0,0 +1,49 @@
1
+ // Values must round-trip identically through all three runtimes' msgpack
2
+ // codecs — anything outside the shared domain is refused up front.
3
+ // Depth cap: rejects circular references (and absurd nesting) with a clear
4
+ // error instead of a stack overflow.
5
+ const MAX_DEPTH = 64;
6
+ export function validateStoreValue(key, value) {
7
+ walk(value, key, 0);
8
+ }
9
+ function walk(value, path, depth) {
10
+ if (depth > MAX_DEPTH) {
11
+ throw new Error(`store: value at '${path}' exceeds ${MAX_DEPTH} nesting levels — circular reference?`);
12
+ }
13
+ if (value === null || value === undefined) {
14
+ return;
15
+ }
16
+ switch (typeof value) {
17
+ case 'number':
18
+ if (Number.isNaN(value) || !Number.isFinite(value)) {
19
+ throw new Error(`store: value at '${path}' is ${value} — NaN/Infinity are not storable`);
20
+ }
21
+ if (Number.isInteger(value) && !Number.isSafeInteger(value)) {
22
+ throw new Error(`store: value at '${path}' exceeds the float64-safe integer range (±2^53)`);
23
+ }
24
+ return;
25
+ case 'string':
26
+ case 'boolean':
27
+ return;
28
+ case 'bigint':
29
+ throw new Error(`store: value at '${path}' is a BigInt — numbers are float64 by contract`);
30
+ case 'function':
31
+ throw new Error(`store: value at '${path}' is a function`);
32
+ }
33
+ if (ArrayBuffer.isView(value) || value instanceof ArrayBuffer) {
34
+ throw new Error(`store: value at '${path}' is binary — large artifacts belong in files under the plugin storage dir`);
35
+ }
36
+ if (Array.isArray(value)) {
37
+ for (let i = 0; i < value.length; i++) {
38
+ walk(value[i], `${path}[${i}]`, depth + 1);
39
+ }
40
+ return;
41
+ }
42
+ if (Object.getPrototypeOf(value) !== Object.prototype && Object.getPrototypeOf(value) !== null) {
43
+ throw new Error(`store: value at '${path}' is a ${value.constructor?.name ?? 'non-plain'} instance — only plain objects are storable`);
44
+ }
45
+ for (const [key, entry] of Object.entries(value)) {
46
+ walk(entry, `${path}.${key}`, depth + 1);
47
+ }
48
+ }
49
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../../src/plugins/store/validate.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,mEAAmE;AACnE,2EAA2E;AAC3E,qCAAqC;AACrC,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,KAAc;IAC5D,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,IAAI,CAAC,KAAc,EAAE,IAAY,EAAE,KAAa;IACvD,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,aAAa,SAAS,uCAAuC,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,QAAQ,KAAK,kCAAkC,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,kDAAkD,CAAC,CAAC;YAC9F,CAAC;YACD,OAAO;QACT,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAO;QACT,KAAK,QAAQ;YACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,iDAAiD,CAAC,CAAC;QAC7F,KAAK,UAAU;YACb,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,4EAA4E,CAAC,CAAC;IACxH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/F,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,UAAU,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,WAAW,6CAA6C,CAAC,CAAC;IACzI,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { sleep } from '@camera.ui/common/utils';
2
+ import { join } from 'node:path';
2
3
  import { container } from 'tsyringe';
3
4
  import { CamerasService } from '../api/services/cameras.service.js';
4
5
  import { PLUGIN_COMMAND, PLUGIN_STATUS } from '../plugins/types.js';
@@ -7,6 +8,8 @@ import { isShuttingDown } from '../shutdown-state.js';
7
8
  import { describePlatformRequirement } from '../utils/platform.js';
8
9
  import { PluginConfigStore } from './config-store.js';
9
10
  import { RuntimeFactory } from './runtime/index.js';
11
+ import { migrateLmdbToStoreFile } from './store/migrate.js';
12
+ import { STORE_FILE_NAME } from './store/pluginStoreFile.js';
10
13
  const REMOTE_START_TIMEOUT_MS = 5 * 60_000;
11
14
  export class PluginWorker {
12
15
  plugin;
@@ -118,7 +121,8 @@ export class PluginWorker {
118
121
  return;
119
122
  }
120
123
  if (this.plugin.isGo) {
121
- await this.ensureConfigStore();
124
+ const volumeDir = join(this.plugin.storagePath, 'volume');
125
+ await migrateLmdbToStoreFile(volumeDir, join(volumeDir, STORE_FILE_NAME));
122
126
  }
123
127
  this.runtime.once('exit', () => {
124
128
  reject(new Error(`Plugin ${this.plugin.displayName} exited before it was ready`));
@@ -161,12 +165,10 @@ export class PluginWorker {
161
165
  // Fresh channel so a late READY from the (now abandoned) remote child
162
166
  // lands on the old, closed channel and can never trigger a second START.
163
167
  await this.openChannel(resolve, reject);
164
- // Node/Python run their config locally (own LMDB); only Go keeps the
165
- // master-hosted store. Release the store opened for the remote attempt.
166
- if (!this.plugin.isGo) {
167
- await this.configStore?.close();
168
- this.configStore = undefined;
169
- }
168
+ // Local plugins own their store file themselves release the store
169
+ // opened for the remote attempt so the child can take ownership.
170
+ await this.configStore?.close();
171
+ this.configStore = undefined;
170
172
  if (!this.plugin.info.compatible) {
171
173
  this.setStatus(PLUGIN_STATUS.INCOMPATIBLE);
172
174
  await this.channel?.close();
@@ -212,7 +214,6 @@ export class PluginWorker {
212
214
  else {
213
215
  await this.kill();
214
216
  }
215
- // Local Go plugins host a config store too — release the LMDB handle.
216
217
  await this.configStore?.close();
217
218
  this.configStore = undefined;
218
219
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/plugins/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/plugins/worker.ts"],"names":[],"mappings":"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"}
@@ -207,7 +207,7 @@ export class CloudflareManagedService {
207
207
  await writeFile(this.configPath(tunnelId), yaml, { mode: 0o600 });
208
208
  const args = ['tunnel', '--no-autoupdate', '--config', this.configPath(tunnelId), 'run', tunnelId];
209
209
  const env = { ...process.env, TUNNEL_ORIGIN_CERT: this.certPath() };
210
- this.runProcess = spawn(this.cloudflaredBinaryPath(), args, { stdio: ['ignore', 'pipe', 'pipe'], env });
210
+ this.runProcess = spawn(this.cloudflaredBinaryPath(), args, { stdio: ['ignore', 'pipe', 'pipe'], env, windowsHide: true });
211
211
  const pid = this.runProcess.pid;
212
212
  if (pid) {
213
213
  this.configService.addProcess({ pid, startTime: Date.now(), command: this.cloudflaredBinaryPath(), args });
@@ -228,7 +228,7 @@ export class CloudflareManagedService {
228
228
  async runStep(args, timeoutMs, onLine) {
229
229
  return new Promise((resolve, reject) => {
230
230
  const env = { ...process.env, TUNNEL_ORIGIN_CERT: this.certPath() };
231
- const proc = spawn(this.cloudflaredBinaryPath(), args, { stdio: ['ignore', 'pipe', 'pipe'], env });
231
+ const proc = spawn(this.cloudflaredBinaryPath(), args, { stdio: ['ignore', 'pipe', 'pipe'], env, windowsHide: true });
232
232
  this.stepProcess = proc;
233
233
  let output = '';
234
234
  const handleData = (chunk) => {