homebridge-config-ui-x 5.8.1-alpha.1 → 5.8.1-alpha.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.
Files changed (111) hide show
  1. package/dist/app.module.js +2 -0
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/modules/bridges/bridge-identifier.util.d.ts +9 -0
  4. package/dist/modules/bridges/bridge-identifier.util.js +30 -0
  5. package/dist/modules/bridges/bridge-identifier.util.js.map +1 -0
  6. package/dist/modules/bridges/bridges.controller.d.ts +11 -0
  7. package/dist/modules/bridges/bridges.controller.js +156 -0
  8. package/dist/modules/bridges/bridges.controller.js.map +1 -0
  9. package/dist/modules/bridges/bridges.interfaces.d.ts +72 -0
  10. package/dist/modules/bridges/bridges.interfaces.js +3 -0
  11. package/dist/modules/bridges/bridges.interfaces.js.map +1 -0
  12. package/dist/modules/bridges/bridges.module.d.ts +2 -0
  13. package/dist/modules/bridges/bridges.module.js +39 -0
  14. package/dist/modules/bridges/bridges.module.js.map +1 -0
  15. package/dist/modules/bridges/bridges.service.d.ts +16 -0
  16. package/dist/modules/bridges/bridges.service.js +168 -0
  17. package/dist/modules/bridges/bridges.service.js.map +1 -0
  18. package/dist/modules/child-bridges/child-bridges.gateway.d.ts +1 -1
  19. package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +7 -0
  20. package/dist/modules/child-bridges/child-bridges.interfaces.js +3 -0
  21. package/dist/modules/child-bridges/child-bridges.interfaces.js.map +1 -0
  22. package/dist/modules/child-bridges/child-bridges.service.d.ts +2 -1
  23. package/dist/modules/child-bridges/child-bridges.service.js.map +1 -1
  24. package/dist/modules/matter-bridges/matter-bridges.controller.d.ts +1 -0
  25. package/dist/modules/matter-bridges/matter-bridges.interfaces.d.ts +4 -18
  26. package/dist/modules/matter-bridges/matter-bridges.service.d.ts +2 -0
  27. package/dist/modules/matter-bridges/matter-bridges.service.js +72 -36
  28. package/dist/modules/matter-bridges/matter-bridges.service.js.map +1 -1
  29. package/dist/modules/plugins/plugins.service.js +2 -2
  30. package/dist/modules/server/server.service.js +0 -1
  31. package/dist/modules/server/server.service.js.map +1 -1
  32. package/dist/modules/status/status.controller.d.ts +1 -1
  33. package/package.json +4 -4
  34. package/public/{chunk-2VTPTBWC.js → chunk-2EKZK7NX.js} +1 -1
  35. package/public/{chunk-CVDVGPUL.js → chunk-33PMRDBB.js} +1 -1
  36. package/public/{chunk-WIQRKTJE.js → chunk-3EACECYJ.js} +2 -2
  37. package/public/{chunk-WOLG5CZA.js → chunk-3XNA4EQU.js} +1 -1
  38. package/public/{chunk-6JS4ZQWX.js → chunk-4Y2KPCHA.js} +1 -1
  39. package/public/chunk-5BCOF7IG.js +49 -0
  40. package/public/{chunk-BTLT5RJH.js → chunk-5EZCX7HV.js} +1 -1
  41. package/public/{chunk-ZFXCZXMZ.js → chunk-5KMVHZV7.js} +1 -1
  42. package/public/{chunk-6E5BARSR.js → chunk-6VILNURQ.js} +1 -1
  43. package/public/{chunk-2I4ETLZH.js → chunk-A5EKMCXX.js} +1 -1
  44. package/public/{chunk-XTFZVALQ.js → chunk-AR55D6KT.js} +1 -1
  45. package/public/{chunk-SDI5HSBM.js → chunk-AW6ZPEG3.js} +1 -1
  46. package/public/{chunk-7DSW3N54.js → chunk-AWJONODF.js} +1 -1
  47. package/public/{chunk-VHWW22XF.js → chunk-BD2WNMUL.js} +1 -1
  48. package/public/{chunk-UTXD6T57.js → chunk-BJULQD6Z.js} +1 -1
  49. package/public/{chunk-PVTUDHUR.js → chunk-BKJWDEC4.js} +1 -1
  50. package/public/{chunk-ZEPBMBZP.js → chunk-BQTCHQHZ.js} +1 -1
  51. package/public/{chunk-HJP3PUHH.js → chunk-BXTJNIAF.js} +1 -1
  52. package/public/{chunk-MWP3WV26.js → chunk-COBEXT75.js} +1 -1
  53. package/public/{chunk-37PL2Q23.js → chunk-D4FV2NR6.js} +1 -1
  54. package/public/{chunk-A6Q642ZL.js → chunk-ELWCTORK.js} +1 -1
  55. package/public/{chunk-D3DDU6SK.js → chunk-EYNZEIGI.js} +1 -1
  56. package/public/{chunk-UUM6VYTY.js → chunk-FBEAGLXX.js} +1 -1
  57. package/public/{chunk-KDVFF7AY.js → chunk-FKNFGRMF.js} +1 -1
  58. package/public/{chunk-6AMBOE4Y.js → chunk-GOK2QVWT.js} +1 -1
  59. package/public/{chunk-HUH4CVWW.js → chunk-GXMQ3BRX.js} +1 -1
  60. package/public/{chunk-MOC27Z2W.js → chunk-HNA35CNP.js} +1 -1
  61. package/public/{chunk-B6JXLW44.js → chunk-JA7WBGLB.js} +1 -1
  62. package/public/{chunk-MTATY52X.js → chunk-JAPQGXHI.js} +1 -1
  63. package/public/chunk-JIUPKHC6.js +5 -0
  64. package/public/{chunk-MLNUGBKB.js → chunk-K3HCHWTM.js} +1 -1
  65. package/public/{chunk-Q3MWAS4P.js → chunk-K4H6PB2J.js} +1 -1
  66. package/public/{chunk-6LFL4MDA.js → chunk-KAFW5DRA.js} +1 -1
  67. package/public/{chunk-GUAWWDOS.js → chunk-KZ6XXGP4.js} +1 -1
  68. package/public/{chunk-NVWZQWEN.js → chunk-LGGTBRNV.js} +1 -1
  69. package/public/{chunk-R5XUDO3O.js → chunk-LXFAOFAX.js} +1 -1
  70. package/public/{chunk-35UZ7VZX.js → chunk-M3FIN2AA.js} +1 -1
  71. package/public/{chunk-FKWZUPGA.js → chunk-M7GSB47P.js} +1 -1
  72. package/public/{chunk-MPEXWCHQ.js → chunk-MBD42QUN.js} +1 -1
  73. package/public/chunk-MJBWBNSG.js +1 -0
  74. package/public/{chunk-APSJUK45.js → chunk-NWKHE4QY.js} +1 -1
  75. package/public/{chunk-2H6M4LVM.js → chunk-OI6KCFXH.js} +1 -1
  76. package/public/{chunk-BPRJFSMN.js → chunk-P3A7PEYC.js} +9 -8
  77. package/public/{chunk-3PLIJBTE.js → chunk-PC74JU2B.js} +1 -1
  78. package/public/{chunk-PN4G3SRW.js → chunk-Q3A53XG6.js} +1 -1
  79. package/public/{chunk-UANJM6RI.js → chunk-R6PJW4VJ.js} +1 -1
  80. package/public/{chunk-C24ICGN6.js → chunk-ROHOV4PQ.js} +1 -1
  81. package/public/{chunk-PKBYFZL6.js → chunk-SFXLRTS5.js} +1 -1
  82. package/public/chunk-SHCD57ND.js +1 -0
  83. package/public/chunk-SXARTKV3.js +1 -0
  84. package/public/{chunk-H6CTSSL5.js → chunk-TKL5NWVB.js} +1 -1
  85. package/public/{chunk-DM4UKQJR.js → chunk-TUI3ZP5I.js} +1 -1
  86. package/public/{chunk-3SAD2VNO.js → chunk-U4SKVUE5.js} +1 -1
  87. package/public/{chunk-P5G7H6Z3.js → chunk-UHSROVQY.js} +1 -1
  88. package/public/{chunk-ZVVFXECV.js → chunk-ULZPLNSU.js} +1 -1
  89. package/public/{chunk-SAOAUW4Q.js → chunk-V7NTVYMU.js} +1 -1
  90. package/public/{chunk-VKEEEO4W.js → chunk-VI7CE3DV.js} +1 -1
  91. package/public/chunk-VUV53WFF.js +1 -0
  92. package/public/{chunk-I6E7YQPI.js → chunk-WYZEY4PO.js} +1 -1
  93. package/public/{chunk-2GXYRKHH.js → chunk-XID2DQIK.js} +1 -1
  94. package/public/{chunk-J5CM7V6S.js → chunk-XRLPCXVY.js} +1 -1
  95. package/public/{chunk-OSMYI4FR.js → chunk-Y3W3WZ42.js} +1 -1
  96. package/public/{chunk-LV4KCGZA.js → chunk-YKU27KZX.js} +1 -1
  97. package/public/{chunk-N25MZZTN.js → chunk-YPUYAJME.js} +1 -1
  98. package/public/{chunk-SZMSL4WR.js → chunk-YULDG6HZ.js} +1 -1
  99. package/public/{chunk-WNSKIS6I.js → chunk-Z37KQHXT.js} +1 -1
  100. package/public/{chunk-RH72P3KQ.js → chunk-ZINKZV7F.js} +1 -1
  101. package/public/{chunk-PAYR4BP6.js → chunk-ZNLFE6SA.js} +1 -1
  102. package/public/index.html +2 -2
  103. package/public/{main-SHUTEFR3.js → main-NHC6QBFW.js} +1 -1
  104. package/public/{styles-XX2FIUST.css → styles-4Y3CNLUV.css} +1 -1
  105. package/scripts/extract-plugin-alias.js +87 -3
  106. package/public/chunk-26OWANUT.js +0 -49
  107. package/public/chunk-AV4TLMKI.js +0 -5
  108. package/public/chunk-BTUMLRBK.js +0 -1
  109. package/public/chunk-L3NSG4YB.js +0 -1
  110. package/public/chunk-U7PKXES7.js +0 -1
  111. package/public/chunk-XPPYXYIG.js +0 -1
