homebridge 2.0.0-beta.5 → 2.0.0-beta.51

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 (286) hide show
  1. package/README.md +16 -17
  2. package/bin/homebridge.js +22 -0
  3. package/config-sample.json +3 -3
  4. package/dist/api.d.ts +137 -0
  5. package/dist/api.d.ts.map +1 -0
  6. package/dist/api.js +151 -0
  7. package/dist/api.js.map +1 -0
  8. package/{lib → dist}/bridgeService.d.ts +16 -32
  9. package/dist/bridgeService.d.ts.map +1 -0
  10. package/dist/bridgeService.js +341 -0
  11. package/dist/bridgeService.js.map +1 -0
  12. package/dist/childBridgeFork.d.ts +40 -0
  13. package/dist/childBridgeFork.d.ts.map +1 -0
  14. package/dist/childBridgeFork.js +362 -0
  15. package/dist/childBridgeFork.js.map +1 -0
  16. package/dist/childBridgeService.d.ts +146 -0
  17. package/dist/childBridgeService.d.ts.map +1 -0
  18. package/dist/childBridgeService.js +416 -0
  19. package/dist/childBridgeService.js.map +1 -0
  20. package/dist/cli.d.ts +3 -0
  21. package/dist/cli.d.ts.map +1 -0
  22. package/dist/cli.js +88 -0
  23. package/dist/cli.js.map +1 -0
  24. package/dist/externalPortService.d.ts +26 -0
  25. package/dist/externalPortService.d.ts.map +1 -0
  26. package/dist/externalPortService.js +77 -0
  27. package/dist/externalPortService.js.map +1 -0
  28. package/dist/index.d.ts +29 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +9 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/ipcService.d.ts +58 -0
  33. package/dist/ipcService.d.ts.map +1 -0
  34. package/dist/ipcService.js +43 -0
  35. package/dist/ipcService.js.map +1 -0
  36. package/dist/logger.d.ts +38 -0
  37. package/dist/logger.d.ts.map +1 -0
  38. package/dist/logger.js +102 -0
  39. package/dist/logger.js.map +1 -0
  40. package/dist/matter/BaseMatterManager.d.ts +20 -0
  41. package/dist/matter/BaseMatterManager.d.ts.map +1 -0
  42. package/dist/matter/BaseMatterManager.js +183 -0
  43. package/dist/matter/BaseMatterManager.js.map +1 -0
  44. package/dist/matter/ChildBridgeMatterManager.d.ts +35 -0
  45. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -0
  46. package/dist/matter/ChildBridgeMatterManager.js +222 -0
  47. package/dist/matter/ChildBridgeMatterManager.js.map +1 -0
  48. package/dist/matter/ClusterCommandMapper.d.ts +5 -0
  49. package/dist/matter/ClusterCommandMapper.d.ts.map +1 -0
  50. package/dist/matter/ClusterCommandMapper.js +222 -0
  51. package/dist/matter/ClusterCommandMapper.js.map +1 -0
  52. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +22 -0
  53. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -0
  54. package/dist/matter/ExternalMatterAccessoryPublisher.js +49 -0
  55. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -0
  56. package/dist/matter/MatterAPIImpl.d.ts +443 -0
  57. package/dist/matter/MatterAPIImpl.d.ts.map +1 -0
  58. package/dist/matter/MatterAPIImpl.js +210 -0
  59. package/dist/matter/MatterAPIImpl.js.map +1 -0
  60. package/dist/matter/MatterBridgeManager.d.ts +40 -0
  61. package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
  62. package/dist/matter/MatterBridgeManager.js +340 -0
  63. package/dist/matter/MatterBridgeManager.js.map +1 -0
  64. package/dist/matter/MatterConfigCollector.d.ts +7 -0
  65. package/dist/matter/MatterConfigCollector.d.ts.map +1 -0
  66. package/dist/matter/MatterConfigCollector.js +65 -0
  67. package/dist/matter/MatterConfigCollector.js.map +1 -0
  68. package/dist/matter/accessoryCache.d.ts +57 -0
  69. package/dist/matter/accessoryCache.d.ts.map +1 -0
  70. package/dist/matter/accessoryCache.js +155 -0
  71. package/dist/matter/accessoryCache.js.map +1 -0
  72. package/dist/matter/behaviors/AirQualityBehavior.d.ts +8 -0
  73. package/dist/matter/behaviors/AirQualityBehavior.d.ts.map +1 -0
  74. package/dist/matter/behaviors/AirQualityBehavior.js +11 -0
  75. package/dist/matter/behaviors/AirQualityBehavior.js.map +1 -0
  76. package/dist/matter/behaviors/BehaviorRegistry.d.ts +27 -0
  77. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -0
  78. package/dist/matter/behaviors/BehaviorRegistry.js +110 -0
  79. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -0
  80. package/dist/matter/behaviors/ColorControlBehavior.d.ts +12 -0
  81. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
  82. package/dist/matter/behaviors/ColorControlBehavior.js +139 -0
  83. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -0
  84. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts +32 -0
  85. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts.map +1 -0
  86. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js +51 -0
  87. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js.map +1 -0
  88. package/dist/matter/behaviors/DoorLockBehavior.d.ts +7 -0
  89. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
  90. package/dist/matter/behaviors/DoorLockBehavior.js +48 -0
  91. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -0
  92. package/dist/matter/behaviors/FanControlBehavior.d.ts +7 -0
  93. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -0
  94. package/dist/matter/behaviors/FanControlBehavior.js +57 -0
  95. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -0
  96. package/dist/matter/behaviors/IdentifyBehavior.d.ts +7 -0
  97. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
  98. package/dist/matter/behaviors/IdentifyBehavior.js +25 -0
  99. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -0
  100. package/dist/matter/behaviors/LevelControlBehavior.d.ts +11 -0
  101. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
  102. package/dist/matter/behaviors/LevelControlBehavior.js +100 -0
  103. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -0
  104. package/dist/matter/behaviors/OnOffBehavior.d.ts +8 -0
  105. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
  106. package/dist/matter/behaviors/OnOffBehavior.js +60 -0
  107. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -0
  108. package/dist/matter/behaviors/RegistryManager.d.ts +15 -0
  109. package/dist/matter/behaviors/RegistryManager.d.ts.map +1 -0
  110. package/dist/matter/behaviors/RegistryManager.js +31 -0
  111. package/dist/matter/behaviors/RegistryManager.js.map +1 -0
  112. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +14 -0
  113. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -0
  114. package/dist/matter/behaviors/RvcCleanModeBehavior.js +29 -0
  115. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -0
  116. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +10 -0
  117. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
  118. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +81 -0
  119. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -0
  120. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +14 -0
  121. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -0
  122. package/dist/matter/behaviors/RvcRunModeBehavior.js +29 -0
  123. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -0
  124. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +9 -0
  125. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
  126. package/dist/matter/behaviors/ServiceAreaBehavior.js +62 -0
  127. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -0
  128. package/dist/matter/behaviors/ThermostatBehavior.d.ts +9 -0
  129. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
  130. package/dist/matter/behaviors/ThermostatBehavior.js +92 -0
  131. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -0
  132. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +12 -0
  133. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
  134. package/dist/matter/behaviors/WindowCoveringBehavior.js +108 -0
  135. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -0
  136. package/dist/matter/behaviors/index.d.ts +18 -0
  137. package/dist/matter/behaviors/index.d.ts.map +1 -0
  138. package/dist/matter/behaviors/index.js +17 -0
  139. package/dist/matter/behaviors/index.js.map +1 -0
  140. package/dist/matter/clusterTypes.d.ts +178 -0
  141. package/dist/matter/clusterTypes.d.ts.map +1 -0
  142. package/dist/matter/clusterTypes.js +2 -0
  143. package/dist/matter/clusterTypes.js.map +1 -0
  144. package/dist/matter/configValidator.d.ts +26 -0
  145. package/dist/matter/configValidator.d.ts.map +1 -0
  146. package/dist/matter/configValidator.js +173 -0
  147. package/dist/matter/configValidator.js.map +1 -0
  148. package/dist/matter/errorHandler.d.ts +11 -0
  149. package/dist/matter/errorHandler.d.ts.map +1 -0
  150. package/dist/matter/errorHandler.js +81 -0
  151. package/dist/matter/errorHandler.js.map +1 -0
  152. package/dist/matter/errors.d.ts +46 -0
  153. package/dist/matter/errors.d.ts.map +1 -0
  154. package/dist/matter/errors.js +68 -0
  155. package/dist/matter/errors.js.map +1 -0
  156. package/dist/matter/index.d.ts +97 -0
  157. package/dist/matter/index.d.ts.map +1 -0
  158. package/dist/matter/index.js +10 -0
  159. package/dist/matter/index.js.map +1 -0
  160. package/dist/matter/logFormatter.d.ts +2 -0
  161. package/dist/matter/logFormatter.d.ts.map +1 -0
  162. package/dist/matter/logFormatter.js +100 -0
  163. package/dist/matter/logFormatter.js.map +1 -0
  164. package/dist/matter/managerTypes.d.ts +57 -0
  165. package/dist/matter/managerTypes.d.ts.map +1 -0
  166. package/dist/matter/managerTypes.js +2 -0
  167. package/dist/matter/managerTypes.js.map +1 -0
  168. package/dist/matter/server.d.ts +112 -0
  169. package/dist/matter/server.d.ts.map +1 -0
  170. package/dist/matter/server.js +1508 -0
  171. package/dist/matter/server.js.map +1 -0
  172. package/dist/matter/serverHelpers.d.ts +31 -0
  173. package/dist/matter/serverHelpers.d.ts.map +1 -0
  174. package/dist/matter/serverHelpers.js +273 -0
  175. package/dist/matter/serverHelpers.js.map +1 -0
  176. package/dist/matter/sharedTypes.d.ts +93 -0
  177. package/dist/matter/sharedTypes.d.ts.map +1 -0
  178. package/dist/matter/sharedTypes.js +20 -0
  179. package/dist/matter/sharedTypes.js.map +1 -0
  180. package/dist/matter/storage.d.ts +45 -0
  181. package/dist/matter/storage.d.ts.map +1 -0
  182. package/dist/matter/storage.js +325 -0
  183. package/dist/matter/storage.js.map +1 -0
  184. package/dist/matter/typeHelpers.d.ts +15 -0
  185. package/dist/matter/typeHelpers.d.ts.map +1 -0
  186. package/dist/matter/typeHelpers.js +33 -0
  187. package/dist/matter/typeHelpers.js.map +1 -0
  188. package/dist/matter/types.d.ts +565 -0
  189. package/dist/matter/types.d.ts.map +1 -0
  190. package/dist/matter/types.js +132 -0
  191. package/dist/matter/types.js.map +1 -0
  192. package/dist/matter/utils.d.ts +13 -0
  193. package/dist/matter/utils.d.ts.map +1 -0
  194. package/dist/matter/utils.js +21 -0
  195. package/dist/matter/utils.js.map +1 -0
  196. package/{lib → dist}/platformAccessory.d.ts +8 -21
  197. package/dist/platformAccessory.d.ts.map +1 -0
  198. package/dist/platformAccessory.js +79 -0
  199. package/dist/platformAccessory.js.map +1 -0
  200. package/{lib → dist}/plugin.d.ts +2 -6
  201. package/dist/plugin.d.ts.map +1 -0
  202. package/dist/plugin.js +159 -0
  203. package/dist/plugin.js.map +1 -0
  204. package/{lib → dist}/pluginManager.d.ts +3 -25
  205. package/dist/pluginManager.d.ts.map +1 -0
  206. package/{lib → dist}/pluginManager.js +87 -115
  207. package/dist/pluginManager.js.map +1 -0
  208. package/{lib → dist}/server.d.ts +15 -20
  209. package/dist/server.d.ts.map +1 -0
  210. package/dist/server.js +732 -0
  211. package/dist/server.js.map +1 -0
  212. package/{lib → dist}/storageService.d.ts.map +1 -1
  213. package/dist/storageService.js +41 -0
  214. package/dist/storageService.js.map +1 -0
  215. package/{lib → dist}/user.d.ts +1 -3
  216. package/dist/user.d.ts.map +1 -0
  217. package/dist/user.js +29 -0
  218. package/dist/user.js.map +1 -0
  219. package/{lib → dist}/util/mac.d.ts +1 -0
  220. package/dist/util/mac.d.ts.map +1 -0
  221. package/dist/util/mac.js +13 -0
  222. package/dist/util/mac.js.map +1 -0
  223. package/dist/version.d.ts.map +1 -0
  224. package/dist/version.js +16 -0
  225. package/dist/version.js.map +1 -0
  226. package/package.json +49 -50
  227. package/bin/homebridge +0 -17
  228. package/lib/api.d.ts +0 -210
  229. package/lib/api.d.ts.map +0 -1
  230. package/lib/api.js +0 -155
  231. package/lib/api.js.map +0 -1
  232. package/lib/bridgeService.d.ts.map +0 -1
  233. package/lib/bridgeService.js +0 -426
  234. package/lib/bridgeService.js.map +0 -1
  235. package/lib/childBridgeFork.d.ts +0 -37
  236. package/lib/childBridgeFork.d.ts.map +0 -1
  237. package/lib/childBridgeFork.js +0 -244
  238. package/lib/childBridgeFork.js.map +0 -1
  239. package/lib/childBridgeService.d.ts +0 -199
  240. package/lib/childBridgeService.d.ts.map +0 -1
  241. package/lib/childBridgeService.js +0 -428
  242. package/lib/childBridgeService.js.map +0 -1
  243. package/lib/cli.d.ts +0 -4
  244. package/lib/cli.d.ts.map +0 -1
  245. package/lib/cli.js +0 -111
  246. package/lib/cli.js.map +0 -1
  247. package/lib/externalPortService.d.ts +0 -33
  248. package/lib/externalPortService.d.ts.map +0 -1
  249. package/lib/externalPortService.js +0 -64
  250. package/lib/externalPortService.js.map +0 -1
  251. package/lib/index.d.ts +0 -76
  252. package/lib/index.d.ts.map +0 -1
  253. package/lib/index.js +0 -72
  254. package/lib/index.js.map +0 -1
  255. package/lib/ipcService.d.ts +0 -33
  256. package/lib/ipcService.d.ts.map +0 -1
  257. package/lib/ipcService.js +0 -49
  258. package/lib/ipcService.js.map +0 -1
  259. package/lib/logger.d.ts +0 -78
  260. package/lib/logger.d.ts.map +0 -1
  261. package/lib/logger.js +0 -147
  262. package/lib/logger.js.map +0 -1
  263. package/lib/platformAccessory.d.ts.map +0 -1
  264. package/lib/platformAccessory.js +0 -102
  265. package/lib/platformAccessory.js.map +0 -1
  266. package/lib/plugin.d.ts.map +0 -1
  267. package/lib/plugin.js +0 -194
  268. package/lib/plugin.js.map +0 -1
  269. package/lib/pluginManager.d.ts.map +0 -1
  270. package/lib/pluginManager.js.map +0 -1
  271. package/lib/server.d.ts.map +0 -1
  272. package/lib/server.js +0 -457
  273. package/lib/server.js.map +0 -1
  274. package/lib/storageService.js +0 -70
  275. package/lib/storageService.js.map +0 -1
  276. package/lib/user.d.ts.map +0 -1
  277. package/lib/user.js +0 -36
  278. package/lib/user.js.map +0 -1
  279. package/lib/util/mac.d.ts.map +0 -1
  280. package/lib/util/mac.js +0 -20
  281. package/lib/util/mac.js.map +0 -1
  282. package/lib/version.d.ts.map +0 -1
  283. package/lib/version.js +0 -21
  284. package/lib/version.js.map +0 -1
  285. /package/{lib → dist}/storageService.d.ts +0 -0
  286. /package/{lib → dist}/version.d.ts +0 -0
