homebridge-config-ui-x 5.7.0 → 5.7.1-alpha.1

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 (158) hide show
  1. package/CHANGELOG.md +14 -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 +5 -0
  5. package/dist/core/auth/auth.controller.js +13 -0
  6. package/dist/core/auth/auth.controller.js.map +1 -1
  7. package/dist/core/auth/auth.service.d.ts +1 -0
  8. package/dist/core/auth/auth.service.js +24 -0
  9. package/dist/core/auth/auth.service.js.map +1 -1
  10. package/dist/core/config/config.interfaces.d.ts +14 -3
  11. package/dist/core/config/config.service.d.ts +6 -0
  12. package/dist/core/config/config.service.js +6 -0
  13. package/dist/core/config/config.service.js.map +1 -1
  14. package/dist/core/config/config.startup.js +12 -0
  15. package/dist/core/config/config.startup.js.map +1 -1
  16. package/dist/core/homebridge-ipc/homebridge-ipc.service.js +8 -0
  17. package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
  18. package/dist/core/spa/spa-html.service.d.ts +5 -0
  19. package/dist/core/spa/spa-html.service.js +38 -0
  20. package/dist/core/spa/spa-html.service.js.map +1 -0
  21. package/dist/core/spa/spa.filter.d.ts +3 -0
  22. package/dist/core/spa/spa.filter.js +21 -2
  23. package/dist/core/spa/spa.filter.js.map +1 -1
  24. package/dist/globalDefaults.js +3 -0
  25. package/dist/globalDefaults.js.map +1 -1
  26. package/dist/main.js +61 -3
  27. package/dist/main.js.map +1 -1
  28. package/dist/modules/child-bridges/child-bridges.controller.d.ts +35 -0
  29. package/dist/modules/child-bridges/child-bridges.controller.js +284 -0
  30. package/dist/modules/child-bridges/child-bridges.controller.js.map +1 -0
  31. package/dist/modules/child-bridges/child-bridges.gateway.d.ts +14 -1
  32. package/dist/modules/child-bridges/child-bridges.gateway.js +67 -1
  33. package/dist/modules/child-bridges/child-bridges.gateway.js.map +1 -1
  34. package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +45 -0
  35. package/dist/modules/child-bridges/child-bridges.interfaces.js +3 -0
  36. package/dist/modules/child-bridges/child-bridges.interfaces.js.map +1 -0
  37. package/dist/modules/child-bridges/child-bridges.module.js +8 -0
  38. package/dist/modules/child-bridges/child-bridges.module.js.map +1 -1
  39. package/dist/modules/child-bridges/child-bridges.service.d.ts +40 -8
  40. package/dist/modules/child-bridges/child-bridges.service.js +345 -10
  41. package/dist/modules/child-bridges/child-bridges.service.js.map +1 -1
  42. package/dist/modules/config-editor/config-editor.service.js +7 -0
  43. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  44. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +1 -1
  45. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  46. package/dist/modules/matter-bridges/matter-bridges.gateway.d.ts +22 -0
  47. package/dist/modules/matter-bridges/matter-bridges.gateway.js +170 -0
  48. package/dist/modules/matter-bridges/matter-bridges.gateway.js.map +1 -0
  49. package/dist/modules/matter-bridges/matter-bridges.interfaces.d.ts +59 -0
  50. package/dist/modules/matter-bridges/matter-bridges.interfaces.js +10 -0
  51. package/dist/modules/matter-bridges/matter-bridges.interfaces.js.map +1 -0
  52. package/dist/modules/matter-bridges/matter-bridges.module.d.ts +2 -0
  53. package/dist/modules/matter-bridges/matter-bridges.module.js +37 -0
  54. package/dist/modules/matter-bridges/matter-bridges.module.js.map +1 -0
  55. package/dist/modules/matter-bridges/matter-bridges.service.d.ts +31 -0
  56. package/dist/modules/matter-bridges/matter-bridges.service.js +146 -0
  57. package/dist/modules/matter-bridges/matter-bridges.service.js.map +1 -0
  58. package/dist/modules/plugins/plugins.service.js +33 -0
  59. package/dist/modules/plugins/plugins.service.js.map +1 -1
  60. package/dist/modules/server/server.controller.d.ts +9 -6
  61. package/dist/modules/server/server.controller.js +33 -2
  62. package/dist/modules/server/server.controller.js.map +1 -1
  63. package/dist/modules/server/server.module.js +1 -1
  64. package/dist/modules/server/server.module.js.map +1 -1
  65. package/dist/modules/status/status.controller.d.ts +1 -1
  66. package/dist/modules/status/status.controller.js +3 -1
  67. package/dist/modules/status/status.controller.js.map +1 -1
  68. package/package.json +3 -2
  69. package/public/assets/hap.svg +6 -0
  70. package/public/assets/matter.svg +8 -0
  71. package/public/{chunk-RI7NDYXE.js → chunk-3EEMCOXX.js} +1 -1
  72. package/public/{chunk-NSQLP4XQ.js → chunk-3SPYAVYC.js} +1 -1
  73. package/public/{chunk-ME745R23.js → chunk-45MRBWTN.js} +1 -1
  74. package/public/{chunk-UOWHL3JS.js → chunk-4THME2AO.js} +1 -1
  75. package/public/{chunk-52HVORSV.js → chunk-5B4RGP7P.js} +1 -1
  76. package/public/chunk-5NHNQSBY.js +1 -0
  77. package/public/{chunk-FNES7NAZ.js → chunk-65BC6OEY.js} +1 -1
  78. package/public/{chunk-KCDVFJER.js → chunk-6UJVBU6Q.js} +1 -1
  79. package/public/{chunk-EACBJMOR.js → chunk-6XONIZJH.js} +1 -1
  80. package/public/chunk-6YMQTAOF.js +19 -0
  81. package/public/{chunk-BYQX2GRS.js → chunk-7GRKHAP7.js} +1 -1
  82. package/public/{chunk-7WOXKKE2.js → chunk-7UFFCHMH.js} +1 -1
  83. package/public/chunk-APXVBISC.js +49 -0
  84. package/public/{chunk-WSKDHSB5.js → chunk-BEUIEMBU.js} +1 -1
  85. package/public/{chunk-WXRQQ5BD.js → chunk-BV3UDQFS.js} +1 -1
  86. package/public/{chunk-R4FPIAYB.js → chunk-C6PVSB3L.js} +1 -1
  87. package/public/{chunk-WBIGPPVT.js → chunk-CEOXBLCW.js} +4 -4
  88. package/public/chunk-CEPCEO3W.js +1 -0
  89. package/public/{chunk-ANSL3J73.js → chunk-CTZDKMFO.js} +1 -1
  90. package/public/chunk-DCOG5S65.js +1 -0
  91. package/public/{chunk-DPCPSYPY.js → chunk-DIZQSD54.js} +1 -1
  92. package/public/chunk-DOUSYB6L.js +1 -0
  93. package/public/{chunk-RV2XRE2D.js → chunk-DWGESJFL.js} +1 -1
  94. package/public/{chunk-AKAZC37X.js → chunk-ECLVDJ5G.js} +1 -1
  95. package/public/{chunk-ILQ7SL7D.js → chunk-EL6RIMGW.js} +2 -2
  96. package/public/{chunk-ARXKMFEX.js → chunk-EO2OFTYL.js} +1 -1
  97. package/public/{chunk-FG3G2643.js → chunk-ERP7Y7CZ.js} +1 -1
  98. package/public/{chunk-KM452HFG.js → chunk-ES2W3HQE.js} +1 -1
  99. package/public/{chunk-V7LEKJVQ.js → chunk-F6BJ5XZH.js} +1 -1
  100. package/public/{chunk-VEV7AY3U.js → chunk-GPG64N53.js} +1 -1
  101. package/public/{chunk-DLCW3FCF.js → chunk-HSE662OB.js} +1 -1
  102. package/public/chunk-IU2R7ORW.js +1 -0
  103. package/public/{chunk-TAQAYILQ.js → chunk-JNGSK3ZR.js} +1 -1
  104. package/public/{chunk-SJJTZODI.js → chunk-JR3E32OK.js} +1 -1
  105. package/public/chunk-K3CI5ZO2.js +1 -0
  106. package/public/{chunk-ALRENZKI.js → chunk-KPR57544.js} +1 -1
  107. package/public/chunk-L74KRCJX.js +1 -0
  108. package/public/{chunk-F4ZBFEVD.js → chunk-LIZOYLJA.js} +1 -1
  109. package/public/{chunk-6XQFII2E.js → chunk-LPC6ZQZT.js} +1 -1
  110. package/public/{chunk-XUR2KE5E.js → chunk-M6BP6HSJ.js} +1 -1
  111. package/public/{chunk-NGSNZWF2.js → chunk-MD6P4NXL.js} +1 -1
  112. package/public/{chunk-LI3GXABA.js → chunk-OAZVGJPO.js} +1 -1
  113. package/public/{chunk-BSXL4VI2.js → chunk-OHIFXMDK.js} +1 -1
  114. package/public/chunk-OR5TLS5G.js +1 -0
  115. package/public/{chunk-M3XBSZDS.js → chunk-Q62OVHKR.js} +1 -1
  116. package/public/{chunk-5GPAOI75.js → chunk-QZCKU4E6.js} +1 -1
  117. package/public/{chunk-I3CM52HA.js → chunk-RX2M2DUA.js} +1 -1
  118. package/public/{chunk-66FBS25N.js → chunk-S3ACQCZH.js} +1 -1
  119. package/public/{chunk-NO6P5533.js → chunk-S3PEAO7D.js} +1 -1
  120. package/public/{chunk-TSJSYPRO.js → chunk-S6YTOEAT.js} +1 -1
  121. package/public/{chunk-AK5OP2BS.js → chunk-SGO34VYC.js} +1 -1
  122. package/public/{chunk-DJ6PGGNV.js → chunk-SO2Y7JSS.js} +1 -1
  123. package/public/chunk-SPH2NNMZ.js +4 -0
  124. package/public/{chunk-QOZ5D7SF.js → chunk-SXS3TPZP.js} +1 -1
  125. package/public/{chunk-JPRQZUJ4.js → chunk-TTXUZ63M.js} +1 -1
  126. package/public/{chunk-N45RSOWT.js → chunk-TXXOGRVJ.js} +1 -1
  127. package/public/{chunk-DQZAZG2F.js → chunk-U6DDIXEG.js} +1 -1
  128. package/public/chunk-UTUB67Y5.js +1 -0
  129. package/public/{chunk-ZQRDEGPP.js → chunk-UXTKBDMZ.js} +1 -1
  130. package/public/chunk-V5XBUXNN.js +1 -0
  131. package/public/chunk-VQGLVRRI.js +1 -0
  132. package/public/{chunk-UG5ZE6JE.js → chunk-WCZ6FM7L.js} +1 -1
  133. package/public/{chunk-P4SNIDEK.js → chunk-WTQ5JBLR.js} +1 -1
  134. package/public/{chunk-LVANZD6P.js → chunk-XEJOPOUU.js} +1 -1
  135. package/public/{chunk-2HHIHTIF.js → chunk-XG7WXUZ2.js} +1 -1
  136. package/public/chunk-Z2GZQLTV.js +16 -0
  137. package/public/{chunk-A2TKBIDM.js → chunk-ZU4Z7GGL.js} +1 -1
  138. package/public/index.html +2 -2
  139. package/public/main-JRFJSFGM.js +1 -0
  140. package/public/media/hap-24356SU3.svg +6 -0
  141. package/public/media/matter-P563JGDL.svg +8 -0
  142. package/public/{styles-BYCPUTDK.css → styles-AQTMFMEL.css} +1 -1
  143. package/public/chunk-EB6MB2VJ.js +0 -1
  144. package/public/chunk-EFVV2S7X.js +0 -1
  145. package/public/chunk-FS5CQPMN.js +0 -1
  146. package/public/chunk-H5PLA5CN.js +0 -1
  147. package/public/chunk-I4JRMIU7.js +0 -1
  148. package/public/chunk-IZZICZHP.js +0 -1
  149. package/public/chunk-OLVQZBFA.js +0 -1
  150. package/public/chunk-Q7ANBLGJ.js +0 -4
  151. package/public/chunk-RXHQ7R2N.js +0 -1
  152. package/public/chunk-S36VYQXO.js +0 -16
  153. package/public/chunk-TJFT4ETV.js +0 -19
  154. package/public/chunk-VWQULADU.js +0 -1
  155. package/public/chunk-XCHKRI2H.js +0 -1
  156. package/public/chunk-XNQ5LBVZ.js +0 -49
  157. package/public/chunk-XPFXM5HW.js +0 -1
  158. package/public/main-LAB4VW6X.js +0 -1
