homebridge 2.0.0-beta.3 → 2.0.0-beta.31
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 +457 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +221 -0
- package/dist/api.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/dist/childBridgeFork.d.ts +65 -0
- package/dist/childBridgeFork.d.ts.map +1 -0
- package/dist/childBridgeFork.js +531 -0
- package/dist/childBridgeFork.js.map +1 -0
- package/{lib → dist}/childBridgeService.d.ts +30 -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 +54 -0
- package/dist/externalPortService.d.ts.map +1 -0
- package/dist/externalPortService.js +125 -0
- package/dist/externalPortService.js.map +1 -0
- package/dist/index.d.ts +122 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/{lib → dist}/ipcService.d.ts +22 -5
- package/dist/ipcService.d.ts.map +1 -0
- package/{lib → dist}/ipcService.js +12 -12
- 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/matter/index.d.ts +123 -0
- package/dist/matter/index.d.ts.map +1 -0
- package/dist/matter/index.js +19 -0
- package/dist/matter/index.js.map +1 -0
- package/dist/matter/matterAccessoryCache.d.ts +96 -0
- package/dist/matter/matterAccessoryCache.d.ts.map +1 -0
- package/dist/matter/matterAccessoryCache.js +192 -0
- package/dist/matter/matterAccessoryCache.js.map +1 -0
- package/dist/matter/matterBehaviors.d.ts +194 -0
- package/dist/matter/matterBehaviors.d.ts.map +1 -0
- package/dist/matter/matterBehaviors.js +665 -0
- package/dist/matter/matterBehaviors.js.map +1 -0
- package/dist/matter/matterConfigValidator.d.ts +81 -0
- package/dist/matter/matterConfigValidator.d.ts.map +1 -0
- package/dist/matter/matterConfigValidator.js +240 -0
- package/dist/matter/matterConfigValidator.js.map +1 -0
- package/dist/matter/matterErrorHandler.d.ts +106 -0
- package/dist/matter/matterErrorHandler.d.ts.map +1 -0
- package/dist/matter/matterErrorHandler.js +495 -0
- package/dist/matter/matterErrorHandler.js.map +1 -0
- package/dist/matter/matterLogFormatter.d.ts +19 -0
- package/dist/matter/matterLogFormatter.d.ts.map +1 -0
- package/dist/matter/matterLogFormatter.js +144 -0
- package/dist/matter/matterLogFormatter.js.map +1 -0
- package/dist/matter/matterNetworkMonitor.d.ts +68 -0
- package/dist/matter/matterNetworkMonitor.d.ts.map +1 -0
- package/dist/matter/matterNetworkMonitor.js +249 -0
- package/dist/matter/matterNetworkMonitor.js.map +1 -0
- package/dist/matter/matterServer.d.ts +656 -0
- package/dist/matter/matterServer.d.ts.map +1 -0
- package/dist/matter/matterServer.js +1690 -0
- package/dist/matter/matterServer.js.map +1 -0
- package/dist/matter/matterServerHelpers.d.ts +81 -0
- package/dist/matter/matterServerHelpers.d.ts.map +1 -0
- package/dist/matter/matterServerHelpers.js +323 -0
- package/dist/matter/matterServerHelpers.js.map +1 -0
- package/dist/matter/matterSharedTypes.d.ts +170 -0
- package/dist/matter/matterSharedTypes.d.ts.map +1 -0
- package/dist/matter/matterSharedTypes.js +52 -0
- package/dist/matter/matterSharedTypes.js.map +1 -0
- package/dist/matter/matterStorage.d.ts +128 -0
- package/dist/matter/matterStorage.d.ts.map +1 -0
- package/dist/matter/matterStorage.js +415 -0
- package/dist/matter/matterStorage.js.map +1 -0
- package/dist/matter/matterTypes.d.ts +745 -0
- package/dist/matter/matterTypes.d.ts.map +1 -0
- package/dist/matter/matterTypes.js +174 -0
- package/dist/matter/matterTypes.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/{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/{lib → dist}/server.d.ts +23 -1
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +811 -0
- package/dist/server.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/{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/version.d.ts.map +1 -0
- package/dist/version.js +16 -0
- package/dist/version.js.map +1 -0
- package/package.json +48 -49
- 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 +0 -37
- package/lib/childBridgeFork.d.ts.map +0 -1
- package/lib/childBridgeFork.js +0 -244
- 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.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 +0 -457
- 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
package/dist/api.js
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import hapNodeJs from 'hap-nodejs';
|
|
3
|
+
import semver from 'semver';
|
|
4
|
+
import { Logger } from './logger.js';
|
|
5
|
+
import { clusterNames, clusters, deviceTypes, MatterTypes } from './matter/index.js';
|
|
6
|
+
import { PlatformAccessory } from './platformAccessory.js';
|
|
7
|
+
import { PluginManager } from './pluginManager.js';
|
|
8
|
+
import { User } from './user.js';
|
|
9
|
+
import getVersion from './version.js';
|
|
10
|
+
const log = Logger.internal;
|
|
11
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
12
|
+
export var PluginType;
|
|
13
|
+
(function (PluginType) {
|
|
14
|
+
PluginType["ACCESSORY"] = "accessory";
|
|
15
|
+
PluginType["PLATFORM"] = "platform";
|
|
16
|
+
})(PluginType || (PluginType = {}));
|
|
17
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
18
|
+
export var APIEvent;
|
|
19
|
+
(function (APIEvent) {
|
|
20
|
+
/**
|
|
21
|
+
* Event is fired once homebridge has finished with booting up and initializing all components and plugins.
|
|
22
|
+
* When this event is fired it is possible that the Bridge accessory isn't published yet, if homebridge still needs
|
|
23
|
+
* to wait for some {@see StaticPlatformPlugin | StaticPlatformPlugins} to finish accessory creation.
|
|
24
|
+
*/
|
|
25
|
+
APIEvent["DID_FINISH_LAUNCHING"] = "didFinishLaunching";
|
|
26
|
+
/**
|
|
27
|
+
* This event is fired when homebridge gets shutdown. This could be a regular shutdown or an unexpected crash.
|
|
28
|
+
* At this stage all Accessories are already unpublished and all PlatformAccessories are already saved to disk!
|
|
29
|
+
*/
|
|
30
|
+
APIEvent["SHUTDOWN"] = "shutdown";
|
|
31
|
+
})(APIEvent || (APIEvent = {}));
|
|
32
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
33
|
+
export var InternalAPIEvent;
|
|
34
|
+
(function (InternalAPIEvent) {
|
|
35
|
+
InternalAPIEvent["REGISTER_ACCESSORY"] = "registerAccessory";
|
|
36
|
+
InternalAPIEvent["REGISTER_PLATFORM"] = "registerPlatform";
|
|
37
|
+
InternalAPIEvent["PUBLISH_EXTERNAL_ACCESSORIES"] = "publishExternalAccessories";
|
|
38
|
+
InternalAPIEvent["REGISTER_PLATFORM_ACCESSORIES"] = "registerPlatformAccessories";
|
|
39
|
+
InternalAPIEvent["UPDATE_PLATFORM_ACCESSORIES"] = "updatePlatformAccessories";
|
|
40
|
+
InternalAPIEvent["UNREGISTER_PLATFORM_ACCESSORIES"] = "unregisterPlatformAccessories";
|
|
41
|
+
// Matter events (matching HAP pattern)
|
|
42
|
+
InternalAPIEvent["PUBLISH_EXTERNAL_MATTER_ACCESSORIES"] = "publishExternalMatterAccessories";
|
|
43
|
+
InternalAPIEvent["REGISTER_MATTER_PLATFORM_ACCESSORIES"] = "registerMatterPlatformAccessories";
|
|
44
|
+
InternalAPIEvent["UNREGISTER_MATTER_PLATFORM_ACCESSORIES"] = "unregisterMatterPlatformAccessories";
|
|
45
|
+
InternalAPIEvent["UPDATE_MATTER_ACCESSORY_STATE"] = "updateMatterAccessoryState";
|
|
46
|
+
})(InternalAPIEvent || (InternalAPIEvent = {}));
|
|
47
|
+
// eslint-disable-next-line ts/no-unsafe-declaration-merging
|
|
48
|
+
export class HomebridgeAPI extends EventEmitter {
|
|
49
|
+
version = 2.7; // homebridge API version
|
|
50
|
+
serverVersion = getVersion(); // homebridge node module version
|
|
51
|
+
// ------------------ LEGACY EXPORTS FOR PRE TYPESCRIPT ------------------
|
|
52
|
+
user = User;
|
|
53
|
+
hap = hapNodeJs;
|
|
54
|
+
hapLegacyTypes = hapNodeJs.LegacyTypes; // used for older accessories/platforms
|
|
55
|
+
platformAccessory = PlatformAccessory;
|
|
56
|
+
// ------------------------------------------------------------------------
|
|
57
|
+
/**
|
|
58
|
+
* Matter Protocol API
|
|
59
|
+
*/
|
|
60
|
+
matter;
|
|
61
|
+
/**
|
|
62
|
+
* Internal state tracking whether Matter is enabled for this bridge
|
|
63
|
+
*/
|
|
64
|
+
matterEnabled = false;
|
|
65
|
+
/**
|
|
66
|
+
* Internal reference to MatterServer for API methods that need return values
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
_matterServer = null;
|
|
70
|
+
constructor() {
|
|
71
|
+
super();
|
|
72
|
+
// Initialize Matter API (just like HAP)
|
|
73
|
+
this.matter = {
|
|
74
|
+
uuid: this.hap.uuid,
|
|
75
|
+
deviceTypes,
|
|
76
|
+
clusters,
|
|
77
|
+
clusterNames,
|
|
78
|
+
types: MatterTypes,
|
|
79
|
+
registerPlatformAccessories: (pluginIdentifier, platformName, accessories) => {
|
|
80
|
+
// Add plugin/platform association to accessories
|
|
81
|
+
accessories.forEach((accessory) => {
|
|
82
|
+
const internal = accessory;
|
|
83
|
+
internal._associatedPlugin = pluginIdentifier;
|
|
84
|
+
internal._associatedPlatform = platformName;
|
|
85
|
+
});
|
|
86
|
+
this.emit("registerMatterPlatformAccessories" /* InternalAPIEvent.REGISTER_MATTER_PLATFORM_ACCESSORIES */, pluginIdentifier, platformName, accessories);
|
|
87
|
+
},
|
|
88
|
+
unregisterPlatformAccessories: (pluginIdentifier, platformName, accessories) => {
|
|
89
|
+
this.emit("unregisterMatterPlatformAccessories" /* InternalAPIEvent.UNREGISTER_MATTER_PLATFORM_ACCESSORIES */, pluginIdentifier, platformName, accessories);
|
|
90
|
+
},
|
|
91
|
+
publishExternalAccessories: (pluginIdentifier, accessories) => {
|
|
92
|
+
if (!PluginManager.isQualifiedPluginIdentifier(pluginIdentifier)) {
|
|
93
|
+
log.info(`One of your plugins incorrectly registered an external Matter accessory using the platform name (${pluginIdentifier}) and not the plugin identifier. Please report this to the developer!`);
|
|
94
|
+
}
|
|
95
|
+
// Add plugin association to accessories
|
|
96
|
+
accessories.forEach((accessory) => {
|
|
97
|
+
const internal = accessory;
|
|
98
|
+
internal._associatedPlugin = pluginIdentifier;
|
|
99
|
+
});
|
|
100
|
+
this.emit("publishExternalMatterAccessories" /* InternalAPIEvent.PUBLISH_EXTERNAL_MATTER_ACCESSORIES */, accessories);
|
|
101
|
+
},
|
|
102
|
+
updateAccessoryState: (uuid, cluster, attributes, partId) => {
|
|
103
|
+
this.emit("updateMatterAccessoryState" /* InternalAPIEvent.UPDATE_MATTER_ACCESSORY_STATE */, uuid, cluster, attributes, partId);
|
|
104
|
+
},
|
|
105
|
+
getAccessoryState: (uuid, cluster, partId) => {
|
|
106
|
+
if (!this._matterServer) {
|
|
107
|
+
log.debug('Matter server not available for getAccessoryState');
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
return this._matterServer.getAccessoryState(uuid, cluster, partId);
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Internal method to set Matter enabled status
|
|
116
|
+
* Called by Server or ChildBridgeFork after Matter initialization
|
|
117
|
+
* @internal
|
|
118
|
+
*/
|
|
119
|
+
_setMatterEnabled(enabled) {
|
|
120
|
+
this.matterEnabled = enabled;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Internal method to set MatterServer reference
|
|
124
|
+
* Called by Server or ChildBridgeFork after creating MatterServer
|
|
125
|
+
* @internal
|
|
126
|
+
*/
|
|
127
|
+
_setMatterServer(server) {
|
|
128
|
+
this._matterServer = server;
|
|
129
|
+
}
|
|
130
|
+
versionGreaterOrEqual(version) {
|
|
131
|
+
return semver.gte(this.serverVersion, version);
|
|
132
|
+
}
|
|
133
|
+
static isDynamicPlatformPlugin(platformPlugin) {
|
|
134
|
+
return 'configureAccessory' in platformPlugin;
|
|
135
|
+
}
|
|
136
|
+
static isStaticPlatformPlugin(platformPlugin) {
|
|
137
|
+
return 'accessories' in platformPlugin;
|
|
138
|
+
}
|
|
139
|
+
signalFinished() {
|
|
140
|
+
this.emit("didFinishLaunching" /* APIEvent.DID_FINISH_LAUNCHING */);
|
|
141
|
+
}
|
|
142
|
+
signalShutdown() {
|
|
143
|
+
this.emit("shutdown" /* APIEvent.SHUTDOWN */);
|
|
144
|
+
}
|
|
145
|
+
registerAccessory(pluginIdentifier, accessoryName, constructor) {
|
|
146
|
+
if (typeof accessoryName === 'function') {
|
|
147
|
+
constructor = accessoryName;
|
|
148
|
+
accessoryName = pluginIdentifier;
|
|
149
|
+
this.emit("registerAccessory" /* InternalAPIEvent.REGISTER_ACCESSORY */, accessoryName, constructor);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.emit("registerAccessory" /* InternalAPIEvent.REGISTER_ACCESSORY */, accessoryName, constructor, pluginIdentifier);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
registerPlatform(pluginIdentifier, platformName, constructor) {
|
|
156
|
+
if (typeof platformName === 'function') {
|
|
157
|
+
constructor = platformName;
|
|
158
|
+
platformName = pluginIdentifier;
|
|
159
|
+
this.emit("registerPlatform" /* InternalAPIEvent.REGISTER_PLATFORM */, platformName, constructor);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
this.emit("registerPlatform" /* InternalAPIEvent.REGISTER_PLATFORM */, platformName, constructor, pluginIdentifier);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
publishCameraAccessories(pluginIdentifier, accessories) {
|
|
166
|
+
this.publishExternalAccessories(pluginIdentifier, accessories);
|
|
167
|
+
}
|
|
168
|
+
publishExternalAccessories(pluginIdentifier, accessories) {
|
|
169
|
+
if (!PluginManager.isQualifiedPluginIdentifier(pluginIdentifier)) {
|
|
170
|
+
log.info(`One of your plugins incorrectly registered an external accessory using the platform name (${pluginIdentifier}) and not the plugin identifier. Please report this to the developer!`);
|
|
171
|
+
}
|
|
172
|
+
accessories.forEach((accessory) => {
|
|
173
|
+
// noinspection SuspiciousTypeOfGuard
|
|
174
|
+
if (!(accessory instanceof PlatformAccessory)) {
|
|
175
|
+
throw new TypeError(`${pluginIdentifier} attempt to register an accessory that isn't PlatformAccessory!`);
|
|
176
|
+
}
|
|
177
|
+
accessory._associatedPlugin = pluginIdentifier;
|
|
178
|
+
});
|
|
179
|
+
this.emit("publishExternalAccessories" /* InternalAPIEvent.PUBLISH_EXTERNAL_ACCESSORIES */, accessories);
|
|
180
|
+
}
|
|
181
|
+
registerPlatformAccessories(pluginIdentifier, platformName, accessories) {
|
|
182
|
+
accessories.forEach((accessory) => {
|
|
183
|
+
// noinspection SuspiciousTypeOfGuard
|
|
184
|
+
if (!(accessory instanceof PlatformAccessory)) {
|
|
185
|
+
throw new TypeError(`${pluginIdentifier} - ${platformName} attempt to register an accessory that isn't PlatformAccessory!`);
|
|
186
|
+
}
|
|
187
|
+
accessory._associatedPlugin = pluginIdentifier;
|
|
188
|
+
accessory._associatedPlatform = platformName;
|
|
189
|
+
});
|
|
190
|
+
this.emit("registerPlatformAccessories" /* InternalAPIEvent.REGISTER_PLATFORM_ACCESSORIES */, accessories);
|
|
191
|
+
}
|
|
192
|
+
updatePlatformAccessories(accessories) {
|
|
193
|
+
this.emit("updatePlatformAccessories" /* InternalAPIEvent.UPDATE_PLATFORM_ACCESSORIES */, accessories);
|
|
194
|
+
}
|
|
195
|
+
unregisterPlatformAccessories(pluginIdentifier, platformName, accessories) {
|
|
196
|
+
accessories.forEach((accessory) => {
|
|
197
|
+
// noinspection SuspiciousTypeOfGuard
|
|
198
|
+
if (!(accessory instanceof PlatformAccessory)) {
|
|
199
|
+
throw new TypeError(`${pluginIdentifier} - ${platformName} attempt to unregister an accessory that isn't PlatformAccessory!`);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
this.emit("unregisterPlatformAccessories" /* InternalAPIEvent.UNREGISTER_PLATFORM_ACCESSORIES */, accessories);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Check if Matter is available in this version of Homebridge
|
|
206
|
+
* @returns true if Homebridge version satisfies >= 2.0.0-alpha.0
|
|
207
|
+
*/
|
|
208
|
+
isMatterAvailable() {
|
|
209
|
+
return semver.gte(this.serverVersion, '2.0.0-alpha.0');
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Check if Matter is enabled for this bridge
|
|
213
|
+
* For main bridge: returns true if Matter is enabled in `bridge.matter` config
|
|
214
|
+
* For child bridge: returns true if Matter is enabled in the `_bridge.matter` config
|
|
215
|
+
* @returns true if Matter is enabled
|
|
216
|
+
*/
|
|
217
|
+
isMatterEnabled() {
|
|
218
|
+
return this.matterEnabled;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AccessoryIdentifier, AccessoryName, AccessoryPlugin, HomebridgeAPI, PlatformIdentifier, PlatformName, PluginIdentifier, StaticPlatformPlugin } from
|
|
3
|
-
import {
|
|
4
|
-
import { Logging } from
|
|
5
|
-
import {
|
|
6
|
-
import { Plugin } from
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
1
|
+
import type { CharacteristicWarning, InterfaceName, IPAddress, MacAddress, MDNSAdvertiser } from 'hap-nodejs';
|
|
2
|
+
import type { AccessoryIdentifier, AccessoryName, AccessoryPlugin, HomebridgeAPI, PlatformIdentifier, PlatformName, PluginIdentifier, StaticPlatformPlugin } from './api.js';
|
|
3
|
+
import type { ExternalPortsConfiguration, ExternalPortService } from './externalPortService.js';
|
|
4
|
+
import type { Logging } from './logger.js';
|
|
5
|
+
import type { MatterConfig } from './matter/index.js';
|
|
6
|
+
import type { Plugin } from './plugin.js';
|
|
7
|
+
import type { HomebridgeOptions } from './server.js';
|
|
8
|
+
import { Accessory, Bridge } from 'hap-nodejs';
|
|
9
|
+
import { PlatformAccessory } from './platformAccessory.js';
|
|
10
|
+
import { PluginManager } from './pluginManager.js';
|
|
9
11
|
export interface BridgeConfiguration {
|
|
10
12
|
name: string;
|
|
11
13
|
username: MacAddress;
|
|
@@ -18,6 +20,9 @@ export interface BridgeConfiguration {
|
|
|
18
20
|
model?: string;
|
|
19
21
|
disableIpc?: boolean;
|
|
20
22
|
firmwareRevision?: string;
|
|
23
|
+
serialNumber?: string;
|
|
24
|
+
debugModeEnabled?: boolean;
|
|
25
|
+
matter?: MatterConfig;
|
|
21
26
|
env?: {
|
|
22
27
|
DEBUG?: string;
|
|
23
28
|
NODE_OPTIONS?: string;
|
|
@@ -36,6 +41,10 @@ export interface PlatformConfig extends Record<string, any> {
|
|
|
36
41
|
}
|
|
37
42
|
export interface HomebridgeConfig {
|
|
38
43
|
bridge: BridgeConfiguration;
|
|
44
|
+
/**
|
|
45
|
+
* @deprecated
|
|
46
|
+
*/
|
|
47
|
+
mdns?: any;
|
|
39
48
|
accessories: AccessoryConfig[];
|
|
40
49
|
platforms: PlatformConfig[];
|
|
41
50
|
plugins?: PluginIdentifier[];
|
|
@@ -46,6 +55,7 @@ export interface HomebridgeConfig {
|
|
|
46
55
|
*/
|
|
47
56
|
disabledPlugins?: PluginIdentifier[];
|
|
48
57
|
ports?: ExternalPortsConfiguration;
|
|
58
|
+
matterPorts?: ExternalPortsConfiguration;
|
|
49
59
|
}
|
|
50
60
|
export interface BridgeOptions extends HomebridgeOptions {
|
|
51
61
|
cachedAccessoriesDir: string;
|
|
@@ -60,14 +70,13 @@ export declare class BridgeService {
|
|
|
60
70
|
private externalPortService;
|
|
61
71
|
private bridgeOptions;
|
|
62
72
|
private bridgeConfig;
|
|
63
|
-
private config;
|
|
64
73
|
bridge: Bridge;
|
|
65
74
|
private storageService;
|
|
66
75
|
private readonly allowInsecureAccess;
|
|
67
76
|
private cachedPlatformAccessories;
|
|
68
77
|
private cachedAccessoriesFileLoaded;
|
|
69
78
|
private readonly publishedExternalAccessories;
|
|
70
|
-
constructor(api: HomebridgeAPI, pluginManager: PluginManager, externalPortService: ExternalPortService, bridgeOptions: BridgeOptions, bridgeConfig: BridgeConfiguration
|
|
79
|
+
constructor(api: HomebridgeAPI, pluginManager: PluginManager, externalPortService: ExternalPortService, bridgeOptions: BridgeOptions, bridgeConfig: BridgeConfiguration);
|
|
71
80
|
static printCharacteristicWriteWarning(plugin: Plugin, accessory: Accessory, opts: CharacteristicWarningOpts, warning: CharacteristicWarning): void;
|
|
72
81
|
publishBridge(): void;
|
|
73
82
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridgeService.d.ts","sourceRoot":"","sources":["../src/bridgeService.ts"],"names":[],"mappings":"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"}
|