homebridge 2.0.0-alpha.3 → 2.0.0-alpha.5

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 (110) hide show
  1. package/README.md +16 -17
  2. package/bin/homebridge +8 -6
  3. package/config-sample.json +3 -3
  4. package/{lib → dist}/api.d.ts +23 -40
  5. package/dist/api.d.ts.map +1 -0
  6. package/{lib → dist}/api.js +38 -64
  7. package/dist/api.js.map +1 -0
  8. package/{lib → dist}/bridgeService.d.ts +10 -9
  9. package/dist/bridgeService.d.ts.map +1 -0
  10. package/{lib → dist}/bridgeService.js +79 -121
  11. package/dist/bridgeService.js.map +1 -0
  12. package/{lib → dist}/childBridgeFork.d.ts +4 -3
  13. package/dist/childBridgeFork.d.ts.map +1 -0
  14. package/{lib → dist}/childBridgeFork.js +38 -41
  15. package/dist/childBridgeFork.js.map +1 -0
  16. package/{lib → dist}/childBridgeService.d.ts +8 -7
  17. package/dist/childBridgeService.d.ts.map +1 -0
  18. package/{lib → dist}/childBridgeService.js +54 -55
  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 +89 -0
  23. package/dist/cli.js.map +1 -0
  24. package/{lib → dist}/externalPortService.d.ts +2 -2
  25. package/{lib → dist}/externalPortService.d.ts.map +1 -1
  26. package/{lib → dist}/externalPortService.js +4 -9
  27. package/dist/externalPortService.js.map +1 -0
  28. package/{lib → dist}/index.d.ts +29 -29
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +19 -0
  31. package/dist/index.js.map +1 -0
  32. package/{lib → dist}/ipcService.d.ts +2 -5
  33. package/dist/ipcService.d.ts.map +1 -0
  34. package/{lib → dist}/ipcService.js +12 -12
  35. package/dist/ipcService.js.map +1 -0
  36. package/{lib → dist}/logger.d.ts +6 -6
  37. package/dist/logger.d.ts.map +1 -0
  38. package/{lib → dist}/logger.js +19 -28
  39. package/dist/logger.js.map +1 -0
  40. package/{lib → dist}/platformAccessory.d.ts +7 -6
  41. package/dist/platformAccessory.d.ts.map +1 -0
  42. package/{lib → dist}/platformAccessory.js +12 -16
  43. package/dist/platformAccessory.js.map +1 -0
  44. package/{lib → dist}/plugin.d.ts +2 -2
  45. package/dist/plugin.d.ts.map +1 -0
  46. package/{lib → dist}/plugin.js +36 -45
  47. package/dist/plugin.js.map +1 -0
  48. package/{lib → dist}/pluginManager.d.ts +3 -3
  49. package/dist/pluginManager.d.ts.map +1 -0
  50. package/{lib → dist}/pluginManager.js +72 -78
  51. package/dist/pluginManager.js.map +1 -0
  52. package/dist/server.d.ts.map +1 -0
  53. package/{lib → dist}/server.js +89 -116
  54. package/dist/server.js.map +1 -0
  55. package/{lib → dist}/storageService.d.ts.map +1 -1
  56. package/dist/storageService.js +41 -0
  57. package/dist/storageService.js.map +1 -0
  58. package/{lib → dist}/user.d.ts.map +1 -1
  59. package/dist/user.js +29 -0
  60. package/dist/user.js.map +1 -0
  61. package/{lib → dist}/util/mac.d.ts +1 -0
  62. package/dist/util/mac.d.ts.map +1 -0
  63. package/dist/util/mac.js +14 -0
  64. package/dist/util/mac.js.map +1 -0
  65. package/dist/version.d.ts.map +1 -0
  66. package/dist/version.js +16 -0
  67. package/dist/version.js.map +1 -0
  68. package/package.json +42 -42
  69. package/lib/api.d.ts.map +0 -1
  70. package/lib/api.js.map +0 -1
  71. package/lib/bridgeService.d.ts.map +0 -1
  72. package/lib/bridgeService.js.map +0 -1
  73. package/lib/childBridgeFork.d.ts.map +0 -1
  74. package/lib/childBridgeFork.js.map +0 -1
  75. package/lib/childBridgeService.d.ts.map +0 -1
  76. package/lib/childBridgeService.js.map +0 -1
  77. package/lib/cli.d.ts +0 -4
  78. package/lib/cli.d.ts.map +0 -1
  79. package/lib/cli.js +0 -115
  80. package/lib/cli.js.map +0 -1
  81. package/lib/externalPortService.js.map +0 -1
  82. package/lib/index.d.ts.map +0 -1
  83. package/lib/index.js +0 -72
  84. package/lib/index.js.map +0 -1
  85. package/lib/ipcService.d.ts.map +0 -1
  86. package/lib/ipcService.js.map +0 -1
  87. package/lib/logger.d.ts.map +0 -1
  88. package/lib/logger.js.map +0 -1
  89. package/lib/platformAccessory.d.ts.map +0 -1
  90. package/lib/platformAccessory.js.map +0 -1
  91. package/lib/plugin.d.ts.map +0 -1
  92. package/lib/plugin.js.map +0 -1
  93. package/lib/pluginManager.d.ts.map +0 -1
  94. package/lib/pluginManager.js.map +0 -1
  95. package/lib/server.d.ts.map +0 -1
  96. package/lib/server.js.map +0 -1
  97. package/lib/storageService.js +0 -70
  98. package/lib/storageService.js.map +0 -1
  99. package/lib/user.js +0 -36
  100. package/lib/user.js.map +0 -1
  101. package/lib/util/mac.d.ts.map +0 -1
  102. package/lib/util/mac.js +0 -20
  103. package/lib/util/mac.js.map +0 -1
  104. package/lib/version.d.ts.map +0 -1
  105. package/lib/version.js +0 -21
  106. package/lib/version.js.map +0 -1
  107. /package/{lib → dist}/server.d.ts +0 -0
  108. /package/{lib → dist}/storageService.d.ts +0 -0
  109. /package/{lib → dist}/user.d.ts +0 -0
  110. /package/{lib → dist}/version.d.ts +0 -0
