homebridge 2.0.0-beta.4 → 2.0.0-beta.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.
- package/README.md +16 -17
- package/bin/homebridge.js +22 -0
- package/config-sample.json +3 -3
- package/dist/api.d.ts +499 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +223 -0
- package/dist/api.js.map +1 -0
- package/dist/api.spec.d.ts +2 -0
- package/dist/api.spec.d.ts.map +1 -0
- package/dist/api.spec.js +413 -0
- package/dist/api.spec.js.map +1 -0
- package/{lib → dist}/bridgeService.d.ts +19 -10
- package/dist/bridgeService.d.ts.map +1 -0
- package/{lib → dist}/bridgeService.js +85 -117
- package/dist/bridgeService.js.map +1 -0
- package/{lib → dist}/childBridgeFork.d.ts +11 -5
- package/dist/childBridgeFork.d.ts.map +1 -0
- package/{lib → dist}/childBridgeFork.js +93 -44
- package/dist/childBridgeFork.js.map +1 -0
- package/{lib → dist}/childBridgeService.d.ts +37 -7
- package/dist/childBridgeService.d.ts.map +1 -0
- package/{lib → dist}/childBridgeService.js +127 -69
- package/dist/childBridgeService.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +90 -0
- package/dist/cli.js.map +1 -0
- package/dist/externalPortService.d.ts +47 -0
- package/dist/externalPortService.d.ts.map +1 -0
- package/dist/externalPortService.js +105 -0
- package/dist/externalPortService.js.map +1 -0
- package/dist/index.d.ts +141 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/ipcService.d.ts +48 -0
- package/dist/ipcService.d.ts.map +1 -0
- package/{lib → dist}/ipcService.js +12 -14
- package/dist/ipcService.js.map +1 -0
- package/{lib → dist}/logger.d.ts +12 -6
- package/dist/logger.d.ts.map +1 -0
- package/{lib → dist}/logger.js +27 -28
- package/dist/logger.js.map +1 -0
- package/dist/logger.spec.d.ts +2 -0
- package/dist/logger.spec.d.ts.map +1 -0
- package/dist/logger.spec.js +95 -0
- package/dist/logger.spec.js.map +1 -0
- package/dist/matter/ChildBridgeMatterManager.d.ts +96 -0
- package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -0
- package/dist/matter/ChildBridgeMatterManager.js +399 -0
- package/dist/matter/ChildBridgeMatterManager.js.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +48 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.js +73 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +2 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +293 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +1 -0
- package/dist/matter/MatterAPIImpl.d.ts +504 -0
- package/dist/matter/MatterAPIImpl.d.ts.map +1 -0
- package/dist/matter/MatterAPIImpl.js +305 -0
- package/dist/matter/MatterAPIImpl.js.map +1 -0
- package/dist/matter/MatterBridgeManager.d.ts +87 -0
- package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
- package/dist/matter/MatterBridgeManager.js +413 -0
- package/dist/matter/MatterBridgeManager.js.map +1 -0
- package/dist/matter/MatterConfigCollector.d.ts +26 -0
- package/dist/matter/MatterConfigCollector.d.ts.map +1 -0
- package/dist/matter/MatterConfigCollector.js +78 -0
- package/dist/matter/MatterConfigCollector.js.map +1 -0
- package/dist/matter/accessoryCache.d.ts +105 -0
- package/dist/matter/accessoryCache.d.ts.map +1 -0
- package/dist/matter/accessoryCache.js +214 -0
- package/dist/matter/accessoryCache.js.map +1 -0
- package/dist/matter/accessoryCache.spec.d.ts +2 -0
- package/dist/matter/accessoryCache.spec.d.ts.map +1 -0
- package/dist/matter/accessoryCache.spec.js +452 -0
- package/dist/matter/accessoryCache.spec.js.map +1 -0
- package/dist/matter/behaviors/BehaviorRegistry.d.ts +65 -0
- package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -0
- package/dist/matter/behaviors/BehaviorRegistry.js +139 -0
- package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -0
- package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +2 -0
- package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/BehaviorRegistry.spec.js +307 -0
- package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +1 -0
- package/dist/matter/behaviors/ColorControlBehavior.d.ts +63 -0
- package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ColorControlBehavior.js +223 -0
- package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -0
- package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/ColorControlBehavior.spec.js +29 -0
- package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/DoorLockBehavior.d.ts +20 -0
- package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/DoorLockBehavior.js +71 -0
- package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -0
- package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/DoorLockBehavior.spec.js +120 -0
- package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/FanControlBehavior.d.ts +20 -0
- package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/FanControlBehavior.js +71 -0
- package/dist/matter/behaviors/FanControlBehavior.js.map +1 -0
- package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/FanControlBehavior.spec.js +23 -0
- package/dist/matter/behaviors/FanControlBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/IdentifyBehavior.d.ts +20 -0
- package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/IdentifyBehavior.js +41 -0
- package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -0
- package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/IdentifyBehavior.spec.js +64 -0
- package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/LevelControlBehavior.d.ts +33 -0
- package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/LevelControlBehavior.js +138 -0
- package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -0
- package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/LevelControlBehavior.spec.js +145 -0
- package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/OnOffBehavior.d.ts +27 -0
- package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/OnOffBehavior.js +95 -0
- package/dist/matter/behaviors/OnOffBehavior.js.map +1 -0
- package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/OnOffBehavior.spec.js +128 -0
- package/dist/matter/behaviors/OnOffBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +19 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.js +41 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +57 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +22 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js +86 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +55 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +19 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.js +41 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +57 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +21 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.js +61 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +53 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/ThermostatBehavior.d.ts +22 -0
- package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ThermostatBehavior.js +127 -0
- package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -0
- package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/ThermostatBehavior.spec.js +23 -0
- package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +31 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.js +158 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +27 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/index.d.ts +20 -0
- package/dist/matter/behaviors/index.d.ts.map +1 -0
- package/dist/matter/behaviors/index.js +21 -0
- package/dist/matter/behaviors/index.js.map +1 -0
- package/dist/matter/configValidator.d.ts +81 -0
- package/dist/matter/configValidator.d.ts.map +1 -0
- package/dist/matter/configValidator.js +240 -0
- package/dist/matter/configValidator.js.map +1 -0
- package/dist/matter/configValidator.spec.d.ts +2 -0
- package/dist/matter/configValidator.spec.d.ts.map +1 -0
- package/dist/matter/configValidator.spec.js +390 -0
- package/dist/matter/configValidator.spec.js.map +1 -0
- package/dist/matter/errorHandler.d.ts +33 -0
- package/dist/matter/errorHandler.d.ts.map +1 -0
- package/dist/matter/errorHandler.js +113 -0
- package/dist/matter/errorHandler.js.map +1 -0
- package/dist/matter/errorHandler.spec.d.ts +2 -0
- package/dist/matter/errorHandler.spec.d.ts.map +1 -0
- package/dist/matter/errorHandler.spec.js +159 -0
- package/dist/matter/errorHandler.spec.js.map +1 -0
- package/dist/matter/errors.d.ts +178 -0
- package/dist/matter/errors.d.ts.map +1 -0
- package/dist/matter/errors.js +200 -0
- package/dist/matter/errors.js.map +1 -0
- package/dist/matter/index.d.ts +127 -0
- package/dist/matter/index.d.ts.map +1 -0
- package/dist/matter/index.js +23 -0
- package/dist/matter/index.js.map +1 -0
- package/dist/matter/logFormatter.d.ts +19 -0
- package/dist/matter/logFormatter.d.ts.map +1 -0
- package/dist/matter/logFormatter.js +158 -0
- package/dist/matter/logFormatter.js.map +1 -0
- package/dist/matter/logFormatter.spec.d.ts +2 -0
- package/dist/matter/logFormatter.spec.d.ts.map +1 -0
- package/dist/matter/logFormatter.spec.js +252 -0
- package/dist/matter/logFormatter.spec.js.map +1 -0
- package/dist/matter/server.d.ts +336 -0
- package/dist/matter/server.d.ts.map +1 -0
- package/dist/matter/server.js +1810 -0
- package/dist/matter/server.js.map +1 -0
- package/dist/matter/serverHelpers.d.ts +81 -0
- package/dist/matter/serverHelpers.d.ts.map +1 -0
- package/dist/matter/serverHelpers.js +326 -0
- package/dist/matter/serverHelpers.js.map +1 -0
- package/dist/matter/serverHelpers.spec.d.ts +2 -0
- package/dist/matter/serverHelpers.spec.d.ts.map +1 -0
- package/dist/matter/serverHelpers.spec.js +521 -0
- package/dist/matter/serverHelpers.spec.js.map +1 -0
- package/dist/matter/sharedTypes.d.ts +164 -0
- package/dist/matter/sharedTypes.d.ts.map +1 -0
- package/dist/matter/sharedTypes.js +46 -0
- package/dist/matter/sharedTypes.js.map +1 -0
- package/dist/matter/storage.d.ts +135 -0
- package/dist/matter/storage.d.ts.map +1 -0
- package/dist/matter/storage.js +424 -0
- package/dist/matter/storage.js.map +1 -0
- package/dist/matter/storage.spec.d.ts +2 -0
- package/dist/matter/storage.spec.d.ts.map +1 -0
- package/dist/matter/storage.spec.js +570 -0
- package/dist/matter/storage.spec.js.map +1 -0
- package/dist/matter/typeHelpers.d.ts +45 -0
- package/dist/matter/typeHelpers.d.ts.map +1 -0
- package/dist/matter/typeHelpers.js +57 -0
- package/dist/matter/typeHelpers.js.map +1 -0
- package/dist/matter/typeHelpers.spec.d.ts +2 -0
- package/dist/matter/typeHelpers.spec.d.ts.map +1 -0
- package/dist/matter/typeHelpers.spec.js +127 -0
- package/dist/matter/typeHelpers.spec.js.map +1 -0
- package/dist/matter/types.d.ts +826 -0
- package/dist/matter/types.d.ts.map +1 -0
- package/dist/matter/types.js +204 -0
- package/dist/matter/types.js.map +1 -0
- package/{lib → dist}/platformAccessory.d.ts +8 -6
- package/dist/platformAccessory.d.ts.map +1 -0
- package/{lib → dist}/platformAccessory.js +19 -16
- package/dist/platformAccessory.js.map +1 -0
- package/dist/platformAccessory.spec.d.ts +2 -0
- package/dist/platformAccessory.spec.d.ts.map +1 -0
- package/dist/platformAccessory.spec.js +126 -0
- package/dist/platformAccessory.spec.js.map +1 -0
- package/{lib → dist}/plugin.d.ts +2 -3
- package/dist/plugin.d.ts.map +1 -0
- package/{lib → dist}/plugin.js +39 -51
- package/dist/plugin.js.map +1 -0
- package/{lib → dist}/pluginManager.d.ts +3 -3
- package/dist/pluginManager.d.ts.map +1 -0
- package/{lib → dist}/pluginManager.js +76 -81
- package/dist/pluginManager.js.map +1 -0
- package/dist/pluginManager.spec.d.ts +2 -0
- package/dist/pluginManager.spec.d.ts.map +1 -0
- package/dist/pluginManager.spec.js +43 -0
- package/dist/pluginManager.spec.js.map +1 -0
- package/{lib → dist}/server.d.ts +14 -1
- package/dist/server.d.ts.map +1 -0
- package/{lib → dist}/server.js +193 -123
- package/dist/server.js.map +1 -0
- package/dist/server.spec.d.ts +2 -0
- package/dist/server.spec.d.ts.map +1 -0
- package/dist/server.spec.js +57 -0
- package/dist/server.spec.js.map +1 -0
- package/{lib → dist}/storageService.d.ts.map +1 -1
- package/dist/storageService.js +41 -0
- package/dist/storageService.js.map +1 -0
- package/{lib → dist}/user.d.ts +1 -0
- package/dist/user.d.ts.map +1 -0
- package/dist/user.js +32 -0
- package/dist/user.js.map +1 -0
- package/dist/user.spec.d.ts +2 -0
- package/dist/user.spec.d.ts.map +1 -0
- package/dist/user.spec.js +31 -0
- package/dist/user.spec.js.map +1 -0
- package/{lib → dist}/util/mac.d.ts +1 -0
- package/dist/util/mac.d.ts.map +1 -0
- package/dist/util/mac.js +14 -0
- package/dist/util/mac.js.map +1 -0
- package/dist/util/mac.spec.d.ts +2 -0
- package/dist/util/mac.spec.d.ts.map +1 -0
- package/dist/util/mac.spec.js +36 -0
- package/dist/util/mac.spec.js.map +1 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +16 -0
- package/dist/version.js.map +1 -0
- package/dist/version.spec.d.ts +2 -0
- package/dist/version.spec.d.ts.map +1 -0
- package/dist/version.spec.js +20 -0
- package/dist/version.spec.js.map +1 -0
- package/package.json +49 -50
- package/bin/homebridge +0 -17
- package/lib/api.d.ts +0 -210
- package/lib/api.d.ts.map +0 -1
- package/lib/api.js +0 -155
- package/lib/api.js.map +0 -1
- package/lib/bridgeService.d.ts.map +0 -1
- package/lib/bridgeService.js.map +0 -1
- package/lib/childBridgeFork.d.ts.map +0 -1
- package/lib/childBridgeFork.js.map +0 -1
- package/lib/childBridgeService.d.ts.map +0 -1
- package/lib/childBridgeService.js.map +0 -1
- package/lib/cli.d.ts +0 -4
- package/lib/cli.d.ts.map +0 -1
- package/lib/cli.js +0 -111
- package/lib/cli.js.map +0 -1
- package/lib/externalPortService.d.ts +0 -33
- package/lib/externalPortService.d.ts.map +0 -1
- package/lib/externalPortService.js +0 -64
- package/lib/externalPortService.js.map +0 -1
- package/lib/index.d.ts +0 -76
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -72
- package/lib/index.js.map +0 -1
- package/lib/ipcService.d.ts +0 -33
- package/lib/ipcService.d.ts.map +0 -1
- package/lib/ipcService.js.map +0 -1
- package/lib/logger.d.ts.map +0 -1
- package/lib/logger.js.map +0 -1
- package/lib/platformAccessory.d.ts.map +0 -1
- package/lib/platformAccessory.js.map +0 -1
- package/lib/plugin.d.ts.map +0 -1
- package/lib/plugin.js.map +0 -1
- package/lib/pluginManager.d.ts.map +0 -1
- package/lib/pluginManager.js.map +0 -1
- package/lib/server.d.ts.map +0 -1
- package/lib/server.js.map +0 -1
- package/lib/storageService.js +0 -70
- package/lib/storageService.js.map +0 -1
- package/lib/user.d.ts.map +0 -1
- package/lib/user.js +0 -36
- package/lib/user.js.map +0 -1
- package/lib/util/mac.d.ts.map +0 -1
- package/lib/util/mac.js +0 -20
- package/lib/util/mac.js.map +0 -1
- package/lib/version.d.ts.map +0 -1
- package/lib/version.js +0 -21
- package/lib/version.js.map +0 -1
- /package/{lib → dist}/storageService.d.ts +0 -0
- /package/{lib → dist}/version.d.ts +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Logger } from './logger.js';
|
|
2
|
+
/**
|
|
3
|
+
* Allocates ports from the user defined `config.ports` and `config.matterPorts` options
|
|
4
|
+
* This service is used to allocate ports for external accessories on the main bridge, and child bridges.
|
|
5
|
+
* HAP ports and Matter ports are managed separately with their own ranges.
|
|
6
|
+
*/
|
|
7
|
+
export class ExternalPortService {
|
|
8
|
+
externalPorts;
|
|
9
|
+
matterPorts;
|
|
10
|
+
nextExternalPort;
|
|
11
|
+
allocatedPorts = new Map();
|
|
12
|
+
allocatedMatterPorts = new Map();
|
|
13
|
+
configuredMatterPorts = new Set();
|
|
14
|
+
constructor(externalPorts, matterPorts, configuredMatterPorts) {
|
|
15
|
+
this.externalPorts = externalPorts;
|
|
16
|
+
this.matterPorts = matterPorts;
|
|
17
|
+
if (configuredMatterPorts) {
|
|
18
|
+
this.configuredMatterPorts = new Set(configuredMatterPorts);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Returns the next available HAP port in the external port config.
|
|
23
|
+
* If the external port is not configured by the user it will return undefined.
|
|
24
|
+
* If the port range has been exhausted it will return undefined.
|
|
25
|
+
*/
|
|
26
|
+
async requestPort(username) {
|
|
27
|
+
// check to see if this device has already requested an external port
|
|
28
|
+
const existingPortAllocation = this.allocatedPorts.get(username);
|
|
29
|
+
if (existingPortAllocation) {
|
|
30
|
+
return existingPortAllocation;
|
|
31
|
+
}
|
|
32
|
+
// get the next unused port
|
|
33
|
+
const port = this.getNextFreePort();
|
|
34
|
+
this.allocatedPorts.set(username, port);
|
|
35
|
+
return port;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Returns the next available Matter port in the Matter port config.
|
|
39
|
+
* If Matter ports are not configured, falls back to range 5530-5541.
|
|
40
|
+
* If the port range has been exhausted it will return undefined.
|
|
41
|
+
*
|
|
42
|
+
* @param uuid - Unique identifier for the Matter accessory (can be accessory UUID or other unique string)
|
|
43
|
+
*/
|
|
44
|
+
async requestMatterPort(uuid) {
|
|
45
|
+
// Check to see if this accessory has already requested a Matter port
|
|
46
|
+
const existingPortAllocation = this.allocatedMatterPorts.get(uuid);
|
|
47
|
+
if (existingPortAllocation) {
|
|
48
|
+
return existingPortAllocation;
|
|
49
|
+
}
|
|
50
|
+
// Get the next unused Matter port
|
|
51
|
+
const port = this.getNextFreeMatterPort();
|
|
52
|
+
this.allocatedMatterPorts.set(uuid, port);
|
|
53
|
+
return port;
|
|
54
|
+
}
|
|
55
|
+
getNextFreePort() {
|
|
56
|
+
if (!this.externalPorts) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
if (this.nextExternalPort === undefined) {
|
|
60
|
+
this.nextExternalPort = this.externalPorts.start;
|
|
61
|
+
return this.nextExternalPort;
|
|
62
|
+
}
|
|
63
|
+
this.nextExternalPort++;
|
|
64
|
+
if (this.nextExternalPort <= this.externalPorts.end) {
|
|
65
|
+
return this.nextExternalPort;
|
|
66
|
+
}
|
|
67
|
+
Logger.internal.warn('External HAP port pool ran out of ports. Falling back to random port assignment.');
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
getNextFreeMatterPort() {
|
|
71
|
+
// Fallback to default range 5530-5541, avoiding already allocated ports
|
|
72
|
+
const rangeStart = this.matterPorts?.start || 5530;
|
|
73
|
+
const rangeEnd = this.matterPorts?.end || 5541;
|
|
74
|
+
const allocatedPortValues = new Set([
|
|
75
|
+
...this.configuredMatterPorts,
|
|
76
|
+
...Array.from(this.allocatedMatterPorts.values()).filter((p) => p !== undefined),
|
|
77
|
+
]);
|
|
78
|
+
// Find first unallocated port in range 5530-5541
|
|
79
|
+
for (let port = rangeStart; port <= rangeEnd; port += 1) {
|
|
80
|
+
if (!allocatedPortValues.has(port)) {
|
|
81
|
+
return port;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
throw new Error(`No available Matter ports in range ${rangeStart}-${rangeEnd}. All ports are already allocated.`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* This is the child bridge version of the port allocation service.
|
|
89
|
+
* It requests free ports from the main bridge's port service via IPC.
|
|
90
|
+
*/
|
|
91
|
+
export class ChildBridgeExternalPortService extends ExternalPortService {
|
|
92
|
+
childBridge;
|
|
93
|
+
constructor(childBridge) {
|
|
94
|
+
super();
|
|
95
|
+
this.childBridge = childBridge;
|
|
96
|
+
}
|
|
97
|
+
async requestPort(username) {
|
|
98
|
+
return await this.childBridge.requestExternalPort(username);
|
|
99
|
+
}
|
|
100
|
+
async requestMatterPort(uniqueId) {
|
|
101
|
+
// For child bridges, request Matter port from parent via IPC
|
|
102
|
+
return await this.childBridge.requestMatterPort(uniqueId);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=externalPortService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"externalPortService.js","sourceRoot":"","sources":["../src/externalPortService.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export HAP
|
|
3
|
+
*/
|
|
4
|
+
import type { API } from './api.js';
|
|
5
|
+
export type HAP = API['hap'];
|
|
6
|
+
/**
|
|
7
|
+
* Export types for basically everything but the actual API implementation
|
|
8
|
+
*/
|
|
9
|
+
export type { AccessoryIdentifier, AccessoryName, AccessoryPlugin, AccessoryPluginConstructor, API, DynamicPlatformPlugin, IndependentPlatformPlugin, MatterAPI, PlatformIdentifier, PlatformName, PlatformPluginConstructor, PluginIdentifier, PluginInitializer, PluginName, ScopedPluginName, StaticPlatformPlugin, } from './api.js';
|
|
10
|
+
/**
|
|
11
|
+
* Export API const enums
|
|
12
|
+
*/
|
|
13
|
+
export { APIEvent, PluginType } from './api.js';
|
|
14
|
+
/**
|
|
15
|
+
* Export bridge types
|
|
16
|
+
*/
|
|
17
|
+
export type { AccessoryConfig, BridgeConfiguration, HomebridgeConfig, PlatformConfig, } from './bridgeService.js';
|
|
18
|
+
/**
|
|
19
|
+
* Export port types
|
|
20
|
+
*/
|
|
21
|
+
export type { ExternalPortsConfiguration } from './externalPortService.js';
|
|
22
|
+
/**
|
|
23
|
+
* Export Logger const enums
|
|
24
|
+
*/
|
|
25
|
+
export { LogLevel } from './logger.js';
|
|
26
|
+
/**
|
|
27
|
+
* Export Logger types
|
|
28
|
+
*/
|
|
29
|
+
export type { Logger, Logging } from './logger.js';
|
|
30
|
+
/**
|
|
31
|
+
* ═══════════════════════════════════════════════════════════════════════
|
|
32
|
+
* Matter Protocol - Plugin API Exports
|
|
33
|
+
* ═══════════════════════════════════════════════════════════════════════
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Matter cache types
|
|
37
|
+
*/
|
|
38
|
+
export type { SerializedMatterAccessory } from './matter/accessoryCache.js';
|
|
39
|
+
/**
|
|
40
|
+
* Matter cluster command request types namespace for type-safe handlers
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* import type { MatterRequests } from 'homebridge'
|
|
44
|
+
*
|
|
45
|
+
* handlers: {
|
|
46
|
+
* levelControl: {
|
|
47
|
+
* moveToLevel: async (args: MatterRequests.MoveToLevel) => {
|
|
48
|
+
* console.log(`Level: ${args.level}`)
|
|
49
|
+
* }
|
|
50
|
+
* }
|
|
51
|
+
* }
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export { MatterRequests } from './matter/index.js';
|
|
55
|
+
/**
|
|
56
|
+
* Matter protocol status errors for plugin handlers
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* import { MatterStatus } from 'homebridge'
|
|
60
|
+
*
|
|
61
|
+
* handlers: {
|
|
62
|
+
* onOff: {
|
|
63
|
+
* on: async () => {
|
|
64
|
+
* if (deviceIsBusy) {
|
|
65
|
+
* throw new MatterStatus.Busy('Device is processing another command')
|
|
66
|
+
* }
|
|
67
|
+
* // ... control device
|
|
68
|
+
* }
|
|
69
|
+
* }
|
|
70
|
+
* }
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export { MatterStatus } from './matter/index.js';
|
|
74
|
+
export type { MatterAccessoriesResponse, MatterAccessoryInfo, MatterBridgeMetadata, MatterCommissioningInfo, MatterServerConfig, } from './matter/sharedTypes.js';
|
|
75
|
+
export { ChildMatterMessageType, MatterBridgeStatus } from './matter/sharedTypes.js';
|
|
76
|
+
/**
|
|
77
|
+
* Matter accessory and configuration types
|
|
78
|
+
*/
|
|
79
|
+
export type { MatterAccessory, MatterClusterHandlers, MatterClusterName, MatterCommandHandler, MatterConfig, } from './matter/types.js';
|
|
80
|
+
/**
|
|
81
|
+
* ═══════════════════════════════════════════════════════════════════════
|
|
82
|
+
* Matter Protocol - UI Integration Types
|
|
83
|
+
* ═══════════════════════════════════════════════════════════════════════
|
|
84
|
+
*/
|
|
85
|
+
/**
|
|
86
|
+
* Matter device types, clusters, and cluster names
|
|
87
|
+
* Access via api.matter.deviceTypes, api.matter.clusters, api.matter.clusterNames
|
|
88
|
+
*/
|
|
89
|
+
export { clusterNames, clusters, devices, deviceTypes, MatterAccessoryEventTypes } from './matter/types.js';
|
|
90
|
+
/**
|
|
91
|
+
* Matter error types for error handling
|
|
92
|
+
*/
|
|
93
|
+
export { MatterCommissioningError, MatterDeviceError, MatterError, MatterErrorType, MatterNetworkError, MatterStorageError, } from './matter/types.js';
|
|
94
|
+
export type { EndpointType, MatterErrorDetails } from './matter/types.js';
|
|
95
|
+
/**
|
|
96
|
+
* Export Platform Accessory const enums
|
|
97
|
+
*/
|
|
98
|
+
export { PlatformAccessoryEvent } from './platformAccessory.js';
|
|
99
|
+
/**
|
|
100
|
+
* Export Platform Accessory Types
|
|
101
|
+
*/
|
|
102
|
+
export type { PlatformAccessory, UnknownContext } from './platformAccessory.js';
|
|
103
|
+
/**
|
|
104
|
+
* Export server types
|
|
105
|
+
*/
|
|
106
|
+
export type { HomebridgeOptions } from './server.js';
|
|
107
|
+
/**
|
|
108
|
+
* Export User Types
|
|
109
|
+
*/
|
|
110
|
+
export type { User } from './user.js';
|
|
111
|
+
/**
|
|
112
|
+
* Export the CONST ENUMS from hap-nodejs
|
|
113
|
+
* These get converted to their string value at compile time
|
|
114
|
+
* and can be safely used directly.
|
|
115
|
+
*/
|
|
116
|
+
export { Access, AccessControlEvent, AccessLevel, AccessoryEventTypes, AdaptiveLightingControllerEvents, AdaptiveLightingControllerMode, AudioBitrate, AudioCodecTypes, AudioRecordingCodecType, AudioRecordingSamplerate, AudioSamplerate, AudioStreamingCodecType, AudioStreamingSamplerate, ButtonState, ButtonType, CameraControllerEvents, Categories, ChangeReason, CharacteristicEventTypes, DataFormatTags, DataStreamConnectionEvent, DataStreamServerEvent, DataStreamStatus, DefaultControllerType, EventTriggerOption, Formats, H264Level, H264Profile, HAPServerEventTypes, HAPStatus, HDSProtocolSpecificErrorReason, HDSStatus, MediaContainerType, PacketDataType, Perms, Protocols, RemoteControllerEvents, ResourceRequestReason, ServiceEventTypes, SiriAudioSessionEvents, SRTPCryptoSuites, StreamRequestTypes, TargetCategory, TargetUpdates, Topics, Units, } from 'hap-nodejs';
|
|
117
|
+
/**
|
|
118
|
+
* Export HAP-NodeJS namespaces as type only
|
|
119
|
+
*/
|
|
120
|
+
export type { DataStreamParser } from 'hap-nodejs';
|
|
121
|
+
/**
|
|
122
|
+
* Export HAP-NodeJS classes as type only
|
|
123
|
+
*/
|
|
124
|
+
export type { AccessControlManagement, AdaptiveLightingController, CameraController, Characteristic, ColorUtils, DataStreamConnection, DataStreamManagement, DataStreamReader, DataStreamServer, DataStreamWriter, DoorbellController, HAPServer, HapStatusError, HAPStorage, HDSProtocolError, RecordingManagement, RemoteController, RTPStreamManagement, Service, SiriAudioSession, } from 'hap-nodejs';
|
|
125
|
+
/**
|
|
126
|
+
* Export HAP-NodeJS interfaces as type only
|
|
127
|
+
*/
|
|
128
|
+
export type { ActiveAdaptiveLightingTransition, AdaptiveLightingOptions, AdaptiveLightingTransitionCurveEntry, BrightnessAdjustmentMultiplierRange, CameraControllerOptions, CameraRecordingConfiguration, CameraRecordingDelegate, CameraStreamingDelegate, CharacteristicOperationContext, CharacteristicProps, Controller, ControllerConstructor, ControllerContext, ControllerServiceMap, DataStreamProtocolHandler, DoorbellOptions, H264CodecParameters, MediaContainerConfiguration, ProxiedSourceResponse, PublishInfo, RecordingManagementState, RecordingPacket, RTPProxyOptions, RTPStreamManagementState, SelectedH264CodecParameters, SerializableController, ServiceConfigurationChange, SiriAudioStreamProducer, SiriAudioStreamProducerConstructor, SourceResponse, VideoRecordingOptions, } from 'hap-nodejs';
|
|
129
|
+
/**
|
|
130
|
+
* Export HAP-NodeJS type aliases as type only
|
|
131
|
+
*/
|
|
132
|
+
export type { AccessoriesCallback, AccessoryCharacteristicChange, AdditionalAuthorizationHandler, AddPairingCallback, AudioCodecConfiguration, AudioCodecParameters, AudioFrame, AudioInfo, AudioRecordingCodec, AudioRecordingOptions, AudioStreamingCodec, AudioStreamingOptions, ButtonConfiguration, CameraRecordingOptions, CameraStreamingOptions, CharacteristicChange, CharacteristicGetCallback, CharacteristicGetHandler, CharacteristicSetCallback, CharacteristicSetHandler, CharacteristicValue, ConstructorArgs, ControllerType, ErrorHandler, EventHandler, FrameHandler, GlobalEventHandler, GlobalRequestHandler, HAPHttpError, HAPPincode, IdentificationCallback, IdentifyCallback, InterfaceName, IPAddress, IPv4Address, IPv6Address, ListPairingsCallback, MacAddress, NodeCallback, Nullable, PairCallback, PairingsCallback, PartialAllowingNull, PreparedDataStreamSession, PrepareStreamCallback, PrepareStreamRequest, PrepareStreamResponse, PrimitiveTypes, ReadCharacteristicsCallback, ReconfiguredVideoInfo, ReconfigureStreamRequest, RemovePairingCallback, RequestHandler, Resolution, ResourceRequestCallback, ResponseHandler, RTPTime, SerializedServiceMap, ServiceCharacteristicChange, ServiceId, SessionIdentifier, SnapshotRequest, SnapshotRequestCallback, Source, StartStreamRequest, StateChangeDelegate, StopStreamRequest, StreamingRequest, StreamRequestCallback, StreamSessionIdentifier, SupportedButtonConfiguration, SupportedConfiguration, TargetConfiguration, TLVEncodable, VideoInfo, VideoStreamingOptions, VoidCallback, WithUUID, WriteCharacteristicsCallback, } from 'hap-nodejs';
|
|
133
|
+
/**
|
|
134
|
+
* Export HAP-NodeJS variables as type only
|
|
135
|
+
*/
|
|
136
|
+
export type { LegacyTypes, uuid } from 'hap-nodejs';
|
|
137
|
+
/**
|
|
138
|
+
* Export HAP-NodeJS functions as type only
|
|
139
|
+
*/
|
|
140
|
+
export type { clone, decode, decodeList, decodeWithLists, encode, epochMillisFromMillisSince2001_01_01, epochMillisFromMillisSince2001_01_01Buffer, once, } from 'hap-nodejs';
|
|
141
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export API const enums
|
|
3
|
+
*/
|
|
4
|
+
export { APIEvent, PluginType } from './api.js';
|
|
5
|
+
/**
|
|
6
|
+
* Export Logger const enums
|
|
7
|
+
*/
|
|
8
|
+
export { LogLevel } from './logger.js';
|
|
9
|
+
/**
|
|
10
|
+
* Matter protocol status errors for plugin handlers
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { MatterStatus } from 'homebridge'
|
|
14
|
+
*
|
|
15
|
+
* handlers: {
|
|
16
|
+
* onOff: {
|
|
17
|
+
* on: async () => {
|
|
18
|
+
* if (deviceIsBusy) {
|
|
19
|
+
* throw new MatterStatus.Busy('Device is processing another command')
|
|
20
|
+
* }
|
|
21
|
+
* // ... control device
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export { MatterStatus } from './matter/index.js';
|
|
28
|
+
export { ChildMatterMessageType, MatterBridgeStatus } from './matter/sharedTypes.js';
|
|
29
|
+
/**
|
|
30
|
+
* ═══════════════════════════════════════════════════════════════════════
|
|
31
|
+
* Matter Protocol - UI Integration Types
|
|
32
|
+
* ═══════════════════════════════════════════════════════════════════════
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* Matter device types, clusters, and cluster names
|
|
36
|
+
* Access via api.matter.deviceTypes, api.matter.clusters, api.matter.clusterNames
|
|
37
|
+
*/
|
|
38
|
+
export { clusterNames, clusters, devices, deviceTypes, MatterAccessoryEventTypes } from './matter/types.js';
|
|
39
|
+
/**
|
|
40
|
+
* Matter error types for error handling
|
|
41
|
+
*/
|
|
42
|
+
export { MatterCommissioningError, MatterDeviceError, MatterError, MatterErrorType, MatterNetworkError, MatterStorageError, } from './matter/types.js';
|
|
43
|
+
/**
|
|
44
|
+
* Export Platform Accessory const enums
|
|
45
|
+
*/
|
|
46
|
+
export { PlatformAccessoryEvent } from './platformAccessory.js';
|
|
47
|
+
/**
|
|
48
|
+
* Export the CONST ENUMS from hap-nodejs
|
|
49
|
+
* These get converted to their string value at compile time
|
|
50
|
+
* and can be safely used directly.
|
|
51
|
+
*/
|
|
52
|
+
export { Access, AccessControlEvent, AccessLevel, AccessoryEventTypes, AdaptiveLightingControllerEvents, AdaptiveLightingControllerMode, AudioBitrate, AudioCodecTypes, AudioRecordingCodecType, AudioRecordingSamplerate, AudioSamplerate, AudioStreamingCodecType, AudioStreamingSamplerate, ButtonState, ButtonType, CameraControllerEvents, Categories, ChangeReason, CharacteristicEventTypes, DataFormatTags, DataStreamConnectionEvent, DataStreamServerEvent, DataStreamStatus, DefaultControllerType, EventTriggerOption, Formats, H264Level, H264Profile, HAPServerEventTypes, HAPStatus, HDSProtocolSpecificErrorReason, HDSStatus, MediaContainerType, PacketDataType, Perms, Protocols, RemoteControllerEvents, ResourceRequestReason, ServiceEventTypes, SiriAudioSessionEvents, SRTPCryptoSuites, StreamRequestTypes, TargetCategory, TargetUpdates, Topics, Units, } from 'hap-nodejs';
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8BA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAiB/C;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAmCtC;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAUhD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAapF;;;;GAIG;AAEH;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAE3G;;GAEG;AACH,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAI1B;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAiB/D;;;;GAIG;AACH,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,gCAAgC,EAChC,8BAA8B,EAC9B,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,UAAU,EACV,YAAY,EACZ,wBAAwB,EACxB,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,OAAO,EACP,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,8BAA8B,EAC9B,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,KAAK,EACL,SAAS,EACT,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,MAAM,EACN,KAAK,GACN,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
export declare const enum IpcIncomingEvent {
|
|
3
|
+
RESTART_CHILD_BRIDGE = "restartChildBridge",
|
|
4
|
+
STOP_CHILD_BRIDGE = "stopChildBridge",
|
|
5
|
+
START_CHILD_BRIDGE = "startChildBridge"
|
|
6
|
+
}
|
|
7
|
+
export declare const enum IpcOutgoingEvent {
|
|
8
|
+
SERVER_STATUS_UPDATE = "serverStatusUpdate",
|
|
9
|
+
CHILD_BRIDGE_STATUS_UPDATE = "childBridgeStatusUpdate"
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Server status update message sent from Homebridge to parent process
|
|
13
|
+
*/
|
|
14
|
+
export interface ServerStatusUpdate {
|
|
15
|
+
status: string;
|
|
16
|
+
paired: boolean | null;
|
|
17
|
+
setupUri: string | null;
|
|
18
|
+
name: string;
|
|
19
|
+
username: string;
|
|
20
|
+
pin: string;
|
|
21
|
+
matter: {
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
port?: number;
|
|
24
|
+
setupUri?: string;
|
|
25
|
+
pin?: string;
|
|
26
|
+
serialNumber?: string;
|
|
27
|
+
commissioned?: boolean;
|
|
28
|
+
deviceCount?: number;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export declare interface IpcService {
|
|
32
|
+
on: ((event: IpcIncomingEvent.RESTART_CHILD_BRIDGE, listener: (childBridgeUsername: string) => void) => this) & ((event: IpcIncomingEvent.STOP_CHILD_BRIDGE, listener: (childBridgeUsername: string) => void) => this) & ((event: IpcIncomingEvent.START_CHILD_BRIDGE, listener: (childBridgeUsername: string) => void) => this);
|
|
33
|
+
}
|
|
34
|
+
export declare class IpcService extends EventEmitter {
|
|
35
|
+
constructor();
|
|
36
|
+
/**
|
|
37
|
+
* Start the IPC service listeners/
|
|
38
|
+
* Currently this will only listen for messages from a parent process.
|
|
39
|
+
*/
|
|
40
|
+
start(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Send a message to connected IPC clients.
|
|
43
|
+
* Currently, this will only send messages if Homebridge was launched as a child_process.fork()
|
|
44
|
+
* from another Node.js process (such as hb-service).
|
|
45
|
+
*/
|
|
46
|
+
sendMessage(id: IpcOutgoingEvent, data: unknown): void;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=ipcService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipcService.d.ts","sourceRoot":"","sources":["../src/ipcService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI1C,0BAAkB,gBAAgB;IAChC,oBAAoB,uBAAuB;IAC3C,iBAAiB,oBAAoB;IACrC,kBAAkB,qBAAqB;CACxC;AAGD,0BAAkB,gBAAgB;IAChC,oBAAoB,uBAAuB;IAC3C,0BAA0B,4BAA4B;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACF;AAGD,MAAM,CAAC,OAAO,WAAW,UAAU;IACjC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,CAAA;CACjU;AAGD,qBAAa,UAAW,SAAQ,YAAY;;IAK1C;;;OAGG;IACI,KAAK,IAAI,IAAI;IASpB;;;;OAIG;IACI,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAQ9D"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var IpcIncomingEvent;
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
4
|
+
export var IpcIncomingEvent;
|
|
6
5
|
(function (IpcIncomingEvent) {
|
|
7
6
|
IpcIncomingEvent["RESTART_CHILD_BRIDGE"] = "restartChildBridge";
|
|
8
7
|
IpcIncomingEvent["STOP_CHILD_BRIDGE"] = "stopChildBridge";
|
|
9
8
|
IpcIncomingEvent["START_CHILD_BRIDGE"] = "startChildBridge";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var IpcOutgoingEvent;
|
|
9
|
+
})(IpcIncomingEvent || (IpcIncomingEvent = {}));
|
|
10
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
11
|
+
export var IpcOutgoingEvent;
|
|
13
12
|
(function (IpcOutgoingEvent) {
|
|
14
13
|
IpcOutgoingEvent["SERVER_STATUS_UPDATE"] = "serverStatusUpdate";
|
|
15
|
-
IpcOutgoingEvent["CHILD_BRIDGE_METADATA_RESPONSE"] = "childBridgeMetadataResponse";
|
|
16
14
|
IpcOutgoingEvent["CHILD_BRIDGE_STATUS_UPDATE"] = "childBridgeStatusUpdate";
|
|
17
|
-
})(IpcOutgoingEvent || (
|
|
18
|
-
|
|
15
|
+
})(IpcOutgoingEvent || (IpcOutgoingEvent = {}));
|
|
16
|
+
// eslint-disable-next-line ts/no-unsafe-declaration-merging
|
|
17
|
+
export class IpcService extends EventEmitter {
|
|
19
18
|
constructor() {
|
|
20
19
|
super();
|
|
21
20
|
}
|
|
@@ -24,8 +23,8 @@ class IpcService extends events_1.EventEmitter {
|
|
|
24
23
|
* Currently this will only listen for messages from a parent process.
|
|
25
24
|
*/
|
|
26
25
|
start() {
|
|
27
|
-
process.on(
|
|
28
|
-
if (!message || typeof message !==
|
|
26
|
+
process.on('message', (message) => {
|
|
27
|
+
if (!message || typeof message !== 'object' || !message.id) {
|
|
29
28
|
return;
|
|
30
29
|
}
|
|
31
30
|
this.emit(message.id, message.data);
|
|
@@ -45,5 +44,4 @@ class IpcService extends events_1.EventEmitter {
|
|
|
45
44
|
}
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
|
-
exports.IpcService = IpcService;
|
|
49
47
|
//# sourceMappingURL=ipcService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipcService.js","sourceRoot":"","sources":["../src/ipcService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,gDAAgD;AAChD,MAAM,CAAN,IAAkB,gBAIjB;AAJD,WAAkB,gBAAgB;IAChC,+DAA2C,CAAA;IAC3C,yDAAqC,CAAA;IACrC,2DAAuC,CAAA;AACzC,CAAC,EAJiB,gBAAgB,KAAhB,gBAAgB,QAIjC;AAED,gDAAgD;AAChD,MAAM,CAAN,IAAkB,gBAGjB;AAHD,WAAkB,gBAAgB;IAChC,+DAA2C,CAAA;IAC3C,0EAAsD,CAAA;AACxD,CAAC,EAHiB,gBAAgB,KAAhB,gBAAgB,QAGjC;AA4BD,4DAA4D;AAC5D,MAAM,OAAO,UAAW,SAAQ,YAAY;IAC1C;QACE,KAAK,EAAE,CAAA;IACT,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAoC,EAAE,EAAE;YAC7D,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC3D,OAAM;YACR,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,EAAoB,EAAE,IAAa;QACpD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE;gBACF,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF"}
|
package/{lib → dist}/logger.d.ts
RENAMED
|
@@ -24,12 +24,12 @@ export declare const enum LogLevel {
|
|
|
24
24
|
export interface Logging {
|
|
25
25
|
prefix: string;
|
|
26
26
|
(message: string, ...parameters: any[]): void;
|
|
27
|
-
info(message: string, ...parameters: any[])
|
|
28
|
-
success(message: string, ...parameters: any[])
|
|
29
|
-
warn(message: string, ...parameters: any[])
|
|
30
|
-
error(message: string, ...parameters: any[])
|
|
31
|
-
debug(message: string, ...parameters: any[])
|
|
32
|
-
log(level: LogLevel, message: string, ...parameters: any[])
|
|
27
|
+
info: (message: string, ...parameters: any[]) => void;
|
|
28
|
+
success: (message: string, ...parameters: any[]) => void;
|
|
29
|
+
warn: (message: string, ...parameters: any[]) => void;
|
|
30
|
+
error: (message: string, ...parameters: any[]) => void;
|
|
31
|
+
debug: (message: string, ...parameters: any[]) => void;
|
|
32
|
+
log: (level: LogLevel, message: string, ...parameters: any[]) => void;
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Logger class
|
|
@@ -59,6 +59,12 @@ export declare class Logger {
|
|
|
59
59
|
* @param enabled {boolean}
|
|
60
60
|
*/
|
|
61
61
|
static setTimestampEnabled(enabled?: boolean): void;
|
|
62
|
+
/**
|
|
63
|
+
* Check if timestamps are enabled in log messages.
|
|
64
|
+
*
|
|
65
|
+
* @returns {boolean} true if timestamps are enabled
|
|
66
|
+
*/
|
|
67
|
+
static isTimestampEnabled(): boolean;
|
|
62
68
|
/**
|
|
63
69
|
* Forces color in logging output, even if it seems like color is unsupported.
|
|
64
70
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,0BAAkB,QAAQ;IACxB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAC7C,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACrD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACxD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACrD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACtD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACtD,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CACtE;AAaD;;GAEG;AACH,qBAAa,MAAM;IACjB,gBAAuB,QAAQ,SAAe;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAChE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAQ;IACnC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAO;IAEtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;gBAEZ,MAAM,CAAC,EAAE,MAAM;IAI3B;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAyB1C;;;;OAIG;WACW,eAAe,CAAC,OAAO,GAAE,OAAc,GAAG,IAAI;IAI5D;;;;OAIG;WACW,mBAAmB,CAAC,OAAO,GAAE,OAAc,GAAG,IAAI;IAIhE;;;;OAIG;WACW,kBAAkB,IAAI,OAAO;IAI3C;;OAEG;WACW,UAAU,IAAI,IAAI;IAIzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAIjD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAIpD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAIjD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAIlD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAIlD,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;CAoCzE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|
package/{lib → dist}/logger.js
RENAMED
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Logger = exports.LogLevel = void 0;
|
|
7
|
-
exports.getLogPrefix = getLogPrefix;
|
|
8
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
9
|
-
const util_1 = __importDefault(require("util"));
|
|
10
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
1
|
+
import util from 'node:util';
|
|
2
|
+
import chalk from 'chalk';
|
|
11
3
|
/**
|
|
12
4
|
* Log levels to indicate importance of the logged message.
|
|
13
5
|
* Every level corresponds to a certain color.
|
|
@@ -20,18 +12,19 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
20
12
|
*
|
|
21
13
|
* Messages with DEBUG level are only displayed if explicitly enabled.
|
|
22
14
|
*/
|
|
23
|
-
|
|
15
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
16
|
+
export var LogLevel;
|
|
24
17
|
(function (LogLevel) {
|
|
25
18
|
LogLevel["INFO"] = "info";
|
|
26
19
|
LogLevel["SUCCESS"] = "success";
|
|
27
20
|
LogLevel["WARN"] = "warn";
|
|
28
21
|
LogLevel["ERROR"] = "error";
|
|
29
22
|
LogLevel["DEBUG"] = "debug";
|
|
30
|
-
})(LogLevel || (
|
|
23
|
+
})(LogLevel || (LogLevel = {}));
|
|
31
24
|
/**
|
|
32
25
|
* Logger class
|
|
33
26
|
*/
|
|
34
|
-
class Logger {
|
|
27
|
+
export class Logger {
|
|
35
28
|
static internal = new Logger();
|
|
36
29
|
static loggerCache = new Map(); // global cache of logger instances by plugin name
|
|
37
30
|
static debugEnabled = false;
|
|
@@ -60,9 +53,8 @@ class Logger {
|
|
|
60
53
|
log.debug = logger.debug;
|
|
61
54
|
log.log = logger.log;
|
|
62
55
|
log.prefix = logger.prefix;
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
const logging = log; // I aimed to not use ts-ignore in this project, but this evil "thing" above is hell
|
|
56
|
+
// @ts-expect-error: I aimed to not use ts-ignore in this project, but this evil "thing" above is hell
|
|
57
|
+
const logging = log;
|
|
66
58
|
Logger.loggerCache.set(prefix, logging);
|
|
67
59
|
return logging;
|
|
68
60
|
}
|
|
@@ -83,11 +75,19 @@ class Logger {
|
|
|
83
75
|
static setTimestampEnabled(enabled = true) {
|
|
84
76
|
Logger.timestampEnabled = enabled;
|
|
85
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Check if timestamps are enabled in log messages.
|
|
80
|
+
*
|
|
81
|
+
* @returns {boolean} true if timestamps are enabled
|
|
82
|
+
*/
|
|
83
|
+
static isTimestampEnabled() {
|
|
84
|
+
return Logger.timestampEnabled;
|
|
85
|
+
}
|
|
86
86
|
/**
|
|
87
87
|
* Forces color in logging output, even if it seems like color is unsupported.
|
|
88
88
|
*/
|
|
89
89
|
static forceColor() {
|
|
90
|
-
|
|
90
|
+
chalk.level = 1; // `1` - Basic 16 colors support.
|
|
91
91
|
}
|
|
92
92
|
info(message, ...parameters) {
|
|
93
93
|
this.log("info" /* LogLevel.INFO */, message, ...parameters);
|
|
@@ -108,40 +108,39 @@ class Logger {
|
|
|
108
108
|
if (level === "debug" /* LogLevel.DEBUG */ && !Logger.debugEnabled) {
|
|
109
109
|
return;
|
|
110
110
|
}
|
|
111
|
-
message =
|
|
112
|
-
let loggingFunction = console.log;
|
|
111
|
+
message = util.format(message, ...parameters);
|
|
112
|
+
let loggingFunction = console.log; // eslint-disable-line no-console
|
|
113
113
|
switch (level) {
|
|
114
114
|
case "success" /* LogLevel.SUCCESS */:
|
|
115
|
-
message =
|
|
115
|
+
message = chalk.green(message);
|
|
116
116
|
break;
|
|
117
117
|
case "warn" /* LogLevel.WARN */:
|
|
118
|
-
message =
|
|
118
|
+
message = chalk.yellow(message);
|
|
119
119
|
loggingFunction = console.error;
|
|
120
120
|
break;
|
|
121
121
|
case "error" /* LogLevel.ERROR */:
|
|
122
|
-
message =
|
|
122
|
+
message = chalk.red(message);
|
|
123
123
|
loggingFunction = console.error;
|
|
124
124
|
break;
|
|
125
125
|
case "debug" /* LogLevel.DEBUG */:
|
|
126
|
-
message =
|
|
126
|
+
message = chalk.gray(message);
|
|
127
127
|
break;
|
|
128
128
|
}
|
|
129
129
|
if (this.prefix) {
|
|
130
|
-
message = getLogPrefix(this.prefix)
|
|
130
|
+
message = `${getLogPrefix(this.prefix)} ${message}`;
|
|
131
131
|
}
|
|
132
132
|
if (Logger.timestampEnabled) {
|
|
133
133
|
const date = new Date();
|
|
134
|
-
message =
|
|
134
|
+
message = chalk.white(`[${date.toLocaleString()}] `) + message;
|
|
135
135
|
}
|
|
136
136
|
loggingFunction(message);
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
-
exports.Logger = Logger;
|
|
140
139
|
/**
|
|
141
140
|
* Gets the prefix
|
|
142
141
|
* @param prefix
|
|
143
142
|
*/
|
|
144
|
-
function getLogPrefix(prefix) {
|
|
145
|
-
return
|
|
143
|
+
export function getLogPrefix(prefix) {
|
|
144
|
+
return chalk.cyan(`[${prefix}]`);
|
|
146
145
|
}
|
|
147
146
|
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.spec.d.ts","sourceRoot":"","sources":["../src/logger.spec.ts"],"names":[],"mappings":""}
|