homebridge-config-ui-x 5.9.0 → 5.9.1-beta.0

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 (137) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/core/auth/auth.controller.d.ts +5 -0
  3. package/dist/core/config/config.interfaces.d.ts +13 -0
  4. package/dist/core/config/config.service.d.ts +9 -0
  5. package/dist/core/config/config.service.js +18 -0
  6. package/dist/core/config/config.service.js.map +1 -1
  7. package/dist/core/config/config.startup.js +48 -17
  8. package/dist/core/config/config.startup.js.map +1 -1
  9. package/dist/core/feature-flags/feature-flags.registry.js +5 -0
  10. package/dist/core/feature-flags/feature-flags.registry.js.map +1 -1
  11. package/dist/core/spa/spa-html.service.d.ts +5 -0
  12. package/dist/core/spa/spa-html.service.js +38 -0
  13. package/dist/core/spa/spa-html.service.js.map +1 -0
  14. package/dist/core/spa/spa.filter.d.ts +3 -0
  15. package/dist/core/spa/spa.filter.js +21 -2
  16. package/dist/core/spa/spa.filter.js.map +1 -1
  17. package/dist/core/ssl/ssl-cert-generator.service.d.ts +15 -0
  18. package/dist/core/ssl/ssl-cert-generator.service.js +127 -0
  19. package/dist/core/ssl/ssl-cert-generator.service.js.map +1 -0
  20. package/dist/globalDefaults.js +3 -0
  21. package/dist/globalDefaults.js.map +1 -1
  22. package/dist/main.js +18 -4
  23. package/dist/main.js.map +1 -1
  24. package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +9 -0
  25. package/dist/modules/config-editor/config-editor.controller.d.ts +3 -0
  26. package/dist/modules/config-editor/config-editor.controller.js +45 -1
  27. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  28. package/dist/modules/config-editor/config-editor.module.js +2 -0
  29. package/dist/modules/config-editor/config-editor.module.js.map +1 -1
  30. package/dist/modules/config-editor/config-editor.service.d.ts +8 -2
  31. package/dist/modules/config-editor/config-editor.service.js +46 -3
  32. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  33. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +1 -1
  34. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  35. package/dist/modules/plugins/plugins.service.js +15 -0
  36. package/dist/modules/plugins/plugins.service.js.map +1 -1
  37. package/dist/modules/server/server.controller.d.ts +20 -0
  38. package/dist/modules/server/server.controller.js +86 -1
  39. package/dist/modules/server/server.controller.js.map +1 -1
  40. package/dist/modules/server/server.service.d.ts +18 -0
  41. package/dist/modules/server/server.service.js +257 -14
  42. package/dist/modules/server/server.service.js.map +1 -1
  43. package/dist/modules/status/status.gateway.d.ts +2 -0
  44. package/dist/modules/status/status.interfaces.d.ts +11 -0
  45. package/dist/modules/status/status.service.d.ts +4 -1
  46. package/dist/modules/status/status.service.js +21 -2
  47. package/dist/modules/status/status.service.js.map +1 -1
  48. package/package.json +3 -1
  49. package/public/assets/matter.svg +8 -0
  50. package/public/assets/plugin-ui-utils/ui.js +3 -0
  51. package/public/assets/plugin-ui-utils/ui.js.map +1 -1
  52. package/public/chunk-2ADAW5AD.js +1 -0
  53. package/public/{chunk-KW266TAV.js → chunk-2MFBHUTD.js} +1 -1
  54. package/public/{chunk-PK7EWRSF.js → chunk-2UQL2OTF.js} +1 -1
  55. package/public/chunk-2Y63WBU6.js +1 -0
  56. package/public/chunk-4AWJ2PWG.js +1 -0
  57. package/public/{chunk-FW6YLROT.js → chunk-4DVF333O.js} +1 -1
  58. package/public/{chunk-5R3NYRBJ.js → chunk-4E4YMHG4.js} +1 -1
  59. package/public/{chunk-EUGVBS4N.js → chunk-4H7ODI34.js} +1 -1
  60. package/public/{chunk-UHOVCHON.js → chunk-5G7T74GR.js} +1 -1
  61. package/public/{chunk-ICEM4QHU.js → chunk-5T6O4JCR.js} +1 -1
  62. package/public/{chunk-IDDSROZF.js → chunk-5W7EKO7F.js} +1 -1
  63. package/public/{chunk-UGSDROFZ.js → chunk-5WTTTYNS.js} +1 -1
  64. package/public/{chunk-VB3KKHCI.js → chunk-7F6JT34E.js} +1 -1
  65. package/public/{chunk-LTQGLD2K.js → chunk-AO7VT6PL.js} +1 -1
  66. package/public/{chunk-M4T2RO3I.js → chunk-AOALMLGY.js} +1 -1
  67. package/public/{chunk-LWOAR6BY.js → chunk-B5Z4M7ZJ.js} +1 -1
  68. package/public/chunk-BI2TS6NN.js +4 -0
  69. package/public/{chunk-X3DENUZZ.js → chunk-BQTGMLQB.js} +1 -1
  70. package/public/{chunk-3PJWBNGU.js → chunk-BVTPAZF3.js} +1 -1
  71. package/public/{chunk-AYMJQ6UO.js → chunk-CWTDHTPI.js} +1 -1
  72. package/public/{chunk-PYFU3YSX.js → chunk-D4LRW76J.js} +1 -1
  73. package/public/{chunk-X2HK2VP5.js → chunk-DIWD6B4C.js} +1 -1
  74. package/public/{chunk-6W43YCZG.js → chunk-DL2QDFLD.js} +1 -1
  75. package/public/{chunk-IESBL4DA.js → chunk-E4ZKIFZH.js} +1 -1
  76. package/public/{chunk-75E7S6CO.js → chunk-E7S36RMO.js} +1 -1
  77. package/public/chunk-EHHNHG6Q.js +1 -0
  78. package/public/{chunk-5WH5JZQ5.js → chunk-EYO3XCE2.js} +1 -1
  79. package/public/{chunk-TCYDYM5A.js → chunk-FGS4HIPD.js} +1 -1
  80. package/public/{chunk-CUP4YO7L.js → chunk-FOSFENMV.js} +1 -1
  81. package/public/chunk-HERKNFLL.js +16 -0
  82. package/public/chunk-HVGUNGBB.js +1 -0
  83. package/public/chunk-I3QQTGGZ.js +1 -0
  84. package/public/chunk-IBO6BDNZ.js +1 -0
  85. package/public/{chunk-2JSU6A57.js → chunk-IEO2AG2N.js} +1 -1
  86. package/public/{chunk-5PCQVX7H.js → chunk-IKY3F7MM.js} +1 -1
  87. package/public/{chunk-WHIRPY75.js → chunk-ISV4M72Q.js} +1 -1
  88. package/public/{chunk-U3JDCGCU.js → chunk-IXIZVUXX.js} +1 -1
  89. package/public/{chunk-MMLBIEDP.js → chunk-JWCVCB6V.js} +2 -2
  90. package/public/{chunk-7PXKC75G.js → chunk-JWHZQ7YI.js} +1 -1
  91. package/public/{chunk-WZ6CFZR4.js → chunk-JWY7RFE6.js} +1 -1
  92. package/public/chunk-LGE6SGDN.js +1 -0
  93. package/public/{chunk-MFEME63Q.js → chunk-LI4BZAUI.js} +1 -1
  94. package/public/{chunk-EV5RCPGM.js → chunk-NIERW5KT.js} +1 -1
  95. package/public/{chunk-57P3RXT7.js → chunk-NUCXRR5D.js} +1 -1
  96. package/public/{chunk-DWKQU3C2.js → chunk-OTOQR5Z2.js} +1 -1
  97. package/public/{chunk-FJCVFWLW.js → chunk-PPA66JI2.js} +1 -1
  98. package/public/chunk-PZD3OMMY.js +1 -0
  99. package/public/{chunk-KX4SDDFZ.js → chunk-QJLKBB62.js} +1 -1
  100. package/public/chunk-QOSAHW73.js +50 -0
  101. package/public/{chunk-LRD25TWX.js → chunk-QU4I4QSX.js} +1 -1
  102. package/public/{chunk-7F2HVPC5.js → chunk-R2PMDKTD.js} +1 -1
  103. package/public/{chunk-CDA3O4BZ.js → chunk-RLWY3GD4.js} +1 -1
  104. package/public/{chunk-4FV7QIK7.js → chunk-RON3LUMX.js} +1 -1
  105. package/public/{chunk-MYSGML5C.js → chunk-SOA3BB36.js} +1 -1
  106. package/public/chunk-SXOLKD36.js +19 -0
  107. package/public/{chunk-CFEDPWK5.js → chunk-TGX55EFG.js} +1 -1
  108. package/public/{chunk-DT6ICOAZ.js → chunk-TJEQFEML.js} +1 -1
  109. package/public/{chunk-AOCOR5BO.js → chunk-UKEKNQEJ.js} +1 -1
  110. package/public/{chunk-YZT252N4.js → chunk-USXMCNIE.js} +1 -1
  111. package/public/{chunk-XYVHCMEV.js → chunk-VB4UAZWJ.js} +1 -1
  112. package/public/{chunk-3HKQMTY5.js → chunk-VFIOPF3O.js} +1 -1
  113. package/public/{chunk-OQ5J7Z5A.js → chunk-W26VKO62.js} +1 -1
  114. package/public/{chunk-N5GOQDTB.js → chunk-WMGV3KS6.js} +1 -1
  115. package/public/{chunk-WGFPD4J2.js → chunk-XS5JK2LY.js} +1 -1
  116. package/public/{chunk-QTJ3CQHI.js → chunk-Y2N6WV2O.js} +1 -1
  117. package/public/{chunk-F2E7FMEJ.js → chunk-Z6VQEXUS.js} +1 -1
  118. package/public/{chunk-BJ7NEXKS.js → chunk-ZC3JEQZ5.js} +1 -1
  119. package/public/{chunk-DRO3CNQN.js → chunk-ZF6W5Z5R.js} +1 -1
  120. package/public/index.html +2 -2
  121. package/public/{main-OQMKHLDX.js → main-QP5R7HI3.js} +1 -1
  122. package/public/media/matter-P563JGDL.svg +8 -0
  123. package/public/{styles-7EFV5QBG.css → styles-CSF457UW.css} +1 -1
  124. package/scripts/extract-plugin-alias.js +53 -2
  125. package/public/chunk-3DANXKYW.js +0 -1
  126. package/public/chunk-4E3QJA2Q.js +0 -1
  127. package/public/chunk-BJ4JCAZT.js +0 -1
  128. package/public/chunk-BQ2T2C4E.js +0 -1
  129. package/public/chunk-CLRVHL2M.js +0 -1
  130. package/public/chunk-F72JFLBX.js +0 -1
  131. package/public/chunk-J7EVJFYY.js +0 -16
  132. package/public/chunk-MY3FPHNS.js +0 -1
  133. package/public/chunk-RSNBQILW.js +0 -4
  134. package/public/chunk-UBFASDE7.js +0 -1
  135. package/public/chunk-VLG3LTSC.js +0 -50
  136. package/public/chunk-X7FSVUGO.js +0 -19
  137. package/public/chunk-XYUTAICH.js +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  All notable changes to `homebridge-config-ui-x` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).
