homebridge-config-ui-x 5.8.1-alpha.6 → 5.8.1-alpha.8
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/CHANGELOG.md +12 -6
- package/dist/core/auth/auth.controller.d.ts +0 -2
- package/dist/core/config/config.interfaces.d.ts +0 -8
- package/dist/core/config/config.service.d.ts +0 -4
- package/dist/core/config/config.service.js +0 -5
- package/dist/core/config/config.service.js.map +1 -1
- package/dist/core/config/config.startup.js +0 -12
- package/dist/core/config/config.startup.js.map +1 -1
- package/dist/core/feature-flags/feature-flags.registry.js +0 -5
- package/dist/core/feature-flags/feature-flags.registry.js.map +1 -1
- package/dist/core/spa/spa.filter.d.ts +0 -3
- package/dist/core/spa/spa.filter.js +2 -21
- package/dist/core/spa/spa.filter.js.map +1 -1
- package/dist/globalDefaults.js +0 -3
- package/dist/globalDefaults.js.map +1 -1
- package/dist/main.js +4 -18
- package/dist/main.js.map +1 -1
- package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +0 -9
- package/dist/modules/config-editor/config-editor.controller.d.ts +0 -5
- package/dist/modules/config-editor/config-editor.controller.js +1 -46
- package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
- package/dist/modules/config-editor/config-editor.module.js +0 -2
- package/dist/modules/config-editor/config-editor.module.js.map +1 -1
- package/dist/modules/config-editor/config-editor.service.d.ts +1 -9
- package/dist/modules/config-editor/config-editor.service.js +3 -42
- package/dist/modules/config-editor/config-editor.service.js.map +1 -1
- package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +1 -1
- package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
- package/dist/modules/plugins/plugins.service.js +0 -15
- package/dist/modules/plugins/plugins.service.js.map +1 -1
- package/dist/modules/server/server.controller.d.ts +0 -20
- package/dist/modules/server/server.controller.js +1 -86
- package/dist/modules/server/server.controller.js.map +1 -1
- package/dist/modules/server/server.service.d.ts +0 -18
- package/dist/modules/server/server.service.js +14 -243
- package/dist/modules/server/server.service.js.map +1 -1
- package/dist/modules/status/status.gateway.d.ts +0 -2
- package/dist/modules/status/status.interfaces.d.ts +0 -11
- package/dist/modules/status/status.service.d.ts +1 -4
- package/dist/modules/status/status.service.js +12 -11
- package/dist/modules/status/status.service.js.map +1 -1
- package/package.json +19 -19
- package/public/assets/plugin-ui-utils/ui.js +0 -3
- package/public/assets/plugin-ui-utils/ui.js.map +1 -1
- package/public/chunk-2NFGMXHO.js +4 -0
- package/public/{chunk-L5NV6PIA.js → chunk-3KAFG5EK.js} +1 -1
- package/public/{chunk-XZPAZCNK.js → chunk-3KNS6HXB.js} +1 -1
- package/public/{chunk-OSJXXALI.js → chunk-3OP57H7R.js} +1 -1
- package/public/{chunk-VADYL2Y7.js → chunk-4FV7QIK7.js} +1 -1
- package/public/{chunk-DVW3AYMZ.js → chunk-4TSYHRZK.js} +1 -1
- package/public/{chunk-3UFBAGVX.js → chunk-57P3RXT7.js} +1 -1
- package/public/{chunk-XD63O5W7.js → chunk-5BF7UKZE.js} +1 -1
- package/public/chunk-5NTBMSWU.js +19 -0
- package/public/{chunk-ATQRQAFJ.js → chunk-7FS54X3K.js} +1 -1
- package/public/{chunk-ALOBM2NG.js → chunk-7VHONGVT.js} +1 -1
- package/public/{chunk-7IY44YTG.js → chunk-ATBVRAML.js} +1 -1
- package/public/{chunk-DHVEIQJG.js → chunk-B5P5KEZV.js} +1 -1
- package/public/chunk-BEB76E2G.js +1 -0
- package/public/chunk-BEHK3BS3.js +1 -0
- package/public/{chunk-P6F4VLQU.js → chunk-BJ7NEXKS.js} +1 -1
- package/public/{chunk-NIBQ6RKV.js → chunk-BL3QYAU2.js} +1 -1
- package/public/chunk-CCOHRXDD.js +1 -0
- package/public/{chunk-JSZUK6ZC.js → chunk-CUP4YO7L.js} +1 -1
- package/public/{chunk-TGIITTHR.js → chunk-CXXF4A7A.js} +1 -1
- package/public/{chunk-JVBDJPYM.js → chunk-DQUBFHG3.js} +1 -1
- package/public/{chunk-CGRJDJGB.js → chunk-DT6ICOAZ.js} +1 -1
- package/public/{chunk-IGYN2ALF.js → chunk-DWMACG66.js} +1 -1
- package/public/{chunk-N2Q4P2LI.js → chunk-E4XWU525.js} +1 -1
- package/public/chunk-EHT4NTUK.js +1 -0
- package/public/{chunk-DSXSAP3T.js → chunk-F2E7FMEJ.js} +1 -1
- package/public/{chunk-ZUFH2ZUK.js → chunk-FJCVFWLW.js} +1 -1
- package/public/{chunk-PKFPEF2M.js → chunk-FTBPEQYE.js} +1 -1
- package/public/{chunk-MJFDOIX3.js → chunk-GNZCWCTQ.js} +1 -1
- package/public/{chunk-HVXGZYFL.js → chunk-GW3GHIQF.js} +1 -1
- package/public/{chunk-QLB33B5E.js → chunk-GZJDBT2G.js} +1 -1
- package/public/{chunk-RXFZWKMW.js → chunk-HLL6MWFP.js} +1 -1
- package/public/{chunk-IUMRLBNA.js → chunk-IESBL4DA.js} +1 -1
- package/public/{chunk-4AP7EVCQ.js → chunk-IW4FBZDG.js} +1 -1
- package/public/{chunk-H3QOYGFZ.js → chunk-JISSIYSN.js} +1 -1
- package/public/{chunk-XJX4PBEH.js → chunk-KYDMDPM6.js} +1 -1
- package/public/{chunk-5RRFD5UZ.js → chunk-LCJQXMQT.js} +1 -1
- package/public/{chunk-KWY6IF3R.js → chunk-LIACIABJ.js} +1 -1
- package/public/chunk-LQPGXCYH.js +1 -0
- package/public/{chunk-WY2VANHO.js → chunk-LTQGLD2K.js} +1 -1
- package/public/{chunk-3MDZPDYM.js → chunk-LVVTY6J5.js} +1 -1
- package/public/{chunk-A47OHR4B.js → chunk-MMLBIEDP.js} +2 -2
- package/public/{chunk-K2SXAJBI.js → chunk-MYSGML5C.js} +1 -1
- package/public/chunk-N5GOQDTB.js +1 -0
- package/public/chunk-ND6XATQX.js +1 -0
- package/public/{chunk-FRFRPI37.js → chunk-NPJEYIWR.js} +1 -1
- package/public/{chunk-3E567MLS.js → chunk-NS3QD6O3.js} +4 -4
- package/public/chunk-PQALC4SN.js +1 -0
- package/public/{chunk-RYJMCJHX.js → chunk-QPHFUXFE.js} +1 -1
- package/public/{chunk-RTI2YJC4.js → chunk-R24D2XKK.js} +1 -1
- package/public/{chunk-MNDQEI63.js → chunk-RSIDV3YB.js} +1 -1
- package/public/chunk-SW7YBIQQ.js +1 -0
- package/public/{chunk-XDPLQ2FO.js → chunk-TB2WDDRA.js} +1 -1
- package/public/chunk-UOVU3TGV.js +50 -0
- package/public/{chunk-2HPXFF3S.js → chunk-UWXXTVC5.js} +1 -1
- package/public/chunk-VEJIPP2P.js +16 -0
- package/public/chunk-VKZMC7UY.js +1 -0
- package/public/{chunk-XVI5O2NK.js → chunk-VNKQOQ6Z.js} +1 -1
- package/public/{chunk-OX75PU3U.js → chunk-WD5T6QFV.js} +1 -1
- package/public/{chunk-SVRR7CNU.js → chunk-WGFPD4J2.js} +1 -1
- package/public/{chunk-JDHXYKEK.js → chunk-WVRILPCE.js} +1 -1
- package/public/{chunk-3KTHIJ5Z.js → chunk-X2HK2VP5.js} +1 -1
- package/public/{chunk-4U3RIQQL.js → chunk-X3DENUZZ.js} +1 -1
- package/public/{chunk-EFMRHNFR.js → chunk-X3TS4B5J.js} +1 -1
- package/public/{chunk-MSBQZV4P.js → chunk-XKFPJPJH.js} +1 -1
- package/public/{chunk-ZBHHT23D.js → chunk-YS47YT3C.js} +1 -1
- package/public/{chunk-CYJRMKT4.js → chunk-YT4YGNUT.js} +1 -1
- package/public/chunk-YTSG5FVS.js +1 -0
- package/public/index.html +2 -2
- package/public/main-OYSQVLFB.js +1 -0
- package/public/{styles-CSF457UW.css → styles-UCSI3VA5.css} +1 -1
- package/scripts/extract-plugin-alias.js +2 -53
- package/dist/core/spa/spa-html.service.d.ts +0 -5
- package/dist/core/spa/spa-html.service.js +0 -38
- package/dist/core/spa/spa-html.service.js.map +0 -1
- package/public/assets/matter.svg +0 -8
- package/public/chunk-2VWJ7ASV.js +0 -1
- package/public/chunk-4G6KMX23.js +0 -16
- package/public/chunk-5OYANEGP.js +0 -1
- package/public/chunk-CIUT5ZJW.js +0 -1
- package/public/chunk-E6L6SUOT.js +0 -4
- package/public/chunk-FZXE2INO.js +0 -19
- package/public/chunk-GNVXYEPV.js +0 -50
- package/public/chunk-HUBB6BG5.js +0 -1
- package/public/chunk-IGGPDWHS.js +0 -1
- package/public/chunk-IHRQI6V3.js +0 -1
- package/public/chunk-KWCZZJ3U.js +0 -1
- package/public/chunk-LPR3WZ3O.js +0 -1
- package/public/chunk-PE32X7RA.js +0 -1
- package/public/chunk-RFSNZIZX.js +0 -1
- package/public/chunk-S6UNO3GA.js +0 -1
- package/public/main-X7PXS4NJ.js +0 -1
- package/public/media/matter-P563JGDL.svg +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as $}from"./chunk-
|
|
1
|
+
import{b as $}from"./chunk-VKZMC7UY.js";import{p as h,q as S}from"./chunk-LQPGXCYH.js";import{A as w,D as T,eb as E,fd as j,h as a,ia as d,ja as v,la as y,ma as l,na as p,s as f,x as c,xa as I,y as k}from"./chunk-MMLBIEDP.js";var g=new y("JWT_OPTIONS"),m=(()=>{class i{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+/=",o="";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,D=0;n=e.charAt(D++);~n&&(s=r%4?s*64+n:n,r++%4)?o+=String.fromCharCode(255&s>>(-2*r&6)):0)n=t.indexOf(n);return o}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 o=this.urlBase64Decode(t[1]);if(!o)throw new Error("Cannot decode the token.");return JSON.parse(o)}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 o=new Date(0);return o.setUTCSeconds(t.exp),o}isTokenExpired(e=this.tokenGetter(),t){return e instanceof Promise?e.then(o=>this._isTokenExpired(o,t)):this._isTokenExpired(e,t)}_isTokenExpired(e,t){if(!e||e==="")return!0;let o=this.getTokenExpirationDate(e);return t=t||0,o===null?!1:!(o.valueOf()>new Date().valueOf()+t*1e3)}getAuthScheme(e,t){return typeof e=="function"?e(t):e}}return i.\u0275fac=function(e){return new(e||i)(l(g))},i.\u0275prov=d({token:i,factory:i.\u0275fac}),i})(),x=i=>i instanceof Promise?T(()=>i):f(i),b=(()=>{class i{constructor(e,t,o){this.jwtHelper=t,this.document=o,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 o=`${t.hostname}${t.port&&!this.standardPorts.includes(t.port)?":"+t.port:""}`;return this.allowedDomains.findIndex(r=>typeof r=="string"?r===o:r instanceof RegExp?r.test(o):!1)>-1}isDisallowedRoute(e){let t=new URL(e.url,this.document.location.origin);return this.disallowedRoutes.findIndex(o=>{if(typeof o=="string"){let r=new URL(o,this.document.location.origin);return r.hostname===t.hostname&&r.pathname===t.pathname}return o instanceof RegExp?o.test(e.url):!1})>-1}handleInterception(e,t,o){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?x(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=>o.handle(n))):o.handle(t)}intercept(e,t){if(!this.isAllowedDomain(e)||this.isDisallowedRoute(e))return t.handle(e);let o=this.tokenGetter(e);return x(o).pipe(w(r=>this.handleInterception(r,e,t)))}}return i.\u0275fac=function(e){return new(e||i)(l(g),l(m),l(I))},i.\u0275prov=d({token:i,factory:i.\u0275fac}),i})(),U=(()=>{class i{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:i,providers:[{provide:j,useClass:b,multi:!0},e.jwtOptionsProvider||{provide:g,useValue:e.config},m]}}}return i.\u0275fac=function(e){return new(e||i)(l(i,12))},i.\u0275mod=E({type:i}),i.\u0275inj=v({}),i})();var X=(()=>{class i{$api=p(S);$jwtHelper=p(m);$settings=p($);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*(){if(!this.token||this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)){console.warn("Token expired on client side, logging out immediately"),this.logout();return}try{return yield c(this.$api.get("/auth/check"))}catch(e){throw e.status===401&&(console.warn("Current token is not valid on server"),this.logout()),e}})}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||i)};static \u0275prov=d({token:i,factory:i.\u0275fac})}return i})();export{U as a,X as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as _}from"./chunk-
|
|
1
|
+
import{a as _}from"./chunk-WD5T6QFV.js";import{a as E}from"./chunk-HLL6MWFP.js";import"./chunk-57P3RXT7.js";import"./chunk-3OP57H7R.js";import"./chunk-X2HK2VP5.js";import"./chunk-BJ7NEXKS.js";import"./chunk-4TSYHRZK.js";import"./chunk-IW4FBZDG.js";import{b as S}from"./chunk-VKZMC7UY.js";import{k as w,l as C}from"./chunk-LQPGXCYH.js";import{$b as T,Ab as l,Bb as m,Cb as h,Cc as b,Lb as v,Pa as o,Qa as c,Ub as f,Vb as g,_b as p,db as u,n as d,na as r,rc as y,sc as $}from"./chunk-MMLBIEDP.js";var B=["terminaloutput"],G=(()=>{class a{$terminal=r(E);$settings=r(S);$navigationGuard=r(_);$translate=r(w);resizeEvent=new d;termTarget=b("terminaloutput");onWindowResize(){this.resizeEvent.next(void 0)}onBeforeUnload(i){return this.$navigationGuard.handleBeforeUnload(i)}onWindowFocus(){this.activateTerminal()}onClick(){this.activateTerminal()}activateTerminal(){this.$terminal.isTerminalReady()&&this.$terminal.term&&this.$terminal.term.focus()}ngOnInit(){let i=this.$translate.instant("menu.linux.label_terminal");this.$settings.setPageTitle(i),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||a)};static \u0275cmp=u({type:a,selectors:[["ng-component"]],viewQuery:function(e,t){e&1&&f(t.termTarget,B,5),e&2&&g()},hostBindings:function(e,t){e&1&&v("resize",function(n){return t.onWindowResize(n)},o)("beforeunload",function(n){return t.onBeforeUnload(n)},o)("focus",function(n){return t.onWindowFocus(n)},o)("click",function(n){return t.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,t){e&1&&(l(0,"div",1)(1,"div",2)(2,"h3",3),p(3),y(4,"translate"),m()()(),l(5,"div",4),h(6,"div",5,0),m()),e&2&&(c(3),T($(4,1,"menu.linux.label_terminal")))},dependencies:[C],encapsulation:2})}return a})();export{G as TerminalComponent};
|