homebridge 2.0.3-beta.9 → 2.1.0

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 (100) hide show
  1. package/dist/bridgeService.d.ts +78 -6
  2. package/dist/bridgeService.d.ts.map +1 -1
  3. package/dist/bridgeService.js +124 -30
  4. package/dist/bridgeService.js.map +1 -1
  5. package/dist/childBridgeFork.d.ts +12 -0
  6. package/dist/childBridgeFork.d.ts.map +1 -1
  7. package/dist/childBridgeFork.js +56 -25
  8. package/dist/childBridgeFork.js.map +1 -1
  9. package/dist/childBridgeService.d.ts +13 -7
  10. package/dist/childBridgeService.d.ts.map +1 -1
  11. package/dist/childBridgeService.js +75 -53
  12. package/dist/childBridgeService.js.map +1 -1
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +1 -4
  15. package/dist/cli.js.map +1 -1
  16. package/dist/ipcService.d.ts +6 -1
  17. package/dist/ipcService.d.ts.map +1 -1
  18. package/dist/matter/BaseMatterManager.d.ts +13 -0
  19. package/dist/matter/BaseMatterManager.d.ts.map +1 -1
  20. package/dist/matter/BaseMatterManager.js +43 -11
  21. package/dist/matter/BaseMatterManager.js.map +1 -1
  22. package/dist/matter/ChildBridgeMatterManager.d.ts +41 -2
  23. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -1
  24. package/dist/matter/ChildBridgeMatterManager.js +103 -6
  25. package/dist/matter/ChildBridgeMatterManager.js.map +1 -1
  26. package/dist/matter/ChildBridgeMatterMessageHandler.d.ts.map +1 -1
  27. package/dist/matter/ChildBridgeMatterMessageHandler.js +13 -6
  28. package/dist/matter/ChildBridgeMatterMessageHandler.js.map +1 -1
  29. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -1
  30. package/dist/matter/ExternalMatterAccessoryPublisher.js +25 -1
  31. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -1
  32. package/dist/matter/MatterAPIImpl.d.ts +17 -0
  33. package/dist/matter/MatterAPIImpl.d.ts.map +1 -1
  34. package/dist/matter/MatterAPIImpl.js +29 -0
  35. package/dist/matter/MatterAPIImpl.js.map +1 -1
  36. package/dist/matter/MatterBridgeManager.d.ts +38 -3
  37. package/dist/matter/MatterBridgeManager.d.ts.map +1 -1
  38. package/dist/matter/MatterBridgeManager.js +115 -12
  39. package/dist/matter/MatterBridgeManager.js.map +1 -1
  40. package/dist/matter/MatterError.d.ts +76 -0
  41. package/dist/matter/MatterError.d.ts.map +1 -0
  42. package/dist/matter/MatterError.js +90 -0
  43. package/dist/matter/MatterError.js.map +1 -0
  44. package/dist/matter/MatterPortAllocator.d.ts.map +1 -1
  45. package/dist/matter/MatterPortAllocator.js +7 -1
  46. package/dist/matter/MatterPortAllocator.js.map +1 -1
  47. package/dist/matter/accessoryCache.d.ts +12 -0
  48. package/dist/matter/accessoryCache.d.ts.map +1 -1
  49. package/dist/matter/accessoryCache.js +19 -0
  50. package/dist/matter/accessoryCache.js.map +1 -1
  51. package/dist/matter/behaviors/BehaviorRegistry.d.ts +3 -2
  52. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -1
  53. package/dist/matter/behaviors/BehaviorRegistry.js +10 -1
  54. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -1
  55. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -1
  56. package/dist/matter/behaviors/DoorLockBehavior.js +10 -4
  57. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -1
  58. package/dist/matter/config.d.ts +73 -1
  59. package/dist/matter/config.d.ts.map +1 -1
  60. package/dist/matter/config.js +138 -10
  61. package/dist/matter/config.js.map +1 -1
  62. package/dist/matter/configValidator.d.ts.map +1 -1
  63. package/dist/matter/configValidator.js +15 -0
  64. package/dist/matter/configValidator.js.map +1 -1
  65. package/dist/matter/ipc-types.d.ts +7 -0
  66. package/dist/matter/ipc-types.d.ts.map +1 -1
  67. package/dist/matter/logFormatter.d.ts.map +1 -1
  68. package/dist/matter/logFormatter.js +7 -60
  69. package/dist/matter/logFormatter.js.map +1 -1
  70. package/dist/matter/managerTypes.d.ts +4 -4
  71. package/dist/matter/managerTypes.d.ts.map +1 -1
  72. package/dist/matter/server/AccessoryManager.d.ts.map +1 -1
  73. package/dist/matter/server/AccessoryManager.js +9 -2
  74. package/dist/matter/server/AccessoryManager.js.map +1 -1
  75. package/dist/matter/server/ServerLifecycle.d.ts +23 -4
  76. package/dist/matter/server/ServerLifecycle.d.ts.map +1 -1
  77. package/dist/matter/server/ServerLifecycle.js +127 -22
  78. package/dist/matter/server/ServerLifecycle.js.map +1 -1
  79. package/dist/matter/server.js +1 -1
  80. package/dist/matter/server.js.map +1 -1
  81. package/dist/matter/types.d.ts +21 -57
  82. package/dist/matter/types.d.ts.map +1 -1
  83. package/dist/matter/types.js +6 -71
  84. package/dist/matter/types.js.map +1 -1
  85. package/dist/matter/utils.d.ts +2 -0
  86. package/dist/matter/utils.d.ts.map +1 -1
  87. package/dist/matter/utils.js +3 -1
  88. package/dist/matter/utils.js.map +1 -1
  89. package/dist/plugin.d.ts.map +1 -1
  90. package/dist/plugin.js +2 -14
  91. package/dist/plugin.js.map +1 -1
  92. package/dist/pluginManager.d.ts +11 -0
  93. package/dist/pluginManager.d.ts.map +1 -1
  94. package/dist/pluginManager.js +26 -14
  95. package/dist/pluginManager.js.map +1 -1
  96. package/dist/server.d.ts +29 -7
  97. package/dist/server.d.ts.map +1 -1
  98. package/dist/server.js +141 -51
  99. package/dist/server.js.map +1 -1
  100. package/package.json +8 -7
