homebridge-config-ui-x 5.6.1-alpha.0 → 5.6.1-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/dist/bin/platforms/linux.js +8 -0
  3. package/dist/bin/platforms/linux.js.map +1 -1
  4. package/dist/core/config/config.interfaces.d.ts +1 -0
  5. package/dist/core/node-version.constants.d.ts +2 -0
  6. package/dist/core/node-version.constants.js +13 -0
  7. package/dist/core/node-version.constants.js.map +1 -0
  8. package/dist/main.js +49 -0
  9. package/dist/main.js.map +1 -1
  10. package/dist/modules/status/status.service.js +6 -0
  11. package/dist/modules/status/status.service.js.map +1 -1
  12. package/package.json +2 -1
  13. package/public/{chunk-L4RPKDC3.js → chunk-2J5WM27C.js} +1 -1
  14. package/public/{chunk-ZQZ5I4FM.js → chunk-3SZXYHZ7.js} +1 -1
  15. package/public/{chunk-VLHFM7YB.js → chunk-3UHE6DAU.js} +1 -1
  16. package/public/{chunk-DVXXGF7N.js → chunk-4AZGG3DH.js} +1 -1
  17. package/public/{chunk-OKNSWYF6.js → chunk-4TGHF4WJ.js} +1 -1
  18. package/public/{chunk-CAJFOAD6.js → chunk-553CBSN6.js} +1 -1
  19. package/public/{chunk-VPVOJY3A.js → chunk-5KPEXX56.js} +1 -1
  20. package/public/{chunk-VDSHPYOH.js → chunk-5TKZ6DSN.js} +1 -1
  21. package/public/{chunk-A4KXW37O.js → chunk-5YWH7BEY.js} +1 -1
  22. package/public/chunk-7X4AZXBG.js +1 -0
  23. package/public/{chunk-6TK4RQBZ.js → chunk-BB7GU4XN.js} +1 -1
  24. package/public/{chunk-HDPBZHHF.js → chunk-BY3RXO7C.js} +1 -1
  25. package/public/{chunk-F77WCNU4.js → chunk-DNMTLJJC.js} +1 -1
  26. package/public/{chunk-DTMOK5TB.js → chunk-F3A5OCAG.js} +1 -1
  27. package/public/{chunk-WJUO6GY5.js → chunk-FMVLLNRB.js} +1 -1
  28. package/public/{chunk-BD6IJR4X.js → chunk-G4Z3AWKX.js} +1 -1
  29. package/public/{chunk-6WDBLDRL.js → chunk-HI2HDLWI.js} +1 -1
  30. package/public/{chunk-OYOUOD4L.js → chunk-HRHX77JF.js} +1 -1
  31. package/public/{chunk-NZ7UA7SO.js → chunk-IMRE7PGA.js} +1 -1
  32. package/public/{chunk-BNHPRY33.js → chunk-ISZCITJE.js} +4 -4
  33. package/public/{chunk-CX7TXJIY.js → chunk-IYBMK3YF.js} +1 -1
  34. package/public/{chunk-BOLDHQTT.js → chunk-JYALHYIW.js} +1 -1
  35. package/public/chunk-K322IJI4.js +1 -0
  36. package/public/chunk-KR5AMLCF.js +1 -0
  37. package/public/{chunk-UNFBBBDL.js → chunk-KSRKWX3K.js} +1 -1
  38. package/public/chunk-KX5ROPVY.js +49 -0
  39. package/public/{chunk-TKFF73V6.js → chunk-LFNV5HMQ.js} +1 -1
  40. package/public/{chunk-IV6TUPJT.js → chunk-M7ULGL7J.js} +1 -1
  41. package/public/{chunk-DUGT3GJ7.js → chunk-MDMFQFDA.js} +1 -1
  42. package/public/{chunk-BYTBK544.js → chunk-MISRPZ7L.js} +1 -1
  43. package/public/{chunk-R4GGOAF6.js → chunk-MOXHIZ4D.js} +1 -1
  44. package/public/{chunk-SJUKCNIS.js → chunk-NWUXPEBS.js} +1 -1
  45. package/public/{chunk-ZKHCCIX5.js → chunk-O2VDEXRW.js} +1 -1
  46. package/public/{chunk-5Z6YPA3O.js → chunk-ORHZLJWX.js} +1 -1
  47. package/public/{chunk-M5RHNCP4.js → chunk-PBY5PJTN.js} +1 -1
  48. package/public/{chunk-BLS3DXJS.js → chunk-QIMU7P43.js} +1 -1
  49. package/public/{chunk-2L4KWYTY.js → chunk-QM422LIF.js} +1 -1
  50. package/public/{chunk-6VF3JF7A.js → chunk-T36GHJD3.js} +1 -1
  51. package/public/chunk-T5RMWDMM.js +1 -0
  52. package/public/{chunk-Z74T7BII.js → chunk-U3JPVOO3.js} +1 -1
  53. package/public/{chunk-VAXXB4A5.js → chunk-VL7TOLVN.js} +1 -1
  54. package/public/{chunk-Y2RZ7M7X.js → chunk-WMHIONEY.js} +1 -1
  55. package/public/{chunk-37R64NMC.js → chunk-WMXFDTR7.js} +1 -1
  56. package/public/{chunk-5PTZEVUY.js → chunk-WQH3TDSI.js} +1 -1
  57. package/public/{chunk-75F24BCX.js → chunk-X2S6KTXT.js} +1 -1
  58. package/public/chunk-Y3QHT5Y6.js +4 -0
  59. package/public/{chunk-DJXV5Z62.js → chunk-Y4FQI7HO.js} +1 -1
  60. package/public/{chunk-K5PBEVVM.js → chunk-Y6UQTMSA.js} +1 -1
  61. package/public/{chunk-GOBF7QNZ.js → chunk-Z7YOVUF5.js} +1 -1
  62. package/public/{chunk-JTDAUPMU.js → chunk-ZHHTANWQ.js} +1 -1
  63. package/public/{chunk-KBEQLTTC.js → chunk-ZIRWXU6S.js} +1 -1
  64. package/public/{chunk-LNHHYTJF.js → chunk-ZR264YRD.js} +1 -1
  65. package/public/index.html +1 -1
  66. package/public/{main-JIZS5MG4.js → main-GDIZ5CS6.js} +1 -1
  67. package/public/chunk-2VOCXTNG.js +0 -1
  68. package/public/chunk-5YKCH3TG.js +0 -4
  69. package/public/chunk-CL57JQ4Q.js +0 -1
  70. package/public/chunk-GOCCZ4QI.js +0 -1
  71. package/public/chunk-ST76UP7U.js +0 -49
  72. package/public/chunk-WVRVWL4V.js +0 -1