@@ -1,37 +0,0 @@
1
- import "source-map-support/register";
2
- import { MacAddress } from "hap-nodejs";
3
- import { ChildProcessMessageEventType, ChildProcessLoadEventData, ChildProcessPortAllocatedEventData } from "./childBridgeService";
4
- export declare class ChildBridgeFork {
5
- private bridgeService;
6
- private api;
7
- private pluginManager;
8
- private externalPortService;
9
- private type;
10
- private plugin;
11
- private identifier;
12
- private pluginConfig;
13
- private bridgeConfig;
14
- private bridgeOptions;
15
- private homebridgeConfig;
16
- private portRequestCallback;
17
- constructor();
18
- sendMessage<T = unknown>(type: ChildProcessMessageEventType, data?: T): void;
19
- loadPlugin(data: ChildProcessLoadEventData): Promise<void>;
20
- startBridge(): Promise<void>;
21
- /**
22
- * Request the next available external port from the parent process
23
- * @param username
24
- */
25
- requestExternalPort(username: MacAddress): Promise<number | undefined>;
26
- /**
27
- * Handles the port allocation response message from the parent process
28
- * @param data
29
- */
30
- handleExternalResponse(data: ChildProcessPortAllocatedEventData): void;
31
- /**
32
- * Sends the current pairing status of the child bridge to the parent process
33
- */
34
- sendPairedStatusEvent(): void;
35
- shutdown(): void;
36
- }
37
- //# sourceMappingURL=childBridgeFork.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"childBridgeFork.d.ts","sourceRoot":"","sources":["../src/childBridgeFork.ts"],"names":[],"mappings":"AAMA,OAAO,6BAA6B,CAAC;AAErC,OAAO,EAAmC,UAAU,EAAE,MAAM,YAAY,CAAC;AAezE,OAAO,EACL,4BAA4B,EAE5B,yBAAyB,EAEzB,kCAAkC,EAGnC,MAAM,sBAAsB,CAAC;AAO9B,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,mBAAmB,CAAkC;IAE7D,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,gBAAgB,CAAoB;IAE5C,OAAO,CAAC,mBAAmB,CAAkE;;IAO7F,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;IAStE,UAAU,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoD1D,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA+ElC;;;OAGG;IACU,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAoBnF;;;OAGG;IACI,sBAAsB,CAAC,IAAI,EAAE,kCAAkC,GAAG,IAAI;IAO7E;;OAEG;IACI,qBAAqB;IAO5B,QAAQ,IAAI,IAAI;CAGjB"}
@@ -1,244 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChildBridgeFork = void 0;
4
- /**
5
- * This is a standalone script executed as a child process fork
6
- */
7
- process.title = "homebridge: child bridge";
8
- // registering node-source-map-support for typescript stack traces
9
- require("source-map-support/register");
10
- const hap_nodejs_1 = require("hap-nodejs");
11
- const api_1 = require("./api");
12
- const bridgeService_1 = require("./bridgeService");
13
- const externalPortService_1 = require("./externalPortService");
14
- const logger_1 = require("./logger");
15
- const pluginManager_1 = require("./pluginManager");
16
- const user_1 = require("./user");
17
- class ChildBridgeFork {
18
- bridgeService;
19
- api;
20
- pluginManager;
21
- externalPortService;
22
- type;
23
- plugin;
24
- identifier;
25
- pluginConfig;
26
- bridgeConfig;
27
- bridgeOptions;
28
- homebridgeConfig;
29
- portRequestCallback = new Map();
30
- constructor() {
31
- // tell the parent process we are ready to accept plugin config
32
- this.sendMessage("ready" /* ChildProcessMessageEventType.READY */);
33
- }
34
- sendMessage(type, data) {
35
- if (process.send) {
36
- process.send({
37
- id: type,
38
- data,
39
- });
40
- }
41
- }
42
- async loadPlugin(data) {
43
- // set data
44
- this.type = data.type;
45
- this.identifier = data.identifier;
46
- this.pluginConfig = data.pluginConfig;
47
- this.bridgeConfig = data.bridgeConfig;
48
- this.bridgeOptions = data.bridgeOptions;
49
- this.homebridgeConfig = data.homebridgeConfig;
50
- // remove the _bridge key (some plugins do not like unknown config)
51
- for (const config of this.pluginConfig) {
52
- delete config._bridge;
53
- }
54
- // set bridge settings (inherited from main bridge)
55
- if (this.bridgeOptions.noLogTimestamps) {
56
- logger_1.Logger.setTimestampEnabled(false);
57
- }
58
- if (this.bridgeOptions.debugModeEnabled) {
59
- logger_1.Logger.setDebugEnabled(true);
60
- }
61
- if (this.bridgeOptions.forceColourLogging) {
62
- logger_1.Logger.forceColor();
63
- }
64
- if (this.bridgeOptions.customStoragePath) {
65
- user_1.User.setStoragePath(this.bridgeOptions.customStoragePath);
66
- }
67
- // Initialize HAP-NodeJS with a custom persist directory
68
- hap_nodejs_1.HAPStorage.setCustomStoragePath(user_1.User.persistPath());
69
- // load api
70
- this.api = new api_1.HomebridgeAPI();
71
- this.pluginManager = new pluginManager_1.PluginManager(this.api);
72
- this.externalPortService = new externalPortService_1.ChildBridgeExternalPortService(this);
73
- // load plugin
74
- this.plugin = this.pluginManager.loadPlugin(data.pluginPath);
75
- await this.plugin.load();
76
- await this.pluginManager.initializePlugin(this.plugin, data.identifier);
77
- // change process title to include plugin name
78
- process.title = `homebridge: ${this.plugin.getPluginIdentifier()}`;
79
- this.sendMessage("loaded" /* ChildProcessMessageEventType.LOADED */, {
80
- version: this.plugin.version,
81
- });
82
- }
83
- async startBridge() {
84
- this.bridgeService = new bridgeService_1.BridgeService(this.api, this.pluginManager, this.externalPortService, this.bridgeOptions, this.bridgeConfig, this.homebridgeConfig);
85
- // watch bridge events to check when server is online
86
- this.bridgeService.bridge.on("advertised" /* AccessoryEventTypes.ADVERTISED */, () => {
87
- this.sendPairedStatusEvent();
88
- });
89
- // watch for the paired event to update the server status
90
- this.bridgeService.bridge.on("paired" /* AccessoryEventTypes.PAIRED */, () => {
91
- this.sendPairedStatusEvent();
92
- });
93
- // watch for the unpaired event to update the server status
94
- this.bridgeService.bridge.on("unpaired" /* AccessoryEventTypes.UNPAIRED */, () => {
95
- this.sendPairedStatusEvent();
96
- });
97
- // load the cached accessories
98
- await this.bridgeService.loadCachedPlatformAccessoriesFromDisk();
99
- for (const config of this.pluginConfig) {
100
- if (this.type === "platform" /* PluginType.PLATFORM */) {
101
- const plugin = this.pluginManager.getPluginForPlatform(this.identifier);
102
- const displayName = config.name || plugin.getPluginIdentifier();
103
- const logger = logger_1.Logger.withPrefix(displayName);
104
- const constructor = plugin.getPlatformConstructor(this.identifier);
105
- const platform = new constructor(logger, config, this.api);
106
- if (api_1.HomebridgeAPI.isDynamicPlatformPlugin(platform)) {
107
- plugin.assignDynamicPlatform(this.identifier, platform);
108
- }
109
- else if (api_1.HomebridgeAPI.isStaticPlatformPlugin(platform)) { // Plugin 1.0, load accessories
110
- await this.bridgeService.loadPlatformAccessories(plugin, platform, this.identifier, logger);
111
- }
112
- else {
113
- // otherwise it's a IndependentPlatformPlugin which doesn't expose any methods at all.
114
- // We just call the constructor and let it be enabled.
115
- }
116
- }
117
- else if (this.type === "accessory" /* PluginType.ACCESSORY */) {
118
- const plugin = this.pluginManager.getPluginForAccessory(this.identifier);
119
- const displayName = config.name;
120
- if (!displayName) {
121
- logger_1.Logger.internal.warn("Could not load accessory %s as it is missing the required 'name' property!", this.identifier);
122
- return;
123
- }
124
- const logger = logger_1.Logger.withPrefix(displayName);
125
- const constructor = plugin.getAccessoryConstructor(this.identifier);
126
- const accessoryInstance = new constructor(logger, config, this.api);
127
- //pass accessoryIdentifier for UUID generation, and optional parameter uuid_base which can be used instead of displayName for UUID generation
128
- const accessory = this.bridgeService.createHAPAccessory(plugin, accessoryInstance, displayName, this.identifier, config.uuid_base);
129
- if (accessory) {
130
- this.bridgeService.bridge.addBridgedAccessory(accessory);
131
- }
132
- else {
133
- logger("Accessory %s returned empty set of services. Won't adding it to the bridge!", this.identifier);
134
- }
135
- }
136
- }
137
- // restore the cached accessories
138
- this.bridgeService.restoreCachedPlatformAccessories();
139
- this.bridgeService.publishBridge();
140
- this.api.signalFinished();
141
- // tell the parent we are online
142
- this.sendMessage("online" /* ChildProcessMessageEventType.ONLINE */);
143
- }
144
- /**
145
- * Request the next available external port from the parent process
146
- * @param username
147
- */
148
- async requestExternalPort(username) {
149
- return new Promise((resolve) => {
150
- const requestTimeout = setTimeout(() => {
151
- logger_1.Logger.internal.warn("Parent process did not respond to port allocation request within 5 seconds - assigning random port.");
152
- resolve(undefined);
153
- }, 5000);
154
- // setup callback
155
- const callback = (port) => {
156
- clearTimeout(requestTimeout);
157
- resolve(port);
158
- this.portRequestCallback.delete(username);
159
- };
160
- this.portRequestCallback.set(username, callback);
161
- // send port request
162
- this.sendMessage("portRequest" /* ChildProcessMessageEventType.PORT_REQUEST */, { username });
163
- });
164
- }
165
- /**
166
- * Handles the port allocation response message from the parent process
167
- * @param data
168
- */
169
- handleExternalResponse(data) {
170
- const callback = this.portRequestCallback.get(data.username);
171
- if (callback) {
172
- callback(data.port);
173
- }
174
- }
175
- /**
176
- * Sends the current pairing status of the child bridge to the parent process
177
- */
178
- sendPairedStatusEvent() {
179
- this.sendMessage("status" /* ChildProcessMessageEventType.STATUS_UPDATE */, {
180
- paired: this.bridgeService?.bridge?._accessoryInfo?.paired() ?? null,
181
- setupUri: this.bridgeService?.bridge?.setupURI() ?? null,
182
- });
183
- }
184
- shutdown() {
185
- this.bridgeService.teardown();
186
- }
187
- }
188
- exports.ChildBridgeFork = ChildBridgeFork;
189
- /**
190
- * Start Self
191
- */
192
- const childPluginFork = new ChildBridgeFork();
193
- /**
194
- * Handle incoming IPC messages from the parent Homebridge process
195
- */
196
- process.on("message", (message) => {
197
- if (typeof message !== "object" || !message.id) {
198
- return;
199
- }
200
- switch (message.id) {
201
- case "load" /* ChildProcessMessageEventType.LOAD */: {
202
- childPluginFork.loadPlugin(message.data);
203
- break;
204
- }
205
- case "start" /* ChildProcessMessageEventType.START */: {
206
- childPluginFork.startBridge();
207
- break;
208
- }
209
- case "portAllocated" /* ChildProcessMessageEventType.PORT_ALLOCATED */: {
210
- childPluginFork.handleExternalResponse(message.data);
211
- break;
212
- }
213
- }
214
- });
215
- /**
216
- * Handle the sigterm shutdown signals
217
- */
218
- let shuttingDown = false;
219
- const signalHandler = (signal, signalNum) => {
220
- if (shuttingDown) {
221
- return;
222
- }
223
- shuttingDown = true;
224
- logger_1.Logger.internal.info("Got %s, shutting down child bridge process...", signal);
225
- try {
226
- childPluginFork.shutdown();
227
- }
228
- catch (e) {
229
- // do nothing
230
- }
231
- setTimeout(() => process.exit(128 + signalNum), 5000);
232
- };
233
- process.on("SIGINT", signalHandler.bind(undefined, "SIGINT", 2));
234
- process.on("SIGTERM", signalHandler.bind(undefined, "SIGTERM", 15));
235
- /**
236
- * Ensure orphaned processes are cleaned up
237
- */
238
- setInterval(() => {
239
- if (!process.connected) {
240
- logger_1.Logger.internal.info("Parent process not connected, terminating process...");
241
- process.exit(1);
242
- }
243
- }, 5000);
244
- //# sourceMappingURL=childBridgeFork.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"childBridgeFork.js","sourceRoot":"","sources":["../src/childBridgeFork.ts"],"names":[],"mappings":"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"}
@@ -1,199 +0,0 @@
1
- import { MacAddress } from "hap-nodejs";
2
- import { HomebridgeAPI, PluginType } from "./api";
3
- import { AccessoryConfig, BridgeConfiguration, BridgeOptions, HomebridgeConfig, PlatformConfig } from "./bridgeService";
4
- import { ExternalPortService } from "./externalPortService";
5
- import { IpcService } from "./ipcService";
6
- import { Plugin } from "./plugin";
7
- import { HomebridgeOptions } from "./server";
8
- export declare const enum ChildProcessMessageEventType {
9
- /**
10
- * Sent from the child process when it is ready to accept config
11
- */
12
- READY = "ready",
13
- /**
14
- * Sent to the child process with a ChildProcessLoadEventData payload
15
- */
16
- LOAD = "load",
17
- /**
18
- * Sent from the child process once it has loaded the plugin
19
- */
20
- LOADED = "loaded",
21
- /**
22
- * Sent to the child process telling it to start
23
- */
24
- START = "start",
25
- /**
26
- * Sent from the child process when the bridge is online
27
- */
28
- ONLINE = "online",
29
- /**
30
- * Sent from the child when it wants to request port allocation for an external accessory
31
- */
32
- PORT_REQUEST = "portRequest",
33
- /**
34
- * Sent from the parent with the port allocation response
35
- */
36
- PORT_ALLOCATED = "portAllocated",
37
- /**
38
- * Sent from the child to update its current status
39
- */
40
- STATUS_UPDATE = "status"
41
- }
42
- export declare const enum ChildBridgeStatus {
43
- /**
44
- * When the child bridge is loading, or restarting
45
- */
46
- PENDING = "pending",
47
- /**
48
- * The child bridge is online and has published it's accessory
49
- */
50
- OK = "ok",
51
- /**
52
- * The bridge is shutting down, or the process ended unexpectedly
53
- */
54
- DOWN = "down"
55
- }
56
- export interface ChildProcessMessageEvent<T> {
57
- id: ChildProcessMessageEventType;
58
- data?: T;
59
- }
60
- export interface ChildProcessLoadEventData {
61
- type: PluginType;
62
- identifier: string;
63
- pluginPath: string;
64
- pluginConfig: Array<PlatformConfig | AccessoryConfig>;
65
- bridgeConfig: BridgeConfiguration;
66
- homebridgeConfig: HomebridgeConfig;
67
- bridgeOptions: BridgeOptions;
68
- }
69
- export interface ChildProcessPluginLoadedEventData {
70
- version: string;
71
- }
72
- export interface ChildProcessPortRequestEventData {
73
- username: MacAddress;
74
- }
75
- export interface ChildProcessPortAllocatedEventData {
76
- username: MacAddress;
77
- port?: number;
78
- }
79
- export interface ChildBridgePairedStatusEventData {
80
- paired: boolean | null;
81
- setupUri: string | null;
82
- }
83
- export interface ChildMetadata {
84
- status: ChildBridgeStatus;
85
- paired?: boolean | null;
86
- setupUri?: string | null;
87
- username: MacAddress;
88
- pin: string;
89
- name: string;
90
- plugin: string;
91
- identifier: string;
92
- manuallyStopped: boolean;
93
- pid?: number;
94
- }
95
- /**
96
- * Manages the child processes of platforms/accessories being exposed as separate forked bridges.
97
- * A child bridge runs a single platform or accessory.
98
- */
99
- export declare class ChildBridgeService {
100
- type: PluginType;
101
- identifier: string;
102
- private plugin;
103
- private bridgeConfig;
104
- private homebridgeConfig;
105
- private homebridgeOptions;
106
- private api;
107
- private ipcService;
108
- private externalPortService;
109
- private child?;
110
- private args;
111
- private processEnv;
112
- private shuttingDown;
113
- private lastBridgeStatus;
114
- private pairedStatus;
115
- private manuallyStopped;
116
- private setupUri;
117
- private pluginConfig;
118
- private log;
119
- private displayName?;
120
- constructor(type: PluginType, identifier: string, plugin: Plugin, bridgeConfig: BridgeConfiguration, homebridgeConfig: HomebridgeConfig, homebridgeOptions: HomebridgeOptions, api: HomebridgeAPI, ipcService: IpcService, externalPortService: ExternalPortService);
121
- /**
122
- * Start the child bridge service
123
- */
124
- start(): void;
125
- /**
126
- * Add a config block to a child bridge.
127
- * Platform child bridges can only contain one config block.
128
- * @param config
129
- */
130
- addConfig(config: PlatformConfig | AccessoryConfig): void;
131
- private get bridgeStatus();
132
- private set bridgeStatus(value);
133
- /**
134
- * Start the child bridge process
135
- */
136
- private startChildProcess;
137
- /**
138
- * Called when the child bridge process exits, if Homebridge is not shutting down, it will restart the process
139
- * @param code
140
- * @param signal
141
- */
142
- private handleProcessClose;
143
- /**
144
- * Helper function to send a message to the child process
145
- * @param type
146
- * @param data
147
- */
148
- private sendMessage;
149
- /**
150
- * Some plugins may make use of the homebridge process flags
151
- * These will be passed through to the forked process
152
- */
153
- private setProcessFlags;
154
- /**
155
- * Set environment variables for the child process
156
- */
157
- private setProcessEnv;
158
- /**
159
- * Tell the child process to load the given plugin
160
- */
161
- private loadPlugin;
162
- /**
163
- * Tell the child bridge to start broadcasting
164
- */
165
- private startBridge;
166
- /**
167
- * Handle external port requests from child
168
- */
169
- private handlePortRequest;
170
- /**
171
- * Send sigterm to the child bridge
172
- */
173
- private teardown;
174
- /**
175
- * Trigger sending child bridge metadata to the process parent via IPC
176
- */
177
- private sendStatusUpdate;
178
- /**
179
- * Restarts the child bridge process
180
- */
181
- restartChildBridge(): void;
182
- /**
183
- * Stops the child bridge, not starting it again
184
- */
185
- stopChildBridge(): void;
186
- /**
187
- * Starts the child bridge, only if it was manually stopped and is no longer running
188
- */
189
- startChildBridge(): void;
190
- /**
191
- * Read the config.json file from disk and refresh the plugin config block for just this plugin
192
- */
193
- refreshConfig(): Promise<void>;
194
- /**
195
- * Returns metadata about this child bridge
196
- */
197
- getMetadata(): ChildMetadata;
198
- }
199
- //# sourceMappingURL=childBridgeService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"childBridgeService.d.ts","sourceRoot":"","sources":["../src/childBridgeService.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAoB,UAAU,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,0BAAkB,4BAA4B;IAC5C;;OAEG;IACH,KAAK,UAAU;IAEf;;OAEG;IACH,IAAI,SAAS;IAEb;;OAEG;IACH,MAAM,WAAW;IAEjB;;OAEG;IACH,KAAK,UAAU;IAEf;;OAEG;IACH,MAAM,WAAW;IAEjB;;OAEG;IACH,YAAY,gBAAgB;IAE5B;;OAEG;IACH,cAAc,kBAAiB;IAE/B;;OAEG;IACH,aAAa,WAAW;CACzB;AAED,0BAAkB,iBAAiB;IACjC;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,EAAE,OAAO;IAET;;OAEG;IACH,IAAI,SAAS;CACd;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,EAAE,EAAE,4BAA4B,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,CAAA;CACT;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC,cAAc,GAAG,eAAe,CAAC,CAAC;IACtD,YAAY,EAAE,mBAAmB,CAAC;IAClC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,UAAU,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,UAAU,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAcpB,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,MAAM;IACzB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,mBAAmB;IArB7B,OAAO,CAAC,KAAK,CAAC,CAA6B;IAC3C,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAgD;IACxE,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,WAAW,CAAC,CAAS;gBAGpB,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,mBAAmB,EACjC,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB,EACpC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,mBAAmB;IAYlD;;OAEG;IACI,KAAK,IAAI,IAAI;IAgBpB;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,GAAG,IAAI;IAIhE,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,YAAY,QAGvB;IAED;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmEzB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IASnB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA8BvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,UAAU;IAuClB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;YACW,iBAAiB;IAQ/B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACI,kBAAkB,IAAI,IAAI;IAUjC;;OAEG;IACI,eAAe,IAAI,IAAI;IAY9B;;OAEG;IACI,gBAAgB,IAAI,IAAI;IAY/B;;OAEG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B3C;;OAEG;IACI,WAAW,IAAI,aAAa;CAepC"}