@@ -1 +1 @@
1
- {"version":3,"file":"accessoryCache.d.ts","sourceRoot":"","sources":["../../src/matter/accessoryCache.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AASzD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,QAAQ,EAAE;QACR,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAA;SACjC,CAAA;KACF,CAAA;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,QAAQ,CAAC,EAAE;QACT,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAA;SACjC,CAAA;KACF,CAAA;IACD,KAAK,CAAC,EAAE,6BAA6B,EAAE,CAAA;CACxC;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,iBAAiB,CAAoD;IAC7E,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAO;gBAE5B,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAIjD;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAsD7D;;;;OAIG;IACH,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,IAAI;IAcpE;;;;OAIG;IACG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5E;;;OAGG;YACW,WAAW;IAoCzB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAI9D;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIhC;;;;;;OAMG;IACH,YAAY,IAAI,yBAAyB,EAAE;IAI3C;;OAEG;IACH,OAAO,CAAC,kBAAkB;CA0C3B"}
1
+ {"version":3,"file":"accessoryCache.d.ts","sourceRoot":"","sources":["../../src/matter/accessoryCache.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AASzD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,QAAQ,EAAE;QACR,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAA;SACjC,CAAA;KACF,CAAA;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,QAAQ,CAAC,EAAE;QACT,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAA;SACjC,CAAA;KACF,CAAA;IACD,KAAK,CAAC,EAAE,6BAA6B,EAAE,CAAA;CACxC;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,iBAAiB,CAAoD;IAC7E,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAO;gBAE5B,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAIjD;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAsD7D;;;;OAIG;IACH,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,IAAI;IAcpE;;;;;;;;;;OAUG;IACH,iBAAiB,IAAI,OAAO;IAS5B;;;;OAIG;IACG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5E;;;OAGG;YACW,WAAW;IAoCzB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAI9D;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIhC;;;;;;OAMG;IACH,YAAY,IAAI,yBAAyB,EAAE;IAI3C;;OAEG;IACH,OAAO,CAAC,kBAAkB;CA0C3B"}
@@ -85,6 +85,25 @@ export class MatterAccessoryCache {
85
85
  });
86
86
  }, this.SAVE_DEBOUNCE_MS);
87
87
  }
88
+ /**
89
+ * Cancel any pending debounced save without writing.
90
+ *
91
+ * A debounced save captures the live accessories map by reference. If a
92
+ * timer is still armed when the owning server tears down and clears that
93
+ * map, the timer would later fire and persist an empty map — wiping the
94
+ * cache. Callers that are about to clear the map (e.g. ServerLifecycle.stop)
95
+ * must cancel first.
96
+ *
97
+ * @returns true if a pending save was cancelled, false if none was armed
98
+ */
99
+ cancelPendingSave() {
100
+ if (this.saveDebounceTimer) {
101
+ clearTimeout(this.saveDebounceTimer);
102
+ this.saveDebounceTimer = null;
103
+ return true;
104
+ }
105
+ return false;
106
+ }
88
107
  /**
89
108
  * Save accessories to cache immediately (serialized to prevent concurrent write conflicts)
90
109
  * Uses a queue pattern to ensure saves are truly serialized even when called concurrently
@@ -1 +1 @@
1
- {"version":3,"file":"accessoryCache.js","sourceRoot":"","sources":["../../src/matter/accessoryCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accessoryCache.js","sourceRoot":"","sources":["../../src/matter/accessoryCache.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,8 @@ export declare class BehaviorRegistry {
45
45
  * @param commandName - Command name
46
46
  * @param args - Optional arguments to pass to the handler
47
47
  * @param context - Optional context information
48
- * @returns True if handler was found and executed, false otherwise
48
+ * @returns True once the handler has run successfully
49
+ * @throws Error if no handler is registered for the endpoint/cluster/command
49
50
  */
50
51
  executeHandler(endpointId: string, clusterName: string, commandName: string, args?: unknown, context?: MatterHandlerContext): Promise<boolean>;
51
52
  /**
@@ -71,7 +72,7 @@ export declare class BehaviorRegistry {
71
72
  * — handlers retain plugin closures and prevent the accessory's resources
72
73
  * from being collected.
73
74
  */
