homebridge 2.0.0-beta.34 → 2.0.0-beta.36

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 (284) 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/externalPortService.d.ts +2 -9
  14. package/dist/externalPortService.d.ts.map +1 -1
  15. package/dist/externalPortService.js +20 -40
  16. package/dist/externalPortService.js.map +1 -1
  17. package/dist/index.d.ts +10 -10
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +3 -3
  20. package/dist/index.js.map +1 -1
  21. package/dist/logger.spec.d.ts +2 -0
  22. package/dist/logger.spec.d.ts.map +1 -0
  23. package/dist/logger.spec.js +95 -0
  24. package/dist/logger.spec.js.map +1 -0
  25. package/dist/matter/ChildBridgeMatterManager.d.ts +96 -0
  26. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -0
  27. package/dist/matter/ChildBridgeMatterManager.js +397 -0
  28. package/dist/matter/ChildBridgeMatterManager.js.map +1 -0
  29. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +48 -0
  30. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -0
  31. package/dist/matter/ExternalMatterAccessoryPublisher.js +73 -0
  32. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -0
  33. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +2 -0
  34. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +1 -0
  35. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +293 -0
  36. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +1 -0
  37. package/dist/matter/{matterServer.d.ts → MatterAPIImpl.d.ts} +203 -367
  38. package/dist/matter/MatterAPIImpl.d.ts.map +1 -0
  39. package/dist/matter/MatterAPIImpl.js +305 -0
  40. package/dist/matter/MatterAPIImpl.js.map +1 -0
  41. package/dist/matter/MatterBridgeManager.d.ts +91 -0
  42. package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
  43. package/dist/matter/MatterBridgeManager.js +426 -0
  44. package/dist/matter/MatterBridgeManager.js.map +1 -0
  45. package/dist/matter/MatterConfigCollector.d.ts +26 -0
  46. package/dist/matter/MatterConfigCollector.d.ts.map +1 -0
  47. package/dist/matter/MatterConfigCollector.js +78 -0
  48. package/dist/matter/MatterConfigCollector.js.map +1 -0
  49. package/dist/matter/{matterAccessoryCache.d.ts → accessoryCache.d.ts} +12 -3
  50. package/dist/matter/accessoryCache.d.ts.map +1 -0
  51. package/dist/matter/{matterAccessoryCache.js → accessoryCache.js} +32 -10
  52. package/dist/matter/accessoryCache.js.map +1 -0
  53. package/dist/matter/accessoryCache.spec.d.ts +2 -0
  54. package/dist/matter/accessoryCache.spec.d.ts.map +1 -0
  55. package/dist/matter/accessoryCache.spec.js +452 -0
  56. package/dist/matter/accessoryCache.spec.js.map +1 -0
  57. package/dist/matter/behaviors/BehaviorRegistry.d.ts +65 -0
  58. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -0
  59. package/dist/matter/behaviors/BehaviorRegistry.js +139 -0
  60. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -0
  61. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +2 -0
  62. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +1 -0
  63. package/dist/matter/behaviors/BehaviorRegistry.spec.js +307 -0
  64. package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +1 -0
  65. package/dist/matter/behaviors/ColorControlBehavior.d.ts +64 -0
  66. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
  67. package/dist/matter/behaviors/ColorControlBehavior.js +160 -0
  68. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -0
  69. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +2 -0
  70. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +1 -0
  71. package/dist/matter/behaviors/ColorControlBehavior.spec.js +29 -0
  72. package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +1 -0
  73. package/dist/matter/behaviors/DoorLockBehavior.d.ts +21 -0
  74. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
  75. package/dist/matter/behaviors/DoorLockBehavior.js +49 -0
  76. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -0
  77. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +2 -0
  78. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +1 -0
  79. package/dist/matter/behaviors/DoorLockBehavior.spec.js +108 -0
  80. package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +1 -0
  81. package/dist/matter/behaviors/FanControlBehavior.d.ts +20 -0
  82. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -0
  83. package/dist/matter/behaviors/FanControlBehavior.js +45 -0
  84. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -0
  85. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +2 -0
  86. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +1 -0
  87. package/dist/matter/behaviors/FanControlBehavior.spec.js +23 -0
  88. package/dist/matter/behaviors/FanControlBehavior.spec.js.map +1 -0
  89. package/dist/matter/behaviors/IdentifyBehavior.d.ts +21 -0
  90. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
  91. package/dist/matter/behaviors/IdentifyBehavior.js +27 -0
  92. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -0
  93. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +2 -0
  94. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +1 -0
  95. package/dist/matter/behaviors/IdentifyBehavior.spec.js +64 -0
  96. package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +1 -0
  97. package/dist/matter/behaviors/LevelControlBehavior.d.ts +34 -0
  98. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
  99. package/dist/matter/behaviors/LevelControlBehavior.js +75 -0
  100. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -0
  101. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +2 -0
  102. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +1 -0
  103. package/dist/matter/behaviors/LevelControlBehavior.spec.js +140 -0
  104. package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +1 -0
  105. package/dist/matter/behaviors/OnOffBehavior.d.ts +28 -0
  106. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
  107. package/dist/matter/behaviors/OnOffBehavior.js +63 -0
  108. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -0
  109. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +2 -0
  110. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +1 -0
  111. package/dist/matter/behaviors/OnOffBehavior.spec.js +116 -0
  112. package/dist/matter/behaviors/OnOffBehavior.spec.js.map +1 -0
  113. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +19 -0
  114. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -0
  115. package/dist/matter/behaviors/RvcCleanModeBehavior.js +27 -0
  116. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -0
  117. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +2 -0
  118. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +1 -0
  119. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +56 -0
  120. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +1 -0
  121. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +23 -0
  122. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
  123. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +49 -0
  124. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -0
  125. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +2 -0
  126. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +1 -0
  127. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +55 -0
  128. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +1 -0
  129. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +19 -0
  130. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -0
  131. package/dist/matter/behaviors/RvcRunModeBehavior.js +27 -0
  132. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -0
  133. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +2 -0
  134. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +1 -0
  135. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +56 -0
  136. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +1 -0
  137. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +22 -0
  138. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
  139. package/dist/matter/behaviors/ServiceAreaBehavior.js +35 -0
  140. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -0
  141. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +2 -0
  142. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +1 -0
  143. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +52 -0
  144. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +1 -0
  145. package/dist/matter/behaviors/ThermostatBehavior.d.ts +23 -0
  146. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
  147. package/dist/matter/behaviors/ThermostatBehavior.js +79 -0
  148. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -0
  149. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +2 -0
  150. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +1 -0
  151. package/dist/matter/behaviors/ThermostatBehavior.spec.js +23 -0
  152. package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +1 -0
  153. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +32 -0
  154. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
  155. package/dist/matter/behaviors/WindowCoveringBehavior.js +106 -0
  156. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -0
  157. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +2 -0
  158. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +1 -0
  159. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +27 -0
  160. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +1 -0
  161. package/dist/matter/behaviors/index.d.ts +20 -0
  162. package/dist/matter/behaviors/index.d.ts.map +1 -0
  163. package/dist/matter/behaviors/index.js +21 -0
  164. package/dist/matter/behaviors/index.js.map +1 -0
  165. package/dist/matter/{matterConfigValidator.d.ts → configValidator.d.ts} +1 -1
  166. package/dist/matter/configValidator.d.ts.map +1 -0
  167. package/dist/matter/{matterConfigValidator.js → configValidator.js} +1 -1
  168. package/dist/matter/configValidator.js.map +1 -0
  169. package/dist/matter/configValidator.spec.d.ts +2 -0
  170. package/dist/matter/configValidator.spec.d.ts.map +1 -0
  171. package/dist/matter/configValidator.spec.js +390 -0
  172. package/dist/matter/configValidator.spec.js.map +1 -0
  173. package/dist/matter/errorHandler.d.ts +33 -0
  174. package/dist/matter/errorHandler.d.ts.map +1 -0
  175. package/dist/matter/errorHandler.js +113 -0
  176. package/dist/matter/errorHandler.js.map +1 -0
  177. package/dist/matter/errorHandler.spec.d.ts +2 -0
  178. package/dist/matter/errorHandler.spec.d.ts.map +1 -0
  179. package/dist/matter/errorHandler.spec.js +159 -0
  180. package/dist/matter/errorHandler.spec.js.map +1 -0
  181. package/dist/matter/index.d.ts +7 -4
  182. package/dist/matter/index.d.ts.map +1 -1
  183. package/dist/matter/index.js +7 -4
  184. package/dist/matter/index.js.map +1 -1
  185. package/dist/matter/{matterLogFormatter.d.ts → logFormatter.d.ts} +1 -1
  186. package/dist/matter/logFormatter.d.ts.map +1 -0
  187. package/dist/matter/{matterLogFormatter.js → logFormatter.js} +33 -6
  188. package/dist/matter/logFormatter.js.map +1 -0
  189. package/dist/matter/logFormatter.spec.d.ts +2 -0
  190. package/dist/matter/logFormatter.spec.d.ts.map +1 -0
  191. package/dist/matter/logFormatter.spec.js +284 -0
  192. package/dist/matter/logFormatter.spec.js.map +1 -0
  193. package/dist/matter/server.d.ts +350 -0
  194. package/dist/matter/server.d.ts.map +1 -0
  195. package/dist/matter/{matterServer.js → server.js} +533 -352
  196. package/dist/matter/server.js.map +1 -0
  197. package/dist/matter/{matterServerHelpers.d.ts → serverHelpers.d.ts} +2 -2
  198. package/dist/matter/serverHelpers.d.ts.map +1 -0
  199. package/dist/matter/{matterServerHelpers.js → serverHelpers.js} +11 -8
  200. package/dist/matter/serverHelpers.js.map +1 -0
  201. package/dist/matter/serverHelpers.spec.d.ts +2 -0
  202. package/dist/matter/serverHelpers.spec.d.ts.map +1 -0
  203. package/dist/matter/serverHelpers.spec.js +521 -0
  204. package/dist/matter/serverHelpers.spec.js.map +1 -0
  205. package/dist/matter/{matterSharedTypes.d.ts → sharedTypes.d.ts} +4 -10
  206. package/dist/matter/sharedTypes.d.ts.map +1 -0
  207. package/dist/matter/{matterSharedTypes.js → sharedTypes.js} +4 -10
  208. package/dist/matter/sharedTypes.js.map +1 -0
  209. package/dist/matter/{matterStorage.d.ts → storage.d.ts} +9 -2
  210. package/dist/matter/storage.d.ts.map +1 -0
  211. package/dist/matter/{matterStorage.js → storage.js} +14 -5
  212. package/dist/matter/{matterStorage.js.map → storage.js.map} +1 -1
  213. package/dist/matter/storage.spec.d.ts +2 -0
  214. package/dist/matter/storage.spec.d.ts.map +1 -0
  215. package/dist/matter/storage.spec.js +570 -0
  216. package/dist/matter/storage.spec.js.map +1 -0
  217. package/dist/matter/typeHelpers.d.ts +45 -0
  218. package/dist/matter/typeHelpers.d.ts.map +1 -0
  219. package/dist/matter/typeHelpers.js +57 -0
  220. package/dist/matter/typeHelpers.js.map +1 -0
  221. package/dist/matter/typeHelpers.spec.d.ts +2 -0
  222. package/dist/matter/typeHelpers.spec.d.ts.map +1 -0
  223. package/dist/matter/typeHelpers.spec.js +127 -0
  224. package/dist/matter/typeHelpers.spec.js.map +1 -0
  225. package/dist/matter/{matterTypes.d.ts → types.d.ts} +2 -2
  226. package/dist/matter/types.d.ts.map +1 -0
  227. package/dist/matter/{matterTypes.js → types.js} +1 -2
  228. package/dist/matter/types.js.map +1 -0
  229. package/dist/platformAccessory.spec.d.ts +2 -0
  230. package/dist/platformAccessory.spec.d.ts.map +1 -0
  231. package/dist/platformAccessory.spec.js +126 -0
  232. package/dist/platformAccessory.spec.js.map +1 -0
  233. package/dist/pluginManager.spec.d.ts +2 -0
  234. package/dist/pluginManager.spec.d.ts.map +1 -0
  235. package/dist/pluginManager.spec.js +43 -0
  236. package/dist/pluginManager.spec.js.map +1 -0
  237. package/dist/server.d.ts +4 -13
  238. package/dist/server.d.ts.map +1 -1
  239. package/dist/server.js +45 -333
  240. package/dist/server.js.map +1 -1
  241. package/dist/server.spec.d.ts +2 -0
  242. package/dist/server.spec.d.ts.map +1 -0
  243. package/dist/server.spec.js +57 -0
  244. package/dist/server.spec.js.map +1 -0
  245. package/dist/user.spec.d.ts +2 -0
  246. package/dist/user.spec.d.ts.map +1 -0
  247. package/dist/user.spec.js +31 -0
  248. package/dist/user.spec.js.map +1 -0
  249. package/dist/util/mac.spec.d.ts +2 -0
  250. package/dist/util/mac.spec.d.ts.map +1 -0
  251. package/dist/util/mac.spec.js +36 -0
  252. package/dist/util/mac.spec.js.map +1 -0
  253. package/dist/version.spec.d.ts +2 -0
  254. package/dist/version.spec.d.ts.map +1 -0
  255. package/dist/version.spec.js +20 -0
  256. package/dist/version.spec.js.map +1 -0
  257. package/package.json +4 -4
  258. package/dist/matter/matterAccessoryCache.d.ts.map +0 -1
  259. package/dist/matter/matterAccessoryCache.js.map +0 -1
  260. package/dist/matter/matterBehaviors.d.ts +0 -194
  261. package/dist/matter/matterBehaviors.d.ts.map +0 -1
  262. package/dist/matter/matterBehaviors.js +0 -665
  263. package/dist/matter/matterBehaviors.js.map +0 -1
  264. package/dist/matter/matterConfigValidator.d.ts.map +0 -1
  265. package/dist/matter/matterConfigValidator.js.map +0 -1
  266. package/dist/matter/matterErrorHandler.d.ts +0 -106
  267. package/dist/matter/matterErrorHandler.d.ts.map +0 -1
  268. package/dist/matter/matterErrorHandler.js +0 -495
  269. package/dist/matter/matterErrorHandler.js.map +0 -1
  270. package/dist/matter/matterLogFormatter.d.ts.map +0 -1
  271. package/dist/matter/matterLogFormatter.js.map +0 -1
  272. package/dist/matter/matterNetworkMonitor.d.ts +0 -68
  273. package/dist/matter/matterNetworkMonitor.d.ts.map +0 -1
  274. package/dist/matter/matterNetworkMonitor.js +0 -249
  275. package/dist/matter/matterNetworkMonitor.js.map +0 -1
  276. package/dist/matter/matterServer.d.ts.map +0 -1
  277. package/dist/matter/matterServer.js.map +0 -1
  278. package/dist/matter/matterServerHelpers.d.ts.map +0 -1
  279. package/dist/matter/matterServerHelpers.js.map +0 -1
  280. package/dist/matter/matterSharedTypes.d.ts.map +0 -1
  281. package/dist/matter/matterSharedTypes.js.map +0 -1
  282. package/dist/matter/matterStorage.d.ts.map +0 -1
  283. package/dist/matter/matterTypes.d.ts.map +0 -1
  284. package/dist/matter/matterTypes.js.map +0 -1
