homebridge 2.0.0-beta.5 → 2.0.0-beta.51

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 (286) hide show
  1. package/README.md +16 -17
  2. package/bin/homebridge.js +22 -0
  3. package/config-sample.json +3 -3
  4. package/dist/api.d.ts +137 -0
  5. package/dist/api.d.ts.map +1 -0
  6. package/dist/api.js +151 -0
  7. package/dist/api.js.map +1 -0
  8. package/{lib → dist}/bridgeService.d.ts +16 -32
  9. package/dist/bridgeService.d.ts.map +1 -0
  10. package/dist/bridgeService.js +341 -0
  11. package/dist/bridgeService.js.map +1 -0
  12. package/dist/childBridgeFork.d.ts +40 -0
  13. package/dist/childBridgeFork.d.ts.map +1 -0
  14. package/dist/childBridgeFork.js +362 -0
  15. package/dist/childBridgeFork.js.map +1 -0
  16. package/dist/childBridgeService.d.ts +146 -0
  17. package/dist/childBridgeService.d.ts.map +1 -0
  18. package/dist/childBridgeService.js +416 -0
  19. package/dist/childBridgeService.js.map +1 -0
  20. package/dist/cli.d.ts +3 -0
  21. package/dist/cli.d.ts.map +1 -0
  22. package/dist/cli.js +88 -0
  23. package/dist/cli.js.map +1 -0
  24. package/dist/externalPortService.d.ts +26 -0
  25. package/dist/externalPortService.d.ts.map +1 -0
  26. package/dist/externalPortService.js +77 -0
  27. package/dist/externalPortService.js.map +1 -0
  28. package/dist/index.d.ts +29 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +9 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/ipcService.d.ts +58 -0
  33. package/dist/ipcService.d.ts.map +1 -0
  34. package/dist/ipcService.js +43 -0
  35. package/dist/ipcService.js.map +1 -0
  36. package/dist/logger.d.ts +38 -0
  37. package/dist/logger.d.ts.map +1 -0
  38. package/dist/logger.js +102 -0
  39. package/dist/logger.js.map +1 -0
  40. package/dist/matter/BaseMatterManager.d.ts +20 -0
  41. package/dist/matter/BaseMatterManager.d.ts.map +1 -0
  42. package/dist/matter/BaseMatterManager.js +183 -0
  43. package/dist/matter/BaseMatterManager.js.map +1 -0
  44. package/dist/matter/ChildBridgeMatterManager.d.ts +35 -0
  45. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -0
  46. package/dist/matter/ChildBridgeMatterManager.js +222 -0
  47. package/dist/matter/ChildBridgeMatterManager.js.map +1 -0
  48. package/dist/matter/ClusterCommandMapper.d.ts +5 -0
  49. package/dist/matter/ClusterCommandMapper.d.ts.map +1 -0
  50. package/dist/matter/ClusterCommandMapper.js +222 -0
  51. package/dist/matter/ClusterCommandMapper.js.map +1 -0
  52. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +22 -0
  53. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -0
  54. package/dist/matter/ExternalMatterAccessoryPublisher.js +49 -0
  55. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -0
  56. package/dist/matter/MatterAPIImpl.d.ts +443 -0
  57. package/dist/matter/MatterAPIImpl.d.ts.map +1 -0
  58. package/dist/matter/MatterAPIImpl.js +210 -0
  59. package/dist/matter/MatterAPIImpl.js.map +1 -0
  60. package/dist/matter/MatterBridgeManager.d.ts +40 -0
  61. package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
  62. package/dist/matter/MatterBridgeManager.js +340 -0
  63. package/dist/matter/MatterBridgeManager.js.map +1 -0
  64. package/dist/matter/MatterConfigCollector.d.ts +7 -0
  65. package/dist/matter/MatterConfigCollector.d.ts.map +1 -0
  66. package/dist/matter/MatterConfigCollector.js +65 -0
  67. package/dist/matter/MatterConfigCollector.js.map +1 -0
  68. package/dist/matter/accessoryCache.d.ts +57 -0
  69. package/dist/matter/accessoryCache.d.ts.map +1 -0
  70. package/dist/matter/accessoryCache.js +155 -0
  71. package/dist/matter/accessoryCache.js.map +1 -0
  72. package/dist/matter/behaviors/AirQualityBehavior.d.ts +8 -0
  73. package/dist/matter/behaviors/AirQualityBehavior.d.ts.map +1 -0
  74. package/dist/matter/behaviors/AirQualityBehavior.js +11 -0
  75. package/dist/matter/behaviors/AirQualityBehavior.js.map +1 -0
  76. package/dist/matter/behaviors/BehaviorRegistry.d.ts +27 -0
  77. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -0
  78. package/dist/matter/behaviors/BehaviorRegistry.js +110 -0
  79. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -0
  80. package/dist/matter/behaviors/ColorControlBehavior.d.ts +12 -0
  81. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
  82. package/dist/matter/behaviors/ColorControlBehavior.js +139 -0
  83. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -0
  84. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts +32 -0
  85. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts.map +1 -0
  86. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js +51 -0
  87. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js.map +1 -0
  88. package/dist/matter/behaviors/DoorLockBehavior.d.ts +7 -0
  89. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
  90. package/dist/matter/behaviors/DoorLockBehavior.js +48 -0
  91. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -0
  92. package/dist/matter/behaviors/FanControlBehavior.d.ts +7 -0
  93. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -0
  94. package/dist/matter/behaviors/FanControlBehavior.js +57 -0
  95. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -0
  96. package/dist/matter/behaviors/IdentifyBehavior.d.ts +7 -0
  97. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
  98. package/dist/matter/behaviors/IdentifyBehavior.js +25 -0
  99. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -0
  100. package/dist/matter/behaviors/LevelControlBehavior.d.ts +11 -0
  101. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
  102. package/dist/matter/behaviors/LevelControlBehavior.js +100 -0
  103. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -0
  104. package/dist/matter/behaviors/OnOffBehavior.d.ts +8 -0
  105. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
  106. package/dist/matter/behaviors/OnOffBehavior.js +60 -0
  107. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -0
  108. package/dist/matter/behaviors/RegistryManager.d.ts +15 -0
  109. package/dist/matter/behaviors/RegistryManager.d.ts.map +1 -0
  110. package/dist/matter/behaviors/RegistryManager.js +31 -0
  111. package/dist/matter/behaviors/RegistryManager.js.map +1 -0
  112. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +14 -0
  113. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -0
  114. package/dist/matter/behaviors/RvcCleanModeBehavior.js +29 -0
  115. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -0
  116. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +10 -0
  117. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
  118. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +81 -0
  119. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -0
  120. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +14 -0
  121. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -0
  122. package/dist/matter/behaviors/RvcRunModeBehavior.js +29 -0
  123. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -0
  124. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +9 -0
  125. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
  126. package/dist/matter/behaviors/ServiceAreaBehavior.js +62 -0
  127. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -0
  128. package/dist/matter/behaviors/ThermostatBehavior.d.ts +9 -0
  129. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
  130. package/dist/matter/behaviors/ThermostatBehavior.js +92 -0
  131. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -0
  132. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +12 -0
  133. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
  134. package/dist/matter/behaviors/WindowCoveringBehavior.js +108 -0
  135. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -0
  136. package/dist/matter/behaviors/index.d.ts +18 -0
  137. package/dist/matter/behaviors/index.d.ts.map +1 -0
  138. package/dist/matter/behaviors/index.js +17 -0
  139. package/dist/matter/behaviors/index.js.map +1 -0
  140. package/dist/matter/clusterTypes.d.ts +178 -0
  141. package/dist/matter/clusterTypes.d.ts.map +1 -0
  142. package/dist/matter/clusterTypes.js +2 -0
  143. package/dist/matter/clusterTypes.js.map +1 -0
  144. package/dist/matter/configValidator.d.ts +26 -0
  145. package/dist/matter/configValidator.d.ts.map +1 -0
  146. package/dist/matter/configValidator.js +173 -0
  147. package/dist/matter/configValidator.js.map +1 -0
  148. package/dist/matter/errorHandler.d.ts +11 -0
  149. package/dist/matter/errorHandler.d.ts.map +1 -0
  150. package/dist/matter/errorHandler.js +81 -0
  151. package/dist/matter/errorHandler.js.map +1 -0
  152. package/dist/matter/errors.d.ts +46 -0
  153. package/dist/matter/errors.d.ts.map +1 -0
  154. package/dist/matter/errors.js +68 -0
  155. package/dist/matter/errors.js.map +1 -0
  156. package/dist/matter/index.d.ts +97 -0
  157. package/dist/matter/index.d.ts.map +1 -0
  158. package/dist/matter/index.js +10 -0
  159. package/dist/matter/index.js.map +1 -0
  160. package/dist/matter/logFormatter.d.ts +2 -0
  161. package/dist/matter/logFormatter.d.ts.map +1 -0
  162. package/dist/matter/logFormatter.js +100 -0
  163. package/dist/matter/logFormatter.js.map +1 -0
  164. package/dist/matter/managerTypes.d.ts +57 -0
  165. package/dist/matter/managerTypes.d.ts.map +1 -0
  166. package/dist/matter/managerTypes.js +2 -0
  167. package/dist/matter/managerTypes.js.map +1 -0
  168. package/dist/matter/server.d.ts +112 -0
  169. package/dist/matter/server.d.ts.map +1 -0
  170. package/dist/matter/server.js +1508 -0
  171. package/dist/matter/server.js.map +1 -0
  172. package/dist/matter/serverHelpers.d.ts +31 -0
  173. package/dist/matter/serverHelpers.d.ts.map +1 -0
  174. package/dist/matter/serverHelpers.js +273 -0
  175. package/dist/matter/serverHelpers.js.map +1 -0
  176. package/dist/matter/sharedTypes.d.ts +93 -0
  177. package/dist/matter/sharedTypes.d.ts.map +1 -0
  178. package/dist/matter/sharedTypes.js +20 -0
  179. package/dist/matter/sharedTypes.js.map +1 -0
  180. package/dist/matter/storage.d.ts +45 -0
  181. package/dist/matter/storage.d.ts.map +1 -0
  182. package/dist/matter/storage.js +325 -0
  183. package/dist/matter/storage.js.map +1 -0
  184. package/dist/matter/typeHelpers.d.ts +15 -0
  185. package/dist/matter/typeHelpers.d.ts.map +1 -0
  186. package/dist/matter/typeHelpers.js +33 -0
  187. package/dist/matter/typeHelpers.js.map +1 -0
  188. package/dist/matter/types.d.ts +565 -0
  189. package/dist/matter/types.d.ts.map +1 -0
  190. package/dist/matter/types.js +132 -0
  191. package/dist/matter/types.js.map +1 -0
  192. package/dist/matter/utils.d.ts +13 -0
  193. package/dist/matter/utils.d.ts.map +1 -0
  194. package/dist/matter/utils.js +21 -0
  195. package/dist/matter/utils.js.map +1 -0
  196. package/{lib → dist}/platformAccessory.d.ts +8 -21
  197. package/dist/platformAccessory.d.ts.map +1 -0
  198. package/dist/platformAccessory.js +79 -0
  199. package/dist/platformAccessory.js.map +1 -0
  200. package/{lib → dist}/plugin.d.ts +2 -6
  201. package/dist/plugin.d.ts.map +1 -0
  202. package/dist/plugin.js +159 -0
  203. package/dist/plugin.js.map +1 -0
  204. package/{lib → dist}/pluginManager.d.ts +3 -25
  205. package/dist/pluginManager.d.ts.map +1 -0
  206. package/{lib → dist}/pluginManager.js +87 -115
  207. package/dist/pluginManager.js.map +1 -0
  208. package/{lib → dist}/server.d.ts +15 -20
  209. package/dist/server.d.ts.map +1 -0
  210. package/dist/server.js +732 -0
  211. package/dist/server.js.map +1 -0
  212. package/{lib → dist}/storageService.d.ts.map +1 -1
  213. package/dist/storageService.js +41 -0
  214. package/dist/storageService.js.map +1 -0
  215. package/{lib → dist}/user.d.ts +1 -3
  216. package/dist/user.d.ts.map +1 -0
  217. package/dist/user.js +29 -0
  218. package/dist/user.js.map +1 -0
  219. package/{lib → dist}/util/mac.d.ts +1 -0
  220. package/dist/util/mac.d.ts.map +1 -0
  221. package/dist/util/mac.js +13 -0
  222. package/dist/util/mac.js.map +1 -0
  223. package/dist/version.d.ts.map +1 -0
  224. package/dist/version.js +16 -0
  225. package/dist/version.js.map +1 -0
  226. package/package.json +49 -50
  227. package/bin/homebridge +0 -17
  228. package/lib/api.d.ts +0 -210
  229. package/lib/api.d.ts.map +0 -1
  230. package/lib/api.js +0 -155
  231. package/lib/api.js.map +0 -1
  232. package/lib/bridgeService.d.ts.map +0 -1
  233. package/lib/bridgeService.js +0 -426
  234. package/lib/bridgeService.js.map +0 -1
  235. package/lib/childBridgeFork.d.ts +0 -37
  236. package/lib/childBridgeFork.d.ts.map +0 -1
  237. package/lib/childBridgeFork.js +0 -244
  238. package/lib/childBridgeFork.js.map +0 -1
  239. package/lib/childBridgeService.d.ts +0 -199
  240. package/lib/childBridgeService.d.ts.map +0 -1
  241. package/lib/childBridgeService.js +0 -428
  242. package/lib/childBridgeService.js.map +0 -1
  243. package/lib/cli.d.ts +0 -4
  244. package/lib/cli.d.ts.map +0 -1
  245. package/lib/cli.js +0 -111
  246. package/lib/cli.js.map +0 -1
  247. package/lib/externalPortService.d.ts +0 -33
  248. package/lib/externalPortService.d.ts.map +0 -1
  249. package/lib/externalPortService.js +0 -64
  250. package/lib/externalPortService.js.map +0 -1
  251. package/lib/index.d.ts +0 -76
  252. package/lib/index.d.ts.map +0 -1
  253. package/lib/index.js +0 -72
  254. package/lib/index.js.map +0 -1
  255. package/lib/ipcService.d.ts +0 -33
  256. package/lib/ipcService.d.ts.map +0 -1
  257. package/lib/ipcService.js +0 -49
  258. package/lib/ipcService.js.map +0 -1
  259. package/lib/logger.d.ts +0 -78
  260. package/lib/logger.d.ts.map +0 -1
  261. package/lib/logger.js +0 -147
  262. package/lib/logger.js.map +0 -1
  263. package/lib/platformAccessory.d.ts.map +0 -1
  264. package/lib/platformAccessory.js +0 -102
  265. package/lib/platformAccessory.js.map +0 -1
  266. package/lib/plugin.d.ts.map +0 -1
  267. package/lib/plugin.js +0 -194
  268. package/lib/plugin.js.map +0 -1
  269. package/lib/pluginManager.d.ts.map +0 -1
  270. package/lib/pluginManager.js.map +0 -1
  271. package/lib/server.d.ts.map +0 -1
  272. package/lib/server.js +0 -457
  273. package/lib/server.js.map +0 -1
  274. package/lib/storageService.js +0 -70
  275. package/lib/storageService.js.map +0 -1
  276. package/lib/user.d.ts.map +0 -1
  277. package/lib/user.js +0 -36
  278. package/lib/user.js.map +0 -1
  279. package/lib/util/mac.d.ts.map +0 -1
  280. package/lib/util/mac.js +0 -20
  281. package/lib/util/mac.js.map +0 -1
  282. package/lib/version.d.ts.map +0 -1
  283. package/lib/version.js +0 -21
  284. package/lib/version.js.map +0 -1
  285. /package/{lib → dist}/storageService.d.ts +0 -0
  286. /package/{lib → dist}/version.d.ts +0 -0