74
- removeEndpoint(endpointId: string): void;
75
+ removeEndpoint(endpointId: string): string[];
75
76
  /**
76
77
  * Clear all handlers (for cleanup)
77
78
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BehaviorRegistry.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/BehaviorRegistry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAMhF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAE3G;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;AAErE;;;GAGG;AACH,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,QAAQ,CAAoE;IAGpF,OAAO,CAAC,aAAa,CAA4D;IAGjF,OAAO,CAAC,cAAc,CAAoB;IAG1C,OAAO,CAAC,MAAM,CAAC,CAAc;gBAEjB,cAAc,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,YAAY;IAKrE;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIrC;;OAEG;IACH,eAAe,CACb,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,oBAAoB,GAC5B,IAAI;IAgBP;;OAEG;IACH,UAAU,CACR,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,oBAAoB,GAAG,SAAS;IAInC;;;;;;;;;OASG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,OAAO,CAAC;IAenB;;OAEG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlF;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAI3F;;;OAGG;IACH,gBAAgB,CACd,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,IAAI;IAwDP;;;;;;OAMG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAYxC;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,QAAQ,IAAI;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAaxD"}
1
+ {"version":3,"file":"BehaviorRegistry.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/BehaviorRegistry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAMhF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAE3G;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;AAErE;;;GAGG;AACH,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,QAAQ,CAAoE;IAGpF,OAAO,CAAC,aAAa,CAA4D;IAGjF,OAAO,CAAC,cAAc,CAAoB;IAG1C,OAAO,CAAC,MAAM,CAAC,CAAc;gBAEjB,cAAc,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,YAAY;IAKrE;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIrC;;OAEG;IACH,eAAe,CACb,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,oBAAoB,GAC5B,IAAI;IAgBP;;OAEG;IACH,UAAU,CACR,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,oBAAoB,GAAG,SAAS;IAInC;;;;;;;;;;OAUG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,OAAO,CAAC;IAenB;;OAEG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlF;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAI3F;;;OAGG;IACH,gBAAgB,CACd,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,IAAI;IAwDP;;;;;;OAMG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAoB5C;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,QAAQ,IAAI;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAaxD"}
@@ -58,7 +58,8 @@ export class BehaviorRegistry {
58
58
  * @param commandName - Command name
59
59
  * @param args - Optional arguments to pass to the handler
60
60
  * @param context - Optional context information
61
- * @returns True if handler was found and executed, false otherwise
61
+ * @returns True once the handler has run successfully
62
+ * @throws Error if no handler is registered for the endpoint/cluster/command
62
63
  */