@@ -1,4 +1,4 @@
1
- import{a as z,b,c as k}from"./chunk-MD7IQ7EC.js";import{a as u}from"./chunk-6TK4RQBZ.js";import{q as f}from"./chunk-CL57JQ4Q.js";import{M as t,ea as p,g as n,h as c,ja as a,n as h}from"./chunk-ZHRPBG7M.js";var d=n(z(),1),l=n(b(),1),m=n(k(),1);var v=(()=>{class o{$ws=a(u);$api=a(f);io;fitAddon;webLinksAddon;resize;elementResize;dataDisposable=null;isInitializing=!1;hasUserTyped=!1;term;destroyTerminal(){this.dataDisposable&&(this.dataDisposable.dispose(),this.dataDisposable=null),this.io&&this.io.end(),this.term&&(this.term.dispose(),this.term=null),this.resize&&this.resize.complete(),this.elementResize&&this.elementResize.complete(),this.isInitializing=!1,this.hasUserTyped=!1}destroyPersistentSession(){this.destroyTerminal(),this.$api.post("/platform-tools/terminal/destroy-persistent-session",{}).subscribe({error:s=>console.error("Failed to destroy persistent session:",s)})}detachTerminal(){this.dataDisposable&&(this.dataDisposable.dispose(),this.dataDisposable=null),this.term&&this.term.dispose(),this.resize&&this.resize.complete(),this.elementResize&&this.elementResize.complete(),this.isInitializing=!1}hasActiveSession(){return this.io&&this.io.socket&&this.io.socket.connected}checkBackendPersistentSession(){return c(this,null,function*(){try{return(yield this.$api.get("/platform-tools/terminal/has-persistent-session").toPromise()).hasPersistentSession}catch(s){return console.error("Failed to check backend persistent session:",s),!1}})}hasUserTypedInSession(){return this.hasUserTyped}isTerminalReady(){return this.term&&!this.isInitializing}reconnectTerminal(s,e={},r){if(this.isInitializing)return!1;this.isInitializing=!0,this.elementResize=r,this.io&&this.io.socket&&this.io.socket.connected?(this.term=new m.Terminal(e),this.fitAddon=new d.FitAddon,this.webLinksAddon=new l.WebLinksAddon,setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.resize=new h,this.term.open(s.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.socket.removeAllListeners("stdout"),this.io.socket.removeAllListeners("process-exit"),this.io.socket.on("stdout",i=>{this.term.write(i)}),this.io.socket.on("process-exit",()=>{this.startSession()}),this.dataDisposable&&this.dataDisposable.dispose(),this.dataDisposable=this.term.onData(i=>{this.hasUserTyped=!0,this.io.socket.emit("stdin",i)}),this.term.onResize(i=>{this.resize.next(i)}),this.resize.pipe(t(500)).subscribe(i=>{this.io.socket.emit("resize",i)}),this.elementResize&&this.elementResize.pipe(t(100)).subscribe({next:()=>{this.fitAddon.fit()}}),this.io.socket.emit("start-session",{cols:this.term.cols,rows:this.term.rows}),this.isInitializing=!1):this.startTerminal(s,e,r)}startTerminal(s,e={},r){return this.isInitializing?!1:(this.isInitializing=!0,this.elementResize=r,this.io=this.$ws.connectToNamespace("platform-tools/terminal"),this.term=new m.Terminal(e),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new d.FitAddon,this.webLinksAddon=new l.WebLinksAddon,this.resize=new h,this.term.open(s.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.connected.pipe(t(200)).subscribe(()=>{this.startSession()}),this.io.socket.on("disconnect",()=>{this.term.write(`
1
+ import{a as z,b,c as k}from"./chunk-MD7IQ7EC.js";import{a as u}from"./chunk-BB7GU4XN.js";import{q as f}from"./chunk-K322IJI4.js";import{M as t,ea as p,g as n,h as c,ja as a,n as h}from"./chunk-ZHRPBG7M.js";var d=n(z(),1),l=n(b(),1),m=n(k(),1);var v=(()=>{class o{$ws=a(u);$api=a(f);io;fitAddon;webLinksAddon;resize;elementResize;dataDisposable=null;isInitializing=!1;hasUserTyped=!1;term;destroyTerminal(){this.dataDisposable&&(this.dataDisposable.dispose(),this.dataDisposable=null),this.io&&this.io.end(),this.term&&(this.term.dispose(),this.term=null),this.resize&&this.resize.complete(),this.elementResize&&this.elementResize.complete(),this.isInitializing=!1,this.hasUserTyped=!1}destroyPersistentSession(){this.destroyTerminal(),this.$api.post("/platform-tools/terminal/destroy-persistent-session",{}).subscribe({error:s=>console.error("Failed to destroy persistent session:",s)})}detachTerminal(){this.dataDisposable&&(this.dataDisposable.dispose(),this.dataDisposable=null),this.term&&this.term.dispose(),this.resize&&this.resize.complete(),this.elementResize&&this.elementResize.complete(),this.isInitializing=!1}hasActiveSession(){return this.io&&this.io.socket&&this.io.socket.connected}checkBackendPersistentSession(){return c(this,null,function*(){try{return(yield this.$api.get("/platform-tools/terminal/has-persistent-session").toPromise()).hasPersistentSession}catch(s){return console.error("Failed to check backend persistent session:",s),!1}})}hasUserTypedInSession(){return this.hasUserTyped}isTerminalReady(){return this.term&&!this.isInitializing}reconnectTerminal(s,e={},r){if(this.isInitializing)return!1;this.isInitializing=!0,this.elementResize=r,this.io&&this.io.socket&&this.io.socket.connected?(this.term=new m.Terminal(e),this.fitAddon=new d.FitAddon,this.webLinksAddon=new l.WebLinksAddon,setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.resize=new h,this.term.open(s.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.socket.removeAllListeners("stdout"),this.io.socket.removeAllListeners("process-exit"),this.io.socket.on("stdout",i=>{this.term.write(i)}),this.io.socket.on("process-exit",()=>{this.startSession()}),this.dataDisposable&&this.dataDisposable.dispose(),this.dataDisposable=this.term.onData(i=>{this.hasUserTyped=!0,this.io.socket.emit("stdin",i)}),this.term.onResize(i=>{this.resize.next(i)}),this.resize.pipe(t(500)).subscribe(i=>{this.io.socket.emit("resize",i)}),this.elementResize&&this.elementResize.pipe(t(100)).subscribe({next:()=>{this.fitAddon.fit()}}),this.io.socket.emit("start-session",{cols:this.term.cols,rows:this.term.rows}),this.isInitializing=!1):this.startTerminal(s,e,r)}startTerminal(s,e={},r){return this.isInitializing?!1:(this.isInitializing=!0,this.elementResize=r,this.io=this.$ws.connectToNamespace("platform-tools/terminal"),this.term=new m.Terminal(e),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new d.FitAddon,this.webLinksAddon=new l.WebLinksAddon,this.resize=new h,this.term.open(s.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.connected.pipe(t(200)).subscribe(()=>{this.startSession()}),this.io.socket.on("disconnect",()=>{this.term.write(`
2
2
  \r
3
3
  \rTerminal disconnected. Is the server running?
4
4
  \r
@@ -1 +1 @@
1
- import{a as T}from"./chunk-6TK4RQBZ.js";import"./chunk-CX7TXJIY.js";import{d as $}from"./chunk-LV5TYHZ7.js";import{b as S}from"./chunk-DVXXGF7N.js";import{k as g,l as _,n as E,q as y}from"./chunk-CL57JQ4Q.js";import{Ib as v,La as n,Vb as a,Wa as h,Wb as s,ja as o,lb as c,mb as d,mc as m,nc as l,vb as r,wb as i,xb as u}from"./chunk-ZHRPBG7M.js";function C(t,f){if(t&1&&(r(0,"div",7),a(1),i()),t&2){let e=v();n(),s(e.error)}}function w(t,f){t&1&&(r(0,"p",9),a(1),m(2,"translate"),i(),r(3,"div",10)(4,"div",11),u(5,"i",12),i()()),t&2&&(n(),s(l(2,1,"restart.please_wait_while_server_restarts")))}function k(t,f){t&1&&(r(0,"div",8),a(1),m(2,"translate"),i()),t&2&&(n(),s(l(2,1,"platform.linux.long_time")))}var z=(()=>{class t{$api=o(y);$router=o($);$settings=o(S);$toastr=o(E);$translate=o(g);$ws=o(T);checkTimeout;checkDelay;io;resp={};timeout=!1;error=!1;ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.$api.put("/platform-tools/linux/restart-host",{}).subscribe({next:e=>{this.resp=e,this.checkIfServerUp()},error:e=>{console.error(e),this.error=this.$translate.instant("platform.linux.server_restart_error"),this.$toastr.error(this.$translate.instant("platform.linux.server_restart_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){this.io.end(),clearTimeout(this.checkDelay),clearTimeout(this.checkTimeout)}checkIfServerUp(){this.checkDelay=setTimeout(()=>{this.io.socket.on("homebridge-status",e=>{(e.status==="up"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("platform.linux.server_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})},3e4),this.checkTimeout=setTimeout(()=>{this.$toastr.warning(this.$translate.instant("platform.linux.server_taking_long_time"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0},12e4)}static \u0275fac=function(p){return new(p||t)};static \u0275cmp=h({type:t,selectors:[["ng-component"]],decls:14,vars:8,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fas","fa-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"fas","fa-spinner","fa-spin"]],template:function(p,x){p&1&&(r(0,"div",0)(1,"h3",1),a(2),m(3,"translate"),i()(),r(4,"div",2)(5,"div",3),u(6,"i",4),i(),r(7,"div",5)(8,"h4",6),a(9),m(10,"translate"),i(),c(11,C,2,1,"div",7)(12,w,6,3),c(13,k,3,3,"div",8),i()()),p&2&&(n(2),s(l(3,4,"menu.restart.title")),n(7),s(l(10,6,"platform.linux.restarting_server")),n(2),d(x.error?11:12),n(2),d(x.timeout?13:-1))},dependencies:[_],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return t})();export{z as RestartLinuxComponent};
1
+ import{a as T}from"./chunk-BB7GU4XN.js";import"./chunk-IYBMK3YF.js";import{d as $}from"./chunk-LV5TYHZ7.js";import{b as S}from"./chunk-4AZGG3DH.js";import{k as g,l as _,n as E,q as y}from"./chunk-K322IJI4.js";import{Ib as v,La as n,Vb as a,Wa as h,Wb as s,ja as o,lb as c,mb as d,mc as m,nc as l,vb as r,wb as i,xb as u}from"./chunk-ZHRPBG7M.js";function C(t,f){if(t&1&&(r(0,"div",7),a(1),i()),t&2){let e=v();n(),s(e.error)}}function w(t,f){t&1&&(r(0,"p",9),a(1),m(2,"translate"),i(),r(3,"div",10)(4,"div",11),u(5,"i",12),i()()),t&2&&(n(),s(l(2,1,"restart.please_wait_while_server_restarts")))}function k(t,f){t&1&&(r(0,"div",8),a(1),m(2,"translate"),i()),t&2&&(n(),s(l(2,1,"platform.linux.long_time")))}var z=(()=>{class t{$api=o(y);$router=o($);$settings=o(S);$toastr=o(E);$translate=o(g);$ws=o(T);checkTimeout;checkDelay;io;resp={};timeout=!1;error=!1;ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.$api.put("/platform-tools/linux/restart-host",{}).subscribe({next:e=>{this.resp=e,this.checkIfServerUp()},error:e=>{console.error(e),this.error=this.$translate.instant("platform.linux.server_restart_error"),this.$toastr.error(this.$translate.instant("platform.linux.server_restart_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){this.io.end(),clearTimeout(this.checkDelay),clearTimeout(this.checkTimeout)}checkIfServerUp(){this.checkDelay=setTimeout(()=>{this.io.socket.on("homebridge-status",e=>{(e.status==="up"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("platform.linux.server_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})},3e4),this.checkTimeout=setTimeout(()=>{this.$toastr.warning(this.$translate.instant("platform.linux.server_taking_long_time"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0},12e4)}static \u0275fac=function(p){return new(p||t)};static \u0275cmp=h({type:t,selectors:[["ng-component"]],decls:14,vars:8,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fas","fa-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"fas","fa-spinner","fa-spin"]],template:function(p,x){p&1&&(r(0,"div",0)(1,"h3",1),a(2),m(3,"translate"),i()(),r(4,"div",2)(5,"div",3),u(6,"i",4),i(),r(7,"div",5)(8,"h4",6),a(9),m(10,"translate"),i(),c(11,C,2,1,"div",7)(12,w,6,3),c(13,k,3,3,"div",8),i()()),p&2&&(n(2),s(l(3,4,"menu.restart.title")),n(7),s(l(10,6,"platform.linux.restarting_server")),n(2),d(x.error?11:12),n(2),d(x.timeout?13:-1))},dependencies:[_],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return t})();export{z as RestartLinuxComponent};
@@ -1 +1 @@
1
- import{g as r}from"./chunk-LV5TYHZ7.js";import{Xa as e,fa as t}from"./chunk-ZHRPBG7M.js";var u=[{path:"",loadComponent:()=>import("./chunk-75F24BCX.js").then(o=>o.LogsComponent)}],n=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[r.forChild(u),r]})}return o})();var p=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[n]})}return o})();export{p as LogsModule};
1
+ import{g as r}from"./chunk-LV5TYHZ7.js";import{Xa as e,fa as t}from"./chunk-ZHRPBG7M.js";var u=[{path:"",loadComponent:()=>import("./chunk-X2S6KTXT.js").then(o=>o.LogsComponent)}],n=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[r.forChild(u),r]})}return o})();var p=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[n]})}return o})();export{p as LogsModule};
@@ -1,4 +1,4 @@
1
- import{a as z,b as A,c as k}from"./chunk-MD7IQ7EC.js";import{a as l}from"./chunk-6TK4RQBZ.js";import{M as n,ea as c,g as r,ja as d,n as h}from"./chunk-ZHRPBG7M.js";var f=r(z(),1),a=r(A(),1),p=r(k(),1);var $=(()=>{class t{$ws=d(l);io;fitAddon;webLinksAddon;resize;elementResize;pluginName;term;startTerminal(m,s={},u,w){this.pluginName=w,this.elementResize=u,this.io=this.$ws.connectToNamespace("log"),this.term=new p.Terminal(s),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new f.FitAddon,this.webLinksAddon=new a.WebLinksAddon,this.resize=new h,this.term.open(m.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.connected.subscribe(()=>{this.term.reset(),this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows})}),this.io.socket.on("disconnect",()=>{this.term.write(`
1
+ import{a as z,b as A,c as k}from"./chunk-MD7IQ7EC.js";import{a as l}from"./chunk-BB7GU4XN.js";import{M as n,ea as c,g as r,ja as d,n as h}from"./chunk-ZHRPBG7M.js";var f=r(z(),1),a=r(A(),1),p=r(k(),1);var $=(()=>{class t{$ws=d(l);io;fitAddon;webLinksAddon;resize;elementResize;pluginName;term;startTerminal(m,s={},u,w){this.pluginName=w,this.elementResize=u,this.io=this.$ws.connectToNamespace("log"),this.term=new p.Terminal(s),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new f.FitAddon,this.webLinksAddon=new a.WebLinksAddon,this.resize=new h,this.term.open(m.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.connected.subscribe(()=>{this.term.reset(),this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows})}),this.io.socket.on("disconnect",()=>{this.term.write(`
2
2
  \r
3
3
  \rWebsocket failed to connect. Is the server running?
4
4
  \r
@@ -1 +1 @@
1
- import{a as M}from"./chunk-5PTZEVUY.js";import"./chunk-MD7IQ7EC.js";import{a as O}from"./chunk-CGPMZGNR.js";import{a as _}from"./chunk-BLS3DXJS.js";import{n as z,t as D}from"./chunk-QHDPBN4J.js";import"./chunk-D2RHA7X2.js";import"./chunk-6TK4RQBZ.js";import{b as H}from"./chunk-CX7TXJIY.js";import"./chunk-DVXXGF7N.js";import{k as E,l as A,n as F,q as V}from"./chunk-CL57JQ4Q.js";import{Db as T,Gb as p,Ib as b,Ka as y,La as l,Pb as L,Qb as S,Vb as I,Wa as $,Wb as B,g as q,h as v,ja as i,kb as u,lb as x,mb as C,mc as a,n as w,nc as s,oa as d,pa as g,rb as f,sb as c,tb as r,ub as m,xc as k}from"./chunk-ZHRPBG7M.js";var N=q(O(),1);var Q=["logoutput"];function W(o,P){if(o&1){let t=T();c(0,"div",4)(1,"button",7),a(2,"translate"),a(3,"translate"),p("click",function(){d(t);let n=b();return g(n.downloadLogFile())}),m(4,"i",8),r(),c(5,"button",9),a(6,"translate"),a(7,"translate"),p("click",function(){d(t);let n=b();return g(n.truncateLogFile())}),m(8,"i",10),r()()}o&2&&(l(),f("openDelay",150)("ngbTooltip",s(2,6,"form.button_download")),u("aria-label",s(3,8,"form.button_download")),l(4),f("openDelay",150)("ngbTooltip",s(6,10,"form.button_delete")),u("aria-label",s(7,12,"form.button_delete")))}var it=(()=>{class o{$api=i(V);$auth=i(H);$log=i(M);$modal=i(z);$toastr=i(F);$translate=i(E);termTarget=k("logoutput");resizeEvent=new w;isAdmin=this.$auth.user.admin;onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){window.document.querySelector("body").classList.add("bg-black"),this.$log.startTerminal(this.termTarget(),{allowProposedApi:!0},this.resizeEvent)}ngOnDestroy(){window.document.querySelector("body").classList.remove("bg-black"),this.$log.destroyTerminal()}downloadLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_download_log_file"),t.componentInstance.message=this.$translate.instant("logs.download_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_download"),t.componentInstance.faIconClass="fas fa-user-secret primary-text",t.result.then(()=>{this.$api.get("/platform-tools/hb-service/log/download",{observe:"response",responseType:"blob"}).subscribe({next:e=>{(0,N.saveAs)(e.body,"homebridge.log.txt")},error:e=>v(this,null,function*(){let n;try{n=JSON.parse(yield e.error.text()).message}catch(h){console.error(h)}this.$toastr.error(n||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error"))})})}).catch(()=>{})}truncateLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_truncate_log_file"),t.componentInstance.message=this.$translate.instant("logs.truncate_log_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_delete"),t.componentInstance.confirmButtonClass="btn-danger",t.componentInstance.faIconClass="fas fa-circle-exclamation primary-text",t.result.then(()=>{this.$api.put("/platform-tools/hb-service/log/truncate",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("logs.log_file_truncated"),this.$translate.instant("toast.title_success")),this.$log.term.clear()},error:e=>{console.error(e),this.$toastr.error(e.error?.message||this.$translate.instant("logs.truncate.error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=$({type:o,selectors:[["ng-component"]],viewQuery:function(e,n){e&1&&L(n.termTarget,Q,5),e&2&&S()},hostBindings:function(e,n){e&1&&p("resize",function(j){return n.onWindowResize(j)},y)},decls:9,vars:4,consts:[["logoutput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","log-output",1,"align-self-end","w-100","h-100","mb-1"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-download"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-0",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-trash-alt"]],template:function(e,n){e&1&&(c(0,"div",1)(1,"div",2)(2,"h3",3),I(3),a(4,"translate"),r()(),x(5,W,9,14,"div",4),r(),c(6,"div",5),m(7,"div",6,0),r()),e&2&&(l(3),B(s(4,2,"menu.linux.label_logs")),l(2),C(n.isAdmin?5:-1))},dependencies:[D,A],encapsulation:2})}return o})();export{it as LogsComponent};
1
+ import{a as M}from"./chunk-WQH3TDSI.js";import"./chunk-MD7IQ7EC.js";import{a as O}from"./chunk-CGPMZGNR.js";import{a as _}from"./chunk-QIMU7P43.js";import{n as z,t as D}from"./chunk-QHDPBN4J.js";import"./chunk-D2RHA7X2.js";import"./chunk-BB7GU4XN.js";import{b as H}from"./chunk-IYBMK3YF.js";import"./chunk-4AZGG3DH.js";import{k as E,l as A,n as F,q as V}from"./chunk-K322IJI4.js";import{Db as T,Gb as p,Ib as b,Ka as y,La as l,Pb as L,Qb as S,Vb as I,Wa as $,Wb as B,g as q,h as v,ja as i,kb as u,lb as x,mb as C,mc as a,n as w,nc as s,oa as d,pa as g,rb as f,sb as c,tb as r,ub as m,xc as k}from"./chunk-ZHRPBG7M.js";var N=q(O(),1);var Q=["logoutput"];function W(o,P){if(o&1){let t=T();c(0,"div",4)(1,"button",7),a(2,"translate"),a(3,"translate"),p("click",function(){d(t);let n=b();return g(n.downloadLogFile())}),m(4,"i",8),r(),c(5,"button",9),a(6,"translate"),a(7,"translate"),p("click",function(){d(t);let n=b();return g(n.truncateLogFile())}),m(8,"i",10),r()()}o&2&&(l(),f("openDelay",150)("ngbTooltip",s(2,6,"form.button_download")),u("aria-label",s(3,8,"form.button_download")),l(4),f("openDelay",150)("ngbTooltip",s(6,10,"form.button_delete")),u("aria-label",s(7,12,"form.button_delete")))}var it=(()=>{class o{$api=i(V);$auth=i(H);$log=i(M);$modal=i(z);$toastr=i(F);$translate=i(E);termTarget=k("logoutput");resizeEvent=new w;isAdmin=this.$auth.user.admin;onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){window.document.querySelector("body").classList.add("bg-black"),this.$log.startTerminal(this.termTarget(),{allowProposedApi:!0},this.resizeEvent)}ngOnDestroy(){window.document.querySelector("body").classList.remove("bg-black"),this.$log.destroyTerminal()}downloadLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_download_log_file"),t.componentInstance.message=this.$translate.instant("logs.download_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_download"),t.componentInstance.faIconClass="fas fa-user-secret primary-text",t.result.then(()=>{this.$api.get("/platform-tools/hb-service/log/download",{observe:"response",responseType:"blob"}).subscribe({next:e=>{(0,N.saveAs)(e.body,"homebridge.log.txt")},error:e=>v(this,null,function*(){let n;try{n=JSON.parse(yield e.error.text()).message}catch(h){console.error(h)}this.$toastr.error(n||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error"))})})}).catch(()=>{})}truncateLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_truncate_log_file"),t.componentInstance.message=this.$translate.instant("logs.truncate_log_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_delete"),t.componentInstance.confirmButtonClass="btn-danger",t.componentInstance.faIconClass="fas fa-circle-exclamation primary-text",t.result.then(()=>{this.$api.put("/platform-tools/hb-service/log/truncate",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("logs.log_file_truncated"),this.$translate.instant("toast.title_success")),this.$log.term.clear()},error:e=>{console.error(e),this.$toastr.error(e.error?.message||this.$translate.instant("logs.truncate.error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=$({type:o,selectors:[["ng-component"]],viewQuery:function(e,n){e&1&&L(n.termTarget,Q,5),e&2&&S()},hostBindings:function(e,n){e&1&&p("resize",function(j){return n.onWindowResize(j)},y)},decls:9,vars:4,consts:[["logoutput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","log-output",1,"align-self-end","w-100","h-100","mb-1"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-download"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-0",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-trash-alt"]],template:function(e,n){e&1&&(c(0,"div",1)(1,"div",2)(2,"h3",3),I(3),a(4,"translate"),r()(),x(5,W,9,14,"div",4),r(),c(6,"div",5),m(7,"div",6,0),r()),e&2&&(l(3),B(s(4,2,"menu.linux.label_logs")),l(2),C(n.isAdmin?5:-1))},dependencies:[D,A],encapsulation:2})}return o})();export{it as LogsComponent};