package/dist/main.js CHANGED
@@ -12,11 +12,13 @@ const common_1 = require("@nestjs/common");
12
12
  const core_1 = require("@nestjs/core");
13
13
  const platform_fastify_1 = require("@nestjs/platform-fastify");
14
14
  const swagger_1 = require("@nestjs/swagger");
15
+ const bonjour_service_1 = require("bonjour-service");
15
16
  const fs_extra_1 = require("fs-extra");
16
17
  const app_module_1 = require("./app.module");
17
18
  const config_service_1 = require("./core/config/config.service");
18
19
  const config_startup_1 = require("./core/config/config.startup");
19
20
  const logger_service_1 = require("./core/logger/logger.service");
21
+ const spa_html_service_1 = require("./core/spa/spa-html.service");
20
22
  const spa_filter_1 = require("./core/spa/spa.filter");
21
23
  require("./self-check");
22
24
  require("./globalDefaults");
@@ -71,7 +73,19 @@ async function bootstrap() {
71
73
  });
72
74
  const configService = app.get(config_service_1.ConfigService);
73
75
  const logger = app.get(logger_service_1.Logger);
74
- app.getHttpAdapter().get('/', async (req, res) => {
76
+ let realWebroot = startupConfig.webroot || '';
77
+ try {
78
+ await spa_html_service_1.SpaHtmlService.updateIndexHtml(startupConfig.webroot);
79
+ node_process_1.default.env.UIX_ORIGINAL_WEBROOT = startupConfig.webroot;
80
+ configService.setOriginalWebroot(startupConfig.webroot);
81
+ }
82
+ catch (error) {
83
+ logger.warn(`Could not update index.html with webroot ${startupConfig.webroot}: ${error.message}`);
84
+ realWebroot = '';
85
+ node_process_1.default.env.UIX_ORIGINAL_WEBROOT = globalThis.webroot.errorCode;
86
+ configService.setOriginalWebroot(globalThis.webroot.errorCode);
87
+ }
88
+ app.getHttpAdapter().get(realWebroot || '/', async (req, res) => {
75
89
  res.type('text/html');
76
90
  res.header('Cache-Control', 'no-cache, no-store, must-revalidate');
77
91
  res.header('Pragma', 'no-cache');
@@ -83,8 +97,9 @@ async function bootstrap() {
83
97
  setHeaders(res) {
84
98
  res.setHeader('Cache-Control', 'public,max-age=31536000,immutable');
85
99
  },
100
+ ...realWebroot ? { prefix: realWebroot } : {},
86
101
  });
87
- app.setGlobalPrefix('/api');
102
+ app.setGlobalPrefix(`${realWebroot || ''}/api`);
88
103
  app.enableCors({
89
104
  origin: ['http://localhost:8080', 'http://localhost:4200'],
90
105
  methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
@@ -107,10 +122,53 @@ async function bootstrap() {
107
122
  })
108
123
  .build();
109
124
  const document = swagger_1.SwaggerModule.createDocument(app, options);
110
- swagger_1.SwaggerModule.setup('swagger', app, document);
125
+ swagger_1.SwaggerModule.setup(`${realWebroot}/swagger`.replace(/^\//, ''), app, document);
111
126
  app.useGlobalFilters(new spa_filter_1.SpaFilter());
112
127
  logger.warn(`Homebridge UI v${configService.package.version} is listening on ${startupConfig.host} port ${configService.ui.port}.`);
113
128
  await app.listen(configService.ui.port, startupConfig.host);
129
+ let bonjour = null;
130
+ if (configService.ui.enableMdnsAdvertise) {
131
+ try {
132
+ bonjour = new bonjour_service_1.Bonjour();
133
+ const serviceName = configService.homebridgeConfig?.bridge?.name
134
+ ? configService.homebridgeConfig.bridge.name
135
+ : 'Homebridge UI';
136
+ const service = bonjour.publish({
137
+ name: serviceName,
138
+ type: 'http',
139
+ port: configService.ui.port,
140
+ host: startupConfig.host === '0.0.0.0' || startupConfig.host === '::' ? undefined : startupConfig.host,
141
+ txt: {
142
+ path: realWebroot || '/',
143
+ version: configService.package.version,
144
+ https: startupConfig.httpsOptions ? 'true' : 'false',
145
+ },
146
+ });
147
+ logger.log(`Homebridge UI HTTP service advertised via mDNS as "${service.name}" on port ${configService.ui.port}`);
148
+ }
149
+ catch (error) {
150
+ logger.error('Failed to advertise mDNS service:', error);
151
+ }
152
+ }
153
+ const handleShutdown = (signal) => {
154
+ logger.log(`Received ${signal}, starting graceful shutdown...`);
155
+ if (bonjour) {
156
+ try {
157
+ logger.log('Shutting down mDNS service advertising...');
158
+ bonjour.unpublishAll();
159
+ bonjour.destroy();
160
+ bonjour = null;
161
+ }
162
+ catch (error) {
163
+ logger.error('Error during mDNS cleanup:', error);
164
+ }
165
+ }
166
+ app.close().finally(() => {
167
+ node_process_1.default.exit(0);
168
+ });
169
+ };
170
+ node_process_1.default.once('SIGINT', () => handleShutdown('SIGINT'));
171
+ node_process_1.default.once('SIGTERM', () => handleShutdown('SIGTERM'));
114
172
  return app;
115
173
  }
116
174
  exports.app = bootstrap();
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;;AAGA,yCAAmC;AACnC,gEAAkC;AAElC,6DAAoC;AACpC,mEAAiD;AACjD,2CAA+C;AAC/C,uCAA0C;AAC1C,+DAAyD;AACzD,6CAAgE;AAChE,qDAAyC;AACzC,uCAAmC;AAEnC,6CAAwC;AACxC,iEAA4D;AAC5D,iEAA+D;AAC/D,iEAAqD;AACrD,kEAA4D;AAC5D,sDAAiD;AAEjD,wBAAqB;AACrB,4BAAyB;AAEzB,uFAAmF;AAA1E,8HAAA,oBAAoB,OAAA;AAE7B,sBAAO,CAAC,GAAG,CAAC,aAAa,GAAG,sBAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,IAAA,mBAAO,EAAC,SAAS,EAAE,KAAK,CAAC,CAAA;AAE3F,KAAK,UAAU,SAAS;IACtB,MAAM,aAAa,GAAG,MAAM,IAAA,iCAAgB,GAAE,CAAA;IAG9C,MAAM,QAAQ,GAAG,IAAI,iCAAc,CAAC;QAClC,KAAK,EAAE,aAAa,CAAC,YAAY;QACjC,MAAM,EAAE,aAAa,CAAC,KAAK,IAAI,KAAK;KACrC,CAAC,CAAA;IAGF,QAAQ,CAAC,QAAQ,CAAC,mBAAgB,EAAE;QAClC,MAAM,EAAE;YACN,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa;SAC1C;KACF,CAAC,CAAA;IAGF,QAAQ,CAAC,QAAQ,CAAC,gBAAM,EAAE;QACxB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE;YACd,MAAM,EAAE,aAAa;SACtB;QACD,yBAAyB,EAAE,KAAK;QAChC,uBAAuB,EAAE,KAAK;QAC9B,yBAAyB,EAAE,KAAK;QAChC,qBAAqB,EAAE;YACrB,UAAU,EAAE;gBACV,UAAU,EAAE,CAAC,UAAU,CAAC;gBACxB,SAAS,EAAE,CAAC,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,CAAC;gBAC/D,QAAQ,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC;gBAC3C,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,mCAAmC,EAAE,2CAA2C,CAAC;gBAC/G,UAAU,EAAE,CAAC,UAAU,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,CAAC,GAAG,EAAE,EAAE;wBAC/F,OAAO,SAAS,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC,aAAa,IAAI,EAAE,EAAE,CAAA;oBAClG,CAAC,CAAC;gBACF,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,kCAAkC,CAAC;gBACnE,aAAa,EAAE,IAAI;gBACnB,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,IAAI;gBACb,uBAAuB,EAAE,IAAI;gBAC7B,oBAAoB,EAAE,IAAI;aAC3B;SACF;KACF,CAAC,CAAA;IAGF,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAClC,sBAAS,EACT,QAAQ,EACR;QACE,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,uBAAM,EAAE,CAAC,CAAC,CAAC,KAAK;QAClD,YAAY,EAAE,aAAa,CAAC,YAAY;KACzC,CACF,CAAA;IAED,MAAM,aAAa,GAAkB,GAAG,CAAC,GAAG,CAAC,8BAAa,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAW,GAAG,CAAC,GAAG,CAAC,uBAAM,CAAC,CAAA;IAGtC,IAAI,WAAW,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAA;IAC7C,IAAI,CAAC;QACH,MAAM,iCAAc,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC3D,sBAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,aAAa,CAAC,OAAO,CAAA;QACxD,aAAa,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,4CAA4C,aAAa,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAClG,WAAW,GAAG,EAAE,CAAA;QAChB,sBAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAA;QAC/D,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAChE,CAAC;IAGD,GAAG,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAAE,KAAK,EAAE,GAAmB,EAAE,GAAiB,EAAE,EAAE;QAC5F,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,MAAM,IAAA,mBAAQ,EAAC,IAAA,mBAAO,EAAC,sBAAO,CAAC,GAAG,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAA;IACnF,CAAC,CAAC,CAAA;IAGF,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,IAAA,mBAAO,EAAC,sBAAO,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC;QAClD,UAAU,CAAC,GAAG;YACZ,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,mCAAmC,CAAC,CAAA;QACrE,CAAC;QACD,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;KAC9C,CAAC,CAAA;IAGF,GAAG,CAAC,eAAe,CAAC,GAAG,WAAW,IAAI,EAAE,MAAM,CAAC,CAAA;IAG/C,GAAG,CAAC,UAAU,CAAC;QACb,MAAM,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;QAC1D,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;KAC9D,CAAC,CAAA;IAIF,GAAG,CAAC,cAAc,CAAC,IAAI,uBAAc,CAAC;QACpC,SAAS,EAAE,IAAI;QACf,qBAAqB,EAAE,IAAI;KAC5B,CAAC,CAAC,CAAA;IAGH,MAAM,OAAO,GAAG,IAAI,yBAAe,EAAE;SAClC,QAAQ,CAAC,6BAA6B,CAAC;SACvC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;SACzC,aAAa,CAAC;QACb,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,IAAI;aACb;SACF;KACF,CAAC;SACD,KAAK,EAAE,CAAA;IACV,MAAM,QAAQ,GAAG,uBAAa,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC3D,uBAAa,CAAC,KAAK,CAAC,GAAG,WAAW,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IAG/E,GAAG,CAAC,gBAAgB,CAAC,IAAI,sBAAS,EAAE,CAAC,CAAA;IAGrC,MAAM,CAAC,IAAI,CAAC,kBAAkB,aAAa,CAAC,OAAO,CAAC,OAAO,oBAAoB,aAAa,CAAC,IAAI,SAAS,aAAa,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAA;IACnI,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IAG3D,IAAI,OAAO,GAAmB,IAAI,CAAA;IAClC,IAAI,aAAa,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,yBAAO,EAAE,CAAA;YACvB,MAAM,WAAW,GAAG,aAAa,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI;gBAC9D,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI;gBAC5C,CAAC,CAAC,eAAe,CAAA;YACnB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBAC9B,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,IAAI;gBAC3B,IAAI,EAAE,aAAa,CAAC,IAAI,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;gBACtG,GAAG,EAAE;oBACH,IAAI,EAAE,WAAW,IAAI,GAAG;oBACxB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO;oBACtC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;iBACrD;aACF,CAAC,CAAA;YAEF,MAAM,CAAC,GAAG,CAAC,sDAAsD,OAAO,CAAC,IAAI,aAAa,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QACpH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE;QACxC,MAAM,CAAC,GAAG,CAAC,YAAY,MAAM,iCAAiC,CAAC,CAAA;QAC/D,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;gBACvD,OAAO,CAAC,YAAY,EAAE,CAAA;gBACtB,OAAO,CAAC,OAAO,EAAE,CAAA;gBACjB,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;QACD,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACvB,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,sBAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IACtD,sBAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;IAExD,OAAO,GAAG,CAAA;AACZ,CAAC;AAEY,QAAA,GAAG,GAAG,SAAS,EAAE,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { ChildBridgeFilter } from './child-bridges.interfaces';
2
+ import { ChildBridgesService } from './child-bridges.service';
3
+ export declare class ChildBridgesController {
4
+ private readonly childBridgesService;
5
+ constructor(childBridgesService: ChildBridgesService);
6
+ getChildBridges(filter?: ChildBridgeFilter): Promise<import("./child-bridges.interfaces").UnifiedChildBridge[]>;
7
+ getHapChildBridges(): Promise<import("./child-bridges.interfaces").UnifiedChildBridge[]>;
8
+ getMatterChildBridges(): Promise<import("./child-bridges.interfaces").UnifiedChildBridge[]>;
9
+ getExternalBridges(): Promise<import("./child-bridges.interfaces").UnifiedChildBridge[]>;
10
+ getChildBridgesForPlugin(pluginName: string, filter?: ChildBridgeFilter): Promise<import("./child-bridges.interfaces").UnifiedChildBridge[]>;
11
+ getChildBridge(username: string): Promise<import("./child-bridges.interfaces").UnifiedChildBridge>;
12
+ restartChildBridge(username: string): Promise<{
13
+ status: string;
14
+ username: string;
15
+ }>;
16
+ stopChildBridge(username: string): Promise<{
17
+ status: string;
18
+ username: string;
19
+ }>;
20
+ startChildBridge(username: string): Promise<{
21
+ status: string;
22
+ username: string;
23
+ }>;
24
+ getChildBridgePairing(username: string): Promise<any>;
25
+ deleteChildBridgePairing(username: string, resetPairingInfo?: string): Promise<void>;
26
+ getChildBridgeAccessories(username: string): Promise<any[] | import("../matter-bridges/matter-bridges.interfaces").MatterAccessoriesResponse>;
27
+ deleteChildBridgeAccessories(username: string): Promise<void>;
28
+ deleteMultipleBridges(bridges: {
29
+ username: string;
30
+ resetPairingInfo?: boolean;
31
+ }[]): Promise<void>;
32
+ deleteMultipleAccessories(bridges: {
33
+ username: string;
34
+ }[]): Promise<void>;
35
+ }
@@ -0,0 +1,284 @@
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.ChildBridgesController = 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 child_bridges_service_1 = require("./child-bridges.service");
21
+ let ChildBridgesController = class ChildBridgesController {
22
+ constructor(childBridgesService) {
23
+ this.childBridgesService = childBridgesService;
24
+ }
25
+ async getChildBridges(filter) {
26
+ return await this.childBridgesService.getChildBridges(filter || 'all');
27
+ }
28
+ async getHapChildBridges() {
29
+ return await this.childBridgesService.getChildBridges('hap');
30
+ }
31
+ async getMatterChildBridges() {
32
+ return await this.childBridgesService.getChildBridges('matter');
33
+ }
34
+ async getExternalBridges() {
35
+ return await this.childBridgesService.getChildBridges('external');
36
+ }
37
+ async getChildBridgesForPlugin(pluginName, filter) {
38
+ return await this.childBridgesService.getChildBridgesForPlugin(pluginName, filter || 'all');
39
+ }
40
+ async getChildBridge(username) {
41
+ return await this.childBridgesService.getChildBridge(username);
42
+ }
43
+ async restartChildBridge(username) {
44
+ await this.childBridgesService.restartChildBridge(username);
45
+ return { status: 'restarting', username };
46
+ }
47
+ async stopChildBridge(username) {
48
+ await this.childBridgesService.stopChildBridge(username);
49
+ return { status: 'stopped', username };
50
+ }
51
+ async startChildBridge(username) {
52
+ await this.childBridgesService.startChildBridge(username);
53
+ return { status: 'starting', username };
54
+ }
55
+ async getChildBridgePairing(username) {
56
+ return await this.childBridgesService.getChildBridgePairing(username);
57
+ }
58
+ async deleteChildBridgePairing(username, resetPairingInfo) {
59
+ const resetPairingInfoBool = resetPairingInfo === 'true';
60
+ await this.childBridgesService.deleteChildBridgePairing(username, resetPairingInfoBool);
61
+ }
62
+ async getChildBridgeAccessories(username) {
63
+ return await this.childBridgesService.getChildBridgeAccessories(username);
64
+ }
65
+ async deleteChildBridgeAccessories(username) {
66
+ await this.childBridgesService.deleteChildBridgeAccessories(username);
67
+ }
68
+ async deleteMultipleBridges(bridges) {
69
+ await this.childBridgesService.deleteMultiplePairings(bridges);
70
+ }
71
+ async deleteMultipleAccessories(bridges) {
72
+ await this.childBridgesService.deleteMultipleAccessories(bridges);
73
+ }
74
+ };
75
+ exports.ChildBridgesController = ChildBridgesController;
76
+ __decorate([
77
+ (0, common_1.Get)(),
78
+ (0, swagger_1.ApiOperation)({
79
+ summary: 'Get all child bridges (HAP, Matter, and External).',
80
+ description: 'Returns bridges with username field. HAP/External bridges have MAC addresses with colons (e.g., 0E:AA:BB:CC:DD:EE). Matter bridges have serialNumbers (e.g., `HB-LR5QA8K2-A7F3`). When using usernames in URL paths, remove colons from MAC addresses.',
81
+ }),
82
+ (0, swagger_1.ApiQuery)({ name: 'filter', enum: ['all', 'hap', 'matter', 'external'], required: false }),
83
+ __param(0, (0, common_1.Query)('filter')),
84
+ __metadata("design:type", Function),
85
+ __metadata("design:paramtypes", [String]),
86
+ __metadata("design:returntype", Promise)
87
+ ], ChildBridgesController.prototype, "getChildBridges", null);
88
+ __decorate([
89
+ (0, common_1.Get)('hap'),
90
+ (0, swagger_1.ApiOperation)({ summary: 'Get only HAP child bridges.' }),
91
+ __metadata("design:type", Function),
92
+ __metadata("design:paramtypes", []),
93
+ __metadata("design:returntype", Promise)
94
+ ], ChildBridgesController.prototype, "getHapChildBridges", null);
95
+ __decorate([
96
+ (0, common_1.Get)('matter'),
97
+ (0, swagger_1.ApiOperation)({ summary: 'Get only Matter child bridges.' }),
98
+ __metadata("design:type", Function),
99
+ __metadata("design:paramtypes", []),
100
+ __metadata("design:returntype", Promise)
101
+ ], ChildBridgesController.prototype, "getMatterChildBridges", null);
102
+ __decorate([
103
+ (0, common_1.Get)('external'),
104
+ (0, swagger_1.ApiOperation)({ summary: 'Get only External bridges (cameras, TVs, etc).' }),
105
+ __metadata("design:type", Function),
106
+ __metadata("design:paramtypes", []),
107
+ __metadata("design:returntype", Promise)
108
+ ], ChildBridgesController.prototype, "getExternalBridges", null);
109
+ __decorate([
110
+ (0, common_1.Get)('plugin/:pluginName'),
111
+ (0, swagger_1.ApiOperation)({ summary: 'Get child bridges for a specific plugin.' }),
112
+ (0, swagger_1.ApiParam)({ name: 'pluginName', type: 'string' }),
113
+ (0, swagger_1.ApiQuery)({ name: 'filter', enum: ['all', 'hap', 'matter'], required: false }),
114
+ __param(0, (0, common_1.Param)('pluginName')),
115
+ __param(1, (0, common_1.Query)('filter')),
116
+ __metadata("design:type", Function),
117
+ __metadata("design:paramtypes", [String, String]),
118
+ __metadata("design:returntype", Promise)
119
+ ], ChildBridgesController.prototype, "getChildBridgesForPlugin", null);
120
+ __decorate([
121
+ (0, common_1.Get)(':username'),
122
+ (0, swagger_1.ApiOperation)({ summary: 'Get a specific child bridge.' }),
123
+ (0, swagger_1.ApiParam)({
124
+ name: 'username',
125
+ type: 'string',
126
+ description: 'For **HAP/External**: username without colons (e.g. `0EAABBCCDDEE`), for **Matter**: username with dashes (e.g. `HB-LR5QA8K2-A7F3`).',
127
+ }),
128
+ __param(0, (0, common_1.Param)('username')),
129
+ __metadata("design:type", Function),
130
+ __metadata("design:paramtypes", [String]),
131
+ __metadata("design:returntype", Promise)
132
+ ], ChildBridgesController.prototype, "getChildBridge", null);
133
+ __decorate([
134
+ (0, common_1.Put)(':username/restart'),
135
+ (0, swagger_1.ApiOperation)({ summary: 'Restart a child bridge (HAP or Matter).' }),
136
+ (0, swagger_1.ApiParam)({
137
+ name: 'username',
138
+ type: 'string',
139
+ description: 'For **HAP/External**: username without colons (e.g. `0EAABBCCDDEE`), for **Matter**: username with dashes (e.g. `HB-LR5QA8K2-A7F3`).',
140
+ }),
141
+ __param(0, (0, common_1.Param)('username')),
142
+ __metadata("design:type", Function),
143
+ __metadata("design:paramtypes", [String]),
144
+ __metadata("design:returntype", Promise)
145
+ ], ChildBridgesController.prototype, "restartChildBridge", null);
146
+ __decorate([
147
+ (0, common_1.Put)(':username/stop'),
148
+ (0, swagger_1.ApiOperation)({ summary: 'Stop a child bridge (HAP or Matter).' }),
149
+ (0, swagger_1.ApiParam)({
150
+ name: 'username',
151
+ type: 'string',
152
+ description: 'For **HAP/External**: username without colons (e.g. `0EAABBCCDDEE`), for **Matter**: username with dashes (e.g. `HB-LR5QA8K2-A7F3`).',
153
+ }),
154
+ __param(0, (0, common_1.Param)('username')),
155
+ __metadata("design:type", Function),
156
+ __metadata("design:paramtypes", [String]),
157
+ __metadata("design:returntype", Promise)
158
+ ], ChildBridgesController.prototype, "stopChildBridge", null);
159
+ __decorate([
160
+ (0, common_1.Put)(':username/start'),
161
+ (0, swagger_1.ApiOperation)({ summary: 'Start a child bridge (HAP or Matter).' }),
162
+ (0, swagger_1.ApiParam)({
163
+ name: 'username',
164
+ type: 'string',
165
+ description: 'For **HAP/External**: username without colons (e.g. `0EAABBCCDDEE`), for **Matter**: username with dashes (e.g. `HB-LR5QA8K2-A7F3`).',
166
+ }),
167
+ __param(0, (0, common_1.Param)('username')),
168
+ __metadata("design:type", Function),
169
+ __metadata("design:paramtypes", [String]),
170
+ __metadata("design:returntype", Promise)
171
+ ], ChildBridgesController.prototype, "startChildBridge", null);
172
+ __decorate([
173
+ (0, common_1.Get)(':username/pairing'),
174
+ (0, swagger_1.ApiOperation)({ summary: 'Get pairing information for a child bridge.' }),
175
+ (0, swagger_1.ApiParam)({
176
+ name: 'username',
177
+ type: 'string',
178
+ description: 'For **HAP/External**: username without colons (e.g. `0EAABBCCDDEE`), for **Matter**: username with dashes (e.g. `HB-LR5QA8K2-A7F3`).',
179
+ }),
180
+ __param(0, (0, common_1.Param)('username')),
181
+ __metadata("design:type", Function),
182
+ __metadata("design:paramtypes", [String]),
183
+ __metadata("design:returntype", Promise)
184
+ ], ChildBridgesController.prototype, "getChildBridgePairing", null);
185
+ __decorate([
186
+ (0, common_1.UseGuards)(admin_guard_1.AdminGuard),
187
+ (0, common_1.Delete)(':username/pairing'),
188
+ (0, swagger_1.ApiOperation)({ summary: 'Remove pairing for a child bridge.' }),
189
+ (0, swagger_1.ApiParam)({
190
+ name: 'username',
191
+ type: 'string',
192
+ description: 'For **HAP/External**: username without colons (e.g. `0EAABBCCDDEE`), for **Matter**: username with dashes (e.g. `HB-LR5QA8K2-A7F3`).',
193
+ }),
194
+ (0, swagger_1.ApiQuery)({ name: 'resetPairingInfo', type: Boolean, required: false }),
195
+ (0, common_1.HttpCode)(204),
196
+ __param(0, (0, common_1.Param)('username')),
197
+ __param(1, (0, common_1.Query)('resetPairingInfo')),
198
+ __metadata("design:type", Function),
199
+ __metadata("design:paramtypes", [String, String]),
200
+ __metadata("design:returntype", Promise)
201
+ ], ChildBridgesController.prototype, "deleteChildBridgePairing", null);
202
+ __decorate([
203
+ (0, common_1.Get)(':username/accessories'),
204
+ (0, swagger_1.ApiOperation)({ summary: 'Get accessories for a child bridge.' }),
205
+ (0, swagger_1.ApiParam)({
206
+ name: 'username',
207
+ type: 'string',
208
+ description: 'For **HAP/External**: username without colons (e.g. `0EAABBCCDDEE`), for **Matter**: username with dashes (e.g. `HB-LR5QA8K2-A7F3`).',
209
+ }),
210
+ __param(0, (0, common_1.Param)('username')),
211
+ __metadata("design:type", Function),
212
+ __metadata("design:paramtypes", [String]),
213
+ __metadata("design:returntype", Promise)
214
+ ], ChildBridgesController.prototype, "getChildBridgeAccessories", null);
215
+ __decorate([
216
+ (0, common_1.UseGuards)(admin_guard_1.AdminGuard),
217
+ (0, common_1.Delete)(':username/accessories'),
218
+ (0, swagger_1.ApiOperation)({ summary: 'Remove accessories for a child bridge.' }),
219
+ (0, swagger_1.ApiParam)({
220
+ name: 'username',
221
+ type: 'string',
222
+ description: 'For **HAP/External**: username without colons (e.g. `0EAABBCCDDEE`), for **Matter**: username with dashes (e.g. `HB-LR5QA8K2-A7F3`).',
223
+ }),
224
+ (0, common_1.HttpCode)(204),
225
+ __param(0, (0, common_1.Param)('username')),
226
+ __metadata("design:type", Function),
227
+ __metadata("design:paramtypes", [String]),
228
+ __metadata("design:returntype", Promise)
229
+ ], ChildBridgesController.prototype, "deleteChildBridgeAccessories", null);
230
+ __decorate([
231
+ (0, common_1.UseGuards)(admin_guard_1.AdminGuard),
232
+ (0, common_1.Delete)(),
233
+ (0, swagger_1.ApiOperation)({ summary: 'Remove multiple child bridges.' }),
234
+ (0, swagger_1.ApiBody)({
235
+ description: 'Array of bridges to remove. For **HAP/External**: username without colons (e.g. `0EAABBCCDDEE`), for **Matter**: username with dashes (e.g. `HB-LR5QA8K2-A7F3`).',
236
+ type: 'array',
237
+ schema: {
238
+ type: 'array',
239
+ items: {
240
+ type: 'object',
241
+ properties: {
242
+ username: { type: 'string', description: 'Bridge identifier' },
243
+ resetPairingInfo: { type: 'boolean', description: 'Whether to reset pairing info' },
244
+ },
245
+ },
246
+ },
247
+ }),
248
+ (0, common_1.HttpCode)(204),
249
+ __param(0, (0, common_1.Body)()),
250
+ __metadata("design:type", Function),
251
+ __metadata("design:paramtypes", [Array]),
252
+ __metadata("design:returntype", Promise)
253
+ ], ChildBridgesController.prototype, "deleteMultipleBridges", null);
254
+ __decorate([
255
+ (0, common_1.UseGuards)(admin_guard_1.AdminGuard),
256
+ (0, common_1.Delete)('accessories'),
257
+ (0, swagger_1.ApiOperation)({ summary: 'Remove accessories for multiple bridges.' }),
258
+ (0, swagger_1.ApiBody)({
259
+ description: 'Array of bridge usernames. For **HAP/External**: username without colons (e.g. `0EAABBCCDDEE`), for **Matter**: username with dashes (e.g. `HB-LR5QA8K2-A7F3`).',
260
+ type: 'array',
261
+ schema: {
262
+ type: 'array',
263
+ items: {
264
+ type: 'object',
265
+ properties: {
266
+ username: { type: 'string', description: 'Bridge identifier' },
267
+ },
268
+ },
269
+ },
270
+ }),
271
+ (0, common_1.HttpCode)(204),
272
+ __param(0, (0, common_1.Body)()),
273
+ __metadata("design:type", Function),
274
+ __metadata("design:paramtypes", [Array]),
275
+ __metadata("design:returntype", Promise)
276
+ ], ChildBridgesController.prototype, "deleteMultipleAccessories", null);
277
+ exports.ChildBridgesController = ChildBridgesController = __decorate([
278
+ (0, swagger_1.ApiTags)('Child Bridges'),
279
+ (0, swagger_1.ApiBearerAuth)(),
280
+ (0, common_1.UseGuards)((0, passport_1.AuthGuard)()),
281
+ (0, common_1.Controller)('child-bridges'),
282
+ __metadata("design:paramtypes", [child_bridges_service_1.ChildBridgesService])
283
+ ], ChildBridgesController);
284
+ //# sourceMappingURL=child-bridges.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-bridges.controller.js","sourceRoot":"","sources":["../../../src/modules/child-bridges/child-bridges.controller.ts"],"names":[],"mappings":"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"}
@@ -3,15 +3,28 @@ 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").HapChildBridge[]>;
7
+ getBridgeStatus(client: any, payload?: {
8
+ filter?: 'all' | 'hap' | 'matter';
9
+ }): Promise<WsException | import("./child-bridges.interfaces").UnifiedChildBridge[]>;
7
10
  watchChildBridgeStatus(client: any): Promise<void>;
11
+ watchBridgeStatus(client: any): Promise<void>;
8
12
  restartChildBridge(client: any, payload: any): Promise<WsException | {
9
13
  ok: boolean;
10
14
  }>;
15
+ restartBridge(client: any, payload: any): Promise<WsException | {
16
+ ok: boolean;
17
+ }>;
11
18
  stopChildBridge(client: any, payload: any): Promise<WsException | {
12
19
  ok: boolean;
13
20
  }>;
21
+ stopBridge(client: any, payload: any): Promise<WsException | {
22
+ ok: boolean;
23
+ }>;
14
24
  startChildBridge(client: any, payload: any): Promise<WsException | {
15
25
  ok: boolean;
16
26
  }>;
27
+ startBridge(client: any, payload: any): Promise<WsException | {
28
+ ok: boolean;
29
+ }>;
17
30
  }
@@ -20,7 +20,15 @@ let ChildBridgesGateway = class ChildBridgesGateway {
20
20
  }
21
21
  async getChildBridges() {
22
22
  try {
23
- return await this.childBridgesService.getChildBridges();
23
+ return await this.childBridgesService.getHapChildBridges();
24
+ }
25
+ catch (e) {
26
+ return new websockets_1.WsException(e.message);
27
+ }
28
+ }
29
+ async getBridgeStatus(client, payload) {
30
+ try {
31
+ return await this.childBridgesService.getChildBridges(payload?.filter || 'all');
24
32
  }
25
33
  catch (e) {
26
34
  return new websockets_1.WsException(e.message);
@@ -29,6 +37,10 @@ let ChildBridgesGateway = class ChildBridgesGateway {
29
37
  async watchChildBridgeStatus(client) {
30
38
  this.childBridgesService.watchChildBridgeStatus(client);
31
39
  }
40
+ async watchBridgeStatus(client) {
41
+ this.childBridgesService.watchChildBridgeStatus(client);
42
+ this.childBridgesService.watchMatterBridgeStatus(client);
43
+ }
32
44
  async restartChildBridge(client, payload) {
33
45
  try {
34
46
  return this.childBridgesService.restartChildBridge(payload);
@@ -37,6 +49,14 @@ let ChildBridgesGateway = class ChildBridgesGateway {
37
49
  return new websockets_1.WsException(e.message);
38
50
  }
39
51
  }
52
+ async restartBridge(client, payload) {
53
+ try {
54
+ return this.childBridgesService.restartChildBridge(payload);
55
+ }
56
+ catch (e) {
57
+ return new websockets_1.WsException(e.message);
58
+ }
59
+ }
40
60
  async stopChildBridge(client, payload) {
41
61
  try {
42
62
  return this.childBridgesService.stopChildBridge(payload);
@@ -45,6 +65,14 @@ let ChildBridgesGateway = class ChildBridgesGateway {
45
65
  return new websockets_1.WsException(e.message);
46
66
  }
47
67
  }
68
+ async stopBridge(client, payload) {
69
+ try {
70
+ return this.childBridgesService.stopChildBridge(payload);
71
+ }
72
+ catch (e) {
73
+ return new websockets_1.WsException(e.message);
74
+ }
75
+ }
48
76
  async startChildBridge(client, payload) {
49
77
  try {
50
78
  return this.childBridgesService.startChildBridge(payload);
@@ -53,6 +81,14 @@ let ChildBridgesGateway = class ChildBridgesGateway {
53
81
  return new websockets_1.WsException(e.message);
54
82
  }
55
83
  }
84
+ async startBridge(client, payload) {
85
+ try {
86
+ return this.childBridgesService.startChildBridge(payload);
87
+ }
88
+ catch (e) {
89
+ return new websockets_1.WsException(e.message);
90
+ }
91
+ }
56
92
  };
57
93
  exports.ChildBridgesGateway = ChildBridgesGateway;
58
94
  __decorate([
@@ -61,30 +97,60 @@ __decorate([
61
97
  __metadata("design:paramtypes", []),
62
98
  __metadata("design:returntype", Promise)
63
99
  ], ChildBridgesGateway.prototype, "getChildBridges", null);
100
+ __decorate([
101
+ (0, websockets_1.SubscribeMessage)('get-bridge-status'),
102
+ __metadata("design:type", Function),
103
+ __metadata("design:paramtypes", [Object, Object]),
104
+ __metadata("design:returntype", Promise)
105
+ ], ChildBridgesGateway.prototype, "getBridgeStatus", null);
64
106
  __decorate([
65
107
  (0, websockets_1.SubscribeMessage)('monitor-child-bridge-status'),
66
108
  __metadata("design:type", Function),
67
109
  __metadata("design:paramtypes", [Object]),
68
110
  __metadata("design:returntype", Promise)
69
111
  ], ChildBridgesGateway.prototype, "watchChildBridgeStatus", null);
112
+ __decorate([
113
+ (0, websockets_1.SubscribeMessage)('monitor-bridge-status'),
114
+ __metadata("design:type", Function),
115
+ __metadata("design:paramtypes", [Object]),
116
+ __metadata("design:returntype", Promise)
117
+ ], ChildBridgesGateway.prototype, "watchBridgeStatus", null);
70
118
  __decorate([
71
119
  (0, websockets_1.SubscribeMessage)('restart-child-bridge'),
72
120
  __metadata("design:type", Function),
73
121
  __metadata("design:paramtypes", [Object, Object]),
74
122
  __metadata("design:returntype", Promise)
75
123
  ], ChildBridgesGateway.prototype, "restartChildBridge", null);
124
+ __decorate([
125
+ (0, websockets_1.SubscribeMessage)('restart-bridge'),
126
+ __metadata("design:type", Function),
127
+ __metadata("design:paramtypes", [Object, Object]),
128
+ __metadata("design:returntype", Promise)
129
+ ], ChildBridgesGateway.prototype, "restartBridge", null);
76
130
  __decorate([
77
131
  (0, websockets_1.SubscribeMessage)('stop-child-bridge'),
78
132
  __metadata("design:type", Function),
79
133
  __metadata("design:paramtypes", [Object, Object]),
80
134
  __metadata("design:returntype", Promise)
81
135
  ], ChildBridgesGateway.prototype, "stopChildBridge", null);
136
+ __decorate([
137
+ (0, websockets_1.SubscribeMessage)('stop-bridge'),
138
+ __metadata("design:type", Function),
139
+ __metadata("design:paramtypes", [Object, Object]),
140
+ __metadata("design:returntype", Promise)
141
+ ], ChildBridgesGateway.prototype, "stopBridge", null);
82
142
  __decorate([
83
143
  (0, websockets_1.SubscribeMessage)('start-child-bridge'),
84
144
  __metadata("design:type", Function),
85
145
  __metadata("design:paramtypes", [Object, Object]),
86
146
  __metadata("design:returntype", Promise)
87
147
  ], ChildBridgesGateway.prototype, "startChildBridge", null);
148
+ __decorate([
149
+ (0, websockets_1.SubscribeMessage)('start-bridge'),
150
+ __metadata("design:type", Function),
151
+ __metadata("design:paramtypes", [Object, Object]),
152
+ __metadata("design:returntype", Promise)
153
+ ], ChildBridgesGateway.prototype, "startBridge", null);
88
154
  exports.ChildBridgesGateway = ChildBridgesGateway = __decorate([
89
155
  (0, common_1.UseGuards)(ws_guard_1.WsGuard),
90
156
  (0, websockets_1.WebSocketGateway)({
@@ -1 +1 @@
1
- {"version":3,"file":"child-bridges.gateway.js","sourceRoot":"","sources":["../../../src/modules/child-bridges/child-bridges.gateway.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA0C;AAC1C,mDAAoF;AAEpF,8DAAyD;AACzD,mEAA6D;AAWtD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YACU,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAC/C,CAAC;IAGE,AAAN,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAA;QACzD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,wBAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,sBAAsB,CAAC,MAAM;QACjC,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACzD,CAAC;IAGK,AAAN,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO;QACtC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC7D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,wBAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO;QACnC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC1D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,wBAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO;QACpC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAC3D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,wBAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;CACF,CAAA;AA7CY,kDAAmB;AAMxB;IADL,IAAA,6BAAgB,EAAC,oCAAoC,CAAC;;;;0DAOtD;AAGK;IADL,IAAA,6BAAgB,EAAC,6BAA6B,CAAC;;;;iEAG/C;AAGK;IADL,IAAA,6BAAgB,EAAC,sBAAsB,CAAC;;;;6DAOxC;AAGK;IADL,IAAA,6BAAgB,EAAC,mBAAmB,CAAC;;;;0DAOrC;AAGK;IADL,IAAA,6BAAgB,EAAC,oBAAoB,CAAC;;;;2DAOtC;8BA5CU,mBAAmB;IAT/B,IAAA,kBAAS,EAAC,kBAAO,CAAC;IAClB,IAAA,6BAAgB,EAAC;QAChB,SAAS,EAAE,gBAAgB;QAC3B,SAAS,EAAE,IAAI;QACf,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;YAC1D,WAAW,EAAE,IAAI;SAClB;KACF,CAAC;qCAG+B,2CAAmB;GAFvC,mBAAmB,CA6C/B"}
1
+ {"version":3,"file":"child-bridges.gateway.js","sourceRoot":"","sources":["../../../src/modules/child-bridges/child-bridges.gateway.ts"],"names":[],"mappings":"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"}