homebridge 2.0.0-beta.35 → 2.0.0-beta.37
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/dist/api.d.ts +74 -32
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +48 -46
- package/dist/api.js.map +1 -1
- package/dist/api.spec.d.ts +2 -0
- package/dist/api.spec.d.ts.map +1 -0
- package/dist/api.spec.js +413 -0
- package/dist/api.spec.js.map +1 -0
- package/dist/childBridgeFork.d.ts +1 -18
- package/dist/childBridgeFork.d.ts.map +1 -1
- package/dist/childBridgeFork.js +21 -258
- package/dist/childBridgeFork.js.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/logger.spec.d.ts +2 -0
- package/dist/logger.spec.d.ts.map +1 -0
- package/dist/logger.spec.js +95 -0
- package/dist/logger.spec.js.map +1 -0
- package/dist/matter/ChildBridgeMatterManager.d.ts +96 -0
- package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -0
- package/dist/matter/ChildBridgeMatterManager.js +397 -0
- package/dist/matter/ChildBridgeMatterManager.js.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +48 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.js +73 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +2 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +293 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +1 -0
- package/dist/matter/{matterServer.d.ts → MatterAPIImpl.d.ts} +203 -367
- package/dist/matter/MatterAPIImpl.d.ts.map +1 -0
- package/dist/matter/MatterAPIImpl.js +305 -0
- package/dist/matter/MatterAPIImpl.js.map +1 -0
- package/dist/matter/MatterBridgeManager.d.ts +91 -0
- package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
- package/dist/matter/MatterBridgeManager.js +426 -0
- package/dist/matter/MatterBridgeManager.js.map +1 -0
- package/dist/matter/MatterConfigCollector.d.ts +26 -0
- package/dist/matter/MatterConfigCollector.d.ts.map +1 -0
- package/dist/matter/MatterConfigCollector.js +78 -0
- package/dist/matter/MatterConfigCollector.js.map +1 -0
- package/dist/matter/{matterAccessoryCache.d.ts → accessoryCache.d.ts} +12 -3
- package/dist/matter/accessoryCache.d.ts.map +1 -0
- package/dist/matter/{matterAccessoryCache.js → accessoryCache.js} +32 -10
- package/dist/matter/accessoryCache.js.map +1 -0
- package/dist/matter/accessoryCache.spec.d.ts +2 -0
- package/dist/matter/accessoryCache.spec.d.ts.map +1 -0
- package/dist/matter/accessoryCache.spec.js +452 -0
- package/dist/matter/accessoryCache.spec.js.map +1 -0
- package/dist/matter/behaviors/BehaviorRegistry.d.ts +65 -0
- package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -0
- package/dist/matter/behaviors/BehaviorRegistry.js +139 -0
- package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -0
- package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +2 -0
- package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/BehaviorRegistry.spec.js +307 -0
- package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +1 -0
- package/dist/matter/behaviors/ColorControlBehavior.d.ts +64 -0
- package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ColorControlBehavior.js +160 -0
- package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -0
- package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/ColorControlBehavior.spec.js +29 -0
- package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/DoorLockBehavior.d.ts +21 -0
- package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/DoorLockBehavior.js +49 -0
- package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -0
- package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/DoorLockBehavior.spec.js +108 -0
- package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/FanControlBehavior.d.ts +20 -0
- package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/FanControlBehavior.js +45 -0
- package/dist/matter/behaviors/FanControlBehavior.js.map +1 -0
- package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/FanControlBehavior.spec.js +23 -0
- package/dist/matter/behaviors/FanControlBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/IdentifyBehavior.d.ts +21 -0
- package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/IdentifyBehavior.js +27 -0
- package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -0
- package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/IdentifyBehavior.spec.js +64 -0
- package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/LevelControlBehavior.d.ts +34 -0
- package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/LevelControlBehavior.js +75 -0
- package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -0
- package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/LevelControlBehavior.spec.js +140 -0
- package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/OnOffBehavior.d.ts +28 -0
- package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/OnOffBehavior.js +63 -0
- package/dist/matter/behaviors/OnOffBehavior.js.map +1 -0
- package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/OnOffBehavior.spec.js +116 -0
- package/dist/matter/behaviors/OnOffBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +19 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.js +27 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +56 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +23 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js +49 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +55 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +19 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.js +27 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +56 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +22 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.js +35 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +52 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/ThermostatBehavior.d.ts +23 -0
- package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ThermostatBehavior.js +79 -0
- package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -0
- package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/ThermostatBehavior.spec.js +23 -0
- package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +32 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.js +106 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +2 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +1 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +27 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/index.d.ts +20 -0
- package/dist/matter/behaviors/index.d.ts.map +1 -0
- package/dist/matter/behaviors/index.js +21 -0
- package/dist/matter/behaviors/index.js.map +1 -0
- package/dist/matter/{matterConfigValidator.d.ts → configValidator.d.ts} +1 -1
- package/dist/matter/configValidator.d.ts.map +1 -0
- package/dist/matter/{matterConfigValidator.js → configValidator.js} +1 -1
- package/dist/matter/configValidator.js.map +1 -0
- package/dist/matter/configValidator.spec.d.ts +2 -0
- package/dist/matter/configValidator.spec.d.ts.map +1 -0
- package/dist/matter/configValidator.spec.js +390 -0
- package/dist/matter/configValidator.spec.js.map +1 -0
- package/dist/matter/errorHandler.d.ts +33 -0
- package/dist/matter/errorHandler.d.ts.map +1 -0
- package/dist/matter/errorHandler.js +113 -0
- package/dist/matter/errorHandler.js.map +1 -0
- package/dist/matter/errorHandler.spec.d.ts +2 -0
- package/dist/matter/errorHandler.spec.d.ts.map +1 -0
- package/dist/matter/errorHandler.spec.js +159 -0
- package/dist/matter/errorHandler.spec.js.map +1 -0
- package/dist/matter/index.d.ts +7 -4
- package/dist/matter/index.d.ts.map +1 -1
- package/dist/matter/index.js +7 -4
- package/dist/matter/index.js.map +1 -1
- package/dist/matter/{matterLogFormatter.d.ts → logFormatter.d.ts} +1 -1
- package/dist/matter/logFormatter.d.ts.map +1 -0
- package/dist/matter/{matterLogFormatter.js → logFormatter.js} +33 -19
- package/dist/matter/logFormatter.js.map +1 -0
- package/dist/matter/logFormatter.spec.d.ts +2 -0
- package/dist/matter/logFormatter.spec.d.ts.map +1 -0
- package/dist/matter/logFormatter.spec.js +252 -0
- package/dist/matter/logFormatter.spec.js.map +1 -0
- package/dist/matter/server.d.ts +343 -0
- package/dist/matter/server.d.ts.map +1 -0
- package/dist/matter/{matterServer.js → server.js} +549 -365
- package/dist/matter/server.js.map +1 -0
- package/dist/matter/{matterServerHelpers.d.ts → serverHelpers.d.ts} +2 -2
- package/dist/matter/serverHelpers.d.ts.map +1 -0
- package/dist/matter/{matterServerHelpers.js → serverHelpers.js} +11 -8
- package/dist/matter/serverHelpers.js.map +1 -0
- package/dist/matter/serverHelpers.spec.d.ts +2 -0
- package/dist/matter/serverHelpers.spec.d.ts.map +1 -0
- package/dist/matter/serverHelpers.spec.js +521 -0
- package/dist/matter/serverHelpers.spec.js.map +1 -0
- package/dist/matter/{matterSharedTypes.d.ts → sharedTypes.d.ts} +4 -10
- package/dist/matter/sharedTypes.d.ts.map +1 -0
- package/dist/matter/{matterSharedTypes.js → sharedTypes.js} +4 -10
- package/dist/matter/sharedTypes.js.map +1 -0
- package/dist/matter/{matterStorage.d.ts → storage.d.ts} +9 -2
- package/dist/matter/storage.d.ts.map +1 -0
- package/dist/matter/{matterStorage.js → storage.js} +14 -5
- package/dist/matter/{matterStorage.js.map → storage.js.map} +1 -1
- package/dist/matter/storage.spec.d.ts +2 -0
- package/dist/matter/storage.spec.d.ts.map +1 -0
- package/dist/matter/storage.spec.js +570 -0
- package/dist/matter/storage.spec.js.map +1 -0
- package/dist/matter/typeHelpers.d.ts +45 -0
- package/dist/matter/typeHelpers.d.ts.map +1 -0
- package/dist/matter/typeHelpers.js +57 -0
- package/dist/matter/typeHelpers.js.map +1 -0
- package/dist/matter/typeHelpers.spec.d.ts +2 -0
- package/dist/matter/typeHelpers.spec.d.ts.map +1 -0
- package/dist/matter/typeHelpers.spec.js +127 -0
- package/dist/matter/typeHelpers.spec.js.map +1 -0
- package/dist/matter/{matterTypes.d.ts → types.d.ts} +2 -2
- package/dist/matter/types.d.ts.map +1 -0
- package/dist/matter/{matterTypes.js → types.js} +1 -2
- package/dist/matter/types.js.map +1 -0
- package/dist/platformAccessory.spec.d.ts +2 -0
- package/dist/platformAccessory.spec.d.ts.map +1 -0
- package/dist/platformAccessory.spec.js +126 -0
- package/dist/platformAccessory.spec.js.map +1 -0
- package/dist/pluginManager.spec.d.ts +2 -0
- package/dist/pluginManager.spec.d.ts.map +1 -0
- package/dist/pluginManager.spec.js +43 -0
- package/dist/pluginManager.spec.js.map +1 -0
- package/dist/server.d.ts +4 -13
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +43 -346
- package/dist/server.js.map +1 -1
- package/dist/server.spec.d.ts +2 -0
- package/dist/server.spec.d.ts.map +1 -0
- package/dist/server.spec.js +57 -0
- package/dist/server.spec.js.map +1 -0
- package/dist/user.spec.d.ts +2 -0
- package/dist/user.spec.d.ts.map +1 -0
- package/dist/user.spec.js +31 -0
- package/dist/user.spec.js.map +1 -0
- package/dist/util/mac.spec.d.ts +2 -0
- package/dist/util/mac.spec.d.ts.map +1 -0
- package/dist/util/mac.spec.js +36 -0
- package/dist/util/mac.spec.js.map +1 -0
- package/dist/version.spec.d.ts +2 -0
- package/dist/version.spec.d.ts.map +1 -0
- package/dist/version.spec.js +20 -0
- package/dist/version.spec.js.map +1 -0
- package/package.json +4 -4
- package/dist/matter/matterAccessoryCache.d.ts.map +0 -1
- package/dist/matter/matterAccessoryCache.js.map +0 -1
- package/dist/matter/matterBehaviors.d.ts +0 -194
- package/dist/matter/matterBehaviors.d.ts.map +0 -1
- package/dist/matter/matterBehaviors.js +0 -665
- package/dist/matter/matterBehaviors.js.map +0 -1
- package/dist/matter/matterConfigValidator.d.ts.map +0 -1
- package/dist/matter/matterConfigValidator.js.map +0 -1
- package/dist/matter/matterErrorHandler.d.ts +0 -106
- package/dist/matter/matterErrorHandler.d.ts.map +0 -1
- package/dist/matter/matterErrorHandler.js +0 -495
- package/dist/matter/matterErrorHandler.js.map +0 -1
- package/dist/matter/matterLogFormatter.d.ts.map +0 -1
- package/dist/matter/matterLogFormatter.js.map +0 -1
- package/dist/matter/matterNetworkMonitor.d.ts +0 -68
- package/dist/matter/matterNetworkMonitor.d.ts.map +0 -1
- package/dist/matter/matterNetworkMonitor.js +0 -249
- package/dist/matter/matterNetworkMonitor.js.map +0 -1
- package/dist/matter/matterServer.d.ts.map +0 -1
- package/dist/matter/matterServer.js.map +0 -1
- package/dist/matter/matterServerHelpers.d.ts.map +0 -1
- package/dist/matter/matterServerHelpers.js.map +0 -1
- package/dist/matter/matterSharedTypes.d.ts.map +0 -1
- package/dist/matter/matterSharedTypes.js.map +0 -1
- package/dist/matter/matterStorage.d.ts.map +0 -1
- package/dist/matter/matterTypes.d.ts.map +0 -1
- package/dist/matter/matterTypes.js.map +0 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type Helpers for Matter.js
|
|
3
|
+
*
|
|
4
|
+
* Provides proper TypeScript types for Matter.js APIs that don't have
|
|
5
|
+
* complete type definitions.
|
|
6
|
+
*/
|
|
7
|
+
import type { EndpointType } from '@matter/main';
|
|
8
|
+
import type { Behavior } from '@matter/node';
|
|
9
|
+
export type BehaviorType = Behavior.Type;
|
|
10
|
+
/**
|
|
11
|
+
* Extended EndpointType with .with() method
|
|
12
|
+
* Matter.js device types support adding behaviors via .with()
|
|
13
|
+
*/
|
|
14
|
+
export interface ExtendableEndpointType extends EndpointType {
|
|
15
|
+
with: (...behaviors: BehaviorType[]) => ExtendableEndpointType;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Extended BehaviorType with .with() method
|
|
19
|
+
* Matter.js behaviors support adding features via .with()
|
|
20
|
+
*/
|
|
21
|
+
export interface ExtendableBehaviorType extends BehaviorType {
|
|
22
|
+
with: (...features: string[]) => ExtendableBehaviorType;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Type guard to check if an EndpointType supports .with()
|
|
26
|
+
*/
|
|
27
|
+
export declare function isExtendableEndpointType(type: EndpointType): type is ExtendableEndpointType;
|
|
28
|
+
/**
|
|
29
|
+
* Type guard to check if a BehaviorType supports .with()
|
|
30
|
+
*/
|
|
31
|
+
export declare function isExtendableBehaviorType(type: BehaviorType): type is ExtendableBehaviorType;
|
|
32
|
+
/**
|
|
33
|
+
* Safely add behaviors to a device type
|
|
34
|
+
*/
|
|
35
|
+
export declare function withBehaviors(deviceType: EndpointType, behaviors: BehaviorType[]): EndpointType;
|
|
36
|
+
/**
|
|
37
|
+
* Safely add features to a behavior
|
|
38
|
+
*/
|
|
39
|
+
export declare function withFeatures(behavior: BehaviorType, features: string[]): BehaviorType;
|
|
40
|
+
/**
|
|
41
|
+
* Check if a device type matches a specific type by name
|
|
42
|
+
* Used because Matter.js doesn't provide proper type guards
|
|
43
|
+
*/
|
|
44
|
+
export declare function isDeviceType(deviceType: EndpointType, targetType: EndpointType): boolean;
|
|
45
|
+
//# sourceMappingURL=typeHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeHelpers.d.ts","sourceRoot":"","sources":["../../src/matter/typeHelpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAA;AAExC;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,YAAY,EAAE,KAAK,sBAAsB,CAAA;CAC/D;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,sBAAsB,CAAA;CACxD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,IAAI,sBAAsB,CAE3F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,IAAI,sBAAsB,CAE3F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,YAAY,CAU/F;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,YAAY,CAUrF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,GAAG,OAAO,CAWxF"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type Helpers for Matter.js
|
|
3
|
+
*
|
|
4
|
+
* Provides proper TypeScript types for Matter.js APIs that don't have
|
|
5
|
+
* complete type definitions.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Type guard to check if an EndpointType supports .with()
|
|
9
|
+
*/
|
|
10
|
+
export function isExtendableEndpointType(type) {
|
|
11
|
+
return 'with' in type && typeof type.with === 'function';
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Type guard to check if a BehaviorType supports .with()
|
|
15
|
+
*/
|
|
16
|
+
export function isExtendableBehaviorType(type) {
|
|
17
|
+
return 'with' in type && typeof type.with === 'function';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Safely add behaviors to a device type
|
|
21
|
+
*/
|
|
22
|
+
export function withBehaviors(deviceType, behaviors) {
|
|
23
|
+
if (behaviors.length === 0) {
|
|
24
|
+
return deviceType;
|
|
25
|
+
}
|
|
26
|
+
if (isExtendableEndpointType(deviceType)) {
|
|
27
|
+
return deviceType.with(...behaviors);
|
|
28
|
+
}
|
|
29
|
+
throw new Error('Device type does not support adding behaviors');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Safely add features to a behavior
|
|
33
|
+
*/
|
|
34
|
+
export function withFeatures(behavior, features) {
|
|
35
|
+
if (features.length === 0) {
|
|
36
|
+
return behavior;
|
|
37
|
+
}
|
|
38
|
+
if (isExtendableBehaviorType(behavior)) {
|
|
39
|
+
return behavior.with(...features);
|
|
40
|
+
}
|
|
41
|
+
throw new Error('Behavior does not support adding features');
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Check if a device type matches a specific type by name
|
|
45
|
+
* Used because Matter.js doesn't provide proper type guards
|
|
46
|
+
*/
|
|
47
|
+
export function isDeviceType(deviceType, targetType) {
|
|
48
|
+
// Direct reference comparison
|
|
49
|
+
if (deviceType === targetType) {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
// Check by name property (fallback for modified types)
|
|
53
|
+
const deviceTypeName = 'name' in deviceType ? deviceType.name : undefined;
|
|
54
|
+
const targetTypeName = 'name' in targetType ? targetType.name : undefined;
|
|
55
|
+
return deviceTypeName !== undefined && deviceTypeName === targetTypeName;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=typeHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeHelpers.js","sourceRoot":"","sources":["../../src/matter/typeHelpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAkB;IACzD,OAAO,MAAM,IAAI,IAAI,IAAI,OAAQ,IAAgC,CAAC,IAAI,KAAK,UAAU,CAAA;AACvF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAkB;IACzD,OAAO,MAAM,IAAI,IAAI,IAAI,OAAQ,IAAgC,CAAC,IAAI,KAAK,UAAU,CAAA;AACvF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,UAAwB,EAAE,SAAyB;IAC/E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,IAAI,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAsB,EAAE,QAAkB;IACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,UAAwB,EAAE,UAAwB;IAC7E,8BAA8B;IAC9B,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,uDAAuD;IACvD,MAAM,cAAc,GAAG,MAAM,IAAI,UAAU,CAAC,CAAC,CAAE,UAAgC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAChG,MAAM,cAAc,GAAG,MAAM,IAAI,UAAU,CAAC,CAAC,CAAE,UAAgC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAEhG,OAAO,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,cAAc,CAAA;AAC1E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeHelpers.spec.d.ts","sourceRoot":"","sources":["../../src/matter/typeHelpers.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { isDeviceType, isExtendableBehaviorType, isExtendableEndpointType, withBehaviors, withFeatures, } from './typeHelpers.js';
|
|
3
|
+
describe('typeHelpers', () => {
|
|
4
|
+
describe('isExtendableEndpointType', () => {
|
|
5
|
+
it('should return true for endpoint types with .with() method', () => {
|
|
6
|
+
const mockEndpoint = {
|
|
7
|
+
with: () => mockEndpoint,
|
|
8
|
+
};
|
|
9
|
+
expect(isExtendableEndpointType(mockEndpoint)).toBe(true);
|
|
10
|
+
});
|
|
11
|
+
it('should return false for endpoint types without .with() method', () => {
|
|
12
|
+
const mockEndpoint = {};
|
|
13
|
+
expect(isExtendableEndpointType(mockEndpoint)).toBe(false);
|
|
14
|
+
});
|
|
15
|
+
it('should return false when .with() is not a function', () => {
|
|
16
|
+
const mockEndpoint = {
|
|
17
|
+
with: 'not a function',
|
|
18
|
+
};
|
|
19
|
+
expect(isExtendableEndpointType(mockEndpoint)).toBe(false);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('isExtendableBehaviorType', () => {
|
|
23
|
+
it('should return true for behavior types with .with() method', () => {
|
|
24
|
+
const mockBehavior = {
|
|
25
|
+
with: () => mockBehavior,
|
|
26
|
+
};
|
|
27
|
+
expect(isExtendableBehaviorType(mockBehavior)).toBe(true);
|
|
28
|
+
});
|
|
29
|
+
it('should return false for behavior types without .with() method', () => {
|
|
30
|
+
const mockBehavior = {};
|
|
31
|
+
expect(isExtendableBehaviorType(mockBehavior)).toBe(false);
|
|
32
|
+
});
|
|
33
|
+
it('should return false when .with() is not a function', () => {
|
|
34
|
+
const mockBehavior = {
|
|
35
|
+
with: 'not a function',
|
|
36
|
+
};
|
|
37
|
+
expect(isExtendableBehaviorType(mockBehavior)).toBe(false);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
describe('withBehaviors', () => {
|
|
41
|
+
it('should return the same device type when no behaviors are provided', () => {
|
|
42
|
+
const mockDevice = {};
|
|
43
|
+
const result = withBehaviors(mockDevice, []);
|
|
44
|
+
expect(result).toBe(mockDevice);
|
|
45
|
+
});
|
|
46
|
+
it('should call .with() when device type is extendable', () => {
|
|
47
|
+
const mockBehavior1 = { id: 'behavior1' };
|
|
48
|
+
const mockBehavior2 = { id: 'behavior2' };
|
|
49
|
+
const extendedDevice = { name: 'ExtendedDevice' };
|
|
50
|
+
const mockDevice = {
|
|
51
|
+
with: (...behaviors) => {
|
|
52
|
+
expect(behaviors).toEqual([mockBehavior1, mockBehavior2]);
|
|
53
|
+
return extendedDevice;
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
const result = withBehaviors(mockDevice, [mockBehavior1, mockBehavior2]);
|
|
57
|
+
expect(result).toBe(extendedDevice);
|
|
58
|
+
});
|
|
59
|
+
it('should throw error when device type is not extendable', () => {
|
|
60
|
+
const mockDevice = {};
|
|
61
|
+
const mockBehavior = { id: 'behavior' };
|
|
62
|
+
expect(() => withBehaviors(mockDevice, [mockBehavior])).toThrow('Device type does not support adding behaviors');
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
describe('withFeatures', () => {
|
|
66
|
+
it('should return the same behavior when no features are provided', () => {
|
|
67
|
+
const mockBehavior = {};
|
|
68
|
+
const result = withFeatures(mockBehavior, []);
|
|
69
|
+
expect(result).toBe(mockBehavior);
|
|
70
|
+
});
|
|
71
|
+
it('should call .with() when behavior is extendable', () => {
|
|
72
|
+
const extendedBehavior = { features: ['Feature1', 'Feature2'] };
|
|
73
|
+
const mockBehavior = {
|
|
74
|
+
with: (...features) => {
|
|
75
|
+
expect(features).toEqual(['Feature1', 'Feature2']);
|
|
76
|
+
return extendedBehavior;
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
const result = withFeatures(mockBehavior, ['Feature1', 'Feature2']);
|
|
80
|
+
expect(result).toBe(extendedBehavior);
|
|
81
|
+
});
|
|
82
|
+
it('should throw error when behavior is not extendable', () => {
|
|
83
|
+
const mockBehavior = {};
|
|
84
|
+
expect(() => withFeatures(mockBehavior, ['Feature1'])).toThrow('Behavior does not support adding features');
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
describe('isDeviceType', () => {
|
|
88
|
+
it('should return true for direct reference comparison', () => {
|
|
89
|
+
const mockDevice = { name: 'TestDevice' };
|
|
90
|
+
expect(isDeviceType(mockDevice, mockDevice)).toBe(true);
|
|
91
|
+
});
|
|
92
|
+
it('should return true when device names match', () => {
|
|
93
|
+
const mockDevice1 = { name: 'TestDevice' };
|
|
94
|
+
const mockDevice2 = { name: 'TestDevice' };
|
|
95
|
+
expect(isDeviceType(mockDevice1, mockDevice2)).toBe(true);
|
|
96
|
+
});
|
|
97
|
+
it('should return false when device names differ', () => {
|
|
98
|
+
const mockDevice1 = { name: 'DeviceA' };
|
|
99
|
+
const mockDevice2 = { name: 'DeviceB' };
|
|
100
|
+
expect(isDeviceType(mockDevice1, mockDevice2)).toBe(false);
|
|
101
|
+
});
|
|
102
|
+
it('should return false when device type has no name', () => {
|
|
103
|
+
const mockDevice1 = {};
|
|
104
|
+
const mockDevice2 = { name: 'TestDevice' };
|
|
105
|
+
expect(isDeviceType(mockDevice1, mockDevice2)).toBe(false);
|
|
106
|
+
});
|
|
107
|
+
it('should return false when target type has no name', () => {
|
|
108
|
+
const mockDevice1 = { name: 'TestDevice' };
|
|
109
|
+
const mockDevice2 = {};
|
|
110
|
+
expect(isDeviceType(mockDevice1, mockDevice2)).toBe(false);
|
|
111
|
+
});
|
|
112
|
+
it('should return false when neither device has a name', () => {
|
|
113
|
+
const mockDevice1 = {};
|
|
114
|
+
const mockDevice2 = {};
|
|
115
|
+
expect(isDeviceType(mockDevice1, mockDevice2)).toBe(false);
|
|
116
|
+
});
|
|
117
|
+
it('should handle modified types with same name', () => {
|
|
118
|
+
const baseDevice = { name: 'OnOffLight' };
|
|
119
|
+
const modifiedDevice = {
|
|
120
|
+
name: 'OnOffLight',
|
|
121
|
+
with: () => modifiedDevice,
|
|
122
|
+
};
|
|
123
|
+
expect(isDeviceType(modifiedDevice, baseDevice)).toBe(true);
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
//# sourceMappingURL=typeHelpers.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeHelpers.spec.js","sourceRoot":"","sources":["../../src/matter/typeHelpers.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -416,7 +416,7 @@ export declare const deviceTypes: {
|
|
|
416
416
|
}, readonly [import("@matter/main").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<import("@matter/types").ClusterType.Of<{
|
|
417
417
|
readonly id: 513;
|
|
418
418
|
readonly name: "Thermostat";
|
|
419
|
-
readonly revision:
|
|
419
|
+
readonly revision: 9;
|
|
420
420
|
readonly features: {
|
|
421
421
|
readonly heating: import("@matter/types").BitFlag;
|
|
422
422
|
readonly cooling: import("@matter/types").BitFlag;
|
|
@@ -850,4 +850,4 @@ export interface WindowCoveringCluster {
|
|
|
850
850
|
* Type-safe cluster access for WindowCovering
|
|
851
851
|
*/
|
|
852
852
|
export declare function getWindowCoveringCluster(accessory: MatterAccessory): WindowCoveringCluster | undefined;
|
|
853
|
-
//# sourceMappingURL=
|
|
853
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/matter/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* This module provides types and interfaces for plugin developers
|
|
5
5
|
* to create Matter-compatible accessories.
|
|
6
6
|
*/
|
|
7
|
-
// Import Matter.js clusters and device types
|
|
8
7
|
import * as clusters from '@matter/main/clusters';
|
|
9
8
|
import * as devices from '@matter/main/devices';
|
|
10
9
|
/**
|
|
@@ -219,4 +218,4 @@ export async function updateEndpointState(endpoint, cluster, attributes) {
|
|
|
219
218
|
export function getWindowCoveringCluster(accessory) {
|
|
220
219
|
return accessory.clusters?.windowCovering;
|
|
221
220
|
}
|
|
222
|
-
//# sourceMappingURL=
|
|
221
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/matter/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformAccessory.spec.d.ts","sourceRoot":"","sources":["../src/platformAccessory.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { Accessory, RemoteController, Service, uuid, } from 'hap-nodejs';
|
|
2
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
3
|
+
import { PlatformAccessory } from './platformAccessory.js';
|
|
4
|
+
function createAccessory(name = 'TestAccessory', category) {
|
|
5
|
+
const accessoryUUID = uuid.generate(`test.uuid.${name}`);
|
|
6
|
+
const accessory = new PlatformAccessory(name, accessoryUUID, category);
|
|
7
|
+
accessory._associatedPlatform = 'TestPlatform';
|
|
8
|
+
accessory._associatedPlugin = 'TestPlugin';
|
|
9
|
+
accessory.context = {
|
|
10
|
+
test: 'context',
|
|
11
|
+
doing: 234,
|
|
12
|
+
};
|
|
13
|
+
return accessory;
|
|
14
|
+
}
|
|
15
|
+
describe('platformAccessory', () => {
|
|
16
|
+
describe('properties', () => {
|
|
17
|
+
it('should mirror displayName correctly', () => {
|
|
18
|
+
const accessory = createAccessory('TestName');
|
|
19
|
+
expect(accessory._associatedHAPAccessory.displayName).toBe(accessory.displayName);
|
|
20
|
+
expect(accessory.displayName).toBe('TestName');
|
|
21
|
+
});
|
|
22
|
+
it('should mirror UUID correctly', () => {
|
|
23
|
+
const accessory = createAccessory('TestName');
|
|
24
|
+
expect(accessory._associatedHAPAccessory.UUID).toBe(accessory.UUID);
|
|
25
|
+
expect(accessory.UUID).toBe(uuid.generate('test.uuid.TestName'));
|
|
26
|
+
});
|
|
27
|
+
it('should mirror category correctly', () => {
|
|
28
|
+
const accessory = createAccessory('TestName', 24 /* Categories.APPLE_TV */);
|
|
29
|
+
expect(accessory._associatedHAPAccessory.category).toBe(accessory.category);
|
|
30
|
+
expect(accessory.category).toBe(24 /* Categories.APPLE_TV */);
|
|
31
|
+
});
|
|
32
|
+
it('should mirror services correctly', () => {
|
|
33
|
+
const accessory = createAccessory('TestName');
|
|
34
|
+
expect(accessory._associatedHAPAccessory.services).toStrictEqual(accessory.services);
|
|
35
|
+
expect(accessory.services.length).toBe(1);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
describe('platformAccessory.prototype.updateDisplayName', () => {
|
|
39
|
+
it('should mirror displayName correctly', () => {
|
|
40
|
+
const accessory = createAccessory('TestName');
|
|
41
|
+
accessory.updateDisplayName('NewTestName');
|
|
42
|
+
expect(accessory._associatedHAPAccessory.displayName).toBe(accessory.displayName);
|
|
43
|
+
expect(accessory.displayName).toBe('NewTestName');
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('platformAccessory.prototype.addService', () => {
|
|
47
|
+
it('should forward add service', () => {
|
|
48
|
+
const accessory = createAccessory();
|
|
49
|
+
const service = new Service.Switch();
|
|
50
|
+
const spy = vi.spyOn(accessory._associatedHAPAccessory, 'addService');
|
|
51
|
+
expect(accessory.services.length).toBe(1); // AccessoryInformation service
|
|
52
|
+
expect(accessory.services.includes(service)).toBeFalsy();
|
|
53
|
+
accessory.addService(service);
|
|
54
|
+
expect(accessory.services.length).toBe(2); // ensure our reference is valid
|
|
55
|
+
expect(accessory.services.includes(service)).toBeTruthy();
|
|
56
|
+
expect(spy).toHaveBeenCalledWith(service); // ensure HAP got called
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
describe('platformAccessory.prototype.removeService', () => {
|
|
60
|
+
it('should forward remove service', () => {
|
|
61
|
+
const accessory = createAccessory();
|
|
62
|
+
const service = new Service.Switch();
|
|
63
|
+
const spy = vi.spyOn(accessory._associatedHAPAccessory, 'removeService');
|
|
64
|
+
accessory.removeService(service);
|
|
65
|
+
expect(spy).toHaveBeenCalledWith(service);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
describe('platformAccessory.prototype.getService', () => {
|
|
69
|
+
it('should retrieve AccessoryInformation service', () => {
|
|
70
|
+
const accessory = createAccessory();
|
|
71
|
+
const requested = Service.AccessoryInformation;
|
|
72
|
+
const spy = vi.spyOn(accessory._associatedHAPAccessory, 'getService');
|
|
73
|
+
const service = accessory.getService(requested);
|
|
74
|
+
expect(spy).toHaveBeenCalledWith(requested);
|
|
75
|
+
expect(service).toBeDefined();
|
|
76
|
+
expect(service.UUID).toBe(requested.UUID);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
describe('platformAccessory.prototype.getServiceById', () => {
|
|
80
|
+
it('should forward service retrieval by id', () => {
|
|
81
|
+
const accessory = createAccessory();
|
|
82
|
+
const spy = vi.spyOn(accessory._associatedHAPAccessory, 'getServiceById');
|
|
83
|
+
const result = accessory.getServiceById(Service.Switch, 'customSubType');
|
|
84
|
+
expect(result).toBeUndefined();
|
|
85
|
+
expect(spy).toHaveBeenCalledWith(Service.Switch, 'customSubType');
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
describe('platformAccessory.prototype.configureController', () => {
|
|
89
|
+
it('should forward configureController correctly', () => {
|
|
90
|
+
const accessory = createAccessory();
|
|
91
|
+
const spy = vi.spyOn(accessory._associatedHAPAccessory, 'configureController').mockImplementationOnce(() => {
|
|
92
|
+
// do nothing
|
|
93
|
+
});
|
|
94
|
+
const controller = new RemoteController();
|
|
95
|
+
accessory.configureController(controller);
|
|
96
|
+
expect(spy).toHaveBeenCalledWith(controller);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
describe('platformAccessory.serialize', () => {
|
|
100
|
+
it('should serialize accessory correctly', () => {
|
|
101
|
+
const accessory = createAccessory();
|
|
102
|
+
accessory.addService(Service.Lightbulb);
|
|
103
|
+
const spy = vi.spyOn(Accessory, 'serialize');
|
|
104
|
+
const json = PlatformAccessory.serialize(accessory);
|
|
105
|
+
expect(json.platform).toBe(accessory._associatedPlatform);
|
|
106
|
+
expect(json.plugin).toBe(accessory._associatedPlugin);
|
|
107
|
+
expect(json.context).toStrictEqual(accessory.context);
|
|
108
|
+
expect(spy).toHaveBeenCalledWith(accessory._associatedHAPAccessory);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
describe('platformAccessory.deserialize', () => {
|
|
112
|
+
it('should deserialize serialized accessory correctly', () => {
|
|
113
|
+
const accessory = createAccessory();
|
|
114
|
+
accessory.addService(Service.Lightbulb);
|
|
115
|
+
const json = PlatformAccessory.serialize(accessory);
|
|
116
|
+
const reconstructed = PlatformAccessory.deserialize(json);
|
|
117
|
+
expect(reconstructed._associatedPlugin).toBe(accessory._associatedPlugin);
|
|
118
|
+
expect(reconstructed._associatedPlatform).toBe(accessory._associatedPlatform);
|
|
119
|
+
expect(reconstructed.displayName).toBe(accessory.displayName);
|
|
120
|
+
expect(reconstructed.UUID).toBe(accessory.UUID);
|
|
121
|
+
expect(reconstructed.category).toBe(accessory.category);
|
|
122
|
+
expect(reconstructed.context).toBe(accessory.context);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
//# sourceMappingURL=platformAccessory.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformAccessory.spec.js","sourceRoot":"","sources":["../src/platformAccessory.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginManager.spec.d.ts","sourceRoot":"","sources":["../src/pluginManager.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { PluginManager } from './pluginManager.js';
|
|
3
|
+
describe('pluginManager', () => {
|
|
4
|
+
describe('pluginManager.isQualifiedPluginIdentifier', () => {
|
|
5
|
+
it('should match normal plugin names', () => {
|
|
6
|
+
expect(PluginManager.isQualifiedPluginIdentifier('homebridge-dummy-plugin')).toBeTruthy();
|
|
7
|
+
});
|
|
8
|
+
it('should match scoped plugin names', () => {
|
|
9
|
+
expect(PluginManager.isQualifiedPluginIdentifier('@organisation/homebridge-dummy-plugin')).toBeTruthy();
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
describe('pluginManager.extractPluginName', () => {
|
|
13
|
+
it('should extract normal plugin names', () => {
|
|
14
|
+
expect(PluginManager.extractPluginName('homebridge-dummy-plugin')).toBe('homebridge-dummy-plugin');
|
|
15
|
+
});
|
|
16
|
+
it('should extract scoped plugin names', () => {
|
|
17
|
+
expect(PluginManager.extractPluginName('@organisation/homebridge-dummy-plugin')).toBe('homebridge-dummy-plugin');
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
describe('pluginManager.extractPluginScope', () => {
|
|
21
|
+
it('should extract undefined for normal plugin names', () => {
|
|
22
|
+
expect(PluginManager.extractPluginScope('homebridge-dummy-plugin')).toBeUndefined();
|
|
23
|
+
});
|
|
24
|
+
it('should extract scope for scoped plugin names', () => {
|
|
25
|
+
expect(PluginManager.extractPluginScope('@organisation/homebridge-dummy-plugin')).toBe('@organisation');
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe('...Name', () => {
|
|
29
|
+
it('should extract accessory name correctly', () => {
|
|
30
|
+
const accessoryId = 'homebridge-example-accessory.example';
|
|
31
|
+
expect(PluginManager.getAccessoryName(accessoryId)).toBe('example');
|
|
32
|
+
});
|
|
33
|
+
it('should extract platform name correctly', () => {
|
|
34
|
+
const accessoryId = 'homebridge-example-platform.example';
|
|
35
|
+
expect(PluginManager.getPlatformName(accessoryId)).toBe('example');
|
|
36
|
+
});
|
|
37
|
+
it('should extract plugin name correctly', () => {
|
|
38
|
+
const accessoryId = 'homebridge-example-plugin.example';
|
|
39
|
+
expect(PluginManager.getPluginIdentifier(accessoryId)).toBe('homebridge-example-plugin');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=pluginManager.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginManager.spec.js","sourceRoot":"","sources":["../src/pluginManager.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACzD,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC,yBAAyB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QAC3F,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC,uCAAuC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QACzG,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QACpG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,uCAAuC,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAClH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QACrF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,uCAAuC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACzG,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,WAAW,GAAG,sCAAsC,CAAA;YAC1D,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,WAAW,GAAG,qCAAqC,CAAA;YACzD,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,WAAW,GAAG,mCAAmC,CAAA;YACvD,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;QAC1F,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/server.d.ts
CHANGED
|
@@ -32,8 +32,7 @@ export declare class Server {
|
|
|
32
32
|
private readonly externalPortService;
|
|
33
33
|
private readonly config;
|
|
34
34
|
private readonly childBridges;
|
|
35
|
-
private
|
|
36
|
-
private readonly externalMatterServers;
|
|
35
|
+
private matterManager?;
|
|
37
36
|
private serverStatus;
|
|
38
37
|
constructor(options?: HomebridgeOptions);
|
|
39
38
|
/**
|
|
@@ -42,28 +41,20 @@ export declare class Server {
|
|
|
42
41
|
*/
|
|
43
42
|
private setServerStatus;
|
|
44
43
|
start(): Promise<void>;
|
|
45
|
-
/**
|
|
46
|
-
* Initialize Matter server for main bridge if enabled
|
|
47
|
-
*/
|
|
48
|
-
private initializeMatterServer;
|
|
49
44
|
teardown(): Promise<void>;
|
|
50
45
|
private publishBridge;
|
|
51
46
|
private handlePublishExternalAccessories;
|
|
52
47
|
/**
|
|
53
|
-
* Handle external Matter accessories -
|
|
54
|
-
* This is required for devices like Robotic Vacuum Cleaners that Apple Home
|
|
55
|
-
* requires to be on their own bridge.
|
|
48
|
+
* Handle external Matter accessories - delegates to MatterBridgeManager
|
|
56
49
|
*/
|
|
57
50
|
private handlePublishExternalMatterAccessories;
|
|
58
51
|
private handleRegisterPlatformAccessories;
|
|
59
52
|
private handleUnregisterPlatformAccessories;
|
|
60
53
|
private handleRegisterMatterPlatformAccessories;
|
|
54
|
+
private handleUpdateMatterPlatformAccessories;
|
|
61
55
|
private handleUnregisterMatterPlatformAccessories;
|
|
56
|
+
private handleUnregisterExternalMatterAccessories;
|
|
62
57
|
private handleUpdateMatterAccessoryState;
|
|
63
|
-
/**
|
|
64
|
-
* Restore cached Matter accessories (matching HAP pattern)
|
|
65
|
-
*/
|
|
66
|
-
private restoreCachedMatterAccessories;
|
|
67
58
|
private static loadConfig;
|
|
68
59
|
private loadAccessories;
|
|
69
60
|
private loadPlatforms;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAoCA,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;IAqBf,OAAO,CAAC,OAAO;IApBjB,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;IAIzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6C;IAI1E,OAAO,CAAC,aAAa,CAAC,CAAqB;IAG3C,OAAO,CAAC,YAAY,CAAqC;gBAG/C,OAAO,GAAE,iBAAsB;IAqFzC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAgBV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAStC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gCAAgC;IAMxC;;OAEG;IACH,OAAO,CAAC,sCAAsC;IAQ9C,OAAO,CAAC,iCAAiC;IAKzC,OAAO,CAAC,mCAAmC;IAK3C,OAAO,CAAC,uCAAuC;IAM/C,OAAO,CAAC,qCAAqC;IAM7C,OAAO,CAAC,yCAAyC;IAMjD,OAAO,CAAC,yCAAyC;IAMjD,OAAO,CAAC,gCAAgC;IAMxC,OAAO,CAAC,MAAM,CAAC,UAAU;IAmGzB,OAAO,CAAC,eAAe;IAoGvB,OAAO,CAAC,aAAa;IA4FrB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyCjC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAuClC,OAAO,CAAC,cAAc;CAqBvB"}
|