@camera.ui/server 0.0.16 → 0.0.17
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/{@tanstack.BjdVg-TE.0.0.16.js → @tanstack.Y8LHKTFF.0.0.17.js} +1 -1
- package/dist/interface/{@vee-validate.BY4_2lEs.0.0.16.js → @vee-validate.BcG8e5-Z.0.0.17.js} +1 -1
- package/dist/interface/{@vueform.DFvJBWIi.0.0.16.js → @vueform.Cnqje5-g.0.0.17.js} +1 -1
- package/dist/interface/{@vueuse.CGN12qog.0.0.16.js → @vueuse.CxdA24o0.0.0.17.js} +1 -1
- package/dist/interface/Account.K0D29-KE.0.0.17.js +1 -0
- package/dist/interface/{Adminpanel.FTycvGGP.0.0.16.js → Adminpanel.CaLBYPHc.0.0.17.js} +2 -2
- package/dist/interface/{Appearance.DZdFEn29.0.0.16.js → Appearance.-L_mn_-o.0.0.17.js} +1 -1
- package/dist/interface/{Backup.C63DnD6l.0.0.16.js → Backup.DjU1SUNp.0.0.17.js} +1 -1
- package/dist/interface/{Camera.ClZr_XH5.0.0.16.js → Camera.BgoyeEmQ.0.0.17.js} +1 -1
- package/dist/interface/Cameras.CTzvFhZB.0.0.17.js +1 -0
- package/dist/interface/{Camview.Bo4mLtoT.0.0.16.js → Camview.AIHZOcpe.0.0.17.js} +1 -1
- package/dist/interface/Config.Dwreik6Q.0.0.17.js +1 -0
- package/dist/interface/{Console.8oN5H7vV.0.0.16.js → Console.65ILbQYd.0.0.17.js} +1 -1
- package/dist/interface/FirstSteps.CLRJ9qAX.0.0.17.js +1 -0
- package/dist/interface/{NewCamera.0K90OojR.0.0.16.js → NewCamera.C3vbU4C7.0.0.17.js} +1 -1
- package/dist/interface/Plugin.B5hYYBYQ.0.0.17.js +1 -0
- package/dist/interface/{Plugins.49uEjmzr.0.0.16.js → Plugins.CfRQtEq_.0.0.17.js} +1 -1
- package/dist/interface/Recordings.BbFFnSvi.0.0.17.js +1 -0
- package/dist/interface/Recordings.BfuhtdIj.0.0.17.js +1 -0
- package/dist/interface/{Settings.LCEZwyhh.0.0.16.js → Settings.BdOXqaEX.0.0.17.js} +1 -1
- package/dist/interface/System.ysu799BZ.0.0.17.js +4 -0
- package/dist/interface/User.D7asFmwE.0.0.17.js +1 -0
- package/dist/interface/{VConfigEditor.vue_vue_type_script_setup_true_lang.J5gKGR9C.0.0.16.js → VConfigEditor.vue_vue_type_script_setup_true_lang.BAxsYS8n.0.0.17.js} +2 -2
- package/dist/interface/{VConsole.BStq4qh-.0.0.16.js → VConsole.C7xGb1ES.0.0.17.js} +1 -1
- package/dist/interface/VPlayer.Dhm7j4pg.0.0.17.js +1 -0
- package/dist/interface/{VPluginCard.DR63SC8V.0.0.16.js → VPluginCard.Drmi3fPn.0.0.17.js} +1 -1
- package/dist/interface/{ace-builds.BhnhUUTY.0.0.16.js → ace-builds.BwzeyovQ.0.0.17.js} +1 -1
- package/dist/interface/assets/{Account.0.0.16.2KfYXKTQ.css → Account.0.0.17.BCEftDNE.css} +1 -1
- package/dist/interface/assets/{Cameras.0.0.16.D7bnvH42.css → Cameras.0.0.17.Djx0F2MM.css} +1 -1
- package/dist/interface/assets/{Camview.0.0.16.cgjDTjXy.css → Camview.0.0.17.Ce_V-Nxj.css} +1 -1
- package/dist/interface/assets/{Config.0.0.16.BQJF6s_V.css → Config.0.0.17.k4QpWumg.css} +1 -1
- package/dist/interface/assets/FirstSteps.0.0.17.27JF_jaE.css +1 -0
- package/dist/interface/assets/{Plugin.0.0.16.BGZE7hpr.css → Plugin.0.0.17.CY2rlLw0.css} +1 -1
- package/dist/interface/assets/User.0.0.17.DAaNwzw2.css +1 -0
- package/dist/interface/assets/{VPlayer.0.0.16.CzZme_fu.css → VPlayer.0.0.17.CY8lPcC-.css} +1 -1
- package/dist/interface/assets/{main.0.0.16.DYbE3rQA.css → main.0.0.17.CkZIZCwa.css} +1 -1
- package/dist/interface/axios.CpM4fnec.0.0.17.js +6 -0
- package/dist/interface/{dnd-core.B69q2Tfk.0.0.16.js → dnd-core.BE3BG1Ef.0.0.17.js} +1 -1
- package/dist/interface/{draggabilly.DKBJ_DRn.0.0.16.js → draggabilly.lOopoogm.0.0.17.js} +1 -1
- package/dist/interface/{engine.io-client.D47Vn3PY.0.0.16.js → engine.io-client.D9WQML-S.0.0.17.js} +1 -1
- package/dist/interface/{ev-emitter.CO554XzW.0.0.16.js → ev-emitter.DS-zFO5E.0.0.17.js} +1 -1
- package/dist/interface/{fast-deep-equal.CjfEj15C.0.0.16.js → fast-deep-equal.BEv36PJS.0.0.17.js} +1 -1
- package/dist/interface/{highlight.js.CsG_3GKA.0.0.16.js → highlight.js.7wLgKNe8.0.0.17.js} +1 -1
- package/dist/interface/index.html +33 -33
- package/dist/interface/{linkify-it.D-Re04U7.0.0.16.js → linkify-it.D8o-3IGu.0.0.17.js} +1 -1
- package/dist/interface/main.tEGILaMo.0.0.17.js +9 -0
- package/dist/interface/manifest.webmanifest +1 -1
- package/dist/interface/{markdown-it.BSj0kuDJ.0.0.16.js → markdown-it.B4HcXc4c.0.0.17.js} +1 -1
- package/dist/interface/{nprogress.CN7SpneM.0.0.16.js → nprogress.YYjE43ko.0.0.17.js} +1 -1
- package/dist/interface/{pinia.DHXyXuKc.0.0.16.js → pinia.BN10dGtz.0.0.17.js} +1 -1
- package/dist/interface/{plugins.FSy44vXn.0.0.16.js → plugins.DGem6WnK.0.0.17.js} +1 -1
- package/dist/interface/{qrcode.DjqZuH8F.0.0.16.js → qrcode.D-tn4nkj.0.0.17.js} +1 -1
- package/dist/interface/{react-dnd-touch-backend.Cecw_0Kl.0.0.16.js → react-dnd-touch-backend.BYa4rNzf.0.0.17.js} +1 -1
- package/dist/interface/{rxjs.tqVqva9T.0.0.16.js → rxjs.DfibtzOq.0.0.17.js} +1 -1
- package/dist/interface/{socket.io-client.BFAMFJUC.0.0.16.js → socket.io-client.C_uPgwFs.0.0.17.js} +1 -1
- package/dist/interface/{socket.io-parser.B5BeMqb6.0.0.16.js → socket.io-parser.BCv62i4g.0.0.17.js} +1 -1
- package/dist/interface/sw.js +1 -1
- package/dist/interface/system.QcA_yDW7.0.0.17.js +1 -0
- package/dist/interface/{ui.CcXHo2vy.0.0.16.js → ui.CsoNsn0g.0.0.17.js} +1 -1
- package/dist/interface/{unidragger.B3Aj7lJB.0.0.16.js → unidragger.CE1ihPjj.0.0.17.js} +1 -1
- package/dist/interface/{v-calendar.y5PNpUm6.0.0.16.js → v-calendar.uhLzWnBK.0.0.17.js} +1 -1
- package/dist/interface/{vee-validate.VFk2ifr-.0.0.16.js → vee-validate.Dks-nw4k.0.0.17.js} +1 -1
- package/dist/interface/{vue-i18n.BRzZ63Xi.0.0.16.js → vue-i18n.C41_xexi.0.0.17.js} +1 -1
- package/dist/interface/{vue-inline-svg.De0HvU9m.0.0.16.js → vue-inline-svg.BKM1fqUr.0.0.17.js} +1 -1
- package/dist/interface/{vue-router.Cr6qPC8Y.0.0.16.js → vue-router.BPduPoYE.0.0.17.js} +1 -1
- package/dist/interface/{vue3-apexcharts.BMb8nnby.0.0.16.js → vue3-apexcharts.CUMFs3zS.0.0.17.js} +1 -1
- package/dist/interface/{vue3-dnd.SEoyozNj.0.0.16.js → vue3-dnd.BNLgSXFo.0.0.17.js} +1 -1
- package/dist/interface/{vue3-toastify.DUisHb3e.0.0.16.js → vue3-toastify.D4rGDrYT.0.0.17.js} +1 -1
- package/dist/interface/{vuetify.DByERR9S.0.0.16.js → vuetify.C_gaTn8T.0.0.17.js} +1 -1
- package/dist/server/bin/cameraui.d.ts +4 -0
- package/dist/server/bin/cameraui.js +47 -33
- package/dist/server/bin/cameraui.js.map +1 -1
- package/dist/server/bin/installer/darwin.d.ts +4 -0
- package/dist/server/bin/installer/darwin.js +37 -29
- package/dist/server/bin/installer/darwin.js.map +1 -1
- package/dist/server/bin/installer/freebsd.d.ts +4 -5
- package/dist/server/bin/installer/freebsd.js +23 -33
- package/dist/server/bin/installer/freebsd.js.map +1 -1
- package/dist/server/bin/installer/linux.d.ts +7 -0
- package/dist/server/bin/installer/linux.js +53 -27
- package/dist/server/bin/installer/linux.js.map +1 -1
- package/dist/server/bin/installer/win32.d.ts +4 -0
- package/dist/server/bin/installer/win32.js +21 -14
- package/dist/server/bin/installer/win32.js.map +1 -1
- package/dist/server/package.json +4 -4
- package/dist/server/src/api/controllers/backup.controller.js +2 -2
- package/dist/server/src/api/controllers/backup.controller.js.map +1 -1
- package/dist/server/src/api/controllers/plugins.controller.js +42 -40
- package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
- package/dist/server/src/api/controllers/system.controller.d.ts +3 -2
- package/dist/server/src/api/controllers/system.controller.js +19 -21
- package/dist/server/src/api/controllers/system.controller.js.map +1 -1
- package/dist/server/src/api/controllers/users.controller.js +12 -1
- package/dist/server/src/api/controllers/users.controller.js.map +1 -1
- package/dist/server/src/api/database/index.js +5 -4
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/database/types.d.ts +7 -2
- package/dist/server/src/api/plugins/system.plugin.js +1 -4
- package/dist/server/src/api/plugins/system.plugin.js.map +1 -1
- package/dist/server/src/api/routes/system.routes.js +2 -2
- package/dist/server/src/api/routes/system.routes.js.map +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +15 -15
- package/dist/server/src/api/schemas/cameras.schema.js +2 -2
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/schemas/go2rtc.schema.d.ts +14 -14
- package/dist/server/src/api/schemas/users.schema.d.ts +2 -2
- package/dist/server/src/api/schemas/users.schema.js +4 -15
- package/dist/server/src/api/schemas/users.schema.js.map +1 -1
- package/dist/server/src/api/services/backup.service.js +16 -15
- package/dist/server/src/api/services/backup.service.js.map +1 -1
- package/dist/server/src/api/services/cameras.service.js +10 -2
- package/dist/server/src/api/services/cameras.service.js.map +1 -1
- package/dist/server/src/api/utils/cert.d.ts +1 -1
- package/dist/server/src/api/utils/cert.js +14 -14
- package/dist/server/src/api/utils/cert.js.map +1 -1
- package/dist/server/src/api/utils/moveFiles.js +6 -5
- package/dist/server/src/api/utils/moveFiles.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/logs.js +5 -4
- package/dist/server/src/api/websocket/nsp/logs.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/server.js +3 -2
- package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
- package/dist/server/src/camera/index.js +2 -0
- package/dist/server/src/camera/index.js.map +1 -1
- package/dist/server/src/camera/iou.d.ts +2 -0
- package/dist/server/src/camera/iou.js +53 -0
- package/dist/server/src/camera/iou.js.map +1 -0
- package/dist/server/src/camera/streaming/peer-connection.d.ts +3 -1
- package/dist/server/src/camera/streaming/peer-connection.js +12 -7
- package/dist/server/src/camera/streaming/peer-connection.js.map +1 -1
- package/dist/server/src/camera/streaming/webrtc-connection.d.ts +2 -0
- package/dist/server/src/camera/streaming/webrtc-connection.js +28 -10
- package/dist/server/src/camera/streaming/webrtc-connection.js.map +1 -1
- package/dist/server/src/camera/types.d.ts +2 -1
- package/dist/server/src/camera/types.js.map +1 -1
- package/dist/server/src/main.js +8 -4
- package/dist/server/src/main.js.map +1 -1
- package/dist/server/src/nats/server.js +4 -3
- package/dist/server/src/nats/server.js.map +1 -1
- package/dist/server/src/plugins/index.js +12 -9
- package/dist/server/src/plugins/index.js.map +1 -1
- package/dist/server/src/plugins/plugin.js +6 -4
- package/dist/server/src/plugins/plugin.js.map +1 -1
- package/dist/server/src/plugins/worker.d.ts +1 -0
- package/dist/server/src/plugins/worker.js +24 -16
- package/dist/server/src/plugins/worker.js.map +1 -1
- package/dist/server/src/polyglot/node/decoder/child.js +16 -10
- package/dist/server/src/polyglot/node/decoder/child.js.map +1 -1
- package/dist/server/src/polyglot/node/decoder/imageUtils.js +2 -2
- package/dist/server/src/polyglot/node/decoder/imageUtils.js.map +1 -1
- package/dist/server/src/polyglot/node/plugins/cameraStorage.d.ts +0 -1
- package/dist/server/src/polyglot/node/plugins/cameraStorage.js +1 -11
- package/dist/server/src/polyglot/node/plugins/cameraStorage.js.map +1 -1
- package/dist/server/src/polyglot/node/plugins/child.js +3 -3
- package/dist/server/src/polyglot/node/plugins/child.js.map +1 -1
- package/dist/server/src/polyglot/node/plugins/configService.d.ts +1 -1
- package/dist/server/src/polyglot/node/plugins/configService.js +5 -5
- package/dist/server/src/polyglot/node/plugins/configService.js.map +1 -1
- package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.d.ts +4 -4
- package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.js +55 -46
- package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.js.map +1 -1
- package/dist/server/src/polyglot/python/camera/iou.py +80 -0
- package/dist/server/src/polyglot/python/camera_ui_types/__init__.py +15 -9
- package/dist/server/src/polyglot/python/decoder/child.py +20 -12
- package/dist/server/src/polyglot/python/plugins/camera_storage.py +7 -27
- package/dist/server/src/polyglot/python/plugins/child.py +32 -20
- package/dist/server/src/polyglot/python/plugins/config_service.py +8 -1
- package/dist/server/src/polyglot/python/plugins/proxy/camera_device.py +88 -53
- package/dist/server/src/polyglot/python/plugins/typings.py +6 -0
- package/dist/server/src/polyglot/python/utilities/subscriptions.py +6 -4
- package/dist/server/src/polyglot/python/utilities/utils.py +49 -36
- package/dist/server/src/services/config/index.js +32 -21
- package/dist/server/src/services/config/index.js.map +1 -1
- package/dist/server/src/utils/npm.js +3 -3
- package/dist/server/src/utils/npm.js.map +1 -1
- package/dist/server/src/utils/pythonInstaller.js +16 -14
- package/dist/server/src/utils/pythonInstaller.js.map +1 -1
- package/package.json +4 -4
- package/dist/interface/Account.CfJ0_AE8.0.0.16.js +0 -1
- package/dist/interface/Cameras.Du8aeeME.0.0.16.js +0 -1
- package/dist/interface/Config.XeCgFEoY.0.0.16.js +0 -1
- package/dist/interface/FirstSteps.mXqKiWM8.0.0.16.js +0 -1
- package/dist/interface/Plugin.BR9zmMja.0.0.16.js +0 -1
- package/dist/interface/Recordings.Bi4EWX-j.0.0.16.js +0 -1
- package/dist/interface/Recordings.Ce60GFcU.0.0.16.js +0 -1
- package/dist/interface/System.BLePSJ80.0.0.16.js +0 -4
- package/dist/interface/User.C2qVrMxN.0.0.16.js +0 -1
- package/dist/interface/VPlayer.B3YorBp_.0.0.16.js +0 -1
- package/dist/interface/assets/FirstSteps.0.0.16.DFSydMqk.css +0 -1
- package/dist/interface/assets/User.0.0.16.CXUSYt8i.css +0 -1
- package/dist/interface/axios.BI2i94Vb.0.0.16.js +0 -6
- package/dist/interface/main.CySWzYoy.0.0.16.js +0 -9
- package/dist/interface/system.DlYVX2qG.0.0.16.js +0 -1
- /package/dist/interface/{@babel.l0sNRNKZ.0.0.16.js → @babel.l0sNRNKZ.0.0.17.js} +0 -0
- /package/dist/interface/{@intlify.YW_pt133.0.0.16.js → @intlify.YW_pt133.0.0.17.js} +0 -0
- /package/dist/interface/{@mdi.jq8isxax.0.0.16.js → @mdi.jq8isxax.0.0.17.js} +0 -0
- /package/dist/interface/{@popperjs.BQBsAJpH.0.0.16.js → @popperjs.BQBsAJpH.0.0.17.js} +0 -0
- /package/dist/interface/{@react-dnd.CcwRs9xb.0.0.16.js → @react-dnd.CcwRs9xb.0.0.17.js} +0 -0
- /package/dist/interface/{@socket.io.Dkula2eQ.0.0.16.js → @socket.io.Dkula2eQ.0.0.17.js} +0 -0
- /package/dist/interface/{@vue.CIFymae3.0.0.16.js → @vue.CIFymae3.0.0.17.js} +0 -0
- /package/dist/interface/{@xterm.UN9r0Y94.0.0.16.js → @xterm.Cq_3w6CG.0.0.17.js} +0 -0
- /package/dist/interface/assets/{@vueform.0.0.16.h7tNX9p6.css → @vueform.0.0.17.h7tNX9p6.css} +0 -0
- /package/dist/interface/assets/{@xterm.0.0.16.CGrrDQr5.css → @xterm.0.0.17.CGrrDQr5.css} +0 -0
- /package/dist/interface/assets/{Adminpanel.0.0.16.A2JXV1Ib.css → Adminpanel.0.0.17.A2JXV1Ib.css} +0 -0
- /package/dist/interface/assets/{Backup.0.0.16.BIwaSlv3.css → Backup.0.0.17.BIwaSlv3.css} +0 -0
- /package/dist/interface/assets/{Camera.0.0.16.BDtUJ-lA.css → Camera.0.0.17.BDtUJ-lA.css} +0 -0
- /package/dist/interface/assets/{Console.0.0.16.DWrfRWs9.css → Console.0.0.17.DWrfRWs9.css} +0 -0
- /package/dist/interface/assets/{NewCamera.0.0.16.CMzSwwHn.css → NewCamera.0.0.17.CMzSwwHn.css} +0 -0
- /package/dist/interface/assets/{Plugins.0.0.16.Cwu0aGUO.css → Plugins.0.0.17.Cwu0aGUO.css} +0 -0
- /package/dist/interface/assets/{Settings.0.0.16.DTxcLhIY.css → Settings.0.0.17.DTxcLhIY.css} +0 -0
- /package/dist/interface/assets/{VConsole.0.0.16.BZT1WyS-.css → VConsole.0.0.17.BZT1WyS-.css} +0 -0
- /package/dist/interface/assets/{VPluginCard.0.0.16.C2OqX7DJ.css → VPluginCard.0.0.17.C2OqX7DJ.css} +0 -0
- /package/dist/interface/assets/{highlight.0.0.16.DgoK_Xib.css → highlight.0.0.17.DgoK_Xib.css} +0 -0
- /package/dist/interface/assets/{logo-256.0.0.16.BCQk9H1-.png → logo-256.0.0.17.BCQk9H1-.png} +0 -0
- /package/dist/interface/assets/{logo-512.0.0.16.DLKVOU2S.png → logo-512.0.0.17.DLKVOU2S.png} +0 -0
- /package/dist/interface/assets/{logo.0.0.16.DmEiRk0z.png → logo.0.0.17.DmEiRk0z.png} +0 -0
- /package/dist/interface/assets/{mode-json.0.0.16.Br7xisR1.js → mode-json.0.0.17.Br7xisR1.js} +0 -0
- /package/dist/interface/assets/{mode-yaml.0.0.16.CIYL8U3d.js → mode-yaml.0.0.17.CIYL8U3d.js} +0 -0
- /package/dist/interface/assets/{v-calendar.0.0.16.CtSuDYZU.css → v-calendar.0.0.17.CtSuDYZU.css} +0 -0
- /package/dist/interface/assets/{vue3-toastify.0.0.16.DTY1DMRs.css → vue3-toastify.0.0.17.DTY1DMRs.css} +0 -0
- /package/dist/interface/assets/{vuetify.0.0.16.DPyVfAPv.css → vuetify.0.0.17.DPyVfAPv.css} +0 -0
- /package/dist/interface/{compare-versions.DqEOhma6.0.0.16.js → compare-versions.DqEOhma6.0.0.17.js} +0 -0
- /package/dist/interface/{dijkstrajs.D_NXgYpA.0.0.16.js → dijkstrajs.D_NXgYpA.0.0.17.js} +0 -0
- /package/dist/interface/{engine.io-parser.BiEtp6m2.0.0.16.js → engine.io-parser.BiEtp6m2.0.0.17.js} +0 -0
- /package/dist/interface/{entities.C20TfXL6.0.0.16.js → entities.C20TfXL6.0.0.17.js} +0 -0
- /package/dist/interface/{get-size.D1dS-IaP.0.0.16.js → get-size.D1dS-IaP.0.0.17.js} +0 -0
- /package/dist/interface/{mdurl.k9Sl0PQj.0.0.16.js → mdurl.k9Sl0PQj.0.0.17.js} +0 -0
- /package/dist/interface/{punycode.js.Dj65hjkv.0.0.16.js → punycode.js.Dj65hjkv.0.0.17.js} +0 -0
- /package/dist/interface/{react-dnd-html5-backend.1HQjlkwI.0.0.16.js → react-dnd-html5-backend.1HQjlkwI.0.0.17.js} +0 -0
- /package/dist/interface/{redux.CuxFRhX_.0.0.16.js → redux.CuxFRhX_.0.0.17.js} +0 -0
- /package/dist/interface/{tslib.9k7AwCpt.0.0.16.js → tslib.9k7AwCpt.0.0.17.js} +0 -0
- /package/dist/interface/{uc.micro.kMc2yuuw.0.0.16.js → uc.micro.kMc2yuuw.0.0.17.js} +0 -0
- /package/dist/interface/{utils.BvINh1mj.0.0.16.js → utils.BvINh1mj.0.0.17.js} +0 -0
- /package/dist/interface/{uuid.DvF23Exx.0.0.16.js → uuid.DvF23Exx.0.0.17.js} +0 -0
- /package/dist/interface/{vue.l0sNRNKZ.0.0.16.js → vue.l0sNRNKZ.0.0.17.js} +0 -0
- /package/dist/interface/{zod.BaF2dDCd.0.0.16.js → zod.BaF2dDCd.0.0.17.js} +0 -0
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { mkdirp, pathExists } from 'fs-extra/esm';
|
|
2
2
|
import { execSync } from 'node:child_process';
|
|
3
|
+
import { existsSync, rmdirSync, unlinkSync } from 'node:fs';
|
|
4
|
+
import { chmod, readdir, rm, writeFile } from 'node:fs/promises';
|
|
3
5
|
import { platform, userInfo } from 'node:os';
|
|
4
6
|
import { dirname, join, resolve } from 'node:path';
|
|
5
7
|
import { fileURLToPath } from 'node:url';
|
|
6
8
|
import { osInfo } from 'systeminformation';
|
|
9
|
+
import { getNpmPath } from '../../src/utils/npm.js';
|
|
7
10
|
import { BasePlatform } from './base.js';
|
|
8
11
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
12
|
const __dirname = dirname(__filename);
|
|
@@ -36,30 +39,29 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
36
39
|
await this.enableService();
|
|
37
40
|
await this.createFirewallRules();
|
|
38
41
|
await this.start();
|
|
39
|
-
const apiReady = await this.cli.waitForApiHealth();
|
|
40
|
-
if (apiReady) {
|
|
41
|
-
await this.cli.printPostInstallInstructions();
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
this.cli.logger('WARNING: There might be errors, or the setup might still be in progress.\n' + ' You can check the logs using the command: cameraui logs', 'warn');
|
|
45
|
-
}
|
|
46
42
|
}
|
|
47
43
|
catch (e) {
|
|
48
44
|
console.error(e.toString());
|
|
49
45
|
this.cli.logger('ERROR: Failed Operation', 'fail');
|
|
50
46
|
}
|
|
51
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Removes the systemd service
|
|
50
|
+
*/
|
|
52
51
|
async uninstall() {
|
|
53
52
|
this.checkForRoot();
|
|
54
53
|
await this.stop();
|
|
55
54
|
// try and disable the service
|
|
56
55
|
await this.disableService();
|
|
57
56
|
try {
|
|
58
|
-
if (
|
|
59
|
-
|
|
57
|
+
if (existsSync(this.systemdServicePath)) {
|
|
58
|
+
unlinkSync(this.systemdServicePath);
|
|
60
59
|
}
|
|
61
|
-
if (
|
|
62
|
-
|
|
60
|
+
if (existsSync(this.systemdEnvPath)) {
|
|
61
|
+
unlinkSync(this.systemdEnvPath);
|
|
62
|
+
}
|
|
63
|
+
if (existsSync(this.runPartsPath)) {
|
|
64
|
+
rmdirSync(this.runPartsPath, { recursive: true });
|
|
63
65
|
}
|
|
64
66
|
// reload services
|
|
65
67
|
await this.reloadSystemd();
|
|
@@ -79,6 +81,7 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
79
81
|
try {
|
|
80
82
|
execSync(`systemctl start ${this.systemdServiceName}`);
|
|
81
83
|
execSync(`systemctl status ${this.systemdServiceName} --no-pager`);
|
|
84
|
+
await this.waitForApiAndPrintInstructions();
|
|
82
85
|
}
|
|
83
86
|
catch (e) {
|
|
84
87
|
this.cli.logger(`Failed to start ${this.cli.serviceName} - ` + e, 'fail');
|
|
@@ -108,6 +111,7 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
108
111
|
execSync(`systemctl restart ${this.systemdServiceName}`);
|
|
109
112
|
execSync(`systemctl status ${this.systemdServiceName} --no-pager`);
|
|
110
113
|
this.cli.logger(`${this.cli.serviceName} restarted`, 'succeed');
|
|
114
|
+
await this.waitForApiAndPrintInstructions();
|
|
111
115
|
}
|
|
112
116
|
catch (e) {
|
|
113
117
|
this.cli.logger(`Failed to restart ${this.cli.serviceName} - ` + e, 'fail');
|
|
@@ -132,12 +136,12 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
132
136
|
process.exit(0);
|
|
133
137
|
}, 60000);
|
|
134
138
|
const modulesPath = join(dirname(baseDir), moduleName.split('/')[0]);
|
|
135
|
-
const temporaryDirectoriesToClean = (await
|
|
139
|
+
const temporaryDirectoriesToClean = (await readdir(modulesPath)).filter((x) => x.startsWith(tempModuleName));
|
|
136
140
|
for (const directory of temporaryDirectoriesToClean) {
|
|
137
141
|
const pathToRemove = join(modulesPath, directory);
|
|
138
142
|
try {
|
|
139
143
|
console.log('Removing stale temporary directory:', pathToRemove);
|
|
140
|
-
await
|
|
144
|
+
await rm(pathToRemove, { recursive: true, force: true });
|
|
141
145
|
}
|
|
142
146
|
catch (e) {
|
|
143
147
|
console.error('Failed to remove:', pathToRemove, e);
|
|
@@ -181,6 +185,18 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
181
185
|
return null;
|
|
182
186
|
}
|
|
183
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Wait for the API to be ready and print instructions
|
|
190
|
+
*/
|
|
191
|
+
async waitForApiAndPrintInstructions() {
|
|
192
|
+
const apiReady = await this.cli.waitForApiHealth();
|
|
193
|
+
if (apiReady) {
|
|
194
|
+
await this.cli.printPostInstallInstructions();
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
this.cli.logger('WARNING: There might be errors, or the setup might still be in progress.\n' + ' You can check the logs using the command: cameraui logs', 'warn');
|
|
198
|
+
}
|
|
199
|
+
}
|
|
184
200
|
/**
|
|
185
201
|
* Reloads systemd
|
|
186
202
|
*/
|
|
@@ -262,7 +278,7 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
262
278
|
* Fixes the permission on the storage path
|
|
263
279
|
*/
|
|
264
280
|
fixPermissions() {
|
|
265
|
-
if (
|
|
281
|
+
if (existsSync(this.systemdServicePath) && existsSync(this.systemdEnvPath)) {
|
|
266
282
|
try {
|
|
267
283
|
// extract the user this process is running as
|
|
268
284
|
const serviceUser = execSync(`cat "${this.systemdServicePath}" | grep "User=" | awk -F'=' '{print $2}'`).toString('utf8').trim();
|
|
@@ -273,14 +289,18 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
273
289
|
const storagePath = execSync(`cat "${this.systemdEnvPath}" | grep "CAMERA_UI_STORAGE_PATH" | awk -F'=' '{print $2}' | sed -e 's/^"//' -e 's/"$//'`)
|
|
274
290
|
.toString('utf8')
|
|
275
291
|
.trim();
|
|
276
|
-
|
|
277
|
-
|
|
292
|
+
const installPath = execSync(`cat "${this.systemdEnvPath}" | grep "CAMERA_UI_INSTALL_PATH" | awk -F'=' '{print $2}' | sed -e 's/^"//' -e 's/"$//'`)
|
|
293
|
+
.toString('utf8')
|
|
294
|
+
.trim();
|
|
295
|
+
if (existsSync(homePath)) {
|
|
278
296
|
execSync(`chown -R ${serviceUser}: "${homePath}"`);
|
|
279
297
|
}
|
|
280
|
-
if (
|
|
281
|
-
// chown the storage directory to the service user
|
|
298
|
+
if (existsSync(storagePath)) {
|
|
282
299
|
execSync(`chown -R ${serviceUser}: "${storagePath}"`);
|
|
283
300
|
}
|
|
301
|
+
if (existsSync(installPath)) {
|
|
302
|
+
execSync(`chown -R ${serviceUser}: "${installPath}"`);
|
|
303
|
+
}
|
|
284
304
|
execSync(`chmod a+x ${this.cli.selfPath}`);
|
|
285
305
|
}
|
|
286
306
|
catch {
|
|
@@ -293,11 +313,11 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
293
313
|
*/
|
|
294
314
|
async createFirewallRules() {
|
|
295
315
|
// check ufw is present on the system (debian based linux)
|
|
296
|
-
if (await
|
|
316
|
+
if (await pathExists('/usr/sbin/ufw')) {
|
|
297
317
|
return await this.createUfwRules();
|
|
298
318
|
}
|
|
299
319
|
// check firewall-cmd is present on the system (enterprise linux)
|
|
300
|
-
if (await
|
|
320
|
+
if (await pathExists('/usr/bin/firewall-cmd')) {
|
|
301
321
|
return await this.createFirewallCmdRules();
|
|
302
322
|
}
|
|
303
323
|
}
|
|
@@ -348,7 +368,7 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
348
368
|
* The default script will ensure the camera.ui storage path has the correct permissions each time camera.ui starts
|
|
349
369
|
*/
|
|
350
370
|
async createRunPartsPath() {
|
|
351
|
-
await
|
|
371
|
+
await mkdirp(this.runPartsPath);
|
|
352
372
|
const permissionScriptPath = resolve(this.runPartsPath, '10-fix-permissions');
|
|
353
373
|
const permissionScript = [
|
|
354
374
|
'#!/bin/sh',
|
|
@@ -391,11 +411,16 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
391
411
|
'if [ -n "$CAMERA_UI_STORAGE_PATH" ] && [ -n "$USER" ]; then',
|
|
392
412
|
' ensure_permissions "$CAMERA_UI_STORAGE_PATH" "$USER" || exit 1',
|
|
393
413
|
'fi',
|
|
414
|
+
'',
|
|
415
|
+
'# Ensure the install path permissions are correct',
|
|
416
|
+
'if [ -n "$CAMERA_UI_INSTALL_PATH" ] && [ -n "$USER" ]; then',
|
|
417
|
+
' ensure_permissions "$CAMERA_UI_INSTALL_PATH" "$USER" || exit 1',
|
|
418
|
+
'fi',
|
|
394
419
|
]
|
|
395
420
|
.filter((x) => x !== null)
|
|
396
421
|
.join('\n');
|
|
397
|
-
await
|
|
398
|
-
await
|
|
422
|
+
await writeFile(permissionScriptPath, permissionScript);
|
|
423
|
+
await chmod(permissionScriptPath, '755');
|
|
399
424
|
}
|
|
400
425
|
/**
|
|
401
426
|
* Create the systemd environment file
|
|
@@ -405,13 +430,14 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
405
430
|
`CAMERA_UI_OPTS=-H "${this.cli.homePath}"`,
|
|
406
431
|
`CAMERA_UI_HOME_PATH="${this.cli.homePath}"`,
|
|
407
432
|
`CAMERA_UI_STORAGE_PATH="${this.cli.storagePath}"`,
|
|
433
|
+
`CAMERA_UI_INSTALL_PATH="${this.cli.getInstallDir()}"`,
|
|
408
434
|
'',
|
|
409
435
|
'DISABLE_OPENCOLLECTIVE=true',
|
|
410
436
|
'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/homebridge/bin',
|
|
411
437
|
]
|
|
412
438
|
.filter((x) => x !== null)
|
|
413
439
|
.join('\n');
|
|
414
|
-
await
|
|
440
|
+
await writeFile(this.systemdEnvPath, envFile);
|
|
415
441
|
}
|
|
416
442
|
/**
|
|
417
443
|
* Create the systemd service file
|
|
@@ -443,11 +469,11 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
443
469
|
]
|
|
444
470
|
.filter((x) => x !== null)
|
|
445
471
|
.join('\n');
|
|
446
|
-
await
|
|
472
|
+
await writeFile(this.systemdServicePath, serviceFile);
|
|
447
473
|
}
|
|
448
474
|
async getNpmGlobalModulesDirectory() {
|
|
449
475
|
try {
|
|
450
|
-
const npmPath =
|
|
476
|
+
const npmPath = getNpmPath().join(' ');
|
|
451
477
|
const npmPrefix = execSync(`${npmPath} -g prefix`, {
|
|
452
478
|
env: Object.assign({
|
|
453
479
|
npm_config_loglevel: 'silent',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linux.js","sourceRoot":"","sources":["../../../../bin/installer/linux.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"linux.js","sourceRoot":"","sources":["../../../../bin/installer/linux.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,10 @@ export declare class Win32Installer extends BasePlatform {
|
|
|
20
20
|
* Restarts the Windows 10 camera.ui service
|
|
21
21
|
*/
|
|
22
22
|
restart(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Wait for the API to be ready and print instructions
|
|
25
|
+
*/
|
|
26
|
+
private waitForApiAndPrintInstructions;
|
|
23
27
|
/**
|
|
24
28
|
* Checks if the current user is an admin
|
|
25
29
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { pathExists, remove } from 'fs-extra/esm';
|
|
2
2
|
import { execSync } from 'node:child_process';
|
|
3
|
+
import { createWriteStream } from 'node:fs';
|
|
3
4
|
import { arch } from 'node:os';
|
|
4
5
|
import { resolve } from 'node:path';
|
|
5
6
|
import { Readable } from 'node:stream';
|
|
@@ -20,19 +21,13 @@ export class Win32Installer extends BasePlatform {
|
|
|
20
21
|
const installCmd = `"${nssmPath}" install ${this.cli.serviceName} ` + `"${process.execPath}" "\""${this.cli.selfPath}"\"" run -H "\""${this.cli.homePath}"\""`;
|
|
21
22
|
const setUserDirCmd = `"${nssmPath}" set ${this.cli.serviceName} AppEnvironmentExtra ` +
|
|
22
23
|
`":CAMERA_UI_HOME_PATH=${this.cli.homePath}` +
|
|
24
|
+
`:CAMERA_UI_INSTALL_PATH=${this.cli.storagePath}` +
|
|
23
25
|
`:CAMERA_UI_STORAGE_PATH=${this.cli.storagePath}"`;
|
|
24
26
|
try {
|
|
25
27
|
execSync(installCmd);
|
|
26
28
|
execSync(setUserDirCmd);
|
|
27
29
|
await this.configureFirewall();
|
|
28
30
|
await this.start();
|
|
29
|
-
const apiReady = await this.cli.waitForApiHealth();
|
|
30
|
-
if (apiReady) {
|
|
31
|
-
await this.cli.printPostInstallInstructions();
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
this.cli.logger('WARNING: There might be errors, or the setup might still be in progress.\n' + ' You can check the logs using the command: cameraui logs', 'warn');
|
|
35
|
-
}
|
|
36
31
|
}
|
|
37
32
|
catch (e) {
|
|
38
33
|
console.error(e.toString());
|
|
@@ -63,6 +58,7 @@ export class Win32Installer extends BasePlatform {
|
|
|
63
58
|
try {
|
|
64
59
|
execSync(`sc start ${this.cli.serviceName}`);
|
|
65
60
|
this.cli.logger(`${this.cli.serviceName} Started`, 'succeed');
|
|
61
|
+
await this.waitForApiAndPrintInstructions();
|
|
66
62
|
}
|
|
67
63
|
catch {
|
|
68
64
|
this.cli.logger(`Failed to start ${this.cli.serviceName}`, 'fail');
|
|
@@ -87,9 +83,20 @@ export class Win32Installer extends BasePlatform {
|
|
|
87
83
|
async restart() {
|
|
88
84
|
this.checkIsAdmin();
|
|
89
85
|
await this.stop();
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
86
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
87
|
+
await this.waitForApiAndPrintInstructions();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Wait for the API to be ready and print instructions
|
|
91
|
+
*/
|
|
92
|
+
async waitForApiAndPrintInstructions() {
|
|
93
|
+
const apiReady = await this.cli.waitForApiHealth();
|
|
94
|
+
if (apiReady) {
|
|
95
|
+
await this.cli.printPostInstallInstructions();
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
this.cli.logger('WARNING: There might be errors, or the setup might still be in progress.\n' + ' You can check the logs using the command: cameraui logs', 'warn');
|
|
99
|
+
}
|
|
93
100
|
}
|
|
94
101
|
/**
|
|
95
102
|
* Checks if the current user is an admin
|
|
@@ -113,7 +120,7 @@ export class Win32Installer extends BasePlatform {
|
|
|
113
120
|
const fileName = `nssm_${arch()}.exe`;
|
|
114
121
|
const downloadUrl = `https://github.com/homebridge/nssm/releases/download/2.24-101-g897c7ad/${fileName}`;
|
|
115
122
|
const nssmPath = resolve(this.cli.homePath, 'nssm.exe');
|
|
116
|
-
if (await
|
|
123
|
+
if (await pathExists(nssmPath)) {
|
|
117
124
|
return nssmPath;
|
|
118
125
|
}
|
|
119
126
|
this.cli.logger(`Downloading NSSM from ${downloadUrl}`);
|
|
@@ -126,13 +133,13 @@ export class Win32Installer extends BasePlatform {
|
|
|
126
133
|
throw new Error('No response body');
|
|
127
134
|
}
|
|
128
135
|
this.cli.logger(`Writing ${fileName} to ${nssmPath}`);
|
|
129
|
-
const fileStream =
|
|
136
|
+
const fileStream = createWriteStream(fileName, { flags: 'xw' });
|
|
130
137
|
await finished(Readable.fromWeb(response.body).pipe(fileStream));
|
|
131
138
|
return nssmPath;
|
|
132
139
|
}
|
|
133
140
|
catch (error) {
|
|
134
141
|
// cleanup
|
|
135
|
-
await
|
|
142
|
+
await remove(nssmPath);
|
|
136
143
|
this.cli.logger(`Failed to download nssm: ${error.message}`, 'fail');
|
|
137
144
|
process.exit(0);
|
|
138
145
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"win32.js","sourceRoot":"","sources":["../../../../bin/installer/win32.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"win32.js","sourceRoot":"","sources":["../../../../bin/installer/win32.ts"],"names":[],"mappings":"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"}
|
package/dist/server/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camera.ui/server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.17",
|
|
4
4
|
"description": "camera.ui",
|
|
5
5
|
"author": "seydx (https://github.com/seydx/camera.ui)",
|
|
6
6
|
"bin": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"fastify": "^4.28.1",
|
|
49
49
|
"fastify-plugin": "^4.5.1",
|
|
50
50
|
"fastify-type-provider-zod": "^2.0.0",
|
|
51
|
-
"ffmpeg-for-homebridge": "^2.1.
|
|
51
|
+
"ffmpeg-for-homebridge": "^2.1.1",
|
|
52
52
|
"fs-extra": "^11.2.0",
|
|
53
53
|
"get-port": "^7.1.0",
|
|
54
54
|
"js-yaml": "^4.1.0",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"tcp-port-used": "^1.0.2",
|
|
74
74
|
"tsyringe": "^4.8.0",
|
|
75
75
|
"uuid": "^10.0.0",
|
|
76
|
-
"werift": "^0.19.
|
|
76
|
+
"werift": "^0.19.8",
|
|
77
77
|
"ws": "^8.18.0",
|
|
78
78
|
"zod": "^3.23.8"
|
|
79
79
|
},
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
"nodemon": "^3.1.4",
|
|
106
106
|
"prettier": "^3.3.3",
|
|
107
107
|
"rimraf": "^6.0.1",
|
|
108
|
-
"tsx": "^4.
|
|
108
|
+
"tsx": "^4.18.0",
|
|
109
109
|
"typescript": "^5.5.4",
|
|
110
110
|
"updates": "^16.4.0"
|
|
111
111
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { readFile } from 'node:fs';
|
|
2
2
|
import { container } from 'tsyringe';
|
|
3
3
|
import { BackupService } from '../services/backup.service.js';
|
|
4
4
|
export class BackupController {
|
|
@@ -13,7 +13,7 @@ export class BackupController {
|
|
|
13
13
|
async download(req, reply) {
|
|
14
14
|
try {
|
|
15
15
|
const backup = await this.service.createBackup(req.body.localStorage);
|
|
16
|
-
|
|
16
|
+
readFile(backup.backupFile, (error, fileBuffer) => {
|
|
17
17
|
if (error) {
|
|
18
18
|
this.logger.error(error);
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.controller.js","sourceRoot":"","sources":["../../../../../src/api/controllers/backup.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"backup.controller.js","sourceRoot":"","sources":["../../../../../src/api/controllers/backup.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAM9D,MAAM,OAAO,gBAAgB;IACnB,GAAG,CAAkB;IACrB,MAAM,CAAS;IACf,OAAO,CAAgB;IAE/B,YAAY,GAAoB;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,CAAS,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,GAA2D,EAAE,KAAmB;QACpG,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEtE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBAChD,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;YACzD,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC,CAAC;YAE9E,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAA4D,EAAE,KAAmB;QACpG,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEvE,qBAAqB;YACrB,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC;YAE3B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
|