homebridge 2.0.0-alpha.4 → 2.0.0-alpha.40

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 (89) hide show
  1. package/README.md +1 -1
  2. package/bin/homebridge.js +22 -0
  3. package/config-sample.json +12 -1
  4. package/dist/api.d.ts +226 -0
  5. package/dist/api.d.ts.map +1 -0
  6. package/dist/api.js +166 -0
  7. package/dist/api.js.map +1 -0
  8. package/dist/bridgeService.d.ts +125 -0
  9. package/dist/bridgeService.d.ts.map +1 -0
  10. package/dist/bridgeService.js +396 -0
  11. package/dist/bridgeService.js.map +1 -0
  12. package/dist/childBridgeFork.d.ts +38 -0
  13. package/dist/childBridgeFork.d.ts.map +1 -0
  14. package/dist/childBridgeFork.js +241 -2
  15. package/dist/childBridgeFork.js.map +1 -7
  16. package/dist/childBridgeService.d.ts +203 -0
  17. package/dist/childBridgeService.d.ts.map +1 -0
  18. package/dist/childBridgeService.js +451 -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 +90 -2
  23. package/dist/cli.js.map +1 -7
  24. package/dist/externalPortService.d.ts +33 -0
  25. package/dist/externalPortService.d.ts.map +1 -0
  26. package/dist/externalPortService.js +59 -0
  27. package/dist/externalPortService.js.map +1 -0
  28. package/dist/index.d.ts +85 -1099
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +20 -2
  31. package/dist/index.js.map +1 -7
  32. package/dist/ipcService.d.ts +30 -0
  33. package/dist/ipcService.d.ts.map +1 -0
  34. package/dist/ipcService.js +49 -0
  35. package/dist/ipcService.js.map +1 -0
  36. package/dist/logger.d.ts +78 -0
  37. package/dist/logger.d.ts.map +1 -0
  38. package/dist/logger.js +138 -0
  39. package/dist/logger.js.map +1 -0
  40. package/dist/matterConfigValidator.d.ts +34 -0
  41. package/dist/matterConfigValidator.d.ts.map +1 -0
  42. package/dist/matterConfigValidator.js +249 -0
  43. package/dist/matterConfigValidator.js.map +1 -0
  44. package/dist/matterService.d.ts +168 -0
  45. package/dist/matterService.d.ts.map +1 -0
  46. package/dist/matterService.js +677 -0
  47. package/dist/matterService.js.map +1 -0
  48. package/dist/matterTypes.d.ts +20 -0
  49. package/dist/matterTypes.d.ts.map +1 -0
  50. package/dist/matterTypes.js +278 -0
  51. package/dist/matterTypes.js.map +1 -0
  52. package/dist/platformAccessory.d.ts +56 -0
  53. package/dist/platformAccessory.d.ts.map +1 -0
  54. package/dist/platformAccessory.js +105 -0
  55. package/dist/platformAccessory.js.map +1 -0
  56. package/dist/plugin.d.ts +30 -0
  57. package/dist/plugin.d.ts.map +1 -0
  58. package/dist/plugin.js +182 -0
  59. package/dist/plugin.js.map +1 -0
  60. package/dist/pluginManager.d.ts +77 -0
  61. package/dist/pluginManager.d.ts.map +1 -0
  62. package/dist/pluginManager.js +375 -0
  63. package/dist/pluginManager.js.map +1 -0
  64. package/dist/server.d.ts +61 -0
  65. package/dist/server.d.ts.map +1 -0
  66. package/dist/server.js +467 -0
  67. package/dist/server.js.map +1 -0
  68. package/dist/storageService.d.ts +13 -0
  69. package/dist/storageService.d.ts.map +1 -0
  70. package/dist/storageService.js +41 -0
  71. package/dist/storageService.js.map +1 -0
  72. package/dist/user.d.ts +13 -0
  73. package/dist/user.d.ts.map +1 -0
  74. package/dist/user.js +29 -0
  75. package/dist/user.js.map +1 -0
  76. package/dist/util/mac.d.ts +5 -0
  77. package/dist/util/mac.d.ts.map +1 -0
  78. package/dist/util/mac.js +14 -0
  79. package/dist/util/mac.js.map +1 -0
  80. package/dist/util/matter-cli.d.ts +3 -0
  81. package/dist/util/matter-cli.d.ts.map +1 -0
  82. package/dist/util/matter-cli.js +211 -0
  83. package/dist/util/matter-cli.js.map +1 -0
  84. package/dist/version.d.ts +3 -0
  85. package/dist/version.d.ts.map +1 -0
  86. package/dist/version.js +16 -0
  87. package/dist/version.js.map +1 -0
  88. package/package.json +31 -34
  89. package/bin/homebridge +0 -19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginManager.js","sourceRoot":"","sources":["../src/pluginManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ export interface HomebridgeOptions {
2
+ keepOrphanedCachedAccessories?: boolean;
3
+ hideQRCode?: boolean;
4
+ insecureAccess?: boolean;
5
+ customPluginPath?: string;
6
+ noLogTimestamps?: boolean;
7
+ debugModeEnabled?: boolean;
8
+ forceColourLogging?: boolean;
9
+ customStoragePath?: string;
10
+ strictPluginResolution?: boolean;
11
+ }
12
+ export declare const enum ServerStatus {
13
+ /**
14
+ * When the server is starting up
15
+ */
16
+ PENDING = "pending",
17
+ /**
18
+ * When the server is online and has published the main bridge
19
+ */
20
+ OK = "ok",
21
+ /**
22
+ * When the server is shutting down
23
+ */
24
+ DOWN = "down"
25
+ }
26
+ export declare class Server {
27
+ private options;
28
+ private readonly api;
29
+ private readonly pluginManager;
30
+ private readonly bridgeService;
31
+ private readonly matterService;
32
+ private readonly ipcService;
33
+ private readonly externalPortService;
34
+ private readonly config;
35
+ private readonly childBridges;
36
+ private serverStatus;
37
+ constructor(options?: HomebridgeOptions);
38
+ /**
39
+ * Set the current server status and update parent via IPC
40
+ * @param status
41
+ */
42
+ private setServerStatus;
43
+ start(): Promise<void>;
44
+ teardown(): void;
45
+ private publishBridge;
46
+ private handlePublishMatterAccessories;
47
+ private handleUnpublishMatterAccessories;
48
+ private static loadConfig;
49
+ private loadAccessories;
50
+ private loadPlatforms;
51
+ /**
52
+ * Validate an external bridge config
53
+ */
54
+ private validateChildBridgeConfig;
55
+ /**
56
+ * Takes care of the IPC Events sent to Homebridge
57
+ */
58
+ private initializeIpcEventHandlers;
59
+ private printSetupInfo;
60
+ }
61
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAqCA,MAAM,WAAW,iBAAiB;IAChC,6BAA6B,CAAC,EAAE,OAAO,CAAA;IACvC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAGD,0BAAkB,YAAY;IAC5B;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,EAAE,OAAO;IAET;;OAEG;IACH,IAAI,SAAS;CACd;AAED,qBAAa,MAAM;IAiBf,OAAO,CAAC,OAAO;IAhBjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAGzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiD;IAG9E,OAAO,CAAC,YAAY,CAAqC;gBAG/C,OAAO,GAAE,iBAAsB;IAoEzC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC5B,QAAQ,IAAI,IAAI;IAQvB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,8BAA8B;IAUtC,OAAO,CAAC,gCAAgC;IAUxC,OAAO,CAAC,MAAM,CAAC,UAAU;IAoFzB,OAAO,CAAC,eAAe;IAoGvB,OAAO,CAAC,aAAa;IA4FrB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiCjC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAuClC,OAAO,CAAC,cAAc;CAqBvB"}
package/dist/server.js ADDED
@@ -0,0 +1,467 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import process from 'node:process';
3
+ import chalk from 'chalk';
4
+ import qrcode from 'qrcode-terminal';
5
+ import { HomebridgeAPI } from './api.js';
6
+ import { BridgeService } from './bridgeService.js';
7
+ import { ChildBridgeService } from './childBridgeService.js';
8
+ import { ExternalPortService } from './externalPortService.js';
9
+ import { IpcService } from './ipcService.js';
10
+ import { Logger } from './logger.js';
11
+ import { MatterService } from './matterService.js';
12
+ import { PluginManager } from './pluginManager.js';
13
+ import { User } from './user.js';
14
+ import { validMacAddress } from './util/mac.js';
15
+ const log = Logger.internal;
16
+ // eslint-disable-next-line no-restricted-syntax
17
+ export var ServerStatus;
18
+ (function (ServerStatus) {
19
+ /**
20
+ * When the server is starting up
21
+ */
22
+ ServerStatus["PENDING"] = "pending";
23
+ /**
24
+ * When the server is online and has published the main bridge
25
+ */
26
+ ServerStatus["OK"] = "ok";
27
+ /**
28
+ * When the server is shutting down
29
+ */
30
+ ServerStatus["DOWN"] = "down";
31
+ })(ServerStatus || (ServerStatus = {}));
32
+ export class Server {
33
+ options;
34
+ api;
35
+ pluginManager;
36
+ bridgeService;
37
+ matterService;
38
+ ipcService;
39
+ externalPortService;
40
+ config;
41
+ // used to keep track of child bridges
42
+ childBridges = new Map();
43
+ // current server status
44
+ serverStatus = "pending" /* ServerStatus.PENDING */;
45
+ constructor(options = {}) {
46
+ this.options = options;
47
+ this.config = Server.loadConfig();
48
+ // object we feed to Plugins and BridgeService
49
+ this.api = new HomebridgeAPI();
50
+ this.ipcService = new IpcService();
51
+ this.externalPortService = new ExternalPortService(this.config.ports);
52
+ // set status to pending
53
+ this.setServerStatus("pending" /* ServerStatus.PENDING */);
54
+ // create new plugin manager
55
+ const pluginManagerOptions = {
56
+ activePlugins: this.config.plugins,
57
+ disabledPlugins: this.config.disabledPlugins,
58
+ customPluginPath: options.customPluginPath,
59
+ strictPluginResolution: options.strictPluginResolution,
60
+ };
61
+ this.pluginManager = new PluginManager(this.api, pluginManagerOptions);
62
+ // create new bridge service
63
+ const bridgeConfig = {
64
+ cachedAccessoriesDir: User.cachedAccessoryPath(),
65
+ cachedAccessoriesItemName: 'cachedAccessories',
66
+ };
67
+ // shallow copy the homebridge options to the bridge options object
68
+ Object.assign(bridgeConfig, this.options);
69
+ this.bridgeService = new BridgeService(this.api, this.pluginManager, this.externalPortService, bridgeConfig, this.config.bridge, this.config);
70
+ // create Matter service
71
+ this.matterService = new MatterService(this.config.matter || {}, this.pluginManager, this.externalPortService, this.api, this.options);
72
+ // Set up Matter event handlers
73
+ this.api.on("publishMatterAccessories" /* InternalAPIEvent.PUBLISH_MATTER_ACCESSORIES */, this.handlePublishMatterAccessories.bind(this));
74
+ this.api.on("unpublishMatterAccessories" /* InternalAPIEvent.UNPUBLISH_MATTER_ACCESSORIES */, this.handleUnpublishMatterAccessories.bind(this));
75
+ // watch bridge events to check when server is online
76
+ this.bridgeService.bridge.on("advertised" /* AccessoryEventTypes.ADVERTISED */, () => {
77
+ this.setServerStatus("ok" /* ServerStatus.OK */);
78
+ });
79
+ // watch for the paired event to update the server status
80
+ this.bridgeService.bridge.on("paired" /* AccessoryEventTypes.PAIRED */, () => {
81
+ this.setServerStatus(this.serverStatus);
82
+ });
83
+ // watch for the unpaired event to update the server status
84
+ this.bridgeService.bridge.on("unpaired" /* AccessoryEventTypes.UNPAIRED */, () => {
85
+ this.setServerStatus(this.serverStatus);
86
+ });
87
+ }
88
+ /**
89
+ * Set the current server status and update parent via IPC
90
+ * @param status
91
+ */
92
+ setServerStatus(status) {
93
+ this.serverStatus = status;
94
+ this.ipcService.sendMessage("serverStatusUpdate" /* IpcOutgoingEvent.SERVER_STATUS_UPDATE */, {
95
+ status: this.serverStatus,
96
+ paired: this.bridgeService?.bridge?._accessoryInfo?.paired() ?? null,
97
+ setupUri: this.bridgeService?.bridge?.setupURI() ?? null,
98
+ name: this.bridgeService?.bridge?.displayName || this.config.bridge.name,
99
+ username: this.config.bridge.username,
100
+ pin: this.config.bridge.pin,
101
+ });
102
+ }
103
+ async start() {
104
+ if (this.config.bridge.disableIpc !== true) {
105
+ this.initializeIpcEventHandlers();
106
+ }
107
+ const promises = [];
108
+ // load the cached accessories
109
+ await this.bridgeService.loadCachedPlatformAccessoriesFromDisk();
110
+ // initialize plugins
111
+ await this.pluginManager.initializeInstalledPlugins();
112
+ if (this.config.platforms.length > 0) {
113
+ promises.push(...this.loadPlatforms());
114
+ }
115
+ if (this.config.accessories.length > 0) {
116
+ this.loadAccessories();
117
+ }
118
+ // start child bridges
119
+ for (const childBridge of this.childBridges.values()) {
120
+ childBridge.start();
121
+ }
122
+ // restore cached accessories
123
+ this.bridgeService.restoreCachedPlatformAccessories();
124
+ this.api.signalFinished();
125
+ // wait for all platforms to publish their accessories before we publish the bridge
126
+ await Promise.all(promises)
127
+ .then(() => this.publishBridge());
128
+ }
129
+ teardown() {
130
+ this.bridgeService.teardown();
131
+ this.matterService.stop().catch((error) => {
132
+ log.error('Failed to stop Matter service:', error);
133
+ });
134
+ this.setServerStatus("down" /* ServerStatus.DOWN */);
135
+ }
136
+ publishBridge() {
137
+ this.bridgeService.publishBridge();
138
+ // Initialize and start Matter service if enabled
139
+ this.matterService.initialize().then(() => {
140
+ this.matterService.start().catch((error) => {
141
+ log.error('Failed to start Matter service:', error);
142
+ });
143
+ }).catch((error) => {
144
+ log.error('Failed to initialize Matter service:', error);
145
+ });
146
+ this.printSetupInfo(this.config.bridge.pin);
147
+ }
148
+ handlePublishMatterAccessories(accessories) {
149
+ log.info(`Publishing ${accessories.length} accessories via Matter protocol`);
150
+ accessories.forEach((accessory) => {
151
+ this.matterService.publishAccessory(accessory).catch((error) => {
152
+ log.error(`Failed to publish accessory "${accessory.displayName}" via Matter:`, error);
153
+ });
154
+ });
155
+ }
156
+ handleUnpublishMatterAccessories(accessories) {
157
+ log.info(`Unpublishing ${accessories.length} accessories from Matter protocol`);
158
+ accessories.forEach((accessory) => {
159
+ this.matterService.unpublishAccessory(accessory).catch((error) => {
160
+ log.error(`Failed to unpublish accessory "${accessory.displayName}" from Matter:`, error);
161
+ });
162
+ });
163
+ }
164
+ static loadConfig() {
165
+ // Look for the configuration file
166
+ const configPath = User.configPath();
167
+ const defaultBridge = {
168
+ name: 'Homebridge',
169
+ username: 'CC:22:3D:E3:CE:30',
170
+ pin: '031-45-154',
171
+ };
172
+ if (!existsSync(configPath)) {
173
+ log.warn('config.json (%s) not found.', configPath);
174
+ return {
175
+ bridge: defaultBridge,
176
+ accessories: [],
177
+ platforms: [],
178
+ };
179
+ }
180
+ let config;
181
+ try {
182
+ config = JSON.parse(readFileSync(configPath, { encoding: 'utf8' }));
183
+ }
184
+ catch (error) {
185
+ log.error('There was a problem reading your config.json file.');
186
+ log.error('Please try pasting your config.json file here to validate it: https://jsonlint.com');
187
+ log.error('');
188
+ throw error;
189
+ }
190
+ if (config.ports !== undefined) {
191
+ if (config.ports.start && config.ports.end) {
192
+ if (config.ports.start > config.ports.end) {
193
+ log.error('Invalid port pool configuration. End should be greater than or equal to start.');
194
+ config.ports = undefined;
195
+ }
196
+ }
197
+ else {
198
+ log.error('Invalid configuration for \'ports\'. Missing \'start\' and \'end\' properties! Ignoring it!');
199
+ config.ports = undefined;
200
+ }
201
+ }
202
+ const bridge = config.bridge || defaultBridge;
203
+ bridge.name = bridge.name || defaultBridge.name;
204
+ bridge.username = bridge.username || defaultBridge.username;
205
+ bridge.pin = bridge.pin || defaultBridge.pin;
206
+ config.bridge = bridge;
207
+ const username = config.bridge.username;
208
+ if (!validMacAddress(username)) {
209
+ throw new Error(`Not a valid username: ${username}. Must be 6 pairs of colon-separated hexadecimal chars (A-F 0-9), like a MAC address.`);
210
+ }
211
+ config.accessories = config.accessories || [];
212
+ config.platforms = config.platforms || [];
213
+ if (!Array.isArray(config.accessories)) {
214
+ log.error('Value provided for accessories must be an array[]');
215
+ config.accessories = [];
216
+ }
217
+ if (!Array.isArray(config.platforms)) {
218
+ log.error('Value provided for platforms must be an array[]');
219
+ config.platforms = [];
220
+ }
221
+ log.info('Loaded config.json with %s accessories and %s platforms.', config.accessories.length, config.platforms.length);
222
+ if (config.bridge.advertiser) {
223
+ if (![
224
+ "bonjour-hap" /* MDNSAdvertiser.BONJOUR */,
225
+ "ciao" /* MDNSAdvertiser.CIAO */,
226
+ "avahi" /* MDNSAdvertiser.AVAHI */,
227
+ "resolved" /* MDNSAdvertiser.RESOLVED */,
228
+ ].includes(config.bridge.advertiser)) {
229
+ config.bridge.advertiser = undefined;
230
+ log.error('Value provided in bridge.advertiser is not valid, reverting to platform default.');
231
+ }
232
+ }
233
+ else {
234
+ config.bridge.advertiser = undefined;
235
+ }
236
+ return config;
237
+ }
238
+ loadAccessories() {
239
+ log.info(`Loading ${this.config.accessories.length} accessories...`);
240
+ this.config.accessories.forEach((accessoryConfig, index) => {
241
+ if (!accessoryConfig.accessory) {
242
+ log.warn('Your config.json contains an illegal accessory configuration object at position %d. '
243
+ + 'Missing property \'accessory\'. Skipping entry...', index + 1); // we rather count from 1 for the normal people?
244
+ return;
245
+ }
246
+ const accessoryIdentifier = accessoryConfig.accessory;
247
+ const displayName = accessoryConfig.name;
248
+ if (!displayName) {
249
+ log.warn('Could not load accessory %s at position %d as it is missing the required \'name\' property!', accessoryIdentifier, index + 1);
250
+ return;
251
+ }
252
+ let plugin;
253
+ let constructor;
254
+ try {
255
+ plugin = this.pluginManager.getPluginForAccessory(accessoryIdentifier);
256
+ }
257
+ catch (error) {
258
+ log.error(error.message);
259
+ return;
260
+ }
261
+ // check the plugin is not disabled
262
+ if (plugin.disabled) {
263
+ log.warn(`Ignoring config for the accessory "${accessoryIdentifier}" in your config.json as the plugin "${plugin.getPluginIdentifier()}" has been disabled.`);
264
+ return;
265
+ }
266
+ try {
267
+ constructor = plugin.getAccessoryConstructor(accessoryIdentifier);
268
+ }
269
+ catch (error) {
270
+ log.error(`Error loading the accessory "${accessoryIdentifier}" requested in your config.json at position ${index + 1} - this is likely an issue with the "${plugin.getPluginIdentifier()}" plugin.`);
271
+ log.error(error); // error message contains more information and full stack trace
272
+ return;
273
+ }
274
+ const logger = Logger.withPrefix(displayName);
275
+ logger('Initializing %s accessory...', accessoryIdentifier);
276
+ if (accessoryConfig._bridge) {
277
+ // ensure the username is always uppercase
278
+ accessoryConfig._bridge.username = accessoryConfig._bridge.username.toUpperCase();
279
+ try {
280
+ this.validateChildBridgeConfig("accessory" /* PluginType.ACCESSORY */, accessoryIdentifier, accessoryConfig._bridge);
281
+ }
282
+ catch (error) {
283
+ log.error(error.message);
284
+ return;
285
+ }
286
+ let childBridge;
287
+ if (this.childBridges.has(accessoryConfig._bridge.username)) {
288
+ childBridge = this.childBridges.get(accessoryConfig._bridge.username);
289
+ logger(`Adding to existing child bridge ${accessoryConfig._bridge.username}`);
290
+ }
291
+ else {
292
+ logger(`Initializing child bridge ${accessoryConfig._bridge.username}`);
293
+ childBridge = new ChildBridgeService("accessory" /* PluginType.ACCESSORY */, accessoryIdentifier, plugin, accessoryConfig._bridge, this.config, this.options, this.api, this.ipcService, this.externalPortService);
294
+ this.childBridges.set(accessoryConfig._bridge.username, childBridge);
295
+ }
296
+ // add config to child bridge service
297
+ childBridge.addConfig(accessoryConfig);
298
+ return;
299
+ }
300
+ const accessoryInstance = new constructor(logger, accessoryConfig, this.api);
301
+ // pass accessoryIdentifier for UUID generation, and optional parameter uuid_base which can be used instead of displayName for UUID generation
302
+ const accessory = this.bridgeService.createHAPAccessory(plugin, accessoryInstance, displayName, accessoryIdentifier, accessoryConfig.uuid_base);
303
+ if (accessory) {
304
+ try {
305
+ this.bridgeService.bridge.addBridgedAccessory(accessory);
306
+ }
307
+ catch (error) {
308
+ logger.error(`Error loading the accessory "${accessoryIdentifier}" from "${plugin.getPluginIdentifier()}" requested in your config.json:`, error.message);
309
+ }
310
+ }
311
+ else {
312
+ logger.info('Accessory %s returned empty set of services; not adding it to the bridge.', accessoryIdentifier);
313
+ }
314
+ });
315
+ }
316
+ loadPlatforms() {
317
+ log.info(`Loading ${this.config.platforms.length} platforms...`);
318
+ const promises = [];
319
+ this.config.platforms.forEach((platformConfig, index) => {
320
+ if (!platformConfig.platform) {
321
+ log.warn('Your config.json contains an illegal platform configuration object at position %d. '
322
+ + 'Missing property \'platform\'. Skipping entry...', index + 1); // we rather count from 1 for the normal people?
323
+ return;
324
+ }
325
+ const platformIdentifier = platformConfig.platform;
326
+ const displayName = platformConfig.name || platformIdentifier;
327
+ let plugin;
328
+ let constructor;
329
+ // do not load homebridge-config-ui-x when running in service mode
330
+ if (platformIdentifier === 'config' && process.env.UIX_SERVICE_MODE === '1') {
331
+ return;
332
+ }
333
+ try {
334
+ plugin = this.pluginManager.getPluginForPlatform(platformIdentifier);
335
+ }
336
+ catch (error) {
337
+ log.error(error.message);
338
+ return;
339
+ }
340
+ // check the plugin is not disabled
341
+ if (plugin.disabled) {
342
+ log.warn(`Ignoring config for the platform "${platformIdentifier}" in your config.json as the plugin "${plugin.getPluginIdentifier()}" has been disabled.`);
343
+ return;
344
+ }
345
+ try {
346
+ constructor = plugin.getPlatformConstructor(platformIdentifier);
347
+ }
348
+ catch (error) {
349
+ log.error(`Error loading the platform "${platformIdentifier}" requested in your config.json at position ${index + 1} - this is likely an issue with the "${plugin.getPluginIdentifier()}" plugin.`);
350
+ log.error(error); // error message contains more information and full stack trace
351
+ return;
352
+ }
353
+ const logger = Logger.withPrefix(displayName);
354
+ logger('Initializing %s platform...', platformIdentifier);
355
+ if (platformConfig._bridge) {
356
+ // ensure the username is always uppercase
357
+ platformConfig._bridge.username = platformConfig._bridge.username.toUpperCase();
358
+ try {
359
+ this.validateChildBridgeConfig("platform" /* PluginType.PLATFORM */, platformIdentifier, platformConfig._bridge);
360
+ }
361
+ catch (error) {
362
+ log.error(error.message);
363
+ return;
364
+ }
365
+ logger(`Initializing child bridge ${platformConfig._bridge.username}`);
366
+ const childBridge = new ChildBridgeService("platform" /* PluginType.PLATFORM */, platformIdentifier, plugin, platformConfig._bridge, this.config, this.options, this.api, this.ipcService, this.externalPortService);
367
+ this.childBridges.set(platformConfig._bridge.username, childBridge);
368
+ // add config to child bridge service
369
+ childBridge.addConfig(platformConfig);
370
+ return;
371
+ }
372
+ const platform = new constructor(logger, platformConfig, this.api);
373
+ if (HomebridgeAPI.isDynamicPlatformPlugin(platform)) {
374
+ plugin.assignDynamicPlatform(platformIdentifier, platform);
375
+ }
376
+ else if (HomebridgeAPI.isStaticPlatformPlugin(platform)) { // Plugin 1.0, load accessories
377
+ promises.push(this.bridgeService.loadPlatformAccessories(plugin, platform, platformIdentifier, logger));
378
+ }
379
+ else {
380
+ // otherwise it's a IndependentPlatformPlugin which doesn't expose any methods at all.
381
+ // We just call the constructor and let it be enabled.
382
+ }
383
+ });
384
+ return promises;
385
+ }
386
+ /**
387
+ * Validate an external bridge config
388
+ */
389
+ validateChildBridgeConfig(type, identifier, bridgeConfig) {
390
+ if (!validMacAddress(bridgeConfig.username)) {
391
+ throw new Error(`Error loading the ${type} "${identifier}" requested in your config.json - `
392
+ + `not a valid username in _bridge.username: "${bridgeConfig.username}". Must be 6 pairs of colon-separated hexadecimal chars (A-F 0-9), like a MAC address.`);
393
+ }
394
+ if (this.childBridges.has(bridgeConfig.username)) {
395
+ const childBridge = this.childBridges.get(bridgeConfig.username);
396
+ if (type === "platform" /* PluginType.PLATFORM */) {
397
+ // only a single platform can exist on one child bridge
398
+ throw new Error(`Error loading the ${type} "${identifier}" requested in your config.json - `
399
+ + `Duplicate username found in _bridge.username: "${bridgeConfig.username}". Each platform child bridge must have it's own unique username.`);
400
+ }
401
+ else if (childBridge?.identifier !== identifier) {
402
+ // only accessories of the same type can be added to the same child bridge
403
+ throw new Error(`Error loading the ${type} "${identifier}" requested in your config.json - `
404
+ + `Duplicate username found in _bridge.username: "${bridgeConfig.username}". You can only group accessories of the same type in a child bridge.`);
405
+ }
406
+ }
407
+ if (bridgeConfig.username === this.config.bridge.username.toUpperCase()) {
408
+ throw new Error(`Error loading the ${type} "${identifier}" requested in your config.json - `
409
+ + `Username found in _bridge.username: "${bridgeConfig.username}" is the same as the main bridge. Each child bridge platform/accessory must have it's own unique username.`);
410
+ }
411
+ }
412
+ /**
413
+ * Takes care of the IPC Events sent to Homebridge
414
+ */
415
+ initializeIpcEventHandlers() {
416
+ // start ipc service
417
+ this.ipcService.start();
418
+ // handle restart child bridge event
419
+ this.ipcService.on("restartChildBridge" /* IpcIncomingEvent.RESTART_CHILD_BRIDGE */, (username) => {
420
+ // noinspection SuspiciousTypeOfGuard
421
+ if (typeof username === 'string') {
422
+ const childBridge = this.childBridges.get(username.toUpperCase());
423
+ childBridge?.restartChildBridge();
424
+ }
425
+ });
426
+ // handle stop child bridge event
427
+ this.ipcService.on("stopChildBridge" /* IpcIncomingEvent.STOP_CHILD_BRIDGE */, (username) => {
428
+ // noinspection SuspiciousTypeOfGuard
429
+ if (typeof username === 'string') {
430
+ const childBridge = this.childBridges.get(username.toUpperCase());
431
+ childBridge?.stopChildBridge();
432
+ }
433
+ });
434
+ // handle start child bridge event
435
+ this.ipcService.on("startChildBridge" /* IpcIncomingEvent.START_CHILD_BRIDGE */, (username) => {
436
+ // noinspection SuspiciousTypeOfGuard
437
+ if (typeof username === 'string') {
438
+ const childBridge = this.childBridges.get(username.toUpperCase());
439
+ childBridge?.startChildBridge();
440
+ }
441
+ });
442
+ this.ipcService.on("childBridgeMetadataRequest" /* IpcIncomingEvent.CHILD_BRIDGE_METADATA_REQUEST */, () => {
443
+ this.ipcService.sendMessage("childBridgeMetadataResponse" /* IpcOutgoingEvent.CHILD_BRIDGE_METADATA_RESPONSE */, Array.from(this.childBridges.values()).map(x => x.getMetadata()));
444
+ });
445
+ }
446
+ printSetupInfo(pin) {
447
+ /* eslint-disable no-console */
448
+ console.log('Setup Payload:');
449
+ console.log(this.bridgeService.bridge.setupURI());
450
+ if (!this.options.hideQRCode) {
451
+ console.log('Scan this code with your HomeKit app on your iOS device to pair with Homebridge:');
452
+ qrcode.setErrorLevel('M'); // HAP specifies level M or higher for ECC
453
+ qrcode.generate(this.bridgeService.bridge.setupURI());
454
+ console.log('Or enter this code with your HomeKit app on your iOS device to pair with Homebridge:');
455
+ }
456
+ else {
457
+ console.log('Enter this code with your HomeKit app on your iOS device to pair with Homebridge:');
458
+ }
459
+ console.log(chalk.black.bgWhite(' '));
460
+ console.log(chalk.black.bgWhite(' ┌────────────┐ '));
461
+ console.log(chalk.black.bgWhite(` │ ${pin} │ `));
462
+ console.log(chalk.black.bgWhite(' └────────────┘ '));
463
+ console.log(chalk.black.bgWhite(' '));
464
+ /* eslint-enable no-console */
465
+ }
466
+ }
467
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare class StorageService {
2
+ baseDirectory: string;
3
+ constructor(baseDirectory: string);
4
+ initSync(): void;
5
+ getItemSync<T>(itemName: string): T | null;
6
+ getItem<T>(itemName: string): Promise<T | null>;
7
+ setItemSync(itemName: string, data: Record<any, any> | Array<any>): void;
8
+ setItem(itemName: string, data: Record<any, any> | Array<any>): Promise<void>;
9
+ copyItem(srcItemName: string, destItemName: string): Promise<void>;
10
+ copyItemSync(srcItemName: string, destItemName: string): void;
11
+ removeItemSync(itemName: string): void;
12
+ }
13
+ //# sourceMappingURL=storageService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storageService.d.ts","sourceRoot":"","sources":["../src/storageService.ts"],"names":[],"mappings":"AAIA,qBAAa,cAAc;IAEhB,aAAa,EAAE,MAAM;gBAArB,aAAa,EAAE,MAAM;IAGvB,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAUpC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAUrD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;IAIxE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7E,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI7D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAG9C"}