homebridge 2.0.0-beta.35 → 2.0.0-beta.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/dist/api.d.ts +74 -32
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +48 -46
  4. package/dist/api.js.map +1 -1
  5. package/dist/api.spec.d.ts +2 -0
  6. package/dist/api.spec.d.ts.map +1 -0
  7. package/dist/api.spec.js +413 -0
  8. package/dist/api.spec.js.map +1 -0
  9. package/dist/childBridgeFork.d.ts +1 -18
  10. package/dist/childBridgeFork.d.ts.map +1 -1
  11. package/dist/childBridgeFork.js +21 -258
  12. package/dist/childBridgeFork.js.map +1 -1
  13. package/dist/index.d.ts +10 -10
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +3 -3
  16. package/dist/index.js.map +1 -1
  17. package/dist/logger.spec.d.ts +2 -0
  18. package/dist/logger.spec.d.ts.map +1 -0
  19. package/dist/logger.spec.js +95 -0
  20. package/dist/logger.spec.js.map +1 -0
  21. package/dist/matter/ChildBridgeMatterManager.d.ts +96 -0
  22. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -0
  23. package/dist/matter/ChildBridgeMatterManager.js +397 -0
  24. package/dist/matter/ChildBridgeMatterManager.js.map +1 -0
  25. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +48 -0
  26. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -0
  27. package/dist/matter/ExternalMatterAccessoryPublisher.js +73 -0
  28. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -0
  29. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +2 -0
  30. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +1 -0
  31. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +293 -0
  32. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +1 -0
  33. package/dist/matter/{matterServer.d.ts → MatterAPIImpl.d.ts} +203 -367
  34. package/dist/matter/MatterAPIImpl.d.ts.map +1 -0
  35. package/dist/matter/MatterAPIImpl.js +305 -0
  36. package/dist/matter/MatterAPIImpl.js.map +1 -0
  37. package/dist/matter/MatterBridgeManager.d.ts +91 -0
  38. package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
  39. package/dist/matter/MatterBridgeManager.js +426 -0
  40. package/dist/matter/MatterBridgeManager.js.map +1 -0
  41. package/dist/matter/MatterConfigCollector.d.ts +26 -0
  42. package/dist/matter/MatterConfigCollector.d.ts.map +1 -0
  43. package/dist/matter/MatterConfigCollector.js +78 -0
  44. package/dist/matter/MatterConfigCollector.js.map +1 -0
  45. package/dist/matter/{matterAccessoryCache.d.ts → accessoryCache.d.ts} +12 -3
  46. package/dist/matter/accessoryCache.d.ts.map +1 -0
  47. package/dist/matter/{matterAccessoryCache.js → accessoryCache.js} +32 -10
  48. package/dist/matter/accessoryCache.js.map +1 -0
  49. package/dist/matter/accessoryCache.spec.d.ts +2 -0
  50. package/dist/matter/accessoryCache.spec.d.ts.map +1 -0
  51. package/dist/matter/accessoryCache.spec.js +452 -0
  52. package/dist/matter/accessoryCache.spec.js.map +1 -0
  53. package/dist/matter/behaviors/BehaviorRegistry.d.ts +65 -0
  54. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -0
  55. package/dist/matter/behaviors/BehaviorRegistry.js +139 -0
  56. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -0
  57. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +2 -0
  58. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +1 -0
  59. package/dist/matter/behaviors/BehaviorRegistry.spec.js +307 -0
  60. package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +1 -0
  61. package/dist/matter/behaviors/ColorControlBehavior.d.ts +64 -0
  62. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
  63. package/dist/matter/behaviors/ColorControlBehavior.js +160 -0
  64. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -0
  65. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +2 -0
  66. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +1 -0
  67. package/dist/matter/behaviors/ColorControlBehavior.spec.js +29 -0
  68. package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +1 -0
  69. package/dist/matter/behaviors/DoorLockBehavior.d.ts +21 -0
  70. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
  71. package/dist/matter/behaviors/DoorLockBehavior.js +49 -0
  72. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -0
  73. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +2 -0
  74. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +1 -0
  75. package/dist/matter/behaviors/DoorLockBehavior.spec.js +108 -0
  76. package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +1 -0
  77. package/dist/matter/behaviors/FanControlBehavior.d.ts +20 -0
  78. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -0
  79. package/dist/matter/behaviors/FanControlBehavior.js +45 -0
  80. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -0
  81. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +2 -0
  82. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +1 -0
  83. package/dist/matter/behaviors/FanControlBehavior.spec.js +23 -0
  84. package/dist/matter/behaviors/FanControlBehavior.spec.js.map +1 -0
  85. package/dist/matter/behaviors/IdentifyBehavior.d.ts +21 -0
  86. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
  87. package/dist/matter/behaviors/IdentifyBehavior.js +27 -0
  88. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -0
  89. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +2 -0
  90. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +1 -0
  91. package/dist/matter/behaviors/IdentifyBehavior.spec.js +64 -0
  92. package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +1 -0
  93. package/dist/matter/behaviors/LevelControlBehavior.d.ts +34 -0
  94. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
  95. package/dist/matter/behaviors/LevelControlBehavior.js +75 -0
  96. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -0
  97. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +2 -0
  98. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +1 -0
  99. package/dist/matter/behaviors/LevelControlBehavior.spec.js +140 -0
  100. package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +1 -0
  101. package/dist/matter/behaviors/OnOffBehavior.d.ts +28 -0
  102. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
  103. package/dist/matter/behaviors/OnOffBehavior.js +63 -0
  104. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -0
  105. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +2 -0
  106. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +1 -0
  107. package/dist/matter/behaviors/OnOffBehavior.spec.js +116 -0
  108. package/dist/matter/behaviors/OnOffBehavior.spec.js.map +1 -0
  109. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +19 -0
  110. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -0
  111. package/dist/matter/behaviors/RvcCleanModeBehavior.js +27 -0
  112. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -0
  113. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +2 -0
  114. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +1 -0
  115. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +56 -0
  116. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +1 -0
  117. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +23 -0
  118. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
  119. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +49 -0
  120. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -0
  121. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +2 -0
  122. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +1 -0
  123. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +55 -0
  124. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +1 -0
  125. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +19 -0
  126. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -0
  127. package/dist/matter/behaviors/RvcRunModeBehavior.js +27 -0
  128. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -0
  129. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +2 -0
  130. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +1 -0
  131. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +56 -0
  132. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +1 -0
  133. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +22 -0
  134. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
  135. package/dist/matter/behaviors/ServiceAreaBehavior.js +35 -0
  136. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -0
  137. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +2 -0
  138. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +1 -0
  139. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +52 -0
  140. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +1 -0
  141. package/dist/matter/behaviors/ThermostatBehavior.d.ts +23 -0
  142. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
  143. package/dist/matter/behaviors/ThermostatBehavior.js +79 -0
  144. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -0
  145. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +2 -0
  146. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +1 -0
  147. package/dist/matter/behaviors/ThermostatBehavior.spec.js +23 -0
  148. package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +1 -0
  149. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +32 -0
  150. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
  151. package/dist/matter/behaviors/WindowCoveringBehavior.js +106 -0
  152. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -0
  153. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +2 -0
  154. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +1 -0
  155. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +27 -0
  156. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +1 -0
  157. package/dist/matter/behaviors/index.d.ts +20 -0
  158. package/dist/matter/behaviors/index.d.ts.map +1 -0
  159. package/dist/matter/behaviors/index.js +21 -0
  160. package/dist/matter/behaviors/index.js.map +1 -0
  161. package/dist/matter/{matterConfigValidator.d.ts → configValidator.d.ts} +1 -1
  162. package/dist/matter/configValidator.d.ts.map +1 -0
  163. package/dist/matter/{matterConfigValidator.js → configValidator.js} +1 -1
  164. package/dist/matter/configValidator.js.map +1 -0
  165. package/dist/matter/configValidator.spec.d.ts +2 -0
  166. package/dist/matter/configValidator.spec.d.ts.map +1 -0
  167. package/dist/matter/configValidator.spec.js +390 -0
  168. package/dist/matter/configValidator.spec.js.map +1 -0
  169. package/dist/matter/errorHandler.d.ts +33 -0
  170. package/dist/matter/errorHandler.d.ts.map +1 -0
  171. package/dist/matter/errorHandler.js +113 -0
  172. package/dist/matter/errorHandler.js.map +1 -0
  173. package/dist/matter/errorHandler.spec.d.ts +2 -0
  174. package/dist/matter/errorHandler.spec.d.ts.map +1 -0
  175. package/dist/matter/errorHandler.spec.js +159 -0
  176. package/dist/matter/errorHandler.spec.js.map +1 -0
  177. package/dist/matter/index.d.ts +7 -4
  178. package/dist/matter/index.d.ts.map +1 -1
  179. package/dist/matter/index.js +7 -4
  180. package/dist/matter/index.js.map +1 -1
  181. package/dist/matter/{matterLogFormatter.d.ts → logFormatter.d.ts} +1 -1
  182. package/dist/matter/logFormatter.d.ts.map +1 -0
  183. package/dist/matter/{matterLogFormatter.js → logFormatter.js} +33 -19
  184. package/dist/matter/logFormatter.js.map +1 -0
  185. package/dist/matter/logFormatter.spec.d.ts +2 -0
  186. package/dist/matter/logFormatter.spec.d.ts.map +1 -0
  187. package/dist/matter/logFormatter.spec.js +252 -0
  188. package/dist/matter/logFormatter.spec.js.map +1 -0
  189. package/dist/matter/server.d.ts +343 -0
  190. package/dist/matter/server.d.ts.map +1 -0
  191. package/dist/matter/{matterServer.js → server.js} +549 -365
  192. package/dist/matter/server.js.map +1 -0
  193. package/dist/matter/{matterServerHelpers.d.ts → serverHelpers.d.ts} +2 -2
  194. package/dist/matter/serverHelpers.d.ts.map +1 -0
  195. package/dist/matter/{matterServerHelpers.js → serverHelpers.js} +11 -8
  196. package/dist/matter/serverHelpers.js.map +1 -0
  197. package/dist/matter/serverHelpers.spec.d.ts +2 -0
  198. package/dist/matter/serverHelpers.spec.d.ts.map +1 -0
  199. package/dist/matter/serverHelpers.spec.js +521 -0
  200. package/dist/matter/serverHelpers.spec.js.map +1 -0
  201. package/dist/matter/{matterSharedTypes.d.ts → sharedTypes.d.ts} +4 -10
  202. package/dist/matter/sharedTypes.d.ts.map +1 -0
  203. package/dist/matter/{matterSharedTypes.js → sharedTypes.js} +4 -10
  204. package/dist/matter/sharedTypes.js.map +1 -0
  205. package/dist/matter/{matterStorage.d.ts → storage.d.ts} +9 -2
  206. package/dist/matter/storage.d.ts.map +1 -0
  207. package/dist/matter/{matterStorage.js → storage.js} +14 -5
  208. package/dist/matter/{matterStorage.js.map → storage.js.map} +1 -1
  209. package/dist/matter/storage.spec.d.ts +2 -0
  210. package/dist/matter/storage.spec.d.ts.map +1 -0
  211. package/dist/matter/storage.spec.js +570 -0
  212. package/dist/matter/storage.spec.js.map +1 -0
  213. package/dist/matter/typeHelpers.d.ts +45 -0
  214. package/dist/matter/typeHelpers.d.ts.map +1 -0
  215. package/dist/matter/typeHelpers.js +57 -0
  216. package/dist/matter/typeHelpers.js.map +1 -0
  217. package/dist/matter/typeHelpers.spec.d.ts +2 -0
  218. package/dist/matter/typeHelpers.spec.d.ts.map +1 -0
  219. package/dist/matter/typeHelpers.spec.js +127 -0
  220. package/dist/matter/typeHelpers.spec.js.map +1 -0
  221. package/dist/matter/{matterTypes.d.ts → types.d.ts} +2 -2
  222. package/dist/matter/types.d.ts.map +1 -0
  223. package/dist/matter/{matterTypes.js → types.js} +1 -2
  224. package/dist/matter/types.js.map +1 -0
  225. package/dist/platformAccessory.spec.d.ts +2 -0
  226. package/dist/platformAccessory.spec.d.ts.map +1 -0
  227. package/dist/platformAccessory.spec.js +126 -0
  228. package/dist/platformAccessory.spec.js.map +1 -0
  229. package/dist/pluginManager.spec.d.ts +2 -0
  230. package/dist/pluginManager.spec.d.ts.map +1 -0
  231. package/dist/pluginManager.spec.js +43 -0
  232. package/dist/pluginManager.spec.js.map +1 -0
  233. package/dist/server.d.ts +4 -13
  234. package/dist/server.d.ts.map +1 -1
  235. package/dist/server.js +43 -346
  236. package/dist/server.js.map +1 -1
  237. package/dist/server.spec.d.ts +2 -0
  238. package/dist/server.spec.d.ts.map +1 -0
  239. package/dist/server.spec.js +57 -0
  240. package/dist/server.spec.js.map +1 -0
  241. package/dist/user.spec.d.ts +2 -0
  242. package/dist/user.spec.d.ts.map +1 -0
  243. package/dist/user.spec.js +31 -0
  244. package/dist/user.spec.js.map +1 -0
  245. package/dist/util/mac.spec.d.ts +2 -0
  246. package/dist/util/mac.spec.d.ts.map +1 -0
  247. package/dist/util/mac.spec.js +36 -0
  248. package/dist/util/mac.spec.js.map +1 -0
  249. package/dist/version.spec.d.ts +2 -0
  250. package/dist/version.spec.d.ts.map +1 -0
  251. package/dist/version.spec.js +20 -0
  252. package/dist/version.spec.js.map +1 -0
  253. package/package.json +4 -4
  254. package/dist/matter/matterAccessoryCache.d.ts.map +0 -1
  255. package/dist/matter/matterAccessoryCache.js.map +0 -1
  256. package/dist/matter/matterBehaviors.d.ts +0 -194
  257. package/dist/matter/matterBehaviors.d.ts.map +0 -1
  258. package/dist/matter/matterBehaviors.js +0 -665
  259. package/dist/matter/matterBehaviors.js.map +0 -1
  260. package/dist/matter/matterConfigValidator.d.ts.map +0 -1
  261. package/dist/matter/matterConfigValidator.js.map +0 -1
  262. package/dist/matter/matterErrorHandler.d.ts +0 -106
  263. package/dist/matter/matterErrorHandler.d.ts.map +0 -1
  264. package/dist/matter/matterErrorHandler.js +0 -495
  265. package/dist/matter/matterErrorHandler.js.map +0 -1
  266. package/dist/matter/matterLogFormatter.d.ts.map +0 -1
  267. package/dist/matter/matterLogFormatter.js.map +0 -1
  268. package/dist/matter/matterNetworkMonitor.d.ts +0 -68
  269. package/dist/matter/matterNetworkMonitor.d.ts.map +0 -1
  270. package/dist/matter/matterNetworkMonitor.js +0 -249
  271. package/dist/matter/matterNetworkMonitor.js.map +0 -1
  272. package/dist/matter/matterServer.d.ts.map +0 -1
  273. package/dist/matter/matterServer.js.map +0 -1
  274. package/dist/matter/matterServerHelpers.d.ts.map +0 -1
  275. package/dist/matter/matterServerHelpers.js.map +0 -1
  276. package/dist/matter/matterSharedTypes.d.ts.map +0 -1
  277. package/dist/matter/matterSharedTypes.js.map +0 -1
  278. package/dist/matter/matterStorage.d.ts.map +0 -1
  279. package/dist/matter/matterTypes.d.ts.map +0 -1
  280. package/dist/matter/matterTypes.js.map +0 -1
