homebridge-config-ui-x 5.6.1-beta.12 → 5.6.1-beta.14

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 (183) hide show
  1. package/CHANGELOG.md +1 -10
  2. package/dist/core/auth/auth.controller.d.ts +0 -5
  3. package/dist/core/auth/auth.controller.js +0 -13
  4. package/dist/core/auth/auth.controller.js.map +1 -1
  5. package/dist/core/auth/auth.service.d.ts +0 -1
  6. package/dist/core/auth/auth.service.js +0 -24
  7. package/dist/core/auth/auth.service.js.map +1 -1
  8. package/dist/core/config/config.service.d.ts +74 -8
  9. package/dist/core/config/config.service.js +0 -6
  10. package/dist/core/config/config.service.js.map +1 -1
  11. package/dist/core/config/config.startup.d.ts +12 -2
  12. package/dist/core/config/config.startup.js +0 -12
  13. package/dist/core/config/config.startup.js.map +1 -1
  14. package/dist/core/spa/spa.filter.d.ts +0 -3
  15. package/dist/core/spa/spa.filter.js +2 -22
  16. package/dist/core/spa/spa.filter.js.map +1 -1
  17. package/dist/globalDefaults.js +0 -3
  18. package/dist/globalDefaults.js.map +1 -1
  19. package/dist/main.js +3 -62
  20. package/dist/main.js.map +1 -1
  21. package/dist/modules/backup/backup.service.js +1 -4
  22. package/dist/modules/backup/backup.service.js.map +1 -1
  23. package/dist/modules/config-editor/config-editor.controller.d.ts +3 -3
  24. package/dist/modules/config-editor/config-editor.service.d.ts +2 -3
  25. package/dist/modules/config-editor/config-editor.service.js +13 -36
  26. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  27. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.d.ts +1 -1
  28. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +1 -2
  29. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  30. package/dist/modules/log/log.gateway.d.ts +1 -1
  31. package/dist/modules/log/log.service.d.ts +4 -1
  32. package/dist/modules/log/log.service.js.map +1 -1
  33. package/dist/modules/platform-tools/terminal/terminal.gateway.d.ts +1 -1
  34. package/dist/modules/platform-tools/terminal/terminal.service.d.ts +8 -1
  35. package/dist/modules/platform-tools/terminal/terminal.service.js.map +1 -1
  36. package/dist/modules/plugins/plugins.controller.d.ts +5 -5
  37. package/dist/modules/plugins/plugins.service.d.ts +1 -1
  38. package/dist/modules/plugins/plugins.service.js +0 -6
  39. package/dist/modules/plugins/plugins.service.js.map +1 -1
  40. package/dist/modules/server/server.controller.d.ts +0 -3
  41. package/dist/modules/server/server.controller.js +0 -13
  42. package/dist/modules/server/server.controller.js.map +1 -1
  43. package/dist/modules/server/server.service.js +3 -5
  44. package/dist/modules/server/server.service.js.map +1 -1
  45. package/dist/modules/status/status.controller.d.ts +2 -2
  46. package/dist/modules/status/status.gateway.d.ts +5 -5
  47. package/dist/modules/status/status.service.d.ts +29 -2
  48. package/dist/modules/status/status.service.js +9 -4
  49. package/dist/modules/status/status.service.js.map +1 -1
  50. package/package.json +2 -3
  51. package/public/3rdpartylicenses.txt +13 -13
  52. package/public/{chunk-Y276Q4AC.js → chunk-2SMLTKN6.js} +1 -1
  53. package/public/chunk-2WHHAFYA.js +1 -0
  54. package/public/chunk-2YLQS2DL.js +1 -0
  55. package/public/chunk-34M674SY.js +1 -0
  56. package/public/chunk-3D7RRLPR.js +1 -0
  57. package/public/chunk-4MPGPOPP.js +1 -0
  58. package/public/chunk-4WBD4A62.js +1 -0
  59. package/public/chunk-5556TO6L.js +1 -0
  60. package/public/chunk-5T6DD7IV.js +40 -0
  61. package/public/chunk-5YG3JMTO.js +1 -0
  62. package/public/chunk-5YU4RFMD.js +1 -0
  63. package/public/chunk-6ILU2CLF.js +1 -0
  64. package/public/chunk-6QP27UHV.js +1 -0
  65. package/public/chunk-7URPBWRU.js +1 -0
  66. package/public/{chunk-7CNAISDX.js → chunk-AD7SNE53.js} +1 -1
  67. package/public/{chunk-UVHFLMOY.js → chunk-B2X3Q7TH.js} +1 -1
  68. package/public/chunk-BR6USPEJ.js +1 -0
  69. package/public/chunk-BWK3GOHM.js +19 -0
  70. package/public/chunk-BZMR4XHP.js +1 -0
  71. package/public/{chunk-NBY4ULRZ.js → chunk-D5RIMAWO.js} +1 -1
  72. package/public/chunk-DIPNFK3U.js +1 -0
  73. package/public/chunk-F3HOYAFH.js +1 -0
  74. package/public/{chunk-MCPFJTIS.js → chunk-GGZZFW2G.js} +1 -1
  75. package/public/chunk-GKCOPKC4.js +1 -0
  76. package/public/chunk-H4EYWGGC.js +1 -0
  77. package/public/{chunk-SCOJK4RP.js → chunk-HDIODAFZ.js} +1 -1
  78. package/public/chunk-HXTQJGWK.js +1 -0
  79. package/public/{chunk-BU6Y5VTM.js → chunk-J6L2XE5U.js} +1 -1
  80. package/public/{chunk-MJIH4FQP.js → chunk-JKQEXZUI.js} +1 -1
  81. package/public/chunk-M2HWRB6L.js +1 -0
  82. package/public/{chunk-WO2FS67T.js → chunk-MSSNDMBK.js} +1 -1
  83. package/public/{chunk-2H5LPMAQ.js → chunk-MUHTDQ4J.js} +1 -1
  84. package/public/{chunk-NR4KD4TZ.js → chunk-MXQEKDB7.js} +1 -1
  85. package/public/chunk-MXTAHASV.js +1 -0
  86. package/public/chunk-N3NPEHCD.js +1 -0
  87. package/public/chunk-NNHGWF7K.js +1 -0
  88. package/public/chunk-NYJ5JVUS.js +1 -0
  89. package/public/chunk-OAAZLUNN.js +1 -0
  90. package/public/chunk-OMPHX32Y.js +2 -0
  91. package/public/{chunk-QLP4ZA63.js → chunk-OPUBCSUA.js} +1 -1
  92. package/public/{chunk-45YVT27L.js → chunk-PB3L5HHQ.js} +1 -1
  93. package/public/chunk-PDBBXRN3.js +1 -0
  94. package/public/chunk-Q2DNHZT4.js +1 -0
  95. package/public/{chunk-3ZU7ZAMP.js → chunk-Q5UJ7RBG.js} +1 -1
  96. package/public/{chunk-WIZAF6OS.js → chunk-Q6UH4DEV.js} +1 -1
  97. package/public/{chunk-ZUJUIJ4M.js → chunk-QEG3OQ7B.js} +1 -1
  98. package/public/{chunk-CEMUTHS3.js → chunk-QJ445K5M.js} +1 -1
  99. package/public/{chunk-MO7W4MOJ.js → chunk-QVKCJ4SR.js} +1 -1
  100. package/public/chunk-QYXVENKH.js +1 -0
  101. package/public/{chunk-ST2OG2C6.js → chunk-RJUV23IZ.js} +1 -1
  102. package/public/chunk-SH7JZ7PA.js +49 -0
  103. package/public/{chunk-GEHW3BWU.js → chunk-SP5IPQP6.js} +1 -1
  104. package/public/{chunk-K6GG4LNE.js → chunk-T5B6OVIH.js} +2 -2
  105. package/public/{chunk-RUQ2H5EQ.js → chunk-TDH7HYAU.js} +1 -1
  106. package/public/chunk-TFFUSSEA.js +2 -0
  107. package/public/{chunk-2XYBM4MH.js → chunk-TLGNUWU6.js} +1 -1
  108. package/public/chunk-TTLX53WB.js +1 -0
  109. package/public/chunk-UGI34NWT.js +1 -0
  110. package/public/chunk-UMW5IGSH.js +1 -0
  111. package/public/{chunk-XOZXV7OE.js → chunk-UUXVPC6B.js} +1 -1
  112. package/public/{chunk-ZGICJQ2X.js → chunk-UV4UNUVO.js} +1 -1
  113. package/public/chunk-V2MV6MJL.js +4 -0
  114. package/public/chunk-VYTDBITY.js +1 -0
  115. package/public/{chunk-N4N4XXRV.js → chunk-WDWDHEI2.js} +1 -1
  116. package/public/{chunk-R2QGD4ZP.js → chunk-WIJDDKLW.js} +1 -1
  117. package/public/chunk-WTWQSU5J.js +1 -0
  118. package/public/chunk-X5GSN6SK.js +1 -0
  119. package/public/chunk-Y7KVPAMR.js +1 -0
  120. package/public/chunk-Z3IOKVH5.js +1 -0
  121. package/public/index.html +2 -2
  122. package/public/main-D5FOFUEC.js +1 -0
  123. package/public/{styles-IKV7T7ID.css → styles-KAER7B5R.css} +1 -1
  124. package/dist/core/config/config.interfaces.d.ts +0 -120
  125. package/dist/core/config/config.interfaces.js +0 -3
  126. package/dist/core/config/config.interfaces.js.map +0 -1
  127. package/dist/core/spa/spa-html.service.d.ts +0 -5
  128. package/dist/core/spa/spa-html.service.js +0 -38
  129. package/dist/core/spa/spa-html.service.js.map +0 -1
  130. package/dist/modules/log/log.interfaces.d.ts +0 -4
  131. package/dist/modules/log/log.interfaces.js +0 -3
  132. package/dist/modules/log/log.interfaces.js.map +0 -1
  133. package/dist/modules/platform-tools/terminal/terminal.interfaces.d.ts +0 -8
  134. package/dist/modules/platform-tools/terminal/terminal.interfaces.js +0 -3
  135. package/dist/modules/platform-tools/terminal/terminal.interfaces.js.map +0 -1
  136. package/dist/modules/plugins/plugins.interfaces.d.ts +0 -211
  137. package/dist/modules/plugins/plugins.interfaces.js +0 -3
  138. package/dist/modules/plugins/plugins.interfaces.js.map +0 -1
  139. package/dist/modules/status/status.interfaces.d.ts +0 -27
  140. package/dist/modules/status/status.interfaces.js +0 -10
  141. package/dist/modules/status/status.interfaces.js.map +0 -1
  142. package/public/chunk-3E6HFTEE.js +0 -1
  143. package/public/chunk-3VNRVJER.js +0 -1
  144. package/public/chunk-44BZ7YDX.js +0 -1
  145. package/public/chunk-4QGDXKG4.js +0 -1
  146. package/public/chunk-5SLRMSXI.js +0 -1
  147. package/public/chunk-6D2TL7XK.js +0 -1
  148. package/public/chunk-6LB7WDKS.js +0 -1
  149. package/public/chunk-A6NPKCAZ.js +0 -1
  150. package/public/chunk-CFA4X2RT.js +0 -1
  151. package/public/chunk-CTUR7IPX.js +0 -2
  152. package/public/chunk-CXCOAQYV.js +0 -1
  153. package/public/chunk-DENJUFJU.js +0 -1
  154. package/public/chunk-DFSTMWQK.js +0 -1
  155. package/public/chunk-EGTGLYKN.js +0 -1
  156. package/public/chunk-EPPCEON6.js +0 -1
  157. package/public/chunk-HG6ZV37T.js +0 -1
  158. package/public/chunk-HPMUQAQK.js +0 -1
  159. package/public/chunk-J53UFDU4.js +0 -1
  160. package/public/chunk-J5EXF527.js +0 -1
  161. package/public/chunk-KPLHMJRD.js +0 -49
  162. package/public/chunk-KQOVIFFF.js +0 -1
  163. package/public/chunk-L25JLTTA.js +0 -1
  164. package/public/chunk-L2JVSSUJ.js +0 -1
  165. package/public/chunk-LEFHO2HZ.js +0 -1
  166. package/public/chunk-LMB6N24O.js +0 -1
  167. package/public/chunk-LVDFEJBW.js +0 -1
  168. package/public/chunk-NCXJYVJD.js +0 -1
  169. package/public/chunk-ODLZQF34.js +0 -1
  170. package/public/chunk-OTONUZSU.js +0 -40
  171. package/public/chunk-OTUS5Q47.js +0 -1
  172. package/public/chunk-RJGRIWSM.js +0 -1
  173. package/public/chunk-SDEIPOS7.js +0 -1
  174. package/public/chunk-SZ4D5LHY.js +0 -1
  175. package/public/chunk-T57F6WC5.js +0 -1
  176. package/public/chunk-TUN7H57E.js +0 -1
  177. package/public/chunk-VNLC4C5I.js +0 -1
  178. package/public/chunk-WVNEV3VQ.js +0 -1
  179. package/public/chunk-WWMJUVLA.js +0 -5
  180. package/public/chunk-XYUHMXRD.js +0 -1
  181. package/public/chunk-YGV2JGHO.js +0 -19
  182. package/public/chunk-YHUHGXBO.js +0 -1
  183. package/public/main-QDBLWEZK.js +0 -1
