@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,338 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import contextlib
|
|
3
|
+
from collections.abc import AsyncIterator, Awaitable, Sequence
|
|
4
|
+
from typing import (
|
|
5
|
+
Any,
|
|
6
|
+
Callable,
|
|
7
|
+
Generic,
|
|
8
|
+
Optional,
|
|
9
|
+
Protocol,
|
|
10
|
+
TypeVar,
|
|
11
|
+
Union,
|
|
12
|
+
cast,
|
|
13
|
+
runtime_checkable,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
from reactivex import Observable, abc, from_iterable
|
|
17
|
+
from reactivex import from_future as rx_from_future
|
|
18
|
+
from reactivex.disposable import Disposable as RxDisposable
|
|
19
|
+
|
|
20
|
+
# Type definitions
|
|
21
|
+
T = TypeVar("T")
|
|
22
|
+
TSource = TypeVar("TSource")
|
|
23
|
+
TResult = TypeVar("TResult")
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@runtime_checkable
|
|
27
|
+
class DisposableProtocol(Protocol):
|
|
28
|
+
def dispose(self) -> None: ...
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class HybridObservable(Observable[T], Generic[T]):
|
|
32
|
+
_observable: Observable[T]
|
|
33
|
+
|
|
34
|
+
def __init__(self, observable: Observable[T]):
|
|
35
|
+
super().__init__(observable._subscribe)
|
|
36
|
+
self._observable = observable
|
|
37
|
+
|
|
38
|
+
def run(self) -> T:
|
|
39
|
+
"""
|
|
40
|
+
Run the observable synchronously and return the last value.
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
The last value emitted by the observable
|
|
44
|
+
"""
|
|
45
|
+
return cast(T, self._observable.run())
|
|
46
|
+
|
|
47
|
+
def pipe(self, *operators: Callable[[Any], Any]) -> Any:
|
|
48
|
+
"""
|
|
49
|
+
Apply a series of operators to the observable.
|
|
50
|
+
|
|
51
|
+
Args:
|
|
52
|
+
*operators: The operators to apply
|
|
53
|
+
|
|
54
|
+
Returns:
|
|
55
|
+
A new HybridObservable with the operators applied
|
|
56
|
+
"""
|
|
57
|
+
return HybridObservable(self._observable.pipe(*operators))
|
|
58
|
+
|
|
59
|
+
def subscribe(
|
|
60
|
+
self,
|
|
61
|
+
on_next: Union[Callable[[T], None], abc.ObserverBase[T], None] = None,
|
|
62
|
+
on_error: Union[Callable[[Exception], None], None] = None,
|
|
63
|
+
on_completed: Union[Callable[[], None], None] = None,
|
|
64
|
+
*,
|
|
65
|
+
scheduler: Optional[abc.SchedulerBase] = None,
|
|
66
|
+
) -> abc.DisposableBase:
|
|
67
|
+
"""
|
|
68
|
+
Subscribe to the observable with synchronous callbacks.
|
|
69
|
+
"""
|
|
70
|
+
return self._observable.subscribe(on_next, on_error, on_completed, scheduler=scheduler)
|
|
71
|
+
|
|
72
|
+
async def arun(self) -> T:
|
|
73
|
+
"""
|
|
74
|
+
Run the observable asynchronously and return the last value.
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
The last value emitted by the observable
|
|
78
|
+
|
|
79
|
+
Raises:
|
|
80
|
+
asyncio.InvalidStateError: If the observable completes without emitting a value
|
|
81
|
+
Exception: Any error that occurred during observation
|
|
82
|
+
"""
|
|
83
|
+
future: asyncio.Future[T] = asyncio.Future()
|
|
84
|
+
last_value: Optional[T] = None
|
|
85
|
+
error_occurred = False
|
|
86
|
+
|
|
87
|
+
def on_next(value: T) -> None:
|
|
88
|
+
nonlocal last_value
|
|
89
|
+
last_value = value
|
|
90
|
+
|
|
91
|
+
def on_error(error: Exception) -> None:
|
|
92
|
+
nonlocal error_occurred
|
|
93
|
+
error_occurred = True
|
|
94
|
+
if not future.done():
|
|
95
|
+
future.set_exception(error)
|
|
96
|
+
|
|
97
|
+
def on_completed() -> None:
|
|
98
|
+
if not future.done():
|
|
99
|
+
if error_occurred:
|
|
100
|
+
return
|
|
101
|
+
if last_value is not None:
|
|
102
|
+
future.set_result(last_value)
|
|
103
|
+
else:
|
|
104
|
+
future.set_exception(
|
|
105
|
+
asyncio.InvalidStateError("Observable completed without emitting a value")
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
disposable = self.subscribe(on_next, on_error, on_completed)
|
|
109
|
+
|
|
110
|
+
try:
|
|
111
|
+
return await future
|
|
112
|
+
finally:
|
|
113
|
+
disposable.dispose()
|
|
114
|
+
|
|
115
|
+
async def arun_with_timeout(self, timeout: float) -> T:
|
|
116
|
+
"""
|
|
117
|
+
Run the observable asynchronously with a timeout.
|
|
118
|
+
|
|
119
|
+
Args:
|
|
120
|
+
timeout: Maximum time to wait in seconds
|
|
121
|
+
|
|
122
|
+
Returns:
|
|
123
|
+
The last value emitted by the observable
|
|
124
|
+
|
|
125
|
+
Raises:
|
|
126
|
+
TimeoutError: If the operation times out
|
|
127
|
+
"""
|
|
128
|
+
try:
|
|
129
|
+
return await asyncio.wait_for(self.arun(), timeout)
|
|
130
|
+
except asyncio.TimeoutError:
|
|
131
|
+
raise TimeoutError(f"Observable operation timed out after {timeout} seconds") from None
|
|
132
|
+
|
|
133
|
+
async def apipe(
|
|
134
|
+
self, *operators: Callable[[Observable[Any]], Observable[Any]]
|
|
135
|
+
) -> "HybridObservable[Any]":
|
|
136
|
+
"""
|
|
137
|
+
Asynchronous version of pipe.
|
|
138
|
+
|
|
139
|
+
Args:
|
|
140
|
+
*operators: The operators to apply
|
|
141
|
+
|
|
142
|
+
Returns:
|
|
143
|
+
A new HybridObservable with the operators applied
|
|
144
|
+
"""
|
|
145
|
+
return HybridObservable(self._observable.pipe(*operators))
|
|
146
|
+
|
|
147
|
+
def asubscribe(
|
|
148
|
+
self,
|
|
149
|
+
on_next: Union[Callable[[T], Awaitable[Any]], None] = None,
|
|
150
|
+
on_error: Union[Callable[[Exception], Awaitable[Any]], None] = None,
|
|
151
|
+
on_completed: Union[Callable[[], Awaitable[Any]], None] = None,
|
|
152
|
+
) -> RxDisposable:
|
|
153
|
+
"""
|
|
154
|
+
Subscribe asynchronously to the observable sequence.
|
|
155
|
+
"""
|
|
156
|
+
error_future: asyncio.Future[Exception] = asyncio.Future()
|
|
157
|
+
next_task: Optional[asyncio.Task[Any]] = None
|
|
158
|
+
error_task: Optional[asyncio.Task[Any]] = None
|
|
159
|
+
completed_task: Optional[asyncio.Task[Any]] = None
|
|
160
|
+
|
|
161
|
+
is_completed = False
|
|
162
|
+
|
|
163
|
+
async def async_on_next(value: T) -> None:
|
|
164
|
+
if on_next:
|
|
165
|
+
try:
|
|
166
|
+
await on_next(value)
|
|
167
|
+
except Exception as e:
|
|
168
|
+
if not is_completed:
|
|
169
|
+
error_future.set_result(e)
|
|
170
|
+
|
|
171
|
+
async def async_on_completed() -> None:
|
|
172
|
+
nonlocal is_completed
|
|
173
|
+
nonlocal next_task
|
|
174
|
+
|
|
175
|
+
is_completed = True
|
|
176
|
+
|
|
177
|
+
if next_task and not next_task.done():
|
|
178
|
+
next_task.cancel()
|
|
179
|
+
next_task = None
|
|
180
|
+
|
|
181
|
+
if on_completed:
|
|
182
|
+
try:
|
|
183
|
+
await on_completed()
|
|
184
|
+
except Exception as e:
|
|
185
|
+
error_future.set_result(e)
|
|
186
|
+
|
|
187
|
+
async def async_on_error() -> None:
|
|
188
|
+
error = await error_future
|
|
189
|
+
if on_error:
|
|
190
|
+
disposable.dispose()
|
|
191
|
+
with contextlib.suppress(Exception):
|
|
192
|
+
await on_error(error)
|
|
193
|
+
|
|
194
|
+
def next_fn(x: T) -> None:
|
|
195
|
+
nonlocal next_task
|
|
196
|
+
next_task = asyncio.create_task(async_on_next(x), name="on_next")
|
|
197
|
+
|
|
198
|
+
def completed_fn() -> None:
|
|
199
|
+
nonlocal completed_task
|
|
200
|
+
completed_task = asyncio.create_task(async_on_completed(), name="on_completed")
|
|
201
|
+
|
|
202
|
+
if on_error:
|
|
203
|
+
error_task = asyncio.create_task(async_on_error(), name="on_error")
|
|
204
|
+
|
|
205
|
+
disposable = self.subscribe(next_fn, None, completed_fn)
|
|
206
|
+
|
|
207
|
+
def cancel_subscription() -> None:
|
|
208
|
+
for task in (next_task, error_task, completed_task):
|
|
209
|
+
if task:
|
|
210
|
+
task.cancel()
|
|
211
|
+
|
|
212
|
+
disposable.dispose()
|
|
213
|
+
|
|
214
|
+
return RxDisposable(cancel_subscription)
|
|
215
|
+
|
|
216
|
+
def asubscribe_with_backpressure(
|
|
217
|
+
self, on_next: Optional[Callable[[T], Awaitable[Any]]] = None, max_queue_size: int = 100
|
|
218
|
+
) -> RxDisposable:
|
|
219
|
+
"""
|
|
220
|
+
Subscribe asynchronously with backpressure control.
|
|
221
|
+
|
|
222
|
+
Args:
|
|
223
|
+
on_next: Async callback for next value
|
|
224
|
+
max_queue_size: Maximum size of the internal queue
|
|
225
|
+
|
|
226
|
+
Returns:
|
|
227
|
+
A disposable object to cancel the subscription
|
|
228
|
+
"""
|
|
229
|
+
queue: asyncio.Queue[T] = asyncio.Queue(maxsize=max_queue_size)
|
|
230
|
+
|
|
231
|
+
async def process_queue() -> None:
|
|
232
|
+
while True:
|
|
233
|
+
try:
|
|
234
|
+
value = await queue.get()
|
|
235
|
+
if on_next:
|
|
236
|
+
await on_next(value)
|
|
237
|
+
queue.task_done()
|
|
238
|
+
except asyncio.CancelledError:
|
|
239
|
+
break
|
|
240
|
+
|
|
241
|
+
process_task = asyncio.create_task(process_queue())
|
|
242
|
+
|
|
243
|
+
def on_next_with_backpressure(value: T) -> None:
|
|
244
|
+
if not process_task.done():
|
|
245
|
+
queue.put_nowait(value)
|
|
246
|
+
|
|
247
|
+
disposable = self.subscribe(on_next_with_backpressure)
|
|
248
|
+
|
|
249
|
+
def cleanup() -> None:
|
|
250
|
+
process_task.cancel()
|
|
251
|
+
disposable.dispose()
|
|
252
|
+
|
|
253
|
+
return RxDisposable(cleanup)
|
|
254
|
+
|
|
255
|
+
async def __aiter__(self) -> "AsyncIterator[T]":
|
|
256
|
+
"""
|
|
257
|
+
Async iterator implementation.
|
|
258
|
+
"""
|
|
259
|
+
queue: asyncio.Queue[Union[T, Exception]] = asyncio.Queue(maxsize=100)
|
|
260
|
+
done = asyncio.Event()
|
|
261
|
+
subscription: Optional[abc.DisposableBase] = None
|
|
262
|
+
|
|
263
|
+
def on_next(value: T) -> None:
|
|
264
|
+
if not queue.full():
|
|
265
|
+
queue.put_nowait(value)
|
|
266
|
+
|
|
267
|
+
def on_completed() -> None:
|
|
268
|
+
done.set()
|
|
269
|
+
|
|
270
|
+
def on_error(error: Exception) -> None:
|
|
271
|
+
if not done.is_set():
|
|
272
|
+
queue.put_nowait(error)
|
|
273
|
+
done.set()
|
|
274
|
+
|
|
275
|
+
subscription = self.subscribe(on_next, on_error, on_completed)
|
|
276
|
+
|
|
277
|
+
try:
|
|
278
|
+
while not done.is_set() or not queue.empty():
|
|
279
|
+
try:
|
|
280
|
+
item = await queue.get()
|
|
281
|
+
if isinstance(item, Exception):
|
|
282
|
+
raise item
|
|
283
|
+
yield item
|
|
284
|
+
except asyncio.CancelledError:
|
|
285
|
+
break
|
|
286
|
+
finally:
|
|
287
|
+
if subscription:
|
|
288
|
+
subscription.dispose()
|
|
289
|
+
|
|
290
|
+
def dispose(self) -> None:
|
|
291
|
+
"""
|
|
292
|
+
Synchronous cleanup of resources.
|
|
293
|
+
"""
|
|
294
|
+
if isinstance(self._observable, DisposableProtocol):
|
|
295
|
+
self._observable.dispose()
|
|
296
|
+
|
|
297
|
+
async def dispose_async(self) -> None:
|
|
298
|
+
"""
|
|
299
|
+
Asynchronous cleanup of resources.
|
|
300
|
+
Handles both synchronous and asynchronous disposal.
|
|
301
|
+
"""
|
|
302
|
+
self.dispose()
|
|
303
|
+
pending_tasks = [task for task in asyncio.all_tasks() if task is not asyncio.current_task()]
|
|
304
|
+
if pending_tasks:
|
|
305
|
+
await asyncio.gather(*pending_tasks, return_exceptions=True)
|
|
306
|
+
|
|
307
|
+
@classmethod
|
|
308
|
+
def from_iterable(
|
|
309
|
+
cls: type["HybridObservable[TSource]"],
|
|
310
|
+
iterable: Union[list[TSource], tuple[TSource, ...], set[TSource]],
|
|
311
|
+
) -> "HybridObservable[TSource]":
|
|
312
|
+
"""
|
|
313
|
+
Create a HybridObservable from an iterable.
|
|
314
|
+
"""
|
|
315
|
+
return cls(from_iterable(iterable))
|
|
316
|
+
|
|
317
|
+
@classmethod
|
|
318
|
+
async def from_async_iterable(
|
|
319
|
+
cls: type["HybridObservable[TSource]"], async_iterable: AsyncIterator[TSource]
|
|
320
|
+
) -> "HybridObservable[TSource]":
|
|
321
|
+
"""
|
|
322
|
+
Create a HybridObservable from an async iterable.
|
|
323
|
+
"""
|
|
324
|
+
|
|
325
|
+
async def to_list(ait: AsyncIterator[TSource]) -> Sequence[TSource]:
|
|
326
|
+
return [item async for item in ait]
|
|
327
|
+
|
|
328
|
+
items = await to_list(async_iterable)
|
|
329
|
+
return cls(from_iterable(items))
|
|
330
|
+
|
|
331
|
+
@classmethod
|
|
332
|
+
def from_future(
|
|
333
|
+
cls: type["HybridObservable[TSource]"], future: asyncio.Future[TSource]
|
|
334
|
+
) -> "HybridObservable[TSource]":
|
|
335
|
+
"""
|
|
336
|
+
Create a HybridObservable from a future.
|
|
337
|
+
"""
|
|
338
|
+
return cls(rx_from_future(future))
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import logging
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
|
|
5
|
+
from reactivex import Subject
|
|
6
|
+
|
|
7
|
+
from camera_ui_python_types.hybrid_observer import HybridObservable
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
async def test_asubscribe_endless_operation():
|
|
11
|
+
# Setup
|
|
12
|
+
subject = Subject[Any]()
|
|
13
|
+
hybrid = HybridObservable(subject)
|
|
14
|
+
processed_values: list[Any] = []
|
|
15
|
+
value_processed = asyncio.Event()
|
|
16
|
+
|
|
17
|
+
async def endless_operation(value: Any):
|
|
18
|
+
try:
|
|
19
|
+
processed_values.append(value)
|
|
20
|
+
value_processed.set() # Signal dass ein Wert verarbeitet wurde
|
|
21
|
+
# Simuliere eine endlose Operation
|
|
22
|
+
while True:
|
|
23
|
+
await asyncio.sleep(0.1)
|
|
24
|
+
except asyncio.CancelledError:
|
|
25
|
+
raise
|
|
26
|
+
except Exception as e:
|
|
27
|
+
logging.error(f"Error in endless operation: {e}")
|
|
28
|
+
raise
|
|
29
|
+
|
|
30
|
+
# Subscribe mit der endlosen Operation
|
|
31
|
+
disposable = hybrid.asubscribe(on_next=endless_operation)
|
|
32
|
+
|
|
33
|
+
try:
|
|
34
|
+
# Sende ersten Wert
|
|
35
|
+
subject.on_next(1)
|
|
36
|
+
|
|
37
|
+
# Warte auf Verarbeitung mit Timeout
|
|
38
|
+
try:
|
|
39
|
+
await asyncio.wait_for(value_processed.wait(), timeout=1.0)
|
|
40
|
+
except asyncio.TimeoutError as e:
|
|
41
|
+
raise AssertionError("Timeout beim Warten auf Verarbeitung von Wert 1") from e
|
|
42
|
+
|
|
43
|
+
value_processed.clear() # Reset für nächsten Wert
|
|
44
|
+
|
|
45
|
+
# Sende zweiten Wert
|
|
46
|
+
subject.on_next(2)
|
|
47
|
+
|
|
48
|
+
# Warte auf Verarbeitung mit Timeout
|
|
49
|
+
try:
|
|
50
|
+
await asyncio.wait_for(value_processed.wait(), timeout=1.0)
|
|
51
|
+
except asyncio.TimeoutError as e:
|
|
52
|
+
raise AssertionError("Timeout beim Warten auf Verarbeitung von Wert 2") from e
|
|
53
|
+
|
|
54
|
+
# Überprüfe, ob beide Werte verarbeitet wurden
|
|
55
|
+
assert processed_values == [1, 2], f"Erwartete [1, 2], bekam {processed_values}"
|
|
56
|
+
|
|
57
|
+
# Cleanup durchführen
|
|
58
|
+
disposable.dispose()
|
|
59
|
+
await asyncio.sleep(0.2) # Warte auf Cleanup
|
|
60
|
+
|
|
61
|
+
# Versuche weitere Werte zu senden
|
|
62
|
+
subject.on_next(3)
|
|
63
|
+
await asyncio.sleep(0.2)
|
|
64
|
+
|
|
65
|
+
# Überprüfe, dass keine weiteren Werte verarbeitet wurden
|
|
66
|
+
assert processed_values == [1, 2], (
|
|
67
|
+
f"Nach dispose wurden weitere Werte verarbeitet: {processed_values}"
|
|
68
|
+
)
|
|
69
|
+
finally:
|
|
70
|
+
# Sicherstellen, dass dispose in jedem Fall aufgerufen wird
|
|
71
|
+
disposable.dispose()
|
|
72
|
+
await asyncio.sleep(0.2) # Warte auf Cleanup
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
async def test_asubscribe_self_completing_operation():
|
|
76
|
+
# Setup
|
|
77
|
+
subject = Subject[Any]()
|
|
78
|
+
hybrid = HybridObservable(subject)
|
|
79
|
+
processed_values: list[Any] = []
|
|
80
|
+
completion_event = asyncio.Event()
|
|
81
|
+
error_received: Optional[Exception] = None
|
|
82
|
+
|
|
83
|
+
async def self_completing_operation(value: Any):
|
|
84
|
+
processed_values.append(value)
|
|
85
|
+
# Simuliere eine Operation, die nach einer gewissen Zeit endet
|
|
86
|
+
await asyncio.sleep(0.1)
|
|
87
|
+
|
|
88
|
+
async def on_completed():
|
|
89
|
+
completion_event.set()
|
|
90
|
+
|
|
91
|
+
async def on_error(error: Any):
|
|
92
|
+
nonlocal error_received
|
|
93
|
+
error_received = error
|
|
94
|
+
|
|
95
|
+
# Subscribe mit der selbstbeendenden Operation
|
|
96
|
+
disposable = hybrid.asubscribe(
|
|
97
|
+
on_next=self_completing_operation, on_completed=on_completed, on_error=on_error
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
try:
|
|
101
|
+
# Sende einige Werte
|
|
102
|
+
subject.on_next(1)
|
|
103
|
+
subject.on_next(2)
|
|
104
|
+
|
|
105
|
+
# Warte, bis die Operationen abgeschlossen sind
|
|
106
|
+
await asyncio.sleep(0.3)
|
|
107
|
+
|
|
108
|
+
# Überprüfe, ob alle Werte verarbeitet wurden
|
|
109
|
+
assert processed_values == [1, 2]
|
|
110
|
+
|
|
111
|
+
# Beende den Stream
|
|
112
|
+
subject.on_completed()
|
|
113
|
+
|
|
114
|
+
# Warte auf Completion mit Timeout
|
|
115
|
+
try:
|
|
116
|
+
await asyncio.wait_for(completion_event.wait(), timeout=1.0)
|
|
117
|
+
except asyncio.TimeoutError as e:
|
|
118
|
+
raise AssertionError("Completion handler wurde nicht aufgerufen") from e
|
|
119
|
+
|
|
120
|
+
# Überprüfe, dass kein Fehler aufgetreten ist
|
|
121
|
+
assert error_received is None, f"Unerwarteter Fehler aufgetreten: {error_received}"
|
|
122
|
+
finally:
|
|
123
|
+
# Cleanup
|
|
124
|
+
disposable.dispose()
|
|
125
|
+
await asyncio.sleep(0.2) # Warte auf Cleanup
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
async def test_asubscribe_error_handling():
|
|
129
|
+
# Setup
|
|
130
|
+
subject = Subject[Any]()
|
|
131
|
+
hybrid = HybridObservable(subject)
|
|
132
|
+
error_event = asyncio.Event()
|
|
133
|
+
error_value: Optional[Exception] = None
|
|
134
|
+
processed_values: list[Any] = []
|
|
135
|
+
|
|
136
|
+
async def operation_with_error(value: Any):
|
|
137
|
+
processed_values.append(value)
|
|
138
|
+
if value == 2:
|
|
139
|
+
raise ValueError("Test error")
|
|
140
|
+
await asyncio.sleep(0.1)
|
|
141
|
+
|
|
142
|
+
async def on_error(error: Any):
|
|
143
|
+
nonlocal error_value
|
|
144
|
+
error_value = error
|
|
145
|
+
error_event.set()
|
|
146
|
+
|
|
147
|
+
# Subscribe mit der fehlerwerfenden Operation
|
|
148
|
+
disposable = hybrid.asubscribe(on_next=operation_with_error, on_error=on_error)
|
|
149
|
+
|
|
150
|
+
try:
|
|
151
|
+
# Sende ersten Wert und warte auf Verarbeitung
|
|
152
|
+
subject.on_next(1)
|
|
153
|
+
await asyncio.sleep(0.2)
|
|
154
|
+
|
|
155
|
+
# Sende Wert der Fehler auslöst
|
|
156
|
+
subject.on_next(2)
|
|
157
|
+
|
|
158
|
+
# Warte auf Error Event mit Timeout
|
|
159
|
+
try:
|
|
160
|
+
await asyncio.wait_for(error_event.wait(), timeout=1.0)
|
|
161
|
+
except asyncio.TimeoutError as e:
|
|
162
|
+
raise AssertionError("Error handler wurde nicht aufgerufen") from e
|
|
163
|
+
|
|
164
|
+
# Überprüfe Fehlerbehandlung
|
|
165
|
+
assert isinstance(error_value, ValueError), f"Erwartete ValueError, bekam {type(error_value)}"
|
|
166
|
+
assert str(error_value) == "Test error"
|
|
167
|
+
assert processed_values == [1, 2]
|
|
168
|
+
|
|
169
|
+
# Versuche weitere Werte zu senden
|
|
170
|
+
subject.on_next(3)
|
|
171
|
+
await asyncio.sleep(0.2)
|
|
172
|
+
|
|
173
|
+
# Überprüfe, dass keine weiteren Werte verarbeitet wurden
|
|
174
|
+
assert processed_values == [1, 2], f"Nach Fehler wurden weitere Werte verarbeitet: {processed_values}"
|
|
175
|
+
finally:
|
|
176
|
+
# Cleanup
|
|
177
|
+
disposable.dispose()
|
|
178
|
+
await asyncio.sleep(0.2) # Warte auf Cleanup
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
if __name__ == "__main__":
|
|
182
|
+
|
|
183
|
+
async def run_tests():
|
|
184
|
+
print("Testing endless operation...")
|
|
185
|
+
await test_asubscribe_endless_operation()
|
|
186
|
+
print("Endless operation test completed!")
|
|
187
|
+
|
|
188
|
+
print("\nTesting self-completing operation...")
|
|
189
|
+
await test_asubscribe_self_completing_operation()
|
|
190
|
+
print("Self-completing operation test completed!")
|
|
191
|
+
|
|
192
|
+
print("\nTesting error handling...")
|
|
193
|
+
await test_asubscribe_error_handling()
|
|
194
|
+
print("Error handling test completed!")
|
|
195
|
+
|
|
196
|
+
asyncio.run(run_tests())
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
|
|
2
|
-
import type { AuthLoginRequest, AuthNewLoginRequest, AuthParamsRequest, AuthRefreshRequest,
|
|
2
|
+
import type { AuthLoginRequest, AuthNewLoginRequest, AuthParamsRequest, AuthRefreshRequest, JwtTokenClientData, PaginationRequest } from '../types/index.js';
|
|
3
3
|
export declare class AuthController {
|
|
4
4
|
private app;
|
|
5
5
|
private configService;
|
|
@@ -7,7 +7,7 @@ export declare class AuthController {
|
|
|
7
7
|
private userService;
|
|
8
8
|
constructor(app: FastifyInstance);
|
|
9
9
|
check(req: FastifyRequest<AuthLoginRequest>, reply: FastifyReply): FastifyReply;
|
|
10
|
-
list(req: FastifyRequest<AuthLoginRequest &
|
|
10
|
+
list(req: FastifyRequest<AuthLoginRequest & PaginationRequest>, reply: FastifyReply): FastifyReply | JwtTokenClientData[];
|
|
11
11
|
login(req: FastifyRequest<AuthNewLoginRequest>, reply: FastifyReply): Promise<FastifyReply | void>;
|
|
12
12
|
logout(req: FastifyRequest, reply: FastifyReply): Promise<FastifyReply>;
|
|
13
13
|
logoutByToken(req: FastifyRequest<AuthLoginRequest & AuthParamsRequest>, reply: FastifyReply): Promise<FastifyReply>;
|