@@ -0,0 +1,413 @@
1
+ import { Service } from 'hap-nodejs';
2
+ import { describe, expect, it, vi } from 'vitest';
3
+ import { HomebridgeAPI } from './api.js';
4
+ const api = new HomebridgeAPI();
5
+ const emitSpy = vi.spyOn(api, 'emit');
6
+ class ExampleAccessory {
7
+ getServices() {
8
+ return [new Service.Switch('TestSwitch')];
9
+ }
10
+ }
11
+ class ExamplePlatform {
12
+ configureAccessory() {
13
+ // do nothing
14
+ }
15
+ }
16
+ const pluginName = 'homebridge-example';
17
+ const accessoryName = 'MyCoolAccessory';
18
+ const platformName = 'MyCoolPlatform';
19
+ describe('homebridgeAPI', () => {
20
+ describe('homebridgeAPI.prototype.registerAccessory', () => {
21
+ it('should register accessory with legacy style signature', () => {
22
+ api.registerAccessory(pluginName, accessoryName, ExampleAccessory);
23
+ expect(emitSpy).toHaveBeenLastCalledWith("registerAccessory" /* InternalAPIEvent.REGISTER_ACCESSORY */, accessoryName, ExampleAccessory, pluginName);
24
+ });
25
+ it('should register accessory without passing plugin name', () => {
26
+ api.registerAccessory(accessoryName, ExampleAccessory);
27
+ expect(emitSpy).toHaveBeenLastCalledWith("registerAccessory" /* InternalAPIEvent.REGISTER_ACCESSORY */, accessoryName, ExampleAccessory);
28
+ });
29
+ });
30
+ describe('homebridgeAPI.prototype.registerPlatform', () => {
31
+ it('should register platform with legacy style signature', () => {
32
+ api.registerPlatform(pluginName, platformName, ExamplePlatform);
33
+ expect(emitSpy).toHaveBeenLastCalledWith("registerPlatform" /* InternalAPIEvent.REGISTER_PLATFORM */, platformName, ExamplePlatform, pluginName);
34
+ });
35
+ it('should register platform without passing plugin name', () => {
36
+ api.registerPlatform(platformName, ExamplePlatform);
37
+ expect(emitSpy).toHaveBeenLastCalledWith("registerPlatform" /* InternalAPIEvent.REGISTER_PLATFORM */, platformName, ExamplePlatform);
38
+ });
39
+ });
40
+ describe('matter API', () => {
41
+ const matterPluginName = 'homebridge-matter-example';
42
+ const matterPlatformName = 'MatterExamplePlatform';
43
+ describe('api.matter property access', () => {
44
+ it('should expose matter API', () => {
45
+ expect(api.matter).toBeDefined();
46
+ expect(typeof api.matter).toBe('object');
47
+ });
48
+ it('should expose uuid generator (alias of hap.uuid)', () => {
49
+ expect(api.matter.uuid).toBeDefined();
50
+ expect(api.matter.uuid).toBe(api.hap.uuid);
51
+ });
52
+ it('should expose deviceTypes', () => {
53
+ expect(api.matter.deviceTypes).toBeDefined();
54
+ expect(typeof api.matter.deviceTypes).toBe('object');
55
+ });
56
+ it('should expose clusters', () => {
57
+ expect(api.matter.clusters).toBeDefined();
58
+ expect(typeof api.matter.clusters).toBe('object');
59
+ });
60
+ it('should expose clusterNames', () => {
61
+ expect(api.matter.clusterNames).toBeDefined();
62
+ expect(typeof api.matter.clusterNames).toBe('object');
63
+ });
64
+ it('should expose types', () => {
65
+ expect(api.matter.types).toBeDefined();
66
+ expect(typeof api.matter.types).toBe('object');
67
+ });
68
+ });
69
+ describe('api.matter.registerPlatformAccessories', () => {
70
+ it('should register Matter platform accessories', () => {
71
+ const matterAccessories = [
72
+ {
73
+ uuid: api.matter.uuid.generate('test-light-1'),
74
+ displayName: 'Test Light 1',
75
+ deviceType: api.matter.deviceTypes.OnOffLight,
76
+ serialNumber: 'SN-001',
77
+ manufacturer: 'Test Manufacturer',
78
+ model: 'Test Model',
79
+ clusters: {
80
+ onOff: {
81
+ onOff: false,
82
+ },
83
+ },
84
+ },
85
+ ];
86
+ api.matter.registerPlatformAccessories(matterPluginName, matterPlatformName, matterAccessories);
87
+ expect(emitSpy).toHaveBeenLastCalledWith("registerMatterPlatformAccessories" /* InternalAPIEvent.REGISTER_MATTER_PLATFORM_ACCESSORIES */, matterPluginName, matterPlatformName, matterAccessories);
88
+ });
89
+ it('should register multiple Matter platform accessories', () => {
90
+ const matterAccessories = [
91
+ {
92
+ uuid: api.matter.uuid.generate('test-light-1'),
93
+ displayName: 'Test Light 1',
94
+ deviceType: api.matter.deviceTypes.OnOffLight,
95
+ serialNumber: 'SN-001',
96
+ manufacturer: 'Test',
97
+ model: 'Test',
98
+ clusters: { onOff: { onOff: false } },
99
+ },
100
+ {
101
+ uuid: api.matter.uuid.generate('test-light-2'),
102
+ displayName: 'Test Light 2',
103
+ deviceType: api.matter.deviceTypes.DimmableLight,
104
+ serialNumber: 'SN-002',
105
+ manufacturer: 'Test',
106
+ model: 'Test',
107
+ clusters: {
108
+ onOff: { onOff: true },
109
+ levelControl: { currentLevel: 100 },
110
+ },
111
+ },
112
+ ];
113
+ api.matter.registerPlatformAccessories(matterPluginName, matterPlatformName, matterAccessories);
114
+ expect(emitSpy).toHaveBeenLastCalledWith("registerMatterPlatformAccessories" /* InternalAPIEvent.REGISTER_MATTER_PLATFORM_ACCESSORIES */, matterPluginName, matterPlatformName, matterAccessories);
115
+ });
116
+ });
117
+ describe('api.matter.updatePlatformAccessories', () => {
118
+ it('should update Matter platform accessories', () => {
119
+ const matterAccessories = [
120
+ {
121
+ uuid: api.matter.uuid.generate('test-light-1'),
122
+ displayName: 'Updated Light Name',
123
+ deviceType: api.matter.deviceTypes.OnOffLight,
124
+ serialNumber: 'SN-001',
125
+ manufacturer: 'Updated Manufacturer',
126
+ model: 'Updated Model',
127
+ firmwareRevision: '2.0.0',
128
+ clusters: { onOff: { onOff: true } },
129
+ },
130
+ ];
131
+ api.matter.updatePlatformAccessories(matterAccessories);
132
+ expect(emitSpy).toHaveBeenLastCalledWith("updateMatterPlatformAccessories" /* InternalAPIEvent.UPDATE_MATTER_PLATFORM_ACCESSORIES */, matterAccessories);
133
+ });
134
+ it('should update multiple Matter platform accessories', () => {
135
+ const matterAccessories = [
136
+ {
137
+ uuid: api.matter.uuid.generate('test-light-1'),
138
+ displayName: 'Light 1 - Updated',
139
+ deviceType: api.matter.deviceTypes.OnOffLight,
140
+ serialNumber: 'SN-001',
141
+ manufacturer: 'Test',
142
+ model: 'Test',
143
+ },
144
+ {
145
+ uuid: api.matter.uuid.generate('test-light-2'),
146
+ displayName: 'Light 2 - Updated',
147
+ deviceType: api.matter.deviceTypes.DimmableLight,
148
+ serialNumber: 'SN-002',
149
+ manufacturer: 'Test',
150
+ model: 'Test',
151
+ },
152
+ ];
153
+ api.matter.updatePlatformAccessories(matterAccessories);
154
+ expect(emitSpy).toHaveBeenLastCalledWith("updateMatterPlatformAccessories" /* InternalAPIEvent.UPDATE_MATTER_PLATFORM_ACCESSORIES */, matterAccessories);
155
+ });
156
+ it('should handle updating single accessory', () => {
157
+ const accessory = {
158
+ uuid: api.matter.uuid.generate('test-vacuum'),
159
+ displayName: 'Kitchen Vacuum - Renamed',
160
+ deviceType: api.matter.deviceTypes.RoboticVacuumCleaner,
161
+ serialNumber: 'VAC-001',
162
+ manufacturer: 'Test',
163
+ model: 'V2',
164
+ firmwareRevision: '3.1.0',
165
+ };
166
+ api.matter.updatePlatformAccessories([accessory]);
167
+ expect(emitSpy).toHaveBeenLastCalledWith("updateMatterPlatformAccessories" /* InternalAPIEvent.UPDATE_MATTER_PLATFORM_ACCESSORIES */, [accessory]);
168
+ });
169
+ });
170
+ describe('api.matter.unregisterPlatformAccessories', () => {
171
+ it('should unregister Matter platform accessories', () => {
172
+ const matterAccessories = [
173
+ {
174
+ uuid: api.matter.uuid.generate('test-light-1'),
175
+ displayName: 'Test Light 1',
176
+ deviceType: api.matter.deviceTypes.OnOffLight,
177
+ serialNumber: 'SN-001',
178
+ manufacturer: 'Test',
179
+ model: 'Test',
180
+ },
181
+ ];
182
+ api.matter.unregisterPlatformAccessories(matterPluginName, matterPlatformName, matterAccessories);
183
+ expect(emitSpy).toHaveBeenLastCalledWith("unregisterMatterPlatformAccessories" /* InternalAPIEvent.UNREGISTER_MATTER_PLATFORM_ACCESSORIES */, matterPluginName, matterPlatformName, matterAccessories);
184
+ });
185
+ it('should unregister multiple Matter platform accessories', () => {
186
+ const matterAccessories = [
187
+ {
188
+ uuid: api.matter.uuid.generate('test-light-1'),
189
+ displayName: 'Light 1',
190
+ deviceType: api.matter.deviceTypes.OnOffLight,
191
+ serialNumber: 'SN-001',
192
+ manufacturer: 'Test',
193
+ model: 'Test',
194
+ },
195
+ {
196
+ uuid: api.matter.uuid.generate('test-light-2'),
197
+ displayName: 'Light 2',
198
+ deviceType: api.matter.deviceTypes.OnOffLight,
199
+ serialNumber: 'SN-002',
200
+ manufacturer: 'Test',
201
+ model: 'Test',
202
+ },
203
+ ];
204
+ api.matter.unregisterPlatformAccessories(matterPluginName, matterPlatformName, matterAccessories);
205
+ expect(emitSpy).toHaveBeenLastCalledWith("unregisterMatterPlatformAccessories" /* InternalAPIEvent.UNREGISTER_MATTER_PLATFORM_ACCESSORIES */, matterPluginName, matterPlatformName, matterAccessories);
206
+ });
207
+ it('should automatically unregister RoboticVacuumCleaner as external accessory', () => {
208
+ const vacuumAccessory = {
209
+ uuid: api.matter.uuid.generate('test-vacuum-1'),
210
+ displayName: 'Test Vacuum',
211
+ deviceType: api.matter.deviceTypes.RoboticVacuumCleaner,
212
+ serialNumber: 'SN-VAC-001',
213
+ manufacturer: 'Test',
214
+ model: 'Test',
215
+ };
216
+ api.matter.unregisterPlatformAccessories(matterPluginName, matterPlatformName, [vacuumAccessory]);
217
+ expect(emitSpy).toHaveBeenLastCalledWith("unregisterExternalMatterAccessories" /* InternalAPIEvent.UNREGISTER_EXTERNAL_MATTER_ACCESSORIES */, [vacuumAccessory]);
218
+ });
219
+ it('should split unregister into normal and external based on device type', () => {
220
+ emitSpy.mockClear();
221
+ const mixedAccessories = [
222
+ {
223
+ uuid: api.matter.uuid.generate('test-light-1'),
224
+ displayName: 'Light 1',
225
+ deviceType: api.matter.deviceTypes.OnOffLight,
226
+ serialNumber: 'SN-001',
227
+ manufacturer: 'Test',
228
+ model: 'Test',
229
+ },
230
+ {
231
+ uuid: api.matter.uuid.generate('test-vacuum-1'),
232
+ displayName: 'Vacuum 1',
233
+ deviceType: api.matter.deviceTypes.RoboticVacuumCleaner,
234
+ serialNumber: 'SN-002',
235
+ manufacturer: 'Test',
236
+ model: 'Test',
237
+ },
238
+ {
239
+ uuid: api.matter.uuid.generate('test-light-2'),
240
+ displayName: 'Light 2',
241
+ deviceType: api.matter.deviceTypes.DimmableLight,
242
+ serialNumber: 'SN-003',
243
+ manufacturer: 'Test',
244
+ model: 'Test',
245
+ },
246
+ ];
247
+ api.matter.unregisterPlatformAccessories(matterPluginName, matterPlatformName, mixedAccessories);
248
+ expect(emitSpy).toHaveBeenCalledTimes(2);
249
+ const calls = emitSpy.mock.calls;
250
+ const unregisterCall = calls.find(call => call[0] === "unregisterMatterPlatformAccessories" /* InternalAPIEvent.UNREGISTER_MATTER_PLATFORM_ACCESSORIES */);
251
+ const unregisterExternalCall = calls.find(call => call[0] === "unregisterExternalMatterAccessories" /* InternalAPIEvent.UNREGISTER_EXTERNAL_MATTER_ACCESSORIES */);
252
+ expect(unregisterCall).toBeDefined();
253
+ expect(unregisterCall[3]).toHaveLength(2);
254
+ expect(unregisterCall[3][0].displayName).toBe('Light 1');
255
+ expect(unregisterCall[3][1].displayName).toBe('Light 2');
256
+ expect(unregisterExternalCall).toBeDefined();
257
+ expect(unregisterExternalCall[1]).toHaveLength(1);
258
+ expect(unregisterExternalCall[1][0].displayName).toBe('Vacuum 1');
259
+ });
260
+ });
261
+ describe('registerPlatformAccessories - external device handling', () => {
262
+ it('should automatically publish RoboticVacuumCleaner as external accessory', () => {
263
+ const vacuumAccessory = {
264
+ uuid: api.matter.uuid.generate('test-vacuum-1'),
265
+ displayName: 'Test Vacuum',
266
+ deviceType: api.matter.deviceTypes.RoboticVacuumCleaner,
267
+ serialNumber: 'SN-VAC-001',
268
+ manufacturer: 'Test Manufacturer',
269
+ model: 'Vacuum Model',
270
+ clusters: {
271
+ onOff: { onOff: false },
272
+ rvcRunMode: { currentMode: 0 },
273
+ },
274
+ };
275
+ api.matter.registerPlatformAccessories(matterPluginName, matterPlatformName, [vacuumAccessory]);
276
+ expect(emitSpy).toHaveBeenLastCalledWith("publishExternalMatterAccessories" /* InternalAPIEvent.PUBLISH_EXTERNAL_MATTER_ACCESSORIES */, expect.arrayContaining([
277
+ expect.objectContaining({
278
+ uuid: vacuumAccessory.uuid,
279
+ displayName: 'Test Vacuum',
280
+ _associatedPlugin: matterPluginName,
281
+ }),
282
+ ]), expect.any(String));
283
+ });
284
+ it('should split accessories into normal and external based on device type', () => {
285
+ emitSpy.mockClear();
286
+ const mixedAccessories = [
287
+ {
288
+ uuid: api.matter.uuid.generate('test-light-1'),
289
+ displayName: 'Light 1',
290
+ deviceType: api.matter.deviceTypes.OnOffLight,
291
+ serialNumber: 'SN-001',
292
+ manufacturer: 'Test',
293
+ model: 'Test',
294
+ },
295
+ {
296
+ uuid: api.matter.uuid.generate('test-vacuum-1'),
297
+ displayName: 'Vacuum 1',
298
+ deviceType: api.matter.deviceTypes.RoboticVacuumCleaner,
299
+ serialNumber: 'SN-002',
300
+ manufacturer: 'Test',
301
+ model: 'Test',
302
+ },
303
+ {
304
+ uuid: api.matter.uuid.generate('test-light-2'),
305
+ displayName: 'Light 2',
306
+ deviceType: api.matter.deviceTypes.DimmableLight,
307
+ serialNumber: 'SN-003',
308
+ manufacturer: 'Test',
309
+ model: 'Test',
310
+ },
311
+ ];
312
+ api.matter.registerPlatformAccessories(matterPluginName, matterPlatformName, mixedAccessories);
313
+ expect(emitSpy).toHaveBeenCalledTimes(2);
314
+ const calls = emitSpy.mock.calls;
315
+ const registerCall = calls.find(call => call[0] === "registerMatterPlatformAccessories" /* InternalAPIEvent.REGISTER_MATTER_PLATFORM_ACCESSORIES */);
316
+ const publishCall = calls.find(call => call[0] === "publishExternalMatterAccessories" /* InternalAPIEvent.PUBLISH_EXTERNAL_MATTER_ACCESSORIES */);
317
+ expect(registerCall).toBeDefined();
318
+ expect(registerCall[3]).toHaveLength(2);
319
+ expect(registerCall[3][0].displayName).toBe('Light 1');
320
+ expect(registerCall[3][1].displayName).toBe('Light 2');
321
+ expect(publishCall).toBeDefined();
322
+ expect(publishCall[1]).toHaveLength(1);
323
+ expect(publishCall[1][0].displayName).toBe('Vacuum 1');
324
+ });
325
+ });
326
+ describe('api.matter.updateAccessoryState', () => {
327
+ it('should update Matter accessory state', () => {
328
+ const uuid = api.matter.uuid.generate('test-light-update');
329
+ const cluster = api.matter.clusterNames.OnOff;
330
+ const attributes = { onOff: true };
331
+ api.matter.updateAccessoryState(uuid, cluster, attributes);
332
+ expect(emitSpy).toHaveBeenLastCalledWith("updateMatterAccessoryState" /* InternalAPIEvent.UPDATE_MATTER_ACCESSORY_STATE */, uuid, cluster, attributes, undefined);
333
+ });
334
+ it('should update Matter accessory state for specific part', () => {
335
+ const uuid = api.matter.uuid.generate('test-power-strip');
336
+ const cluster = api.matter.clusterNames.OnOff;
337
+ const attributes = { onOff: true };
338
+ const partId = 'outlet-2';
339
+ api.matter.updateAccessoryState(uuid, cluster, attributes, partId);
340
+ expect(emitSpy).toHaveBeenLastCalledWith("updateMatterAccessoryState" /* InternalAPIEvent.UPDATE_MATTER_ACCESSORY_STATE */, uuid, cluster, attributes, partId);
341
+ });
342
+ it('should update different cluster types', () => {
343
+ const uuid = api.matter.uuid.generate('test-dimmable-light');
344
+ // Update OnOff cluster
345
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.OnOff, { onOff: true });
346
+ expect(emitSpy).toHaveBeenCalledWith("updateMatterAccessoryState" /* InternalAPIEvent.UPDATE_MATTER_ACCESSORY_STATE */, uuid, api.matter.clusterNames.OnOff, { onOff: true }, undefined);
347
+ // Update LevelControl cluster
348
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.LevelControl, { currentLevel: 200 });
349
+ expect(emitSpy).toHaveBeenLastCalledWith("updateMatterAccessoryState" /* InternalAPIEvent.UPDATE_MATTER_ACCESSORY_STATE */, uuid, api.matter.clusterNames.LevelControl, { currentLevel: 200 }, undefined);
350
+ });
351
+ });
352
+ describe('api.matter.getAccessoryState', () => {
353
+ it('should have getAccessoryState method', () => {
354
+ expect(typeof api.matter.getAccessoryState).toBe('function');
355
+ });
356
+ it('should accept uuid and cluster parameters', () => {
357
+ const uuid = api.matter.uuid.generate('test-light-get');
358
+ const cluster = api.matter.clusterNames.OnOff;
359
+ // Just verify it can be called without error
360
+ // Actual state retrieval requires MatterServer to be running
361
+ expect(() => api.matter.getAccessoryState(uuid, cluster)).not.toThrow();
362
+ });
363
+ it('should accept optional partId parameter', () => {
364
+ const uuid = api.matter.uuid.generate('test-power-strip-get');
365
+ const cluster = api.matter.clusterNames.OnOff;
366
+ const partId = 'outlet-1';
367
+ expect(() => api.matter.getAccessoryState(uuid, cluster, partId)).not.toThrow();
368
+ });
369
+ });
370
+ describe('matter cluster names', () => {
371
+ it('should include common cluster names', () => {
372
+ expect(api.matter.clusterNames.OnOff).toBe('onOff');
373
+ expect(api.matter.clusterNames.LevelControl).toBe('levelControl');
374
+ expect(api.matter.clusterNames.ColorControl).toBe('colorControl');
375
+ expect(api.matter.clusterNames.DoorLock).toBe('doorLock');
376
+ expect(api.matter.clusterNames.Thermostat).toBe('thermostat');
377
+ expect(api.matter.clusterNames.WindowCovering).toBe('windowCovering');
378
+ expect(api.matter.clusterNames.FanControl).toBe('fanControl');
379
+ });
380
+ it('should include RVC cluster names', () => {
381
+ expect(api.matter.clusterNames.RvcRunMode).toBe('rvcRunMode');
382
+ expect(api.matter.clusterNames.RvcCleanMode).toBe('rvcCleanMode');
383
+ expect(api.matter.clusterNames.RvcOperationalState).toBe('rvcOperationalState');
384
+ expect(api.matter.clusterNames.ServiceArea).toBe('serviceArea');
385
+ });
386
+ });
387
+ describe('matter device types', () => {
388
+ it('should include common device types', () => {
389
+ expect(api.matter.deviceTypes.OnOffLight).toBeDefined();
390
+ expect(api.matter.deviceTypes.DimmableLight).toBeDefined();
391
+ expect(api.matter.deviceTypes.ColorTemperatureLight).toBeDefined();
392
+ expect(api.matter.deviceTypes.ExtendedColorLight).toBeDefined();
393
+ expect(api.matter.deviceTypes.OnOffOutlet).toBeDefined();
394
+ expect(api.matter.deviceTypes.OnOffSwitch).toBeDefined();
395
+ expect(api.matter.deviceTypes.DoorLock).toBeDefined();
396
+ expect(api.matter.deviceTypes.Thermostat).toBeDefined();
397
+ expect(api.matter.deviceTypes.WindowCovering).toBeDefined();
398
+ expect(api.matter.deviceTypes.Fan).toBeDefined();
399
+ });
400
+ it('should include specialized device types', () => {
401
+ expect(api.matter.deviceTypes.RoboticVacuumCleaner).toBeDefined();
402
+ expect(api.matter.deviceTypes.ContactSensor).toBeDefined();
403
+ expect(api.matter.deviceTypes.LightSensor).toBeDefined();
404
+ expect(api.matter.deviceTypes.MotionSensor).toBeDefined();
405
+ expect(api.matter.deviceTypes.TemperatureSensor).toBeDefined();
406
+ expect(api.matter.deviceTypes.HumiditySensor).toBeDefined();
407
+ expect(api.matter.deviceTypes.LeakSensor).toBeDefined();
408
+ expect(api.matter.deviceTypes.SmokeSensor).toBeDefined();
409
+ });
410
+ });
411
+ });
412
+ });
413
+ //# sourceMappingURL=api.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.spec.js","sourceRoot":"","sources":["../src/api.spec.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,7 @@ export declare class ChildBridgeFork {
7
7
  private api;