@@ -1 +0,0 @@
1
- import{a as E}from"./chunk-ZGICJQ2X.js";import{a as S}from"./chunk-CEMUTHS3.js";import"./chunk-MO7W4MOJ.js";import"./chunk-SCOJK4RP.js";import"./chunk-3ZU7ZAMP.js";import"./chunk-MCPFJTIS.js";import"./chunk-RUQ2H5EQ.js";import"./chunk-RJGRIWSM.js";import{b as C}from"./chunk-EPPCEON6.js";import{l as w}from"./chunk-CXCOAQYV.js";import{Gb as v,Ka as a,La as c,Pb as f,Qb as p,Vb as g,Wa as u,Wb as T,ja as o,mc as y,n as d,nc as b,vb as m,wb as l,xb as h,xc as $}from"./chunk-WWMJUVLA.js";var _=["terminaloutput"],A=(()=>{class r{$terminal=o(S);$settings=o(C);$navigationGuard=o(E);resizeEvent=new d;termTarget=$("terminaloutput");onWindowResize(){this.resizeEvent.next(void 0)}onBeforeUnload(t){return this.$navigationGuard.handleBeforeUnload(t)}onWindowFocus(){this.activateTerminal()}onClick(){this.activateTerminal()}activateTerminal(){this.$terminal.isTerminalReady()&&this.$terminal.term&&this.$terminal.term.focus()}ngOnInit(){window.document.querySelector("body").classList.add("bg-black"),this.$terminal.isTerminalReady()&&this.$terminal.destroyTerminal(),this.$settings.env.terminal?.persistence&&this.$terminal.hasActiveSession()?this.$terminal.reconnectTerminal(this.termTarget(),{},this.resizeEvent):(!this.$settings.env.terminal?.persistence&&this.$terminal.hasActiveSession()&&this.$terminal.destroyPersistentSession(),this.$terminal.startTerminal(this.termTarget(),{},this.resizeEvent)),setTimeout(()=>{this.activateTerminal()},100)}ngAfterViewInit(){document.addEventListener("visibilitychange",this.onVisibilityChange.bind(this))}onVisibilityChange(){!document.hidden&&this.$terminal.isTerminalReady()&&setTimeout(()=>{this.activateTerminal()},100)}canDeactivate(){return this.$navigationGuard.canDeactivate()}ngOnDestroy(){document.removeEventListener("visibilitychange",this.onVisibilityChange.bind(this)),window.document.querySelector("body").classList.remove("bg-black"),this.$settings.env.terminal?.persistence?this.$terminal.detachTerminal():this.$terminal.destroyPersistentSession()}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=u({type:r,selectors:[["ng-component"]],viewQuery:function(e,i){e&1&&f(i.termTarget,_,5),e&2&&p()},hostBindings:function(e,i){e&1&&v("resize",function(n){return i.onWindowResize(n)},a)("beforeunload",function(n){return i.onBeforeUnload(n)},a)("focus",function(n){return i.onWindowFocus(n)},a)("click",function(n){return i.onClick(n)})},decls:8,vars:3,consts:[["terminaloutput",""],[1,"row","mb-3"],[1,"col-12"],[1,"primary-text","m-0"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","docker-terminal",1,"align-self-end","w-100","h-100","mb-1"]],template:function(e,i){e&1&&(m(0,"div",1)(1,"div",2)(2,"h3",3),g(3),y(4,"translate"),l()()(),m(5,"div",4),h(6,"div",5,0),l()),e&2&&(c(3),T(b(4,1,"menu.linux.label_terminal")))},dependencies:[w],encapsulation:2})}return r})();export{A as TerminalComponent};
@@ -1 +0,0 @@
1
- import{b as D}from"./chunk-EPPCEON6.js";import{p as h,q as S}from"./chunk-CXCOAQYV.js";import{C as T,Xa as E,ad as j,ea as d,fa as y,h as a,ha as v,ia as l,ja as p,r as f,ta as I,w as c,x as k,z as w}from"./chunk-WWMJUVLA.js";var g=new v("JWT_OPTIONS"),m=(()=>{class o{constructor(e=null){this.tokenGetter=e&&e.tokenGetter||function(){}}urlBase64Decode(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:{t+="==";break}case 3:{t+="=";break}default:throw new Error("Illegal base64url string!")}return this.b64DecodeUnicode(t)}b64decode(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="";if(e=String(e).replace(/=+$/,""),e.length%4===1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(let r=0,s,n,x=0;n=e.charAt(x++);~n&&(s=r%4?s*64+n:n,r++%4)?i+=String.fromCharCode(255&s>>(-2*r&6)):0)n=t.indexOf(n);return i}b64DecodeUnicode(e){return decodeURIComponent(Array.prototype.map.call(this.b64decode(e),t=>"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)).join(""))}decodeToken(e=this.tokenGetter()){return e instanceof Promise?e.then(t=>this._decodeToken(t)):this._decodeToken(e)}_decodeToken(e){if(!e||e==="")return null;let t=e.split(".");if(t.length!==3)throw new Error("The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.");let i=this.urlBase64Decode(t[1]);if(!i)throw new Error("Cannot decode the token.");return JSON.parse(i)}getTokenExpirationDate(e=this.tokenGetter()){return e instanceof Promise?e.then(t=>this._getTokenExpirationDate(t)):this._getTokenExpirationDate(e)}_getTokenExpirationDate(e){let t;if(t=this.decodeToken(e),!t||!t.hasOwnProperty("exp"))return null;let i=new Date(0);return i.setUTCSeconds(t.exp),i}isTokenExpired(e=this.tokenGetter(),t){return e instanceof Promise?e.then(i=>this._isTokenExpired(i,t)):this._isTokenExpired(e,t)}_isTokenExpired(e,t){if(!e||e==="")return!0;let i=this.getTokenExpirationDate(e);return t=t||0,i===null?!1:!(i.valueOf()>new Date().valueOf()+t*1e3)}getAuthScheme(e,t){return typeof e=="function"?e(t):e}}return o.\u0275fac=function(e){return new(e||o)(l(g))},o.\u0275prov=d({token:o,factory:o.\u0275fac}),o})(),$=o=>o instanceof Promise?T(()=>o):f(o),b=(()=>{class o{constructor(e,t,i){this.jwtHelper=t,this.document=i,this.standardPorts=["80","443"],this.tokenGetter=e.tokenGetter,this.headerName=e.headerName||"Authorization",this.authScheme=e.authScheme||e.authScheme===""?e.authScheme:"Bearer ",this.allowedDomains=e.allowedDomains||[],this.disallowedRoutes=e.disallowedRoutes||[],this.throwNoTokenError=e.throwNoTokenError||!1,this.skipWhenExpired=e.skipWhenExpired}isAllowedDomain(e){let t=new URL(e.url,this.document.location.origin);if(t.host===this.document.location.host)return!0;let i=`${t.hostname}${t.port&&!this.standardPorts.includes(t.port)?":"+t.port:""}`;return this.allowedDomains.findIndex(r=>typeof r=="string"?r===i:r instanceof RegExp?r.test(i):!1)>-1}isDisallowedRoute(e){let t=new URL(e.url,this.document.location.origin);return this.disallowedRoutes.findIndex(i=>{if(typeof i=="string"){let r=new URL(i,this.document.location.origin);return r.hostname===t.hostname&&r.pathname===t.pathname}return i instanceof RegExp?i.test(e.url):!1})>-1}handleInterception(e,t,i){let r=this.jwtHelper.getAuthScheme(this.authScheme,t);if(!e&&this.throwNoTokenError)throw new Error("Could not get token from tokenGetter function.");let s=f(!1);return this.skipWhenExpired&&(s=e?$(this.jwtHelper.isTokenExpired(e)):f(!0)),e?s.pipe(k(n=>n&&this.skipWhenExpired?t.clone():t.clone({setHeaders:{[this.headerName]:`${r}${e}`}})),w(n=>i.handle(n))):i.handle(t)}intercept(e,t){if(!this.isAllowedDomain(e)||this.isDisallowedRoute(e))return t.handle(e);let i=this.tokenGetter(e);return $(i).pipe(w(r=>this.handleInterception(r,e,t)))}}return o.\u0275fac=function(e){return new(e||o)(l(g),l(m),l(I))},o.\u0275prov=d({token:o,factory:o.\u0275fac}),o})(),U=(()=>{class o{constructor(e){if(e)throw new Error("JwtModule is already loaded. It should only be imported in your application's main module.")}static forRoot(e){return{ngModule:o,providers:[{provide:j,useClass:b,multi:!0},e.jwtOptionsProvider||{provide:g,useValue:e.config},m]}}}return o.\u0275fac=function(e){return new(e||o)(l(o,12))},o.\u0275mod=E({type:o}),o.\u0275inj=y({}),o})();var X=(()=>{class o{$api=p(S);$jwtHelper=p(m);$settings=p(D);token;user={};logoutTimer;lastRefreshTime=Date.now();isRefreshing=!1;constructor(){this.loadToken()}login(e){return a(this,null,function*(){let t=yield c(this.$api.post("/auth/login",e));if(!this.validateToken(t.access_token))throw new Error("Invalid username or password.");window.localStorage.setItem(h.jwt.tokenKey,t.access_token),yield this.$settings.getAppSettings()})}noauth(){return a(this,null,function*(){let e=yield c(this.$api.post("/auth/noauth",{}));if(this.validateToken(e.access_token))window.localStorage.setItem(h.jwt.tokenKey,e.access_token),yield this.$settings.getAppSettings();else throw new Error("Invalid username or password.")})}logout(){this.user=null,this.token=null,clearTimeout(this.logoutTimer),window.localStorage.removeItem(h.jwt.tokenKey),window.location.reload()}loadToken(){return a(this,null,function*(){this.$settings.settingsLoaded||(yield c(this.$settings.onSettingsLoaded));let e=window.localStorage.getItem(h.jwt.tokenKey);e&&this.validateToken(e)})}checkToken(){return a(this,null,function*(){try{return yield c(this.$api.get("/auth/check"))}catch(e){e.status===401&&(console.error("Current token is not valid"),this.logout())}})}isLoggedIn(){return this.$settings.env.instanceId!==this.user.instanceId?(console.error("Token does not match instance"),!1):this.user&&this.token&&!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)}validateToken(e){try{return this.$jwtHelper.isTokenExpired(e,this.$settings.serverTimeOffset)&&this.logout(),this.user=this.$jwtHelper.decodeToken(e),this.token=e,this.setLogoutTimer(),!0}catch{return window.localStorage.removeItem(h.jwt.tokenKey),this.token=null,!1}}setLogoutTimer(){if(clearTimeout(this.logoutTimer),!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)){let e=this.$settings.sessionTimeout*1e3;e<=2147483647&&(this.logoutTimer=setTimeout(()=>a(this,null,function*(){this.$settings.formAuth===!1?(yield this.noauth(),window.location.reload()):this.logout()}),e))}}checkAndRefreshIfNeeded(){return a(this,null,function*(){if(!this.$settings.formAuth||!this.$settings.sessionTimeoutInactivityBased||!this.token||!this.isLoggedIn()||this.isRefreshing)return;let t=Date.now()-this.lastRefreshTime,r=this.$settings.sessionTimeout*1e3*.7;if(t>r)try{yield this.refreshSession()}catch(s){console.error("Failed to refresh session:",s)}})}refreshSession(){return a(this,null,function*(){if(!this.isRefreshing){this.isRefreshing=!0;try{let e=yield c(this.$api.post("/auth/refresh",{}));e.access_token&&(this.token=e.access_token,window.localStorage.setItem(h.jwt.tokenKey,e.access_token),this.lastRefreshTime=Date.now(),this.setLogoutTimer())}finally{this.isRefreshing=!1}}})}static \u0275fac=function(t){return new(t||o)};static \u0275prov=d({token:o,factory:o.\u0275fac})}return o})();export{U as a,X as b};
@@ -1 +0,0 @@
1
- import{k as v,l as E,n as _,q as h}from"./chunk-CXCOAQYV.js";import{Ib as u,La as n,Vb as o,Wa as d,Wb as a,ja as l,lb as c,mb as x,mc as p,nc as s,vb as i,wb as e,xb as f}from"./chunk-WWMJUVLA.js";function y(t,w){if(t&1&&(i(0,"div",7),o(1),e()),t&2){let r=u();n(),a(r.error)}}function C(t,w){t&1&&(i(0,"p",8),o(1),p(2,"translate"),e()),t&2&&(n(),a(s(2,1,"platform.linux.server_will_power_down")))}var B=(()=>{class t{$api=l(h);$toastr=l(_);$translate=l(v);error=!1;ngOnInit(){this.$api.put("/platform-tools/linux/shutdown-host",{}).subscribe({error:r=>{console.error(r),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"))}})}static \u0275fac=function(m){return new(m||t)};static \u0275cmp=d({type:t,selectors:[["ng-component"]],decls:13,vars:7,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,"grey-text"]],template:function(m,S){m&1&&(i(0,"div",0)(1,"h3",1),o(2),p(3,"translate"),e()(),i(4,"div",2)(5,"div",3),f(6,"i",4),e(),i(7,"div",5)(8,"h4",6),o(9),p(10,"translate"),e(),c(11,y,2,1,"div",7)(12,C,3,3,"p",8),e()()),m&2&&(n(2),a(s(3,3,"menu.restart.title")),n(7),a(s(10,5,"platform.linux.shutting_down_server")),n(2),x(S.error?11:12))},dependencies:[E],encapsulation:2})}return t})();export{B as ShutdownLinuxComponent};
@@ -1 +0,0 @@
1
- import{g as i}from"./chunk-6LB7WDKS.js";import{Xa as r,fa as o}from"./chunk-WWMJUVLA.js";var m=[{path:"",loadComponent:()=>import("./chunk-KQOVIFFF.js").then(t=>t.SupportComponent)}],n=(()=>{class t{static \u0275fac=function(e){return new(e||t)};static \u0275mod=r({type:t});static \u0275inj=o({imports:[i.forChild(m),i]})}return t})();var s=(()=>{class t{static \u0275fac=function(e){return new(e||t)};static \u0275mod=r({type:t});static \u0275inj=o({imports:[n]})}return t})();export{s as SupportModule};
@@ -1 +0,0 @@
1
- import{a as u}from"./chunk-BU6Y5VTM.js";import{k as c,n as p,q as m}from"./chunk-CXCOAQYV.js";import{ea as n,g as f,h as r,ja as a,w as s}from"./chunk-WWMJUVLA.js";var l=f(u(),1);var $=(()=>{class e{$api=a(m);$toastr=a(p);$translate=a(c);downloadBackup(){return r(this,null,function*(){let t=yield s(this.$api.get("/backup/download",{observe:"response",responseType:"blob"})),i=t.headers.get("File-Name")||"homebridge-backup.tar.gz",o=t.body.size;if(o>globalThis.backup.maxBackupSize){let b=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(o/1048576).toFixed(1)}MB`});this.$toastr.warning(b,this.$translate.instant("toast.title_warning"))}(0,l.saveAs)(t.body,i)})}static \u0275fac=function(i){return new(i||e)};static \u0275prov=n({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();export{$ as a};
@@ -1 +0,0 @@
1
- function n(){var o;return typeof window<"u"&&(window?.matchMedia("(display-mode: standalone)").matches||((o=window.navigator)===null||o===void 0?void 0:o.standalone)||document.referrer.startsWith("android-app://")||window?.Windows||/trident.+(msapphost|webview)\//i.test(navigator.userAgent)||document.referrer.startsWith("app-info://platform/microsoft-store"))}export{n as a};
@@ -1 +0,0 @@
1
- import{a as n}from"./chunk-GEHW3BWU.js";import"./chunk-KPLHMJRD.js";import"./chunk-T57F6WC5.js";import"./chunk-QLP4ZA63.js";import"./chunk-NR4KD4TZ.js";import"./chunk-WIZAF6OS.js";import"./chunk-ZUJUIJ4M.js";import"./chunk-MO7W4MOJ.js";import"./chunk-BU6Y5VTM.js";import"./chunk-XOZXV7OE.js";import"./chunk-Y276Q4AC.js";import"./chunk-2XYBM4MH.js";import"./chunk-SCOJK4RP.js";import"./chunk-3ZU7ZAMP.js";import"./chunk-MCPFJTIS.js";import"./chunk-RUQ2H5EQ.js";import"./chunk-RJGRIWSM.js";import{g as r}from"./chunk-6LB7WDKS.js";import"./chunk-EPPCEON6.js";import"./chunk-CXCOAQYV.js";import{Xa as i,fa as t}from"./chunk-WWMJUVLA.js";var l=[{path:"",loadComponent:()=>import("./chunk-CFA4X2RT.js").then(o=>o.PluginsComponent)}],u=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=i({type:o});static \u0275inj=t({imports:[r.forChild(l),r]})}return o})();var f=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=i({type:o});static \u0275inj=t({imports:[n,u]})}return o})();export{f as PluginsModule};
@@ -1 +0,0 @@
1
- import{g as i}from"./chunk-6LB7WDKS.js";import{Xa as e,fa as t}from"./chunk-WWMJUVLA.js";var d=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"docker",loadChildren:()=>import("./chunk-3VNRVJER.js").then(o=>o.DockerModule)},{path:"linux",loadChildren:()=>import("./chunk-J5EXF527.js").then(o=>o.LinuxModule)},{path:"terminal",loadChildren:()=>import("./chunk-J53UFDU4.js").then(o=>o.TerminalModule)}],l=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[i.forChild(d),i]})}return o})();var p=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[l]})}return o})();export{p as PlatformToolsModule};