homebridge-config-ui-x 5.9.1-beta.7 → 5.9.1-beta.9

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 (97) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/app.module.js +2 -0
  3. package/dist/app.module.js.map +1 -1
  4. package/dist/core/auth/auth.controller.d.ts +2 -1
  5. package/dist/core/config/config.interfaces.d.ts +8 -1
  6. package/dist/core/config/config.service.d.ts +2 -1
  7. package/dist/core/config/config.service.js +2 -1
  8. package/dist/core/config/config.service.js.map +1 -1
  9. package/dist/core/scheduler/scheduler.module.js +8 -0
  10. package/dist/core/scheduler/scheduler.module.js.map +1 -1
  11. package/dist/core/scheduler/scheduler.service.d.ts +12 -1
  12. package/dist/core/scheduler/scheduler.service.js +95 -2
  13. package/dist/core/scheduler/scheduler.service.js.map +1 -1
  14. package/dist/modules/config-editor/config-editor.controller.d.ts +6 -4
  15. package/dist/modules/config-editor/config-editor.controller.js +81 -15
  16. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  17. package/dist/modules/config-editor/config-editor.dto.d.ts +6 -0
  18. package/dist/modules/config-editor/config-editor.dto.js +40 -0
  19. package/dist/modules/config-editor/config-editor.dto.js.map +1 -0
  20. package/dist/modules/config-editor/config-editor.service.d.ts +6 -3
  21. package/dist/modules/config-editor/config-editor.service.js +57 -8
  22. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  23. package/dist/modules/plugins/plugins.controller.d.ts +5 -0
  24. package/dist/modules/plugins/plugins.controller.js +51 -2
  25. package/dist/modules/plugins/plugins.controller.js.map +1 -1
  26. package/dist/modules/plugins/plugins.module.js +4 -0
  27. package/dist/modules/plugins/plugins.module.js.map +1 -1
  28. package/dist/modules/plugins/plugins.service.d.ts +13 -2
  29. package/dist/modules/plugins/plugins.service.js +136 -2
  30. package/dist/modules/plugins/plugins.service.js.map +1 -1
  31. package/package.json +3 -3
  32. package/public/{chunk-2YX52H6Q.js → chunk-2FMEK65B.js} +1 -1
  33. package/public/{chunk-M47TKQW6.js → chunk-3H4EJBIW.js} +1 -1
  34. package/public/{chunk-7YMV2SA4.js → chunk-4LSPQKBN.js} +1 -1
  35. package/public/chunk-4TJTW5NL.js +52 -0
  36. package/public/{chunk-ARZPXRWQ.js → chunk-56NTNN7A.js} +1 -1
  37. package/public/{chunk-DK3WPB4Y.js → chunk-5H4UKHQO.js} +1 -1
  38. package/public/{chunk-R3O7MEXH.js → chunk-7WBNDA43.js} +1 -1
  39. package/public/chunk-7X7GKRI7.js +1 -0
  40. package/public/{chunk-VZCCPP3I.js → chunk-7ZJON72I.js} +1 -1
  41. package/public/{chunk-3JH6JJYX.js → chunk-AYEBKGOW.js} +1 -1
  42. package/public/{chunk-H6F4BFNP.js → chunk-BYBEFFNH.js} +1 -1
  43. package/public/{chunk-LVPZTTN4.js → chunk-CXUQLNRT.js} +1 -1
  44. package/public/{chunk-IXCZMPRT.js → chunk-D34BHZAZ.js} +1 -1
  45. package/public/{chunk-CJRYAQAB.js → chunk-DFSYVZHS.js} +1 -1
  46. package/public/{chunk-WXLDWLEU.js → chunk-E7CHJVF6.js} +1 -1
  47. package/public/{chunk-HVQWBTKJ.js → chunk-FVPOFMFR.js} +1 -1
  48. package/public/{chunk-ZU4WD6NG.js → chunk-GD3BNYBL.js} +1 -1
  49. package/public/{chunk-O7GANMXK.js → chunk-GTGRW7SZ.js} +1 -1
  50. package/public/{chunk-BEVMKUD4.js → chunk-H7BN2MFG.js} +1 -1
  51. package/public/{chunk-GKUOVNOZ.js → chunk-HZMFFKYB.js} +1 -1
  52. package/public/{chunk-67U6NRFC.js → chunk-IIVVMKTD.js} +1 -1
  53. package/public/{chunk-UTSMS5QS.js → chunk-IJZ5PJH7.js} +1 -1
  54. package/public/{chunk-IRIGNUNN.js → chunk-JAGGIZOK.js} +1 -1
  55. package/public/{chunk-TOBCQ5B3.js → chunk-JJMZZNOU.js} +8 -8
  56. package/public/{chunk-SSIH2ICV.js → chunk-K6MP6J2I.js} +1 -1
  57. package/public/chunk-KGXF4YD5.js +1 -0
  58. package/public/{chunk-3K2UYZ53.js → chunk-LDVA4PGW.js} +1 -1
  59. package/public/{chunk-C27QSCMY.js → chunk-MGK3CCFB.js} +2 -2
  60. package/public/{chunk-T6U7OKUD.js → chunk-MNVMBPHV.js} +1 -1
  61. package/public/{chunk-MPDQ3XGG.js → chunk-N67N5JDK.js} +1 -1
  62. package/public/{chunk-4ZDGXNCW.js → chunk-NOBUYLGI.js} +1 -1
  63. package/public/chunk-NZIBUYDI.js +50 -0
  64. package/public/{chunk-7XETZDRS.js → chunk-OO2MVDGG.js} +1 -1
  65. package/public/{chunk-QYDR4DOT.js → chunk-OYP4E7LD.js} +1 -1
  66. package/public/chunk-P63CZWFM.js +1 -0
  67. package/public/{chunk-LSYC7RS2.js → chunk-PENFMOAM.js} +1 -1
  68. package/public/{chunk-SOUN4EFM.js → chunk-PMIKE7XO.js} +1 -1
  69. package/public/chunk-QC5TXGPR.js +1 -0
  70. package/public/{chunk-5BDKZBRM.js → chunk-QO7DKILC.js} +1 -1
  71. package/public/{chunk-6NYJSSLN.js → chunk-R3BLBHPZ.js} +1 -1
  72. package/public/{chunk-GQDSGFCV.js → chunk-RFF7LGZV.js} +1 -1
  73. package/public/{chunk-MSZWSUJN.js → chunk-RZY66DUH.js} +1 -1
  74. package/public/{chunk-ADZPEOBS.js → chunk-S6C7GUA2.js} +1 -1
  75. package/public/{chunk-A354KSZE.js → chunk-SOVE6NMG.js} +1 -1
  76. package/public/{chunk-BPBBQKYD.js → chunk-SQOLJ3VE.js} +1 -1
  77. package/public/chunk-T5MFQC3H.js +1 -0
  78. package/public/{chunk-H7P6VE6N.js → chunk-T5TGWWEW.js} +1 -1
  79. package/public/chunk-TJTVEZ2Q.js +1 -0
  80. package/public/{chunk-Q6YYN5VG.js → chunk-TUSDAICO.js} +1 -1
  81. package/public/{chunk-3M63ERVL.js → chunk-UQEYJ37C.js} +1 -1
  82. package/public/{chunk-3S4GXBQG.js → chunk-VAU7GXP6.js} +1 -1
  83. package/public/{chunk-3LCQQJW4.js → chunk-W6VJMRO6.js} +1 -1
  84. package/public/{chunk-OOQ26OFQ.js → chunk-WCXHI252.js} +1 -1
  85. package/public/{chunk-SBQCPYMX.js → chunk-WLNOOGPS.js} +1 -1
  86. package/public/{chunk-X2IYFUPJ.js → chunk-XTO2AHKJ.js} +1 -1
  87. package/public/{chunk-GT3HY5R3.js → chunk-Z473TWB3.js} +1 -1
  88. package/public/index.html +1 -1
  89. package/public/{main-XQXG3BMO.js → main-USYTEC3L.js} +1 -1
  90. package/public/chunk-54CTLX7P.js +0 -50
  91. package/public/chunk-5EUSNLP2.js +0 -1
  92. package/public/chunk-BMOYETPJ.js +0 -1
  93. package/public/chunk-E2NK4KHN.js +0 -1
  94. package/public/chunk-NGK52XOQ.js +0 -1
  95. package/public/chunk-OND5UHKE.js +0 -1
  96. package/public/chunk-QTJKJFXI.js +0 -52
  97. package/public/chunk-RLXU3LMU.js +0 -1