@@ -16,6 +16,7 @@ const config_module_1 = require("./core/config/config.module");
16
16
  const logger_module_1 = require("./core/logger/logger.module");
17
17
  const accessories_module_1 = require("./modules/accessories/accessories.module");
18
18
  const backup_module_1 = require("./modules/backup/backup.module");
19
+ const bridges_module_1 = require("./modules/bridges/bridges.module");
19
20
  const child_bridges_module_1 = require("./modules/child-bridges/child-bridges.module");
20
21
  const config_editor_module_1 = require("./modules/config-editor/config-editor.module");
21
22
  const custom_plugins_module_1 = require("./modules/custom-plugins/custom-plugins.module");
@@ -45,6 +46,7 @@ exports.AppModule = AppModule = __decorate([
45
46
  config_editor_module_1.ConfigEditorModule,
46
47
  platform_tools_module_1.PlatformToolsModule,
47
48
  child_bridges_module_1.ChildBridgesModule,
49
+ bridges_module_1.BridgesModule,
48
50
  matter_bridges_module_1.MatterBridgesModule,
49
51
  backup_module_1.BackupModule,
50
52
  log_module_1.LogModule,
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAuC;AAEvC,qDAAgD;AAChD,+CAA0C;AAC1C,+CAA0C;AAC1C,yDAAoD;AACpD,+DAA0D;AAC1D,+DAA0D;AAC1D,iFAA4E;AAC5E,kEAA6D;AAC7D,uFAAiF;AACjF,uFAAiF;AACjF,0FAAoF;AACpF,yDAAoD;AACpD,0FAAoF;AACpF,0FAAoF;AACpF,qEAAgE;AAChE,kEAA6D;AAC7D,oFAA8E;AAC9E,kEAA6D;AAC7D,+DAA0D;AA8BnD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IA5BrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,4BAAY;YACZ,4BAAY;YACZ,wBAAU;YACV,4BAAY;YACZ,8BAAa;YACb,2CAAmB;YACnB,0BAAW;YACX,4BAAY;YACZ,sCAAiB;YACjB,yCAAkB;YAClB,2CAAmB;YACnB,yCAAkB;YAClB,2CAAmB;YACnB,4BAAY;YACZ,sBAAS;YACT,uCAAiB;SAClB;QACD,WAAW,EAAE;YACX,8BAAa;SACd;QACD,SAAS,EAAE;YACT,wBAAU;YACV,wBAAU;SACX;KACF,CAAC;GAEW,SAAS,CAAG"}
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAuC;AAEvC,qDAAgD;AAChD,+CAA0C;AAC1C,+CAA0C;AAC1C,yDAAoD;AACpD,+DAA0D;AAC1D,+DAA0D;AAC1D,iFAA4E;AAC5E,kEAA6D;AAC7D,qEAAgE;AAChE,uFAAiF;AACjF,uFAAiF;AACjF,0FAAoF;AACpF,yDAAoD;AACpD,0FAAoF;AACpF,0FAAoF;AACpF,qEAAgE;AAChE,kEAA6D;AAC7D,oFAA8E;AAC9E,kEAA6D;AAC7D,+DAA0D;AA+BnD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IA7BrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,4BAAY;YACZ,4BAAY;YACZ,wBAAU;YACV,4BAAY;YACZ,8BAAa;YACb,2CAAmB;YACnB,0BAAW;YACX,4BAAY;YACZ,sCAAiB;YACjB,yCAAkB;YAClB,2CAAmB;YACnB,yCAAkB;YAClB,8BAAa;YACb,2CAAmB;YACnB,4BAAY;YACZ,sBAAS;YACT,uCAAiB;SAClB;QACD,WAAW,EAAE;YACX,8BAAa;SACd;QACD,SAAS,EAAE;YACT,wBAAU;YACV,wBAAU;SACX;KACF,CAAC;GAEW,SAAS,CAAG"}
@@ -0,0 +1,9 @@
1
+ import type { BridgeType } from './bridges.interfaces';
2
+ export declare class BridgeIdentifierUtil {
3
+ static sanitizeForFilesystem(username: string, type: BridgeType): string;
4
+ static sanitizeForEndpoint(username: string): string;
5
+ static idToUsername(id: string): string;
6
+ static getMatterIdentifier(username: string): string;
7
+ static getHapIdentifier(username: string): string;
8
+ static normalizeUsername(username: string): string;
9
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BridgeIdentifierUtil = void 0;
4
+ class BridgeIdentifierUtil {
5
+ static sanitizeForFilesystem(username, type) {
6
+ const base = type === 'matter' ? `${username}-matter` : username;
7
+ return base
8
+ .replace(/[^a-z0-9]/gi, '-')
9
+ .replace(/-+/g, '-')
10
+ .replace(/^-|-$/g, '');
11
+ }
12
+ static sanitizeForEndpoint(username) {
13
+ return username.replace(/:/g, '');
14
+ }
15
+ static idToUsername(id) {
16
+ const matched = id.match(/.{1,2}/g);
17
+ return matched ? matched.join(':').toUpperCase() : id;
18
+ }
19
+ static getMatterIdentifier(username) {
20
+ return this.sanitizeForFilesystem(username, 'matter');
21
+ }
22
+ static getHapIdentifier(username) {
23
+ return this.sanitizeForFilesystem(username, 'hap');
24
+ }
25
+ static normalizeUsername(username) {
26
+ return username.toUpperCase();
27
+ }
28
+ }
29
+ exports.BridgeIdentifierUtil = BridgeIdentifierUtil;
30
+ //# sourceMappingURL=bridge-identifier.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-identifier.util.js","sourceRoot":"","sources":["../../../src/modules/bridges/bridge-identifier.util.ts"],"names":[],"mappings":";;;AAQA,MAAa,oBAAoB;IAoB/B,MAAM,CAAC,qBAAqB,CAAC,QAAgB,EAAE,IAAgB;QAC7D,MAAM,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;QAChE,OAAO,IAAI;aACR,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;aAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC1B,CAAC;IAgBD,MAAM,CAAC,mBAAmB,CAAC,QAAgB;QACzC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAgBD,MAAM,CAAC,YAAY,CAAC,EAAU;QAC5B,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACnC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACvD,CAAC;IAgBD,MAAM,CAAC,mBAAmB,CAAC,QAAgB;QACzC,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACvD,CAAC;IAgBD,MAAM,CAAC,gBAAgB,CAAC,QAAgB;QACtC,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IACpD,CAAC;IAgBD,MAAM,CAAC,iBAAiB,CAAC,QAAgB;QACvC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAA;IAC/B,CAAC;CACF;AAtHD,oDAsHC"}
@@ -0,0 +1,11 @@
1
+ import { BridgesService } from './bridges.service';
2
+ export declare class BridgesController {
3
+ private readonly bridgesService;
4
+ constructor(bridgesService: BridgesService);
5
+ getCommissioningInfo(username: string, type?: 'hap' | 'matter'): Promise<import("./bridges.interfaces").BridgeCommissioningInfo>;
6
+ deleteBridge(username: string, type: 'hap' | 'matter' | 'both', resetPairingInfo?: string): Promise<{
7
+ ok: boolean;
8
+ }>;
9
+ getBridgeMetadata(username: string, type?: 'hap' | 'matter'): Promise<import("./bridges.interfaces").BridgeMetadata>;
10
+ getAllBridgeMetadata(type?: 'hap' | 'matter'): Promise<import("./bridges.interfaces").BridgeMetadata[]>;
11
+ }
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.BridgesController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const passport_1 = require("@nestjs/passport");
18
+ const swagger_1 = require("@nestjs/swagger");
19
+ const admin_guard_1 = require("../../core/auth/guards/admin.guard");
20
+ const bridges_service_1 = require("./bridges.service");
21
+ let BridgesController = class BridgesController {
22
+ constructor(bridgesService) {
23
+ this.bridgesService = bridgesService;
24
+ }
25
+ async getCommissioningInfo(username, type) {
26
+ const bridgeType = type || 'hap';
27
+ const normalizedUsername = username.includes(':')
28
+ ? username
29
+ : username.match(/.{1,2}/g)?.join(':') || username;
30
+ return await this.bridgesService.getCommissioningInfo(normalizedUsername, bridgeType);
31
+ }
32
+ async deleteBridge(username, type, resetPairingInfo) {
33
+ if (!type) {
34
+ throw new common_1.BadRequestException('Query parameter "type" is required (hap, matter, or both)');
35
+ }
36
+ const normalizedUsername = username.includes(':')
37
+ ? username
38
+ : username.match(/.{1,2}/g)?.join(':') || username;
39
+ const resetPairingInfoBool = resetPairingInfo === 'true';
40
+ return await this.bridgesService.deleteBridge(normalizedUsername, type, resetPairingInfoBool);
41
+ }
42
+ async getBridgeMetadata(username, type) {
43
+ const bridgeType = type || 'hap';
44
+ const normalizedUsername = username.includes(':')
45
+ ? username
46
+ : username.match(/.{1,2}/g)?.join(':') || username;
47
+ return await this.bridgesService.getBridgeMetadata(normalizedUsername, bridgeType);
48
+ }
49
+ async getAllBridgeMetadata(type) {
50
+ return await this.bridgesService.getAllBridgeMetadata(type);
51
+ }
52
+ };
53
+ exports.BridgesController = BridgesController;
54
+ __decorate([
55
+ (0, common_1.UseGuards)(admin_guard_1.AdminGuard),
56
+ (0, swagger_1.ApiOperation)({
57
+ summary: 'Get bridge commissioning/pairing information',
58
+ description: 'Returns unified commissioning info for HAP or Matter bridges',
59
+ }),
60
+ (0, swagger_1.ApiParam)({
61
+ name: 'username',
62
+ description: 'Bridge username in MAC format (e.g., "0E:DD:15:2B:48:AA" or "0EDD152B48AA")',
63
+ }),
64
+ (0, swagger_1.ApiQuery)({
65
+ name: 'type',
66
+ enum: ['hap', 'matter'],
67
+ description: 'Bridge type to query',
68
+ required: false,
69
+ }),
70
+ (0, common_1.Get)(':username/info'),
71
+ __param(0, (0, common_1.Param)('username')),
72
+ __param(1, (0, common_1.Query)('type')),
73
+ __metadata("design:type", Function),
74
+ __metadata("design:paramtypes", [String, String]),
75
+ __metadata("design:returntype", Promise)
76
+ ], BridgesController.prototype, "getCommissioningInfo", null);
77
+ __decorate([
78
+ (0, common_1.UseGuards)(admin_guard_1.AdminGuard),
79
+ (0, swagger_1.ApiOperation)({
80
+ summary: 'Delete a bridge',
81
+ description: 'Delete HAP and/or Matter bridge. Explicitly specify which type(s) to delete.',
82
+ }),
83
+ (0, swagger_1.ApiParam)({
84
+ name: 'username',
85
+ description: 'Bridge username in MAC format (e.g., "0E:DD:15:2B:48:AA" or "0EDD152B48AA")',
86
+ }),
87
+ (0, swagger_1.ApiQuery)({
88
+ name: 'type',
89
+ enum: ['hap', 'matter', 'both'],
90
+ description: 'Which bridge type(s) to delete',
91
+ required: true,
92
+ }),
93
+ (0, swagger_1.ApiQuery)({
94
+ name: 'resetPairingInfo',
95
+ type: Boolean,
96
+ description: 'For HAP bridges: reset pairing info (generate new username/pin)',
97
+ required: false,
98
+ }),
99
+ (0, common_1.Delete)(':username'),
100
+ (0, common_1.HttpCode)(204),
101
+ __param(0, (0, common_1.Param)('username')),
102
+ __param(1, (0, common_1.Query)('type')),
103
+ __param(2, (0, common_1.Query)('resetPairingInfo')),
104
+ __metadata("design:type", Function),
105
+ __metadata("design:paramtypes", [String, String, String]),
106
+ __metadata("design:returntype", Promise)
107
+ ], BridgesController.prototype, "deleteBridge", null);
108
+ __decorate([
109
+ (0, common_1.UseGuards)(admin_guard_1.AdminGuard),
110
+ (0, swagger_1.ApiOperation)({
111
+ summary: 'Get bridge metadata',
112
+ description: 'Returns metadata for a specific bridge',
113
+ }),
114
+ (0, swagger_1.ApiParam)({
115
+ name: 'username',
116
+ description: 'Bridge username in MAC format (e.g., "0E:DD:15:2B:48:AA" or "0EDD152B48AA")',
117
+ }),
118
+ (0, swagger_1.ApiQuery)({
119
+ name: 'type',
120
+ enum: ['hap', 'matter'],
121
+ description: 'Bridge type to query',
122
+ required: false,
123
+ }),
124
+ (0, common_1.Get)(':username/metadata'),
125
+ __param(0, (0, common_1.Param)('username')),
126
+ __param(1, (0, common_1.Query)('type')),
127
+ __metadata("design:type", Function),
128
+ __metadata("design:paramtypes", [String, String]),
129
+ __metadata("design:returntype", Promise)
130
+ ], BridgesController.prototype, "getBridgeMetadata", null);
131
+ __decorate([
132
+ (0, common_1.UseGuards)(admin_guard_1.AdminGuard),
133
+ (0, swagger_1.ApiOperation)({
134
+ summary: 'Get all bridge metadata',
135
+ description: 'Returns metadata for all bridges, optionally filtered by type',
136
+ }),
137
+ (0, swagger_1.ApiQuery)({
138
+ name: 'type',
139
+ enum: ['hap', 'matter'],
140
+ description: 'Optional filter by bridge type',
141
+ required: false,
142
+ }),
143
+ (0, common_1.Get)('metadata'),
144
+ __param(0, (0, common_1.Query)('type')),
145
+ __metadata("design:type", Function),
146
+ __metadata("design:paramtypes", [String]),
147
+ __metadata("design:returntype", Promise)
148
+ ], BridgesController.prototype, "getAllBridgeMetadata", null);
149
+ exports.BridgesController = BridgesController = __decorate([
150
+ (0, swagger_1.ApiTags)('Bridges'),
151
+ (0, swagger_1.ApiBearerAuth)(),
152
+ (0, common_1.UseGuards)((0, passport_1.AuthGuard)()),
153
+ (0, common_1.Controller)('bridges'),
154
+ __metadata("design:paramtypes", [bridges_service_1.BridgesService])
155
+ ], BridgesController);
156
+ //# sourceMappingURL=bridges.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges.controller.js","sourceRoot":"","sources":["../../../src/modules/bridges/bridges.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ export type BridgeType = 'hap' | 'matter';
2
+ export type BridgeStatus = 'pending' | 'ok' | 'down';
3
+ export interface BridgeCommissioningInfo {
4
+ type: BridgeType;
5
+ pin?: string;
6
+ setupUri?: string;
7
+ commissioned: boolean;
8
+ port?: number;
9
+ serialNumber?: string;
10
+ displayName?: string;
11
+ username?: string;
12
+ setupID?: string;
13
+ category?: number;
14
+ _category?: string;
15
+ configVersion?: number;
16
+ lastFirmwareVersion?: string;
17
+ _id?: string;
18
+ _main?: boolean;
19
+ passcode?: number;
20
+ discriminator?: number;
21
+ manualPairingCode?: string;
22
+ qrCode?: string;
23
+ matterEnabled?: boolean;
24
+ }
25
+ export interface BridgeMetadata {
26
+ type: BridgeType;
27
+ status: BridgeStatus;
28
+ identifier: string;
29
+ username?: string;
30
+ port?: number;
31
+ pin?: string;
32
+ setupUri?: string;
33
+ commissioned?: boolean;
34
+ name: string;
35
+ plugin: string;
36
+ pid?: number;
37
+ manuallyStopped?: boolean;
38
+ serialNumber?: string;
39
+ deviceCount?: number;
40
+ paired?: boolean | null;
41
+ qrCode?: string;
42
+ manualPairingCode?: string;
43
+ passcode?: number;
44
+ discriminator?: number;
45
+ matterEnabled?: boolean;
46
+ companionBridgeConfig?: {
47
+ type: BridgeType;
48
+ port?: number;
49
+ name?: string;
50
+ identifier?: string;
51
+ };
52
+ }
53
+ export interface BridgeConfig {
54
+ matterOnly?: boolean;
55
+ port?: number;
56
+ name?: string;
57
+ username?: string;
58
+ pin?: string;
59
+ setupID?: string;
60
+ manufacturer?: string;
61
+ model?: string;
62
+ firmwareRevision?: string;
63
+ debugModeEnabled?: boolean;
64
+ env?: {
65
+ DEBUG?: string;
66
+ NODE_OPTIONS?: string;
67
+ };
68
+ matter?: {
69
+ port?: number;
70
+ name?: string;
71
+ };
72
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=bridges.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges.interfaces.js","sourceRoot":"","sources":["../../../src/modules/bridges/bridges.interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare class BridgesModule {
2
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.BridgesModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const passport_1 = require("@nestjs/passport");
12
+ const logger_module_1 = require("../../core/logger/logger.module");
13
+ const matter_bridges_module_1 = require("../matter-bridges/matter-bridges.module");
14
+ const server_module_1 = require("../server/server.module");
15
+ const bridges_controller_1 = require("./bridges.controller");
16
+ const bridges_service_1 = require("./bridges.service");
17
+ let BridgesModule = class BridgesModule {
18
+ };
19
+ exports.BridgesModule = BridgesModule;
20
+ exports.BridgesModule = BridgesModule = __decorate([
21
+ (0, common_1.Module)({
22
+ imports: [
23
+ passport_1.PassportModule.register({ defaultStrategy: 'jwt' }),
24
+ logger_module_1.LoggerModule,
25
+ server_module_1.ServerModule,
26
+ matter_bridges_module_1.MatterBridgesModule,
27
+ ],
28
+ controllers: [
29
+ bridges_controller_1.BridgesController,
30
+ ],
31
+ providers: [
32
+ bridges_service_1.BridgesService,
33
+ ],
34
+ exports: [
35
+ bridges_service_1.BridgesService,
36
+ ],
37
+ })
38
+ ], BridgesModule);
39
+ //# sourceMappingURL=bridges.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges.module.js","sourceRoot":"","sources":["../../../src/modules/bridges/bridges.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAuC;AACvC,+CAAiD;AAEjD,mEAA8D;AAC9D,mFAA6E;AAC7E,2DAAsD;AACtD,6DAAwD;AACxD,uDAAkD;AA0B3C,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IAjBzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,yBAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;YACnD,4BAAY;YACZ,4BAAY;YACZ,2CAAmB;SACpB;QACD,WAAW,EAAE;YACX,sCAAiB;SAClB;QACD,SAAS,EAAE;YACT,gCAAc;SACf;QACD,OAAO,EAAE;YACP,gCAAc;SACf;KACF,CAAC;GACW,aAAa,CAAG"}
@@ -0,0 +1,16 @@
1
+ import type { BridgeCommissioningInfo, BridgeMetadata } from './bridges.interfaces';
2
+ import { MatterBridgesService } from '../matter-bridges/matter-bridges.service';
3
+ import { ServerService } from '../server/server.service';
4
+ export declare class BridgesService {
5
+ private readonly serverService;
6
+ private readonly matterBridgesService;
7
+ constructor(serverService: ServerService, matterBridgesService: MatterBridgesService);
8
+ getCommissioningInfo(username: string, type?: 'hap' | 'matter'): Promise<BridgeCommissioningInfo>;
9
+ private getHapCommissioningInfo;
10
+ private getMatterCommissioningInfo;
11
+ deleteBridge(username: string, type: 'hap' | 'matter' | 'both', resetPairingInfo?: boolean): Promise<{
12
+ ok: boolean;
13
+ }>;
14
+ getBridgeMetadata(username: string, type: 'hap' | 'matter'): Promise<BridgeMetadata | null>;
15
+ getAllBridgeMetadata(type?: 'hap' | 'matter'): Promise<BridgeMetadata[]>;
16
+ }
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BridgesService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const matter_bridges_service_1 = require("../matter-bridges/matter-bridges.service");
15
+ const server_service_1 = require("../server/server.service");
16
+ const bridge_identifier_util_1 = require("./bridge-identifier.util");
17
+ let BridgesService = class BridgesService {
18
+ constructor(serverService, matterBridgesService) {
19
+ this.serverService = serverService;
20
+ this.matterBridgesService = matterBridgesService;
21
+ }
22
+ async getCommissioningInfo(username, type = 'hap') {
23
+ const normalizedUsername = bridge_identifier_util_1.BridgeIdentifierUtil.normalizeUsername(username);
24
+ if (type === 'hap') {
25
+ return this.getHapCommissioningInfo(normalizedUsername);
26
+ }
27
+ else {
28
+ return this.getMatterCommissioningInfo(normalizedUsername);
29
+ }
30
+ }
31
+ async getHapCommissioningInfo(username) {
32
+ const id = bridge_identifier_util_1.BridgeIdentifierUtil.sanitizeForEndpoint(username);
33
+ try {
34
+ const device = await this.serverService.getDevicePairingById(id);
35
+ return {
36
+ type: 'hap',
37
+ pin: device.pincode,
38
+ setupUri: device._setupCode,
39
+ commissioned: device._isPaired,
40
+ port: device.port,
41
+ serialNumber: device.serialNumber,
42
+ displayName: device.displayName,
43
+ username: device._username || username,
44
+ setupID: device.setupID,
45
+ category: device.category,
46
+ _category: device._category,
47
+ configVersion: device.configVersion,
48
+ lastFirmwareVersion: device.lastFirmwareVersion,
49
+ _id: device._id,
50
+ _main: device._main,
51
+ };
52
+ }
53
+ catch (e) {
54
+ if (e instanceof common_1.NotFoundException) {
55
+ throw new common_1.NotFoundException(`HAP bridge with username ${username} not found`);
56
+ }
57
+ throw e;
58
+ }
59
+ }
60
+ async getMatterCommissioningInfo(username) {
61
+ const identifier = bridge_identifier_util_1.BridgeIdentifierUtil.getMatterIdentifier(username);
62
+ try {
63
+ const info = await this.matterBridgesService.getCommissioningInfo(identifier);
64
+ return {
65
+ type: 'matter',
66
+ pin: info.pin,
67
+ setupUri: info.setupUri,
68
+ commissioned: info.commissioned,
69
+ port: info.port,
70
+ serialNumber: info.serialNumber,
71
+ username,
72
+ passcode: info.passcode,
73
+ discriminator: info.discriminator,
74
+ manualPairingCode: info.manualPairingCode,
75
+ qrCode: info.qrCode,
76
+ matterEnabled: info.matterEnabled,
77
+ };
78
+ }
79
+ catch (e) {
80
+ throw new common_1.NotFoundException(`Matter bridge with username ${username} not found`);
81
+ }
82
+ }
83
+ async deleteBridge(username, type, resetPairingInfo = false) {
84
+ const normalizedUsername = bridge_identifier_util_1.BridgeIdentifierUtil.normalizeUsername(username);
85
+ if (type === 'hap' || type === 'both') {
86
+ const id = bridge_identifier_util_1.BridgeIdentifierUtil.sanitizeForEndpoint(normalizedUsername);
87
+ await this.serverService.deleteDevicePairing(id, resetPairingInfo);
88
+ }
89
+ if (type === 'matter' || type === 'both') {
90
+ const identifier = bridge_identifier_util_1.BridgeIdentifierUtil.getMatterIdentifier(normalizedUsername);
91
+ await this.serverService.deleteMatterBridge(identifier);
92
+ }
93
+ return { ok: true };
94
+ }
95
+ async getBridgeMetadata(username, type) {
96
+ const normalizedUsername = bridge_identifier_util_1.BridgeIdentifierUtil.normalizeUsername(username);
97
+ if (type === 'matter') {
98
+ const identifier = bridge_identifier_util_1.BridgeIdentifierUtil.getMatterIdentifier(normalizedUsername);
99
+ const bridge = await this.matterBridgesService.getMatterBridge(identifier);
100
+ if (!bridge) {
101
+ return null;
102
+ }
103
+ return bridge;
104
+ }
105
+ else {
106
+ const id = bridge_identifier_util_1.BridgeIdentifierUtil.sanitizeForEndpoint(normalizedUsername);
107
+ try {
108
+ const device = await this.serverService.getDevicePairingById(id);
109
+ return {
110
+ type: 'hap',
111
+ status: 'ok',
112
+ identifier: id,
113
+ username: device._username || normalizedUsername,
114
+ port: device.port,
115
+ pin: device.pincode,
116
+ setupUri: device._setupCode,
117
+ commissioned: device._isPaired,
118
+ name: device.name || device.displayName,
119
+ plugin: '',
120
+ serialNumber: device.serialNumber,
121
+ paired: device._isPaired,
122
+ };
123
+ }
124
+ catch (e) {
125
+ if (e instanceof common_1.NotFoundException) {
126
+ return null;
127
+ }
128
+ throw e;
129
+ }
130
+ }
131
+ }
132
+ async getAllBridgeMetadata(type) {
133
+ if (type === 'matter') {
134
+ return await this.matterBridgesService.getMatterBridges();
135
+ }
136
+ else if (type === 'hap') {
137
+ const pairings = await this.serverService.getDevicePairings();
138
+ return pairings.map((device) => ({
139
+ type: 'hap',
140
+ status: 'ok',
141
+ identifier: device._id,
142
+ username: device._username,
143
+ port: device.port,
144
+ pin: device.pincode,
145
+ setupUri: device._setupCode,
146
+ commissioned: device._isPaired,
147
+ name: device.name || device.displayName,
148
+ plugin: '',
149
+ serialNumber: device.serialNumber,
150
+ paired: device._isPaired,
151
+ }));
152
+ }
153
+ else {
154
+ const [hapBridges, matterBridges] = await Promise.all([
155
+ this.getAllBridgeMetadata('hap'),
156
+ this.getAllBridgeMetadata('matter'),
157
+ ]);
158
+ return [...hapBridges, ...matterBridges];
159
+ }
160
+ }
161
+ };
162
+ exports.BridgesService = BridgesService;
163
+ exports.BridgesService = BridgesService = __decorate([
164
+ (0, common_1.Injectable)(),
165
+ __metadata("design:paramtypes", [server_service_1.ServerService,
166
+ matter_bridges_service_1.MatterBridgesService])
167
+ ], BridgesService);
168
+ //# sourceMappingURL=bridges.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges.service.js","sourceRoot":"","sources":["../../../src/modules/bridges/bridges.service.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { ChildBridgesService } from './child-bridges.service';
3
3
  export declare class ChildBridgesGateway {
4
4
  private childBridgesService;
5
5
  constructor(childBridgesService: ChildBridgesService);
6
- getChildBridges(): Promise<unknown>;
6
+ getChildBridges(): Promise<WsException | import("./child-bridges.interfaces").ChildBridgeMetadata[]>;
7
7
  watchChildBridgeStatus(client: any): Promise<void>;
8
8
  restartChildBridge(client: any, payload: any): Promise<WsException | {
9
9
  ok: boolean;
@@ -0,0 +1,7 @@
1
+ import type { BridgeCommissioningInfo, BridgeMetadata } from '../bridges/bridges.interfaces';
2
+ export interface ChildBridgeMetadata extends Omit<BridgeMetadata, 'type'> {
3
+ type: 'hap';
4
+ }
5
+ export interface ChildBridgeCommissioningInfo extends Omit<BridgeCommissioningInfo, 'type'> {
6
+ type?: 'hap';
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=child-bridges.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-bridges.interfaces.js","sourceRoot":"","sources":["../../../src/modules/child-bridges/child-bridges.interfaces.ts"],"names":[],"mappings":""}
@@ -1,10 +1,11 @@
1
+ import type { ChildBridgeMetadata } from './child-bridges.interfaces';
1
2
  import { HomebridgeIpcService } from '../../core/homebridge-ipc/homebridge-ipc.service';
2
3
  import { AccessoriesService } from '../accessories/accessories.service';
3
4
  export declare class ChildBridgesService {
4
5
  private readonly homebridgeIpcService;
5
6
  private readonly accessoriesService;
6
7
  constructor(homebridgeIpcService: HomebridgeIpcService, accessoriesService: AccessoriesService);
7
- getChildBridges(): Promise<unknown>;
8
+ getChildBridges(): Promise<ChildBridgeMetadata[]>;
8
9
  watchChildBridgeStatus(client: any): Promise<void>;
9
10
  stopStartRestartChildBridge(event: 'startChildBridge' | 'stopChildBridge' | 'restartChildBridge', deviceId: string): {
10
11
  ok: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"child-bridges.service.js","sourceRoot":"","sources":["../../../src/modules/child-bridges/child-bridges.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2C;AAE3C,6FAAuF;AACvF,4EAAuE;AAGhE,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YACmB,oBAA0C,EAC1C,kBAAsC;QADtC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,uBAAkB,GAAlB,kBAAkB,CAAoB;IACtD,CAAC;IAKG,KAAK,CAAC,eAAe;QAC1B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,4BAA4B,EAAE,6BAA6B,CAAC,CAAA;QACrH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAOM,KAAK,CAAC,sBAAsB,CAAC,MAAM;QACxC,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAA;QACjD,CAAC,CAAA;QAED,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAA;QAC1F,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAA;QAGjE,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;YAChC,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA;YACvC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAA;YACpD,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAA;YAC7E,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAA;QAC5F,CAAC,CAAA;QAED,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAA;QACpD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAClC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3C,CAAC;IAQM,2BAA2B,CAAC,KAAoE,EAAE,QAAgB;QACvH,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC3B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAEtD,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAA;QAC7C,CAAC,EAAE,IAAI,CAAC,CAAA;QAER,OAAO;YACL,EAAE,EAAE,IAAI;SACT,CAAA;IACH,CAAC;IAKM,kBAAkB,CAAC,QAAgB;QACxC,OAAO,IAAI,CAAC,2BAA2B,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAA;IACzE,CAAC;IAKM,eAAe,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;IACtE,CAAC;IAKM,gBAAgB,CAAC,QAAgB;QACtC,OAAO,IAAI,CAAC,2BAA2B,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAA;IACzE,CAAC;CACF,CAAA;AAtFY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAG8B,6CAAoB;QACtB,wCAAkB;GAH9C,mBAAmB,CAsF/B"}
1
+ {"version":3,"file":"child-bridges.service.js","sourceRoot":"","sources":["../../../src/modules/child-bridges/child-bridges.service.ts"],"names":[],"mappings":"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"}
@@ -13,5 +13,6 @@ export declare class MatterBridgesController {
13
13
  name?: string;
14
14
  commissioned: boolean;
15
15
  username?: string;
16
+ serialNumber?: string;
16
17
  }[]>;
17
18
  }