homebridge 2.0.0-beta.4 → 2.0.0-beta.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -17
- package/bin/homebridge.js +22 -0
- package/config-sample.json +3 -3
- package/dist/api.d.ts +499 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +223 -0
- package/dist/api.js.map +1 -0
- 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/{lib → dist}/bridgeService.d.ts +19 -10
- package/dist/bridgeService.d.ts.map +1 -0
- package/{lib → dist}/bridgeService.js +85 -117
- package/dist/bridgeService.js.map +1 -0
- package/{lib → dist}/childBridgeFork.d.ts +11 -5
- package/dist/childBridgeFork.d.ts.map +1 -0
- package/{lib → dist}/childBridgeFork.js +93 -44
- package/dist/childBridgeFork.js.map +1 -0
- package/{lib → dist}/childBridgeService.d.ts +37 -7
- package/dist/childBridgeService.d.ts.map +1 -0
- package/{lib → dist}/childBridgeService.js +127 -69
- package/dist/childBridgeService.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +90 -0
- package/dist/cli.js.map +1 -0
- package/dist/externalPortService.d.ts +47 -0
- package/dist/externalPortService.d.ts.map +1 -0
- package/dist/externalPortService.js +105 -0
- package/dist/externalPortService.js.map +1 -0
- package/dist/index.d.ts +141 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/ipcService.d.ts +48 -0
- package/dist/ipcService.d.ts.map +1 -0
- package/{lib → dist}/ipcService.js +12 -14
- package/dist/ipcService.js.map +1 -0
- package/{lib → dist}/logger.d.ts +12 -6
- package/dist/logger.d.ts.map +1 -0
- package/{lib → dist}/logger.js +27 -28
- package/dist/logger.js.map +1 -0
- package/dist/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 +399 -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/MatterAPIImpl.d.ts +504 -0
- 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 +87 -0
- package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
- package/dist/matter/MatterBridgeManager.js +413 -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/accessoryCache.d.ts +105 -0
- package/dist/matter/accessoryCache.d.ts.map +1 -0
- package/dist/matter/accessoryCache.js +214 -0
- 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 +63 -0
- package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ColorControlBehavior.js +223 -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 +20 -0
- package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/DoorLockBehavior.js +71 -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 +120 -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 +71 -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 +20 -0
- package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/IdentifyBehavior.js +41 -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 +33 -0
- package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/LevelControlBehavior.js +138 -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 +145 -0
- package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/OnOffBehavior.d.ts +27 -0
- package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/OnOffBehavior.js +95 -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 +128 -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 +41 -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 +57 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +22 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js +86 -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 +41 -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 +57 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +21 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.js +61 -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 +53 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +1 -0
- package/dist/matter/behaviors/ThermostatBehavior.d.ts +22 -0
- package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ThermostatBehavior.js +127 -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 +31 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.js +158 -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/configValidator.d.ts +81 -0
- package/dist/matter/configValidator.d.ts.map +1 -0
- package/dist/matter/configValidator.js +240 -0
- 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/errors.d.ts +178 -0
- package/dist/matter/errors.d.ts.map +1 -0
- package/dist/matter/errors.js +200 -0
- package/dist/matter/errors.js.map +1 -0
- package/dist/matter/index.d.ts +127 -0
- package/dist/matter/index.d.ts.map +1 -0
- package/dist/matter/index.js +23 -0
- package/dist/matter/index.js.map +1 -0
- package/dist/matter/logFormatter.d.ts +19 -0
- package/dist/matter/logFormatter.d.ts.map +1 -0
- package/dist/matter/logFormatter.js +158 -0
- 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 +336 -0
- package/dist/matter/server.d.ts.map +1 -0
- package/dist/matter/server.js +1810 -0
- package/dist/matter/server.js.map +1 -0
- package/dist/matter/serverHelpers.d.ts +81 -0
- package/dist/matter/serverHelpers.d.ts.map +1 -0
- package/dist/matter/serverHelpers.js +326 -0
- 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/sharedTypes.d.ts +164 -0
- package/dist/matter/sharedTypes.d.ts.map +1 -0
- package/dist/matter/sharedTypes.js +46 -0
- package/dist/matter/sharedTypes.js.map +1 -0
- package/dist/matter/storage.d.ts +135 -0
- package/dist/matter/storage.d.ts.map +1 -0
- package/dist/matter/storage.js +424 -0
- package/dist/matter/storage.js.map +1 -0
- 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/types.d.ts +826 -0
- package/dist/matter/types.d.ts.map +1 -0
- package/dist/matter/types.js +204 -0
- package/dist/matter/types.js.map +1 -0
- package/{lib → dist}/platformAccessory.d.ts +8 -6
- package/dist/platformAccessory.d.ts.map +1 -0
- package/{lib → dist}/platformAccessory.js +19 -16
- package/dist/platformAccessory.js.map +1 -0
- package/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/{lib → dist}/plugin.d.ts +2 -3
- package/dist/plugin.d.ts.map +1 -0
- package/{lib → dist}/plugin.js +39 -51
- package/dist/plugin.js.map +1 -0
- package/{lib → dist}/pluginManager.d.ts +3 -3
- package/dist/pluginManager.d.ts.map +1 -0
- package/{lib → dist}/pluginManager.js +76 -81
- package/dist/pluginManager.js.map +1 -0
- package/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/{lib → dist}/server.d.ts +14 -1
- package/dist/server.d.ts.map +1 -0
- package/{lib → dist}/server.js +193 -123
- package/dist/server.js.map +1 -0
- 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/{lib → dist}/storageService.d.ts.map +1 -1
- package/dist/storageService.js +41 -0
- package/dist/storageService.js.map +1 -0
- package/{lib → dist}/user.d.ts +1 -0
- package/dist/user.d.ts.map +1 -0
- package/dist/user.js +32 -0
- package/dist/user.js.map +1 -0
- package/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/{lib → dist}/util/mac.d.ts +1 -0
- package/dist/util/mac.d.ts.map +1 -0
- package/dist/util/mac.js +14 -0
- package/dist/util/mac.js.map +1 -0
- package/dist/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.d.ts.map +1 -0
- package/dist/version.js +16 -0
- package/dist/version.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 +49 -50
- package/bin/homebridge +0 -17
- package/lib/api.d.ts +0 -210
- package/lib/api.d.ts.map +0 -1
- package/lib/api.js +0 -155
- package/lib/api.js.map +0 -1
- package/lib/bridgeService.d.ts.map +0 -1
- package/lib/bridgeService.js.map +0 -1
- package/lib/childBridgeFork.d.ts.map +0 -1
- package/lib/childBridgeFork.js.map +0 -1
- package/lib/childBridgeService.d.ts.map +0 -1
- package/lib/childBridgeService.js.map +0 -1
- package/lib/cli.d.ts +0 -4
- package/lib/cli.d.ts.map +0 -1
- package/lib/cli.js +0 -111
- package/lib/cli.js.map +0 -1
- package/lib/externalPortService.d.ts +0 -33
- package/lib/externalPortService.d.ts.map +0 -1
- package/lib/externalPortService.js +0 -64
- package/lib/externalPortService.js.map +0 -1
- package/lib/index.d.ts +0 -76
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -72
- package/lib/index.js.map +0 -1
- package/lib/ipcService.d.ts +0 -33
- package/lib/ipcService.d.ts.map +0 -1
- package/lib/ipcService.js.map +0 -1
- package/lib/logger.d.ts.map +0 -1
- package/lib/logger.js.map +0 -1
- package/lib/platformAccessory.d.ts.map +0 -1
- package/lib/platformAccessory.js.map +0 -1
- package/lib/plugin.d.ts.map +0 -1
- package/lib/plugin.js.map +0 -1
- package/lib/pluginManager.d.ts.map +0 -1
- package/lib/pluginManager.js.map +0 -1
- package/lib/server.d.ts.map +0 -1
- package/lib/server.js.map +0 -1
- package/lib/storageService.js +0 -70
- package/lib/storageService.js.map +0 -1
- package/lib/user.d.ts.map +0 -1
- package/lib/user.js +0 -36
- package/lib/user.js.map +0 -1
- package/lib/util/mac.d.ts.map +0 -1
- package/lib/util/mac.js +0 -20
- package/lib/util/mac.js.map +0 -1
- package/lib/version.d.ts.map +0 -1
- package/lib/version.js +0 -21
- package/lib/version.js.map +0 -1
- /package/{lib → dist}/storageService.d.ts +0 -0
- /package/{lib → dist}/version.d.ts +0 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { errorHandler, MatterErrorHandler } from './errorHandler.js';
|
|
3
|
+
import { MatterCommissioningError, MatterDeviceError, MatterError, MatterErrorType, MatterNetworkError, MatterStorageError, } from './types.js';
|
|
4
|
+
describe('matterErrorHandler', () => {
|
|
5
|
+
let consoleErrorSpy;
|
|
6
|
+
let consoleWarnSpy;
|
|
7
|
+
let consoleInfoSpy;
|
|
8
|
+
let consoleDebugSpy;
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
11
|
+
consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
|
|
12
|
+
consoleInfoSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
13
|
+
consoleDebugSpy = vi.spyOn(console, 'debug').mockImplementation(() => { });
|
|
14
|
+
});
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
consoleErrorSpy.mockRestore();
|
|
17
|
+
consoleWarnSpy.mockRestore();
|
|
18
|
+
consoleInfoSpy.mockRestore();
|
|
19
|
+
consoleDebugSpy.mockRestore();
|
|
20
|
+
});
|
|
21
|
+
describe('getInstance', () => {
|
|
22
|
+
it('should return a singleton instance', () => {
|
|
23
|
+
const instance1 = MatterErrorHandler.getInstance();
|
|
24
|
+
const instance2 = MatterErrorHandler.getInstance();
|
|
25
|
+
expect(instance1).toBe(instance2);
|
|
26
|
+
});
|
|
27
|
+
it('should return the exported singleton', () => {
|
|
28
|
+
expect(errorHandler).toBe(MatterErrorHandler.getInstance());
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
describe('handleError', () => {
|
|
32
|
+
it('should handle a generic error by categorizing it', async () => {
|
|
33
|
+
const error = new Error('test error');
|
|
34
|
+
await errorHandler.handleError(error);
|
|
35
|
+
expect(consoleErrorSpy).toHaveBeenCalled();
|
|
36
|
+
});
|
|
37
|
+
it('should handle an already-typed MatterError directly', async () => {
|
|
38
|
+
const error = new MatterNetworkError('Network issue', { code: 'CONNECTION_FAILED', recoverable: true });
|
|
39
|
+
await errorHandler.handleError(error);
|
|
40
|
+
expect(consoleErrorSpy).toHaveBeenCalled(); // Logger.warn uses console.error
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
describe('categorizeError', () => {
|
|
44
|
+
it('should categorize EADDRINUSE as port in use error', async () => {
|
|
45
|
+
const error = new Error('bind EADDRINUSE');
|
|
46
|
+
await errorHandler.handleError(error);
|
|
47
|
+
// Check that the error was logged (Logger adds timestamps and prefixes)
|
|
48
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('port is already in use'));
|
|
49
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('configure a different port'));
|
|
50
|
+
});
|
|
51
|
+
it('should categorize ECONNREFUSED as connection failed', async () => {
|
|
52
|
+
const error = new Error('connect ECONNREFUSED');
|
|
53
|
+
await errorHandler.handleError(error);
|
|
54
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('network error'));
|
|
55
|
+
});
|
|
56
|
+
it('should categorize ETIMEDOUT as connection failed', async () => {
|
|
57
|
+
const error = new Error('connect ETIMEDOUT');
|
|
58
|
+
await errorHandler.handleError(error);
|
|
59
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('network error'));
|
|
60
|
+
});
|
|
61
|
+
it('should categorize commissioning errors', async () => {
|
|
62
|
+
const error = new Error('commissioning failed');
|
|
63
|
+
await errorHandler.handleError(error);
|
|
64
|
+
expect(consoleInfoSpy).toHaveBeenCalledWith(expect.stringContaining('commissioning'));
|
|
65
|
+
});
|
|
66
|
+
it('should categorize pairing errors as commissioning errors', async () => {
|
|
67
|
+
const error = new Error('pairing timeout');
|
|
68
|
+
await errorHandler.handleError(error);
|
|
69
|
+
expect(consoleInfoSpy).toHaveBeenCalledWith(expect.stringContaining('commissioning'));
|
|
70
|
+
});
|
|
71
|
+
it('should categorize storage errors', async () => {
|
|
72
|
+
const error = new Error('storage read failed');
|
|
73
|
+
await errorHandler.handleError(error);
|
|
74
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('storage error'));
|
|
75
|
+
});
|
|
76
|
+
it('should categorize ENOENT as storage error', async () => {
|
|
77
|
+
const error = new Error('ENOENT: no such file or directory');
|
|
78
|
+
await errorHandler.handleError(error);
|
|
79
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('storage error'));
|
|
80
|
+
});
|
|
81
|
+
it('should categorize corrupted storage errors with helpful message', async () => {
|
|
82
|
+
const error = new Error('storage corrupted');
|
|
83
|
+
await errorHandler.handleError(error);
|
|
84
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('storage error'));
|
|
85
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('delete the Matter storage'));
|
|
86
|
+
});
|
|
87
|
+
it('should categorize configuration errors', async () => {
|
|
88
|
+
const error = new Error('invalid config');
|
|
89
|
+
await errorHandler.handleError(error);
|
|
90
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('configuration error'));
|
|
91
|
+
});
|
|
92
|
+
it('should categorize device sync errors based on context', async () => {
|
|
93
|
+
const error = new Error('update failed');
|
|
94
|
+
// Should not throw when handling device sync errors
|
|
95
|
+
await expect(errorHandler.handleError(error, 'device sync')).resolves.not.toThrow();
|
|
96
|
+
});
|
|
97
|
+
it('should categorize server errors based on context', async () => {
|
|
98
|
+
const error = new Error('initialization failed');
|
|
99
|
+
await errorHandler.handleError(error, 'server startup');
|
|
100
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('server error'));
|
|
101
|
+
});
|
|
102
|
+
it('should categorize unknown errors as default', async () => {
|
|
103
|
+
const error = new Error('something unexpected');
|
|
104
|
+
await errorHandler.handleError(error);
|
|
105
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('Matter error'));
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
describe('logError', () => {
|
|
109
|
+
it('should log network port conflict as error', async () => {
|
|
110
|
+
const error = new MatterNetworkError('Port conflict', { code: 'PORT_IN_USE', recoverable: false });
|
|
111
|
+
await errorHandler.handleError(error);
|
|
112
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('port is already in use'));
|
|
113
|
+
});
|
|
114
|
+
it('should log other network errors as warnings', async () => {
|
|
115
|
+
const error = new MatterNetworkError('Connection timeout', { code: 'CONNECTION_FAILED', recoverable: true });
|
|
116
|
+
await errorHandler.handleError(error);
|
|
117
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('network error'));
|
|
118
|
+
});
|
|
119
|
+
it('should log commissioning errors as info', async () => {
|
|
120
|
+
const error = new MatterCommissioningError('Pairing failed', { recoverable: false });
|
|
121
|
+
await errorHandler.handleError(error);
|
|
122
|
+
expect(consoleInfoSpy).toHaveBeenCalledWith(expect.stringContaining('commissioning'));
|
|
123
|
+
});
|
|
124
|
+
it('should log device errors as debug', async () => {
|
|
125
|
+
const error = new MatterDeviceError('Sync failed', { recoverable: true });
|
|
126
|
+
// Should not throw when handling device errors
|
|
127
|
+
await expect(errorHandler.handleError(error)).resolves.not.toThrow();
|
|
128
|
+
});
|
|
129
|
+
it('should log storage errors as warnings', async () => {
|
|
130
|
+
const error = new MatterStorageError('Read failed', { recoverable: true });
|
|
131
|
+
await errorHandler.handleError(error);
|
|
132
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('storage error'));
|
|
133
|
+
});
|
|
134
|
+
it('should log configuration errors as errors', async () => {
|
|
135
|
+
const error = new MatterError('Invalid config', 'CONFIGURATION_ERROR', { recoverable: false, type: MatterErrorType.CONFIGURATION });
|
|
136
|
+
await errorHandler.handleError(error);
|
|
137
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('configuration error'));
|
|
138
|
+
});
|
|
139
|
+
it('should log server errors as errors', async () => {
|
|
140
|
+
const error = new MatterError('Server failed', 'SERVER_ERROR', { recoverable: true, type: MatterErrorType.SERVER });
|
|
141
|
+
await errorHandler.handleError(error);
|
|
142
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('server error'));
|
|
143
|
+
});
|
|
144
|
+
it('should log stack trace for non-recoverable errors in debug mode', async () => {
|
|
145
|
+
const error = new MatterError('Fatal error', 'FATAL', { recoverable: false });
|
|
146
|
+
error.stack = 'Error: Fatal error\n at test.ts:1:1';
|
|
147
|
+
await errorHandler.handleError(error);
|
|
148
|
+
// Stack trace is logged but not with console.debug, check that error was logged
|
|
149
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('Matter error'));
|
|
150
|
+
});
|
|
151
|
+
it('should not log stack trace for recoverable errors', async () => {
|
|
152
|
+
const error = new MatterError('Recoverable error', 'RECOVERABLE', { recoverable: true });
|
|
153
|
+
error.stack = 'Error: Recoverable error\n at test.ts:1:1';
|
|
154
|
+
await errorHandler.handleError(error);
|
|
155
|
+
expect(consoleDebugSpy).not.toHaveBeenCalledWith(expect.stringContaining('Stack trace'));
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
//# sourceMappingURL=errorHandler.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHandler.spec.js","sourceRoot":"","sources":["../../src/matter/errorHandler.spec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAExE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AAEnB,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,eAA6B,CAAA;IACjC,IAAI,cAA4B,CAAA;IAChC,IAAI,cAA4B,CAAA;IAChC,IAAI,eAA6B,CAAA;IAEjC,UAAU,CAAC,GAAG,EAAE;QACd,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACzE,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACvE,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACtE,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC3E,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,WAAW,EAAE,CAAA;QAC7B,cAAc,CAAC,WAAW,EAAE,CAAA;QAC5B,cAAc,CAAC,WAAW,EAAE,CAAA;QAC5B,eAAe,CAAC,WAAW,EAAE,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAA;YAClD,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAA;YAClD,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;YACrC,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,CAAA;QAC5C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;YACvG,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,CAAA,CAAC,iCAAiC;QAC9E,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAC1C,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,wEAAwE;YACxE,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAA;YAC/F,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CAAC,CAAA;QACrG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;YAC/C,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAA;QACxF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAC5C,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAA;QACxF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;YAC/C,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAA;QACvF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAC1C,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAA;QACvF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;YAC9C,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAA;QACxF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;YAC5D,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAA;QACxF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAC5C,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAA;YACtF,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC,CAAA;QACpG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;YACzC,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAA;QAC9F,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;YACxC,oDAAoD;YACpD,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QACrF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;YAChD,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;YACvD,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAA;QACvF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;YAC/C,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAA;QACvF,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;YAClG,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAA;QACjG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;YAC5G,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAA;QACxF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,KAAK,GAAG,IAAI,wBAAwB,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;YACpF,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAA;QACvF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;YACzE,+CAA+C;YAC/C,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QACtE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;YAC1E,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAA;QACxF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,KAAK,GAAG,IAAI,WAAW,CAC3B,gBAAgB,EAChB,qBAAqB,EACrB,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,CAC5D,CAAA;YACD,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAA;QAC9F,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,KAAK,GAAG,IAAI,WAAW,CAC3B,eAAe,EACf,cAAc,EACd,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,CACpD,CAAA;YACD,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAA;QACvF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;YAC7E,KAAK,CAAC,KAAK,GAAG,sCAAsC,CAAA;YACpD,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,gFAAgF;YAChF,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAA;QACvF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,mBAAmB,EAAE,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;YACxF,KAAK,CAAC,KAAK,GAAG,4CAA4C,CAAA;YAC1D,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAA;QAC1F,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matter Protocol Errors
|
|
3
|
+
*
|
|
4
|
+
* This module provides error classes that plugin developers can throw
|
|
5
|
+
* to send specific Matter protocol status codes to controllers.
|
|
6
|
+
*
|
|
7
|
+
* When a handler throws one of these errors, the Matter server will send
|
|
8
|
+
* the appropriate status code to the controller (e.g., Home app) instead
|
|
9
|
+
* of crashing the endpoint.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { MatterStatus } from 'homebridge'
|
|
14
|
+
*
|
|
15
|
+
* handlers: {
|
|
16
|
+
* onOff: {
|
|
17
|
+
* on: async () => {
|
|
18
|
+
* if (deviceIsBusy) {
|
|
19
|
+
* throw new MatterStatus.Busy('Device is processing another command')
|
|
20
|
+
* }
|
|
21
|
+
* if (requestTimedOut) {
|
|
22
|
+
* throw new MatterStatus.Timeout('Device did not respond in time')
|
|
23
|
+
* }
|
|
24
|
+
* // ... control device
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
import { Status, StatusResponseError } from '@matter/main/types';
|
|
31
|
+
/**
|
|
32
|
+
* Base class for all Matter protocol errors
|
|
33
|
+
* Plugins can throw this directly or use specific error classes below
|
|
34
|
+
*/
|
|
35
|
+
export declare class MatterProtocolError extends StatusResponseError {
|
|
36
|
+
constructor(message: string, code: Status, clusterCode?: number);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Device is busy processing another action (Status.Busy = 156)
|
|
40
|
+
*
|
|
41
|
+
* Use when the device cannot handle the request because it's processing another operation.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* throw new MatterStatus.Busy('Device is currently processing another command')
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare class Busy extends MatterProtocolError {
|
|
49
|
+
constructor(message?: string);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Operation timed out (Status.Timeout = 148)
|
|
53
|
+
*
|
|
54
|
+
* Use when the device or operation times out.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* throw new MatterStatus.Timeout('Device did not respond within 5 seconds')
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare class Timeout extends MatterProtocolError {
|
|
62
|
+
constructor(message?: string);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Value out of range or invalid (Status.ConstraintError = 135)
|
|
66
|
+
*
|
|
67
|
+
* Use when a value is out of bounds or doesn't meet constraints.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* throw new MatterStatus.ConstraintError('Brightness must be between 0-254')
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare class ConstraintError extends MatterProtocolError {
|
|
75
|
+
constructor(message?: string);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Malformed action or invalid values (Status.InvalidAction = 128)
|
|
79
|
+
*
|
|
80
|
+
* Use when the command or action is malformed or has invalid field values.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* throw new MatterStatus.InvalidAction('Invalid color value provided')
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare class InvalidAction extends MatterProtocolError {
|
|
88
|
+
constructor(message?: string);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Current operational state prevents the action (Status.InvalidInState = 203)
|
|
92
|
+
*
|
|
93
|
+
* Use when the device state prevents the requested operation.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* throw new MatterStatus.InvalidInState('Cannot unlock door while security system is armed')
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export declare class InvalidInState extends MatterProtocolError {
|
|
101
|
+
constructor(message?: string);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Generic failure (Status.Failure = 1)
|
|
105
|
+
*
|
|
106
|
+
* Use as a fallback when no specific error applies.
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* throw new MatterStatus.Failure('Device returned an error')
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare class Failure extends MatterProtocolError {
|
|
114
|
+
constructor(message?: string);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Insufficient resources to process the request (Status.ResourceExhausted = 137)
|
|
118
|
+
*
|
|
119
|
+
* Use when the device has insufficient resources to handle the request.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```typescript
|
|
123
|
+
* throw new MatterStatus.ResourceExhausted('Maximum number of scenes reached')
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
export declare class ResourceExhausted extends MatterProtocolError {
|
|
127
|
+
constructor(message?: string);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* The sender does not have sufficient permissions (Status.PermissionDenied = 15)
|
|
131
|
+
*
|
|
132
|
+
* Use when access control prevents the operation.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* throw new MatterStatus.PermissionDenied('User does not have permission to unlock')
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export declare class PermissionDenied extends MatterProtocolError {
|
|
140
|
+
constructor(message?: string);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* The requested entity was not found (Status.NotFound = 139)
|
|
144
|
+
*
|
|
145
|
+
* Use when a requested resource or entity doesn't exist.
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* throw new MatterStatus.NotFound('Scene not found')
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
export declare class NotFound extends MatterProtocolError {
|
|
153
|
+
constructor(message?: string);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Helper to check if an error is a Matter protocol error
|
|
157
|
+
*/
|
|
158
|
+
export declare function isMatterProtocolError(error: unknown): error is MatterProtocolError;
|
|
159
|
+
/**
|
|
160
|
+
* Matter protocol status codes and error classes
|
|
161
|
+
*
|
|
162
|
+
* Use these error classes to signal specific error conditions to Matter controllers.
|
|
163
|
+
* Each error class corresponds to a Matter protocol status code.
|
|
164
|
+
*/
|
|
165
|
+
export declare const MatterStatus: {
|
|
166
|
+
MatterProtocolError: typeof MatterProtocolError;
|
|
167
|
+
Busy: typeof Busy;
|
|
168
|
+
Timeout: typeof Timeout;
|
|
169
|
+
ConstraintError: typeof ConstraintError;
|
|
170
|
+
InvalidAction: typeof InvalidAction;
|
|
171
|
+
InvalidInState: typeof InvalidInState;
|
|
172
|
+
Failure: typeof Failure;
|
|
173
|
+
ResourceExhausted: typeof ResourceExhausted;
|
|
174
|
+
PermissionDenied: typeof PermissionDenied;
|
|
175
|
+
NotFound: typeof NotFound;
|
|
176
|
+
isMatterProtocolError: typeof isMatterProtocolError;
|
|
177
|
+
};
|
|
178
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/matter/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhE;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB;gBAC9C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAGhE;AAED;;;;;;;;;GASG;AACH,qBAAa,IAAK,SAAQ,mBAAmB;gBAC/B,OAAO,SAAmB;CAGvC;AAED;;;;;;;;;GASG;AACH,qBAAa,OAAQ,SAAQ,mBAAmB;gBAClC,OAAO,SAAwB;CAG5C;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAgB,SAAQ,mBAAmB;gBAC1C,OAAO,SAAkC;CAGtD;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,mBAAmB;gBACxC,OAAO,SAA6B;CAGjD;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,mBAAmB;gBACzC,OAAO,SAA2C;CAG/D;AAED;;;;;;;;;GASG;AACH,qBAAa,OAAQ,SAAQ,mBAAmB;gBAClC,OAAO,SAAqB;CAGzC;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,mBAAmB;gBAC5C,OAAO,SAA2B;CAG/C;AAED;;;;;;;;;GASG;AACH,qBAAa,gBAAiB,SAAQ,mBAAmB;gBAC3C,OAAO,SAAsB;CAG1C;AAED;;;;;;;;;GASG;AACH,qBAAa,QAAS,SAAQ,mBAAmB;gBACnC,OAAO,SAAqB;CAGzC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;CAYxB,CAAA"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matter Protocol Errors
|
|
3
|
+
*
|
|
4
|
+
* This module provides error classes that plugin developers can throw
|
|
5
|
+
* to send specific Matter protocol status codes to controllers.
|
|
6
|
+
*
|
|
7
|
+
* When a handler throws one of these errors, the Matter server will send
|
|
8
|
+
* the appropriate status code to the controller (e.g., Home app) instead
|
|
9
|
+
* of crashing the endpoint.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { MatterStatus } from 'homebridge'
|
|
14
|
+
*
|
|
15
|
+
* handlers: {
|
|
16
|
+
* onOff: {
|
|
17
|
+
* on: async () => {
|
|
18
|
+
* if (deviceIsBusy) {
|
|
19
|
+
* throw new MatterStatus.Busy('Device is processing another command')
|
|
20
|
+
* }
|
|
21
|
+
* if (requestTimedOut) {
|
|
22
|
+
* throw new MatterStatus.Timeout('Device did not respond in time')
|
|
23
|
+
* }
|
|
24
|
+
* // ... control device
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
import { Status, StatusResponseError } from '@matter/main/types';
|
|
31
|
+
/**
|
|
32
|
+
* Base class for all Matter protocol errors
|
|
33
|
+
* Plugins can throw this directly or use specific error classes below
|
|
34
|
+
*/
|
|
35
|
+
export class MatterProtocolError extends StatusResponseError {
|
|
36
|
+
constructor(message, code, clusterCode) {
|
|
37
|
+
super(message, code, clusterCode);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Device is busy processing another action (Status.Busy = 156)
|
|
42
|
+
*
|
|
43
|
+
* Use when the device cannot handle the request because it's processing another operation.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* throw new MatterStatus.Busy('Device is currently processing another command')
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export class Busy extends MatterProtocolError {
|
|
51
|
+
constructor(message = 'Device is busy') {
|
|
52
|
+
super(message, Status.Busy);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Operation timed out (Status.Timeout = 148)
|
|
57
|
+
*
|
|
58
|
+
* Use when the device or operation times out.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* throw new MatterStatus.Timeout('Device did not respond within 5 seconds')
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export class Timeout extends MatterProtocolError {
|
|
66
|
+
constructor(message = 'Operation timed out') {
|
|
67
|
+
super(message, Status.Timeout);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Value out of range or invalid (Status.ConstraintError = 135)
|
|
72
|
+
*
|
|
73
|
+
* Use when a value is out of bounds or doesn't meet constraints.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* throw new MatterStatus.ConstraintError('Brightness must be between 0-254')
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export class ConstraintError extends MatterProtocolError {
|
|
81
|
+
constructor(message = 'Value out of range or invalid') {
|
|
82
|
+
super(message, Status.ConstraintError);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Malformed action or invalid values (Status.InvalidAction = 128)
|
|
87
|
+
*
|
|
88
|
+
* Use when the command or action is malformed or has invalid field values.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* throw new MatterStatus.InvalidAction('Invalid color value provided')
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export class InvalidAction extends MatterProtocolError {
|
|
96
|
+
constructor(message = 'Invalid action or values') {
|
|
97
|
+
super(message, Status.InvalidAction);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Current operational state prevents the action (Status.InvalidInState = 203)
|
|
102
|
+
*
|
|
103
|
+
* Use when the device state prevents the requested operation.
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* throw new MatterStatus.InvalidInState('Cannot unlock door while security system is armed')
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export class InvalidInState extends MatterProtocolError {
|
|
111
|
+
constructor(message = 'Operation not allowed in current state') {
|
|
112
|
+
super(message, Status.InvalidInState);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Generic failure (Status.Failure = 1)
|
|
117
|
+
*
|
|
118
|
+
* Use as a fallback when no specific error applies.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* throw new MatterStatus.Failure('Device returned an error')
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export class Failure extends MatterProtocolError {
|
|
126
|
+
constructor(message = 'Operation failed') {
|
|
127
|
+
super(message, Status.Failure);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Insufficient resources to process the request (Status.ResourceExhausted = 137)
|
|
132
|
+
*
|
|
133
|
+
* Use when the device has insufficient resources to handle the request.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* throw new MatterStatus.ResourceExhausted('Maximum number of scenes reached')
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
export class ResourceExhausted extends MatterProtocolError {
|
|
141
|
+
constructor(message = 'Insufficient resources') {
|
|
142
|
+
super(message, Status.ResourceExhausted);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* The sender does not have sufficient permissions (Status.PermissionDenied = 15)
|
|
147
|
+
*
|
|
148
|
+
* Use when access control prevents the operation.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* throw new MatterStatus.PermissionDenied('User does not have permission to unlock')
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
export class PermissionDenied extends MatterProtocolError {
|
|
156
|
+
constructor(message = 'Permission denied') {
|
|
157
|
+
super(message, Status.UnsupportedAccess);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* The requested entity was not found (Status.NotFound = 139)
|
|
162
|
+
*
|
|
163
|
+
* Use when a requested resource or entity doesn't exist.
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```typescript
|
|
167
|
+
* throw new MatterStatus.NotFound('Scene not found')
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
170
|
+
export class NotFound extends MatterProtocolError {
|
|
171
|
+
constructor(message = 'Entity not found') {
|
|
172
|
+
super(message, Status.NotFound);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Helper to check if an error is a Matter protocol error
|
|
177
|
+
*/
|
|
178
|
+
export function isMatterProtocolError(error) {
|
|
179
|
+
return error instanceof StatusResponseError;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Matter protocol status codes and error classes
|
|
183
|
+
*
|
|
184
|
+
* Use these error classes to signal specific error conditions to Matter controllers.
|
|
185
|
+
* Each error class corresponds to a Matter protocol status code.
|
|
186
|
+
*/
|
|
187
|
+
export const MatterStatus = {
|
|
188
|
+
MatterProtocolError,
|
|
189
|
+
Busy,
|
|
190
|
+
Timeout,
|
|
191
|
+
ConstraintError,
|
|
192
|
+
InvalidAction,
|
|
193
|
+
InvalidInState,
|
|
194
|
+
Failure,
|
|
195
|
+
ResourceExhausted,
|
|
196
|
+
PermissionDenied,
|
|
197
|
+
NotFound,
|
|
198
|
+
isMatterProtocolError,
|
|
199
|
+
};
|
|
200
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/matter/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhE;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,mBAAmB;IAC1D,YAAY,OAAe,EAAE,IAAY,EAAE,WAAoB;QAC7D,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;IACnC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,IAAK,SAAQ,mBAAmB;IAC3C,YAAY,OAAO,GAAG,gBAAgB;QACpC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,OAAQ,SAAQ,mBAAmB;IAC9C,YAAY,OAAO,GAAG,qBAAqB;QACzC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,eAAgB,SAAQ,mBAAmB;IACtD,YAAY,OAAO,GAAG,+BAA+B;QACnD,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAc,SAAQ,mBAAmB;IACpD,YAAY,OAAO,GAAG,0BAA0B;QAC9C,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;IACtC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,cAAe,SAAQ,mBAAmB;IACrD,YAAY,OAAO,GAAG,wCAAwC;QAC5D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IACvC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,OAAQ,SAAQ,mBAAmB;IAC9C,YAAY,OAAO,GAAG,kBAAkB;QACtC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IACxD,YAAY,OAAO,GAAG,wBAAwB;QAC5C,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAC1C,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,gBAAiB,SAAQ,mBAAmB;IACvD,YAAY,OAAO,GAAG,mBAAmB;QACvC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAC1C,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,QAAS,SAAQ,mBAAmB;IAC/C,YAAY,OAAO,GAAG,kBAAkB;QACtC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,KAAK,YAAY,mBAAmB,CAAA;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,mBAAmB;IACnB,IAAI;IACJ,OAAO;IACP,eAAe;IACf,aAAa;IACb,cAAc;IACd,OAAO;IACP,iBAAiB;IACjB,gBAAgB;IAChB,QAAQ;IACR,qBAAqB;CACtB,CAAA"}
|