@switchbot/homebridge-switchbot 5.0.0-beta.7 → 5.0.0-beta.70

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 (271) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +45 -3
  3. package/config.schema.json +871 -13754
  4. package/dist/devices-hap/airpurifier.d.ts.map +1 -1
  5. package/dist/devices-hap/airpurifier.js +12 -6
  6. package/dist/devices-hap/airpurifier.js.map +1 -1
  7. package/dist/devices-hap/blindtilt.js +3 -3
  8. package/dist/devices-hap/bot.d.ts.map +1 -1
  9. package/dist/devices-hap/bot.js +16 -5
  10. package/dist/devices-hap/bot.js.map +1 -1
  11. package/dist/devices-hap/ceilinglight.d.ts.map +1 -1
  12. package/dist/devices-hap/ceilinglight.js +13 -7
  13. package/dist/devices-hap/ceilinglight.js.map +1 -1
  14. package/dist/devices-hap/colorbulb.d.ts.map +1 -1
  15. package/dist/devices-hap/colorbulb.js +49 -9
  16. package/dist/devices-hap/colorbulb.js.map +1 -1
  17. package/dist/devices-hap/contact.js +3 -3
  18. package/dist/devices-hap/curtain.js +2 -2
  19. package/dist/devices-hap/curtain.js.map +1 -1
  20. package/dist/devices-hap/device.d.ts +18 -8
  21. package/dist/devices-hap/device.d.ts.map +1 -1
  22. package/dist/devices-hap/device.js +141 -69
  23. package/dist/devices-hap/device.js.map +1 -1
  24. package/dist/devices-hap/fan.d.ts.map +1 -1
  25. package/dist/devices-hap/fan.js +12 -6
  26. package/dist/devices-hap/fan.js.map +1 -1
  27. package/dist/devices-hap/hub.d.ts.map +1 -1
  28. package/dist/devices-hap/hub.js +6 -5
  29. package/dist/devices-hap/hub.js.map +1 -1
  30. package/dist/devices-hap/humidifier.d.ts +5 -0
  31. package/dist/devices-hap/humidifier.d.ts.map +1 -1
  32. package/dist/devices-hap/humidifier.js +92 -4
  33. package/dist/devices-hap/humidifier.js.map +1 -1
  34. package/dist/devices-hap/iosensor.d.ts.map +1 -1
  35. package/dist/devices-hap/iosensor.js +36 -21
  36. package/dist/devices-hap/iosensor.js.map +1 -1
  37. package/dist/devices-hap/lightstrip.d.ts.map +1 -1
  38. package/dist/devices-hap/lightstrip.js +38 -8
  39. package/dist/devices-hap/lightstrip.js.map +1 -1
  40. package/dist/devices-hap/lock.d.ts.map +1 -1
  41. package/dist/devices-hap/lock.js +14 -6
  42. package/dist/devices-hap/lock.js.map +1 -1
  43. package/dist/devices-hap/meter.d.ts.map +1 -1
  44. package/dist/devices-hap/meter.js +6 -5
  45. package/dist/devices-hap/meter.js.map +1 -1
  46. package/dist/devices-hap/meterplus.d.ts.map +1 -1
  47. package/dist/devices-hap/meterplus.js +6 -5
  48. package/dist/devices-hap/meterplus.js.map +1 -1
  49. package/dist/devices-hap/meterpro.d.ts.map +1 -1
  50. package/dist/devices-hap/meterpro.js +7 -6
  51. package/dist/devices-hap/meterpro.js.map +1 -1
  52. package/dist/devices-hap/motion.js +3 -3
  53. package/dist/devices-hap/plug.d.ts.map +1 -1
  54. package/dist/devices-hap/plug.js +11 -6
  55. package/dist/devices-hap/plug.js.map +1 -1
  56. package/dist/devices-hap/relayswitch.js +3 -3
  57. package/dist/devices-hap/robotvacuumcleaner.d.ts.map +1 -1
  58. package/dist/devices-hap/robotvacuumcleaner.js +13 -6
  59. package/dist/devices-hap/robotvacuumcleaner.js.map +1 -1
  60. package/dist/devices-hap/waterdetector.js +3 -3
  61. package/dist/devices-matter/BaseMatterAccessory.d.ts +27 -0
  62. package/dist/devices-matter/BaseMatterAccessory.d.ts.map +1 -1
  63. package/dist/devices-matter/BaseMatterAccessory.js +169 -5
  64. package/dist/devices-matter/BaseMatterAccessory.js.map +1 -1
  65. package/dist/devices-matter/ColorLightAccessory.d.ts.map +1 -1
  66. package/dist/devices-matter/ColorLightAccessory.js +12 -12
  67. package/dist/devices-matter/ColorLightAccessory.js.map +1 -1
  68. package/dist/devices-matter/ColorTemperatureLightAccessory.d.ts.map +1 -1
  69. package/dist/devices-matter/ColorTemperatureLightAccessory.js +5 -7
  70. package/dist/devices-matter/ColorTemperatureLightAccessory.js.map +1 -1
  71. package/dist/devices-matter/DimmableLightAccessory.js +9 -9
  72. package/dist/devices-matter/DimmableLightAccessory.js.map +1 -1
  73. package/dist/devices-matter/ExtendedColorLightAccessory.d.ts.map +1 -1
  74. package/dist/devices-matter/ExtendedColorLightAccessory.js +14 -15
  75. package/dist/devices-matter/ExtendedColorLightAccessory.js.map +1 -1
  76. package/dist/devices-matter/OnOffLightAccessory.d.ts.map +1 -1
  77. package/dist/devices-matter/OnOffLightAccessory.js +8 -16
  78. package/dist/devices-matter/OnOffLightAccessory.js.map +1 -1
  79. package/dist/devices-matter/OnOffOutletAccessory.d.ts +2 -0
  80. package/dist/devices-matter/OnOffOutletAccessory.d.ts.map +1 -1
  81. package/dist/devices-matter/OnOffOutletAccessory.js +10 -7
  82. package/dist/devices-matter/OnOffOutletAccessory.js.map +1 -1
  83. package/dist/devices-matter/OnOffSwitchAccessory.js +2 -2
  84. package/dist/devices-matter/OnOffSwitchAccessory.js.map +1 -1
  85. package/dist/devices-matter/RoboticVacuumAccessory.d.ts +36 -43
  86. package/dist/devices-matter/RoboticVacuumAccessory.d.ts.map +1 -1
  87. package/dist/devices-matter/RoboticVacuumAccessory.js +478 -268
  88. package/dist/devices-matter/RoboticVacuumAccessory.js.map +1 -1
  89. package/dist/devices-matter/VenetianBlindAccessory.d.ts +6 -6
  90. package/dist/devices-matter/VenetianBlindAccessory.d.ts.map +1 -1
  91. package/dist/devices-matter/VenetianBlindAccessory.js.map +1 -1
  92. package/dist/devices-matter/WindowBlindAccessory.d.ts +5 -5
  93. package/dist/devices-matter/WindowBlindAccessory.d.ts.map +1 -1
  94. package/dist/devices-matter/WindowBlindAccessory.js +57 -6
  95. package/dist/devices-matter/WindowBlindAccessory.js.map +1 -1
  96. package/dist/homebridge-ui/public/index.html +219 -19
  97. package/dist/homebridge-ui/server.js +0 -31
  98. package/dist/homebridge-ui/server.js.map +1 -1
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +4 -9
  101. package/dist/index.js.map +1 -1
  102. package/dist/irdevice/irdevice.d.ts +11 -10
  103. package/dist/irdevice/irdevice.d.ts.map +1 -1
  104. package/dist/irdevice/irdevice.js +76 -35
  105. package/dist/irdevice/irdevice.js.map +1 -1
  106. package/dist/platform-hap.d.ts +26 -15
  107. package/dist/platform-hap.d.ts.map +1 -1
  108. package/dist/platform-hap.js +333 -153
  109. package/dist/platform-hap.js.map +1 -1
  110. package/dist/platform-matter.d.ts +93 -6
  111. package/dist/platform-matter.d.ts.map +1 -1
  112. package/dist/platform-matter.js +1878 -229
  113. package/dist/platform-matter.js.map +1 -1
  114. package/dist/settings.d.ts +75 -7
  115. package/dist/settings.d.ts.map +1 -1
  116. package/dist/settings.js.map +1 -1
  117. package/dist/test/apiRequestTracker.test.d.ts +2 -0
  118. package/dist/test/apiRequestTracker.test.d.ts.map +1 -0
  119. package/dist/test/apiRequestTracker.test.js +392 -0
  120. package/dist/test/apiRequestTracker.test.js.map +1 -0
  121. package/dist/test/hap/device-webhook-context.test.d.ts +2 -0
  122. package/dist/test/hap/device-webhook-context.test.d.ts.map +1 -0
  123. package/dist/test/hap/device-webhook-context.test.js +128 -0
  124. package/dist/test/hap/device-webhook-context.test.js.map +1 -0
  125. package/dist/test/hap/platform-hap.logging.test.d.ts +2 -0
  126. package/dist/test/hap/platform-hap.logging.test.d.ts.map +1 -0
  127. package/dist/test/hap/platform-hap.logging.test.js +33 -0
  128. package/dist/test/hap/platform-hap.logging.test.js.map +1 -0
  129. package/dist/test/hap/platform-hap.test.d.ts +2 -0
  130. package/dist/test/hap/platform-hap.test.d.ts.map +1 -0
  131. package/dist/test/hap/platform-hap.test.js +62 -0
  132. package/dist/test/hap/platform-hap.test.js.map +1 -0
  133. package/dist/test/helpers/platform-fixtures.d.ts +9 -0
  134. package/dist/test/helpers/platform-fixtures.d.ts.map +1 -0
  135. package/dist/test/helpers/platform-fixtures.js +30 -0
  136. package/dist/test/helpers/platform-fixtures.js.map +1 -0
  137. package/dist/test/homebridge-ui/server.test.d.ts +2 -0
  138. package/dist/test/homebridge-ui/server.test.d.ts.map +1 -0
  139. package/dist/test/homebridge-ui/server.test.js +445 -0
  140. package/dist/test/homebridge-ui/server.test.js.map +1 -0
  141. package/dist/{index.test.d.ts.map → test/index.test.d.ts.map} +1 -1
  142. package/dist/test/index.test.js +19 -0
  143. package/dist/test/index.test.js.map +1 -0
  144. package/dist/test/matter/devices-matter/baseMatterAccessory.test.d.ts +2 -0
  145. package/dist/test/matter/devices-matter/baseMatterAccessory.test.d.ts.map +1 -0
  146. package/dist/test/matter/devices-matter/baseMatterAccessory.test.js +71 -0
  147. package/dist/test/matter/devices-matter/baseMatterAccessory.test.js.map +1 -0
  148. package/dist/test/matter/platform-matter.additional.test.d.ts +2 -0
  149. package/dist/test/matter/platform-matter.additional.test.d.ts.map +1 -0
  150. package/dist/test/matter/platform-matter.additional.test.js +35 -0
  151. package/dist/test/matter/platform-matter.additional.test.js.map +1 -0
  152. package/dist/test/matter/platform-matter.bleparse.test.d.ts +2 -0
  153. package/dist/test/matter/platform-matter.bleparse.test.d.ts.map +1 -0
  154. package/dist/test/matter/platform-matter.bleparse.test.js +43 -0
  155. package/dist/test/matter/platform-matter.bleparse.test.js.map +1 -0
  156. package/dist/test/matter/platform-matter.cleanup.test.d.ts +2 -0
  157. package/dist/test/matter/platform-matter.cleanup.test.d.ts.map +1 -0
  158. package/dist/test/matter/platform-matter.cleanup.test.js +70 -0
  159. package/dist/test/matter/platform-matter.cleanup.test.js.map +1 -0
  160. package/dist/test/matter/platform-matter.keepstale.test.d.ts +2 -0
  161. package/dist/test/matter/platform-matter.keepstale.test.d.ts.map +1 -0
  162. package/dist/test/matter/platform-matter.keepstale.test.js +27 -0
  163. package/dist/test/matter/platform-matter.keepstale.test.js.map +1 -0
  164. package/dist/test/matter/platform-matter.logging.test.d.ts +2 -0
  165. package/dist/test/matter/platform-matter.logging.test.d.ts.map +1 -0
  166. package/dist/test/matter/platform-matter.logging.test.js +29 -0
  167. package/dist/test/matter/platform-matter.logging.test.js.map +1 -0
  168. package/dist/test/matter/platform-matter.mapping.test.d.ts +2 -0
  169. package/dist/test/matter/platform-matter.mapping.test.d.ts.map +1 -0
  170. package/dist/test/matter/platform-matter.mapping.test.js +43 -0
  171. package/dist/test/matter/platform-matter.mapping.test.js.map +1 -0
  172. package/dist/test/matter/platform-matter.openapi-mapping.test.d.ts +2 -0
  173. package/dist/test/matter/platform-matter.openapi-mapping.test.d.ts.map +1 -0
  174. package/dist/test/matter/platform-matter.openapi-mapping.test.js +84 -0
  175. package/dist/test/matter/platform-matter.openapi-mapping.test.js.map +1 -0
  176. package/dist/test/matter/platform-matter.test.d.ts +2 -0
  177. package/dist/test/matter/platform-matter.test.d.ts.map +1 -0
  178. package/dist/test/matter/platform-matter.test.js +117 -0
  179. package/dist/test/matter/platform-matter.test.js.map +1 -0
  180. package/dist/test/matter/platform-matter.unregister.test.d.ts +2 -0
  181. package/dist/test/matter/platform-matter.unregister.test.d.ts.map +1 -0
  182. package/dist/test/matter/platform-matter.unregister.test.js +30 -0
  183. package/dist/test/matter/platform-matter.unregister.test.js.map +1 -0
  184. package/dist/test/matter/platform-matter.webhook.test.d.ts +2 -0
  185. package/dist/test/matter/platform-matter.webhook.test.d.ts.map +1 -0
  186. package/dist/test/matter/platform-matter.webhook.test.js +46 -0
  187. package/dist/test/matter/platform-matter.webhook.test.js.map +1 -0
  188. package/dist/test/utils.test.d.ts +2 -0
  189. package/dist/test/utils.test.d.ts.map +1 -0
  190. package/dist/test/utils.test.js +95 -0
  191. package/dist/test/utils.test.js.map +1 -0
  192. package/dist/test/verifyconfig.test.d.ts.map +1 -0
  193. package/dist/{verifyconfig.test.js → test/verifyconfig.test.js} +2 -2
  194. package/dist/test/verifyconfig.test.js.map +1 -0
  195. package/dist/utils.d.ts +204 -3
  196. package/dist/utils.d.ts.map +1 -1
  197. package/dist/utils.js +713 -33
  198. package/dist/utils.js.map +1 -1
  199. package/docs/assets/highlight.css +14 -0
  200. package/docs/assets/main.js +2 -2
  201. package/docs/index.html +31 -2
  202. package/docs/variables/default.html +1 -1
  203. package/package.json +15 -15
  204. package/src/devices-hap/airpurifier.ts +11 -6
  205. package/src/devices-hap/blindtilt.ts +3 -3
  206. package/src/devices-hap/bot.ts +15 -5
  207. package/src/devices-hap/ceilinglight.ts +12 -7
  208. package/src/devices-hap/colorbulb.ts +46 -10
  209. package/src/devices-hap/contact.ts +3 -3
  210. package/src/devices-hap/curtain.ts +2 -2
  211. package/src/devices-hap/device.ts +149 -70
  212. package/src/devices-hap/fan.ts +11 -6
  213. package/src/devices-hap/hub.ts +6 -5
  214. package/src/devices-hap/humidifier.ts +97 -4
  215. package/src/devices-hap/iosensor.ts +36 -21
  216. package/src/devices-hap/lightstrip.ts +35 -8
  217. package/src/devices-hap/lock.ts +13 -6
  218. package/src/devices-hap/meter.ts +6 -5
  219. package/src/devices-hap/meterplus.ts +6 -5
  220. package/src/devices-hap/meterpro.ts +7 -6
  221. package/src/devices-hap/motion.ts +3 -3
  222. package/src/devices-hap/plug.ts +10 -6
  223. package/src/devices-hap/relayswitch.ts +3 -3
  224. package/src/devices-hap/robotvacuumcleaner.ts +12 -6
  225. package/src/devices-hap/waterdetector.ts +3 -3
  226. package/src/devices-matter/BaseMatterAccessory.ts +176 -5
  227. package/src/devices-matter/ColorLightAccessory.ts +12 -12
  228. package/src/devices-matter/ColorTemperatureLightAccessory.ts +5 -7
  229. package/src/devices-matter/DimmableLightAccessory.ts +9 -9
  230. package/src/devices-matter/ExtendedColorLightAccessory.ts +14 -15
  231. package/src/devices-matter/OnOffLightAccessory.ts +8 -16
  232. package/src/devices-matter/OnOffOutletAccessory.ts +12 -7
  233. package/src/devices-matter/OnOffSwitchAccessory.ts +2 -2
  234. package/src/devices-matter/RoboticVacuumAccessory.ts +529 -315
  235. package/src/devices-matter/VenetianBlindAccessory.ts +5 -5
  236. package/src/devices-matter/WindowBlindAccessory.ts +53 -10
  237. package/src/homebridge-ui/public/index.html +219 -19
  238. package/src/homebridge-ui/server.ts +0 -34
  239. package/src/index.ts +4 -10
  240. package/src/irdevice/irdevice.ts +74 -35
  241. package/src/platform-hap.ts +365 -169
  242. package/src/platform-matter.ts +1923 -230
  243. package/src/settings.ts +78 -3
  244. package/src/test/apiRequestTracker.test.ts +417 -0
  245. package/src/test/hap/device-webhook-context.test.ts +136 -0
  246. package/src/test/hap/platform-hap.logging.test.ts +36 -0
  247. package/src/test/hap/platform-hap.test.ts +70 -0
  248. package/src/test/helpers/platform-fixtures.ts +33 -0
  249. package/src/test/homebridge-ui/server.test.ts +486 -0
  250. package/src/test/index.test.ts +24 -0
  251. package/src/test/matter/devices-matter/baseMatterAccessory.test.ts +88 -0
  252. package/src/test/matter/platform-matter.additional.test.ts +44 -0
  253. package/src/test/matter/platform-matter.bleparse.test.ts +47 -0
  254. package/src/test/matter/platform-matter.cleanup.test.ts +86 -0
  255. package/src/test/matter/platform-matter.keepstale.test.ts +37 -0
  256. package/src/test/matter/platform-matter.logging.test.ts +33 -0
  257. package/src/test/matter/platform-matter.mapping.test.ts +57 -0
  258. package/src/test/matter/platform-matter.openapi-mapping.test.ts +109 -0
  259. package/src/test/matter/platform-matter.test.ts +144 -0
  260. package/src/test/matter/platform-matter.unregister.test.ts +39 -0
  261. package/src/test/matter/platform-matter.webhook.test.ts +54 -0
  262. package/src/test/utils.test.ts +96 -0
  263. package/src/{verifyconfig.test.ts → test/verifyconfig.test.ts} +12 -11
  264. package/src/utils.ts +777 -36
  265. package/dist/index.test.js +0 -14
  266. package/dist/index.test.js.map +0 -1
  267. package/dist/verifyconfig.test.d.ts.map +0 -1
  268. package/dist/verifyconfig.test.js.map +0 -1
  269. package/src/index.test.ts +0 -19
  270. /package/dist/{index.test.d.ts → test/index.test.d.ts} +0 -0
  271. /package/dist/{verifyconfig.test.d.ts → test/verifyconfig.test.d.ts} +0 -0
