homebridge 2.0.0-beta.44 → 2.0.0-beta.45
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 +3 -365
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +13 -85
- package/dist/api.js.map +1 -1
- package/dist/bridgeService.d.ts +0 -25
- package/dist/bridgeService.d.ts.map +1 -1
- package/dist/bridgeService.js +32 -85
- package/dist/bridgeService.js.map +1 -1
- package/dist/childBridgeFork.d.ts +12 -15
- package/dist/childBridgeFork.d.ts.map +1 -1
- package/dist/childBridgeFork.js +126 -80
- package/dist/childBridgeFork.js.map +1 -1
- package/dist/childBridgeService.d.ts +21 -105
- package/dist/childBridgeService.d.ts.map +1 -1
- package/dist/childBridgeService.js +57 -134
- package/dist/childBridgeService.js.map +1 -1
- package/dist/cli.js +0 -2
- package/dist/cli.js.map +1 -1
- package/dist/externalPortService.d.ts +0 -21
- package/dist/externalPortService.d.ts.map +1 -1
- package/dist/externalPortService.js +0 -28
- package/dist/externalPortService.js.map +1 -1
- package/dist/index.d.ts +0 -112
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -44
- package/dist/index.js.map +1 -1
- package/dist/ipcService.d.ts +23 -15
- package/dist/ipcService.d.ts.map +1 -1
- package/dist/ipcService.js +6 -12
- package/dist/ipcService.js.map +1 -1
- package/dist/logger.d.ts +0 -46
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +13 -57
- package/dist/logger.js.map +1 -1
- package/dist/matter/BaseMatterManager.d.ts +19 -0
- package/dist/matter/BaseMatterManager.d.ts.map +1 -0
- package/dist/matter/BaseMatterManager.js +170 -0
- package/dist/matter/BaseMatterManager.js.map +1 -0
- package/dist/matter/ChildBridgeMatterManager.d.ts +5 -69
- package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -1
- package/dist/matter/ChildBridgeMatterManager.js +36 -227
- package/dist/matter/ChildBridgeMatterManager.js.map +1 -1
- package/dist/matter/ClusterCommandMapper.d.ts +5 -0
- package/dist/matter/ClusterCommandMapper.d.ts.map +1 -0
- package/dist/matter/ClusterCommandMapper.js +203 -0
- package/dist/matter/ClusterCommandMapper.js.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +0 -27
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -1
- package/dist/matter/ExternalMatterAccessoryPublisher.js +2 -27
- package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -1
- package/dist/matter/MatterAPIImpl.d.ts +0 -68
- package/dist/matter/MatterAPIImpl.d.ts.map +1 -1
- package/dist/matter/MatterAPIImpl.js +6 -106
- package/dist/matter/MatterAPIImpl.js.map +1 -1
- package/dist/matter/MatterBridgeManager.d.ts +9 -60
- package/dist/matter/MatterBridgeManager.d.ts.map +1 -1
- package/dist/matter/MatterBridgeManager.js +139 -215
- package/dist/matter/MatterBridgeManager.js.map +1 -1
- package/dist/matter/MatterConfigCollector.d.ts +1 -20
- package/dist/matter/MatterConfigCollector.d.ts.map +1 -1
- package/dist/matter/MatterConfigCollector.js +14 -27
- package/dist/matter/MatterConfigCollector.js.map +1 -1
- package/dist/matter/accessoryCache.d.ts +0 -48
- package/dist/matter/accessoryCache.d.ts.map +1 -1
- package/dist/matter/accessoryCache.js +1 -60
- package/dist/matter/accessoryCache.js.map +1 -1
- package/dist/matter/behaviors/AirQualityBehavior.d.ts +0 -42
- package/dist/matter/behaviors/AirQualityBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/AirQualityBehavior.js +0 -44
- package/dist/matter/behaviors/AirQualityBehavior.js.map +1 -1
- package/dist/matter/behaviors/BehaviorRegistry.d.ts +4 -42
- package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -1
- package/dist/matter/behaviors/BehaviorRegistry.js +12 -42
- package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -1
- package/dist/matter/behaviors/ColorControlBehavior.d.ts +0 -49
- package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ColorControlBehavior.js +0 -90
- package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts +0 -91
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js +0 -96
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js.map +1 -1
- package/dist/matter/behaviors/DoorLockBehavior.d.ts +0 -11
- package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/DoorLockBehavior.js +0 -25
- package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -1
- package/dist/matter/behaviors/FanControlBehavior.d.ts +0 -11
- package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/FanControlBehavior.js +0 -25
- package/dist/matter/behaviors/FanControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/IdentifyBehavior.d.ts +0 -11
- package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/IdentifyBehavior.js +0 -17
- package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -1
- package/dist/matter/behaviors/LevelControlBehavior.d.ts +0 -20
- package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/LevelControlBehavior.js +0 -52
- package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/OnOffBehavior.d.ts +0 -17
- package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/OnOffBehavior.js +0 -38
- package/dist/matter/behaviors/OnOffBehavior.js.map +1 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +0 -11
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.js +0 -17
- package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +0 -11
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js +0 -29
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +0 -11
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.js +0 -17
- package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +0 -11
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.js +0 -23
- package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -1
- package/dist/matter/behaviors/ThermostatBehavior.d.ts +0 -11
- package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ThermostatBehavior.js +0 -39
- package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +0 -17
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.js +0 -56
- package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -1
- package/dist/matter/behaviors/index.d.ts +0 -5
- package/dist/matter/behaviors/index.d.ts.map +1 -1
- package/dist/matter/behaviors/index.js +0 -5
- package/dist/matter/behaviors/index.js.map +1 -1
- package/dist/matter/configValidator.d.ts +0 -55
- package/dist/matter/configValidator.d.ts.map +1 -1
- package/dist/matter/configValidator.js +1 -68
- package/dist/matter/configValidator.js.map +1 -1
- package/dist/matter/errorHandler.d.ts +0 -22
- package/dist/matter/errorHandler.d.ts.map +1 -1
- package/dist/matter/errorHandler.js +0 -32
- package/dist/matter/errorHandler.js.map +1 -1
- package/dist/matter/errors.d.ts +0 -132
- package/dist/matter/errors.d.ts.map +1 -1
- package/dist/matter/errors.js +0 -132
- package/dist/matter/errors.js.map +1 -1
- package/dist/matter/index.d.ts +0 -30
- package/dist/matter/index.d.ts.map +1 -1
- package/dist/matter/index.js +0 -13
- package/dist/matter/index.js.map +1 -1
- package/dist/matter/logFormatter.d.ts +0 -17
- package/dist/matter/logFormatter.d.ts.map +1 -1
- package/dist/matter/logFormatter.js +5 -63
- package/dist/matter/logFormatter.js.map +1 -1
- package/dist/matter/server.d.ts +12 -236
- package/dist/matter/server.d.ts.map +1 -1
- package/dist/matter/server.js +177 -488
- package/dist/matter/server.js.map +1 -1
- package/dist/matter/serverHelpers.d.ts +0 -56
- package/dist/matter/serverHelpers.d.ts.map +1 -1
- package/dist/matter/serverHelpers.js +1 -66
- package/dist/matter/serverHelpers.js.map +1 -1
- package/dist/matter/sharedTypes.d.ts +0 -83
- package/dist/matter/sharedTypes.d.ts.map +1 -1
- package/dist/matter/sharedTypes.js +0 -26
- package/dist/matter/sharedTypes.js.map +1 -1
- package/dist/matter/storage.d.ts +0 -90
- package/dist/matter/storage.d.ts.map +1 -1
- package/dist/matter/storage.js +2 -130
- package/dist/matter/storage.js.map +1 -1
- package/dist/matter/typeHelpers.d.ts +0 -30
- package/dist/matter/typeHelpers.d.ts.map +1 -1
- package/dist/matter/typeHelpers.js +0 -24
- package/dist/matter/typeHelpers.js.map +1 -1
- package/dist/matter/types.d.ts +0 -273
- package/dist/matter/types.d.ts.map +1 -1
- package/dist/matter/types.js +0 -83
- package/dist/matter/types.js.map +1 -1
- package/dist/platformAccessory.d.ts +0 -15
- package/dist/platformAccessory.d.ts.map +1 -1
- package/dist/platformAccessory.js +6 -32
- package/dist/platformAccessory.js.map +1 -1
- package/dist/plugin.d.ts +0 -3
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +6 -29
- package/dist/plugin.js.map +1 -1
- package/dist/pluginManager.d.ts +0 -22
- package/dist/pluginManager.d.ts.map +1 -1
- package/dist/pluginManager.js +18 -41
- package/dist/pluginManager.js.map +1 -1
- package/dist/server.d.ts +9 -29
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +304 -157
- package/dist/server.js.map +1 -1
- package/dist/user.d.ts +0 -3
- package/dist/user.d.ts.map +1 -1
- package/dist/user.js +2 -5
- package/dist/user.js.map +1 -1
- package/dist/util/mac.js +0 -1
- package/dist/util/mac.js.map +1 -1
- package/package.json +4 -4
- package/dist/api.spec.d.ts +0 -2
- package/dist/api.spec.d.ts.map +0 -1
- package/dist/api.spec.js +0 -413
- package/dist/api.spec.js.map +0 -1
- package/dist/logger.spec.d.ts +0 -2
- package/dist/logger.spec.d.ts.map +0 -1
- package/dist/logger.spec.js +0 -95
- package/dist/logger.spec.js.map +0 -1
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +0 -2
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +0 -1
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +0 -293
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +0 -1
- package/dist/matter/accessoryCache.spec.d.ts +0 -2
- package/dist/matter/accessoryCache.spec.d.ts.map +0 -1
- package/dist/matter/accessoryCache.spec.js +0 -452
- package/dist/matter/accessoryCache.spec.js.map +0 -1
- package/dist/matter/behaviors/AirQualityBehavior.spec.d.ts +0 -5
- package/dist/matter/behaviors/AirQualityBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/AirQualityBehavior.spec.js +0 -46
- package/dist/matter/behaviors/AirQualityBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +0 -2
- package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/BehaviorRegistry.spec.js +0 -307
- package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +0 -1
- package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/ColorControlBehavior.spec.js +0 -29
- package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.d.ts +0 -5
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.js +0 -95
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/DoorLockBehavior.spec.js +0 -120
- package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/FanControlBehavior.spec.js +0 -23
- package/dist/matter/behaviors/FanControlBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/IdentifyBehavior.spec.js +0 -64
- package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/LevelControlBehavior.spec.js +0 -145
- package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/OnOffBehavior.spec.js +0 -128
- package/dist/matter/behaviors/OnOffBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +0 -57
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +0 -55
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +0 -57
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +0 -53
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/ThermostatBehavior.spec.js +0 -23
- package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +0 -27
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +0 -1
- package/dist/matter/configValidator.spec.d.ts +0 -2
- package/dist/matter/configValidator.spec.d.ts.map +0 -1
- package/dist/matter/configValidator.spec.js +0 -390
- package/dist/matter/configValidator.spec.js.map +0 -1
- package/dist/matter/errorHandler.spec.d.ts +0 -2
- package/dist/matter/errorHandler.spec.d.ts.map +0 -1
- package/dist/matter/errorHandler.spec.js +0 -159
- package/dist/matter/errorHandler.spec.js.map +0 -1
- package/dist/matter/logFormatter.spec.d.ts +0 -2
- package/dist/matter/logFormatter.spec.d.ts.map +0 -1
- package/dist/matter/logFormatter.spec.js +0 -252
- package/dist/matter/logFormatter.spec.js.map +0 -1
- package/dist/matter/serverHelpers.spec.d.ts +0 -2
- package/dist/matter/serverHelpers.spec.d.ts.map +0 -1
- package/dist/matter/serverHelpers.spec.js +0 -527
- package/dist/matter/serverHelpers.spec.js.map +0 -1
- package/dist/matter/storage.spec.d.ts +0 -2
- package/dist/matter/storage.spec.d.ts.map +0 -1
- package/dist/matter/storage.spec.js +0 -570
- package/dist/matter/storage.spec.js.map +0 -1
- package/dist/matter/typeHelpers.spec.d.ts +0 -2
- package/dist/matter/typeHelpers.spec.d.ts.map +0 -1
- package/dist/matter/typeHelpers.spec.js +0 -127
- package/dist/matter/typeHelpers.spec.js.map +0 -1
- package/dist/platformAccessory.spec.d.ts +0 -2
- package/dist/platformAccessory.spec.d.ts.map +0 -1
- package/dist/platformAccessory.spec.js +0 -126
- package/dist/platformAccessory.spec.js.map +0 -1
- package/dist/pluginManager.spec.d.ts +0 -2
- package/dist/pluginManager.spec.d.ts.map +0 -1
- package/dist/pluginManager.spec.js +0 -43
- package/dist/pluginManager.spec.js.map +0 -1
- package/dist/server.spec.d.ts +0 -2
- package/dist/server.spec.d.ts.map +0 -1
- package/dist/server.spec.js +0 -57
- package/dist/server.spec.js.map +0 -1
- package/dist/user.spec.d.ts +0 -2
- package/dist/user.spec.d.ts.map +0 -1
- package/dist/user.spec.js +0 -31
- package/dist/user.spec.js.map +0 -1
- package/dist/util/mac.spec.d.ts +0 -2
- package/dist/util/mac.spec.d.ts.map +0 -1
- package/dist/util/mac.spec.js +0 -36
- package/dist/util/mac.spec.js.map +0 -1
- package/dist/version.spec.d.ts +0 -2
- package/dist/version.spec.d.ts.map +0 -1
- package/dist/version.spec.js +0 -20
- package/dist/version.spec.js.map +0 -1
|
@@ -1,127 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typeHelpers.spec.js","sourceRoot":"","sources":["../../src/matter/typeHelpers.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platformAccessory.spec.d.ts","sourceRoot":"","sources":["../src/platformAccessory.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,126 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platformAccessory.spec.js","sourceRoot":"","sources":["../src/platformAccessory.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pluginManager.spec.d.ts","sourceRoot":"","sources":["../src/pluginManager.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,43 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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.spec.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.spec.d.ts","sourceRoot":"","sources":["../src/server.spec.ts"],"names":[],"mappings":""}
|
package/dist/server.spec.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import path, { dirname } from 'node:path';
|
|
2
|
-
import { fileURLToPath } from 'node:url';
|
|
3
|
-
import fs from 'fs-extra';
|
|
4
|
-
import { HAPStorage } from 'hap-nodejs';
|
|
5
|
-
import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
6
|
-
import { Server } from './server.js';
|
|
7
|
-
import { User } from './user.js';
|
|
8
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
-
const __dirname = dirname(__filename);
|
|
10
|
-
describe('server', () => {
|
|
11
|
-
const homebridgeStorageFolder = path.resolve(__dirname, '../mock');
|
|
12
|
-
const configPath = path.resolve(homebridgeStorageFolder, 'config.json');
|
|
13
|
-
let consoleErrorSpy;
|
|
14
|
-
let consoleLogSpy;
|
|
15
|
-
const mockConfig = {
|
|
16
|
-
bridge: {
|
|
17
|
-
username: 'CC:22:3D:E3:CE:30',
|
|
18
|
-
pin: '031-45-154',
|
|
19
|
-
name: 'Homebridge',
|
|
20
|
-
advertiser: 'ciao',
|
|
21
|
-
},
|
|
22
|
-
accessories: [],
|
|
23
|
-
platforms: [],
|
|
24
|
-
};
|
|
25
|
-
beforeAll(async () => {
|
|
26
|
-
consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
27
|
-
consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
28
|
-
await fs.ensureDir(homebridgeStorageFolder);
|
|
29
|
-
await fs.writeJson(configPath, mockConfig);
|
|
30
|
-
User.setStoragePath(homebridgeStorageFolder);
|
|
31
|
-
HAPStorage.setCustomStoragePath(User.persistPath());
|
|
32
|
-
});
|
|
33
|
-
beforeEach(() => {
|
|
34
|
-
vi.resetAllMocks();
|
|
35
|
-
});
|
|
36
|
-
afterAll(async () => {
|
|
37
|
-
await fs.remove(homebridgeStorageFolder);
|
|
38
|
-
consoleErrorSpy.mockRestore();
|
|
39
|
-
consoleLogSpy.mockRestore();
|
|
40
|
-
});
|
|
41
|
-
it('creates an instance of the server without errors', async () => {
|
|
42
|
-
const server = new Server({
|
|
43
|
-
customStoragePath: homebridgeStorageFolder,
|
|
44
|
-
hideQRCode: true,
|
|
45
|
-
});
|
|
46
|
-
expect(server).toBeInstanceOf(Server);
|
|
47
|
-
});
|
|
48
|
-
it('starts without errors', async () => {
|
|
49
|
-
const server = new Server({
|
|
50
|
-
customStoragePath: homebridgeStorageFolder,
|
|
51
|
-
hideQRCode: true,
|
|
52
|
-
});
|
|
53
|
-
await server.start();
|
|
54
|
-
expect(server).toBeInstanceOf(Server);
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
//# sourceMappingURL=server.spec.js.map
|
package/dist/server.spec.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.spec.js","sourceRoot":"","sources":["../src/server.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/user.spec.d.ts
DELETED
package/dist/user.spec.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.spec.d.ts","sourceRoot":"","sources":["../src/user.spec.ts"],"names":[],"mappings":""}
|
package/dist/user.spec.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { basename } from 'node:path';
|
|
2
|
-
import { describe, expect, it } from 'vitest';
|
|
3
|
-
import { User } from './user.js';
|
|
4
|
-
describe('user', () => {
|
|
5
|
-
describe('user.storagePath', () => {
|
|
6
|
-
it('should have valid default path', () => {
|
|
7
|
-
expect(basename(User.storagePath())).toEqual('.homebridge');
|
|
8
|
-
});
|
|
9
|
-
});
|
|
10
|
-
describe('user.cachedAccessoryPath', () => {
|
|
11
|
-
it('should have valid default path', () => {
|
|
12
|
-
expect(basename(User.cachedAccessoryPath())).toEqual('accessories');
|
|
13
|
-
});
|
|
14
|
-
});
|
|
15
|
-
describe('user.persistPath', () => {
|
|
16
|
-
it('should have valid default path', () => {
|
|
17
|
-
expect(basename(User.persistPath())).toEqual('persist');
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
describe('user.configPath', () => {
|
|
21
|
-
it('should have valid default path', () => {
|
|
22
|
-
expect(basename(User.configPath())).toEqual('config.json');
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
describe('user.setStoragePath', () => {
|
|
26
|
-
it('should fail to be overwritten after paths were already accessed', () => {
|
|
27
|
-
expect(() => User.setStoragePath('otherDir')).toThrow(Error);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
//# sourceMappingURL=user.spec.js.map
|
package/dist/user.spec.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.spec.js","sourceRoot":"","sources":["../src/user.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/util/mac.spec.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mac.spec.d.ts","sourceRoot":"","sources":["../../src/util/mac.spec.ts"],"names":[],"mappings":""}
|
package/dist/util/mac.spec.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { randomBytes } from 'node:crypto';
|
|
2
|
-
import { describe, expect, it } from 'vitest';
|
|
3
|
-
import { generate, validMacAddress } from './mac.js';
|
|
4
|
-
describe('mac', () => {
|
|
5
|
-
describe('validMacAddress', () => {
|
|
6
|
-
it('should verify a valid mac address', () => {
|
|
7
|
-
expect(validMacAddress('61:67:0F:6E:B0:48')).toBeTruthy();
|
|
8
|
-
});
|
|
9
|
-
it('should reject a lower case valid mac address', () => {
|
|
10
|
-
const macAddress = '0E:80:9C:B4:E4:C5';
|
|
11
|
-
expect(validMacAddress(macAddress)).toBeTruthy();
|
|
12
|
-
expect(validMacAddress(macAddress.toLowerCase())).toBeFalsy();
|
|
13
|
-
});
|
|
14
|
-
it('should reject too short mac address', () => {
|
|
15
|
-
expect(validMacAddress('25:22:04:2B:3A')).toBeFalsy();
|
|
16
|
-
});
|
|
17
|
-
it('should reject too long mac address', () => {
|
|
18
|
-
expect(validMacAddress('7F:9A:58:0E:87:23:AA')).toBeFalsy();
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
describe('generate', () => {
|
|
22
|
-
it('should generate a valid mac address', () => {
|
|
23
|
-
const seed = randomBytes(4);
|
|
24
|
-
const generated = generate(randomBytes(4));
|
|
25
|
-
try {
|
|
26
|
-
expect(validMacAddress(generated)).toBeTruthy();
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
// eslint-disable-next-line no-console
|
|
30
|
-
console.log(`Invalid mac address generated '${generated}' for seed '${seed.toString('hex')}'`);
|
|
31
|
-
throw error;
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
//# sourceMappingURL=mac.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mac.spec.js","sourceRoot":"","sources":["../../src/util/mac.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAEpD,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACnB,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QAC3D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,UAAU,GAAG,mBAAmB,CAAA;YACtC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;YAChD,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;QAC/D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;YAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1C,IAAI,CAAC;gBACH,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;YACjD,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,kCAAkC,SAAS,eAAe,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC9F,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/version.spec.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version.spec.d.ts","sourceRoot":"","sources":["../src/version.spec.ts"],"names":[],"mappings":""}
|
package/dist/version.spec.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { resolve } from 'node:path';
|
|
2
|
-
import { readJsonSync } from 'fs-extra';
|
|
3
|
-
import { describe, expect, it } from 'vitest';
|
|
4
|
-
import getVersion, { getRequiredNodeVersion } from './version.js';
|
|
5
|
-
const realPackageJson = readJsonSync(resolve(__dirname, '../package.json'));
|
|
6
|
-
describe('version', () => {
|
|
7
|
-
describe('getVersion', () => {
|
|
8
|
-
it('should read correct version from package.json', () => {
|
|
9
|
-
const version = getVersion();
|
|
10
|
-
expect(version).toBe(realPackageJson.version);
|
|
11
|
-
});
|
|
12
|
-
});
|
|
13
|
-
describe('getRequiredNodeVersion', () => {
|
|
14
|
-
it('should read correct node version from package.json', () => {
|
|
15
|
-
const version = getRequiredNodeVersion();
|
|
16
|
-
expect(version).toBe(realPackageJson.engines.node);
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
//# sourceMappingURL=version.spec.js.map
|
package/dist/version.spec.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version.spec.js","sourceRoot":"","sources":["../src/version.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,UAAU,EAAE,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAEjE,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAA;AAE3E,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;YAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAA;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|