homebridge-config-ui-x 5.6.1-beta.0 → 5.6.1-beta.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.
- package/CHANGELOG.md +2 -1
- package/dist/core/config/config.interfaces.d.ts +1 -0
- package/dist/main.js +49 -0
- package/dist/main.js.map +1 -1
- package/package.json +2 -1
- package/public/{chunk-MGYPZDF6.js → chunk-36BXOUKY.js} +1 -1
- package/public/{chunk-VC3QRLND.js → chunk-373RLV22.js} +1 -1
- package/public/{chunk-CL4IO7CM.js → chunk-3O3VZKMZ.js} +1 -1
- package/public/{chunk-VKQXCRDO.js → chunk-3SKAGX6K.js} +1 -1
- package/public/{chunk-6WL6JBW6.js → chunk-3YUV4HOP.js} +1 -1
- package/public/{chunk-TUNQYUAE.js → chunk-44O6OEAV.js} +1 -1
- package/public/{chunk-SKNG2LDC.js → chunk-4DPWWEP6.js} +1 -1
- package/public/{chunk-WJBYM3CK.js → chunk-4KWUTVAG.js} +1 -1
- package/public/{chunk-LOWN3NM6.js → chunk-6A55RDT6.js} +1 -1
- package/public/{chunk-HIWFIZVC.js → chunk-7DFFFLFO.js} +1 -1
- package/public/{chunk-DCXKKXB4.js → chunk-7TMHL4FX.js} +1 -1
- package/public/{chunk-RHAKODUV.js → chunk-AX2F4OLU.js} +1 -1
- package/public/chunk-BQBLM3Y5.js +49 -0
- package/public/{chunk-UVVKDQFR.js → chunk-C6FWS4ZA.js} +1 -1
- package/public/{chunk-N2C6CZAF.js → chunk-CTCMY73D.js} +1 -1
- package/public/{chunk-AT26KEEX.js → chunk-EDMD57DT.js} +1 -1
- package/public/{chunk-GI6U2XR2.js → chunk-EEK3WTAH.js} +1 -1
- package/public/{chunk-4DK3FKYT.js → chunk-EH3D5IEI.js} +1 -1
- package/public/{chunk-BYZTDI6B.js → chunk-EHBN45NU.js} +1 -1
- package/public/chunk-ENE4UA6W.js +1 -0
- package/public/{chunk-SZPZVJCY.js → chunk-EYVJOTXP.js} +1 -1
- package/public/{chunk-3RRGKSPT.js → chunk-FHAELEKP.js} +1 -1
- package/public/chunk-GJGNYEMB.js +1 -0
- package/public/{chunk-YMPR6QRX.js → chunk-HFU5NXVN.js} +1 -1
- package/public/{chunk-U35I6VGA.js → chunk-HSSGPMZK.js} +2 -2
- package/public/{chunk-YA5P53NT.js → chunk-IUPOIVKG.js} +1 -1
- package/public/chunk-JKWZJGMV.js +1 -0
- package/public/{chunk-L3SI6T5C.js → chunk-JXCPF7BI.js} +1 -1
- package/public/{chunk-6WJAO3GJ.js → chunk-JYZRVCMO.js} +1 -1
- package/public/{chunk-WFHNWAZU.js → chunk-KIDDKY3P.js} +1 -1
- package/public/{chunk-I2CB6FNC.js → chunk-L6IYPOJQ.js} +1 -1
- package/public/{chunk-RCXQRRQJ.js → chunk-MP3AK5DO.js} +1 -1
- package/public/{chunk-PPIXBDS7.js → chunk-O7MWPT3V.js} +1 -1
- package/public/{chunk-GZLH72PR.js → chunk-OFAYPDVT.js} +1 -1
- package/public/{chunk-ODGGUANG.js → chunk-PHEQNQPR.js} +1 -1
- package/public/{chunk-ZF77F3NH.js → chunk-PU5UQJOE.js} +1 -1
- package/public/{chunk-3KZ2CQME.js → chunk-QB4UDHER.js} +1 -1
- package/public/{chunk-J73TLQUR.js → chunk-RRFACZ3B.js} +1 -1
- package/public/{chunk-IDU7UYST.js → chunk-RY6UUOJR.js} +1 -1
- package/public/{chunk-IGJCCPMK.js → chunk-S5FPGZAV.js} +1 -1
- package/public/{chunk-GAKPDISY.js → chunk-U4I6WKVE.js} +1 -1
- package/public/{chunk-VAMR4YGW.js → chunk-UBYQBGDG.js} +1 -1
- package/public/{chunk-7RTQINLX.js → chunk-UY2VJ6ZI.js} +1 -1
- package/public/{chunk-CGSU6LWR.js → chunk-VWMAGA4M.js} +1 -1
- package/public/{chunk-FYMNQKSS.js → chunk-W5CGLOC3.js} +1 -1
- package/public/{chunk-TH354Y65.js → chunk-WCVHWTJA.js} +1 -1
- package/public/{chunk-7B34LSFR.js → chunk-WLTACBNT.js} +1 -1
- package/public/{chunk-X34FKKHJ.js → chunk-WZJ3YHT7.js} +1 -1
- package/public/{chunk-M5NNILBO.js → chunk-YBXP5CZZ.js} +1 -1
- package/public/{chunk-JFGBC67H.js → chunk-YPSH7WIO.js} +1 -1
- package/public/{chunk-YHHN4XHF.js → chunk-YWIFXARL.js} +1 -1
- package/public/{chunk-OUVAQ37U.js → chunk-Z7LID7KP.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-EG2GJFYG.js → main-HZKUNSDZ.js} +1 -1
- package/public/chunk-6RX2BRBU.js +0 -49
- package/public/chunk-S4XJ2W2R.js +0 -1
- package/public/chunk-VVLYWC4A.js +0 -1
- package/public/chunk-YO4MD7AK.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,8 +8,9 @@ All notable changes to `homebridge-config-ui-x` will be documented in this file.
|
|
|
8
8
|
|
|
9
9
|
- refreshed icons: heater, cooler, de/humidifier + thermostat
|
|
10
10
|
- put services types into translatable strings
|
|
11
|
-
- added config option to configure a webroot
|
|
11
|
+
- added config option to configure a webroot for the ui
|
|
12
12
|
- prevent url-based settings from being changed from a pwa
|
|
13
|
+
- added config option to advertise the ui over mdns
|
|
13
14
|
|
|
14
15
|
### Other Changes
|
|
15
16
|
|
|
@@ -109,6 +109,7 @@ export interface HomebridgeUiConfig {
|
|
|
109
109
|
scheduledBackupPath?: string;
|
|
110
110
|
scheduledBackupDisable?: boolean;
|
|
111
111
|
disableServerMetricsMonitoring?: boolean;
|
|
112
|
+
enableMdnsAdvertise?: boolean;
|
|
112
113
|
terminal?: {
|
|
113
114
|
persistence?: boolean;
|
|
114
115
|
hideWarning?: boolean;
|
package/dist/main.js
CHANGED
|
@@ -12,6 +12,7 @@ const common_1 = require("@nestjs/common");
|
|
|
12
12
|
const core_1 = require("@nestjs/core");
|
|
13
13
|
const platform_fastify_1 = require("@nestjs/platform-fastify");
|
|
14
14
|
const swagger_1 = require("@nestjs/swagger");
|
|
15
|
+
const bonjour_service_1 = require("bonjour-service");
|
|
15
16
|
const fs_extra_1 = require("fs-extra");
|
|
16
17
|
const app_module_1 = require("./app.module");
|
|
17
18
|
const config_service_1 = require("./core/config/config.service");
|
|
@@ -126,6 +127,54 @@ async function bootstrap() {
|
|
|
126
127
|
app.useGlobalFilters(new spa_filter_1.SpaFilter());
|
|
127
128
|
logger.warn(`Homebridge UI v${configService.package.version} is listening on ${startupConfig.host} port ${configService.ui.port}.`);
|
|
128
129
|
await app.listen(configService.ui.port, startupConfig.host);
|
|
130
|
+
let bonjour = null;
|
|
131
|
+
if (configService.ui.enableMdnsAdvertise) {
|
|
132
|
+
try {
|
|
133
|
+
bonjour = new bonjour_service_1.Bonjour();
|
|
134
|
+
const serviceName = configService.homebridgeConfig?.bridge?.name
|
|
135
|
+
? configService.homebridgeConfig.bridge.name
|
|
136
|
+
: 'Homebridge UI';
|
|
137
|
+
const service = bonjour.publish({
|
|
138
|
+
name: serviceName,
|
|
139
|
+
type: 'http',
|
|
140
|
+
port: configService.ui.port,
|
|
141
|
+
host: startupConfig.host === '0.0.0.0' || startupConfig.host === '::' ? undefined : startupConfig.host,
|
|
142
|
+
txt: {
|
|
143
|
+
path: realWebroot || '/',
|
|
144
|
+
version: configService.package.version,
|
|
145
|
+
https: startupConfig.httpsOptions ? 'true' : 'false',
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
logger.log(`Homebridge UI HTTP service advertised via mDNS as "${service.name}" on port ${configService.ui.port}`);
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
logger.error('Failed to advertise mDNS service:', error);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const cleanupBonjour = () => {
|
|
155
|
+
if (bonjour) {
|
|
156
|
+
try {
|
|
157
|
+
logger.log('Shutting down mDNS service advertising...');
|
|
158
|
+
bonjour.unpublishAll();
|
|
159
|
+
bonjour.destroy();
|
|
160
|
+
bonjour = null;
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
logger.error('Error during mDNS cleanup:', error);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
const handleShutdown = (signal) => {
|
|
168
|
+
logger.log(`Received ${signal}, starting graceful shutdown...`);
|
|
169
|
+
cleanupBonjour();
|
|
170
|
+
app.close().finally(() => {
|
|
171
|
+
node_process_1.default.exit(0);
|
|
172
|
+
});
|
|
173
|
+
};
|
|
174
|
+
node_process_1.default.removeAllListeners('SIGINT');
|
|
175
|
+
node_process_1.default.removeAllListeners('SIGTERM');
|
|
176
|
+
node_process_1.default.once('SIGINT', () => handleShutdown('SIGINT'));
|
|
177
|
+
node_process_1.default.once('SIGTERM', () => handleShutdown('SIGTERM'));
|
|
129
178
|
return app;
|
|
130
179
|
}
|
|
131
180
|
exports.app = bootstrap();
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-config-ui-x",
|
|
3
3
|
"displayName": "Homebridge UI",
|
|
4
|
-
"version": "5.6.1-beta.
|
|
4
|
+
"version": "5.6.1-beta.2",
|
|
5
5
|
"description": "A web based management, configuration and control platform for Homebridge.",
|
|
6
6
|
"author": "oznu <dev@oz.nu>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -94,6 +94,7 @@
|
|
|
94
94
|
"@nestjs/websockets": "11.1.6",
|
|
95
95
|
"axios": "1.11.0",
|
|
96
96
|
"bash-color": "0.0.4",
|
|
97
|
+
"bonjour-service": "^1.3.0",
|
|
97
98
|
"class-transformer": "0.5.1",
|
|
98
99
|
"class-validator": "0.14.2",
|
|
99
100
|
"commander": "14.0.0",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as z,b,c as k}from"./chunk-MD7IQ7EC.js";import{a as u}from"./chunk-
|
|
1
|
+
import{a as z,b,c as k}from"./chunk-MD7IQ7EC.js";import{a as u}from"./chunk-W5CGLOC3.js";import{q as f}from"./chunk-ENE4UA6W.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{b as H}from"./chunk-5N45B6R7.js";import{a as L,b as S}from"./chunk-IHGRCBAQ.js";import{m as T}from"./chunk-QHDPBN4J.js";import{l as B}from"./chunk-
|
|
1
|
+
import{b as H}from"./chunk-5N45B6R7.js";import{a as L,b as S}from"./chunk-IHGRCBAQ.js";import{m as T}from"./chunk-QHDPBN4J.js";import{l as B}from"./chunk-ENE4UA6W.js";import{Db as k,Ga as f,Gb as b,Ha as O,Ib as d,La as o,Ub as y,Vb as u,Wa as v,Wb as I,Xb as M,dc as w,ja as h,kb as C,lb as r,mb as l,mc as g,nc as _,oa as x,pa as P,rb as p,sb as i,tb as a,ub as m}from"./chunk-ZHRPBG7M.js";function E(t,c){if(t&1&&m(0,"i",16),t&2){let n=d();y(w("fas ",n.faIconClass," mb-3"))}}function z(t,c){if(t&1&&m(0,"h5",6),t&2){let n=d();p("innerHTML",n.subtitle,f)}}function V(t,c){if(t&1&&m(0,"p",8),t&2){let n=d();p("innerHTML",n.message2,f)}}function D(t,c){if(t&1&&m(0,"markdown",9),t&2){let n=d();p("data",n.markdownMessage2)}}function N(t,c){if(t&1){let n=k();i(0,"button",17),g(1,"translate"),b("click",function(){x(n);let e=d();return P(e.dismissModal())}),u(2),g(3,"translate"),a()}t&2&&(C("aria-label",_(1,2,"form.button_close")),o(2),M(" ",_(3,4,"form.button_close")," "))}function j(t,c){if(t&1){let n=k();i(0,"button",17),g(1,"translate"),b("click",function(){x(n);let e=d();return P(e.dismissModal())}),u(2),g(3,"translate"),a()}t&2&&(C("aria-label",_(1,2,"form.button_close")),o(2),M(" ",_(3,4,"form.button_close")," "))}function A(t,c){if(t&1&&(i(0,"a",15),u(1),m(2,"i",18),a()),t&2){let n=d();p("href",n.ctaButtonLink,O),o(),M(" ",n.ctaButtonLabel," ")}}var X=(()=>{class t{$activeModal=h(T);title;subtitle;message;message2;ctaButtonLabel;ctaButtonLink;faIconClass;markdownMessage2;dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(s){return new(s||t)};static \u0275cmp=v({type:t,selectors:[["ng-component"]],inputs:{title:"title",subtitle:"subtitle",message:"message",message2:"message2",ctaButtonLabel:"ctaButtonLabel",ctaButtonLink:"ctaButtonLink",faIconClass:"faIconClass",markdownMessage2:"markdownMessage2"},decls:19,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","text-center"],[2,"font-size","75px",3,"class"],[1,"mb-3",3,"innerHTML"],[1,"mb-0",3,"innerHTML"],[1,"mb-0","mt-3",3,"innerHTML"],[1,"plugin-md",3,"data"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],[2,"font-size","75px"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-external-link-alt"]],template:function(s,e){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),u(3),a(),i(4,"button",3),g(5,"translate"),b("click",function(){return e.dismissModal()}),a()(),i(6,"div",4),r(7,E,1,3,"i",5),r(8,z,1,1,"h5",6),m(9,"p",7),r(10,V,1,1,"p",8),r(11,D,1,1,"markdown",9),a(),i(12,"div",10)(13,"div",11),r(14,N,4,6,"button",12),a(),i(15,"div",13),r(16,j,4,6,"button",12),a(),i(17,"div",14),r(18,A,3,2,"a",15),a()()()),s&2&&(o(3),I(e.title),o(),C("aria-label",_(5,10,"form.button_close")),o(3),l(e.faIconClass?7:-1),o(),l(e.subtitle?8:-1),o(),p("innerHTML",e.message,f),o(),l(e.message2?10:-1),o(),l(e.markdownMessage2?11:-1),o(3),l(e.ctaButtonLink?14:-1),o(2),l(e.ctaButtonLink?-1:16),o(2),l(e.ctaButtonLink?18:-1))},dependencies:[S,L,H,B],styles:["[_nghost-%COMP%] .plugin-md{display:block!important;background-color:#f6f8fa!important;border-radius:6px!important;padding:16px!important;margin:16px auto!important;width:100%!important;max-width:632px!important}[_nghost-%COMP%] .plugin-md table{width:100%;max-width:600px;margin:0 auto!important;border-collapse:collapse;border:1px solid #d0d7de!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif!important;font-size:14px!important;color:#24292e!important}[_nghost-%COMP%] .plugin-md th, [_nghost-%COMP%] .plugin-md td{padding:6px 13px!important;border:1px solid #d0d7de!important;text-align:left;color:#24292e!important}[_nghost-%COMP%] .plugin-md th{background-color:#f6f8fa!important;font-weight:600!important;text-align:center!important}[_nghost-%COMP%] .plugin-md td[align=center]{text-align:center!important}[_nghost-%COMP%] .plugin-md tr{color:#24292e!important}[_nghost-%COMP%] .plugin-md tr:nth-child(odd){background-color:#fff!important}[_nghost-%COMP%] .plugin-md tr:nth-child(2n){background-color:#f6f8fa!important}[_nghost-%COMP%] .plugin-md tr:hover{background-color:#f0f2f5!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%]{background-color:#2b2b2b!important;color:#fff!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] table[_ngcontent-%COMP%], [_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] tr[_ngcontent-%COMP%], [_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] th[_ngcontent-%COMP%], [_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{color:#fff!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background-color:#3c3c3c!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(odd){background-color:#323232!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(2n){background-color:#2b2b2b!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover{background-color:#454545!important}"]})}return t})();export{X as a};
|