@@ -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"}
@@ -5,10 +5,13 @@
5
5
  * allowing plugin developers to explicitly register Matter accessories.
6
6
  */
7
7
  import type { ColorControl, DoorLock, FanControl, Groups, Identify, LevelControl, ModeBase, OnOff, ScenesManagement, ServiceArea, Thermostat, WindowCovering } from '@matter/main/clusters';
8
- export { type MatterConfigValidationResult, MatterConfigValidator } from './matterConfigValidator.js';
9
- export { MatterServer } from './matterServer.js';
10
- export { HomebridgeMatterStorage, MatterStorageManager } from './matterStorage.js';
11
- export { clusterNames, clusters, devices, deviceTypes, type InternalMatterAccessory, type MatterAccessory, type MatterAccessoryEventEmitter, MatterAccessoryEventTypes, type MatterClusterHandlers, type MatterClusterName, type MatterCommandHandler, MatterCommissioningError, type MatterConfig, MatterDeviceError, MatterError, type MatterErrorDetails, MatterErrorType, MatterNetworkError, MatterStorageError, } from './matterTypes.js';
8
+ export { ChildBridgeMatterManager } from './ChildBridgeMatterManager.js';
9
+ export { type MatterConfigValidationResult, MatterConfigValidator } from './configValidator.js';
10
+ export { MatterBridgeManager } from './MatterBridgeManager.js';
11
+ export { MatterConfigCollector } from './MatterConfigCollector.js';
12
+ export { MatterServer } from './server.js';
13
+ export { HomebridgeMatterStorage, MatterStorageManager } from './storage.js';
14
+ export { clusterNames, clusters, devices, deviceTypes, type InternalMatterAccessory, type MatterAccessory, type MatterAccessoryEventEmitter, MatterAccessoryEventTypes, type MatterClusterHandlers, type MatterClusterName, type MatterCommandHandler, MatterCommissioningError, type MatterConfig, MatterDeviceError, MatterError, type MatterErrorDetails, MatterErrorType, MatterNetworkError, MatterStorageError, } from './types.js';
12
15
  /**
13
16
  * Matter Cluster Command Request Types
14
17
  * Use these types for handler arguments to get full type safety
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/matter/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/matter/index.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,13 @@
4
4
  * This module provides Matter protocol support through a Plugin API,
5
5
  * allowing plugin developers to explicitly register Matter accessories.
6
6
  */
