homebridge 2.0.0-beta.44 → 2.0.0-beta.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/dist/api.d.ts +3 -365
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +13 -85
  4. package/dist/api.js.map +1 -1
  5. package/dist/bridgeService.d.ts +0 -25
  6. package/dist/bridgeService.d.ts.map +1 -1
  7. package/dist/bridgeService.js +32 -85
  8. package/dist/bridgeService.js.map +1 -1
  9. package/dist/childBridgeFork.d.ts +12 -15
  10. package/dist/childBridgeFork.d.ts.map +1 -1
  11. package/dist/childBridgeFork.js +126 -80
  12. package/dist/childBridgeFork.js.map +1 -1
  13. package/dist/childBridgeService.d.ts +21 -105
  14. package/dist/childBridgeService.d.ts.map +1 -1
  15. package/dist/childBridgeService.js +57 -134
  16. package/dist/childBridgeService.js.map +1 -1
  17. package/dist/cli.js +0 -2
  18. package/dist/cli.js.map +1 -1
  19. package/dist/externalPortService.d.ts +0 -21
  20. package/dist/externalPortService.d.ts.map +1 -1
  21. package/dist/externalPortService.js +0 -28
  22. package/dist/externalPortService.js.map +1 -1
  23. package/dist/index.d.ts +0 -112
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +0 -44
  26. package/dist/index.js.map +1 -1
  27. package/dist/ipcService.d.ts +23 -15
  28. package/dist/ipcService.d.ts.map +1 -1
  29. package/dist/ipcService.js +6 -12
  30. package/dist/ipcService.js.map +1 -1
  31. package/dist/logger.d.ts +0 -46
  32. package/dist/logger.d.ts.map +1 -1
  33. package/dist/logger.js +13 -57
  34. package/dist/logger.js.map +1 -1
  35. package/dist/matter/BaseMatterManager.d.ts +19 -0
  36. package/dist/matter/BaseMatterManager.d.ts.map +1 -0
  37. package/dist/matter/BaseMatterManager.js +170 -0
  38. package/dist/matter/BaseMatterManager.js.map +1 -0
  39. package/dist/matter/ChildBridgeMatterManager.d.ts +5 -69
  40. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -1
  41. package/dist/matter/ChildBridgeMatterManager.js +36 -227
  42. package/dist/matter/ChildBridgeMatterManager.js.map +1 -1
  43. package/dist/matter/ClusterCommandMapper.d.ts +5 -0
  44. package/dist/matter/ClusterCommandMapper.d.ts.map +1 -0
  45. package/dist/matter/ClusterCommandMapper.js +203 -0
  46. package/dist/matter/ClusterCommandMapper.js.map +1 -0
  47. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +0 -27
  48. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -1
  49. package/dist/matter/ExternalMatterAccessoryPublisher.js +2 -27
  50. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -1
  51. package/dist/matter/MatterAPIImpl.d.ts +0 -68
  52. package/dist/matter/MatterAPIImpl.d.ts.map +1 -1
  53. package/dist/matter/MatterAPIImpl.js +6 -106
  54. package/dist/matter/MatterAPIImpl.js.map +1 -1
  55. package/dist/matter/MatterBridgeManager.d.ts +9 -60
  56. package/dist/matter/MatterBridgeManager.d.ts.map +1 -1
  57. package/dist/matter/MatterBridgeManager.js +139 -215
  58. package/dist/matter/MatterBridgeManager.js.map +1 -1
  59. package/dist/matter/MatterConfigCollector.d.ts +1 -20
  60. package/dist/matter/MatterConfigCollector.d.ts.map +1 -1
  61. package/dist/matter/MatterConfigCollector.js +14 -27
  62. package/dist/matter/MatterConfigCollector.js.map +1 -1
  63. package/dist/matter/accessoryCache.d.ts +0 -48
  64. package/dist/matter/accessoryCache.d.ts.map +1 -1
  65. package/dist/matter/accessoryCache.js +1 -60
  66. package/dist/matter/accessoryCache.js.map +1 -1
  67. package/dist/matter/behaviors/AirQualityBehavior.d.ts +0 -42
  68. package/dist/matter/behaviors/AirQualityBehavior.d.ts.map +1 -1
  69. package/dist/matter/behaviors/AirQualityBehavior.js +0 -44
  70. package/dist/matter/behaviors/AirQualityBehavior.js.map +1 -1
  71. package/dist/matter/behaviors/BehaviorRegistry.d.ts +4 -42
  72. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -1
  73. package/dist/matter/behaviors/BehaviorRegistry.js +12 -42
  74. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -1
  75. package/dist/matter/behaviors/ColorControlBehavior.d.ts +0 -49
  76. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -1
  77. package/dist/matter/behaviors/ColorControlBehavior.js +0 -90
  78. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -1
  79. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts +0 -91
  80. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts.map +1 -1
  81. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js +0 -96
  82. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js.map +1 -1
  83. package/dist/matter/behaviors/DoorLockBehavior.d.ts +0 -11
  84. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -1
  85. package/dist/matter/behaviors/DoorLockBehavior.js +0 -25
  86. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -1
  87. package/dist/matter/behaviors/FanControlBehavior.d.ts +0 -11
  88. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -1
  89. package/dist/matter/behaviors/FanControlBehavior.js +0 -25
  90. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -1
  91. package/dist/matter/behaviors/IdentifyBehavior.d.ts +0 -11
  92. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -1
  93. package/dist/matter/behaviors/IdentifyBehavior.js +0 -17
  94. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -1
  95. package/dist/matter/behaviors/LevelControlBehavior.d.ts +0 -20
  96. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -1
  97. package/dist/matter/behaviors/LevelControlBehavior.js +0 -52
  98. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -1
  99. package/dist/matter/behaviors/OnOffBehavior.d.ts +0 -17
  100. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -1
  101. package/dist/matter/behaviors/OnOffBehavior.js +0 -38
  102. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -1
  103. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +0 -11
  104. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -1
  105. package/dist/matter/behaviors/RvcCleanModeBehavior.js +0 -17
  106. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -1
  107. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +0 -11
  108. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -1
  109. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +0 -29
  110. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -1
  111. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +0 -11
  112. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -1
  113. package/dist/matter/behaviors/RvcRunModeBehavior.js +0 -17
  114. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -1
  115. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +0 -11
  116. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -1
  117. package/dist/matter/behaviors/ServiceAreaBehavior.js +0 -23
  118. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -1
  119. package/dist/matter/behaviors/ThermostatBehavior.d.ts +0 -11
  120. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -1
  121. package/dist/matter/behaviors/ThermostatBehavior.js +0 -39
  122. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -1
  123. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +0 -17
  124. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -1
  125. package/dist/matter/behaviors/WindowCoveringBehavior.js +0 -56
  126. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -1
  127. package/dist/matter/behaviors/index.d.ts +0 -5
  128. package/dist/matter/behaviors/index.d.ts.map +1 -1
  129. package/dist/matter/behaviors/index.js +0 -5
  130. package/dist/matter/behaviors/index.js.map +1 -1
  131. package/dist/matter/configValidator.d.ts +0 -55
  132. package/dist/matter/configValidator.d.ts.map +1 -1
  133. package/dist/matter/configValidator.js +1 -68
  134. package/dist/matter/configValidator.js.map +1 -1
  135. package/dist/matter/errorHandler.d.ts +0 -22
  136. package/dist/matter/errorHandler.d.ts.map +1 -1
  137. package/dist/matter/errorHandler.js +0 -32
  138. package/dist/matter/errorHandler.js.map +1 -1
  139. package/dist/matter/errors.d.ts +0 -132
  140. package/dist/matter/errors.d.ts.map +1 -1
  141. package/dist/matter/errors.js +0 -132
  142. package/dist/matter/errors.js.map +1 -1
  143. package/dist/matter/index.d.ts +0 -30
  144. package/dist/matter/index.d.ts.map +1 -1
  145. package/dist/matter/index.js +0 -13
  146. package/dist/matter/index.js.map +1 -1
  147. package/dist/matter/logFormatter.d.ts +0 -17
  148. package/dist/matter/logFormatter.d.ts.map +1 -1
  149. package/dist/matter/logFormatter.js +5 -63
  150. package/dist/matter/logFormatter.js.map +1 -1
  151. package/dist/matter/server.d.ts +12 -236
  152. package/dist/matter/server.d.ts.map +1 -1
  153. package/dist/matter/server.js +177 -488
  154. package/dist/matter/server.js.map +1 -1
  155. package/dist/matter/serverHelpers.d.ts +0 -56
  156. package/dist/matter/serverHelpers.d.ts.map +1 -1
  157. package/dist/matter/serverHelpers.js +1 -66
  158. package/dist/matter/serverHelpers.js.map +1 -1
  159. package/dist/matter/sharedTypes.d.ts +0 -83
  160. package/dist/matter/sharedTypes.d.ts.map +1 -1
  161. package/dist/matter/sharedTypes.js +0 -26
  162. package/dist/matter/sharedTypes.js.map +1 -1
  163. package/dist/matter/storage.d.ts +0 -90
  164. package/dist/matter/storage.d.ts.map +1 -1
  165. package/dist/matter/storage.js +2 -130
  166. package/dist/matter/storage.js.map +1 -1
  167. package/dist/matter/typeHelpers.d.ts +0 -30
  168. package/dist/matter/typeHelpers.d.ts.map +1 -1
  169. package/dist/matter/typeHelpers.js +0 -24
  170. package/dist/matter/typeHelpers.js.map +1 -1
  171. package/dist/matter/types.d.ts +0 -273
  172. package/dist/matter/types.d.ts.map +1 -1
  173. package/dist/matter/types.js +0 -83
  174. package/dist/matter/types.js.map +1 -1
  175. package/dist/platformAccessory.d.ts +0 -15
  176. package/dist/platformAccessory.d.ts.map +1 -1
  177. package/dist/platformAccessory.js +6 -32
  178. package/dist/platformAccessory.js.map +1 -1
  179. package/dist/plugin.d.ts +0 -3
  180. package/dist/plugin.d.ts.map +1 -1
  181. package/dist/plugin.js +6 -29
  182. package/dist/plugin.js.map +1 -1
  183. package/dist/pluginManager.d.ts +0 -22
  184. package/dist/pluginManager.d.ts.map +1 -1
  185. package/dist/pluginManager.js +18 -41
  186. package/dist/pluginManager.js.map +1 -1
  187. package/dist/server.d.ts +9 -29
  188. package/dist/server.d.ts.map +1 -1
  189. package/dist/server.js +304 -157
  190. package/dist/server.js.map +1 -1
  191. package/dist/user.d.ts +0 -3
  192. package/dist/user.d.ts.map +1 -1
  193. package/dist/user.js +2 -5
  194. package/dist/user.js.map +1 -1
  195. package/dist/util/mac.js +0 -1
  196. package/dist/util/mac.js.map +1 -1
  197. package/package.json +4 -4
  198. package/dist/api.spec.d.ts +0 -2
  199. package/dist/api.spec.d.ts.map +0 -1
  200. package/dist/api.spec.js +0 -413
  201. package/dist/api.spec.js.map +0 -1
  202. package/dist/logger.spec.d.ts +0 -2
  203. package/dist/logger.spec.d.ts.map +0 -1
  204. package/dist/logger.spec.js +0 -95
  205. package/dist/logger.spec.js.map +0 -1
  206. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +0 -2
  207. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +0 -1
  208. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +0 -293
  209. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +0 -1
  210. package/dist/matter/accessoryCache.spec.d.ts +0 -2
  211. package/dist/matter/accessoryCache.spec.d.ts.map +0 -1
  212. package/dist/matter/accessoryCache.spec.js +0 -452
  213. package/dist/matter/accessoryCache.spec.js.map +0 -1
  214. package/dist/matter/behaviors/AirQualityBehavior.spec.d.ts +0 -5
  215. package/dist/matter/behaviors/AirQualityBehavior.spec.d.ts.map +0 -1
  216. package/dist/matter/behaviors/AirQualityBehavior.spec.js +0 -46
  217. package/dist/matter/behaviors/AirQualityBehavior.spec.js.map +0 -1
  218. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +0 -2
  219. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +0 -1
  220. package/dist/matter/behaviors/BehaviorRegistry.spec.js +0 -307
  221. package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +0 -1
  222. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +0 -2
  223. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +0 -1
  224. package/dist/matter/behaviors/ColorControlBehavior.spec.js +0 -29
  225. package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +0 -1
  226. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.d.ts +0 -5
  227. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.d.ts.map +0 -1
  228. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.js +0 -95
  229. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.js.map +0 -1
  230. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +0 -2
  231. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +0 -1
  232. package/dist/matter/behaviors/DoorLockBehavior.spec.js +0 -120
  233. package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +0 -1
  234. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +0 -2
  235. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +0 -1
  236. package/dist/matter/behaviors/FanControlBehavior.spec.js +0 -23
  237. package/dist/matter/behaviors/FanControlBehavior.spec.js.map +0 -1
  238. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +0 -2
  239. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +0 -1
  240. package/dist/matter/behaviors/IdentifyBehavior.spec.js +0 -64
  241. package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +0 -1
  242. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +0 -2
  243. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +0 -1
  244. package/dist/matter/behaviors/LevelControlBehavior.spec.js +0 -145
  245. package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +0 -1
  246. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +0 -2
  247. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +0 -1
  248. package/dist/matter/behaviors/OnOffBehavior.spec.js +0 -128
  249. package/dist/matter/behaviors/OnOffBehavior.spec.js.map +0 -1
  250. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +0 -2
  251. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +0 -1
  252. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +0 -57
  253. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +0 -1
  254. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +0 -2
  255. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +0 -1
  256. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +0 -55
  257. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +0 -1
  258. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +0 -2
  259. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +0 -1
  260. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +0 -57
  261. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +0 -1
  262. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +0 -2
  263. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +0 -1
  264. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +0 -53
  265. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +0 -1
  266. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +0 -2
  267. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +0 -1
  268. package/dist/matter/behaviors/ThermostatBehavior.spec.js +0 -23
  269. package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +0 -1
  270. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +0 -2
  271. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +0 -1
  272. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +0 -27
  273. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +0 -1
  274. package/dist/matter/configValidator.spec.d.ts +0 -2
  275. package/dist/matter/configValidator.spec.d.ts.map +0 -1
  276. package/dist/matter/configValidator.spec.js +0 -390
  277. package/dist/matter/configValidator.spec.js.map +0 -1
  278. package/dist/matter/errorHandler.spec.d.ts +0 -2
  279. package/dist/matter/errorHandler.spec.d.ts.map +0 -1
  280. package/dist/matter/errorHandler.spec.js +0 -159
  281. package/dist/matter/errorHandler.spec.js.map +0 -1
  282. package/dist/matter/logFormatter.spec.d.ts +0 -2
  283. package/dist/matter/logFormatter.spec.d.ts.map +0 -1
  284. package/dist/matter/logFormatter.spec.js +0 -252
  285. package/dist/matter/logFormatter.spec.js.map +0 -1
  286. package/dist/matter/serverHelpers.spec.d.ts +0 -2
  287. package/dist/matter/serverHelpers.spec.d.ts.map +0 -1
  288. package/dist/matter/serverHelpers.spec.js +0 -527
  289. package/dist/matter/serverHelpers.spec.js.map +0 -1
  290. package/dist/matter/storage.spec.d.ts +0 -2
  291. package/dist/matter/storage.spec.d.ts.map +0 -1
  292. package/dist/matter/storage.spec.js +0 -570
  293. package/dist/matter/storage.spec.js.map +0 -1
  294. package/dist/matter/typeHelpers.spec.d.ts +0 -2
  295. package/dist/matter/typeHelpers.spec.d.ts.map +0 -1
  296. package/dist/matter/typeHelpers.spec.js +0 -127
  297. package/dist/matter/typeHelpers.spec.js.map +0 -1
  298. package/dist/platformAccessory.spec.d.ts +0 -2
  299. package/dist/platformAccessory.spec.d.ts.map +0 -1
  300. package/dist/platformAccessory.spec.js +0 -126
  301. package/dist/platformAccessory.spec.js.map +0 -1
  302. package/dist/pluginManager.spec.d.ts +0 -2
  303. package/dist/pluginManager.spec.d.ts.map +0 -1
  304. package/dist/pluginManager.spec.js +0 -43
  305. package/dist/pluginManager.spec.js.map +0 -1
  306. package/dist/server.spec.d.ts +0 -2
  307. package/dist/server.spec.d.ts.map +0 -1
  308. package/dist/server.spec.js +0 -57
  309. package/dist/server.spec.js.map +0 -1
  310. package/dist/user.spec.d.ts +0 -2
  311. package/dist/user.spec.d.ts.map +0 -1
  312. package/dist/user.spec.js +0 -31
  313. package/dist/user.spec.js.map +0 -1
  314. package/dist/util/mac.spec.d.ts +0 -2
  315. package/dist/util/mac.spec.d.ts.map +0 -1
  316. package/dist/util/mac.spec.js +0 -36
  317. package/dist/util/mac.spec.js.map +0 -1
  318. package/dist/version.spec.d.ts +0 -2
  319. package/dist/version.spec.d.ts.map +0 -1
  320. package/dist/version.spec.js +0 -20
  321. package/dist/version.spec.js.map +0 -1