@@ -1,20 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChildBridgeFork = void 0;
1
+ /* global NodeJS */
2
+ import process from 'node:process';
3
+ import { HAPStorage } from 'hap-nodejs';
4
+ import 'source-map-support/register.js';
5
+ import { HomebridgeAPI } from './api.js';
6
+ import { BridgeService } from './bridgeService.js';
7
+ import { ChildBridgeExternalPortService } from './externalPortService.js';
8
+ import { Logger } from './logger.js';
9
+ import { PluginManager } from './pluginManager.js';
10
+ import { User } from './user.js';
4
11
  /**
5
12
  * This is a standalone script executed as a child process fork
6
13
  */
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 {
14
+ process.title = 'homebridge: child bridge';
15
+ export class ChildBridgeFork {
18
16
  bridgeService;
19
17
  api;
20
18
  pluginManager;
@@ -53,23 +51,23 @@ class ChildBridgeFork {
53
51
  }
54
52
  // set bridge settings (inherited from main bridge)
55
53
  if (this.bridgeOptions.noLogTimestamps) {
56
- logger_1.Logger.setTimestampEnabled(false);
54
+ Logger.setTimestampEnabled(false);
57
55
  }
58
56
  if (this.bridgeOptions.debugModeEnabled) {
59
- logger_1.Logger.setDebugEnabled(true);
57
+ Logger.setDebugEnabled(true);
60
58
  }
61
59
  if (this.bridgeOptions.forceColourLogging) {
62
- logger_1.Logger.forceColor();
60
+ Logger.forceColor();
63
61
  }
64
62
  if (this.bridgeOptions.customStoragePath) {
65
- user_1.User.setStoragePath(this.bridgeOptions.customStoragePath);
63
+ User.setStoragePath(this.bridgeOptions.customStoragePath);
66
64
  }
67
65
  // Initialize HAP-NodeJS with a custom persist directory
68
- hap_nodejs_1.HAPStorage.setCustomStoragePath(user_1.User.persistPath());
66
+ HAPStorage.setCustomStoragePath(User.persistPath());
69
67
  // 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);
68
+ this.api = new HomebridgeAPI();
69
+ this.pluginManager = new PluginManager(this.api);
70
+ this.externalPortService = new ChildBridgeExternalPortService(this);
73
71
  // load plugin
74
72
  this.plugin = this.pluginManager.loadPlugin(data.pluginPath);
75
73
  await this.plugin.load();
@@ -81,7 +79,7 @@ class ChildBridgeFork {
81
79
  });
82
80
  }