8
8
  private pluginManager;
9
9
  private externalPortService;
10
- private matterServer?;
11
- private readonly externalMatterServers;
12
- private matterConfig?;
13
- private matterSerialNumber?;
10
+ private matterManager;
14
11
  private type;
15
12
  private plugin;
16
13
  private identifier;
@@ -41,20 +38,6 @@ export declare class ChildBridgeFork {
41
38
  * Sends the current pairing status of the child bridge to the parent process
42
39
  */
43
40
  sendPairedStatusEvent(): void;
44
- /**
45
- * Restore cached Matter accessories
46
- */
47
- private restoreCachedMatterAccessories;
48
- /**
49
- * Start Matter server for child bridge
50
- */
51
- private startMatterServer;
52
- /**
53
- * Handle external Matter accessories - each gets its own dedicated Matter server
54
- * This is required for devices like Robotic Vacuum Cleaners that Apple Home
55
- * requires to be on their own bridge.
56
- */
57
- private handlePublishExternalMatterAccessories;
58
41
  /**
59
42
  * Handle metadata request from parent process
60
43
  * Sends unified HAP+Matter status
@@ -1 +1 @@
1
- {"version":3,"file":"childBridgeFork.d.ts","sourceRoot":"","sources":["../src/childBridgeFork.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAS5C,OAAO,KAAK,EAEV,yBAAyB,EAGzB,kCAAkC,EAEnC,MAAM,yBAAyB,CAAA;AAUhC,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAQtE,OAAO,gCAAgC,CAAA;AAQvC,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,YAAY,CAAC,CAAc;IAGnC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuC;IAE7E,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,kBAAkB,CAAC,CAAQ;IAEnC,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,mBAAmB,CAAiE;;IAO5F,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;IAStE,UAAU,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmD1D,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA+GlC;;;OAGG;IACU,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAoBnF;;;OAGG;IACU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA0B7E;;;OAGG;IACI,sBAAsB,CAAC,IAAI,EAAE,kCAAkC,GAAG,IAAI;IAO7E;;OAEG;IACI,qBAAqB;IAuB5B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAkDtC;;OAEG;YACW,iBAAiB;IAiF/B;;;;OAIG;YACW,sCAAsC;IAyFpD;;;OAGG;IACI,qBAAqB,IAAI,IAAI;IAKpC,QAAQ,IAAI,IAAI;CAoBjB"}
1
+ {"version":3,"file":"childBridgeFork.d.ts","sourceRoot":"","sources":["../src/childBridgeFork.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAS5C,OAAO,KAAK,EAEV,yBAAyB,EAGzB,kCAAkC,EAEnC,MAAM,yBAAyB,CAAA;AAShC,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAOtE,OAAO,gCAAgC,CAAA;AAQvC,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAiC;IAG5D,OAAO,CAAC,aAAa,CAA2B;IAEhD,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,mBAAmB,CAAiE;;IAO5F,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;IAStE,UAAU,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmD1D,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAkGlC;;;OAGG;IACU,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAoBnF;;;OAGG;IACU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA0B7E;;;OAGG;IACI,sBAAsB,CAAC,IAAI,EAAE,kCAAkC,GAAG,IAAI;IAO7E;;OAEG;IACI,qBAAqB;IAe5B;;;OAGG;IACI,qBAAqB,IAAI,IAAI;IAKpC,QAAQ,IAAI,IAAI;CAQjB"}