7
- export { MatterConfigValidator } from './matterConfigValidator.js';
8
- export { MatterServer } from './matterServer.js';
9
- export { HomebridgeMatterStorage, MatterStorageManager } from './matterStorage.js';
10
- export { clusterNames, clusters, devices, deviceTypes, MatterAccessoryEventTypes, MatterCommissioningError, MatterDeviceError, MatterError, MatterErrorType, MatterNetworkError, MatterStorageError, } from './matterTypes.js';
7
+ export { ChildBridgeMatterManager } from './ChildBridgeMatterManager.js';
8
+ export { MatterConfigValidator } from './configValidator.js';
9
+ export { MatterBridgeManager } from './MatterBridgeManager.js';
10
+ export { MatterConfigCollector } from './MatterConfigCollector.js';
11
+ export { MatterServer } from './server.js';
12
+ export { HomebridgeMatterStorage, MatterStorageManager } from './storage.js';
13
+ export { clusterNames, clusters, devices, deviceTypes, MatterAccessoryEventTypes, MatterCommissioningError, MatterDeviceError, MatterError, MatterErrorType, MatterNetworkError, MatterStorageError, } from './types.js';
11
14
  /**
12
15
  * Matter Cluster Types & Enums
13
16
  * Import these to access type-safe enum values for cluster attributes using the original matter.js names.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/matter/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,OAAO,EAAqC,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAClF,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,WAAW,EAIX,yBAAyB,EAIzB,wBAAwB,EAExB,iBAAiB,EACjB,WAAW,EAEX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AA0KzB;;;;;;GAMG;AACH,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/matter/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAqC,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,WAAW,EAIX,yBAAyB,EAIzB,wBAAwB,EAExB,iBAAiB,EACjB,WAAW,EAEX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AA0JnB;;;;;;GAMG;AACH,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAA"}
@@ -16,4 +16,4 @@
16
16
  * - Matter ERROR/FATAL → red (Homebridge error)
17
17
  */
