homebridge 2.0.0-beta.39 → 2.0.0-beta.40

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 (104) hide show
  1. package/dist/childBridgeFork.d.ts +0 -5
  2. package/dist/childBridgeFork.d.ts.map +1 -1
  3. package/dist/childBridgeFork.js +4 -9
  4. package/dist/childBridgeFork.js.map +1 -1
  5. package/dist/childBridgeService.d.ts +7 -0
  6. package/dist/childBridgeService.d.ts.map +1 -1
  7. package/dist/childBridgeService.js.map +1 -1
  8. package/dist/index.d.ts +24 -5
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +23 -4
  11. package/dist/index.js.map +1 -1
  12. package/dist/ipcService.d.ts +2 -4
  13. package/dist/ipcService.d.ts.map +1 -1
  14. package/dist/ipcService.js +0 -2
  15. package/dist/ipcService.js.map +1 -1
  16. package/dist/matter/ChildBridgeMatterManager.d.ts +2 -2
  17. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -1
  18. package/dist/matter/ChildBridgeMatterManager.js +10 -8
  19. package/dist/matter/ChildBridgeMatterManager.js.map +1 -1
  20. package/dist/matter/MatterBridgeManager.d.ts +0 -4
  21. package/dist/matter/MatterBridgeManager.d.ts.map +1 -1
  22. package/dist/matter/MatterBridgeManager.js +0 -13
  23. package/dist/matter/MatterBridgeManager.js.map +1 -1
  24. package/dist/matter/behaviors/ColorControlBehavior.d.ts +6 -7
  25. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -1
  26. package/dist/matter/behaviors/ColorControlBehavior.js +146 -83
  27. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -1
  28. package/dist/matter/behaviors/DoorLockBehavior.d.ts +2 -3
  29. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -1
  30. package/dist/matter/behaviors/DoorLockBehavior.js +46 -24
  31. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -1
  32. package/dist/matter/behaviors/DoorLockBehavior.spec.js +24 -12
  33. package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +1 -1
  34. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -1
  35. package/dist/matter/behaviors/FanControlBehavior.js +41 -15
  36. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -1
  37. package/dist/matter/behaviors/IdentifyBehavior.d.ts +1 -2
  38. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -1
  39. package/dist/matter/behaviors/IdentifyBehavior.js +20 -6
  40. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -1
  41. package/dist/matter/behaviors/IdentifyBehavior.spec.js +3 -3
  42. package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +1 -1
  43. package/dist/matter/behaviors/LevelControlBehavior.d.ts +5 -6
  44. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -1
  45. package/dist/matter/behaviors/LevelControlBehavior.js +100 -37
  46. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -1
  47. package/dist/matter/behaviors/LevelControlBehavior.spec.js +15 -10
  48. package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +1 -1
  49. package/dist/matter/behaviors/OnOffBehavior.d.ts +3 -4
  50. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -1
  51. package/dist/matter/behaviors/OnOffBehavior.js +64 -32
  52. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -1
  53. package/dist/matter/behaviors/OnOffBehavior.spec.js +27 -15
  54. package/dist/matter/behaviors/OnOffBehavior.spec.js.map +1 -1
  55. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +1 -1
  56. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -1
  57. package/dist/matter/behaviors/RvcCleanModeBehavior.js +20 -6
  58. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -1
  59. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +3 -2
  60. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +1 -1
  61. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +3 -4
  62. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -1
  63. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +60 -23
  64. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -1
  65. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +1 -1
  66. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -1
  67. package/dist/matter/behaviors/RvcRunModeBehavior.js +20 -6
  68. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -1
  69. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +3 -2
  70. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +1 -1
  71. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +2 -3
  72. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -1
  73. package/dist/matter/behaviors/ServiceAreaBehavior.js +38 -12
  74. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -1
  75. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +3 -2
  76. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +1 -1
  77. package/dist/matter/behaviors/ThermostatBehavior.d.ts +1 -2
  78. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -1
  79. package/dist/matter/behaviors/ThermostatBehavior.js +82 -34
  80. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -1
  81. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +5 -6
  82. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -1
  83. package/dist/matter/behaviors/WindowCoveringBehavior.js +102 -50
  84. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -1
  85. package/dist/matter/errors.d.ts +178 -0
  86. package/dist/matter/errors.d.ts.map +1 -0
  87. package/dist/matter/errors.js +200 -0
  88. package/dist/matter/errors.js.map +1 -0
  89. package/dist/matter/index.d.ts +1 -0
  90. package/dist/matter/index.d.ts.map +1 -1
  91. package/dist/matter/index.js +1 -0
  92. package/dist/matter/index.js.map +1 -1
  93. package/dist/matter/server.d.ts +9 -16
  94. package/dist/matter/server.d.ts.map +1 -1
  95. package/dist/matter/server.js +60 -142
  96. package/dist/matter/server.js.map +1 -1
  97. package/dist/matter/types.d.ts +11 -50
  98. package/dist/matter/types.d.ts.map +1 -1
  99. package/dist/matter/types.js +0 -17
  100. package/dist/matter/types.js.map +1 -1
  101. package/dist/server.d.ts.map +1 -1
  102. package/dist/server.js +0 -7
  103. package/dist/server.js.map +1 -1
  104. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"LevelControlBehavior.spec.js","sourceRoot":"","sources":["../../../src/matter/behaviors/LevelControlBehavior.spec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AAExE,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,IAAI,YAA8B,CAAA;IAClC,IAAI,QAAsC,CAAA;IAC1C,IAAI,YAAiB,CAAA;IAErB,UAAU,CAAC,GAAG,EAAE;QACd,uBAAuB;QACvB,YAAY,GAAG;YACb,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC/C,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;SACnB,CAAA;QAER,iCAAiC;QACjC,4BAA4B,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;QAEtD,uBAAuB;QACvB,YAAY,GAAG;YACb,EAAE,EAAE,mBAAmB;SACxB,CAAA;QAED,kDAAkD;QAClD,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAA;QAChE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC1C,GAAG,EAAE,GAAG,EAAE,CAAC,YAAY;YACvB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAA;QAEF,iDAAiD;QACjD,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,4BAA4B,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QACjH,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,4BAA4B,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1G,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,4BAA4B,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1G,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,4BAA4B,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1G,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,4BAA4B,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;IAC5H,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,WAAW,GAAG,EAAsB,CAAA;YAC1C,4BAA4B,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;YACrD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAEvF,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAEnC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,oBAAoB,CACtD,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,OAAO,CACR,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAExF,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAEnC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CACxD,mBAAmB,EACnB,cAAc,EACd,EAAE,YAAY,EAAE,GAAG,EAAE,CACtB,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;YACrC,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAErF,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAEnC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CACxD,mBAAmB,EACnB,cAAc,EACd,EAAE,YAAY,EAAE,CAAC,EAAE,CACpB,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAEvF,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAEnC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CACxD,mBAAmB,EACnB,cAAc,EACd,EAAE,YAAY,EAAE,GAAG,EAAE,CACtB,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,YAAY,CAAC,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;YACpF,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAEvF,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QAC3D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAE/E,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAE5B,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,oBAAoB,CACtD,mBAAmB,EACnB,cAAc,EACd,MAAM,EACN,OAAO,CACR,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAE/E,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAE5B,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,YAAY,CAAC,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;YACpF,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAE/E,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QACpD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAEtG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAE5B,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,oBAAoB,CACtD,mBAAmB,EACnB,cAAc,EACd,MAAM,EACN,OAAO,CACR,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAEtG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAE5B,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,YAAY,CAAC,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;YACpF,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAEtG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QACpD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,OAAO,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAExD,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAE5B,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,oBAAoB,CACtD,mBAAmB,EACnB,cAAc,EACd,MAAM,EACN,OAAO,CACR,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,OAAO,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAExD,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAE5B,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,YAAY,CAAC,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;YACpF,MAAM,OAAO,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAExD,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QACpD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAEvF,MAAM,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;YAE5C,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,oBAAoB,CACtD,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,OAAO,CACR,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAExF,MAAM,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;YAE5C,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CACxD,mBAAmB,EACnB,cAAc,EACd,EAAE,YAAY,EAAE,GAAG,EAAE,CACtB,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;YACrC,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAErF,MAAM,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;YAE5C,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CACxD,mBAAmB,EACnB,cAAc,EACd,EAAE,YAAY,EAAE,CAAC,EAAE,CACpB,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,YAAY,CAAC,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;YACpF,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;YAEvF,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QACpE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"LevelControlBehavior.spec.js","sourceRoot":"","sources":["../../../src/matter/behaviors/LevelControlBehavior.spec.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@
3
3
  *
4
4
  * Handles on/off commands for lights, switches, and outlets
5
5
  */
6
- import type { MaybePromise } from '@matter/main';
7
6
  import type { BehaviorRegistry } from './BehaviorRegistry.js';
8
7
  import { OnOffServer } from '@matter/main/behaviors/on-off';
9
8
  export declare class HomebridgeOnOffServer extends OnOffServer {
@@ -15,14 +14,14 @@ export declare class HomebridgeOnOffServer extends OnOffServer {
15
14
  /**
16
15
  * Handle 'on' command
17
16
  */
18
- on(): MaybePromise<void>;
17
+ on(): Promise<void>;
19
18
  /**
20
19
  * Handle 'off' command
21
20
  */
22
- off(): MaybePromise<void>;
21
+ off(): Promise<void>;
23
22
  /**
24
23
  * Handle 'toggle' command
25
24
  */
26
- toggle(): MaybePromise<void>;
25
+ toggle(): Promise<void>;
27
26
  }
28
27
  //# sourceMappingURL=OnOffBehavior.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OnOffBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/OnOffBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAE3D,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIpD;;OAEG;IACM,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC;IAiBjC;;OAEG;IACM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC;IAiBlC;;OAEG;IACM,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC;CAkBtC"}
1
+ {"version":3,"file":"OnOffBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/OnOffBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAK3D,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIpD;;OAEG;IACY,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BlC;;OAEG;IACY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BnC;;OAEG;IACY,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CA2BvC"}
@@ -4,6 +4,8 @@
4
4
  * Handles on/off commands for lights, switches, and outlets
5
5
  */
6
6
  import { OnOffServer } from '@matter/main/behaviors/on-off';
7
+ import { Status, StatusResponseError } from '@matter/main/types';
8
+ import { MatterStatus } from '../errors.js';
7
9
  export class HomebridgeOnOffServer extends OnOffServer {
8
10
  static registry;
9
11
  /**
@@ -15,49 +17,79 @@ export class HomebridgeOnOffServer extends OnOffServer {
15
17
  /**
16
18
  * Handle 'on' command
17
19
  */
18
- on() {
20
+ async on() {
19
21
  const endpointId = this.endpoint.id;
20
- // Execute user handler (errors are logged by registry)
21
- HomebridgeOnOffServer.registry.executeHandler(endpointId, 'onOff', 'on').catch(() => {
22
- // Error already logged by registry
23
- });
24
- // Call base implementation
25
- const result = super.on();
26
- // Sync state to cache
27
- HomebridgeOnOffServer.registry.syncStateToCache(endpointId, 'onOff', { onOff: true });
28
- return result;
22
+ try {
23
+ // Execute user handler
24
+ await HomebridgeOnOffServer.registry.executeHandler(endpointId, 'onOff', 'on');
25
+ // Only reached if handler succeeded - update Matter state
26
+ await super.on();
27
+ // Sync state to cache
28
+ HomebridgeOnOffServer.registry.syncStateToCache(endpointId, 'onOff', { onOff: true });
29
+ }
30
+ catch (error) {
31
+ // If user handler already threw a StatusResponseError, propagate it as-is
32
+ // This sends a proper Matter protocol error response to the controller
33
+ if (MatterStatus.isMatterProtocolError(error)) {
34
+ throw error;
35
+ }
36
+ // For other errors, wrap in appropriate StatusResponseError
37
+ // This prevents the endpoint from crashing and keeps the device online
38
+ const message = error instanceof Error ? error.message : String(error);
39
+ throw new StatusResponseError(`Failed to turn on: ${message}`, Status.Failure);
40
+ }
29
41
  }
30
42
  /**
31
43
  * Handle 'off' command
32
44
  */
33
- off() {
45
+ async off() {
34
46
  const endpointId = this.endpoint.id;
35
- // Execute user handler (errors are logged by registry)
36
- HomebridgeOnOffServer.registry.executeHandler(endpointId, 'onOff', 'off').catch(() => {
37
- // Error already logged by registry
38
- });
39
- // Call base implementation
40
- const result = super.off();
41
- // Sync state to cache
42
- HomebridgeOnOffServer.registry.syncStateToCache(endpointId, 'onOff', { onOff: false });
43
- return result;
47
+ try {
48
+ // Execute user handler
49
+ await HomebridgeOnOffServer.registry.executeHandler(endpointId, 'onOff', 'off');
50
+ // Only reached if handler succeeded - update Matter state
51
+ await super.off();
52
+ // Sync state to cache
53
+ HomebridgeOnOffServer.registry.syncStateToCache(endpointId, 'onOff', { onOff: false });
54
+ }
55
+ catch (error) {
56
+ // If user handler already threw a StatusResponseError, propagate it as-is
57
+ // This sends a proper Matter protocol error response to the controller
58
+ if (MatterStatus.isMatterProtocolError(error)) {
59
+ throw error;
60
+ }
61
+ // For other errors, wrap in appropriate StatusResponseError
62
+ // This prevents the endpoint from crashing and keeps the device online
63
+ const message = error instanceof Error ? error.message : String(error);
64
+ throw new StatusResponseError(`Failed to turn off: ${message}`, Status.Failure);
65
+ }
44
66
  }
45
67
  /**
46
68
  * Handle 'toggle' command
47
69
  */
48
- toggle() {
70
+ async toggle() {
49
71
  const endpointId = this.endpoint.id;
50
- // Execute user handler (errors are logged by registry)
51
- HomebridgeOnOffServer.registry.executeHandler(endpointId, 'onOff', 'toggle').catch(() => {
52
- // Error already logged by registry
53
- });
54
- // Call base implementation
55
- const result = super.toggle();
56
- // Sync state to cache (toggle changes the value)
57
- const currentState = this.state;
58
- const newState = !currentState.onOff;
59
- HomebridgeOnOffServer.registry.syncStateToCache(endpointId, 'onOff', { onOff: newState });
60
- return result;
72
+ try {
73
+ // Execute user handler
74
+ await HomebridgeOnOffServer.registry.executeHandler(endpointId, 'onOff', 'toggle');
75
+ // Only reached if handler succeeded - update Matter state
76
+ await super.toggle();
77
+ // Sync state to cache (toggle changes the value)
78
+ const currentState = this.state;
79
+ const newState = !currentState.onOff;
80
+ HomebridgeOnOffServer.registry.syncStateToCache(endpointId, 'onOff', { onOff: newState });
81
+ }
82
+ catch (error) {
83
+ // If user handler already threw a StatusResponseError, propagate it as-is
84
+ // This sends a proper Matter protocol error response to the controller
85
+ if (MatterStatus.isMatterProtocolError(error)) {
86
+ throw error;
87
+ }
88
+ // For other errors, wrap in appropriate StatusResponseError
89
+ // This prevents the endpoint from crashing and keeps the device online
90
+ const message = error instanceof Error ? error.message : String(error);
91
+ throw new StatusResponseError(`Failed to toggle: ${message}`, Status.Failure);
92
+ }
61
93
  }
62
94
  }
63
95
  //# sourceMappingURL=OnOffBehavior.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OnOffBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/OnOffBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAE3D,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IAC5C,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED;;OAEG;IACM,EAAE;QACT,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,uDAAuD;QACvD,qBAAqB,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAClF,mCAAmC;QACrC,CAAC,CAAC,CAAA;QAEF,2BAA2B;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,EAAE,CAAA;QAEzB,sBAAsB;QACtB,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAErF,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACM,GAAG;QACV,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,uDAAuD;QACvD,qBAAqB,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACnF,mCAAmC;QACrC,CAAC,CAAC,CAAA;QAEF,2BAA2B;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;QAE1B,sBAAsB;QACtB,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAEtF,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACM,MAAM;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,uDAAuD;QACvD,qBAAqB,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACtF,mCAAmC;QACrC,CAAC,CAAC,CAAA;QAEF,2BAA2B;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAA;QAE7B,iDAAiD;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,KAA4B,CAAA;QACtD,MAAM,QAAQ,GAAG,CAAC,YAAY,CAAC,KAAK,CAAA;QACpC,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEzF,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"OnOffBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/OnOffBehavior.ts"],"names":[],"mappings":"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"}
@@ -54,15 +54,21 @@ describe('homebridgeOnOffServer', () => {
54
54
  await behavior.on();
55
55
  expect(mockRegistry.syncStateToCache).toHaveBeenCalledWith('test-endpoint-123', 'onOff', { onOff: true });
56
56
  });
57
- it('should handle handler execution errors gracefully', () => {
57
+ it('should propagate handler execution errors', async () => {
58
58
  mockRegistry.executeHandler = vi.fn().mockRejectedValue(new Error('Handler failed'));
59
- // Should not throw
60
- expect(() => behavior.on()).not.toThrow();
59
+ // Should throw/reject when handler fails
60
+ await expect(behavior.on()).rejects.toThrow('Handler failed');
61
61
  });
62
- it('should sync state even if handler fails', async () => {
62
+ it('should not sync state if handler fails', async () => {
63
63
  mockRegistry.executeHandler = vi.fn().mockRejectedValue(new Error('Handler failed'));
64
- await behavior.on();
65
- expect(mockRegistry.syncStateToCache).toHaveBeenCalledWith('test-endpoint-123', 'onOff', { onOff: true });
64
+ try {
65
+ await behavior.on();
66
+ }
67
+ catch {
68
+ // Expected to throw
69
+ }
70
+ // State should NOT be synced when handler fails
71
+ expect(mockRegistry.syncStateToCache).not.toHaveBeenCalled();
66
72
  });
67
73
  });
68
74
  describe('off', () => {
@@ -74,15 +80,21 @@ describe('homebridgeOnOffServer', () => {
74
80
  await behavior.off();
75
81
  expect(mockRegistry.syncStateToCache).toHaveBeenCalledWith('test-endpoint-123', 'onOff', { onOff: false });
76
82
  });
77
- it('should handle handler execution errors gracefully', () => {
83
+ it('should propagate handler execution errors', async () => {
78
84
  mockRegistry.executeHandler = vi.fn().mockRejectedValue(new Error('Handler failed'));
79
- // Should not throw
80
- expect(() => behavior.off()).not.toThrow();
85
+ // Should throw/reject when handler fails
86
+ await expect(behavior.off()).rejects.toThrow('Handler failed');
81
87
  });
82
- it('should sync state even if handler fails', async () => {
88
+ it('should not sync state if handler fails', async () => {
83
89
  mockRegistry.executeHandler = vi.fn().mockRejectedValue(new Error('Handler failed'));
84
- await behavior.off();
85
- expect(mockRegistry.syncStateToCache).toHaveBeenCalledWith('test-endpoint-123', 'onOff', { onOff: false });
90
+ try {
91
+ await behavior.off();
92
+ }
93
+ catch {
94
+ // Expected to throw
95
+ }
96
+ // State should NOT be synced when handler fails
97
+ expect(mockRegistry.syncStateToCache).not.toHaveBeenCalled();
86
98
  });
87
99
  });
88
100
  describe('toggle', () => {
@@ -106,10 +118,10 @@ describe('homebridgeOnOffServer', () => {
106
118
  // undefined -> true (! undefined = true)
107
119
  expect(mockRegistry.syncStateToCache).toHaveBeenCalledWith('test-endpoint-123', 'onOff', { onOff: true });
108
120
  });
109
- it('should handle handler execution errors gracefully', () => {
121
+ it('should propagate handler execution errors', async () => {
110
122
  mockRegistry.executeHandler = vi.fn().mockRejectedValue(new Error('Handler failed'));
111
- // Should not throw
112
- expect(() => behavior.toggle()).not.toThrow();
123
+ // Should throw/reject when handler fails
124
+ await expect(behavior.toggle()).rejects.toThrow('Handler failed');
113
125
  });
114
126
  });
115
127
  });
@@ -1 +1 @@
1
- {"version":3,"file":"OnOffBehavior.spec.js","sourceRoot":"","sources":["../../../src/matter/behaviors/OnOffBehavior.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OnOffBehavior.spec.js","sourceRoot":"","sources":["../../../src/matter/behaviors/OnOffBehavior.spec.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,6 @@ export declare class HomebridgeRvcCleanModeServer extends RvcCleanModeServer {
14
14
  * Set the behavior registry (called once during server initialization)
15
15
  */
16
16
  static setRegistry(registry: BehaviorRegistry): void;
17
- changeToMode(request: any): any;
17
+ changeToMode(request: any): Promise<any>;
18
18
  }
19
19
  //# sourceMappingURL=RvcCleanModeBehavior.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RvcCleanModeBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcCleanModeBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAE1E;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,kBAAkB;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAI3C,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG;CAUzC"}
1
+ {"version":3,"file":"RvcCleanModeBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcCleanModeBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAK1E;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,kBAAkB;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIrC,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAsBxD"}
@@ -4,6 +4,8 @@
4
4
  * Handles robotic vacuum cleaner cleaning mode changes
5
5
  */
6
6
  import { RvcCleanModeServer } from '@matter/main/behaviors/rvc-clean-mode';
7
+ import { Status, StatusResponseError } from '@matter/main/types';
8
+ import { MatterStatus } from '../errors.js';
7
9
  /**
8
10
  * Custom RvcCleanMode Server that calls plugin handlers
9
11
  */
@@ -15,13 +17,25 @@ export class HomebridgeRvcCleanModeServer extends RvcCleanModeServer {
15
17
  static setRegistry(registry) {
16
18
  this.registry = registry;
17
19
  }
18
- changeToMode(request) {
20
+ async changeToMode(request) {
19
21
  const endpointId = this.endpoint.id;
20
- // Execute user handler (errors are logged by registry)
21
- HomebridgeRvcCleanModeServer.registry.executeHandler(endpointId, 'rvcCleanMode', 'changeToMode', request).catch(() => {
22
- // Error already logged by registry
23
- });
24
- return super.changeToMode(request);
22
+ try {
23
+ // Execute user handler
24
+ await HomebridgeRvcCleanModeServer.registry.executeHandler(endpointId, 'rvcCleanMode', 'changeToMode', request);
25
+ // Only reached if handler succeeded - call base implementation
26
+ return await super.changeToMode(request);
27
+ }
28
+ catch (error) {
29
+ // If user handler already threw a StatusResponseError, propagate it as-is
30
+ // This sends a proper Matter protocol error response to the controller
31
+ if (MatterStatus.isMatterProtocolError(error)) {
32
+ throw error;
33
+ }
34
+ // For other errors, wrap in appropriate StatusResponseError
35
+ // This prevents the endpoint from crashing and keeps the device online
36
+ const message = error instanceof Error ? error.message : String(error);
37
+ throw new StatusResponseError(`Failed to change clean mode: ${message}`, Status.Failure);
38
+ }
25
39
  }
26
40
  }
27
41
  //# sourceMappingURL=RvcCleanModeBehavior.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RvcCleanModeBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcCleanModeBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAE1E;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,kBAAkB;IAC1D,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,YAAY,CAAC,OAAY;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,uDAAuD;QACvD,4BAA4B,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACnH,mCAAmC;QACrC,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"RvcCleanModeBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcCleanModeBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,kBAAkB;IAC1D,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,KAAK,CAAC,YAAY,CAAC,OAAY;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,IAAI,CAAC;YACH,uBAAuB;YACvB,MAAM,4BAA4B,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;YAE/G,+DAA+D;YAC/D,OAAO,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,0EAA0E;YAC1E,uEAAuE;YACvE,IAAI,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,CAAA;YACb,CAAC;YAED,4DAA4D;YAC5D,uEAAuE;YACvE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,mBAAmB,CAAC,gCAAgC,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAC1F,CAAC;IACH,CAAC;CACF"}
@@ -46,10 +46,11 @@ describe('homebridgeRvcCleanModeServer', () => {
46
46
  vi.clearAllMocks();
47
47
  }
48
48
  });
49
- it('should handle handler execution errors gracefully', () => {
49
+ it('should handle handler execution errors gracefully', async () => {
50
50
  mockRegistry.executeHandler = vi.fn().mockRejectedValue(new Error('Handler failed'));
51
51
  const request = { newMode: 0 };
52
- expect(() => behavior.changeToMode(request)).not.toThrow();
52
+ // Errors are wrapped in StatusResponseError and propagated to Matter.js
53
+ await expect(behavior.changeToMode(request)).rejects.toThrow('Failed to change clean mode: Handler failed');
53
54
  });
54
55
  });
55
56
  });
@@ -1 +1 @@
1
- {"version":3,"file":"RvcCleanModeBehavior.spec.js","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcCleanModeBehavior.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RvcCleanModeBehavior.spec.js","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcCleanModeBehavior.spec.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@
3
3
  *
4
4
  * Handles robotic vacuum cleaner operational state commands
5
5
  */
6
- import type { MaybePromise } from '@matter/main';
7
6
  import type { BehaviorRegistry } from './BehaviorRegistry.js';
8
7
  import { RvcOperationalStateServer } from '@matter/main/behaviors/rvc-operational-state';
9
8
  import { RvcOperationalState } from '@matter/main/clusters';
@@ -16,8 +15,8 @@ export declare class HomebridgeRvcOperationalStateServer extends RvcOperationalS
16
15
  * Set the behavior registry (called once during server initialization)
17
16
  */
18
17
  static setRegistry(registry: BehaviorRegistry): void;
19
- pause(): MaybePromise<RvcOperationalState.OperationalCommandResponse>;
20
- resume(): MaybePromise<RvcOperationalState.OperationalCommandResponse>;
21
- goHome(): MaybePromise<RvcOperationalState.OperationalCommandResponse>;
18
+ pause(): Promise<RvcOperationalState.OperationalCommandResponse>;
19
+ resume(): Promise<RvcOperationalState.OperationalCommandResponse>;
20
+ goHome(): Promise<RvcOperationalState.OperationalCommandResponse>;
22
21
  }
23
22
  //# sourceMappingURL=RvcOperationalStateBehavior.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RvcOperationalStateBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcOperationalStateBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D;;GAEG;AACH,qBAAa,mCAAoC,SAAQ,yBAAyB;IAChF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAI3C,KAAK,IAAI,YAAY,CAAC,mBAAmB,CAAC,0BAA0B,CAAC;IAWrE,MAAM,IAAI,YAAY,CAAC,mBAAmB,CAAC,0BAA0B,CAAC;IAWtE,MAAM,IAAI,YAAY,CAAC,mBAAmB,CAAC,0BAA0B,CAAC;CAehF"}
1
+ {"version":3,"file":"RvcOperationalStateBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcOperationalStateBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAK3D;;GAEG;AACH,qBAAa,mCAAoC,SAAQ,yBAAyB;IAChF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIrC,KAAK,IAAI,OAAO,CAAC,mBAAmB,CAAC,0BAA0B,CAAC;IAuBhE,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC,0BAA0B,CAAC;IAuBjE,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC,0BAA0B,CAAC;CA0BjF"}
@@ -5,6 +5,8 @@
5
5
  */
6
6
  import { RvcOperationalStateServer } from '@matter/main/behaviors/rvc-operational-state';
7
7
  import { RvcOperationalState } from '@matter/main/clusters';
8
+ import { Status, StatusResponseError } from '@matter/main/types';
9
+ import { MatterStatus } from '../errors.js';
8
10
  /**
9
11
  * Custom RvcOperationalState Server that calls plugin handlers
10
12
  */
@@ -16,34 +18,69 @@ export class HomebridgeRvcOperationalStateServer extends RvcOperationalStateServ
16
18
  static setRegistry(registry) {
17
19
  this.registry = registry;
18
20
  }
19
- pause() {
21
+ async pause() {
20
22
  const endpointId = this.endpoint.id;
21
- // Execute user handler (errors are logged by registry)
22
- HomebridgeRvcOperationalStateServer.registry.executeHandler(endpointId, 'rvcOperationalState', 'pause').catch(() => {
23
- // Error already logged by registry
24
- });
25
- return super.pause();
23
+ try {
24
+ // Execute user handler
25
+ await HomebridgeRvcOperationalStateServer.registry.executeHandler(endpointId, 'rvcOperationalState', 'pause');
26
+ // Only reached if handler succeeded - call base implementation
27
+ return await super.pause();
28
+ }
29
+ catch (error) {
30
+ // If user handler already threw a StatusResponseError, propagate it as-is
31
+ // This sends a proper Matter protocol error response to the controller
32
+ if (MatterStatus.isMatterProtocolError(error)) {
33
+ throw error;
34
+ }
35
+ // For other errors, wrap in appropriate StatusResponseError
36
+ // This prevents the endpoint from crashing and keeps the device online
37
+ const message = error instanceof Error ? error.message : String(error);
38
+ throw new StatusResponseError(`Failed to pause: ${message}`, Status.Failure);
39
+ }
26
40
  }
27
- resume() {
41
+ async resume() {
28
42
  const endpointId = this.endpoint.id;
29
- // Execute user handler (errors are logged by registry)
30
- HomebridgeRvcOperationalStateServer.registry.executeHandler(endpointId, 'rvcOperationalState', 'resume').catch(() => {
31
- // Error already logged by registry
32
- });
33
- return super.resume();
43
+ try {
44
+ // Execute user handler
45
+ await HomebridgeRvcOperationalStateServer.registry.executeHandler(endpointId, 'rvcOperationalState', 'resume');
46
+ // Only reached if handler succeeded - call base implementation
47
+ return await super.resume();
48
+ }
49
+ catch (error) {
50
+ // If user handler already threw a StatusResponseError, propagate it as-is
51
+ // This sends a proper Matter protocol error response to the controller
52
+ if (MatterStatus.isMatterProtocolError(error)) {
53
+ throw error;
54
+ }
55
+ // For other errors, wrap in appropriate StatusResponseError
56
+ // This prevents the endpoint from crashing and keeps the device online
57
+ const message = error instanceof Error ? error.message : String(error);
58
+ throw new StatusResponseError(`Failed to resume: ${message}`, Status.Failure);
59
+ }
34
60
  }
35
- goHome() {
61
+ async goHome() {
36
62
  const endpointId = this.endpoint.id;
37
- // Execute user handler (errors are logged by registry)
38
- HomebridgeRvcOperationalStateServer.registry.executeHandler(endpointId, 'rvcOperationalState', 'goHome').catch(() => {
39
- // Error already logged by registry
40
- });
41
- // Return success response instead of calling unimplemented base method
42
- return {
43
- commandResponseState: {
44
- errorStateId: RvcOperationalState.ErrorState.NoError,
45
- },
46
- };
63
+ try {
64
+ // Execute user handler
65
+ await HomebridgeRvcOperationalStateServer.registry.executeHandler(endpointId, 'rvcOperationalState', 'goHome');
66
+ // Only reached if handler succeeded - return success response
67
+ return {
68
+ commandResponseState: {
69
+ errorStateId: RvcOperationalState.ErrorState.NoError,
70
+ },
71
+ };
72
+ }
73
+ catch (error) {
74
+ // If user handler already threw a StatusResponseError, propagate it as-is
75
+ // This sends a proper Matter protocol error response to the controller
76
+ if (MatterStatus.isMatterProtocolError(error)) {
77
+ throw error;
78
+ }
79
+ // For other errors, wrap in appropriate StatusResponseError
80
+ // This prevents the endpoint from crashing and keeps the device online
81
+ const message = error instanceof Error ? error.message : String(error);
82
+ throw new StatusResponseError(`Failed to go home: ${message}`, Status.Failure);
83
+ }
47
84
  }
48
85
  }
49
86
  //# sourceMappingURL=RvcOperationalStateBehavior.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RvcOperationalStateBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcOperationalStateBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D;;GAEG;AACH,MAAM,OAAO,mCAAoC,SAAQ,yBAAyB;IACxE,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,KAAK;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,uDAAuD;QACvD,mCAAmC,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACjH,mCAAmC;QACrC,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAEQ,MAAM;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,uDAAuD;QACvD,mCAAmC,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAClH,mCAAmC;QACrC,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAC,MAAM,EAAE,CAAA;IACvB,CAAC;IAEQ,MAAM;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,uDAAuD;QACvD,mCAAmC,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAClH,mCAAmC;QACrC,CAAC,CAAC,CAAA;QAEF,uEAAuE;QACvE,OAAO;YACL,oBAAoB,EAAE;gBACpB,YAAY,EAAE,mBAAmB,CAAC,UAAU,CAAC,OAAO;aACrD;SACF,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"RvcOperationalStateBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcOperationalStateBehavior.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,6 @@ export declare class HomebridgeRvcRunModeServer extends RvcRunModeServer {
14
14
  * Set the behavior registry (called once during server initialization)
15
15
  */
16
16
  static setRegistry(registry: BehaviorRegistry): void;
17
- changeToMode(request: any): any;
17
+ changeToMode(request: any): Promise<any>;
18
18
  }
19
19
  //# sourceMappingURL=RvcRunModeBehavior.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RvcRunModeBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcRunModeBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAEtE;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAI3C,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG;CAUzC"}
1
+ {"version":3,"file":"RvcRunModeBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcRunModeBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAKtE;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIrC,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAsBxD"}
@@ -4,6 +4,8 @@
4
4
  * Handles robotic vacuum cleaner run mode changes
5
5
  */
6
6
  import { RvcRunModeServer } from '@matter/main/behaviors/rvc-run-mode';
7
+ import { Status, StatusResponseError } from '@matter/main/types';
8
+ import { MatterStatus } from '../errors.js';
7
9
  /**
8
10
  * Custom RvcRunMode Server that calls plugin handlers
9
11
  */
@@ -15,13 +17,25 @@ export class HomebridgeRvcRunModeServer extends RvcRunModeServer {
15
17
  static setRegistry(registry) {
16
18
  this.registry = registry;
17
19
  }
18
- changeToMode(request) {
20
+ async changeToMode(request) {
19
21
  const endpointId = this.endpoint.id;
20
- // Execute user handler (errors are logged by registry)
21
- HomebridgeRvcRunModeServer.registry.executeHandler(endpointId, 'rvcRunMode', 'changeToMode', request).catch(() => {
22
- // Error already logged by registry
23
- });
24
- return super.changeToMode(request);
22
+ try {
23
+ // Execute user handler
24
+ await HomebridgeRvcRunModeServer.registry.executeHandler(endpointId, 'rvcRunMode', 'changeToMode', request);
25
+ // Only reached if handler succeeded - call base implementation
26
+ return await super.changeToMode(request);
27
+ }
28
+ catch (error) {
29
+ // If user handler already threw a StatusResponseError, propagate it as-is
30
+ // This sends a proper Matter protocol error response to the controller
31
+ if (MatterStatus.isMatterProtocolError(error)) {
32
+ throw error;
33
+ }
34
+ // For other errors, wrap in appropriate StatusResponseError
35
+ // This prevents the endpoint from crashing and keeps the device online
36
+ const message = error instanceof Error ? error.message : String(error);
37
+ throw new StatusResponseError(`Failed to change run mode: ${message}`, Status.Failure);
38
+ }
25
39
  }
26
40
  }
27
41
  //# sourceMappingURL=RvcRunModeBehavior.js.map