homebridge 2.0.0-alpha.2 → 2.0.0-alpha.4

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 (79) hide show
  1. package/README.md +16 -17
  2. package/bin/homebridge +8 -6
  3. package/config-sample.json +3 -3
  4. package/dist/childBridgeFork.js +2 -0
  5. package/dist/childBridgeFork.js.map +7 -0
  6. package/dist/cli.js +2 -0
  7. package/dist/cli.js.map +7 -0
  8. package/dist/index.d.ts +1099 -0
  9. package/dist/index.js +2 -0
  10. package/dist/index.js.map +7 -0
  11. package/package.json +50 -47
  12. package/lib/api.d.ts +0 -210
  13. package/lib/api.d.ts.map +0 -1
  14. package/lib/api.js +0 -155
  15. package/lib/api.js.map +0 -1
  16. package/lib/bridgeService.d.ts +0 -105
  17. package/lib/bridgeService.d.ts.map +0 -1
  18. package/lib/bridgeService.js +0 -428
  19. package/lib/bridgeService.js.map +0 -1
  20. package/lib/childBridgeFork.d.ts +0 -37
  21. package/lib/childBridgeFork.d.ts.map +0 -1
  22. package/lib/childBridgeFork.js +0 -244
  23. package/lib/childBridgeFork.js.map +0 -1
  24. package/lib/childBridgeService.d.ts +0 -199
  25. package/lib/childBridgeService.d.ts.map +0 -1
  26. package/lib/childBridgeService.js +0 -428
  27. package/lib/childBridgeService.js.map +0 -1
  28. package/lib/cli.d.ts +0 -4
  29. package/lib/cli.d.ts.map +0 -1
  30. package/lib/cli.js +0 -115
  31. package/lib/cli.js.map +0 -1
  32. package/lib/externalPortService.d.ts +0 -33
  33. package/lib/externalPortService.d.ts.map +0 -1
  34. package/lib/externalPortService.js +0 -64
  35. package/lib/externalPortService.js.map +0 -1
  36. package/lib/index.d.ts +0 -76
  37. package/lib/index.d.ts.map +0 -1
  38. package/lib/index.js +0 -72
  39. package/lib/index.js.map +0 -1
  40. package/lib/ipcService.d.ts +0 -33
  41. package/lib/ipcService.d.ts.map +0 -1
  42. package/lib/ipcService.js +0 -49
  43. package/lib/ipcService.js.map +0 -1
  44. package/lib/logger.d.ts +0 -78
  45. package/lib/logger.d.ts.map +0 -1
  46. package/lib/logger.js +0 -147
  47. package/lib/logger.js.map +0 -1
  48. package/lib/platformAccessory.d.ts +0 -54
  49. package/lib/platformAccessory.d.ts.map +0 -1
  50. package/lib/platformAccessory.js +0 -102
  51. package/lib/platformAccessory.js.map +0 -1
  52. package/lib/plugin.d.ts +0 -31
  53. package/lib/plugin.d.ts.map +0 -1
  54. package/lib/plugin.js +0 -194
  55. package/lib/plugin.js.map +0 -1
  56. package/lib/pluginManager.d.ts +0 -77
  57. package/lib/pluginManager.d.ts.map +0 -1
  58. package/lib/pluginManager.js +0 -380
  59. package/lib/pluginManager.js.map +0 -1
  60. package/lib/server.d.ts +0 -58
  61. package/lib/server.d.ts.map +0 -1
  62. package/lib/server.js +0 -457
  63. package/lib/server.js.map +0 -1
  64. package/lib/storageService.d.ts +0 -13
  65. package/lib/storageService.d.ts.map +0 -1
  66. package/lib/storageService.js +0 -70
  67. package/lib/storageService.js.map +0 -1
  68. package/lib/user.d.ts +0 -13
  69. package/lib/user.d.ts.map +0 -1
  70. package/lib/user.js +0 -36
  71. package/lib/user.js.map +0 -1
  72. package/lib/util/mac.d.ts +0 -4
  73. package/lib/util/mac.d.ts.map +0 -1
  74. package/lib/util/mac.js +0 -20
  75. package/lib/util/mac.js.map +0 -1
  76. package/lib/version.d.ts +0 -3
  77. package/lib/version.d.ts.map +0 -1
  78. package/lib/version.js +0 -21
  79. package/lib/version.js.map +0 -1