18
18
  export declare function createHomebridgeLogFormatter(): (diagnostic: unknown) => string;
19
- //# sourceMappingURL=matterLogFormatter.d.ts.map
19
+ //# sourceMappingURL=logFormatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logFormatter.d.ts","sourceRoot":"","sources":["../../src/matter/logFormatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,IAAI,CAAC,UAAU,EAAE,OAAO,KAAK,MAAM,CAuE9E"}
@@ -27,6 +27,11 @@ export function createHomebridgeLogFormatter() {
27
27
  const msg = diagnostic;
28
28
  // If it's a log message with the expected structure
29
29
  if (msg.now && msg.facility && msg.values) {
30
+ // Suppress ValidatedElements logs - these are just validation warnings about
31
+ // optional Matter.js features that aren't implemented (and don't need to be)
32
+ if (msg.facility === 'ValidatedElements' || msg.facility === 'Commissioning') {
33
+ return '';
34
+ }
30
35
  // Format facility as [Matter:FacilityName] in cyan color
31
36
  const facility = formatCyan(`[Matter/${msg.facility}]`);
32
37
  // Extract the message text from values
@@ -40,22 +45,27 @@ export function createHomebridgeLogFormatter() {
40
45
  // Matter NOTICE → no color (Homebridge info)
41
46
  // Matter WARN → yellow (Homebridge warn)
42
47
  // Matter ERROR/FATAL → red (Homebridge error)
48
+ // For 'notice' or anything else, leave it uncolored (Homebridge info style)
43
49
  let coloredMessage = messageText;
44
50
  if (msg.level !== undefined) {
45
- const levelStr = String(msg.level).toLowerCase();
46
- if (levelStr === 'debug' || levelStr === 'info') {
47
- // Homebridge debug style
48
- coloredMessage = chalk.gray(messageText);
49
- }
50
- else if (levelStr === 'warn') {
51
- // Homebridge warn style
52
- coloredMessage = chalk.yellow(messageText);
51
+ switch (msg.level) {
52
+ // export const DEBUG: LogLevel = 0;
53
+ // export const INFO: LogLevel = 1;
54
+ // export const NOTICE: LogLevel = 2;
55
+ // export const WARN: LogLevel = 3;
56
+ // export const ERROR: LogLevel = 4;
57
+ // export const FATAL: LogLevel = 5;
58
+ case 5: // FATAL
59
+ case 4: // ERROR
60
+ coloredMessage = chalk.red(messageText);
61
+ break;
62
+ case 3: // WARN
63
+ coloredMessage = chalk.yellow(messageText);
64
+ break;
65
+ case 0: // DEBUG
66
+ coloredMessage = chalk.gray(messageText);
67
+ break;
53
68
  }
54
- else if (levelStr === 'error' || levelStr === 'fatal') {
55
- // Homebridge error style
56
- coloredMessage = chalk.red(messageText);
57
- }
58
- // For 'notice' or anything else, leave it uncolored (Homebridge info style)
59
69
  }
60
70
  // Check if timestamps are enabled (respects --no-timestamp flag)
61
71
  if (timestampEnabled) {
@@ -116,14 +126,18 @@ function formatMessageValues(values) {
116
126
  // Check if this is a Matter.js Diagnostic object
117
127
  // These objects store their actual value in a symbol property
118
128
  const diagnosticValue = Diagnostic.valueOf(value);
119
- if (diagnosticValue !== undefined) {
120
- // Recursively format the diagnostic value
129
+ if (diagnosticValue !== undefined && diagnosticValue !== value) {
130
+ // If diagnosticValue is an array, format each element individually
131
+ if (Array.isArray(diagnosticValue)) {
132
+ return formatMessageValues(diagnosticValue);
133
+ }
134
+ // Otherwise, recursively format the single value
121
135
  return formatMessageValues([diagnosticValue]);
122
136
  }
123
- // Special handling for Error objects
137
+ // Special handling for error objects
124
138
  if (value instanceof Error) {
125
139
  const errorDetails = {
126
- ...value, // Include any custom properties first
140
+ ...value, // include any custom properties first
127
141
  name: value.name,
128
142
  message: value.message,
129
143
  stack: value.stack,
@@ -137,8 +151,8 @@ function formatMessageValues(values) {
137
151
  return String(value);
138
152
  }
139
153
  }
140
- return String(value);
154
+ return String(value).trim();
141
155
  })
142
156
  .join(' ');
143
157
  }
144
- //# sourceMappingURL=matterLogFormatter.js.map
158
+ //# sourceMappingURL=logFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logFormatter.js","sourceRoot":"","sources":["../../src/matter/logFormatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B;IAC1C,2DAA2D;IAC3D,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAA;IAEpD,OAAO,CAAC,UAAmB,EAAU,EAAE;QACrC,2CAA2C;QAC3C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YAC1D,MAAM,GAAG,GAAG,UAAiB,CAAA;YAE7B,oDAAoD;YACpD,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC1C,6EAA6E;gBAC7E,6EAA6E;gBAC7E,IAAI,GAAG,CAAC,QAAQ,KAAK,mBAAmB,IAAI,GAAG,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;oBAC7E,OAAO,EAAE,CAAA;gBACX,CAAC;gBAED,yDAAyD;gBACzD,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAA;gBAEvD,uCAAuC;gBACvC,IAAI,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBAEjD,6EAA6E;gBAC7E,IAAI,GAAG,CAAC,QAAQ,KAAK,gBAAgB,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBAClE,WAAW,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,eAAe,CAAA;gBAC/D,CAAC;gBAED,wCAAwC;gBACxC,8CAA8C;gBAC9C,6CAA6C;gBAC7C,yCAAyC;gBACzC,8CAA8C;gBAC9C,4EAA4E;gBAC5E,IAAI,cAAc,GAAG,WAAW,CAAA;gBAChC,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC5B,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC;wBAClB,wCAAwC;wBACxC,uCAAuC;wBACvC,yCAAyC;wBACzC,uCAAuC;wBACvC,wCAAwC;wBACxC,wCAAwC;wBACxC,KAAK,CAAC,CAAC,CAAC,QAAQ;wBAChB,KAAK,CAAC,EAAE,QAAQ;4BACd,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;4BACvC,MAAK;wBACP,KAAK,CAAC,EAAE,OAAO;4BACb,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;4BAC1C,MAAK;wBACP,KAAK,CAAC,EAAE,QAAQ;4BACd,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;4BACxC,MAAK;oBACT,CAAC;gBACH,CAAC;gBAED,iEAAiE;gBACjE,IAAI,gBAAgB,EAAE,CAAC;oBACrB,8EAA8E;oBAC9E,MAAM,SAAS,GAAG,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBACpD,OAAO,GAAG,SAAS,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAA;gBACrD,CAAC;qBAAM,CAAC;oBACN,eAAe;oBACf,OAAO,GAAG,QAAQ,IAAI,cAAc,EAAE,CAAA;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAA;IAC3B,CAAC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,IAAU;IAC3C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,CAAA;IAC9C,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAiB;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC;IAED,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,MAAM,CAAA;QACf,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,yEAAyE;QACzE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,iDAAiD;YACjD,8DAA8D;YAC9D,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACjD,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;gBAC/D,mEAAmE;gBACnE,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;oBACnC,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAAA;gBAC7C,CAAC;gBAED,iDAAiD;gBACjD,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAA;YAC/C,CAAC;YAED,qCAAqC;YACrC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,YAAY,GAAG;oBACnB,GAAG,KAAK,EAAE,sCAAsC;oBAChD,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB,CAAA;gBACD,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YAC9C,CAAC;YAED,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7B,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=logFormatter.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logFormatter.spec.d.ts","sourceRoot":"","sources":["../../src/matter/logFormatter.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,252 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { Logger } from '../logger.js';
3
+ import { createHomebridgeLogFormatter } from './logFormatter.js';
4
+ describe('logFormatter', () => {
5
+ describe('createHomebridgeLogFormatter', () => {
6
+ it('should return a formatter function', () => {
7
+ const formatter = createHomebridgeLogFormatter();
8
+ expect(typeof formatter).toBe('function');
9
+ });
10
+ it('should format Matter.js log messages with facility and timestamp', () => {
11
+ // Enable timestamps for this test
12
+ Logger.setTimestampEnabled(true);
13
+ const formatter = createHomebridgeLogFormatter();
14
+ const diagnostic = {
15
+ now: new Date('2025-01-15T10:30:00.000Z'),
16
+ facility: 'TestFacility',
17
+ values: ['Test message'],
18
+ level: 'notice',
19
+ };
20
+ const result = formatter(diagnostic);
21
+ expect(result).toContain('[Matter/TestFacility]');
22
+ expect(result).toContain('Test message');
23
+ expect(result).toMatch(/\[\d{1,2}\/\d{1,2}\/\d{4}/);
24
+ // Reset timestamp setting
25
+ Logger.setTimestampEnabled(false);
26
+ });
27
+ it('should format messages without timestamp when disabled', () => {
28
+ Logger.setTimestampEnabled(false);
29
+ const formatter = createHomebridgeLogFormatter();
30
+ const diagnostic = {
31
+ now: new Date('2025-01-15T10:30:00.000Z'),
32
+ facility: 'TestFacility',
33
+ values: ['Test message'],
34
+ level: 'notice',
35
+ };
36
+ const result = formatter(diagnostic);
37
+ expect(result).toContain('[Matter/TestFacility]');
38
+ expect(result).toContain('Test message');
39
+ expect(result).not.toMatch(/\[.*\d\/\d{1,2}\/\d{4}/);
40
+ });
41
+ it('should apply gray color for debug level messages', () => {
42
+ const formatter = createHomebridgeLogFormatter();
43
+ const diagnostic = {
44
+ now: new Date(),
45
+ facility: 'Test',
46
+ values: ['debug message'],
47
+ level: 'debug',
48
+ };
49
+ const result = formatter(diagnostic);
50
+ // Chalk colors may be stripped in test environment, just check the message is there
51
+ expect(result).toContain('debug message');
52
+ expect(result).toContain('[Matter/Test]');
53
+ });
54
+ it('should apply gray color for info level messages', () => {
55
+ const formatter = createHomebridgeLogFormatter();
56
+ const diagnostic = {
57
+ now: new Date(),
58
+ facility: 'Test',
59
+ values: ['info message'],
60
+ level: 'info',
61
+ };
62
+ const result = formatter(diagnostic);
63
+ expect(result).toContain('info message');
64
+ expect(result).toContain('[Matter/Test]');
65
+ });
66
+ it('should apply yellow color for warn level messages', () => {
67
+ const formatter = createHomebridgeLogFormatter();
68
+ const diagnostic = {
69
+ now: new Date(),
70
+ facility: 'Test',
71
+ values: ['warning message'],
72
+ level: 'warn',
73
+ };
74
+ const result = formatter(diagnostic);
75
+ // Chalk colors may be stripped in test environment, just check the message is there
76
+ expect(result).toContain('warning message');
77
+ expect(result).toContain('[Matter/Test]');
78
+ });
79
+ it('should apply red color for error level messages', () => {
80
+ const formatter = createHomebridgeLogFormatter();
81
+ const diagnostic = {
82
+ now: new Date(),
83
+ facility: 'Test',
84
+ values: ['error message'],
85
+ level: 'error',
86
+ };
87
+ const result = formatter(diagnostic);
88
+ // Chalk colors may be stripped in test environment, just check the message is there
89
+ expect(result).toContain('error message');
90
+ expect(result).toContain('[Matter/Test]');
91
+ });
92
+ it('should apply red color for fatal level messages', () => {
93
+ const formatter = createHomebridgeLogFormatter();
94
+ const diagnostic = {
95
+ now: new Date(),
96
+ facility: 'Test',
97
+ values: ['fatal message'],
98
+ level: 'fatal',
99
+ };
100
+ const result = formatter(diagnostic);
101
+ expect(result).toContain('fatal message');
102
+ expect(result).toContain('[Matter/Test]');
103
+ });
104
+ it('should not apply color for notice level messages', () => {
105
+ const formatter = createHomebridgeLogFormatter();
106
+ const diagnostic = {
107
+ now: new Date(),
108
+ facility: 'Test',
109
+ values: ['notice message'],
110
+ level: 'notice',
111
+ };
112
+ const result = formatter(diagnostic);
113
+ // Should not contain common ANSI color codes (except for cyan facility)
114
+ expect(result).not.toContain('\x1B[90m'); // gray
115
+ expect(result).not.toContain('\x1B[33m'); // yellow
116
+ expect(result).not.toContain('\x1B[31m'); // red
117
+ });
118
+ it('should trim long MessageChannel messages', () => {
119
+ const formatter = createHomebridgeLogFormatter();
120
+ const longMessage = 'a'.repeat(300);
121
+ const diagnostic = {
122
+ now: new Date(),
123
+ facility: 'MessageChannel',
124
+ values: [longMessage],
125
+ level: 'debug',
126
+ };
127
+ const result = formatter(diagnostic);
128
+ expect(result).toContain('[trimmed...]');
129
+ expect(result.length).toBeLessThan(longMessage.length + 100);
130
+ });
131
+ it('should not trim messages from other facilities', () => {
132
+ const formatter = createHomebridgeLogFormatter();
133
+ const longMessage = 'a'.repeat(300);
134
+ const diagnostic = {
135
+ now: new Date(),
136
+ facility: 'OtherFacility',
137
+ values: [longMessage],
138
+ level: 'debug',
139
+ };
140
+ const result = formatter(diagnostic);
141
+ expect(result).not.toContain('[trimmed...]');
142
+ expect(result).toContain(longMessage);
143
+ });
144
+ it('should format multiple message values', () => {
145
+ const formatter = createHomebridgeLogFormatter();
146
+ const diagnostic = {
147
+ now: new Date(),
148
+ facility: 'Test',
149
+ values: ['first', 'second', 'third'],
150
+ level: 'notice',
151
+ };
152
+ const result = formatter(diagnostic);
153
+ expect(result).toContain('first');
154
+ expect(result).toContain('second');
155
+ expect(result).toContain('third');
156
+ });
157
+ it('should call lazy logging functions', () => {
158
+ const formatter = createHomebridgeLogFormatter();
159
+ const lazyFn = vi.fn(() => 'lazy value');
160
+ const diagnostic = {
161
+ now: new Date(),
162
+ facility: 'Test',
163
+ values: [lazyFn],
164
+ level: 'notice',
165
+ };
166
+ const result = formatter(diagnostic);
167
+ expect(lazyFn).toHaveBeenCalled();
168
+ expect(result).toContain('lazy value');
169
+ });
170
+ it('should handle null values', () => {
171
+ const formatter = createHomebridgeLogFormatter();
172
+ const diagnostic = {
173
+ now: new Date(),
174
+ facility: 'Test',
175
+ values: [null],
176
+ level: 'notice',
177
+ };
178
+ const result = formatter(diagnostic);
179
+ expect(result).toContain('null');
180
+ });
181
+ it('should handle undefined values', () => {
182
+ const formatter = createHomebridgeLogFormatter();
183
+ const diagnostic = {
184
+ now: new Date(),
185
+ facility: 'Test',
186
+ values: [undefined],
187
+ level: 'notice',
188
+ };
189
+ const result = formatter(diagnostic);
190
+ expect(result).toContain('undefined');
191
+ });
192
+ it('should format error objects with stack traces', () => {
193
+ const formatter = createHomebridgeLogFormatter();
194
+ const error = new Error('test error');
195
+ const diagnostic = {
196
+ now: new Date(),
197
+ facility: 'Test',
198
+ values: [error],
199
+ level: 'error',
200
+ };
201
+ const result = formatter(diagnostic);
202
+ expect(result).toContain('test error');
203
+ expect(result).toContain('stack');
204
+ });
205
+ it('should format plain objects as JSON', () => {
206
+ const formatter = createHomebridgeLogFormatter();
207
+ const obj = { key: 'value', number: 42 };
208
+ const diagnostic = {
209
+ now: new Date(),
210
+ facility: 'Test',
211
+ values: [obj],
212
+ level: 'notice',
213
+ };
214
+ const result = formatter(diagnostic);
215
+ expect(result).toContain('key');
216
+ expect(result).toContain('value');
217
+ expect(result).toContain('42');
218
+ });
219
+ it('should handle non-message diagnostics gracefully', () => {
220
+ const formatter = createHomebridgeLogFormatter();
221
+ const result = formatter('plain string');
222
+ expect(result).toBe('plain string');
223
+ });
224
+ it('should handle empty message values', () => {
225
+ const formatter = createHomebridgeLogFormatter();
226
+ const diagnostic = {
227
+ now: new Date(),
228
+ facility: 'Test',
229
+ values: [],
230
+ level: 'notice',
231
+ };
232
+ const result = formatter(diagnostic);
233
+ expect(result).toContain('[Matter/Test]');
234
+ });
235
+ it('should handle diagnostic with valueOf using Diagnostic API', () => {
236
+ const formatter = createHomebridgeLogFormatter();
237
+ // Create a plain object that Matter.js Diagnostic.valueOf would process
238
+ const objectValue = { key: 'test', value: 42 };
239
+ const diagnostic = {
240
+ now: new Date(),
241
+ facility: 'Test',
242
+ values: [objectValue],
243
+ level: 'notice',
244
+ };
245
+ const result = formatter(diagnostic);
246
+ // Should contain the JSON stringified version
247
+ expect(result).toContain('key');
248
+ expect(result).toContain('test');
249
+ });
250
+ });
251
+ });
252
+ //# sourceMappingURL=logFormatter.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logFormatter.spec.js","sourceRoot":"","sources":["../../src/matter/logFormatter.spec.ts"],"names":[],"mappings":"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"}