@camera.ui/server 0.0.16 → 0.0.18
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.BCXmYi64.0.0.18.js} +1 -1
- package/dist/interface/{@vee-validate.BY4_2lEs.0.0.16.js → @vee-validate.DCJe6WUi.0.0.18.js} +1 -1
- package/dist/interface/{@vueform.DFvJBWIi.0.0.16.js → @vueform.BKLrt5D1.0.0.18.js} +1 -1
- package/dist/interface/{@vueuse.CGN12qog.0.0.16.js → @vueuse.DylADnPe.0.0.18.js} +1 -1
- package/dist/interface/Account.NMGyyOox.0.0.18.js +1 -0
- package/dist/interface/{Adminpanel.FTycvGGP.0.0.16.js → Adminpanel.BHEn-GeQ.0.0.18.js} +2 -2
- package/dist/interface/{Appearance.DZdFEn29.0.0.16.js → Appearance.DN09JoVR.0.0.18.js} +1 -1
- package/dist/interface/{Backup.C63DnD6l.0.0.16.js → Backup.DnQCScPf.0.0.18.js} +1 -1
- package/dist/interface/{Camera.ClZr_XH5.0.0.16.js → Camera.B22EU4mj.0.0.18.js} +1 -1
- package/dist/interface/Cameras.zBnHUtfw.0.0.18.js +1 -0
- package/dist/interface/{Camview.Bo4mLtoT.0.0.16.js → Camview.Cgx2upT7.0.0.18.js} +1 -1
- package/dist/interface/Config.LARLJWHB.0.0.18.js +1 -0
- package/dist/interface/{Console.8oN5H7vV.0.0.16.js → Console.BJmD3K-t.0.0.18.js} +1 -1
- package/dist/interface/FirstSteps.CGbVFZVu.0.0.18.js +1 -0
- package/dist/interface/{NewCamera.0K90OojR.0.0.16.js → NewCamera.DljcmMq3.0.0.18.js} +2 -2
- package/dist/interface/Plugin.Bx6jUl_w.0.0.18.js +1 -0
- package/dist/interface/{Plugins.49uEjmzr.0.0.16.js → Plugins.BBkU1ljC.0.0.18.js} +1 -1
- package/dist/interface/Recordings.2dedoG-V.0.0.18.js +1 -0
- package/dist/interface/Recordings.D0yXN195.0.0.18.js +1 -0
- package/dist/interface/{Settings.LCEZwyhh.0.0.16.js → Settings.CH7teiQB.0.0.18.js} +1 -1
- package/dist/interface/System.DJiyuvLM.0.0.18.js +4 -0
- package/dist/interface/User.DhsEM58s.0.0.18.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.BGiU_FKT.0.0.18.js} +2 -2
- package/dist/interface/{VConsole.BStq4qh-.0.0.16.js → VConsole.thrRT43q.0.0.18.js} +1 -1
- package/dist/interface/VPlayer.xbsRVECy.0.0.18.js +1 -0
- package/dist/interface/{VPluginCard.DR63SC8V.0.0.16.js → VPluginCard.D5rxzV1X.0.0.18.js} +1 -1
- package/dist/interface/{ace-builds.BhnhUUTY.0.0.16.js → ace-builds.DIoh0Qnl.0.0.18.js} +1 -1
- package/dist/interface/assets/{Account.0.0.16.2KfYXKTQ.css → Account.0.0.18.BCEftDNE.css} +1 -1
- package/dist/interface/assets/{Cameras.0.0.16.D7bnvH42.css → Cameras.0.0.18.Djx0F2MM.css} +1 -1
- package/dist/interface/assets/{Camview.0.0.16.cgjDTjXy.css → Camview.0.0.18.Ce_V-Nxj.css} +1 -1
- package/dist/interface/assets/{Config.0.0.16.BQJF6s_V.css → Config.0.0.18.k4QpWumg.css} +1 -1
- package/dist/interface/assets/FirstSteps.0.0.18.27JF_jaE.css +1 -0
- package/dist/interface/assets/NewCamera.0.0.18.DJ3tUBT_.css +1 -0
- package/dist/interface/assets/{Plugin.0.0.16.BGZE7hpr.css → Plugin.0.0.18.CY2rlLw0.css} +1 -1
- package/dist/interface/assets/User.0.0.18.DAaNwzw2.css +1 -0
- package/dist/interface/assets/{VPlayer.0.0.16.CzZme_fu.css → VPlayer.0.0.18.C9sQDyOt.css} +1 -1
- package/dist/interface/assets/{main.0.0.16.DYbE3rQA.css → main.0.0.18.CkZIZCwa.css} +1 -1
- package/dist/interface/axios.CpM4fnec.0.0.18.js +6 -0
- package/dist/interface/{dnd-core.B69q2Tfk.0.0.16.js → dnd-core.G43A3rIn.0.0.18.js} +1 -1
- package/dist/interface/{draggabilly.DKBJ_DRn.0.0.16.js → draggabilly.D_FJnG3-.0.0.18.js} +1 -1
- package/dist/interface/{engine.io-client.D47Vn3PY.0.0.16.js → engine.io-client.BuVI9_V8.0.0.18.js} +1 -1
- package/dist/interface/{ev-emitter.CO554XzW.0.0.16.js → ev-emitter.CtuxNXuW.0.0.18.js} +1 -1
- package/dist/interface/{fast-deep-equal.CjfEj15C.0.0.16.js → fast-deep-equal.1iJJ0nCz.0.0.18.js} +1 -1
- package/dist/interface/{highlight.js.CsG_3GKA.0.0.16.js → highlight.js.C8YhOIfu.0.0.18.js} +1 -1
- package/dist/interface/index.html +33 -33
- package/dist/interface/{linkify-it.D-Re04U7.0.0.16.js → linkify-it.CInwI6LF.0.0.18.js} +1 -1
- package/dist/interface/main.DFYc38DM.0.0.18.js +9 -0
- package/dist/interface/manifest.webmanifest +1 -1
- package/dist/interface/{markdown-it.BSj0kuDJ.0.0.16.js → markdown-it.CqU0yEOf.0.0.18.js} +1 -1
- package/dist/interface/{nprogress.CN7SpneM.0.0.16.js → nprogress.-pIFJsHM.0.0.18.js} +1 -1
- package/dist/interface/{pinia.DHXyXuKc.0.0.16.js → pinia.JuaPKEVD.0.0.18.js} +1 -1
- package/dist/interface/{plugins.FSy44vXn.0.0.16.js → plugins.Ce7gZlij.0.0.18.js} +1 -1
- package/dist/interface/{qrcode.DjqZuH8F.0.0.16.js → qrcode.BJ-byOEz.0.0.18.js} +1 -1
- package/dist/interface/{react-dnd-touch-backend.Cecw_0Kl.0.0.16.js → react-dnd-touch-backend.BYwy-aSV.0.0.18.js} +1 -1
- package/dist/interface/{rxjs.tqVqva9T.0.0.16.js → rxjs.6rmEaJin.0.0.18.js} +1 -1
- package/dist/interface/{socket.io-client.BFAMFJUC.0.0.16.js → socket.io-client.BaGfAwUY.0.0.18.js} +1 -1
- package/dist/interface/{socket.io-parser.B5BeMqb6.0.0.16.js → socket.io-parser.wGIjKNkN.0.0.18.js} +1 -1
- package/dist/interface/sw.js +1 -1
- package/dist/interface/system.DASrwVAt.0.0.18.js +1 -0
- package/dist/interface/{ui.CcXHo2vy.0.0.16.js → ui._RM3d0qj.0.0.18.js} +1 -1
- package/dist/interface/{unidragger.B3Aj7lJB.0.0.16.js → unidragger.BxsYPzgT.0.0.18.js} +1 -1
- package/dist/interface/{v-calendar.y5PNpUm6.0.0.16.js → v-calendar.SqP7oWgQ.0.0.18.js} +1 -1
- package/dist/interface/{vee-validate.VFk2ifr-.0.0.16.js → vee-validate.CUcfsxU0.0.0.18.js} +1 -1
- package/dist/interface/{vue-i18n.BRzZ63Xi.0.0.16.js → vue-i18n.QNLKXtBv.0.0.18.js} +1 -1
- package/dist/interface/{vue-inline-svg.De0HvU9m.0.0.16.js → vue-inline-svg.D81KzQEs.0.0.18.js} +1 -1
- package/dist/interface/{vue-router.Cr6qPC8Y.0.0.16.js → vue-router.DZtQRp1h.0.0.18.js} +1 -1
- package/dist/interface/{vue3-apexcharts.BMb8nnby.0.0.16.js → vue3-apexcharts.CdB4EKaV.0.0.18.js} +1 -1
- package/dist/interface/{vue3-dnd.SEoyozNj.0.0.16.js → vue3-dnd.CTUt9_3y.0.0.18.js} +1 -1
- package/dist/interface/{vue3-toastify.DUisHb3e.0.0.16.js → vue3-toastify.CBYYvk07.0.0.18.js} +1 -1
- package/dist/interface/{vuetify.DByERR9S.0.0.16.js → vuetify.BiwbJUi7.0.0.18.js} +1 -1
- package/dist/server/bin/cameraui.d.ts +5 -1
- package/dist/server/bin/cameraui.js +52 -36
- package/dist/server/bin/cameraui.js.map +1 -1
- package/dist/server/bin/installer/darwin.d.ts +5 -1
- package/dist/server/bin/installer/darwin.js +41 -33
- 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 +26 -36
- 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 +54 -28
- package/dist/server/bin/installer/linux.js.map +1 -1
- package/dist/server/bin/installer/win32.d.ts +5 -1
- package/dist/server/bin/installer/win32.js +25 -18
- 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/go2rtc/queue.d.ts +1 -1
- 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 +3 -3
- 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 +56 -46
- package/dist/server/src/polyglot/node/plugins/proxy/cameraDevice.js.map +1 -1
- package/dist/server/src/polyglot/node/plugins/schema.js +6 -2
- package/dist/server/src/polyglot/node/plugins/schema.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 +90 -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/NewCamera.0.0.16.CMzSwwHn.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.18.js} +0 -0
- /package/dist/interface/{@intlify.YW_pt133.0.0.16.js → @intlify.YW_pt133.0.0.18.js} +0 -0
- /package/dist/interface/{@mdi.jq8isxax.0.0.16.js → @mdi.jq8isxax.0.0.18.js} +0 -0
- /package/dist/interface/{@popperjs.BQBsAJpH.0.0.16.js → @popperjs.BQBsAJpH.0.0.18.js} +0 -0
- /package/dist/interface/{@react-dnd.CcwRs9xb.0.0.16.js → @react-dnd.CcwRs9xb.0.0.18.js} +0 -0
- /package/dist/interface/{@socket.io.Dkula2eQ.0.0.16.js → @socket.io.Dkula2eQ.0.0.18.js} +0 -0
- /package/dist/interface/{@vue.CIFymae3.0.0.16.js → @vue.CIFymae3.0.0.18.js} +0 -0
- /package/dist/interface/{@xterm.UN9r0Y94.0.0.16.js → @xterm.CcjKpkVs.0.0.18.js} +0 -0
- /package/dist/interface/assets/{@vueform.0.0.16.h7tNX9p6.css → @vueform.0.0.18.h7tNX9p6.css} +0 -0
- /package/dist/interface/assets/{@xterm.0.0.16.CGrrDQr5.css → @xterm.0.0.18.CGrrDQr5.css} +0 -0
- /package/dist/interface/assets/{Adminpanel.0.0.16.A2JXV1Ib.css → Adminpanel.0.0.18.A2JXV1Ib.css} +0 -0
- /package/dist/interface/assets/{Backup.0.0.16.BIwaSlv3.css → Backup.0.0.18.BIwaSlv3.css} +0 -0
- /package/dist/interface/assets/{Camera.0.0.16.BDtUJ-lA.css → Camera.0.0.18.BDtUJ-lA.css} +0 -0
- /package/dist/interface/assets/{Console.0.0.16.DWrfRWs9.css → Console.0.0.18.DWrfRWs9.css} +0 -0
- /package/dist/interface/assets/{Plugins.0.0.16.Cwu0aGUO.css → Plugins.0.0.18.Cwu0aGUO.css} +0 -0
- /package/dist/interface/assets/{Settings.0.0.16.DTxcLhIY.css → Settings.0.0.18.DTxcLhIY.css} +0 -0
- /package/dist/interface/assets/{VConsole.0.0.16.BZT1WyS-.css → VConsole.0.0.18.BZT1WyS-.css} +0 -0
- /package/dist/interface/assets/{VPluginCard.0.0.16.C2OqX7DJ.css → VPluginCard.0.0.18.C2OqX7DJ.css} +0 -0
- /package/dist/interface/assets/{highlight.0.0.16.DgoK_Xib.css → highlight.0.0.18.DgoK_Xib.css} +0 -0
- /package/dist/interface/assets/{logo-256.0.0.16.BCQk9H1-.png → logo-256.0.0.18.BCQk9H1-.png} +0 -0
- /package/dist/interface/assets/{logo-512.0.0.16.DLKVOU2S.png → logo-512.0.0.18.DLKVOU2S.png} +0 -0
- /package/dist/interface/assets/{logo.0.0.16.DmEiRk0z.png → logo.0.0.18.DmEiRk0z.png} +0 -0
- /package/dist/interface/assets/{mode-json.0.0.16.Br7xisR1.js → mode-json.0.0.18.Br7xisR1.js} +0 -0
- /package/dist/interface/assets/{mode-yaml.0.0.16.CIYL8U3d.js → mode-yaml.0.0.18.CIYL8U3d.js} +0 -0
- /package/dist/interface/assets/{v-calendar.0.0.16.CtSuDYZU.css → v-calendar.0.0.18.CtSuDYZU.css} +0 -0
- /package/dist/interface/assets/{vue3-toastify.0.0.16.DTY1DMRs.css → vue3-toastify.0.0.18.DTY1DMRs.css} +0 -0
- /package/dist/interface/assets/{vuetify.0.0.16.DPyVfAPv.css → vuetify.0.0.18.DPyVfAPv.css} +0 -0
- /package/dist/interface/{compare-versions.DqEOhma6.0.0.16.js → compare-versions.DqEOhma6.0.0.18.js} +0 -0
- /package/dist/interface/{dijkstrajs.D_NXgYpA.0.0.16.js → dijkstrajs.D_NXgYpA.0.0.18.js} +0 -0
- /package/dist/interface/{engine.io-parser.BiEtp6m2.0.0.16.js → engine.io-parser.BiEtp6m2.0.0.18.js} +0 -0
- /package/dist/interface/{entities.C20TfXL6.0.0.16.js → entities.C20TfXL6.0.0.18.js} +0 -0
- /package/dist/interface/{get-size.D1dS-IaP.0.0.16.js → get-size.D1dS-IaP.0.0.18.js} +0 -0
- /package/dist/interface/{mdurl.k9Sl0PQj.0.0.16.js → mdurl.k9Sl0PQj.0.0.18.js} +0 -0
- /package/dist/interface/{punycode.js.Dj65hjkv.0.0.16.js → punycode.js.Dj65hjkv.0.0.18.js} +0 -0
- /package/dist/interface/{react-dnd-html5-backend.1HQjlkwI.0.0.16.js → react-dnd-html5-backend.1HQjlkwI.0.0.18.js} +0 -0
- /package/dist/interface/{redux.CuxFRhX_.0.0.16.js → redux.CuxFRhX_.0.0.18.js} +0 -0
- /package/dist/interface/{tslib.9k7AwCpt.0.0.16.js → tslib.9k7AwCpt.0.0.18.js} +0 -0
- /package/dist/interface/{uc.micro.kMc2yuuw.0.0.16.js → uc.micro.kMc2yuuw.0.0.18.js} +0 -0
- /package/dist/interface/{utils.BvINh1mj.0.0.16.js → utils.BvINh1mj.0.0.18.js} +0 -0
- /package/dist/interface/{uuid.DvF23Exx.0.0.16.js → uuid.DvF23Exx.0.0.18.js} +0 -0
- /package/dist/interface/{vue.l0sNRNKZ.0.0.16.js → vue.l0sNRNKZ.0.0.18.js} +0 -0
- /package/dist/interface/{zod.BaF2dDCd.0.0.16.js → zod.BaF2dDCd.0.0.18.js} +0 -0
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { outputFile } from 'fs-extra/esm';
|
|
2
2
|
import { execSync } from 'node:child_process';
|
|
3
|
+
import { existsSync, unlinkSync } from 'node:fs';
|
|
4
|
+
import { chmod } from 'node:fs/promises';
|
|
3
5
|
import { userInfo } from 'node:os';
|
|
4
6
|
import { resolve } from 'node:path';
|
|
5
7
|
import { BasePlatform } from './base.js';
|
|
@@ -16,20 +18,12 @@ export class FreeBSDInstaller extends BasePlatform {
|
|
|
16
18
|
async install() {
|
|
17
19
|
this.checkForRoot();
|
|
18
20
|
await this.checkUser();
|
|
19
|
-
this.setupSudo();
|
|
20
21
|
await this.cli.portCheck();
|
|
21
22
|
await this.cli.homePathCheck();
|
|
22
23
|
try {
|
|
23
24
|
await this.createRCService();
|
|
24
25
|
await this.enableService();
|
|
25
26
|
await this.start();
|
|
26
|
-
const apiReady = await this.cli.waitForApiHealth();
|
|
27
|
-
if (apiReady) {
|
|
28
|
-
await this.cli.printPostInstallInstructions();
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
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');
|
|
32
|
-
}
|
|
33
27
|
}
|
|
34
28
|
catch (e) {
|
|
35
29
|
console.error(e.toString());
|
|
@@ -45,9 +39,9 @@ export class FreeBSDInstaller extends BasePlatform {
|
|
|
45
39
|
// try and disable the service
|
|
46
40
|
await this.disableService();
|
|
47
41
|
try {
|
|
48
|
-
if (
|
|
42
|
+
if (existsSync(this.rcServicePath)) {
|
|
49
43
|
this.cli.logger(`Removed ${this.rcServiceName} service`, 'succeed');
|
|
50
|
-
|
|
44
|
+
unlinkSync(this.rcServicePath);
|
|
51
45
|
}
|
|
52
46
|
else {
|
|
53
47
|
this.cli.logger(`Could not find installed ${this.rcServiceName} service.`, 'fail');
|
|
@@ -65,7 +59,8 @@ export class FreeBSDInstaller extends BasePlatform {
|
|
|
65
59
|
this.checkForRoot();
|
|
66
60
|
try {
|
|
67
61
|
execSync(`service ${this.rcServiceName} start`, { stdio: 'inherit' });
|
|
68
|
-
this.cli.logger(`${this.rcServiceName}
|
|
62
|
+
this.cli.logger(`${this.rcServiceName} started`, 'succeed');
|
|
63
|
+
await this.waitForApiAndPrintInstructions('start');
|
|
69
64
|
}
|
|
70
65
|
catch {
|
|
71
66
|
this.cli.logger(`Failed to start ${this.rcServiceName}`, 'fail');
|
|
@@ -78,7 +73,7 @@ export class FreeBSDInstaller extends BasePlatform {
|
|
|
78
73
|
this.checkForRoot();
|
|
79
74
|
try {
|
|
80
75
|
execSync(`service ${this.rcServiceName} stop`, { stdio: 'inherit' });
|
|
81
|
-
this.cli.logger(`${this.rcServiceName}
|
|
76
|
+
this.cli.logger(`${this.rcServiceName} stopped`, 'succeed');
|
|
82
77
|
}
|
|
83
78
|
catch {
|
|
84
79
|
this.cli.logger(`Failed to stop ${this.rcServiceName}`, 'fail');
|
|
@@ -91,7 +86,8 @@ export class FreeBSDInstaller extends BasePlatform {
|
|
|
91
86
|
this.checkForRoot();
|
|
92
87
|
try {
|
|
93
88
|
execSync(`service ${this.rcServiceName} restart`, { stdio: 'inherit' });
|
|
94
|
-
this.cli.logger(`${this.rcServiceName}
|
|
89
|
+
this.cli.logger(`${this.rcServiceName} restarted`, 'succeed');
|
|
90
|
+
await this.waitForApiAndPrintInstructions('restart');
|
|
95
91
|
}
|
|
96
92
|
catch {
|
|
97
93
|
this.cli.logger(`Failed to restart ${this.rcServiceName}`, 'fail');
|
|
@@ -127,6 +123,18 @@ export class FreeBSDInstaller extends BasePlatform {
|
|
|
127
123
|
return null;
|
|
128
124
|
}
|
|
129
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Wait for the API to be ready and print instructions
|
|
128
|
+
*/
|
|
129
|
+
async waitForApiAndPrintInstructions(type) {
|
|
130
|
+
const apiReady = await this.cli.waitForApiHealth();
|
|
131
|
+
if (apiReady) {
|
|
132
|
+
await this.cli.printPostInstallInstructions(type);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
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');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
130
138
|
/**
|
|
131
139
|
* Enables rc service for autostart
|
|
132
140
|
*/
|
|
@@ -178,26 +186,6 @@ export class FreeBSDInstaller extends BasePlatform {
|
|
|
178
186
|
this.cli.logger(`Created service user: ${this.cli.asUser}`, 'info');
|
|
179
187
|
}
|
|
180
188
|
}
|
|
181
|
-
/**
|
|
182
|
-
* Allows the camera.ui user to shut down and restart the server from the UI
|
|
183
|
-
* There is no need for full sudo access when running using cameraui
|
|
184
|
-
*/
|
|
185
|
-
setupSudo() {
|
|
186
|
-
try {
|
|
187
|
-
const npmPath = execSync('which npm').toString('utf8').trim();
|
|
188
|
-
const sudoersEntry = `${this.cli.asUser} ALL=(ALL) NOPASSWD:SETENV: ${npmPath}, /usr/local/bin/npm`;
|
|
189
|
-
// check if the sudoers file already contains the entry
|
|
190
|
-
const sudoers = fs.readFileSync('/usr/local/etc/sudoers', 'utf-8');
|
|
191
|
-
if (sudoers.includes(sudoersEntry)) {
|
|
192
|
-
return;
|
|
193
|
-
}
|
|
194
|
-
// grant the user restricted sudo privileges to /sbin/shutdown
|
|
195
|
-
execSync(`echo '${sudoersEntry}' | sudo EDITOR='tee -a' visudo`);
|
|
196
|
-
}
|
|
197
|
-
catch {
|
|
198
|
-
this.cli.logger('WARNING: Failed to setup /etc/sudoers, you may not be able to shutdown/restart your server from the camera.ui UI.', 'warn');
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
189
|
/**
|
|
202
190
|
* Create the rc service script
|
|
203
191
|
*/
|
|
@@ -226,6 +214,7 @@ export class FreeBSDInstaller extends BasePlatform {
|
|
|
226
214
|
': ${' + this.rcServiceName + '_priority:="debug"}',
|
|
227
215
|
': ${' + this.rcServiceName + '_home_path:="' + this.cli.homePath + '"}',
|
|
228
216
|
': ${' + this.rcServiceName + '_storage_path:="' + this.cli.storagePath + '"}',
|
|
217
|
+
': ${' + this.rcServiceName + '_install_path:="' + this.cli.getInstallDir() + '"}',
|
|
229
218
|
'',
|
|
230
219
|
'export HOME="$(eval echo ~${' + this.rcServiceName + '_user})"',
|
|
231
220
|
'export PATH=/usr/local/bin:${PATH}',
|
|
@@ -243,6 +232,7 @@ export class FreeBSDInstaller extends BasePlatform {
|
|
|
243
232
|
' sleep 10',
|
|
244
233
|
' chown -R ${' + this.rcServiceName + '_user}: ${' + this.rcServiceName + '_home_path}',
|
|
245
234
|
' chown -R ${' + this.rcServiceName + '_user}: ${' + this.rcServiceName + '_storage_path}',
|
|
235
|
+
' chown -R ${' + this.rcServiceName + '_user}: ${' + this.rcServiceName + '_install_path}',
|
|
246
236
|
' install -o ${' + this.rcServiceName + '_user} /dev/null ${pidfile}',
|
|
247
237
|
'}',
|
|
248
238
|
'',
|
|
@@ -250,8 +240,8 @@ export class FreeBSDInstaller extends BasePlatform {
|
|
|
250
240
|
]
|
|
251
241
|
.filter((x) => x)
|
|
252
242
|
.join('\n');
|
|
253
|
-
await
|
|
254
|
-
await
|
|
243
|
+
await outputFile(this.rcServicePath, rcFileContents);
|
|
244
|
+
await chmod(this.rcServicePath, '755');
|
|
255
245
|
}
|
|
256
246
|
}
|
|
257
247
|
//# sourceMappingURL=freebsd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"freebsd.js","sourceRoot":"","sources":["../../../../bin/installer/freebsd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"freebsd.js","sourceRoot":"","sources":["../../../../bin/installer/freebsd.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,9 @@ export declare class LinuxInstaller extends BasePlatform {
|
|
|
8
8
|
* Installs the systemd service
|
|
9
9
|
*/
|
|
10
10
|
install(): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Removes the systemd service
|
|
13
|
+
*/
|
|
11
14
|
uninstall(): Promise<void>;
|
|
12
15
|
/**
|
|
13
16
|
* Starts the systemd service
|
|
@@ -37,6 +40,10 @@ export declare class LinuxInstaller extends BasePlatform {
|
|
|
37
40
|
* Returns the pid of the process running on the defined port
|
|
38
41
|
*/
|
|
39
42
|
getPidOfPort(port: number): string | null;
|
|
43
|
+
/**
|
|
44
|
+
* Wait for the API to be ready and print instructions
|
|
45
|
+
*/
|
|
46
|
+
private waitForApiAndPrintInstructions;
|
|
40
47
|
/**
|
|
41
48
|
* Reloads systemd
|
|
42
49
|
*/
|
|
@@ -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('start');
|
|
82
85
|
}
|
|
83
86
|
catch (e) {
|
|
84
87
|
this.cli.logger(`Failed to start ${this.cli.serviceName} - ` + e, 'fail');
|
|
@@ -92,7 +95,7 @@ export class LinuxInstaller extends BasePlatform {
|
|
|
92
95
|
this.checkForRoot();
|
|
93
96
|
try {
|
|
94
97
|
execSync(`systemctl stop ${this.systemdServiceName}`);
|
|
95
|
-
this.cli.logger(`${this.cli.serviceName}
|
|
98
|
+
this.cli.logger(`${this.cli.serviceName} stopped`, 'succeed');
|
|
96
99
|
}
|
|
97
100
|
catch (e) {
|
|
98
101
|
this.cli.logger(`Failed to stop ${this.systemdServiceName} - ` + 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('restart');
|
|
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(type) {
|
|
192
|
+
const apiReady = await this.cli.waitForApiHealth();
|
|
193
|
+
if (apiReady) {
|
|
194
|
+
await this.cli.printPostInstallInstructions(type);
|
|
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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"}
|
|
@@ -11,7 +11,7 @@ export declare class Win32Installer extends BasePlatform {
|
|
|
11
11
|
/**
|
|
12
12
|
* Starts the Windows 10 camera.ui service
|
|
13
13
|
*/
|
|
14
|
-
start(): Promise<void>;
|
|
14
|
+
start(restart?: boolean): Promise<void>;
|
|
15
15
|
/**
|
|
16
16
|
* Stops the Windows 10 camera.ui service
|
|
17
17
|
*/
|
|
@@ -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());
|
|
@@ -58,14 +53,15 @@ export class Win32Installer extends BasePlatform {
|
|
|
58
53
|
/**
|
|
59
54
|
* Starts the Windows 10 camera.ui service
|
|
60
55
|
*/
|
|
61
|
-
async start() {
|
|
56
|
+
async start(restart) {
|
|
62
57
|
this.checkIsAdmin();
|
|
63
58
|
try {
|
|
64
59
|
execSync(`sc start ${this.cli.serviceName}`);
|
|
65
|
-
this.cli.logger(`${this.cli.serviceName}
|
|
60
|
+
this.cli.logger(`${this.cli.serviceName} ${restart ? 'restarted' : 'started'}`, 'succeed');
|
|
61
|
+
await this.waitForApiAndPrintInstructions(restart ? 'restart' : 'start');
|
|
66
62
|
}
|
|
67
63
|
catch {
|
|
68
|
-
this.cli.logger(`Failed to start ${this.cli.serviceName}`, 'fail');
|
|
64
|
+
this.cli.logger(`Failed to ${restart ? 'restart' : 'start'} ${this.cli.serviceName}`, 'fail');
|
|
69
65
|
}
|
|
70
66
|
}
|
|
71
67
|
/**
|
|
@@ -75,7 +71,7 @@ export class Win32Installer extends BasePlatform {
|
|
|
75
71
|
this.checkIsAdmin();
|
|
76
72
|
try {
|
|
77
73
|
execSync(`sc stop ${this.cli.serviceName}`);
|
|
78
|
-
this.cli.logger(`${this.cli.serviceName}
|
|
74
|
+
this.cli.logger(`${this.cli.serviceName} stopped`, 'succeed');
|
|
79
75
|
}
|
|
80
76
|
catch {
|
|
81
77
|
this.cli.logger(`Failed to stop ${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.start(true);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Wait for the API to be ready and print instructions
|
|
91
|
+
*/
|
|
92
|
+
async waitForApiAndPrintInstructions(type) {
|
|
93
|
+
const apiReady = await this.cli.waitForApiHealth();
|
|
94
|
+
if (apiReady) {
|
|
95
|
+
await this.cli.printPostInstallInstructions(type);
|
|
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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"}
|