homebridge 2.0.0-beta.5 → 2.0.0-beta.50

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 +48 -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,428 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ChildBridgeService = exports.ChildBridgeStatus = exports.ChildProcessMessageEventType = void 0;
7
- const child_process_1 = __importDefault(require("child_process"));
8
- const path_1 = __importDefault(require("path"));
9
- const fs_extra_1 = __importDefault(require("fs-extra"));
10
- const logger_1 = require("./logger");
11
- const user_1 = require("./user");
12
- var ChildProcessMessageEventType;
13
- (function (ChildProcessMessageEventType) {
14
- /**
15
- * Sent from the child process when it is ready to accept config
16
- */
17
- ChildProcessMessageEventType["READY"] = "ready";
18
- /**
19
- * Sent to the child process with a ChildProcessLoadEventData payload
20
- */
21
- ChildProcessMessageEventType["LOAD"] = "load";
22
- /**
23
- * Sent from the child process once it has loaded the plugin
24
- */
25
- ChildProcessMessageEventType["LOADED"] = "loaded";
26
- /**
27
- * Sent to the child process telling it to start
28
- */
29
- ChildProcessMessageEventType["START"] = "start";
30
- /**
31
- * Sent from the child process when the bridge is online
32
- */
33
- ChildProcessMessageEventType["ONLINE"] = "online";
34
- /**
35
- * Sent from the child when it wants to request port allocation for an external accessory
36
- */
37
- ChildProcessMessageEventType["PORT_REQUEST"] = "portRequest";
38
- /**
39
- * Sent from the parent with the port allocation response
40
- */
41
- ChildProcessMessageEventType["PORT_ALLOCATED"] = "portAllocated";
42
- /**
43
- * Sent from the child to update its current status
44
- */
45
- ChildProcessMessageEventType["STATUS_UPDATE"] = "status";
46
- })(ChildProcessMessageEventType || (exports.ChildProcessMessageEventType = ChildProcessMessageEventType = {}));
47
- var ChildBridgeStatus;
48
- (function (ChildBridgeStatus) {
49
- /**
50
- * When the child bridge is loading, or restarting
51
- */
52
- ChildBridgeStatus["PENDING"] = "pending";
53
- /**
54
- * The child bridge is online and has published it's accessory
55
- */
56
- ChildBridgeStatus["OK"] = "ok";
57
- /**
58
- * The bridge is shutting down, or the process ended unexpectedly
59
- */
60
- ChildBridgeStatus["DOWN"] = "down";
61
- })(ChildBridgeStatus || (exports.ChildBridgeStatus = ChildBridgeStatus = {}));
62
- /**
63
- * Manages the child processes of platforms/accessories being exposed as separate forked bridges.
64
- * A child bridge runs a single platform or accessory.
65
- */
66
- class ChildBridgeService {
67
- type;
68
- identifier;
69
- plugin;
70
- bridgeConfig;
71
- homebridgeConfig;
72
- homebridgeOptions;
73
- api;
74
- ipcService;
75
- externalPortService;
76
- child;
77
- args = [];
78
- processEnv = {};
79
- shuttingDown = false;
80
- lastBridgeStatus = "pending" /* ChildBridgeStatus.PENDING */;
81
- pairedStatus = null;
82
- manuallyStopped = false;
83
- setupUri = null;
84
- pluginConfig = [];
85
- log;
86
- displayName;
87
- constructor(type, identifier, plugin, bridgeConfig, homebridgeConfig, homebridgeOptions, api, ipcService, externalPortService) {
88
- this.type = type;
89
- this.identifier = identifier;
90
- this.plugin = plugin;
91
- this.bridgeConfig = bridgeConfig;
92
- this.homebridgeConfig = homebridgeConfig;
93
- this.homebridgeOptions = homebridgeOptions;
94
- this.api = api;
95
- this.ipcService = ipcService;
96
- this.externalPortService = externalPortService;
97
- this.log = logger_1.Logger.withPrefix(this.plugin.getPluginIdentifier());
98
- this.api.on("shutdown", () => {
99
- this.shuttingDown = true;
100
- this.teardown();
101
- });
102
- // make sure we don't hit the max listeners limit
103
- this.api.setMaxListeners(this.api.getMaxListeners() + 1);
104
- }
105
- /**
106
- * Start the child bridge service
107
- */
108
- start() {
109
- this.setProcessFlags();
110
- this.setProcessEnv();
111
- this.startChildProcess();
112
- // set display name
113
- if (this.pluginConfig.length > 1 || this.pluginConfig.length === 0) {
114
- this.displayName = this.plugin.getPluginIdentifier();
115
- }
116
- else {
117
- this.displayName = this.pluginConfig[0]?.name || this.plugin.getPluginIdentifier();
118
- }
119
- // re-configured log with display name
120
- this.log = logger_1.Logger.withPrefix(this.displayName);
121
- }
122
- /**
123
- * Add a config block to a child bridge.
124
- * Platform child bridges can only contain one config block.
125
- * @param config
126
- */
127
- addConfig(config) {
128
- this.pluginConfig.push(config);
129
- }
130
- get bridgeStatus() {
131
- return this.lastBridgeStatus;
132
- }
133
- set bridgeStatus(value) {
134
- this.lastBridgeStatus = value;
135
- this.sendStatusUpdate();
136
- }
137
- /**
138
- * Start the child bridge process
139
- */
140
- startChildProcess() {
141
- this.bridgeStatus = "pending" /* ChildBridgeStatus.PENDING */;
142
- this.child = child_process_1.default.fork(path_1.default.resolve(__dirname, "childBridgeFork.js"), this.args, this.processEnv);
143
- this.child.stdout?.on("data", (data) => {
144
- process.stdout.write(data);
145
- });
146
- this.child.stderr?.on("data", (data) => {
147
- process.stderr.write(data);
148
- });
149
- this.child.on("exit", () => {
150
- this.log.warn("Child bridge process ended");
151
- });
152
- this.child.on("error", (e) => {
153
- this.bridgeStatus = "down" /* ChildBridgeStatus.DOWN */;
154
- this.log.error("Child process error", e);
155
- });
156
- this.child.once("close", (code, signal) => {
157
- this.bridgeStatus = "down" /* ChildBridgeStatus.DOWN */;
158
- this.handleProcessClose(code, signal);
159
- });
160
- // handle incoming ipc messages from the child process
161
- this.child.on("message", (message) => {
162
- if (typeof message !== "object" || !message.id) {
163
- return;
164
- }
165
- switch (message.id) {
166
- case "ready" /* ChildProcessMessageEventType.READY */: {
167
- this.log(`Launched child bridge with PID ${this.child?.pid}`);
168
- this.loadPlugin();
169
- break;
170
- }
171
- case "loaded" /* ChildProcessMessageEventType.LOADED */: {
172
- const version = message.data.version;
173
- if (this.pluginConfig.length > 1) {
174
- this.log(`Loaded ${this.plugin.getPluginIdentifier()} v${version} child bridge successfully with ${this.pluginConfig.length} accessories`);
175
- }
176
- else {
177
- this.log(`Loaded ${this.plugin.getPluginIdentifier()} v${version} child bridge successfully`);
178
- }
179
- this.startBridge();
180
- break;
181
- }
182
- case "online" /* ChildProcessMessageEventType.ONLINE */: {
183
- this.bridgeStatus = "ok" /* ChildBridgeStatus.OK */;
184
- break;
185
- }
186
- case "portRequest" /* ChildProcessMessageEventType.PORT_REQUEST */: {
187
- this.handlePortRequest(message.data);
188
- break;
189
- }
190
- case "status" /* ChildProcessMessageEventType.STATUS_UPDATE */: {
191
- this.pairedStatus = message.data.paired;
192
- this.setupUri = message.data.setupUri;
193
- this.sendStatusUpdate();
194
- break;
195
- }
196
- }
197
- });
198
- }
199
- /**
200
- * Called when the child bridge process exits, if Homebridge is not shutting down, it will restart the process
201
- * @param code
202
- * @param signal
203
- */
204
- handleProcessClose(code, signal) {
205
- this.log(`Process Ended. Code: ${code}, Signal: ${signal}`);
206
- setTimeout(() => {
207
- if (!this.shuttingDown) {
208
- this.log("Restarting Process...");
209
- this.startChildProcess();
210
- }
211
- }, 7000);
212
- }
213
- /**
214
- * Helper function to send a message to the child process
215
- * @param type
216
- * @param data
217
- */
218
- sendMessage(type, data) {
219
- if (this.child && this.child.connected) {
220
- this.child.send({
221
- id: type,
222
- data,
223
- });
224
- }
225
- }
226
- /**
227
- * Some plugins may make use of the homebridge process flags
228
- * These will be passed through to the forked process
229
- */
230
- setProcessFlags() {
231
- if (this.homebridgeOptions.debugModeEnabled) {
232
- this.args.push("-D");
233
- }
234
- if (this.homebridgeOptions.forceColourLogging) {
235
- this.args.push("-C");
236
- }
237
- if (this.homebridgeOptions.insecureAccess) {
238
- this.args.push("-I");
239
- }
240
- if (this.homebridgeOptions.noLogTimestamps) {
241
- this.args.push("-T");
242
- }
243
- if (this.homebridgeOptions.keepOrphanedCachedAccessories) {
244
- this.args.push("-K");
245
- }
246
- if (this.homebridgeOptions.customStoragePath) {
247
- this.args.push("-U", this.homebridgeOptions.customStoragePath);
248
- }
249
- if (this.homebridgeOptions.customPluginPath) {
250
- this.args.push("-P", this.homebridgeOptions.customPluginPath);
251
- }
252
- }
253
- /**
254
- * Set environment variables for the child process
255
- */
256
- setProcessEnv() {
257
- this.processEnv = {
258
- env: {
259
- ...process.env,
260
- DEBUG: `${process.env.DEBUG || ""} ${this.bridgeConfig.env?.DEBUG || ""}`.trim(),
261
- NODE_OPTIONS: `${process.env.NODE_OPTIONS || ""} ${this.bridgeConfig.env?.NODE_OPTIONS || ""}`.trim(),
262
- },
263
- silent: true,
264
- };
265
- }
266
- /**
267
- * Tell the child process to load the given plugin
268
- */
269
- loadPlugin() {
270
- const bridgeConfig = {
271
- name: this.bridgeConfig.name || this.displayName || this.plugin.getPluginIdentifier(),
272
- port: this.bridgeConfig.port,
273
- username: this.bridgeConfig.username,
274
- advertiser: this.homebridgeConfig.bridge.advertiser,
275
- pin: this.bridgeConfig.pin || this.homebridgeConfig.bridge.pin,
276
- bind: this.homebridgeConfig.bridge.bind,
277
- setupID: this.bridgeConfig.setupID,
278
- manufacturer: this.bridgeConfig.manufacturer || this.homebridgeConfig.bridge.manufacturer,
279
- model: this.bridgeConfig.model || this.homebridgeConfig.bridge.model,
280
- firmwareRevision: this.bridgeConfig.firmwareRevision || this.homebridgeConfig.bridge.firmwareRevision,
281
- };
282
- const bridgeOptions = {
283
- cachedAccessoriesDir: user_1.User.cachedAccessoryPath(),
284
- cachedAccessoriesItemName: "cachedAccessories." + this.bridgeConfig.username.replace(/:/g, "").toUpperCase(),
285
- };
286
- // shallow copy the homebridge options to the bridge options object
287
- Object.assign(bridgeOptions, this.homebridgeOptions);
288
- this.sendMessage("load" /* ChildProcessMessageEventType.LOAD */, {
289
- type: this.type,
290
- identifier: this.identifier,
291
- pluginPath: this.plugin.getPluginPath(),
292
- pluginConfig: this.pluginConfig,
293
- bridgeConfig,
294
- bridgeOptions,
295
- homebridgeConfig: {
296
- bridge: this.homebridgeConfig.bridge,
297
- ports: this.homebridgeConfig.ports,
298
- disabledPlugins: [], // not used by child bridges
299
- accessories: [], // not used by child bridges
300
- platforms: [], // not used by child bridges
301
- },
302
- });
303
- }
304
- /**
305
- * Tell the child bridge to start broadcasting
306
- */
307
- startBridge() {
308
- this.sendMessage("start" /* ChildProcessMessageEventType.START */);
309
- }
310
- /**
311
- * Handle external port requests from child
312
- */
313
- async handlePortRequest(request) {
314
- const port = await this.externalPortService.requestPort(request.username);
315
- this.sendMessage("portAllocated" /* ChildProcessMessageEventType.PORT_ALLOCATED */, {
316
- username: request.username,
317
- port: port,
318
- });
319
- }
320
- /**
321
- * Send sigterm to the child bridge
322
- */
323
- teardown() {
324
- if (this.child && this.child.connected) {
325
- this.bridgeStatus = "down" /* ChildBridgeStatus.DOWN */;
326
- this.child.kill("SIGTERM");
327
- }
328
- }
329
- /**
330
- * Trigger sending child bridge metadata to the process parent via IPC
331
- */
332
- sendStatusUpdate() {
333
- this.ipcService.sendMessage("childBridgeStatusUpdate" /* IpcOutgoingEvent.CHILD_BRIDGE_STATUS_UPDATE */, this.getMetadata());
334
- }
335
- /**
336
- * Restarts the child bridge process
337
- */
338
- restartChildBridge() {
339
- if (this.manuallyStopped) {
340
- this.startChildBridge();
341
- }
342
- else {
343
- this.log.warn("Restarting child bridge...");
344
- this.refreshConfig();
345
- this.teardown();
346
- }
347
- }
348
- /**
349
- * Stops the child bridge, not starting it again
350
- */
351
- stopChildBridge() {
352
- if (!this.shuttingDown) {
353
- this.log.warn("Stopping child bridge (will not restart)...");
354
- this.shuttingDown = true;
355
- this.manuallyStopped = true;
356
- this.child?.removeAllListeners("close");
357
- this.teardown();
358
- }
359
- else {
360
- this.log.warn("Bridge already shutting down or stopped.");
361
- }
362
- }
363
- /**
364
- * Starts the child bridge, only if it was manually stopped and is no longer running
365
- */
366
- startChildBridge() {
367
- if (this.manuallyStopped && this.bridgeStatus === "down" /* ChildBridgeStatus.DOWN */ && (!this.child || !this.child.connected)) {
368
- this.log.warn("Starting child bridge...");
369
- this.refreshConfig();
370
- this.startChildProcess();
371
- this.shuttingDown = false;
372
- this.manuallyStopped = false;
373
- }
374
- else {
375
- this.log.warn("Cannot start child bridge, it is still running or was not manually stopped");
376
- }
377
- }
378
- /**
379
- * Read the config.json file from disk and refresh the plugin config block for just this plugin
380
- */
381
- async refreshConfig() {
382
- try {
383
- const homebridgeConfig = await fs_extra_1.default.readJson(user_1.User.configPath());
384
- if (this.type === "platform" /* PluginType.PLATFORM */) {
385
- const config = homebridgeConfig.platforms?.filter(x => x.platform === this.identifier && x._bridge?.username === this.bridgeConfig.username);
386
- if (config.length) {
387
- this.pluginConfig = config;
388
- this.bridgeConfig = this.pluginConfig[0]._bridge || this.bridgeConfig;
389
- }
390
- else {
391
- this.log.warn("Platform config could not be found, using existing config.");
392
- }
393
- }
394
- else if (this.type === "accessory" /* PluginType.ACCESSORY */) {
395
- const config = homebridgeConfig.accessories?.filter(x => x.accessory === this.identifier && x._bridge?.username === this.bridgeConfig.username);
396
- if (config.length) {
397
- this.pluginConfig = config;
398
- this.bridgeConfig = this.pluginConfig[0]._bridge || this.bridgeConfig;
399
- }
400
- else {
401
- this.log.warn("Accessory config could not be found, using existing config.");
402
- }
403
- }
404
- }
405
- catch (e) {
406
- this.log.error("Failed to refresh plugin config:", e.message);
407
- }
408
- }
409
- /**
410
- * Returns metadata about this child bridge
411
- */
412
- getMetadata() {
413
- return {
414
- status: this.bridgeStatus,
415
- paired: this.pairedStatus,
416
- setupUri: this.setupUri,
417
- username: this.bridgeConfig.username,
418
- pin: this.bridgeConfig.pin || this.homebridgeConfig.bridge.pin,
419
- name: this.bridgeConfig.name || this.displayName || this.plugin.getPluginIdentifier(),
420
- plugin: this.plugin.getPluginIdentifier(),
421
- identifier: this.identifier,
422
- pid: this.child?.pid,
423
- manuallyStopped: this.manuallyStopped,
424
- };
425
- }
426
- }
427
- exports.ChildBridgeService = ChildBridgeService;
428
- //# sourceMappingURL=childBridgeService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"childBridgeService.js","sourceRoot":"","sources":["../src/childBridgeService.ts"],"names":[],"mappings":"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"}
package/lib/cli.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import "source-map-support/register";
2
- declare const _default: () => void;
3
- export = _default;
4
- //# sourceMappingURL=cli.d.ts.map
package/lib/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;8BAoBZ,IAAI;AAA7B,kBAqFC"}
package/lib/cli.js DELETED
@@ -1,111 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- require("source-map-support/register"); // registering node-source-map-support for typescript stack traces
26
- const commander_1 = require("commander");
27
- const hap_nodejs_1 = require("hap-nodejs");
28
- const semver_1 = require("semver");
29
- const logger_1 = require("./logger");
30
- const server_1 = require("./server");
31
- const user_1 = require("./user");
32
- const version_1 = __importStar(require("./version"));
33
- const log = logger_1.Logger.internal;
34
- const requiredNodeVersion = (0, version_1.getRequiredNodeVersion)();
35
- if (requiredNodeVersion && !(0, semver_1.satisfies)(process.version, requiredNodeVersion)) {
36
- log.warn(`Homebridge requires Node.js version of ${requiredNodeVersion} which does \
37
- not satisfy the current Node.js version of ${process.version}. You may need to upgrade your installation of Node.js - see https://homebridge.io/w/JTKEF`);
38
- }
39
- module.exports = function cli() {
40
- let insecureAccess = false;
41
- let hideQRCode = false;
42
- let keepOrphans = false;
43
- let customPluginPath = undefined;
44
- let strictPluginResolution = false;
45
- let noLogTimestamps = false;
46
- let debugModeEnabled = false;
47
- let forceColourLogging = false;
48
- let customStoragePath = undefined;
49
- let shuttingDown = false;
50
- const program = new commander_1.Command();
51
- program
52
- .version((0, version_1.default)())
53
- .option("-C, --color", "force color in logging", () => forceColourLogging = true)
54
- .option("-D, --debug", "turn on debug level logging", () => debugModeEnabled = true)
55
- .option("-I, --insecure", "allow unauthenticated requests (for easier hacking)", () => insecureAccess = true)
56
- .option("-P, --plugin-path [path]", "look for plugins installed at [path] as well as the default locations ([path] can also point to a single plugin)", path => customPluginPath = path)
57
- .option("-Q, --no-qrcode", "do not issue QRcode in logging", () => hideQRCode = true)
58
- .option("-K, --keep-orphans", "keep cached accessories for which the associated plugin is not loaded", () => keepOrphans = true)
59
- .option("-T, --no-timestamp", "do not issue timestamps in logging", () => noLogTimestamps = true)
60
- .option("-U, --user-storage-path [path]", "look for homebridge user files at [path] instead of the default location (~/.homebridge)", path => customStoragePath = path)
61
- .option("--strict-plugin-resolution", "only load plugins from the --plugin-path if set, otherwise from the primary global node_modules", () => strictPluginResolution = true)
62
- .parse(process.argv);
63
- if (noLogTimestamps) {
64
- logger_1.Logger.setTimestampEnabled(false);
65
- }
66
- if (debugModeEnabled) {
67
- logger_1.Logger.setDebugEnabled(true);
68
- }
69
- if (forceColourLogging) {
70
- logger_1.Logger.forceColor();
71
- }
72
- if (customStoragePath) {
73
- user_1.User.setStoragePath(customStoragePath);
74
- }
75
- // Initialize HAP-NodeJS with a custom persist directory
76
- hap_nodejs_1.HAPStorage.setCustomStoragePath(user_1.User.persistPath());
77
- const options = {
78
- keepOrphanedCachedAccessories: keepOrphans,
79
- insecureAccess: insecureAccess,
80
- hideQRCode: hideQRCode,
81
- customPluginPath: customPluginPath,
82
- noLogTimestamps: noLogTimestamps,
83
- debugModeEnabled: debugModeEnabled,
84
- forceColourLogging: forceColourLogging,
85
- customStoragePath: customStoragePath,
86
- strictPluginResolution: strictPluginResolution,
87
- };
88
- const server = new server_1.Server(options);
89
- const signalHandler = (signal, signalNum) => {
90
- if (shuttingDown) {
91
- return;
92
- }
93
- shuttingDown = true;
94
- log.info("Got %s, shutting down Homebridge...", signal);
95
- setTimeout(() => process.exit(128 + signalNum), 5000);
96
- server.teardown();
97
- };
98
- process.on("SIGINT", signalHandler.bind(undefined, "SIGINT", 2));
99
- process.on("SIGTERM", signalHandler.bind(undefined, "SIGTERM", 15));
100
- const errorHandler = (error) => {
101
- if (error.stack) {
102
- log.error(error.stack);
103
- }
104
- if (!shuttingDown) {
105
- process.kill(process.pid, "SIGTERM");
106
- }
107
- };
108
- process.on("uncaughtException", errorHandler);
109
- server.start().catch(errorHandler);
110
- };
111
- //# sourceMappingURL=cli.js.map
package/lib/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAqC,CAAC,kEAAkE;AACxG,yCAAoC;AACpC,2CAAwC;AACxC,mCAAmC;AACnC,qCAAkC;AAClC,qCAAkC;AAElC,iCAA8B;AAC9B,qDAA+D;AAG/D,MAAM,GAAG,GAAG,eAAM,CAAC,QAAQ,CAAC;AAE5B,MAAM,mBAAmB,GAAG,IAAA,gCAAsB,GAAE,CAAC;AACrD,IAAI,mBAAmB,IAAI,CAAC,IAAA,kBAAS,EAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,EAAE,CAAC;IAC5E,GAAG,CAAC,IAAI,CAAC,0CAA0C,mBAAmB;6CAC3B,OAAO,CAAC,OAAO,4FAA4F,CAAC,CAAC;AAC1J,CAAC;AAGD,iBAAS,SAAS,GAAG;IACnB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,gBAAgB,GAAuB,SAAS,CAAC;IACrD,IAAI,sBAAsB,GAAG,KAAK,CAAC;IACnC,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,iBAAiB,GAAuB,SAAS,CAAC;IAEtD,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,OAAO,CAAC,IAAA,iBAAU,GAAE,CAAC;SACrB,MAAM,CAAC,aAAa,EAAE,wBAAwB,EAAE,GAAG,EAAE,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChF,MAAM,CAAC,aAAa,EAAE,6BAA6B,EAAE,GAAG,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC;SACnF,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,EAAE,GAAG,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5G,MAAM,CAAC,0BAA0B,EAAE,kHAAkH,EAAE,IAAI,CAAC,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC;SACvL,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,EAAE,GAAG,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;SACpF,MAAM,CAAC,oBAAoB,EAAE,uEAAuE,EAAE,GAAG,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;SAC/H,MAAM,CAAC,oBAAoB,EAAE,oCAAoC,EAAE,GAAG,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC;SAChG,MAAM,CAAC,gCAAgC,EAAE,0FAA0F,EAAE,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,IAAI,CAAC;SACtK,MAAM,CAAC,4BAA4B,EAAE,iGAAiG,EAAE,GAAG,EAAE,CAAC,sBAAsB,GAAG,IAAI,CAAC;SAC5K,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,IAAI,eAAe,EAAE,CAAC;QACpB,eAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,eAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,kBAAkB,EAAE,CAAC;QACvB,eAAM,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,WAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IAED,wDAAwD;IACxD,uBAAU,CAAC,oBAAoB,CAAC,WAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAEpD,MAAM,OAAO,GAAsB;QACjC,6BAA6B,EAAE,WAAW;QAC1C,cAAc,EAAE,cAAc;QAC9B,UAAU,EAAE,UAAU;QACtB,gBAAgB,EAAE,gBAAgB;QAClC,eAAe,EAAE,eAAe;QAChC,gBAAgB,EAAE,gBAAgB;QAClC,kBAAkB,EAAE,kBAAkB;QACtC,iBAAiB,EAAE,iBAAiB;QACpC,sBAAsB,EAAE,sBAAsB;KAC/C,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,aAAa,GAAG,CAAC,MAAe,EAAE,SAAiB,EAAQ,EAAE;QACjE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,YAAY,GAAG,IAAI,CAAC;QAEpB,GAAG,CAAC,IAAI,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;QACxD,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QAEtD,MAAM,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAEpE,MAAM,YAAY,GAAG,CAAC,KAAY,EAAQ,EAAE;QAC1C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC,CAAA"}
@@ -1,33 +0,0 @@
1
- import type { MacAddress } from "hap-nodejs";
2
- import type { ChildBridgeFork } from "./childBridgeFork";
3
- export interface ExternalPortsConfiguration {
4
- start: number;
5
- end: number;
6
- }
7
- /**
8
- * Allocates ports from the user defined `config.ports` option
9
- * This service is used to allocate ports for external accessories on the main bridge, and child bridges.
10
- */
11
- export declare class ExternalPortService {
12
- private externalPorts?;
13
- private nextExternalPort?;
14
- private allocatedPorts;
15
- constructor(externalPorts?: ExternalPortsConfiguration | undefined);
16
- /**
17
- * Returns the next available port in the external port config.
18
- * If the external port is not configured by the user it will return null.
19
- * If the port range has been exhausted it will return null.
20
- */
21
- requestPort(username: MacAddress): Promise<number | undefined>;
22
- private getNextFreePort;
23
- }
24
- /**
25
- * This is the child bridge version of the port allocation service.
26
- * It requests a free port from the main bridge's port service.
27
- */
28
- export declare class ChildBridgeExternalPortService extends ExternalPortService {
29
- private childBridge;
30
- constructor(childBridge: ChildBridgeFork);
31
- requestPort(username: MacAddress): Promise<number | undefined>;
32
- }
33
- //# sourceMappingURL=externalPortService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"externalPortService.d.ts","sourceRoot":"","sources":["../src/externalPortService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,aAAa,CAAC;IAJxB,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,cAAc,CAAkD;gBAG9D,aAAa,CAAC,EAAE,0BAA0B,YAAA;IAGpD;;;;OAIG;IACU,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAa3E,OAAO,CAAC,eAAe;CAoBxB;AAED;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mBAAmB;IAEnE,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,eAAe;IAKzB,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAG5E"}