@@ -303,23 +303,69 @@ let ConfigEditorService = class ConfigEditorService {
303
303
  config.platforms[config.platforms.findIndex(x => x.platform === 'config')] = this.cleanUpUiConfig(pluginConfig);
304
304
  await this.updateConfigFile(config);
305
305
  }
306
- async getPluginsHidePairingAlerts() {
306
+ async getBridge(username) {
307
+ if (!username || !/^[0-9A-F]{2}(?::[0-9A-F]{2}){5}$/i.test(username.trim())) {
308
+ return null;
309
+ }
307
310
  const config = await this.getConfigFile();
308
311
  const pluginConfig = config.platforms.find(x => x.platform === 'config');
309
- return pluginConfig?.plugins?.hidePairingAlerts || [];
312
+ const normalizedUsername = username.trim().toUpperCase();
313
+ const bridge = pluginConfig?.bridges?.find((b) => b.username.toUpperCase() === normalizedUsername);
314
+ return {
315
+ username: normalizedUsername,
316
+ hideHapAlert: bridge?.hideHapAlert || false,
317
+ hideMatterAlert: bridge?.hideMatterAlert || false,
318
+ scheduledRestartCron: bridge?.scheduledRestartCron || null,
319
+ ...(bridge
320
+ ? Object.keys(bridge).reduce((acc, key) => {
321
+ if (key !== 'username' && key !== 'hideHapAlert' && key !== 'hideMatterAlert' && key !== 'scheduledRestartCron') {
322
+ acc[key] = bridge[key];
323
+ }
324
+ return acc;
325
+ }, {})
326
+ : {}),
327
+ };
310
328
  }
311
- async setPluginsHidePairingAlerts(value) {
329
+ async updateBridgeProperty(username, property, value) {
330
+ if (!username || !/^[0-9A-F]{2}(?::[0-9A-F]{2}){5}$/i.test(username.trim())) {
331
+ throw new NotFoundException('Invalid bridge username format');
332
+ }
312
333
  const config = await this.getConfigFile();
313
334
  const pluginConfig = config.platforms.find(x => x.platform === 'config');
314
- if (!pluginConfig.plugins) {
315
- pluginConfig.plugins = {};
335
+ const normalizedUsername = username.trim().toUpperCase();
336
+ if (!pluginConfig.bridges) {
337
+ pluginConfig.bridges = [];
338
+ }
339
+ let bridge = pluginConfig.bridges.find((b) => b.username.toUpperCase() === normalizedUsername);
340
+ const shouldSet = value !== null && value !== undefined && value !== false && value !== '' && value !== 'never';
341
+ if (shouldSet) {
342
+ if (!bridge) {
343
+ bridge = { username: normalizedUsername };
344
+ pluginConfig.bridges.push(bridge);
345
+ }
346
+ bridge[property] = value;
347
+ }
348
+ else {
349
+ if (bridge) {
350
+ delete bridge[property];
351
+ const hasOtherProps = Object.keys(bridge).some(key => key !== 'username');
352
+ if (!hasOtherProps) {
353
+ pluginConfig.bridges = pluginConfig.bridges.filter((b) => b.username.toUpperCase() !== normalizedUsername);
354
+ }
355
+ }
316
356
  }
317
- pluginConfig.plugins.hidePairingAlerts = (value || [])
318
- .filter(x => typeof x === 'string' && x.trim() !== '' && /^[0-9A-F]{2}(?::[0-9A-F]{2}){5}-(?:hap|matter)$/i.test(x.trim()))
319
- .map(x => x.trim().toUpperCase());
320
357
  config.platforms[config.platforms.findIndex(x => x.platform === 'config')] = this.cleanUpUiConfig(pluginConfig);
321
358
  await this.updateConfigFile(config);
322
359
  }
360
+ async setBridgeHideHapAlert(username, value) {
361
+ await this.updateBridgeProperty(username, 'hideHapAlert', value);
362
+ }
363
+ async setBridgeHideMatterAlert(username, value) {
364
+ await this.updateBridgeProperty(username, 'hideMatterAlert', value);
365
+ }
366
+ async setBridgeScheduledRestartCron(username, value) {
367
+ await this.updateBridgeProperty(username, 'scheduledRestartCron', value);
368
+ }
323
369
  async disablePlugin(pluginName) {
324
370
  if (pluginName === this.configService.name) {
325
371
  throw new BadRequestException('Disabling this plugin is now allowed.');
@@ -474,6 +520,9 @@ let ConfigEditorService = class ConfigEditorService {
474
520
  platform: platform || 'config',
475
521
  ...rest,
476
522
  };
523
+ if (Array.isArray(cleanedUiConfig.bridges)) {
524
+ cleanedUiConfig.bridges = cleanedUiConfig.bridges.filter(bridge => bridge && bridge.username);
525
+ }
477
526
  this.removeEmpty(cleanedUiConfig);
478
527
  return cleanedUiConfig;
479
528
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config-editor.service.js","sourceRoot":"","sources":["../../../src/modules/config-editor/config-editor.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-editor.service.js","sourceRoot":"","sources":["../../../src/modules/config-editor/config-editor.service.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,9 @@ export declare class PluginsController {
17
17
  latestVersion: string;
18
18
  }>;
19
19
  getPluginAlias(pluginName: any): Promise<import("./plugins.interfaces.js").PluginAlias>;
20
+ triggerUpdate(pluginName: string, version?: string): Promise<{
21
+ ok: boolean;
22
+ name: string;
23
+ version: string;
24
+ }>;
20
25
  }
@@ -10,9 +10,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  var __param = (this && this.__param) || function (paramIndex, decorator) {
11
11
  return function (target, key) { decorator(target, key, paramIndex); }
12
12
  };
13
- import { Controller, Get, Inject, Param, UseGuards } from '@nestjs/common';
13
+ import { Controller, Get, Inject, Param, Post, Query, UseGuards } from '@nestjs/common';
14
14
  import { AuthGuard } from '@nestjs/passport';
15
- import { ApiBearerAuth, ApiOperation, ApiParam, ApiTags } from '@nestjs/swagger';
15
+ import { ApiBearerAuth, ApiOperation, ApiParam, ApiQuery, ApiResponse, ApiTags } from '@nestjs/swagger';
16
16
  import { AdminGuard } from '../../core/auth/guards/admin.guard.js';
17
17
  import { PluginsService } from './plugins.service.js';
18
18
  let PluginsController = class PluginsController {
@@ -49,6 +49,9 @@ let PluginsController = class PluginsController {
49
49
  getPluginAlias(pluginName) {
50
50
  return this.pluginsService.getPluginAlias(pluginName);
51
51
  }
52
+ triggerUpdate(pluginName, version) {
53
+ return this.pluginsService.triggerUpdate(pluginName, version);
54
+ }
52
55
  };
53
56
  __decorate([
54
57
  ApiOperation({ summary: 'Get the list of currently installed Homebridge plugins.' }),
@@ -130,6 +133,52 @@ __decorate([
130
133
  __metadata("design:paramtypes", [Object]),
131
134
  __metadata("design:returntype", void 0)
132
135
  ], PluginsController.prototype, "getPluginAlias", null);
136
+ __decorate([
137
+ UseGuards(AdminGuard),
138
+ ApiOperation({
139
+ summary: 'Trigger an update for Homebridge, homebridge-config-ui-x, or any plugin.',
140
+ description: 'This endpoint queues an update to be performed in the background. The update will be executed asynchronously and the appropriate restart will be performed based on what was updated.',
141
+ }),
142
+ ApiParam({
143
+ name: 'pluginName',
144
+ type: String,
145
+ description: 'The name of the package to update (homebridge, homebridge-config-ui-x, or a plugin name)',
146
+ example: 'homebridge-example-plugin',
147
+ }),
148
+ ApiQuery({
149
+ name: 'version',
150
+ type: String,
151
+ required: false,
152
+ description: 'Specific version to install. If not provided, the latest version will be installed.',
153
+ example: '1.2.3',
154
+ }),
155
+ ApiResponse({
156
+ status: 201,
157
+ description: 'Update has been queued successfully.',
158
+ schema: {
159
+ type: 'object',
160
+ properties: {
161
+ ok: { type: 'boolean', example: true },
162
+ name: { type: 'string', example: 'homebridge-example-plugin' },
163
+ version: { type: 'string', example: '1.2.3' },
164
+ },
165
+ },
166
+ }),
167
+ ApiResponse({
168
+ status: 400,
169
+ description: 'Invalid package name or validation error.',
170
+ }),
171
+ ApiResponse({
172
+ status: 404,
173
+ description: 'Package not installed.',
174
+ }),
175
+ Post('update/:pluginName'),
176
+ __param(0, Param('pluginName')),
177
+ __param(1, Query('version')),
178
+ __metadata("design:type", Function),
179
+ __metadata("design:paramtypes", [String, String]),
180
+ __metadata("design:returntype", void 0)
181
+ ], PluginsController.prototype, "triggerUpdate", null);
133
182
  PluginsController = __decorate([
134
183
  ApiTags('Plugins'),
135
184
  ApiBearerAuth(),
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.controller.js","sourceRoot":"","sources":["../../../src/modules/plugins/plugins.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugins.controller.js","sourceRoot":"","sources":["../../../src/modules/plugins/plugins.controller.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,10 @@ import { HttpModule } from '@nestjs/axios';
9
9
  import { Module } from '@nestjs/common';
10
10
  import { PassportModule } from '@nestjs/passport';
11
11
  import { ConfigModule } from '../../core/config/config.module.js';
12
+ import { HomebridgeIpcModule } from '../../core/homebridge-ipc/homebridge-ipc.module.js';
12
13
  import { LoggerModule } from '../../core/logger/logger.module.js';
13
14
  import { NodePtyModule } from '../../core/node-pty/node-pty.module.js';
15
+ import { ChildBridgesModule } from '../child-bridges/child-bridges.module.js';
14
16
  import { PluginsController } from './plugins.controller.js';
15
17
  import { PluginsGateway } from './plugins.gateway.js';
16
18
  import { PluginsService } from './plugins.service.js';
@@ -30,6 +32,8 @@ PluginsModule = __decorate([
30
32
  NodePtyModule,
31
33
  ConfigModule,
32
34
  LoggerModule,
35
+ HomebridgeIpcModule,
36
+ ChildBridgesModule,
33
37
  ],
34
38
  providers: [
35
39
  PluginsService,
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.module.js","sourceRoot":"","sources":["../../../src/modules/plugins/plugins.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AA2B9C,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,aAAa;IAzBzB,MAAM,CAAC;QACN,OAAO,EAAE;YACP,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;YACnD,UAAU,CAAC,QAAQ,CAAC;gBAClB,OAAO,EAAE;oBACP,YAAY,EAAE,wBAAwB;iBACvC;gBACD,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aAC3C,CAAC;YACF,aAAa;YACb,YAAY;YACZ,YAAY;SACb;QACD,SAAS,EAAE;YACT,cAAc;YACd,cAAc;SACf;QACD,OAAO,EAAE;YACP,cAAc;SACf;QACD,WAAW,EAAE;YACX,iBAAiB;SAClB;KACF,CAAC;GACW,aAAa,CAAG"}
1
+ {"version":3,"file":"plugins.module.js","sourceRoot":"","sources":["../../../src/modules/plugins/plugins.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AA6B9C,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,aAAa;IA3BzB,MAAM,CAAC;QACN,OAAO,EAAE;YACP,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;YACnD,UAAU,CAAC,QAAQ,CAAC;gBAClB,OAAO,EAAE;oBACP,YAAY,EAAE,wBAAwB;iBACvC;gBACD,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aAC3C,CAAC;YACF,aAAa;YACb,YAAY;YACZ,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;SACnB;QACD,SAAS,EAAE;YACT,cAAc;YACd,cAAc;SACf;QACD,OAAO,EAAE;YACP,cAAc;SACf;QACD,WAAW,EAAE;YACX,iBAAiB;SAClB;KACF,CAAC;GACW,aAAa,CAAG"}
@@ -1,20 +1,25 @@
1
- import type { EventEmitter } from 'node:events';
2
1
  import type { HomebridgePlugin, HomebridgePluginUiMetadata, HomebridgePluginVersions, PluginAlias } from './plugins.interfaces.js';
2
+ import { EventEmitter } from 'node:events';
3
3
  import { HttpService } from '@nestjs/axios';
4
4
  import { ConfigService } from '../../core/config/config.service.js';
5
+ import { HomebridgeIpcService } from '../../core/homebridge-ipc/homebridge-ipc.service.js';
5
6
  import { Logger } from '../../core/logger/logger.service.js';
6
7
  import { NodePtyService } from '../../core/node-pty/node-pty.service.js';
8
+ import { ChildBridgesService } from '../child-bridges/child-bridges.service.js';
7
9
  import { HomebridgeUpdateActionDto, PluginActionDto } from './plugins.dto.js';
8
10
  export declare class PluginsService {
9
11
  private readonly httpService;
10
12
  private readonly nodePtyService;
11
13
  private readonly logger;
12
14
  private readonly configService;
15
+ private readonly homebridgeIpcService;
16
+ private readonly childBridgesService;
13
17
  private static readonly PLUGIN_IDENTIFIER_PATTERN;
14
18
  private _npm;
15
19
  private _paths;
16
20
  private get npm();
17
21
  private get paths();
22
+ private static readonly UI_RESTART_DELAY_MS;
18
23
  private installedPlugins;
19
24
  private npmPackage;
20
25
  private pluginListUrl;
@@ -33,7 +38,7 @@ export declare class PluginsService {
33
38
  private pluginAliasCache;
34
39
  private installedPluginsCache;
35
40
  private pluginAliasHints;
36
- constructor(httpService: HttpService, nodePtyService: NodePtyService, logger: Logger, configService: ConfigService);
41
+ constructor(httpService: HttpService, nodePtyService: NodePtyService, logger: Logger, configService: ConfigService, homebridgeIpcService: HomebridgeIpcService, childBridgesService: ChildBridgesService);
37
42
  private fixDisplayName;
38
43
  getInstalledPlugins(): Promise<HomebridgePlugin[]>;
39
44
  getOutOfDatePlugins(): Promise<HomebridgePlugin[]>;
@@ -48,6 +53,11 @@ export declare class PluginsService {
48
53
  managePlugin(action: 'install' | 'uninstall', pluginAction: PluginActionDto, client: EventEmitter): Promise<boolean>;
49
54
  getHomebridgePackage(): Promise<HomebridgePlugin>;
50
55
  updateHomebridgePackage(homebridgeUpdateAction: HomebridgeUpdateActionDto, client: EventEmitter): Promise<boolean>;
56
+ triggerUpdate(name: string, version?: string): Promise<{
57
+ ok: boolean;
58
+ name: string;
59
+ version: string;
60
+ }>;
51
61
  getHomebridgeUiPackage(): Promise<HomebridgePlugin>;
52
62
  getNpmPackage(): Promise<HomebridgePlugin>;
53
63
  isPluginBundleAvailable(pluginAction: PluginActionDto): Promise<boolean>;
@@ -66,6 +76,7 @@ export declare class PluginsService {
66
76
  latestVersion: string;
67
77
  }>;
68
78
  getPluginAlias(pluginName: string): Promise<PluginAlias>;
79
+ getPluginChildBridgeUsernames(pluginName: string): Promise<string[]>;
69
80
  getPluginUiMetadata(pluginName: string): Promise<HomebridgePluginUiMetadata>;
70
81
  private getDisabledPlugins;
71
82
  private getInstalledScopedModules;
@@ -12,6 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  };
13
13
  var PluginsService_1;
14
14
  import { execSync, fork, spawn } from 'node:child_process';
15
+ import { EventEmitter } from 'node:events';
15
16
  import { constants, existsSync } from 'node:fs';
16
17
  import { access, readdir, readFile, realpath, stat } from 'node:fs/promises';
17
18
  import { createRequire } from 'node:module';
@@ -29,8 +30,10 @@ import pLimit from 'p-limit';
29
30
  import { firstValueFrom } from 'rxjs';
30
31
  import { gt, lt, parse, satisfies } from 'semver';
31
32
  import { ConfigService } from '../../core/config/config.service.js';
33
+ import { HomebridgeIpcService } from '../../core/homebridge-ipc/homebridge-ipc.service.js';
32
34
  import { Logger } from '../../core/logger/logger.service.js';
33
35
  import { NodePtyService } from '../../core/node-pty/node-pty.service.js';
36
+ import { ChildBridgesService } from '../child-bridges/child-bridges.service.js';
34
37
  const { orderBy, uniq } = _;
35
38
  const require = createRequire(import.meta.url);
36
39
  let PluginsService = class PluginsService {
@@ -39,6 +42,8 @@ let PluginsService = class PluginsService {
39
42
  nodePtyService;
40
43
  logger;
41
44
  configService;
45
+ homebridgeIpcService;
46
+ childBridgesService;
42
47
  static PLUGIN_IDENTIFIER_PATTERN = /^(@[\w-]+(\.[\w-]+)*\/)?homebridge-[\w-]+$/;
43
48
  _npm;
44
49
  _paths;
@@ -54,6 +59,7 @@ let PluginsService = class PluginsService {
54
59
  }
55
60
  return this._paths;
56
61
  }
62
+ static UI_RESTART_DELAY_MS = 5000;
57
63
  installedPlugins;
58
64
  npmPackage;
59
65
  pluginListUrl = 'https://raw.githubusercontent.com/homebridge/plugins/latest/';
@@ -77,11 +83,13 @@ let PluginsService = class PluginsService {
77
83
  pluginType: 'platform',
78
84
  },
79
85
  };
80
- constructor(httpService, nodePtyService, logger, configService) {
86
+ constructor(httpService, nodePtyService, logger, configService, homebridgeIpcService, childBridgesService) {
81
87
  this.httpService = httpService;
82
88
  this.nodePtyService = nodePtyService;
83
89
  this.logger = logger;
84
90
  this.configService = configService;
91
+ this.homebridgeIpcService = homebridgeIpcService;
92
+ this.childBridgesService = childBridgesService;
85
93
  this.httpService.axiosRef.interceptors.request.use((config) => {
86
94
  const source = axios.CancelToken.source();
87
95
  config.cancelToken = source.token;
@@ -524,6 +532,102 @@ let PluginsService = class PluginsService {
524
532
  await this.runNpmCommand([...this.npm, 'install', ...installOptions, `${homebridge.name}@${homebridgeUpdateAction.version}`], installPath, client, homebridgeUpdateAction.termCols, homebridgeUpdateAction.termRows);
525
533
  return true;
526
534
  }
535
+ async triggerUpdate(name, version) {
536
+ let targetVersion = version || 'latest';
537
+ try {
538
+ switch (name) {
539
+ case 'homebridge': {
540
+ const homebridge = await this.getHomebridgePackage();
541
+ if (targetVersion === 'latest' && homebridge.latestVersion) {
542
+ targetVersion = homebridge.latestVersion;
543
+ }
544
+ break;
545
+ }
546
+ case 'homebridge-config-ui-x': {
547
+ const uiPackage = await this.getHomebridgeUiPackage();
548
+ if (!uiPackage) {
549
+ throw new NotFoundException(`Package ${name} is not installed.`);
550
+ }
551
+ if (targetVersion === 'latest' && uiPackage.latestVersion) {
552
+ targetVersion = uiPackage.latestVersion;
553
+ }
554
+ break;
555
+ }
556
+ default: {
557
+ if (!PluginsService_1.PLUGIN_IDENTIFIER_PATTERN.test(name)) {
558
+ throw new BadRequestException('Invalid package name. Must be "homebridge", "homebridge-config-ui-x", or a valid Homebridge plugin name.');
559
+ }
560
+ const plugins = await this.getInstalledPlugins();
561
+ const plugin = plugins.find(p => p.name === name);
562
+ if (!plugin) {
563
+ throw new NotFoundException(`Plugin ${name} is not installed.`);
564
+ }
565
+ if (targetVersion === 'latest' && plugin.latestVersion) {
566
+ targetVersion = plugin.latestVersion;
567
+ }
568
+ }
569
+ }
570
+ }
571
+ catch (e) {
572
+ if (e instanceof NotFoundException) {
573
+ throw e;
574
+ }
575
+ this.logger.error(`Failed to validate package ${name} for update: ${e.message}`);
576
+ throw new BadRequestException(`Failed to validate package ${name} for update.`);
577
+ }
578
+ setImmediate(async () => {
579
+ try {
580
+ this.logger.log(`Starting scheduled update for ${name} to version ${targetVersion}`);
581
+ const mockClient = new EventEmitter();
582
+ mockClient.on('stdout', (data) => {
583
+ this.logger.log(`[${name} update] ${data.toString().trim()}`);
584
+ });
585
+ if (name === 'homebridge') {
586
+ await this.updateHomebridgePackage({ version: targetVersion }, mockClient);
587
+ this.logger.log(`Successfully updated Homebridge to version ${targetVersion}. Performing quick restart of Homebridge process...`);
588
+ this.homebridgeIpcService.restartHomebridge();
589
+ }
590
+ else if (name === this.configService.name) {
591
+ await this.managePlugin('install', { name, version: targetVersion }, mockClient);
592
+ this.logger.warn(`homebridge-config-ui-x has been updated, server will restart in ${PluginsService_1.UI_RESTART_DELAY_MS / 1000} seconds...`);
593
+ setTimeout(() => {
594
+ process.exit(0);
595
+ }, PluginsService_1.UI_RESTART_DELAY_MS);
596
+ }
597
+ else {
598
+ await this.managePlugin('install', { name, version: targetVersion }, mockClient);
599
+ this.logger.log(`Successfully updated ${name} to version ${targetVersion}.`);
600
+ const childBridgeUsernames = await this.getPluginChildBridgeUsernames(name);
601
+ if (childBridgeUsernames.length > 0) {
602
+ this.logger.log(`${name} is running in ${childBridgeUsernames.length} child bridge(s). Restarting child bridges: ${childBridgeUsernames.join(', ')}`);
603
+ for (const username of childBridgeUsernames) {
604
+ this.logger.log(`Restarting child bridge ${username}...`);
605
+ this.childBridgesService.restartChildBridge(username);
606
+ }
607
+ }
608
+ else {
609
+ this.logger.log(`${name} is not running in a child bridge. Performing quick restart of Homebridge process...`);
610
+ this.homebridgeIpcService.restartHomebridge();
611
+ }
612
+ }
613
+ }
614
+ catch (error) {
615
+ this.logger.error(`Failed to update ${name}: ${error.message}`);
616
+ try {
617
+ this.logger.warn('Attempting fallback restart of Homebridge process...');
618
+ this.homebridgeIpcService.restartHomebridge();
619
+ }
620
+ catch (restartError) {
621
+ this.logger.error(`Failed to restart Homebridge: ${restartError.message}`);
622
+ }
623
+ }
624
+ });
625
+ return {
626
+ ok: true,
627
+ name,
628
+ version: targetVersion,
629
+ };
630
+ }
527
631
  async getHomebridgeUiPackage() {
528
632
  const plugins = await this.getInstalledPlugins();
529
633
  return plugins.find((x) => x.name === this.configService.name);
@@ -870,6 +974,32 @@ let PluginsService = class PluginsService {
870
974
  this.pluginAliasCache.set(pluginName, output);
871
975
  return output;
872
976
  }
977
+ async getPluginChildBridgeUsernames(pluginName) {
978
+ try {
979
+ const plugin = await this.getPluginAlias(pluginName);
980
+ if (!plugin.pluginAlias) {
981
+ return [];
982
+ }
983
+ const config = await readJson(this.configService.configPath);
984
+ const arrayKey = plugin.pluginType === 'accessory' ? 'accessories' : 'platforms';
985
+ const usernamesSet = new Set();
986
+ const pluginBlocks = config[arrayKey]?.filter((block) => {
987
+ const matchesPlugin = block[plugin.pluginType] === plugin.pluginAlias
988
+ || block[plugin.pluginType] === `${pluginName}.${plugin.pluginAlias}`;
989
+ return matchesPlugin && block._bridge?.username;
990
+ }) || [];
991
+ for (const block of pluginBlocks) {
992
+ if (block._bridge?.username) {
993
+ usernamesSet.add(block._bridge.username);
994
+ }
995
+ }
996
+ return Array.from(usernamesSet);
997
+ }
998
+ catch (e) {
999
+ this.logger.error(`Failed to get child bridge usernames for ${pluginName}: ${e.message}`);
1000
+ return [];
1001
+ }
1002
+ }
873
1003
  async getPluginUiMetadata(pluginName) {
874
1004
  if (!this.installedPlugins) {
875
1005
  await this.getInstalledPlugins();
@@ -1314,10 +1444,14 @@ PluginsService = PluginsService_1 = __decorate([
1314
1444
  __param(1, Inject(NodePtyService)),
1315
1445
  __param(2, Inject(Logger)),
1316
1446
  __param(3, Inject(ConfigService)),
1447
+ __param(4, Inject(HomebridgeIpcService)),
1448
+ __param(5, Inject(ChildBridgesService)),
1317
1449
  __metadata("design:paramtypes", [HttpService,
1318
1450
  NodePtyService,
1319
1451
  Logger,
1320
- ConfigService])
1452
+ ConfigService,
1453
+ HomebridgeIpcService,
1454
+ ChildBridgesService])
1321
1455
  ], PluginsService);
1322
1456
  export { PluginsService };
1323
1457
  //# sourceMappingURL=plugins.service.js.map