@@ -0,0 +1,1099 @@
1
+ declare module 'homebridge/api' {
2
+ import type { Controller, Service } from 'hap-nodejs';
3
+ import type { AccessoryConfig, PlatformConfig } from 'homebridge/bridgeService.js/index';
4
+ import type { Logging } from 'homebridge/logger.js/index';
5
+ import { EventEmitter } from 'node:events';
6
+ import hapNodeJs from 'hap-nodejs';
7
+ import { PlatformAccessory } from 'homebridge/platformAccessory.js/index';
8
+ import { User } from 'homebridge/user.js/index';
9
+ export type HAP = typeof hapNodeJs;
10
+ export type HAPLegacyTypes = typeof hapNodeJs.LegacyTypes;
11
+ export type PluginIdentifier = PluginName | ScopedPluginName;
12
+ export type PluginName = string;
13
+ export type ScopedPluginName = string;
14
+ export type AccessoryName = string;
15
+ export type PlatformName = string;
16
+ export type AccessoryIdentifier = string;
17
+ export type PlatformIdentifier = string;
18
+ export const enum PluginType {
19
+ ACCESSORY = "accessory",
20
+ PLATFORM = "platform"
21
+ }
22
+ /**
23
+ * The {PluginInitializer} is a method which must be the default export for every homebridge plugin.
24
+ * It is called once the plugin is loaded from disk.
25
+ */
26
+ export interface PluginInitializer {
27
+ /**
28
+ * When the initializer is called the plugin must use the provided api instance and call the appropriate
29
+ * register methods - {@link API.registerAccessory} or {@link API.registerPlatform} - in order to
30
+ * correctly register for the following startup sequence.
31
+ *
32
+ * @param {API} api
33
+ */
34
+ (api: API): void | Promise<void>;
35
+ }
36
+ export interface AccessoryPluginConstructor {
37
+ new (logger: Logging, config: AccessoryConfig, api: API): AccessoryPlugin;
38
+ }
39
+ export interface AccessoryPlugin {
40
+ /**
41
+ * Optional method which will be called if an 'identify' of an Accessory is requested by HomeKit.
42
+ */
43
+ identify?: () => void;
44
+ /**
45
+ * This method will be called once on startup, to query all services to be exposed by the Accessory.
46
+ * All event handlers for characteristics should be set up before the array is returned.
47
+ *
48
+ * @returns {Service[]} services - returned services will be added to the Accessory
49
+ */
50
+ getServices: () => Service[];
51
+ /**
52
+ * This method will be called once on startup, to query all controllers to be exposed by the Accessory.
53
+ * It is optional to implement.
54
+ *
55
+ * This includes controllers like the RemoteController or the CameraController.
56
+ * Any necessary controller specific setup should have been done when returning the array.
57
+ * In most cases the plugin will only return an array of the size 1.
58
+ *
59
+ * In the case that the Plugin does not add any additional services (returned by {@link getServices}) the
60
+ * method {@link getServices} must be defined in any way and should just return an empty array.
61
+ *
62
+ * @returns {Controller[]} controllers - returned controllers will be configured for the Accessory
63
+ */
64
+ getControllers?: () => Controller[];
65
+ }
66
+ export interface PlatformPluginConstructor<Config extends PlatformConfig = PlatformConfig> {
67
+ new (logger: Logging, config: Config, api: API): DynamicPlatformPlugin | StaticPlatformPlugin | IndependentPlatformPlugin;
68
+ }
69
+ export interface PlatformPlugin {
70
+ }
71
+ /**
72
+ * Platform that is able to dynamically add or remove accessories.
73
+ * All configured accessories are stored to disk and recreated on startup.
74
+ * Accessories can be added or removed by using {@link API.registerPlatformAccessories} or {@link API.unregisterPlatformAccessories}.
75
+ */
76
+ export interface DynamicPlatformPlugin extends PlatformPlugin {
77
+ /**
78
+ * This method is called for every PlatformAccessory, which is recreated from disk on startup.
79
+ * It should be used to properly initialize the Accessory and setup all event handlers for
80
+ * all services and their characteristics.
81
+ *
82
+ * @param {PlatformAccessory} accessory which needs to be configured
83
+ */
84
+ configureAccessory: (accessory: PlatformAccessory) => void;
85
+ }
86
+ /**
87
+ * Platform that exposes all available characteristics at the start of the plugin.
88
+ * The set of accessories can not change at runtime.
89
+ * The bridge waits for all callbacks to return before it is published and accessible by HomeKit controllers.
90
+ */
91
+ export interface StaticPlatformPlugin extends PlatformPlugin {
92
+ /**
93
+ * This method is called once at startup. The Platform should pass all accessories which need to be created
94
+ * to the callback in form of a {@link AccessoryPlugin}.
95
+ * The Platform must respond in a timely manner as otherwise the startup of the bridge would be unnecessarily delayed.
96
+ *
97
+ * @param {(foundAccessories: AccessoryPlugin[]) => void} callback
98
+ */
99
+ accessories: (callback: (foundAccessories: AccessoryPlugin[]) => void) => void;
100
+ }
101
+ /**
102
+ * Platform that does not aim to add any accessories to the main bridge accessory.
103
+ * This platform should be used if for example a plugin aims to only expose external accessories.
104
+ * It should also be used when the platform doesn't intend to expose any accessories at all, like plugins
105
+ * providing a UI for homebridge.
106
+ */
107
+ export interface IndependentPlatformPlugin extends PlatformPlugin {
108
+ }
109
+ export const enum APIEvent {
110
+ /**
111
+ * Event is fired once homebridge has finished with booting up and initializing all components and plugins.
112
+ * When this event is fired it is possible that the Bridge accessory isn't published yet, if homebridge still needs
113
+ * to wait for some {@see StaticPlatformPlugin | StaticPlatformPlugins} to finish accessory creation.
114
+ */
115
+ DID_FINISH_LAUNCHING = "didFinishLaunching",
116
+ /**
117
+ * This event is fired when homebridge gets shutdown. This could be a regular shutdown or an unexpected crash.
118
+ * At this stage all Accessories are already unpublished and all PlatformAccessories are already saved to disk!
119
+ */
120
+ SHUTDOWN = "shutdown"
121
+ }
122
+ export const enum InternalAPIEvent {
123
+ REGISTER_ACCESSORY = "registerAccessory",
124
+ REGISTER_PLATFORM = "registerPlatform",
125
+ PUBLISH_EXTERNAL_ACCESSORIES = "publishExternalAccessories",
126
+ REGISTER_PLATFORM_ACCESSORIES = "registerPlatformAccessories",
127
+ UPDATE_PLATFORM_ACCESSORIES = "updatePlatformAccessories",
128
+ UNREGISTER_PLATFORM_ACCESSORIES = "unregisterPlatformAccessories"
129
+ }
130
+ export interface API {
131
+ /**
132
+ * The homebridge API version as a floating point number.
133
+ */
134
+ readonly version: number;
135
+ /**
136
+ * The current homebridge semver version.
137
+ */
138
+ readonly serverVersion: string;
139
+ readonly user: typeof User;
140
+ readonly hap: HAP;
141
+ readonly hapLegacyTypes: HAPLegacyTypes;
142
+ readonly platformAccessory: typeof PlatformAccessory;
143
+ /**
144
+ * Returns true if the current running homebridge version is greater or equal to the
145
+ * passed version string.
146
+ *
147
+ * Example:
148
+ *
149
+ * We assume the homebridge version 1.3.0-beta.12 ({@link serverVersion}) and the following example calls below
150
+ * ```
151
+ * versionGreaterOrEqual("1.2.0"); // will return true
152
+ * versionGreaterOrEqual("1.3.0"); // will return false (the RELEASE version 1.3.0 is bigger than the BETA version 1.3.0-beta.12)
153
+ * versionGreaterOrEqual("1.3.0-beta.8); // will return true
154
+ * ```
155
+ *
156
+ * @param version
157
+ */
158
+ versionGreaterOrEqual: (version: string) => boolean;
159
+ registerAccessory: ((accessoryName: AccessoryName, constructor: AccessoryPluginConstructor) => void) & ((pluginIdentifier: PluginIdentifier, accessoryName: AccessoryName, constructor: AccessoryPluginConstructor) => void);
160
+ registerPlatform: (<Config extends PlatformConfig>(platformName: PlatformName, constructor: PlatformPluginConstructor<Config>) => void) & (<Config extends PlatformConfig>(pluginIdentifier: PluginIdentifier, platformName: PlatformName, constructor: PlatformPluginConstructor<Config>) => void);
161
+ registerPlatformAccessories: (pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: PlatformAccessory[]) => void;
162
+ updatePlatformAccessories: (accessories: PlatformAccessory[]) => void;
163
+ unregisterPlatformAccessories: (pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: PlatformAccessory[]) => void;
164
+ publishExternalAccessories: (pluginIdentifier: PluginIdentifier, accessories: PlatformAccessory[]) => void;
165
+ on: ((event: 'didFinishLaunching', listener: () => void) => this) & ((event: 'shutdown', listener: () => void) => this);
166
+ }
167
+ export interface HomebridgeAPI {
168
+ on: ((event: 'didFinishLaunching', listener: () => void) => this) & ((event: 'shutdown', listener: () => void) => this) & ((event: InternalAPIEvent.REGISTER_ACCESSORY, listener: (accessoryName: AccessoryName, accessoryConstructor: AccessoryPluginConstructor, pluginIdentifier?: PluginIdentifier) => void) => this) & ((event: InternalAPIEvent.REGISTER_PLATFORM, listener: (platformName: PlatformName, platformConstructor: PlatformPluginConstructor, pluginIdentifier?: PluginIdentifier) => void) => this) & ((event: InternalAPIEvent.PUBLISH_EXTERNAL_ACCESSORIES, listener: (accessories: PlatformAccessory[]) => void) => this) & ((event: InternalAPIEvent.REGISTER_PLATFORM_ACCESSORIES, listener: (accessories: PlatformAccessory[]) => void) => this) & ((event: InternalAPIEvent.UPDATE_PLATFORM_ACCESSORIES, listener: (accessories: PlatformAccessory[]) => void) => this) & ((event: InternalAPIEvent.UNREGISTER_PLATFORM_ACCESSORIES, listener: (accessories: PlatformAccessory[]) => void) => this);
169
+ emit: ((event: 'didFinishLaunching') => boolean) & ((event: 'shutdown') => boolean) & ((event: InternalAPIEvent.REGISTER_ACCESSORY, accessoryName: AccessoryName, accessoryConstructor: AccessoryPluginConstructor, pluginIdentifier?: PluginIdentifier) => boolean) & ((event: InternalAPIEvent.REGISTER_PLATFORM, platformName: PlatformName, platformConstructor: PlatformPluginConstructor, pluginIdentifier?: PluginIdentifier) => boolean) & ((event: InternalAPIEvent.PUBLISH_EXTERNAL_ACCESSORIES, accessories: PlatformAccessory[]) => boolean) & ((event: InternalAPIEvent.REGISTER_PLATFORM_ACCESSORIES, accessories: PlatformAccessory[]) => boolean) & ((event: InternalAPIEvent.UPDATE_PLATFORM_ACCESSORIES, accessories: PlatformAccessory[]) => boolean) & ((event: InternalAPIEvent.UNREGISTER_PLATFORM_ACCESSORIES, accessories: PlatformAccessory[]) => boolean);
170
+ }
171
+ export class HomebridgeAPI extends EventEmitter implements API {
172
+ readonly version = 2.7;
173
+ readonly serverVersion: string;
174
+ readonly user: typeof User;
175
+ readonly hap: typeof hapNodeJs;
176
+ readonly hapLegacyTypes: typeof hapNodeJs.LegacyTypes;
177
+ readonly platformAccessory: typeof PlatformAccessory;
178
+ constructor();
179
+ versionGreaterOrEqual(version: string): boolean;
180
+ static isDynamicPlatformPlugin(platformPlugin: PlatformPlugin): platformPlugin is DynamicPlatformPlugin;
181
+ static isStaticPlatformPlugin(platformPlugin: PlatformPlugin): platformPlugin is StaticPlatformPlugin;
182
+ signalFinished(): void;
183
+ signalShutdown(): void;
184
+ registerAccessory(accessoryName: AccessoryName, constructor: AccessoryPluginConstructor): void;
185
+ registerAccessory(pluginIdentifier: PluginIdentifier, accessoryName: AccessoryName, constructor: AccessoryPluginConstructor): void;
186
+ registerPlatform(platformName: PlatformName, constructor: PlatformPluginConstructor): void;
187
+ registerPlatform(pluginIdentifier: PluginIdentifier, platformName: PlatformName, constructor: PlatformPluginConstructor): void;
188
+ publishCameraAccessories(pluginIdentifier: PluginIdentifier, accessories: PlatformAccessory[]): void;
189
+ publishExternalAccessories(pluginIdentifier: PluginIdentifier, accessories: PlatformAccessory[]): void;
190
+ registerPlatformAccessories(pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: PlatformAccessory[]): void;
191
+ updatePlatformAccessories(accessories: PlatformAccessory[]): void;
192
+ unregisterPlatformAccessories(pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: PlatformAccessory[]): void;
193
+ }
194
+ //# sourceMappingURL=api.d.ts.map
195
+ }
196
+ declare module 'homebridge/api.d.ts' {
197
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/api.ts"],"names":[],"mappings":"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"}
198
+ }
199
+ declare module 'homebridge/bridgeService' {
200
+ import type { CharacteristicWarning, InterfaceName, IPAddress, MacAddress, MDNSAdvertiser } from 'hap-nodejs';
201
+ import type { AccessoryIdentifier, AccessoryName, AccessoryPlugin, HomebridgeAPI, PlatformIdentifier, PlatformName, PluginIdentifier, StaticPlatformPlugin } from 'homebridge/api.js/index';
202
+ import type { ExternalPortsConfiguration, ExternalPortService } from 'homebridge/externalPortService.js/index';
203
+ import type { Logging } from 'homebridge/logger.js/index';
204
+ import type { Plugin } from 'homebridge/plugin.js/index';
205
+ import type { HomebridgeOptions } from 'homebridge/server.js/index';
206
+ import { Accessory, Bridge } from 'hap-nodejs';
207
+ import { PlatformAccessory } from 'homebridge/platformAccessory.js/index';
208
+ import { PluginManager } from 'homebridge/pluginManager.js/index';
209
+ export interface BridgeConfiguration {
210
+ name: string;
211
+ username: MacAddress;
212
+ pin: string;
213
+ advertiser?: MDNSAdvertiser;
214
+ port?: number;
215
+ bind?: (InterfaceName | IPAddress) | (InterfaceName | IPAddress)[];
216
+ setupID?: string[4];
217
+ manufacturer?: string;
218
+ model?: string;
219
+ disableIpc?: boolean;
220
+ firmwareRevision?: string;
221
+ env?: {
222
+ DEBUG?: string;
223
+ NODE_OPTIONS?: string;
224
+ };
225
+ }
226
+ export interface AccessoryConfig extends Record<string, any> {
227
+ accessory: AccessoryName | AccessoryIdentifier;
228
+ name: string;
229
+ uuid_base?: string;
230
+ _bridge?: BridgeConfiguration;
231
+ }
232
+ export interface PlatformConfig extends Record<string, any> {
233
+ platform: PlatformName | PlatformIdentifier;
234
+ name?: string;
235
+ _bridge?: BridgeConfiguration;
236
+ }
237
+ export interface HomebridgeConfig {
238
+ bridge: BridgeConfiguration;
239
+ accessories: AccessoryConfig[];
240
+ platforms: PlatformConfig[];
241
+ plugins?: PluginIdentifier[];
242
+ /**
243
+ * Array of disabled plugins.
244
+ * Unlike the plugins[] config which prevents plugins from being initialised at all, disabled plugins still have their alias loaded, so
245
+ * we can match config blocks of disabled plugins and show an appropriate message in the logs.
246
+ */
247
+ disabledPlugins?: PluginIdentifier[];
248
+ ports?: ExternalPortsConfiguration;
249
+ }
250
+ export interface BridgeOptions extends HomebridgeOptions {
251
+ cachedAccessoriesDir: string;
252
+ cachedAccessoriesItemName: string;
253
+ }
254
+ export interface CharacteristicWarningOpts {
255
+ ignoreSlow?: boolean;
256
+ }
257
+ export class BridgeService {
258
+ private api;
259
+ private pluginManager;
260
+ private externalPortService;
261
+ private bridgeOptions;
262
+ private bridgeConfig;
263
+ private config;
264
+ bridge: Bridge;
265
+ private storageService;
266
+ private readonly allowInsecureAccess;
267
+ private cachedPlatformAccessories;
268
+ private cachedAccessoriesFileLoaded;
269
+ private readonly publishedExternalAccessories;
270
+ constructor(api: HomebridgeAPI, pluginManager: PluginManager, externalPortService: ExternalPortService, bridgeOptions: BridgeOptions, bridgeConfig: BridgeConfiguration, config: HomebridgeConfig);
271
+ static printCharacteristicWriteWarning(plugin: Plugin, accessory: Accessory, opts: CharacteristicWarningOpts, warning: CharacteristicWarning): void;
272
+ publishBridge(): void;
273
+ /**
274
+ * Attempt to load the cached accessories from disk.
275
+ */
276
+ loadCachedPlatformAccessoriesFromDisk(): Promise<void>;
277
+ /**
278
+ * Return the name of the backup cache file
279
+ */
280
+ private get backupCacheFileName();
281
+ /**
282
+ * Create a backup of the cached file
283
+ * This is used if we ever have trouble reading the main cache file
284
+ */
285
+ private createCachedAccessoriesBackup;
286
+ /**
287
+ * Restore a cached accessories backup
288
+ * This is used if the main cache file has a JSON syntax error / is corrupted
289
+ */
290
+ private restoreCachedAccessoriesBackup;
291
+ restoreCachedPlatformAccessories(): void;
292
+ /**
293
+ * Save the cached accessories back to disk.
294
+ */
295
+ saveCachedPlatformAccessoriesOnDisk(): void;
296
+ handleRegisterPlatformAccessories(accessories: PlatformAccessory[]): void;
297
+ handleUpdatePlatformAccessories(): void;
298
+ handleUnregisterPlatformAccessories(accessories: PlatformAccessory[]): void;
299
+ handlePublishExternalAccessories(accessories: PlatformAccessory[]): Promise<void>;
300
+ createHAPAccessory(plugin: Plugin, accessoryInstance: AccessoryPlugin, displayName: string, accessoryType: AccessoryName | AccessoryIdentifier, uuidBase?: string): Accessory | undefined;
301
+ loadPlatformAccessories(plugin: Plugin, platformInstance: StaticPlatformPlugin, platformType: PlatformName | PlatformIdentifier, logger: Logging): Promise<void>;
302
+ teardown(): void;
303
+ private static strippingPinCode;
304
+ }
305
+ //# sourceMappingURL=bridgeService.d.ts.map
306
+ }
307
+ declare module 'homebridge/bridgeService.d.ts' {
308
+ {"version":3,"file":"bridgeService.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/bridgeService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,aAAa,EACb,SAAS,EACT,UAAU,EACV,cAAc,EAGf,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC/F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EACL,SAAS,EAET,MAAM,EASP,MAAM,YAAY,CAAA;AAInB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAOlD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,UAAU,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,GAAG,SAAS,CAAC,EAAE,CAAA;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,GAAG,CAAC,EAAE;QACJ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,WAAW,eAAgB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC1D,SAAS,EAAE,aAAa,GAAG,mBAAmB,CAAA;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B;AAED,MAAM,WAAW,cAAe,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACzD,QAAQ,EAAE,YAAY,GAAG,kBAAkB,CAAA;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,mBAAmB,CAAA;IAE3B,WAAW,EAAE,eAAe,EAAE,CAAA;IAC9B,SAAS,EAAE,cAAc,EAAE,CAAA;IAE3B,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAE5B;;;;OAIG;IACH,eAAe,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAGpC,KAAK,CAAC,EAAE,0BAA0B,CAAA;CACnC;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,oBAAoB,EAAE,MAAM,CAAA;IAC5B,yBAAyB,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,qBAAa,aAAa;IAWtB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IAfT,MAAM,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,cAAc,CAAgB;IAEtC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAE7C,OAAO,CAAC,yBAAyB,CAA0B;IAC3D,OAAO,CAAC,2BAA2B,CAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAgD;gBAGnF,GAAG,EAAE,aAAa,EAClB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,mBAAmB,EACjC,MAAM,EAAE,gBAAgB;WA0BpB,+BAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,qBAAqB,GAAG,IAAI;IA+BnJ,aAAa,IAAI,IAAI;IA+B5B;;OAEG;IACU,qCAAqC,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BnE;;OAEG;IACH,OAAO,KAAK,mBAAmB,GAE9B;IAED;;;OAGG;YACW,6BAA6B;IAQ3C;;;OAGG;YACW,8BAA8B;IAYrC,gCAAgC,IAAI,IAAI;IAoD/C;;OAEG;IACI,mCAAmC,IAAI,IAAI;IAclD,iCAAiC,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAwBzE,+BAA+B,IAAI,IAAI;IAKvC,mCAAmC,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAcrE,gCAAgC,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4ChF,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,mBAAmB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAiDnL,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,GAAG,kBAAkB,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC7K,QAAQ,IAAI,IAAI;IAWhB,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAOhC"}
309
+ }
310
+ declare module 'homebridge/childBridgeFork' {
311
+ import type { MacAddress } from 'hap-nodejs';
312
+ import type { ChildProcessLoadEventData, ChildProcessPortAllocatedEventData } from 'homebridge/childBridgeService.js/index';
313
+ import { ChildProcessMessageEventType } from 'homebridge/childBridgeService.js/index';
314
+ export class ChildBridgeFork {
315
+ private bridgeService;
316
+ private api;
317
+ private pluginManager;
318
+ private externalPortService;
319
+ private type;
320
+ private plugin;
321
+ private identifier;
322
+ private pluginConfig;
323
+ private bridgeConfig;
324
+ private bridgeOptions;
325
+ private homebridgeConfig;
326
+ private portRequestCallback;
327
+ constructor();
328
+ sendMessage<T = unknown>(type: ChildProcessMessageEventType, data?: T): void;
329
+ loadPlugin(data: ChildProcessLoadEventData): Promise<void>;
330
+ startBridge(): Promise<void>;
331
+ /**
332
+ * Request the next available external port from the parent process
333
+ * @param username
334
+ */
335
+ requestExternalPort(username: MacAddress): Promise<number | undefined>;
336
+ /**
337
+ * Handles the port allocation response message from the parent process
338
+ * @param data
339
+ */
340
+ handleExternalResponse(data: ChildProcessPortAllocatedEventData): void;
341
+ /**
342
+ * Sends the current pairing status of the child bridge to the parent process
343
+ */
344
+ sendPairedStatusEvent(): void;
345
+ shutdown(): void;
346
+ }
347
+ //# sourceMappingURL=childBridgeFork.d.ts.map
348
+ }
349
+ declare module 'homebridge/childBridgeFork.d.ts' {
350
+ {"version":3,"file":"childBridgeFork.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/childBridgeFork.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAU5C,OAAO,KAAK,EAEV,yBAAyB,EAGzB,kCAAkC,EAEnC,MAAM,yBAAyB,CAAA;AAShC,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAYtE,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAiC;IAE5D,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,mBAAmB,CAAiE;;IAO5F,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;IAStE,UAAU,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoD1D,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA8ElC;;;OAGG;IACU,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAoBnF;;;OAGG;IACI,sBAAsB,CAAC,IAAI,EAAE,kCAAkC,GAAG,IAAI;IAO7E;;OAEG;IACI,qBAAqB;IAO5B,QAAQ,IAAI,IAAI;CAGjB"}
351
+ }
352
+ declare module 'homebridge/childBridgeService' {
353
+ import type { MacAddress } from 'hap-nodejs';
354
+ import type { HomebridgeAPI } from 'homebridge/api.js/index';
355
+ import type { AccessoryConfig, BridgeConfiguration, BridgeOptions, HomebridgeConfig, PlatformConfig } from 'homebridge/bridgeService.js/index';
356
+ import type { ExternalPortService } from 'homebridge/externalPortService.js/index';
357
+ import type { IpcService } from 'homebridge/ipcService.js/index';
358
+ import type { Plugin } from 'homebridge/plugin.js/index';
359
+ import type { HomebridgeOptions } from 'homebridge/server.js/index';
360
+ import { PluginType } from 'homebridge/api.js/index';
361
+ export const enum ChildProcessMessageEventType {
362
+ /**
363
+ * Sent from the child process when it is ready to accept config
364
+ */
365
+ READY = "ready",
366
+ /**
367
+ * Sent to the child process with a ChildProcessLoadEventData payload
368
+ */
369
+ LOAD = "load",
370
+ /**
371
+ * Sent from the child process once it has loaded the plugin
372
+ */
373
+ LOADED = "loaded",
374
+ /**
375
+ * Sent to the child process telling it to start
376
+ */
377
+ START = "start",
378
+ /**
379
+ * Sent from the child process when the bridge is online
380
+ */
381
+ ONLINE = "online",
382
+ /**
383
+ * Sent from the child when it wants to request port allocation for an external accessory
384
+ */
385
+ PORT_REQUEST = "portRequest",
386
+ /**
387
+ * Sent from the parent with the port allocation response
388
+ */
389
+ PORT_ALLOCATED = "portAllocated",
390
+ /**
391
+ * Sent from the child to update its current status
392
+ */
393
+ STATUS_UPDATE = "status"
394
+ }
395
+ export const enum ChildBridgeStatus {
396
+ /**
397
+ * When the child bridge is loading, or restarting
398
+ */
399
+ PENDING = "pending",
400
+ /**
401
+ * The child bridge is online and has published it's accessory
402
+ */
403
+ OK = "ok",
404
+ /**
405
+ * The bridge is shutting down, or the process ended unexpectedly
406
+ */
407
+ DOWN = "down"
408
+ }
409
+ export interface ChildProcessMessageEvent<T> {
410
+ id: ChildProcessMessageEventType;
411
+ data?: T;
412
+ }
413
+ export interface ChildProcessLoadEventData {
414
+ type: PluginType;
415
+ identifier: string;
416
+ pluginPath: string;
417
+ pluginConfig: Array<PlatformConfig | AccessoryConfig>;
418
+ bridgeConfig: BridgeConfiguration;
419
+ homebridgeConfig: HomebridgeConfig;
420
+ bridgeOptions: BridgeOptions;
421
+ }
422
+ export interface ChildProcessPluginLoadedEventData {
423
+ version: string;
424
+ }
425
+ export interface ChildProcessPortRequestEventData {
426
+ username: MacAddress;
427
+ }
428
+ export interface ChildProcessPortAllocatedEventData {
429
+ username: MacAddress;
430
+ port?: number;
431
+ }
432
+ export interface ChildBridgePairedStatusEventData {
433
+ paired: boolean | null;
434
+ setupUri: string | null;
435
+ }
436
+ export interface ChildMetadata {
437
+ status: ChildBridgeStatus;
438
+ paired?: boolean | null;
439
+ setupUri?: string | null;
440
+ username: MacAddress;
441
+ pin: string;
442
+ name: string;
443
+ plugin: string;
444
+ identifier: string;
445
+ manuallyStopped: boolean;
446
+ pid?: number;
447
+ }
448
+ /**
449
+ * Manages the child processes of platforms/accessories being exposed as separate forked bridges.
450
+ * A child bridge runs a single platform or accessory.
451
+ */
452
+ export class ChildBridgeService {
453
+ type: PluginType;
454
+ identifier: string;
455
+ private plugin;
456
+ private bridgeConfig;
457
+ private homebridgeConfig;
458
+ private homebridgeOptions;
459
+ private api;
460
+ private ipcService;
461
+ private externalPortService;
462
+ private child?;
463
+ private args;
464
+ private processEnv;
465
+ private shuttingDown;
466
+ private lastBridgeStatus;
467
+ private pairedStatus;
468
+ private manuallyStopped;
469
+ private setupUri;
470
+ private pluginConfig;
471
+ private log;
472
+ private displayName?;
473
+ constructor(type: PluginType, identifier: string, plugin: Plugin, bridgeConfig: BridgeConfiguration, homebridgeConfig: HomebridgeConfig, homebridgeOptions: HomebridgeOptions, api: HomebridgeAPI, ipcService: IpcService, externalPortService: ExternalPortService);
474
+ /**
475
+ * Start the child bridge service
476
+ */
477
+ start(): void;
478
+ /**
479
+ * Add a config block to a child bridge.
480
+ * Platform child bridges can only contain one config block.
481
+ * @param config
482
+ */
483
+ addConfig(config: PlatformConfig | AccessoryConfig): void;
484
+ private get bridgeStatus();
485
+ private set bridgeStatus(value);
486
+ /**
487
+ * Start the child bridge process
488
+ */
489
+ private startChildProcess;
490
+ /**
491
+ * Called when the child bridge process exits, if Homebridge is not shutting down, it will restart the process
492
+ * @param code
493
+ * @param signal
494
+ */
495
+ private handleProcessClose;
496
+ /**
497
+ * Helper function to send a message to the child process
498
+ * @param type
499
+ * @param data
500
+ */
501
+ private sendMessage;
502
+ /**
503
+ * Some plugins may make use of the homebridge process flags
504
+ * These will be passed through to the forked process
505
+ */
506
+ private setProcessFlags;
507
+ /**
508
+ * Set environment variables for the child process
509
+ */
510
+ private setProcessEnv;
511
+ /**
512
+ * Tell the child process to load the given plugin
513
+ */
514
+ private loadPlugin;
515
+ /**
516
+ * Tell the child bridge to start broadcasting
517
+ */
518
+ private startBridge;
519
+ /**
520
+ * Handle external port requests from child
521
+ */
522
+ private handlePortRequest;
523
+ /**
524
+ * Send sigterm to the child bridge
525
+ */
526
+ private teardown;
527
+ /**
528
+ * Trigger sending child bridge metadata to the process parent via IPC
529
+ */
530
+ private sendStatusUpdate;
531
+ /**
532
+ * Restarts the child bridge process
533
+ */
534
+ restartChildBridge(): void;
535
+ /**
536
+ * Stops the child bridge, not starting it again
537
+ */
538
+ stopChildBridge(): void;
539
+ /**
540
+ * Starts the child bridge, only if it was manually stopped and is no longer running
541
+ */
542
+ startChildBridge(): void;
543
+ /**
544
+ * Read the config.json file from disk and refresh the plugin config block for just this plugin
545
+ */
546
+ refreshConfig(): Promise<void>;
547
+ /**
548
+ * Returns metadata about this child bridge
549
+ */
550
+ getMetadata(): ChildMetadata;
551
+ }
552
+ //# sourceMappingURL=childBridgeService.d.ts.map
553
+ }
554
+ declare module 'homebridge/childBridgeService.d.ts' {
555
+ {"version":3,"file":"childBridgeService.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/childBridgeService.ts"],"names":[],"mappings":"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"}
556
+ }
557
+ declare module 'homebridge/cli' {
558
+ export default function cli(): void;
559
+ //# sourceMappingURL=cli.d.ts.map
560
+ }
561
+ declare module 'homebridge/cli.d.ts' {
562
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/cli.ts"],"names":[],"mappings":"AAyBA,MAAM,CAAC,OAAO,UAAU,GAAG,IAAI,IAAI,CAqFlC"}
563
+ }
564
+ declare module 'homebridge/externalPortService' {
565
+ import type { MacAddress } from 'hap-nodejs';
566
+ import type { ChildBridgeFork } from 'homebridge/childBridgeFork.js/index';
567
+ export interface ExternalPortsConfiguration {
568
+ start: number;
569
+ end: number;
570
+ }
571
+ /**
572
+ * Allocates ports from the user defined `config.ports` option
573
+ * This service is used to allocate ports for external accessories on the main bridge, and child bridges.
574
+ */
575
+ export class ExternalPortService {
576
+ private externalPorts?;
577
+ private nextExternalPort?;
578
+ private allocatedPorts;
579
+ constructor(externalPorts?: ExternalPortsConfiguration | undefined);
580
+ /**
581
+ * Returns the next available port in the external port config.
582
+ * If the external port is not configured by the user it will return null.
583
+ * If the port range has been exhausted it will return null.
584
+ */
585
+ requestPort(username: MacAddress): Promise<number | undefined>;
586
+ private getNextFreePort;
587
+ }
588
+ /**
589
+ * This is the child bridge version of the port allocation service.
590
+ * It requests a free port from the main bridge's port service.
591
+ */
592
+ export class ChildBridgeExternalPortService extends ExternalPortService {
593
+ private childBridge;
594
+ constructor(childBridge: ChildBridgeFork);
595
+ requestPort(username: MacAddress): Promise<number | undefined>;
596
+ }
597
+ //# sourceMappingURL=externalPortService.d.ts.map
598
+ }
599
+ declare module 'homebridge/externalPortService.d.ts' {
600
+ {"version":3,"file":"externalPortService.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/externalPortService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAI3D,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,aAAa,CAAC;IAJxB,OAAO,CAAC,gBAAgB,CAAC,CAAQ;IACjC,OAAO,CAAC,cAAc,CAAiD;gBAG7D,aAAa,CAAC,EAAE,0BAA0B,YAAA;IAGpD;;;;OAIG;IACU,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAa3E,OAAO,CAAC,eAAe;CAoBxB;AAED;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mBAAmB;IAEnE,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,eAAe;IAKzB,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAG5E"}
601
+ }
602
+ declare module 'homebridge/index' {
603
+ /**
604
+ * Export HAP
605
+ */
606
+ import type { API } from 'homebridge/api.js/index';
607
+ export type HAP = API['hap'];
608
+ /**
609
+ * Export types for basically everything but the actual API implementation
610
+ */
611
+ export type { AccessoryIdentifier, AccessoryName, AccessoryPlugin, AccessoryPluginConstructor, API, DynamicPlatformPlugin, IndependentPlatformPlugin, PlatformIdentifier, PlatformName, PlatformPluginConstructor, PluginIdentifier, PluginInitializer, PluginName, ScopedPluginName, StaticPlatformPlugin, } from 'homebridge/api.js/index';
612
+ /**
613
+ * Export API const enums
614
+ */
615
+ export { APIEvent, PluginType } from 'homebridge/api.js/index';
616
+ /**
617
+ * Export bridge types
618
+ */
619
+ export type { AccessoryConfig, BridgeConfiguration, HomebridgeConfig, PlatformConfig, } from 'homebridge/bridgeService.js/index';
620
+ /**
621
+ * Export port types
622
+ */
623
+ export type { ExternalPortsConfiguration, } from 'homebridge/externalPortService.js/index';
624
+ /**
625
+ * Export Logger const enums
626
+ */
627
+ export { LogLevel } from 'homebridge/logger.js/index';
628
+ /**
629
+ * Export Logger types
630
+ */
631
+ export type { Logger, Logging } from 'homebridge/logger.js/index';
632
+ /**
633
+ * Export Platform Accessory const enums
634
+ */
635
+ export { PlatformAccessoryEvent } from 'homebridge/platformAccessory.js/index';
636
+ /**
637
+ * Export Platform Accessory Types
638
+ */
639
+ export type { PlatformAccessory, UnknownContext } from 'homebridge/platformAccessory.js/index';
640
+ /**
641
+ * Export server types
642
+ */
643
+ export type { HomebridgeOptions } from 'homebridge/server.js/index';
644
+ /**
645
+ * Export User Types
646
+ */
647
+ export type { User } from 'homebridge/user.js/index';
648
+ /**
649
+ * Export the CONST ENUMS from hap-nodejs
650
+ * These get converted to their string value at compile time
651
+ * and can be safely used directly.
652
+ */
653
+ 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';
654
+ /**
655
+ * Export HAP-NodeJS namespaces as type only
656
+ */
657
+ export type { DataStreamParser } from 'hap-nodejs';
658
+ /**
659
+ * Export HAP-NodeJS classes as type only
660
+ */
661
+ 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';
662
+ /**
663
+ * Export HAP-NodeJS interfaces as type only
664
+ */
665
+ 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';
666
+ /**
667
+ * Export HAP-NodeJS type aliases as type only
668
+ */
669
+ 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';
670
+ /**
671
+ * Export HAP-NodeJS variables as type only
672
+ */
673
+ export type { LegacyTypes, uuid, } from 'hap-nodejs';
674
+ /**
675
+ * Export HAP-NodeJS functions as type only
676
+ */
677
+ export type { clone, decode, decodeList, decodeWithLists, encode, epochMillisFromMillisSince2001_01_01, epochMillisFromMillisSince2001_01_01Buffer, once, } from 'hap-nodejs';
678
+ //# sourceMappingURL=index.d.ts.map
679
+ }
680
+ declare module 'homebridge/index.d.ts' {
681
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/index.ts"],"names":[],"mappings":"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"}
682
+ }
683
+ declare module 'homebridge/ipcService' {
684
+ import { EventEmitter } from 'node:events';
685
+ export const enum IpcIncomingEvent {
686
+ RESTART_CHILD_BRIDGE = "restartChildBridge",
687
+ STOP_CHILD_BRIDGE = "stopChildBridge",
688
+ START_CHILD_BRIDGE = "startChildBridge",
689
+ CHILD_BRIDGE_METADATA_REQUEST = "childBridgeMetadataRequest"
690
+ }
691
+ export const enum IpcOutgoingEvent {
692
+ SERVER_STATUS_UPDATE = "serverStatusUpdate",
693
+ CHILD_BRIDGE_METADATA_RESPONSE = "childBridgeMetadataResponse",
694
+ CHILD_BRIDGE_STATUS_UPDATE = "childBridgeStatusUpdate"
695
+ }
696
+ export interface IpcService {
697
+ 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) & ((event: IpcIncomingEvent.CHILD_BRIDGE_METADATA_REQUEST, listener: () => void) => this);
698
+ }
699
+ export class IpcService extends EventEmitter {
700
+ constructor();
701
+ /**
702
+ * Start the IPC service listeners/
703
+ * Currently this will only listen for messages from a parent process.
704
+ */
705
+ start(): void;
706
+ /**
707
+ * Send a message to connected IPC clients.
708
+ * Currently, this will only send messages if Homebridge was launched as a child_process.fork()
709
+ * from another Node.js process (such as hb-service).
710
+ */
711
+ sendMessage(id: IpcOutgoingEvent, data: unknown): void;
712
+ }
713
+ //# sourceMappingURL=ipcService.d.ts.map
714
+ }
715
+ declare module 'homebridge/ipcService.d.ts' {
716
+ {"version":3,"file":"ipcService.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/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;IACvC,6BAA6B,+BAA+B;CAC7D;AAGD,0BAAkB,gBAAgB;IAChC,oBAAoB,uBAAuB;IAC3C,8BAA8B,gCAAgC;IAC9D,0BAA0B,4BAA4B;CACvD;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,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,6BAA6B,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,CAAA;CAC3Z;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"}
717
+ }
718
+ declare module 'homebridge/logger' {
719
+ /**
720
+ * Log levels to indicate importance of the logged message.
721
+ * Every level corresponds to a certain color.
722
+ *
723
+ * - INFO: no color
724
+ * - SUCCESS: green
725
+ * - WARN: yellow
726
+ * - ERROR: red
727
+ * - DEBUG: gray
728
+ *
729
+ * Messages with DEBUG level are only displayed if explicitly enabled.
730
+ */
731
+ export const enum LogLevel {
732
+ INFO = "info",
733
+ SUCCESS = "success",
734
+ WARN = "warn",
735
+ ERROR = "error",
736
+ DEBUG = "debug"
737
+ }
738
+ /**
739
+ * Represents a logging device which can be used directly as a function (for INFO logging)
740
+ * but also has dedicated logging functions for respective logging levels.
741
+ */
742
+ export interface Logging {
743
+ prefix: string;
744
+ (message: string, ...parameters: any[]): void;
745
+ info: (message: string, ...parameters: any[]) => void;
746
+ success: (message: string, ...parameters: any[]) => void;
747
+ warn: (message: string, ...parameters: any[]) => void;
748
+ error: (message: string, ...parameters: any[]) => void;
749
+ debug: (message: string, ...parameters: any[]) => void;
750
+ log: (level: LogLevel, message: string, ...parameters: any[]) => void;
751
+ }
752
+ /**
753
+ * Logger class
754
+ */
755
+ export class Logger {
756
+ static readonly internal: Logger;
757
+ private static readonly loggerCache;
758
+ private static debugEnabled;
759
+ private static timestampEnabled;
760
+ readonly prefix?: string;
761
+ constructor(prefix?: string);
762
+ /**
763
+ * Creates a new Logging device with a specified prefix.
764
+ *
765
+ * @param prefix {string} - the prefix of the logger
766
+ */
767
+ static withPrefix(prefix: string): Logging;
768
+ /**
769
+ * Turns on debug level logging. Off by default.
770
+ *
771
+ * @param enabled {boolean}
772
+ */
773
+ static setDebugEnabled(enabled?: boolean): void;
774
+ /**
775
+ * Turns on inclusion of timestamps in log messages. On by default.
776
+ *
777
+ * @param enabled {boolean}
778
+ */
779
+ static setTimestampEnabled(enabled?: boolean): void;
780
+ /**
781
+ * Forces color in logging output, even if it seems like color is unsupported.
782
+ */
783
+ static forceColor(): void;
784
+ info(message: string, ...parameters: any[]): void;
785
+ success(message: string, ...parameters: any[]): void;
786
+ warn(message: string, ...parameters: any[]): void;
787
+ error(message: string, ...parameters: any[]): void;
788
+ debug(message: string, ...parameters: any[]): void;
789
+ log(level: LogLevel, message: string, ...parameters: any[]): void;
790
+ }
791
+ /**
792
+ * Gets the prefix
793
+ * @param prefix
794
+ */
795
+ export function getLogPrefix(prefix: string): string;
796
+ //# sourceMappingURL=logger.d.ts.map
797
+ }
798
+ declare module 'homebridge/logger.d.ts' {
799
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/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;IAEtB,MAAM,EAAE,MAAM,CAAA;IAEd,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAE7C,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;CAEtE;AAiBD;;GAEG;AACH,qBAAa,MAAM;IACjB,gBAAuB,QAAQ,SAAe;IAE9C,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;;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"}
800
+ }
801
+ declare module 'homebridge/platformAccessory' {
802
+ import type { Controller, ControllerConstructor, SerializedAccessory, Service, WithUUID } from 'hap-nodejs';
803
+ import type { ConstructorArgs } from 'hap-nodejs/dist/types.js';
804
+ import type { PlatformName, PluginIdentifier, PluginName } from 'homebridge/api.js/index';
805
+ import { EventEmitter } from 'node:events';
806
+ import { Accessory, Categories } from 'hap-nodejs';
807
+ export type UnknownContext = Record<string, any>;
808
+ export interface SerializedPlatformAccessory<T extends UnknownContext = UnknownContext> extends SerializedAccessory {
809
+ plugin: PluginName;
810
+ platform: PlatformName;
811
+ context: T;
812
+ }
813
+ export const enum PlatformAccessoryEvent {
814
+ IDENTIFY = "identify"
815
+ }
816
+ export interface PlatformAccessory {
817
+ on: (event: 'identify', listener: () => void) => this;
818
+ emit: (event: 'identify') => boolean;
819
+ }
820
+ export class PlatformAccessory<T extends UnknownContext = UnknownContext> extends EventEmitter {
821
+ private static injectedAccessory?;
822
+ _associatedPlugin?: PluginIdentifier;
823
+ _associatedPlatform?: PlatformName;
824
+ _associatedHAPAccessory: Accessory;
825
+ displayName: string;
826
+ UUID: string;
827
+ category: Categories;
828
+ services: Service[];
829
+ /**
830
+ * This is a way for Plugin developers to store custom data with their accessory
831
+ */
832
+ context: T;
833
+ constructor(displayName: string, uuid: string, category?: Categories);
834
+ addService(service: Service): Service;
835
+ addService<S extends typeof Service>(serviceConstructor: S, ...constructorArgs: ConstructorArgs<S>): Service;
836
+ removeService(service: Service): void;
837
+ getService<T extends WithUUID<typeof Service>>(name: string | T): Service | undefined;
838
+ getServiceById<T extends WithUUID<typeof Service>>(uuid: string | T, subType: string): Service | undefined;
839
+ /**
840
+ * Configures a new controller for the given accessory.
841
+ * See {@link https://developers.homebridge.io/HAP-NodeJS/classes/accessory.html#configurecontroller | Accessory.configureController}.
842
+ *
843
+ * @param controller
844
+ */
845
+ configureController(controller: Controller | ControllerConstructor): void;
846
+ /**
847
+ * Removes a configured controller from the given accessory.
848
+ * See {@link https://developers.homebridge.io/HAP-NodeJS/classes/accessory.html#removecontroller | Accessory.removeController}.
849
+ *
850
+ * @param controller
851
+ */
852
+ removeController(controller: Controller): void;
853
+ static serialize(accessory: PlatformAccessory): SerializedPlatformAccessory;
854
+ static deserialize(json: SerializedPlatformAccessory): PlatformAccessory;
855
+ }
856
+ //# sourceMappingURL=platformAccessory.d.ts.map
857
+ }
858
+ declare module 'homebridge/platformAccessory.d.ts' {
859
+ {"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/platformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,OAAO,EAEP,QAAQ,EACT,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EACL,SAAS,EAET,UAAU,EACX,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAEhD,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,mBAAmB;IAEjH,MAAM,EAAE,UAAU,CAAA;IAClB,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,CAAC,CAAA;CAEX;AAGD,0BAAkB,sBAAsB;IACtC,QAAQ,aAAa;CACtB;AAGD,MAAM,CAAC,OAAO,WAAW,iBAAiB;IAExC,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IAErD,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAA;CAErC;AAGD,qBAAa,iBAAiB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,YAAY;IAE5F,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAW;IAE5C,iBAAiB,CAAC,EAAE,gBAAgB,CAAA;IACpC,mBAAmB,CAAC,EAAE,YAAY,CAAA;IAElC,uBAAuB,EAAE,SAAS,CAAA;IAGlC,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,UAAU,CAAA;IACpB,QAAQ,EAAE,OAAO,EAAE,CAAK;IAGxB;;OAEG;IACI,OAAO,EAAE,CAAC,CAAU;gBAEf,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAU;IAuB7D,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IACrC,UAAU,CAAC,CAAC,SAAS,OAAO,OAAO,EAAE,kBAAkB,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO;IAQ5G,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIrC,UAAU,CAAC,CAAC,SAAS,QAAQ,CAAC,OAAO,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,SAAS;IAIrF,cAAc,CAAC,CAAC,SAAS,QAAQ,CAAC,OAAO,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIjH;;;;;OAKG;IACI,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,qBAAqB,GAAG,IAAI;IAIhF;;;;;OAKG;IACI,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAKrD,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,iBAAiB,GAAG,2BAA2B;IAS3E,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,2BAA2B,GAAG,iBAAiB;CAczE"}
860
+ }
861
+ declare module 'homebridge/plugin' {
862
+ import type { AccessoryIdentifier, AccessoryName, AccessoryPluginConstructor, API, DynamicPlatformPlugin, PlatformIdentifier, PlatformName, PlatformPluginConstructor, PluginIdentifier, PluginName } from 'homebridge/api.js/index';
863
+ import type { PackageJSON } from 'homebridge/pluginManager.js/index';
864
+ /**
865
+ * Represents a loaded Homebridge plugin.
866
+ */
867
+ export class Plugin {
868
+ private readonly pluginName;
869
+ private readonly scope?;
870
+ private readonly pluginPath;
871
+ private readonly isESM;
872
+ disabled: boolean;
873
+ readonly version: string;
874
+ private readonly main;
875
+ private loadContext?;
876
+ private pluginInitializer?;
877
+ private readonly registeredAccessories;
878
+ private readonly registeredPlatforms;
879
+ private readonly activeDynamicPlatforms;
880
+ constructor(name: PluginName, path: string, packageJSON: PackageJSON, scope?: string);
881
+ getPluginIdentifier(): PluginIdentifier;
882
+ getPluginPath(): string;
883
+ registerAccessory(name: AccessoryName, constructor: AccessoryPluginConstructor): void;
884
+ registerPlatform(name: PlatformName, constructor: PlatformPluginConstructor): void;
885
+ getAccessoryConstructor(accessoryIdentifier: AccessoryIdentifier | AccessoryName): AccessoryPluginConstructor;
886
+ getPlatformConstructor(platformIdentifier: PlatformIdentifier | PlatformName): PlatformPluginConstructor;
887
+ assignDynamicPlatform(platformIdentifier: PlatformIdentifier | PlatformName, platformPlugin: DynamicPlatformPlugin): void;
888
+ getActiveDynamicPlatform(platformName: PlatformName): DynamicPlatformPlugin | undefined;
889
+ load(): Promise<void>;
890
+ initialize(api: API): void | Promise<void>;
891
+ }
892
+ //# sourceMappingURL=plugin.d.ts.map
893
+ }
894
+ declare module 'homebridge/plugin.d.ts' {
895
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,0BAA0B,EAC1B,GAAG,EACH,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,yBAAyB,EACzB,gBAAgB,EAEhB,UAAU,EACX,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAerD;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAExB,QAAQ,UAAQ;IAGvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAC,CAGnB;IAGD,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAE7C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA4D;IAClG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA0D;IAE9F,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAwD;gBAEnF,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM;IAmD7E,mBAAmB,IAAI,gBAAgB;IAIvC,aAAa,IAAI,MAAM;IAIvB,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,0BAA0B,GAAG,IAAI;IAYrF,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,yBAAyB,GAAG,IAAI;IAYlF,uBAAuB,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,aAAa,GAAG,0BAA0B;IAW7G,sBAAsB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,YAAY,GAAG,yBAAyB;IAiBxG,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,YAAY,EAAE,cAAc,EAAE,qBAAqB,GAAG,IAAI;IAczH,wBAAwB,CAAC,YAAY,EAAE,YAAY,GAAG,qBAAqB,GAAG,SAAS;IAMjF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmD3B,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAOlD"}
896
+ }
897
+ declare module 'homebridge/pluginManager' {
898
+ import type { AccessoryIdentifier, AccessoryName, HomebridgeAPI, PlatformIdentifier, PlatformName, PluginIdentifier, PluginName } from 'homebridge/api.js/index';
899
+ import { Plugin } from 'homebridge/plugin.js/index';
900
+ export interface PackageJSON {
901
+ name: string;
902
+ version: string;
903
+ keywords?: string[];
904
+ exports?: string | Record<string, string | Record<string, string>>;
905
+ main?: string;
906
+ /**
907
+ * When set as module, it marks .js file to be treated as ESM.
908
+ * See https://nodejs.org/dist/latest-v14.x/docs/api/esm.html#esm_enabling
909
+ */
910
+ type?: 'module' | 'commonjs';
911
+ engines?: Record<string, string>;
912
+ dependencies?: Record<string, string>;
913
+ devDependencies?: Record<string, string>;
914
+ peerDependencies?: Record<string, string>;
915
+ }
916
+ export interface PluginManagerOptions {
917
+ /**
918
+ * Additional path to search for plugins in. Specified relative to the current working directory.
919
+ */
920
+ customPluginPath?: string;
921
+ /**
922
+ * If set, only load plugins from the customPluginPath, if set, otherwise only from the primary global node_modules.
923
+ */
924
+ strictPluginResolution?: boolean;
925
+ /**
926
+ * When defined, only plugins specified here will be initialized.
927
+ */
928
+ activePlugins?: PluginIdentifier[];
929
+ /**
930
+ * Plugins that are marked as disabled and whose corresponding config blocks should be ignored
931
+ */
932
+ disabledPlugins?: PluginIdentifier[];
933
+ }
934
+ /**
935
+ * Utility which exposes methods to search for installed Homebridge plugins
936
+ */
937
+ export class PluginManager {
938
+ private static readonly PLUGIN_IDENTIFIER_PATTERN;
939
+ private readonly api;
940
+ private readonly searchPaths;
941
+ private readonly strictPluginResolution;
942
+ private readonly activePlugins?;
943
+ private readonly disabledPlugins?;
944
+ private readonly plugins;
945
+ private readonly pluginIdentifierTranslation;
946
+ private readonly accessoryToPluginMap;
947
+ private readonly platformToPluginMap;
948
+ private currentInitializingPlugin?;
949
+ constructor(api: HomebridgeAPI, options?: PluginManagerOptions);
950
+ static isQualifiedPluginIdentifier(identifier: string): boolean;
951
+ static extractPluginName(name: string): PluginName;
952
+ static extractPluginScope(name: string): string;
953
+ static getAccessoryName(identifier: AccessoryIdentifier): AccessoryName;
954
+ static getPlatformName(identifier: PlatformIdentifier): PlatformIdentifier;
955
+ static getPluginIdentifier(identifier: AccessoryIdentifier | PlatformIdentifier): PluginIdentifier;
956
+ initializeInstalledPlugins(): Promise<void>;
957
+ initializePlugin(plugin: Plugin, identifier: string): Promise<void>;
958
+ private handleRegisterAccessory;
959
+ private handleRegisterPlatform;
960
+ getPluginForAccessory(accessoryIdentifier: AccessoryIdentifier | AccessoryName): Plugin;
961
+ getPluginForPlatform(platformIdentifier: PlatformIdentifier | PlatformName): Plugin;
962
+ hasPluginRegistered(pluginIdentifier: PluginIdentifier): boolean;
963
+ getPlugin(pluginIdentifier: PluginIdentifier): Plugin | undefined;
964
+ getPluginByActiveDynamicPlatform(platformName: PlatformName): Plugin | undefined;
965
+ /**
966
+ * Gets all plugins installed on the local system
967
+ */
968
+ private loadInstalledPlugins;
969
+ loadPlugin(absolutePath: string): Plugin;
970
+ private static loadPackageJSON;
971
+ private loadDefaultPaths;
972
+ private addNpmPrefixToSearchPaths;
973
+ }
974
+ //# sourceMappingURL=pluginManager.d.ts.map
975
+ }
976
+ declare module 'homebridge/pluginManager.d.ts' {
977
+ {"version":3,"file":"pluginManager.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/pluginManager.ts"],"names":[],"mappings":"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"}
978
+ }
979
+ declare module 'homebridge/server' {
980
+ export interface HomebridgeOptions {
981
+ keepOrphanedCachedAccessories?: boolean;
982
+ hideQRCode?: boolean;
983
+ insecureAccess?: boolean;
984
+ customPluginPath?: string;
985
+ noLogTimestamps?: boolean;
986
+ debugModeEnabled?: boolean;
987
+ forceColourLogging?: boolean;
988
+ customStoragePath?: string;
989
+ strictPluginResolution?: boolean;
990
+ }
991
+ export const enum ServerStatus {
992
+ /**
993
+ * When the server is starting up
994
+ */
995
+ PENDING = "pending",
996
+ /**
997
+ * When the server is online and has published the main bridge
998
+ */
999
+ OK = "ok",
1000
+ /**
1001
+ * When the server is shutting down
1002
+ */
1003
+ DOWN = "down"
1004
+ }
1005
+ export class Server {
1006
+ private options;
1007
+ private readonly api;
1008
+ private readonly pluginManager;
1009
+ private readonly bridgeService;
1010
+ private readonly ipcService;
1011
+ private readonly externalPortService;
1012
+ private readonly config;
1013
+ private readonly childBridges;
1014
+ private serverStatus;
1015
+ constructor(options?: HomebridgeOptions);
1016
+ /**
1017
+ * Set the current server status and update parent via IPC
1018
+ * @param status
1019
+ */
1020
+ private setServerStatus;
1021
+ start(): Promise<void>;
1022
+ teardown(): void;
1023
+ private publishBridge;
1024
+ private static loadConfig;
1025
+ private loadAccessories;
1026
+ private loadPlatforms;
1027
+ /**
1028
+ * Validate an external bridge config
1029
+ */
1030
+ private validateChildBridgeConfig;
1031
+ /**
1032
+ * Takes care of the IPC Events sent to Homebridge
1033
+ */
1034
+ private initializeIpcEventHandlers;
1035
+ private printSetupInfo;
1036
+ }
1037
+ //# sourceMappingURL=server.d.ts.map
1038
+ }
1039
+ declare module 'homebridge/server.d.ts' {
1040
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/server.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,iBAAiB;IAChC,6BAA6B,CAAC,EAAE,OAAO,CAAA;IACvC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAGD,0BAAkB,YAAY;IAC5B;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,EAAE,OAAO;IAET;;OAEG;IACH,IAAI,SAAS;CACd;AAED,qBAAa,MAAM;IAgBf,OAAO,CAAC,OAAO;IAfjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAGzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiD;IAG9E,OAAO,CAAC,YAAY,CAAqC;gBAG/C,OAAO,GAAE,iBAAsB;IAuDzC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC5B,QAAQ,IAAI,IAAI;IAKvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,MAAM,CAAC,UAAU;IAoFzB,OAAO,CAAC,eAAe;IAoGvB,OAAO,CAAC,aAAa;IA4FrB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiCjC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAoClC,OAAO,CAAC,cAAc;CAqBvB"}
1041
+ }
1042
+ declare module 'homebridge/storageService' {
1043
+ export class StorageService {
1044
+ baseDirectory: string;
1045
+ constructor(baseDirectory: string);
1046
+ initSync(): void;
1047
+ getItemSync<T>(itemName: string): T | null;
1048
+ getItem<T>(itemName: string): Promise<T | null>;
1049
+ setItemSync(itemName: string, data: Record<any, any> | Array<any>): void;
1050
+ setItem(itemName: string, data: Record<any, any> | Array<any>): Promise<void>;
1051
+ copyItem(srcItemName: string, destItemName: string): Promise<void>;
1052
+ copyItemSync(srcItemName: string, destItemName: string): void;
1053
+ removeItemSync(itemName: string): void;
1054
+ }
1055
+ //# sourceMappingURL=storageService.d.ts.map
1056
+ }
1057
+ declare module 'homebridge/storageService.d.ts' {
1058
+ {"version":3,"file":"storageService.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/storageService.ts"],"names":[],"mappings":"AAIA,qBAAa,cAAc;IAEhB,aAAa,EAAE,MAAM;gBAArB,aAAa,EAAE,MAAM;IAGvB,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAUpC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAUrD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;IAIxE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7E,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI7D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAG9C"}
1059
+ }
1060
+ declare module 'homebridge/user' {
1061
+ /**
1062
+ * Manages user settings and storage locations.
1063
+ */
1064
+ export class User {
1065
+ private static customStoragePath?;
1066
+ private static storageAccessed;
1067
+ static configPath(): string;
1068
+ static persistPath(): string;
1069
+ static cachedAccessoryPath(): string;
1070
+ static storagePath(): string;
1071
+ static setStoragePath(...storagePathSegments: string[]): void;
1072
+ }
1073
+ //# sourceMappingURL=user.d.ts.map
1074
+ }
1075
+ declare module 'homebridge/user.d.ts' {
1076
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/user.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAQ;IACzC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAQ;IAEtC,MAAM,CAAC,UAAU,IAAI,MAAM;IAI3B,MAAM,CAAC,WAAW,IAAI,MAAM;IAI5B,MAAM,CAAC,mBAAmB,IAAI,MAAM;IAIpC,MAAM,CAAC,WAAW,IAAI,MAAM;WAMd,cAAc,CAAC,GAAG,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI;CAOrE"}
1077
+ }
1078
+ declare module 'homebridge/util/mac' {
1079
+ import type { Buffer } from 'node:buffer';
1080
+ export type MacAddress = string;
1081
+ export function validMacAddress(address: string): boolean;
1082
+ export function generate(data: string | Buffer | NodeJS.TypedArray | DataView): MacAddress;
1083
+ //# sourceMappingURL=mac.d.ts.map
1084
+ }
1085
+ declare module 'homebridge/util/mac.d.ts' {
1086
+ {"version":3,"file":"mac.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/homebridge/homebridge/src/util/mac.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAMzC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAE/B,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,UAAU,GAAG,QAAQ,GAAG,UAAU,CAOzF"}
1087
+ }
1088
+ declare module 'homebridge/version' {
1089
+ export default function getVersion(): string;
1090
+ export function getRequiredNodeVersion(): string;
1091
+ //# sourceMappingURL=version.d.ts.map
1092
+ }
1093
+ declare module 'homebridge/version.d.ts' {
1094
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../home/runner/work/homebridge/homebridge/src/version.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,OAAO,UAAU,UAAU,IAAI,MAAM,CAE3C;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C"}
1095
+ }
1096
+ declare module 'homebridge' {
1097
+ import main = require('homebridge/src/index');
1098
+ export = main;
1099
+ }