@@ -1,127 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { isDeviceType, isExtendableBehaviorType, isExtendableEndpointType, withBehaviors, withFeatures, } from './typeHelpers.js';
3
- describe('typeHelpers', () => {
4
- describe('isExtendableEndpointType', () => {
5
- it('should return true for endpoint types with .with() method', () => {
6
- const mockEndpoint = {
7
- with: () => mockEndpoint,
8
- };
9
- expect(isExtendableEndpointType(mockEndpoint)).toBe(true);
10
- });
11
- it('should return false for endpoint types without .with() method', () => {
12
- const mockEndpoint = {};
13
- expect(isExtendableEndpointType(mockEndpoint)).toBe(false);
14
- });
15
- it('should return false when .with() is not a function', () => {
16
- const mockEndpoint = {
17
- with: 'not a function',
18
- };
19
- expect(isExtendableEndpointType(mockEndpoint)).toBe(false);
20
- });
21
- });
22
- describe('isExtendableBehaviorType', () => {
23
- it('should return true for behavior types with .with() method', () => {
24
- const mockBehavior = {
25
- with: () => mockBehavior,
26
- };
27
- expect(isExtendableBehaviorType(mockBehavior)).toBe(true);
28
- });
29
- it('should return false for behavior types without .with() method', () => {
30
- const mockBehavior = {};
31
- expect(isExtendableBehaviorType(mockBehavior)).toBe(false);
32
- });
33
- it('should return false when .with() is not a function', () => {
34
- const mockBehavior = {
35
- with: 'not a function',
36
- };
37
- expect(isExtendableBehaviorType(mockBehavior)).toBe(false);
38
- });
39
- });
40
- describe('withBehaviors', () => {
41
- it('should return the same device type when no behaviors are provided', () => {
42
- const mockDevice = {};
43
- const result = withBehaviors(mockDevice, []);
44
- expect(result).toBe(mockDevice);
45
- });
46
- it('should call .with() when device type is extendable', () => {
47
- const mockBehavior1 = { id: 'behavior1' };
48
- const mockBehavior2 = { id: 'behavior2' };
49
- const extendedDevice = { name: 'ExtendedDevice' };
50
- const mockDevice = {
51
- with: (...behaviors) => {
52
- expect(behaviors).toEqual([mockBehavior1, mockBehavior2]);
53
- return extendedDevice;
54
- },
55
- };
56
- const result = withBehaviors(mockDevice, [mockBehavior1, mockBehavior2]);
57
- expect(result).toBe(extendedDevice);
58
- });
59
- it('should throw error when device type is not extendable', () => {
60
- const mockDevice = {};
61
- const mockBehavior = { id: 'behavior' };
62
- expect(() => withBehaviors(mockDevice, [mockBehavior])).toThrow('Device type does not support adding behaviors');
63
- });
64
- });
65
- describe('withFeatures', () => {
66
- it('should return the same behavior when no features are provided', () => {
67
- const mockBehavior = {};
68
- const result = withFeatures(mockBehavior, []);
69
- expect(result).toBe(mockBehavior);
70
- });
71
- it('should call .with() when behavior is extendable', () => {
72
- const extendedBehavior = { features: ['Feature1', 'Feature2'] };
73
- const mockBehavior = {
74
- with: (...features) => {
75
- expect(features).toEqual(['Feature1', 'Feature2']);
76
- return extendedBehavior;
77
- },
78
- };
79
- const result = withFeatures(mockBehavior, ['Feature1', 'Feature2']);
80
- expect(result).toBe(extendedBehavior);
81
- });
82
- it('should throw error when behavior is not extendable', () => {
83
- const mockBehavior = {};
84
- expect(() => withFeatures(mockBehavior, ['Feature1'])).toThrow('Behavior does not support adding features');
85
- });
86
- });
87
- describe('isDeviceType', () => {
88
- it('should return true for direct reference comparison', () => {
89
- const mockDevice = { name: 'TestDevice' };
90
- expect(isDeviceType(mockDevice, mockDevice)).toBe(true);
91
- });
92
- it('should return true when device names match', () => {
93
- const mockDevice1 = { name: 'TestDevice' };
94
- const mockDevice2 = { name: 'TestDevice' };
95
- expect(isDeviceType(mockDevice1, mockDevice2)).toBe(true);
96
- });
97
- it('should return false when device names differ', () => {
98
- const mockDevice1 = { name: 'DeviceA' };
99
- const mockDevice2 = { name: 'DeviceB' };
100
- expect(isDeviceType(mockDevice1, mockDevice2)).toBe(false);
101
- });
102
- it('should return false when device type has no name', () => {
103
- const mockDevice1 = {};
104
- const mockDevice2 = { name: 'TestDevice' };
105
- expect(isDeviceType(mockDevice1, mockDevice2)).toBe(false);
106
- });
107
- it('should return false when target type has no name', () => {
108
- const mockDevice1 = { name: 'TestDevice' };
109
- const mockDevice2 = {};
110
- expect(isDeviceType(mockDevice1, mockDevice2)).toBe(false);
111
- });
112
- it('should return false when neither device has a name', () => {
113
- const mockDevice1 = {};
114
- const mockDevice2 = {};
115
- expect(isDeviceType(mockDevice1, mockDevice2)).toBe(false);
116
- });
117
- it('should handle modified types with same name', () => {
118
- const baseDevice = { name: 'OnOffLight' };
119
- const modifiedDevice = {
120
- name: 'OnOffLight',
121
- with: () => modifiedDevice,
122
- };
123
- expect(isDeviceType(modifiedDevice, baseDevice)).toBe(true);
124
- });
125
- });
126
- });
127
- //# sourceMappingURL=typeHelpers.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeHelpers.spec.js","sourceRoot":"","sources":["../../src/matter/typeHelpers.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=platformAccessory.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platformAccessory.spec.d.ts","sourceRoot":"","sources":["../src/platformAccessory.spec.ts"],"names":[],"mappings":""}
@@ -1,126 +0,0 @@
1
- import { Accessory, RemoteController, Service, uuid, } from 'hap-nodejs';
2
- import { describe, expect, it, vi } from 'vitest';
3
- import { PlatformAccessory } from './platformAccessory.js';
4
- function createAccessory(name = 'TestAccessory', category) {
5
- const accessoryUUID = uuid.generate(`test.uuid.${name}`);
6
- const accessory = new PlatformAccessory(name, accessoryUUID, category);
7
- accessory._associatedPlatform = 'TestPlatform';
8
- accessory._associatedPlugin = 'TestPlugin';
9
- accessory.context = {
10
- test: 'context',
11
- doing: 234,
12
- };
13
- return accessory;
14
- }
15
- describe('platformAccessory', () => {
16
- describe('properties', () => {
17
- it('should mirror displayName correctly', () => {
18
- const accessory = createAccessory('TestName');
19
- expect(accessory._associatedHAPAccessory.displayName).toBe(accessory.displayName);
20
- expect(accessory.displayName).toBe('TestName');
21
- });
22
- it('should mirror UUID correctly', () => {
23
- const accessory = createAccessory('TestName');
24
- expect(accessory._associatedHAPAccessory.UUID).toBe(accessory.UUID);
25
- expect(accessory.UUID).toBe(uuid.generate('test.uuid.TestName'));
26
- });
27
- it('should mirror category correctly', () => {
28
- const accessory = createAccessory('TestName', 24 /* Categories.APPLE_TV */);
29
- expect(accessory._associatedHAPAccessory.category).toBe(accessory.category);
30
- expect(accessory.category).toBe(24 /* Categories.APPLE_TV */);
31
- });
32
- it('should mirror services correctly', () => {
33
- const accessory = createAccessory('TestName');
34
- expect(accessory._associatedHAPAccessory.services).toStrictEqual(accessory.services);
35
- expect(accessory.services.length).toBe(1);
36
- });
37
- });
38
- describe('platformAccessory.prototype.updateDisplayName', () => {
39
- it('should mirror displayName correctly', () => {
40
- const accessory = createAccessory('TestName');
41
- accessory.updateDisplayName('NewTestName');
42
- expect(accessory._associatedHAPAccessory.displayName).toBe(accessory.displayName);
43
- expect(accessory.displayName).toBe('NewTestName');
44
- });
45
- });
46
- describe('platformAccessory.prototype.addService', () => {
47
- it('should forward add service', () => {
48
- const accessory = createAccessory();
49
- const service = new Service.Switch();
50
- const spy = vi.spyOn(accessory._associatedHAPAccessory, 'addService');
51
- expect(accessory.services.length).toBe(1); // AccessoryInformation service
52
- expect(accessory.services.includes(service)).toBeFalsy();
53
- accessory.addService(service);
54
- expect(accessory.services.length).toBe(2); // ensure our reference is valid
55
- expect(accessory.services.includes(service)).toBeTruthy();
56
- expect(spy).toHaveBeenCalledWith(service); // ensure HAP got called
57
- });
58
- });
59
- describe('platformAccessory.prototype.removeService', () => {
60
- it('should forward remove service', () => {
61
- const accessory = createAccessory();
62
- const service = new Service.Switch();
63
- const spy = vi.spyOn(accessory._associatedHAPAccessory, 'removeService');
64
- accessory.removeService(service);
65
- expect(spy).toHaveBeenCalledWith(service);
66
- });
67
- });
68
- describe('platformAccessory.prototype.getService', () => {
69
- it('should retrieve AccessoryInformation service', () => {
70
- const accessory = createAccessory();
71
- const requested = Service.AccessoryInformation;
72
- const spy = vi.spyOn(accessory._associatedHAPAccessory, 'getService');
73
- const service = accessory.getService(requested);
74
- expect(spy).toHaveBeenCalledWith(requested);
75
- expect(service).toBeDefined();
76
- expect(service.UUID).toBe(requested.UUID);
77
- });
78
- });
79
- describe('platformAccessory.prototype.getServiceById', () => {
80
- it('should forward service retrieval by id', () => {
81
- const accessory = createAccessory();
82
- const spy = vi.spyOn(accessory._associatedHAPAccessory, 'getServiceById');
83
- const result = accessory.getServiceById(Service.Switch, 'customSubType');
84
- expect(result).toBeUndefined();
85
- expect(spy).toHaveBeenCalledWith(Service.Switch, 'customSubType');
86
- });
87
- });
88
- describe('platformAccessory.prototype.configureController', () => {
89
- it('should forward configureController correctly', () => {
90
- const accessory = createAccessory();
91
- const spy = vi.spyOn(accessory._associatedHAPAccessory, 'configureController').mockImplementationOnce(() => {
92
- // do nothing
93
- });
94
- const controller = new RemoteController();
95
- accessory.configureController(controller);
96
- expect(spy).toHaveBeenCalledWith(controller);
97
- });
98
- });
99
- describe('platformAccessory.serialize', () => {
100
- it('should serialize accessory correctly', () => {
101
- const accessory = createAccessory();
102
- accessory.addService(Service.Lightbulb);
103
- const spy = vi.spyOn(Accessory, 'serialize');
104
- const json = PlatformAccessory.serialize(accessory);
105
- expect(json.platform).toBe(accessory._associatedPlatform);
106
- expect(json.plugin).toBe(accessory._associatedPlugin);
107
- expect(json.context).toStrictEqual(accessory.context);
108
- expect(spy).toHaveBeenCalledWith(accessory._associatedHAPAccessory);
109
- });
110
- });
111
- describe('platformAccessory.deserialize', () => {
112
- it('should deserialize serialized accessory correctly', () => {
113
- const accessory = createAccessory();
114
- accessory.addService(Service.Lightbulb);
115
- const json = PlatformAccessory.serialize(accessory);
116
- const reconstructed = PlatformAccessory.deserialize(json);
117
- expect(reconstructed._associatedPlugin).toBe(accessory._associatedPlugin);
118
- expect(reconstructed._associatedPlatform).toBe(accessory._associatedPlatform);
119
- expect(reconstructed.displayName).toBe(accessory.displayName);
120
- expect(reconstructed.UUID).toBe(accessory.UUID);
121
- expect(reconstructed.category).toBe(accessory.category);
122
- expect(reconstructed.context).toBe(accessory.context);
123
- });
124
- });
125
- });
126
- //# sourceMappingURL=platformAccessory.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platformAccessory.spec.js","sourceRoot":"","sources":["../src/platformAccessory.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=pluginManager.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pluginManager.spec.d.ts","sourceRoot":"","sources":["../src/pluginManager.spec.ts"],"names":[],"mappings":""}
@@ -1,43 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { PluginManager } from './pluginManager.js';
3
- describe('pluginManager', () => {
4
- describe('pluginManager.isQualifiedPluginIdentifier', () => {
5
- it('should match normal plugin names', () => {
6
- expect(PluginManager.isQualifiedPluginIdentifier('homebridge-dummy-plugin')).toBeTruthy();
7
- });
8
- it('should match scoped plugin names', () => {
9
- expect(PluginManager.isQualifiedPluginIdentifier('@organisation/homebridge-dummy-plugin')).toBeTruthy();
10
- });
11
- });
12
- describe('pluginManager.extractPluginName', () => {
13
- it('should extract normal plugin names', () => {
14
- expect(PluginManager.extractPluginName('homebridge-dummy-plugin')).toBe('homebridge-dummy-plugin');
15
- });
16
- it('should extract scoped plugin names', () => {
17
- expect(PluginManager.extractPluginName('@organisation/homebridge-dummy-plugin')).toBe('homebridge-dummy-plugin');
18
- });
19
- });
20
- describe('pluginManager.extractPluginScope', () => {
21
- it('should extract undefined for normal plugin names', () => {
22
- expect(PluginManager.extractPluginScope('homebridge-dummy-plugin')).toBeUndefined();
23
- });
24
- it('should extract scope for scoped plugin names', () => {
25
- expect(PluginManager.extractPluginScope('@organisation/homebridge-dummy-plugin')).toBe('@organisation');
26
- });
27
- });
28
- describe('...Name', () => {
29
- it('should extract accessory name correctly', () => {
30
- const accessoryId = 'homebridge-example-accessory.example';
31
- expect(PluginManager.getAccessoryName(accessoryId)).toBe('example');
32
- });
33
- it('should extract platform name correctly', () => {
34
- const accessoryId = 'homebridge-example-platform.example';
35
- expect(PluginManager.getPlatformName(accessoryId)).toBe('example');
36
- });
37
- it('should extract plugin name correctly', () => {
38
- const accessoryId = 'homebridge-example-plugin.example';
39
- expect(PluginManager.getPluginIdentifier(accessoryId)).toBe('homebridge-example-plugin');
40
- });
41
- });
42
- });
43
- //# sourceMappingURL=pluginManager.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pluginManager.spec.js","sourceRoot":"","sources":["../src/pluginManager.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACzD,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC,yBAAyB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QAC3F,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC,uCAAuC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QACzG,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QACpG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,uCAAuC,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAClH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QACrF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,uCAAuC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACzG,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,WAAW,GAAG,sCAAsC,CAAA;YAC1D,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,WAAW,GAAG,qCAAqC,CAAA;YACzD,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,WAAW,GAAG,mCAAmC,CAAA;YACvD,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;QAC1F,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=server.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.spec.d.ts","sourceRoot":"","sources":["../src/server.spec.ts"],"names":[],"mappings":""}
@@ -1,57 +0,0 @@
1
- import path, { dirname } from 'node:path';
2
- import { fileURLToPath } from 'node:url';
3
- import fs from 'fs-extra';
4
- import { HAPStorage } from 'hap-nodejs';
5
- import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
6
- import { Server } from './server.js';
7
- import { User } from './user.js';
8
- const __filename = fileURLToPath(import.meta.url);
9
- const __dirname = dirname(__filename);
10
- describe('server', () => {
11
- const homebridgeStorageFolder = path.resolve(__dirname, '../mock');
12
- const configPath = path.resolve(homebridgeStorageFolder, 'config.json');
13
- let consoleErrorSpy;
14
- let consoleLogSpy;
15
- const mockConfig = {
16
- bridge: {
17
- username: 'CC:22:3D:E3:CE:30',
18
- pin: '031-45-154',
19
- name: 'Homebridge',
20
- advertiser: 'ciao',
21
- },
22
- accessories: [],
23
- platforms: [],
24
- };
25
- beforeAll(async () => {
26
- consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
27
- consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
28
- await fs.ensureDir(homebridgeStorageFolder);
29
- await fs.writeJson(configPath, mockConfig);
30
- User.setStoragePath(homebridgeStorageFolder);
31
- HAPStorage.setCustomStoragePath(User.persistPath());
32
- });
33
- beforeEach(() => {
34
- vi.resetAllMocks();
35
- });
36
- afterAll(async () => {
37
- await fs.remove(homebridgeStorageFolder);
38
- consoleErrorSpy.mockRestore();
39
- consoleLogSpy.mockRestore();
40
- });
41
- it('creates an instance of the server without errors', async () => {
42
- const server = new Server({
43
- customStoragePath: homebridgeStorageFolder,
44
- hideQRCode: true,
45
- });
46
- expect(server).toBeInstanceOf(Server);
47
- });
48
- it('starts without errors', async () => {
49
- const server = new Server({
50
- customStoragePath: homebridgeStorageFolder,
51
- hideQRCode: true,
52
- });
53
- await server.start();
54
- expect(server).toBeInstanceOf(Server);
55
- });
56
- });
57
- //# sourceMappingURL=server.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.spec.js","sourceRoot":"","sources":["../src/server.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=user.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.spec.d.ts","sourceRoot":"","sources":["../src/user.spec.ts"],"names":[],"mappings":""}
package/dist/user.spec.js DELETED
@@ -1,31 +0,0 @@
1
- import { basename } from 'node:path';
2
- import { describe, expect, it } from 'vitest';
3
- import { User } from './user.js';
4
- describe('user', () => {
5
- describe('user.storagePath', () => {
6
- it('should have valid default path', () => {
7
- expect(basename(User.storagePath())).toEqual('.homebridge');
8
- });
9
- });
10
- describe('user.cachedAccessoryPath', () => {
11
- it('should have valid default path', () => {
12
- expect(basename(User.cachedAccessoryPath())).toEqual('accessories');
13
- });
14
- });
15
- describe('user.persistPath', () => {
16
- it('should have valid default path', () => {
17
- expect(basename(User.persistPath())).toEqual('persist');
18
- });
19
- });
20
- describe('user.configPath', () => {
21
- it('should have valid default path', () => {
22
- expect(basename(User.configPath())).toEqual('config.json');
23
- });
24
- });
25
- describe('user.setStoragePath', () => {
26
- it('should fail to be overwritten after paths were already accessed', () => {
27
- expect(() => User.setStoragePath('otherDir')).toThrow(Error);
28
- });
29
- });
30
- });
31
- //# sourceMappingURL=user.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.spec.js","sourceRoot":"","sources":["../src/user.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=mac.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mac.spec.d.ts","sourceRoot":"","sources":["../../src/util/mac.spec.ts"],"names":[],"mappings":""}
@@ -1,36 +0,0 @@
1
- import { randomBytes } from 'node:crypto';
2
- import { describe, expect, it } from 'vitest';
3
- import { generate, validMacAddress } from './mac.js';
4
- describe('mac', () => {
5
- describe('validMacAddress', () => {
6
- it('should verify a valid mac address', () => {
7
- expect(validMacAddress('61:67:0F:6E:B0:48')).toBeTruthy();
8
- });
9
- it('should reject a lower case valid mac address', () => {
10
- const macAddress = '0E:80:9C:B4:E4:C5';
11
- expect(validMacAddress(macAddress)).toBeTruthy();
12
- expect(validMacAddress(macAddress.toLowerCase())).toBeFalsy();
13
- });
14
- it('should reject too short mac address', () => {
15
- expect(validMacAddress('25:22:04:2B:3A')).toBeFalsy();
16
- });
17
- it('should reject too long mac address', () => {
18
- expect(validMacAddress('7F:9A:58:0E:87:23:AA')).toBeFalsy();
19
- });
20
- });
21
- describe('generate', () => {
22
- it('should generate a valid mac address', () => {
23
- const seed = randomBytes(4);
24
- const generated = generate(randomBytes(4));
25
- try {
26
- expect(validMacAddress(generated)).toBeTruthy();
27
- }
28
- catch (error) {
29
- // eslint-disable-next-line no-console
30
- console.log(`Invalid mac address generated '${generated}' for seed '${seed.toString('hex')}'`);
31
- throw error;
32
- }
33
- });
34
- });
35
- });
36
- //# sourceMappingURL=mac.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mac.spec.js","sourceRoot":"","sources":["../../src/util/mac.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAEpD,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACnB,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QAC3D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,UAAU,GAAG,mBAAmB,CAAA;YACtC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;YAChD,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;QAC/D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;YAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1C,IAAI,CAAC;gBACH,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;YACjD,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,kCAAkC,SAAS,eAAe,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC9F,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=version.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.spec.d.ts","sourceRoot":"","sources":["../src/version.spec.ts"],"names":[],"mappings":""}
@@ -1,20 +0,0 @@
1
- import { resolve } from 'node:path';
2
- import { readJsonSync } from 'fs-extra';
3
- import { describe, expect, it } from 'vitest';
4
- import getVersion, { getRequiredNodeVersion } from './version.js';
5
- const realPackageJson = readJsonSync(resolve(__dirname, '../package.json'));
6
- describe('version', () => {
7
- describe('getVersion', () => {
8
- it('should read correct version from package.json', () => {
9
- const version = getVersion();
10
- expect(version).toBe(realPackageJson.version);
11
- });
12
- });
13
- describe('getRequiredNodeVersion', () => {
14
- it('should read correct node version from package.json', () => {
15
- const version = getRequiredNodeVersion();
16
- expect(version).toBe(realPackageJson.engines.node);
17
- });
18
- });
19
- });
20
- //# sourceMappingURL=version.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.spec.js","sourceRoot":"","sources":["../src/version.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,UAAU,EAAE,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAEjE,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAA;AAE3E,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;YAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAA;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}