4
4
 
5
+ ## v5.9.1 (Unreleased)
6
+
7
+ ### UI Changes
8
+
9
+ - added config option to configure a webroot for the ui
10
+ - improve widget state around first data load
11
+ - add self-signed certificate generation feature
12
+ - integration with updated homebridge version
13
+
14
+ ### Other Changes
15
+
16
+ - recommend update to node 24 when available
17
+
18
+ ### Homebridge Dependencies
19
+
20
+ - `@homebridge/hap-client` @ `v3.1.2`
21
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
22
+ - `@homebridge/plugin-ui-utils` @ `v2.1.1-beta.0`
23
+
5
24
  ## v5.9.0 (2025-11-01)
6
25
 
7
26
  ### UI Changes
@@ -43,6 +43,7 @@ export declare class AuthController {
43
43
  runningInLinux: boolean;
44
44
  runningInFreeBSD: boolean;
45
45
  runningOnRaspberryPi: boolean;
46
+ runningOnRaspbianImage: boolean;
46
47
  temperatureUnits: string;
47
48
  temp: string;
48
49
  log: {
@@ -54,6 +55,8 @@ export declare class AuthController {
54
55
  cert: string;
55
56
  pfx: string;
56
57
  passphrase: string;
58
+ selfSigned: boolean;
59
+ selfSignedHostnames: string[];
57
60
  };
58
61
  accessoryControl: {
59
62
  debug: boolean;
@@ -92,6 +95,8 @@ export declare class AuthController {
92
95
  menuMode: "default" | "freeze";
93
96
  wallpaper: string;
94
97
  host: string;
98
+ webroot: string;
99
+ originalWebroot: string;
95
100
  proxyHost: string;
96
101
  homebridgePackagePath: string;
97
102
  disableServerMetricsMonitoring: boolean;
@@ -9,6 +9,7 @@ export interface StartupConfig {
9
9
  };
10
10
  cspWsOverride?: string;
11
11
  debug?: boolean;
12
+ webroot?: string;
12
13
  }
13
14
  interface PluginChildBridge {
14
15
  username: string;
@@ -22,6 +23,9 @@ interface PluginChildBridge {
22
23
  DEBUG?: string;
23
24
  NODE_OPTIONS?: string;
24
25
  };
26
+ matter?: {
27
+ port?: number;
28
+ };
25
29
  }
26
30
  export interface PlatformConfig {
27
31
  platform: string;
@@ -46,6 +50,9 @@ export interface HomebridgeConfig {
46
50
  manufacturer?: string;
47
51
  model?: string;
48
52
  firmwareRevision?: string;
53
+ matter?: {
54
+ port?: number;
55
+ };
49
56
  };
50
57
  mdns?: {
51
58
  interface?: string | string[];
@@ -60,10 +67,14 @@ export interface HomebridgeConfig {
60
67
  plugins?: string[];
61
68
  disabledPlugins?: string[];
62
69
  }
70
+ export interface MatterConfig {
71
+ port?: number;
72
+ }
63
73
  export interface HomebridgeUiConfig {
64
74
  name: string;
65
75
  port: number;
66
76
  host?: '::' | '0.0.0.0' | string;
77
+ webroot?: string;
67
78
  proxyHost?: string;
68
79
  auth: 'form' | 'none';
69
80
  theme: string;
@@ -85,6 +96,8 @@ export interface HomebridgeUiConfig {
85
96
  cert?: string;
86
97
  pfx?: string;
87
98
  passphrase?: string;
99
+ selfSigned?: boolean;
100
+ selfSignedHostnames?: string[];
88
101
  };
89
102
  accessoryControl?: {
90
103
  debug?: boolean;
@@ -20,10 +20,12 @@ export declare class ConfigService {
20
20
  runningInLinux: boolean;
21
21
  runningInFreeBSD: boolean;
22
22
  canShutdownRestartHost: boolean;
23
+ originalWebroot: string;
23
24
  enableTerminalAccess: boolean;
24
25
  usePluginBundles: boolean;
25
26
  recommendChildBridges: boolean;
26
27
  runningOnRaspberryPi: boolean;
28
+ runningOnRaspbianImage: boolean;
27
29
  startupScript: string;
28
30
  dockerOfflineUpdate: boolean;
29
31
  package: any;
@@ -78,6 +80,7 @@ export declare class ConfigService {
78
80
  runningInLinux: boolean;
79
81
  runningInFreeBSD: boolean;
80
82
  runningOnRaspberryPi: boolean;
83
+ runningOnRaspbianImage: boolean;
81
84
  temperatureUnits: string;
82
85
  temp: string;
83
86
  log: {
@@ -89,6 +92,8 @@ export declare class ConfigService {
89
92
  cert: string;
90
93
  pfx: string;
91
94
  passphrase: string;
95
+ selfSigned: boolean;
96
+ selfSignedHostnames: string[];
92
97
  };
93
98
  accessoryControl: {
94
99
  debug: boolean;
@@ -127,6 +132,8 @@ export declare class ConfigService {
127
132
  menuMode: "default" | "freeze";
128
133
  wallpaper: string;
129
134
  host: string;
135
+ webroot: string;
136
+ originalWebroot: string;
130
137
  proxyHost: string;
131
138
  homebridgePackagePath: string;
132
139
  disableServerMetricsMonitoring: boolean;
@@ -138,6 +145,7 @@ export declare class ConfigService {
138
145
  serverTimestamp: string;
139
146
  theme: string;
140
147
  };
148
+ setOriginalWebroot(webroot: string): void;
141
149
  uiRestartRequired(): Promise<boolean>;
142
150
  private freezeUiSettings;
143
151
  private setConfigForDocker;
@@ -149,5 +157,6 @@ export declare class ConfigService {
149
157
  removeWallpaperCache(): void;
150
158
  streamCustomWallpaper(): ReadStream;
151
159
  private checkIfRunningOnRaspberryPi;
160
+ private checkIfRunningOnRaspbianImage;
152
161
  private getFeatureFlags;
153
162
  }
@@ -49,6 +49,7 @@ let ConfigService = class ConfigService {
49
49
  this.usePluginBundles = (node_process_1.default.env.UIX_USE_PLUGIN_BUNDLES === '1');
50
50
  this.recommendChildBridges = ((0, node_os_1.totalmem)() > 2e+9);
51
51
  this.runningOnRaspberryPi = false;
52
+ this.runningOnRaspbianImage = false;
52
53
  this.startupScript = (0, node_path_1.resolve)(this.storagePath, 'startup.sh');
53
54
  this.dockerOfflineUpdate = this.runningInDocker && (0, semver_1.satisfies)(node_process_1.default.env.CONFIG_UI_VERSION, '>=4.6.2 <=4.44.1', { includePrerelease: true });
54
55
  this.package = (0, fs_extra_1.readJsonSync)((0, node_path_1.resolve)(node_process_1.default.env.UIX_BASE_PATH, 'package.json'));
@@ -60,6 +61,7 @@ let ConfigService = class ConfigService {
60
61
  const homebridgeConfig = (0, fs_extra_1.readJSONSync)(this.configPath);
61
62
  this.parseConfig(homebridgeConfig);
62
63
  this.checkIfRunningOnRaspberryPi();
64
+ this.checkIfRunningOnRaspbianImage();
63
65
  }
64
66
  parseConfig(homebridgeConfig) {
65
67
  this.homebridgeConfig = homebridgeConfig;
@@ -138,6 +140,7 @@ let ConfigService = class ConfigService {
138
140
  runningInLinux: this.runningInLinux,
139
141
  runningInFreeBSD: this.runningInFreeBSD,
140
142
  runningOnRaspberryPi: this.runningOnRaspberryPi,
143
+ runningOnRaspbianImage: this.runningOnRaspbianImage,
141
144
  temperatureUnits: this.ui.tempUnits || 'c',
142
145
  temp: this.ui.temp,
143
146
  log: {
@@ -149,6 +152,8 @@ let ConfigService = class ConfigService {
149
152
  cert: this.ui.ssl?.cert,
150
153
  pfx: this.ui.ssl?.pfx,
151
154
  passphrase: this.ui.ssl?.passphrase,
155
+ selfSigned: this.ui.ssl?.selfSigned,
156
+ selfSignedHostnames: this.ui.ssl?.selfSignedHostnames,
152
157
  },
153
158
  accessoryControl: {
154
159
  debug: this.ui.accessoryControl?.debug,
@@ -172,12 +177,17 @@ let ConfigService = class ConfigService {
172
177
  menuMode: this.ui.menuMode || 'default',
173
178
  wallpaper: this.ui.wallpaper,
174
179
  host: this.ui.host || '',
180
+ webroot: this.ui.webroot || '',
181
+ originalWebroot: this.originalWebroot || '',
175
182
  proxyHost: this.ui.proxyHost || '',
176
183
  homebridgePackagePath: this.ui.homebridgePackagePath,
177
184
  disableServerMetricsMonitoring: this.ui.disableServerMetricsMonitoring,
178
185
  keepOrphans: this.hbStartupSettings?.keepOrphans || false,
179
186
  };
180
187
  }
188
+ setOriginalWebroot(webroot) {
189
+ this.originalWebroot = webroot;
190
+ }
181
191
  async uiRestartRequired() {
182
192
  if (this.hbServiceUiRestartRequired) {
183
193
  return true;
@@ -282,6 +292,14 @@ let ConfigService = class ConfigService {
282
292
  this.runningOnRaspberryPi = false;
283
293
  }
284
294
  }
295
+ async checkIfRunningOnRaspbianImage() {
296
+ try {
297
+ this.runningOnRaspbianImage = (0, node_os_1.platform)() === 'linux' && await (0, fs_extra_1.pathExists)('/etc/hb-ui-port');
298
+ }
299
+ catch (e) {
300
+ this.runningOnRaspbianImage = false;
301
+ }
302
+ }
285
303
  getFeatureFlags() {
286
304
  const featureFlags = {};
287
305
  if (!this.homebridgeVersion) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/core/config/config.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/core/config/config.service.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ const node_path_1 = require("node:path");
9
9
  const node_process_1 = __importDefault(require("node:process"));
10
10
  const fs_extra_1 = require("fs-extra");
11
11
  const logger_service_1 = require("../logger/logger.service");
12
+ const ssl_cert_generator_service_1 = require("../ssl/ssl-cert-generator.service");
12
13
  async function getStartupConfig() {
13
14
  const logger = new logger_service_1.Logger();
14
15
  const configPath = node_process_1.default.env.UIX_CONFIG_PATH || (0, node_path_1.resolve)((0, node_os_1.homedir)(), '.homebridge/config.json');
@@ -19,31 +20,50 @@ async function getStartupConfig() {
19
20
  return addresses.find(x => x.family === 'IPv6');
20
21
  }).length;
21
22
  config.host = ipv6 ? '::' : '0.0.0.0';
23
+ config.webroot = '';
22
24
  if (!ui) {
23
25
  return config;
24
26
  }
25
27
  if (ui.host && node_process_1.default.env.UIX_DEVELOPMENT !== '1') {
26
28
  config.host = ui.host;
27
29
  }
28
- if (ui.ssl && ((ui.ssl.key && ui.ssl.cert) || ui.ssl.pfx) && node_process_1.default.env.UIX_DEVELOPMENT !== '1') {
29
- for (const attribute of ['key', 'cert', 'pfx']) {
30
- if (ui.ssl[attribute]) {
31
- if (!(await ((0, fs_extra_1.stat)(ui.ssl[attribute]))).isFile()) {
32
- logger.error(`SSL config error: ui.ssl.${attribute}: ${ui.ssl[attribute]} is not a valid file.`);
33
- }
30
+ if (ui.ssl && node_process_1.default.env.UIX_DEVELOPMENT !== '1') {
31
+ if (ui.ssl.selfSigned) {
32
+ try {
33
+ const sslCertGenerator = new ssl_cert_generator_service_1.SslCertGeneratorService();
34
+ const hostnames = ui.ssl.selfSignedHostnames || ['localhost', '127.0.0.1'];
35
+ const { privateKey, certificate } = await sslCertGenerator.generateOrLoadCertificate(hostnames);
36
+ config.httpsOptions = {
37
+ key: privateKey,
38
+ cert: certificate,
39
+ };
40
+ logger.log('Self-signed certificate loaded successfully');
41
+ }
42
+ catch (e) {
43
+ logger.error(`Could not generate self-signed certificate: ${e.message}`);
44
+ logger.error(e);
34
45
  }
35
46
  }
36
- try {
37
- config.httpsOptions = {
38
- key: ui.ssl.key ? await (0, fs_extra_1.readFile)(ui.ssl.key) : undefined,
39
- cert: ui.ssl.cert ? await (0, fs_extra_1.readFile)(ui.ssl.cert) : undefined,
40
- pfx: ui.ssl.pfx ? await (0, fs_extra_1.readFile)(ui.ssl.pfx) : undefined,
41
- passphrase: ui.ssl.passphrase,
42
- };
43
- }
44
- catch (e) {
45
- logger.error(`Could not start server with SSL enabled as ${e.message}.`);
46
- logger.error(e);
47
+ else if ((ui.ssl.key && ui.ssl.cert) || ui.ssl.pfx) {
48
+ for (const attribute of ['key', 'cert', 'pfx']) {
49
+ if (ui.ssl[attribute]) {
50
+ if (!(await ((0, fs_extra_1.stat)(ui.ssl[attribute]))).isFile()) {
51
+ logger.error(`SSL config error: ui.ssl.${attribute}: ${ui.ssl[attribute]} is not a valid file.`);
52
+ }
53
+ }
54
+ }
55
+ try {
56
+ config.httpsOptions = {
57
+ key: ui.ssl.key ? await (0, fs_extra_1.readFile)(ui.ssl.key) : undefined,
58
+ cert: ui.ssl.cert ? await (0, fs_extra_1.readFile)(ui.ssl.cert) : undefined,
59
+ pfx: ui.ssl.pfx ? await (0, fs_extra_1.readFile)(ui.ssl.pfx) : undefined,
60
+ passphrase: ui.ssl.passphrase,
61
+ };
62
+ }
63
+ catch (e) {
64
+ logger.error(`Could not start server with SSL enabled as ${e.message}.`);
65
+ logger.error(e);
66
+ }
47
67
  }
48
68
  }
49
69
  if (ui.proxyHost && node_process_1.default.env.UIX_DEVELOPMENT !== '1') {
@@ -57,6 +77,17 @@ async function getStartupConfig() {
57
77
  config.debug = false;
58
78
  node_process_1.default.env.UIX_DEBUG_LOGGING = '0';
59
79
  }
80
+ if (ui.webroot && node_process_1.default.env.UIX_DEVELOPMENT !== '1') {
81
+ let webroot = `/${ui.webroot.toString().trim()}`.replace(/\/+/g, '/').replace(/\/$/, '');
82
+ if (webroot === '/') {
83
+ webroot = '';
84
+ }
85
+ config.webroot = webroot;
86
+ logger.log(`Setting up the UI on webroot: ${webroot}`);
87
+ }
88
+ else {
89
+ config.webroot = '';
90
+ }
60
91
  return config;
61
92
  }
62
93
  //# sourceMappingURL=config.startup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.startup.js","sourceRoot":"","sources":["../../../src/core/config/config.startup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.startup.js","sourceRoot":"","sources":["../../../src/core/config/config.startup.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,10 @@ exports.FEATURE_FLAGS = [
7
7
  description: 'Enables debug mode configuration for child bridges',
8
8
  range: '>=2.0.0-alpha.0',
9
9
  },
10
+ {
11
+ key: 'matterSupport',
12
+ description: 'Enables support for Matter bridges',
13
+ range: '>=2.0.0-beta.39',
14
+ },
10
15
  ];
11
16
  //# sourceMappingURL=feature-flags.registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature-flags.registry.js","sourceRoot":"","sources":["../../../src/core/feature-flags/feature-flags.registry.ts"],"names":[],"mappings":";;;AAyBa,QAAA,aAAa,GAA4B;IACpD;QACE,GAAG,EAAE,sBAAsB;QAC3B,WAAW,EAAE,oDAAoD;QACjE,KAAK,EAAE,iBAAiB;KACzB;CACF,CAAA"}
1
+ {"version":3,"file":"feature-flags.registry.js","sourceRoot":"","sources":["../../../src/core/feature-flags/feature-flags.registry.ts"],"names":[],"mappings":";;;AAyBa,QAAA,aAAa,GAA4B;IACpD;QACE,GAAG,EAAE,sBAAsB;QAC3B,WAAW,EAAE,oDAAoD;QACjE,KAAK,EAAE,iBAAiB;KACzB;IACD;QACE,GAAG,EAAE,eAAe;QACpB,WAAW,EAAE,oCAAoC;QACjD,KAAK,EAAE,iBAAiB;KACzB;CACF,CAAA"}
@@ -0,0 +1,5 @@
1
+ export declare class SpaHtmlService {
2
+ static updateIndexHtml(webroot: string): Promise<void>;
3
+ private static normalizeWebroot;
4
+ private static transformHtmlForWebroot;
5
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SpaHtmlService = void 0;
7
+ const node_path_1 = require("node:path");
8
+ const node_process_1 = __importDefault(require("node:process"));
9
+ const fs_extra_1 = require("fs-extra");
10
+ class SpaHtmlService {
11
+ static async updateIndexHtml(webroot) {
12
+ const indexPath = (0, node_path_1.resolve)(node_process_1.default.env.UIX_BASE_PATH, 'public/index.html');
13
+ if (!(await (0, fs_extra_1.exists)(indexPath))) {
14
+ return;
15
+ }
16
+ const originalHtml = await (0, fs_extra_1.readFile)(indexPath, 'utf-8');
17
+ const normalizedWebroot = this.normalizeWebroot(webroot);
18
+ const modifiedHtml = this.transformHtmlForWebroot(originalHtml, normalizedWebroot);
19
+ await (0, fs_extra_1.writeFile)(indexPath, modifiedHtml);
20
+ }
21
+ static normalizeWebroot(webroot) {
22
+ if (!webroot || webroot === '/') {
23
+ return '';
24
+ }
25
+ return webroot.replace(/\/+/g, '/').replace(/^\/+|\/+$/g, '');
26
+ }
27
+ static transformHtmlForWebroot(html, webroot) {
28
+ const baseHref = webroot ? `/${webroot}/` : '/';
29
+ return html
30
+ .replace(/<base href="[^"]*"(\s*)\/?>/g, `<base href="${baseHref}"$1/>`)
31
+ .replace(/href="\/(?:.*?\/)?assets\//g, 'href="assets/')
32
+ .replace(/href="\/(?:.*?\/)?favicon\.ico"/g, 'href="favicon.ico"')
33
+ .replace(/href="\/(?:.*?\/)?([^"/]+\.(png|svg|webmanifest))"/g, 'href="$1"')
34
+ .replace(/src="\/(?:.*?\/)?assets\//g, 'src="assets/');
35
+ }
36
+ }
37
+ exports.SpaHtmlService = SpaHtmlService;
38
+ //# sourceMappingURL=spa-html.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spa-html.service.js","sourceRoot":"","sources":["../../../src/core/spa/spa-html.service.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAmC;AACnC,gEAAkC;AAElC,uCAAsD;AAEtD,MAAa,cAAc;IAKzB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,OAAe;QAC1C,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,sBAAO,CAAC,GAAG,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAA;QACzE,IAAI,CAAC,CAAC,MAAM,IAAA,iBAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC/B,OAAM;QACR,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAA,mBAAQ,EAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACvD,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAA;QAClF,MAAM,IAAA,oBAAS,EAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IAC1C,CAAC;IAOO,MAAM,CAAC,gBAAgB,CAAC,OAAe;QAC7C,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YAChC,OAAO,EAAE,CAAA;QACX,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC/D,CAAC;IAQO,MAAM,CAAC,uBAAuB,CAAC,IAAY,EAAE,OAAe;QAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QAE/C,OAAO,IAAI;aACR,OAAO,CAAC,8BAA8B,EAAE,eAAe,QAAQ,OAAO,CAAC;aACvE,OAAO,CAAC,6BAA6B,EAAE,eAAe,CAAC;aACvD,OAAO,CAAC,kCAAkC,EAAE,oBAAoB,CAAC;aACjE,OAAO,CAAC,qDAAqD,EAAE,WAAW,CAAC;aAC3E,OAAO,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAA;IAC1D,CAAC;CACF;AA7CD,wCA6CC"}
@@ -1,4 +1,7 @@
1
1
  import type { ArgumentsHost, ExceptionFilter, HttpException } from '@nestjs/common';
2
+ import '../../globalDefaults';
2
3
  export declare class SpaFilter implements ExceptionFilter {
4
+ private readonly webroot;
5
+ constructor();
3
6
  catch(_exception: HttpException, host: ArgumentsHost): any;
4
7
  }
@@ -5,6 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
8
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
13
  };
@@ -14,12 +17,27 @@ const node_path_1 = require("node:path");
14
17
  const node_process_1 = __importDefault(require("node:process"));
15
18
  const common_1 = require("@nestjs/common");
16
19
  const fs_extra_1 = require("fs-extra");
20
+ require("../../globalDefaults");
17
21
  let SpaFilter = class SpaFilter {
22
+ constructor() {
23
+ const envWebroot = node_process_1.default.env.UIX_ORIGINAL_WEBROOT;
24
+ this.webroot = (envWebroot && envWebroot !== globalThis.webroot.errorCode)
25
+ ? envWebroot
26
+ : '';
27
+ }
18
28
  catch(_exception, host) {
19
29
  const ctx = host.switchToHttp();
20
30
  const req = ctx.getRequest();
21
31
  const res = ctx.getResponse();
22
- if (req.url.startsWith('/api/') || req.url.startsWith('/socket.io') || req.url.startsWith('/assets')) {
32
+ const urlWithoutWebroot = this.webroot ? req.url.replace(new RegExp(`^${this.webroot}`), '') : req.url;
33
+ if (urlWithoutWebroot.startsWith('/api/')
34
+ || urlWithoutWebroot.startsWith('/socket.io')
35
+ || urlWithoutWebroot.startsWith('/assets')
36
+ || urlWithoutWebroot.startsWith('/swagger')
37
+ || urlWithoutWebroot.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|webmanifest)$/)) {
38
+ return res.code(404).send('Not Found');
39
+ }
40
+ if (this.webroot && !req.url.startsWith(this.webroot)) {
23
41
  return res.code(404).send('Not Found');
24
42
  }
25
43
  const file = (0, fs_extra_1.readFileSync)((0, node_path_1.resolve)(node_process_1.default.env.UIX_BASE_PATH, 'public/index.html'), 'utf-8');
@@ -32,6 +50,7 @@ let SpaFilter = class SpaFilter {
32
50
  };
33
51
  exports.SpaFilter = SpaFilter;
34
52
  exports.SpaFilter = SpaFilter = __decorate([
35
- (0, common_1.Catch)(common_1.NotFoundException)
53
+ (0, common_1.Catch)(common_1.NotFoundException),
54
+ __metadata("design:paramtypes", [])
36
55
  ], SpaFilter);
37
56
  //# sourceMappingURL=spa.filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spa.filter.js","sourceRoot":"","sources":["../../../src/core/spa/spa.filter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,yCAAmC;AACnC,gEAAkC;AAElC,2CAAyD;AACzD,uCAAuC;AAGhC,IAAM,SAAS,GAAf,MAAM,SAAS;IACpB,KAAK,CAAC,UAAyB,EAAE,IAAmB;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QAE7B,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACrG,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACxC,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,uBAAY,EAAC,IAAA,mBAAO,EAAC,sBAAO,CAAC,GAAG,CAAC,aAAa,EAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC,CAAA;QAC3F,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACrB,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,qCAAqC,CAAC,CAAA;QAClE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAChC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;CACF,CAAA;AAjBY,8BAAS;oBAAT,SAAS;IADrB,IAAA,cAAK,EAAC,0BAAiB,CAAC;GACZ,SAAS,CAiBrB"}
1
+ {"version":3,"file":"spa.filter.js","sourceRoot":"","sources":["../../../src/core/spa/spa.filter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,yCAAmC;AACnC,gEAAkC;AAElC,2CAAyD;AACzD,uCAAuC;AAEvC,gCAA6B;AAGtB,IAAM,SAAS,GAAf,MAAM,SAAS;IAGpB;QACE,MAAM,UAAU,GAAG,sBAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA;QACnD,IAAI,CAAC,OAAO,GAAG,CAAC,UAAU,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC;YACxE,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,EAAE,CAAA;IACR,CAAC;IAED,KAAK,CAAC,UAAyB,EAAE,IAAmB;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QAG7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA;QAEtG,IAAI,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC;eACpC,iBAAiB,CAAC,UAAU,CAAC,YAAY,CAAC;eAC1C,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC;eACvC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC;eACxC,iBAAiB,CAAC,KAAK,CAAC,qEAAqE,CAAC,EAAE,CAAC;YACpG,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACxC,CAAC;QAGD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACxC,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,uBAAY,EAAC,IAAA,mBAAO,EAAC,sBAAO,CAAC,GAAG,CAAC,aAAa,EAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC,CAAA;QAC3F,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACrB,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,qCAAqC,CAAC,CAAA;QAClE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAChC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;CACF,CAAA;AAtCY,8BAAS;oBAAT,SAAS;IADrB,IAAA,cAAK,EAAC,0BAAiB,CAAC;;GACZ,SAAS,CAsCrB"}
@@ -0,0 +1,15 @@
1
+ import { Buffer } from 'node:buffer';
2
+ interface SslCertificateData {
3
+ privateKey: Buffer;
4
+ certificate: Buffer;
5
+ }
6
+ export declare class SslCertGeneratorService {
7
+ private readonly logger;
8
+ private readonly certDir;
9
+ private readonly privateKeyPath;
10
+ private readonly certificatePath;
11
+ constructor();
12
+ generateOrLoadCertificate(hostnames?: string[]): Promise<SslCertificateData>;
13
+ private generateCertificate;
14
+ }
15
+ export {};