63
64
  async executeHandler(endpointId, clusterName, commandName, args, context) {
64
65
  const handler = this.getHandler(endpointId, clusterName, commandName);
@@ -145,6 +146,10 @@ export class BehaviorRegistry {
145
146
  * from being collected.
146
147
  */
147
148
  removeEndpoint(endpointId) {
149
+ // Track every endpoint id we drop (the accessory itself + any of its part
150
+ // endpoints) so callers can mirror the same cleanup in other registries
151
+ // (e.g. RegistryManager, which has no parent-aware sweep of its own).
152
+ const removed = [endpointId];
148
153
  this.handlers.delete(endpointId);
149
154
  // Sweep any part endpoints whose parent matches the unregistering UUID,
150
155
  // and drop their handler tables too.
@@ -152,8 +157,12 @@ export class BehaviorRegistry {
152
157
  if (info.parentUuid === endpointId || partId === endpointId) {
153
158
  this.partEndpoints.delete(partId);
154
159
  this.handlers.delete(partId);
160
+ if (partId !== endpointId) {
161
+ removed.push(partId);
162
+ }
155
163
  }
156
164
  }
165
+ return removed;
157
166
  }
158
167
  /**
159
168
  * Clear all handlers (for cleanup)
@@ -1 +1 @@
1
- {"version":3,"file":"BehaviorRegistry.js","sourceRoot":"","sources":["../../../src/matter/behaviors/BehaviorRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BehaviorRegistry.js","sourceRoot":"","sources":["../../../src/matter/behaviors/BehaviorRegistry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DoorLockBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/DoorLockBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAM1D;;;;;;GAMG;AACH,qBAAa,wBAAyB,SAAQ,gBAAgB;IAC5D;;OAEG;IACH,OAAO,CAAC,WAAW;IAIJ,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1D,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B9E"}
1
+ {"version":3,"file":"DoorLockBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/DoorLockBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAM1D;;;;;;GAMG;AACH,qBAAa,wBAAyB,SAAQ,gBAAgB;IAC5D;;OAEG;IACH,OAAO,CAAC,WAAW;IAIJ,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B1D,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CA4B9E"}
@@ -30,8 +30,12 @@ export class HomebridgeDoorLockServer extends DoorLockBehavior {
30
30
  try {
31
31
  // Execute user handler
32
32
  await registry.executeHandler(endpointId, 'doorLock', 'lockDoor', request);
33
- // Only reached if handler succeeded - update Matter state via super
34
- await super.lockDoor(request);
33
+ // Only reached if handler succeeded - update the Matter attribute.
34
+ // We extend the featureless DoorLockBehavior (not DoorLockServer) to avoid
35
+ // advertising credential features, which means there is no working
36
+ // super.lockDoor() to delegate to — calling it throws. Set the lockState
37
+ // attribute directly, mirroring DoorLockServer.lockDoor().
38
+ this.state.lockState = DoorLock.LockState.Locked;
35
39
  // Sync lock state to cache
36
40
  registry.syncStateToCache(endpointId, 'doorLock', { lockState: DoorLock.LockState.Locked });
37
41
  }
@@ -53,8 +57,10 @@ export class HomebridgeDoorLockServer extends DoorLockBehavior {
53
57
  try {
54
58
  // Execute user handler
55
59
  await registry.executeHandler(endpointId, 'doorLock', 'unlockDoor', request);
56
- // Only reached if handler succeeded - update Matter state via super
57
- await super.unlockDoor(request);
60
+ // Only reached if handler succeeded - update the Matter attribute.
61
+ // See lockDoor() above: the featureless base has no working super.unlockDoor(),
62
+ // so set the lockState attribute directly, mirroring DoorLockServer.unlockDoor().
63
+ this.state.lockState = DoorLock.LockState.Unlocked;
58
64
  // Sync lock state to cache
59
65
  registry.syncStateToCache(endpointId, 'doorLock', { lockState: DoorLock.LockState.Unlocked });
60
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DoorLockBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/DoorLockBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD;;;;;;GAMG;AACH,MAAM,OAAO,wBAAyB,SAAQ,gBAAgB;IAC5D;;OAEG;IACK,WAAW;QACjB,OAAO,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACxE,CAAC;IAEQ,KAAK,CAAC,QAAQ,CAAC,OAAiC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEnC,IAAI,CAAC;YACH,uBAAuB;YACvB,MAAM,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;YAE1E,oEAAoE;YACpE,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YAE7B,2BAA2B;YAC3B,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;QAC7F,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,wBAAwB,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,UAAU,CAAC,OAAmC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEnC,IAAI,CAAC;YACH,uBAAuB;YACvB,MAAM,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;YAE5E,oEAAoE;YACpE,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;YAE/B,2BAA2B;YAC3B,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC/F,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,0BAA0B,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"DoorLockBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/DoorLockBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD;;;;;;GAMG;AACH,MAAM,OAAO,wBAAyB,SAAQ,gBAAgB;IAC5D;;OAEG;IACK,WAAW;QACjB,OAAO,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACxE,CAAC;IAEQ,KAAK,CAAC,QAAQ,CAAC,OAAiC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEnC,IAAI,CAAC;YACH,uBAAuB;YACvB,MAAM,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;YAE1E,mEAAmE;YACnE,2EAA2E;YAC3E,mEAAmE;YACnE,yEAAyE;YACzE,2DAA2D;YAC3D,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAA;YAEhD,2BAA2B;YAC3B,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;QAC7F,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,wBAAwB,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,UAAU,CAAC,OAAmC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEnC,IAAI,CAAC;YACH,uBAAuB;YACvB,MAAM,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;YAE5E,mEAAmE;YACnE,gFAAgF;YAChF,kFAAkF;YAClF,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAA;YAElD,2BAA2B;YAC3B,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC/F,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,0BAA0B,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;CACF"}
@@ -6,6 +6,69 @@
6
6
  * Matter configured.
7
7
  */
8
8
  import type { HomebridgeConfig } from '../bridgeService.js';
9
+ import type { MatterConfig } from './types.js';
10
+ /**
11
+ * Whether a Matter config block represents an *enabled* Matter setup.
12
+ * The block being present means Matter is configured; `enabled: false` means
13
+ * it is configured but intentionally turned off (storage + port preserved so
14
+ * it can be re-enabled without re-commissioning). Missing `enabled` = enabled,
15
+ * which keeps every pre-existing config working unchanged.
16
+ *
17
+ * Note: this does NOT distinguish "the main matter server should start" from
18
+ * "the matter API surface should be exposed to plugins". Use
19
+ * `shouldStartMatterServer` for the former — it additionally accounts for
20
+ * externalsOnly mode, where the API is exposed but the bridge server is not
21
+ * started.
22
+ */
23
+ export declare function isMatterConfigEnabled(matter: MatterConfig | undefined): boolean;
24
+ /**
25
+ * Whether the main Matter server should start for this bridge — i.e. Matter
26
+ * is configured, enabled, and NOT in externalsOnly mode. In externalsOnly
27
+ * mode the API is still loaded (so plugins can publish externals via their
28
+ * own per-accessory MatterServer instances) but the bridge aggregator does
29
+ * not come up.
30
+ */
31
+ export declare function shouldStartMatterServer(matter: MatterConfig | undefined): boolean;
32
+ /**
33
+ * Whether Matter is "active" for this bridge in any form — either fully on,
34
+ * or in externalsOnly mode (api.matter loaded, manager listening for external
35
+ * publish events, main bridge server NOT started). Returns false only when
36
+ * matter is missing or fully disabled (`enabled: false` without `externalsOnly`).
37
+ *
38
+ * Use this for gates like "should api.matter be loaded?" and "should the
39
+ * matter manager be constructed?". Use `shouldStartMatterServer` for the
40
+ * tighter gate of "should the bridge aggregator come up?".
41
+ */
42
+ export declare function isMatterActive(matter: MatterConfig | undefined): boolean;
43
+ /**
44
+ * Normalise the coherence of `matter.externalsOnly` for a single bridge block.
45
+ *
46
+ * `externalsOnly: true` is meant to be paired with `enabled: false` (the two
47
+ * flags together confirm "bridge node off, externals still publish"). If a
48
+ * config sets `externalsOnly: true` on its own we honour the unambiguous
49
+ * intent rather than failing the whole process — we warn and set
50
+ * `enabled: false` in place so the block matches the canonical externalsOnly
51
+ * form every downstream check expects. This mirrors the log-and-continue
52
+ * behaviour of the port validators rather than taking the whole instance down
53
+ * over one stray flag.
54
+ *
55
+ * For accessory child bridges, callers should use
56
+ * `stripMatterExternalsOnlyForAccessory` instead — externals are not
57
+ * supported on accessory plugins, so the field is dropped with a warning
58
+ * before this check runs.
59
+ *
60
+ * Mutates the passed matter block in place.
61
+ */
62
+ export declare function validateMatterExternalsOnly(matter: MatterConfig, bridgeLabel: string): void;
63
+ /**
64
+ * Strip `matter.externalsOnly` (if set) from an accessory child bridge's
65
+ * matter block, logging a warning. Externals are not supported via the
66
+ * accessory plugin API, so the flag is meaningless there — mirrors the
67
+ * accessory-side behaviour of `hap.externalsOnly`.
68
+ *
69
+ * Mutates the passed matter block in place.
70
+ */
71
+ export declare function stripMatterExternalsOnlyForAccessory(matter: MatterConfig, bridgeLabel: string): void;
9
72
  /**
10
73
  * Lightweight config collector that doesn't require Matter.js imports
11
74
  */
@@ -15,7 +78,16 @@ export declare class MatterConfigCollector {
15
78
  */
16
79
  static hasMatterConfig(config: HomebridgeConfig): boolean;
17
80
  /**
18
- * Collect all configured Matter ports from config to avoid conflicts
81
+ * Collect all configured Matter ports from config to avoid conflicts.
82
+ *
83
+ * Ports are collected from every bridge block that declares one, regardless
84
+ * of `enabled`/`externalsOnly` state. This is deliberate: a disabled-in-place
85
+ * bridge (`enabled: false`) keeps its configured port reserved so that
86
+ * re-enabling it later reuses the same port (no re-commissioning) and the
87
+ * allocator never hands that port to an automatic Matter/external allocation
88
+ * in the meantime. The trade-off is that a disabled bridge's port stays
89
+ * unavailable for auto-allocation even though no server currently binds it —
90
+ * that is the cost of the "port preserved" contract on `enabled`.
19
91
  */
20
92
  static collectConfiguredMatterPorts(config: HomebridgeConfig): number[];
21
93
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/matter/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAmB,gBAAgB,EAAkB,MAAM,qBAAqB,CAAA;AAM5F;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;IAQzD;;OAEG;IACH,MAAM,CAAC,4BAA4B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE;IAsBvE;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAc9D;;;;OAIG;WACU,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C1E;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;CA+BlC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/matter/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAmB,gBAAgB,EAAkB,MAAM,qBAAqB,CAAA;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAM9C;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAE/E;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAEjF;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAExE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB,IAAI,CAON;AAED;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB,IAAI,CAKN;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;IAWzD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,4BAA4B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE;IAsBvE;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAc9D;;;;OAIG;WACU,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwF1E;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;CA+BlC"}
@@ -7,6 +7,84 @@
7
7
  */
8
8
  import { Logger } from '../logger.js';
9
9
  const log = Logger.withPrefix('Matter/Config');
10
+ /**
11
+ * Whether a Matter config block represents an *enabled* Matter setup.
12
+ * The block being present means Matter is configured; `enabled: false` means
13
+ * it is configured but intentionally turned off (storage + port preserved so
14
+ * it can be re-enabled without re-commissioning). Missing `enabled` = enabled,
15
+ * which keeps every pre-existing config working unchanged.
16
+ *
17
+ * Note: this does NOT distinguish "the main matter server should start" from
18
+ * "the matter API surface should be exposed to plugins". Use
19
+ * `shouldStartMatterServer` for the former — it additionally accounts for
20
+ * externalsOnly mode, where the API is exposed but the bridge server is not
21
+ * started.
22
+ */
23
+ export function isMatterConfigEnabled(matter) {
24
+ return !!matter && matter.enabled !== false;
25
+ }
26
+ /**
27
+ * Whether the main Matter server should start for this bridge — i.e. Matter
28
+ * is configured, enabled, and NOT in externalsOnly mode. In externalsOnly
29
+ * mode the API is still loaded (so plugins can publish externals via their
30
+ * own per-accessory MatterServer instances) but the bridge aggregator does
31
+ * not come up.
32
+ */
33
+ export function shouldStartMatterServer(matter) {
34
+ return isMatterConfigEnabled(matter) && !matter?.externalsOnly;
35
+ }
36
+ /**
37
+ * Whether Matter is "active" for this bridge in any form — either fully on,
38
+ * or in externalsOnly mode (api.matter loaded, manager listening for external
39
+ * publish events, main bridge server NOT started). Returns false only when
40
+ * matter is missing or fully disabled (`enabled: false` without `externalsOnly`).
41
+ *
42
+ * Use this for gates like "should api.matter be loaded?" and "should the
43
+ * matter manager be constructed?". Use `shouldStartMatterServer` for the
44
+ * tighter gate of "should the bridge aggregator come up?".
45
+ */
46
+ export function isMatterActive(matter) {
47
+ return !!matter && (matter.enabled !== false || matter.externalsOnly === true);
48
+ }
49
+ /**
50
+ * Normalise the coherence of `matter.externalsOnly` for a single bridge block.
51
+ *
52
+ * `externalsOnly: true` is meant to be paired with `enabled: false` (the two
53
+ * flags together confirm "bridge node off, externals still publish"). If a
54
+ * config sets `externalsOnly: true` on its own we honour the unambiguous
55
+ * intent rather than failing the whole process — we warn and set
56
+ * `enabled: false` in place so the block matches the canonical externalsOnly
57
+ * form every downstream check expects. This mirrors the log-and-continue
58
+ * behaviour of the port validators rather than taking the whole instance down
59
+ * over one stray flag.
60
+ *
61
+ * For accessory child bridges, callers should use
62
+ * `stripMatterExternalsOnlyForAccessory` instead — externals are not
63
+ * supported on accessory plugins, so the field is dropped with a warning
64
+ * before this check runs.
65
+ *
66
+ * Mutates the passed matter block in place.
67
+ */
68
+ export function validateMatterExternalsOnly(matter, bridgeLabel) {
69
+ if (matter.externalsOnly === true && matter.enabled !== false) {
70
+ log.warn(`${bridgeLabel}: 'matter.externalsOnly: true' was set without 'matter.enabled: false'. Proceeding in externalsOnly mode (the bridge node will not start). Set 'matter.enabled: false' to confirm intent and silence this warning.`);
71
+ matter.enabled = false;
72
+ }
73
+ }
74
+ /**
75
+ * Strip `matter.externalsOnly` (if set) from an accessory child bridge's
76
+ * matter block, logging a warning. Externals are not supported via the
77
+ * accessory plugin API, so the flag is meaningless there — mirrors the
78
+ * accessory-side behaviour of `hap.externalsOnly`.
79
+ *
80
+ * Mutates the passed matter block in place.
81
+ */
82
+ export function stripMatterExternalsOnlyForAccessory(matter, bridgeLabel) {
83
+ if (matter.externalsOnly === true) {
84
+ log.warn(`${bridgeLabel}: 'matter.externalsOnly' is not supported on accessory child bridges. Ignoring.`);
85
+ delete matter.externalsOnly;
86
+ }
87
+ }
10
88
  /**
11
89
  * Lightweight config collector that doesn't require Matter.js imports
12
90
  */
@@ -15,12 +93,24 @@ export class MatterConfigCollector {
15
93
  * Check if any Matter configuration exists in the config
16
94
  */
17
95
  static hasMatterConfig(config) {
18
- return !!(config.bridge.matter
19
- || config.platforms.some((p) => p._bridge?.matter)
20
- || config.accessories.some((a) => a._bridge?.matter));
96
+ // Use isMatterActive so externalsOnly bridges are considered configured —
97
+ // they still need api.matter loaded and the manager set up to attach
98
+ // their external-publish listeners.
99
+ return (isMatterActive(config.bridge.matter)
100
+ || config.platforms.some((p) => isMatterActive(p._bridge?.matter))
101
+ || config.accessories.some((a) => isMatterActive(a._bridge?.matter)));
21
102
  }
22
103
  /**
23
- * Collect all configured Matter ports from config to avoid conflicts
104
+ * Collect all configured Matter ports from config to avoid conflicts.
105
+ *
106
+ * Ports are collected from every bridge block that declares one, regardless
107
+ * of `enabled`/`externalsOnly` state. This is deliberate: a disabled-in-place
108
+ * bridge (`enabled: false`) keeps its configured port reserved so that
109
+ * re-enabling it later reuses the same port (no re-commissioning) and the
110
+ * allocator never hands that port to an automatic Matter/external allocation
111
+ * in the meantime. The trade-off is that a disabled bridge's port stays
112
+ * unavailable for auto-allocation even though no server currently binds it —
113
+ * that is the cost of the "port preserved" contract on `enabled`.
24
114
  */
25
115
  static collectConfiguredMatterPorts(config) {
26
116
  const configuredMatterPorts = [];
@@ -69,10 +159,31 @@ export class MatterConfigCollector {
69
159
  if (!this.hasMatterConfig(config)) {
70
160
  return;
71
161
  }
162
+ // externalsOnly coherence checks run first so misconfigurations throw with
163
+ // a clear message before downstream validators get the chance to silently
164
+ // strip the matter block on unrelated errors. Accessory child bridges have
165
+ // externalsOnly stripped with a warning here too (mirrors hap.externalsOnly).
166
+ if (config.bridge.matter) {
167
+ validateMatterExternalsOnly(config.bridge.matter, 'main bridge');
168
+ }
169
+ for (const platform of config.platforms) {
170
+ if (platform._bridge?.matter) {
171
+ validateMatterExternalsOnly(platform._bridge.matter, `platform "${platform.platform}" child bridge`);
172
+ }
173
+ }
174
+ for (const accessory of config.accessories) {
175
+ if (accessory._bridge?.matter) {
176
+ stripMatterExternalsOnlyForAccessory(accessory._bridge.matter, `accessory "${accessory.accessory}" child bridge`);
177
+ }
178
+ }
72
179
  // Lazy-load the full validator (which has heavier dependencies)
73
180
  const { MatterConfigValidator } = await import('./configValidator.js');
74
- // Validate main bridge Matter config
75
- if (config.bridge.matter) {
181
+ // Validate the main bridge Matter config only when it will actually start a
182
+ // server. A disabled (`enabled: false`) or externalsOnly main bridge is
183
+ // preserved as-is (disabled-in-place) — mirroring the child validator —
184
+ // since stripping it would lose config/storage the user expects to survive
185
+ // so it can be re-enabled without re-commissioning.
186
+ if (config.bridge.matter && shouldStartMatterServer(config.bridge.matter)) {
76
187
  const validation = MatterConfigValidator.validate(config.bridge.matter);
77
188
  if (!validation.isValid) {
78
189
  log.error('Main bridge Matter configuration is invalid. Matter will not be enabled for the main bridge.');
@@ -80,18 +191,35 @@ export class MatterConfigCollector {
80
191
  }
81
192
  }
82
193
  // Reserve the main bridge's Matter port so the child validator catches
83
- // child↔main port collisions in the same pass.
194
+ // child↔main port collisions in the same pass — but only when the main
195
+ // Matter server will actually bind it. A disabled or externalsOnly main
196
+ // bridge never starts its bridge server, so its configured port must not
197
+ // block a child bridge from legitimately using the same number.
84
198
  const reserved = new Set();
85
- if (config.bridge.matter?.port) {
199
+ if (shouldStartMatterServer(config.bridge.matter) && config.bridge.matter?.port) {
86
200
  reserved.add(config.bridge.matter.port);
87
201
  }
88
202
  // Validate all child bridge Matter configs and check for port conflicts
89
203
  const childMatterValidation = MatterConfigValidator.validateAllChildMatterConfigs(config.platforms, config.accessories, reserved);
90
204
  if (!childMatterValidation.isValid) {
91
205
  log.error('Some child bridge Matter configurations were invalid and have been disabled. The remaining configuration will start as normal.');
206
+ // Surface the specific per-child errors (which platform/accessory and
207
+ // which port) so the user knows what to fix. Previously these details
208
+ // were collected into the result but never logged, leaving only the
209
+ // generic line above — the user couldn't tell what had been disabled.
210
+ for (const error of childMatterValidation.errors) {
211
+ log.error(error);
212
+ }
92
213
  }
93
- // Check for conflicts between main bridge Matter port and child bridge ports
94
- if (config.bridge.matter?.port) {
214
+ // Surface any non-fatal child Matter warnings too also collected by the
215
+ // validator but not previously logged by this caller.
216
+ for (const warning of childMatterValidation.warnings) {
217
+ log.warn(warning);
218
+ }
219
+ // Check for conflicts between main bridge Matter port and child bridge
220
+ // ports — again only when the main server will actually bind its port,
221
+ // so a disabled/externalsOnly main doesn't raise a spurious conflict.
222
+ if (shouldStartMatterServer(config.bridge.matter) && config.bridge.matter?.port) {
95
223
  this.checkPortConflicts(config);
96
224
  }
97
225
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/matter/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/matter/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;AAE9C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAgC;IACpE,OAAO,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAA;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAgC;IACtE,OAAO,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAA;AAChE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,MAAgC;IAC7D,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,CAAA;AAChF,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,2BAA2B,CACzC,MAAoB,EACpB,WAAmB;IAEnB,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC9D,GAAG,CAAC,IAAI,CACN,GAAG,WAAW,oNAAoN,CACnO,CAAA;QACD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAA;IACxB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oCAAoC,CAClD,MAAoB,EACpB,WAAmB;IAEnB,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;QAClC,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,iFAAiF,CAAC,CAAA;QACzG,OAAO,MAAM,CAAC,aAAa,CAAA;IAC7B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAChC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC7C,0EAA0E;QAC1E,qEAAqE;QACrE,oCAAoC;QACpC,OAAO,CACL,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;eACjC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;eAC/E,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAkB,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CACtF,CAAA;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,4BAA4B,CAAC,MAAwB;QAC1D,MAAM,qBAAqB,GAAa,EAAE,CAAA;QAE1C,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YAC/B,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACvD,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACnC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACpC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3D,CAAC;QACH,CAAC;QAED,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAwB;QACrD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBACvD,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;oBACtD,GAAG,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAA;oBAClG,MAAM,CAAC,WAAW,GAAG,SAAS,CAAA;gBAChC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,mGAAmG,CAAC,CAAA;gBAC9G,MAAM,CAAC,WAAW,GAAG,SAAS,CAAA;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAwB;QACxD,wCAAwC;QACxC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,OAAM;QACR,CAAC;QAED,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,8EAA8E;QAC9E,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACzB,2BAA2B,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAClE,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC7B,2BAA2B,CACzB,QAAQ,CAAC,OAAO,CAAC,MAAM,EACvB,aAAa,QAAQ,CAAC,QAAQ,gBAAgB,CAC/C,CAAA;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC9B,oCAAoC,CAClC,SAAS,CAAC,OAAO,CAAC,MAAM,EACxB,cAAc,SAAS,CAAC,SAAS,gBAAgB,CAClD,CAAA;YACH,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAA;QAEtE,4EAA4E;QAC5E,wEAAwE;QACxE,wEAAwE;QACxE,2EAA2E;QAC3E,oDAAoD;QACpD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1E,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACvE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,GAAG,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAA;gBACzG,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAA;YAC7B,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,wEAAwE;QACxE,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;QAClC,IAAI,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YAChF,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACzC,CAAC;QAED,wEAAwE;QACxE,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,6BAA6B,CAC/E,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,EAClB,QAAQ,CACT,CAAA;QAED,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACnC,GAAG,CAAC,KAAK,CAAC,gIAAgI,CAAC,CAAA;YAC3I,sEAAsE;YACtE,sEAAsE;YACtE,oEAAoE;YACpE,sEAAsE;YACtE,KAAK,MAAM,KAAK,IAAI,qBAAqB,CAAC,MAAM,EAAE,CAAC;gBACjD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,sDAAsD;QACtD,KAAK,MAAM,OAAO,IAAI,qBAAqB,CAAC,QAAQ,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnB,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,sEAAsE;QACtE,IAAI,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YAChF,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,kBAAkB,CAAC,MAAwB;QACxD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAA;QACjD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QAED,wCAAwC;QACxC,MAAM,gBAAgB,GAAa,EAAE,CAAA;QAErC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACnC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACpC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACtD,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,KAAK,CAAC,2BAA2B,cAAc,sEAAsE,CAAC,CAAA;QAC5H,CAAC;QAED,+CAA+C;QAC/C,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC;YAC7E,GAAG,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,MAAM,CAAC,IAAI,oBAAoB,cAAc,uDAAuD,CAAC,CAAA;QAC/I,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../src/matter/configValidator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAO1E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,KAAK,EAAE,CAAC,CAAA;IACR,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAMD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,oBAAoB,CAqBvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAuB7E;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,kBAAkB,CAAC,MAAM,CAAC,CAa5B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ1F;AAMD;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,4BAA4B;IAyB9E,OAAO,CAAC,MAAM,CAAC,YAAY;IAiB3B;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAC9B,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,UAAU,EAAE,UAAU,GAAG,WAAW,EACpC,UAAU,EAAE,MAAM,GACjB,4BAA4B;IAmD/B;;;;;;;OAOG;IACH,MAAM,CAAC,6BAA6B,CAClC,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,EAAE,eAAe,EAAE,EAC9B,aAAa,GAAE,GAAG,CAAC,MAAM,CAAa,GACrC,4BAA4B;CA2EhC"}
1
+ {"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../src/matter/configValidator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAQ1E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,KAAK,EAAE,CAAC,CAAA;IACR,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAMD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,oBAAoB,CAqBvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAuB7E;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,kBAAkB,CAAC,MAAM,CAAC,CAa5B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ1F;AAMD;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,4BAA4B;IAyB9E,OAAO,CAAC,MAAM,CAAC,YAAY;IAiB3B;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAC9B,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,UAAU,EAAE,UAAU,GAAG,WAAW,EACpC,UAAU,EAAE,MAAM,GACjB,4BAA4B;IAmD/B;;;;;;;OAOG;IACH,MAAM,CAAC,6BAA6B,CAClC,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,EAAE,eAAe,EAAE,EAC9B,aAAa,GAAE,GAAG,CAAC,MAAM,CAAa,GACrC,4BAA4B;CA2FhC"}
@@ -5,6 +5,7 @@
5
5
  * Includes both low-level validation primitives and high-level validation methods.
6
6
  */
7
7
  import { Logger } from '../logger.js';
8
+ import { shouldStartMatterServer } from './config.js';
8
9
  const log = Logger.withPrefix('Matter/Config');
9
10
  const COLON_RE = /:/g;
10
11
  // ============================================================================
@@ -209,6 +210,15 @@ export class MatterConfigValidator {
209
210
  // Validate platform _bridge.matter configs
210
211
  for (const platform of platforms) {
211
212
  if (platform._bridge?.matter) {
213
+ // Disabled-in-place (`enabled: false`) and externalsOnly child configs
214
+ // never start a bridge server or bind their configured port, so preserve
215
+ // them as-is: don't validate, strip, or reserve a port for them.
216
+ // Otherwise an unrelated active Matter config triggering validation could
217
+ // delete a user's intentionally-disabled config (it's meant to survive so
218
+ // it can be re-enabled without re-commissioning).
219
+ if (!shouldStartMatterServer(platform._bridge.matter)) {
220
+ continue;
221
+ }
212
222
  const validation = this.validateChildMatterConfig(platform, 'platform', platform.platform || 'unknown');
213
223
  if (!validation.isValid) {
214
224
  // Strip the invalid Matter config so the bridge doesn't try to
@@ -235,6 +245,11 @@ export class MatterConfigValidator {
235
245
  // Validate accessory _bridge.matter configs
236
246
  for (const accessory of accessories) {
237
247
  if (accessory._bridge?.matter) {
248
+ // See the platform loop above: disabled-in-place / externalsOnly configs
249
+ // are preserved untouched — they neither start a server nor bind a port.
250
+ if (!shouldStartMatterServer(accessory._bridge.matter)) {
251
+ continue;
252
+ }
238
253
  const validation = this.validateChildMatterConfig(accessory, 'accessory', accessory.accessory || 'unknown');
239
254
  if (!validation.isValid) {
240
255
  result.errors.push(...validation.errors);
@@ -1 +1 @@
1
- {"version":3,"file":"configValidator.js","sourceRoot":"","sources":["../../src/matter/configValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configValidator.js","sourceRoot":"","sources":["../../src/matter/configValidator.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,13 @@ export interface MatterStatusInfo {
27
27
  serialNumber?: string;
28
28
  commissioned?: boolean;
29
29
  deviceCount?: number;
30
+ /**
31
+ * When true, the Matter bridge node itself is NOT advertised but plugins
32
+ * may still publish external Matter accessories. The UI uses this to show
33
+ * a distinct status colour (the bridge is configured but the node is
34
+ * intentionally suppressed). Mirrors `bridge.hap.externalsOnly`.
35
+ */
36
+ externalsOnly?: boolean;
30
37
  }
31
38
  /**
32
39
  * Server status update message sent from Homebridge to parent process