@@ -0,0 +1,178 @@
1
+ import type { WindowCovering } from '@matter/main/clusters';
2
+ export interface ClusterState {
3
+ [key: string]: unknown;
4
+ }
5
+ export interface OnOffState {
6
+ onOff?: boolean;
7
+ }
8
+ export interface LevelControlState {
9
+ currentLevel?: number;
10
+ minLevel?: number;
11
+ maxLevel?: number;
12
+ remainingTime?: number;
13
+ onLevel?: number | null;
14
+ options?: number;
15
+ }
16
+ export interface ColorControlState {
17
+ colorTemperatureMireds?: number;
18
+ colorTempPhysicalMinMireds?: number;
19
+ colorTempPhysicalMaxMireds?: number;
20
+ currentHue?: number;
21
+ currentSaturation?: number;
22
+ enhancedCurrentHue?: number;
23
+ currentX?: number;
24
+ currentY?: number;
25
+ colorX?: number;
26
+ colorY?: number;
27
+ colorMode?: number;
28
+ enhancedColorMode?: number;
29
+ options?: number;
30
+ transitionTime?: number;
31
+ }
32
+ export interface ColorTemperatureState {
33
+ colorTemperatureMireds?: number;
34
+ }
35
+ export interface HueSaturationState {
36
+ currentHue?: number;
37
+ currentSaturation?: number;
38
+ }
39
+ export interface XYColorState {
40
+ currentX?: number;
41
+ currentY?: number;
42
+ }
43
+ export interface HueState {
44
+ currentHue?: number;
45
+ enhancedCurrentHue?: number;
46
+ }
47
+ export interface SaturationState {
48
+ currentSaturation?: number;
49
+ }
50
+ export interface WindowCoveringState {
51
+ type?: WindowCovering.WindowCoveringType;
52
+ configStatus?: {
53
+ operational?: boolean;
54
+ online?: boolean;
55
+ liftMovementReversed?: boolean;
56
+ liftPositionAware?: boolean;
57
+ tiltPositionAware?: boolean;
58
+ liftEncoderControlled?: boolean;
59
+ tiltEncoderControlled?: boolean;
60
+ };
61
+ targetPositionLiftPercent100ths?: number | null;
62
+ currentPositionLiftPercent100ths?: number | null;
63
+ targetPositionTiltPercent100ths?: number | null;
64
+ currentPositionTiltPercent100ths?: number | null;
65
+ operationalStatus?: number;
66
+ safetyStatus?: number;
67
+ mode?: number;
68
+ }
69
+ export interface FanControlState {
70
+ fanMode?: number;
71
+ fanModeSequence?: number;
72
+ percentSetting?: number | null;
73
+ percentCurrent?: number;
74
+ speedMax?: number;
75
+ speedSetting?: number | null;
76
+ speedCurrent?: number;
77
+ rockSupport?: number;
78
+ rockSetting?: number;
79
+ windSupport?: number;
80
+ windSetting?: number;
81
+ }
82
+ export interface ThermostatState {
83
+ localTemperature?: number | null;
84
+ outdoorTemperature?: number | null;
85
+ occupancy?: number;
86
+ absMinHeatSetpointLimit?: number;
87
+ absMaxHeatSetpointLimit?: number;
88
+ absMinCoolSetpointLimit?: number;
89
+ absMaxCoolSetpointLimit?: number;
90
+ occupiedCoolingSetpoint?: number;
91
+ occupiedHeatingSetpoint?: number;
92
+ unoccupiedCoolingSetpoint?: number;
93
+ unoccupiedHeatingSetpoint?: number;
94
+ minHeatSetpointLimit?: number;
95
+ maxHeatSetpointLimit?: number;
96
+ minCoolSetpointLimit?: number;
97
+ maxCoolSetpointLimit?: number;
98
+ minSetpointDeadBand?: number;
99
+ remoteSensing?: number;
100
+ controlSequenceOfOperation?: number;
101
+ systemMode?: number;
102
+ thermostatRunningMode?: number;
103
+ startOfWeek?: number;
104
+ numberOfWeeklyTransitions?: number;
105
+ numberOfDailyTransitions?: number;
106
+ }
107
+ export interface DoorLockState {
108
+ lockState?: number | null;
109
+ lockType?: number;
110
+ actuatorEnabled?: boolean;
111
+ doorState?: number | null;
112
+ doorOpenEvents?: number;
113
+ doorClosedEvents?: number;
114
+ openPeriod?: number;
115
+ }
116
+ export interface RvcOperationalState {
117
+ phaseList?: string[] | null;
118
+ currentPhase?: number | null;
119
+ countdownTime?: number | null;
120
+ operationalStateList?: Array<{
121
+ operationalStateId: number;
122
+ operationalStateLabel?: string;
123
+ }>;
124
+ operationalState?: number;
125
+ operationalError?: {
126
+ errorStateId: number;
127
+ errorStateLabel?: string;
128
+ errorStateDetails?: string;
129
+ };
130
+ }
131
+ export interface RvcRunModeState {
132
+ supportedModes?: Array<{
133
+ label: string;
134
+ mode: number;
135
+ modeTags?: Array<{
136
+ value: number;
137
+ }>;
138
+ }>;
139
+ currentMode?: number;
140
+ startUpMode?: number | null;
141
+ onMode?: number | null;
142
+ }
143
+ export interface RvcCleanModeState {
144
+ supportedModes?: Array<{
145
+ label: string;
146
+ mode: number;
147
+ modeTags?: Array<{
148
+ value: number;
149
+ }>;
150
+ }>;
151
+ currentMode?: number;
152
+ startUpMode?: number | null;
153
+ onMode?: number | null;
154
+ }
155
+ export interface ServiceAreaState {
156
+ supportedAreas?: Array<{
157
+ areaId: number;
158
+ mapId: number | null;
159
+ areaInfo: {
160
+ locationName?: string;
161
+ floorNumber?: number | null;
162
+ areaType?: number | null;
163
+ };
164
+ }>;
165
+ supportedMaps?: Array<{
166
+ mapId: number;
167
+ name: string;
168
+ }>;
169
+ selectedAreas?: number[];
170
+ currentArea?: number | null;
171
+ estimatedEndTime?: number | null;
172
+ progress?: Array<{
173
+ areaId: number;
174
+ status: number;
175
+ totalOperationalTime?: number | null;
176
+ }>;
177
+ }
178
+ //# sourceMappingURL=clusterTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clusterTypes.d.ts","sourceRoot":"","sources":["../../src/matter/clusterTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=clusterTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clusterTypes.js","sourceRoot":"","sources":["../../src/matter/clusterTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import type { AccessoryConfig, PlatformConfig } from '../bridgeService.js';
2
+ export interface PortValidationResult {
3
+ valid: boolean;
4
+ error?: string;
5
+ warning?: string;
6
+ }
7
+ export interface SanitizationResult<T> {
8
+ value: T;
9
+ warnings: string[];
10
+ }
11
+ export interface MatterConfigValidationResult {
12
+ isValid: boolean;
13
+ errors: string[];
14
+ warnings: string[];
15
+ }
16
+ export declare function validatePort(port: number, checkConflicts?: boolean): PortValidationResult;
17
+ export declare function sanitizeUniqueId(uniqueId: string): SanitizationResult<string>;
18
+ export declare function truncateString(value: string, maxLength: number, fieldName: string): SanitizationResult<string>;
19
+ export declare function checkPortProximity(hapPort: number, matterPort: number): string | undefined;
20
+ export declare class MatterConfigValidator {
21
+ static validate(config: Record<string, unknown>): MatterConfigValidationResult;
22
+ private static validatePort;
23
+ static validateChildMatterConfig(config: PlatformConfig | AccessoryConfig, configType: 'platform' | 'accessory', identifier: string): MatterConfigValidationResult;
24
+ static validateAllChildMatterConfigs(platforms: PlatformConfig[], accessories: AccessoryConfig[]): MatterConfigValidationResult;
25
+ }
26
+ //# sourceMappingURL=configValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../src/matter/configValidator.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAS1E,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAKD,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,KAAK,EAAE,CAAC,CAAA;IACR,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAaD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,oBAAoB,CAqBvF;AAWD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAuB7E;AAUD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,kBAAkB,CAAC,MAAM,CAAC,CAa5B;AASD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ1F;AASD,qBAAa,qBAAqB;IAIhC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,4BAA4B;IAyB9E,OAAO,CAAC,MAAM,CAAC,YAAY;IAoB3B,MAAM,CAAC,yBAAyB,CAC9B,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,UAAU,EAAE,UAAU,GAAG,WAAW,EACpC,UAAU,EAAE,MAAM,GACjB,4BAA4B;IAsD/B,MAAM,CAAC,6BAA6B,CAClC,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,EAAE,eAAe,EAAE,GAC7B,4BAA4B;CA2DhC"}
@@ -0,0 +1,173 @@
1
+ import { Logger } from '../logger.js';
2
+ const log = Logger.withPrefix('Matter/Config');
3
+ export function validatePort(port, checkConflicts = false) {
4
+ if (!Number.isInteger(port)) {
5
+ return { valid: false, error: `Port must be an integer (got: ${port})` };
6
+ }
7
+ if (port < 1025 || port > 65534) {
8
+ return { valid: false, error: `Port must be between 1025 and 65534 (got: ${port})` };
9
+ }
10
+ if (checkConflicts) {
11
+ const conflictPorts = [5353, 8080, 8443];
12
+ if (conflictPorts.includes(port)) {
13
+ return {
14
+ valid: true,
15
+ warning: `Port ${port} may conflict with other services. Consider using a different port.`,
16
+ };
17
+ }
18
+ }
19
+ return { valid: true };
20
+ }
21
+ export function sanitizeUniqueId(uniqueId) {
22
+ const warnings = [];
23
+ const original = uniqueId;
24
+ if (uniqueId.trim().length === 0) {
25
+ return {
26
+ value: '',
27
+ warnings: ['uniqueId is empty after trimming'],
28
+ };
29
+ }
30
+ const sanitized = uniqueId.replace(/:/g, '').toUpperCase();
31
+ if (sanitized !== original) {
32
+ warnings.push(`uniqueId was sanitized from "${original}" to "${sanitized}"`);
33
+ }
34
+ if (sanitized.length === 0) {
35
+ warnings.push('uniqueId resulted in empty string after sanitization');
36
+ }
37
+ return { value: sanitized, warnings };
38
+ }
39
+ export function truncateString(value, maxLength, fieldName) {
40
+ const warnings = [];
41
+ if (value.length > maxLength) {
42
+ warnings.push(`${fieldName} exceeds ${maxLength} characters, truncating: ${value}`);
43
+ log.warn(`${fieldName} exceeds ${maxLength} characters, truncating: ${value}`);
44
+ return {
45
+ value: value.slice(0, maxLength),
46
+ warnings,
47
+ };
48
+ }
49
+ return { value, warnings };
50
+ }
51
+ export function checkPortProximity(hapPort, matterPort) {
52
+ const MIN_PORT_SEPARATION = 10;
53
+ if (Math.abs(hapPort - matterPort) < MIN_PORT_SEPARATION) {
54
+ return `HAP port ${hapPort} and Matter port ${matterPort} are very close. Consider spacing them further apart.`;
55
+ }
56
+ return undefined;
57
+ }
58
+ export class MatterConfigValidator {
59
+ static validate(config) {
60
+ const result = {
61
+ isValid: true,
62
+ errors: [],
63
+ warnings: [],
64
+ };
65
+ this.validatePort(config, result);
66
+ result.isValid = result.errors.length === 0;
67
+ if (result.warnings.length > 0) {
68
+ log.warn('Matter configuration warnings:');
69
+ result.warnings.forEach(warning => log.warn(` - ${warning}`));
70
+ }
71
+ if (result.errors.length > 0) {
72
+ log.error('Matter configuration errors:');
73
+ result.errors.forEach(error => log.error(` - ${error}`));
74
+ }
75
+ return result;
76
+ }
77
+ static validatePort(config, result) {
78
+ const port = config.port;
79
+ if (port !== undefined && port !== null) {
80
+ if (typeof port === 'number') {
81
+ const validation = validatePort(port, true);
82
+ if (!validation.valid) {
83
+ result.errors.push(validation.error);
84
+ }
85
+ else if (validation.warning) {
86
+ result.warnings.push(validation.warning);
87
+ }
88
+ }
89
+ else {
90
+ result.errors.push(`Port must be a number, got ${typeof port}.`);
91
+ }
92
+ }
93
+ }
94
+ static validateChildMatterConfig(config, configType, identifier) {
95
+ const result = {
96
+ isValid: true,
97
+ errors: [],
98
+ warnings: [],
99
+ };
100
+ if (!config._bridge?.matter) {
101
+ return result;
102
+ }
103
+ const matterConfig = config._bridge.matter;
104
+ const prefix = `Child Matter bridge for ${configType} "${identifier}"`;
105
+ if (matterConfig.port !== undefined) {
106
+ const validation = validatePort(matterConfig.port, false);
107
+ if (!validation.valid) {
108
+ result.errors.push(`${prefix}: ${validation.error}`);
109
+ result.isValid = false;
110
+ }
111
+ }
112
+ else {
113
+ result.warnings.push(`${prefix}: No port specified. Port will be auto-allocated.`);
114
+ }
115
+ if (config._bridge && config._bridge.matter) {
116
+ if (config._bridge.port && matterConfig.port) {
117
+ const proximityWarning = checkPortProximity(config._bridge.port, matterConfig.port);
118
+ if (proximityWarning) {
119
+ result.warnings.push(`${prefix}: ${proximityWarning}`);
120
+ }
121
+ }
122
+ }
123
+ if (result.errors.length > 0) {
124
+ log.error(`${prefix} validation errors:`);
125
+ result.errors.forEach(error => log.error(` - ${error}`));
126
+ }
127
+ if (result.warnings.length > 0) {
128
+ log.warn(`${prefix} validation warnings:`);
129
+ result.warnings.forEach(warning => log.warn(` - ${warning}`));
130
+ }
131
+ return result;
132
+ }
133
+ static validateAllChildMatterConfigs(platforms, accessories) {
134
+ const result = {
135
+ isValid: true,
136
+ errors: [],
137
+ warnings: [],
138
+ };
139
+ const usedPorts = new Set();
140
+ for (const platform of platforms) {
141
+ if (platform._bridge?.matter) {
142
+ const validation = this.validateChildMatterConfig(platform, 'platform', platform.platform || 'unknown');
143
+ result.errors.push(...validation.errors);
144
+ result.warnings.push(...validation.warnings);
145
+ result.isValid = result.isValid && validation.isValid;
146
+ if (platform._bridge.matter.port) {
147
+ if (usedPorts.has(platform._bridge.matter.port)) {
148
+ result.errors.push(`Duplicate Matter port ${platform._bridge.matter.port} detected. Each Matter bridge must use a unique port.`);
149
+ result.isValid = false;
150
+ }
151
+ usedPorts.add(platform._bridge.matter.port);
152
+ }
153
+ }
154
+ }
155
+ for (const accessory of accessories) {
156
+ if (accessory._bridge?.matter) {
157
+ const validation = this.validateChildMatterConfig(accessory, 'accessory', accessory.accessory || 'unknown');
158
+ result.errors.push(...validation.errors);
159
+ result.warnings.push(...validation.warnings);
160
+ result.isValid = result.isValid && validation.isValid;
161
+ if (accessory._bridge.matter.port) {
162
+ if (usedPorts.has(accessory._bridge.matter.port)) {
163
+ result.errors.push(`Duplicate Matter port ${accessory._bridge.matter.port} detected. Each Matter bridge must use a unique port.`);
164
+ result.isValid = false;
165
+ }
166
+ usedPorts.add(accessory._bridge.matter.port);
167
+ }
168
+ }
169
+ }
170
+ return result;
171
+ }
172
+ }
173
+ //# sourceMappingURL=configValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configValidator.js","sourceRoot":"","sources":["../../src/matter/configValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { MatterError } from './types.js';
2
+ export declare class MatterErrorHandler {
3
+ private static instance;
4
+ private constructor();
5
+ static getInstance(): MatterErrorHandler;
6
+ handleError(error: Error | MatterError, context?: string): Promise<void>;
7
+ private categorizeError;
8
+ private logError;
9
+ }
10
+ export declare const errorHandler: MatterErrorHandler;
11
+ //# sourceMappingURL=errorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/matter/errorHandler.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,WAAW,EAIZ,MAAM,YAAY,CAAA;AAQnB,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAE3C,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,kBAAkB;IAUlC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9E,OAAO,CAAC,eAAe;IA4EvB,OAAO,CAAC,QAAQ;CA6BjB;AAGD,eAAO,MAAM,YAAY,oBAAmC,CAAA"}
@@ -0,0 +1,81 @@
1
+ import { Logger } from '../logger.js';
2
+ import { MatterCommissioningError, MatterDeviceError, MatterError, MatterErrorType, MatterNetworkError, MatterStorageError, } from './types.js';
3
+ const log = Logger.withPrefix('Matter/Errors');
4
+ export class MatterErrorHandler {
5
+ static instance;
6
+ constructor() { }
7
+ static getInstance() {
8
+ if (!MatterErrorHandler.instance) {
9
+ MatterErrorHandler.instance = new MatterErrorHandler();
10
+ }
11
+ return MatterErrorHandler.instance;
12
+ }
13
+ async handleError(error, context) {
14
+ const matterError = this.categorizeError(error, context);
15
+ this.logError(matterError);
16
+ }
17
+ categorizeError(error, context) {
18
+ if (error instanceof MatterError) {
19
+ return error;
20
+ }
21
+ const errorMessage = error.message.toLowerCase();
22
+ if (errorMessage.includes('eaddrinuse')) {
23
+ return new MatterNetworkError(`Port is already in use: ${error.message}`, { code: 'PORT_IN_USE', recoverable: false });
24
+ }
25
+ if (errorMessage.includes('econnrefused') || errorMessage.includes('etimedout')) {
26
+ return new MatterNetworkError(`Connection failed: ${error.message}`, { code: 'CONNECTION_FAILED', recoverable: true });
27
+ }
28
+ if (errorMessage.includes('commissioning') || errorMessage.includes('pairing')) {
29
+ return new MatterCommissioningError(`Commissioning error: ${error.message}`, { recoverable: false });
30
+ }
31
+ if (errorMessage.includes('storage') || errorMessage.includes('enoent') || errorMessage.includes('corrupted')) {
32
+ return new MatterStorageError(`Storage error: ${error.message}`, { recoverable: true });
33
+ }
34
+ if (errorMessage.includes('config') || errorMessage.includes('invalid')) {
35
+ return new MatterError(`Configuration error: ${error.message}`, 'CONFIGURATION_ERROR', { recoverable: false, type: MatterErrorType.CONFIGURATION });
36
+ }
37
+ if (context?.includes('sync') || context?.includes('device')) {
38
+ return new MatterDeviceError(`Device sync error: ${error.message}`, { recoverable: true, context });
39
+ }
40
+ if (context?.includes('server')) {
41
+ return new MatterError(`Server error: ${error.message}`, 'SERVER_ERROR', { recoverable: true, type: MatterErrorType.SERVER, context });
42
+ }
43
+ return new MatterError(error.message || 'Unknown Matter error', 'UNKNOWN_ERROR', { recoverable: false, type: MatterErrorType.UNKNOWN, originalError: error });
44
+ }
45
+ logError(error) {
46
+ if (error instanceof MatterNetworkError) {
47
+ if (error.details?.code === 'PORT_IN_USE') {
48
+ log.error('Matter port is already in use. Please configure a different port in your config.json.');
49
+ }
50
+ else {
51
+ log.warn(`Matter network error: ${error.message}`);
52
+ }
53
+ }
54
+ else if (error instanceof MatterCommissioningError) {
55
+ log.info(`Matter commissioning issue: ${error.message}`);
56
+ }
57
+ else if (error instanceof MatterDeviceError) {
58
+ log.debug(`Device sync error: ${error.message}`);
59
+ }
60
+ else if (error instanceof MatterStorageError) {
61
+ log.warn(`Matter storage error: ${error.message}`);
62
+ if (error.message.includes('corrupted')) {
63
+ log.warn('If this persists, you may need to delete the Matter storage directory and re-pair your devices.');
64
+ }
65
+ }
66
+ else if (error.code === 'CONFIGURATION_ERROR') {
67
+ log.error(`Matter configuration error: ${error.message}`);
68
+ }
69
+ else if (error.code === 'SERVER_ERROR') {
70
+ log.error(`Matter server error: ${error.message}`);
71
+ }
72
+ else {
73
+ log.error(`Matter error: ${error.message}`);
74
+ }
75
+ if (!error.recoverable && error.stack) {
76
+ log.debug('Stack trace:', error.stack);
77
+ }
78
+ }
79
+ }
80
+ export const errorHandler = MatterErrorHandler.getInstance();
81
+ //# sourceMappingURL=errorHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/matter/errorHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { Status, StatusResponseError } from '@matter/main/types';
2
+ export declare class MatterProtocolError extends StatusResponseError {
3
+ constructor(message: string, code: Status, clusterCode?: number);
4
+ }
5
+ export declare class Busy extends MatterProtocolError {
6
+ constructor(message?: string);
7
+ }
8
+ export declare class Timeout extends MatterProtocolError {
9
+ constructor(message?: string);
10
+ }
11
+ export declare class ConstraintError extends MatterProtocolError {
12
+ constructor(message?: string);
13
+ }
14
+ export declare class InvalidAction extends MatterProtocolError {
15
+ constructor(message?: string);
16
+ }
17
+ export declare class InvalidInState extends MatterProtocolError {
18
+ constructor(message?: string);
19
+ }
20
+ export declare class Failure extends MatterProtocolError {
21
+ constructor(message?: string);
22
+ }
23
+ export declare class ResourceExhausted extends MatterProtocolError {
24
+ constructor(message?: string);
25
+ }
26
+ export declare class PermissionDenied extends MatterProtocolError {
27
+ constructor(message?: string);
28
+ }
29
+ export declare class NotFound extends MatterProtocolError {
30
+ constructor(message?: string);
31
+ }
32
+ export declare function isMatterProtocolError(error: unknown): error is MatterProtocolError;
33
+ export declare const MatterStatus: {
34
+ MatterProtocolError: typeof MatterProtocolError;
35
+ Busy: typeof Busy;
36
+ Timeout: typeof Timeout;
37
+ ConstraintError: typeof ConstraintError;
38
+ InvalidAction: typeof InvalidAction;
39
+ InvalidInState: typeof InvalidInState;
40
+ Failure: typeof Failure;
41
+ ResourceExhausted: typeof ResourceExhausted;
42
+ PermissionDenied: typeof PermissionDenied;
43
+ NotFound: typeof NotFound;
44
+ isMatterProtocolError: typeof isMatterProtocolError;
45
+ };
46
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/matter/errors.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAMhE,qBAAa,mBAAoB,SAAQ,mBAAmB;gBAC9C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAGhE;AAYD,qBAAa,IAAK,SAAQ,mBAAmB;gBAC/B,OAAO,SAAmB;CAGvC;AAYD,qBAAa,OAAQ,SAAQ,mBAAmB;gBAClC,OAAO,SAAwB;CAG5C;AAYD,qBAAa,eAAgB,SAAQ,mBAAmB;gBAC1C,OAAO,SAAkC;CAGtD;AAYD,qBAAa,aAAc,SAAQ,mBAAmB;gBACxC,OAAO,SAA6B;CAGjD;AAYD,qBAAa,cAAe,SAAQ,mBAAmB;gBACzC,OAAO,SAA2C;CAG/D;AAYD,qBAAa,OAAQ,SAAQ,mBAAmB;gBAClC,OAAO,SAAqB;CAGzC;AAYD,qBAAa,iBAAkB,SAAQ,mBAAmB;gBAC5C,OAAO,SAA2B;CAG/C;AAYD,qBAAa,gBAAiB,SAAQ,mBAAmB;gBAC3C,OAAO,SAAsB;CAG1C;AAYD,qBAAa,QAAS,SAAQ,mBAAmB;gBACnC,OAAO,SAAqB;CAGzC;AAKD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF;AAQD,eAAO,MAAM,YAAY;;;;;;;;;;;;CAYxB,CAAA"}
@@ -0,0 +1,68 @@
1
+ import { Status, StatusResponseError } from '@matter/main/types';
2
+ export class MatterProtocolError extends StatusResponseError {
3
+ constructor(message, code, clusterCode) {
4
+ super(message, code, clusterCode);
5
+ }
6
+ }
7
+ export class Busy extends MatterProtocolError {
8
+ constructor(message = 'Device is busy') {
9
+ super(message, Status.Busy);
10
+ }
11
+ }
12
+ export class Timeout extends MatterProtocolError {
13
+ constructor(message = 'Operation timed out') {
14
+ super(message, Status.Timeout);
15
+ }
16
+ }
17
+ export class ConstraintError extends MatterProtocolError {
18
+ constructor(message = 'Value out of range or invalid') {
19
+ super(message, Status.ConstraintError);
20
+ }
21
+ }
22
+ export class InvalidAction extends MatterProtocolError {
23
+ constructor(message = 'Invalid action or values') {
24
+ super(message, Status.InvalidAction);
25
+ }
26
+ }
27
+ export class InvalidInState extends MatterProtocolError {
28
+ constructor(message = 'Operation not allowed in current state') {
29
+ super(message, Status.InvalidInState);
30
+ }
31
+ }
32
+ export class Failure extends MatterProtocolError {
33
+ constructor(message = 'Operation failed') {
34
+ super(message, Status.Failure);
35
+ }
36
+ }
37
+ export class ResourceExhausted extends MatterProtocolError {
38
+ constructor(message = 'Insufficient resources') {
39
+ super(message, Status.ResourceExhausted);
40
+ }
41
+ }
42
+ export class PermissionDenied extends MatterProtocolError {
43
+ constructor(message = 'Permission denied') {
44
+ super(message, Status.UnsupportedAccess);
45
+ }
46
+ }
47
+ export class NotFound extends MatterProtocolError {
48
+ constructor(message = 'Entity not found') {
49
+ super(message, Status.NotFound);
50
+ }
51
+ }
52
+ export function isMatterProtocolError(error) {
53
+ return error instanceof StatusResponseError;
54
+ }
55
+ export const MatterStatus = {
56
+ MatterProtocolError,
57
+ Busy,
58
+ Timeout,
59
+ ConstraintError,
60
+ InvalidAction,
61
+ InvalidInState,
62
+ Failure,
63
+ ResourceExhausted,
64
+ PermissionDenied,
65
+ NotFound,
66
+ isMatterProtocolError,
67
+ };
68
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/matter/errors.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAMhE,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;AAYD,MAAM,OAAO,IAAK,SAAQ,mBAAmB;IAC3C,YAAY,OAAO,GAAG,gBAAgB;QACpC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;CACF;AAYD,MAAM,OAAO,OAAQ,SAAQ,mBAAmB;IAC9C,YAAY,OAAO,GAAG,qBAAqB;QACzC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;CACF;AAYD,MAAM,OAAO,eAAgB,SAAQ,mBAAmB;IACtD,YAAY,OAAO,GAAG,+BAA+B;QACnD,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC;CACF;AAYD,MAAM,OAAO,aAAc,SAAQ,mBAAmB;IACpD,YAAY,OAAO,GAAG,0BAA0B;QAC9C,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;IACtC,CAAC;CACF;AAYD,MAAM,OAAO,cAAe,SAAQ,mBAAmB;IACrD,YAAY,OAAO,GAAG,wCAAwC;QAC5D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IACvC,CAAC;CACF;AAYD,MAAM,OAAO,OAAQ,SAAQ,mBAAmB;IAC9C,YAAY,OAAO,GAAG,kBAAkB;QACtC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;CACF;AAYD,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IACxD,YAAY,OAAO,GAAG,wBAAwB;QAC5C,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAC1C,CAAC;CACF;AAYD,MAAM,OAAO,gBAAiB,SAAQ,mBAAmB;IACvD,YAAY,OAAO,GAAG,mBAAmB;QACvC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAC1C,CAAC;CACF;AAYD,MAAM,OAAO,QAAS,SAAQ,mBAAmB;IAC/C,YAAY,OAAO,GAAG,kBAAkB;QACtC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;CACF;AAKD,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,KAAK,YAAY,mBAAmB,CAAA;AAC7C,CAAC;AAQD,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"}