83
81
  async startBridge() {
84
- this.bridgeService = new bridgeService_1.BridgeService(this.api, this.pluginManager, this.externalPortService, this.bridgeOptions, this.bridgeConfig, this.homebridgeConfig);
82
+ this.bridgeService = new BridgeService(this.api, this.pluginManager, this.externalPortService, this.bridgeOptions, this.bridgeConfig, this.homebridgeConfig);
85
83
  // watch bridge events to check when server is online
86
84
  this.bridgeService.bridge.on("advertised" /* AccessoryEventTypes.ADVERTISED */, () => {
87
85
  this.sendPairedStatusEvent();
@@ -100,13 +98,13 @@ class ChildBridgeFork {
100
98
  if (this.type === "platform" /* PluginType.PLATFORM */) {
101
99
  const plugin = this.pluginManager.getPluginForPlatform(this.identifier);
102
100
  const displayName = config.name || plugin.getPluginIdentifier();
103
- const logger = logger_1.Logger.withPrefix(displayName);
101
+ const logger = Logger.withPrefix(displayName);
104
102
  const constructor = plugin.getPlatformConstructor(this.identifier);
105
103
  const platform = new constructor(logger, config, this.api);
106
- if (api_1.HomebridgeAPI.isDynamicPlatformPlugin(platform)) {
104
+ if (HomebridgeAPI.isDynamicPlatformPlugin(platform)) {
107
105
  plugin.assignDynamicPlatform(this.identifier, platform);
108
106
  }
109
- else if (api_1.HomebridgeAPI.isStaticPlatformPlugin(platform)) { // Plugin 1.0, load accessories
107
+ else if (HomebridgeAPI.isStaticPlatformPlugin(platform)) { // Plugin 1.0, load accessories
110
108
  await this.bridgeService.loadPlatformAccessories(plugin, platform, this.identifier, logger);
111
109
  }
112
110
  else {
@@ -118,19 +116,19 @@ class ChildBridgeFork {
118
116
  const plugin = this.pluginManager.getPluginForAccessory(this.identifier);
119
117
  const displayName = config.name;
120
118
  if (!displayName) {
121
- logger_1.Logger.internal.warn("Could not load accessory %s as it is missing the required 'name' property!", this.identifier);
119
+ Logger.internal.warn('Could not load accessory %s as it is missing the required \'name\' property!', this.identifier);
122
120
  return;
123
121
  }
124
- const logger = logger_1.Logger.withPrefix(displayName);
122
+ const logger = Logger.withPrefix(displayName);
125
123
  const constructor = plugin.getAccessoryConstructor(this.identifier);
126
124
  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
125
+ // pass accessoryIdentifier for UUID generation, and optional parameter uuid_base which can be used instead of displayName for UUID generation
128
126
  const accessory = this.bridgeService.createHAPAccessory(plugin, accessoryInstance, displayName, this.identifier, config.uuid_base);
129
127
  if (accessory) {
130
128
  this.bridgeService.bridge.addBridgedAccessory(accessory);
131
129
  }
132
130
  else {
133
- logger("Accessory %s returned empty set of services. Won't adding it to the bridge!", this.identifier);
131
+ logger('Accessory %s returned empty set of services. Won\'t adding it to the bridge!', this.identifier);
134
132
  }
135
133
  }
136
134
  }
@@ -148,7 +146,7 @@ class ChildBridgeFork {
148
146
  async requestExternalPort(username) {
149
147
  return new Promise((resolve) => {
150
148
  const requestTimeout = setTimeout(() => {
151
- logger_1.Logger.internal.warn("Parent process did not respond to port allocation request within 5 seconds - assigning random port.");
149
+ Logger.internal.warn('Parent process did not respond to port allocation request within 5 seconds - assigning random port.');
152
150
  resolve(undefined);
153
151
  }, 5000);
154
152
  // setup callback
@@ -185,7 +183,6 @@ class ChildBridgeFork {
185
183
  this.bridgeService.teardown();
186
184
  }
187
185
  }
188
- exports.ChildBridgeFork = ChildBridgeFork;
189
186
  /**
190
187
  * Start Self
191
188
  */
@@ -193,8 +190,8 @@ const childPluginFork = new ChildBridgeFork();
193
190
  /**
194
191
  * Handle incoming IPC messages from the parent Homebridge process
195
192
  */
196
- process.on("message", (message) => {
197
- if (typeof message !== "object" || !message.id) {
193
+ process.on('message', (message) => {
194
+ if (typeof message !== 'object' || !message.id) {
198
195
  return;
199
196
  }
200
197
  switch (message.id) {
@@ -216,28 +213,28 @@ process.on("message", (message) => {
216
213
  * Handle the sigterm shutdown signals
217
214
  */
218
215
  let shuttingDown = false;
219
- const signalHandler = (signal, signalNum) => {
216
+ function signalHandler(signal, signalNum) {
220
217
  if (shuttingDown) {
221
218
  return;
222
219
  }
223
220
  shuttingDown = true;
224
- logger_1.Logger.internal.info("Got %s, shutting down child bridge process...", signal);
221
+ Logger.internal.info('Got %s, shutting down child bridge process...', signal);
225
222
  try {
226
223
  childPluginFork.shutdown();
227
224
  }
228
- catch (e) {
225
+ catch (error) {
229
226
  // do nothing
230
227
  }
231
228
  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));
229
+ }
230
+ process.on('SIGINT', signalHandler.bind(undefined, 'SIGINT', 2));
231
+ process.on('SIGTERM', signalHandler.bind(undefined, 'SIGTERM', 15));
235
232
  /**
236
233
  * Ensure orphaned processes are cleaned up
237
234
  */
238
235
  setInterval(() => {
239
236
  if (!process.connected) {
240
- logger_1.Logger.internal.info("Parent process not connected, terminating process...");
237
+ Logger.internal.info('Parent process not connected, terminating process...');
241
238
  process.exit(1);
242
239
  }
243
240
  }, 5000);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"childBridgeFork.js","sourceRoot":"","sources":["../src/childBridgeFork.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
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";
1
+ import type { MacAddress } from 'hap-nodejs';
2
+ import type { HomebridgeAPI } from './api.js';
3
+ import type { AccessoryConfig, BridgeConfiguration, BridgeOptions, HomebridgeConfig, PlatformConfig } from './bridgeService.js';
4
+ import type { ExternalPortService } from './externalPortService.js';
5
+ import type { IpcService } from './ipcService.js';
6
+ import type { Plugin } from './plugin.js';
7
+ import type { HomebridgeOptions } from './server.js';
8
+ import { PluginType } from './api.js';
8
9
  export declare const enum ChildProcessMessageEventType {
9
10
  /**
10
11
  * Sent from the child process when it is ready to accept config
@@ -0,0 +1 @@
1
+ {"version":3,"file":"childBridgeService.d.ts","sourceRoot":"","sources":["../src/childBridgeService.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
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;
1
+ import child_process from 'node:child_process';
2
+ import path, { dirname } from 'node:path';
3
+ import process from 'node:process';
4
+ import { fileURLToPath } from 'node:url';
5
+ import fs from 'fs-extra';
6
+ import { Logger } from './logger.js';
7
+ import { User } from './user.js';
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = dirname(__filename);
10
+ // eslint-disable-next-line no-restricted-syntax
11
+ export var ChildProcessMessageEventType;
13
12
  (function (ChildProcessMessageEventType) {
14
13
  /**
15
14
  * Sent from the child process when it is ready to accept config
@@ -43,8 +42,9 @@ var ChildProcessMessageEventType;
43
42
  * Sent from the child to update its current status
44
43
  */
45
44
  ChildProcessMessageEventType["STATUS_UPDATE"] = "status";
46
- })(ChildProcessMessageEventType || (exports.ChildProcessMessageEventType = ChildProcessMessageEventType = {}));
47
- var ChildBridgeStatus;
45
+ })(ChildProcessMessageEventType || (ChildProcessMessageEventType = {}));
46
+ // eslint-disable-next-line no-restricted-syntax
47
+ export var ChildBridgeStatus;
48
48
  (function (ChildBridgeStatus) {
49
49
  /**
50
50
  * When the child bridge is loading, or restarting
@@ -58,12 +58,12 @@ var ChildBridgeStatus;
58
58
  * The bridge is shutting down, or the process ended unexpectedly
59
59
  */
60
60
  ChildBridgeStatus["DOWN"] = "down";
61
- })(ChildBridgeStatus || (exports.ChildBridgeStatus = ChildBridgeStatus = {}));
61
+ })(ChildBridgeStatus || (ChildBridgeStatus = {}));
62
62
  /**
63
63
  * Manages the child processes of platforms/accessories being exposed as separate forked bridges.
64
64
  * A child bridge runs a single platform or accessory.
65
65
  */
66
- class ChildBridgeService {
66
+ export class ChildBridgeService {
67
67
  type;
68
68
  identifier;
69
69
  plugin;
@@ -94,8 +94,8 @@ class ChildBridgeService {
94
94
  this.api = api;
95
95
  this.ipcService = ipcService;
96
96
  this.externalPortService = externalPortService;
97
- this.log = logger_1.Logger.withPrefix(this.plugin.getPluginIdentifier());
98
- this.api.on("shutdown", () => {
97
+ this.log = Logger.withPrefix(this.plugin.getPluginIdentifier());
98
+ this.api.on('shutdown', () => {
99
99
  this.shuttingDown = true;
100
100
  this.teardown();
101
101
  });
@@ -117,7 +117,7 @@ class ChildBridgeService {
117
117
  this.displayName = this.pluginConfig[0]?.name || this.plugin.getPluginIdentifier();
118
118
  }
119
119
  // re-configured log with display name
120
- this.log = logger_1.Logger.withPrefix(this.displayName);
120
+ this.log = Logger.withPrefix(this.displayName);
121
121
  }
122
122
  /**
123
123
  * Add a config block to a child bridge.
@@ -139,27 +139,27 @@ class ChildBridgeService {
139
139
  */
140
140
  startChildProcess() {
141
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) => {
142
+ this.child = child_process.fork(path.resolve(__dirname, 'childBridgeFork.js'), this.args, this.processEnv);
143
+ this.child.stdout?.on('data', (data) => {
144
144
  process.stdout.write(data);
145
145
  });
146
- this.child.stderr?.on("data", (data) => {
146
+ this.child.stderr?.on('data', (data) => {
147
147
  process.stderr.write(data);
148
148
  });
149
- this.child.on("exit", () => {
150
- this.log.warn("Child bridge process ended");
149
+ this.child.on('exit', () => {
150
+ this.log.warn('Child bridge process ended');
151
151
  });
152
- this.child.on("error", (e) => {
152
+ this.child.on('error', (e) => {
153
153
  this.bridgeStatus = "down" /* ChildBridgeStatus.DOWN */;
154
- this.log.error("Child process error", e);
154
+ this.log.error('Child process error', e);
155
155
  });
156
- this.child.once("close", (code, signal) => {
156
+ this.child.once('close', (code, signal) => {
157
157
  this.bridgeStatus = "down" /* ChildBridgeStatus.DOWN */;
158
158
  this.handleProcessClose(code, signal);
159
159
  });
160
160
  // handle incoming ipc messages from the child process
161
- this.child.on("message", (message) => {
162
- if (typeof message !== "object" || !message.id) {
161
+ this.child.on('message', (message) => {
162
+ if (typeof message !== 'object' || !message.id) {
163
163
  return;
164
164
  }
165
165
  switch (message.id) {
@@ -205,7 +205,7 @@ class ChildBridgeService {
205
205
  this.log(`Process Ended. Code: ${code}, Signal: ${signal}`);
206
206
  setTimeout(() => {
207
207
  if (!this.shuttingDown) {
208
- this.log("Restarting Process...");
208
+ this.log('Restarting Process...');
209
209
  this.startChildProcess();
210
210
  }
211
211
  }, 7000);
@@ -229,25 +229,25 @@ class ChildBridgeService {
229
229
  */
230
230
  setProcessFlags() {
231
231
  if (this.homebridgeOptions.debugModeEnabled) {
232
- this.args.push("-D");
232
+ this.args.push('-D');
233
233
  }
234
234
  if (this.homebridgeOptions.forceColourLogging) {
235
- this.args.push("-C");
235
+ this.args.push('-C');
236
236
  }
237
237
  if (this.homebridgeOptions.insecureAccess) {
238
- this.args.push("-I");
238
+ this.args.push('-I');
239
239
  }
240
240
  if (this.homebridgeOptions.noLogTimestamps) {
241
- this.args.push("-T");
241
+ this.args.push('-T');
242
242
  }
243
243
  if (this.homebridgeOptions.keepOrphanedCachedAccessories) {
244
- this.args.push("-K");
244
+ this.args.push('-K');
245
245
  }
246
246
  if (this.homebridgeOptions.customStoragePath) {
247
- this.args.push("-U", this.homebridgeOptions.customStoragePath);
247
+ this.args.push('-U', this.homebridgeOptions.customStoragePath);
248
248
  }
249
249
  if (this.homebridgeOptions.customPluginPath) {
250
- this.args.push("-P", this.homebridgeOptions.customPluginPath);
250
+ this.args.push('-P', this.homebridgeOptions.customPluginPath);
251
251
  }
252
252
  }
253
253
  /**
@@ -257,8 +257,8 @@ class ChildBridgeService {
257
257
  this.processEnv = {
258
258
  env: {
259
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(),
260
+ DEBUG: `${process.env.DEBUG || ''} ${this.bridgeConfig.env?.DEBUG || ''}`.trim(),
261
+ NODE_OPTIONS: `${process.env.NODE_OPTIONS || ''} ${this.bridgeConfig.env?.NODE_OPTIONS || ''}`.trim(),
262
262
  },
263
263
  silent: true,
264
264
  };
@@ -280,8 +280,8 @@ class ChildBridgeService {
280
280
  firmwareRevision: this.bridgeConfig.firmwareRevision || this.homebridgeConfig.bridge.firmwareRevision,
281
281
  };
282
282
  const bridgeOptions = {
283
- cachedAccessoriesDir: user_1.User.cachedAccessoryPath(),
284
- cachedAccessoriesItemName: "cachedAccessories." + this.bridgeConfig.username.replace(/:/g, "").toUpperCase(),
283
+ cachedAccessoriesDir: User.cachedAccessoryPath(),
284
+ cachedAccessoriesItemName: `cachedAccessories.${this.bridgeConfig.username.replace(/:/g, '').toUpperCase()}`,
285
285
  };
286
286
  // shallow copy the homebridge options to the bridge options object
287
287
  Object.assign(bridgeOptions, this.homebridgeOptions);
@@ -314,7 +314,7 @@ class ChildBridgeService {
314
314
  const port = await this.externalPortService.requestPort(request.username);
315
315
  this.sendMessage("portAllocated" /* ChildProcessMessageEventType.PORT_ALLOCATED */, {
316
316
  username: request.username,
317
- port: port,
317
+ port,
318
318
  });
319
319
  }
320
320
  /**
@@ -323,7 +323,7 @@ class ChildBridgeService {
323
323
  teardown() {
324
324
  if (this.child && this.child.connected) {
325
325
  this.bridgeStatus = "down" /* ChildBridgeStatus.DOWN */;
326
- this.child.kill("SIGTERM");
326
+ this.child.kill('SIGTERM');
327
327
  }
328
328
  }
329
329
  /**
@@ -340,7 +340,7 @@ class ChildBridgeService {
340
340
  this.startChildBridge();
341
341
  }
342
342
  else {
343
- this.log.warn("Restarting child bridge...");
343
+ this.log.warn('Restarting child bridge...');
344
344
  this.refreshConfig();
345
345
  this.teardown();
346
346
  }
@@ -350,14 +350,14 @@ class ChildBridgeService {
350
350
  */
351
351
  stopChildBridge() {
352
352
  if (!this.shuttingDown) {
353
- this.log.warn("Stopping child bridge (will not restart)...");
353
+ this.log.warn('Stopping child bridge (will not restart)...');
354
354
  this.shuttingDown = true;
355
355
  this.manuallyStopped = true;
356
- this.child?.removeAllListeners("close");
356
+ this.child?.removeAllListeners('close');
357
357
  this.teardown();
358
358
  }
359
359
  else {
360
- this.log.warn("Bridge already shutting down or stopped.");
360
+ this.log.warn('Bridge already shutting down or stopped.');
361
361
  }
362
362
  }
363
363
  /**
@@ -365,14 +365,14 @@ class ChildBridgeService {
365
365
  */
366
366
  startChildBridge() {
367
367
  if (this.manuallyStopped && this.bridgeStatus === "down" /* ChildBridgeStatus.DOWN */ && (!this.child || !this.child.connected)) {
368
- this.log.warn("Starting child bridge...");
368
+ this.log.warn('Starting child bridge...');
369
369
  this.refreshConfig();
370
370
  this.startChildProcess();
371
371
  this.shuttingDown = false;
372
372
  this.manuallyStopped = false;
373
373
  }
374
374
  else {
375
- this.log.warn("Cannot start child bridge, it is still running or was not manually stopped");
375
+ this.log.warn('Cannot start child bridge, it is still running or was not manually stopped');
376
376
  }
377
377
  }
378
378
  /**
@@ -380,7 +380,7 @@ class ChildBridgeService {
380
380
  */
381
381
  async refreshConfig() {
382
382
  try {
383
- const homebridgeConfig = await fs_extra_1.default.readJson(user_1.User.configPath());
383
+ const homebridgeConfig = await fs.readJson(User.configPath());
384
384
  if (this.type === "platform" /* PluginType.PLATFORM */) {
385
385
  const config = homebridgeConfig.platforms?.filter(x => x.platform === this.identifier && x._bridge?.username === this.bridgeConfig.username);
386
386
  if (config.length) {
@@ -388,7 +388,7 @@ class ChildBridgeService {
388
388
  this.bridgeConfig = this.pluginConfig[0]._bridge || this.bridgeConfig;
389
389
  }
390
390
  else {
391
- this.log.warn("Platform config could not be found, using existing config.");
391
+ this.log.warn('Platform config could not be found, using existing config.');
392
392
  }
393
393
  }
394
394
  else if (this.type === "accessory" /* PluginType.ACCESSORY */) {
@@ -398,12 +398,12 @@ class ChildBridgeService {
398
398
  this.bridgeConfig = this.pluginConfig[0]._bridge || this.bridgeConfig;
399
399
  }
400
400
  else {
401
- this.log.warn("Accessory config could not be found, using existing config.");
401
+ this.log.warn('Accessory config could not be found, using existing config.');
402
402
  }
403
403
  }
404
404
  }
405
- catch (e) {
406
- this.log.error("Failed to refresh plugin config:", e.message);
405
+ catch (error) {
406
+ this.log.error('Failed to refresh plugin config:', error.message);
407
407
  }
408
408
  }
409
409
  /**
@@ -424,5 +424,4 @@ class ChildBridgeService {
424
424
  };
425
425
  }
426
426
  }
427
- exports.ChildBridgeService = ChildBridgeService;
428
427
  //# sourceMappingURL=childBridgeService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"childBridgeService.js","sourceRoot":"","sources":["../src/childBridgeService.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import 'source-map-support/register.js';
2
+ export default function cli(): void;
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AASA,OAAO,gCAAgC,CAAA;AAiBvC,MAAM,CAAC,OAAO,UAAU,GAAG,IAAI,IAAI,CAqFlC"}
package/dist/cli.js ADDED
@@ -0,0 +1,89 @@
1
+ /* global NodeJS */
2
+ import process from 'node:process';
3
+ import { Command } from 'commander';
4
+ import { HAPStorage } from 'hap-nodejs';
5
+ import { satisfies } from 'semver';
6
+ import 'source-map-support/register.js';
7
+ import { Logger } from './logger.js';
8
+ import { Server } from './server.js';
9
+ import { User } from './user.js';
10
+ import getVersion, { getRequiredNodeVersion } from './version.js';
11
+ const log = Logger.internal;
12
+ const requiredNodeVersion = getRequiredNodeVersion();
13
+ if (requiredNodeVersion && !satisfies(process.version, requiredNodeVersion)) {
14
+ log.warn(`Homebridge requires Node.js version of ${requiredNodeVersion} which does \
15
+ 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`);
16
+ }
17
+ export default function cli() {
18
+ let insecureAccess = false;
19
+ let hideQRCode = false;
20
+ let keepOrphans = false;
21
+ let customPluginPath;
22
+ let strictPluginResolution = false;
23
+ let noLogTimestamps = false;
24
+ let debugModeEnabled = false;
25
+ let forceColourLogging = false;
26
+ let customStoragePath;
27
+ let shuttingDown = false;
28
+ const program = new Command();
29
+ program
30
+ .version(getVersion())
31
+ .option('-C, --color', 'force color in logging', () => forceColourLogging = true)
32
+ .option('-D, --debug', 'turn on debug level logging', () => debugModeEnabled = true)
33
+ .option('-I, --insecure', 'allow unauthenticated requests (for easier hacking)', () => insecureAccess = true)
34
+ .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)
35
+ .option('-Q, --no-qrcode', 'do not issue QRcode in logging', () => hideQRCode = true)
36
+ .option('-K, --keep-orphans', 'keep cached accessories for which the associated plugin is not loaded', () => keepOrphans = true)
37
+ .option('-T, --no-timestamp', 'do not issue timestamps in logging', () => noLogTimestamps = true)
38
+ .option('-U, --user-storage-path [path]', 'look for homebridge user files at [path] instead of the default location (~/.homebridge)', path => customStoragePath = path)
39
+ .option('--strict-plugin-resolution', 'only load plugins from the --plugin-path if set, otherwise from the primary global node_modules', () => strictPluginResolution = true)
40
+ .parse(process.argv);
41
+ if (noLogTimestamps) {
42
+ Logger.setTimestampEnabled(false);
43
+ }
44
+ if (debugModeEnabled) {
45
+ Logger.setDebugEnabled(true);
46
+ }
47
+ if (forceColourLogging) {
48
+ Logger.forceColor();
49
+ }
50
+ if (customStoragePath) {
51
+ User.setStoragePath(customStoragePath);
52
+ }
53
+ // Initialize HAP-NodeJS with a custom persist directory
54
+ HAPStorage.setCustomStoragePath(User.persistPath());
55
+ const options = {
56
+ keepOrphanedCachedAccessories: keepOrphans,
57
+ insecureAccess,
58
+ hideQRCode,
59
+ customPluginPath,
60
+ noLogTimestamps,
61
+ debugModeEnabled,
62
+ forceColourLogging,
63
+ customStoragePath,
64
+ strictPluginResolution,
65
+ };
66
+ const server = new Server(options);
67
+ const signalHandler = (signal, signalNum) => {
68
+ if (shuttingDown) {
69
+ return;
70
+ }
71
+ shuttingDown = true;
72
+ log.info('Got %s, shutting down Homebridge...', signal);
73
+ setTimeout(() => process.exit(128 + signalNum), 5000);
74
+ server.teardown();
75
+ };
76
+ process.on('SIGINT', signalHandler.bind(undefined, 'SIGINT', 2));
77
+ process.on('SIGTERM', signalHandler.bind(undefined, 'SIGTERM', 15));
78
+ const errorHandler = (error) => {
79
+ if (error.stack) {
80
+ log.error(error.stack);
81
+ }
82
+ if (!shuttingDown) {
83
+ process.kill(process.pid, 'SIGTERM');
84
+ }
85
+ };
86
+ process.on('uncaughtException', errorHandler);
87
+ server.start().catch(errorHandler);
88
+ }
89
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}