@camera.ui/server 0.0.49 → 0.0.50-internal.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/interface/assets/@xterm.DYP7pi_n.0.0.50-internal.1.css +32 -0
- package/dist/interface/assets/Adminpanel.BKek2EMH.0.0.50-internal.1.css +1 -0
- package/dist/interface/assets/Cameras.BDWZJqPN.0.0.50-internal.1.css +1 -0
- package/dist/interface/assets/Camview.BFUFMoNX.0.0.50-internal.1.css +1 -0
- package/dist/interface/assets/CuiConsole.DCYyxdVg.0.0.50-internal.1.css +1 -0
- package/dist/interface/assets/CuiPluginCard.yF8V0SZY.0.0.50-internal.1.css +1 -0
- package/dist/interface/assets/CuiTimeline.BkIwlYtw.0.0.50-internal.1.css +1 -0
- package/dist/interface/assets/Plugin.DJElsAn5.0.0.50-internal.1.css +1 -0
- package/dist/interface/assets/Plugins.0h77qnmN.0.0.50-internal.1.css +1 -0
- package/dist/interface/assets/Settings.CkgfRkQr.0.0.50-internal.1.css +1 -0
- package/dist/interface/assets/SettingsAccount.DeFul3eQ.0.0.50-internal.1.css +1 -0
- package/dist/interface/assets/main.Cip9LkS3.0.0.50-internal.1.css +1 -0
- package/dist/interface/assets/worker-base.jEXLGV2h.0.0.50-internal.1.js +1332 -0
- package/dist/interface/assets/worker-json.DgwNIOck.0.0.50-internal.1.js +1626 -0
- package/dist/interface/assets/worker-yaml.B3uUYINB.0.0.50-internal.1.js +5819 -0
- package/dist/interface/fonts/InterVariable.woff2 +0 -0
- package/dist/interface/index.html +48 -38
- package/dist/interface/js/@intlify.BkGPX90O.0.0.50-internal.1.js +15 -0
- package/dist/interface/js/@kurkle.D8fDXNIl.0.0.50-internal.1.js +6 -0
- package/dist/interface/js/@primeuix.BFAY2Bk9.0.0.50-internal.1.js +5722 -0
- package/dist/interface/js/@primevue.CiB2EGly.0.0.50-internal.1.js +57 -0
- package/dist/interface/js/@tanstack.DxMw_rJn.0.0.50-internal.1.js +1 -0
- package/dist/interface/{@vee-validate.DHkwupr6.0.0.49.js → js/@vee-validate.RxZ3hn6V.0.0.50-internal.1.js} +2 -2
- package/dist/interface/js/@vue.B5vqhCp2.0.0.50-internal.1.js +17 -0
- package/dist/interface/js/@vueuse.C-k73ACm.0.0.50-internal.1.js +1 -0
- package/dist/interface/{@xterm.D6R4zI7m.0.0.49.js → js/@xterm.DIUBesyz.0.0.50-internal.1.js} +8 -8
- package/dist/interface/js/Adminpanel.DumNu6GD.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/Camera.BuosoqFl.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/Cameras.A7NJflGG.0.0.50-internal.1.js +482 -0
- package/dist/interface/js/Cammesh.Dv3C0UiR.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/Camview.GgjJp7JR.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/Config.BL3L-BFE.0.0.50-internal.1.js +2 -0
- package/dist/interface/js/Console.CxwRmUVF.0.0.50-internal.1.js +4 -0
- package/dist/interface/js/CuiConsole.D16kkT6R.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/CuiPluginCard.Bkp__d8n.0.0.50-internal.1.js +4 -0
- package/dist/interface/js/CuiTimeline.C9HKvo0G.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/FirstSteps.QuJjtAtF.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/Plugin.BLUUbEej.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/Plugins.DviCIk7w.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/Recordings.Dsp07cHs.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/Settings.Clx4y9gP.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/SettingsAccount.cfY4-PYd.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/SettingsAppearance.CBGZAazb.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/SettingsAppearance.vue_vue_type_script_setup_true_lang.kxAPXcBy.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/SettingsBackup.DOaJA4pp.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/SettingsRecordings.BGcwL6tk.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/SettingsRemote.BVU_w1Jm.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/SettingsSystem.P0vy90vA.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/SettingsUsers.DaP5m7eo.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/VersionsHandler.vue_vue_type_script_setup_true_lang.MmrWYW3K.0.0.50-internal.1.js +4 -0
- package/dist/interface/js/ace-builds.C0aqA_3x.0.0.50-internal.1.js +1090 -0
- package/dist/interface/js/ace.config.C9wgzklI.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/axios.DHr9lByg.0.0.50-internal.1.js +6 -0
- package/dist/interface/js/backup.BeH6lJ5t.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/chart.js.BQHSWV_g.0.0.50-internal.1.js +13 -0
- package/dist/interface/js/close-circle.DDKMxauw.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/dnd-core.dWz9rJqH.0.0.50-internal.1.js +1 -0
- package/dist/interface/{draggabilly.C0hZWkL0.0.0.49.js → js/draggabilly.D-iZIS1n.0.0.50-internal.1.js} +1 -1
- package/dist/interface/js/engine.io-client.BwxOddB_.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/fast-deep-equal.Dz96RC_N.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/highlight.js.CmcM8OM6.0.0.50-internal.1.js +3 -0
- package/dist/interface/js/linkify-it.BgLcBzlw.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/main.6bOgRV7D.0.0.50-internal.1.js +31 -0
- package/dist/interface/{markdown-it.64FJJcTG.0.0.49.js → js/markdown-it.CTgfs-3p.0.0.50-internal.1.js} +1 -1
- package/dist/interface/{nprogress.DkWvUoHh.0.0.49.js → js/nprogress.CMhnq8jS.0.0.50-internal.1.js} +1 -1
- package/dist/interface/js/perfect-debounce.l0sNRNKZ.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/pinia.CuC5ZfNs.0.0.50-internal.1.js +5 -0
- package/dist/interface/js/primelocale.Bga3dOQu.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/primevue.DmwjJ4xV.0.0.50-internal.1.js +142 -0
- package/dist/interface/{qrcode.BixA_YE2.0.0.49.js → js/qrcode.DGZO3j1c.0.0.50-internal.1.js} +1 -1
- package/dist/interface/js/react-dnd-touch-backend.CEGHlD-T.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/refresh-rounded.D0keXzBc.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/rxjs.CiDbFOB0.0.0.50-internal.1.js +3 -0
- package/dist/interface/js/socket.io-client.BPcXPAHG.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/socket.io-parser.DSGzrW_l.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/system.BKlEObmx.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/trash-fill.BDFILs86.0.0.50-internal.1.js +1 -0
- package/dist/interface/{unidragger.C8ueS-PW.0.0.49.js → js/unidragger.DcxsxHCS.0.0.50-internal.1.js} +1 -1
- package/dist/interface/js/uuid.C6aID195.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/vee-validate.BGRg3oQ8.0.0.50-internal.1.js +5 -0
- package/dist/interface/js/vue-chartjs.B9yk2de7.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/vue-i18n.DXDZITpf.0.0.50-internal.1.js +5 -0
- package/dist/interface/js/vue-inline-svg.BDYaTfbi.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/vue-router.CFEDA008.0.0.50-internal.1.js +5 -0
- package/dist/interface/js/vue-zoomable.zqTafMgD.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/vue.l0sNRNKZ.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/vue3-dnd.BxM3dbYs.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/zod.SKKegNRO.0.0.50-internal.1.js +1 -0
- package/dist/interface/js/zoom-out.B6SY9IIj.0.0.50-internal.1.js +1 -0
- package/dist/interface/manifest.webmanifest +1 -1
- package/dist/interface/pwa/favicon-32.ico +0 -0
- package/dist/interface/pwa/favicon-48.ico +0 -0
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +57 -45
- package/dist/server/requirements.txt +12 -11
- package/dist/server/src/__init__.py +0 -0
- package/dist/server/src/_camera_ui_tools/__init__.py +0 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/__init__.py +28 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/camera_utils/utils.py +52 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/__init__.py +0 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/object_path.py +198 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/reactive.py +42 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/signal_handler.py +92 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/subscribed.py +21 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/task.py +39 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/thread.py +10 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/utils.py +91 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/logger_service/__init__.py +0 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/logger_service/ansicolor.py +62 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/logger_service/logger.py +178 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_common/logger_service/test.py +116 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/__init__.py +350 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/__init__.py +0 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/base.py +237 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/client.py +256 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/connection.py +784 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/errors.py +745 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/messaging.py +57 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/rpc.py +227 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/base/rpc_generator.py +584 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/constants.py +96 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/typings.py +218 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/__init__.py +0 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/connection_state.py +86 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/logger.py +30 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/metrics.py +152 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/packer.py +20 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/routing.py +75 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/rpc.py +177 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/subscriptions.py +24 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/tasks.py +39 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/uid.py +37 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc_client/utils/validate.py +119 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_types/__init__.py +1360 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_types/hybrid_observer.py +338 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_types/test.py +196 -0
- package/dist/server/src/api/controllers/auth.controller.d.ts +2 -2
- package/dist/server/src/api/controllers/auth.controller.js +49 -43
- package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
- package/dist/server/src/api/controllers/backup.controller.js +1 -2
- package/dist/server/src/api/controllers/backup.controller.js.map +1 -1
- package/dist/server/src/api/controllers/cameras.controller.d.ts +13 -11
- package/dist/server/src/api/controllers/cameras.controller.js +314 -105
- package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
- package/dist/server/src/api/controllers/plugins.controller.d.ts +8 -8
- package/dist/server/src/api/controllers/plugins.controller.js +208 -244
- package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
- package/dist/server/src/api/controllers/system.controller.d.ts +1 -0
- package/dist/server/src/api/controllers/system.controller.js +22 -8
- package/dist/server/src/api/controllers/system.controller.js.map +1 -1
- package/dist/server/src/api/controllers/users.controller.d.ts +2 -2
- package/dist/server/src/api/controllers/users.controller.js +13 -25
- package/dist/server/src/api/controllers/users.controller.js.map +1 -1
- package/dist/server/src/api/database/checks.js +2 -2
- package/dist/server/src/api/database/checks.js.map +1 -1
- package/dist/server/src/api/database/index.d.ts +4 -7
- package/dist/server/src/api/database/index.js +59 -86
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/database/migration.js +5 -141
- package/dist/server/src/api/database/migration.js.map +1 -1
- package/dist/server/src/api/database/selfcheck.js +5 -5
- package/dist/server/src/api/database/selfcheck.js.map +1 -1
- package/dist/server/src/api/database/types.d.ts +17 -25
- package/dist/server/src/api/go2rtc/api/discover.d.ts +30 -0
- package/dist/server/src/api/go2rtc/api/discover.js +162 -0
- package/dist/server/src/api/go2rtc/api/discover.js.map +1 -0
- package/dist/server/src/api/go2rtc/api/index.d.ts +1 -1
- package/dist/server/src/api/go2rtc/api/index.js +15 -4
- package/dist/server/src/api/go2rtc/api/index.js.map +1 -1
- package/dist/server/src/api/go2rtc/api/streams.d.ts +3 -1
- package/dist/server/src/api/go2rtc/api/streams.js +66 -9
- package/dist/server/src/api/go2rtc/api/streams.js.map +1 -1
- package/dist/server/src/api/go2rtc/index.d.ts +2 -0
- package/dist/server/src/api/go2rtc/index.js +3 -0
- package/dist/server/src/api/go2rtc/index.js.map +1 -1
- package/dist/server/src/api/go2rtc/queue.js +3 -3
- package/dist/server/src/api/go2rtc/queue.js.map +1 -1
- package/dist/server/src/api/go2rtc/types.d.ts +66 -11
- package/dist/server/src/api/index.d.ts +4 -0
- package/dist/server/src/api/index.js +45 -9
- package/dist/server/src/api/index.js.map +1 -1
- package/dist/server/src/api/middlewares/authPermission.middleware.d.ts +1 -0
- package/dist/server/src/api/middlewares/authPermission.middleware.js +11 -2
- package/dist/server/src/api/middlewares/authPermission.middleware.js.map +1 -1
- package/dist/server/src/api/middlewares/authValidation.middleware.js +20 -12
- package/dist/server/src/api/middlewares/authValidation.middleware.js.map +1 -1
- package/dist/server/src/api/middlewares/pagination.middleware.js +45 -53
- package/dist/server/src/api/middlewares/pagination.middleware.js.map +1 -1
- package/dist/server/src/api/plugins/proxy.plugin.d.ts +14 -0
- package/dist/server/src/api/plugins/proxy.plugin.js +200 -0
- package/dist/server/src/api/plugins/proxy.plugin.js.map +1 -0
- package/dist/server/src/api/routes/cameras.routes.js +56 -30
- package/dist/server/src/api/routes/cameras.routes.js.map +1 -1
- package/dist/server/src/api/routes/plugins.routes.js +65 -63
- package/dist/server/src/api/routes/plugins.routes.js.map +1 -1
- package/dist/server/src/api/routes/system.routes.js +7 -1
- package/dist/server/src/api/routes/system.routes.js.map +1 -1
- package/dist/server/src/api/routes/users.routes.js +8 -8
- package/dist/server/src/api/routes/users.routes.js.map +1 -1
- package/dist/server/src/api/schemas/backup.schema.d.ts +3 -3
- package/dist/server/src/api/schemas/backup.schema.js +1 -1
- package/dist/server/src/api/schemas/backup.schema.js.map +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +1413 -529
- package/dist/server/src/api/schemas/cameras.schema.js +228 -182
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/schemas/config.schema.d.ts +29 -41
- package/dist/server/src/api/schemas/config.schema.js +10 -21
- package/dist/server/src/api/schemas/config.schema.js.map +1 -1
- package/dist/server/src/api/schemas/go2rtc.schema.d.ts +194 -162
- package/dist/server/src/api/schemas/go2rtc.schema.js +33 -58
- package/dist/server/src/api/schemas/go2rtc.schema.js.map +1 -1
- package/dist/server/src/api/schemas/plugins.schema.d.ts +17 -17
- package/dist/server/src/api/schemas/plugins.schema.js +1 -1
- package/dist/server/src/api/schemas/plugins.schema.js.map +1 -1
- package/dist/server/src/api/schemas/storage.schema.d.ts +22 -0
- package/dist/server/src/api/schemas/storage.schema.js +5 -0
- package/dist/server/src/api/schemas/storage.schema.js.map +1 -0
- package/dist/server/src/api/schemas/system.schema.d.ts +171 -3
- package/dist/server/src/api/schemas/system.schema.js +30 -3
- package/dist/server/src/api/schemas/system.schema.js.map +1 -1
- package/dist/server/src/api/schemas/users.schema.d.ts +98 -254
- package/dist/server/src/api/schemas/users.schema.js +6 -6
- package/dist/server/src/api/schemas/users.schema.js.map +1 -1
- package/dist/server/src/api/services/auth.service.d.ts +5 -5
- package/dist/server/src/api/services/auth.service.js +26 -35
- package/dist/server/src/api/services/auth.service.js.map +1 -1
- package/dist/server/src/api/services/cameras.service.d.ts +11 -16
- package/dist/server/src/api/services/cameras.service.js +143 -310
- package/dist/server/src/api/services/cameras.service.js.map +1 -1
- package/dist/server/src/api/services/plugins.service.d.ts +3 -1
- package/dist/server/src/api/services/plugins.service.js +48 -50
- package/dist/server/src/api/services/plugins.service.js.map +1 -1
- package/dist/server/src/api/services/users.service.d.ts +1 -0
- package/dist/server/src/api/services/users.service.js +20 -14
- package/dist/server/src/api/services/users.service.js.map +1 -1
- package/dist/server/src/api/types/index.d.ts +57 -46
- package/dist/server/src/api/types/index.js +0 -4
- package/dist/server/src/api/types/index.js.map +1 -1
- package/dist/server/src/api/utils/cert.d.ts +5 -1
- package/dist/server/src/api/utils/cert.js +24 -26
- package/dist/server/src/api/utils/cert.js.map +1 -1
- package/dist/server/src/api/utils/constants.d.ts +4 -2
- package/dist/server/src/api/utils/constants.js +4 -2
- package/dist/server/src/api/utils/constants.js.map +1 -1
- package/dist/server/src/api/utils/fetch.d.ts +1 -1
- package/dist/server/src/api/utils/fetch.js +2 -2
- package/dist/server/src/api/utils/fetch.js.map +1 -1
- package/dist/server/src/api/websocket/index.d.ts +1 -0
- package/dist/server/src/api/websocket/index.js +14 -9
- package/dist/server/src/api/websocket/index.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/logs.d.ts +10 -2
- package/dist/server/src/api/websocket/nsp/logs.js +75 -27
- package/dist/server/src/api/websocket/nsp/logs.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/metrics.d.ts +20 -12
- package/dist/server/src/api/websocket/nsp/metrics.js +188 -117
- package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/plugins.d.ts +1 -1
- package/dist/server/src/api/websocket/nsp/plugins.js +3 -5
- package/dist/server/src/api/websocket/nsp/plugins.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/server.js +6 -0
- package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
- package/dist/server/src/api/websocket/types.d.ts +4 -2
- package/dist/server/src/api.d.ts +3 -4
- package/dist/server/src/api.js +13 -13
- package/dist/server/src/api.js.map +1 -1
- package/dist/server/src/camera/classes.d.ts +2 -0
- package/dist/server/src/camera/classes.js +24 -0
- package/dist/server/src/camera/classes.js.map +1 -0
- package/dist/server/src/camera/controller.d.ts +30 -18
- package/dist/server/src/camera/controller.js +236 -202
- package/dist/server/src/camera/controller.js.map +1 -1
- package/dist/server/src/camera/device.d.ts +34 -0
- package/dist/server/src/camera/device.js +327 -0
- package/dist/server/src/camera/device.js.map +1 -0
- package/dist/server/src/camera/frameWorker.d.ts +32 -31
- package/dist/server/src/camera/frameWorker.js +257 -247
- package/dist/server/src/camera/frameWorker.js.map +1 -1
- package/dist/server/src/camera/index.d.ts +92 -0
- package/dist/server/src/camera/index.js +531 -0
- package/dist/server/src/camera/index.js.map +1 -0
- package/dist/server/src/camera/interfaces.d.ts +17 -0
- package/dist/server/src/camera/interfaces.js +99 -0
- package/dist/server/src/camera/interfaces.js.map +1 -0
- package/dist/server/src/camera/iou.d.ts +2 -0
- package/dist/server/src/camera/iou.js +123 -0
- package/dist/server/src/camera/iou.js.map +1 -0
- package/dist/server/src/camera/polygon.d.ts +4 -0
- package/dist/server/src/camera/polygon.js +192 -0
- package/dist/server/src/camera/polygon.js.map +1 -0
- package/dist/server/src/camera/python/__init__.py +0 -0
- package/dist/server/src/camera/python/classes.py +41 -0
- package/dist/server/src/camera/python/interfaces.py +130 -0
- package/dist/server/src/camera/python/iou.py +158 -0
- package/dist/server/src/camera/python/polygon.py +230 -0
- package/dist/server/src/camera/python/typings.py +50 -0
- package/dist/server/src/camera/python/video_frame.py +143 -0
- package/dist/server/src/camera/session.d.ts +37 -0
- package/dist/server/src/camera/session.js +160 -0
- package/dist/server/src/camera/session.js.map +1 -0
- package/dist/server/src/camera/streaming/fmp4-session.d.ts +17 -0
- package/dist/server/src/camera/streaming/fmp4-session.js +308 -0
- package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -0
- package/dist/server/src/camera/streaming/peer-connection.d.ts +26 -0
- package/dist/server/src/camera/streaming/peer-connection.js +213 -0
- package/dist/server/src/camera/streaming/peer-connection.js.map +1 -0
- package/dist/server/src/camera/streaming/rtsp-session.d.ts +19 -0
- package/dist/server/src/camera/streaming/rtsp-session.js +253 -0
- package/dist/server/src/camera/streaming/rtsp-session.js.map +1 -0
- package/dist/server/src/camera/streaming/webrtc-connection.d.ts +44 -0
- package/dist/server/src/camera/streaming/webrtc-connection.js +177 -0
- package/dist/server/src/camera/streaming/webrtc-connection.js.map +1 -0
- package/dist/server/src/camera/streaming/werift-session.d.ts +19 -0
- package/dist/server/src/camera/streaming/werift-session.js +246 -0
- package/dist/server/src/camera/streaming/werift-session.js.map +1 -0
- package/dist/server/src/camera/types.d.ts +16 -10
- package/dist/server/src/camera/utils.d.ts +9 -0
- package/dist/server/src/camera/utils.js +416 -0
- package/dist/server/src/camera/utils.js.map +1 -0
- package/dist/server/src/camera/videoFrame.d.ts +18 -0
- package/dist/server/src/camera/videoFrame.js +88 -0
- package/dist/server/src/camera/videoFrame.js.map +1 -0
- package/dist/server/src/cloud/index.d.ts +12 -0
- package/dist/server/src/cloud/index.js +49 -0
- package/dist/server/src/cloud/index.js.map +1 -0
- package/dist/server/src/cloud/remote/cloudflare.d.ts +7 -0
- package/dist/server/src/cloud/remote/cloudflare.js +12 -0
- package/dist/server/src/cloud/remote/cloudflare.js.map +1 -0
- package/dist/server/src/cloud/remote/upnp.d.ts +7 -0
- package/dist/server/src/cloud/remote/upnp.js +12 -0
- package/dist/server/src/cloud/remote/upnp.js.map +1 -0
- package/dist/server/src/cloud/remote/utils.d.ts +3 -0
- package/dist/server/src/cloud/remote/utils.js +20 -0
- package/dist/server/src/cloud/remote/utils.js.map +1 -0
- package/dist/server/src/cloud/types.d.ts +15 -0
- package/dist/server/src/cloud/types.js +11 -0
- package/dist/server/src/cloud/types.js.map +1 -0
- package/dist/server/src/decoder/child.d.ts +1 -0
- package/dist/server/src/decoder/child.js +749 -0
- package/dist/server/src/decoder/child.js.map +1 -0
- package/dist/server/src/decoder/imageUtils.d.ts +22 -0
- package/dist/server/src/decoder/imageUtils.js +196 -0
- package/dist/server/src/decoder/imageUtils.js.map +1 -0
- package/dist/server/src/decoder/manager.d.ts +19 -0
- package/dist/server/src/decoder/manager.js +208 -0
- package/dist/server/src/decoder/manager.js.map +1 -0
- package/dist/server/src/decoder/python/__init__.py +0 -0
- package/dist/server/src/decoder/python/child.py +903 -0
- package/dist/server/src/decoder/python/image_utils.py +196 -0
- package/dist/server/src/decoder/python/pool.py +45 -0
- package/dist/server/src/decoder/python/typings.py +57 -0
- package/dist/server/src/decoder/python/utils.py +70 -0
- package/dist/server/src/decoder/types.d.ts +23 -0
- package/dist/server/src/decoder/types.js.map +1 -0
- package/dist/server/src/decoder/utils.d.ts +13 -0
- package/dist/server/src/decoder/utils.js +45 -0
- package/dist/server/src/decoder/utils.js.map +1 -0
- package/dist/server/src/decoder/wasm/build/decoder.d.ts +43 -0
- package/dist/server/src/decoder/wasm/build/decoder.js +108 -0
- package/dist/server/src/decoder/wasm/build/decoder.wasm +0 -0
- package/dist/server/src/decoder/worker.d.ts +1 -0
- package/dist/server/src/decoder/worker.js +79 -0
- package/dist/server/src/decoder/worker.js.map +1 -0
- package/dist/server/src/go2rtc/index.d.ts +1 -0
- package/dist/server/src/go2rtc/index.js +27 -9
- package/dist/server/src/go2rtc/index.js.map +1 -1
- package/dist/server/src/go2rtc/types.d.ts +5 -4
- package/dist/server/src/go2rtc/types.js +6 -2
- package/dist/server/src/go2rtc/types.js.map +1 -1
- package/dist/server/src/main.js +19 -5
- package/dist/server/src/main.js.map +1 -1
- package/dist/server/src/manager/coreManager.d.ts +16 -0
- package/dist/server/src/manager/coreManager.js +95 -0
- package/dist/server/src/manager/coreManager.js.map +1 -0
- package/dist/server/src/manager/deviceManager.d.ts +12 -0
- package/dist/server/src/manager/deviceManager.js +130 -0
- package/dist/server/src/manager/deviceManager.js.map +1 -0
- package/dist/server/src/manager/types.d.ts +15 -0
- package/dist/server/src/manager/types.js +2 -0
- package/dist/server/src/manager/types.js.map +1 -0
- package/dist/server/src/plugins/index.d.ts +3 -1
- package/dist/server/src/plugins/index.js +42 -21
- package/dist/server/src/plugins/index.js.map +1 -1
- package/dist/server/src/plugins/plugin.d.ts +3 -3
- package/dist/server/src/plugins/plugin.js +13 -20
- package/dist/server/src/plugins/plugin.js.map +1 -1
- package/dist/server/src/plugins/runtime/base.d.ts +54 -0
- package/dist/server/src/plugins/runtime/base.js +223 -0
- package/dist/server/src/plugins/runtime/base.js.map +1 -0
- package/dist/server/src/plugins/runtime/index.d.ts +5 -0
- package/dist/server/src/plugins/runtime/index.js +13 -0
- package/dist/server/src/plugins/runtime/index.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/child.d.ts +22 -0
- package/dist/server/src/plugins/runtime/node/child.js +152 -0
- package/dist/server/src/plugins/runtime/node/child.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/index.d.ts +7 -0
- package/dist/server/src/plugins/runtime/node/index.js +54 -0
- package/dist/server/src/plugins/runtime/node/index.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/plugin.d.ts +24 -0
- package/dist/server/src/plugins/runtime/node/plugin.js +128 -0
- package/dist/server/src/plugins/runtime/node/plugin.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/pluginApi.d.ts +16 -0
- package/dist/server/src/plugins/runtime/node/pluginApi.js +18 -0
- package/dist/server/src/plugins/runtime/node/pluginApi.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.d.ts +25 -0
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +230 -0
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/proxy/coreManager.d.ts +16 -0
- package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +98 -0
- package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.d.ts +19 -0
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js +144 -0
- package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/storage.d.ts +34 -0
- package/dist/server/src/plugins/runtime/node/storage.js +313 -0
- package/dist/server/src/plugins/runtime/node/storage.js.map +1 -0
- package/dist/server/src/plugins/runtime/node/storageController.d.ts +18 -0
- package/dist/server/src/plugins/runtime/node/storageController.js +67 -0
- package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -0
- package/dist/server/src/plugins/runtime/python/__init__.py +0 -0
- package/dist/server/src/plugins/runtime/python/child.py +248 -0
- package/dist/server/src/plugins/runtime/python/index.d.ts +9 -0
- package/dist/server/src/plugins/runtime/python/index.js +57 -0
- package/dist/server/src/plugins/runtime/python/index.js.map +1 -0
- package/dist/server/src/plugins/runtime/python/namespaces.py +101 -0
- package/dist/server/src/plugins/runtime/python/plugin.py +155 -0
- package/dist/server/src/plugins/runtime/python/plugin_api.py +29 -0
- package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +1732 -0
- package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +126 -0
- package/dist/server/src/plugins/runtime/python/proxy/device_manager.py +197 -0
- package/dist/server/src/plugins/runtime/python/schema.py +99 -0
- package/dist/server/src/plugins/runtime/python/storage.py +353 -0
- package/dist/server/src/plugins/runtime/python/storage_controller.py +102 -0
- package/dist/server/src/plugins/runtime/python/typings.py +195 -0
- package/dist/server/src/plugins/schema.d.ts +27 -34
- package/dist/server/src/plugins/schema.js +358 -369
- package/dist/server/src/plugins/schema.js.map +1 -1
- package/dist/server/src/plugins/types.d.ts +43 -1
- package/dist/server/src/plugins/types.js +16 -0
- package/dist/server/src/plugins/types.js.map +1 -1
- package/dist/server/src/plugins/worker.d.ts +12 -31
- package/dist/server/src/plugins/worker.js +89 -343
- package/dist/server/src/plugins/worker.js.map +1 -1
- package/dist/server/src/rpc/index.d.ts +32 -0
- package/dist/server/src/rpc/index.js +103 -0
- package/dist/server/src/rpc/index.js.map +1 -0
- package/dist/server/src/rpc/namespaces.d.ts +35 -0
- package/dist/server/src/rpc/namespaces.js +42 -0
- package/dist/server/src/rpc/namespaces.js.map +1 -0
- package/dist/server/src/{nats → rpc}/server.d.ts +6 -2
- package/dist/server/src/{nats → rpc}/server.js +76 -55
- package/dist/server/src/rpc/server.js.map +1 -0
- package/dist/server/src/rpc/types.d.ts +111 -0
- package/dist/server/src/rpc/types.js +2 -0
- package/dist/server/src/{nats → rpc}/types.js.map +1 -1
- package/dist/server/src/{nats → rpc}/utils.d.ts +1 -1
- package/dist/server/src/rpc/utils.js.map +1 -0
- package/dist/server/src/services/config/constants.js +12 -48
- package/dist/server/src/services/config/constants.js.map +1 -1
- package/dist/server/src/services/config/defaults.d.ts +12 -0
- package/dist/server/src/services/config/defaults.js +55 -0
- package/dist/server/src/services/config/defaults.js.map +1 -0
- package/dist/server/src/services/config/index.d.ts +57 -9
- package/dist/server/src/services/config/index.js +277 -130
- package/dist/server/src/services/config/index.js.map +1 -1
- package/dist/server/src/services/config/types.d.ts +10 -4
- package/dist/server/src/types.d.ts +3 -0
- package/dist/server/src/utils/path.d.ts +5 -0
- package/dist/server/src/utils/path.js +12 -0
- package/dist/server/src/utils/path.js.map +1 -0
- package/dist/server/src/utils/pythonInstaller.d.ts +46 -0
- package/dist/server/src/utils/pythonInstaller.js +463 -0
- package/dist/server/src/utils/pythonInstaller.js.map +1 -0
- package/package.json +57 -45
- package/types/fastify.d.ts +14 -0
- package/dist/interface/@intlify.Do1-T-x0.0.0.49.js +0 -15
- package/dist/interface/@mdi.CbjpODVZ.0.0.49.js +0 -1
- package/dist/interface/@tanstack.CgZ4BVuY.0.0.49.js +0 -1
- package/dist/interface/@vue.DeX8WChi.0.0.49.js +0 -17
- package/dist/interface/@vueform.WCJNykTK.0.0.49.js +0 -1
- package/dist/interface/@vueuse.fmA4o7MO.0.0.49.js +0 -1
- package/dist/interface/Account.D_hgF7as.0.0.49.js +0 -1
- package/dist/interface/Adminpanel.Cr2ysRnk.0.0.49.js +0 -2
- package/dist/interface/Appearance.DJPnnakw.0.0.49.js +0 -1
- package/dist/interface/Backup.DWrnTw65.0.0.49.js +0 -1
- package/dist/interface/Camera.Cm8bv5Jw.0.0.49.js +0 -1
- package/dist/interface/Cameras.BdMnnB_B.0.0.49.js +0 -1
- package/dist/interface/Camview.CvyTACeS.0.0.49.js +0 -1
- package/dist/interface/Config.R58trs6R.0.0.49.js +0 -1
- package/dist/interface/Console.ByS6OcfG.0.0.49.js +0 -4
- package/dist/interface/FirstSteps.BSZVBND8.0.0.49.js +0 -1
- package/dist/interface/NewCamera.CpKY8-_z.0.0.49.js +0 -469
- package/dist/interface/Plugin.ucDXXC6d.0.0.49.js +0 -1
- package/dist/interface/Plugins.Bl6Yy3fd.0.0.49.js +0 -1
- package/dist/interface/Recordings.Bm-_HDqk.0.0.49.js +0 -1
- package/dist/interface/Recordings.CVFqRJTQ.0.0.49.js +0 -1
- package/dist/interface/Settings.ClbXnv3j.0.0.49.js +0 -1
- package/dist/interface/System.BE0hX95Q.0.0.49.js +0 -4
- package/dist/interface/User.Ih1R_8u4.0.0.49.js +0 -1
- package/dist/interface/VConfigEditor.vue_vue_type_script_setup_true_lang.CAHg6HiL.0.0.49.js +0 -2
- package/dist/interface/VConsole.B9yVZ89i.0.0.49.js +0 -1
- package/dist/interface/VPlayer.DWJVzwuw.0.0.49.js +0 -4
- package/dist/interface/VPluginCard.pJNHjHpP.0.0.49.js +0 -4
- package/dist/interface/ace-builds.S1varnlI.0.0.49.js +0 -970
- package/dist/interface/apexcharts.BQn4Fbzn.0.0.49.js +0 -838
- package/dist/interface/assets/@vueform.0.0.49.CroAHJs8.css +0 -1
- package/dist/interface/assets/@xterm.0.0.49.CFbL2ovg.css +0 -32
- package/dist/interface/assets/Account.0.0.49.Bnw6Lbtd.css +0 -1
- package/dist/interface/assets/Adminpanel.0.0.49.a3t1v3MB.css +0 -1
- package/dist/interface/assets/Camera.0.0.49.Br9s6-lM.css +0 -1
- package/dist/interface/assets/Cameras.0.0.49.Buf1Dgce.css +0 -1
- package/dist/interface/assets/Camview.0.0.49.B7Cja2ry.css +0 -1
- package/dist/interface/assets/Config.0.0.49.DNGo2krN.css +0 -1
- package/dist/interface/assets/Console.0.0.49.Bh8l9QnM.css +0 -1
- package/dist/interface/assets/FirstSteps.0.0.49.Mu8VPl13.css +0 -1
- package/dist/interface/assets/NewCamera.0.0.49.DtjxW0Pf.css +0 -1
- package/dist/interface/assets/Plugin.0.0.49.YIpAU1_n.css +0 -1
- package/dist/interface/assets/Plugins.0.0.49.DXSoO9M1.css +0 -1
- package/dist/interface/assets/Settings.0.0.49.CVmui2kE.css +0 -1
- package/dist/interface/assets/User.0.0.49.BiGtIFqt.css +0 -1
- package/dist/interface/assets/VConsole.0.0.49.BCqKHpmJ.css +0 -1
- package/dist/interface/assets/VPlayer.0.0.49.C4lm2rVR.css +0 -1
- package/dist/interface/assets/VPluginCard.0.0.49.C8Lj6X-J.css +0 -1
- package/dist/interface/assets/main.0.0.49.OJngntGT.css +0 -1
- package/dist/interface/assets/vue3-toastify.0.0.49.DHXAGmwn.css +0 -1
- package/dist/interface/assets/vuetify.0.0.49.Dua9WSqa.css +0 -5
- package/dist/interface/axios.DIsA03vz.0.0.49.js +0 -6
- package/dist/interface/backup.DO02r0Uq.0.0.49.js +0 -1
- package/dist/interface/dnd-core.De50QAoi.0.0.49.js +0 -1
- package/dist/interface/engine.io-client.BkCVneko.0.0.49.js +0 -1
- package/dist/interface/fast-deep-equal.Cba0yG7P.0.0.49.js +0 -1
- package/dist/interface/fonts/Inter/Inter-Regular.ttf +0 -0
- package/dist/interface/highlight.js.B_E0LW5C.0.0.49.js +0 -2
- package/dist/interface/hookable.B8xFkYCm.0.0.49.js +0 -1
- package/dist/interface/linkify-it.B6s2BWlj.0.0.49.js +0 -1
- package/dist/interface/main.BBe3SGhH.0.0.49.js +0 -4
- package/dist/interface/perfect-debounce.Cp2ysxOb.0.0.49.js +0 -1
- package/dist/interface/pinia.ggULzsrQ.0.0.49.js +0 -5
- package/dist/interface/plugins.D11FBqVV.0.0.49.js +0 -1
- package/dist/interface/react-dnd-touch-backend.Bu6wFEmw.0.0.49.js +0 -1
- package/dist/interface/rxjs.BoFuGUYG.0.0.49.js +0 -3
- package/dist/interface/socket.io-client.DkEQDv7C.0.0.49.js +0 -1
- package/dist/interface/socket.io-parser.DIURoCw8.0.0.49.js +0 -1
- package/dist/interface/system.D_LabhBl.0.0.49.js +0 -1
- package/dist/interface/types.Cz9TaZAP.0.0.49.js +0 -1
- package/dist/interface/utils.mAKpSMLY.0.0.49.js +0 -1
- package/dist/interface/uuid.Ch9TGLTe.0.0.49.js +0 -1
- package/dist/interface/vee-validate.8pUAwQ7T.0.0.49.js +0 -5
- package/dist/interface/vue-i18n.CBqdKRmG.0.0.49.js +0 -5
- package/dist/interface/vue-inline-svg.ZWpe_tFT.0.0.49.js +0 -1
- package/dist/interface/vue-router.DvFvaoP2.0.0.49.js +0 -5
- package/dist/interface/vue3-apexcharts.BHSDC9pf.0.0.49.js +0 -1
- package/dist/interface/vue3-dnd.DbCy3Qbj.0.0.49.js +0 -1
- package/dist/interface/vue3-toastify.JJyrPHKk.0.0.49.js +0 -1
- package/dist/interface/vuetify.kkqUjVJA.0.0.49.js +0 -5
- package/dist/interface/zod.bkdEMpUp.0.0.49.js +0 -1
- package/dist/server/src/api/utils/cameraSource.d.ts +0 -6
- package/dist/server/src/api/utils/cameraSource.js +0 -51
- package/dist/server/src/api/utils/cameraSource.js.map +0 -1
- package/dist/server/src/api/websocket/go2rtc.d.ts +0 -21
- package/dist/server/src/api/websocket/go2rtc.js +0 -88
- package/dist/server/src/api/websocket/go2rtc.js.map +0 -1
- package/dist/server/src/api/websocket/nsp/proxy.d.ts +0 -27
- package/dist/server/src/api/websocket/nsp/proxy.js +0 -127
- package/dist/server/src/api/websocket/nsp/proxy.js.map +0 -1
- package/dist/server/src/nats/index.d.ts +0 -40
- package/dist/server/src/nats/index.js +0 -164
- package/dist/server/src/nats/index.js.map +0 -1
- package/dist/server/src/nats/proxy/cameraDevice.d.ts +0 -22
- package/dist/server/src/nats/proxy/cameraDevice.js +0 -249
- package/dist/server/src/nats/proxy/cameraDevice.js.map +0 -1
- package/dist/server/src/nats/proxy/coreManager.d.ts +0 -14
- package/dist/server/src/nats/proxy/coreManager.js +0 -68
- package/dist/server/src/nats/proxy/coreManager.js.map +0 -1
- package/dist/server/src/nats/proxy/deviceManager.d.ts +0 -14
- package/dist/server/src/nats/proxy/deviceManager.js +0 -101
- package/dist/server/src/nats/proxy/deviceManager.js.map +0 -1
- package/dist/server/src/nats/server.js.map +0 -1
- package/dist/server/src/nats/types.d.ts +0 -18
- package/dist/server/src/nats/utils.js.map +0 -1
- /package/dist/interface/assets/{Backup.0.0.49.CX0rT0QJ.css → SettingsBackup.CX0rT0QJ.0.0.50-internal.1.css} +0 -0
- /package/dist/interface/assets/{highlight.0.0.49.Ch2EwETz.css → highlight.Ch2EwETz.0.0.50-internal.1.css} +0 -0
- /package/dist/interface/assets/{logo-256.0.0.49.BCQk9H1-.png → logo-256.BCQk9H1-.0.0.50-internal.1.png} +0 -0
- /package/dist/interface/assets/{logo-512.0.0.49.DLKVOU2S.png → logo-512.DLKVOU2S.0.0.50-internal.1.png} +0 -0
- /package/dist/interface/assets/{logo.0.0.49.DmEiRk0z.png → logo.DmEiRk0z.0.0.50-internal.1.png} +0 -0
- /package/dist/interface/assets/{mode-json.0.0.49.Br7xisR1.js → mode-json.Br7xisR1.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/assets/{mode-yaml.0.0.49.CIYL8U3d.js → mode-yaml.CIYL8U3d.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{@babel.l0sNRNKZ.0.0.49.js → js/@babel.l0sNRNKZ.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{@react-dnd.CcwRs9xb.0.0.49.js → js/@react-dnd.CcwRs9xb.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{@socket.io.Dkula2eQ.0.0.49.js → js/@socket.io.Dkula2eQ.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{birpc.l0sNRNKZ.0.0.49.js → js/birpc.l0sNRNKZ.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{compare-versions.DqEOhma6.0.0.49.js → js/compare-versions.DqEOhma6.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{dijkstrajs.C00ieaqj.0.0.49.js → js/dijkstrajs.C00ieaqj.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{engine.io-parser.BiEtp6m2.0.0.49.js → js/engine.io-parser.BiEtp6m2.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{entities.C20TfXL6.0.0.49.js → js/entities.C20TfXL6.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{ev-emitter.X5f1qa-c.0.0.49.js → js/ev-emitter.X5f1qa-c.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{get-size.D1dS-IaP.0.0.49.js → js/get-size.D1dS-IaP.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{vue.l0sNRNKZ.0.0.49.js → js/hookable.l0sNRNKZ.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{mdurl.k9Sl0PQj.0.0.49.js → js/mdurl.k9Sl0PQj.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{punycode.js.Dj65hjkv.0.0.49.js → js/punycode.js.Dj65hjkv.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{react-dnd-html5-backend.1HQjlkwI.0.0.49.js → js/react-dnd-html5-backend.1HQjlkwI.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{redux.BFxtlG_c.0.0.49.js → js/redux.BFxtlG_c.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{tslib.9k7AwCpt.0.0.49.js → js/tslib.9k7AwCpt.0.0.50-internal.1.js} +0 -0
- /package/dist/interface/{uc.micro.kMc2yuuw.0.0.49.js → js/uc.micro.kMc2yuuw.0.0.50-internal.1.js} +0 -0
- /package/dist/server/src/{nats → decoder}/types.js +0 -0
- /package/dist/server/src/{nats → rpc}/utils.js +0 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { Logger } from '@camera.ui/common';
|
|
2
|
+
import { pathExists } from 'fs-extra';
|
|
3
|
+
import { EventEmitter } from 'node:events';
|
|
4
|
+
import { createWriteStream, ftruncate, read, rmSync } from 'node:fs';
|
|
5
|
+
import { open, stat } from 'node:fs/promises';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
import { promisify } from 'node:util';
|
|
8
|
+
import { container } from 'tsyringe';
|
|
9
|
+
import { API_EVENT } from '../../api.js';
|
|
10
|
+
const truncatePromise = promisify(ftruncate);
|
|
11
|
+
const readPromise = promisify(read);
|
|
12
|
+
export class BasePluginRuntime extends EventEmitter {
|
|
13
|
+
plugin;
|
|
14
|
+
logger;
|
|
15
|
+
api;
|
|
16
|
+
configService;
|
|
17
|
+
socketService;
|
|
18
|
+
pluginManager;
|
|
19
|
+
proxyServer;
|
|
20
|
+
worker;
|
|
21
|
+
processInfo;
|
|
22
|
+
loggerService;
|
|
23
|
+
processLogger;
|
|
24
|
+
logStream;
|
|
25
|
+
truncateInterval;
|
|
26
|
+
truncateIntervalMs = 1000 * 60 * 60 * 2;
|
|
27
|
+
logBuffer = '';
|
|
28
|
+
constructor(plugin) {
|
|
29
|
+
super();
|
|
30
|
+
this.plugin = plugin;
|
|
31
|
+
this.api = container.resolve('api');
|
|
32
|
+
this.loggerService = container.resolve('logger');
|
|
33
|
+
this.configService = container.resolve('configService');
|
|
34
|
+
this.socketService = container.resolve('socketService');
|
|
35
|
+
this.pluginManager = container.resolve('pluginManager');
|
|
36
|
+
this.proxyServer = container.resolve('proxy');
|
|
37
|
+
this.logger = this.loggerService.createLogger({ prefix: plugin.displayName, logStream: this.logStream });
|
|
38
|
+
this.processLogger = this.loggerService.createLogger({
|
|
39
|
+
...this.configService.loggerOptions,
|
|
40
|
+
disablePrefix: true,
|
|
41
|
+
disableTimestamps: true,
|
|
42
|
+
prefix: undefined,
|
|
43
|
+
suffix: undefined,
|
|
44
|
+
});
|
|
45
|
+
this.logStream = createWriteStream(this.plugin.logPath, { flags: 'a' });
|
|
46
|
+
this.truncateInterval = setInterval(() => this.truncateLog(), this.truncateIntervalMs);
|
|
47
|
+
this.truncateLog();
|
|
48
|
+
this.api.setMaxListeners(this.api.getMaxListeners() + 1);
|
|
49
|
+
this.api.once(API_EVENT.SHUTDOWN, () => {
|
|
50
|
+
this.closeLogStream();
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
stop() {
|
|
54
|
+
return new Promise((resolve) => {
|
|
55
|
+
if (!this.worker || this.worker.killed) {
|
|
56
|
+
resolve();
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const killTimeout = setTimeout(() => {
|
|
60
|
+
this.logger.warn(`Plugin ${this.plugin.displayName} did not terminate gracefully. Forcing closure.`);
|
|
61
|
+
this.worker?.kill('SIGKILL');
|
|
62
|
+
resolve();
|
|
63
|
+
}, 3000);
|
|
64
|
+
this.worker.once('close', (code, signal) => {
|
|
65
|
+
clearTimeout(killTimeout);
|
|
66
|
+
this.logger.log(`Plugin ${this.plugin.displayName} closed. Code: ${code}, Signal: ${signal}`);
|
|
67
|
+
this.worker = undefined;
|
|
68
|
+
resolve();
|
|
69
|
+
});
|
|
70
|
+
this.worker.kill('SIGTERM');
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
kill() {
|
|
74
|
+
this.worker?.kill('SIGKILL');
|
|
75
|
+
}
|
|
76
|
+
getPID() {
|
|
77
|
+
return this.worker?.pid ?? 0;
|
|
78
|
+
}
|
|
79
|
+
isRunning() {
|
|
80
|
+
return !!this.worker && !this.worker?.killed;
|
|
81
|
+
}
|
|
82
|
+
writeLog(...args) {
|
|
83
|
+
this.safeWriteLog(args.join(' ').replace(/\r?\n*$/, '\n'));
|
|
84
|
+
}
|
|
85
|
+
writeHeader() {
|
|
86
|
+
const date = new Date().toLocaleString('en-US');
|
|
87
|
+
const pluginInfo = `${this.plugin.pluginName}@${this.plugin.info.installedVersion}`;
|
|
88
|
+
const content = `${date}: ${pluginInfo}`;
|
|
89
|
+
const lineLength = content.length + 3;
|
|
90
|
+
const line = '-'.repeat(lineLength);
|
|
91
|
+
this.safeWriteLog(`\n${line}\n`);
|
|
92
|
+
this.safeWriteLog(content.padEnd(lineLength));
|
|
93
|
+
this.safeWriteLog(`\n${line}\n\n`);
|
|
94
|
+
}
|
|
95
|
+
cleanup() {
|
|
96
|
+
this.removeLogStream();
|
|
97
|
+
this.removeAllListeners();
|
|
98
|
+
}
|
|
99
|
+
onSpawn(pid, command, args, titles, resolve) {
|
|
100
|
+
this.logger.log(`Initializing process with PID: ${pid}`);
|
|
101
|
+
this.processInfo = this.configService.addProcess({
|
|
102
|
+
pid,
|
|
103
|
+
command,
|
|
104
|
+
args,
|
|
105
|
+
titles,
|
|
106
|
+
startTime: Date.now(),
|
|
107
|
+
});
|
|
108
|
+
resolve();
|
|
109
|
+
}
|
|
110
|
+
onError(reject, error) {
|
|
111
|
+
this.logger.error(`The plugin process for "${this.plugin.pluginName}" failed to start/stop!`, error);
|
|
112
|
+
reject(error);
|
|
113
|
+
}
|
|
114
|
+
onExit() {
|
|
115
|
+
this.logger.log(`Plugin ${this.plugin.displayName} exited`);
|
|
116
|
+
const cameras = this.api.getCameras();
|
|
117
|
+
cameras.forEach((camera) => camera.removePluginCapabilities(this.plugin.id));
|
|
118
|
+
this.configService.removeProcessByPID(this.processInfo?.pid);
|
|
119
|
+
this.worker = undefined;
|
|
120
|
+
this.processInfo = undefined;
|
|
121
|
+
this.emit('exit');
|
|
122
|
+
}
|
|
123
|
+
onData(data) {
|
|
124
|
+
const rawData = data.toString();
|
|
125
|
+
this.logBuffer += rawData;
|
|
126
|
+
let endIndex;
|
|
127
|
+
while ((endIndex = this.logBuffer.indexOf(Logger.LOGGER_END)) !== -1) {
|
|
128
|
+
const logEntry = this.logBuffer.slice(0, endIndex);
|
|
129
|
+
this.processLogEntry(logEntry, true);
|
|
130
|
+
this.logBuffer = this.logBuffer.slice(endIndex + Logger.LOGGER_END.length);
|
|
131
|
+
}
|
|
132
|
+
const remainingLines = this.logBuffer.split('\n');
|
|
133
|
+
this.logBuffer = remainingLines.pop() ?? '';
|
|
134
|
+
remainingLines.forEach((line) => this.processLogEntry(line, false));
|
|
135
|
+
}
|
|
136
|
+
getEnv() {
|
|
137
|
+
return {
|
|
138
|
+
WORKER_NAME: this.plugin.displayName,
|
|
139
|
+
PLUGIN_ID: this.plugin.id,
|
|
140
|
+
PLUGIN_NAME: this.plugin.pluginName,
|
|
141
|
+
FORCE_COLOR: '1',
|
|
142
|
+
PROXY_USER: this.proxyServer.auth.server.user,
|
|
143
|
+
PROXY_PASSWORD: this.proxyServer.auth.server.password,
|
|
144
|
+
PROXY_ENDPOINTS: this.proxyServer.server.endpoints.join(','),
|
|
145
|
+
PROXY_CERT: this.configService.ssl.cert.toString('utf-8'),
|
|
146
|
+
PROXY_KEY: this.configService.ssl.key.toString('utf-8'),
|
|
147
|
+
PROXY_CA: this.configService.ssl.ca.toString('utf-8'),
|
|
148
|
+
LOGGER_LEVEL: this.configService.config.logger.level,
|
|
149
|
+
LOGGER_DISABLE_TIMESTAMPS: this.configService.config.logger.disableTimestamps ? '1' : '0',
|
|
150
|
+
MODULE_PATH: join(this.plugin.installPath, this.plugin.main),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
processLogEntry(logEntry, hasLoggerId) {
|
|
154
|
+
if (hasLoggerId) {
|
|
155
|
+
const { loggerId, content } = this.processLogger.extractLoggerIdAndContent(logEntry);
|
|
156
|
+
if (loggerId) {
|
|
157
|
+
this.api.writeCameraLog(loggerId, content);
|
|
158
|
+
}
|
|
159
|
+
this.writeProcessLog(content);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
this.writeProcessLog(logEntry);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
writeProcessLog(content) {
|
|
166
|
+
if (content.trim() && !content.includes('returning true from eof_received')) {
|
|
167
|
+
this.processLogger.log(content);
|
|
168
|
+
this.safeWriteLog(content + '\n');
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
closeLogStream() {
|
|
172
|
+
clearInterval(this.truncateInterval);
|
|
173
|
+
this.logStream?.close();
|
|
174
|
+
this.logStream = undefined;
|
|
175
|
+
this.logger.logStream = undefined;
|
|
176
|
+
this.logBuffer = '';
|
|
177
|
+
}
|
|
178
|
+
removeLogStream() {
|
|
179
|
+
this.closeLogStream();
|
|
180
|
+
rmSync(this.plugin.logPath);
|
|
181
|
+
}
|
|
182
|
+
async truncateLog() {
|
|
183
|
+
if (!(await pathExists(this.plugin.logPath))) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
const maxSize = 1000000; // ~1 MB
|
|
187
|
+
const truncateSize = 200000; // ~0.2 MB
|
|
188
|
+
try {
|
|
189
|
+
const logStats = await stat(this.plugin.logPath);
|
|
190
|
+
if (logStats.size < maxSize) {
|
|
191
|
+
// this.logger.debug(`Log file size is less than ${maxSize} bytes, skipping truncate`);
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
// this.logger.debug(`Truncating log file to ${truncateSize} bytes...`);
|
|
195
|
+
const logStartPosition = logStats.size - truncateSize;
|
|
196
|
+
const logBuffer = Buffer.alloc(truncateSize);
|
|
197
|
+
const fileHandle = await open(this.plugin.logPath, 'r+');
|
|
198
|
+
try {
|
|
199
|
+
await readPromise(fileHandle.fd, logBuffer, 0, truncateSize, logStartPosition);
|
|
200
|
+
await truncatePromise(fileHandle.fd, 0);
|
|
201
|
+
await fileHandle.write(logBuffer, 0, truncateSize, 0);
|
|
202
|
+
}
|
|
203
|
+
finally {
|
|
204
|
+
await fileHandle.close();
|
|
205
|
+
}
|
|
206
|
+
// this.logger.debug('Log file truncated successfully');
|
|
207
|
+
}
|
|
208
|
+
catch (e) {
|
|
209
|
+
this.logger.error(`Failed to truncate log file: ${e.message}`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
safeWriteLog(message) {
|
|
213
|
+
if (this.logStream?.writable) {
|
|
214
|
+
try {
|
|
215
|
+
this.logStream?.write(message);
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
// Ignore
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/plugins/runtime/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { NodePluginRuntime } from './node/index.js';
|
|
2
|
+
import { PythonPluginRuntime } from './python/index.js';
|
|
3
|
+
export class RuntimeFactory {
|
|
4
|
+
static createRuntime(plugin) {
|
|
5
|
+
if (plugin.isPython) {
|
|
6
|
+
return new PythonPluginRuntime(plugin);
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
return new NodePluginRuntime(plugin);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAKxD,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,aAAa,CAAC,MAAc;QACjC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ClientInstance } from '@camera.ui/rpc-client';
|
|
2
|
+
export declare class PluginChild extends ClientInstance {
|
|
3
|
+
private displayName;
|
|
4
|
+
private api?;
|
|
5
|
+
private plugin?;
|
|
6
|
+
private pluginDb?;
|
|
7
|
+
private signalHandler;
|
|
8
|
+
private logger;
|
|
9
|
+
private loggerOptions;
|
|
10
|
+
private subscription?;
|
|
11
|
+
private stopped;
|
|
12
|
+
constructor();
|
|
13
|
+
protected onStart(): Promise<void>;
|
|
14
|
+
protected onBeforeStop(): Promise<void>;
|
|
15
|
+
protected onStop(): Promise<void>;
|
|
16
|
+
private startPlugin;
|
|
17
|
+
private stopPlugin;
|
|
18
|
+
private sendMessage;
|
|
19
|
+
private onMessage;
|
|
20
|
+
private configurePluginDB;
|
|
21
|
+
private configureCameras;
|
|
22
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { Logger, SignalHandler, sleep } from '@camera.ui/common';
|
|
2
|
+
import { ClientInstance } from '@camera.ui/rpc-client';
|
|
3
|
+
import { open } from 'lmdb';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { API_EVENT } from '../../../api.js';
|
|
6
|
+
import { NamespaceManager } from '../../../rpc/namespaces.js';
|
|
7
|
+
import { PLUGIN_COMMAND, PLUGIN_STATUS } from '../../types.js';
|
|
8
|
+
import { Plugin } from './plugin.js';
|
|
9
|
+
import { PluginAPI } from './pluginApi.js';
|
|
10
|
+
import { CameraDeviceProxy } from './proxy/cameraDevice.js';
|
|
11
|
+
const processName = process.argv[3] || process.argv[2] || 'Plugin';
|
|
12
|
+
process.title = `camera.ui - ${processName}`;
|
|
13
|
+
export class PluginChild extends ClientInstance {
|
|
14
|
+
displayName;
|
|
15
|
+
api;
|
|
16
|
+
plugin;
|
|
17
|
+
pluginDb;
|
|
18
|
+
signalHandler;
|
|
19
|
+
logger;
|
|
20
|
+
loggerOptions;
|
|
21
|
+
subscription;
|
|
22
|
+
stopped = false;
|
|
23
|
+
constructor() {
|
|
24
|
+
super('plugin', {
|
|
25
|
+
endpoints: process.env.PROXY_ENDPOINTS.split(','),
|
|
26
|
+
auth: {
|
|
27
|
+
user: process.env.PROXY_USER,
|
|
28
|
+
password: process.env.PROXY_PASSWORD,
|
|
29
|
+
},
|
|
30
|
+
tls: {
|
|
31
|
+
cert: process.env.PROXY_CERT,
|
|
32
|
+
key: process.env.PROXY_KEY,
|
|
33
|
+
ca: process.env.PROXY_CA,
|
|
34
|
+
},
|
|
35
|
+
metadata: {
|
|
36
|
+
id: NamespaceManager.pluginNamespaces(process.env.PLUGIN_ID).pluginChild,
|
|
37
|
+
name: process.env.PLUGIN_NAME,
|
|
38
|
+
},
|
|
39
|
+
connect: {
|
|
40
|
+
waitForServer: true,
|
|
41
|
+
},
|
|
42
|
+
reconnect: {
|
|
43
|
+
enabled: true,
|
|
44
|
+
},
|
|
45
|
+
bundledConnection: false,
|
|
46
|
+
});
|
|
47
|
+
delete process.env.PROXY_USER;
|
|
48
|
+
delete process.env.PROXY_PASSWORD;
|
|
49
|
+
delete process.env.PROXY_ENDPOINTS;
|
|
50
|
+
delete process.env.PROXY_CERT;
|
|
51
|
+
delete process.env.PROXY_KEY;
|
|
52
|
+
delete process.env.PROXY_CA;
|
|
53
|
+
this.displayName = processName;
|
|
54
|
+
this.loggerOptions = {
|
|
55
|
+
prefix: this.displayName,
|
|
56
|
+
disableTimestamps: process.env.LOGGER_DISABLE_TIMESTAMPS === '1',
|
|
57
|
+
debugEnabled: process.env.LOGGER_LEVEL === 'debug' || process.env.LOGGER_LEVEL === 'trace',
|
|
58
|
+
traceEnabled: process.env.LOGGER_LEVEL === 'trace',
|
|
59
|
+
};
|
|
60
|
+
this.logger = new Logger(this.loggerOptions);
|
|
61
|
+
this.signalHandler = new SignalHandler({
|
|
62
|
+
displayName: '[Signal]',
|
|
63
|
+
timeoutDuration: 3000,
|
|
64
|
+
logger: this.logger,
|
|
65
|
+
closeFunction: this.stopPlugin.bind(this),
|
|
66
|
+
});
|
|
67
|
+
this.start();
|
|
68
|
+
}
|
|
69
|
+
async onStart() {
|
|
70
|
+
this.subscription = this.onServerMessage(this.onMessage.bind(this));
|
|
71
|
+
this.sendMessage({ type: PLUGIN_STATUS.READY });
|
|
72
|
+
}
|
|
73
|
+
async onBeforeStop() {
|
|
74
|
+
await this.stopPlugin();
|
|
75
|
+
}
|
|
76
|
+
async onStop() { }
|
|
77
|
+
async startPlugin(data) {
|
|
78
|
+
try {
|
|
79
|
+
const storagePath = data.storage.storagePath;
|
|
80
|
+
const pluginInfo = data.plugin;
|
|
81
|
+
const cameras = data.cameras;
|
|
82
|
+
this.pluginDb = await this.configurePluginDB(storagePath);
|
|
83
|
+
this.api = new PluginAPI(this, pluginInfo, storagePath, this.logger, this.pluginDb);
|
|
84
|
+
this.plugin = new Plugin(this, this.api, pluginInfo, this.logger);
|
|
85
|
+
await this.api.deviceManager.init();
|
|
86
|
+
await this.api.coreManager.init();
|
|
87
|
+
await this.plugin.load();
|
|
88
|
+
await this.configureCameras(this.api, pluginInfo, cameras);
|
|
89
|
+
this.sendMessage({ type: PLUGIN_STATUS.STARTED });
|
|
90
|
+
setImmediate(() => {
|
|
91
|
+
this.api?.emit(API_EVENT.FINISH_LAUNCHING);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
this.sendMessage({ type: PLUGIN_STATUS.ERROR, error: error.message });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async stopPlugin() {
|
|
99
|
+
if (this.stopped) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
this.stopped = true;
|
|
103
|
+
this.api?.emit(API_EVENT.SHUTDOWN);
|
|
104
|
+
await sleep(500);
|
|
105
|
+
await this.pluginDb?.close();
|
|
106
|
+
this.subscription?.unsubscribe();
|
|
107
|
+
this.subscription = undefined;
|
|
108
|
+
await this.stop();
|
|
109
|
+
}
|
|
110
|
+
sendMessage(message) {
|
|
111
|
+
this.sendToServer(message);
|
|
112
|
+
}
|
|
113
|
+
async onMessage(message) {
|
|
114
|
+
if (this.stopped) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
switch (message.type) {
|
|
118
|
+
case PLUGIN_COMMAND.START:
|
|
119
|
+
if (!message.data) {
|
|
120
|
+
this.sendMessage({ type: PLUGIN_STATUS.ERROR, error: 'No data provided' });
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
this.startPlugin(message.data);
|
|
124
|
+
break;
|
|
125
|
+
case PLUGIN_COMMAND.STOP:
|
|
126
|
+
this.stopPlugin();
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
async configurePluginDB(storagePath) {
|
|
131
|
+
const pluginDb = open(`${storagePath}/volume`, {
|
|
132
|
+
name: 'plugins',
|
|
133
|
+
});
|
|
134
|
+
const pluginConfig = pluginDb.get('config');
|
|
135
|
+
if (!pluginConfig) {
|
|
136
|
+
await pluginDb.put('config', {});
|
|
137
|
+
}
|
|
138
|
+
return pluginDb;
|
|
139
|
+
}
|
|
140
|
+
async configureCameras(api, pluginInfo, cameras) {
|
|
141
|
+
const cameraDevices = cameras.map((camera) => {
|
|
142
|
+
const cameraLogger = this.logger.createLogger({ suffix: camera.name, loggerId: camera._id });
|
|
143
|
+
return new CameraDeviceProxy(this, api, camera, pluginInfo, cameraLogger);
|
|
144
|
+
});
|
|
145
|
+
await this.api?.deviceManager.configureCameras(cameraDevices);
|
|
146
|
+
await this.plugin?.configureCameras(cameraDevices);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (process.argv[1] === fileURLToPath(import.meta.url)) {
|
|
150
|
+
new PluginChild();
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=child.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"child.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/child.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { fork } from 'child_process';
|
|
2
|
+
import { nodePluginPath } from '../../../utils/path.js';
|
|
3
|
+
import { BasePluginRuntime } from '../base.js';
|
|
4
|
+
import { IS_DEV } from '@camera.ui/common';
|
|
5
|
+
export class NodePluginRuntime extends BasePluginRuntime {
|
|
6
|
+
constructor(plugin) {
|
|
7
|
+
super(plugin);
|
|
8
|
+
}
|
|
9
|
+
async start() {
|
|
10
|
+
if (this.isRunning()) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
return new Promise((resolve, reject) => {
|
|
14
|
+
this.logger.log(`Starting plugin: ${this.plugin.displayName} (${this.plugin.pluginName}.${this.plugin.info.installedVersion})...`);
|
|
15
|
+
const command = process.execPath;
|
|
16
|
+
const processNames = [this.plugin.pluginName, this.plugin.displayName];
|
|
17
|
+
const args = [nodePluginPath, ...processNames];
|
|
18
|
+
this.logger.debug(`Forking plugin: ${this.plugin.pluginName}`);
|
|
19
|
+
this.worker = fork(nodePluginPath, [...processNames], {
|
|
20
|
+
env: {
|
|
21
|
+
...this.cleanedProcessEnv(),
|
|
22
|
+
...this.getEnv(),
|
|
23
|
+
},
|
|
24
|
+
cwd: this.plugin.mainPath,
|
|
25
|
+
silent: true,
|
|
26
|
+
execArgv: IS_DEV ? ['--import=tsx'] : undefined,
|
|
27
|
+
});
|
|
28
|
+
this.worker.once('spawn', this.onSpawn.bind(this, this.worker.pid, command, args, processNames, resolve));
|
|
29
|
+
this.worker.once('error', this.onError.bind(this, reject));
|
|
30
|
+
this.worker.once('exit', this.onExit.bind(this));
|
|
31
|
+
this.worker.stdout?.on('data', this.onData.bind(this));
|
|
32
|
+
this.worker.stderr?.on('data', this.onData.bind(this));
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
cleanedProcessEnv() {
|
|
36
|
+
const env = { ...process.env };
|
|
37
|
+
delete env.CAMERA_UI_STORAGE_PATH;
|
|
38
|
+
delete env.CAMERA_UI_DATABASE_PATH;
|
|
39
|
+
delete env.CAMERA_UI_USERS_STORAGE_PATH;
|
|
40
|
+
delete env.CAMERA_UI_PLUGINS_STORAGE_PATH;
|
|
41
|
+
delete env.CAMERA_UI_PLUGINS_INSTALL_PATH;
|
|
42
|
+
delete env.CAMERA_UI_PLUGINS_PJSON_FILE;
|
|
43
|
+
delete env.CAMERA_UI_CONFIG_FILE;
|
|
44
|
+
delete env.CAMERA_UI_SECRETS_FILE;
|
|
45
|
+
delete env.CAMERA_UI_LOG_FILE;
|
|
46
|
+
delete env.CAMERA_UI_GO2RTC_CONFIG_FILE;
|
|
47
|
+
delete env.CAMERA_UI_GO2RTC_BINARY;
|
|
48
|
+
delete env.CAMERA_UI_DEV_PORT;
|
|
49
|
+
delete env.CAMERA_UI_DEV_WS_PORT;
|
|
50
|
+
delete env.CAMERA_UI_DEV_UI_PORT;
|
|
51
|
+
return env;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/plugins/runtime/node/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Logger } from '@camera.ui/common';
|
|
2
|
+
import type { ClientInstance } from '@camera.ui/rpc-client';
|
|
3
|
+
import type { AudioDetectionPluginResponse, AudioMetadata, CuiPlugin, CuiPluginCapability, DeviceStorage, ImageMetadata, JsonSchema, MotionDetectionPluginResponse, ObjectDetectionPluginResponse } from '@camera.ui/types';
|
|
4
|
+
import type { PluginInfo } from '../../types.js';
|
|
5
|
+
import type { PluginAPI } from './pluginApi.js';
|
|
6
|
+
import type { CameraDeviceProxy } from './proxy/cameraDevice.js';
|
|
7
|
+
export type PluginConstructor = new (logger: Logger, api: PluginAPI, storage: DeviceStorage<Record<string, any>>) => CuiPlugin;
|
|
8
|
+
export declare class Plugin implements CuiPlugin {
|
|
9
|
+
private proxy;
|
|
10
|
+
private api;
|
|
11
|
+
private pluginInfo;
|
|
12
|
+
private logger;
|
|
13
|
+
private plugin?;
|
|
14
|
+
private namespaces;
|
|
15
|
+
constructor(proxy: ClientInstance, api: PluginAPI, pluginInfo: PluginInfo, logger: Logger);
|
|
16
|
+
load(): Promise<void>;
|
|
17
|
+
configureCameras(cameraDevices: CameraDeviceProxy[]): Promise<void>;
|
|
18
|
+
getCapabilities(): Promise<CuiPluginCapability[]>;
|
|
19
|
+
interfaceSchema(): Promise<JsonSchema[] | undefined>;
|
|
20
|
+
detectAudio(audioData: Buffer | Uint8Array, metadata: AudioMetadata, config: Record<string, any>): Promise<AudioDetectionPluginResponse | undefined>;
|
|
21
|
+
detectMotion(videoData: Buffer | Uint8Array, config: Record<string, any>): Promise<MotionDetectionPluginResponse | undefined>;
|
|
22
|
+
detectObjects(imageData: Buffer | Uint8Array, metadata: ImageMetadata, config: Record<string, any>): Promise<ObjectDetectionPluginResponse | undefined>;
|
|
23
|
+
private loadPlugin;
|
|
24
|
+
}
|