homebridge 2.0.0-beta.98 → 2.0.0
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 +31 -4
- package/dist/api.d.ts +438 -3
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +99 -20
- package/dist/api.js.map +1 -1
- package/dist/bridgeService.d.ts +40 -1
- package/dist/bridgeService.d.ts.map +1 -1
- package/dist/bridgeService.js +99 -32
- package/dist/bridgeService.js.map +1 -1
- package/dist/childBridgeFork.d.ts +30 -0
- package/dist/childBridgeFork.d.ts.map +1 -1
- package/dist/childBridgeFork.js +139 -28
- package/dist/childBridgeFork.js.map +1 -1
- package/dist/childBridgeService.d.ts +142 -0
- package/dist/childBridgeService.d.ts.map +1 -1
- package/dist/childBridgeService.js +207 -37
- package/dist/childBridgeService.js.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/externalPortService.d.ts +20 -0
- package/dist/externalPortService.d.ts.map +1 -1
- package/dist/externalPortService.js +24 -0
- package/dist/externalPortService.js.map +1 -1
- package/dist/index.d.ts +125 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -1
- package/dist/ipcService.d.ts +12 -0
- package/dist/ipcService.d.ts.map +1 -1
- package/dist/ipcService.js +19 -0
- package/dist/ipcService.js.map +1 -1
- package/dist/logger.d.ts +46 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +57 -13
- package/dist/logger.js.map +1 -1
- package/dist/matter/BaseMatterManager.d.ts +56 -0
- package/dist/matter/BaseMatterManager.d.ts.map +1 -1
- package/dist/matter/BaseMatterManager.js +98 -7
- package/dist/matter/BaseMatterManager.js.map +1 -1
- package/dist/matter/ChildBridgeMatterManager.d.ts +54 -0
- package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -1
- package/dist/matter/ChildBridgeMatterManager.js +96 -12
- package/dist/matter/ChildBridgeMatterManager.js.map +1 -1
- package/dist/matter/ChildBridgeMatterMessageHandler.d.ts +25 -0
- package/dist/matter/ChildBridgeMatterMessageHandler.d.ts.map +1 -1
- package/dist/matter/ChildBridgeMatterMessageHandler.js +34 -0
- package/dist/matter/ChildBridgeMatterMessageHandler.js.map +1 -1
- package/dist/matter/ClusterCommandMapper.d.ts +23 -0
- package/dist/matter/ClusterCommandMapper.d.ts.map +1 -1
- package/dist/matter/ClusterCommandMapper.js +103 -9
- package/dist/matter/ClusterCommandMapper.js.map +1 -1
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +28 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -1
- package/dist/matter/ExternalMatterAccessoryPublisher.js +27 -2
- package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -1
- package/dist/matter/MatterAPIImpl.d.ts +86 -0
- package/dist/matter/MatterAPIImpl.d.ts.map +1 -1
- package/dist/matter/MatterAPIImpl.js +132 -6
- package/dist/matter/MatterAPIImpl.js.map +1 -1
- package/dist/matter/MatterBridgeManager.d.ts +70 -0
- package/dist/matter/MatterBridgeManager.d.ts.map +1 -1
- package/dist/matter/MatterBridgeManager.js +144 -22
- package/dist/matter/MatterBridgeManager.js.map +1 -1
- package/dist/matter/MatterPortAllocator.d.ts +22 -0
- package/dist/matter/MatterPortAllocator.d.ts.map +1 -1
- package/dist/matter/MatterPortAllocator.js +27 -0
- package/dist/matter/MatterPortAllocator.js.map +1 -1
- package/dist/matter/SwitchAPI.d.ts +123 -0
- package/dist/matter/SwitchAPI.d.ts.map +1 -0
- package/dist/matter/SwitchAPI.js +80 -0
- package/dist/matter/SwitchAPI.js.map +1 -0
- package/dist/matter/accessoryCache.d.ts +54 -1
- package/dist/matter/accessoryCache.d.ts.map +1 -1
- package/dist/matter/accessoryCache.js +63 -2
- package/dist/matter/accessoryCache.js.map +1 -1
- package/dist/matter/behaviors/AirQualityBehavior.d.ts +39 -0
- package/dist/matter/behaviors/AirQualityBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/AirQualityBehavior.js +41 -0
- package/dist/matter/behaviors/AirQualityBehavior.js.map +1 -1
- package/dist/matter/behaviors/BehaviorRegistry.d.ts +52 -0
- package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -1
- package/dist/matter/behaviors/BehaviorRegistry.js +54 -0
- package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -1
- package/dist/matter/behaviors/ColorControlBehavior.d.ts +49 -0
- package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ColorControlBehavior.js +91 -0
- package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts +91 -0
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js +96 -0
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js.map +1 -1
- package/dist/matter/behaviors/DoorLockBehavior.d.ts +17 -0
- package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/DoorLockBehavior.js +31 -0
- package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -1
- package/dist/matter/behaviors/EndpointContext.d.ts +21 -0
- package/dist/matter/behaviors/EndpointContext.d.ts.map +1 -1
- package/dist/matter/behaviors/EndpointContext.js +18 -0
- package/dist/matter/behaviors/EndpointContext.js.map +1 -1
- package/dist/matter/behaviors/FanControlBehavior.d.ts +11 -0
- package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/FanControlBehavior.js +28 -0
- package/dist/matter/behaviors/FanControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/IdentifyBehavior.d.ts +11 -0
- package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/IdentifyBehavior.js +17 -0
- package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -1
- package/dist/matter/behaviors/LevelControlBehavior.d.ts +23 -0
- package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/LevelControlBehavior.js +59 -0
- package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/OnOffBehavior.d.ts +17 -0
- package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/OnOffBehavior.js +38 -0
- package/dist/matter/behaviors/OnOffBehavior.js.map +1 -1
- package/dist/matter/behaviors/RegistryManager.d.ts +28 -0
- package/dist/matter/behaviors/RegistryManager.d.ts.map +1 -1
- package/dist/matter/behaviors/RegistryManager.js +28 -0
- package/dist/matter/behaviors/RegistryManager.js.map +1 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +18 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.js +25 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +33 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js +56 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +18 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.js +25 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +31 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.js +45 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -1
- package/dist/matter/behaviors/ThermostatBehavior.d.ts +11 -0
- package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ThermostatBehavior.js +45 -0
- package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -1
- package/dist/matter/behaviors/ValveConfigurationAndControlBehavior.d.ts +17 -0
- package/dist/matter/behaviors/ValveConfigurationAndControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ValveConfigurationAndControlBehavior.js +31 -0
- package/dist/matter/behaviors/ValveConfigurationAndControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +29 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.js +68 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -1
- package/dist/matter/behaviors/index.d.ts +5 -0
- package/dist/matter/behaviors/index.d.ts.map +1 -1
- package/dist/matter/behaviors/index.js +5 -0
- package/dist/matter/behaviors/index.js.map +1 -1
- package/dist/matter/clusterHandlerMap.d.ts +79 -0
- package/dist/matter/clusterHandlerMap.d.ts.map +1 -1
- package/dist/matter/clusterHandlerMap.js +10 -0
- package/dist/matter/clusterHandlerMap.js.map +1 -1
- package/dist/matter/clusterStateMap.d.ts +31 -0
- package/dist/matter/clusterStateMap.d.ts.map +1 -1
- package/dist/matter/clusterStateMap.js +11 -0
- package/dist/matter/clusterStateMap.js.map +1 -1
- package/dist/matter/clusterTypes.d.ts +79 -0
- package/dist/matter/clusterTypes.d.ts.map +1 -1
- package/dist/matter/clusterTypes.js +8 -0
- package/dist/matter/clusterTypes.js.map +1 -1
- package/dist/matter/config.d.ts +32 -0
- package/dist/matter/config.d.ts.map +1 -1
- package/dist/matter/config.js +40 -0
- package/dist/matter/config.js.map +1 -1
- package/dist/matter/configValidator.d.ts +55 -0
- package/dist/matter/configValidator.d.ts.map +1 -1
- package/dist/matter/configValidator.js +68 -1
- package/dist/matter/configValidator.js.map +1 -1
- package/dist/matter/errorHandler.d.ts +13 -0
- package/dist/matter/errorHandler.d.ts.map +1 -1
- package/dist/matter/errorHandler.js +33 -0
- package/dist/matter/errorHandler.js.map +1 -1
- package/dist/matter/errors.d.ts +132 -0
- package/dist/matter/errors.d.ts.map +1 -1
- package/dist/matter/errors.js +132 -0
- package/dist/matter/errors.js.map +1 -1
- package/dist/matter/index.d.ts +30 -0
- package/dist/matter/index.d.ts.map +1 -1
- package/dist/matter/index.js +13 -0
- package/dist/matter/index.js.map +1 -1
- package/dist/matter/ipc-types.d.ts +18 -0
- package/dist/matter/ipc-types.d.ts.map +1 -1
- package/dist/matter/ipc-types.js +6 -0
- package/dist/matter/ipc-types.js.map +1 -1
- package/dist/matter/logFormatter.d.ts +17 -0
- package/dist/matter/logFormatter.d.ts.map +1 -1
- package/dist/matter/logFormatter.js +63 -5
- package/dist/matter/logFormatter.js.map +1 -1
- package/dist/matter/managerTypes.d.ts +45 -0
- package/dist/matter/managerTypes.d.ts.map +1 -1
- package/dist/matter/managerTypes.js +6 -0
- package/dist/matter/managerTypes.js.map +1 -1
- package/dist/matter/server/AccessoryManager.d.ts +43 -0
- package/dist/matter/server/AccessoryManager.d.ts.map +1 -1
- package/dist/matter/server/AccessoryManager.js +81 -3
- package/dist/matter/server/AccessoryManager.js.map +1 -1
- package/dist/matter/server/AccessoryQuery.d.ts +33 -0
- package/dist/matter/server/AccessoryQuery.d.ts.map +1 -1
- package/dist/matter/server/AccessoryQuery.js +38 -1
- package/dist/matter/server/AccessoryQuery.js.map +1 -1
- package/dist/matter/server/BehaviorMap.d.ts +19 -0
- package/dist/matter/server/BehaviorMap.d.ts.map +1 -1
- package/dist/matter/server/BehaviorMap.js +26 -0
- package/dist/matter/server/BehaviorMap.js.map +1 -1
- package/dist/matter/server/CommissioningManager.d.ts +54 -2
- package/dist/matter/server/CommissioningManager.d.ts.map +1 -1
- package/dist/matter/server/CommissioningManager.js +136 -20
- package/dist/matter/server/CommissioningManager.js.map +1 -1
- package/dist/matter/server/FabricManager.d.ts +38 -0
- package/dist/matter/server/FabricManager.d.ts.map +1 -1
- package/dist/matter/server/FabricManager.js +64 -0
- package/dist/matter/server/FabricManager.js.map +1 -1
- package/dist/matter/server/ServerConfig.d.ts +9 -0
- package/dist/matter/server/ServerConfig.d.ts.map +1 -1
- package/dist/matter/server/ServerConfig.js +23 -4
- package/dist/matter/server/ServerConfig.js.map +1 -1
- package/dist/matter/server/ServerLifecycle.d.ts +31 -0
- package/dist/matter/server/ServerLifecycle.d.ts.map +1 -1
- package/dist/matter/server/ServerLifecycle.js +92 -7
- package/dist/matter/server/ServerLifecycle.js.map +1 -1
- package/dist/matter/server/StateManager.d.ts +18 -0
- package/dist/matter/server/StateManager.d.ts.map +1 -1
- package/dist/matter/server/StateManager.js +20 -0
- package/dist/matter/server/StateManager.js.map +1 -1
- package/dist/matter/server.d.ts +12 -0
- package/dist/matter/server.d.ts.map +1 -1
- package/dist/matter/server.js +49 -1
- package/dist/matter/server.js.map +1 -1
- package/dist/matter/serverHelpers.d.ts +67 -0
- package/dist/matter/serverHelpers.d.ts.map +1 -1
- package/dist/matter/serverHelpers.js +81 -4
- package/dist/matter/serverHelpers.js.map +1 -1
- package/dist/matter/sharedTypes.d.ts +93 -0
- package/dist/matter/sharedTypes.d.ts.map +1 -1
- package/dist/matter/sharedTypes.js +26 -0
- package/dist/matter/sharedTypes.js.map +1 -1
- package/dist/matter/types.d.ts +346 -3
- package/dist/matter/types.d.ts.map +1 -1
- package/dist/matter/types.js +133 -0
- package/dist/matter/types.js.map +1 -1
- package/dist/matter/utils.d.ts +78 -0
- package/dist/matter/utils.d.ts.map +1 -1
- package/dist/matter/utils.js +95 -0
- package/dist/matter/utils.js.map +1 -1
- package/dist/platformAccessory.d.ts +15 -0
- package/dist/platformAccessory.d.ts.map +1 -1
- package/dist/platformAccessory.js +32 -6
- package/dist/platformAccessory.js.map +1 -1
- package/dist/plugin.d.ts +3 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +29 -6
- package/dist/plugin.js.map +1 -1
- package/dist/pluginManager.d.ts +22 -0
- package/dist/pluginManager.d.ts.map +1 -1
- package/dist/pluginManager.js +39 -17
- package/dist/pluginManager.js.map +1 -1
- package/dist/server.d.ts +58 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +260 -65
- package/dist/server.js.map +1 -1
- package/dist/user.d.ts +3 -0
- package/dist/user.d.ts.map +1 -1
- package/dist/user.js +5 -2
- package/dist/user.js.map +1 -1
- package/dist/util/mac.js +1 -0
- package/dist/util/mac.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
|
|
17
17
|
<img src="https://media.giphy.com/media/10l79ICohTu4iQ/giphy.gif" align="right" alt="Unlocking Door">
|
|
18
18
|
|
|
19
|
-
**Homebridge** is a lightweight Node.js server you can run on your home network to emulate the HomeKit Accessory Protocol (HAP). It supports plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of "smart home" devices.
|
|
19
|
+
**Homebridge** is a lightweight Node.js server you can run on your home network to emulate the HomeKit Accessory Protocol (HAP). It supports plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of "smart home" devices. From v2, plugins can also expose accessories over [Matter](#matter-support) for use with Apple Home, Google Home, Amazon Alexa, SmartThings and other Matter-capable controllers.
|
|
20
|
+
|
|
21
|
+
Homebridge is a free, non-commercial, community-driven open-source project. It is not affiliated with Apple, Google, Amazon, or the Connectivity Standards Alliance, and no part of it is offered as a paid or certified product.
|
|
20
22
|
|
|
21
23
|
Since Siri supports devices added through HomeKit, this means that with Homebridge you can ask Siri to control devices that don't have any support for HomeKit at all. For instance, using just some of the available plugins, you can say:
|
|
22
24
|
|
|
@@ -109,6 +111,29 @@ Once your device has been added to HomeKit, you should be able to tell Siri to c
|
|
|
109
111
|
|
|
110
112
|
One final thing to remember is that Siri will almost always prefer its default phrase handling over HomeKit devices. For instance, if you name your Sonos device "Radio" and try saying "Siri, turn on the Radio" then Siri will probably start playing an iTunes Radio station on your phone. Even if you name it "Sonos" and say "Siri, turn on the Sonos", Siri will probably just launch the Sonos app instead. This is why, for instance, the suggested `name` for the Sonos accessory is "Speakers".
|
|
111
113
|
|
|
114
|
+
## Matter Support
|
|
115
|
+
|
|
116
|
+
Homebridge v2 introduces optional support for the [Matter](https://csa-iot.org/all-solutions/matter/) smart home standard, allowing plugins to expose their devices to any Matter-capable controller — Apple Home, Google Home, Amazon Alexa, Samsung SmartThings and others — alongside (or instead of) HomeKit.
|
|
117
|
+
|
|
118
|
+
> [!IMPORTANT]
|
|
119
|
+
> Homebridge's Matter support is **not certified by the Connectivity Standards Alliance (CSA)** and Homebridge is **not a "Matter product"** in any commercial sense. It is a community, non-profit implementation that re-uses the open-source [matter.js](https://github.com/project-chip/matter.js) library to speak the protocol. Matter-certified controllers may treat uncertified bridges as "uncertified accessories" and display a warning during pairing — this is expected.
|
|
120
|
+
|
|
121
|
+
### How it works
|
|
122
|
+
|
|
123
|
+
- The Matter stack runs in-process inside Homebridge using the open-source [matter.js](https://github.com/project-chip/matter.js) library (the [`@matter/main`](https://www.npmjs.com/package/@matter/main) npm package) as its protocol engine.
|
|
124
|
+
- Matter is **opt-in per bridge**. Add a `matter` block to `bridge` (the main bridge) and/or to a plugin's `_bridge` (a child bridge) in your config, and Homebridge will start a separate Matter server on its own port and advertise it on your LAN. Bridges without a `matter` block keep working exactly as before.
|
|
125
|
+
- Each Matter-enabled bridge appears as its own pairing — you scan a Matter QR code in the controller of your choice (Apple Home, Google Home, etc.). Multiple controllers can commission the same bridge ("multi-admin"), so it can sit alongside HomeKit rather than replacing it.
|
|
126
|
+
- Plugins decide whether to publish accessories to Matter by calling the `api.matter` API — analogous to the existing `api.hap` API. Plugins that don't opt in are unaffected.
|
|
127
|
+
- Currently supported device types include lights (on/off, dimmable, colour-temperature, full-colour), switches and outlets, a wide range of sensors (motion, contact, temperature, humidity, light, leak, smoke/CO, air quality), door locks, thermostats, fans, window coverings, robotic vacuum cleaners, water valves and generic switches. See the [developer docs](https://github.com/homebridge-plugins/homebridge-matter/wiki) for the full list.
|
|
128
|
+
|
|
129
|
+
### Limitations
|
|
130
|
+
|
|
131
|
+
- Matter pairing requires the controller and Homebridge to be on the same IP subnet with mDNS/IPv6 working — the same network constraints as HomeKit.
|
|
132
|
+
- A Matter-enabled bridge cannot be moved between controllers without re-commissioning.
|
|
133
|
+
- Because the implementation is uncertified, some controllers may surface warnings during pairing or restrict access to features that require certification.
|
|
134
|
+
|
|
135
|
+
For setup instructions and the latest list of supported device types, see the developer docs at https://github.com/homebridge-plugins/homebridge-matter/wiki.
|
|
136
|
+
|
|
112
137
|
## Plugin Development
|
|
113
138
|
|
|
114
139
|
The https://developers.homebridge.io website contains the Homebridge API reference, available service and characteristic types, and plugin examples.
|
|
@@ -161,8 +186,10 @@ Try the following:
|
|
|
161
186
|
|
|
162
187
|
Technically, the device manufacturers should be the ones implementing the HomeKit API. And I'm sure they will - eventually. When they do, this project will be obsolete, and I hope that happens soon. In the meantime, Homebridge is a fun way to get a taste of the future, for those who just can't bear to wait until "real" HomeKit devices are on the market.
|
|
163
188
|
|
|
164
|
-
|
|
189
|
+
Homebridge is maintained on a volunteer basis by a community of contributors. There is no company behind it, nothing is sold, and no part of the project is certified or endorsed by Apple, Google, Amazon, the Connectivity Standards Alliance, or any device manufacturer. If a plugin or page asks you to pay for "Homebridge" itself, it isn't us.
|
|
165
190
|
|
|
166
|
-
|
|
191
|
+
## Credit
|
|
167
192
|
|
|
168
|
-
|
|
193
|
+
- Homebridge was originally created by [Nick Farina](https://twitter.com/nfarina).
|
|
194
|
+
- The original HomeKit API work was done by [Khaos Tian](https://twitter.com/khaost) in his [HAP-NodeJS](https://github.com/homebridge/HAP-NodeJS) project.
|
|
195
|
+
- Matter support is built on top of [matter.js](https://github.com/project-chip/matter.js), the open-source TypeScript implementation of Matter — without it, Homebridge's Matter bridge would not exist. Thanks to the matter.js maintainers and contributors.
|
package/dist/api.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { AccessoryConfig, PlatformConfig } from './bridgeService.js';
|
|
|
3
3
|
import type { Logging } from './logger.js';
|
|
4
4
|
import type { BaseMatterManager } from './matter/BaseMatterManager.js';
|
|
5
5
|
import type { clusterNames, clusters, ClusterStateMap, deviceTypes, MatterAccessory, MatterServer, MatterTypes } from './matter/index.js';
|
|
6
|
+
import type { SwitchAPI } from './matter/SwitchAPI.js';
|
|
6
7
|
import { EventEmitter } from 'node:events';
|
|
7
8
|
import hapNodeJs from '@homebridge/hap-nodejs';
|
|
8
9
|
import { PlatformAccessory } from './platformAccessory.js';
|
|
@@ -20,15 +21,48 @@ export declare const enum PluginType {
|
|
|
20
21
|
ACCESSORY = "accessory",
|
|
21
22
|
PLATFORM = "platform"
|
|
22
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* The {PluginInitializer} is a method which must be the default export for every homebridge plugin.
|
|
26
|
+
* It is called once the plugin is loaded from disk.
|
|
27
|
+
*/
|
|
23
28
|
export interface PluginInitializer {
|
|
29
|
+
/**
|
|
30
|
+
* When the initializer is called the plugin must use the provided api instance and call the appropriate
|
|
31
|
+
* register methods - {@link API.registerAccessory} or {@link API.registerPlatform} - in order to
|
|
32
|
+
* correctly register for the following startup sequence.
|
|
33
|
+
*
|
|
34
|
+
* @param {API} api
|
|
35
|
+
*/
|
|
24
36
|
(api: API): void | Promise<void>;
|
|
25
37
|
}
|
|
26
38
|
export interface AccessoryPluginConstructor {
|
|
27
39
|
new (logger: Logging, config: AccessoryConfig, api: API): AccessoryPlugin;
|
|
28
40
|
}
|
|
29
41
|
export interface AccessoryPlugin {
|
|
42
|
+
/**
|
|
43
|
+
* Optional method which will be called if an 'identify' of an Accessory is requested by HomeKit.
|
|
44
|
+
*/
|
|
30
45
|
identify?: () => void;
|
|
46
|
+
/**
|
|
47
|
+
* This method will be called once on startup, to query all services to be exposed by the Accessory.
|
|
48
|
+
* All event handlers for characteristics should be set up before the array is returned.
|
|
49
|
+
*
|
|
50
|
+
* @returns {Service[]} services - returned services will be added to the Accessory
|
|
51
|
+
*/
|
|
31
52
|
getServices: () => Service[];
|
|
53
|
+
/**
|
|
54
|
+
* This method will be called once on startup, to query all controllers to be exposed by the Accessory.
|
|
55
|
+
* It is optional to implement.
|
|
56
|
+
*
|
|
57
|
+
* This includes controllers like the RemoteController or the CameraController.
|
|
58
|
+
* Any necessary controller specific setup should have been done when returning the array.
|
|
59
|
+
* In most cases the plugin will only return an array of the size 1.
|
|
60
|
+
*
|
|
61
|
+
* In the case that the Plugin does not add any additional services (returned by {@link getServices}) the
|
|
62
|
+
* method {@link getServices} must be defined in any way and should just return an empty array.
|
|
63
|
+
*
|
|
64
|
+
* @returns {Controller[]} controllers - returned controllers will be configured for the Accessory
|
|
65
|
+
*/
|
|
32
66
|
getControllers?: () => Controller[];
|
|
33
67
|
}
|
|
34
68
|
export interface PlatformPluginConstructor<Config extends PlatformConfig = PlatformConfig> {
|
|
@@ -36,17 +70,65 @@ export interface PlatformPluginConstructor<Config extends PlatformConfig = Platf
|
|
|
36
70
|
}
|
|
37
71
|
export interface PlatformPlugin {
|
|
38
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Platform that is able to dynamically add or remove accessories.
|
|
75
|
+
* All configured accessories are stored to disk and recreated on startup.
|
|
76
|
+
* Accessories can be added or removed by using {@link API.registerPlatformAccessories} or {@link API.unregisterPlatformAccessories}.
|
|
77
|
+
*/
|
|
39
78
|
export interface DynamicPlatformPlugin extends PlatformPlugin {
|
|
79
|
+
/**
|
|
80
|
+
* This method is called for every PlatformAccessory, which is recreated from disk on startup.
|
|
81
|
+
* It should be used to properly initialize the Accessory and setup all event handlers for
|
|
82
|
+
* all services and their characteristics.
|
|
83
|
+
*
|
|
84
|
+
* @param {PlatformAccessory} accessory which needs to be configured
|
|
85
|
+
*/
|
|
40
86
|
configureAccessory: (accessory: PlatformAccessory) => void;
|
|
87
|
+
/**
|
|
88
|
+
* This method is called for every Matter accessory, which is recreated from cache on startup.
|
|
89
|
+
* It should be used to track cached accessories so the plugin can determine which accessories
|
|
90
|
+
* to re-register and which to remove (if they no longer exist in the external system).
|
|
91
|
+
*
|
|
92
|
+
* This is the Matter equivalent of configureAccessory for HAP accessories.
|
|
93
|
+
*
|
|
94
|
+
* @param {MatterAccessory} accessory - cached Matter accessory
|
|
95
|
+
*/
|
|
41
96
|
configureMatterAccessory?: (accessory: MatterAccessory) => void;
|
|
42
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Platform that exposes all available characteristics at the start of the plugin.
|
|
100
|
+
* The set of accessories can not change at runtime.
|
|
101
|
+
* The bridge waits for all callbacks to return before it is published and accessible by HomeKit controllers.
|
|
102
|
+
*/
|
|
43
103
|
export interface StaticPlatformPlugin extends PlatformPlugin {
|
|
104
|
+
/**
|
|
105
|
+
* This method is called once at startup. The Platform should pass all accessories which need to be created
|
|
106
|
+
* to the callback in form of a {@link AccessoryPlugin}.
|
|
107
|
+
* The Platform must respond in a timely manner as otherwise the startup of the bridge would be unnecessarily delayed.
|
|
108
|
+
*
|
|
109
|
+
* @param {(foundAccessories: AccessoryPlugin[]) => void} callback
|
|
110
|
+
*/
|
|
44
111
|
accessories: (callback: (foundAccessories: AccessoryPlugin[]) => void) => void;
|
|
45
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Platform that does not aim to add any accessories to the main bridge accessory.
|
|
115
|
+
* This platform should be used if for example a plugin aims to only expose external accessories.
|
|
116
|
+
* It should also be used when the platform doesn't intend to expose any accessories at all, like plugins
|
|
117
|
+
* providing a UI for homebridge.
|
|
118
|
+
*/
|
|
46
119
|
export interface IndependentPlatformPlugin extends PlatformPlugin {
|
|
47
120
|
}
|
|
48
121
|
export declare const enum APIEvent {
|
|
122
|
+
/**
|
|
123
|
+
* Event is fired once homebridge has finished with booting up and initializing all components and plugins.
|
|
124
|
+
* When this event is fired it is possible that the Bridge accessory isn't published yet, if homebridge still needs
|
|
125
|
+
* to wait for some {@see StaticPlatformPlugin | StaticPlatformPlugins} to finish accessory creation.
|
|
126
|
+
*/
|
|
49
127
|
DID_FINISH_LAUNCHING = "didFinishLaunching",
|
|
128
|
+
/**
|
|
129
|
+
* This event is fired when homebridge gets shutdown. This could be a regular shutdown or an unexpected crash.
|
|
130
|
+
* At this stage all Accessories are already unpublished and all PlatformAccessories are already saved to disk!
|
|
131
|
+
*/
|
|
50
132
|
SHUTDOWN = "shutdown"
|
|
51
133
|
}
|
|
52
134
|
export declare const enum InternalAPIEvent {
|
|
@@ -63,32 +145,309 @@ export declare const enum InternalAPIEvent {
|
|
|
63
145
|
UNREGISTER_EXTERNAL_MATTER_ACCESSORIES = "unregisterExternalMatterAccessories",
|
|
64
146
|
UPDATE_MATTER_ACCESSORY_STATE = "updateMatterAccessoryState"
|
|
65
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Matter API Interface.
|
|
150
|
+
*
|
|
151
|
+
* Provides access to Matter protocol functionality for creating
|
|
152
|
+
* Matter-compatible accessories. Similar to `api.hap` for HomeKit
|
|
153
|
+
* Accessory Protocol.
|
|
154
|
+
*
|
|
155
|
+
* `api.matter` is `MatterAPI | undefined` — it's defined on bridges
|
|
156
|
+
* where Matter is configured (matches `api.isMatterEnabled()`),
|
|
157
|
+
* undefined otherwise. Plugins must use optional chaining or guard
|
|
158
|
+
* with `isMatterEnabled()`.
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* // Defensive pattern (recommended for plugins that work with or without Matter):
|
|
163
|
+
* api.matter?.registerPlatformAccessories('homebridge-example', 'Example', [{
|
|
164
|
+
* UUID: api.hap.uuid.generate('my-light'),
|
|
165
|
+
* displayName: 'Living Room Light',
|
|
166
|
+
* deviceType: api.matter!.deviceTypes.OnOffLight,
|
|
167
|
+
* manufacturer: 'Example',
|
|
168
|
+
* model: 'Example Light',
|
|
169
|
+
* serialNumber: 'EX-001',
|
|
170
|
+
* clusters: { onOff: { onOff: false } },
|
|
171
|
+
* }])
|
|
172
|
+
*
|
|
173
|
+
* // Update state when device changes externally
|
|
174
|
+
* await api.matter?.updateAccessoryState(uuid, 'onOff', { onOff: true })
|
|
175
|
+
*
|
|
176
|
+
* // Read current state
|
|
177
|
+
* const state = await api.matter?.getAccessoryState(uuid, 'onOff')
|
|
178
|
+
* ```
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```typescript
|
|
182
|
+
* // Guard pattern (recommended for plugins that always require Matter):
|
|
183
|
+
* if (!api.isMatterEnabled()) {
|
|
184
|
+
* log.error('Matter is not enabled for this bridge; the plugin requires Matter.')
|
|
185
|
+
* return
|
|
186
|
+
* }
|
|
187
|
+
* const matter = api.matter!
|
|
188
|
+
* await matter.registerPlatformAccessories(pluginId, platformName, accessories)
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
66
191
|
export interface MatterAPI {
|
|
192
|
+
/**
|
|
193
|
+
* UUID generator (alias of api.hap.uuid for convenience)
|
|
194
|
+
* Use this to generate unique identifiers for Matter accessories
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```typescript
|
|
198
|
+
* const uuid = api.matter?.uuid.generate('my-light-unique-id')
|
|
199
|
+
* api.matter?.registerAccessory({
|
|
200
|
+
* uuid,
|
|
201
|
+
* displayName: 'Living Room Light',
|
|
202
|
+
* // ...
|
|
203
|
+
* })
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
67
206
|
readonly uuid: HAP['uuid'];
|
|
207
|
+
/**
|
|
208
|
+
* Matter device types for creating accessories.
|
|
209
|
+
* Maps friendly names to Matter.js device types, including stateless controller types like `GenericSwitch`.
|
|
210
|
+
*/
|
|
68
211
|
readonly deviceTypes: typeof deviceTypes;
|
|
212
|
+
/**
|
|
213
|
+
* Matter clusters - Direct access to Matter.js cluster definitions
|
|
214
|
+
* For advanced use cases requiring low-level cluster access
|
|
215
|
+
*/
|
|
69
216
|
readonly clusters: typeof clusters;
|
|
217
|
+
/**
|
|
218
|
+
* Matter cluster names for type safety and autocomplete
|
|
219
|
+
* Use these constants with updateAccessoryState() and getAccessoryState()
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```typescript
|
|
223
|
+
* api.matter?.updateAccessoryState(uuid, api.matter?.clusterNames.OnOff, { onOff: true })
|
|
224
|
+
* api.matter?.getAccessoryState(uuid, api.matter?.clusterNames.LevelControl)
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
70
227
|
readonly clusterNames: typeof clusterNames;
|
|
228
|
+
/**
|
|
229
|
+
* Matter types - Access to Matter.js cluster type definitions and enums
|
|
230
|
+
* Use these for type-safe attribute values (modes, states, etc.)
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* ```typescript
|
|
234
|
+
* Fan mode enum
|
|
235
|
+
* api.matter?.updateAccessoryState(
|
|
236
|
+
* uuid,
|
|
237
|
+
* api.matter?.clusterNames.FanControl,
|
|
238
|
+
* { fanMode: api.matter?.types.FanControl.FanMode.High }
|
|
239
|
+
* )
|
|
240
|
+
* ```
|
|
241
|
+
*/
|
|
71
242
|
readonly types: typeof MatterTypes;
|
|
243
|
+
/**
|
|
244
|
+
* Register Matter platform accessories (works exactly like HAP's registerPlatformAccessories)
|
|
245
|
+
*
|
|
246
|
+
* Returns a promise that resolves when all accessories are fully registered and ready for state updates.
|
|
247
|
+
* This is especially important for external accessories (like robot vacuums) which require additional setup time.
|
|
248
|
+
*
|
|
249
|
+
* @param pluginIdentifier - The plugin identifier (e.g., 'homebridge-example')
|
|
250
|
+
* @param platformName - The platform name (e.g., 'ExamplePlatform')
|
|
251
|
+
* @param accessories - Array of Matter accessories to register
|
|
252
|
+
*/
|
|
72
253
|
registerPlatformAccessories: (pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: MatterAccessory[]) => Promise<void>;
|
|
254
|
+
/**
|
|
255
|
+
* Update Matter platform accessories in the cache
|
|
256
|
+
*
|
|
257
|
+
* Use this to update cached accessory information (displayName, manufacturer, model, etc.)
|
|
258
|
+
* without unregistering and re-registering. This is useful when:
|
|
259
|
+
* - Device name changes in the external system
|
|
260
|
+
* - Firmware version gets updated
|
|
261
|
+
* - Other metadata needs to be refreshed
|
|
262
|
+
*
|
|
263
|
+
* Similar to api.updatePlatformAccessories() for HAP accessories.
|
|
264
|
+
*
|
|
265
|
+
* @param accessories - Array of Matter accessories to update (must include uuid)
|
|
266
|
+
*
|
|
267
|
+
* @example
|
|
268
|
+
* ```typescript
|
|
269
|
+
* // Update the display name after it changed in the external system
|
|
270
|
+
* const accessory = cachedAccessories.find(a => a.uuid === uuid)
|
|
271
|
+
* if (accessory) {
|
|
272
|
+
* accessory.displayName = 'New Name from API'
|
|
273
|
+
* await api.matter?.updatePlatformAccessories([accessory])
|
|
274
|
+
* }
|
|
275
|
+
* ```
|
|
276
|
+
*/
|
|
73
277
|
updatePlatformAccessories: (accessories: MatterAccessory[]) => Promise<void>;
|
|
278
|
+
/**
|
|
279
|
+
* Unregister Matter platform accessories by UUID
|
|
280
|
+
* @param pluginIdentifier - The plugin identifier
|
|
281
|
+
* @param platformName - The platform name
|
|
282
|
+
* @param accessories - Array of Matter accessories to unregister (only uuid is required)
|
|
283
|
+
*/
|
|
74
284
|
unregisterPlatformAccessories: (pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: MatterAccessory[]) => Promise<void>;
|
|
285
|
+
/**
|
|
286
|
+
* Update a Matter accessory's cluster state when device changes externally
|
|
287
|
+
*
|
|
288
|
+
* Use this for state updates from:
|
|
289
|
+
* - Native app controls
|
|
290
|
+
* - Physical button presses
|
|
291
|
+
* - Webhooks from cloud service
|
|
292
|
+
* - Polling results
|
|
293
|
+
*
|
|
294
|
+
* DO NOT use inside handlers - state auto-updates after handlers complete!
|
|
295
|
+
* Similar to HAP's characteristic.updateValue()
|
|
296
|
+
*
|
|
297
|
+
* @param uuid - The UUID of the accessory
|
|
298
|
+
* @param cluster - The cluster name (use api.matter?.clusterNames for autocomplete)
|
|
299
|
+
* @param attributes - The attributes to update
|
|
300
|
+
* @param partId - Optional: ID of the part to update (for composed devices with multiple endpoints)
|
|
301
|
+
*
|
|
302
|
+
* @example
|
|
303
|
+
* ```typescript
|
|
304
|
+
* Device turned on via native app:
|
|
305
|
+
* await api.matter?.updateAccessoryState(
|
|
306
|
+
* uuid,
|
|
307
|
+
* api.matter?.clusterNames.OnOff,
|
|
308
|
+
* { onOff: true }
|
|
309
|
+
* )
|
|
310
|
+
*
|
|
311
|
+
* Device brightness changed via physical button:
|
|
312
|
+
* await api.matter?.updateAccessoryState(
|
|
313
|
+
* uuid,
|
|
314
|
+
* api.matter?.clusterNames.LevelControl,
|
|
315
|
+
* { currentLevel: 200 }
|
|
316
|
+
* )
|
|
317
|
+
*
|
|
318
|
+
* Update a specific outlet in a power strip (composed device):
|
|
319
|
+
* await api.matter?.updateAccessoryState(
|
|
320
|
+
* uuid,
|
|
321
|
+
* api.matter?.clusterNames.OnOff,
|
|
322
|
+
* { onOff: true },
|
|
323
|
+
* 'outlet-2' // Part ID
|
|
324
|
+
* )
|
|
325
|
+
* ```
|
|
326
|
+
*/
|
|
75
327
|
updateAccessoryState: {
|
|
328
|
+
/** Typed overload for known clusters - provides autocomplete for attribute names */
|
|
76
329
|
<K extends keyof ClusterStateMap>(uuid: string, cluster: K, attributes: Partial<ClusterStateMap[K]>, partId?: string): Promise<void>;
|
|
330
|
+
/** Fallback for unknown/custom clusters */
|
|
77
331
|
(uuid: string, cluster: string, attributes: Record<string, unknown>, partId?: string): Promise<void>;
|
|
78
332
|
};
|
|
333
|
+
/**
|
|
334
|
+
* Get a Matter accessory's current cluster state
|
|
335
|
+
*
|
|
336
|
+
* Returns the current attribute values that are exposed to Matter controllers.
|
|
337
|
+
* Useful for:
|
|
338
|
+
* - Reading state after plugin restart
|
|
339
|
+
* - Verifying current state before making changes
|
|
340
|
+
* - Debugging and logging
|
|
341
|
+
*
|
|
342
|
+
* Similar to HAP's `characteristic.value` getter.
|
|
343
|
+
*
|
|
344
|
+
* @param uuid - The UUID of the accessory
|
|
345
|
+
* @param cluster - The cluster name (use api.matter?.clusterNames for autocomplete)
|
|
346
|
+
* @param partId - Optional: ID of the part to get state from (for composed devices with multiple endpoints)
|
|
347
|
+
* @returns Current cluster attribute values, or undefined if not found
|
|
348
|
+
*
|
|
349
|
+
* @example
|
|
350
|
+
* ```typescript
|
|
351
|
+
* const state = await api.matter?.getAccessoryState(uuid, api.matter?.clusterNames.OnOff)
|
|
352
|
+
* if (state?.onOff) {
|
|
353
|
+
* console.log('Light is currently on')
|
|
354
|
+
* }
|
|
355
|
+
*
|
|
356
|
+
* Get state of a specific outlet in a power strip:
|
|
357
|
+
* const outletState = await api.matter?.getAccessoryState(
|
|
358
|
+
* uuid,
|
|
359
|
+
* api.matter?.clusterNames.OnOff,
|
|
360
|
+
* 'outlet-3' // Part ID
|
|
361
|
+
* )
|
|
362
|
+
* ```
|
|
363
|
+
*/
|
|
79
364
|
getAccessoryState: {
|
|
365
|
+
/** Typed overload for known clusters - returns typed state */
|
|
80
366
|
<K extends keyof ClusterStateMap>(uuid: string, cluster: K, partId?: string): Promise<Partial<ClusterStateMap[K]> | undefined>;
|
|
367
|
+
/** Fallback for unknown/custom clusters */
|
|
81
368
|
(uuid: string, cluster: string, partId?: string): Promise<Record<string, unknown> | undefined>;
|
|
82
369
|
};
|
|
370
|
+
/**
|
|
371
|
+
* Helpers for `GenericSwitch` accessories (stateless remotes and buttons).
|
|
372
|
+
*
|
|
373
|
+
* Device-type-specific helpers live under nested namespaces (e.g. `api.matter?.switch`)
|
|
374
|
+
* to keep the top-level `MatterAPI` surface focused on the generic, UUID-addressed primitives.
|
|
375
|
+
*
|
|
376
|
+
* @see {@link SwitchAPI}
|
|
377
|
+
*
|
|
378
|
+
* @example
|
|
379
|
+
* ```typescript
|
|
380
|
+
* // Simple single-button press and release
|
|
381
|
+
* await api.matter?.switch.emit(uuid, 'press')
|
|
382
|
+
* await api.matter?.switch.emit(uuid, 'release')
|
|
383
|
+
* ```
|
|
384
|
+
*/
|
|
385
|
+
readonly switch: SwitchAPI;
|
|
83
386
|
}
|
|
84
387
|
export interface API {
|
|
388
|
+
/**
|
|
389
|
+
* The homebridge API version as a floating point number.
|
|
390
|
+
*/
|
|
85
391
|
readonly version: number;
|
|
392
|
+
/**
|
|
393
|
+
* The current homebridge semver version.
|
|
394
|
+
*/
|
|
86
395
|
readonly serverVersion: string;
|
|
87
396
|
readonly user: typeof User;
|
|
88
397
|
readonly hap: HAP;
|
|
89
398
|
readonly hapLegacyTypes: HAPLegacyTypes;
|
|
90
399
|
readonly platformAccessory: typeof PlatformAccessory;
|
|
91
|
-
|
|
400
|
+
/**
|
|
401
|
+
* Matter Protocol API.
|
|
402
|
+
*
|
|
403
|
+
* @remarks
|
|
404
|
+
* Defined when Matter is configured for this bridge (i.e. when
|
|
405
|
+
* `api.isMatterEnabled()` returns true), undefined otherwise. Loaded
|
|
406
|
+
* automatically before plugins run on Matter-enabled bridges, so
|
|
407
|
+
* plugins can access it from their initializer, platform/accessory
|
|
408
|
+
* constructor, or `didFinishLaunching` handler.
|
|
409
|
+
*
|
|
410
|
+
* Safe access patterns:
|
|
411
|
+
* ```typescript
|
|
412
|
+
* api.matter?.registerPlatformAccessories(...) // defensive, no-ops when disabled
|
|
413
|
+
* if (api.isMatterEnabled()) {
|
|
414
|
+
* api.matter!.registerPlatformAccessories(...) // explicit guard
|
|
415
|
+
* }
|
|
416
|
+
* ```
|
|
417
|
+
*
|
|
418
|
+
* @example
|
|
419
|
+
* ```typescript
|
|
420
|
+
* // Register a Matter accessory
|
|
421
|
+
* api.matter?.registerPlatformAccessories('homebridge-example', 'Example', [{
|
|
422
|
+
* UUID: api.hap.uuid.generate('my-light'),
|
|
423
|
+
* displayName: 'Living Room Light',
|
|
424
|
+
* deviceType: api.matter!.deviceTypes.OnOffLight,
|
|
425
|
+
* manufacturer: 'Example',
|
|
426
|
+
* model: 'Example Light',
|
|
427
|
+
* serialNumber: 'EX-001',
|
|
428
|
+
* clusters: { onOff: { onOff: false } },
|
|
429
|
+
* }])
|
|
430
|
+
*
|
|
431
|
+
* // Update state
|
|
432
|
+
* await api.matter?.updateAccessoryState(uuid, 'onOff', { onOff: true })
|
|
433
|
+
* ```
|
|
434
|
+
*/
|
|
435
|
+
readonly matter?: MatterAPI;
|
|
436
|
+
/**
|
|
437
|
+
* Returns true if the current running homebridge version is greater or equal to the
|
|
438
|
+
* passed version string.
|
|
439
|
+
*
|
|
440
|
+
* Example:
|
|
441
|
+
*
|
|
442
|
+
* We assume the homebridge version 1.3.0-beta.12 ({@link serverVersion}) and the following example calls below
|
|
443
|
+
* ```
|
|
444
|
+
* versionGreaterOrEqual("1.2.0"); // will return true
|
|
445
|
+
* versionGreaterOrEqual("1.3.0"); // will return false (the RELEASE version 1.3.0 is bigger than the BETA version 1.3.0-beta.12)
|
|
446
|
+
* versionGreaterOrEqual("1.3.0-beta.8); // will return true
|
|
447
|
+
* ```
|
|
448
|
+
*
|
|
449
|
+
* @param version
|
|
450
|
+
*/
|
|
92
451
|
versionGreaterOrEqual: (version: string) => boolean;
|
|
93
452
|
registerAccessory: ((accessoryName: AccessoryName, constructor: AccessoryPluginConstructor) => void) & ((pluginIdentifier: PluginIdentifier, accessoryName: AccessoryName, constructor: AccessoryPluginConstructor) => void);
|
|
94
453
|
registerPlatform: (<Config extends PlatformConfig>(platformName: PlatformName, constructor: PlatformPluginConstructor<Config>) => void) & (<Config extends PlatformConfig>(pluginIdentifier: PluginIdentifier, platformName: PlatformName, constructor: PlatformPluginConstructor<Config>) => void);
|
|
@@ -96,7 +455,17 @@ export interface API {
|
|
|
96
455
|
updatePlatformAccessories: (accessories: PlatformAccessory[]) => void;
|
|
97
456
|
unregisterPlatformAccessories: (pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: PlatformAccessory[]) => void;
|
|
98
457
|
publishExternalAccessories: (pluginIdentifier: PluginIdentifier, accessories: PlatformAccessory[]) => void;
|
|
458
|
+
/**
|
|
459
|
+
* Check if Matter is available in this version of Homebridge
|
|
460
|
+
* @returns true if Homebridge version is >= 2.0.0-alpha.0
|
|
461
|
+
*/
|
|
99
462
|
isMatterAvailable: () => boolean;
|
|
463
|
+
/**
|
|
464
|
+
* Check if Matter is enabled for this bridge
|
|
465
|
+
* For main bridge: returns true if Matter is enabled in `bridge.matter` config
|
|
466
|
+
* For child bridge: returns true if Matter is enabled in the _bridge.matter config
|
|
467
|
+
* @returns true if Matter is enabled
|
|
468
|
+
*/
|
|
100
469
|
isMatterEnabled: () => boolean;
|
|
101
470
|
on: ((event: 'didFinishLaunching', listener: () => void) => this) & ((event: 'shutdown', listener: () => void) => this);
|
|
102
471
|
}
|
|
@@ -111,17 +480,74 @@ export declare class HomebridgeAPI extends EventEmitter implements API {
|
|
|
111
480
|
readonly hap: typeof hapNodeJs;
|
|
112
481
|
readonly hapLegacyTypes: typeof hapNodeJs.LegacyTypes;
|
|
113
482
|
readonly platformAccessory: typeof PlatformAccessory;
|
|
483
|
+
/**
|
|
484
|
+
* Internal state tracking whether Matter is enabled for this bridge
|
|
485
|
+
*/
|
|
114
486
|
private matterEnabled;
|
|
487
|
+
/**
|
|
488
|
+
* Internal reference to MatterServer for API methods that need return values
|
|
489
|
+
* @internal
|
|
490
|
+
*/
|
|
115
491
|
_matterServer: MatterServer | null;
|
|
492
|
+
/**
|
|
493
|
+
* Internal reference to MatterBridgeManager for checking external servers
|
|
494
|
+
* @internal
|
|
495
|
+
*/
|
|
116
496
|
_matterManager: BaseMatterManager | null;
|
|
497
|
+
/**
|
|
498
|
+
* Pending external accessory registrations
|
|
499
|
+
* Map of registration ID to resolve function
|
|
500
|
+
* @internal
|
|
501
|
+
*/
|
|
117
502
|
private _pendingExternalRegistrations;
|
|
503
|
+
/**
|
|
504
|
+
* Lazy-loaded Matter API implementation
|
|
505
|
+
*/
|
|
118
506
|
private _matterAPI?;
|
|
119
|
-
|
|
507
|
+
/**
|
|
508
|
+
* Matter Protocol API (lazy-loaded).
|
|
509
|
+
*
|
|
510
|
+
* Returns the loaded MatterAPI instance, or `undefined` when Matter is not
|
|
511
|
+
* configured for this bridge. Server / ChildBridgeFork call
|
|
512
|
+
* {@link loadMatterAPI} before plugins run on Matter-enabled bridges, so
|
|
513
|
+
* plugins observe a defined value here whenever {@link isMatterEnabled}
|
|
514
|
+
* returns true.
|
|
515
|
+
*/
|
|
516
|
+
get matter(): MatterAPI | undefined;
|
|
517
|
+
/**
|
|
518
|
+
* Load Matter API implementation. Idempotent.
|
|
519
|
+
*
|
|
520
|
+
* Called by Server / ChildBridgeFork during startup when Matter is
|
|
521
|
+
* configured for the bridge, before plugin initialization. Plugins should
|
|
522
|
+
* not call this directly — use {@link matter} instead.
|
|
523
|
+
*
|
|
524
|
+
* @internal
|
|
525
|
+
*/
|
|
120
526
|
loadMatterAPI(): Promise<void>;
|
|
121
527
|
constructor();
|
|
528
|
+
/**
|
|
529
|
+
* Internal method to set Matter enabled status
|
|
530
|
+
* Called by Server or ChildBridgeFork after Matter initialization
|
|
531
|
+
* @internal
|
|
532
|
+
*/
|
|
122
533
|
_setMatterEnabled(enabled: boolean): void;
|
|
534
|
+
/**
|
|
535
|
+
* Internal method to set MatterServer reference
|
|
536
|
+
* Called by Server or ChildBridgeFork after creating MatterServer
|
|
537
|
+
* @internal
|
|
538
|
+
*/
|
|
123
539
|
_setMatterServer(server: MatterServer | null): void;
|
|
540
|
+
/**
|
|
541
|
+
* Internal method to set MatterBridgeManager reference
|
|
542
|
+
* Called by Server or ChildBridgeFork to allow API access to external servers
|
|
543
|
+
* @internal
|
|
544
|
+
*/
|
|
124
545
|
_setMatterManager(manager: BaseMatterManager | null): void;
|
|
546
|
+
/**
|
|
547
|
+
* Internal method to resolve pending external accessory registrations
|
|
548
|
+
* Called by MatterBridgeManager when external accessories finish publishing
|
|
549
|
+
* @internal
|
|
550
|
+
*/
|
|
125
551
|
_resolveExternalRegistration(registrationId: string): void;
|
|
126
552
|
versionGreaterOrEqual(version: string): boolean;
|
|
127
553
|
static isDynamicPlatformPlugin(platformPlugin: PlatformPlugin): platformPlugin is DynamicPlatformPlugin;
|
|
@@ -132,12 +558,21 @@ export declare class HomebridgeAPI extends EventEmitter implements API {
|
|
|
132
558
|
registerAccessory(pluginIdentifier: PluginIdentifier, accessoryName: AccessoryName, constructor: AccessoryPluginConstructor): void;
|
|
133
559
|
registerPlatform(platformName: PlatformName, constructor: PlatformPluginConstructor): void;
|
|
134
560
|
registerPlatform(pluginIdentifier: PluginIdentifier, platformName: PlatformName, constructor: PlatformPluginConstructor): void;
|
|
135
|
-
publishCameraAccessories(pluginIdentifier: PluginIdentifier, accessories: PlatformAccessory[]): void;
|
|
136
561
|
publishExternalAccessories(pluginIdentifier: PluginIdentifier, accessories: PlatformAccessory[]): void;
|
|
137
562
|
registerPlatformAccessories(pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: PlatformAccessory[]): void;
|
|
138
563
|
updatePlatformAccessories(accessories: PlatformAccessory[]): void;
|
|
139
564
|
unregisterPlatformAccessories(pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: PlatformAccessory[]): void;
|
|
565
|
+
/**
|
|
566
|
+
* Check if Matter is available in this version of Homebridge
|
|
567
|
+
* @returns true if Homebridge version satisfies >= 2.0.0-alpha.0
|
|
568
|
+
*/
|
|
140
569
|
isMatterAvailable(): boolean;
|
|
570
|
+
/**
|
|
571
|
+
* Check if Matter is enabled for this bridge
|
|
572
|
+
* For main bridge: returns true if Matter is enabled in `bridge.matter` config
|
|
573
|
+
* For child bridge: returns true if Matter is enabled in the `_bridge.matter` config
|
|
574
|
+
* @returns true if Matter is enabled
|
|
575
|
+
*/
|
|
141
576
|
isMatterEnabled(): boolean;
|
|
142
577
|
}
|
|
143
578
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,WAAW,EACX,eAAe,EACf,YAAY,EACZ,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,SAAS,MAAM,wBAAwB,CAAA;AAI9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAKhC,MAAM,MAAM,GAAG,GAAG,OAAO,SAAS,CAAA;AAClC,MAAM,MAAM,cAAc,GAAG,OAAO,SAAS,CAAC,WAAW,CAAA;AAEzD,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,gBAAgB,CAAA;AAC5D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAC/B,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACrC,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAClC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAA;AACxC,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAGvC,0BAAkB,UAAU;IAC1B,SAAS,cAAc;IACvB,QAAQ,aAAa;CACtB;AAMD,MAAM,WAAW,iBAAiB;IAQhC,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAI,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,eAAe,CAAA;CACzE;AAED,MAAM,WAAW,eAAe;IAI9B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAQrB,WAAW,EAAE,MAAM,OAAO,EAAE,CAAA;IAe5B,cAAc,CAAC,EAAE,MAAM,UAAU,EAAE,CAAA;CACpC;AAED,MAAM,WAAW,yBAAyB,CAAC,MAAM,SAAS,cAAc,GAAG,cAAc;IACvF,KAAI,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,yBAAyB,CAAA;CACzH;AAED,MAAM,WAAW,cAAc;CAAG;AAOlC,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAQ3D,kBAAkB,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAW1D,wBAAwB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAA;CAChE;AAOD,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAQ1D,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;CAC/E;AAQD,MAAM,WAAW,yBAA0B,SAAQ,cAAc;CAEhE;AAGD,0BAAkB,QAAQ;IAMxB,oBAAoB,uBAAuB;IAM3C,QAAQ,aAAa;CACtB;AAGD,0BAAkB,gBAAgB;IAChC,kBAAkB,sBAAsB;IACxC,iBAAiB,qBAAqB;IAEtC,4BAA4B,+BAA+B;IAC3D,6BAA6B,gCAAgC;IAC7D,2BAA2B,8BAA8B;IACzD,+BAA+B,kCAAkC;IAGjE,mCAAmC,qCAAqC;IACxE,oCAAoC,sCAAsC;IAC1E,kCAAkC,oCAAoC;IACtE,sCAAsC,wCAAwC;IAC9E,sCAAsC,wCAAwC;IAC9E,6BAA6B,+BAA+B;CAC7D;AAwBD,MAAM,WAAW,SAAS;IAexB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAM1B,QAAQ,CAAC,WAAW,EAAE,OAAO,WAAW,CAAA;IAMxC,QAAQ,CAAC,QAAQ,EAAE,OAAO,QAAQ,CAAA;IAYlC,QAAQ,CAAC,YAAY,EAAE,OAAO,YAAY,CAAA;IAgB1C,QAAQ,CAAC,KAAK,EAAE,OAAO,WAAW,CAAA;IAYlC,2BAA2B,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAyB9I,yBAAyB,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAQ5E,6BAA6B,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IA4ChJ,oBAAoB,EAAE;QAEpB,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAEpI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KACrG,CAAA;IAiCD,iBAAiB,EAAE;QAEjB,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;QAE9H,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAA;KAC/F,CAAA;CACF;AAED,MAAM,WAAW,GAAG;IAIlB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IAKxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAG9B,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IACjB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;IACvC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,iBAAiB,CAAA;IAqBpD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAiB1B,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAA;IAEnD,iBAAiB,EAAE,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,0BAA0B,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,0BAA0B,KAAK,IAAI,CAAC,CAAA;IAE5N,gBAAgB,EAAE,CAAC,CAAC,MAAM,SAAS,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,yBAAyB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,SAAS,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,yBAAyB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAA;IACnS,2BAA2B,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAA;IACvI,yBAAyB,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAA;IACrE,6BAA6B,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAA;IAEzI,0BAA0B,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAA;IAM1G,iBAAiB,EAAE,MAAM,OAAO,CAAA;IAQhC,eAAe,EAAE,MAAM,OAAO,CAAA;IAE9B,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,CAAA;CACxH;AAGD,MAAM,CAAC,OAAO,WAAW,aAAa;IACpC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,4BAA4B,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,6BAA6B,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,2BAA2B,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,+BAA+B,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,mCAAmC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,oCAAoC,EAAE,QAAQ,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,kCAAkC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,sCAAsC,EAAE,QAAQ,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,sCAAsC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,6BAA6B,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,CAAA;IAE15D,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,4BAA4B,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,6BAA6B,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,2BAA2B,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,+BAA+B,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,mCAAmC,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,oCAAoC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,kCAAkC,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,sCAAsC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,sCAAsC,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,6BAA6B,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAA;CAC3qD;AAGD,qBAAa,aAAc,SAAQ,YAAa,YAAW,GAAG;IAC5D,SAAgB,OAAO,OAAM;IAC7B,SAAgB,aAAa,SAAe;IAG5C,QAAQ,CAAC,IAAI,cAAO;IACpB,QAAQ,CAAC,GAAG,mBAAY;IACxB,QAAQ,CAAC,cAAc,+BAAwB;IAC/C,QAAQ,CAAC,iBAAiB,2BAAoB;IAM9C,OAAO,CAAC,aAAa,CAAQ;IAMtB,aAAa,EAAE,YAAY,GAAG,IAAI,CAAO;IAMzC,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAO;IAOtD,OAAO,CAAC,6BAA6B,CAAqC;IAK1E,OAAO,CAAC,UAAU,CAAC,CAAW;IAM9B,IAAI,MAAM,IAAI,SAAS,CAUtB;IAQK,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;;IAgBpC,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IASzC,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;IASnD,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI;IAS1D,4BAA4B,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAQnD,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;WAIxC,uBAAuB,CAAC,cAAc,EAAE,cAAc,GAAG,cAAc,IAAI,qBAAqB;WAIhG,sBAAsB,CAAC,cAAc,EAAE,cAAc,GAAG,cAAc,IAAI,oBAAoB;IAI5G,cAAc,IAAI,IAAI;IAItB,cAAc,IAAI,IAAI;IAItB,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,0BAA0B,GAAG,IAAI;IAC9F,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,0BAA0B,GAAG,IAAI;IAWlI,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,yBAAyB,GAAG,IAAI;IAC1F,gBAAgB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,yBAAyB,GAAG,IAAI;IAW9H,wBAAwB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAIpG,0BAA0B,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAiBtG,2BAA2B,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAcnI,yBAAyB,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAIjE,6BAA6B,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAerI,iBAAiB,IAAI,OAAO;IAU5B,eAAe,IAAI,OAAO;CAG3B"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|