@@ -22,12 +22,8 @@ export class OnOffLightAccessory extends BaseMatterAccessory {
22
22
  const clusters = opts?.clusters ?? { onOff: { onOff: true } };
23
23
  const handlers = opts?.handlers ?? {
24
24
  onOff: {
25
- on: async () => {
26
- log.debug(`${displayName} on handler invoked (default no-op).`);
27
- },
28
- off: async () => {
29
- log.debug(`${displayName} off handler invoked (default no-op).`);
30
- },
25
+ on: async () => this.handleOnCommand(),
26
+ off: async () => this.handleOffCommand(),
31
27
  },
32
28
  };
33
29
  // Call parent constructor with device configuration
@@ -52,13 +48,9 @@ export class OnOffLightAccessory extends BaseMatterAccessory {
52
48
  async handleOnCommand() {
53
49
  this.logInfo('turning on.');
54
50
  try {
55
- // TODO: Control your physical device here
56
- // Examples:
57
- // await fetch('https://api.mydevice.com/light/on', { method: 'POST' })
58
- // await fetch('http://192.168.1.50/api/light/on')
59
- // mqttClient.publish('home/light/command', JSON.stringify({ state: 'ON' }))
60
- // await myLightAPI.turnOn(this.context.deviceId)
61
- this.logInfo('physical device turned on.');
51
+ // Delegate to the platform-provided helper (OpenAPI/BLE) when available
52
+ await this.sendOnCommand();
53
+ this.logInfo('physical device turned on (via platform helper).');
62
54
  // State automatically updated by Homebridge after handler completes
63
55
  }
64
56
  catch (error) {
@@ -72,9 +64,9 @@ export class OnOffLightAccessory extends BaseMatterAccessory {
72
64
  async handleOffCommand() {
73
65
  this.logInfo('turning off.');
74
66
  try {
75
- // TODO: Control your physical device here
76
- // await myLightAPI.turnOff(this.context.deviceId)
77
- this.logInfo('physical device turned off.');
67
+ // Delegate to the platform-provided helper (OpenAPI/BLE) when available
68
+ await this.sendOffCommand();
69
+ this.logInfo('physical device turned off (via platform helper).');
78
70
  // State automatically updated by Homebridge after handler completes
79
71
  }
80
72
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"OnOffLightAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffLightAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OnOffLightAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffLightAccessory.ts"],"names":[],"mappings":"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"}
@@ -8,5 +8,7 @@ export declare class OnOffOutletAccessory extends BaseMatterAccessory {
8
8
  deviceId?: string;
9
9
  }>);
10
10
  updateOnOffState(isOn: boolean): void;
11
+ private handleOn;
12
+ private handleOff;
11
13
  }
12
14
  //# sourceMappingURL=OnOffOutletAccessory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OnOffOutletAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/OnOffOutletAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAC/C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,uBAAuB,EAAE,yBAAyB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiC7H,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;CAG7C"}
1
+ {"version":3,"file":"OnOffOutletAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/OnOffOutletAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAC/C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,uBAAuB,EAAE,yBAAyB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA4B7H,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;YAI9B,QAAQ;YAKR,SAAS;CAIxB"}
@@ -9,13 +9,8 @@ export class OnOffOutletAccessory extends BaseMatterAccessory {
9
9
  const clusters = opts?.clusters ?? { onOff: { onOff: false } };
10
10
  const handlers = opts?.handlers ?? {
11
11
  onOff: {
12
- on: async () => {
13
- // default no-op; platform may inject handlers via opts.handlers
14
- log.debug(`${displayName} on handler invoked (default no-op).`);
15
- },
16
- off: async () => {
17
- log.debug(`${displayName} off handler invoked (default no-op).`);
18
- },
12
+ on: async () => this.handleOn(),
13
+ off: async () => this.handleOff(),
19
14
  },
20
15
  };
21
16
  super(api, log, {
@@ -36,5 +31,13 @@ export class OnOffOutletAccessory extends BaseMatterAccessory {
36
31
  updateOnOffState(isOn) {
37
32
  this.updateState(this.api.matter.clusterNames.OnOff, { onOff: isOn });
38
33
  }
34
+ async handleOn() {
35
+ this.logInfo('turning on.');
36
+ await this.sendOnCommand();
37
+ }
38
+ async handleOff() {
39
+ this.logInfo('turning off.');
40
+ await this.sendOffCommand();
41
+ }
39
42
  }
40
43
  //# sourceMappingURL=OnOffOutletAccessory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OnOffOutletAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffOutletAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YAAY,GAAQ,EAAE,GAAW,EAAE,IAAiG;QAClI,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,YAAY,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAA;QACxD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAA;QAC9D,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI;YACjC,KAAK,EAAE;gBACL,EAAE,EAAE,KAAK,IAAI,EAAE;oBACb,gEAAgE;oBAChE,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,sCAAsC,CAAC,CAAA;gBACjE,CAAC;gBACD,GAAG,EAAE,KAAK,IAAI,EAAE;oBACd,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,uCAAuC,CAAC,CAAA;gBAClE,CAAC;aACF;SACF,CAAA;QAED,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1D,WAAW;YACX,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;YAC9C,YAAY;YACZ,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,mBAAmB;YACvD,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,yBAAyB;YAC/C,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,OAAO;YACnD,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,OAAO;YACnD,QAAQ;YACR,QAAQ;YACR,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE;SAChE,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,gBAAgB,CAAC,IAAa;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;CACF"}
1
+ {"version":3,"file":"OnOffOutletAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffOutletAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YAAY,GAAQ,EAAE,GAAW,EAAE,IAAiG;QAClI,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,YAAY,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAA;QACxD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAA;QAC9D,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI;YACjC,KAAK,EAAE;gBACL,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC/B,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;aAClC;SACF,CAAA;QAED,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1D,WAAW;YACX,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;YAC9C,YAAY;YACZ,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,mBAAmB;YACvD,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,yBAAyB;YAC/C,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,OAAO;YACnD,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,OAAO;YACnD,QAAQ;YACR,QAAQ;YACR,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE;SAChE,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,gBAAgB,CAAC,IAAa;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC3B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;IAC5B,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAC5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;IAC7B,CAAC;CACF"}
@@ -29,11 +29,11 @@ export class OnOffSwitchAccessory extends BaseMatterAccessory {
29
29
  }
30
30
  async handleOn() {
31
31
  this.logInfo('turning on.');
32
- // TODO: await mySwitchAPI.turnOn()
32
+ await this.sendOnCommand();
33
33
  }
34
34
  async handleOff() {
35
35
  this.logInfo('turning off.');
36
- // TODO: await mySwitchAPI.turnOff()
36
+ await this.sendOffCommand();
37
37
  }
38
38
  updateOnOffState(isOn) {
39
39
  this.updateState(this.api.matter.clusterNames.OnOff, { onOff: isOn });
@@ -1 +1 @@
1
- {"version":3,"file":"OnOffSwitchAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffSwitchAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YAAY,GAAQ,EAAE,GAAW,EAAE,IAAiG;QAClI,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,YAAY,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAA;QACxD,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,mBAAmB,CAAA;QAC9D,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,yBAAyB,CAAA;QACtD,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,OAAO,CAAA;QAC1D,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,OAAO,CAAA;QAE1D,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAA;QAC9D,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,CAAA;QAEpH,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1D,WAAW;YACX,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;YAC9C,YAAY;YACZ,YAAY;YACZ,KAAK;YACL,gBAAgB;YAChB,gBAAgB;YAChB,QAAQ;YACR,QAAQ;YACR,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE;SAChE,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC3B,mCAAmC;IACrC,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAC5B,oCAAoC;IACtC,CAAC;IAEM,gBAAgB,CAAC,IAAa;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;CACF"}
1
+ {"version":3,"file":"OnOffSwitchAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffSwitchAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YAAY,GAAQ,EAAE,GAAW,EAAE,IAAiG;QAClI,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,YAAY,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAA;QACxD,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,mBAAmB,CAAA;QAC9D,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,yBAAyB,CAAA;QACtD,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,OAAO,CAAA;QAC1D,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,OAAO,CAAA;QAE1D,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAA;QAC9D,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,CAAA;QAEpH,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1D,WAAW;YACX,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;YAC9C,YAAY;YACZ,YAAY;YACZ,KAAK;YACL,gBAAgB;YAChB,gBAAgB;YAChB,QAAQ;YACR,QAAQ;YACR,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE;SAChE,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC3B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;IAC5B,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAC5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;IAC7B,CAAC;IAEM,gBAAgB,CAAC,IAAa;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;CACF"}
@@ -1,29 +1,38 @@
1
1
  /**
2
- * Robotic Vacuum Cleaner Accessory Class
2
+ * Robotic Vacuum Cleaner Accessory (SwitchBot-aligned)
3
3
  *
4
- * This is a comprehensive example demonstrating all available features
5
- * of the RoboticVacuumCleaner device type including:
6
- * - Multiple run modes (Idle, Cleaning, Mapping)
7
- * - Multiple clean modes (Vacuum, Mop, Vacuum & Mop, Deep Clean)
8
- * - Operational state management with realistic transitions
9
- * - Service area (room) support
4
+ * This implementation is intentionally limited to SwitchBot OpenAPI-supported
5
+ * behaviors for Robot Vacuum families. We expose only commands and modes that
6
+ * exist in the public API docs:
7
+ * https://github.com/OpenWonderLabs/SwitchBotAPI
10
8
  *
11
- * IMPORTANT: Platform Matter accessories
12
- * =======================================
13
- * This vacuum is registered as a platform accessory using
14
- * api.matter.registerPlatformAccessories(), which works the same as HAP.
15
- * Platform accessories are registered synchronously and are immediately ready for use.
9
+ * Capability matrix (derived from OpenAPI v1.1):
10
+ * - S1 / S1 Plus / K10+ / K10+ Pro
11
+ * Commands: start, stop, dock, PowLevel {0-3}
12
+ * No pause/resume, no mop, no area selection
13
+ * - K10+ Pro Combo
14
+ * • Commands: startClean {action: sweep|mop, param: {fanLevel 1-4}}, pause, dock
15
+ * • changeParam {fanLevel}, setVolume
16
+ * - S10 / S20 / K11+ / K20+ Pro
17
+ * • Commands: startClean {action: sweep|sweep_mop|mop (model-dependent), param: {fanLevel 1-4, waterLevel 1-2?}},
18
+ * pause, dock, changeParam, setVolume, (S10/S20) selfClean/addWaterForHumi
19
+ * • Some models support waterLevel, some do not (e.g. K10+ Pro Combo)
16
20
  *
17
- * Demo behavior:
18
- * - Start/Resume: Sets run mode to "Cleaning", runs for 15/10 seconds, then returns to dock
19
- * - Return to dock: Immediately sets "Idle" mode, then Seeking (5s) → Charging (3s) → Docked
20
- * - Stop: Immediately stops and resets to "Idle" mode
21
- * - Pause: Cancels automatic completion timer, keeps "Cleaning" mode
21
+ * Matter clusters exposed:
22
+ * - rvcRunMode: Idle/Cleaning only (no Mapping mode via OpenAPI)
23
+ * - rvcCleanMode: Interpreted per model:
24
+ * Basic vac (S1/K10 family): suction levels Quiet/Standard/Strong/MAX
25
+ * Mop-capable (K10+ Pro Combo/K11+/K20+ Pro): action Vacuum or Mop
26
+ * • Mop+Vac-capable (S10/S20): action → Vacuum or Vacuum & Mop
27
+ * - rvcOperationalState: start/stop/pause/goHome handlers are attached only when supported
28
+ * - serviceArea: NOT exposed (area/room selection isn’t in public OpenAPI)
22
29
  */
23
30
  import type { API, Logger } from 'homebridge';
24
31
  import { BaseMatterAccessory } from './BaseMatterAccessory.js';
25
32
  export declare class RoboticVacuumAccessory extends BaseMatterAccessory {
26
- private activeTimers;
33
+ private currentCleanAction;
34
+ private currentFanLevel;
35
+ private capabilities;
27
36
  constructor(api: API, log: Logger, opts?: Partial<import('./BaseMatterAccessory').BaseMatterAccessoryConfig & {
28
37
  deviceId?: string;
29
38
  }>);
@@ -34,35 +43,19 @@ export declare class RoboticVacuumAccessory extends BaseMatterAccessory {
34
43
  private handleStart;
35
44
  private handleResume;
36
45
  private handleGoHome;
37
- private handleSelectAreas;
38
- private handleSkipArea;
39
- /**
40
- * Helper method to clear all active timers
41
- */
42
- private clearTimers;
43
- /**
44
- * Helper method to initiate return to dock sequence
45
- * Can be called synchronously from other handlers
46
- */
47
- private returnToDock;
48
- /**
49
- * Update Methods - Use these to update the vacuum state from your API/device
50
- *
51
- * Since this is a platform accessory, state updates work immediately after registration.
52
- */
53
46
  updateOperationalState(state: number): void;
54
47
  updateRunMode(mode: number): void;
55
48
  updateCleanMode(mode: number): void;
56
- updateSelectedAreas(areaIds: number[]): void;
57
- updateCurrentArea(areaId: number | null): void;
58
- updateProgress(progress: Array<{
59
- areaId: number;
60
- status: number;
61
- }>): void;
62
49
  /**
63
- * Update battery percentage
64
- * @param percentage - Battery percentage (0-100)
50
+ * Update battery percentage (no PowerSource cluster for this device type)
65
51
  */
66
- updateBatteryPercentage(percentage: number): Promise<void>;
52
+ updateBatteryPercentage(percentageOrBatPercentRemaining: number): Promise<void>;
53
+ private handleDock;
54
+ private handleServiceArea;
55
+ private simulateCleaningSequence;
56
+ private simulateDockingSequence;
57
+ private requestDeviceStatus;
58
+ startCleaningSimulation(): Promise<void>;
59
+ startDockingSimulation(): Promise<void>;
67
60
  }
68
61
  //# sourceMappingURL=RoboticVacuumAccessory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RoboticVacuumAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/RoboticVacuumAccessory.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAkB,MAAM,YAAY,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,OAAO,CAAC,YAAY,CAAuB;gBAE/B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,uBAAuB,EAAE,yBAAyB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;YAuFtH,mBAAmB;YAuCnB,qBAAqB;YAyBrB,WAAW;YAOX,UAAU;YAQV,WAAW;YAoBX,YAAY;YAoBZ,YAAY;YAiBZ,iBAAiB;YAUjB,cAAc;IAQ5B;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;;OAGG;IACH,OAAO,CAAC,YAAY;IA0BpB;;;;OAIG;IAEI,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAmB3C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMjC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAsBnC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ5C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAU9C,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAKhF;;;OAGG;IACU,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAexE"}
1
+ {"version":3,"file":"RoboticVacuumAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/RoboticVacuumAccessory.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAkB,MAAM,YAAY,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAwH9D,qBAAa,sBAAuB,SAAQ,mBAAmB;IAE7D,OAAO,CAAC,kBAAkB,CAA4C;IACtE,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,YAAY,CAAoB;gBAE5B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,uBAAuB,EAAE,yBAAyB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;YAyItH,mBAAmB;YA4DnB,qBAAqB;YAiDrB,WAAW;YAYX,UAAU;YAmBV,WAAW;YAwBX,YAAY;YAaZ,YAAY;IAanB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAc3C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMjC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM1C;;OAEG;IACU,uBAAuB,CAAC,+BAA+B,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAqB9E,UAAU;YAaV,iBAAiB;YAKjB,wBAAwB;YAsBxB,uBAAuB;YAsBvB,mBAAmB;IAYpB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;CAIrD"}